Generated result
{{ readinessScoreDisplay }}
{{ formatLabel }} · {{ normalizedValue || 'waiting for data' }} · {{ printWidthDisplay }}
{{ readinessLabel }} {{ hriBadge }} Quiet zone {{ quietMargin }} px Contrast {{ contrastRatioDisplay }} {{ warnings.length }} note(s)
Barcode generator inputs
Generate Code 128, EAN-13, UPC-A, or Code 39 symbols locally in the browser.
{{ valueHelp }}
Use Auto for normal entry, Require for final GTIN validation, or Recalculate when correcting a draft code.
Optional label text for shelf tags, asset labels, or handoff notes.
Use whole pixels for crisp PNG exports; print sizing is estimated from narrow bar width below.
px
Keep retail and warehouse labels tall enough for real scanners, not only screen previews.
px
{{ quietMargin }} px
Keep at least 10 narrow bars of quiet zone unless final artwork adds its own margin.
Turn off only when the final label already prints the value nearby.
{{ displayValue ? 'On' : 'Off' }}
Use legible values when human-readable text is enabled.
px
High contrast matters more than matching brand colors.
Bars
BG
A 0.33 mm module is a common planning value for durable labels.
mm
Set the usable barcode area, excluding label margins and text outside the symbol.
mm
Use 3x or higher when raster files will be placed into print artwork.
x
{{ caption }}
{{ renderMessage }}
Check Status Detail Copy
{{ row.check }} {{ row.status }} {{ row.detail }}

            
Customize
Advanced
:

Introduction:

A barcode label has to work for a scanner before it works for a person looking at the label. The printed bars carry the encoded value, the blank quiet zones tell the scanner where the symbol begins and ends, and the human-readable text gives staff a fallback when a scan fails. When any of those parts disagree, a label that looks tidy on screen can still cause receiving delays, point-of-sale errors, or manual rekeying.

Linear barcodes are not one interchangeable format. A retail item normally needs a numeric GTIN symbol such as UPC-A or EAN-13 because stores, marketplaces, and inventory systems expect those lengths and check digits. Internal assets, shelf tags, cartons, and shipment labels often use Code 128 or Code 39 because the payload may be an alphanumeric stock code rather than a globally assigned trade item number.

Common linear barcode format choices
Format family Typical use Data shape Common mistake
UPC-A North American retail items and point-of-sale labels. Eleven body digits plus one check digit. Treating a valid check digit as proof that the product number is assigned.
EAN-13 International retail trade items and product packaging. Twelve body digits plus one check digit. Mixing an EAN-style value with a system that expects UPC-A length.
Code 128 Dense asset, shipment, inventory, and internal ID labels. Mixed printable characters. Letting a long value become too wide for the available label area.
Code 39 Older scanner fleets, simple asset tags, and low-density labels. Uppercase letters, digits, spaces, and a small punctuation set. Entering lowercase or unsupported punctuation and expecting the scan value to stay unchanged.
Barcode anatomy showing quiet zones, encoded bars, human-readable text, and label fit.

Check digits deserve special caution. They catch many typing mistakes by making the final digit depend on the earlier digits, but they do not look up a company prefix, prove product ownership, or confirm that a marketplace will accept the number. They are a composition check, not a registration check.

Printing introduces another set of limits. A good screen preview does not test ink spread, label stock, surface reflection, scanner angle, or scaling in the final artwork. Barcode planning is therefore a chain of checks: valid value, suitable symbology, enough quiet space, readable contrast, sensible physical size, and a real scan test on the final label.

How to Use This Tool:

Start with the format required by the receiving system, then use the preview and readiness checks to catch problems before artwork leaves the browser.

  1. Choose Barcode format. Use UPC-A or EAN-13 when the downstream system expects a retail GTIN length. Use Code 128 for mixed printable IDs, and Code 39 for uppercase-friendly asset or inventory labels.
  2. Enter Data to encode. The summary and Validation Ledger show the Encoded value after normalization, so check that value before relying on the preview.
  3. For EAN-13 and UPC-A, set Check digit handling. Auto-calculate if missing appends the final digit from the body value, Require valid full value blocks an invalid full code, and Recalculate final digit rebuilds the last digit from the entered body.
  4. Add Label caption only when the printed label needs extra text below the symbol. The caption does not scan; the normalized barcode value does.
  5. Open Advanced when the label has physical constraints. Tune Bar width, Bar height, Quiet margin, Human-readable text, colors, Narrow bar print width, Target label width, and Raster export scale.
  6. Use Barcode Studio for the generated symbol, Validation Ledger for pass or review details, and Label Readiness Bars for the five planning scores. If Payload is Blocked or a warning appears, fix the value or settings before downloading artwork.

