Bulk ID Card Maker

Side 100%
No data loaded
Load a CSV to preview real entries
In depth

How to make a whole set of ID cards from a spreadsheet

Making one identity card is easy. Making four hundred of them, each with a different name, a different roll number and a different face, is where the afternoon disappears. This guide walks through doing it properly: preparing the list, gathering the photographs, choosing a layout, checking a handful of real entries, and producing files a printer will accept. Everything described here happens inside the browser tab, which matters more than it might sound when the file you are working with is a list of children.

The idea behind a bulk card maker

A card maker of this kind rests on one simple trick, borrowed from the mail merge that word processors have had for decades. You design the card once, and wherever a piece of information should differ from person to person you leave a marker instead of the words. The marker names a column in your list. When the batch runs, each row of the list produces one card and every marker is replaced by that row's own value.

So a single design containing the marker for a name, the marker for a class and a frame bound to a photograph column becomes as many finished cards as there are rows. Ten people or two thousand, the work of designing is the same, and the work of producing is a progress bar.

The reason this is worth building rather than doing by hand is not only speed. A batch made this way is consistent. Every card has the photograph in the same place, the same type size, the same margin from the edge. Cards made one at a time drift, and the drift shows when they are stacked together on a desk.

Preparing the list

The list is an ordinary CSV file, which every spreadsheet program can produce from its Save As or Export menu. The first row must hold the headings, and every row beneath it is one person. Headings can be anything you like, though plain ones make the rest easier: Name, Class, Roll No, Department, Blood Group, Photo.

It is worth taking a few minutes over the list before you start designing, because problems in the data show up as problems on the cards. Look for trailing spaces, names in inconsistent capitalisation, and rows that are blank but not quite empty. If a value contains a comma, the spreadsheet will have wrapped it in quotation marks automatically and the tool understands that, so an address or a name like "Smith, Jr" is safe.

One column should hold the file names of the photographs. That column is what ties a person to a face, so it deserves care: the value must match the name of the file exactly, extension included. A row saying amy rather than amy.jpg will not find its picture.

Gathering the photographs

Photographs arrive as a ZIP file. Put every portrait into one archive and name that archive after the column that lists the file names. If the column is called Photo, the archive is Photo.zip. That convention is what lets the tool work out which pictures belong to which frame without asking you to map anything.

Inside the archive the arrangement does not matter. Folders are fine, because only the final part of each path is compared, so photos/year10/amy.jpg is matched as amy.jpg. Capitalisation does not matter either, which quietly solves the most common cause of missing pictures when a list was typed by one person and the files were named by another.

A card can carry more than one picture. A signature, a school crest that differs by house, a small departmental logo: each is another column in the list and another archive named after it. Load them one after another and each frame draws from its own set.

What happens when a photograph is missing

In any real batch some pictures will be missing or misspelt. The tool reports how many rows in each archive found no match, and it reports it while you are still working rather than at the end. That number is the single most useful thing on the screen when you are preparing a large run, because it turns a vague worry into a count you can act on.

Cards whose photograph is missing still print, with an empty frame. This is deliberate. A batch of three hundred should not fail because one file name has a typo, and an empty frame is obvious enough that nobody hands the card out by mistake. Fix the list or the archive, load it again, and the count drops.

Choosing a layout

The template gallery covers the usual cases: a school student card, a college card, a dark office badge, a minimal staff card, a visitor pass, an event badge and a library card. Choosing one sets the size, the colours and the arrangement in a single step.

It also does something less obvious and more useful. It reads your column headings and matches them to the places on the card, so a heading called Name lands on the name line and one called Photo becomes the portrait. The matcher understands variations, so Full Name, Student Name and NAME all find the same slot, and Roll No satisfies a slot that was looking for a roll number.

Where a template asks for something your list does not contain, the line is quietly dropped rather than printed with an unresolved marker showing. A card that says Course on two hundred copies because nobody had a course column is a mistake worth designing out.

Designing from scratch

A blank card is equally workable. Drag a column from the panel on the left and drop it where you want it: columns that look like pictures become photograph frames, and the rest become lines of text already carrying the right marker. Anything you place can then be moved, resized and rotated with the handles.

Beyond merged fields there are the usual pieces: plain text, a fixed image such as a logo, rectangles, ellipses, lines, triangles, polygons, stars, arrows and speech bubbles, plus icons and emoji. Each has its own small set of controls in the panel on the right, and every position is given in millimetres so a design can be specified rather than eyeballed.

