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