11-digit body calculated by the generator
- Input
- 04210000526
- Expected output
- 042100005264
Weighted sum 46, modulo 10 equals 6, check digit 4.
UPC-A SVG artwork
UPC-A is the 12-digit GS1 symbology used across North American retail, and under the hood it is really an EAN-13 with a fixed leading zero that never gets drawn. This generator renders the symbol as a vector SVG, so the artwork stays sharp at any print scale, from a small label to large packaging.
Weighted sum 46, modulo 10 equals 6, check digit 4.
The same 3-and-1 weighted formula, applied to a different prefix.
The safety margin does not shrink along with the scale, because the scanner needs it regardless of the final printed size.
Code 128 is a dense and flexible symbology for internal operations. EAN and UPC are numeric retail standards and depend on valid commercial identification.
Because the 12th is the check digit, calculated automatically from the 11 you enter using the same alternating 3-and-1 weight formula EAN-13 uses. Entering the 11 digits and letting the generator compute the last one avoids an incorrect checksum.
Because it stays a fixed 12-unit margin in this generator, built to match the space a scanner always needs to locate the guard pattern at each end of the symbol, regardless of how compact the inner bars get at a smaller scale.
Yes, because the UPC-A bar pattern is identical to an EAN-13 symbol whose first digit, always zero, simply is not drawn. Any EAN-13-compatible scanner decodes UPC-A without any extra configuration.
Not on its own. The file keeps its vector sharpness at any scale, but final readability also depends on the contrast between bar and background, the print material, and the minimum magnification GS1's specification recommends for that packaging type, none of which this generator checks automatically.
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 314 136" width="314" height="136" role="img" aria-label="Barcode TOOLS-2026"><rect width="100%" height="100%" fill="#fff"/><g fill="#111"><rect x="12" y="8" width="4" height="96"/><rect x="18" y="8" width="2" height="96"/><rect x="24" y="8" width="2" height="96"/><rect x="34" y="8" width="4" height="96"/><rect x="40" y="8" width="6" height="96"/><rect x="52" y="8" width="2" height="96"/><rect x="56" y="8" width="2" height="96"/><rect x="64" y="8" width="6" height="96"/><rect x="72" y="8" width="4" height="96"/><rect x="78" y="8" width="2" height="96"/><rect x="86" y="8" width="6" height="96"/><rect x="94" y="8" width="4" height="96"/><rect x="100" y="8" width="2" height="96"/><rect x="108" y="8" width="4" height="96"/><rect x="114" y="8" width="6" height="96"/><rect x="122" y="8" width="4" height="96"/><rect x="128" y="8" width="6" height="96"/><rect x="136" y="8" width="2" height="96"/><rect x="144" y="8" width="2" height="96"/><rect x="150" y="8" width="4" height="96"/><rect x="156" y="8" width="6" height="96"/><rect x="166" y="8" width="4" height="96"/><rect x="174" y="8" width="6" height="96"/><rect x="184" y="8" width="2" height="96"/><rect x="188" y="8" width="2" height="96"/><rect x="194" y="8" width="6" height="96"/><rect x="202" y="8" width="4" height="96"/><rect x="210" y="8" width="4" height="96"/><rect x="218" y="8" width="6" height="96"/><rect x="228" y="8" width="2" height="96"/><rect x="232" y="8" width="4" height="96"/><rect x="240" y="8" width="6" height="96"/><rect x="248" y="8" width="2" height="96"/><rect x="254" y="8" width="2" height="96"/><rect x="262" y="8" width="2" height="96"/><rect x="266" y="8" width="8" height="96"/><rect x="276" y="8" width="4" height="96"/><rect x="286" y="8" width="6" height="96"/><rect x="294" y="8" width="2" height="96"/><rect x="298" y="8" width="4" height="96"/></g><text x="157" y="123" text-anchor="middle" font-family="monospace" font-size="16" fill="#111">TOOLS-2026</text></svg>Everything is generated locally in the browser; the barcode value is not sent to the server.