Three chances to get the size wrong
A page laid out in millimetres can still print at the wrong size. That is true of graph paper, calendars and printable ruled paper alike, because there are three independent places where scaling happens:
- The page itself — the CSS that sizes the content.
- The print dialog — scale percentage, fit-to-page, margins, paper size.
- The printer driver — its own shrink-to-fit, applied to avoid the unprintable margin.
Only the first is under a web page’s control. The other two are the usual culprits when a grid comes out slightly small, and “slightly” is the tell: a uniform 94% or 97% is a scaling setting, not a layout bug.
The CSS inch is exactly 96 pixels
CSS defines absolute units by fiat:
1in = 96px exactly
1cm = 96/2.54 = 37.795...px
1mm = 1/10 cm
1pt = 1/72 in
These are definitions, not measurements. On screen the relationship to a physical inch is nominal — a CSS inch on a dense phone display is nothing like an inch of glass, and that is intended, because a phone is held closer than a monitor.
When printing, the mapping becomes real. The browser lays the page out in
absolute units and hands the printer a page in physical dimensions, so a 5mm
grid square is genuinely 5 mm on paper — provided nothing downstream rescales it.
Which is why a print-at-true-size layout should be authored in mm or in
rather than in pixels, and why the same page can be correct on paper while
looking arbitrary on screen.
Before you read on
You print 5 mm graph paper and measure the squares at 4.7 mm. What went wrong?
Scaling, almost always. 4.7 against 5 is 94% — a uniform reduction, which is the signature of a fit-to-page setting rather than a layout error. Most printers cannot print to the edge of the sheet, so the driver shrinks the whole page to keep content out of the unprintable margin. Set the scale to 100% and turn off shrink-to-fit.
The margin you cannot have
Nearly every consumer printer has an unprintable border, typically a few millimetres, because the paper feed has to grip somewhere. Content placed there is clipped.
Worse, many drivers respond to content in that region by scaling the entire page down to fit — which is exactly the failure that turns 5 mm squares into 4.7 mm ones. The page was right; the driver rescued it from being clipped and ruined the measurement in the process.
The reliable approach is to design inside a margin rather than to the edge, and to set the print dialog’s scale explicitly to 100%.
A4 and Letter are not interchangeable
| Width | Height | |
|---|---|---|
| A4 | 210 mm | 297 mm |
| US Letter | 216 mm | 279 mm |
Letter is wider and shorter. A layout built for A4 and printed on Letter is either scaled — losing true size again — or clipped at the bottom.
The ISO A series has a property worth knowing: every size has the same aspect ratio, the square root of two, so halving an A3 gives exactly two A4 sheets with no waste. The Letter family has no such relationship, which is why “print two to a page” behaves differently between them.
So set the paper size in the tool and in the print dialog. When they disagree, the driver resolves it by scaling, silently.
A checklist for true size
- Choose the correct paper size in the tool before printing.
- Set the print dialog scale to 100%, not “fit to page”.
- Turn off any “shrink oversized pages” or “auto-rotate and centre” option.
- Print one sheet and measure it with a ruler before printing thirty.
- If it is uniformly small, the cause is scaling, not the layout.
The measurement step is the one people skip and the only one that actually answers the question.
Common questions
Why did my 5 mm graph paper print at 4.7 mm?
Almost always "fit to page" or a scale percentage in the print dialog. To keep everything inside the printer's unprintable margin, the driver shrinks the whole page by a few per cent, which is invisible on text and obvious on a grid. Set scale to 100% and turn off any shrink-to-fit option.
Is a CSS inch a real inch?
On paper, yes. CSS fixes 1in as exactly 96px and 1cm as 96/2.54px, and when printing the browser maps those absolute units to physical size. On screen it is nominal — a CSS inch on a phone is not an inch of glass — which is why a page can look one size on a monitor and print correctly.
Why is there a margin I cannot remove?
Most printers physically cannot print to the edge of the sheet; the rollers need somewhere to grip. That unprintable region is a property of the hardware, and anything placed in it is clipped or triggers the driver to scale the page down. Designing to a slightly smaller area is more reliable than fighting it.
Should I print A4 or Letter?
Whichever your paper actually is, and it matters more than it looks. A4 is taller and narrower than US Letter, so a layout built for one and printed on the other gets scaled or clipped. Choose the size in the tool as well as in the print dialog, so the layout and the sheet agree before the driver gets involved.