pdf-merger-advanced


Namepdf-merger-advanced JSON
Version 2.0.0 PyPI version JSON
download
home_pagehttps://github.com/Gunjan000/PDF-Merger-Advanced
SummaryModern PDF merger with dark mode, page ranges, and enhanced UI built with PyQt5
upload_time2025-08-31 14:21:46
maintainerNone
docs_urlNone
authorGunjan Vaishnav
requires_python>=3.7
licenseMIT
keywords pdf merger gui pyqt5 dark-mode page-ranges
VCS
bugtrack_url
requirements PyQt5 PyPDF2 pymupdf
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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
1. **Add PDF Files**: Click "Add Files" or drag PDFs into the application
2. **Configure Page Ranges**: For each file, choose "All Pages" or specify custom ranges
3. **Reorder Files**: Drag files to reorder or use move buttons
4. **Preview PDFs**: Click on files to preview and navigate through pages
5. **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)**
```bash
pip install pdf-merger-advanced
```
Then run:
```bash
pdf-merger
```

### 🔧 **Method 2: Install from Source**
   ```bash
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](https://github.com/Gunjan000/PDF-Merger-Advanced/releases)
- **Windows**: `PDF-Merger-Advanced.exe`

### 🛠️ **Method 4: Development Setup**
```bash
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:
```bash
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
![Light Theme Preview](assets/preview_light_theme.jpg)
*Clean, professional light theme with modern gradients and intuitive controls*

### Dark Theme  
![Dark Theme Preview](assets/preview_dark_theme.jpg)
*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](https://github.com/Gunjan000/PDF-Merger-Advanced)

---

*Built with ❤️ using Python and PyQt5*

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/Gunjan000/PDF-Merger-Advanced",
    "name": "pdf-merger-advanced",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "Gunjan Vaishnav <your.email@example.com>",
    "keywords": "pdf, merger, gui, pyqt5, dark-mode, page-ranges",
    "author": "Gunjan Vaishnav",
    "author_email": "Gunjan Vaishnav <your.email@example.com>",
    "download_url": "https://files.pythonhosted.org/packages/43/51/38a90d58333328f58ae9fded0f98cb98c15c519fd6602cf62ec8962e1c39/pdf-merger-advanced-2.0.0.tar.gz",
    "platform": null,
    "description": "# PDF Merger Application\r\n\r\nA 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.\r\n\r\n## \u2728 Features\r\n\r\n### \ud83d\udcc1 **File Management**\r\n- **Add Files**: Easily add multiple PDF files with drag-and-drop support\r\n- **Delete Files**: Remove unwanted files with confirmation dialogs\r\n- **Reorder Files**: Drag and drop files within the list or use move buttons\r\n- **Undo/Redo**: Complete undo/redo functionality for all file operations\r\n- **File Validation**: Automatic validation of PDF files on import\r\n\r\n### \ud83d\udcc4 **Page Range Selection**\r\n- **Direct Control**: Select specific page ranges for each PDF file directly in the file list\r\n- **Smart Sync**: Minimum and maximum page ranges automatically stay in sync\r\n- **Whole PDF Option**: Toggle between whole PDF or custom page ranges\r\n- **Visual Feedback**: Clear indication of selected ranges with enabled/disabled controls\r\n\r\n### \ud83d\udc41\ufe0f **Advanced Preview**\r\n- **Multi-Page Navigation**: Browse through all pages of selected PDFs\r\n- **Real-Time Updates**: Preview automatically updates when page ranges change\r\n- **High-Quality Rendering**: Crisp preview images with proper scaling\r\n- **Navigation Controls**: Previous/Next buttons with page indicators\r\n\r\n### \ud83c\udfa8 **Modern UI/UX**\r\n- **Dark/Light Themes**: Switch between modern dark and light themes\r\n- **Responsive Design**: Clean, modern interface with smooth animations\r\n- **Clickable Elements**: File names are clickable for easy selection\r\n- **Visual Feedback**: Hover effects and clear visual states\r\n- **Settings Persistence**: All settings saved automatically in JSON format\r\n\r\n### \u2699\ufe0f **Advanced Settings**\r\n- **Independent Settings**: Access settings regardless of file import status\r\n- **Merge Options**: Configure quality, compression, bookmarks, and optimization\r\n- **Window Geometry**: Application remembers window position and size\r\n- **Theme Persistence**: Selected theme is remembered between sessions\r\n\r\n### \ud83d\udd27 **Technical Features**\r\n- **Multi-Threading**: Background processing for preview and merge operations\r\n- **Error Handling**: Robust error handling with user-friendly messages\r\n- **File Overwrite Protection**: Confirmation dialogs for file operations\r\n- **Memory Management**: Efficient handling of large PDF files\r\n- **Windows Integration**: Optimized for Windows 10/11 environments\r\n\r\n## \ud83d\ude80 Usage\r\n\r\n### Basic Workflow\r\n1. **Add PDF Files**: Click \"Add Files\" or drag PDFs into the application\r\n2. **Configure Page Ranges**: For each file, choose \"All Pages\" or specify custom ranges\r\n3. **Reorder Files**: Drag files to reorder or use move buttons\r\n4. **Preview PDFs**: Click on files to preview and navigate through pages\r\n5. **Merge PDFs**: Click \"Merge PDFs\" to combine files into a single document\r\n\r\n### Advanced Features\r\n- **Theme Switching**: Click the \ud83c\udf19/\u2600\ufe0f button to switch between light and dark themes\r\n- **Settings Access**: Click the settings button to configure merge options\r\n- **Undo/Redo**: Use Ctrl+Z and Ctrl+Y for quick file list modifications\r\n- **File Selection**: Click on file names to select them for preview\r\n\r\n## \ud83d\udce6 Installation\r\n\r\n### \ud83d\ude80 **Method 1: Install from PyPI (Recommended)**\r\n```bash\r\npip install pdf-merger-advanced\r\n```\r\nThen run:\r\n```bash\r\npdf-merger\r\n```\r\n\r\n### \ud83d\udd27 **Method 2: Install from Source**\r\n   ```bash\r\ngit clone https://github.com/Gunjan000/PDF-Merger-Advanced.git\r\ncd PDF-Merger-Advanced\r\npip install -e .\r\n```\r\n\r\n### \ud83d\udcbe **Method 3: Standalone Executable**\r\nDownload the latest executable from [Releases](https://github.com/Gunjan000/PDF-Merger-Advanced/releases)\r\n- **Windows**: `PDF-Merger-Advanced.exe`\r\n\r\n### \ud83d\udee0\ufe0f **Method 4: Development Setup**\r\n```bash\r\ngit clone https://github.com/Gunjan000/PDF-Merger-Advanced.git\r\ncd PDF-Merger-Advanced\r\npip install -r requirements.txt\r\npython pdf_merger.py\r\n```\r\n\r\n### \ud83d\udccb **Prerequisites**\r\n- Python 3.7 or higher\r\n- Windows 10/11 (primary support)\r\n\r\n### \ud83c\udfd7\ufe0f **Building Executables**\r\nTo create standalone Windows executable:\r\n```bash\r\npython build_executable.py\r\n```\r\nThis will create `PDF-Merger-Advanced.exe` in the `dist/` folder.\r\n\r\n## \ud83c\udfaf Key Improvements\r\n\r\n### Version 2.0 Features\r\n- **Dark Mode Support**: Complete dark theme with proper color adaptation\r\n- **Page Range Selection**: Direct control over page ranges for each PDF\r\n- **Multi-Page Preview**: Navigate through all pages of selected PDFs\r\n- **Settings Persistence**: JSON-based settings storage\r\n- **Modern UI**: Redesigned interface with better usability\r\n- **Threading**: Background processing for smooth user experience\r\n- **Error Handling**: Comprehensive error handling and user feedback\r\n\r\n### UI/UX Enhancements\r\n- **Responsive Layout**: Adaptive design that works on different screen sizes\r\n- **Visual Feedback**: Clear indication of selected files and current states\r\n- **Accessibility**: Better contrast and readable text in both themes\r\n- **Intuitive Controls**: Logical placement and behavior of all controls\r\n\r\n## \ud83d\udd27 Technical Details\r\n\r\n### Architecture\r\n- **PyQt5**: Modern GUI framework for cross-platform compatibility\r\n- **PyPDF2**: PDF manipulation and merging capabilities\r\n- **PyMuPDF**: High-quality PDF preview generation\r\n- **QThread**: Multi-threading for responsive UI during heavy operations\r\n- **JSON**: Settings persistence and configuration management\r\n\r\n### File Structure\r\n```\r\nPDF-Merger-Advanced/\r\n\u251c\u2500\u2500 pdf_merger.py          # Main application file\r\n\u251c\u2500\u2500 README.md              # This documentation\r\n\u251c\u2500\u2500 assets/                # Preview images and resources\r\n\u2502   \u251c\u2500\u2500 preview_light_theme.jpg\r\n\u2502   \u2514\u2500\u2500 preview_dark_theme.jpg\r\n\u2514\u2500\u2500 pdf_merger_settings.json  # Auto-generated settings file\r\n```\r\n\r\n## \ud83c\udfa8 Screenshots\r\n\r\n### Light Theme\r\n![Light Theme Preview](assets/preview_light_theme.jpg)\r\n*Clean, professional light theme with modern gradients and intuitive controls*\r\n\r\n### Dark Theme  \r\n![Dark Theme Preview](assets/preview_dark_theme.jpg)\r\n*Easy-on-the-eyes dark theme with proper contrast and enhanced readability*\r\n\r\n### Key UI Features\r\nThe application features a modern interface with:\r\n- **Light Theme**: Clean, professional appearance with subtle gradients\r\n- **Dark Theme**: Easy on the eyes with proper contrast and readability\r\n- **File List**: Direct page range controls for each PDF file\r\n- **Preview Panel**: High-quality PDF preview with navigation\r\n- **Settings Dialog**: Comprehensive configuration options\r\n- **Responsive Design**: Adapts to different screen sizes and user preferences\r\n\r\n## \ud83e\udd1d Contributing\r\n\r\nContributions are welcome! Please feel free to submit issues, feature requests, or pull requests.\r\n\r\n## \ud83d\udcc4 License\r\n\r\nThis project is open source and available under the MIT License.\r\n\r\n## \ud83d\udc68\u200d\ud83d\udcbb Credits\r\n\r\n**Created by**: Gunjan Vaishnav\r\n\r\n**GitHub**: [https://github.com/Gunjan000/PDF-Merger-Advanced](https://github.com/Gunjan000/PDF-Merger-Advanced)\r\n\r\n---\r\n\r\n*Built with \u2764\ufe0f using Python and PyQt5*\r\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Modern PDF merger with dark mode, page ranges, and enhanced UI built with PyQt5",
    "version": "2.0.0",
    "project_urls": {
        "Documentation": "https://github.com/Gunjan000/PDF-Merger-Advanced#readme",
        "Homepage": "https://github.com/Gunjan000/PDF-Merger-Advanced",
        "Issues": "https://github.com/Gunjan000/PDF-Merger-Advanced/issues",
        "Repository": "https://github.com/Gunjan000/PDF-Merger-Advanced"
    },
    "split_keywords": [
        "pdf",
        " merger",
        " gui",
        " pyqt5",
        " dark-mode",
        " page-ranges"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4a5b01903a29e8ec2bddcdcacb5350cad3a4f26a0f21055d287c4969fe4bdb8a",
                "md5": "7849abc2525fa12b5b41b6322aad6625",
                "sha256": "439747b389f45e73b31cbbdfe02d062c39b767061861cd2a1e50e68ef1d0293b"
            },
            "downloads": -1,
            "filename": "pdf_merger_advanced-2.0.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "7849abc2525fa12b5b41b6322aad6625",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 15635,
            "upload_time": "2025-08-31T14:21:44",
            "upload_time_iso_8601": "2025-08-31T14:21:44.790447Z",
            "url": "https://files.pythonhosted.org/packages/4a/5b/01903a29e8ec2bddcdcacb5350cad3a4f26a0f21055d287c4969fe4bdb8a/pdf_merger_advanced-2.0.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "435138a90d58333328f58ae9fded0f98cb98c15c519fd6602cf62ec8962e1c39",
                "md5": "48058c109ef2aa5d0e08fcfcbeeb9173",
                "sha256": "2695ee02cd0ceee1e20cc61a739933583b756840cdd690267d9bf3028b6a6207"
            },
            "downloads": -1,
            "filename": "pdf-merger-advanced-2.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "48058c109ef2aa5d0e08fcfcbeeb9173",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 138445,
            "upload_time": "2025-08-31T14:21:46",
            "upload_time_iso_8601": "2025-08-31T14:21:46.405627Z",
            "url": "https://files.pythonhosted.org/packages/43/51/38a90d58333328f58ae9fded0f98cb98c15c519fd6602cf62ec8962e1c39/pdf-merger-advanced-2.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-31 14:21:46",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Gunjan000",
    "github_project": "PDF-Merger-Advanced",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [
        {
            "name": "PyQt5",
            "specs": [
                [
                    ">=",
                    "5.15.0"
                ]
            ]
        },
        {
            "name": "PyPDF2",
            "specs": [
                [
                    ">=",
                    "3.0.0"
                ]
            ]
        },
        {
            "name": "pymupdf",
            "specs": [
                [
                    ">=",
                    "1.23.0"
                ]
            ]
        }
    ],
    "lcname": "pdf-merger-advanced"
}
        
Elapsed time: 1.27650s