Я пытаюсь преобразовать .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"
например.