Barcode Generator
Generate Code 128, Code 39, EAN-13, EAN-8, UPC-A and ITF-14 barcodes singly or in bulk. Check digits are calculated, and every symbol downloads as SVG or prints as a label sheet.
Create a Barcode or a Full Sheet of Barcodes
Pick the symbology your scanner expects, then enter a value. Bulk mode takes a pasted column of SKUs. Encoding happens in this browser tab, so nothing you type leaves your device.
Fields marked are required. Everything else is optional and refines the result.
Bulk mode renders up to 250 lines. Lines that cannot be encoded are listed underneath with the reason; the rest still render.
Auto check digit applies to EAN-13, EAN-8, UPC-A and ITF-14. Enter the number without its final digit to have it appended, or in full to have it verified.
What the tool checks before it draws anything
A barcode that looks right but encodes the wrong value is worse than none: it gets printed onto stock and found at receiving. These rules run on every value.
| Check | Applies to | What happens if it fails |
|---|---|---|
| Digit count | EAN-13, EAN-8, UPC-A, ITF-14 | Rejected, with the required length shown. |
| Digits only | EAN, UPC, ITF-14, Code 128 set C | Rejected; no symbol is drawn. |
| Modulo 10 check digit | EAN, UPC, ITF-14 | Appended if missing, flagged if wrong. |
| Character set | Code 39, Code 128 sets A and B | The unsupported character is named. |
| Modulo 103 check character | Code 128 | Always calculated; never typed in. |
| Even digit count | ITF-14, Code 128 set C | Rejected rather than silently padded. |
Which Barcode Type Do You Actually Need?
The system reading the label normally decides. Match the destination first, then worry about size.
| Symbology | Encodes | Typical use | Length | Check digit | Who governs it |
|---|---|---|---|---|---|
| Code 128 | ASCII 0–127 | Internal SKU, carton, tote and bin labels | Variable | Modulo 103, built in | ISO/IEC 15417 |
| Code 39 | Digits, A–Z, six symbols | Legacy inventory and asset tags | Variable | Optional modulo 43 | ISO/IEC 16388 |
| EAN-13 | 13 digits | Retail till scan outside North America | Fixed 13 | Modulo 10, required | GS1 |
| EAN-8 | 8 digits | Items too small for EAN-13 | Fixed 8 | Modulo 10, required | GS1 |
| UPC-A | 12 digits | Retail till scan in the US and Canada | Fixed 12 | Modulo 10, required | GS1 |
| ITF-14 | 14 digits | Shipping cartons and cases | Fixed 14 | Modulo 10, required | GS1 |
| Data Matrix | Text and binary | Small parts, pharma packs, electronics | Variable | Reed–Solomon | ISO/IEC 16022 |
| PDF417 | Text and binary | Identity documents, some labels | Variable | Reed–Solomon | ISO/IEC 15438 |
This page renders the first six
Data Matrix and PDF417 are listed because people arrive looking for them. They are two dimensional symbologies with error correction we have not implemented, so the tool omits them rather than offering something unreliable.
Code 128: The Default for Internal Warehouse Labels
If a warehouse label mixes letters and digits, it is usually Code 128. It packs numeric data more tightly than any other linear symbology in common use.
Character set
Three sets cover the full ASCII range. Set A adds control characters, set B adds lower case and punctuation, set C encodes digit pairs.
Check character
A modulo 103 check character is computed from the start code and the weighted position of every symbol character. It is encoded, never printed.
Where you meet it
SKU labels, licence plate labels, tote and bin identifiers, pick-face labels, and most parcel carrier labels.
| Set | Covers | Density | Choose it when |
|---|---|---|---|
| A | Digits, uppercase, punctuation, control characters | One per symbol character | A legacy system needs control characters. |
| B | Digits, both cases, full punctuation | One per symbol character | The value mixes cases or wider punctuation. |
| C | Digits only, encoded two at a time | Two digits per symbol character | A long numeric string with an even digit count. |
| Auto | All of the above, switching mid-symbol | Shortest available | No specific constraint. The usual answer. |
Auto mode switches to set C for four or more digits at the start or end of a value, or six or more in the middle. That is where the switch pays for itself in width.
Code 39: Older, Wider, and Still Required in Places
Code 39 predates Code 128 and encodes far less per millimetre. It survives because installed equipment and older enterprise software still expect it.
Character set
Digits 0–9, uppercase A–Z, space, and six symbols: hyphen, full stop, dollar, slash, plus, percent. No lower case.
Start and stop
Every symbol is bracketed by an asterisk. Some scanners transmit them, some strip them. Check during setup.
Check character
The modulo 43 check character is optional and off by default. Turn it on only if the receiving system expects it.
Practical notes before you standardise on Code 39
- The same data takes more label width than Code 128
- Lower case characters are silently converted to upper case
- Every character uses nine elements, three wide
- The wide-to-narrow ratio is commonly set between 2:1 and 3:1
- The check character changes the scanned string, so both ends must agree
If nothing in your stack requires Code 39, Code 128 is the better default for new internal labelling.
EAN-13, EAN-8 and UPC-A: Retail Point of Sale
These three are one family. They carry a GTIN, a globally unique product number, and they are what a supermarket till expects.
| Symbol | Digits | Structure | Where it is used |
|---|---|---|---|
| EAN-13 | 13 | GS1 prefix, company prefix, item reference, check digit | Retail across Europe, Asia Pacific and most of the world |
| UPC-A | 12 | Number system digit, company prefix, item reference, check digit | Retail in the US and Canada |
| EAN-8 | 8 | GS1 prefix, item reference, check digit | Small packs where EAN-13 does not fit |
How the symbol is built
- Each digit becomes seven modules of bars and spaces
- Start, centre and end guard bars frame the digit groups
- Right-hand digits are mirrored so scanners detect direction
- In EAN-13 the first digit is not drawn as bars; the parity pattern of the six left-hand digits carries it
Where the number comes from
- GS1 issues a company prefix to your business
- You build item references on top of that prefix
- The check digit is arithmetic, not an allocation
- This tool renders a number you already hold
We render symbols. We do not issue GTINs.
This page cannot assign a GS1 company prefix and does not check whether a number is yours. Prefixes come from GS1. A made-up EAN or UPC on retail packaging can collide with another company's product.
ITF-14: The Barcode on the Outer Carton
A case of retail items carries its own trade item number. ITF-14 is the symbol usually printed directly onto corrugated board.
Fixed 14 digits
An indicator digit, GS1 company prefix, item reference and check digit. The indicator separates packaging levels of one product.
Interleaved encoding
Digits are encoded in pairs. The first becomes bars, the second becomes the spaces between them. Hence the name.
Print requirements
Direct printing on corrugated normally needs bearer bars and a larger X dimension than a paper label.
Bearer bars are not drawn here
This tool produces the encoded ITF-14 itself. Bearer bar thickness and quiet zone allowance depend on the print method and your trading partner's GS1 specification, so send artwork to your label supplier before a carton run.
The Arithmetic Behind the Last Digit
EAN, UPC and ITF-14 share one formula. It catches a single misread or mistyped digit before it reaches stock records.
GS1 modulo 10
weights 3,1,3,1… from the right check = (10 − sum mod 10) mod 10 Used by EAN-13, EAN-8, UPC-A and ITF-14.
Code 128 modulo 103
sum = start + Σ (position × value) check = sum mod 103 Calculated over symbol values, not printed characters.
Code 39 modulo 43
sum = Σ character values check = character at (sum mod 43) Optional, and only if both systems expect it.
| Test number | Symbology | Payload without check digit | Check digit |
|---|---|---|---|
| 5901234123457 | EAN-13 | 590123412345 | 7 |
| 4006381333931 | EAN-13 | 400638133393 | 1 |
| 036000291452 | UPC-A | 03600029145 | 2 |
| 96385074 | EAN-8 | 9638507 | 4 |
| 10614141000415 | ITF-14 | 1061414100041 | 5 |
Paste any payload from the third column with auto check digit on. The fourth column is what you should get back.
Labelling an Inbound Receipt at a US Warehouse
A US apparel brand receives 40 cartons from an overseas supplier and needs four labels before the stock is putaway-ready.
| Label | Symbology | Value entered | What the tool does | Rendered value |
|---|---|---|---|---|
| Garment swing tag | EAN-13 | 888123400012 | Appends the modulo 10 check digit | 8881234000125 |
| Polybag SKU label | Code 128 auto | SKU-88421-BLU-M | Set B, plus the modulo 103 check character | SKU-88421-BLU-M |
| Carton label | ITF-14 | 1888123400012 | Appends the modulo 10 check digit | 18881234000122 |
| Pick face label | Code 128 auto | LOC-SG-A12-R04-B7 | Set B, plus the modulo 103 check character | LOC-SG-A12-R04-B7 |
| Sheet output | Bulk mode | 40 carton lines pasted | Renders 40 symbols into one grid | 40 labels, one page pass |
The prefixes here are illustrative. Use the company prefix GS1 issued to your business.
Turning a Spreadsheet Column Into a Label Sheet
Most people searching for a barcode generator do not want one barcode. They want a column of SKUs turned into something printable.
Paste the column
Copy a column out of a spreadsheet and paste it in. One value per line is all the structure needed.
Add captions
Put a vertical bar after the value, then a caption. Warehouse staff read the caption far more than the digits.
Print or download
The print sheet lays every symbol into a grid. Download gives one SVG that scales without losing bar edges.
Why SVG rather than an image file
- Bar edges stay sharp at any size, which aids scanning
- Label design software imports SVG directly
- No resampling artefacts when scaled up for a carton
- File sizes stay small even for a full sheet
Before a production label run
- Test print at the exact size you intend to use
- Scan it with the scanners on your floor, not a phone
- Scan it once applied to the real surface
- Check the quiet zones survived the label die-cut
Why Barcodes Fail on the Warehouse Floor
Almost every scanning failure traces back to a handful of causes, most decided before the label is printed.
| Cause | What it looks like | Where it is decided | Fix |
|---|---|---|---|
| Quiet zone lost | Scanner sees nothing at all | Label artwork and die-cut | Leave clear space either side |
| X dimension too small | Reads at close range only | Label size decision | Increase narrow bar width, retest |
| Non-proportional scaling | Intermittent reads | Artwork resize | Regenerate rather than stretch |
| Low contrast | Fails under warehouse lighting | Substrate and ink choice | Dark bars, light matt background |
| Worn print head | Random voids in the bars | Printer maintenance | Clean or replace, verify a sample |
| Curved or reflective surface | Reads at one angle only | Label placement | Use a flat panel or a larger symbol |
| Wrong symbology | Scans, but the system rejects it | Label specification | Confirm what the receiver expects |
Practice varies by trading partner and carrier. Where a retailer or 3PL publishes a labelling specification, that document decides symbology, size and placement.
Data Matrix, PDF417 and QR: What They Are For
These come up constantly alongside barcode searches. They solve a different problem: more data in less space, with error correction built in.
Data Matrix
A square matrix for tight spaces: circuit boards, surgical instruments, pharmaceutical packs, small component marking.
PDF417
A stacked symbology of linear codeword rows. Common on driving licences, boarding passes and some shipping documents.
QR
The consumer-facing matrix code, read by phone cameras. Increasingly on retail packaging beside the retail barcode.
Not offered here, on purpose
All three depend on Reed–Solomon error correction and defined module placement. A subtly wrong implementation still produces a plausible looking square, and the fault surfaces only when scanners reject printed stock.
For a regulated pack or a trading partner specification, work from the relevant ISO standard or a verified label printing package, and check printed samples with a barcode verifier.
Where Barcodes Change What the Warehouse Can Do
Barcodes let stock be counted, located and shipped without a human reading a number aloud.
Receiving
Scanning at the dock ties a carton to a purchase order line, so discrepancies surface at receipt, not the next count.
Putaway and location
A scanned bin label makes the location a fact, not a memory. Pickers stop searching and accuracy stops depending on individuals.
Picking and packing
Scan verification at pack catches the wrong-item error before it ships, the cheapest place to catch it.
Cycle counting
Counting by scan turns a stocktake into a routine task rather than an event that stops the operation.
A workable labelling standard covers all of this
- The symbology at each packaging level
- What the encoded string may and may not contain
- Label size, bar width and quiet zone
- Where the label goes on the carton or item
- What human readable text sits beside the bars
- Who verifies a sample before a run
Agree it once with your supplier and fulfilment provider, and inbound labelling stops being a recurring argument.
Plan the Carton, Then Label It
Labelling sits at the end of a chain that starts with how goods are packed. These tools cover the steps either side.
Barcode Generator Questions
Need Scan-Based Inventory Accuracy?
Talk to Locad about warehousing and fulfilment where every receipt, putaway, pick and pack is scanned, and inbound labelling is agreed with suppliers up front.