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 Beispieliconv -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 , sieiconv
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.Antworten:
In der Dokumentation hier ,
.docx
als kompatibel nicht aufgelistet Eingang :Versuchen Sie es mit etwas anderem, wie Libreoffice, das docx ausführen kann, solange Ihnen einige Formatierungsfehler nichts ausmachen.
BEARBEITEN:
Die Beschreibung besagt nun, dass Pandoc das Lesen von Word DOCX (sowie von DocBook und einigen anderen Formaten) offenbar unterstützt:
Wie @evilsoup vorschlug, könnte dies funktionieren:
Ja, Sie können den Befehl libreoffice mit verwenden
--outdir
, aber die HTML-Ausgabe funktioniert nicht immer so ...Ich habe dies kurz getestet und es schien zu funktionieren, abgesehen davon, dass Pandoc aufgrund eines GIF-Bildes im Dokument abstürzte
quelle
<BR>
s aus dem HTML-Code entfernen .Dies taucht immer noch bei Google-Suchen auf, daher wollte ich Folgendes aufzeichnen: pandoc konnte docx nicht lesen, als diese Frage gestellt wurde (der Fehler stammt aus dem Versuch, eine Binärdatei zu lesen), aber seit Version 1.13 ist dies möglich, und es funktioniert a ziemlich gute Arbeit.
quelle