Преобразование .docx в .pdf с pandoc

Я пытаюсь преобразовать .docx, полученный по почте, в правильный pdf, используя pandoc (я использую GNU / Linux).

У меня ошибка в кодировке символов:

  • Приложения на основе Qt имеют неправильную кодировку?
  • кратные и текстовые столбцы
  • Как конвертировать все отдельные файлы в папку в файлы Microsoft Word?
  • Какова кодировка по умолчанию для javac в Linux?
  • Преобразование файлов .docx в обычный текст и сохранение разрывов строк для поддержания ссылок на номера строк на исходный документ: howto & implications?
  • Получить согласованную кодировку для всех файлов в каталоге
  • $ 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?

  • Инструмент командной строки для поиска файлов docx
  • Кодировки символов, поддерживаемые больше, кошка и меньше
  • Сценарий оболочки Bash / Korn, отредактированный в Windows, вызывает ошибку '... ^ M: not found'
  • байты эха в файл
  • Просмотр документов .doc и .docx с помощью уравнений MathType в Linux
  • хранить файл с недопустимыми символами
  • 2 Solutions collect form web for “Преобразование .docx в .pdf с pandoc”

    В документации здесь .docx не отображается как совместимый вход :

    Pandoc – это библиотека Haskell для преобразования из одного формата разметки в другой и инструмент командной строки, который использует эту библиотеку. Он может читать уценку и (подмножества) текста, reStructuredText, HTML, LaTeX, разметку MediaWiki, разметку Haddock, OPML и DocBook; и он может писать простой текст, markdown, reStructuredText, XHTML, HTML 5, LaTeX (включая слайд-шоу луча), ConTeXt, RTF, OPML, DocBook, OpenDocument, ODT, Word docx, GNU Texinfo, разметку MediaWiki, EPUB (v2 или v3 ), FictionBook2, Textile, groff man pages, Emacs Org-Mode, AsciiDoc и Slidy, слайд-шоу, DZSlides, show.js или S5 слайд-шоу HTML. Он также может создавать PDF-выход в системах, где установлен LaTeX.

    Попробуйте что-нибудь еще, например Libreoffice, которое может делать docx, так как вы не против нескольких ошибок форматирования.

    РЕДАКТИРОВАТЬ:

    В описании теперь говорится, что Pandoc теперь, похоже, поддерживает чтение из Word DOCX (а также DocBook и несколько других форматов):

    Pandoc – это библиотека Haskell для преобразования из одного формата разметки в другой и инструмент командной строки, который использует эту библиотеку. Он может читать отметки и подмножества Textile, reStructuredText, HTML, LaTeX, MediaWiki, разметку TWiki, разметку Haddock, OPML, Emacs Org-mode, DocBook, txt2tags, EPUB и Word docx ; и он может писать простой текст, markdown, reStructuredText, XHTML, HTML 5, LaTeX (включая слайд-шоу луча), ConTeXt, RTF, OPML, DocBook, OpenDocument, ODT, Word docx, GNU Texinfo, разметку MediaWiki, разметку DokuWiki, разметку Haddock , EPUB (v2 или v3), FictionBook2, Textile, страницы groff man, Emacs Org-Mode, AsciiDoc, InDesign ICML и Slidy, слайд-шоу, DZSlides, show.js или S5 слайд-шоу HTML. Он также может создавать PDF-выход в системах, где установлен LaTeX.


    Как предположил @evilsoup, это может сработать:

     cd /DIRECTORY/WITH/FILE/IN && libreoffice --headless --convert-to html 'FILE.docx' && pandoc 'FILE.html' -o 'FILE.pdf' 

    Да, вы можете использовать команду libreoffice с --outdir , но выход html не всегда работает таким образом …

    Я дал это быстрый тест, и, похоже, он работал, кроме сбоя Pandoc из-за gif-изображения в документе смайлик

    Это все еще появляется в поиске Google, поэтому я хотел поместить это в запись: pandoc не мог читать docx, когда задавался этот вопрос (ошибка возникает из попытки прочитать двоичный файл), но с версии 1.13 он может, и он делает довольно хорошая работа.

    Linux и Unix - лучшая ОС в мире.