Skip to content

Coverwrap barcode: rendered symbol ~3% wider than verify_coverwrap's pixel model #210

Description

@clintecker

Surfaced by make-ready, the first book with a real print ISBN + press coverwrap.

press verify-print fails: coverwrap barcode left quiet zone carries ink, even though the barcode renders on a clean white card with the quiet zone visually clear.

Precise diagnosis (empirical, at the check's 150dpi render)

  • verify_coverwrap.scanline computes symbol_right = (2.4-0.15)*dpi = 337px and symbol_left = symbol_right - 95*0.0130*dpi = 152px.
  • The actual first ink bar renders at px 146 — 6px (~0.04in) left of the computed symbol_left.
  • So the rendered symbol is ~191px wide vs the model's ~185px (95 × 0.0130in): about 3% wider. barcode.runs returns exactly 95 modules and 95*0.0130 = 1.235in matches the check's constant, so the discrepancy is in the render, not the module count — the tikz/lualatex output of the bars is ~3% wider than nominal, so the left guard bar pokes into the nominal left quiet zone [symbol_left-0.14, symbol_left-0.02].

Why it's not a quick fix

The check deliberately judges the quiet zone against where the symbol is SUPPOSED to be (nominal position), not observed ink, so it can catch a genuinely mispositioned barcode — so simply anchoring on first_ink would weaken it. The right fix reconciles the generator's rendered bar width with the check's model (find the ~3% scale source: tikz picture scale, a unit/geometry mismatch, or the check's dpi = image.width/wrap_w vs the true render dpi), so the rendered symbol is exactly 95 × 0.0130in.

Print-only: it does not affect press all, press check, the reading editions, or the site — only press coverwrap / verify-print for a physical-print wrap with a real ISBN. Not blocking any current book's build.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:printPDF, cover wrap, barcode, and retail preflightarea:verificationExecutable contracts and artifact verificationbugSomething isn't workingpriority:P3Low: polish or opportunistic improvement

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions