Make a thumbnail contact sheet of a PDF
A contact sheet condenses a whole document into a grid of small numbered page previews — the PDF equivalent of the photographic contact prints darkrooms once made from film strips. This page renders every page of your PDF as a thumbnail and lays the thumbnails out on numbered A4 grid sheets, 3, 4, or 5 per row, producing a new overview PDF you can print or share. Everything happens in your browser; the document is never uploaded.
How it works
The tool renders each page of your PDF with pdf.js, the open-source engine Firefox uses to display PDFs. Every page is drawn onto an off-screen canvas at a scale chosen for its final thumbnail size — there is no point rasterizing at full print resolution when the result will be 40 mm wide — which keeps memory use modest even for long documents. Rendering rather than embedding is what makes the sheet faithful: fonts, vector graphics, and images all appear exactly as a viewer would show them.
Each rendered canvas is encoded as a compact JPEG and handed to pdf-lib, which builds the output document on fresh A4 pages (595 × 842 points). The grid is computed from your per-row choice: the usable width inside the margins is divided into 3, 4, or 5 columns with fixed gutters, each thumbnail is scaled to fit its cell while preserving the source page's aspect ratio, and rows are stacked until the next row would overflow the bottom margin, at which point a new sheet begins. Mixed orientations are handled per thumbnail — a landscape page simply becomes a wider, shorter preview inside the same cell.
Beneath every thumbnail the tool draws its source page number, and each output sheet is itself numbered, so a long document produces an ordered, citable set: "sheet 3, thumbnail 47" always identifies the same page. Because the previews are images, the contact sheet is purely visual — it is a map of the document, not a compressed copy of it, and its file size depends on thumbnail count and detail rather than on the size of the original.
Worked example: overviewing a 96-page thesis
A supervisor wants a quick structural view of a 96-page, 12.6 MB thesis before a review meeting. At 4 thumbnails per row, portrait A4 pages yield a 4 × 5 grid — 20 thumbnails per sheet — so the whole thesis fits on ⌈96 / 20⌉ = 5 contact sheets. Rendering and layout take about 20 seconds in the browser, and the output PDF is 2.1 MB: five A4 pages of JPEG thumbnails, each preview roughly 44 mm wide with its page number underneath.
Printed, the five sheets make chapter boundaries, figure-heavy sections, and two accidentally blank pages (pages 38 and 71) visible at a glance — something scrolling a 96-page file hides. Re-running the same thesis at 5 per row packs 30 thumbnails per sheet and needs only 4 sheets; at 3 per row the thumbnails grow to about 60 mm and section headings become legible, at the cost of 8 sheets.
Frequently asked questions
What is a PDF contact sheet?
It is a grid of small numbered previews of every page in a document, named after the photographic contact sheets darkrooms printed from film strips. One A4 sheet shows dozens of pages at once, so you can find, count, or discuss pages without scrolling the full document.
How many pages fit on one A4 contact sheet?
With portrait pages, roughly 12 thumbnails at 3 per row, 20 at 4 per row, and 30 at 5 per row, so a 100-page document needs about nine, five, or four sheets respectively. Landscape source pages are shorter, so more rows fit per sheet.
Are the thumbnails numbered with the original page numbers?
Yes — every thumbnail carries its page number from the source PDF beneath it. That makes the sheet usable as an index: circle thumbnail 47 in a review meeting and everyone knows exactly which page you mean.
Which grid size should I choose — 3, 4, or 5 per row?
Choose 3 per row when you need to read headings and layout details in the thumbnails, and 5 per row when you mainly need an overview of many pages on few sheets. 4 per row is the balanced default for typical text documents.
Can I still read the text in the thumbnails?
Headings and large elements are usually recognizable, but body text at thumbnail scale is too small to read and is not selectable, since each preview is a rendered image. The sheet is meant for navigation and overview, not for reading content.
Does building a contact sheet upload my PDF?
No — the pages are rendered to thumbnails and assembled into the output PDF by JavaScript running in your browser. The document never leaves your device.