Text is where merging really lives. A marker can sit anywhere inside a line, mixed with ordinary words, so a single text box can read as a sentence and still print each person's own details. That is usually neater than three separate boxes stacked up.

Codes that scan

A QR code or a barcode on a card is only useful if it carries that person's number rather than a sample. Both take a merged value, so the code is generated per card from the row it belongs to. Barcodes cover the common symbologies, and QR codes accept anything at all, including a full web address with a field embedded in the middle for a system that looks people up by number.

Codes are redrawn at full resolution when the batch is exported rather than being scaled up from a screen preview, which is the difference between a code that scans off a printed card and one that almost does.

Checking before you commit

The most valuable habit with a batch tool is to look at real entries before producing anything. Step through a few people with the arrows and watch actual names and faces appear in the layout. Long names are the usual surprise: a box sized around a short one will wrap or overflow when someone with three given names arrives.

The preview of every card at once is the other check worth doing. Problems that are invisible one at a time — a column that is empty for a whole class, a set of photographs that were all taken in portrait except four — are obvious when the batch is laid out together.

Where a single photograph sits badly in its frame, it can be nudged and zoomed for that person alone. The adjustment belongs to that row, so correcting one awkward portrait does not move the frame for everybody else.

Fronts and backs

Most organisational cards have something on the back: a return address, terms of use, an emergency contact, a signature line, a barcode. The back is a second side of the same card and is designed the same way.

It also changes how the batch is exported. With a back in use, the one-card-per-page file alternates front and back so a duplex card printer produces finished cards, and the print sheet lays out every front and then every back so the two stacks align when the paper is turned over. Getting that ordering wrong is a classic way to waste a box of card stock.

Getting the cards out

There are three ways to leave with the batch, and which one you want depends entirely on what will do the printing. A PDF with one card per page suits a dedicated card printer that feeds blank plastic cards: each page is exactly the size of the card, so nothing needs scaling.

A print sheet is for ordinary paper or card stock. Several cards are arranged on an A4 or Letter page with light cut marks at the corners, ready to be trimmed with a guillotine. This is what most schools and small offices actually use, because a card printer is an expensive machine for a job done twice a year.

A ZIP of PNG images is the third option, for feeding the cards into another system, sending them to a print shop that asked for images, or keeping a record. Each file is named with its row number and the person it belongs to, so the set stays sortable.

All three are produced on your own machine. Nothing is uploaded at any point, which for a file full of children's names and faces is not a nice extra but the whole point.

Why nothing is uploaded

A staff or student list is exactly the sort of file that should not be posted to a website. It is personal data about identifiable people, often including minors, and once it has been sent somewhere you no longer control what happens to it. Most free card generators work by uploading, which is why they can be free.

This one runs entirely as JavaScript in the tab you have open. The CSV is read by the browser, the photographs are unpacked by the browser, the cards are drawn by the browser, and the files you download were assembled a few centimetres from where you are sitting. Load the page, disconnect from the internet, and the entire batch still works — which is the simplest way to prove the claim rather than merely make it.

Keeping the design for next year

Save project keeps the design as a small file on your machine, and opening it later brings the layout back ready for a new list. The design is saved; the list and the photographs are not. That is intentional. A design file can sit in a shared folder without containing anybody's personal details, and next year's batch is a matter of loading this year's design and pointing it at the new list.

It also means the design is the thing worth versioning. Once a card has been through a printing run and survived, that saved file is the record of what worked.

Help

How the Bulk ID Card Maker works

Design one card, then let your list fill it in. Load a CSV of people, drop a photo ZIP on top, and every row becomes its own finished card — hundreds of them in one go, ready to print. Everything happens inside your browser: the list, the photos and the finished cards never leave your device.

Load your list

Export a CSV from a spreadsheet, a school system or an HR export — the first row must hold the column headings. Each column appears down the left, and each row below becomes one card. No list yet? Press "try sample data" to see the whole thing working with a handful of made-up people.

Pick a template, or start blank

The template gallery has designs for schools, colleges, offices, visitors, events, staff and volunteers. Choosing one does more than set the look: it matches your column headings to the places on the card, so a column called Name lands on the name line and Photo becomes the portrait, with no dragging at all. Anything it guesses wrong you can fix by dragging.

Add the photos

Put every portrait in one ZIP file and name that ZIP after the column that holds the file names — a column called Photo means Photo.zip. Inside, the file names must match the values in that column, so a row reading "amy.jpg" needs amy.jpg in the ZIP. Load one ZIP per photo column, so a card can carry a portrait and a signature at once.

