Я пытаюсь преобразовать .docx, полученный по почте, в правильный pdf с помощью pandoc (я использую GNU / Linux).
У меня есть ошибка, связанная с кодировкой символов:
$ pandoc file.docx -o file.pdf
pandoc: Cannot decode byte '\x87': Data.Text.Encoding.decodeUtf8: Invalid UTF-8 stream
Я попытался определить кодировку:
$ file -i file .docx
file.docx: application/vnd.openxmlformats-officedocument.wordprocessingml.document; charset=binary
Я немного удивлен charset=binary(я ожидал charset=iso8859-15). Однако я все равно попытался преобразовать .docx в utf8, и он не работает:
$ iconv -t utf-8 file.docx
P! $iconv: séquence d'échappement non permise à la position 16
У меня та же ошибка с командной строкой из документации pandoc :
iconv -t utf-8 file.docx | pandoc | iconv -f utf-8
Как я могу преобразовать этот .docx в pdf с помощью pandoc?
iconvисходный набор символов, используя -fфлаг. Например, iconv -f ISO-8859-15 -t utf-8 file.docxможет сработать. Хотя понятия не имею, что это за формат файла .docx.
iconvнепосредственно над .docxфайлом вряд ли сработает. iconvПредполагается, что его ввод представляет собой текстовый файл в некотором указанном или предполагаемом формате. .docxФайл на самом деле почтовый файл (сжатый архив) , содержащий ( в основном) файлы XML. Возможно, вам повезет, разархивировав .docxфайл, запустив iconvсоставляющие файлы, а затем снова переархивировав все обратно в новый .docx, но я бы не стал ставить на то, что он работает. С одной стороны, xml-файл, содержащий фактическое содержимое документа, указывает его кодировку: encoding="UTF-8"например.
