b2KIT

Batch Barcode Generator

Generate multiple barcodes (Code 128, EAN-13, UPC-A, Code 39) from a list with ZIP export.

Tested tool guide Tested browser tools Checked August 16, 2026

What Batch Barcode Generator does, with a checked example

Paste a list of product, asset, or document codes, one per line, and this tool renders a barcode for each entry in the symbology you select - Code 128, EAN-13, UPC-A, or Code 39 - then packages the images into a single ZIP download. Lines are validated independently, so one bad entry is flagged and skipped rather than losing the whole batch. Everything is computed locally in the browser; your list is never uploaded. The usual surprise: EAN-13 and UPC-A end in a derived check digit, not a typed one - give the tool 12 digits and it writes the 13th for you.

Worked example

A concrete input and expected output from the current implementation.

Input

400638133393
750103131130

Expected output

Two EAN-13 barcodes whose human-readable text reads 4006381333931 and 7501031311309, one image per line, delivered as a single ZIP archive.

EAN-13 always ends in a check digit computed from the preceding digits: positions 1, 3, 5... weigh 1 and the rest weigh 3. The first line's digits sum to 89, so 1 is appended to reach 90; the second sums to 51, so 9 is appended to reach 60.

How the result is produced

1

Check digits are computed, not copied

EAN-13 and UPC-A end in a check digit computed from the digits that precede it. EAN-13 weights your 12 digits alternately 1, 3, 1, 3 from the left and appends the digit that rounds the sum up to a multiple of 10; UPC-A does the same over 11 digits. Paste a complete code and the roles reverse: the tool verifies the last digit and flags mismatches.

2

One symbology, line-by-line validation

Each non-empty line becomes its own barcode image and is validated against the selected symbology independently. Non-numeric text fails EAN-13 or UPC-A batches; lowercase letters fail Code 39, whose alphabet is A-Z, 0-9, and a handful of symbols; Code 128 accepts the full ASCII range. Valid lines still generate when neighbors fail, and the batch downloads as a single ZIP.

Good uses

  • A product spreadsheet holds 12-digit item numbers without check digits and you need a scannable EAN-13 label for every SKU: paste the column, download one ZIP, print the whole run.
  • Outfitting a warehouse or office: assign Code 128 codes to shelves, bins, and fixed assets, generate all the labels in one pass, and keep a matching record of what each code means.
  • Testing barcode hardware or label templates: build a small sheet of known codes, including leading zeros and deliberate check-digit errors, to confirm a new scanner or print workflow reads each symbology correctly.

Limits and checks

  • Leading zeros are part of the code: 036000291452 is a valid UPC-A, while the same digits with the leading zero stripped no longer fit the format. Spreadsheets that store numbers instead of text drop the zero silently, so paste values as text and check the first digit before printing.
  • A valid check digit proves the digits are internally consistent, not that the code is real. Anyone can compute one, so a made-up EAN-13 scans without error; codes that must resolve to genuine products at a point of sale have to be issued by GS1, not invented locally.
  • A rendered barcode is not yet a scannable label. Shrinking the image when printing, printing on textured or glossy stock, or cropping the empty quiet zone around the symbol are what actually break scanning - keep the image at the produced size and leave its margin intact.

Common questions

I entered 12 digits and the tool returned 13 - is that a mistake?

No, that is the tool working as intended. EAN-13 is always 13 digits: the last one is a check digit derived from the first 12, and entering 12 digits means "compute it for me". Paste all 13 and the tool instead verifies the last digit, flagging any line where it does not match.

What happens to lowercase letters in my list?

Lowercase letters are rejected in Code 39 batches: that symbology's alphabet is A-Z, 0-9, space, and six symbols, with no lowercase at all. Code 128 encodes the full ASCII set, so case never matters there, while EAN-13 and UPC-A are numeric only and reject letters outright. Re-type the affected lines and rerun.

References and verification

The example and behavioral notes were checked against the browser implementation. Standards and primary references below define the relevant format, formula, or platform behavior.

Related Tools