Skip to content

nelsonduarte/PDFApps

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

336 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PDFApps

PDF editor and manager for Windows, macOS and Linux — fast, offline and subscription-free.

PDFApps Icon

PDFApps

Release Downloads Build Stars Python PySide6 Platform License GitHub Sponsors Hypercommit


Why PDFApps?

Most PDF tools are either paid, browser-based, or require uploading your files to the cloud. PDFApps is different:

  • 100% offline — your files never leave your computer
  • No subscriptions — free and open source, forever
  • All-in-one — 15 tools: split, merge, compress, encrypt, OCR, convert, edit, page numbers, N-up and more
  • Cross-platform — works on Windows, macOS and Linux
  • Fast — lazy rendering opens large PDFs instantly
  • Multi-language — auto-detects your system language (EN, PT, ES, FR, DE, ZH, IT, NL)

Features

Tool Description
Split Split the PDF into multiple files by user-defined page ranges
Merge Combine multiple PDFs (drag and drop) into a single output, with free ordering
Rotate Rotate individual pages or the entire document at any angle
Extract pages Export a subset of pages to a new PDF
Reorder Drag-and-drop interface to reorder or remove pages with preview
Compress Reduce file size with three compression levels (extreme / recommended / low)
Encrypt Protect the PDF with a password or remove existing protection
Watermark Overlay a watermark/stamp PDF on pages with opacity and position control
OCR Recognise text in scanned PDFs — supports PT, EN, ES, FR and DE
Convert Convert PDF to images (PNG/JPG with DPI control), Word (DOCX) or plain text (TXT)
Page numbers Add page numbering (header/footer) with format, position and font control
N-Up Arrange multiple pages per sheet (2, 4, 6, 9, 16-up) with custom layout
Edit Inline visual editor: redact, insert text, image, signature, highlight, notes, forms and edit existing text
Import Convert text files (.txt), images (PNG/JPG/BMP) or Markdown (.md) to PDF — batch support
Info Show metadata, page count, size and document properties

Integrated viewer

  • Print — print any open PDF via system print dialog with high-resolution rendering
  • Bookmarks / TOC — clickable side panel with the PDF outline (chapters, sections); jumps to any heading
  • Night reading mode — invert PDF colors (white→dark, dark→light) for comfortable reading at night, independent from the app theme
  • Presentation mode (F5) — fullscreen slideshow with keyboard navigation (arrows, Space, PgUp/PgDn, Home/End)
  • Fullscreen (F11) — distraction-free viewing with hidden toolbars
  • Tabbed viewing — open multiple PDFs in tabs, switch between them
  • Continuous scroll through all pages (Adobe Acrobat style)
  • Lazy rendering — opens instantly; pages rendered in background as they are viewed
  • PDF search (Ctrl+F) — search bar with live highlights and navigation between matches
  • Zoom with Ctrl+scroll or toolbar buttons
  • Page navigation — jump to any page via input field or prev/next buttons
  • Text selection and copy by dragging
  • Comment popups — view and delete annotations with pencil icons and balloon popups
  • Password-protected PDF support
  • Drag & drop — drop a PDF anywhere in the window to open it

Editor

  • Continuous scroll — all pages visible at once, scroll through the entire document
  • Signature — draw, type (cursive fonts), or import an image signature; save for reuse; drag to place on PDF
  • Undo/Redo — Ctrl+Z / Ctrl+Y with full action history
  • Color picker — choose any color for text, highlights, redactions and drawings
  • Redact, insert text, images, highlights, notes, forms and edit existing text

Other highlights

  • Pipeline mode — apply multiple tools in sequence (e.g. rotate then compress) and save only at the end with Ctrl+S
  • Auto-update — checks for new versions on startup; download and install updates in-app with progress bar
  • Multi-language — auto-detects system language (EN, PT, ES, FR, DE, ZH, IT, NL), with selector in toolbar; auto-restarts on change
  • Localized installer — installer and uninstaller detect the OS language and display in the user's language
  • Recent files — quick access to the last 10 opened PDFs via history icon
  • Help guide — ? button opens the online user guide
  • Accessibility — screen reader support (accessible names on all buttons), visible focus indicators, keyboard-navigable UI
  • Modern dark/light theme with toggle sidebar
  • Full drag and drop support across all file fields
  • Cross-platform: Windows, macOS and Linux
  • Installer with automatic OCR engine (Tesseract) and Ghostscript detection and installation

Getting started

Download

Platform How to get it
Windows 10/11 64-bit Download PDFAppsSetup.exe from Releases, or winget install nelsonduarte.PDFApps (after winget review)
Ubuntu / Debian / Snap sudo snap install pdfapps
Fedora sudo dnf copr enable nelsonduarte2809/pdfapps && sudo dnf install pdfapps
Arch / Manjaro yay -S pdfapps (source) or yay -S pdfapps-bin (binary)
Any Linux Download PDFApps-1.8.3-x86_64.AppImage from Releases, chmod +x and run
macOS 10.14+ Download PDFApps-macOS.dmg from Releases, mount, and drag PDFApps.app to Applications — Tesseract via brew install tesseract tesseract-lang

Run from source

# Clone the repository
git clone https://github.com/nelsonduarte/PDFApps.git
cd PDFApps

