Barcode generator
Make a scanner-ready Code 128, EAN-13 or UPC-A symbol locally, with its checksum checked before SVG or PNG download.
Runs in your browser 0 bytes uploadedMake a scanner-ready Code 128, EAN-13 or UPC-A symbol locally, with its checksum checked before SVG or PNG download.
Runs in your browser 0 bytes uploadedUp to 120 printable ASCII characters: letters A–Z, numbers, spaces and standard punctuation.
This draws your data. It does not issue or register an identifier.
Choose a format and enter the exact value its scanner should return.
A barcode is a font with rules, not a universal container. Code 128 carries printable ASCII text, so it fits internal asset labels, shipment references and identifiers that mix letters, numbers and punctuation. EAN-13 and UPC-A carry fixed-length retail GTINs whose final digit checks the rest. The scanner or database receiving the value decides which format is right; making a different pattern cannot persuade that system to accept it.
Choose the dedicated UPC generator when UPC-A is the whole job and you want its retail-number boundary explained in detail. This page includes UPC-A beside EAN-13 and Code 128 for cases where you need to compare formats without pretending they are interchangeable.
If the receiving system expects a square symbol that opens a URL or returns free text, the QR code generator creates that different format and verifies its final raster. It does not turn an internal Code 128 value into a retail identity.
Code 128 combines a start word, every data word and its position into a modulo-103 checksum. EAN-13 and UPC-A use the alternating GS1 modulo-10 calculation. A wrong final digit stops the retail formats before any symbol is drawn, while Code 128 always writes its calculated checksum into the bars. That protects the scan from many substitutions. It does not prove that a product exists, that a company owns a prefix or that an inventory record is current.
Keep identifiers as text when preparing them elsewhere. CSV to Excel and SQL to Excel preserve the table around a value, while JSON to CSV makes nested records easier to inspect before labels are generated. Leading zeroes are data in UPC-A, not decoration, and converting a GTIN into a number can destroy them before the generator sees anything.
Every download uses black bars on a white field and keeps the format's quiet zones clear. Those margins give a scanner an unambiguous transition into and out of the symbol. Cropping them, adding a package border through them or placing type behind transparent bars can make correct data unreadable. That is why there is no color picker or transparent-background switch here: those controls would present a reliability decision as harmless styling.
SVG is the safest handoff to a label program because the module edges remain exact at every scale. PNG is rendered at four pixels per module for office documents and proofs. Neither one certifies the final object. Printer resolution, ink spread, label material, curvature, reduction and placement all change physical scans, so packaging needs verification at the size and on the surface that will ship.
Code 128 on this page preserves printable ASCII exactly. Accents, emoji and line breaks are rejected rather than silently replaced, because a barcode that scans to different text is worse than no barcode. If a batch source contains repeated IDs, use Remove duplicate lines before bringing each intended value here. Bulk label layout is a separate workflow; this generator deliberately returns one inspectable symbol for one exact value.
The symbol tables, checksum calculations, SVG assembly and PNG canvas all run locally. No value is looked up, registered or sent to a barcode service. That privacy boundary is also a capability boundary: the page can prove the digital pattern it draws and independently tested scanners can read it back, but it cannot tell you whether a retailer assigned the identifier or whether a printed label will pass a production verifier.
Use Code 128 for internal IDs, shipping references and other printable ASCII text. Use EAN-13 for a thirteen-digit retail GTIN, and UPC-A for its twelve-digit North American form. The number owner or receiving system decides the format; changing the bars does not change what that system accepts.
No. It turns data you enter into a barcode symbol. For EAN-13 and UPC-A it calculates or verifies the final check digit, but it cannot assign a company prefix, register a product or prove that a business owns the number. Obtain the identifier first, then create its symbol here.
Because scanner contrast and clear quiet zones are functional parts of a linear barcode. Decorative colors, transparent backgrounds and tight crops can turn correct data into an unreliable scan. The generator keeps the high-contrast combination and blank margins instead of offering unsafe styling controls.
The PNG uses four pixels per module and the SVG keeps every bar as vector geometry. That proves the digital pattern, not the physical print. Label scaling, printer resolution, ink spread, wrapping, material and placement still affect scans, so production packaging needs verification in its final size and substrate.