Zero-Waste Zine Imposition Engine
Plica (Latin for fold) is a surgical-grade utility designed to eliminate the "technical tax" of self-publishing. It transforms standard portrait-oriented PDFs into print-ready landscape booklets using precise signature imposition logic.
Unlike commercial "booklet" print settings that over-scale and waste margins, Plica maximizes every millimeter of your paper while maintaining your original aspect ratio.
- Zero-Waste: Maximizes printable area (>95% efficiency).
- Sovereignty: 100% client-side. Your data never leaves your browser.
- Precision: Faithful trim marks and optional fold guidelines.
- Accessibility: Industrial Brutalist UI designed for high contrast and utility.
- Signature Mapping: Automatic reordering for saddle-stitched (stapled) booklets.
- Smart Padding: Injects blank pages to ensure a multiple-of-4 page count.
- Aspect-Ratio Locking: Prevents distortion by maximizing size within boundaries.
- Duplex-Ready: Back pages are rotated 180 degrees for short-edge duplex printing.
- Trim Marks: Optional crop marks on the cover sheet with fold-line alignment guides.
- Format Support: US Letter and A4 landscape output.
- Runtime: Standalone HTML — no build step, no server, no installation.
- Engine: pdf-lib v1.17.1 (client-side PDF manipulation)
- UI: React v18.3.1 + Tailwind CSS v3.4.17 (via Babel standalone v7.26.10)
- Dependencies: All bundled locally in
lib/— works fully offline.
Open plica.html in any modern browser. No server or build step required.
- Upload a portrait-oriented PDF.
- Choose your output format (US Letter or A4).
- Toggle trim marks and fold line as needed.
- Click Execute Plica — the booklet is downloaded and previewed.
Plica also ships as a Node.js script for scripting and batch use. It shares the same imposition engine (lib/plica-core.js) as the browser app.
./plica zine.pdf # default: LETTER, no marks
./plica zine.pdf -s A4 --fold-line --trim-marks # A4 with guides
./plica zine.pdf --from 3 --to 18 -o booklet.pdf # page range + custom output
./plica --help # full optionsRequirements: Node.js (any recent version). No npm install needed — lib/pdf-lib.min.js is bundled.
Install globally (optional) by symlinking the wrapper into your PATH:
ln -s "$(pwd)/plica" /usr/local/bin/plica
plica zine.pdf # now usable from anywhereThe bash wrapper resolves symlinks correctly, so it can live anywhere on your PATH.
To achieve the intended result, follow these physical printing instructions:
- Scale: Set your printer to Actual Size or 100% Scale. Do not "Fit to Page."
- Duplex: Enable double-sided printing.
- Orientation: Select Flip on Short Edge (sometimes called "Head-to-Head").
- Finish: Stack the sheets in the order they were printed, fold the stack in half, and staple along the spine.
Plica is designed with a decolonial lens on data sovereignty. There is no "Cloud." There are no accounts. The tool is a standalone utility that respects the rhythm of the creator's intent and the privacy of their content.
"The fold is the smallest unit of agency."
This project is licensed under the GNU General Public License v3.0.