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?
iconvun conjunto de caracteres de origen, utilizando la -fbandera. Por ejemplo, iconv -f ISO-8859-15 -t utf-8 file.docxpodría funcionar. Sin embargo, no tengo idea de cuál es el formato de un archivo .docx.
iconvdirectamente en un .docxarchivo. iconvasume que su entrada es un archivo de texto en algún formato especificado o inferido. Un .docxarchivo es en realidad un archivo zip (un archivo comprimido) que contiene (principalmente) archivos xml. Es posible que tenga suerte descomprimiendo el .docxarchivo, ejecutándose iconven 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.
