The short answer
- Start with a real GS1-issued UPC and check the UPC first.
- Make the label in a generator that lays it out for your exact sheet or roll, then download the PDF.
- Print it at Actual size / 100%, with every “fit” or “shrink” option turned off.
- Check one page against the label sheet, then scan the first label before printing the rest.
What you need
- A UPC number for each product. It must be licensed from GS1 (or come from the manufacturer). A generator draws the barcode; it cannot give you a number. If you don't have one yet, get a UPC from GS1.
- A printer. Laser or inkjet for label sheets; a 203 or 300 dpi direct-thermal printer for rolls.
- Labels big enough for the barcode. At the smallest allowed size the barcode with its blank margins needs 1.174 in × 0.817 in (29.83 mm × 20.74 mm), plus a little edge margin. See label sheets and thermal rolls that fit a UPC.
- A way to test. Any free barcode-scanner app on your phone, or a USB scanner if you have one.
Step 1: Create the label for your stock
Start from a layout made for your exact label stock, not a loose barcode image pasted into a word processor. Word and similar apps resize pictures to fit a cell, often by a few percent and not always evenly in both directions, and you can't easily see that it happened. A layout made for the stock puts each barcode at a known size in a known position on the page.
-
Step 1: Type your UPC
Enter the 12 digits in the UPC label generator and choose Generate label. If a digit is missing or a spreadsheet dropped a leading zero, it tells you and suggests a fix you can accept with one click. It never changes a number by itself.
-
Step 2: Add text (optional)
Add a product name and a second line such as a SKU, size or price. Text is shortened to fit rather than squeezing the barcode, but each line takes height: on a 2¼″ × 1¼″ roll the barcode goes from 98% with a name to 89% with both lines, close to the 80% minimum.
-
Step 3: Choose your label stock
Pick your Avery sheet or thermal roll size. The generator chooses the largest full-height barcode that fits, between 80% and 200%.
-
Step 4: Set how many
Print a full sheet or a set number of labels. On a partly used sheet, pick the first empty label so nothing is wasted.
-
Step 5: Download the PDF
The PDF is the exact page size of your stock, with the same layout as the preview.
For many products at once, use the bulk barcode generator to print labels for many products: paste or upload a list of UPCs with names and quantities (CSV or an Excel file) and get one PDF. Free PDFs hold up to 250 labels each; larger runs can be split across several PDFs.
Step 2: Print at actual size
This is the step that ruins most home-printed barcodes. Many print dialogs scale PDFs to fit the paper by default. The barcode still looks fine on screen, but it prints a few percent smaller, a small barcode can drop below the 80% minimum, and on a label sheet each row drifts a little further off its label. Before you print, open the print dialog and set scaling to 100%.
Shrinks your labels
- Paper size
- Letter
- Scale
- Fit to printable area
- Pages per sheet
- 1
Barcode printed at ~94%
Prints them exactly
- Paper size
- Letter (same as the PDF)
- Scale
- Actual size / 100%
- Pages per sheet
- 1
Barcode printed at 100% (1.468″ wide)
| Where you print from | Set this | Avoid |
|---|---|---|
| Chrome | Open More settings, then set Scale to 100 (choose Custom and type 100 if needed). Paper size must match the sheet (Letter or A4). | Fit to printable area, Fit to paper |
| Microsoft Edge | Same idea as Chrome: under More settings, set the scale to Actual size or 100%. | Fit to page, Shrink to fit |
| Adobe Acrobat Reader | Under Page Sizing & Handling, choose Actual size (Adobe help). | Fit, Shrink oversized pages, Custom scale |
| Preview (Mac) | Click Show Details, choose Scale: 100%, and pick the right Paper Size. | Scale to Fit |
| Windows printer driver | In Printer properties / Preferences, set any “Reduce/Enlarge” or “Zoom” option to 100% and media type to Labels if offered. | Fit to page, Poster, N-up |
| Thermal printer driver | Set the paper (stock) size to your label size, choose the right sensing (gap or black mark), and run the printer's media calibration after loading a new roll. | Letter or A4 paper size on a label printer |
If the browser's built-in PDF viewer keeps scaling, download the PDF and print it from Acrobat Reader or Preview instead. Our PDFs also ask viewers not to scale them, but not every viewer listens.
Step 3: Calibrate alignment on plain paper
Label sheets are cheap; wasted ones add up. Print your first page on plain paper, put it on top of a label sheet and hold both up to a window or a light. If every label outline lines up, you're done.
- Everything is off by the same amount (say 1.5 mm down): your printer feeds the paper slightly off. That is normal. Measure the shift and enter it as a printer offset; offsets move the whole layout and never resize the barcode. Our calibration instructions walk through it with a test page.
- The top row lines up but lower rows drift more and more: the page was scaled. Go back to Step 2.
- Thermal rolls: if labels print across the gap between two labels, the driver's label size or gap sensing is wrong. Fix it in the printer settings and recalibrate the printer, rather than moving the design.
Step 4: Test-scan before printing the batch
Scan the first real label with a phone scanner app or a USB scanner. A pass means it reads quickly from a normal distance and shows exactly your 12 digits. Then measure it: from the first guard bar to the last, a 100% barcode is 31.35 mm (1.234 in). On an Avery 5163 label with a product name, the generator picks 164%, so expect 51.4 mm (149% and 46.7 mm if you add a second line).
If it doesn't scan or the number is wrong, check in this order:
- Scale: measure the bars as above.
- The number itself: a wrong check digit or a missing leading zero gives a valid-looking but different barcode.
- Print quality: smudged ink, faint or grey bars, glossy glare, or a thermal streak through the bars.
- Margins: text or the label edge too close to the left or right of the bars.
Phone apps are forgiving
Sheets vs thermal rolls
Label sheet
Avery 5163, 4″ × 2″, 10 per page. Barcode at 149% with a name and SKU line.
Thermal roll
2¼″ × 1¼″ (57 × 32 mm), one label per PDF page. Barcode at 89% with a name and SKU line.
| Setting | Label sheets | Thermal rolls |
|---|---|---|
| Printer | The laser or inkjet you have | A dedicated direct-thermal (or thermal-transfer) label printer |
| Best for | Occasional runs, many products per page | Regular labelling, one label at a time on demand |
| Ink | Toner or ink | None for direct thermal; a ribbon for thermal transfer |
| Durability | Good with laser on matte labels | Direct thermal fades with heat and sunlight; thermal transfer lasts |
| Alignment | Needs a one-off check (Step 3) | Set by the driver's label size and sensing |
| Example fit | Avery 5163: barcode up to 164% with a product name, 149% with a second line too | 2¼″ × 1¼″: up to 98% with a name, 89% with a name and second line, 110% without text |
Both work. Small sellers often start on sheets and buy a thermal printer once labelling becomes a weekly job. Whichever you use, the 1″-tall sizes (30-up Avery 5160 and 2″ × 1″ rolls) only hold a reduced barcode with no text, so pick a taller label if you want a product name on it.
Troubleshooting
| Problem | Likely cause | Fix |
|---|---|---|
| Every label is shifted the same way | Printer paper feed offset | Measure the shift on a plain-paper test and enter a printer offset. |
| Lower rows drift further off | The PDF was scaled to fit | Print at Actual size / 100% (Step 2). Check the paper size matches the sheet. |
| Barcode smaller or larger than expected | Scaling in the print dialog or the printer driver | Turn off every fit, shrink and zoom option; measure the bars again. |
| Blurry or fuzzy bars | Inkjet ink spreading on glossy stock, draft print mode, or a dirty thermal head | Use matte labels and a normal or best quality mode; clean the print head; lower thermal darkness if bars look fat. |
| Won't scan at all | Barcode below 80%, margins cut off, coloured bars, or glare | Pick a larger label, keep black on white, use matte stock, and check the margins either side of the bars. |
| Scans, but the number is wrong | A typo, or a spreadsheet dropped a leading zero | Run the number through the UPC validator and compare it with your GS1 record. |
| Thermal label prints across two labels | Driver label size or gap sensing is wrong | Set the label size in the driver, choose gap or black-mark sensing, and recalibrate the printer. |
Other ways to print UPC labels
A browser-based generator isn't the only route. Depending on how you sell, one of these may suit you better:
- Your point-of-sale system. If you sell in person, Square for Retail (Square help) and Shopify's Retail Barcode Labels app (Shopify help) print labels from the products already in your catalogue, on the label printers and stocks they support (as of November 2026).
- A print shop. Label printers will produce professionally printed barcode stickers or put the barcode straight onto your packaging. Worth it for large, repeat runs; send them the barcode artwork at the size you want.
- Your own design file. If the barcode goes on a box or a printed label design, download the SVG or a PNG from the generator and place it at 100% in your design app. Scale it evenly only, and keep it between 80% and 200%.
For most small runs of stickers on standard labels, printing your own is quickest: open the UPC label generator, pick your stock and print at actual size.