Cut as invidual pages, stack and wire bind.

Use this schema if you want to print several source pages on each destination page, and your booklet is to be wire-bound.

To use this schema:

  • print your imposed PDF file, two-sided;

  • cut the sheets to separate the pages (you must get one page per page);

  • stack the resulting stacks onto each other;

  • bind.


source, destination.


class pdfimpose.schema.wire.WireImpositor(last: int = 0, omargin: ~pdfimpose.schema.Margins | str | ~numbers.Real | ~decimal.Decimal = <factory>, mark: list[str] = <factory>, imargin: float = 0, signature: tuple[int] = (0, 0), back: str = '')[source]

Perform imposition of source files, with the ‘wire’ schema.


pdfimpose.schema.wire.impose(files, output, *, imargin=0, omargin=0, last=0, mark=None, signature=None, size=None)[source]

Perform imposition of source files into an output file, to be cut and “wire bound”.

  • files (list[str]) – List of source files (as strings or io.BytesIO streams). If empty, reads from standard input.

  • output (str) – List of output file.

  • omargin (float) – Output margin, in pt. Can also be a Margins object.

  • imargin (float) – Input margin, in pt.

  • last (int) – Number of last pages (of the source files) to keep at the end of the output document. If blank pages were to be added to the source files, they would be added before those last pages.

  • mark (list[str]) – List of marks to add. Only crop marks are supported (mark=[‘crop’]); everything else is silently ignored.

  • signature (tuple[int]) – Layout of source pages on output pages. For instance, (2, 3) means that each output page will contain 2 columns and 3 rows of source pages. Incompatible with option size.

  • size (str|tuple[float]) – Size of the output page. Signature is computed to fit the page. This option is incompatible with signature.