Documentation
Getting started
Everything you need as a user or contributor.
Installation
Download the latest FileConverterPro_Setup_v1.0.6.exe from the Releases page and run it.
The installer:
- Runs without administrator rights
- Supports English and French during setup
- Targets 64-bit Windows 10 / 11 only
- Optionally creates a Desktop shortcut
- Optionally associates
.fcprojproject files with the app - Offers to add a Windows Defender exclusion for the install folder
PowerShell one-liner (silent install)
$f="$env:TEMP\fcp.exe"; Invoke-WebRequest "https://github.com/Hyacinthe-primus/File_Converter_Pro/releases/latest/download/FileConverterPro_Setup_v1.0.6.exe" -OutFile $f; Start-Process $f "/SILENT" -Wait; Remove-Item $f
Portable version
Download the .zip from the Releases page, extract anywhere, and run File Converter Pro.exe. All settings, history, and achievements are stored in the same folder, you can move the folder and everything moves with it.
.fcproj files. Open projects via File → Open Project inside the app.PowerShell one-liner (portable)
$z="$env:TEMP\fcp.zip"; $d="$env:USERPROFILE\Downloads\FileConverterPro"; Invoke-WebRequest "https://github.com/Hyacinthe-primus/File_Converter_Pro/releases/latest/download/File_Converter_Pro_v1.0.6.zip" -OutFile $z; Expand-Archive $z -DestinationPath $d -Force; Remove-Item $z; Start-Process explorer.exe $d
System requirements
| Component | Requirement |
|---|---|
| OS | Windows 10 or 11 (64-bit) |
| RAM | 4 GB min / 8 GB recommended |
| Disk | ~300 MB free |
| Display | 1280 × 720 or higher |
| Dependencies | None – fully self-contained |
Optional tools
FCP works on a clean machine. Install any of the following and it will detect them automatically for higher-quality output, no configuration needed.
| Tool | What it unlocks |
|---|---|
| Microsoft Office | Pixel-perfect DOCX / XLSX / PPTX → PDF via COM automation. Required for legacy .ppt. |
| LibreOffice | High-quality PPTX → PDF and XLSX → PDF without Office. |
| Pandoc | Better TXT / RTF / EPUB → PDF; RTF → DOCX with proper formatting. |
| MiKTeX | Pandoc's LaTeX PDF pipeline for best typographic output. |
| wkhtmltopdf | Best HTML → PDF rendering — full CSS, fonts, local images. |
Windows Defender & antivirus
Adding the install folder to Defender exclusions is strongly recommended. The installer offers to do this automatically. For the portable version:
Add-MpPreference -ExclusionPath "C:\Your\Folder\File Converter Pro"
If you get an "application control policy blocked this file" error, run this in an Administrator PowerShell, replacing the path with your actual install folder:
Get-ChildItem -Path "C:\Your\path\to\File Converter Pro" -Recurse | Unblock-File
Languages
FCP ships with built-in French and English. To add a new language: create a .lang file (UTF-8 JSON) and place it in the languages/ folder in the internal directory next to the executable. It will appear in Settings automatically on next launch.
See CONTRIBUTING.md for a step-by-step guide.
Clone & install
git clone https://github.com/Hyacinthe-primus/File_Converter_Pro.git
cd File_Converter_Pro
pip install -r requirements.txt
python main.py
Requires Python 3.11 or 3.13.
Project structure
File Converter Pro/
│
├── main.py # Entry point — splash, single instance, CLI, drag & drop
├── config.py # Encrypted config manager, Windows dark mode detection
├── translations.py # i18n engine (FR/EN built-in + .lang/.json file support)
├── conversion_worker.py # Background QThread conversion worker
├── advanced_conversions.py # Extra conversion routines
├── dashboard.py # Statistics dashboard (Matplotlib animated charts)
├── database.py # SQLite abstraction layer
├── donate.py # Donation dialog — kofi, animated UI, donor flag
├── history.py # Conversion history panel
├── widgets.py # Shared custom Qt widgets (AnimatedCheckBox, etc.)
├── special_events_manager.py # Date-aware special events (birthday, new year…)
├── system_notifier.py # Native Windows desktop notifications
├── quick_check.py # Companion build-verification tool (Tkinter)
├── daemon.py # Silent background daemon — watcher/scheduler tasks
├── qss_helpers.py # Shared QSS utilities
│
├── app/
│ ├── __init__.py # FadingMainWindow, FileConverterApp
│ ├── ui.py # AppUIMixin — all UI construction
│ ├── logic.py # AppLogicMixin — all business logic
│ └── mixins/
│ ├── __init__.py
│ ├── archive_engines.py
│ ├── batch.py
│ ├── compression.py
│ ├── file_management.py
│ ├── image_to_pdf.py
│ ├── optimization.py
│ ├── panels.py
│ ├── pdf_operations.py
│ ├── pdf_to_word.py
│ ├── project_management.py
│ ├── theme_language.py
│ └── word_to_pdf.py
│
├── context_menu/
│ ├── __init__.py
│ ├── formats.py # Context menu formats
│ └── window.py # Quick Convert popup — Windows Shell Integration
│
├── converter/
│ ├── __init__.py
│ ├── converters.py # AdvancedConverterEngine — all format pipelines
│ ├── advanced_db.py # SQLite DB for conversion stats
│ ├── html_inline.py # HTML inline style processing
│ └── mixins/
│ ├── __init__.py
│ ├── document_converters.py
│ ├── image_converters.py
│ └── media_converters.py
│
├── achievements/
│ ├── __init__.py
│ ├── achievements_system.py # Achievement definitions and unlock logic
│ ├── achievements_manager.py # Persistence and state management
│ ├── achievements_ui.py # Full achievements panel UI
│ ├── achievements_popup.py # Animated real-time unlock pop-up
│ └── rank_popup.py # Rank-up celebration dialog
│
├── dialogs/
│ ├── __init__.py
│ ├── batch_convert_dialog.py
│ ├── batch_rename_dialog.py
│ ├── compression_dialog.py
│ ├── conversion_options_dialog.py
│ ├── merge_order_dialog.py
│ ├── password_dialog.py
│ ├── pdf_protection_dialog.py
│ ├── pdf_to_word_dialog.py
│ ├── preview_dialog.py
│ ├── settings_dialog.py
│ ├── split_dialog.py
│ ├── splash_screen.py
│ ├── terms_dialog.py
│ └── word_to_pdf_dialog.py
│
├── tasks/
│ ├── __init__.py # Automation engine: Watch Folders & Scheduled Tasks
│ ├── watcher.py # Folder watcher — monitors paths for new files
│ └── scheduler.py # Task scheduler — triggers conversions on interval/time
│
├── templates/
│ ├── __init__.py
│ ├── create_template_dialog.py
│ ├── template_editor_dialog.py
│ ├── template_manager.py
│ └── templates.py
│
├── utils/
│ ├── __init__.py
│ └── translation_mixin.py
│
├── automation/
│ └── example_automation.toml # TOML rule configs for watcher & scheduler tasks
│
├── tests/
│ ├── conftest.py
│ ├── test_batch.py
│ ├── test_compression.py
│ ├── test_converter_edge.py
│ ├── test_converters.py
│ ├── test_dialogs.py
│ ├── test_document_conversions.py
│ ├── test_integration.py
│ ├── test_mixins.py
│ ├── test_templates.py
│ ├── test_translations.py
│ └── test_utils.py
│
├── styles/
│ └── themes/
│ ├── buttons.qss # Shared — BtnOK, BtnCancel, BtnCancelRed
│ ├── advanced_conversions_buttons.qss
│ ├── history_calendar.qss
│ ├── history_date.qss
│ ├── window_card.qss
│ ├── dark/
│ │ ├── style.qss
│ │ ├── advanced_conversions.qss
│ │ ├── advanced_group.qss
│ │ ├── contact_links.css
│ │ ├── dashboard.qss
│ │ ├── lang_scroll.qss
│ │ ├── scrollbar.qss
│ │ ├── templates.qss
│ │ ├── terms.qss
│ │ └── terms_html.css
│ └── light/
│ ├── style.qss
│ ├── advanced_conversions.qss
│ ├── advanced_group.qss
│ ├── contact_links.css
│ ├── dashboard.qss
│ ├── lang_scroll.qss
│ ├── scrollbar.qss
│ ├── templates.qss
│ ├── terms.qss
│ └── terms_html.css
│
├── languages/
│ ├── blank.lang
│ ├── en-revisited.lang
│ ├── en.json
│ ├── fr.json
│ ├── it.lang
│ ├── ru.lang
│ └── zh.lang
│
├── legal/
│ ├── privacy_policy_{en,fr,it,ru,zh}.html
│ └── terms_conditions_{en,fr,it,ru,zh}.html
│
├── LICENSE/
│ ├── LICENSE.txt
│ └── LICENSE_FR.txt
│
├── fonts/
│ ├── Celestia-Silence.ttf
│ └── Inter-Regular.ttf
│
├── icons/ # 27 format/app icons (.ico, .png)
│
├── Assets/ # 68 achievement/rank/event images (.png, .svg)
│
├── SFX/ # 25 sound effects (.wav, .mp3)
│
├── previews/ # 15 screenshots/GIFs for README
│
├── Output/
│ └── FileConverterPro_Setup_v1.0.6.exe
│
├── build/ # PyInstaller build intermediates
├── dist/
│ └── File Converter Pro/
│ └── File Converter Pro.exe # Bundled executable + _internal/
│
├── .github/
│ ├── FUNDING.yml
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug_report.md
│ │ └── feature_request.md
│ └── workflows/
│ └── oosmetrics.yml
│
├── pyproject.toml # Project metadata & dependencies
├── requirements.txt # Pinned dependencies
├── build.ps1 / build_all.ps1 # Build scripts
├── build_installer.ps1 # Inno Setup build script
├── build_quick_check.ps1
├── build.spec / quick_check.spec # PyInstaller specs
├── setup.iss # Inno Setup installer script
├── manifest.xml # Windows app manifest
├── version_info.txt # Version resource info
│
├── icon.ico / icon.png # App icons
├── manager_icon.ico # Manager icon
├── installer_banner.bmp # Installer banner
├── achievements.db # Runtime DB (achievements)
├── file_converter_advanced.db # Runtime DB (conversion stats)
├── file_converter_stats.db # Runtime DB (general stats)
├── file_converter_config.dat # Encrypted config file
├── file_converter_key.key # Encryption key
├── special_events.db # Runtime DB (events)
│
├── .gitignore
├── README.md
├── ROADMAP.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── COMMERCIAL_LICENSE.md
└── LICENSE.md
Building the exe
The project uses PyInstaller for the executable and Inno Setup for the installer. See the For Developers wiki page for the full build guide. Note: UPX is used but be careful with Qt DLLs as improper usage can corrupt them.
Contributing
Contributions are welcome: Translations, Bug fixes, or larger features. Read CONTRIBUTING.md first. For complex changes (Linux port, new format category), open an issue before starting work.
Known limitations
| Area | Details |
|---|---|
| Windows only | COM automation, registry-based dark mode detection, and PyInstaller packaging are Windows-first. macOS / Linux planned. |
| Build size | ~435 MB compiled – inherent to Python + PySide6 + Matplotlib. |
| PDF → DOCX quality | Depends on source PDF. Scanned PDFs with no text layer are only partially recoverable. |
| .ppt legacy format | Requires Microsoft Office or LibreOffice. python-pptx cannot open old binary .ppt files. |
| No cloud / sync | History and settings are local only – no backup, no multi-device profiles. |
| Solo development | Progression depends on availability outside of studies. |
License
File Converter Pro uses a dual licensing model:
- GPLv3 – free to use, modify, and distribute. See LICENSE.txt.
- Commercial License – required for integration into proprietary or closed-source products. See COMMERCIAL LICENSE.md.
© Prime Enterprises (Hyacinthe). All rights reserved.