Barcode Generator: Code 128, Code 39, QR & UPC
Type a value and the barcode draws as you type. SKU-88421 in Code 128 is 11 symbol characters with check character 68, 47.2 mm (1.86 in) wide at a 0.33 mm bar.
Preview scaled to fit. Downloads keep the true size.
SKU-88421 Sequence builder: number a run of bins, cartons or assets
The barcodes are drawn in your browser. Quiet zones are included in every width.
How to Make a Barcode in 3 Steps
- Pick the symbology your scanner or partner expects. Code 128 for your own SKUs, bins and cartons. UPC-A or EAN-13 for retail. QR for a URL or text.
- Type the value, or paste a list. Check digits and check characters are calculated for you. A wrong retail check digit is flagged before anything prints.
- Set the bar width and download. Choose the label width and the tool shows whether the barcode fits, with quiet zones counted.
| Symbology | What it encodes | Length | Check | Quiet zone used here |
|---|---|---|---|---|
| Code 128 | All 128 ASCII characters | Variable | Mod 103, always | 10 X each side |
| Code 39 | 0–9, A–Z, space, - . $ / + % | Variable | Mod 43, optional | 10 X each side |
| QR Code | Any text, URLs, UTF-8 | Variable | Reed-Solomon, L to H | 4 modules each side |
| UPC-A | 12 digits | Fixed | GS1 mod 10 | 9 X each side |
| EAN-13 | 13 digits | Fixed | GS1 mod 10 | 11 X left, 7 X right |
| EAN-8 | 8 digits | Fixed | GS1 mod 10 | 7 X each side |
| ITF-14 | 14 digits | Fixed | GS1 mod 10 | 10 X each side |
| Interleaved 2 of 5 | Digits, in pairs | Even count | None built in | 10 X each side |
Bulk Barcode Generator: Lists and Sequences
Switch to Bulk list to turn a spreadsheet column, or a numbered run, into up to 250 barcodes in one pass. Each line is checked on its own.
Paste a column
One value per line. Add a caption after a vertical bar, such as SKU-88421 | Blue tee, M. The caption prints under the barcode on the sheet.
Build a sequence
Give a prefix, a start number, a count and the digits to zero-pad to. The list fills with every value in order.
Skip, do not stop
A line that cannot be encoded is listed with its reason. Every other line still renders and downloads.
| Use | Prefix · start · count · pad | First | Last | Code 128 path (last) | Width at 0.33 mm |
|---|---|---|---|---|---|
| Bin locations | A12-R04-B · 1 · 24 · 2 | A12-R04-B01 | A12-R04-B24 | Set B | 58.1 mm |
| Carton IDs | CTN-2026- · 1 · 250 · 6 | CTN-2026-000001 | CTN-2026-000250 | Set B → C | 65.3 mm |
| Asset tags | ASSET- · 1001 · 50 · 0 | ASSET-1001 | ASSET-1050 | Set B → C | 50.8 mm |
| Tote numbers | T · 1 · 120 · 4 | T0001 | T0120 | Set B → C | 32.7 mm |
Zero padding keeps every value the same length, so a run of labels shares one width and sorts correctly in a spreadsheet.
Code 128 Barcode Generator: Sets A, B and C
Code 128 switches between three character sets inside one barcode. Set C packs two digits into one symbol character, which is why numbers come out narrow.
Set A
Digits, upper case, punctuation and control characters. Needed only when a system expects control codes.
Set B
Digits, upper and lower case, and full punctuation. The usual set for SKUs with letters.
Set C
Digit pairs 00–99. Auto mode switches to it for 4+ digits at the start or end, or 6+ in the middle.
| Value | Auto encodes as | Symbol characters | Check character | Width, auto | Width, set B only |
|---|---|---|---|---|---|
SKU-88421 | Set B → C | 11 | 68 | 47.2 mm | 50.8 mm |
A12-R04-B01 | Set B | 14 | 78 | 58.1 mm | 58.1 mm |
PO 2026-000418 | Set B → C | 15 | 61 | 61.7 mm | 69.0 mm |
100045678912 | Set C | 9 | 5 | 39.9 mm | 61.7 mm |
0012345678905 | Set C → B | 11 | 90 | 47.2 mm | 65.3 mm |
Widths at X = 0.33 mm with 10 X quiet zones. For the 12-digit 100045678912, auto is 35% narrower than set B.
How the mod 103 check character is calculated
Take the start code value, add each data value multiplied by its position, and divide by 103. The remainder is the check character. Here is BIN-07, which starts in set B (value 104).
| Position | Character | Set B value | Position × value |
|---|---|---|---|
| Start | Start B | 104 | 104 |
| 1 | B | 34 | 34 |
| 2 | I | 41 | 82 |
| 3 | N | 46 | 138 |
| 4 | - | 13 | 52 |
| 5 | 0 | 16 | 80 |
| 6 | 7 | 23 | 138 |
| Sum, then sum mod 103 | 628 → 10 | ||
Code 128 vs Code 39 vs QR: Same Value, Different Size
Each row is the tool's own output. Linear widths are at X = 0.33 mm; QR is at a 0.5 mm module and is square.
| Value | Symbology | Encoded as | Modules wide | X (mm) | Width |
|---|---|---|---|---|---|
A12-R04-B01 | Code 128 | Set B | 176 | 0.33 | 58.1 mm |
A12-R04-B01 | Code 39 | 13 characters with start/stop | 207.5 | 0.33 | 68.5 mm |
A12-R04-B01 | Code 39 + mod 43 check | 14 characters with start/stop | 222 | 0.33 | 73.3 mm |
A12-R04-B01 | QR Code | Version 1, 21 × 21 modules | 29 | 0.50 | 14.5 mm square |
100045678912 | Code 128 | Set C | 121 | 0.33 | 39.9 mm |
100045678912 | Code 39 | 14 characters with start/stop | 222 | 0.33 | 73.3 mm |
100045678912 | Interleaved 2 of 5 | 6 digit pairs | 124.5 | 0.33 | 41.1 mm |
100045678912 | QR Code | Version 1, 21 × 21 modules | 29 | 0.50 | 14.5 mm square |
Code 128
Internal SKUs, bins, totes, carton IDs. Narrowest linear option for mixed text.
Code 39
1.2× the width of Code 128 for A12-R04-B01. Choose it when a scanner or system requires it.
QR Code
URLs and longer text that a phone camera reads. Needs a 2D imager, not a laser scanner.
UPC / EAN
Products sold at a till. The number comes from a GS1 company prefix, not from this tool.
24 Bin Labels for a Warehouse in Reno, Nevada
A team re-slotting aisle 12 needs Code 128 labels for bins A12-R04-B01 to B24, printed on 2 × 1 in labels from a thermal printer.
| Bin | Check character | Width at 0.28 mm |
|---|---|---|
A12-R04-B01 | 78 | 49.3 mm |
A12-R04-B02 | 89 | 49.3 mm |
A12-R04-B03 | 100 | 49.3 mm |
A12-R04-B22 | 6 | 49.3 mm |
A12-R04-B23 | 17 | 49.3 mm |
A12-R04-B24 | 28 | 49.3 mm |
- Every bin value has the same length and set path, so all 24 barcodes share one width. Only the check character changes.
- Code 39 would force the bar down to 0.24 mm on the same label, against 0.28 mm for Code 128.
- Load bin-label example in the tool reproduces this run. Print one, scan it at rack height, then print the rest.
Barcode Size: How the X Dimension Sets the Width
Every bar and space is a whole multiple of X, so the width scales in a straight line with it. Height does not change what is encoded.
| X or module size | SKU-88421, Code 128 | golocad.com/tools/ as QR (version 2, M) |
|---|---|---|
| 0.25 mm | 35.8 mm · 1.41 in | 8.3 mm square · 0.32 in |
| 0.33 mm | 47.2 mm · 1.86 in | 10.9 mm square · 0.43 in |
| 0.50 mm | 71.5 mm · 2.81 in | 16.5 mm square · 0.65 in |
| 0.75 mm | 107.3 mm · 4.22 in | 24.8 mm square · 0.97 in |
| 1.00 mm | 143.0 mm · 5.63 in | 33.0 mm square · 1.30 in |
Scanner range
Narrow bars read only up close. Check your scanner's specification for the smallest X it resolves at your reading distance.
Printer resolution
A 203 dpi thermal head prints dots 0.125 mm wide. Bars that are not whole dots get rounded unevenly.
Retail symbols
UPC and EAN have a nominal size and a permitted magnification range set by GS1. Follow it for products sold at a till.
Putting a Barcode in Word or Excel
Two of the most asked questions are how to make a Code 128 barcode in Word and where to get the font. An image file is the reliable route.
Why a font alone fails
Code 128 needs a start code, a calculated check character and a stop code. Typing the value in a barcode font leaves them out, so scanners reject it.
Insert the image
Download SVG or PNG here, then Insert, Pictures. Lock the aspect ratio. If your version of Word will not take SVG, use the PNG.
Many labels at once
Paste the spreadsheet column into Bulk list and print the sheet, rather than building a mail merge around a font.
UPC, EAN and ITF-14 Check Digits
Retail and carton numbers end in a GS1 mod 10 check digit. Type the number without it and the tool appends it; type all of it and the tool verifies it.
sum = digits × 3, 1, 3, 1 … from the right check = (10 − sum mod 10) mod 10 For UPC-A 61414100001: sum = 48, so the check digit is 2 and the full number is 614141000012.
| Symbol | Number without check | Weighted sum | Check digit |
|---|---|---|---|
| UPC-A | 61414100001 | 48 | 2 |
| EAN-13 | 590123412345 | 83 | 7 |
| EAN-8 | 9638507 | 86 | 4 |
| ITF-14 | 1061414100041 | 55 | 5 |
Six Barcode Mistakes That Fail at the Scanner
Stretching the image
Resizing in one direction changes the ratio between bars. Change X in the tool and download again instead.
Cutting the quiet zone
The blank margin is part of the symbol. Every width on this page includes it, so plan the label around the full width.
Forcing set B on numbers
100045678912 is 61.7 mm in set B against 39.9 mm in auto. Leave the set on Auto unless a system needs one set.
Lower case in Code 39
Code 39 has no lower case. The tool converts to upper case and says so, but your database still holds the original.
Odd digit counts in ITF
Interleaved 2 of 5 encodes pairs. An odd-length number needs a leading zero, which then becomes part of the scanned value.
Inventing a UPC
A made-up retail number can match another brand's product. Use the GS1 prefix issued to your business.
Related Labelling and Warehouse Tools
See all free logistics tools, or read how Locad runs warehousing and ecommerce fulfillment.
Barcode Generator Questions
Want the Scanning Done for You?
Talk to Locad about receiving, storage and fulfillment for your inventory.