# Create virtual environment
python -m venv venv

# Activate — Windows
venv\Scripts\activate
# Activate — macOS / Linux
source venv/bin/activate

# Install dependencies
pip install -r requirements.txt

# Run
python pdfapps.py

Tesseract OCR is required for text recognition:

  • Windows: the installer handles this automatically
  • macOS: brew install tesseract tesseract-lang
  • Linux: sudo apt install tesseract-ocr tesseract-ocr-por tesseract-ocr-eng

Build

The build process generates three executables in the dist/ folder:

# 1. Main application
python -m PyInstaller --clean pdfapps.spec

# 2. Uninstaller
python -m PyInstaller --clean uninstaller.spec

# 3. Installer (bundles the two above)
python -m PyInstaller --clean installer.spec
File Description
dist/PDFApps.exe Main application (~82 MB)
dist/PDFAppsUninstall.exe Standalone uninstaller (~11 MB)
dist/PDFAppsSetup.exe Installer for distribution (~104 MB)

PyInstaller does not cross-compile — the binary must be built on the target platform.


Tech stack

Component Technology Version
GUI PySide6 (Qt 6) 6.10.2
PDF rendering PyMuPDF (fitz) 1.27.2
PDF manipulation pypdf 6.8.0
OCR Tesseract + pytesseract 0.3.13
DOCX export python-docx 1.2.0
Image processing Pillow 12.1.1
Icons QtAwesome 1.4.1
Packaging PyInstaller 6.19.0

Project structure

PDFApps/
├── pdfapps.py              # Application entry point
├── installer.py            # Installer (tkinter UI, 8 languages)
├── uninstaller.py          # Uninstaller (8 languages)
├── pdfapps.spec            # PyInstaller config — app
├── installer.spec          # PyInstaller config — installer
├── uninstaller.spec        # PyInstaller config — uninstaller
├── icon.ico                # Application icon (multi-size, square)
├── icon_512.png            # Source icon (512x512 PNG)
├── pdfapps.svg             # Logo SVG (used in sidebar/viewer)
├── requirements.txt        # Python dependencies
├── docs/                   # GitHub Pages website
│   ├── index.html          # Single-page site with JS-based i18n
│   ├── icon.png            # App icon for website
│   └── favicon.ico         # Browser favicon
├── app/                    # Modular source code
│   ├── constants.py        # Colours and design constants
│   ├── styles.py           # Qt stylesheet (dark/light theme)
│   ├── utils.py            # Shared utilities
│   ├── widgets.py          # Reusable widgets (DropFileEdit, etc.)
│   ├── base.py             # Base class for tools (BasePage)
│   ├── i18n.py             # Internationalization module (8 languages)
│   ├── translations.json   # All translated UI strings
│   ├── updater.py          # Auto-updater (GitHub releases)
│   ├── window.py           # Main window (MainWindow)
│   ├── tools/              # PDF manipulation tools
│   │   ├── split.py
│   │   ├── merge.py
│   │   ├── rotate.py
│   │   ├── extract.py
│   │   ├── reorder.py
│   │   ├── compress.py
│   │   ├── encrypt.py
│   │   ├── watermark.py
│   │   ├── convert.py
│   │   ├── import_pdf.py
│   │   ├── info.py
│   │   └── ocr.py
│   ├── viewer/             # Integrated PDF viewer
│   │   ├── canvas.py       # Lazy page rendering in background threads (fitz)
│   │   ├── panel.py        # Viewer panel with controls
│   │   └── presentation.py # Fullscreen presentation mode (F5)
│   └── editor/             # Visual PDF editor
│       ├── canvas.py       # Edit canvas (PdfEditCanvas)
│       ├── tab.py          # Edit tab (TabEditar)
│       └── dialogs.py      # Auxiliary dialogs
└── dist/                   # Generated executables (after build)

Keyboard shortcuts

Shortcut Action
Ctrl+O Open PDF (multi-select)
Ctrl+S Save / apply active tool
Ctrl+P Print current PDF
Ctrl+W Close current tab
Ctrl+F Search text in PDF
Ctrl+Z Undo (editor)
Ctrl+Y Redo (editor)
Ctrl+Scroll Zoom in/out
Ctrl+1–9 Open tool 1–9
Ctrl+Shift+1–6 Open tool 10–15
PgUp / PgDn Previous / next page
F5 Start presentation mode
F11 Toggle fullscreen
Escape Exit presentation / close search

Contributing

Contributions are welcome! See CONTRIBUTING.md for the full developer guide — architecture, modules, functions, and how to add new tools.


Support the project

PDFApps is free, open source and built by a solo developer. If you or your company find it useful, sponsoring helps keep it maintained and growing.

Why sponsor?

  • Ensure long-term maintenance and new features
  • Get your logo in the README and website (Gold tier)
  • Support privacy-first, offline software
Sponsor on GitHub Fund on Polar

Sponsors

Gold sponsors

Your company here — become a Gold sponsor

Backers

Be the first backer — sponsor on GitHub or fund on Polar


License

This project is licensed under the MIT License.

About

PDF editor and manager for Windows, macOS and Linux — fast, offline and subscription-free.

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors