Ich versuche, eine per Mail erhaltene .docx-Datei mit pandoc in eine korrekte PDF-Datei umzuwandeln (ich verwende GNU / Linux).
Ich habe einen Fehler bezüglich der Zeichenkodierung:
$ pandoc file.docx -o file.pdf
pandoc: Cannot decode byte '\x87': Data.Text.Encoding.decodeUtf8: Invalid UTF-8 stream
Ich habe versucht, die Codierung zu identifizieren:
$ file -i file .docx
file.docx: application/vnd.openxmlformats-officedocument.wordprocessingml.document; charset=binary
Ich bin ein wenig überrascht von charset=binary
(ich hatte erwartet charset=iso8859-15
). Allerdings habe ich trotzdem versucht, die .docx nach utf8 zu konvertieren und es funktioniert nicht:
$ iconv -t utf-8 file.docx
P! $iconv: séquence d'échappement non permise à la position 16
Ich habe den gleichen Fehler mit der Befehlszeile aus der Pandoc-Dokumentation :
iconv -t utf-8 file.docx | pandoc | iconv -f utf-8
Wie kann ich diese .docx zu pdf mit Pandoc konvertieren?
iconv
einen Quellzeichensatz mithilfe des -f
Flags bereitzustellen. Zum Beispiel iconv -f ISO-8859-15 -t utf-8 file.docx
könnte funktionieren. Keine Ahnung, wie das Format einer DOCX-Datei lautet.
iconv
eine direkte Ausführung in einer .docx
Datei funktioniert. iconv
geht davon aus, dass es sich bei seiner Eingabe um eine Textdatei in einem bestimmten oder abgeleiteten Format handelt. Eine .docx
Datei ist eigentlich eine Zip-Datei (ein komprimiertes Archiv), die (meistens) XML-Dateien enthält. Möglicherweise haben Sie Glück, wenn Sie die .docx
Datei entpacken , sie iconv
auf den einzelnen Dateien ausführen und sie dann wieder in eine neue Datei packen .docx
, aber ich würde nicht darauf wetten, dass sie funktioniert. Zum einen gibt die XML-Datei, die den tatsächlichen Inhalt des Dokuments enthält, die Kodierung an: encoding="UTF-8"
zum Beispiel.