Printable square, dot, isometric, ruled and coordinate paper as crisp SVG sized in real millimetres, runs entirely in your browser
- Runs locally
- Category Generator
- Best for Starting from a blank page without committing to the first result.
<svg xmlns="http://www.w3.org/2000/svg" width="210mm" height="297mm" viewBox="0 0 210 297"><rect width="210" height="297" fill="#ffffff"/><g stroke="#2b6cb0"><line x1="0" y1="0" x2="0" y2="297" stroke-width="0.2"/><line x1="5" y1="0" x2="5" y2="297" stroke-width="0.2"/><line x1="10" y1="0" x2="10" y2="297" stroke-width="0.2"/><line x1="15" y1="0" x2="15" y2="297" stroke-width="0.2"/><line x1="20" y1="0" x2="20" y2="297" stroke-width="0.2"/><line x1="25" y1="0" x2="25" y2="297" stroke-width="0.2"/><line x1="30" y1="0" x2="30" y2="297" stroke-width="0.2"/><line x1="35" y1="0" x2="35" y2="297" stroke-width="0.2"/><line x1="40" y1="0" x2="40" y2="297" stroke-width="0.2"/><line x1="45" y1="0" x2="45" y2="297" stroke-width="0.2"/><line x1="50" y1="0" x2="50" y2="297" stroke-width="0.2"/><line x1="55" y1="0" x2="55" y2="297" stroke-width="0.2"/><line x1="60" y1="0" x2="60" y2="297" stroke-width="0.2"/><line x1="65" y1="0" x2="65" y2="297" stroke-width="0.2"/><line x1="70" y1="0" x2="70" y2="297" stroke-width="0.2"/><line x1="75" y1="0" x2="75" y2="297" stroke-width="0.2"/><line x1="80" y1="0" x2="80" y2="297" stroke-width="0.2"/><line x1="85" y1="0" x2="85" y2="297" stroke-width="0.2"/><line x1="90" y1="0" x2="90" y2="297" stroke-width="0.2"/><line x1="95" y1="0" x2="95" y2="297" stroke-width="0.2"/><line x1="100" y1="0" x2="100" y2="297" stroke-width="0.2"/><line x1="105" y1="0" x2="105" y2="297" stroke-width="0.2"/><line x1="110" y1="0" x2="110" y2="297" stroke-width="0.2"/><line x1="115" y1="0" x2="115" y2="297" stroke-width="0.2"/><line x1="120" y1="0" x2="120" y2="297" stroke-width="0.2"/><line x1="125" y1="0" x2="125" y2="297" stroke-width="0.2"/><line x1="130" y1="0" x2="130" y2="297" stroke-width="0.2"/><line x1="135" y1="0" x2="135" y2="297" stroke-width="0.2"/><line x1="140" y1="0" x2="140" y2="297" stroke-width="0.2"/><line x1="145" y1="0" x2="145" y2="297" stroke-width="0.2"/><line x1="150" y1="0" x2="150" y2="297" stroke-width="0.2"/><line x1="155" y1="0" x2="155" y2="297" stroke-width="0.2"/><line x1="160" y1="0" x2="160" y2="297" stroke-width="0.2"/><line x1="165" y1="0" x2="165" y2="297" stroke-width="0.2"/><line x1="170" y1="0" x2="170" y2="297" stroke-width="0.2"/><line x1="175" y1="0" x2="175" y2="297" stroke-width="0.2"/><line x1="180" y1="0" x2="180" y2="297" stroke-width="0.2"/><line x1="185" y1="0" x2="185" y2="297" stroke-width="0.2"/><line x1="190" y1="0" x2="190" y2="297" stroke-width="0.2"/><line x1="195" y1="0" x2="195" y2="297" stroke-width="0.2"/><line x1="200" y1="0" x2="200" y2="297" stroke-width="0.2"/><line x1="205" y1="0" x2="205" y2="297" stroke-width="0.2"/><line x1="210" y1="0" x2="210" y2="297" stroke-width="0.2"/><line x1="0" y1="0" x2="210" y2="0" stroke-width="0.2"/><line x1="0" y1="5" x2="210" y2="5" stroke-width="0.2"/><line x1="0" y1="10" x2="210" y2="10" stroke-width="0.2"/><line x1="0" y1="15" x2="210" y2="15" stroke-width="0.2"/><line x1="0" y1="20" x2="210" y2="20" stroke-width="0.2"/><line x1="0" y1="25" x2="210" y2="25" stroke-width="0.2"/><line x1="0" y1="30" x2="210" y2="30" stroke-width="0.2"/><line x1="0" y1="35" x2="210" y2="35" stroke-width="0.2"/><line x1="0" y1="40" x2="210" y2="40" stroke-width="0.2"/><line x1="0" y1="45" x2="210" y2="45" stroke-width="0.2"/><line x1="0" y1="50" x2="210" y2="50" stroke-width="0.2"/><line x1="0" y1="55" x2="210" y2="55" stroke-width="0.2"/><line x1="0" y1="60" x2="210" y2="60" stroke-width="0.2"/><line x1="0" y1="65" x2="210" y2="65" stroke-width="0.2"/><line x1="0" y1="70" x2="210" y2="70" stroke-width="0.2"/><line x1="0" y1="75" x2="210" y2="75" stroke-width="0.2"/><line x1="0" y1="80" x2="210" y2="80" stroke-width="0.2"/><line x1="0" y1="85" x2="210" y2="85" stroke-width="0.2"/><line x1="0" y1="90" x2="210" y2="90" stroke-width="0.2"/><line x1="0" y1="95" x2="210" y2="95" stroke-width="0.2"/><line x1="0" y1="100" x2="210" y2="100" stroke-width="0.2"/><line x1="0" y1="105" x2="210" y2="105" stroke-width="0.2"/><line x1="0" y1="110" x2="210" y2="110" stroke-width="0.2"/><line x1="0" y1="115" x2="210" y2="115" stroke-width="0.2"/><line x1="0" y1="120" x2="210" y2="120" stroke-width="0.2"/><line x1="0" y1="125" x2="210" y2="125" stroke-width="0.2"/><line x1="0" y1="130" x2="210" y2="130" stroke-width="0.2"/><line x1="0" y1="135" x2="210" y2="135" stroke-width="0.2"/><line x1="0" y1="140" x2="210" y2="140" stroke-width="0.2"/><line x1="0" y1="145" x2="210" y2="145" stroke-width="0.2"/><line x1="0" y1="150" x2="210" y2="150" stroke-width="0.2"/><line x1="0" y1="155" x2="210" y2="155" stroke-width="0.2"/><line x1="0" y1="160" x2="210" y2="160" stroke-width="0.2"/><line x1="0" y1="165" x2="210" y2="165" stroke-width="0.2"/><line x1="0" y1="170" x2="210" y2="170" stroke-width="0.2"/><line x1="0" y1="175" x2="210" y2="175" stroke-width="0.2"/><line x1="0" y1="180" x2="210" y2="180" stroke-width="0.2"/><line x1="0" y1="185" x2="210" y2="185" stroke-width="0.2"/><line x1="0" y1="190" x2="210" y2="190" stroke-width="0.2"/><line x1="0" y1="195" x2="210" y2="195" stroke-width="0.2"/><line x1="0" y1="200" x2="210" y2="200" stroke-width="0.2"/><line x1="0" y1="205" x2="210" y2="205" stroke-width="0.2"/><line x1="0" y1="210" x2="210" y2="210" stroke-width="0.2"/><line x1="0" y1="215" x2="210" y2="215" stroke-width="0.2"/><line x1="0" y1="220" x2="210" y2="220" stroke-width="0.2"/><line x1="0" y1="225" x2="210" y2="225" stroke-width="0.2"/><line x1="0" y1="230" x2="210" y2="230" stroke-width="0.2"/><line x1="0" y1="235" x2="210" y2="235" stroke-width="0.2"/><line x1="0" y1="240" x2="210" y2="240" stroke-width="0.2"/><line x1="0" y1="245" x2="210" y2="245" stroke-width="0.2"/><line x1="0" y1="250" x2="210" y2="250" stroke-width="0.2"/><line x1="0" y1="255" x2="210" y2="255" stroke-width="0.2"/><line x1="0" y1="260" x2="210" y2="260" stroke-width="0.2"/><line x1="0" y1="265" x2="210" y2="265" stroke-width="0.2"/><line x1="0" y1="270" x2="210" y2="270" stroke-width="0.2"/><line x1="0" y1="275" x2="210" y2="275" stroke-width="0.2"/><line x1="0" y1="280" x2="210" y2="280" stroke-width="0.2"/><line x1="0" y1="285" x2="210" y2="285" stroke-width="0.2"/><line x1="0" y1="290" x2="210" y2="290" stroke-width="0.2"/><line x1="0" y1="295" x2="210" y2="295" stroke-width="0.2"/></g></svg>
What this tool does
Make your own printable graph paper without hunting for a fixed PDF that never matches the cell size you actually want. Pick a grid style, set the cell size in millimetres, choose A4, A3, A5, Letter, Legal or a custom sheet, recolor the lines, set the line weight, and bold every Nth line for a coordinate grid. The output is a single SVG, so the grid stays perfectly sharp at any zoom and prints true to size: a 5mm cell comes out of the printer at exactly 5mm because the file is measured in real millimetres, not pixels. Five grid types cover the common needs. Square grid for general math and plotting. Dot grid for bullet journals and clean sketching where full lines feel heavy. Isometric for 3D objects, pipework and pixel art at a true 30 degree angle. Ruled lines for handwriting practice. Coordinate paper with a heavier major line every few cells so axes read at a glance. Copy the SVG source, download a standalone .svg file, or tweak and reprint in seconds. Everything happens locally in the page with no upload, no account and no watermark, so a teacher can print a class set and an engineer can drop the file straight into a CAD or vector tool.
Tool details
- Input
- Files + Numbers
- The page exposes text boxes, numeric controls, file pickers, or structured inputs depending on the tool.
- Output
- Live result + Copy + Download
- The result area focuses on usable output, with copy, download, or preview actions when supported.
- Privacy
- Browser-side processing
- The main tool logic does not call an external API, so inputs normally stay in the current tab.
- Save / share
- Shareable URL state
- Key settings are encoded in the URL so another person can reopen the same setup.
- Performance budget
- Initial JS <= 12 KB
- No WASM budget is declared, keeping the tool quick to open on mobile.
- Best fit
- Generator · Student
- Category and role tags drive related tools, internal links, and quick fit checks.
How to use
-
1. Input
Paste or drop your content into the tool panel.
-
2. Process
Click the button. All processing is local in your browser.
-
3. Copy / Download
Copy the result or download to disk in one click.
How Graph Paper Generator fits into your work
Use it to get a strong first draft, starter asset, or structured output that you can edit before publishing.
Generation jobs
- Starting from a blank page without committing to the first result.
- Creating repeatable drafts, names, templates, or placeholder assets.
- Exploring options before choosing the one that fits the job.
Generation checks
- Review generated output before it reaches a customer, page, or document.
- Change defaults when you need a specific brand voice, format, or audience.
- Keep only the parts that match the real task.
Good next steps
These links move the current task into a more complete workflow.
- 1 SVG Wave Generator Generate smooth SVG wave dividers for landing pages — adjustable waves, amplitude, layers, seed — flip top/bottom — export SVG / CSS — browser-only Open
- 2 CSS Pattern Generator Pure-CSS geometric backgrounds — dots, grid, stripes, checkerboard, diagonal, cross — live preview, one-click copy, zero images Open
- 3 Placeholder Image Generator Generate placeholder images instantly — size, color, text, PNG/JPG/WebP. Open
Real-world use cases
Print a class set of math worksheets
A teacher needs squared paper for a graphing lesson but the school printer only has plain A4. Set a 5mm square grid on A4, pick a light grey line so pencil marks stand out, and print 30 copies. Because the file is sized in millimetres the squares are identical on every sheet, and a faint grey grid photocopies cleanly without the dark boxes that ready made paper often leaves behind.
Sketch a product idea on isometric paper
An industrial designer wants to rough out an enclosure before opening CAD. Switch to isometric at 5mm, print a sheet, and draw the box in true 30 degree projection so the proportions stay honest. One triangle edge equals one unit, so a 60 by 40 by 25mm housing is easy to count out by hand, and the lines never taper toward a false vanishing point.
Start a bullet journal with a custom dot grid
Store bought dot grid notebooks lock you into one spacing. Choose the dot grid, set 5mm, recolor the dots to a soft grey, and print onto your own paper stock. You get the journaling structure you like without the heavy lines of squared paper, and you can reprint a fresh page the moment you run out instead of buying a whole new notebook.
Plot a function for a homework problem
A student needs coordinate paper to plot y equals 2x plus 1. Pick the coordinate type, bold every 5th line, set 5mm cells, and print. The heavy major lines act as the labelled axes and the thin lines are the subdivisions, so reading off a point like 3 comma 7 is fast and the plot looks clean enough to hand in.
Drop a grid into a vector design file
A designer building a poster wants a precise background grid in Figma or Illustrator. Generate a square grid at the exact spacing, copy the SVG source, and paste it straight in as an editable vector layer. Recolor it, change the line weight, or scale it without any blur, because it is real geometry rather than a flattened image.
Common pitfalls
Printing with fit to page enabled. That lets the printer rescale the sheet so a 5mm cell no longer measures 5mm. Always choose actual size or 100 percent scale in the print dialog so the millimetre sizing is preserved on paper.
Setting the line width too heavy for fine cells. At 2 to 3mm spacing a 0.5mm line eats most of the square and the grid looks like a solid block. Keep the line around 0.1 to 0.2mm for small cells so the squares stay open and writeable.
Expecting the coordinate major lines to show on a plain square grid. The bold every N cells setting only applies to the coordinate type. If you want labelled heavy axes, switch the grid type to coordinate first, otherwise every line prints at the same thin weight.
Privacy
The whole tool runs in your browser tab. The grid is drawn by JavaScript and the SVG is built in memory, so nothing about your paper, colours or dimensions is ever uploaded to a server and there is no account, no tracking of what you generate and no watermark on the output. The one thing that does travel is the share link: your settings are encoded in the URL query string, so if you paste a share link into a chat the recipient server logs those settings. For a plain print there is no link to share and nothing leaves the page at all.
FAQ
Tool combos
Folks in your role tend to reach for these alongside this tool.
- Add Days to Date Calculator Add or subtract days, weeks, months, and years from any date — plus a business-day mode that skips weekends. Runs entirely in your browser.
- Affine Cipher Encoder & Decoder Encrypt and decrypt the ax+b affine cipher with live modular-inverse check, browser-only
- Age Calculator Calculate your exact age — years, months, days, hours. Compare two dates or count to a future date.
- Anagram Solver Check if two words are anagrams, rearrange a set of letters into every ordering, and read the sorted letter fingerprint, all in your browser