Open source implemenaton of RML (Report Markup Language) from ReportLab for Django
RML User Guide (or beginner tutorial)
Not all tags are supported, but most of them work.
Create a PDF file:
Use it as a python module:
import trml2pdf
print trml2pdf.parseString(file('file.rml','r').read())
This version 1.1 is only for Django, you can simply mark up an .rml file with the template system and then render it.
You have to define a variable called FONTS_DIR in your settings.py, pointing to the fonts location in your project ... and thats it!