Design the card

Drag a column from the left onto the card to place it, or add text, shapes, a QR code, a barcode, an icon or an emoji. Anything you type can contain a merge field in double braces, so "ID: {{Roll No}}" prints each person's own number. Front and back are separate sides of the same card, and both print.

Check a few, then export

Step through real entries with the arrows to see actual names and faces before you commit, and nudge any portrait that sits badly in its frame. Preview all shows the whole batch as a contact sheet. Then export: a PDF with one card per page for a card printer, a print sheet with several cards to a page and cut marks for ordinary paper, or a ZIP of PNGs.

Nothing is uploaded

A staff or student list is exactly the kind of file you should not be posting to a website. This tool never sends one: the CSV, the photo ZIP and the finished cards are all handled by JavaScript inside your own browser. Load the page, switch off your internet, and the whole batch still works.

Good to know

Your list never leaves the building

Names, roll numbers, staff IDs and faces are all processed on your own machine. Nothing is uploaded, so there is no server copy to worry about and no data-protection paperwork to file.

Merge fields work inside any text

Type {{Name}} anywhere in a text box and each card prints that row's value. Mix them with ordinary words — "Class {{Class}} · Roll {{Roll No}}" — and put them in a QR code or barcode too, so every card scans to its own number.

Templates map your columns for you

Pick a template and it looks at your headings, matching Name, Photo, ID, Department, Class, Blood Group and the rest to the right places automatically. Common variations are understood, so "Full Name", "Student Name" and "NAME" all land correctly.

Photo names must match exactly

The value in the photo column has to be the file name inside the ZIP. Any row whose photo is missing still prints, with an empty frame, and the tool tells you how many were not found so you can fix the list rather than discovering it after printing.

No watermark, no cap on how many

Ten cards or two thousand, the tool is the same and nothing is stamped on the output. There is no paid tier and no export limit.

Common questions

What does my CSV need to look like?
An ordinary spreadsheet export. The first row holds the headings — Name, Class, Roll No, Photo and so on — and every row after it is one person, so one card. Commas inside a value are fine as long as the value is quoted, which is what Excel, Google Sheets and LibreOffice all do automatically. Save as CSV and load it.
How do I get the photos onto the cards?
Put the pictures in a ZIP and name the ZIP after the column that lists the file names. If your CSV has a Photo column containing amy.jpg, ben.jpg and so on, make Photo.zip with those files inside and load it. Folders inside the ZIP are fine — only the file name is matched. You can load several ZIPs when a card needs more than one picture, for example Photo.zip and Signature.zip.
What if a photo is missing or misspelt?
That card still prints, with an empty photo frame, and the tool reports how many rows could not find their picture. That is deliberate: a batch of two hundred should not fail because one file name has a typo, and you want to know before you print rather than after.
Can each card have a different QR code or barcode?
Yes. Put a merge field in the code's value — {{Roll No}} or {{Staff ID}} — and each card carries its own. QR codes take anything, including a whole URL with a field in the middle, and barcodes cover Code 128, Code 39, EAN-13, EAN-8 and UPC-A. Codes are drawn at full resolution when you export, so they scan properly off a printed card.
What can I export, and which should I use?
Three things. A PDF with one card per page is for card printers that feed blank plastic cards. A print sheet puts several cards on an A4 or Letter page with light cut marks, which is what you want for printing on card stock and trimming by hand. A ZIP of PNGs is for feeding another system, or for anyone who wants the images. All three are produced on your device.
Do the cards have a back?
Yes. Switch to Back in the toolbar and design it like the front — rules, a signature line, a barcode, terms, whatever your organisation needs. Cards with a back export as two pages each in the one-card-per-page PDF, and the print sheet lays out all the fronts and then all the backs so the stacks line up when you turn the paper over.
Can I adjust a photo that sits badly?
Yes, and only for that person. Select the photo frame, step to the entry you want to fix, and use the zoom and nudge controls: the change is remembered for that row alone, so one badly-cropped portrait does not force you to move the frame for everybody.
Is it really free, and can I use the cards commercially?
Yes to both. There is no account, no watermark and no limit on how many cards you make, and the cards you produce are yours to use however you like, including for a business or an institution.
Will my work still be there tomorrow?
Use Save project to keep the design as a small file on your machine, then Open project to carry on. The design is saved, not the list or the photos — those stay wherever you keep them, which is the right place for personal data. Load the CSV and ZIP again and the cards rebuild.