QR Batch Generator
Generate online QR code batches from CSV or pasted rows with local parsing, readiness checks, ZIP images, manifests, and audit exports for print handoff.Batch Scan Readiness
| # | Filename | Type | Bytes | Version | Capacity | Readiness | Copy |
|---|---|---|---|---|---|---|---|
| {{ row.indexDisplay }} | {{ row.filename }} | {{ row.typeLabel }} | {{ row.bytes }} | V{{ row.version }} | {{ row.utilizationDisplay }} | {{ row.status }} |
| Row | Status | Main issue | Next action | Copy |
|---|---|---|---|---|
| {{ row.label }} | {{ row.status }} | {{ row.issue }} | {{ row.action }} |
Introduction
Batch QR production turns a list of destinations, contact actions, Wi-Fi strings, or asset identifiers into many scan targets at once. The work is not only making the squares. Each row needs a reliable payload, a traceable name, enough scan margin, and a handoff record so the printed or shared set can be checked later.
A single QR code can be tested by scanning it once. A batch needs stronger discipline because one bad row can hide inside a large ZIP, a repeated destination can create duplicate labels, and an overlong payload can become too dense for the chosen error correction level. Good batch preparation keeps the source rows, generated filenames, payload types, and scan-readiness cues together.
QR reliability comes from several small margins working together. Error correction adds recovery codewords, but it also reduces the data room available for the same symbol size. A quiet zone gives the scanner a clear border around the symbol. Strong foreground-to-background contrast keeps module edges readable on screens, labels, cards, and posters.
A QR code still carries text, not trust. A scan can open a link, prepare an email, join a network, or display an identifier, but it cannot prove that the destination is safe, current, or intended for the person scanning it. Batch work should end with representative scan tests and a review of the manifest, especially before printing many labels or distributing Wi-Fi and contact data.
Technical Details:
QR Code Model 2 symbols use numbered versions from 1 to 40. Version 1 is 21 by 21 modules, and each higher version adds 4 modules to both width and height. More payload bytes, higher error correction, or less efficient text structure moves a row toward a larger version. If the exported pixel size stays fixed, a larger version makes each module smaller.
Error correction levels L, M, Q, and H add Reed-Solomon recovery data. Higher levels tolerate more dirt or damage, but they leave less room for payload bytes. The batch logic estimates every row in byte mode, then compares the UTF-8 byte count with the selected level's capacity table. That conservative estimate is useful for mixed rows because URLs, Wi-Fi strings, vCards, calendar records, and plain text can all appear in the same source list.
The version formula uses V for the estimated QR version. Version 1 gives 17 + 4 x 1 = 21 modules per side, while Version 40 gives 177. The quiet-zone calculation converts the selected border in modules into pixels for the generated image.
| Error correction | Maximum byte-mode payload | Practical reading |
|---|---|---|
L |
2,953 bytes | Most payload room, least recovery headroom. |
M |
2,331 bytes | Common general-purpose correction level. |
Q |
1,663 bytes | Balanced for many printed batches. |
H |
1,273 bytes | Most recovery headroom, smallest payload room. |
Readiness is a local scoring rule, not a QR standard. It gives each row a 0 to 100 score from four ingredients: capacity headroom, color contrast, quiet-zone margin, and the selected error correction level. Empty rows and rows above the selected byte capacity are blocked no matter how well the other ingredients score.
| Signal | How it is scored or flagged | Why it matters |
|---|---|---|
C capacity |
Stays strongest below 70% of the estimated version capacity, falls from 70% to 90%, and drops faster above 90%. | Dense symbols have smaller modules and less scan tolerance. |
K contrast |
Uses relative luminance contrast. A row warning appears when foreground and background are below 4.5:1. |
Phones need clear dark-light module edges, especially after printing. |
Q quiet zone |
Reaches full score at 4 modules. Values below 4 modules add a warning. | The scanner needs clear space around the symbol to find the code area. |
E error correction |
Maps L, M, Q, and H to increasing resilience scores. |
More correction can recover more damage but reduces payload capacity. |
| Payload checks | Empty payloads, capacity overflow, duplicate payloads, very dense rows above 92%, and www. URLs without a protocol can all appear in the audit. |
These checks catch rows that are easy to miss in a pasted spreadsheet. |
| Status | Boundary | Meaning |
|---|---|---|
| Robust | R >= 86 and no row warnings |
Good scan margin on the measured checks, still requiring a real scan test. |
| Balanced | R >= 72 |
Likely usable, but review any warning before print or handoff. |
| Review | R >= 50 |
One or more choices are reducing scan margin enough to slow down release. |
| Blocked | Empty payload, capacity overflow, or R < 50 |
The row should not be exported as a production QR code until corrected. |
Everyday Use & Decision Guide:
Start with one row per code. For named outputs, use name,payload rows or a CSV/TXT file with recognizable columns such as name, filename, label, id, payload, url, content, or data. The row name becomes part of the safe filename, and the payload is the exact text encoded in the QR symbol.
For a first pass, keep Error correction at Q - print balanced, keep ZIP image format on PNG, leave Image size at 360 px, and keep the Quiet zone at 4 modules. Those defaults favor printed labels and ordinary phone cameras before you tune colors, dot style, or file format for a design workflow.
- Use Browse CSV/TXT or drag a file onto Payload rows when the batch came from a spreadsheet export. Files above 512 KB are rejected so the browser session does not try to process a very large batch at once.
- Use Normalize after pasting mixed rows. It rewrites the current parsed rows as clean
sourceName,payloadCSV text. - Turn on Skip duplicate payloads when repeated destinations are accidental. Leave it off when separate labels intentionally point to the same place.
- Set Preview limit for screen review only. ZIP export still includes every valid row up to the 1,000-row browser safety limit.
- Open Readiness Audit before export. The Main issue and Next action columns are faster to review than scanning a long gallery by eye.
Use Payload Ledger when you need traceability: filename, payload type, byte count, estimated version, capacity used, readiness score, and status are shown row by row. Use Batch Readiness Map when you want to spot the weakest rows quickly; it charts up to 24 exportable rows sorted by readiness score.
Do not treat a clean ZIP as proof that every code is ready. Check the summary badge, resolve Blocked rows or Needs review, then scan representative symbols from the same image format, size, color, and print process you plan to use.
Step-by-Step Guide:
Use this flow for a named batch that needs images and a review record.
- Paste rows into Payload rows, or use Browse CSV/TXT. If the red message says the file is larger than 512 KB or cannot be read, split the source file or load a clean CSV/TXT export.
- Check any yellow source notes. CSV header detected, blank row(s) ignored, and duplicate payload row(s) skipped explain how the source text was interpreted.
- Choose Error correction, ZIP image format, Image size, and Filename prefix. The summary badges update with the selected ECC level, output format, total bytes, and batch status.
- Open Advanced for Quiet zone, foreground and background colors, Dot style, Eye style, Preview limit, and Skip duplicate payloads. Restore 4 quiet-zone modules and high contrast before judging any decorative style.
- Review QR Image Set. If the gallery shows fewer codes than the exportable count, raise Preview limit only for inspection; the ZIP still follows the exportable row count.
- Open Payload Ledger and Readiness Audit. Clear empty payloads, capacity overflows, missing URL protocols, duplicate payload warnings, low contrast, and quiet-zone warnings before release.
- Use ZIP to download the image archive when the row set is ready. The archive includes the QR images,
manifest.csv, andbatch.json. - Use the CSV, DOCX, JSON, and chart exports when someone else needs to review filenames, status, or readiness evidence before printing.
Interpreting Results:
The summary figure shows how many rows are Robust or Balanced out of the total parsed rows. The batch badge is the release cue: Ready means no current warning, Needs review means at least one warning is present, and Blocked rows means one or more rows cannot be exported as production symbols.
Readiness score is a triage score. It does not guarantee that a phone will scan the final printed label under every lighting condition. A high score should still be tested with the actual image size and material. A lower score is useful because it points toward the likely cause: payload density, contrast, quiet zone, or error correction tradeoff.
| Output cue | Best reading | Follow-up |
|---|---|---|
| Robust | The row has a score of at least 86 and no row warnings. | Scan-test a sample before production use. |
| Balanced | The row is at least 72, but it may still carry a warning. | Read Main issue in Readiness Audit. |
| Review | The score is at least 50 but scan margin is weaker. | Shorten payloads, improve contrast, or restore the quiet zone. |
| Blocked | The row is empty, above byte capacity, or below 50. | Correct the row before using the ZIP for production handoff. |
Trust the row tables more than the gallery thumbnail. The gallery proves that a symbol can render; Payload Ledger and Readiness Audit show whether each filename, byte count, version estimate, warning, and next action still makes sense.
Worked Examples:
Small mixed front-desk batch
Paste front-desk,https://example.com/check-in, wifi-lobby,WIFI:T:WPA;S:Lobby;P:samplepass;;, and asset-042,ST-INV-00042 with the default ECC Q, PNG, 360 px, and 4 modules. Payload Ledger labels the rows as URL, Wi-Fi, and Text, builds filenames with the current Filename prefix, and shows byte counts for each payload. The URL row is 28 bytes, estimates Version 3 at ECC Q, and should appear as Robust with the default colors.
Duplicate destination in a label run
Two rows named poster-a,https://example.com/menu and poster-b,https://example.com/menu are allowed when Skip duplicate payloads is off. The second row appears in Readiness Audit with Main issue set to Duplicate payload appears in the batch. If the duplicate is accidental, turn on Skip duplicate payloads; the source note then reports that one duplicate payload row was skipped.
Protocol warning on a menu link
A row such as menu,www.example.com/menu is detected as a URL, but Readiness Audit warns that the URL starts with www and has no http:// or https:// protocol. The row may still be exportable, but the safer correction is to change the payload to https://example.com/menu before downloading the ZIP.
Over-capacity high-correction payload
A 1,300-byte plain-text inventory note under ECC H is above the 1,273-byte byte-mode capacity used for the highest QR version. Payload Ledger shows Version 40 and a capacity overflow, while Readiness Audit returns Blocked. Shorten the text, lower error correction only if the use case allows it, or replace the QR payload with a shorter link to the full record.
FAQ:
What row format should I paste?
Use one payload per line, or use name,payload when you want predictable filenames. CSV headers are mapped when they include payload-like columns such as payload, url, content, data, qr, or value.
Why is a row blocked?
A row is blocked when the payload is empty, the UTF-8 byte count exceeds the selected error correction capacity, or the readiness score falls below 50. Check Readiness Audit for the specific Main issue and Next action.
Does the preview limit reduce the ZIP?
No. Preview limit only controls how many QR previews appear in QR Image Set. ZIP export includes every valid row up to the 1,000-row browser safety limit.
What does the 4.5:1 contrast warning mean?
The warning means the selected foreground and background colors fall below the tool's contrast threshold. It is a conservative scan-readiness cue, not a formal QR pass-fail rule, so still scan-test the exported image on the final surface.
Are pasted rows or CSV/TXT files uploaded?
The row parser reads pasted text and selected CSV/TXT files in the browser, and the ZIP is assembled in the browser session. The page still depends on external QR, ZIP, and chart libraries loading before preview, archive generation, and chart export are available.
Glossary:
- Payload
- The exact text encoded in one QR symbol, such as a URL, Wi-Fi string, email URI, vCard, event record, or plain identifier.
- QR version
- The symbol size number from 1 to 40. Higher versions contain more modules per side and can hold more data.
- Module
- One dark or light square in the QR matrix.
- Quiet zone
- The blank border around the QR symbol. Four modules is the standard margin used as the readiness target here.
- Error correction
- Recovery data added to the QR symbol so scans can survive some dirt, damage, or obstruction.
- Readiness score
- A local 0 to 100 row score based on capacity headroom, contrast, quiet zone, and selected error correction.
- Manifest
- The exported row record that connects each generated filename with its source name, payload type, byte count, status, and payload text.
References:
- QR Code Standardization, DENSO WAVE.
- Information capacity and versions of the QR Code, DENSO WAVE.
- Error Correction Feature, DENSO WAVE.
- Point for determining the code area, DENSO WAVE.
- Understanding SC 1.4.3: Contrast (Minimum), W3C Web Accessibility Initiative.