Full-featured PDF editor with modern dark UI, layer system, command-based undo/redo, and 10-language support.
- 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
- Rectangle, Circle, Line, Arrow
- Freehand drawing
- Highlight, Underline, Strikeout
- Insert images anywhere
- Select, move, resize, scale, rotate images
- Replace or extract images
- Right-click context menu for images
- Add, delete, rotate pages
- Extract specific pages to new PDF
- Merge multiple PDFs
- Thumbnail panel with click-to-navigate
| 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 |
English Β· Arabic (RTL) Β· Russian Β· Chinese Β· Spanish Β· French Β· German Β· Japanese Β· Korean Β· Portuguese
Coming soon
git clone https://github.com/Hayder-IRAQ/pdf-editor-pro.git
cd pdf-editor-propython -m venv venv
# Windows
venv\Scripts\activate
# Linux / macOS
source venv/bin/activatepip install -r requirements.txtpython main.py| Package | Purpose |
|---|---|
PyMuPDF |
PDF rendering and editing engine |
Pillow |
Image processing for page display |
tkinter |
GUI framework (built into Python) |
pip install PyMuPDF Pillowpdf-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
| 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 |
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
- Fork the repository
- Create a feature branch:
git checkout -b feature/my-feature - Commit:
git commit -m "feat: describe your change" - Push:
git push origin feature/my-feature - Open a Pull Request
This project is licensed under the MIT License β see LICENSE for details.
Hayder Odhafa / ΨΩΨ―Ψ± ΨΉΨ°Ψ§ΩΨ© GitHub: @Hayder-IRAQ
Made with β€οΈ using Python + PyMuPDF β PDF Editor Pro v3.0 Β© 2025 Hayder Odhafa