# barcodegen.net — Full Documentation > Free online barcode generator supporting 20+ formats including Code 128, EAN-13, UPC, QR Code, Data Matrix, PDF417, and more. No signup required. No watermarks. No cost. Generate, customize, and download barcodes instantly in your browser. **Website:** https://www.barcodegen.net/ **Last updated:** 2026-04-26 --- ## Table of Contents 1. [What is barcodegen.net?](#what-is-barcodegeneratortech) 2. [How It Works](#how-it-works) 3. [Features](#features) 4. [Supported Barcode Formats](#supported-barcode-formats) 5. [User Interface Guide](#user-interface-guide) 6. [Barcode Customization Options](#barcode-customization-options) 7. [Download & Export](#download--export) 8. [Sharing & Embedding](#sharing--embedding) 9. [Bulk Barcode Generation](#bulk-barcode-generation) 10. [Barcode API](#barcode-api) 11. [Additional Tools](#additional-tools) 12. [Language Support](#language-support) 13. [Technical Implementation](#technical-implementation) 14. [All Page URLs](#all-page-urls) 15. [FAQ](#faq) --- ## What is barcodegen.net? barcodegen.net is a free, browser-based barcode generation tool. It allows anyone to create professional, print-ready barcodes without installing software, creating an account, or paying any fee. **Core value proposition:** - 100% free — no hidden fees, no subscription, no watermarks - No signup or login required - Works entirely in the browser (client-side rendering) - Supports 20+ industry-standard barcode formats - Real-time preview as you type - Bulk generation for multiple barcodes at once - Multiple export formats: PNG, JPG, GIF, SVG **Typical use cases:** - Retail product labeling (EAN-13, UPC-A, EAN-8) - Inventory and warehouse management (Code 128, ITF-14, GS1-128) - Shipping and logistics labels (ITF-14, GS1-128, Code 128) - Book and publication barcodes (ISBN, ISSN, ISMN) - QR codes for URLs, contact info, or marketing - Industrial part marking (Data Matrix, Code 39) - Healthcare and pharmaceutical packaging (Pharmacode, GS1-128) - Document tracking (PDF417, Code 128) --- ## How It Works 1. **Enter your barcode value** — Type the content to encode in the input box. For bulk generation, enter one value per line. 2. **Select a barcode format** — Choose from the format list on the left panel (desktop) or via the menu button (mobile). Formats are grouped by category. 3. **Customize appearance** — Adjust size, height, margin, and colors in the Options panel. 4. **Preview instantly** — Barcodes render in real-time as you type or change settings. 5. **Download** — Click Download to save as PNG, JPG, GIF, or SVG. Multiple barcodes are packaged into a ZIP file automatically. All processing happens client-side in the browser. No barcode data is sent to any server during generation. --- ## Features ### Real-Time Generation Barcodes are generated instantly as the user types. There is no submit button — the output updates live with every keystroke or settings change. ### Bulk Barcode Generation Enter multiple values in the input box (one per line) to generate multiple barcodes simultaneously. All barcodes are displayed in a scrollable output panel and can be downloaded as a single ZIP archive. ### CSV Import Users can import a CSV file to populate the input box automatically. Each row in the CSV becomes one barcode value. This is useful for generating barcodes from product databases or spreadsheets exported from inventory systems. ### Barcode Format Browser The left panel (desktop) or format menu (mobile) shows all supported barcode formats grouped by category. Each format displays a preview icon and its name. Users can filter by category tag or search by name/format code. ### Customization Options - **Show/hide human-readable text** below the barcode - **Barcode width** (length in mm) - **Barcode height** (in mm; locked to width for square 2D formats like QR Code and Data Matrix) - **Margin** around the barcode (in mm) - **Foreground color** (bars/modules color) - **Background color** Settings are remembered per-format during the session: switching between Code 128 and QR Code and back restores each format's last-used settings. ### Auto-Scroll Output When multiple barcodes overflow the output panel, auto-scroll controls appear: play/pause continuous scrolling, scroll-to-top, and adjustable scroll speed. Useful for reviewing long lists of generated barcodes. ### Print Layout A print layout selector allows choosing how barcodes are arranged on the page before printing (e.g., 3×4 grid). This is available via the print button in the output panel header. ### Share & Embed - **Link to This Page** — Generates a URL with the current barcode value pre-loaded via `?data=` query parameter. Shareable with anyone. - **Link to This Barcode Image** — Generates a permanent direct URL to the barcode image via the barcode API endpoint. ### Keyboard Shortcut `Ctrl+S` / `Cmd+S` triggers barcode download. --- ## Supported Barcode Formats All formats are accessible via their own URL at `https://www.barcodegen.net/{format}`. ### Code 128 Group **Code 128** (`/Code128`) The most versatile and widely used 1D barcode format. Encodes all 128 ASCII characters. Auto-selects the most efficient subset (A, B, or C) for the given input. Used in shipping, warehousing, retail, and general-purpose labeling. Example input: `ABC-abc-1234` **Code 128A** (`/Code128A`) Subset of Code 128 for uppercase letters, digits, and control characters (NUL, SOH, STH, etc.). Common in military, government, and systems requiring control character encoding. Example input: `ABC123` **Code 128B** (`/Code128B`) Subset of Code 128 supporting all printable ASCII characters (uppercase, lowercase, digits, symbols). The most commonly used Code 128 variant for general text encoding. Example input: `Hello World!` **Code 128C** (`/Code128C`) Subset of Code 128 for numeric data only, encoding digit pairs. Achieves double the density of Code 128B for pure numeric data. Ideal for price labels, inventory codes, and serial numbers with even digit counts. Example input: `123456` **GS1-128** (`/gs1-128`) Formerly known as UCC/EAN-128. A standardized application of Code 128 that uses Application Identifiers (AIs) to encode structured data (GTIN, batch number, expiry date, serial number, weight, etc.). Mandatory in many supply chain and retail environments. Example input: `(01)09521234543213(3103)000123` ### EAN / UPC Group **EAN-13** (`/Ean13`) The international standard for retail product identification. A 13-digit barcode used on virtually all consumer products sold outside North America (and increasingly globally). The check digit (last digit) is automatically calculated and validated. Example input: `5901234123457` **EAN-8** (`/Ean8`) A compact version of EAN-13 for small product packaging where a full EAN-13 won't fit. Contains 8 digits including a check digit. Example input: `96385074` **EAN-5** (`/Ean5`) A 5-digit supplemental add-on barcode printed alongside EAN-13. Used to encode the suggested retail price on books (especially in the US and Canada). Example input: `54495` **EAN-2** (`/Ean2`) A 2-digit supplemental add-on barcode used with periodicals and magazines to encode the issue number. Example input: `53` **UPC-A** (`/Upc`) The standard retail barcode format in North America (United States and Canada). A 12-digit barcode used for grocery, drugstore, and general merchandise. Check digit is auto-calculated. Example input: `123456789012` **UPC-E** (`/UpcE`) A compressed version of UPC-A for small packages where space is limited. Suppresses trailing zeros to reduce the barcode to 8 characters. Auto-calculated compression. Example input: `01234565` ### 2D Barcodes Group **QR Code** (`/Qrcode`) A 2D matrix barcode that can encode URLs, plain text, contact information, Wi-Fi credentials, and more. Scannable by all modern smartphones without a dedicated barcode scanner. Supports high data capacity and error correction. Example input: `https://www.barcodegen.net` **Data Matrix** (`/Datamatrix`) A 2D matrix barcode with high information density and built-in error correction. Widely used in industrial and manufacturing environments for marking small components (electronics, medical devices, aerospace parts). Can encode text, numbers, or binary data. Example input: `This is Data Matrix!` **PDF417** (`/Pdf417`) A stacked 2D barcode format capable of storing large amounts of data (text, numbers, binary). Used in driver's licenses, airline boarding passes, identification documents, and logistics. Supports adjustable error correction levels. Example input: `This is PDF417` **Aztec Code** (`/Azteccode`) A compact 2D matrix barcode used in transport ticketing (boarding passes, transit tickets). Can encode data efficiently in a small space. Does not require a quiet zone (white border). Example input: `This is Aztec Code` ### Code 39 Group **Code 39** (`/Code39`) One of the first alphanumeric barcodes. Encodes uppercase letters, digits (0–9), and a limited set of special characters (-, ., $, /, +, %, space). Widely used in industrial, automotive, and defense applications. Self-checking — does not require a check digit (though one can be added optionally). Example input: `CODE 39` **Code 39 Extended** (`/Code39ext`) An extended version of Code 39 that encodes all 128 ASCII characters using two-character combinations. Compatible with standard Code 39 readers that support extended mode. Example input: `Code39 Ext!` ### ITF Group **ITF (Interleaved 2 of 5)** (`/Itf`) A high-density numeric barcode that encodes digits in pairs (interleaving odd and even positions). Requires an even number of digits. Used on outer cartons, pallets, and industrial packaging. Optional check digit. Example input: `1234567890` **ITF-14** (`/Itf14`) A standardized version of ITF for encoding GTIN-14 (14-digit Global Trade Item Number). Used on shipping containers, outer cartons, and pallets in supply chain and logistics. Always 14 digits. Example input: `15400141288763` ### MSI Plessey Group **MSI Plessey Mod 10** (`/Msi10`) A barcode variant of Plessey with Mod 10 check digit. Used in retail inventory management and warehouse shelf labeling systems. Example input: `1234567` **MSI Plessey Mod 11** (`/Msi11`) MSI Plessey variant with Mod 11 check digit calculation. Example input: `1234567` **MSI Plessey Mod 1010** (`/Msi1010`) MSI Plessey with double Mod 10 check digit for higher accuracy. Example input: `1234567` **MSI Plessey Mod 1110** (`/Msi1110`) MSI Plessey with Mod 11 followed by Mod 10 check digit. Example input: `1234567` ### Pharmacode (`/Pharmacode`) A pharmaceutical barcode used in drug packaging to encode a unique product number. Represents a single integer (typically 3–131070). Used by pharmaceutical manufacturers for packaging line verification. Example input: `1234` ### Codabar (`/Codabar`) A self-checking barcode used in libraries, blood banks, and FedEx air bills. Encodes digits and six special characters (-, $, :, /, ., +). Each barcode begins and ends with a start/stop character (A, B, C, or D). Example input: `A1234B` ### GS1 DataBar Group **GS1 DataBar Omnidirectional** (`/Databaromni`) Can be scanned in any direction. Used at point-of-sale for small items (fresh produce, coupons). Encodes a 14-digit GTIN. Example input: `(01)09521234543213` **GS1 DataBar Limited** (`/Databarlimited`) A smaller, linear barcode for items with GTIN starting with 0 or 1. Used on small items where a full DataBar won't fit. Example input: `(01)09521234543213` **GS1 DataBar Expanded** (`/Databarexpanded`) Can encode additional data beyond the GTIN (weight, lot number, expiry date, etc.) using Application Identifiers. Stacked variant also available. Example input: `(01)09521234543213(3103)000123` **GS1 DataBar Stacked** (`/Databarstacked`) A stacked two-row version of GS1 DataBar Omnidirectional for use in space-constrained environments. Example input: `(01)09521234543213` ### Publishing Group **ISBN** (`/Isbn`) International Standard Book Number barcode. Used on all commercially published books. Renders as an EAN-13 barcode (ISBN-13) with optional EAN-5 price supplement. Check digit is automatically calculated. Example input: `978-1-56581-231-4 90000` **ISMN** (`/Ismn`) International Standard Music Number. Used on published sheet music and scores. Similar to ISBN but for music publications. Example input: `979-0-2605-3211-3` **ISSN** (`/Issn`) International Standard Serial Number. Used to identify periodicals, journals, magazines, and other serial publications. Rendered as EAN-13 with optional EAN-2 supplement. Example input: `0311-175X 00 17` --- ## User Interface Guide ### Layout (Desktop) The desktop interface uses a three-panel resizable layout: - **Left panel** — Barcode format browser with search and category filter tags - **Center panel** — Text input area for barcode values + output preview - **Right panel** — Customization options + download controls All panels are resizable by dragging the dividers. The left panel can be collapsed to maximize workspace. ### Layout (Mobile / Small Screen) On mobile, a single-panel layout is used with navigation buttons at the top: - **☰ (Menu)** — Opens the format browser - **⊟ (Sliders)** — Opens the options panel - Default view shows input, output, and download ### Format Browser - Formats are grouped into categories: Code 128, EAN/UPC, 2D Barcodes, Code 39, ITF, MSI Plessey, Pharmacode, Codabar, GS1 DataBar, Publishing - Category filter tags at the top allow quick filtering - Search box filters formats by name or code across all categories - Each format shows a preview icon image and its name - Clicking a format navigates to its dedicated URL (e.g., `/Code128`) - The currently active format is highlighted ### Input Area - Large textarea for entering barcode values - One value per line for bulk generation - CSV import button for loading data from a file - Character count / line count visible ### Output Area - Displays generated barcodes in real-time - Shows an error alert with icon and message if the input is invalid for the selected format - Auto-scroll controls appear when output overflows (play/pause, back to top, speed control) - Print layout button and share button appear in the output header - Layout selector for print grid arrangement --- ## Barcode Customization Options All options are in the right panel (desktop) or Options panel (mobile): | Option | Description | Default | |---|---|---| | Show Text | Display the human-readable value below the barcode | On | | Barcode Length | Width of the barcode in mm | 260 | | Barcode Height | Height of the barcode in mm | 80 (or equal to width for 2D) | | Barcode Margin | White space around the barcode in mm | 10 | | Foreground Color | Color of the bars / modules | #000000 (black) | | Background Color | Color of the background | #ffffff (white) | **Note on 2D formats:** For QR Code, Data Matrix, and Aztec Code, the height is locked to equal the width (maintaining a square aspect ratio). PDF417 and DataBar Stacked retain independent height control. Settings are stored per format during the session. Switching between formats and returning restores the last used settings for each format. --- ## Download & Export ### Single Barcode Clicking Download saves a single file in the selected format: - PNG — Rasterized image, suitable for web and print - JPG — Compressed raster image - GIF — Rasterized image with transparency support - SVG — Vector format, infinitely scalable, ideal for professional printing Filename: `barcode-{format}.{extension}` (e.g., `barcode-Code128.svg`) ### Bulk Download When multiple values are entered (multiple lines), all barcodes are packaged into a ZIP archive automatically. Filename: `barcodes(barcodegenerator).zip` Individual files inside the ZIP are named: `barcode-{format}_{index}.{extension}` (e.g., `barcode-Ean13_1.png`, `barcode-Ean13_2.png`) ### Keyboard Shortcut `Ctrl+S` (Windows/Linux) or `Cmd+S` (macOS) triggers the download immediately. --- ## Sharing & Embedding ### Share This Page The Share button (📤) in the output panel header opens a dialog with two sharing options: **Link to This Page** A URL that pre-loads the current barcode value into the generator: ``` https://www.barcodegen.net/{format}?data={encoded_value} ``` Sharing this link allows anyone to open the page with the same barcode value already entered. **Link to This Barcode Image** A permanent direct URL to the barcode image: ``` https://www.barcodegen.net/api/barcode/{format}/{encoded_value} ``` This URL returns the barcode image directly and can be used in `` tags, embedded in documents, or shared standalone. --- ## Bulk Barcode Generation To generate multiple barcodes at once: 1. Enter one value per line in the input box 2. Barcodes for all lines are generated and displayed simultaneously 3. Use the auto-scroll controls to browse through large sets 4. Download as ZIP to get all barcodes in one file **CSV Import:** Click the "Import CSV" button (upload icon) to load values from a CSV file. Each row's columns are joined with a tab character, and each row becomes one line in the input box. **Tip:** There is no documented limit on the number of barcodes you can generate in one session. Performance may vary based on the device for very large batches (hundreds or thousands of barcodes). --- ## Barcode API A direct barcode image API is available for embedding or programmatic use: ``` GET https://www.barcodegen.net/api/barcode/{format}/{value} ``` **Parameters:** - `format` — The barcode format code (e.g., `Code128`, `Ean13`, `Qrcode`) - `value` — The URL-encoded barcode value **Example:** ``` https://www.barcodegen.net/api/barcode/Code128/ABC-123 https://www.barcodegen.net/api/barcode/Ean13/5901234123457 https://www.barcodegen.net/api/barcode/Qrcode/https%3A%2F%2Fexample.com ``` The API returns the barcode as an SVG image. This URL is permanent and can be used in `` tags, email templates, documents, or any application that accepts image URLs. --- ## Additional Tools ### Barcode Scanner **URL:** https://www.barcodegen.net/barcode-scanner A browser-based barcode scanner that uses the device camera to decode barcodes in real-time. Works on mobile and desktop with a webcam. No software installation required. ### Barcode Label Print **URL:** https://www.barcodegen.net/barcode-label-print A tool for arranging and printing barcode labels on standard label sheets. Allows customizing label size, number of columns/rows per page, and other print layout settings. --- ## Language Support barcodegen.net is fully localized in 11 languages. All barcode format pages are available in each language: | Language | URL prefix | Example | |---|---|---| | English (default) | (none) | `https://www.barcodegen.net/Code128` | | Chinese (Simplified) | `/zh/` | `https://www.barcodegen.net/zh/Code128` | | Japanese | `/ja/` | `https://www.barcodegen.net/ja/Code128` | | German | `/de/` | `https://www.barcodegen.net/de/Code128` | | French | `/fr/` | `https://www.barcodegen.net/fr/Code128` | | Spanish | `/es/` | `https://www.barcodegen.net/es/Code128` | | Italian | `/it/` | `https://www.barcodegen.net/it/Code128` | | Dutch | `/nl/` | `https://www.barcodegen.net/nl/Code128` | | Swedish | `/sv/` | `https://www.barcodegen.net/sv/Code128` | | Korean | `/ko/` | `https://www.barcodegen.net/ko/Code128` | | Russian | `/ru/` | `https://www.barcodegen.net/ru/Code128` | --- ## Technical Implementation - **Framework:** Next.js (React, App Router) - **Rendering:** Client-side barcode generation; SSR for page metadata and initial HTML - **1D Barcode library:** JsBarcode (Code 128, EAN, UPC, Code 39, ITF, MSI, Pharmacode, Codabar) - **2D Barcode library:** Dedicated libraries for QR Code, Data Matrix, PDF417, Aztec Code, GS1 DataBar - **Output format:** SVG (primary), rasterized to PNG/JPG/GIF via canvas for download - **Bulk download:** JSZip + FileSaver.js - **Internationalization:** next-intl - **UI components:** Radix UI primitives with Tailwind CSS - **State management:** React Context (split into state context and setter context for render optimization) - **No server dependency for generation:** All barcode rendering happens in the browser --- ## All Page URLs ### English (default) - https://www.barcodegen.net/ — Homepage & default generator (Code 128) - https://www.barcodegen.net/barcode-scanner — Barcode Scanner tool - https://www.barcodegen.net/barcode-label-print — Label Print tool - https://www.barcodegen.net/Code128 — Code 128 generator - https://www.barcodegen.net/Code128A — Code 128A generator - https://www.barcodegen.net/Code128B — Code 128B generator - https://www.barcodegen.net/Code128C — Code 128C generator - https://www.barcodegen.net/gs1-128 — GS1-128 generator - https://www.barcodegen.net/Ean13 — EAN-13 generator - https://www.barcodegen.net/Ean8 — EAN-8 generator - https://www.barcodegen.net/Ean5 — EAN-5 generator - https://www.barcodegen.net/Ean2 — EAN-2 generator - https://www.barcodegen.net/Upc — UPC-A generator - https://www.barcodegen.net/UpcE — UPC-E generator - https://www.barcodegen.net/Qrcode — QR Code generator - https://www.barcodegen.net/Datamatrix — Data Matrix generator - https://www.barcodegen.net/Pdf417 — PDF417 generator - https://www.barcodegen.net/Azteccode — Aztec Code generator - https://www.barcodegen.net/Code39 — Code 39 generator - https://www.barcodegen.net/Code39ext — Code 39 Extended generator - https://www.barcodegen.net/Itf — ITF generator - https://www.barcodegen.net/Itf14 — ITF-14 generator - https://www.barcodegen.net/Msi10 — MSI Plessey Mod 10 generator - https://www.barcodegen.net/Msi11 — MSI Plessey Mod 11 generator - https://www.barcodegen.net/Msi1010 — MSI Plessey Mod 1010 generator - https://www.barcodegen.net/Msi1110 — MSI Plessey Mod 1110 generator - https://www.barcodegen.net/Pharmacode — Pharmacode generator - https://www.barcodegen.net/Codabar — Codabar generator - https://www.barcodegen.net/Databaromni — GS1 DataBar Omnidirectional generator - https://www.barcodegen.net/Databarlimited — GS1 DataBar Limited generator - https://www.barcodegen.net/Databarexpanded — GS1 DataBar Expanded generator - https://www.barcodegen.net/Databarstacked — GS1 DataBar Stacked generator - https://www.barcodegen.net/Isbn — ISBN generator - https://www.barcodegen.net/Ismn — ISMN generator - https://www.barcodegen.net/Issn — ISSN generator - https://www.barcodegen.net/terms — Terms of Service - https://www.barcodegen.net/privacy-policy — Privacy Policy ### Localized versions Each barcode format page above is also available at `/zh/`, `/ja/`, `/de/`, `/fr/`, `/es/`, `/it/`, `/nl/`, `/sv/`, `/ko/`, `/ru/` prefixes. For example: - https://www.barcodegen.net/zh/Ean13 - https://www.barcodegen.net/ja/Qrcode - https://www.barcodegen.net/de/Code128 --- ## FAQ **Is this barcode generator really free?** Yes, completely free. No subscription, no per-download fee, no watermarks, no account required. **How many barcodes can I generate at once?** There is no enforced limit. Enter as many values as needed (one per line) and all will be generated simultaneously. Performance depends on the device. **Are generated barcodes print-quality?** Yes. SVG output is vector-based and infinitely scalable. PNG output is high-resolution and suitable for commercial label printing. We recommend testing scannability in your environment before mass printing. **Do generated barcodes actually scan?** Yes, barcodes are generated using industry-standard libraries and follow the relevant specifications for each format. However, scannability also depends on print quality and the reader's capabilities. Always test before production use. **Does barcodegen.net store my data?** Barcode values entered in the generator are not sent to any server during generation — all processing is client-side. The share/embed URLs include your barcode value as a URL parameter, which may be logged in standard server access logs if those URLs are requested. **Can I use generated barcodes commercially?** Yes. There are no restrictions on the use of barcodes generated by this tool. Barcode formats themselves are open standards. **What is the difference between Code 128A, B, and C?** - Code 128A: uppercase letters, digits, and control characters - Code 128B: all printable ASCII characters (most common) - Code 128C: digit pairs only — double density for numeric-only data - Plain "Code 128" automatically selects the most efficient subset for your input **What format should I use for retail products?** - North America: UPC-A (12 digits) - Rest of world: EAN-13 (13 digits) - Small packages: UPC-E or EAN-8 **What format should I use for shipping/logistics?** - Outer cartons / pallets: ITF-14 - General shipping labels: Code 128 or GS1-128 - Supply chain with structured data: GS1-128 with Application Identifiers **What is a GS1 Application Identifier (AI)?** AIs are 2–4 digit prefixes in parentheses that define the meaning of the data that follows in a GS1-128 or GS1 DataBar barcode. For example: `(01)` = GTIN, `(10)` = batch/lot number, `(17)` = expiry date, `(37)` = quantity. **Can I get a permanent link to my barcode?** Yes. Use the Share button and copy "Link to This Barcode Image" to get a permanent API URL that always returns the barcode image. **Is there an API?** Yes: `https://www.barcodegen.net/api/barcode/{format}/{url-encoded-value}` returns an SVG barcode image directly.