SumPDF is a free and open-source desktop application built with Compose for Desktop that allows you to effortlessly combine multiple PDF files and convert various document types (SVG, PNG, JPG, JPEG, ODT, DOC, DOCX) to PDF; Enhance your PDF workflow by extracting specific pages, splitting files by range, deleting selected pages, reordering pages to your preference, and merging the remaining pages into a new document. All features are free and open-source.
- π Complete Page Extraction: Split any PDF into individual pages with real-time preview
- π― Range-Based Splitting: Extract specific page ranges (e.g., pages 5-15) for focused document creation
- ποΈ Interactive Page Management: Reorder, delete, and merge extracted pages with intuitive interface
- β‘ Real-time UI Updates: Watch pages appear as interactive cards during the extraction process
- π Dynamic Main Screen: New staggered grid layout with smooth spring animations
- π¬ Polished Animations: Smooth transitions for page operations and navigation
- π Better Visual Feedback: Clear progress indicators and responsive UI elements
- π Comprehensive Logging: Detailed operation tracking for better troubleshooting
- Merge multiple PDF files into a single document
- Drag & drop support for easy file selection
- Custom output file naming and location
- Preserves original document quality
- Text files (
.txt) - Instant conversion with proper formatting - Images (
.png,.jpg,.jpeg) - Maintains aspect ratio and quality - Vector graphics (
.svg) - Rasterization via Apache Batik - Documents (
.doc,.docx,.odt) - Professional conversion via LibreOffice
- Complete Splitting: Extract all pages into individual files
- Range Extraction: Extract specific page ranges (e.g., pages 10-25)
- Interactive Management: Reorder, delete, and merge extracted pages
- Real-time Preview: See extracted pages as they're processed
- Modern UI with dark/light mode support
- Real-time progress tracking with file-by-file feedback
- Drag & drop interface for intuitive file management
- Recent folders for quick access to output locations
- Batch processing - convert multiple files simultaneously
- Smooth animations and responsive interactions
- LibreOffice must be installed separately
- Windows: Download from LibreOffice.org
- Linux:
sudo apt install libreoffice(Ubuntu/Debian) or equivalent - macOS: Install via Homebrew
brew install --cask libreoffice
| File Type | Conversion Speed | Notes |
|---|---|---|
Text (.txt) |
Instant | < 1 second |
Images (.png, .jpg, .jpeg) |
Instant | < 1 second |
Vector (.svg) |
Almost instant | ~ 1 second |
Documents (.doc, .docx, .odt) |
~9 seconds per file | Requires LibreOffice startup |
| PDF Splitting | ~150ms per page | Real-time preview available |
Note: Document conversions are slower due to LibreOffice process management. The first conversion may take longer as LibreOffice initializes.
Easy installation via APT repository:
π¦ Install from my APT Repository
This is the recommended method for Ubuntu/Debian users as it provides automatic updates and dependency management.
- Go to Releases
- Download the appropriate installer:
- Windows:
.exeor.msiinstaller - Linux:
.debpackage (manual installation)
sudo dpkg -i sumpdf_1.3.1-1_amd64-wm.deb
sudo apt install -f- Run the
.exeinstaller and follow the setup wizard - Administrator privileges may be required
- JDK 17+
- Gradle 8.0+
# Clone the repository
git clone https://github.com/zahid4kh/sumpdf.git
cd sumpdf
# Run the application
./gradlew :run
# Or run with hot-reload for development
./gradlew :runHot --mainClass SumPDF --auto
# Create distribution packages
./gradlew packageDeb # Linux .deb
./gradlew packageMsi # Windows .msi
./gradlew packageExe # Windows .exe
./gradlew packageDmg # macOS .dmg- UI Framework: Compose for Desktop
- Language: Kotlin
- PDF Processing: Apache PDFBox 3.0.3
- Document Conversion: JodConverter + LibreOffice
- SVG Processing: Apache Batik
- Dependency Injection: Koin
- Serialization: Kotlinx Serialization
- LibreOffice Required: Document conversion (
.doc,.docx,.odt) requires LibreOffice installation - Conversion Speed: Document conversion is slower (~9 seconds per file) due to LibreOffice overhead
Contributions are welcome! Please feel free to submit issues, feature requests, or pull requests.
- Install LibreOffice for testing document conversion
- Use
./gradlew :runHotfor hot-reload development - Test on multiple platforms before submitting PRs
This project is licensed under the Apache 2.0 License. See LICENSE for more details.
Made with β€οΈ using Kotlin and Compose for Desktop


