Bulk barcode and label sheet generator

Many barcodes from a list or CSV: label-sheet PDF, ZIP of PNGs or SVGs, row report.

12 digits: the 13th, the check digit, is added. Typing all 13 checks it.

Paste a column from a spreadsheet or a CSV. Example: 400638133393,10,Ground coffee 500 g. A header row such as sku,copies,caption is skipped.

Start printing at position N + 1, counted left to right, top to bottom. Print one page with outlines on plain paper, hold it over a label sheet, and correct the drift here.

0.33 mm is EAN's 100% size; the barcode shrinks below this only when the label is too narrow.

3 of 4 rows valid, 12 labels on 1 page(s). 1 rows left out.

First label: bars 0.319 mm per module (97% of EAN nominal), 12.0 mm tall, 36.1 mm wide with quiet zones.

Sheet preview
Page 1 of 1
Preview of page 1 of the label sheet
Download

Print the PDF at 100% or "Actual size", never "Fit to page": scaling changes bar widths and moves every label off its place.

Row report
LineValueCopiesStatus
240063813339315 check digit 1 added
359012341234573 check digit 7 added
440063813339322 The check digit should be 1. Delete the last digit and it is added for you.
597801430072344 check digit 4 added

What this tool does

Paste one value per line (or a CSV column straight from a spreadsheet) and the tool makes a barcode for every row with the same encoders as the single barcode generator: EAN-13, EAN-8, UPC-A, Code 128, Code 39 and ITF-14. Add a number after a comma to print several copies of a row, and a third column for a caption under the barcode, such as a product name. Then:

  • PDF for printing: barcodes placed on a label sheet at true size, as vector bars, over as many pages as needed. Choose an Avery-style sheet (L7651 with 65 labels of 38.1 × 21.2 mm, L7160, L7159, L7163, US Letter 5160 and 5167) or set up your own grid.
  • ZIP of PNG or SVG files: one image per row, named after its value, for a website, a catalogue or a label designer.
  • Row report: every line marked OK, "check digit added", or the reason it was rejected, with the line number to fix.

Everything happens in the browser. The list never leaves your device; the only download is the site's own font file for the PDF.

Check digits and validation

EAN-13, EAN-8, UPC-A and ITF-14 end in a GS1 check digit computed from the other digits. Type 12 digits for EAN-13 and the 13th is added for you (400638133393 becomes 4006381333931); type all 13 and the last one is checked, so 4006381333932 is reported as wrong with the correct digit named. Code 128 takes any basic ASCII text but not accented letters, and Code 39 takes capitals, digits and a few symbols. Rows that fail are left out of the files and listed in the report, so one typo never produces a sheet of unreadable labels.

Getting the size right

A barcode's narrowest bar, the module or X-dimension, decides whether it scans. For EAN and UPC, GS1 sets 0.330 mm at 100% magnification and allows 80% to 200% (0.264 to 0.660 mm). The tool fits each barcode to the label: it keeps the module at or below the size you choose (0.33 mm by default) and shrinks it only when the label is too narrow, then reports the module width, magnification and bar height for the first label. An EAN-13 needs 113 modules including its quiet zones, so on a 38.1 mm label with 1 mm margins it gets 36.1 / 113 = 0.319 mm, about 97%: fine. On a 25 mm label it would drop below 80% and the tool warns you. ITF-14 on cartons needs at least 0.495 mm; Code 128 and Code 39 have no single rule, and the tool warns below 0.19 mm, a common practical minimum for office printers.

Quiet zones (the blank margins either side) are part of the symbol: 11 modules left and 7 right for EAN-13, 10 for Code 128. They are always kept inside the label.

Printing a sheet that lines up

Print the PDF at 100% / Actual size, never "Fit to page", which shrinks everything by a few percent and moves every label off its place. Printers also feed paper slightly off: print one page with "Draw label outlines" on plain paper, hold it against a label sheet in front of a light, and enter the drift in "Shift right" and "Shift down". For a half-used sheet, "Skip the first labels" starts at the next free position. The article printing barcode labels correctly goes through quiet zones, sizes and printer settings in detail. To merge the PDF with other documents, use the PDF toolkit; to unpack the image files, the ZIP tool.

Frequently asked questions

Can I make barcodes from an Excel or Google Sheets column?

Yes. Copy the column (and optionally columns for copies and a caption) and paste it. Tabs, commas and semicolons are all accepted, and a header row such as sku,copies,caption is skipped.

Which label sheets are supported?

Avery L7651 (65 per A4 sheet, 38.1 × 21.2 mm), L7159, L7160, L7163, US Letter 5160 and 5167, a plain A4 grid, or any custom grid of columns, rows, label size and gaps on A4 or Letter.

Why are my printed labels misaligned?

Usually the print dialog scaled the page (choose Actual size or 100%), or the printer feeds a little off. Print a test page with outlines, compare it with a sheet, and set the shift offsets.

What happens to rows with errors?

They are left out of the PDF and ZIP and listed in the row report with the reason, such as a wrong check digit or a character the symbology cannot encode.

How small can an EAN-13 barcode be?

GS1 allows 80% magnification: a 0.264 mm module, about 29.8 mm wide with quiet zones. Smaller is out of specification and may fail at checkouts. The tool warns when a label forces it below that.