Modern PDF merger with dark mode, page ranges, and enhanced UI built with PyQt5
Project description
PDF Merger Application
A modern, feature-rich Python application for merging multiple PDF files into a single document. Built with PyQt5, this application offers an intuitive graphical interface with advanced features like PDF preview, drag-and-drop reordering, page range selection, and theme switching.
✨ Features
📁 File Management
- Add Files: Easily add multiple PDF files with drag-and-drop support
- Delete Files: Remove unwanted files with confirmation dialogs
- Reorder Files: Drag and drop files within the list or use move buttons
- Undo/Redo: Complete undo/redo functionality for all file operations
- File Validation: Automatic validation of PDF files on import
📄 Page Range Selection
- Direct Control: Select specific page ranges for each PDF file directly in the file list
- Smart Sync: Minimum and maximum page ranges automatically stay in sync
- Whole PDF Option: Toggle between whole PDF or custom page ranges
- Visual Feedback: Clear indication of selected ranges with enabled/disabled controls
👁️ Advanced Preview
- Multi-Page Navigation: Browse through all pages of selected PDFs
- Real-Time Updates: Preview automatically updates when page ranges change
- High-Quality Rendering: Crisp preview images with proper scaling
- Navigation Controls: Previous/Next buttons with page indicators
🎨 Modern UI/UX
- Dark/Light Themes: Switch between modern dark and light themes
- Responsive Design: Clean, modern interface with smooth animations
- Clickable Elements: File names are clickable for easy selection
- Visual Feedback: Hover effects and clear visual states
- Settings Persistence: All settings saved automatically in JSON format
⚙️ Advanced Settings
- Independent Settings: Access settings regardless of file import status
- Merge Options: Configure quality, compression, bookmarks, and optimization
- Window Geometry: Application remembers window position and size
- Theme Persistence: Selected theme is remembered between sessions
🔧 Technical Features
- Multi-Threading: Background processing for preview and merge operations
- Error Handling: Robust error handling with user-friendly messages
- File Overwrite Protection: Confirmation dialogs for file operations
- Memory Management: Efficient handling of large PDF files
- Windows Integration: Optimized for Windows 10/11 environments
🚀 Usage
Basic Workflow
- Add PDF Files: Click "Add Files" or drag PDFs into the application
- Configure Page Ranges: For each file, choose "All Pages" or specify custom ranges
- Reorder Files: Drag files to reorder or use move buttons
- Preview PDFs: Click on files to preview and navigate through pages
- Merge PDFs: Click "Merge PDFs" to combine files into a single document
Advanced Features
- Theme Switching: Click the 🌙/☀️ button to switch between light and dark themes
- Settings Access: Click the settings button to configure merge options
- Undo/Redo: Use Ctrl+Z and Ctrl+Y for quick file list modifications
- File Selection: Click on file names to select them for preview
📦 Installation
🚀 Method 1: Install from PyPI (Recommended)
pip install pdf-merger-advanced
Then run:
pdf-merger
🔧 Method 2: Install from Source
git clone https://github.com/Gunjan000/PDF-Merger-Advanced.git
cd PDF-Merger-Advanced
pip install -e .
💾 Method 3: Standalone Executable
Download the latest executable from Releases
- Windows:
PDF-Merger-Advanced.exe
🛠️ Method 4: Development Setup
git clone https://github.com/Gunjan000/PDF-Merger-Advanced.git
cd PDF-Merger-Advanced
pip install -r requirements.txt
python pdf_merger.py
📋 Prerequisites
- Python 3.7 or higher
- Windows 10/11 (primary support)
🏗️ Building Executables
To create standalone Windows executable:
python build_executable.py
This will create PDF-Merger-Advanced.exe in the dist/ folder.
🎯 Key Improvements
Version 2.0 Features
- Dark Mode Support: Complete dark theme with proper color adaptation
- Page Range Selection: Direct control over page ranges for each PDF
- Multi-Page Preview: Navigate through all pages of selected PDFs
- Settings Persistence: JSON-based settings storage
- Modern UI: Redesigned interface with better usability
- Threading: Background processing for smooth user experience
- Error Handling: Comprehensive error handling and user feedback
UI/UX Enhancements
- Responsive Layout: Adaptive design that works on different screen sizes
- Visual Feedback: Clear indication of selected files and current states
- Accessibility: Better contrast and readable text in both themes
- Intuitive Controls: Logical placement and behavior of all controls
🔧 Technical Details
Architecture
- PyQt5: Modern GUI framework for cross-platform compatibility
- PyPDF2: PDF manipulation and merging capabilities
- PyMuPDF: High-quality PDF preview generation
- QThread: Multi-threading for responsive UI during heavy operations
- JSON: Settings persistence and configuration management
File Structure
PDF-Merger-Advanced/
├── pdf_merger.py # Main application file
├── README.md # This documentation
├── assets/ # Preview images and resources
│ ├── preview_light_theme.jpg
│ └── preview_dark_theme.jpg
└── pdf_merger_settings.json # Auto-generated settings file
🎨 Screenshots
Light Theme
Clean, professional light theme with modern gradients and intuitive controls
Dark Theme
Easy-on-the-eyes dark theme with proper contrast and enhanced readability
Key UI Features
The application features a modern interface with:
- Light Theme: Clean, professional appearance with subtle gradients
- Dark Theme: Easy on the eyes with proper contrast and readability
- File List: Direct page range controls for each PDF file
- Preview Panel: High-quality PDF preview with navigation
- Settings Dialog: Comprehensive configuration options
- Responsive Design: Adapts to different screen sizes and user preferences
🤝 Contributing
Contributions are welcome! Please feel free to submit issues, feature requests, or pull requests.
📄 License
This project is open source and available under the MIT License.
👨💻 Credits
Created by: Gunjan Vaishnav
GitHub: https://github.com/Gunjan000/PDF-Merger-Advanced
Built with ❤️ using Python and PyQt5
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pdf-merger-advanced-2.0.0.tar.gz.
File metadata
- Download URL: pdf-merger-advanced-2.0.0.tar.gz
- Upload date:
- Size: 138.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2695ee02cd0ceee1e20cc61a739933583b756840cdd690267d9bf3028b6a6207
|
|
| MD5 |
48058c109ef2aa5d0e08fcfcbeeb9173
|
|
| BLAKE2b-256 |
435138a90d58333328f58ae9fded0f98cb98c15c519fd6602cf62ec8962e1c39
|
File details
Details for the file pdf_merger_advanced-2.0.0-py3-none-any.whl.
File metadata
- Download URL: pdf_merger_advanced-2.0.0-py3-none-any.whl
- Upload date:
- Size: 15.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
439747b389f45e73b31cbbdfe02d062c39b767061861cd2a1e50e68ef1d0293b
|
|
| MD5 |
7849abc2525fa12b5b41b6322aad6625
|
|
| BLAKE2b-256 |
4a5b01903a29e8ec2bddcdcacb5350cad3a4f26a0f21055d287c4969fe4bdb8a
|