• EAN-13
  • UPC-A
  • Code 128
  • Code 39
  • QR

Bulk Barcode Generator

Paste one value per line and get a single PDF with the whole batch laid out on label stock.

      Print at 100%, with “fit to page” switched off.

      What happens to your list

      It stays in the browser

      The CSV is parsed, encoded and laid out by JavaScript on this page, and the PDF is assembled in memory before the download starts. There is no upload step, no temporary file on our side and no queue. A stock export is exactly the kind of file that should not be sitting in somebody else’s logs.

      Bad rows are named, not swallowed

      A row that cannot be encoded — a short EAN, a character Code 39 has no pattern for — is listed by row number with the reason, and the rest of the batch still prints. The count above the list is the number of labels you will actually get, so it can be checked against the sheet before printing.

      Part-used sheets are not wasted

      Label stock is sold in boxes and used in handfuls, so most sheets in a cupboard have gaps at the top. Tell the layout how many positions are already gone and it starts after them.

      For internal labelling — shelves, bins, assets, samples, kitchen stock — Code 128 is almost always the right choice: it takes letters and digits, packs long digit runs into half the width, and carries its own check character so a partial scan fails rather than reading as something else. EAN-13 and UPC-A belong to retail products with licensed numbers and should not be used for internal schemes, however tempting it is to reuse the format you already recognise.

      What a run can contain

      500
      Rows per run
      2 — value, then optional label text
      Columns read
      comma, semicolon, tab
      Separators understood
      EAN-13, UPC-A, Code 128, Code 39, QR
      Symbologies
      6 — four Avery, two plain grids
      Label stocks
      any number, to reuse a part-used sheet
      Labels skipped at the start
      in your browser — the CSV is never uploaded
      Where the file is built

      Questions about bulk runs

      What should the CSV look like?
      One row per label. First column is the value to encode; an optional second column is the text printed under the code, which is handy when the value is a code and the human needs a product name. A header row is skipped if the first cell reads sku, code, value, barcode, ean, upc, item or number — anything else is treated as data, because a silently dropped first row is a mistake you only notice on paper.
      Can I export straight from Excel or Google Sheets?
      Yes. Save as CSV and either upload the file or paste the cells directly into the box — pasting from a spreadsheet gives tab-separated text, which is understood as well.
      One row is wrong. Does the whole run fail?
      No. Rows that cannot be encoded are listed under the box and left out of the PDF; everything else prints. The counter above the list always tells you how many of your rows will actually appear.
      I already used half a sheet of labels. Can I start further down?
      Yes — set how many label positions to skip and the first page starts after them. That is the difference between reusing a sheet and throwing it away.
      Are the barcodes in the PDF images?
      No, they are vector rectangles, and the text is a standard PDF font. A page is tens of kilobytes and the bars have exact edges at any print size. Barcodes placed as stretched images are a common cause of labels that scan on screen and fail on paper.
      Why do my labels come out slightly misaligned?
      Almost always page scaling. Print at 100% with "fit to page" and "shrink oversized pages" turned off. If your printer has a known offset, print one sheet on plain paper and hold it against the label sheet before committing a box of stock.
      How many is too many?
      The limit is 500 rows per run, which is 17 sheets of Avery 5160. Beyond that the browser starts spending real seconds on it and a mistake costs a lot of labels; split the list and check the first sheet.