Skip to main content

Produce & Publish Python Client

Project description


Produce & Publish bindings for Python.

The pp.client-python bindings can be used to communicate with the Produce & Publish server pp.server for generating PDF from Python applications .


  • Python 3.7 or higher

Source code

Bug tracker



pdf API

The pdf API supports the conversion of HTML/XML to PDF through the following PDFconverters:

  • PDFreactor

  • PrinceXML

  • Speedata Publisher

  • Vivliostyle Formatter

  • PagedJS


  • Weasyprint

  • Antennahouse

The PDF conversion process is based on the “CSS Paged Media” approach where the input documents (XML or HTML) are styled using CSS only.

The pdf API of pp.client-python expects that the input file and all related assets (images, stylesheets, font files etc.) are placed within a working directory. The input file must be named index.html.

Using the commandline frontend:

$ ../bin/pp-pdf  --help
usage: pp-pdf [-h] [-f princexml] [-o] [-a] [-s http://localhost:6543]
              [-t None] [-c] [-v]
              source_directory [cmd_options]

positional arguments:
  source_directory      Source directory containing content and assets to be
  cmd_options           []

optional arguments:
  -h, --help            show this help message and exit
  -f prince, --converter prince
                        PDF converter to be used (prince, pdfreactor, publisher)
  -o , --output         Write result ZIP to given .zip filename
  -s http://localhost:6543, --server-url http://localhost:6543
                        URL of Produce & Publish server)
  -t None, --authorization-token None
                        Authorization token for P&P server
  -v, --verbose         Verbose mode

The same functionality is available to any Python application through the pdf() API of the pp.client-python module:

from pp.client.python.pdf import pdf

def pdf(source_directory,


Support for Produce & Publish Server and components is currently only available on a project basis.


pp.client-python is published under the GNU Public License V2 (GPL 2).


Andreas Jung/ZOPYX
Hundskapfklinge 33
D-72074 Tuebingen, Germany


3.0.1 (2023-02-07)

  • modernized codebase

  • no feature changes

3.0.0 (2020-02-14)

  • adopted to new pp.server 3.x server API

  • code cleanup

  • better logging implementation

0.5.1 (2019-08-02)

  • fixed Python 3 deprecation warning

0.5.0 (2018-07-14)

  • compatibility with pp.server 2.0

  • removed async support

0.4.5 (2017-08-08)

  • disabled option to by-pass SSL cert checks

0.4.4 (2015-11-14)

  • support for Vivliostyle Formatter

0.4.2 (2015-02-02)

  • support for /api/available-converters (requires pp.server>=0.6.1)

0.4.1 (2014-11-19)

  • experimental support for Speedata Publisher

0.4.0 (2014-10-13)

  • compatiblity with Python 3.3 and 3.4

  • dropped Python 2.6 support

0.3.6 (24-01-2014)

  • added option ‘-c’ to most commandline script in order for explicit SSL cert validation

0.3.5 (24-01-2014)

  • disabled SSL cert validation since Python/requests module can not deal properly with the StartCOM SSL cert of

0.3.4 (21-01-2014)

  • updated unoconv API documentation

0.3.3 (13-01-2014)

  • support for server side token-based authorization

0.3.2 (13-01-2014)

  • import fix

0.3.1 (21-10-2013)

0.3.0 (17-10-2013)

  • Python 3.3 compatibility

0.2.9 (06-10-2013)

  • added API methods for version and converters API of pp.server webservice

0.2.8 (05-10-2013)

  • added support for cmd_options parameter for pp.server==0.3.5

0.2.7 (03-10-2013)

  • documentation update

0.2.6 (14-07-2013)

  • better error handling

  • fixed issues with format() calls under Python 2.6

0.2.0 (06-07-2013)

  • minor fixes

  • moved documentation to Sphinx

0.1.5 (04-07-2013)

  • implemented poll support

  • fixes

0.1.4 (04-07-2013)

  • added async support to pp-pdf commandline frontend

0.1.3 (03-07-2013)

  • pdf converter parameter not properly propagated

0.1.2 (03-07-2013)

  • logger fixes/changes

0.1.0 (03-07-2013)

  • initial release

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pp.client-python-3.0.1.tar.gz (8.5 kB view hashes)

Uploaded source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page