Bulk label sheets

Create QR & Barcode Label Sheets Online

Paste your data, generate hundreds of QR codes or barcodes, arrange them on printable sheets, and print them in minutes.

Create Labels
  • Free to use
  • No signup required
  • Bulk generation
  • Print-ready
  • Browser-based

1 · Your data

0 rows

No labels yet

Paste a list of codes above, import a CSV, or load some sample data to see how it works.

Generate a numbered series

Create sequential codes without a spreadsheet — ideal for asset tags and storage boxes.

2 · Code type

Every row in this column becomes one code.
The column value is encoded exactly as written.

Higher error correction survives smudges and small tears but packs more modules into the same square, making each one smaller.

3 · Label design

50 × 25 mm

Add data to see a label

Template

Code position
45% of label
1.5 mm

Text lines

Logo (optional)

4 · Sheet preview

0 labels · 0 pages
100%
Page 1 of 1

5 · Sheet & export

Orientation
8 mm
2 mm
2 mm
Grid
Labels per page
Total labels
Pages
Label size
Module size

For accurate label dimensions, use 100% / Actual Size in your printer settings and turn off browser headers and footers.


🔒 Your data stays here

Codes are generated by JavaScript in this tab and the PDF is assembled here too. This page has no upload endpoint, so your SKUs, asset IDs and URLs stay on your device. Your work is kept in this browser's local storage until you reset it.

Built for reliable printable labels

Each item below describes how this page actually behaves. Nothing here is a marketing claim.

Bulk generation

One label per row, generated in chunks so the interface keeps responding while a few hundred codes are built.

Print-ready sheets

Label positions are computed in millimetres and the labels are drawn as vector SVG, so print output is not resampled from a bitmap.

Seven barcode formats

Code 128, Code 39, EAN-13, EAN-8, UPC-A, ITF-14 and Codabar, each validated against its own rules before anything is drawn.

QR with real payloads

Plain text, URL, email, phone, SMS, Wi-Fi and vCard, encoded in the formats phone cameras actually recognise.

CSV and paste import

Quoted CSV, tab-separated text from a spreadsheet, and an editable grid, with any column able to drive the code.

Scan-size warnings

When your label size squeezes the modules or bars below a readable width, the tool says so instead of printing something unscannable.

Always test-scan a printed sample with the actual scanner or phone that will be used, on the actual paper, before producing a large batch. No preview can tell you how your specific printer lays down ink or toner.

What is a QR and barcode label generator?

Generating one QR code is easy — dozens of sites will do it, and your phone can probably do it too. The hard part starts at scale. You have 240 storage boxes, or 1,800 library items, or a spreadsheet of SKUs from your supplier, and you need every one of them turned into a code, laid out on a sheet you can actually feed through a printer, at a size the scanner will read.

That is the gap this tool fills. It takes a list — pasted, typed, or imported from a CSV — and turns each row into its own label. Every label carries a code plus whatever text you want next to it, and the labels are arranged automatically on the paper you choose, with the grid, the page count and the cutting marks worked out for you.

The whole flow in one line: paste data → generate codes → customise labels → arrange on the sheet → preview → print. Everything on this page exists to move you along that line without a detour into design software.

Two design decisions are worth knowing about, because they affect the output you get. First, the labels are drawn as vector SVG rather than as images. A QR code drawn as vector prints at whatever resolution your printer supports — 600 or 1200 dots per inch — instead of being blown up from a 300 dpi bitmap, so the module edges stay hard and the scanner sees clean transitions. Second, the exported PDF is vector too: each module and each bar is a rectangle in the PDF, not a picture of one.

How to create QR code labels

