What's New in v1.0.7
Converter
- Engine-based mixin architecture – the converter was split into independent per-format mixins (RTF, PPTX, EPUB, HTML, PDF, Office COM) with a centralized dispatch table and shared
ConversionResulthelpers. - Word to PDF options – image compression and metadata stripping when converting Word documents to PDF.
- RTF to PDF – native RTF rendering with underline, color, and table support.
- PPTX to PDF – native PowerPoint to PDF rendering via python-pptx.
- EPUB to PDF – EPUB rendering with pandoc and a native fallback chain.
- HTML to PDF – HTML rendering with resource inlining.
- Office COM to PDF – direct Word/Excel/PowerPoint to PDF via COM automation.
- LibreOffice fallback for PDF to DOCX – if the native engine fails, LibreOffice is tried as a second engine.
- PDF to HTML – new conversion type using PyMuPDF dict-mode rendering.
- Multi-engine fallback chain – document conversions now try multiple engines in sequence (native, LibreOffice, COM) and fall through on failure.
Compression
- 7-Zip replaces WinRAR – file compression now uses 7-Zip for ZIP splitting and 7Z format support.
- Page breaks between merged Word documents – merged DOCX files now include page breaks between each source document.
- PDF optimization for scanned PDFs – scanned PDFs are now supported by the optimizer with Ghostscript and native fallbacks.
- PDF compression fix – optimization no longer reports 0% or negative values.
Optimization
- Per-format optimization mixins – image, media (ffmpeg), office, web, EPUB, and PDF optimizers are now separate mixins.
- Optimization card – the old "more conversions" card was replaced with a dedicated optimization panel.
External Tools
- Centralized binary resolver – ffmpeg, 7-Zip, and LibreOffice are now resolved through a single lookup chain: system PATH, app-local directory, common install directories, and a config file (
config/external_binaries.conf). - External binaries config file – users can manually point the app to tool locations via an INI-style config.
- Configurable ICO layer sizes – the ICO export layer sizes can be customized in Settings.
- ffmpeg not found message – when ffmpeg is missing, the error now shows a
winget installcommand the user can paste in PowerShell.
Multi-Project Tabs
- Up to 5 project tabs – files can be organized into separate project workspaces within the app, each with its own info dialog.
i18n
- Flagged language names – language names in the selector now display their country flag.
- Missing translation keys filled – all translation gaps across English, French, Italian, Russian, and Chinese have been completed.
- Nav tooltip re-translation – navigation tooltips now re-translate when switching languages without restarting.
Themes
- Custom theme support – a theme manager was added to handle user-created QSS themes.
- Merge order styling – the merge order dialog now respects dark/light theme.
Build & Packaging
- Exe renamed to FCP – the packaged executable and dist folder are now
FCP.exe/FCP/. - ~50 MB bundle reduction (269 MB to ~219 MB) – orphaned Qt6 DLLs (Qt6Pdf, Qt6Quick, Qt6Qml), Pythonwin/MFC, Crypto/pycryptodome, libx265, and niche Qt plugins were removed.
- SFX compressed to OGG – achievement and event sounds went from WAV (16.3 MB) to OGG (2.9 MB).
- Qt translations trimmed – from 299 to 33
.qmfiles, keeping the top 10 most widely spoken languages. - Pinned pikepdf to 10.11.0 for reproducible builds.
- Windows-only deps gated to win32 – platform-specific packages are no longer installed on Linux/macOS.
Testing
- 193 tests – architecture tests for translations, mixins, and QSS styling; external binaries resolution tests; multi-engine fallback chain tests; batch copy and conversion mixin tests.
- Shared fixtures in
conftest.py– QApp session fixture, offscreen platform, and isolated app fixture consolidated into a single conftest.
Fixes
- Thread-safe notifications, update sound restored, version check and terminal clear fixed.
- Notifier kept alive and services started on the Qt main thread.
- Percent environment variables expanded in external binary paths on all platforms.
- Fix to PDF and Word Merger, requests package, languages json by @ivanmag22 in #29
- Media conversion error fixed.
- Automation path resolved relative to CWD.
- Table elements in PDF-to-DOCX rendering fixed.
- Assembly version corrected.
- PDF optimization error fixed.
- Security policy added (
SECURITY.md).
Full Changelog: v1.0.6...v1.0.7