webslides2pdf streamlit app_

Overview

This tool solves the challenge of sharing or printing presentations created with open web technologies like Sozi or JessyInk. Unlike traditional PowerPoint files, these presentations are animated SVG or HTML files that run in a web browser.

The application allows users to upload these files and automatically converts each animation step, transition, or “slide” into an individual page of a PDF document. This makes it easy to archive, print, and share the presentation without losing the sequential visual content of the original talk.

Technical details

The project’s core is built in Python and leverages the Playwright library to orchestrate a headless Chromium browser instance. The system injects custom JavaScript into the DOM to detect the presentation library type (JessyInk or Sozi) and extract navigation metadata (number of frames or steps).

The script programmatically navigates through the URL fragments (hash navigation) corresponding to each slide, waits for the animation to settle (networkidle), and captures a high-resolution screenshot. Finally, these images are compiled into a single file using img2pdf. The user interface is developed with Streamlit, enabling smooth asynchronous execution and temporary file management.