How to make and print barcode labels on a Mac

By · Published

For your own stock, use Code 128. For products sold in shops, use the EAN or UPC number GS1 issued to you, never one you made up. Code 39 is for when an older system insists on it. Then print the barcode large enough, with a clear margin either side, at 100% scale, and scan a test label before you print the batch.

That is most of it. The rest of this guide is the reasoning, the free ways to do it on a Mac, and the printing details that decide whether the scanner beeps.

Code 128, Code 39 or EAN-13

These three cover nearly every small business label, and they are not interchangeable.

Where UPC-A fits

In the US, retail products traditionally carry a 12-digit UPC-A. A UPC-A is the same number as an EAN-13 that starts with a zero, and the bars of that EAN-13 are identical to the UPC-A's; only the layout of the printed digits underneath differs. Scanners read both. If a retailer's artwork rules specifically require the UPC-A layout, though, you need a tool that draws UPC-A, and some of the tools below, including ours, do not.

Getting a real retail number

GS1 is the organization that issues these numbers, through a member organization in each country (GS1 US in the States). You license either a company prefix, which gives you a block of numbers, or single numbers if you only have a few products. Prices and options vary by country, so check your local GS1 site rather than a reseller of cheap numbers, whose codes may be registered to another company.

The free ways to make barcodes on a Mac

Printing it so it scans

Most scanning failures come from printing, not from the design.

Leave the quiet zone empty

Every linear barcode needs blank space either side, called the quiet zone, so the scanner can find where the bars start. For Code 128 and Code 39 that is at least ten times the width of the narrowest bar. EAN-13 specifies 11 bar-widths on the left and 7 on the right. Text, a border or the edge of the label inside that space is one of the commonest reasons a barcode refuses to read.

Do not shrink it

An EAN-13 is designed to be about 37 × 26 mm, and GS1 allows it to go down to 80% of that. Below that, scanners struggle. Code 128 has no fixed size, but the same rule holds: the more characters, the wider it has to be for the bars to stay readable. If the barcode does not fit, shorten the data before you shrink the barcode. And print at 100%: a label fitted to a page is a barcode rescaled.

203 dpi versus 300 dpi

Most 4x6 thermal printers print at 203 dots per inch, which makes each dot about 0.125 mm. A bar can only be a whole number of dots wide, so the printer rounds every bar to the nearest dot. With a normal-sized barcode that rounding is harmless. With a long barcode squeezed into 40 mm, bars that should differ by a fraction of a dot come out the same width, and the barcode stops decoding. A 300 dpi printer, with dots of about 0.085 mm, has more room to get it right. On 203 dpi, give barcodes generous width.

Black, not gray

Too little heat leaves gray, soft-edged bars; too much spreads them into the gaps. Dithering turns solid bars into speckled ones. If your test label fails, work through why barcodes won't scan after printing and faded thermal labels before changing the design.

Making barcode labels in LabelPrint

The free options above are fine when they match your printer. If you print on a generic thermal roll, or the barcode needs to change from label to label, the designer in LabelPrint does it this way:

  1. Start from a blank label at your roll's size, or a template such as the asset tag, inventory tag or price tag.
  2. Add a barcode, choose Code 128, Code 39 or EAN-13, and type the value. Turn on the caption if you want the value printed as text under the bars.
  3. For EAN-13, type the 12 digits and the app adds the check digit, or type all 13 and it tells you if the last one is wrong. For Code 39 it flags characters the format cannot hold. Code 128 is limited to plain ASCII, so accented letters are spelled without accents.
  4. Print a single label and scan it with the scanner you will actually use, before printing the rest.

Two things make it useful past a single barcode. A barcode's value can include {{serial}}, so a series of asset tags each gets its own number in both the text and the bars (see numbered labels). And a barcode can be filled from a column of a spreadsheet, one label per row (see printing labels from a CSV).

What it does not make: UPC-A, DataMatrix, PDF417 or GS1-128. If your retailer or warehouse requires one of those, use software that supports it. And printing any label with a barcode on it needs Unlimited; designing one is free, which at least lets you check it will fit before deciding. Pricing is here.

Frequently asked

Which barcode type should I use for my own stock?

Code 128. It holds letters, digits and punctuation, it is compact, and every modern scanner reads it. You make up the codes yourself, usually your SKUs, and nobody needs to issue them. Use Code 39 only when an existing system asks for it, and EAN-13 only for products sold through retail.

Can I make up my own EAN-13 or UPC numbers?

Not for anything sold in a shop or on a marketplace. Retail numbers are issued by GS1, and a made-up number can belong to someone else's product, or be rejected when a retailer or marketplace checks it. For internal use, use Code 128 instead, which carries no such meaning.

Why does my barcode look fine but not scan?

Usually it was printed smaller than designed, the bars are too light, or something is crowding the blank margin either side. A scanner measures bar widths rather than looking at a picture, so a sharp-looking barcode can still fail. Our guide to barcodes that won't scan goes through the checks in order.

Is a 203 dpi thermal printer good enough for barcodes?

For normal-sized barcodes, yes. Shipping labels are printed at 203 dpi every day. It becomes a problem when you shrink a long barcode onto a small label, because each bar has to be a whole number of dots and there are fewer dots to work with. A 300 dpi printer handles small, dense barcodes noticeably better.

Design it, then print it

LabelPrint is a label maker for the Mac and the iPhone: barcodes, QR codes, pictures, dates and running numbers, from 48 templates or a blank label. What it does. Free to design, 5 labels a day free.

Download on theApp Store

Designing your own labels