Mir ist aufgefallen, dass LibreOffice Writer eine gute Qualität hat: Wenn ich eine DOCX-Datei lade und sofort speichere, unterscheidet sich die gespeicherte Dateistruktur ein wenig von der Originaldatei – und zwar im positiven Sinne –, wodurch einige Probleme mit der DOCX-Struktur usw. gelöst werden (was mir später eine bessere Verarbeitung mit Apache POI ermöglicht).
Ich möchte es einfach verwenden, um .docx-Dateien zu reparieren, indem ich sie lade und sofort speichere – entweder über die Befehlszeile oder indem ich die Writer-Funktionen direkt aufrufe.
Wäre für einige Lösungshinweise dankbar.
Antwort1
libreoffice
Sie können das CLI-Tool verwenden . Es bietet eine --convert-to
Option zum Konvertieren von Dateien, mit der Sie Dateien in das gewünschte Format konvertieren können. Wenn Sie dies verwenden, ohne ein Ausgabeverzeichnis anzugeben,überschreibtdie Originaldatei jedoch, und Sie können ihr keinen anderen Ausgabedateinamen geben. Umgehen Sie das, indem Sie die Datei zuerst konvertieren /tmp/
und sie anschließend zurück verschieben:
libreoffice --convert-to docx --outdir /tmp/ NAME.DOCX && mv /tmp/NAME.DOCX ./NEWNAME.DOCX
Sie müssen nur die fettgedruckten Großbuchstaben ändern.NAME.DOCX
zu Ihrem Eingabedateinamen undNEWNAME.DOCX
zum gewünschten Ausgabedateinamen.
In der bash
Befehlszeile können Sie dies wie folgt verkürzen:
libreoffice --convert-to docx --outdir /tmp/ NAME.DOCX && mv !#:4!#:5 ./NEWNAME.!#:2
Dies verwendetbash
Geschichte Erweiterungdamit Sie Pfade und Dateinamen nicht mehrfach eingeben müssen – Sie müssen nurNAME.DOCX
zu Ihrem Eingabedateinamen undNEWNAME
zum gewünschten Ausgabedateinamen ohne Erweiterung.