My QR codes scanned in preview and failed on paper — the quiet zone isn't decoration
The QR Generator API was supposed to be the boring one in my toolkit: POST a string, get an image back. No parsers, no pagination, no file formats. It turned out to have the most physical-world failure mode of anything I run. A few weeks after I packaged it ( https://x402.freeq.one/tools/qr_generator.html ), an agent building conference tickets embedded my QR codes straight into a PDF layout — flush against the ticket art, no padding. On my preview page every code scanned instantly. On the printed tickets, phones refused to see them at all. Same bytes, same image. The culprit was the quiet zone. The QR spec (ISO/IEC 18004) demands an empty margin around the symbol — four modules wide, rendered in the same light color as the background. It isn't decoration: the detection step in every scanner uses that border to find the edges of the three finder squares and establish where the data grid starts. With no margin, the finder patterns sit flush against other dark artwork, edge detect...