在 pandoc 中将 .odt 转换为 .docx

Posted

技术标签:

【中文标题】在 pandoc 中将 .odt 转换为 .docx【英文标题】:Convert .odt to .docx in pandoc 【发布时间】:2015-05-13 00:05:16 【问题描述】:

我正在尝试通过以下命令将我的 libre office 文档转换为 ms word 文档

pandoc CS141Exam.odt -f markdown -t docx -s -o test1.docx

但我收到以下错误

pandoc: Cannot decode byte '\xac': Data.Text.Encoding.Fusion.streamUtf8: Invalid UTF-8 stream

实现此目的的正确命令是什么?

【问题讨论】:

pandoc 可以写入 odt 但不能从中读取。见this list of input formats。您可以使用 libreoffice 中的内置转换器:libreoffice --convert-to docx CS141Exam.odt @scoa 根据您的链接,pandoc shd 能够读取它:“它可以读取 Markdown、CommonMark、php Markdown Extra、GitHub-Flavored Markdown 和 Textile、reStructuredText、html 的(子集), LaTeX、MediaWiki 标记、TWiki 标记、Haddock 标记、OPML、Emacs Org 模式、DocBook、txt2tags、EPUB、ODT 和 Word docx;" 【参考方案1】:

你有 pandoc 试图转换“从”(-f)降价,“到”(-t)docx。但是你给它一个odt 文件。所以它试图阅读odt,就好像它是降价和窒息一样,因为它不是降价。你想要更接近的东西:

pandoc CS141Exam.odt -f odt -t docx -s -o test1.docx

但是... until pandoc 1.15.1 不支持 odt,所以 pandoc -v 也支持以确保您也有当前版本。我的 Ubuntu 稳定存储库给了我 1.12.4.2——我必须得到 the latest directly from pandoc,但这对我来说很好:

pandoc -f odt -t docx -o example.docx example.odt 

(虽然我没有 MS Word,但我只知道 example.docx 在 LibreOffice Writer 中看起来不错)

【讨论】:

您也可以从源代码安装 pandoc 以获取最新版本 (pandoc.org/installing.html)。我仍然建议使用 libreoffice 或 openoffice (***.com/questions/21845789/…),因为 pandoc 会首先将 odt 转换为原生 pandoc,然后再转换回 docx,在此过程中会丢失一些格式。

以上是关于在 pandoc 中将 .odt 转换为 .docx的主要内容,如果未能解决你的问题,请参考以下文章

Pandoc 的 ODT 模板中的彩色水平线

将 .odt .doc .ods 文件转换为 .txt 文件

在Java中将odt转换为pdf而不启动soffice

生成 ODT/DOC(X) 并转换为 PDF,无需 OO.o/MS

使用 OpenOffice.org 基本宏以编程方式将 *.odt 文件转换为 MS Word *.doc 文件

在 Windows 上使用 Openoffice 将 ODT 转换为 PDF