The short version: paste your values, pick QR, choose a size, print. The longer version has a few decisions in it worth making deliberately.

  1. Get your values in. One per line in the paste box is enough for a simple job. If you have several columns — a code plus a product name and a price — paste the whole table, including the header row, and the columns are detected.
  2. Choose the QR content type. A QR code holding https://example.com/x as plain text and one built as a URL payload look identical, but the second is what makes a phone camera offer to open the link. The same applies to Wi-Fi credentials, email addresses and contact cards, which each need their own payload syntax. Pick the type that matches what you want to happen when someone scans.
  3. Set the error correction level. M is the sensible default. Go to Q or H only if the labels will be handled roughly, printed on textured stock, or partly covered by a logo — and understand that higher correction packs more modules into the same square, making each one smaller.
  4. Size the code. The code size slider is a percentage of the label. Watch the module size readout: below about 0.4 mm you are relying on a very good printer and a very patient scanner.
  5. Add your text lines. Bind each line to a column so every label fills itself in from its own row.

How to create barcode labels

Barcodes are less forgiving than QR codes, because each format has rules about what it can encode, and breaking those rules produces a symbol that looks fine and scans as nonsense — or does not scan at all.

So the flow adds a validation step. Choose a format and every row is checked against it before anything is drawn. EAN-13 rows must be exactly 13 digits with a valid check digit. Code 39 rows may only contain the 43 characters that format supports. Codabar values must be wrapped in a start and stop letter. Rows that fail are listed with the reason in plain words, and you can remove them in one click or fix them in the grid.

Two conveniences worth knowing:

  • Check digits are calculated for you. Paste 12 digits for an EAN-13 and switch on Add check digit, and the thirteenth is computed with the standard GS1 mod-10 weighting. Paste 13 digits with the wrong final digit and the tool tells you what it should be.
  • Code 128 switches modes on its own. Runs of digits are packed two-per-symbol in its numeric mode and everything else falls back to the alphanumeric mode, which is why a 12-digit Code 128 barcode is much narrower than a 12-letter one.

How to generate hundreds of QR codes at once

There is no separate bulk mode — bulk is the normal mode. Every row in the grid is a label, so 400 rows is 400 labels. What changes at that scale is how the work is scheduled.

Generating several hundred QR codes takes real computation: each one is a Reed-Solomon encode plus a mask evaluation. Doing that in one synchronous loop freezes the tab. Instead the work is broken into chunks with the browser given a chance to breathe between them, and a progress bar appears once a batch is large enough to be worth reporting. Identical values are encoded once and reused, so a list with repeats costs no more than a list without.

The sheet preview renders one page at a time rather than all of them. A 40-page job would otherwise put tens of thousands of elements into the document for no benefit, since you can only look at one page anyway. Printing and exporting build every page, which is why those actions show progress on big jobs.

Practical ceiling: a few hundred labels is comfortable on any machine, a couple of thousand is workable on a desktop, and beyond that you are better off splitting the job into batches — which is also easier to check and to cut.

How to generate labels from a CSV or spreadsheet

Most real label jobs start life in a spreadsheet, so there are two routes in and they end up in the same place.

Paste. Select the rows in Excel, Google Sheets or LibreOffice — including the header row — copy, and paste. Spreadsheets put tab-separated text on the clipboard, which is detected automatically. This is the fastest route and involves no file at all.

Import a file. Choose a CSV or TSV and it is read locally. Quoted fields containing commas are handled properly, so "Widget, blue" stays in one column instead of splitting in two.

Either way, the columns land in the editable grid and you choose which one supplies the code value. That choice matters more than it looks: for a retail label the barcode comes from the SKU or GTIN column while the text lines show the product name and price, whereas for an asset label the QR usually holds a URL built from an asset ID. Any column can drive the code, and the rest are available to the text lines.

Preparing the data

  • One header row, then one item per row. No merged cells and no blank spacer rows.
  • Keep leading zeros intact. Spreadsheets love to eat them — a GTIN of 0036000291452 becomes 36000291452 if the column is formatted as a number. Format the column as text before you export.
  • Decide how prices and dates should read before importing. The tool prints text exactly as it receives it.
  • Check for duplicate codes. The tool flags them, but it is easier to fix the source.

