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?
iconveinen Quellzeichensatz mithilfe des -fFlags bereitzustellen. Zum Beispiel iconv -f ISO-8859-15 -t utf-8 file.docxkönnte funktionieren. Keine Ahnung, wie das Format einer DOCX-Datei lautet.
iconveine direkte Ausführung in einer .docxDatei funktioniert. iconvgeht davon aus, dass es sich bei seiner Eingabe um eine Textdatei in einem bestimmten oder abgeleiteten Format handelt. Eine .docxDatei ist eigentlich eine Zip-Datei (ein komprimiertes Archiv), die (meistens) XML-Dateien enthält. Möglicherweise haben Sie Glück, wenn Sie die .docxDatei entpacken , sie iconvauf 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.