After export, place the barcode at its final size and scan the actual printed label. The readiness score is a planning aid, not a substitute for a scanner test.

Interpreting Results:

Check the Encoded value first. That value is copied by Copy Value, rendered in the barcode preview, and written into the JSON output. If a Code 39 entry is uppercased or an EAN-13 value has non-digit characters ignored, the normalized value may differ from what was typed.

The readiness label combines value validity, check-digit status, quiet margin, contrast, and estimated label fit. A high score means the current settings are reasonable for artwork preparation. It does not mean the symbol is verified under ISO print-quality grading or accepted by a retailer, warehouse, or marketplace.

Barcode readiness score labels
Readiness label Score range How to act on it
Print-ready 85 to 100 Prepare artwork, then scan-test the final physical label.
Review 70 to 84 Inspect the warning text and ledger details before handoff.
At risk 45 to 69 Expect scan problems unless the weak area is corrected.
Blocked 0 to 44 Fix the payload, check digit, or core settings before exporting.

Use the Validation Ledger as the correction list. Payload and Check digit explain whether the data can be encoded, Quiet zone and Print fit show physical-label concerns, and Contrast flags colors that may be hard for scanners to read.

Technical Details:

UPC-A and EAN-13 encode fixed-length numeric trade item identifiers. The final digit is calculated from the preceding digits with a modulo-10 rule. That rule catches many substitution and transposition errors because changing one body digit usually changes the weighted sum and therefore the expected final digit.

Code 128 and Code 39 solve a different problem. They carry variable-length values that are common in warehouses, logistics, laboratories, and asset systems. Code 128 is dense and accepts printable ASCII here. Code 39 is easier for many older systems to handle, but its standard set is limited to uppercase letters, digits, spaces, and . $ / + % -.

Formula Core:

For UPC-A and EAN-13, the check digit is computed from the body digits read right to left. The rightmost body digit is weighted by 3, the next by 1, and the weights continue alternating.

S = i=1ndiwi,wi{3,1} C = (10-(Smod10))mod10 R = round(0.30P+0.20D+0.18Q+0.17K+0.15F) W = M×X

Here S is the weighted body-digit sum, C is the final check digit, R is the readiness score, P is payload validity, D is check-digit status, Q is quiet-zone score, K is contrast score, F is label-fit score, W is estimated print width, M is the estimated narrow-bar module count, and X is Narrow bar print width in millimeters.

For UPC-A body digits 03600029145, the weighted sum is 58. The check digit is (10 - (58 mod 10)) mod 10, so the normalized value becomes 036000291452. The same modulo-10 method is used for EAN-13 body digits, with the longer body length.

Validation Rule Core:

Barcode format validation rules
Format Accepted value Normalization and check behavior Planning warning
Code 128 Printable ASCII characters without line breaks. No GTIN check-digit mode is applied. Values longer than 80 characters are flagged as potentially wide.
EAN-13 12 body digits or 13 full digits. The final digit is computed, required, or recalculated from the first 12 digits. Non-digit characters are ignored for validation and reported as a warning.
UPC-A 11 body digits or 12 full digits. The final digit is computed, required, or recalculated from the first 11 digits. Non-digit characters are ignored for validation and reported as a warning.
Code 39 Uppercase letters, digits, spaces, and . $ / + % -. Lowercase letters are uppercased; unsupported characters block the payload. Values longer than 48 characters are flagged as potentially wide.

Readiness Scoring:

Readiness scoring is intentionally conservative. A valid payload carries the largest weight, then the check-digit result, then physical planning checks that affect scan reliability after printing.

