Label & Barcode Sheet Generator

Upload a CSV with SKU, Product Name, and Barcode columns to generate a print-ready sheet for Avery 5160 labels (3×10, 30 per sheet).

Why this matters

Lining up dozens of barcode labels by hand in a spreadsheet or design tool is slow and error-prone, and most barcode generators only make one label at a time. This takes a plain CSV — the kind any inventory system or spreadsheet can export — and turns it straight into a ready-to-print sheet, without uploading your product list anywhere.

Nothing is uploaded. Your CSV is parsed and the PDF is built entirely in your browser (JavaScript, canvas, and pdf-lib) — the file never leaves your machine. There is no server upload endpoint in this spoke's code.

Print alignment correction (mm)

Print a test sheet first. If everything is shifted the same direction, nudge these and regenerate — don't reprint until it lines up.

Below generator

How to use it

  1. Export your SKU list as a CSV with SKU, Product Name, and Barcode columns (see the format below).
  2. Upload it and check the preview — the first few rows are shown so you can catch mistakes before printing.
  3. Print a test sheet on plain paper, check the alignment against a real label sheet, and adjust the offset fields if needed.
  4. Generate the final PDF and print it on Avery 5160 label sheets.

CSV format

SKU,Product Name,Barcode
ABC-001,Blue Widget,012345678905
ABC-002,Red Widget,012345678912

Header names are matched case-insensitively; "Barcode Value" also works for the last column. Barcodes are rendered as Code128, which accepts any alphanumeric value — it doesn't have to be a real UPC/EAN.

Example scenarios

Related guides

Frequently asked questions

Does my product data get uploaded anywhere?

No. The CSV is read and the PDF is built entirely in your browser using JavaScript and pdf-lib — there's no server upload endpoint in this tool's code at all, so your SKU list never leaves your machine.

What barcode format does it use, and does it need to be a real UPC/EAN?

Labels are rendered as Code128, which can encode any alphanumeric string. It doesn't have to be a registered UPC/EAN — an internal SKU or reference code works fine, as long as your scanner reads Code128.

My printed labels are shifted off the sheet — how do I fix it?

Print one test sheet on plain paper first and hold it up to a real Avery 5160 sheet (or just check the margins). Use the horizontal/vertical offset fields to nudge everything the same direction, then regenerate and test again before printing on actual labels.

Can I use a different Avery label size?

Not yet — this only supports Avery 5160 (3x10, 30 labels per sheet) for now.