Bulk barcode generator
Turn lines or a real CSV column into validated Code 128, EAN-13 or UPC-A files, then collect the whole batch in one ZIP.
- SECURE
- NO UPLOADS
- NO SIGNUP
- BROWSER BASED
- FREE
- FOREVER.
Support us with a link or a share
Validated barcode files and the ZIP receipt will appear here.
A bulk barcode generator validates the table before drawing bars
Paste one identifier per line for the shortest path, or choose CSV when labels and values live in separate columns. CSV mode uses the same quoted-field rules as a spreadsheet export: a comma inside quotes stays inside one cell, doubled quote marks become one quote, and a line break inside a quoted field does not accidentally become a second record. The selected value column is encoded; an optional label column names each file.
The preflight counts non-empty rows, blanks, duplicates and invalid values before any worker starts. It keeps duplicates because two physical objects may intentionally carry the same destination. It ignores completely blank selected cells because a barcode cannot represent an absent value. If you need to inspect delimiters or ragged rows first, open the CSV viewer and repair the table before returning.
Code 128, EAN-13 and UPC-A are different contracts
Code 128 B carries printable ASCII: letters, digits, spaces and standard punctuation. It is useful for internal asset IDs, shipment references and labels whose receiving scanner expects mixed text. This implementation refuses accents, emoji and line breaks instead of replacing them with lookalikes. A symbol that scans to altered data is not a successful conversion.
EAN-13 and UPC-A are fixed-length retail GTIN symbols. Enter the body without a check digit and the tool calculates it, or enter the full number and the tool verifies it. A wrong final digit blocks the whole batch and names the source row. That calculation proves internal consistency only; it cannot assign a company prefix, register a product or establish who owns a number. Use the single UPC generator when one retail number is the whole job and you want that boundary explained beside the result.
The single barcode generator is better for comparing one value across formats and inspecting its checksum. This page owns the table-to-archive workflow: many already chosen identifiers, one format, one consistent file type and one ZIP.
Every invalid row remains tied to its source
Line mode reports physical line numbers. CSV mode reports spreadsheet-style source rows, including the header offset. That detail matters when a thousand-row file has one letter in an EAN column or an outdated check digit. The page shows the first problems together and the total invalid count. It never exports the valid subset as though the original batch had succeeded.
For Code 128, each value is capped before an excessively wide canvas can fail on a mobile browser. For retail formats, spaces and hyphens are accepted as display separators but never encoded. Leading zeroes remain data. Keep those columns as text in Excel: turning 012345000058 into a number destroys the value before a barcode tool can recover it.
PNG for convenient pixels, SVG for exact layout
PNG output uses four pixels for every narrow module and retains the complete quiet zone. It is suitable for office documents, previews and workflows that require raster files. The bulk PNG intentionally contains the bars and margins without decorative color or a transparent field. Contrast and blank edges are functional parts of a linear symbol.
SVG output keeps every bar as an integer vector rectangle and includes the encoded text under the symbol. It is usually the safer handoff to a label-layout or packaging application because resizing does not blur module edges. Neither format certifies a physical print. Printer resolution, ink spread, material, curvature, scaling and placement still require a scan test on the object that will ship.
Worker progress represents completed files
Generation runs outside the page controls. The progress bar advances only when a real PNG or SVG has been encoded and added to the pending archive; no timer guesses at completion. Cancel terminates that worker and leaves the source, columns and format selected so you can correct the batch without reloading.
Changing the source or any output setting during a run invalidates the old job. A late message from the previous worker cannot put a stale archive underneath new visible settings. Large batches receive a memory warning because browsers must hold all finished files while assembling a ZIP. The archive uses ZIP32 and refuses structural limits instead of returning a corrupt file.
Labels become safe file names; values stay exact
An optional label column affects only names in the archive. Path separators and characters that operating systems reject are cleaned, and repeated names receive numbered suffixes. The actual barcode value is never rewritten to match its file name. Without labels, stable sequence names such as barcode-001.png preserve output order after blank rows are removed.
If duplicates are accidental, use Remove duplicate lines on a plain list before generating. The bulk tool only counts repeats; it does not decide whether two equal identifiers describe the same physical object.
Linear barcodes are not bulk QR codes
A phone camera may recognize both, but the receiving formats are different. Use the bulk QR code generator for URLs, Unicode text and other square QR payloads. QR uses a two-dimensional matrix and UTF-8 data; Code 128 B on this page is deliberately ASCII, while EAN and UPC are digits only. Selecting the symbol your downstream system names is more important than selecting the one that looks familiar.
After download, sample the beginning, middle and end of a large batch with the scanner or inventory system that will consume it. The local barcode scanner to Excel can collect those reads into CSV or XLSX. A digital round trip proves the encoded value; it does not prove a database record exists or a printed label meets a verifier standard.
The CSV and every generated file stay in this tab
Parsing, checksum validation, symbol construction, PNG compression and ZIP writing happen locally with self-hosted code. No row is sent to a barcode API, and there is no product lookup behind the form. That privacy boundary is also a capability boundary: the tool draws identifiers you already have but cannot allocate, register or enrich them.
Questions
Which barcode formats can I generate in bulk?
Choose Code 128 for printable ASCII identifiers such as asset tags and shipment references, EAN-13 for twelve- or thirteen-digit retail GTINs, or UPC-A for eleven- or twelve-digit retail GTINs. The tool does not guess a different format for an invalid row.
What happens when one row is invalid?
Generation is blocked before the worker starts. The preflight names each source row and explains whether the value has an unsupported character, wrong length or bad check digit. Valid rows are not silently exported around a broken one.
Should I choose PNG or SVG?
PNG uses four pixels per barcode module and is convenient for office files and previews. SVG preserves vector bars and visible text for label-layout software. Both keep black bars, a white field and the format quiet zones.
Are my identifiers uploaded?
No. CSV parsing, validation, barcode encoding, PNG compression and ZIP assembly all run in this browser tab. The page neither registers identifiers nor looks them up in a product database.