PrintReactor
Note: This app is in very early development. Expect bugs, missing features, and rapid changes. Feedback and contributions are welcome!
A modern, cross-platform document printing solution with format conversion, inspired by the lack of open source alternatives to PrintConductor.
Why PrintReactor?
I created PrintReactor because I could not find any open source alternative to PrintConductor. This project aims to fill that gap and provide a free, community-driven, and extensible solution for batch printing and document conversion.
β¨ Features
Document Conversion
- Office Documents: DOCX, XLSX, PPTX, DOC, XLS, PPT
- LibreOffice Formats: ODT, ODS, ODP
- Spreadsheets: CSV, XLSM, XLSB
- Presentations: PPS, PPSX, PPTM
- Images: JPG, PNG, GIF, BMP, TIFF
- Text Files: TXT, CFG, CONF, LOG, MD
- Web: HTML (planned)
- PDFs: Direct printing without conversion
Printing Capabilities
- Multi-Method Fallback System: Automatically switches between RAW, PowerShell, and Shell Print methods for maximum printer compatibility
- Legacy Printer Support: Works with older printers that don't support modern XPS/RAW modes
- Batch Queue Management: Print multiple files in sequence
- Modern UI: Dark/light theme support with Svelte 5
- Cross-Platform: Windows, macOS, Linux support
πΈ Screenshots
Main interface with queue management
Batch printing in action
π DEV Requirements
Windows
- OS: Windows 10/11 (64-bit)
- Go: 1.24.1 or later (for building from source)
- LibreOffice: 7.0+ (recommended for office document conversion)
- Node.js: 18+ and pnpm (for frontend development)
macOS (Not sure, I did not test on mac yet.)
[TODO]
Linux
- OS: Ubuntu 20.04+, Fedora 35+, or equivalent
- Go: 1.24.1 or later
- LibreOffice: 7.0+ (required for office document conversion)
- Dependencies:
gtk3, webkit2gtk
- Node.js: 18+ and pnpm
πΎ Installation
Pre-built Binaries
Download from Releases
Build from Source
See BUILDING.md for detailed build instructions for all platforms.
Quick start:
# Install Wails CLI
go install github.com/wailsapp/wails/v2/cmd/wails@latest
# Clone and build
git clone https://github.com/cheikhhachem/PrintReactor.git
cd PrintReactor
cd frontend && pnpm install && cd ..
wails build # Or use wails dev for live changes
π Usage
- Launch PrintReactor
- Add files via drag-and-drop or file picker
- Select printer from the dropdown
- Click Print to start the queue
Office File Conversion
- Windows: LibreOffice (recommended) or Microsoft Office
- macOS/Linux: LibreOffice (required)
π§ Troubleshooting
Conversion Issues
Problem: Office documents fail to convert or dont get added to the queue
- Solution:
- Install LibreOffice: https://www.libreoffice.org/download/
- Ensure LibreOffice is in PATH or installed in default location
- On Windows: Check
C:\Program Files\LibreOffice\program\soffice.exe
Problem: Conversion is slow
- Solution: LibreOffice and specially Microsoft Office first-launch initialization can be slow. Subsequent conversions will be faster.
General Issues
Problem: Application won't start
- Solution:
- Check Windows Event Viewer for errors
- Ensure .NET Framework 4.8+ is installed
- Try running as administrator
Need More Help?
- Check GitHub Issues
- Create a new issue with logs from
%TEMP%\PrintReactor\ (Not implemented yet , but it will be in the near future.)
ποΈ Architecture
- Backend: Go 1.24.1 with Wails v2 framework
- Frontend: Svelte 5 + TypeScript + Vite + TailwindCSS 4
- Printing: Multi-method fallback system (PowerShell β RAW β Shell Print)
- Conversion: LibreOffice headless mode with smart polling
- Temp Management: Cross-platform temp directory with delayed cleanup
For detailed architecture documentation, see docs/ARCHITECTURE.md.
πΊοΈ Roadmap
Core Features (Completed)
- β
Multi-format document conversion
- β
Fallback printing system
- β
Basic queue management
- β
Temp file lifecycle management
Planned Features
Not Planed yet, but mabe in consideration
Have a feature idea? Open an issue with the enhancement label!
π€ Contributing
See CONTRIBUTING.md and CODE_OF_CONDUCT.md.
We welcome contributions of all kinds:
- π Bug reports and fixes
- β¨ New features and enhancements
- π Documentation improvements
- π Translations
- π§ͺ Test coverage
π License
GNU Affero General Public License v3.0 - See LICENSE
This means:
- β
Free to use, modify, and distribute
- β
Can use in commercial projects
- β οΈ Must disclose source code when distributing
- β οΈ Network use is considered distribution (AGPL requirement)
π€ Author
Cheikh Hachem
π Acknowledgments
π Project Status
- Development Status: Early Beta
- Stability: Experimental
- Production Ready: Not yet recommended
- Active Development: Yes