Print-scale calibration spike
This is a validation page (Task 01). It proves the tool can generatephysically exact PDFs entirely in your browser — the foundation everything printed later depends on. Each PDF contains a 100 mm bar, a 4 inchbar (101.6 mm), and centimetre + inch rulers. If they measure true on paper, exact scale works.
Print & measure protocol
Do this once per printer to confirm your setup prints at true scale:
- Download a PDF above, matching your paper size.
- Open it and print with scaling OFF: choose“Actual size” / “100%” / “Custom scale: 100” —never “Fit to page” / “Shrink to fit”, which silently rescales.
- With a ruler, measure the black 100 mm bar end-to-end. A ruler graded in millimetres is ideal.
- Pass = the bar measures 100 mm within ±0.5 mm. Also spot-check the 4 inch bar (should be 101.6 mm) and the rulers.
If it passes (±0.5 mm): your printer honours true scale — every generated print will be correctly sized.
If it’s off: it is almost always a print-dialog scaling setting, not the PDF. Turn off “fit to page”, set scale to exactly 100% / Actual size, and reprint. If a specific value persists (e.g. everything ~4% small), tell us your printer and the measured length.
What’s being validated
- Fully client-side. No network is used to generate the PDF. Verify: after this page loads, go offline (DevTools → Network → “Offline”) and the download buttons still work.
- Exact media box. Each PDF’s page box is set to the true sheet size in points (mm × 72/25.4). A4 → 595.28 × 841.89 pt; Letter → exactly 612 × 792 pt.
- pdf-lib backend. The project’s chosen PDF library — pure JS, no DOM dependency (so it runs in a Web Worker and is unit-testable headlessly). Rationale + measurements are in the project progress log.
The units, page-size, scale-bar and calibration-sheet utilities live in the framework-free engine (src/engine/) and are covered by unit tests that assert the exact media box in Node (no browser needed).