You have two options, and they need different settings.

Printing onto pre-cut label sheets. Set the label size, margins and gaps to match your sheet's specification exactly — the manufacturer publishes them, usually in millimetres. Print one page onto plain paper first, hold it up to a blank label sheet against a window, and check the alignment before you waste a real sheet. Nudge the page margin by a millimetre at a time if the whole grid sits high or low.

Printing onto plain paper or card and cutting. Simpler, cheaper, and what most people actually do. Turn on crop marks, print, and cut with a guillotine. You are free to choose any label size you like, so pick one that divides the page nicely.

The print dialog settings that matter

  • Scale: 100% or Actual size. Never Fit to page. That option shrinks everything by a few percent to clear the printer's unprintable border, which is invisible to the eye and fatal to a barcode that was already close to its minimum bar width.
  • Headers and footers: off. Otherwise the browser stamps the URL and date onto your sheet and can shift the layout.
  • Background graphics: on if your labels have any fill or border.
  • Paper size in the dialog must match the paper size in the tool. A sheet laid out for A4 sent to a Letter tray will be rescaled.

If your printer cannot print within 8 mm of the paper edge, increase the page margin in the tool rather than scaling the page down. That keeps every label at its true size and simply moves the grid inwards.

What people use label sheets for

Product and retail labels

A retail label is usually a barcode plus a product name and a price. If the product is sold through tills that read GS1 barcodes, you need EAN-13 or UPC-A with a genuine company prefix — you cannot invent those numbers, because they are allocated to a specific business and a duplicate will ring up as somebody else's product. For a market stall, a café, or anything scanned only by your own till, Code 128 with your own SKU is simpler and packs more into less width.

Inventory and stock labels

Inventory labels want a code and a human-readable line, because people need to find things by eye as well as by scanner. Code 128 is the usual choice. Keep the value short: A-12-04 beats AISLE-12-SHELF-04 both in bar width and in how quickly someone can read it out over a radio.

Warehouse and location labels

Location labels get scanned at distance, often from a forklift, so they need to be much bigger than product labels — 100 mm wide or more, with a tall symbol. Bar height matters here: a scanner sweeping across a tall barcode has more chances to catch a clean line, which is why warehouse labels look so stretched compared to retail ones.

Asset tracking with QR codes

Asset tags are the best case for QR rather than a barcode, because a QR code can hold a URL. Point it at a page in your asset register — https://example.com/asset/00194 — and anyone with a phone can see the maintenance history without special hardware. Use the sequential numbering tool to produce the ID series and bind the URL column to the code.

Two practical notes: QR codes on equipment get scratched and greasy, so error correction Q or H earns its place there; and printing the asset ID as text next to the code means the tag is still useful after the QR has been damaged.

Event, ticket and visitor labels

Ticket labels usually pair a QR code holding a unique ticket reference with the attendee's name and seat printed alongside. Generate the references with the numbering tool or import them from your ticketing export, and use the duplicate check before printing — two tickets with the same code is a problem you want to find in advance.

Storage, library and equipment labels

Home and office storage is the simplest case of all: a QR or barcode holding a box number, the box number printed large next to it, and a contents line underneath. Libraries typically use Codabar, which is why that format is still supported decades after it stopped being fashionable.

QR codes vs barcodes: which should you use?

They solve different problems, and the choice is usually obvious once you ask what will do the scanning.

How the two families compare for label work.
 Linear barcodeQR code
Reads withLaser and imager scanners, phones with an appAny phone camera, imager scanners
CapacityA short code, typically under 20 charactersHundreds of characters, including URLs
ShapeWide and short — needs horizontal roomSquare — fits a small label better
Damage toleranceLow; a scratch across the bars kills itHigh; 15–30% can be lost and still decode
Till compatibilityEAN-13 and UPC-A are the retail standardNot used at traditional tills
Best forRetail products, stock rooms, existing scanner fleetsAsset tags, tickets, anything linking to a page

