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ándoseiconven 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.Respuestas:
En la documentación aquí ,
.docxno aparece como entrada compatible :Pruebe con otra cosa, como Libreoffice , que puede hacer docx, siempre y cuando no le importe algunos errores de formato.
EDITAR:
La descripción ahora dice que Pandoc ahora parece admitir la lectura de Word DOCX (así como DocBook y algunos otros formatos):
Como @evilsoup sugirió, esto podría funcionar:
Sí, puede usar el comando libreoffice con
--outdir, pero la salida html no siempre funciona de esa manera ...Le di a esto una prueba rápida, y parecía funcionar, aparte de la falla de Pandoc debido a una imagen gif en el documento
fuente
<BR>s del html).Esto todavía aparece en las búsquedas de Google, así que quería poner esto en el registro: pandoc no pudo leer docx cuando se hizo esta pregunta (el error proviene de intentar leer un archivo binario) pero desde la versión 1.13 puede, y hace un muy buen trabajo de eso.
fuente