Name Badge Maker

Upload a CSV or Excel file with your attendee list, configure the badge layout, and download a print-ready PDF — all in your browser, nothing uploaded anywhere.

Step 1 — Upload your attendee list

📋
Drag & drop your CSV or Excel (.xlsx) file here
or click to browse

Your file stays in your browser — nothing is sent to any server.

Step 2 — Badge layout & paper

Badge size:

Step 3 — Text style

How it works

  1. 1
    Prepare your spreadsheet. Make a CSV or Excel file with one attendee per row. The first row can be a header (e.g. "Name", "Title", "Company"). You can have multiple columns — you choose which ones appear on the badge.
  2. 2
    Upload and select columns. Drop the file onto the upload area. The tool reads it entirely in your browser using PapaParse (CSV) or SheetJS (Excel). Click the column names you want to print — the first selected column uses the large font, additional columns use the smaller font.
  3. 3
    Set the layout. Pick your paper size and how many badge columns × rows fit per sheet. The calculator shows the resulting badge dimensions. For A-one 28791 or Avery 5395 style label sheets use the 2×4 preset. For small name-card badges use 4×7.
  4. 4
    Download and print. Click "Generate PDF". pdf-lib assembles every attendee's badge into a multi-page PDF (one page per sheet, auto-paginated). Print at 100% scale with no scaling/fit-to-page — the badge dimensions will match your sheet exactly.

Tip for label paper: After downloading, open in your system PDF viewer, choose "Actual size" or 100% zoom, and disable any "Scale to fit" option before printing.

Frequently asked questions

What CSV format do I need?
Any standard CSV works — comma-separated, UTF-8, one person per row. The first row is treated as a header if it contains text labels rather than names (it will be skipped automatically). You can also drag an Excel .xlsx file directly without converting it first. If your file uses semicolons as a delimiter (common in Europe), the tool detects that automatically via PapaParse.
Does my data get uploaded anywhere?
No. Every step — CSV parsing, Excel decoding, badge layout, and PDF generation — runs entirely in your browser using JavaScript libraries. Your attendee list never leaves your device. This is especially useful when badge lists contain personal data governed by privacy policies.
How do I match the layout to commercial label sheets like Avery or A-one?
Check the label sheet package for the number of labels per page (e.g. Avery 5395 = 2 columns × 4 rows = 8 per A4 sheet). Enter those numbers in the Columns and Rows fields, then set the margin and gap to match the sheet's specified margins. The "Badge size" preview shows the cell size so you can verify it matches the label dimensions on the package. Print at 100% / Actual Size with no scaling.
Can I print two lines per badge — name and job title?
Yes. Select two columns in Step 1 (e.g. "Name" first, then "Title"). The first selected column is printed in the primary (large) font; each additional selected column is printed below it in the secondary (smaller) font. You can reorder your selection by clicking to deselect and re-select columns in the order you want them to appear.
How many attendees can it handle?
There is no hard limit. The tool has been tested with lists of 500+ rows. Each page holds (columns × rows) badges; if your list exceeds that, additional pages are added automatically. Very large lists (1000+) may take a few seconds to generate — the progress bar shows live progress.