The deciding question is rarely technical. If your business already owns laser scanners, use a barcode. If the people scanning will be using their own phones, use a QR code. If the item is sold in a shop, the format is chosen for you.

Choosing the right barcode format

The seven formats this tool supports, and when each one is the right answer.
FormatAcceptsUse it for
Code 128Letters, digits, punctuationThe default for internal codes — SKUs, asset tags, shipping references. Compact and widely read.
Code 39A–Z, 0–9, and - . $ / + %Legacy scanners, government and automotive systems. Wider than Code 128 for the same data.
EAN-13Exactly 13 digitsRetail products worldwide. Needs a real GS1 prefix for public sale.
EAN-8Exactly 8 digitsSmall retail packaging where EAN-13 will not fit.
UPC-AExactly 12 digitsRetail in the United States and Canada.
ITF-14Exactly 14 digitsShipping cartons and outer cases. Prints reliably on corrugated board.
CodabarDigits and - $ : / . +, wrapped in A–DLibraries, blood banks, photo labs, membership cards.

If you are not sure, the answer is almost always Code 128. It handles anything you are likely to put in an internal code, produces the narrowest symbol for a given value, and every scanner made in the last thirty years reads it.

Choosing the right label size

Label size is a negotiation between how many fit on a sheet and how reliably they scan. Smaller labels waste less paper and more of them fit; but every millimetre you remove shrinks the code inside them.

Labels per A4 portrait page with an 8 mm margin and 2 mm gaps. The tool recalculates these live as you change any setting.
Label sizeGridPer A4Typical use
25 × 25 mm7 × 1070Small QR-only asset dots
38 × 21 mm4 × 1248Address-style labels, small SKUs
50 × 25 mm3 × 1030The general-purpose product label
2 × 1 in (50.8 × 25.4 mm)3 × 1030The American equivalent
63.5 × 38.1 mm2 × 714Larger product and shelf labels
3 × 2 in (76.2 × 50.8 mm)2 × 510Shipping and carton labels
4 × 2 in (101.6 × 50.8 mm)1 × 55Warehouse location labels

A useful rule when you are undecided: start from the code, not the label. Work out the smallest code that will scan reliably in your environment, add the quiet zone, add room for the text you need, and the label size falls out of that. Choosing the label first and then squeezing the code into whatever space is left is how unscannable labels get made.

Module and bar size

This is the number that decides whether your labels work. For a linear barcode the critical dimension is the X-dimension — the width of the narrowest bar. GS1 requires at least 0.264 mm for retail symbols, and 0.33 mm is a far more comfortable target on office printers. For internal Code 128 you can go down to about 0.25 mm on a good laser printer, and no lower.

For QR codes the equivalent is the module — one of the small squares. Below roughly 0.4 mm on a laser printer, toner spread starts merging adjacent modules and read rates fall off. The tool shows the current module or bar size in the statistics panel and warns you when it drops into the danger zone.

Quiet zones

The blank margin around a symbol is part of the symbol. Scanners use it to find where the code begins and ends, and clipping it is one of the most common causes of a code that will not read. Linear barcodes want at least ten times the narrow bar width of clear space on the left and right; EAN-13 specifically wants 11 modules on the left and 7 on the right. QR codes want four modules of clear space, though two is usually tolerable at close range. Keep some label padding and do not cut right up to the bars.

Printer and paper

  • Laser beats inkjet for small codes. Toner sits on the surface; ink soaks into paper fibres and spreads, thickening bars and eroding the gaps between them.
  • Matte beats glossy. Gloss reflects the scanner's own light straight back at it.
  • Print black on white. Not dark blue, not dark grey. Scanners judge contrast, and coloured "black" often has far less of it than it appears to have.
  • Never scale a printed sheet on a photocopier afterwards.
  • Keep bars vertical relative to the scan direction for handheld laser scanners, or use a tall symbol so the beam has a wide target.

Avoiding scanning problems

