Skip to main content

pp.server - Produce & Publish Server

Project description

pp.server is a Pyramid based server implementation and implements the server side functionality of the Produce & Publish platform. It is known as the Produce & Publish Server.

The Produce & Publish Server provided web service APIs for converting HTML/XML + assets to PDF using one of the following external PDF converters:

  • PrinceXML (www.princexml.com)

  • PDFreactor (www.realobjects.com)

In addition the Produce & Publish server provides a simple conversion API for converting format A to B (as supported through LibreOffice or OpenOffice). The conversion is build on top of unoconv`.

The web service provides both synchronous and asynchronous operations.

Requirements

  • 2.7 (no Python 3 support, no support for older Python versions)

Installation

  • create an virtualenv environment (Python 2.7) - either within your current (empty) directory or by letting virtualenv create one for you. (easy_install virtualenv if virtualenv is not available on your system):

    virtualenv --no-site-packages .

    or:

    virtualenv --no-site-packages pp.server
  • install the Produce & Publish server:

    bin/easy_install pp.server
  • create a server.ini configuration file (and change it according to your needs):

    [DEFAULT]
    debug = true
    
    [app:main]
    use = egg:pp.server
    reload_templates = true
    debug_authorization = false
    debug_notfound = false
    
    [server:main]
    use = egg:waitress#main
    host = 127.0.0.1
    port = 6543
  • start the server (in foreground):

    bin/pserve server.ini
  • or start it in background:

    bin/pserve server.ini  --daemon

API documentation

All API methods are available through XMLRPC through the following API URL endpoint:

http://host:port/api

With the default server configuration this translates to:

http://localhost:6543/api

PDF conversion API

Remember that all converters use HTML or XML as input for the conversion. All input data (HTML/XML, images, stylesheets, fonts etc.) must be stored in ZIP archive. The filename of the content must be named index.html.

The web service API for the PDF generation is defined as follows:

pdf(zip_data, converter, async)

Parameters:

  • zip_data - the zip archive with the contents encoded as BINARY XML-RPC type

  • converter - a string that determines the the PDF converter to be used (either princexml or pdfreactor)

  • async - asynchronous or synchronous convertsion (default: False)

Returns:

The API returns an array with the following key-value pairs:

  • status - either OK or ERROR

  • data- the generated PDF file encoded as XML-RPC BINARY type

  • compression - the compression method used for compressing the data byte stream (default: zlib)

  • output - the conversion transcript (output of the converter run)

Source code

https://bitbucket.org/ajung/pp.server

Bug tracker

https://bitbucket.org/ajung/pp.server/issues?

Support

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

License

pp.server is published under the GNU Public License V2 (GPL 2).

Contact

ZOPYX Limited
Hundskapfklinge 33
D-72074 Tuebingen, Germany
www.zopyx.com

0.1.9 (01.07.2013)

  • monkeypatch pyramid_xmlrpc.parse_xmlrpc_request in order to by-pass its stupid DOS request body check

0.1.7 (29.06.2013)

  • more tests

  • fixes

  • updated documentation

0.1.5 (27.06.2013)

  • test for synchronous operations

  • fixes

0.1.0 (24.06.2013)

  • initial release

Project details


Release history Release notifications | RSS feed

This version

0.1.9

Download files

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

Source Distribution

pp.server-0.1.9.tar.gz (9.6 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