J'essaie de convertir un .docx reçu par mail en un pdf correct en utilisant pandoc (j'utilise GNU / Linux).
J'ai une erreur concernant l'encodage des caractères:
$ pandoc file.docx -o file.pdf
pandoc: Cannot decode byte '\x87': Data.Text.Encoding.decodeUtf8: Invalid UTF-8 stream
J'ai essayé d'identifier l'encodage:
$ file -i file .docx
file.docx: application/vnd.openxmlformats-officedocument.wordprocessingml.document; charset=binary
Je suis un peu surpris par charset=binary
(je m'y attendais charset=iso8859-15
). Cependant, j'ai quand même essayé de convertir le .docx en utf8 et cela ne fonctionne pas:
$ iconv -t utf-8 file.docx
P! $iconv: séquence d'échappement non permise à la position 16
J'ai la même erreur avec la ligne de commande de la documentation pandoc :
iconv -t utf-8 file.docx | pandoc | iconv -f utf-8
Comment puis-je convertir ce .docx en pdf avec pandoc?
iconv
un jeu de caractères source, en utilisant le -f
drapeau. Par exemple, iconv -f ISO-8859-15 -t utf-8 file.docx
pourrait fonctionner. Cependant, je n'ai aucune idée du format d'un fichier .docx.
iconv
directe sur un .docx
fichier fonctionne. iconv
suppose que son entrée est un fichier texte dans un format spécifié ou déduit. Un .docx
fichier est en fait un fichier zip (une archive compressée) contenant (principalement) des fichiers xml. Vous pourriez peut-être avoir de la chance en décompressant le .docx
fichier, en exécutant iconv
les fichiers constitutifs, puis en recompressant le tout dans un nouveau .docx
, mais je ne parierais pas que cela fonctionne. D'une part, le fichier xml contenant le contenu réel du document spécifie son encodage:, encoding="UTF-8"
par exemple.