Make labels with barcodes from a list
Paste a list or open a CSV file, write the label once with {{Column}} fields, add a Code 128, EAN-13 or QR code if you need one, and download a PDF that fits standard label sheets. The whole job runs inside your browser: the list never leaves your device.
Label Maker
or drop a file here. It stays on this device.
- Runs on your deviceNo upload. Your text stays in your browser.
- Free, no accountNo sign-up, nothing added to your data. Limits: 5,000 labels in one PDF, 20,000 rows and 1,000 columns in the list, 1,000 copies of one row and 80 characters in a Code 128 barcode.
- FormatsCSV, TSV or pasted spreadsheet cells in, PDF out
- Works onCurrent Chrome, Edge, Firefox and Safari, desktop and mobile.
How it works
- Paste your list into the box, or open a CSV file from your device. The first row normally holds the column names. With no list at all, every label is the same apart from its running number.
- Pick your label sheet, write the label text with {{Column}} fields, and choose a Code 128, EAN-13 or QR code if the label needs one. The close-up and the sheet update as you type.
- Set copies, the labels already used on the first sheet and, if your printer is off by a little, the offsets. Download the PDF and print it at 100% (Actual size), never Fit to page.
Questions
Can I keep a label design for next time?
Yes, as a file. The design and the list are not stored in the browser and there is no account, so press Save this design to download a small file with the sheet, the label and the printing choices, and open it again later. The file never holds your list.
Which label sheets fit?
The same layouts as Print templates: A4 sheets with 8, 14, 21, 24 and 65 labels and Letter sheets with 6, 10, 30 and 80 labels. Sheets from different makers differ by fractions of a millimetre, so check yours against the calibration page. For anything else choose Custom layout and type the measurements of your sheet.
Which barcodes can it draw, and what may they hold?
Code 128 holds ASCII: English letters, digits and punctuation, up to 80 characters, and the tool picks the shortest encoding by itself. EAN-13 holds 12 digits, to which the check digit is added, or 13 digits, whose check digit is verified; a wrong check digit is reported with the row number instead of being printed. A 12-digit UPC-A number works as EAN-13 with a 0 in front. QR codes hold any text, links included, in UTF-8, in every size up to version 40 and with four error-correction levels. Leading zeros in your list are kept.
Will the codes scan?
The bars and squares are drawn as vector shapes, so they print at the full resolution of your printer. The encoders are checked against an independent barcode library (ReportLab), the tests read every bar back out of the PDF, and the rendered sheet is decoded with a scanner library (zxing-cpp) when the test machine has it. What no web page can promise is your printer, your label stock and your scanner: the page warns when the narrowest bar would be finer than common guidance, and you should scan a test print before a long run.
Does this give me official EAN numbers?
No. EAN and UPC numbers for retail are issued by GS1. This tool draws the number you already have and checks its check digit; it cannot register a number or tell you whether one is assigned to your product.
The print is a little off on every label. What can I do?
First make sure the print dialog says 100% or Actual size. If every label is off by the same amount, download the calibration page, print it on plain paper and hold it against a label sheet to the light. Type the difference into the two offset fields, up to 20 mm each way. The calibration page also carries two lines of exactly 100 mm (on smaller paper, such as A5 or a custom size, lines of 50, 20 or 10 mm that fit it, each with its length printed beside it): if they measure shorter or longer, the printer is scaling the page.
I have used some labels of a sheet already. Can I reuse it?
Yes. Type how many labels are gone, counted row by row from the top left, and the first sheet starts after them.
What are the limits?
Up to 5,000 labels in one PDF and 20,000 rows in the list; up to 1,000 copies of one row. Latin, Chinese, Japanese and Korean text is supported. Unsupported characters are reported with the row. QR code content can hold Unicode text. Label text shrinks to fit down to 5 pt, then is shortened with an ellipsis and a note; if a label leaves its text too little room for one line of 5 pt text, no PDF is made and the page says how much room there is. Labels do not currently include images or logos.
How do I print a different number of labels for each row?
Add a column with the number, for example Qty, and choose 'The number in a column' under Copies of each label. A row with 0 is left out.
How are language fonts loaded?
A Latin document uses small built-in fonts. Text needing Chinese, Japanese or Korean loads a Noto Sans CJK font from this site, on demand, then embeds only the glyphs used. Common Chinese (the 7,445 characters of GB2312, its 6,763 Chinese characters and 682 symbols such as ①, ℃ and →, with Chinese punctuation and full-width forms) needs only the common-Chinese font, 2.3 MB once; any other Chinese, Japanese or Korean character loads the full font instead, about 22 MB once. No document text is uploaded. Unsupported characters are reported. Noto Sans CJK has one weight, so in a first line set in bold its Chinese, Japanese and Korean characters stay regular while its Latin letters are bold; the page says so beside the box. Load the font your text needs before disconnecting if you need multilingual output offline.
Is my text uploaded?
No. The page loads a small script into your browser and every operation runs on your device. You can check this yourself in the browser's network panel: after the page has loaded there are no upload requests. Closing the tab discards the text.
Do I need an account or to pay?
No. These basic tools are free and add nothing to your data. The only limits are the tool's own: 5,000 labels in one PDF, 20,000 rows and 1,000 columns in the list, 1,000 copies of one row and 80 characters in a Code 128 barcode. Within them, the practical limit is your device's memory.
What does this page keep in my browser?
Nothing you open or type. While the tab is open, the tool pages keep a short list of the steps taken in it, in the tab's session storage: the step (page opened, started, succeeded, first success, used again or failed), the tool's name, the time, how many files were used and, for a failure, an error code; never a file name, the contents of a file or your text. It holds at most the latest 200 steps, and the browser deletes it when the tab closes. The page never sends it. Where a Report a problem button is shown, you can attach the last 20 steps to your report; nothing is attached unless you tick that box. In local storage the page keeps only choices you made: a Light or Dark theme until you choose System again, the language you picked with the EN / 中文 switch if it differs from your browser's language, and this tool in your recently used list if you switched that list on at the tools page.
Questions or problems
Found a problem or missing feature? Tell us. Please describe the steps; do not send confidential data.