Barcode generator
Code 128 for anything internal, EAN-13 or UPC-A for retail. Check digits are calculated and verified rather than assumed, and everything is drawn in this page — barcode values are usually internal references, and none of them need to leave your device to become a pattern of bars.
Five formats, PNG and SVG, with the print settings that decide whether it actually scans.
The general-purpose one. Dense, holds any ASCII, and what most shipping labels and internal systems use. Any printable ASCII, any length.
178 modules
Nothing is uploaded. Encoded by this page. No request carries it.
Doing more than one? Hundreds at once — A CSV column in, every check digit verified before you print.
Which format, and why it usually is not EAN
| Format | Holds | Use it for |
|---|---|---|
| Code 128 | Any text, any length | Asset tags, shipping, warehouse, internal references |
| Code 39 | Digits, capitals, a few symbols | Old or unknown scanners, ID badges, industry |
| EAN-13 | 13 digits | Retail products outside North America |
| UPC-A | 12 digits | Retail products in North America |
| EAN-8 | 8 digits | Packages too small for an EAN-13 |
People reach for EAN-13 because it is the barcode they recognise from shopping, and it is nearly always the wrong choice. Retail barcodes carry numbers from a global registry: to put one on a product for sale you need a prefix allocated by GS1, and a number you invented will belong to somebody else's tin of beans.
For anything inside your own operation — labelling boxes, tracking equipment, numbering files — Code 128 is better in every respect. It holds letters as well as digits, it is more compact, and nobody has to allocate you anything.
The three reasons a printed barcode fails
The bars are too narrow. A scanner reads the ratio of widths, and a printer that cannot hold a crisp edge at one pixel smears them together. Two pixels per module is a sensible floor and four is safer for anything small or printed on a label printer.
The quiet zone was cropped. The clear space either side is not decoration — a reader uses it to find where the code begins and ends. Trimming a barcode flush to its bars is the single most common way to make a technically perfect symbol unreadable, and designers do it constantly because the white space looks like a mistake.
A bitmap was scaled up. Enlarging a PNG blurs every boundary between a bar and a space, which is precisely the information being read. Use the SVG for print: it is geometry and has no resolution to run out of.
The check digit, and why it is verified rather than trusted
The last digit of an EAN or UPC is arithmetic on the others — each digit weighted alternately by one and three, summed, and subtracted from the next multiple of ten. It exists so a misread or mistyped number is caught rather than acted on.
Which means a barcode drawn with the wrong check digit is worse than useless: it is a symbol that scans cleanly and is then rejected downstream. So enter twelve digits and the thirteenth is calculated; enter all thirteen and it is checked, and refused with the correct digit named if it does not add up.
Code 128 switches modes as it goes
It has three character sets — one for control codes, one for ordinary text, one that packs two digits into a single symbol — and can switch between them mid-code. That is what makes it dense: a twelve-digit value is substantially narrower than twelve letters would be.
The switch costs a symbol of its own, so it only pays on a run of four digits or more. Below that the encoder stays where it is, because a mode change that breaks even is complexity for nothing.
Questions
Which barcode format should I use?
Code 128 for anything internal — asset tags, shipping labels, warehouse locations — because it holds any text and is compact. EAN-13 or UPC-A only if you are putting a product on a shop shelf, and only with a number properly assigned to you. Code 39 when the scanner is old or unknown, since almost everything reads it.
Can I make my own EAN or UPC barcode for a product?
You can generate the barcode, but the number has to be allocated to you by GS1 — a global registry — or it will collide with somebody else’s product and be rejected by retailers. Barcodes for internal use, where nothing leaves your own systems, have no such restriction and Code 128 is the better choice for them anyway.
What is the check digit?
The last digit of an EAN or UPC, calculated from the others. It catches the majority of mistyped and misread numbers. Enter 12 digits for an EAN-13 and it is worked out for you; enter 13 and it is verified, and rejected if wrong rather than quietly drawn.
Why does my printed barcode not scan?
Almost always the bars are too narrow, the quiet zone was cropped, or it was scaled from a PNG. Keep bar width at 2px or more for print, leave the clear margin on both sides intact, and use the SVG — it is geometry rather than pixels and stays sharp at any size.
PNG or SVG?
SVG for anything printed. A barcode is a precise pattern of widths, and scaling a bitmap blurs the edges between bars — which is exactly the information a scanner reads. The PNG here is rendered at four times size for the same reason.
Is my data sent anywhere?
No. The barcode is calculated in this page. Barcode values are often internal references — order numbers, asset tags, patient identifiers — and none of them need to leave your device to become a pattern of bars.
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.