IT
OmnvertImage • Document • Network
Jul 16, 2026intermediate9 minbulk · qr-code · csv · events · asset-trackingBulk QR Code GeneratorMore guides for this tool

Generate Hundreds of QR Codes at Once from a List

Feed a list of URLs or values in, get one QR code per row out. How to prep the CSV, produce unique codes for tickets or asset tags, export the batch, and QA a sample before you commit to a mass print run.

Prerequisites

Supplies
  • A spreadsheet or text list of your values
  • A naming scheme for the exported files
  • A printer and a sample sheet for QA
Tools
  • Bulk QR Code Generator
  • A spreadsheet app to build the CSV

Step-by-step

  1. Get your list into one clean column

    The batch is only as good as the list you feed it. Put your values, one per row, in a single column of a spreadsheet: full URLs, ticket codes, asset IDs, table numbers, whatever each code needs to carry. Strip trailing spaces, stray tabs, and empty rows, because a blank row becomes a blank or broken code that you will not notice until it is printed. If you are encoding URLs, paste one into a browser first to be sure it actually resolves. Garbage in, garbage on every sticker.

  2. Add a column for the output filename

    A folder full of qr-1.png, qr-2.png, qr-3.png is useless the moment you need to reprint one damaged tag. Add a second column with a meaningful name for each row: table-01, asset-A4471, ticket-00312. When the generator exports, each image carries that name, and matching a physical printed code back to its source row becomes trivial. Keep names filesystem-safe: no slashes, no colons, no spaces if you can help it. This one column saves you an afternoon later when something inevitably needs redoing.

  3. Load the CSV into the generator

    Export your sheet as CSV and drop it into the Bulk QR Code Generator. It reads each row and builds one code per value, all in your browser with nothing uploaded. Point it at the column holding the data to encode, and if you added a filename column, point it at that one too. You will get a preview of the first several codes so you can catch a mapping mistake, like the tool reading a header row as real data, before it churns through the entire list. Fix the mapping here, not after export.

  4. Choose error correction for real-world wear

    Codes destined for the physical world get scuffed. An asset tag on a laptop lid picks up scratches; an event wristband gets crumpled; a table sticker collects coffee rings. Bump the error correction level to Q or H for anything that will take abuse, so the code still decodes with up to 30 percent of it damaged. For codes living clean behind glass or on a screen, L or M keeps them sparser and easier to scan. Set this once for the whole batch and it applies to every code the tool generates.

  5. Export the batch and print at the right DPI

    Export as a zip of PNGs, or an SVG set if you are placing them in a layout tool. For print, resolution matters more than people expect. Aim for at least 300 DPI at the final printed size; a code that looks razor sharp at screen resolution can print fuzzy if it is scaled up on paper. Vector SVG sidesteps this entirely because it stays crisp at any size, so prefer SVG when your print workflow accepts it. Whatever you print, keep the quiet zone margin around each code intact through your layout.

  6. QA a sample before the full run

    Print one full sheet at the exact size, paper, and printer you will use for the whole job, then scan every code on it. Not a spot check, every code, because a batch process fails in batches. Use the QR Scanner to confirm each one decodes to the value you expect from its row. If the sample sheet scans clean, you have caught the DPI, contrast, and mapping problems that would otherwise multiply across hundreds of prints. Finding one bad setting on a test sheet is a shrug; finding it on 500 printed tickets is a reprint bill.

  7. Know the static-versus-dynamic trade-off

    The codes this tool makes are static: the value is baked in and cannot change after printing. That is perfect for a ticket ID or an asset tag that should never point anywhere else. It also means a URL you print today is the URL forever, so if that web page moves, every printed code breaks. Dynamic QR codes work around this by encoding a short redirect you can repoint later, but they depend on a third-party service staying alive and usually cost money. For fixed values, static is simpler, free, and has nothing to expire.

Where one-per-row batches pay off

The whole point of a bulk run is that each code is unique and tied to a specific thing. Event tickets each carry their own ID so a scanner at the door can mark one as used without touching the rest. Asset tags let you scan a laptop or a projector and pull up its record. Restaurant table numbers route an order or a review to the right table. Warehouse bins, conference badges, inventory labels, seat markers: any time you have a list of distinct values and need a code for each, doing it one at a time is the slow way to lose an afternoon.

Watch for the header-row trap

The most common bulk mistake is the tool treating your header row ("url", "name") as a real value and generating a code for the word "url". Either tell the tool your CSV has a header, or delete the header row before importing. Always eyeball the very first code in the preview to be sure it is real data and not a column title.

A repeatable batch workflow

  1. Clean list in one column, no blank rows, values verified.
  2. Second column of filesystem-safe names, one per row.
  3. Import, check the preview, confirm the header is not encoded.
  4. Error correction Q or H for anything that will get handled.
  5. Export, print one sample sheet, scan every code on it.
  6. Only then commit to the full print run.

Related