Skip to content

Hayder-IRAQ/pdf-editor-pro

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

8 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“„ PDF Editor Pro v3.0 β€” Modern Edition

Full-featured PDF editor with modern dark UI, layer system, command-based undo/redo, and 10-language support.

Python PyMuPDF License: MIT Platform GUI


✨ Features

πŸ–ŠοΈ Text Editing

  • Click any text to edit it directly
  • Font selection with Arabic / Russian / CJK support
  • Font size, color picker
  • RTL (Right-to-Left) layout for Arabic

🎨 Drawing & Annotation

  • Rectangle, Circle, Line, Arrow
  • Freehand drawing
  • Highlight, Underline, Strikeout

πŸ–ΌοΈ Image Operations

  • Insert images anywhere
  • Select, move, resize, scale, rotate images
  • Replace or extract images
  • Right-click context menu for images

πŸ“‘ Page Management

  • Add, delete, rotate pages
  • Extract specific pages to new PDF
  • Merge multiple PDFs
  • Thumbnail panel with click-to-navigate

πŸ—οΈ Architecture

Feature Details
Layer System Every edit is a separate layer β€” selectable and deletable
Command-based Undo/Redo Full history with 50 states
LRU Page Cache Smart caching with lazy loading for fast rendering
Auto-save Background auto-save protection
Memory Monitor Live cache/memory statistics in status bar

🌍 10 UI Languages

English Β· Arabic (RTL) Β· Russian Β· Chinese Β· Spanish Β· French Β· German Β· Japanese Β· Korean Β· Portuguese


πŸ–₯️ Screenshots

Coming soon


πŸš€ Quick Start

1. Clone

git clone https://github.com/Hayder-IRAQ/pdf-editor-pro.git
cd pdf-editor-pro

2. Virtual environment (recommended)

python -m venv venv

# Windows
venv\Scripts\activate

# Linux / macOS
source venv/bin/activate

3. Install dependencies

pip install -r requirements.txt

4. Run

python main.py

πŸ“¦ Dependencies

Package Purpose
PyMuPDF PDF rendering and editing engine
Pillow Image processing for page display
tkinter GUI framework (built into Python)
pip install PyMuPDF Pillow

πŸ—‚οΈ Project Structure

pdf-editor-pro/
β”œβ”€β”€ main.py              # Application entry point & UI
β”œβ”€β”€ requirements.txt
β”œβ”€β”€ LICENSE
β”œβ”€β”€ README.md
└── core/
    β”œβ”€β”€ pdf_engine.py    # Core PDF operations (open, save, edit, render)
    β”œβ”€β”€ text_editor.py   # Advanced text analysis and editing
    β”œβ”€β”€ undo_manager.py  # Command-based undo/redo system
    β”œβ”€β”€ cache_system.py  # LRU page cache + auto-save manager
    β”œβ”€β”€ layer_system.py  # Layer management (shapes, annotations, text)
    β”œβ”€β”€ tools.py         # Tool enums, constants, default colors
    β”œβ”€β”€ fonts.py         # Font management (Latin, Arabic, Russian, CJK)
    β”œβ”€β”€ languages.py     # i18n strings for 10 languages
    └── image_block.py   # Image block dataclass

⌨️ Keyboard Shortcuts

Shortcut Action
Ctrl+O Open PDF
Ctrl+S Save
Ctrl+Z Undo
Ctrl+Y Redo
Ctrl+H Find & Replace
Ctrl++ Zoom In
Ctrl+- Zoom Out
Ctrl+0 Reset Zoom
Page Up Previous Page
Page Down Next Page
Home First Page
End Last Page
Delete Delete Selection
Double-click Edit text / select image
Right-click Context menu

πŸ—οΈ Architecture Overview

PDFEditorApp (main.py)
    β”‚
    β”œβ”€β”€ PDFEngine (core/pdf_engine.py)
    β”‚       β”œβ”€β”€ UndoManager      β€” command history
    β”‚       β”œβ”€β”€ PageCache        β€” LRU rendering cache
    β”‚       β”œβ”€β”€ LayerManager     β€” per-page layer tracking
    β”‚       └── TextAnalyzer     β€” text block detection
    β”‚
    └── UI Layer (main.py)
            β”œβ”€β”€ Toolbar          β€” tools, fonts, colors
            β”œβ”€β”€ Canvas           β€” page rendering + events
            β”œβ”€β”€ Thumbnails Panel β€” page navigation
            └── Properties Panel β€” layers listbox

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/my-feature
  3. Commit: git commit -m "feat: describe your change"
  4. Push: git push origin feature/my-feature
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License β€” see LICENSE for details.


πŸ‘€ Author

Hayder Odhafa / حيدر عذافة GitHub: @Hayder-IRAQ


Made with ❀️ using Python + PyMuPDF β€” PDF Editor Pro v3.0 Β© 2025 Hayder Odhafa

About

πŸ–ŠοΈ Full-featured PDF editor in Python β€” edit text, draw shapes, annotate, merge, watermark & more. Built with PyMuPDF + Tkinter

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages