Print a page (a map, a plan, a chart) bigger than your paper, on several sheets that you tape together. Split the page into tiles with a small script for
sumatrapdf-tool run, then print the tiles from SumatraPDF, scaled to fill the paper.Available in pre-release 3.7
Split with
sumatrapdf-tool run poster.js plan.pdf tiles.pdf 2 2, then print tiles.pdf with Fit pages to printable area. At a glance:- Split into tiles:
poster.jswith the number of columns and rows. - Overlap for gluing: an optional fifth argument, in points.
- Print:
Ctrl + P, Advanced tab, Fit pages to printable area; orSumatraPDF.exe -print-to-default -print-settings "fit" tiles.pdf.
sumatrapdf-tool is installed with SumatraPDF and added to PATH. SumatraPDF.exe Note: the poster tool is meant for this, but in the current pre-release it stops with
format error: malformed page tree. The script below does the same job.Split the page into tiles #
Save this as
poster.js:// sumatrapdf-tool run poster.js in.pdf out.pdf columns rows [overlap]
var src = Document.openDocument(scriptArgs[0]);
var out = new PDFDocument();
var cols = Number(scriptArgs[2]), rows = Number(scriptArgs[3]);
var overlap = Number(scriptArgs[4] || 0); // in points (1/72 inch)
for (var i = 0; i < src.countPages(); i++) {
for (var y = 0; y < rows; y++) {
for (var x = 0; x < cols; x++) {
out.graftPage(-1, src, i);
var page = out.loadPage(out.countPages() - 1);
var b = page.getBounds(); // visible page: [0, 0, width, height]
var w = b[2] / cols, h = b[3] / rows;
page.setPageBox("CropBox", [
Math.max(0, x * w - overlap), Math.max(0, y * h - overlap),
Math.min(b[2], (x + 1) * w + overlap), Math.min(b[3], (y + 1) * h + overlap)]);
}
}
}
out.save(scriptArgs[1]);
Split every page of
plan.pdf into 2 columns and 2 rows:sumatrapdf-tool run poster.js plan.pdf tiles.pdf 2 2
- Each page becomes
columns × rowspages, starting at the top-left tile and going row by row, left to right. - Tiles are cut from the visible page, so a cropped page is split without its margins.
- Every page of the PDF is split. For just one page, take it out first:
sumatrapdf-tool merge -o page.pdf plan.pdf 3.
To add an overlap, give it in points (72 points = 1 inch, 28.35 points = 1 cm):
sumatrapdf-tool run poster.js plan.pdf tiles.pdf 2 2 20
Each tile then reaches 20 points past every cut, so neighboring tiles share a 40-point strip that you can glue over.
How big the poster gets #
Each tile is printed to fill a sheet, so the poster is
columns sheets wide and rows sheets tall:- An A4 page split 2 × 2 and printed on A4 paper comes out about A2 size, on 4 sheets.
- 3 × 3 gives 9 sheets, three times the width and height.
Tiles of an A4 or Letter page split 2 × 2 have the same shape as the page, so they fill the paper. SumatraPDF turns a wide tile sideways to fit the paper.
Print the tiles #
- Open
tiles.pdfin SumatraPDF. - Press
Ctrl + P. - On the Advanced tab, under Page scaling, choose Fit pages to printable area. In the Windows 11 print dialog this is under More settings → Page scaling.
- Print.
From the command line:
SumatraPDF.exe -print-to-default -print-settings "fit" tiles.pdf
Use
-print-to "<printer name>" for another printer. See Printing for all options.Tips #
- Print one tile first (e.g. Pages
1in the print dialog) to check the size before printing them all. - Printers can’t print to the edge of the paper: cut the white border off one side of each sheet, or use an overlap and glue the sheets over each other.
- Write the tile number on the back of each sheet as it comes out; tiles go row by row from the top-left.
- Use
sumatrapdf-tool pages tiles.pdfto see the area each tile covers (its CropBox).
See also #
- Printing — print dialog, page scaling, command-line printing
- Crop PDF page margins — cut off white margins before splitting
- Split a PDF — split into files, not tiles
- sumatrapdf-tool run, poster
- All cmd-line tools