Barcode Generator
Runs 100% in your browserCreate and validate Code 128, Code 39, EAN-13, UPC-A, EAN-8, and ITF-14 barcodes locally. Validate check digits, generate single symbols or batch label sheets, customise quiet zones, bar width, and colours, and download SVG or PNG without uploading your data.
Create a barcode that validates before export
Generate Code 128, Code 39, EAN-13, UPC-A, EAN-8, and ITF-14 barcodes locally. Validate check digits, create batch label sheets, customise print settings, and download SVG or PNG — without uploading your data.
Step 1
Enter barcode data
Step 2
Validate and export
Your barcode will appear here.
Enter a value, choose a format, and click Generate.Audit
Validation report
Validation guidance appears after you enter a value.
Diagnostics
Scan readiness
Session
Recent barcodes
Generated barcodes appear here for quick re-use.
Local rendering, transparent limits
This workspace renders common 1D barcode formats in your browser using a vendored MIT-licensed encoder. It does not register a UPC, EAN, GTIN, or other licensed identifier. A successful render cannot guarantee scanner acceptance across all printers, substrates, sizes, cameras, or receiving systems. Test your exported symbol at its intended physical size with the target scanner.
Frequently asked questions
A barcode generator converts text or numbers into a machine-readable barcode symbol. This workspace renders common 1D formats locally, validates the value rules for the selected symbology, shows check-digit guidance, and lets you download SVG or PNG without uploading your data. Rendering an image does not register or assign a retail identifier.
The tool supports Code 128, Code 39, EAN-13, UPC-A, EAN-8, and ITF-14. The format selector shows plain-language rules for each symbology. QR codes and other 2D formats are handled by the separate QR Code Generator page.
Code 128 is a flexible high-density linear format used for internal logistics, shipping, inventory, serial-number, and asset-label workflows. This tool accepts ASCII text for Code 128 and renders a local symbol with optional human-readable text.
This implementation accepts ASCII characters from U+0000 through U+007F for Code 128. For a physical label, avoid control characters unless the scanner and receiving system are explicitly configured to interpret them.
Code 39 is a variable-length alphanumeric format often used for internal asset, inventory, industrial, and tracking labels. This workspace accepts uppercase letters, digits, spaces, and the symbols - . $ / + %.
EAN-13 is a 13-digit retail-format barcode used in international product identification. Enter the first 12 digits to calculate a check digit automatically, or enter all 13 digits to verify the supplied check digit. A generated image does not create a licensed GTIN.
UPC-A is a 12-digit retail-format barcode widely used for product identification in North America. Enter 11 base digits to calculate the check digit, or enter all 12 digits to verify it. Product-number ownership and registration are separate from image generation.
EAN-8 is a compact numeric retail-format barcode intended for smaller packages. Enter 7 base digits to calculate the eighth check digit, or enter all 8 digits to verify the supplied final digit.
ITF-14 is a numeric logistics and trade-unit format. Enter 13 base digits to calculate the final check digit, or enter all 14 digits to verify it. Whether an ITF-14 value is appropriate for a real supply-chain process depends on the governing identifier rules and trading partners.
For EAN, UPC, and ITF-14 formats, the check digit is calculated from the preceding digits using standard alternating modulo-10 weighting (weights 1 and 3). The tool shows whether it added a check digit or verified the supplied final digit, and reports a mismatch with the expected value before rendering.
For EAN-13, UPC-A, EAN-8, and ITF-14, you can enter the base digits and let the tool append the calculated check digit, or enter the full length to verify an existing final digit. For Code 128 and Code 39, use the complete value — this workflow does not add a retail check digit.
No. The tool validates the shape and check digit of a value and creates a barcode image, but it does not assign, license, or register a GTIN, UPC, EAN, or company prefix. Consult the appropriate GS1 organisation for product-identifier registration and trading-partner requirements.
Yes. Code 128 and Code 39 are usually more flexible choices for internal serials, assets, locations, and inventory labels because they can represent internal values without implying retail registration. Confirm the selected format and scanner configuration with your workflow.
Yes. Switch to Batch / label sheet mode and enter one value per line. The tool validates each row, can remove exact duplicate values, reports valid and invalid counts, and creates a local multi-column SVG sheet for printing or review.
You can load a local text, CSV, or TSV file through the file picker. In batch mode, line and comma-separated values are converted into one value per line in memory. The file is not uploaded — confirm that the resulting rows match your intended labels before printing.
Yes. Single-barcode mode provides SVG export, and batch mode provides a multi-barcode SVG sheet. SVG is a vector format that can stay crisp when resized, but the final physical size, contrast, quiet zone, and print process still affect scanning.
Yes. Single-barcode mode can convert the local SVG preview into a PNG download. PNG is convenient for documents and quick sharing, while SVG is usually preferable when a design or print workflow needs scalable vector artwork.
The quiet zone is the clear space around the barcode bars. Scanners use this separation to distinguish the symbol from nearby text, borders, or graphics. The workspace exposes a quiet-zone slider and includes the selected margin in the rendered output. The recommended minimum is at least 10× the narrow bar width.
Often yes for operational labels, because a person can read or key the value when a scan fails. The option is configurable. Keep the printed text legible and verify that the label layout does not crowd the bars or their quiet zones.
Common causes include invalid data, a wrong symbology, insufficient quiet zone, low contrast, small physical size, blur, distortion, reflective material, or a scanner configured for different formats. Validate the value, export at an appropriate size, print a test label, and test with the scanner used by the final workflow.
No. A browser preview confirms that the encoder accepted the data and produced a valid symbol. It cannot guarantee scanner success across every printer, substrate, size, camera, laser scanner, lighting condition, or receiving system. Test the physical output before deployment.
High contrast is the safest starting point — dark bars on a light background. The controls allow colour experimentation, but unusual colours, gradients, transparency, reflective surfaces, or low contrast can reduce scanner reliability. The scan-readiness checklist flags any settings that may cause problems.
Yes. Use the bar-width and bar-height sliders to adjust the local preview and exports. Increasing width can help when a label is physically larger. Shrinking a symbol too far can make bars merge or become difficult for a scanner to resolve.
Yes. Batch / label sheet mode creates an SVG sheet with one, two, or three columns. The sheet is a flexible browser-generated layout rather than a guarantee for a particular label brand or adhesive stock, so check the page size and label template before a production run.
Yes. The dedicated client validates values and renders SVG or PNG in your browser using a locally vendored MIT-licensed encoder. It does not send values to a barcode API, upload any file, use an account, or store input in localStorage or sessionStorage.
The browser file workflow accepts text, CSV, and TSV files up to 2 MB. The file is read with FileReader and converted into in-memory values. Very large label jobs should be split and tested in smaller batches.
The responsive workspace is designed to work in modern desktop and mobile browsers. The destination scanner, printer, operating system, and barcode font or image support still determine how the exported symbol behaves, so test important labels on the device and equipment used in production.
The Barcode Generator creates common 1D symbols made of bars and spaces. QR codes are 2D matrix symbols that store more types and larger amounts of data. Use the separate QR Code Generator when your use case needs a URL, Wi-Fi payload, contact card, or other QR-oriented content.
Yes. The ToolsSonic barcode workspace is a free browser utility. It does not require an account or upload. Any external registration, label stock, printer, scanner, or commercial barcode-management service is outside the tool.
No. A barcode supports product, logistics, or offline workflows, but generating a barcode image does not affect search rankings, indexing, traffic, or conversions. Search performance depends on content relevance, technical quality, and other factors.
You can use the renderer to test or prepare label artwork, but real retail use requires the correct registered identifier, product-data governance, print specifications, and trading-partner acceptance. Do not treat a locally generated image as proof that a product number is licensed or accepted.
What is Barcode Generator?
What is a Barcode Generator and how does it work?
A Barcode Generator converts text or numbers into a one-dimensional machine-readable barcode symbol that can be printed on a label, displayed on a screen, or tested against a scanner. ToolsSonic's Barcode Generator focuses on the six most widely used 1D formats: Code 128, Code 39, EAN-13, UPC-A, EAN-8, and ITF-14. Every step — format selection, value validation, check-digit calculation, symbol rendering, and SVG/PNG export — runs entirely in your browser using a locally vendored MIT-licensed encoder. No value is ever sent to an external barcode API or stored in localStorage, sessionStorage, or on any server.
The tool follows a clear four-step workflow: Choose a symbology — each format shows plain-language rules so you immediately know whether to use digits-only, ASCII text, or a specific length. Enter a value — the textarea and optional local file loader accept a single value for single-barcode mode, or one value per line for batch mode. Validate and generate — the client validates character sets, required lengths, and check digits before calling the encoder. For EAN-13, UPC-A, EAN-8, and ITF-14, it automatically calculates and appends the check digit when you supply base digits, or verifies the supplied check digit when you supply the full length. Export locally — SVG download for scalable print or design use, PNG download via a 2× canvas render, a multi-barcode SVG sheet in batch mode, copy valid values to clipboard, or print from the browser.
The scan-readiness diagnostics panel is a key differentiator from every competitor surveyed. It shows six checkpoints — valid value accepted, bar width at least 2px, bar height at least 60px, quiet zone at least 8px, human-readable text shown, and high-contrast bar colour — so you can identify settings that may prevent reliable scanning before you print a label. The 6-stat panel reports valid values, invalid values, format name, check-digit action, character count, and row count after every generation. The validation report lists each value with its exact accept or reject reason, colour-coded green or red, so batch problems are immediately locatable.
Code 128 vs Code 39 vs EAN vs UPC vs ITF-14 — choosing the right format
Code 128 is the highest-density variable-length linear format and the best default for internal logistics, shipping, inventory, serial numbers, and asset labels. It encodes the full ASCII character set (U+0000–U+007F), so letters, digits, spaces, and common punctuation all work. A single barcode can hold 20–30 printable characters without becoming too wide to scan at typical label sizes.
Code 39 is an older, more widely compatible format used in industrial, automotive, healthcare, and internal-tracking contexts. It supports uppercase A–Z, digits 0–9, space, and six symbols (- . $ / + %). It is larger and less dense than Code 128 but does not require a check digit for most workflow applications, making it a reliable choice when the scanner pool is diverse.
EAN-13 is the international retail product identifier barcode used on consumer packaged goods worldwide. It encodes exactly 13 digits: a 2–3 digit GS1 prefix, a company code, a product reference, and a final check digit calculated by the GS1 modulo-10 algorithm. The tool calculates or verifies that digit automatically. Generating an EAN-13 barcode image does not assign or register a GTIN — identifier ownership must come from the appropriate GS1 member organisation.
UPC-A is the 12-digit North American equivalent of EAN-13. Retailers in the United States and Canada commonly require it for product shelf labelling and point-of-sale scanning. It is structurally compatible with EAN-13: every UPC-A code is a valid EAN-13 when zero-padded. EAN-8 is a compact retail format for small packages where a full 13-digit barcode would not fit. ITF-14 is a 14-digit logistics format for cartons, pallets, and trade units in GS1 supply chains — it also uses the modulo-10 check digit.
Batch label generation, print quality, and scanner readiness
Batch / label sheet mode accepts one value per line, an optional deduplication pass, and one/two/three-column sheet layout. The sheet is generated as an SVG with accurate cell dimensions — no arbitrary row or page limits. Each row is validated individually so the audit clearly separates the values that rendered successfully from those that need correction. The sheet SVG can be opened in a browser, printed directly, or placed into Inkscape, Figma, or Illustrator for a label template.
Quiet zone is the most commonly overlooked print setting. Barcode scanners distinguish a symbol from surrounding content by detecting the minimum clear space around the bars. The ISO standard minimum is 10× the width of the narrowest bar. The workspace default is 12px — suitable for screen preview — but physical labels at small sizes often need 20–30px. The scan-readiness checklist flags quiet zones below 8px. The same principle applies to bar height: laser scanners lose the beam if a label is too short, so 60px is the recommended minimum for scan-critical labels.
Colour contrast matters more than many designers expect. Dark bars on a white background remain the most reliable configuration across laser, CCD, and camera scanners. The workspace starts with near-black (#111827) bars on white (#ffffff) and flags any setting where the contrast may be insufficient. The Clipboard API copy, Blob SVG download, and 2× canvas PNG download are all local operations — file data is created and handled in your browser tab with zero upload.
Common use cases
- Creating Code 128 labels for internal inventory, shipping, serial numbers, and warehouse workflows
- Preparing Code 39 asset tags and industrial tracking labels with uppercase alphanumeric values
- Validating EAN-13, UPC-A, EAN-8, or ITF-14 base digits and getting the correct check digit before rendering
- Generating a batch of one-value-per-line barcodes and reviewing valid/invalid counts in the audit panel
- Downloading an SVG barcode for scalable print or vector design use
- Downloading a PNG barcode for quick document, mockup, or internal-use insertion
- Running scan-readiness checks on bar width, height, quiet zone, contrast, and human-readable text settings
- Loading a local TXT, CSV, or TSV list and generating a multi-column SVG label sheet without uploading source values
Why use ToolsSonic's Barcode Generator?
ToolsSonic's Barcode Generator beats every comparable public barcode tool on the five gaps that matter most for operational label preparation.
TEC-IT (barcode.tec-it.com) has the broadest symbology directory, but its workspace is a legacy form with no per-value validation reasons, no scan-readiness guidance, no batch audit, no local privacy guarantee, and a complex multi-pane UX that confuses new users. ToolsSonic delivers guided plain-language format rules, per-row validation reasons, a scan-readiness checklist, and a privacy-first local architecture in a single focused workspace.
BarcodesInc (barcodesinc.com/generator) targets the "barcode maker online" intent but uses a server-side render, has no check-digit guidance, shows no validation reasons for invalid inputs, and presents dated generation-counter claims. ToolsSonic renders locally, explains exactly why a value is valid or invalid, and makes no unsupported claims.
Yotpo (yotpo.com/tools/barcode-generator) has a clean four-step flow but is server-rendered, provides no live validation, has no batch mode, no quiet-zone control, no bar-width control, and no explicit identifier-registration disclaimer. ToolsSonic adds all five without increasing UX complexity.
BarcodeSVG (barcodesvg.com) exposes useful controls (bar width, height, margin, human-readable text) but has no check-digit verification workflow, no per-value audit, no session history, no scan-readiness checklist, no diagnostics, and no explicit local-only privacy messaging. ToolsSonic adds the validation layer and diagnostics while keeping the same control accessibility.
MobileDemand (mobiledemand.com/barcode-generator) has a sheet-mode concept and common symbologies but uses server rendering, imposes an arbitrary 30-label page limit, has no validation reasons, no SVG export for single barcodes, and no quiet-zone control. ToolsSonic removes the page limit, adds full SVG export, adds per-value reasons, and runs 100% locally.
| Format | Type | Characters | Length | Check digit | Best for |
|---|---|---|---|---|---|
| Code 128 | 1D linear | Full ASCII (U+0000–U+007F) | Variable | Internal (auto) | Logistics, shipping, serial numbers, internal labels |
| Code 39 | 1D linear | A–Z 0–9 - . $ / + % space | Variable | Optional | Asset tags, industrial, healthcare, tracking |
| EAN-13 | 1D retail | Digits 0–9 | 12+1 check | Modulo-10 (auto) | International retail product labels (GS1) |
| UPC-A | 1D retail | Digits 0–9 | 11+1 check | Modulo-10 (auto) | North American retail product labels |
| EAN-8 | 1D retail | Digits 0–9 | 7+1 check | Modulo-10 (auto) | Small retail packages |
| ITF-14 | 1D logistics | Digits 0–9 | 13+1 check | Modulo-10 (auto) | GS1 cartons, pallets, trade units |
| Feature | ToolsSonic | TEC-IT | BarcodesInc | Yotpo | BarcodeSVG | MobileDemand |
|---|---|---|---|---|---|---|
| Check-digit auto-calculate | ✅ All 4 formats | Partial | ❌ | ❌ | Hints only | ❌ |
| Check-digit verify on input | ✅ With reason | ❌ | ❌ | ❌ | ❌ | ❌ |
| Per-value validation reason | ✅ All values | ❌ | ❌ | ❌ | ❌ | ❌ |
| Scan-readiness checklist | ✅ 6 checks | ❌ | ❌ | ❌ | ❌ | ❌ |
| Batch / label sheet mode | ✅ Unlimited rows | Multi-row | ❌ | ❌ | ❌ | 30-label limit |
| CSV / TXT file load | ✅ FileReader 2MB | ❌ | ❌ | ❌ | ❌ | ❌ |
| SVG export | ✅ Single + sheet | ✅ | ❌ | Messaging only | ✅ | ❌ |
| PNG export | ✅ 2× canvas | ✅ | ❌ | ✅ | ✅ | ✅ |
| Quiet zone control | ✅ Slider | ❌ | ❌ | ❌ | ✅ | ❌ |
| Session history | ✅ 8 entries | ❌ | ❌ | ❌ | ❌ | ❌ |
| Local-only / no upload | ✅ Zero fetch/XHR | ❌ Server | ❌ Server | ❌ Server | Unclear | ❌ Server |
| Retail identifier disclaimer | ✅ Explicit | Partial | ❌ | ❌ | ❌ | ❌ |
Related tools
QR Code Generator
Editor's choiceCreate static QR codes locally for URLs, text, Wi-Fi, vCards, email, SMS, phone, locations, and events. Customize colors, error correction, quiet zone, size, and an optional logo, then download PNG or SVG.
UUID Generator
Editor's choiceGenerate browser-native UUID v4 or UUID v7 identifiers in bulk, choose developer-friendly output formats, validate pasted UUIDs, and export private local results.
CSV Viewer
Editor's choiceView CSV and TSV files as a fast, searchable, sortable table. Detect delimiters, inspect columns, filter rows, sort mixed data, toggle columns, paginate large previews, and export selected rows locally.
CSV to SQL INSERT
Editor's choiceConvert CSV to SQL INSERT statements with dialect hints, identifier quoting, NULL and type policies, batching, and row diagnostics — nothing uploaded.
JSON to CSV Converter
Editor's choiceConvert JSON arrays, nested objects, and array properties into clean CSV locally. Flatten dot keys, expand arrays to indexed columns, choose delimiters and quotes, preview rows, and download spreadsheet-ready output without uploading data.
Text Formatter
Editor's choiceFormat and clean text online with transparent presets for copied prose, plain text, developer content, lists, and data. Normalize whitespace, line breaks, typography, Unicode, markup, case, duplicates, and sort order locally in your browser. No upload, no grammar rewrite, no persistent storage.