A sophisticated, fully-featured desktop PDF editor built with Python and PySide6, featuring a luxury UI/UX design and comprehensive PDF manipulation capabilities.
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.
- 🏠 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
| 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 |
- 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
- Python 3.8+ - Modern, type-safe application development
- PySide6 (Qt6) - Professional cross-platform GUI framework
- PyMuPDF (fitz) - Powerful PDF manipulation library
- 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
Python 3.8 or higher
pip package manager- Clone the repository
git clone https://github.com/VijayAdithyaBK/offline-pdf-editor.git
cd offline-pdf-editor- Create virtual environment
python -m venv venv- Activate virtual environment
# Windows
venv\Scripts\activate
# macOS/Linux
source venv/bin/activate- Install dependencies
pip install -r requirements.txt- Run the application
python main.pyoffline-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
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
Implemented a "safe redaction" strategy where text edits create white overlay behind new text, preventing overlap with original content.
Removed traditional "Apply" button in favor of real-time annotation on mouse release, improving UX flow.
Custom OverlayEditor widget positioned directly over PDF text with automatic font matching.
Centralized color and styling constants enabling consistent luxury aesthetic across all components.
Each major feature (Merge, Convert, Unlock) implemented as separate widget with shared navigation.
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
✅ 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
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
Vijay Adithya B K
- 🌐 Portfolio: Data Nexus
- 💻 GitHub: @VijayAdithyaBK
- 💼 LinkedIn: vijayadithyabk
- 📧 Email: Available on portfolio
- 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