Methodology
How anyscan.download checks its output.
“Verified scannable” is an actual local test, not a label added after drawing. anyscan.download renders a fresh code, decodes that render on your device and compares the result with the intended value. Separate checks cover format rules and physical print size.
Four different checks
| Check | What it establishes | Where it runs |
|---|---|---|
| Format validation | Length, character set and check digit are valid for the selected symbology. | Every Create and included Batch record. |
| Rendered decode comparison | A decoder can read the generated pixels and returns the intended normalized value. | Every Create output; optional scoped Batch verification. |
| Physical size guard | The configured QR module or barcode bar is not below the conservative print threshold. | PDF sheets and thermal-label preflight. |
| Real-world test | The chosen printer, material, lighting and scanner work together. | You test the final physical output. |
The first three checks run locally. They do not upload the payload or prove that every future print, screen, camera or scanner environment will behave the same way.
Format validation
QR payloads are checked for encoding viability and capacity at the selected error correction level. Code 39 is limited to its supported uppercase character set. Code 128 accepts a broader identifier range. EAN-13, EAN-8 and UPC-A require fixed digit counts and a final check digit; the tool can calculate a missing check digit or report the exact expected digit when a supplied one is wrong.
The check-digit calculation follows the alternating-weight method used for GTINs. The official GS1 check digit calculator is an independent reference. A correct checksum establishes structural validity, not that a number has been licensed to a particular product or company.
The guided GS1 builder supports GTIN (01), batch or lot (10), expiry date (17) and serial number (21). It places separators after variable-length fields when another element follows, renders the carrier FNC1 in GS1-128 or GS1 Data Matrix, then decodes the generated pixels locally and compares the scanner element string. This verifies the encoded structure; it does not assign or look up a GTIN.
Batch verification is explicit about scope
Every included logical row receives format validation. Standard decode verification checks every logical record for jobs of 100 or fewer. Larger jobs use a deterministic sample of at least 50 records, approximately 10%, and at most 500. Full decode mode checks every record up to 5,000 and asks larger jobs to use a sample or split the work.
The interface and CSV report say whether verification covered all records, a sample, validation only or none. Copy quantities do not multiply decode work: one logical code is tested once while the requested number of physical copies remains in the report.
Measured local batch benchmark
These results were measured on 1 September 2026 using the production build served by local Wrangler in a warm headless Chrome for Testing 151.0.7922.34 session (Playwright 1.62.1). The device was a MacBook Pro Mac16,8 with an Apple M4 Pro and 48 GB of memory. Input was a newline-delimited list of synthetic QR values. Timings are local development measurements, not guarantees for other devices.
| Rows | Analysis to stable UI | Standard decode verification | SVG render + ZIP |
|---|---|---|---|
| 100 | 195 ms | 3,893 ms · 100 of 100 | 71 ms · 101 entries |
| 1,000 | 204 ms | 3,744 ms · 100-record sample | 565 ms · 1,001 entries |
| 5,000 | 283 ms | 18,801 ms · 500-record sample | 2,715 ms · 5,001 entries |
| 10,000 | 402 ms | 19,543 ms · 500-record sample | Not offered above the 5,000-file archive safety cap |
Each ZIP entry count includes report.csv. The DOM preview remained bounded
at 24 rows in every run. To reproduce the test, build the site, serve dist/
with Wrangler, paste the same number of distinct newline-delimited values, wait for the
progress control to close, run Standard verification, then time the SVG ZIP download.
Record the browser, device and verification scope with the result because both decode and
export time vary by hardware.
Print checks use physical units
PDF label layouts are calculated in millimetres. The tool refuses a sheet when a QR module would be below 0.35 mm or a narrow barcode bar would be below 0.25 mm. These are safety guardrails, not a guarantee or a claim that one threshold fits every symbology, substrate and scanner. Print PDFs at 100% scale and test one sheet before a large run.
A one-based start position can leave already-used cells blank on the first sheet. QR and barcode artwork is written as vector geometry in the PDF; only label text outside the built-in PDF font range may be rasterized as an isolated line.
If a 100 mm reference still measures incorrectly after the print dialog is set to Actual size or 100%, the tool can apply independent inverse horizontal and vertical correction to sheet geometry. The correction is uniform and page-centred. It cannot repair skew, feed drift, nonlinear distortion, material movement or worn hardware.
ZPL output converts millimetres to printer dots at 203, 300, 600 or a custom 72–2400 DPI. It uses native commands for QR Code, Code 128, Code 39, EAN-13, EAN-8, UPC-A and ITF. The Zebra ZPL programming guide documents those printer commands. Font support, firmware, darkness, speed and media still depend on the target printer.
Label template sources
The included Avery-compatible geometry is limited to templates whose size, count and sheet positioning could be checked from manufacturer information. Avery 5160 uses 30 labels of 2.625 × 1 in on US Letter; Avery 5163 uses 10 labels of 4 × 2 in. The stored layouts are checked to consume the page dimensions within 0.02 mm.
Avery is a trademark of its owner. anyscan.download is not affiliated with or endorsed by Avery. Presets with incomplete positioning evidence are omitted rather than guessed.
Independent decoding in tests
Generation tests do not treat a successful drawing call as proof. QR artifacts are read with jsQR; one-dimensional and GS1 carrier artifacts are read with ZXing after rasterizing their SVG at a natural integer scale. Browser tests cover Chromium, mobile Chrome, Firefox and WebKit workflows, while physical printer and scanner combinations remain a manual release check.
What verification does not claim
- It does not certify a GTIN owner or look up a retail product.
- It does not guarantee decoding after resizing, compression, damage or poor printing.
- It does not certify every Zebra printer, firmware version, font, media or scanner.
- It does not make large files fit inside a QR code; anyscan.download encodes data and does not host files.
Read the Privacy page for the exact local-processing and network boundary, or return to Create, Bulk Barcode Generator, Scan, Barcode Labels or Barcode Validator.
Last reviewed: 2 September 2026