Barcode Generator
{{ 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 is useful only when the encoded value, printed symbol, and human-readable text all agree. A clean UPC or EAN can still fail at a scanner if the final digit is wrong, the bars are squeezed into a small label, or the quiet zone at the edges is crowded by nearby artwork.

Linear barcodes also carry different expectations. UPC-A and EAN-13 are numeric retail symbols tied to GTIN-style check digits. Code 128 is more flexible for asset tags, shipment IDs, and internal SKUs because it can carry printable ASCII. Code 39 is older and simpler, but its standard character set is narrower and uppercase-heavy.

Barcode anatomy showing quiet zones, encoded bars, human-readable text, and label fit estimate.

The useful review question is practical: will the value be accepted by the chosen symbology, will the visible digits match the encoded value, and is the planned label likely to leave enough space and contrast for a real scan test? The generated artwork is a production aid, not a proof that a printed label meets every retail or warehouse verification rule.

Technical Details:

EAN-13 and UPC-A are fixed-length numeric symbols. The final digit is a modulo-10 check digit calculated from the preceding digits, so a mistyped body value changes the expected final digit. In this tool, Auto accepts the body length and appends the computed digit, Require accepts only a complete value with a valid final digit, and Recalculate rebuilds the final digit from the body value.

Code 128 and Code 39 do not use the GTIN check-digit control here. Code 128 accepts printable ASCII without line breaks. Code 39 is converted to uppercase and then limited to digits, uppercase letters, spaces, and the standard punctuation characters . $ / + % -. Long payloads can render as very wide symbols, so the length warning is a label-planning cue rather than a data-validity failure.

C = ( 10 - ( S mod 10 ) ) mod 10

Here S is the weighted sum of the body digits, read from right to left with alternating weights of 3 and 1. A UPC-A body of 03600029145 produces check digit 2, so the encoded value becomes 036000291452.

Barcode format validation rules
Format Accepted value Check digit handling Planning warning
Code 128 Printable ASCII, no line breaks Not applicable in this workflow Warns above 80 characters
EAN-13 12 body digits or 13 full digits Computes, requires, or recalculates the final digit Digits only; other characters are ignored for validation
UPC-A 11 body digits or 12 full digits Computes, requires, or recalculates the final digit Digits only; other characters are ignored for validation
Code 39 Uppercase letters, digits, spaces, and . $ / + % - Not applicable in this workflow Warns above 48 characters

The readiness score combines five checks. Payload validity and check-digit status protect the encoded data. Quiet zone and label fit estimate whether the symbol has enough edge space and planned width. Contrast uses a luminance contrast ratio between the selected bar color and background color, with low contrast flagged below 4.5:1 and Strong shown at 7:1 or higher.

Readiness score components
Readiness area Weight How it is judged
Payload validity 30% Valid values score 100; invalid format, missing data, or bad length blocks rendering.
Check digit 20% Retail symbols score highest when the final digit is valid or computed; recalculated values score slightly lower.
Quiet zone 18% EAN-13 and UPC-A target 11 narrow bars of edge space; Code 128 and Code 39 target 10, with a 12 px minimum.
Contrast 17% Dark bars on a light background score best; low contrast raises a warning.
Label fit 15% Estimated symbol width is compared with the target label width in millimeters.

Estimated print width is a planning number. It multiplies the rendered or fallback module count by the chosen narrow bar print width, then compares that value with the target label width. A real printed barcode still needs inspection on the final stock, printer, and package because ink spread, scaling, placement, reflectance, and scanner angle are outside the page's calculation.

Everyday Use & Decision Guide:

Start by choosing the format that the receiving system expects. Use UPC-A or EAN-13 for retail-style numeric product identifiers that already have the right body length. Use Code 128 for internal asset labels, shipment IDs, or SKUs that include mixed punctuation. Use Code 39 when the destination system or scanner profile specifically expects that older uppercase format.

For UPC-A and EAN-13 drafts, Auto is the safest first pass when you have the body digits but not the final digit. Require is better when someone handed you a finished number and you need to reject a wrong final digit. Recalculate is useful for correcting a draft, but treat the rebuilt value as a new candidate that still needs a product-data check outside this page.

  • Check the summary badge first. Print-ready means the planning checks look strong; it does not certify the printed label.
  • Open Validation Ledger when a warning appears. The Payload, Check digit, Quiet zone, Print fit, and Contrast rows say which part needs attention.
  • Keep human-readable text on for UPC-A and EAN-13 unless the final label prints the same digits nearby.
  • Raise Quiet margin or reduce Bar width when the quiet-zone warning appears.
  • Increase Target label width, reduce payload length, or change format when Print fit is Tight.

The caption is a label note, not encoded data. If the preview shows Warehouse A-014 below the bars, only the normalized barcode value is inside the symbol. Use Copy Value or the JSON view when a downstream system needs the exact encoded value instead of the caption text.

Step-by-Step Guide:

Follow the form from the required barcode data to the readiness review, then use the result view that matches your handoff.

  1. Set Barcode format. The help text under Data to encode changes to the accepted characters or digit length for that format.
  2. Enter the value in Data to encode. If the payload is not valid, the preview area shows the validation message and the Payload row becomes Blocked.
  3. For EAN-13 or UPC-A, choose Check digit handling. Auto appends a missing final digit, Require rejects an invalid full value, and Recalculate rebuilds the final digit from the body.
  4. Add Label caption only when the printed label needs a note below the symbol. The caption can help a shelf tag or asset label, but it is not encoded.
  5. Open Advanced for sizing and print planning. Adjust Bar width, Bar height, Quiet margin, Narrow bar print width, and Target label width until the summary and ledger warnings make sense.
  6. Review Barcode Studio for the visual symbol, Validation Ledger for pass/review details, Label Readiness Bars for the five scores, and JSON for the normalized payload and warnings.

If rendering stays unavailable after the value is valid, treat the Renderer row as the recovery cue and avoid exporting artwork until the preview has produced an SVG size.

Interpreting Results:

The most important result is the normalized value. That value is what the barcode preview encodes and what Copy Value returns. For retail formats, a computed or valid check digit gives confidence that the number is internally composed correctly, but it does not prove the GTIN belongs to a product or company.

Readiness label boundaries
Readiness label Score range Meaning
Print-ready 85 to 100 Planning checks are strong enough to prepare artwork for a final scan test.
Review 70 to 84 One or more settings need a closer look before handoff.
At risk 45 to 69 The payload may render, but label fit, contrast, or edge space is weak.
Blocked 0 to 44 Data validity or another core requirement is too weak for artwork export.

Do not read a high score as scanner certification. Use the ledger to clear visible warnings, then test the final print with the intended scanner and label material. If human-readable text is hidden for a retail symbol, make sure the same digits appear elsewhere on the label before approving the artwork.

Worked Examples:

A small warehouse label starts with UPC-A body digits 03600029145. With Check digit handling set to Auto, the normalized value becomes 036000291452 and the Check digit row shows Computed. At the default 2 px bar width, the quiet-zone planning target is 22 px, so a 20 px quiet margin can still raise a Review note even when the overall score remains high.

An EAN-13 proof arrives as 4006381333930 and Require mode rejects it. The expected final digit for the first 12 digits is 1, so the payload stays blocked until the value is corrected to 4006381333931 or Recalculate is used to rebuild the final digit.

A Code 39 asset tag entered as box-24a-014 is uppercased to BOX-24A-014. The Check digit row shows N/A, and the useful checks shift to Payload, Quiet zone, Print fit, Contrast, and Renderer. If the tag grows past 48 characters, shorten the identifier or plan a wider label before relying on the symbol.

FAQ:

Can this create official retail product numbers?

No. It can compute or validate the final digit for UPC-A and EAN-13 style values, but it does not assign GTINs, confirm a company prefix, or prove that a product identifier is authorized.

Why did my EAN-13 or UPC-A input drop characters?

Those formats use digits only in this workflow. Spaces are ignored, and other non-digit characters raise a warning because only the digit sequence is used for validation and rendering.

Does the label caption scan?

No. The caption is printed below the preview as extra label text. The scanner reads the normalized barcode value shown in the summary, ledger, and JSON output.

What should I do with a low contrast warning?

Use darker bars, a lighter background, or both. The Contrast row moves from Low to Usable at 4.5:1 and to Strong at 7:1, but scanner testing on the final material still matters.

Is the entered barcode value uploaded?

The value is normalized, rendered, copied, and exported in the browser workflow. The page does not send the entered value to a barcode generation service.

Glossary:

Symbology
The barcode format, such as Code 128, EAN-13, UPC-A, or Code 39.
GTIN
A Global Trade Item Number used for product identification in retail and supply-chain systems.
Check digit
The final numeric digit calculated from the preceding digits to catch many entry mistakes.
Quiet zone
Clear light space before and after the bars so a scanner can find the symbol boundary.
Human-readable text
The printed digits or text below the bars for manual keying and visual confirmation.
Narrow bar print width
The planned width of one narrow module, used here to estimate printed symbol width.