Barcode Label Generatorv1.0.0
Encodes UPC-A, EAN-13, ISBN, GTIN-14, Code 128, and GS1-128 barcodes, computing each check digit from the supplied data rather than trusting it. Any of the four label lines splits into three columns justified left, center, and right, each with its own weight and size. Output runs to SVG, PDF, or PNG at 80, 100, or 200 percent, or to a ZIP of PDFs built from a CSV or an Excel workbook read cell by cell so long UPCs keep every digit.
Everything you enter is processed on your device. This tool loads a code library from cdnjs.cloudflare.com, which sees your IP address but never what you type.
Documentation
The workspace is split into two columns. Every input and setting sits in the Settings column on the left, and the Result column on the right holds the live preview, the syntax checks, the final dimensions, and the export buttons. Change anything on the left and the right side re-renders, so you can see the label and its validation state at the same time.
- Select a Barcode Format. UPC-A is the 12-digit retail code (GTIN-12), EAN-13 is the 13-digit international equivalent (GTIN-13), ISBN encodes 978 or 979 book codes, GTIN-14 / ITF-14 covers case packs and pallets, Code 128 handles printable ASCII, and GS1-128 layers Application Identifiers onto Code 128.
- Enter the value in Barcode Data. Missing check digits are calculated and supplied ones are verified. ISBN-10 auto-converts to ISBN-13 with the Bookland 978 prefix.
- Click Generate to refresh the preview, or wait 500 milliseconds after typing for the debounced auto-render. The status line under the preview confirms validity and the check digit, and Final dimensions reports the printed size, module count, and pixels per module.
- Read the Syntax Checks list to catch problems before you print. It reports the encoding result, whether the check digit was computed or verified against the value you supplied, the module count including quiet zones, the X-dimension against the GS1 minimum for the format, the share of label height left for the bars, and any setting that fell back to a default because its value could not be parsed. When a line is split into columns it also estimates whether the columns fit the label width and warns by name about any line whose text would collide.
- Open Advanced Options to set Text Above and Text Below (each up to two lines), pick 80%, 100%, 200%, or Custom dimensions, and pick a Font of Helvetica, Courier, or Times that applies in the preview and every export.
- Split any line into columns to put several values on one row. Every line starts as a single centered field, and Add column to line 1 (or line 2) reveals a second field, then a third, so you only ever see the fields you are using. Remove column takes the last one away again and clears its text, which is what keeps a hidden field from printing on the label. The note beside the buttons states what the line will actually print as you type.
- The number of columns you fill decides the justification: one centers, two print left and right, and three print left, center, and right. Columns pack in order, so filling only the first and third still prints left and right. Every column carries its own Bold checkbox and Size value, so any combination works, whether that is a bold SKU beside a lighter quantity and origin, or only the center value bold. Columns on a line share one baseline, and the line reserves height for its largest column so mixed sizes never clip.
- Bottom line 1 still falls back to the barcode data, but only while all of its columns are empty. Fill any column on that line and the tool prints exactly what you typed. Bottom line 2 continues to prefix export filenames, joining its filled columns with spaces.
- Tune the styling with the rendering toggles. Round Corners is on by default and softens the label background. Transparent Background removes the fill so the label drops onto colored stock cleanly. Negative inverts to white bars on black, Border draws a thin keyline that follows the corner radius, and the Syntax Checks list warns when Transparent and Negative combine into a low-contrast result.
- Export with Save as SVG for vector label software, Save as PDF for print-ready output at the chosen physical size, or Save as PNG for a raster image at the chosen DPI (default 300, capped at 600). PNG preserves transparency.
- For batch jobs, upload a CSV or an Excel workbook (.xlsx or .xlsm) under Bulk Generation. Give the file a header row and columns are matched by name: data, format, line1, line1b, line1c, line2, line2b, line2c, topLine1, topLine1b, topLine1c, topLine2, topLine2b, and topLine2c. The b and c names are the second and third columns on that line, so a sheet with line1, line1b, and line1c prints three values across one row on every label.
- Fill the format column with a short symbology name rather than the wording shown in the Barcode Format menu. Case and spaces are ignored, so upc and UPC both work, but punctuation is not, so UPC-A / GTIN-12 (12 digits) fails. Use UPC, UPCA, UPC-A, GTIN12, or GTIN-12 for UPC-A; EAN, EAN13, EAN-13, GTIN13, or GTIN-13 for EAN-13; ISBN, ISBN10, ISBN-10, ISBN13, or ISBN-13 for ISBN; GTIN14, GTIN-14, ITF14, or ITF-14 for GTIN-14; CODE128, CODE-128, or C128 for Code 128; and GS1, GS1128, or GS1-128 for GS1-128. An empty cell takes the Barcode Format selected above the CSV picker, so a sheet of one symbology can skip the column entirely. An unrecognized value is not quietly corrected to that default: the row fails with Unknown format in the status list and the remaining rows still generate. The ISBN names all reach the same encoder, which renders Bookland EAN-13, so ISBN10 still expects the 13-digit 978 or 979 value rather than converting a 10-digit ISBN for you.
- Name the barcode column and the tool finds it wherever it sits. data, barcode, upc, code, and value all mean the same column, so a sheet headed SKU, UPC needs no rearranging: the UPC column is read and the SKU column is ignored. Rename that column to line1 or line2 to print it on the label as well, since line2 also prefixes the exported filenames. A file whose first row holds a long run of digits is read as data rather than as column names, so a headerless export still works.
- Prefer the workbook over a CSV when the sheet holds long numbers. A UPC is twelve digits, past the point where Excel switches its own display to 8.11657E+11, and saving that sheet to CSV writes the shortened form, losing six digits for good. Loading the .xlsx here sidesteps that: the tool opens the workbook itself and reads each cell's stored value, which carries every digit no matter which number format the sheet displays. It reads the first visible sheet only, names it in the status line along with any sheet it skipped, and brings dates through as spreadsheet serial numbers. The old binary .xls format cannot be opened; save it as .xlsx first.
- Leading apostrophes are handled on the way in. Excel writes one in front of a cell it is holding as text, so '811657040345 is read as 811657040345 in the data column and in every text column, and the same goes for the ="811657040345" wrapper some exports use. Double the apostrophe when a Code 128 value has to start with one: ''ABC encodes 'ABC. A CSV that arrives with digits already lost to scientific notation is refused row by row rather than encoded short, and a value that still carries all of its digits, such as 8.11657040345E+11, is expanded and encoded with a note saying so.
- Loading a file reveals the column fields that file actually uses, so the Bold and Size controls for those columns appear ready to set. Bulk import supplies column text only: bold and size for every column, along with the font, label size, corner, and background settings, come from the Advanced Options controls and apply to every row in the batch, so a run cannot vary styling row by row. The status line under the file picker names the columns it matched and the fields it revealed, so you can confirm the mapping before generating.
Sizing reference: 100% nominal is 1.469 in by 1.02 in. 80% (1.175 in by 0.816 in) is near the scanner reliability floor. 200% (2.938 in by 2.04 in) suits shelf or pallet labels.
Apply the generator wherever a product needs a barcode that scans on the first pass. The tool covers retail, warehouse, and logistics formats and outputs vector, print, and raster files.
- Retail Packaging: Print UPC-A on consumer packaging for North American shelves. Type 11 digits, pick Helvetica, and export at 100% to PDF for the print shop.
- International Products: Print EAN-13 on goods sold outside North America. Enter the 12-digit code, confirm the calculated check digit, and export an SVG for the designer.
- Warehouse Bin Labels: Generate Code 128 SKU, lot, or bin labels. Round Corners softens the rectangle for thermal label rolls, and PNG at 300 DPI drops straight into a WMS.
- Case Packs and Pallets: Pick GTIN-14 / ITF-14 for outer cartons. Enter 13 digits to auto-append the check digit, or paste a full 14-digit GTIN to verify it.
- Books and Catalog Items: Pick ISBN to encode ISBN-10 or ISBN-13 with the 978 or 979 prefix. Set Font to Times for a print-book look.
- Shipping and Logistics: Build GS1-128 labels with Application Identifiers such as (01) for the GTIN and (17) for the expiration date. The tool emits the FNC1 leader.
- Asset Tags on Sticker Stock: Print a Code 128 asset ID, add a border, enable Transparent Background, and export PNG to drop the label onto pre-printed sticker sheets.
- Batch SKU Runs: Upload a CSV or an .xlsx workbook to generate hundreds of PDFs in one pass, packaged as a ZIP with the current font, corner, and background settings applied uniformly. Uploading the workbook rather than a CSV of it is what keeps a twelve-digit UPC column from arriving as 8.11657E+11.
- Multi-field Compliance Labels: Put SKU, quantity, and country of origin on a single row by clicking Add column twice on one line. The SKU prints bold on the left, the quantity sits centered, and the origin aligns right, which keeps a small label readable without spending three lines on three short values.
Inputs, outputs, and what the Barcode Label Generator computes
The form above accepts the following inputs and produces the outputs listed below. This summary is rendered in the page so the parameters are visible to crawlers, assistive tech, and indexing agents that don't fetch the embedded tool frame.
Inputs
- Barcode Format · default: UPC-A / GTIN-12 (12 digits)
- Barcode Data (text input) · default: 012345678905
- Line 1 (optional, e.g. product name) (text input)
- Bold
- Size (numeric input) · default: 1.0 · range: 0.5 to 2.0
- Line 1, column B (text input)
- Bold
- Size (numeric input) · default: 1.0 · range: 0.5 to 2.0
- Line 1, column C (text input)
- Bold
- Size (numeric input) · default: 1.0 · range: 0.5 to 2.0
- Line 2 (optional, second top row) (text input)
- Bold
- Size (numeric input) · default: 1.0 · range: 0.5 to 2.0
- Line 2, column B (text input)
- Bold
- Size (numeric input) · default: 1.0 · range: 0.5 to 2.0
- Line 2, column C (text input)
- Bold
- Size (numeric input) · default: 1.0 · range: 0.5 to 2.0
- Line 1 (defaults to barcode data) (text input)
- Bold
- Size (numeric input) · default: 1.0 · range: 0.5 to 2.0
- Line 1, column B (text input)
- Bold
- Size (numeric input) · default: 1.0 · range: 0.5 to 2.0
- Line 1, column C (text input)
- Bold
- Size (numeric input) · default: 1.0 · range: 0.5 to 2.0
- Line 2 (optional, second row, this line also prefixes export filenames) (text input)
- Bold
- Size (numeric input) · default: 1.0 · range: 0.5 to 2.0
- Line 2, column B (text input)
- Bold
- Size (numeric input) · default: 1.0 · range: 0.5 to 2.0
- Line 2, column C (text input)
- Bold
- Size (numeric input) · default: 1.0 · range: 0.5 to 2.0
- Nominal 100% (1.469 in x 1.02 in) · default: 100
- Minimum 80% (1.175 in x 0.816 in) · default: 80
- Maximum 200% (2.938 in x 2.04 in) · default: 200
- Custom dimensions · default: custom
- Custom Width (inches) (text input) · default: 1.469
- Custom Height (inches) (text input) · default: 1.02
- Font · default: Helvetica (sans-serif)
- Bar Width Override (pixels, blank for auto) (text input)
- Quiet Zone (modules each side) (text input) · default: 10
- Tracking (letter spacing in px) (text input) · default: 0
- Add border around label
- Negative (white on black)
- Round corners
- Transparent background
- PNG Export DPI (72-600) (text input) · default: 300
Controls
Generate · Reset · Generate ZIP of PDFs
Worked example
Click Generate to refresh the preview, or wait 500 milliseconds after typing for the debounced auto-render.