Professional Document Conversion Software
A powerful, cross-platform desktop application for converting documents between multiple formats with a modern graphical interface. Pure Python implementation - no external dependencies required for most conversions!
DocConverter is a professional-grade document conversion tool designed for efficiency and ease of use. Built with Python and PyQt6, it provides a modern graphical interface for batch document conversion with real-time progress tracking and comprehensive logging.
Key Features:
- π Pure Python - No Office/LibreOffice required for most conversions
- π Multiple Formats - Word, PDF, Excel, PowerPoint, Images, HTML
- β‘ Batch Processing - Convert multiple files simultaneously with optimized performance
- π Real-time Progress - Live progress bars and status updates
- π¨ Modern UI - Clean, intuitive interface with drag-and-drop support
- π Cross-platform - Works on Windows, Linux, and macOS
- π Comprehensive Logging - Detailed logs for troubleshooting
- π§ Extensible Architecture - Easy to add new converters
| From | To | Library | External Dependencies |
|---|---|---|---|
| π Word (.docx, .doc) | π PDF | python-docx + reportlab | β None |
| π PDF | π Word (.docx) | pdf2docx | β None |
| πΌοΈ Images (PNG, JPG, BMP, GIF, TIFF) | π PDF | Pillow | β None |
| π PDF | πΌοΈ Images | pdf2image | β None |
| π Excel (.xlsx, .xls) | π PDF | openpyxl + reportlab | β None |
| π¨ PowerPoint (.pptx) | π PDF | python-pptx + reportlab | β None |
| π HTML | π PDF | weasyprint | β None |
| π PDF Merge | π PDF | pypdf | β None |
| ποΈ PDF Compress | π PDF | pypdf | β None |
The modular architecture allows easy addition of new converters. Simply extend ConverterBase and register your converter!
- OS: Windows 10 or later (64-bit recommended)
- Python: 3.8 or higher
- RAM: 4GB minimum, 8GB recommended
- Disk Space: 200MB for application + dependencies
- OS: Any modern distribution (Ubuntu 20.04+, Fedora 35+, etc.)
- Python: 3.8 or higher
- RAM: 4GB minimum, 8GB recommended
- Disk Space: 200MB for application + dependencies
- OS: macOS 10.14 (Mojave) or later
- Python: 3.8 or higher
- RAM: 4GB minimum, 8GB recommended
Download the standalone executable - No Python installation required!
π Download DocConverter.exe (41.5 MB)
Just download and run - it's that simple!
-
Clone the repository:
git clone https://github.com/DroneTechTI/DocConverter.git cd DocConverter -
Install dependencies:
pip install -r requirements.txt
-
Run the application:
python main.py
# Create virtual environment
python -m venv venv
# Activate (Windows)
venv\Scripts\activate
# Activate (Linux/macOS)
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Run
python main.py- Launch the application:
python main.py - Drag and drop files or click "π Add Files"
- Select conversion type from dropdown
- (Optional) Choose output folder
- Click "π Convert All"
- Monitor progress in real-time
Convert multiple files at once:
- Add all files to the queue
- The batch optimizer automatically parallelizes conversions
- Memory optimizer ensures efficient resource usage
- Progress is tracked per file with overall completion percentage
# Single file conversion
python main.py convert input.docx output.pdf
# Batch conversion
python main.py convert-batch input_folder/ output_folder/ --format pdfDocConverter/
βββ main.py # Application entry point
βββ requirements.txt # Python dependencies
βββ README.md # This file
βββ LICENSE # MIT License
βββ CHANGELOG.md # Version history
β
βββ assets/ # Application resources
β βββ icon.ico # Windows icon
β βββ icon.png # Cross-platform icon
β
βββ config/ # Configuration modules
β βββ settings.py # Application settings
β βββ i18n.py # Internationalization
β βββ user_settings.py # User preferences
β
βββ core/ # Core architecture
β βββ converter_base.py # Abstract base class
β βββ converter_registry.py # Converter management
β βββ dependency_checker.py # Dependency validation
β
βββ converters/ # Converter implementations
β βββ word_to_pdf.py
β βββ pdf_to_word.py
β βββ images_to_pdf.py
β βββ pdf_to_images.py
β βββ excel_to_pdf.py
β βββ powerpoint_to_pdf.py
β βββ html_to_pdf.py
β βββ pdf_merge.py
β βββ pdf_compress.py
β
βββ gui/ # Graphical interface
β βββ main_window.py # Main application window
β βββ styles/ # UI themes
β βββ widgets/ # Custom widgets
β
βββ utils/ # Utility modules
β βββ logger.py # Logging system
β βββ error_handler.py # Error management
β βββ file_handler.py # File operations
β βββ batch_optimizer.py # Batch processing
β βββ memory_optimizer.py # Memory management
β
βββ tests/ # Unit tests
βββ test_converters.py
βββ test_new_features.py
- Create a new file in
converters/:
from core.converter_base import ConverterBase
from utils.error_handler import ConversionError
class MyConverter(ConverterBase):
def get_info(self):
return {
'name': 'My Converter',
'input_formats': ['.ext1', '.ext2'],
'output_format': '.pdf',
'description': 'Converts my format to PDF',
'requires_dependency': None
}
def convert(self, input_path, output_path, progress_callback=None, **kwargs):
# Implement conversion logic
return True- Register in
converters/__init__.py:
from .my_converter import MyConverter
registry.register(MyConverter)# Run all tests
python -m pytest tests/
# Run specific test file
python -m pytest tests/test_converters.py
# Run with coverage
python -m pytest --cov=. tests/Import Errors
pip install -r requirements.txt --upgradePermission Errors
- Ensure files are not open in other applications
- Check file/folder permissions
- Run as administrator (if necessary)
Missing Libraries The application auto-installs missing Python packages on first run. If auto-install fails:
pip install python-docx pypdf Pillow reportlab openpyxl python-pptx weasyprint pdf2docx pdf2image colorlog psutilGUI Not Starting
- Verify PyQt6 installation:
pip install PyQt6 --upgrade - Check Python version:
python --version(must be 3.8+)
Application logs are stored in logs/docconverter.log with automatic rotation (max 10MB, 5 backups).
See CHANGELOG.md for detailed version history.
Current Version: 2.5.0
- Complete English translation
- Professional code refactoring
- Enhanced type hints and documentation
- Improved architecture and modularity
This project is licensed under the MIT License - see the LICENSE file for details.
MIT License
Copyright (c) 2026 DocConverter Team
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
DocConverter Team
- GitHub: @DevilStyle
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Follow PEP 8 style guidelines
- Add type hints to all functions
- Write comprehensive docstrings (Google style)
- Include unit tests for new features
- Update documentation as needed
If you find this project useful, please consider giving it a star on GitHub!
For issues, questions, or suggestions:
- Open an issue on GitHub
- Check existing documentation
- Review closed issues for solutions
Made with β€οΈ by DocConverter Team