Back when I was in grad school I set up an HTML/CSS to PDF workflow for making posters. It was surprisingly difficult to find a decent way to render nice-looking web pages with reasonably modern CSS to PDF without having things get cut off or reflowed. I had to use a specific prerelease build of a webkit-based tool to get my template to render correctly. I wonder if there are any better tools in this space these days.
Apart from that, the main issue was the lack of publishing-quality text justification, so I just manually added line breaks where needed to make it look decent. It still beat fiddling around in PowerPoint.
> It was surprisingly difficult to find a decent way to render nice-looking web pages with reasonably modern CSS to PDF without having things get cut off or reflowed. I had to use a specific prerelease build of a webkit-based tool to get my template to render correctly. I wonder if there are any better tools in this space these days.
Try Chrome's built-in print-to-PDF. I currently use Ungoogled Chrome to produce PDF documents from HTML+CSS.
(I don't use Chrome for browsing, just for making PDFs. I prefer Firefox for browsing, but found its PDF output inferior.)
It still doesn't support proper CSS printing and layout. You still have to write HTML+CSS that will happen to be processed a certain way by the browser, and it still won't be publishing-quality text justification or line breaking. But I've found it reliable and consistent enough for some kinds of document generation.
Before using Ungoogled Chrome, I spent years struggling with various WebKit-based and Gecko-based scripted setups, and I saw glitchy results, fonts not working right, scaling wrong (sometimes by large ratios), wrapping in odd places, table/rule lines too thick for print or invisible, uneven spacing due to CSS "pixel" rounding making no sense at print scale, much else besides. Trying to work around all the issues took months and probably derailed a project that was depending on this approach to render PDF invoices. When I found a version and configuration that just about worked, I carefuly preserved the exact binary version along with its supporting environment, because new versions tended to break the output in significant ways. With that, I was still never able to get multi-page output and good rendering from the same software, so I chose the latter and made sure I never needed multiple pages.
One day I found producing them from current Ungoogled Chrome without any crazy scripting produced good results and have stuck with that since.
Note that - at least on Mac - Chrome has two separate print-to-PDF paths, which produce different PDF output. One appears to be part of Chrome and I'm guessing it is common to all target OSes. The other goes via the OS, and I found this one produced inferior rendering and different page size and layout. One of the preview options doesn't view the same PDF as the default output operation.
Apart from that, the main issue was the lack of publishing-quality text justification, so I just manually added line breaks where needed to make it look decent. It still beat fiddling around in PowerPoint.