PythonReports is a toolkit aimed to build database reports in Python® programs. The toolkit includes report template designer, report builder and several printout renderers for GUI and graphic file output.
Report builder applies a template to a sequence of uniform data objects and produces a printout structure that can be saved in a file and/or rendered by one of the front-end drivers to screen, printer, HTML [*], PDF etc.
[*] | HTML output is not implemented yet. |
PythonReports require Python version 2.5 [†] to 2.7.
[†] | Later versions have been tested only with Python 2.7. Compatibility with Python 2.5 and 2.6 may be unintentionally broken. Please file an issue if you encounter errors. |
PDF output requires the ReportLab Toolkit. Reports containing images additionally require Python Imaging Library: Pillow (preferred) or PIL.
wx-based preview and printing require wxPython.
Warning: The wx front-end has never been checked with wxPython Phoenix, and has known issues with print preview on earlier wxPython versions.
Tk-based report preview requires Tkinter (part of the Python Standard Library). Reports containing images additionally require Python Imaging Library or wxPython.
Report building can utilize any of the above options. In other words, if your system is able to display or print a report then it should be able to build a report too.
Templates in RSON format (introduced in v0.7.0) require rsonlite.
QR barcodes (introduced in v0.8.0) require qrcode.
Report template designer requires Tkinter with Tix support (standard Python installer for Windows includes Tix; on some platforms Tix must be installed separately).
WYSIWIG template editor requires wxPython. For wxPython versions prior to 2.9 wxPropertyGrid must be installed as a separate module [‡].
[‡] | Note: the first Windows installer on the wxPropertyGrid download page installs source code only; scroll down for binaries. |
No documentation yet. Please look at the test script for report building example. All printout rendering modules (pdf, Tk and wxPrint) have command line interface that can serve as their API usage example.