Cross-platform virtual PDF printer and PDF combiner. Similar to PDFCreator, but open source and available for both Windows and Linux.
- Virtual PDF Printer: Appears as a printer in your system (Windows installer, Linux Snap)
- PDF Combiner: Drag and drop multiple PDFs to combine them
- Multiple Output Formats: Export as PDF, PNG, JPEG, or TIFF
- Page Management: Rotate pages, select page ranges, reorder documents
- Quality Settings: Configurable DPI and compression settings
- System Tray: Minimize to system tray for quick access
# Clone the repository
git clone https://github.com/OpenAEC-Foundation/open-pdf-creator.git
cd open-pdf-creator
# Create virtual environment
python -m venv venv
source venv/bin/activate # Linux/macOS
# or: venv\Scripts\activate # Windows
# Install dependencies
pip install -e .
# Run the application
open-pdf-creator
# or: python -m open_pdf_creator- Python 3.11 or higher
- Poppler (for PDF to image conversion)
sudo apt install poppler-utilsbrew install popplerDownload Poppler from poppler releases and add to PATH.
- Add Files: Click "Add Files" or drag and drop PDF files into the window
- Arrange: Drag files to reorder them
- Rotate: Use the rotate buttons on each file or right-click for options
- Export: Click "Export PDF" to save combined PDF, or "Export Images" for image output
# Open with files
open-pdf-creator file1.pdf file2.pdf
# The application will open with the specified files loaded# Install with development dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Run linter
ruff check src/
# Run type checker
mypy src/open-pdf-creator/
├── src/open_pdf_creator/
│ ├── core/ # Core functionality
│ │ ├── settings.py # Settings management
│ │ ├── pdf_processor.py # PDF operations
│ │ └── image_converter.py # Image export
│ ├── gui/ # GUI components
│ │ ├── main_window.py # Main window
│ │ ├── combiner_widget.py # PDF combiner
│ │ ├── save_dialog.py # Export dialog
│ │ └── settings_dialog.py # Settings dialog
│ ├── printer/ # Printer drivers (planned)
│ │ ├── windows/ # Windows port monitor
│ │ └── linux/ # CUPS backend
│ └── service/ # Background services (planned)
├── tests/ # Test files
└── installer/ # Installer scripts
├── windows/ # Inno Setup
└── linux/snap/ # Snap packaging
- Core PDF processing
- GUI application with drag & drop
- PDF combiner
- Image export (PNG, JPEG, TIFF)
- Settings management
- Linux CUPS printer backend
- Snap packaging
- Windows virtual printer driver
- Windows installer (Inno Setup)
- Auto-save print jobs
- Print job batching
MIT License - see LICENSE for details.
Contributions are welcome! Please feel free to submit a Pull Request.
Developed by OpenAEC Foundation