I've got a couple of similar projects at the moment that use Python on the back end and require a PDF to be spat out at some point.
In both cases it's fairly easy to get the data I need and throw it into an HTML template, which renders a nicely printable PDF from Chrome when I ask it to. That's not what I need, though. I need a simple, reliable way of generating a PDF server-side that doesn't rely on the end-user's system being set up half-sensibly.
I came across WeasyPrint as something that's pre-installed on PythonAnywhere, which is where both these projects will be deployed. Gave it a quick try, and it looks like it's going to work marvellously for these projects. ☺