Open source implementation of RML (Report Markup Language) from ReportLab
RML User Guide (or beginner tutorial)
Not all tags are supported, but most of them work.
pip install trml2pdf
Create a PDF file:
import trml2pdf
print trml2pdf.parseString(file('file.rml','r').read())
If you are using this for Django you can dynamically create an .rml file with the template system and then render it.
from django.template.loader import get_template
from django.template.context import Context
data = {'key1': 'foo'}
template = get_template('template.rml')
context = Context(data)
xmlstring = template.render(context)
pdfstr = trml2pdf.parseString(xmlstring)
I no longer use this library in my own projects, so there is no interest in adding new feature or improving things. If you are intersted in taking it over or being actively involved, please let me know