What are good Python-based options to create strictly designed .pdf reports from .html?
I've attached a draft .pdf to illustrate the following points:
It looks as if there was already a good amount of very diverse packages facilitating reporting. Just to name a few, there are xhtml2pdf, weasyprint, django-wkhtmltopdf.
In my experience, it’s easy with these tools to create a .pdf from your content. The hard part comes when the .pdf needs to fall into a highly-defined design structure as in our case. Unfortunately, I was not able to find example .pdfs for the different pdf generation packages that have a highly designed structure.
What is your experience with this? Which options worked well for you? Are there well done complex examples that I’ve overlooked?
Create PDFs with Python Library – PDFKit You can run the command in the console to generate PDFs. To use the command-line in Python, JazzCore developed PDFKit – a wrapper for wkhtmltopdf utility. Once wkhtmltopdf and PDFKit are installed, the next step is to create a Python file to generate a PDF from a URL.
Creating PDF Reports with Plotly Graphs and Python. Since Plotly graphs can be embedded in HTML or exported as a static image, you can embed Plotly graphs in reports suited for print and for the web. This notebook is a primer on creating PDF reports with Python from HTML with Plotly graphs.
You can see this Python package: weasyprint
Web page: http://weasyprint.org/
Official doc: http://weasyprint.readthedocs.io/en/latest/
It's great, because you can generate the PDF from a web page or an html file, you can have conflicts with some CSS (which are specified in the documentation), but it provides what you need
I recently used weasyprint and jinja to do automated report generation from html. It worked well and I believe would be capable of meeting your strict format requirements. I haven't used any of the others though.
My report had images, including graphs converted to images, normal dynamically generated text, as well as large tables. All of this was constrained to an 9x11 page size. Weasyprint does a good job of pagination automatically, but also has configurability in that regard.
I found this guide to be very useful: http://pbpython.com/pdf-reports.html
Although I think pandas is total overkill for html generation of graphs and you lose a lot of configurability using it.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With