Barcode Generator

Generates a real, scannable 1D barcode, CODE128, CODE39, EAN-13, EAN-8, UPC, ITF-14, MSI, or pharmacode, from text or a numeric code, with proper symbology-specific encoding and check digits, entirely in your browser. A free online tool from Staaarter, right in your browser.

Runs locallyUpdated 2026-07-26

Overview

Introduction

Producing a correctly-encoded 1D barcode, with the right symbology structure and check digit, isn't something you can fake by drawing random bars.

This tool generates a real, scannable barcode in several common symbologies, entirely in your browser.

What Is Barcode Generator?

A 1D barcode generator built on the `jsbarcode` library, supporting CODE128, CODE39, EAN-13, EAN-8, UPC, ITF-14, MSI, and pharmacode, each with their real symbology-specific bar encoding and check digit calculation.

It's the linear-barcode counterpart to this category's QR Code Encoder & Decoder, for use cases that specifically call for a 1D barcode (like retail product codes) rather than a 2D QR code.

How Barcode Generator Works

Your input text and chosen format are passed to `jsbarcode`, which validates the input against that symbology's rules (for example, EAN-13 requiring 12-13 digits), computes any required check digit, and renders the resulting bar pattern to an off-screen canvas as a PNG.

Formats differ substantially in what they encode: CODE128 handles arbitrary ASCII text efficiently, while EAN/UPC/ITF are fixed-structure numeric formats used for retail and logistics.

When To Use Barcode Generator

Use it to generate a barcode for a product, asset tag, or internal tracking code that needs to be scanned with standard barcode-reading hardware or apps.

It's also useful for testing a barcode-scanning integration without needing physical printed barcodes on hand.

Often used alongside QR Code Encoder & Decoder.

Features

Advantages

  • Supports the specific symbologies real-world systems expect (retail EAN/UPC, logistics ITF-14, general-purpose CODE128), not just one generic bar pattern.
  • Calculates required check digits automatically, avoiding a common source of invalid barcodes when building them by hand.
  • Renders entirely client-side, with immediate visual feedback on invalid input for the chosen format.

Limitations

  • Each symbology has real structural constraints (numeric-only, fixed length, limited character sets); not every input is valid for every format.
  • Produces 1D barcodes only; for 2D codes (which can encode much more data, including URLs), use this category's QR Code Encoder & Decoder instead.

Examples

Generating a CODE128 barcode

Input

text: "SKU-48213", format: CODE128

Output

a scannable barcode encoding the literal text SKU-48213

CODE128 can encode arbitrary ASCII text directly, making it a flexible default for internal tracking codes.

Generating an EAN-13 barcode

Input

"400638133393", format: EAN-13

Output

a barcode with a 13th check digit calculated and appended automatically

Providing 12 digits lets jsbarcode calculate and append the correct 13th check digit per the EAN-13 specification.

Best Practices & Notes

Best Practices

  • Match the format to what your scanning hardware or downstream system actually expects; a perfectly valid CODE128 barcode won't scan correctly as an EAN-13 reader if the system expects that specific structure.
  • Test a generated barcode with your actual scanning hardware or app before relying on it in production, since printer resolution and barcode size both affect real-world scan reliability.
  • Use CODE128 for arbitrary internal codes and reserve EAN/UPC specifically for real retail product identifiers, since those numbering spaces are globally coordinated by GS1.

Developer Notes

Rendering happens via `JsBarcode(canvas, text, { format, displayValue: true })`, writing directly to an off-screen `<canvas>` element and reading back a PNG with `canvas.toDataURL()`; validation errors (e.g. wrong digit count for EAN-13) throw synchronously and are caught and surfaced as the tool's error message rather than producing a malformed barcode.

Barcode Generator Use Cases

  • Generating barcodes for internal asset tracking or inventory systems
  • Producing correctly-formatted EAN-13/UPC barcodes for retail product prototypes
  • Testing a barcode-scanning integration without physical printed samples

Common Mistakes

  • Choosing EAN-13 or UPC for an arbitrary internal code instead of CODE128, then fighting the format's strict numeric-length requirements unnecessarily.
  • Assuming a barcode will scan reliably at any size; very small or low-resolution barcodes often fail with real scanning hardware even though they render correctly here.

Tips

  • If you need to encode a URL or more complex data (like Wi-Fi credentials or a contact card) rather than a short code, use the QR Code Encoder & Decoder instead; 1D barcodes hold far less data.
  • Leave adequate quiet zone (blank margin) on both sides of the bars when placing a generated barcode in a design; cropping too tight is a common cause of real-world scan failures.

References

Frequently Asked Questions