Skip to main content

A PDF reader desktop app

Project description

Book-Reading-GUI-app

Read da Book

A lightweight PDF reader desktop app built with Python and CustomTkinter. Supports adding PDFs from your local machine or directly from a URL, with lazy rendering for smooth performance on large documents.

Python Platform PyPI


Features

  • 📂 Add PDFs from your local file system
  • 🌐 Add PDFs directly from a URL
  • 🔍 Zoom in and out while staying on the current page
  • ⬅️ ➡️ Navigate pages with previous/next buttons or by typing a page number
  • 💾 Automatically saves and restores your reading progress per book
  • ⚡ Lazy rendering — only renders pages near the visible area for smooth scrolling on large documents
  • 🗂️ Persistent library — your added PDFs are saved and restored on every startup

Installation

pip install pdfreading-app

Then launch it from anywhere with:

pdfreading-app

Adding PDFs via URL

You can load a PDF directly from the internet by clicking the From URL button and pasting a link.

What works

  • Direct links to .pdf files hosted on open servers (e.g. university sites, government sites, open-access repositories)
  • URLs that end with .pdf and don't require login or authentication
  • Examples:
    • https://pdfobject.com/pdf/sample.pdf

What doesn't work

  • Sites that block programmatic downloads (403 Forbidden) — this is a server-side restriction that cannot be bypassed. Common examples include file-sharing sites, academic paywalls, and sites that require you to click through a page before downloading.
  • Links that redirect to a download page instead of the PDF file directly
  • PDFs behind a login or authentication wall
  • Google Drive, Dropbox, or similar cloud storage share links

Tip

If a URL gives you a 403 Access Denied error, just download the PDF manually in your browser and use the Add PDF button instead.


Requirements

  • Python 3.9+
  • Windows, macOS, or Linux

Dependencies are installed automatically:

Linux / macOS users: Tkinter does not come pre-installed on all systems. If you get a No module named 'tkinter' error, install it manually:

Ubuntu / Debian:

sudo apt install python3-tk

Fedora:

sudo dnf install python3-tkinter

macOS (Homebrew):

brew install python-tk

Run from source

# Clone the repo
git clone https://github.com/Vannphreak-Choup/Book-Reading-GUI-app.git
cd Book-Reading-GUI-app

# Create and activate a virtual environment
python -m venv .venv
.venv\Scripts\activate        # Windows
source .venv/bin/activate     # macOS / Linux

# Install in editable mode
pip install -e .

# Run
python -m pdfreading.main

Project Structure

src/
└── pdfreading/
    ├── main.py              # entry point
    ├── assets/              # icons and images
    ├── openDialog/          # file and URL dialogs
    │   ├── AddFile.py
    │   └── Addurl.py
    └── utils/
        ├── Data.py          # shared app state
        ├── UI.py            # UI layout
        └── functionality.py # core logic

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pdfreading_app-0.1.6.tar.gz (59.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pdfreading_app-0.1.6-py3-none-any.whl (111.7 kB view details)

Uploaded Python 3

File details

Details for the file pdfreading_app-0.1.6.tar.gz.

File metadata

  • Download URL: pdfreading_app-0.1.6.tar.gz
  • Upload date:
  • Size: 59.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for pdfreading_app-0.1.6.tar.gz
Algorithm Hash digest
SHA256 ee4d4a8b8bf231f7704708501accd09fdb5d0da482a78e448ef0834bea45050f
MD5 3335aa515351a2e7d6b8bcf6a9946656
BLAKE2b-256 7d500ad702659e63a56ca83b25e23e7bd192d54283c22ca15f9410ee4e48a4b7

See more details on using hashes here.

File details

Details for the file pdfreading_app-0.1.6-py3-none-any.whl.

File metadata

  • Download URL: pdfreading_app-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 111.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for pdfreading_app-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 355e9ce9a2ba8dd9392ead347a23ea7dc5c3ed70c3d82d8c16c300fab7fcae47
MD5 90499a3254231a0450a5264e65453ccf
BLAKE2b-256 c39ad83643bdd58d3c97d6e9165ffd0dc720dfa35ad74e1377550d70309d963d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page