Robinson Analytics Ltd.
Home Python Double-Byte PDFgen Doubletalk


PDFgen is a pure Python library for generating PDF documents. It lets you do just about anything with text, vector graphics and images. I hope it will be useful for

PDF is the ideal output format for print - a universal previewer is available and on most corporate desktops, along with a base set of fonts. Rather than going direct to a printer, you get an electronic document which can be previewed, archived and emailed.

Choice of Interfaces

There are two interfaces you can use to make PDF documents. Others may happen in future - for example, something that behaves like a Tkinter canvas but writes to PDF. The most important one is the PIDDLE API. PIDDLE stands for " Python Interactive Drawing, Does Little Else" it defines a standard 'Canvas' interface, with multiple back ends for drawing on various platforms. Currently these include Tkinter, Mac (Quickdraw), Postscript, PDF, OpenGL, and the Python Imaging Library. Pythonwin and wxWindows are under development. This lets you write and reuse (for example) chart code for an application window, then do your printed reports by using PDFgen.

There is also a low-level API which offers more power and performance, but is definitely not cross-platform. This is quite new and piddlePDF has been implemented on top of it - read about it here. This is available in the PIDDLE distribution in the module

Download and Setup

Users should be getting PIDDLE from the official site above. For co-developers, I place my latest patches here. The modules should be unzipped on your Python path. You can use the low level API and run the script, which produces test output. However, you need the full PIDDLE installation to use the high level API.


This release is under the Python license - fully Open Source. I believe this is the best way to get the core stable. Many planned future features will target the needs of corporates who can afford to pay, so I may offer specialized commercial add-ons, C extensions or repackaging in future.


I hope to extend this to provide all of the features needed for a serious corporate reporting system with no limits. This will take some time, and needs some commercial partners or customers. I am willing to implement new features on a commercial joint-development basis.

Features Planned

As noted, the first goal is stability. I'm also eagerly awaiting the GRAPHITE graphing package, which is based on PIDDLE and should give us a superb graphing package. Other planned features include:
Robinson Analytics Ltd., Wimbledon, London. email