Zum Inhalt springen

DOCX-Unterlagen über eine gemeinsame PDF-Repräsentation prüfen

Abgelöst am 02.11.2026: Die DOCX-Umwandlung gehörte zur entfernten Katalog-Extraktion und wurde mit ihr entfernt; die Kriterienextraktion nach docs/02-architecture/services/criteria-extraction.md liest DOCX direkt.

Status: implementiert am 25.09.2026.

Der Upload akzeptiert PDF und DOCX gemeinsam. DOCX wird mit LibreOffice headless in einem temporären Verzeichnis mit eigenem Benutzerprofil in PDF umgewandelt. Dieselbe PDF geht an Gemini, dient der lokalen Zitatprüfung und wird im Frontend als Fundstellen-Vorschau geöffnet. So beziehen sich Seitenangaben auf genau die geprüfte Darstellung. Schriftbild und Seitenumbrüche können von Word abweichen.

Die ursprüngliche DOCX bleibt unverändert. Für DOCX ist die Dokument-ID der SHA-256-Hash der Originaldatei; pdf_sha256 identifiziert die Konvertierung. Die Antwort hat schema_version=1.1, Dokumentmetadaten enthalten source_format und original_size. Das zusätzliche Feld converted_pdfs transportiert nur die konvertierten PDFs als Base64. Der Browser erzeugt daraus lokale Blob-URLs und entfernt diese Binärdaten vor dem JSON-Export. Keine neue persistente Ablage, Download-URLs mit öffentlicher Freigabe oder Datenbanktabellen.

DOCX-Pakete werden vor dem Start validiert: kein verschlüsseltes ZIP, keine Makros, maximal 100 MiB entpackt / 5000 Einträge, keine externen Ressourcen außer Hyperlinks. LibreOffice-Makros sind im separaten Profil deaktiviert. Konvertierung: 45 Sekunden je Dokument, maximal 90 Sekunden für die gesamte Vorbereitung. Temporäre Dateien werden auch im Fehlerfall entfernt; laufende Konvertierungsprozesse werden bei Timeout oder Abbruch beendet. Unter Linux läuft LibreOffice mit prlimit --data und höchstens 2 GiB Datensegment. Die Größenprüfung stützt sich auf die deklarierten Größen, die auch LibreOffice beim normalen Lesen einhält. Sein Reparaturmodus entpackt dagegen die echten Datenströme, und Bilder oder XML im Dokument können weit über das Archiv hinaus wachsen. Das Speicherlimit begrenzt diese Fälle; das Zeitlimit begrenzt die Rechenzeit.

Die vorhandenen Limits (10 Dateien / 20 MiB je Datei / 30 MiB gesamt / 200 Seiten) gelten weiterhin. Größenlimits gelten zusätzlich nach der Konvertierung. Frontend und Next.js-Proxy warten höchstens 420 Sekunden. Der Agent-Dockerbau installiert libreoffice-writer und fonts-liberation. Lokal wird soffice über PATH, den macOS-Standardpfad oder AGENT_DOCUMENT_SOFFICE_PATH gefunden.

    DOCX-Unterlagen über eine gemeinsame PDF-Repräsentation prüfen: VergabeFit Doku