Bulk barcode generator
Drop a CSV, pick the column of numbers, and download every barcode as a ZIP. Every row is encoded and check-digit-verified before anything generates — so a bad number is caught on screen rather than on four hundred printed labels.
Code 128, Code 39, EAN-13, EAN-8 and UPC-A. Leave a check digit off and it is calculated; get one wrong and you are told which row. The product list never leaves this tab.
Drop a CSV here
Read in this tab — a product export or a guest list is not a file to hand to a server. Comma, semicolon and tab separated all work.
or drop a folder here, or paste an image with Ctrl + V
Nothing is uploaded. The CSV is read, the barcodes are drawn and the ZIP is packed on your own machine.
The dry run is the feature
Bulk barcode generation has one expensive failure and it is not a crash. It is a batch that generates cleanly, prints onto four hundred labels, goes onto four hundred boxes, and then does not scan — because thirty of the numbers had a check digit that did not match.
So every row is encoded before anything is produced, and the result is a count you can act on: how many will work, how many will not, and which row the first problem is on. Rows that cannot be encoded are left out of the ZIP rather than taking the whole batch down with them, because losing thirty codes is better than losing three hundred and seventy.
Check digits, and why they exist
The last digit of an EAN-13 or a UPC-A is not part of the product number. It is calculated from the others, by weighting alternate digits by three and one and taking what is needed to reach the next multiple of ten. A scanner recomputes it and rejects the read if it does not match, which is what stops a smudged bar being read as a different product.
That has a practical consequence for a spreadsheet. Give this twelve digits and the thirteenth is worked out for you. Give it thirteen and the last one is verified rather than trusted — because a transcription error in a product list is far more likely than a deliberate wrong digit, and silently re-writing it would hide exactly the mistake worth catching.
Which symbology, in practice
| Symbology | Takes | Use for |
|---|---|---|
| Code 128 | Letters, digits, punctuation | Asset tags, shelf edges, job numbers — anything internal |
| EAN-13 | 12 or 13 digits | Retail products in Europe and most of the world |
| UPC-A | 11 or 12 digits | Retail products in North America |
| EAN-8 | 7 or 8 digits | Small packaging with no room for a full EAN-13 |
| Code 39 | Digits, capitals, a few symbols | Older systems that ask for it by name |
If the codes are for your own systems, use Code 128 and stop worrying: it has no registry, it takes text as well as numbers, and it is the densest of these. EAN and UPC numbers are allocated by GS1 and inventing one means either colliding with a real product or being rejected at the till.
Printing, where most bulk batches go wrong
Two things decide whether a printed barcode scans. The first is bar width: below roughly two pixels per module at the size you are printing, cheap scanners begin to hesitate and thermal printers blur the narrow bars together. The second is the quiet zone — the white margin either side is part of the symbol, and a design that crops tight to the bars produces a code that a scanner cannot find at all.
Use SVG for anything going to a printer. A barcode is a set of exact bar widths, and a PNG resamples them at whatever resolution it happened to be saved at; a vector hands the printer the geometry and lets it render at its own resolution. PNG is for screens.
What is in the columns you are not using
A product export rarely contains only SKUs. It contains cost prices, margins, supplier names, stock levels and sometimes the terms you buy on — the commercially sensitive half of a business, sitting in the same file as the column you actually want.
An upload-based generator takes all of it, because it takes the file. This one reads the sheet in your browser and uses one column; nothing is transmitted, and you can watch the Network tab while it runs to confirm that.
Questions
How do I generate barcodes from a spreadsheet?
Drop the CSV in, choose the column holding the numbers, pick the symbology, and download every barcode as a ZIP. Each row is encoded and checked before anything is generated, so you are told how many will work while it can still be fixed.
What happens to rows with a bad check digit?
They are named and counted before you download, not silently dropped afterwards. This is the point of the dry run: an EAN-13 with a wrong check digit is a label that will not scan, and discovering that after printing four hundred of them is expensive. Leave the check digit off entirely and it is calculated for you.
Is my product list uploaded?
No. A barcode batch comes from a product export — SKUs, descriptions, and very often cost prices and supplier names in the columns you are not using. A tool that works by upload takes the whole sheet, not the one column. This one reads it in your browser and sends nothing.
Which symbology should I use?
Code 128 for anything internal — asset tags, shelf labels, job numbers — because it takes letters and numbers and packs them densely. EAN-13 for retail products sold in Europe, UPC-A for North America, and both need a real allocated number rather than one you invented. Code 39 is older and less dense, but some legacy scanners want it.
Can I invent my own EAN-13 numbers?
For a barcode that only your own systems read, yes. For anything sold through a retailer, no — EAN and UPC numbers are allocated by GS1, and a made-up one will either collide with a real product or be rejected outright. Code 128 exists precisely for internal numbering and has no registry.
What size should the bars be printed at?
Wider bars scan more reliably, and a scanner needs the quiet zone either side to find the code at all — that white margin is part of the symbol, not padding. Below about two pixels per module a printed label starts failing on cheap scanners. Use SVG for print and let the printer decide the resolution.
PNG or SVG for labels?
SVG, for anything going through a label printer or a design tool. A barcode is a set of exact bar widths, and a raster resamples them at whatever resolution it was saved at — which is how bars end up a fraction of a millimetre wrong and scanners start hesitating. PNG is fine on screen.
What BriskFile will not do to you
-
Your files never leave your device
Every conversion runs in your browser. Open DevTools, watch the Network tab, and you will see no upload — because there is not one.
-
No account, no email, no watermark
Nothing to sign up for and nothing stamped on your images. There is no step between choosing a file and getting it back.
-
No limits at the download button
No daily cap, no file counter, no "upgrade to download". If the tool starts a job, it finishes it.
-
Checkable, not just claimed
Open the Network tab and convert something — nothing goes out. Or load the page, disconnect, and watch it keep working: the tool is already on your machine, and your file never leaves it.