A colorful, beginner-friendly PDF and image utility desktop app built using Python and Tkinter. It includes essential tools like image compression, PDF merging, OCR text extraction, language switching, night mode, and drag-and-drop support — all in a single desktop application.
- 📉 Compress JPGs (single & batch)
- 🖊 Add Text to Images
- 🌈 Convert PNG to JPG
- 🧾 Convert Images to PDF
- 📂 Merge JPGs into a single PDF
- 📂 Merge multiple PDF files
- 🗜 Compress PDF files
- 🔍 OCR Text Extraction from PDFs (using Tesseract)
- 🌗 Night Mode toggle
- 🌐 Language Switcher (Kazakh, Russian, English)
- 🖱️ Drag & Drop support for files
- 📝 Action Logging
- 🎨 Clean, colorful GUI layout
git clone https://github.com/Star1ord/pdf-toolkit.git
cd pdf-toolkitpython -m venv venv
venv\Scripts\activate # Windowspip install -r requirements.txt- Download from the official repo: https://github.com/tesseract-ocr/tesseract/releases
- Install and note the path (e.g., C:\Program Files\Tesseract-OCR\tesseract.exe)
- Add to PATH or create
.envfile:TESSERACT_PATH=C:\Program Files\Tesseract-OCR\tesseract.exe
brew install tesseractsudo apt update
sudo apt install tesseract-ocrpython main.pypdf-toolkit/
├── handlers/
│ ├── init.py
│ ├── add_text_to_image.py
│ ├── compress_jpg.py
│ ├── compress_pdf.py
│ ├── convert_png_to_jpg.py
│ ├── extract_text_from_pdf.py
│ ├── image_to_pdf.py
│ ├── merge_jpgs.py
│ ├── merge_pdfs.py
├── main.py # Application entry point
├── ui.py # UI components
├── utils.py # Utility functions
├── theme.py # Theme management
├── config.py # Configuration
├── .env # Environment variables
├── action_log.txt # Activity logging(appears after completing one of the features)
├── requirements.txt # Dependencies
└── README.md # Documentation
✅ Python 3.10+
✅ Windows 10/11
This project is licensed under the MIT License. See the LICENSE file for details.
- pytesseract
- Pillow (PIL)
- TkinterDnD2
- ChatGPT for assistance
- Inspired by ILovePDF
- 🔐 PDF password protection
- 📥 Save/load task presets
- 🔄 Reordering PDF pages
- 🔧 Adjustable compression settings
Pull requests are welcome. For major changes, please open an issue first to discuss what you'd like to change.
Made with 💙 by Star1ord
Feel free to reach out via GitHub or email if you have suggestions or improvements!