sammycage
1. The documentation for HTML and CSS parsers is pretty straightforward and easier to implement, so I thought it was better to write them myself.
2. It fully supports margin boxes (headers and footers) using properties like @top-left and @bottom-center inside @page rules. You can see more here: https://github.com/plutoprint/plutobook/blob/main/FEATURES.m...
3. Yes, I did come across this. Fragmentation logic is as difficult as it sounds. Right now PlutoBook works with a single, consistent page size throughout a document and does not support named pages, which simplifies things a lot.
Feel free to contact me via email if you have more questions.
At first, my plan was simple. I wanted to make an HTML rendering library. But soon, I realized it could be even more useful if it focused on paged output so I could make PDFs directly. C and C++ do not have an HTML-to-PDF library that is not a full web engine. I started coding and thought I could finish in a year by working a few hours each day. But reality came fast. HTML and CSS are much harder than SVG, and even small things caused big problems.
I studied KHTML and WebKit to see how real HTML and CSS engines work. The official specs were very helpful. Slowly, everything started to come together. It felt like discovering a hidden world behind the web pages we see every day.
The hardest part has been TableLayout. Tables look simple, but handling row and column spans, nested tables, alignment, page breaks, and box calculations was very hard. I spent many hours fixing layout bugs that only appeared in some situations. It was frustrating, humbling, and also very satisfying when it worked.
I am still learning and improving. I hope other people enjoy PlutoPrint and PlutoBook as much as I do.
Show HN: PlutoPrint – Generate PDFs and PNGs from HTML with Python
https://github.com/plutoprint/plutoprint
Hi everyone, I built PlutoPrint because I needed a simple way to generate beautiful PDFs and images directly from HTML with Python. Most of the tools I tried felt heavy, tricky to set up, or produced results that didn’t look great, so I wanted something lightweight, modern, and fast. PlutoPrint is built on top of PlutoBook’s rendering engine, which is designed for paged media, and then wrapped...
I’d be glad to hear what you think. If you’ve ever had to wrestle with generating PDFs or images from HTML, I hope this feels like a smoother option. Feedback, ideas, or even just impressions are all very welcome, and I’d love to learn how PlutoPrint could be more useful for you.
Show HN: PlutoPrint – Convert HTML to Beautiful PDFs and PNGs with Python
Show HN: LunaSVG – C++ Library for Rendering and Manipulating SVG Documents
Show HN: PlutoFilter- A single-header, zero-allocation image filter library in C
One thing I wonder is how you plan to handle cases where files vanish or change mid‑operation. Will the API just bubble up errors, or do you plan to hide some of that under retries or caching?
Overall, really enjoying these devlogs. Seeing the tradeoffs laid out like this is helpful for anyone building similar tools. Keep it up.
I do wonder, though. At what point does the remixing and generalization become more than just a mirror of us? Even if it is still trained on human work, its behavior can surprise us in ways that feel alien.
Curious if others here agree: is the term "AI" just marketing hype, or is it still useful shorthand for systems whose emergent properties we do not fully control?