使用 pandoc 將 .docx 轉換為 .pdf
我正在嘗試使用 pandoc 將通過郵件收到的 .docx 轉換為正確的 pdf(我使用的是 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
如何使用 pandoc 將此 .docx 轉換為 pdf?
在此處的文件中,
.docx
未列為兼容輸入:Pandoc 是一個用於從一種標記格式轉換為另一種標記格式的 Haskell 庫,以及使用該庫的命令行工具。它可以讀取 markdown 和 Textile、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 手冊頁、Emacs Org-Mode、AsciiDoc 和 Slidy、Slideous、DZSlides、reveal.js 或 S5 HTML 幻燈片放映。它還可以在安裝了 LaTeX 的系統上生成 PDF 輸出。
試試別的東西,比如Libreoffice——它可以做 docx,只要你不介意一些格式錯誤。
編輯:
現在的描述說 Pandoc 現在似乎支持從 Word DOCX(以及 DocBook 和其他一些格式)讀取:
Pandoc 是一個用於從一種標記格式轉換為另一種標記格式的 Haskell 庫,以及使用該庫的命令行工具。它可以讀取 markdown 和 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 手冊頁、Emacs Org-Mode、AsciiDoc、InDesign ICML 和 Slidy、Slideous、DZSlides、reveal.js 或 S5 HTML 幻燈片放映。它還可以在安裝了 LaTeX 的系統上生成 PDF 輸出。
正如@evilsoup 所建議的,這可能有效:
cd /DIRECTORY/WITH/FILE/IN && libreoffice --headless --convert-to html 'FILE.docx' && pandoc 'FILE.html' -o 'FILE.pdf'
是的,您可以將 libreoffice 命令與 一起使用
--outdir
,但 html 輸出並不總是以這種方式工作……我對此進行了快速測試,它似乎工作,除了 Pandoc 由於文件中的 gif 圖像而崩潰