This is a tool for displaying a PDF file (e.g. from LaTeX Beamer) as a slide show.
The main features are:
- Separate presenter window showing one slide ahead.
- Countdown timer.
- Slide dissolve animations (constant time, all slides).
- Rasterizes pages before showing them, so the slide is not briefly blurred like Preview on a Mac.
- Responds to Page Up/Down keys for compatibility with remote controls.
python3 pdfdeck.py ~/path/to/my_slides.pdf
We use the pdf2image
library to rasterize PDFs.
pdf2image
is a Python wrapper around the Poppler
binaries.
We use pyglet
to draw graphics, interact with the window system, read the keyboard/mouse, and to load and play videos.
Depending on the platform, pyglet
might also require ffmpeg
for video functionality (experimental, on branch video
for now).
There are many similar projects:
but none of them combines all of the features I wanted:
- Supports Linux, MacOS, and Windows
- Interacts with the OS via a lightweight event/GPU-focused library instead of a full cross-platform GUI toolkit.
- Is written in scripting language. (PDF rasterization is the only performance-critical operation, and it's done with a library, so a fast language is not necessary.)
- Supports multiple monitors and a presenter view.