【问题标题】:Is there any GNU/Linux command line utility that converts .doc(x) files to .pdf? [closed]是否有任何将 .doc(x) 文件转换为 .pdf 的 GNU/Linux 命令行实用程序? [关闭]
【发布时间】:2014-02-07 19:55:00
【问题描述】:

当然,我是第 100 个提出这个问题的用户,但是在我在这里和其他网站上搜索了类似的主题之后,我仍然找不到我需要的东西。

我喜欢为我的 GNU/Linux 提供一个简单的命令行工具,它可以将 .doc(x) 文件转换为 .pdf 但输出应该与原始文件相同。

LibreOffice 似乎不是一个好的选择,因为它在某些情况下不能很好地转换。我找到了一个网站freepdfconvert.com,它做得很好,但我不能上传任何敏感文件,因为这是一个很大的风险。我并不是说他们会对他们做任何坏事,但事实就是如此。

如果我找不到任何好的工具,也许我将不得不自己编写一个。

【问题讨论】:

标签: pdf


【解决方案1】:

遗憾的是,没有基于 Linux 的保证 1 对 1 Word (doc/docx) 到 PDF 的转换器。这是因为 Microsoft 产品 Word 使用的专有格式会随着每个版本的发布而略有变化。由于它传统上不是一种公开记录的格式,并且 Microsoft 不会将 Word/Office 移植到 Linux(也永远不会),因此您必须依靠对旧格式 (doc) 进行逆向工程的第三方工具,并通过以下方式正确解释 Office Open XML 格式第三方开发商。

我们发现最好的开源解决方案是LibreOffice(它是从 OpenOffice.org 分叉出来的,在开源之前它本身被称为 Star Office)。正如另一个答案所建议的那样,它比 AbiWord 更积极地开发。

命令行的用法很简单,well documented 有很多examples

soffice --headless --convert-to pdf filename.doc

或者您也可以在较新的版本上使用libreoffice 而不是soffice

【讨论】:

  • 这是最好的答案,应该被接受!还有lowriter,它可能与soffice 相同。是吗?
  • 更多关于“无头”使用 LibreOffice 的详细示例可以在这里看到:stackoverflow.com/a/30465397/359307
  • 我认为这已经有所改变 - docx 和 xlsx 是 Office Open XML[1] 的一部分,这是一种记录良好的开放格式。将这些转换为 PDF 的工具仍然很少,而且介于两者之间。 [1]en.wikipedia.org/wiki/Office_Open_XML
【解决方案2】:

还有Pandoc

Pandoc,主要以其 Markdown 处理能力(用于输出 HTML、LaTeX、PDF、EPUB 等)而闻名,最近几个月已经获得了相当不错的工作能力处理 DOCX 输入文件。
(注意:Pandoc 仅适用于 DOCX,不适用于 DOC 文件。)

要使其 PDF 输出正常工作,它需要一个正常工作的 LaTeX 安装(包括 pdflatexlualatexxelatex 中的一个或全部)。在这种情况下,下面的简单命令应该可以工作:

pandoc -o output.pdf -f docx input.docx

但是请注意,现在的输出布局和字体样式与将​​ DOCX 从 Word 导出到 PDF 时的外观完全不同。它将使用默认 LaTeX 文档的样式。

可以通过使用这样的自定义模板文件来影响 LaTeX 生成的 PDF 的输出样式...

pandoc                              \
  -o output.pdf                     \
  -f docx                           \
 --template=my-latex-template.tmplt \
   input.docx

...但是这个功能更适合 Pandoc/LaTeX 专家使用,而不是初学者使用。

【讨论】:

  • @RinoTorino:我使用的Pandoc版本,最新的v1.15.1.1,可以读写DOCX和ODT。
  • pandoc 无法从 doc 文件转换,它需要 docx。
  • @knocker:我没有说它适用于 DOC,我只提到了 DOCX。但不可否认,这很容易被忽视。谢谢你的提示——我会更明确的。
猜你喜欢
  • 1970-01-01
  • 2011-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-14
  • 2012-02-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多