Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

pypdfreader

A minimal Python PDF viewer aimed at presentations: slide-only window, keyboard navigation, virtual laser, ink annotations, and a second window with presenter mode (thumbnail grid).

Demo

Features

  • Open a PDF from a dialog on startup;
  • View the slide in a window sized to match the presenter window, with no menu over the content;
  • Navigate with arrow keys, Page Up / Page Down;
  • Type a slide number, enter (advance or jump to the slide number you typed), then Backspace to return to the origin slide;
  • Laser pointer with configurable color and trail over the slide
  • Draw with the left mouse button; hold Shift for a strictly horizontal stroke
  • Ink fade (via Customize in the presenter window):
    • Sliding window: a band a few points wide (configurable) moves along the stroke; only what sits in the band fades, the rest stays solid until the band reaches it
    • Uniform: the whole stroke fades out together
  • Presenter mode: thumbnails with slide numbers, click to jump, zoom with Ctrl + scroll (or Ctrl +/-), session timer in the window title
  • Customize also adjusts ink width, fade duration, colors, laser settings, etc.
  • Ctrl+C quits the app (when the window has focus)

Light limits on points per stroke and per session help avoid excessive memory use.

Requirements

  • Python 3.10 or newer (recommended)
  • PyQt6 and PyMuPDF (via pip)
  • On Linux, you may need libxcb-cursor0 (or equivalent) so Qt can load the graphics plugin correctly

Installation

Clone the repository and, in the project folder:

python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

On Ubuntu/Debian, if Qt fails with an xcb / cursor-related error:

sudo apt-get install -y libxcb-cursor0

Usage

python reader.py

Pick a PDF. The main window shows the slide; Presenter mode opens beside it.

License

Personal / open-source project: use and modify freely.

About

A minimal Python PDF viewer aimed at presentations: slide-only window, keyboard navigation, virtual laser, ink annotations, and a second window with presenter mode (thumbnail grid).

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages