Methodology · Print-true
How the millimeters stay true.
The generators describe their geometry in millimeters. This page explains how browser print settings can change the physical result, and shows a ruler check to run before you print a batch.
The sections below show where each of those numbers comes from, and how to check the result on paper.
The geometry: real millimeters, whole cells
Every sheet on this site is an SVG whose coordinate system is declared in physical units — a line drawn at coordinate 50 is a line 50 millimeters from the paper's edge, not 50 screen pixels of something. When you pick a spacing, the page computes the printable area (your sheet minus your margin), derives how many whole cells fit, and centers the pattern so the edges never end in sliced partial squares. The counts in the readout strip are derived from that arithmetic, not hardcoded — change the spacing and watch them recompute. At print time the page also declares the paper size to your browser as exactly the sheet you chose, so there is nothing left for the print pipeline to resize.
The fit-to-page trap
Most printable paper online is a fixed PDF, and most print dialogs default to "Fit to page" or "Shrink to fit" — a setting that rescales the whole document, typically down a few percent, so its content clears the printer's margins. That's the entire mechanism behind wrong-measuring paper: a 5 mm grid printed at 94% is a 4.7 mm grid, and it looks completely normal. The one setting that matters is scale: set it to 100% (sometimes labeled "Actual size") and leave it there. Because these sheets keep their pattern inside a print-safe margin by construction, 100% clips nothing — there is no reason for the dialog to shrink anything, ever. Check that setting once and every sheet after it prints true.
Verify it with a ruler
Print one sheet of graph paper at the default 5 mm spacing, then measure across ten cells: the span should read 50.0 mm. Measuring across ten cells instead of one is deliberate — it divides your reading error by ten. A half-millimeter misread on a single cell would look like a 10% error; across ten cells the same misread is 1%, so any real discrepancy stands out unmistakably. (Working in inches? Ten cells of 0.25 in spacing should span 63.5 mm, or exactly 2.5 inches.) If the span comes up short, your print dialog is scaling — set it to 100% and print again. This one test verifies the whole chain: the geometry, the page sizing, and your printer's honesty.
Local generation, ready-made sheets and caching
Customized sheets are generated inside your tab; the site does not upload your generator settings or text. Some pages also provide pre-generated default SVGs and previews, served like other static site assets. The offline cache keeps a small core of site pages and code, plus eligible resources requested online, but not your customized settings or output. Not every resource is preloaded, and preview PNGs are not cached; test the generator or ready-made sheet you need with the network off before relying on offline use. Saving a PDF, downloading a sheet and printing can leave files or records on your device; closing a tab does not erase them or browser history. There are no accounts or sign-ups. See the privacy page for the distinction between site caching and your own saved files.
The honest limits
Consumer printers can't print to the paper's edge — every model has a mechanical dead zone of a few millimeters where the rollers grip. The default margin here is 12.7 mm (half an inch), which sits inside that dead zone on essentially every consumer printer, and the margin control stops at 5 mm rather than pretending zero works everywhere. Line weights below about 0.2 mm render inconsistently on consumer hardware, which is why the default is 0.3 mm. Borderless printing isn't promised: it depends on printer modes that rescale on some models, which would defeat the whole point. Finally, what's exact is the geometry handed to your browser — paper itself can drift a fraction of a percent with humidity, which is one more reason the ruler test on your printout is the measurement that counts.