When a printed code will not scan, work through this list in order — it is almost always one of the first three:

  1. The print dialog scaled the page. Check that scale is 100%.
  2. The bars or modules are below the minimum size. Check the statistics panel.
  3. The quiet zone was cut off, or something was printed too close to the symbol.
  4. The contrast is poor — light toner, coloured paper, or a nearly empty cartridge.
  5. The paper is glossy and reflecting the scanner's light.
  6. The data is not valid for the format — which the tool checks, but a code fixed by hand afterwards may not be.

Test-scan one printed label, not the screen. Screens are backlit and far more forgiving than paper.

Working efficiently with bulk labels

A few habits make large jobs much less painful:

  • Check duplicates before printing. Duplicate asset IDs or ticket references cause problems that surface weeks later.
  • Print one page as a proof. Cut a label from it, scan it, hold it against the item it will go on.
  • Print in batches you can actually cut. Ten pages is a manageable sitting; sixty is not.
  • Keep the source data. Export the CSV so the same batch can be reprinted identically when a label peels off.
  • Number sequentially with padding. BOX-007 sorts correctly in every system; BOX-7 does not.

Privacy and browser-based processing

Label data is often more sensitive than it looks. A stock list reveals what a business holds and where; an asset export names equipment and locations; a ticket file is a list of customers. That data does not need to travel anywhere for a QR code to be drawn.

So it does not. The QR encoder and the barcode encoders run as JavaScript in your tab, the labels are built as SVG in the page, and the PDF is assembled in the browser. There is no upload endpoint on this page, which means there is nothing to delete afterwards and no copy of your list sitting on a server.

Two honest caveats, because vague reassurance helps nobody:

  • Your work — the grid contents and the settings — is saved to this browser's localStorage so a refresh does not lose it. That is data at rest on your own machine. On a shared computer, use Reset everything when you finish.
  • Printing hands the document to your operating system's print system, and downloading writes a file to disk. What happens to a spooled job or a saved PDF after that is governed by your own machine and network, not by this page.

Frequently asked questions

What people usually want to know before printing a batch of labels.

How do I create QR code labels?

Paste your values one per line, or import a CSV. Choose QR as the code type and pick the column that holds the value. Select a label size and template, check the sheet preview, then print or download a PDF. The QR codes are generated as you type.

Can I generate hundreds of QR codes at once?

Yes. Paste or import as many rows as you need and every row becomes its own label. Generation is chunked so the page stays responsive, and a progress bar appears for large batches. Several hundred to a few thousand labels is realistic on a normal laptop.

Can I create barcode labels in bulk?

Yes, and each row is validated against the rules of the barcode format you chose. Rows that cannot be encoded are listed with a plain explanation rather than being silently skipped or printed as an unreadable symbol.

Can I upload a CSV file?

Yes. CSV and TSV files are read in your browser. The first row is treated as column headings, quoted values containing commas are parsed correctly, and you then choose which column supplies the code value and which columns fill the text lines.

Can I paste data from Excel or Google Sheets?

Yes. Spreadsheets copy as tab-separated text, which the tool recognises automatically. Select your rows including the header row, copy, and paste into the data box.

Can I print QR codes on A4 paper?

Yes. A4, A3, Letter, Legal and custom paper sizes are all supported in portrait or landscape. Positions are calculated in millimetres, so a 50 × 25 mm label prints at that size provided you print at 100% scale rather than Fit to page.

How many labels fit on one sheet?

It depends on the label and paper size. On A4 portrait with 8 mm margins and 2 mm gaps, 50 × 25 mm labels give 3 columns by 10 rows, so 30 labels per page. 38 × 21 mm labels give 4 × 12, which is 48 per page. The tool recalculates the grid and the page count instantly whenever you change a setting.

What barcode formats are supported?

Code 128, Code 39, EAN-13, EAN-8, UPC-A, ITF-14 and Codabar, plus QR codes. Code 128 is the usual choice for internal SKUs and asset tags; EAN-13 and UPC-A are for retail products and require a real GS1 prefix if the goods are sold publicly.

