Skip to content

VijayAdithyaBK/offline-pdf-editor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📄 Offline PDF Editor

A sophisticated, fully-featured desktop PDF editor built with Python and PySide6, featuring a luxury UI/UX design and comprehensive PDF manipulation capabilities.

Python PySide6 PyMuPDF License

🎯 Overview

A premium desktop application that provides a complete PDF editing solution with instant annotations, text editing, and document management tools. Built with modern Python and Qt6, featuring a luxury light theme with gold accents for an exceptional user experience.

✨ Key Highlights

  • 🏠 Multi-Tool Dashboard - Unified interface for editing, merging, converting, and unlocking PDFs
  • ⚡ Instant Annotations - Real-time highlighting, strikeout, underline, and redaction
  • ✏️ WYSIWYG Text Editing - In-place text editing with automatic font matching
  • 🎨 Luxury UI/UX - Professionally designed interface with pearl backgrounds and gold accents
  • 📦 Fully Offline - No internet required, complete data privacy
  • 🔄 Undo/Redo - Full history management for all editing operations

🚀 Features

PDF Editing Suite

Feature Description
Text Editing In-place WYSIWYG editor with font family, size, and color matching
Annotations Instant highlighting (Yellow/Red/Blue/Green), strikeout, underline
Redaction Professional black redaction and white whiteout tools
Merge PDFs Combine multiple PDF files into a single document
Image to PDF Convert images (PNG, JPG, BMP, TIFF) to PDF format
Unlock PDF Remove password protection from encrypted PDFs
Zoom Controls Flexible zoom in/out with reset functionality

Design Philosophy

  • Luxury Light Theme - Pearl white (#fafbfc) backgrounds with ivory (#ffffff) cards
  • Premium Accents - Sophisticated gold (#c9a961) for primary actions
  • High Contrast - Dark text (#2d3436) ensuring perfect readability
  • Consistent UX - Unified design system across all screens and components
  • Professional Typography - Segoe UI with refined weights and sizing

🛠️ Technology Stack

Core Technologies

  • Python 3.8+ - Modern, type-safe application development
  • PySide6 (Qt6) - Professional cross-platform GUI framework
  • PyMuPDF (fitz) - Powerful PDF manipulation library

Architecture Highlights

  • MVC Pattern - Clean separation of concerns
  • Signal-Slot Architecture - Event-driven communication between components
  • Undo/Redo Manager - Custom stack-based history management
  • Theme System - Centralized design system with reusable constants
  • Modular Design - Separate widgets for each tool with shared components

📦 Installation

Prerequisites

Python 3.8 or higher
pip package manager

Quick Start

  1. Clone the repository
git clone https://github.com/VijayAdithyaBK/offline-pdf-editor.git
cd offline-pdf-editor
  1. Create virtual environment
python -m venv venv
  1. Activate virtual environment
# Windows
venv\Scripts\activate

# macOS/Linux
source venv/bin/activate
  1. Install dependencies
pip install -r requirements.txt
  1. Run the application
python main.py

📁 Project Structure

offline-pdf-editor/
├── main.py                 # Application entry point & main window
├── requirements.txt        # Python dependencies
├── src/
│   ├── pdf_core.py        # PDF processing engine
│   ├── undo_manager.py    # History management
│   └── ui/
│       ├── home_screen.py      # Main dashboard with tool cards
│       ├── viewer.py           # PDF rendering & interaction
│       ├── toolbar.py          # Editing tools & controls
│       ├── actions_bar.py      # Bottom action bar
│       ├── page_label.py       # Page rendering & annotation
│       ├── pdf_tools.py        # Merge/Convert/Unlock widgets
│       └── sejda_theme.py      # Luxury design system
└── venv/                  # Virtual environment

🎨 Design System

The application features a carefully crafted luxury light theme:

  • Backgrounds: Pearl (#fafbfc), Ivory (#ffffff), Champagne (#f8f8f6)
  • Accents: Gold (#c9a961), Coral (#ff7675), Mint (#55efc4), Amber (#fdcb6e)
  • Text: Primary (#2d3436), Secondary (#636e72), Tertiary (#95a5a6)
  • Spacing: Consistent 4px-based grid system
  • Typography: Segoe UI with 12-36px range

🔑 Key Technical Decisions

1. Line-Based Text Editing

Implemented a "safe redaction" strategy where text edits create white overlay behind new text, preventing overlap with original content.

2. Instant Annotation Application

Removed traditional "Apply" button in favor of real-time annotation on mouse release, improving UX flow.

3. WYSIWYG In-Place Editing

Custom OverlayEditor widget positioned directly over PDF text with automatic font matching.

4. Unified Theme System

Centralized color and styling constants enabling consistent luxury aesthetic across all components.

5. Modular Tool Architecture

Each major feature (Merge, Convert, Unlock) implemented as separate widget with shared navigation.

💼 For Recruiters & Founders

Skills Demonstrated

Frontend Development

  • Advanced Qt/PySide6 GUI development
  • Custom widget creation and styling
  • Signal-slot event architecture
  • Responsive layout management

Software Architecture

  • MVC design pattern
  • Modular, scalable codebase
  • Clean separation of concerns
  • Reusable component design

PDF Technology

  • PyMuPDF integration
  • PDF rendering and manipulation
  • Annotation and redaction implementation
  • Document merging and conversion

UX/UI Design

  • User-centered design thinking
  • Consistent design system
  • Professional color theory application
  • Attention to typography and spacing

Best Practices

  • Virtual environment management
  • Clean code organization
  • Comprehensive README documentation
  • Version control with Git

Why This Project Stands Out

Production-Ready - Fully functional with professional polish
Modern Stack - Latest Python and Qt6 technologies
Design Excellence - Premium UI/UX exceeding typical desktop apps
Complete Solution - Not just a demo, but a full-featured application
Privacy-First - Completely offline, no data collection

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

👤 Author

Vijay Adithya B K

🙏 Acknowledgments

  • PySide6 team for the excellent Qt6 Python bindings
  • PyMuPDF team for the powerful PDF library
  • Sejda for UI/UX inspiration

Made with ❤️ for the PDF editing community

About

Sophisticated desktop PDF editor with luxury UI - Edit, merge, convert & unlock PDFs offline

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages