Report & Feedback
Building a PDF pagination engine is surprisingly complex. Press.js takes a web page — with all the freedom that CSS, JavaScript, and the DOM provide — and must decide exactly where every line of text, every image, and every table cell lands on each page. It handles page breaks, measures element sizes, tracks overflow, re-flows content, and iterates until everything fits.
The web is vast — CSS properties, layout patterns, and content structures combine in effectively infinite ways. We cannot cover every edge case.
What can go wrong
Section titled “What can go wrong”Some issues we see come from the categories covered in Caveats — web features that degrade in PDF output. Others are genuine pagination bugs: a page break that splits a block in the wrong place, a table that overflows its container instead of continuing on the next page, or an element that disappears entirely.
Complex documents — deeply nested tables, heavily customized layouts, unusual CSS — are the most likely to expose these edge cases.
How to report
Section titled “How to report”If you encounter a document that does not render correctly, please open an issue at github.com/press-js/press-js/issues. A minimal reproduction helps a lot.
Contributions welcome
Section titled “Contributions welcome”Press.js is open source. If you find a bug and want to fix it yourself, pull requests are welcome. The core pagination engine lives in packages/core/src/, and the Playwright renderer is in packages/playwright/src/.