Can I create Code 128 barcodes?

Yes, and it is the default barcode format. Code 128 encodes letters, digits and punctuation, automatically switches into its compact numeric mode for runs of digits, and appends the required checksum character for you.

Can I create EAN-13 barcodes?

Yes. EAN-13 needs exactly 13 digits, the last of which is a check digit. Paste 12 digits and switch on Add check digit and the thirteenth will be calculated. If you paste 13 digits with the wrong check digit, the tool tells you what the correct one should be.

Can I customise the label size?

Yes. There are presets for common sizes such as 50 × 25 mm, 63.5 × 38.1 mm and the 2 × 1 inch and 4 × 2 inch American sizes, and you can enter any width and height in millimetres or inches along with your own margins and gaps.

Can I add product names and prices to labels?

Yes. Each label has up to three text lines, and each line is bound to a column in your data. Bind one line to Product, one to SKU and one to Price and every label fills itself in from its own row. Font size, weight and alignment are adjustable per line.

Can I add a logo to the labels?

Yes. Upload a PNG, JPG, WebP or SVG logo and it is placed in the corner of every label at a size you choose. The image is read locally with the FileReader API and is never uploaded anywhere.

Can I generate inventory and asset labels?

Yes, and the sequential numbering tool is built for exactly that. Set a prefix such as ASSET-, a starting number and a padding width, choose how many labels you need, and the tool generates ASSET-001 through ASSET-250 for you without any spreadsheet.

Can the tool detect duplicate codes?

Yes. Duplicate code values are counted and reported, and you can review the affected rows or remove the duplicates in one click. Duplicate asset or SKU codes cause real problems downstream, so it is worth checking before printing.

Can I download the labels as a PDF?

Yes, and the PDF is true vector. Every QR module and every barcode bar is drawn as a rectangle rather than a picture, so the codes stay perfectly sharp at any zoom, the file stays small, and print shops can scale the page without softening the edges.

Does the tool work on a phone?

Yes. On a small screen the tool becomes a step-by-step flow — data, code type, design, preview, export — with large touch targets and a sticky bar for the next step. Printing from a phone works, though a desktop is easier for large batches.

Is my label data uploaded to a server?

No. The codes are generated by JavaScript running in your tab and the PDF is assembled there too. This page has no upload endpoint, so your SKUs, asset IDs and URLs stay on your device. Your work is saved in this browser's local storage until you reset it.

Are the QR codes generated automatically?

Yes. Every row becomes a code as soon as it has a value. There is no per-label generate button — change the data or the settings and the preview updates.

What size should a QR code be for printing?

As a rule of thumb the QR code should be at least a tenth of the distance it will be scanned from: about 20 mm for a phone held close, and 30 mm or more for a shelf label read at arm's length. What matters more is the module size — the individual squares — which should not fall below about 0.4 mm on a laser printer. The tool warns you when your current label size pushes the modules below that.

Why will my printed barcode not scan?

The three usual causes are the bars being too narrow, the quiet zone being clipped, and the print dialog scaling the page. Keep the narrow bar above 0.25 mm, leave a clear margin of at least ten narrow bars on each side of the symbol, and print at 100% scale. Always test-scan one printed label before running a full batch.

Can I create Wi-Fi and vCard QR codes?

Yes. Choose the QR content type and the tool builds the correct payload — WIFI: for network credentials, MECARD: for contact details, mailto: for email, tel: for phone and SMSTO: for text messages — from the columns you map.

Ready to print your labels?

Paste a list, pick a code type, and have a full sheet of scannable labels ready in the next few minutes. Free, no signup, and nothing leaves your browser.

Create Labels

Load sample data

Each sample loads a small realistic dataset with sensible code and label settings, so you can see the whole workflow immediately.

Duplicate code values

Check the imported columns

These are the columns that were detected. Choose which one holds the value to encode, then confirm.