Petey F uses weasyprint to generate PDFs. Their documentation is pretty good, so check it out first.
WeasyPrint takes an HTML/CSS document and converts it to a PDF. On newamerica-cms, the HTML document for a report is rendered using a standard Django template and CSS styling. The rendered HTML is passed to weasyprint.HTML and the resulting PDF is saved to the report.
And that's really all there is to it.