Print-ready barcode label sheets
Pick an Avery sheet or a DYMO/Zebra thermal roll template, bring in rows from the bulk generator or paste a list, and download a print-ready PDF — correctly spaced, DPI-matched, and scan-tested, no design software required.
Choosing a sheet template
Avery 5160 and 8160 (30 labels/sheet, 1" x 2.625") are the most common address-label size and work well for small product or retail barcodes. Avery 5163 (10/sheet, 2" x 4") gives you far more room — useful for a barcode plus a longer product name or price. L7160 (21/sheet) and L7163 (14/sheet) are the equivalent A4 sheets for anyone outside the US. If none of those match what you actually have in hand, "Custom template" builds a grid from a page size, margins, row/column count, and gaps — the same numbers usually printed right on the label packaging. Printing on a DYMO or Zebra thermal printer instead of a laser/inkjet sheet? Skip ahead to "Roll labels and thermal DPI matching" below. Printing Amazon FBA labels specifically? The FNSKU label maker is preconfigured for Avery 5160 and Code 128 — Amazon's minimum accepted size and symbology — so there's no template or barcode-type picking to do.
Roll labels and thermal DPI matching
The "Roll labels (DYMO/Zebra thermal)" group covers DYMO 11355, 30252, and 30334, plus Zebra 2"x1" and 4"x6" — each one a single-label template that outputs one PDF page per label, sized to the label's exact dimensions (how DYMO/Zebra printer software expects a print job). Picking one of these reveals a DPI selector (203 dpi by default, 300 dpi for higher-resolution Zebra printers) — match whatever your printer is actually set to. Behind the scenes, every bar in the barcode is sized to a whole number of printer dots at that density instead of a continuously-fit width, and the computed module width (in both mm and mils) shows up right next to the preview so you can see exactly what will print. That's the fix for the single most common thermal-label complaint — barcodes that look fine on screen and print cleanly, but a scanner can't read — and it's why, unlike the sheet templates above, a barcode that can't fit a roll label at a reliably scannable width blocks Generate outright (with a suggestion: shorter data, numeric-only data, or a bigger label) instead of shipping a PDF that looks right and isn't.
Print settings: getting the spacing exactly right
The single most common cause of misaligned labels is a print dialog quietly rescaling the page. Always print this PDF at 100% scale — look for a "fit to page," "shrink to fit," or "scale to fit paper" setting and turn it off, since every Avery template here is already sized to the exact page dimensions it needs. Laser printers generally hold tighter tolerances than inkjet across a full sheet, but either works fine for a single test print — which is exactly what the "alignment marks" option is for: it adds faint gray crop marks at every label corner on page 1 only, so you can print one page on plain paper, hold it up against a real Avery sheet, and confirm the columns line up before committing your actual labels.
From spreadsheet to label sheet
The fastest path is /bulk: map your columns there, click "Send to label sheets," and your rows (plus every mapped column) land here already validated and ready to lay out — no re-typing, no re-uploading. Prefer to skip the spreadsheet entirely? Paste a plain list directly on this page, or generate one from a prefix and counter on the "Sequence" tab, and pick a barcode type. Either way, every label gets a proper quiet zone around the bars, and this page warns (without blocking you) if a barcode would print narrower than the retail-scannable minimum on your chosen template — useful when you're packing a lot of data onto a small label. Selling through Shopify? See /shopify for the export-to-labels walkthrough — line 1 and line 2 default to Title and Variant SKU automatically once your export lands here — or start from the barcode generator if you just need a single barcode first.
Up to 3 text lines: name, price, batch, or expiry
Below the template picker, map up to 3 text lines per label. Each one is independent: pull from a spreadsheet column sent over from /bulk, type a static string once (a lot number, a "Made in USA" note), or generate a sequence — a prefix plus a zero-padded counter, like LOT-0001, LOT-0002, and so on, one value per label. Line 1 renders above the barcode; lines 2 and 3 render below it, after the barcode's own printed number. Font size auto-fits down to a small floor before anything gets cut off, and if a line still can't fit — a long product name on a small label, say — it truncates with an ellipsis rather than overflowing the label's edge or overlapping the barcode; after the PDF generates, a summary lists exactly which rows and which line truncated, e.g. "Rows 14, 82: name truncated," so nothing prints wrong without you knowing.
Frequently asked questions
How do I print barcodes on Avery 5160 labels?
What size is an Avery 5160 label?
Can I print barcode labels for free?
Why won't my printed barcode scan?
Can I add product name, price, or expiry date to each label?
Can I print barcodes on a DYMO or Zebra label printer?
Keep going
CSV, Excel, or a pasted list — mapped columns, exported as a ZIP or sent here.
Shopify export walkthroughExport products, upload here, print labels — no app install.
Single barcode generatorJust need one barcode? Generate and download it directly.
Barcode won't scan?Quiet zones, size, thermal DPI, contrast — causes and fixes, plus a live tester.