Bulk Barcode Labels — CSV to Printable PDF Sheets
Import a local CSV, TSV, or text file, or paste a column straight from Excel or Sheets, and download a print-ready PDF of barcode labels — aligned to Avery 5160, Avery 5163, Avery L7651, or your own label grid in millimetres. Every row is validated first and every check digit is verified by this site's own arithmetic, independently of the barcode renderer. The whole thing runs in your browser: your product list is never uploaded anywhere.
Generate label sheets
Runs locally in your browser — nothing you paste is transmitted or stored.
Who this is for
Anyone who needs a box of labelled products rather than one barcode at a time: a shop putting shelf labels on stock, a warehouse labelling bins and cartons, a seller preparing products for a marketplace, a library or lab sticking asset codes on equipment. The pattern is always the same — the numbers already live in a spreadsheet, and the job is getting them onto physical labels without paying for yet another subscription. Most tools in this category paywall exactly this step. This one does not: paste the column, pick the sheet, download the PDF. If labels must merge live from a database, drive an industrial printer, or run continuously on a production line, compare this workflow with thebarcode software decision guide.
Getting a column out of Excel or Sheets
Select the column of barcode numbers (click the column header, or drag over the cells), copy, and paste into the box above — each cell becomes one line. To print a name or SKU under each barcode, select two adjacent columns — values first, text second — and paste both; Excel separates the columns with a tab, which the tool reads automatically. From a CSV file, open it in any editor and paste the relevant lines; a value,text pair per line works the same way. One caution for spreadsheet users: formatting a column of long numbers asNumber can make Excel display them in scientific notation and mangle the paste — format barcode columns as Text before you paste values in.
Template geometry
The three presets use the manufacturer-published sheet geometry, and the figures below are generated from the same data the PDF placement code uses, so this table cannot drift from what actually prints. Our unit tests verify that each template's margins, labels, and gaps reproduce the page dimensions exactly.
| Template | Page | Label size | Grid | Per sheet | Top margin | Side margin | Column gap |
|---|---|---|---|---|---|---|---|
| Avery 5160 | Letter | 66.67 × 25.4 mm | 3 × 10 | 30 | 12.7 mm | 4.76 mm | 3.17 mm |
| Avery 5163 | Letter | 101.6 × 50.8 mm | 2 × 5 | 10 | 12.7 mm | 3.97 mm | 4.76 mm |
| Avery L7651 | A4 | 38.1 × 21.2 mm | 5 × 13 | 65 | 10.7 mm | 4.75 mm | 2.5 mm |
For any other stock, the custom mode takes the geometry in millimetres — label size, grid, margins, gaps, on A4 or Letter — and refuses a grid that does not fit the page, telling you by how much. Custom sheets get hairline cut guides around each label; the Avery presets deliberately do not, because printing guides onto die-cut labels would put lines on the labels themselves.
Print at 100% — the one setting that ruins alignment
The PDF places every barcode at exact millimetre positions, but PDF viewers love to "help" by scaling pages. In the print dialog choose Actual size or set scale to100% — never "Fit to page" or "Shrink to fit", which compress the layout by a few percent and walk every row progressively off its label. Print the first sheet on plain paper and hold it over the label sheet against the light before committing the real stock.
What validation happens before printing
Every row goes through the same engine as this site's single-barcode generators. GTIN-family rows (EAN-13, EAN-8, UPC-A, ITF-14) follow verify-or-compute semantics: enter the data digits and the check digit is computed and appended; enter the full number and the final digit is verified, with a mismatch failing the row — never silently "fixed". Text symbologies (Code 128, Code 39) are checked against their character sets. Rows that fail are listed with their line number and reason, and only valid rows print — the summary states both counts. The independent length, character-set, and check-digit checks all happen before the accepted payload is sent to the renderer. They do not decode the PDF or inspect the printed bars, so test one finished sheet with your scanner. For check-digit work on its own — including bulk validation of a whole column without printing — use thecheck digit calculator.
One honesty line, because barcode sites love to blur it: a barcode that scans isstructurally valid, meaning the digits are internally consistent. That is not the same as a licensed GTIN registered to your company — retailers and marketplaces check the latter against GS1's registry. Whether you need officially licensed numbers depends on where you sell: seedo I need a GS1 barcode?
Bulk label FAQ
Does this really line up with Avery label sheets?
Yes — the three presets use the manufacturer-published geometry for Avery 5160 (30 labels, Letter), Avery 5163 (10 labels, Letter), and Avery L7651 (65 labels, A4), and our layout tests verify that margins, labels, and gaps reproduce the page dimensions exactly. Two things remain on your side: print the PDF at 100% scale (no "fit to page"), and run a one-sheet test print on plain paper first, held over the label sheet against the light. Equivalent stock from other brands that advertises the same layout will also work.
How many labels fit on a sheet, and how many can I generate at once?
Avery 5160 holds 30 labels per sheet, Avery 5163 holds 10, and Avery L7651 holds 65. The tool accepts up to 300 input lines per pass and adds PDF pages automatically, so a 300-row column on 5160 stock produces a 10-page PDF. Imports and pasted lists longer than 300 rows are cut off honestly, so process larger files in batches.
Is it really free? What is the catch?
It is free, with no signup, no watermark, and no row limit other than the honest 300-per-pass cap. There is no server-side quota to meter because there is no server involved: parsing, validation, barcode rendering, and PDF assembly all run as JavaScript in your browser, and your product list never leaves your device. The site is supported by advertising, not by charging for the tool.
Why did one of my rows fail?
Each row goes through the same validation as the single-barcode generators: EAN-13 rows need 12 or 13 digits, EAN-8 7 or 8, UPC-A 11 or 12, ITF-14 13 or 14 — and when you supply the full length, the final digit is verified as a check digit and a mismatch fails the row rather than being silently "fixed". Code 128 rows fail on characters outside printable ASCII, and Code 39 on characters outside its 43-character set. The error table names the line number and the exact reason, so you can fix the source spreadsheet instead of guessing.
Scope, honestly: this tool validates the mathematics and places barcodes at exact template positions. It cannot verify that your printer is set to 100% scale, that your label stock matches the template you picked, or that your scanner tolerates your print quality — test one sheet before printing hundreds. Everything runs locally in your browser; see the methodology page for how the verification layer is tested.