Paste the link to any HTML presentation (Reveal.js, Quarto, Marp, Sli.dev, etc.) to generate a clean, fully-paged PDF ;). Built with Node.js, Puppeteer, and PDF-lib.
- https://urbinolloyd.github.io/Informatica-Lesson-1/
- https://fabiogiglietto.github.io/genai-media-course/slides/week1-mon-introduction.html#/title-slide
- Universal Compatibility: Works out-of-the-box with Reveal.js, Quarto, Marp, Sli.dev, and custom HTML presentations.
- Smart Animation & Fragment Detection: Captures step-by-step CSS animations and lists accurately, preserving the original reading flow.
- Safe-Batch Technology β’: Processes heavy presentations in chunks. Say goodbye to server timeouts or memory crashes!
- Manual Safety Limit: Built-in anti-loop mechanism. Set a max page limit to force completion on tricky or infinitely looping presentations.
- High-Quality Vector Export: Preserves text crispness and formatting without relying on blurry screenshots.
- Modern UI: Fast, responsive, and adaptive Dark/Light mode interface powered by TailwindCSS.
- Paste the URL of your web-based slide deck.
- Set a Safety Limit (e.g., 100 slides) to prevent infinite loops.
- The Puppeteer Backend opens a headless Chromium browser and navigates the presentation slide by slide, triggering the 'Next' events natively.
- It blocks native print overrides, forcing the browser to take a vector PDF snapshot of every single fragment and animation state.
- The process runs in batches, sending chunks back to your browser to prevent serverless timeouts (e.g., on Vercel).
- The Frontend uses PDF-lib to merge all chunks locally into a single, cohesive PDF file ready for download.
- Overcomes Vercel Limits: Standard Puppeteer scripts timeout after 10-60 seconds on serverless platforms. This tool's chunking architecture allows it to process hundreds of slides flawlessly.
- Respects Fragments: Standard "Print to PDF" features in browsers often break Quarto/Reveal.js fragments (bullet points that appear one by one), showing them all at once or not at all. This tool captures them precisely as the author intended.
- Offline Archiving: Convert dynamic web lectures, webinars, or conference talks into standard PDFs for offline study.
- Printing: Easily print web presentations without messing up the CSS layouts.
- Sharing: Share slide decks with people who don't have internet access or prefer standard document formats.
Simply visit the Live Demo.
To run this tool on your own machine (requires Node.js):
- Clone this repository.
- Install dependencies:
npm install - Start the server:
npm start - Open
http://localhost:3000in your browser.
- Interactive Elements: Embedded videos (YouTube, Vimeo) or interactive 3D WebGL elements will be captured as static images at the moment the slide is reached.
- AcroJS / PDF Animations: The output is a standard static PDF. CSS/JS animations are preserved as sequential pages, not as interactive PDF scripts, ensuring 100% compatibility across all PDF readers.
- Puppeteer for headless browser automation.
- PDF-lib for client-side PDF manipulation and merging.
- TailwindCSS for the styling.


