Я пытаюсь преобразовать .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"
например.Ответы:
В документации здесь ,
.docx
не перечислен как совместимый вход :Попробуйте что-нибудь еще, например Libreoffice - который может делать docx, если вы не возражаете против нескольких ошибок форматирования.
РЕДАКТИРОВАТЬ:
Теперь в описании говорится, что теперь Pandoc поддерживает чтение из Word DOCX (а также DocBook и некоторых других форматов):
Как предположил @evilsoup, это может сработать:
Да, вы можете использовать команду libreoffice с
--outdir
, но вывод html не всегда работает таким образом ...Я быстро проверил это, и это, похоже, сработало, кроме падения Пандока из-за изображения в формате gif в документе.
источник
<BR>
s из HTML).Это все еще встречается при поиске в Google, поэтому я хотел указать это в записи: pandoc не смог прочитать docx, когда был задан этот вопрос (ошибка возникает из-за попытки прочитать двоичный файл), но, начиная с версии 1.13, он может и делает довольно хорошая работа этого.
источник