A production-grade, extensible desktop application for converting files. Currently supports DOCX and PDF to TXT conversion, with a scalable plugin architecture for future formats.
- Responsive GUI: Built with standard
tkinter(ttk), scales gracefully. - Multilingual: Supports standard fallback mechanism (en-US, zh-TW).
- Format Conversion: Convert
.docxand.pdffiles containing paragraphs, tables, headers, and footers. - Table Handling: Normalizes irregular tables, supports TSV or Pipe formats.
- Output Chunking: Split long output into smaller parts for web uploads.
- Headless CLI: Automate conversions via command line.
- Scalable Architecture: Everything is a plugin. Add Markdown, Excel, or other format support without touching the core engine.
- Prerequisites: Python 3.9+
- Install:
pip install -e .[dev]
- Run GUI:
ufc # or python src/ufc/app.py
ufc convert --in-type docx --out-type txt --lang zh-TW --output-dir ./out sample.docxRun ufc convert --help to see all available options.
Uses pytest for unit and end-to-end tests:
pytest -v tests/You can build a standalone executable using PyInstaller.
- Make sure PyInstaller is installed (
pip install -e .[build]). - Run the build script:
python scripts/build_exe.py- The standalone
.exewill be located in thedistfolder.
- Configs: User config is saved cleanly to
~/.universal_file_converter.json. - Telemetry: This application contains zero telemetry, analytics, or hidden behavior.
- Logs: No log files are left behind maliciously. All operations happen in-memory or are directly written to the user-specified folder.