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.
