Barcode Generator: Code 128, Code 39, QR & UPC

Type a value and the barcode draws as you type. SKU-88421 in Code 128 is 11 symbol characters with check character 68, 47.2 mm (1.86 in) wide at a 0.33 mm bar.

SKU-88421

Preview scaled to fit. Downloads keep the true size.

Your barcode Code 128 SKU-88421
Encoded asSet B → C
Check68 (mod 103)
Printed width47.2 mm · 1.86 in
Label fitFits a 2 in label
Symbology

    The barcodes are drawn in your browser. Quiet zones are included in every width.

    How to Make a Barcode in 3 Steps

    1. Pick the symbology your scanner or partner expects. Code 128 for your own SKUs, bins and cartons. UPC-A or EAN-13 for retail. QR for a URL or text.
    2. Type the value, or paste a list. Check digits and check characters are calculated for you. A wrong retail check digit is flagged before anything prints.
    3. Set the bar width and download. Choose the label width and the tool shows whether the barcode fits, with quiet zones counted.
    SymbologyWhat it encodesLengthCheckQuiet zone used here
    Code 128All 128 ASCII charactersVariableMod 103, always10 X each side
    Code 390–9, A–Z, space, - . $ / + %VariableMod 43, optional10 X each side
    QR CodeAny text, URLs, UTF-8VariableReed-Solomon, L to H4 modules each side
    UPC-A12 digitsFixedGS1 mod 109 X each side
    EAN-1313 digitsFixedGS1 mod 1011 X left, 7 X right
    EAN-88 digitsFixedGS1 mod 107 X each side
    ITF-1414 digitsFixedGS1 mod 1010 X each side
    Interleaved 2 of 5Digits, in pairsEven countNone built in10 X each side

    Bulk Barcode Generator: Lists and Sequences

    Switch to Bulk list to turn a spreadsheet column, or a numbered run, into up to 250 barcodes in one pass. Each line is checked on its own.

    Paste a column

    One value per line. Add a caption after a vertical bar, such as SKU-88421 | Blue tee, M. The caption prints under the barcode on the sheet.

    Build a sequence

    Give a prefix, a start number, a count and the digits to zero-pad to. The list fills with every value in order.

    Skip, do not stop

    A line that cannot be encoded is listed with its reason. Every other line still renders and downloads.

    UsePrefix · start · count · padFirstLastCode 128 path (last)Width at 0.33 mm
    Bin locationsA12-R04-B · 1 · 24 · 2A12-R04-B01A12-R04-B24Set B58.1 mm
    Carton IDsCTN-2026- · 1 · 250 · 6CTN-2026-000001CTN-2026-000250Set B → C65.3 mm
    Asset tagsASSET- · 1001 · 50 · 0ASSET-1001ASSET-1050Set B → C50.8 mm
    Tote numbersT · 1 · 120 · 4T0001T0120Set B → C32.7 mm

    Zero padding keeps every value the same length, so a run of labels shares one width and sorts correctly in a spreadsheet.

    Code 128 Barcode Generator: Sets A, B and C

    Code 128 switches between three character sets inside one barcode. Set C packs two digits into one symbol character, which is why numbers come out narrow.

    Set A

    Digits, upper case, punctuation and control characters. Needed only when a system expects control codes.

    Set B

    Digits, upper and lower case, and full punctuation. The usual set for SKUs with letters.

    Set C

    Digit pairs 00–99. Auto mode switches to it for 4+ digits at the start or end, or 6+ in the middle.

    ValueAuto encodes asSymbol charactersCheck characterWidth, autoWidth, set B only
    SKU-88421Set B → C116847.2 mm50.8 mm
    A12-R04-B01Set B147858.1 mm58.1 mm
    PO 2026-000418Set B → C156161.7 mm69.0 mm
    100045678912Set C9539.9 mm61.7 mm
    0012345678905Set C → B119047.2 mm65.3 mm

    Widths at X = 0.33 mm with 10 X quiet zones. For the 12-digit 100045678912, auto is 35% narrower than set B.

    How the mod 103 check character is calculated

    Take the start code value, add each data value multiplied by its position, and divide by 103. The remainder is the check character. Here is BIN-07, which starts in set B (value 104).

    PositionCharacterSet B valuePosition × value
    StartStart B104104
    1B3434
    2I4182
    3N46138
    4-1352
    501680
    6723138
    Sum, then sum mod 103628 → 10

    Code 128 vs Code 39 vs QR: Same Value, Different Size

    Each row is the tool's own output. Linear widths are at X = 0.33 mm; QR is at a 0.5 mm module and is square.

    ValueSymbologyEncoded asModules wideX (mm)Width
    A12-R04-B01Code 128Set B1760.3358.1 mm
    A12-R04-B01Code 3913 characters with start/stop207.50.3368.5 mm
    A12-R04-B01Code 39 + mod 43 check14 characters with start/stop2220.3373.3 mm
    A12-R04-B01QR CodeVersion 1, 21 × 21 modules290.5014.5 mm square
    100045678912Code 128Set C1210.3339.9 mm
    100045678912Code 3914 characters with start/stop2220.3373.3 mm
    100045678912Interleaved 2 of 56 digit pairs124.50.3341.1 mm
    100045678912QR CodeVersion 1, 21 × 21 modules290.5014.5 mm square
    Default

    Code 128

    Internal SKUs, bins, totes, carton IDs. Narrowest linear option for mixed text.

    Legacy

    Code 39

    1.2× the width of Code 128 for A12-R04-B01. Choose it when a scanner or system requires it.

    Phones

    QR Code

    URLs and longer text that a phone camera reads. Needs a 2D imager, not a laser scanner.

    Retail

    UPC / EAN

    Products sold at a till. The number comes from a GS1 company prefix, not from this tool.

    24 Bin Labels for a Warehouse in Reno, Nevada

    A team re-slotting aisle 12 needs Code 128 labels for bins A12-R04-B01 to B24, printed on 2 × 1 in labels from a thermal printer.

    PrefixA12-R04-B
    Start · count · pad1 · 24 · 2 digits
    SymbologyCode 128, auto
    Label width2 in (50.8 mm)
    58.1 mmwidth at X = 0.33 mm. Too wide for 2 in.
    0.28 mmlargest X that fits, rounded down
    49.3 mmwidth at 0.28 mm (1.94 in)
    0.24 mmlargest X in Code 39 for the same label
    BinCheck characterWidth at 0.28 mm
    A12-R04-B017849.3 mm
    A12-R04-B028949.3 mm
    A12-R04-B0310049.3 mm
    A12-R04-B22649.3 mm
    A12-R04-B231749.3 mm
    A12-R04-B242849.3 mm
    • Every bin value has the same length and set path, so all 24 barcodes share one width. Only the check character changes.
    • Code 39 would force the bar down to 0.24 mm on the same label, against 0.28 mm for Code 128.
    • Load bin-label example in the tool reproduces this run. Print one, scan it at rack height, then print the rest.

    Barcode Size: How the X Dimension Sets the Width

    Every bar and space is a whole multiple of X, so the width scales in a straight line with it. Height does not change what is encoded.

    X or module sizeSKU-88421, Code 128golocad.com/tools/ as QR (version 2, M)
    0.25 mm35.8 mm · 1.41 in8.3 mm square · 0.32 in
    0.33 mm47.2 mm · 1.86 in10.9 mm square · 0.43 in
    0.50 mm71.5 mm · 2.81 in16.5 mm square · 0.65 in
    0.75 mm107.3 mm · 4.22 in24.8 mm square · 0.97 in
    1.00 mm143.0 mm · 5.63 in33.0 mm square · 1.30 in

    Scanner range

    Narrow bars read only up close. Check your scanner's specification for the smallest X it resolves at your reading distance.

    Printer resolution

    A 203 dpi thermal head prints dots 0.125 mm wide. Bars that are not whole dots get rounded unevenly.

    Retail symbols

    UPC and EAN have a nominal size and a permitted magnification range set by GS1. Follow it for products sold at a till.

    Putting a Barcode in Word or Excel

    Two of the most asked questions are how to make a Code 128 barcode in Word and where to get the font. An image file is the reliable route.

    Why a font alone fails

    Code 128 needs a start code, a calculated check character and a stop code. Typing the value in a barcode font leaves them out, so scanners reject it.

    Insert the image

    Download SVG or PNG here, then Insert, Pictures. Lock the aspect ratio. If your version of Word will not take SVG, use the PNG.

    Many labels at once

    Paste the spreadsheet column into Bulk list and print the sheet, rather than building a mail merge around a font.

    UPC, EAN and ITF-14 Check Digits

    Retail and carton numbers end in a GS1 mod 10 check digit. Type the number without it and the tool appends it; type all of it and the tool verifies it.

    sum = digits × 3, 1, 3, 1 … from the right check = (10 − sum mod 10) mod 10

    For UPC-A 61414100001: sum = 48, so the check digit is 2 and the full number is 614141000012.

    SymbolNumber without checkWeighted sumCheck digit
    UPC-A61414100001482
    EAN-13590123412345837
    EAN-89638507864
    ITF-141061414100041555
    Building GS1-128, SSCC or pallet labels? Those need Application Identifiers and FNC1 characters that plain Code 128 does not add. Use the GS1 barcode generator instead.

    Six Barcode Mistakes That Fail at the Scanner

    1

    Stretching the image

    Resizing in one direction changes the ratio between bars. Change X in the tool and download again instead.

    2

    Cutting the quiet zone

    The blank margin is part of the symbol. Every width on this page includes it, so plan the label around the full width.

    3

    Forcing set B on numbers

    100045678912 is 61.7 mm in set B against 39.9 mm in auto. Leave the set on Auto unless a system needs one set.

    4

    Lower case in Code 39

    Code 39 has no lower case. The tool converts to upper case and says so, but your database still holds the original.

    5

    Odd digit counts in ITF

    Interleaved 2 of 5 encodes pairs. An odd-length number needs a leading zero, which then becomes part of the scanned value.

    6

    Inventing a UPC

    A made-up retail number can match another brand's product. Use the GS1 prefix issued to your business.

    Barcode Generator Questions

    Pick a symbology, type the value and the barcode draws as you type. SKU-88421 in Code 128 comes out 47.2 mm wide at a 0.33 mm bar. Download it as SVG or PNG, or open a print sheet. Use Code 128 for your own SKUs and bins, and a GS1-issued number for retail UPC or EAN.
    There is no 128-bit barcode. The name you want is Code 128, a linear symbology that can encode all 128 ASCII characters. Choose Code 128 above and type your value. The tool picks set A, B or C, adds the modulo 103 check character, and adds start and stop codes.
    Generate the barcode here, download it as SVG or PNG, then use Insert, Pictures in Word. Keep the aspect ratio when you resize it. Typing a value in a Code 128 font is not enough on its own, because the start code, check character and stop code must be calculated first.
    You do not need a font to get a scannable Code 128 barcode. A font only draws bars for characters you give it, so something still has to calculate the check character and add start and stop codes. This tool does that and gives you an image file instead.
    Switch to Bulk list and paste one value per line, straight from a spreadsheet column. Add a caption after a vertical bar. For numbered runs such as bins, use the sequence builder: prefix, start number, count and zero padding. Up to 250 barcodes render at once.
    Code 128 covers upper and lower case and packs digits in pairs, so it is narrower. A12-R04-B01 is 68.5 mm wide in Code 39 against 58.1 mm in Code 128 at the same bar width. Code 39 survives where older scanners or systems require it.
    No. GS1-128, once called EAN-128, is Code 128 with an FNC1 character after the start code and data written as GS1 Application Identifiers, such as SSCC or batch. Use our GS1 barcode generator for those labels. Plain Code 128 suits internal SKUs, bins and carton IDs.
    Only with a number that is legitimately yours. Retail UPC and EAN numbers come from a GS1 company prefix issued to your business. This tool draws the symbol and checks the check digit. It does not issue numbers, and an invented UPC can clash with another product.
    Size is set by the narrowest bar, the X dimension. Every bar scales with it. SKU-88421 in Code 128 is 35.8 mm wide at 0.25 mm and 71.5 mm at 0.5 mm, quiet zones included. Choose your label width in the tool and it shows the largest X that fits.
    The usual causes are bars printed too narrow for the scanner, quiet zones cut off by the label edge, low contrast, and stretching the image in one direction. Download at true size, keep the margins, print dark bars on a light background, and test with the scanners on your floor.

    Want the Scanning Done for You?

    Talk to Locad about receiving, storage and fulfillment for your inventory.