← Back to the tool

Barcode labels from a spreadsheet

Code 128 symbols drawn as vector geometry, with the text lines you need underneath.

Why vector, and why it matters

A Code 128 barcode encodes its data entirely in the widths of its bars and the gaps between them. A scanner measures those widths and compares them against the narrowest element it can find. Anything that changes a bar's width changes what the symbol says, or makes it unreadable.

That is the problem with barcodes embedded as images. A raster barcode is fixed at whatever resolution it was generated at, and everything downstream — scaling to the label, the printer's own resampling, anti-aliasing at the edges — nudges bar boundaries by fractions of a pixel. On screen it looks identical. Under a scanner it is a symbol whose bars are the wrong width.

Here each bar is drawn as its own filled rectangle in the PDF, placed at an exact position and width in inches. There is no resolution to lose. Printed at any DPI, the bar edges land where the geometry says they land.

Quiet zones

A scanner needs blank space either side of a symbol to find where it starts and stops. Every sheet format here reserves that space explicitly, as data rather than as a happy accident of layout, and nothing — no text, no border, no fill — is drawn inside it.

On Avery 5160, for example, a two-inch symbol is centred on a label two and five-eighths inches wide, leaving five-sixteenths of an inch clear on each side. That is comfortably more than the specification requires.

Bar width and label size

The wider the label, the wider each bar can be, and wider bars survive print and scan tolerances better. A ten-character value on a 5160 gives a module width around fourteen thousandths of an inch. The same value on a 5163 shipping label has considerably more room.

If you are printing barcodes and getting intermittent scan failures, the variable to investigate first is bar width, then print scaling, then the printer itself. The calibration sheet prints the same value at four different module widths and two bar heights on one page, so you can find where your own printer and scanner stop agreeing rather than guessing.

Using it

Load your spreadsheet, switch the content mode to barcode, and choose the column holding the value to encode. Map the remaining columns to text lines underneath. Code 128 covers the full printable ASCII range, so product codes, SKUs, order references and serial numbers all encode without special handling. Amazon FBA sellers wanting the same thing with the title and condition lines already mapped can start from the FNSKU preset instead.

Print barcode labels

1 Your spreadsheet

.xlsx, .xls or .csv. The file is read inside this tab and never uploaded.

2 What goes on each label

Assign a column to each line. Lines you leave unused are skipped, so the remaining lines close up rather than leaving a gap.

Pick a column holding a count to repeat each row that many times.

3 Label sheet

4 Preview and print

Single label

First page

Print at actual size. Never use “Fit to page” or “Shrink to fit” — either one moves every label out of alignment with the sheet.

Related