GTIN14 Tools

Bulk Barcode Generator

CSV in · ZIP out · 100 codes per run

Turn a CSV column of 14-digit codes into a hundred printable ITF-14 barcodes at once. Every symbol is generated in your browser at true millimetre sizes, wrong check digits are reported row by row, and the whole batch downloads as a single ZIP of SVGs plus a cleaned CSV.

A header row is optional. Extra columns are fine — the parser picks the column that holds a barcode. 13-digit GTIN-13 values are converted, wrong check digits are repaired when one digit explains the failure.

Nothing loaded yet

How the CSV import behaves

  • Comma or semicolon. Both delimiters are detected, so files exported from Excel in a European locale work unchanged.
  • Header optional. A row that contains a 12 to 14 digit number is treated as data; anything else becomes a header.
  • Quoted fields survive. Company names with commas in a second column do not shift the barcode into the wrong column.
  • Whitespace is ignored. Codes pasted out of an email with stray spaces or a trailing carriage return still parse.

What gets corrected

  • 13 digits — a valid GTIN-13 becomes a GTIN-14 with packaging indicator 1.
  • 13 digits — a 13-digit payload gets its check digit appended.
  • 14 digits, one wrong — repaired when a single substitution fixes the check digit, with the row noted.
  • anything else — rejected with the line number and the reason.

Sequencing a run of cartons

If you are labelling a pallet of identical cases, you usually do not want 100 different item numbers — you want one code repeated. Use the single generator for that. Sequence mode is for the opposite job: a range of genuinely different cartons, where the item reference counts up and the check digit follows it.

Both paths produce the same geometry. The single ITF-14 generator exposes X, ratio, bar height and bar width reduction; the batch uses the 100% GS1 target size so a whole shipment is dimensionally consistent.

Batch limits at a glance

Bulk ITF-14 generation limits
ParameterValueNotes
Codes per batch100Hard cap in the browser, so a phone never runs out of memory mid-run.
Accepted inputCSV · TSV · TXT · pasted columnOne code per row, or the column that holds a 12 to 14 digit number.
Repaired automaticallyGTIN-13 → GTIN-14, missing or wrong check digitEvery repair is written next to the row it belongs to, never silently.
Rejected rowsAnything that is not 12, 13 or 14 digitsThe row number and the reason are listed above the table.
OutputSVG + PNG (300 dpi) in a ZIP, or a cleaned CSVSame 100% GS1 geometry as the single generator.
Where it runsEntirely in your browserNothing is uploaded; the page works offline once loaded.

Bulk generation questions

What should the CSV look like?

One code per row is enough — a single column with a header row called gtin or barcode. Extra columns are fine: the parser looks for the column that holds a 12 to 14 digit number. Download the template on this page if you want a file that is guaranteed to import.

Why is the limit 100 codes?

Because the whole run is generated in the browser. A hundred millimetre-accurate SVGs will not exhaust a phone's memory, and the ZIP arrives in a few seconds on mobile data. Larger catalogue runs belong in a desktop print pipeline, not a web page.

What happens to rows that fail?

They are listed individually with the line number, the offending value and the reason. Nothing is dropped silently, so a 96-of-100 import is immediately obvious rather than a mystery.

Can the tool number the codes for me?

Yes. Switch to the sequence mode, give it a starting GTIN-14 and a count, and it keeps the packaging indicator and company prefix while counting the item reference upwards. Every check digit is recalculated as the number changes.

What is inside the ZIP?

One SVG per code, named itf-14-<code>.svg, each drawn at the millimetre size you configured. SVG stays sharp at any print resolution, and every carton label printer we know of accepts it. A companion CSV lists the codes in the same order.

Does the batch import upload my spreadsheet anywhere?

No. The file is read with the browser's File API and never leaves the page — there is no server side to this tool. You can load the page, disconnect from the network and still generate the whole batch.