Metadata-Version: 2.4
Name: pdfimpose
Version: 2.9.0
Summary: Perform imposition of a PDF file.
Author-email: Louis Paternault <spalax@gresille.org>
License-Expression: AGPL-3.0-or-later
Project-URL: homepage, http://framagit.org/spalax/pdfimpose
Project-URL: documentation, http://pdfimpose.readthedocs.io
Project-URL: issues, https://framagit.org/spalax/pdfimpose/issues
Project-URL: repository, https://framagit.org/spalax/pdfimpose.git
Keywords: pdf,imposition,print
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Printing
Requires-Python: <4,>=3.10
Description-Content-Type: text/x-rst
License-File: LICENSE
Requires-Dist: argdispatch
Requires-Dist: papersize
Requires-Dist: pymupdf>=1.26.1
Requires-Dist: pyxdg
Provides-Extra: doc
Requires-Dist: mock; extra == "doc"
Requires-Dist: sphinx-argparse; extra == "doc"
Requires-Dist: sphinx>=4; extra == "doc"
Requires-Dist: sphinx-rtd-theme>=1.0.0; extra == "doc"
Provides-Extra: test
Requires-Dist: coverage; extra == "test"
Requires-Dist: wand; extra == "test"
Dynamic: license-file

pdfimpose 📕 Perform imposition of a PDF file
=============================================

*Check out my other PDF tools:* `pdfautonup <https://framagit.org/spalax/pdfautonup>`__ | `dummypdf <https://framagit.org/spalax/dummypdf>`__. *This tool can be used online at:* https://pdfimpose.it.

`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.
See the `documentation <https://pdfimpose.rtfd.io>`__ for more details.


Examples
--------

* `2026 calendar <https://framagit.org/spalax/pdfimpose/-/raw/main/doc/examples/calendar-impose.pdf?inline=false>`_ (`source <https://framagit.org/spalax/pdfimpose/-/raw/main/doc/examples/calendar.pdf?inline=false>`__, see LaTeX source file in sources repository).
* `Flash cards <https://framagit.org/spalax/pdfimpose/-/raw/main/doc/examples/cards-impose.pdf>`_ (`source <https://framagit.org/spalax/pdfimpose/-/raw/main/doc/examples/cards.pdf>`__);
* `Copy, cut, fold <https://framagit.org/spalax/pdfimpose/-/raw/main/doc/examples/copycutfold-impose.pdf>`_ (`source <https://framagit.org/spalax/pdfimpose/-/raw/main/doc/examples/copycutfold.pdf>`__);
* `Cut, stack, fold <https://framagit.org/spalax/pdfimpose/-/raw/main/doc/examples/cutstackfold-impose.pdf>`_ (`source <https://framagit.org/spalax/pdfimpose/-/raw/main/doc/examples/cutstackfold.pdf>`__);
* `One-page-zine <https://framagit.org/spalax/pdfimpose/-/raw/main/doc/examples/onepagezine-impose.pdf>`_ (`source <https://framagit.org/spalax/pdfimpose/-/raw/main/doc/examples/onepagezine.pdf>`__);
* `Hardcover binding <https://framagit.org/spalax/pdfimpose/-/raw/main/doc/examples/hardcover-impose.pdf>`_ (`source <https://framagit.org/spalax/pdfimpose/-/raw/main/doc/examples/hardcover.pdf>`__);
* `Saddle stitch <https://framagit.org/spalax/pdfimpose/-/raw/main/doc/examples/saddle-impose.pdf>`_ (`source <https://framagit.org/spalax/pdfimpose/-/raw/main/doc/examples/saddle.pdf>`__);
* `Wire binding <https://framagit.org/spalax/pdfimpose/-/raw/main/doc/examples/wire-impose.pdf>`_ (`source <https://framagit.org/spalax/pdfimpose/-/raw/main/doc/examples/wire.pdf>`__).


Installation
------------

* From the `PyPI <https://pypi.python.org/pypi/pdfimpose>`_
  * Use `pip`, for example to install::

      python -m pip install pdfimpose

* From source:
  * Download a copy of the repository from `Framagit.org <https://framagit.org/spalax/pdfimpose>`_
  * From the root of your local copy of the respository, run::

        python -m pip install .

* From Debian:
  * Install `stdeb <https://github.com/astraw/stdeb>`_::

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


Documentation
-------------

* The compiled documentation is available on `readthedocs <http://pdfimpose.readthedocs.io>`_

* To compile it from source, download and run::

      cd doc && make html


Changelog
-----------

See `changelog <https://git.framasoft.org/spalax/pdfimpose/blob/main/CHANGELOG.md>`_.
