Methodology
Every PDF on this site is generated as a vector file by our own code, and every claim a page makes is arithmetic, not adjectives. The short version sits on the test page; this page shows the working, and it ends with a dated changelog of everything that has changed on the site, because a test target you cannot audit is just a picture.
Exact geometry, in points
PDF places objects in points, 72 to the inch, which makes millimetres exact by definition: 1 mm is 72 divided by 25.4, or 2.834646 points. The 100 mm scale bar is therefore drawn 283.465 points wide, and the 150 mm ruler 425.197 points, and they stay that size on paper as long as nothing rescales the page. The page boxes are pinned the same way: A4 is 595.276 by 841.890 points and US Letter 612 by 792 exactly, and our build tests check those bytes in the emitted files on every change.
This is why every sheet says print at 100% scale. The one thing that reliably breaks a test page is a print dialog quietly fitting it to the printable area, shrinking everything by a few percent. The bar and the ruler exist so you catch that with the first measurement instead of trusting a checkbox.
Verified on paper, not assumed: through Chrome's print path at 100%, the 100 mm bar measured 100.19 mm and the 150 mm ruler 149.93 mm on our bench. That error, under a quarter of one percent, is the print path itself; the file's geometry is exact.
Native CMYK, not converted RGB
A web page can only describe color as RGB, and the printer driver converts it to ink however it likes, differently on every machine. The test page PDFs skip that conversion: they set ink values directly in the DeviceCMYK color space, so the cyan test page requests cyan ink and nothing else, and a magenta cast on it cannot be blamed on a converter. That is the practical difference between the print button, which is quick and driver converted, and the PDF downloads, which are the measurement grade version of the same sheets.
The build enforces one more constraint that sounds trivial and is not: all text in the PDFs stays ASCII, because font embedding is where PDF generators quietly diverge across platforms, and a test target must render identically everywhere.
Coverage you can state, because it is solved
An ink coverage page is only meaningful if the number is true. The CMYK coverage sheets are built backwards from the claim: the tint is solved so that the ink laid down equals 40.0% of the sheet's area, given the area the tint actually covers, and the tint percentage that achieves it is printed on the page itself. Change the margins and the tint changes with them; the build tests recompute the arithmetic on every change and fail if any channel drifts from 40.0% or leaks into another channel's page.
Deterministic output
Generating the same sheet twice produces byte identical files. That is a test pin, not an aspiration, and it is what makes the thumbnails honest: every preview on the site is rendered from the same drawing commands that generate the PDF, so a thumbnail cannot show a different sheet than the file behind it.
What we cannot see from here
Final color depends on your driver, your paper and your ink, and no downloadable file changes that. These pages make faults visible and comparable between prints; they are not a substitute for ICC profiling when you need color managed accuracy. Where a number depends on your hardware, the page says so instead of implying a precision it cannot have.
Changelog
Dated, complete, most recent first.
2026-10-01. Added the lined paper and staff paper sections: lined paper in any ruling, with an optional red margin line, handwriting paper with a dashed midline, and staff paper with 1 to 16 staves, each with its preset pages and ready-made PDFs drawn by the same code as the generator. Every sheet carries the same calibration line and says print at 100% scale; like the graph paper PDFs, they draw their lines in gray or RGB. The header now groups the site's pages by family, test pages and paper, with the two guides beside the logo, and the privacy policy states what the paper pages count.
2026-09-28. Added the color test page: a color sheet that prints from the browser in one click, with the inks and overprints, a 24 step hue sweep, channel ramps, neutral grays and memory colors, next to the existing color test PDFs. The header and footer link it, and so does the color section of the test page.
2026-09-28. Added the graph paper section: a generator for square, dot and isometric grids, five preset pages, and twelve ready-made PDFs drawn by the same code as the generator. Every sheet carries a calibration line labelled with its own length (4 in on inch sheets, 10 cm on metric ones) and says print at 100% scale. The graph paper PDFs draw their lines in gray or RGB rather than CMYK: a grid line is a single color, so there is no ink mix to test. The header and footer now link both sections, and the privacy policy states what the graph paper pages count.
2026-09-20. Added a first party counting beacon: each page view, and on the reading guide whether the ink store link was shown and clicked. No cookies, no third party script; the privacy policy states the record exactly. The reading guide's streaking section gained one sentence and that store link.
2026-09-07. Added this methodology page, the guide to reading a test print, and the privacy policy. The site footer now names the operator.
2026-08-26. Site live: the one page test sheet and 19 CMYK native PDF downloads, generated by our own vector PDF writer. Fixed, same day, a print path fault where hidden page chrome still occupied layout space and produced blank pages after the sheet; printing now lays out only the sheet itself. Physical verification recorded on our bench: 100 mm bar measured 100.19 mm, 150 mm ruler 149.93 mm, through Chrome's print dialog at 100% scale.
2026-08-25. testpagelab.com registered.