Welcome to Pdfimpose’s documentation!

pdfimpose is a Python package that includes a library and command-line tool for PDF imposition—the process of arranging pages on a printer’s sheet to simplify booklet binding and reduce paper waste.

The package can handle any input paper size and supports seven imposition schemas: hardcover binding, saddle stitch, one page zine, etc.

Examples

Installation

  • From the PyPI * Using pip, for example, run:

    python -m pip install pdfimpose
    
  • From source: * Download the source from Framagit.org * From the root of your local copy of the source code, run:

    python -m pip install .
    
  • From Debian: * Install stdeb * Run:

    python setup.py --command-packages=stdeb.command bdist_deb
    sudo dpkg -i deb_dist/python<PYVERSION>-pdfimpose_<VERSION>_all.deb
    

Printing

  • When pdfimpose has to guess the the output paper size, it uses the A4 format. This is an (arbitrary) implementation detail, and might change in future releases.

  • When printing an imposed PDF, it shall be printed two-sided, the binding edge on the left or right.

Alternative tools

I am far from being the first person to implement such an algorithm. I am fond of everything about pre-computer-era printing (roughly, from Gutenberg to the Linotype). Being also a geek, I wondered how to compute how the pages would be arranged on the printer’s sheet, and this project is the result.

Some (free) alternatives are

pdfimpose sets itself apart from these other tools because it can handle any input or output paper size and seven imposition schemas: hardcover binding, saddle stitch, one page zine, etc.

Warning

Warning

The package documentation might be unclear in places because - I am not a printing expert (I am not even sure I deserve to be called a printing hobbyist). - English is not my first language. - The few things I inaccurately know about printing, I know in my first language only.

If you have time to spare, I would really appreciate some proofreading.

Contents

Indices and tables