Zine Imposition Engine
Reading order in, fold order out. Browser-only PDF imposition for zines and booklets.
From pages to folded sheets
Supply a cover, a back, and interior pages in reading order. The engine rearranges them into press-ready folded sheets that assemble into the booklet you designed. It supports saddle-stitch booklets, 8-page mini-zines, and multi-signature formats for thicker books.
Embed, don’t re-render
Source pages are embedded as PDF Form XObjects and positioned with transformation matrices rather than rasterized. A regression test compares raw image XObject stream bytes between source and output to catch accidental re-encoding.
- Annotations and output intents are untested; no PDF/X or CMYK fidelity is claimed.
- Fonts from separate source files are not deduplicated, so output can grow. There is deliberately no compression pass.
- Scaling changes effective print DPI even when image bytes are preserved. The default does not scale; the UI reports effective DPI when scaling is used.
- Encrypted and malformed PDFs fail with an actionable message rather than a server-side fallback.
Nothing leaves the machine
The app has no backend and makes no outbound network requests at runtime. Processing runs in a Web Worker to keep the interface responsive. A test blocks network APIs while driving a complete job, including a failure and diagnostic report generation.
Diagnostic reports are created only on request, shown before copying, and sent only to the clipboard. They include technical PDF metadata and the error, never file contents, file names, or page text.
Test the fold, then the printer
A pure TypeScript imposition core is kept separate from PDF libraries and the UI. An independent fold oracle checks that imposing and then reading the folded stack returns pages in order, for every multiple of four from 4 to 128 across all three formats and both bindings.
Printer duplex behavior cannot reliably be inferred from a PDF. The export step supplies a two-page test print, defaults to short-edge flip, and offers a toggle to rotate back sheets 180°. Test once per printer before committing to a print run.