Я намагаюся перетворити .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"
наприклад.