Translate PDF-, Word-, Excel- und PowerPoint-Dateien unter Beibehaltung des ursprünglichen Formats und Stils – angetrieben von Ollama, MLX oder LMStudio mit automatischer Erkennung der Ausgangssprache.
Was ist XteVision TransDocs und wer soll es nutzen?
XteVision TransDocs ist ein Python-Skript und eine Web-UI zum Übersetzen von Microsoft-Office-Dateien und PDFs unter Beibehaltung des ursprünglichen Formats und Stils. Es nutzt die Ollama-, MLX- oder LMStudio-API und kann die Ausgangssprache automatisch erkennen (mindestens 50 Wörter) oder eine manuell vorgegebene Ausgangssprache akzeptieren.
Dieses Tool ist für Produktionsmaß-Workloads genauso gedacht wie für persönliche Übersetzungsaufgaben. Es unterstützt mehrere UI-Sprachen (EN, CN, DE) und drei austauschbare AI-Backends, sodass es sich sowohl für Einzellenten als auch für Enterprise-Bereitstellungen eignet.
Was TransDocs leisten kann
Erkennt die Ausgangssprache durch Analyse von mindestens 50 Wörtern des Dokuments.
Ersetzen der Erkennung über das -s / --src_lang-Argument für OCR-freundlichere Ausgaben.
Übersetzt Absätze, Tabellen, Kopf- und Fußzeilen unter Beibehaltung des Layouts.
Verwendet eingebetteten Text, wo verfügbar; gescannte Seiten fallen auf Poppler + Tesseract-OCR zurück.
Lauf gegen Ollama, MLX oder LMStudio – je nach eigener Infrastruktur.
Für wichtige PDFs kann jede Seite vor der Übersetzung mit dem Visionmodell geprüft werden.
Software und Systempakete
python-docx, python-pptx, openpyxl, Pillow, pytesseract, python-dotenv, requests, langdetect, flask, werkzeugpoppler-utils (pdftoppm oder pdftocairo in PATH) und tesseract-ocr mit den für deine Dokumente notwendigen SprachpaketenTRANSDOC_API_TOKEN, wenn dein Backend Authentifizierung erfordertUmgebung einrichten und Abhängigkeiten installieren
cd TransDocs
python -m venv venv
source venv/bin/activate # Auf Windows: venv\Scripts\activate
pip install -r requirements.txt
sudo apt-get install -y poppler-utils tesseract-ocr tesseract-ocr-eng
Installiere je nach Quelldokument weitere Tesseract-Sprachpakete.
Passe die Einstellungen in .env bei Bedarf an. Die vollständige Liste der unterstützten Schlüssel findest du im Abschnitt Konfiguration.
Laufzeiteinstellungen in der .env-Datei
Die .env-Datei kann ähnlich wie beim Setup invoicer verwaltet werden. Unterstützte Schlüssel include:
| Schlüssel | Funktion |
|---|---|
| TRANSDOC_PROVIDER | Gewähltes Backend |
| TRANSDOC_OLLAMA_URL | Ollama-Base-URL |
| TRANSDOC_MLX_URL | MLX-Backend-URL |
| TRANSDOC_LM_STUDIO_URL | LMStudio-Backend-URL |
| TRANSDOC_DEFAULT_MODEL | Standardmodell, wenn keins vorgegeben ist |
| TRANSDOC_API_TOKEN | Authentifizierungs-Token für das Backend |
| TRANSDOC_UPLOAD_DIR | Verzeichnis für hochgeladene Dateien |
| TRANSDOC_OUTPUT_DIR | Verzeichnis für die übersetzte Ausgabe |
| TRANSDOC_SECRET_KEY | Flask-Sitzungsschlüssel |
| TRANSDOC_HOST | Host, an den sich die Web-UI bindet |
| TRANSDOC_PORT | Port, an den sich die Web-UI bindet |
| TRANSDOC_DEBUG | Flask-Debug-Modus aktivieren |
| TRANSDOC_LOG_FILE | Pfad zur Protokolldatei |
| TRANSDOC_TESSERACT_LANGS | Explizite OCR-Sprachen (z. B. eng+deu) |
Dokumente über die Kommandozeile übersetzen
Das Skript transdoc.py kann von der Kommandozeile aus ausgeführt werden. Bei PDF-Eingabe ist der Workflow hybrid: Text-PDFs werden direkt extrahiert, während gescannte oder rein bildbasierte Seiten auf OCR zurückfallen. Wenn du die Ausgangssprache bereits kennst, verbessert die Übergabe von -s die OCR-Sprachauswahl. Sowohl die CLI als auch die Flask-Anwendung laden .env automatisch, und die CLI unterstützt die Backend-Auswahl mit -p/--provider und -b/--base_url.
| Flagge | Name | Beschreibung |
|---|---|---|
| -i | input_file | Pfad zur Eingabedatei (Pflichtfeld) |
| -o | output_file | Pfad zum Speichern der übersetzten Datei (Pflichtfeld) |
| -t | target_lang | Zielsprachencode (z. B. en, de, fr) (Pflichtfeld) |
| -k | api_token | API-Token für die Authentifizierung (Pflichtfeld) |
| -m | model | Modellname für die Übersetzung (z. B. llama3.2) |
| -s | src_lang | Ausgangssprachencode (wenn weggelassen, automatische Erkennung) |
Übersetzung mit automatischer Erkennung der Ausgangssprache:
python transdoc.py -i input.docx -o output.docx -t en -k your_api_token
Übersetzung aus einer vorgegebenen Ausgangssprache:
python transdoc.py -i input.docx -o output.docx -t en -k your_api_token -s fr
Übersetzung mit einem bestimmten Modell:
python transdoc.py -i input.docx -o output.docx -t en -k your_api_token -m custom_model
Optionale Flask-basierte Oberfläche
Eine webbasierte Oberfläche verbessert die Bedienbarkeit, indem Benutzer Dateien hochladen und Übersetzungen erhalten können, ohne die Kommandozeile zu nutzen. Dies ist ein suggested Implementation mit Flask, die derzeit ungetestet ist.
pip install flask werkzeug
python app.py
Öffne einen Browser unter http://localhost:5000 und dann:
.docx-DateiMonitoring und Debugging-Ausgaben
Das Skript protokolliert detaillierte Informationen sowohl in die Konsole als auch in eine Datei namens translation_debug.log. Das Logging ist auf das DEBUG-Level eingestellt und erfasst alle Message-Level.
Um die Ausführlichkeit der Konsolen-Ausgabe zu reduzieren, kann das Logging-Level im Skript angepasst werden:
console_handler.setLevel(logging.INFO) # DEBUG zu INFO ändern
Häufige Probleme und Lösungen
DEBUG steht.-s, um die Ausgangssprache manuell vorzugeben.TRANSDOC_TESSERACT_LANGS überschreiben, z. B. export TRANSDOC_TESSERACT_LANGS=eng+deu.pdftoppm oder pdftocairo in PATH vorhanden ist.translation_debug.log auf aufgetretene Ausnahmen.app.run(debug=True, port=5001).