Barcode readiness scoring rules
Readiness area Weight Boundary or score rule
Payload validity 30% 100 when the normalized value can render, otherwise 0.
Check digit 20% 100 for valid or computed retail digits, 90 for recalculated full values, 0 for invalid retail digits, and 100 for non-retail formats.
Quiet zone 18% Configured margin is compared with at least 10 narrow bars for Code 128 and Code 39, 11 for UPC-A and EAN-13, and never less than 12 px.
Contrast 17% 7:1 or higher is Strong, 4.5:1 to below 7:1 is Usable, and below 4.5:1 is Low.
Label fit 15% Estimated print width at or below 90% of the target label width scores best; above 135% drops to the weakest fit score.

Estimated print width depends on the rendered symbol width when available and the selected Narrow bar print width. Changing the physical print scale outside the generator can therefore invalidate the fit estimate even when the encoded value and check digit remain correct.

Limitations:

A generated barcode is artwork plus planning checks. It is not a formal verifier report, product-number assignment service, or guarantee that a downstream system will accept the value.

  • UPC-A and EAN-13 check digits confirm internal numeric composition, not product ownership or listing validity.
  • Contrast and quiet-zone checks do not test ink spread, reflectance, abrasion, curvature, or scanner angle.
  • Caption text does not scan. Only the normalized value encoded in the bars is machine-readable.
  • Any resizing, cropping, recoloring, or compression after download can change the scan result and should be followed by a new physical scan test.

Advanced Tips:

  • Use Require valid full value for final UPC-A or EAN-13 proofs so a mistyped final digit blocks the payload instead of silently creating new artwork.
  • Choose Recalculate final digit only when the body digits are authoritative and the last digit is known to be a draft or placeholder.
  • Keep Quiet margin at or above the planning target before sending artwork to a layout file, because cropping or nearby text can remove the scan boundary.
  • Use dark bars on a light background when the Contrast ledger row falls below Strong; brand colors that look acceptable on screen can still scan poorly.
  • Check Print fit after changing Narrow bar print width or Target label width. A longer Code 128 value can outgrow a compact label even when the payload is valid.
  • Leave Human-readable text on for retail symbols unless the final package design prints the same value nearby for manual entry.

Worked Examples:

A warehouse tag starts with UPC-A body digits 03600029145. With Check digit handling set to Auto-calculate if missing, the Encoded value becomes 036000291452, and Validation Ledger reports Check digit as Computed.

A product proof arrives as EAN-13 value 4006381333930 in Require valid full value mode. The expected final digit for 400638133393 is 1, so Payload stays Blocked until the value is corrected to 4006381333931 or Recalculate final digit is chosen deliberately.

An asset label uses Code 39 and the entered value is box-24a-014. The normalized Encoded value becomes BOX-24A-014, Check digit shows N/A, and the useful review shifts to Quiet zone, Print fit, Contrast, and the printed scan test.

A UPC-A label with Bar width set to 2 px needs a quiet-zone planning target of 22 px. If Quiet margin is set to 10 px, the Quiet zone entry moves to Review, and the readiness label may fall even when the digits and preview are valid.

FAQ:

Can this create official retail product numbers?

No. It can compute and validate the final digit for UPC-A and EAN-13 values, but it does not assign GTINs, confirm company-prefix ownership, or check marketplace registration.

Why did my EAN-13 or UPC-A value reject a full number?

The final digit did not match the modulo-10 check digit expected from the body digits, or the value did not have the required 12/13 digits for EAN-13 or 11/12 digits for UPC-A.

Why did my Code 39 value change case?

Standard Code 39 is uppercase here. Lowercase letters are converted to uppercase, while characters outside letters, digits, spaces, and . $ / + % - block the payload.

Does the label caption scan?

No. Label caption is printed below the symbol as extra label text. The scanner reads the normalized Encoded value in the bars.

Does the barcode value need a server lookup?

No lookup is needed for the supported formats. The value normalization, check-digit calculation, preview rendering, and downloads run in the browser, so there is no product database verification.

Glossary:

Symbology
The barcode format rules that define how characters become bars and spaces.
Payload
The data value encoded into the barcode after validation and normalization.
Check digit
A final digit calculated from earlier digits to catch many entry errors.
GTIN
Global Trade Item Number, the identifier family used by retail symbols such as UPC-A and EAN-13.
Human-readable interpretation
The printed barcode value that a person can type when scanning fails.
Quiet zone
The blank area before and after a linear barcode that helps scanners find the symbol boundary.
Narrow bar
The smallest bar or module width used to estimate physical barcode size.

References: