Tipp: Defektes LibreOffice-Dokument retten

Wenn Dateien des freien Office-Pakets kaputt sind, ist meist guter Rat teuer. Mit unserem Tipp kommen sie dennoch an ihre Daten.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 3 Min.

Frage: Ich arbeite mit LibreOffice und bislang war es immer zuverlässig. Nun bekomme ich beim Öffnen einer Datei aber die Fehlermeldung „Lesefehler. Formatfehler in Teildokument context.xml“. Wie komme ich an den Inhalt heran?

Mac & i antwortet: Mit etwas Glück kann Ihnen der universelle Dokument-Konverter Pandoc für das Terminal beim Retten des Dokumentinhalts mitsamt der Bilder helfen.

Verwenden Sie zur Installation entweder die Downloads auf der GitHub-Projektseite (Endung Intel-Macs: -x86_64-macOS.pkg; Apple Silicon: -arm64-macOS.pkg) oder nutzen Sie den Paketmanager Homebrew im Terminal. Ist dieser bisher nicht installiert, besuchen Sie die Website brew.sh/de, kopieren dort den Installationsbefehl in die Zwischenablage und fügen ihn ins Terminal ein, gefolgt von Return:

/bin/bash -c "$(curl -fsSL [https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh](https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh))"​
Danach installieren Sie Pandoc auf Ihren Mac:
brew install pandoc​
Jetzt können Sie mit der Rettung des Dokuments loslegen. Geben Sie zunächst folgenden ersten Teil des Kommandos im Terminal ein, ohne Return zu drücken:
pandoc -o ~/Downloads/Gerettet.odt​
Geben Sie noch ein Leerzeichen ein und ziehen Sie das defekte Dokument auf das Terminal. Damit fügen Sie den Pfad zur Datei ein, sodass der Befehl etwa so aussieht:
pandoc -o ~/Downloads/Gerettet.odt /Users/Wolfgang/Downloads/Kaputt.odt​
Mit Return liest Pandoc die Datei ein und gibt das Ergebnis als Gerettet.odt im Downloads-Ordner aus. Über die Dateiendung können Sie auch andere Dateiendungen wie .txt, .md oder .doc angeben, denn Pandoc unterstützt zahlreiche Formate. Neben OpenOffice- und LibreOffice-Dokumenten kann Pandoc eventuell auch beschädigte Word-Dateien (.doc und .docx) retten.

Fehler im XML eines LibreOffice-Dokuments lassen sich gerade bei eingeschalteter Änderungsverfolgung kaum manuell beheben.
Bei einem Dokument mit aktivierter Änderungsverfolgung enthält die resultierende Datei den letzten Stand. Der Änderungsverlauf und etwaige Anmerkungen gehen auf diesem Weg leider verloren. Sollte Ihnen Pandoc nicht weiterhelfen können oder eine Fehlermeldung ausgeben, kommen Sie eventuell noch mit dem alternativen Shell-Programm Odt2txt an Teile des Textes heran. Für dieses gibt es kein Installationspaket, sodass Sie hier Homebrew (siehe oben) nutzen müssen:
brew install odt2txt​
Die Bedienung ist ebenfalls recht simpel:
odt2txt --output=$HOME/Downloads/Gerettet.txt /Users/Wolfgang/Downloads/Kaputt.odf​

Da das Kommando die Tilde (~) für den Benutzer-Ordner nicht interpretiert, müssen Sie stattdessen $HOME eingeben. Die erzeugte Textdatei enthält auch Anmerkungen und unter Umständen gelöschte Passagen. Hier ist also deutlich mehr Nacharbeit als mit Pandoc nötig, um das Dokument wiederherzustellen.

Da Sie auf diesem Weg nicht an die Bilder gelangen, ist noch ein weiterer Schritt erforderlich. Da es sich bei LibreOffice-Dokumenten im Prinzip um einen gezippten Ordner handelt, können Sie den Inhalt einfach per unzip auspacken:

unzip -d ~/Downloads/Gerettet /Users/Wolfgang/Downloads/Kaputt.odf​
Im Downloads-Ordner finden Sie dann im Unterverzeichnis „Gerettet/Pictures“ alle Bilder des Dokuments – sofern Sie eingebettet waren. Das Ändern der Endung .odt in .zip wäre auch eine Möglichkeit. Sie benötigen unter Umständen zum Entpacken aber ein alternatives Programm wie The Unarchiver, weil das Archivierungsprogramm von macOS die Datei nicht immer auspacken mag.

Empfohlener redaktioneller Inhalt

Mit Ihrer Zustimmmung wird hier ein externer Preisvergleich (heise Preisvergleich) geladen.

Ich bin damit einverstanden, dass mir externe Inhalte angezeigt werden. Damit können personenbezogene Daten an Drittplattformen (heise Preisvergleich) übermittelt werden. Mehr dazu in unserer Datenschutzerklärung.

(bsc)