Estoy tratando de convertir un .docx recibido por correo a un pdf correcto usando pandoc (estoy usando GNU / Linux).
Tengo un error relacionado con la codificación de caracteres:
$ pandoc file.docx -o file.pdf
pandoc: Cannot decode byte '\x87': Data.Text.Encoding.decodeUtf8: Invalid UTF-8 stream
Traté de identificar la codificación:
$ file -i file .docx
file.docx: application/vnd.openxmlformats-officedocument.wordprocessingml.document; charset=binary
Estoy un poco sorprendido por charset=binary
(esperaba charset=iso8859-15
). Sin embargo, intenté convertir el .docx a utf8 de todos modos y no funciona:
$ iconv -t utf-8 file.docx
P! $iconv: séquence d'échappement non permise à la position 16
Tengo el mismo error con la línea de comando de la documentación de pandoc :
iconv -t utf-8 file.docx | pandoc | iconv -f utf-8
¿Cómo puedo convertir este .docx a pdf con pandoc?
iconv
un conjunto de caracteres de origen, utilizando la -f
bandera. Por ejemplo, iconv -f ISO-8859-15 -t utf-8 file.docx
podría funcionar. Sin embargo, no tengo idea de cuál es el formato de un archivo .docx.
iconv
directamente en un .docx
archivo. iconv
asume que su entrada es un archivo de texto en algún formato especificado o inferido. Un .docx
archivo es en realidad un archivo zip (un archivo comprimido) que contiene (principalmente) archivos xml. Es posible que tenga suerte descomprimiendo el .docx
archivo, ejecutándose iconv
en los archivos constituyentes y luego volviendo a comprimir todo en uno nuevo .docx
, pero no apostaría a que funcione. Por un lado, el archivo xml que contiene el contenido real del documento especifica su codificación: encoding="UTF-8"
por ejemplo.