java - 如何将Word文档转换为PDF?

标签 java pdf ms-word

如何将Word文档转换为PDF,其中文档包含各种内容,例如表格。尝试使用iText时,原始文档看起来与转换后的PDF不同。有没有我可以使用的开源API /库,而不是调用可执行文件?

最佳答案

这是一项艰巨的任务,如果您想要完美的结果(在不使用Word的情况下是不可能的),则难度就更大了,因为仅使用纯Java即可为您完成所有操作且都是开源的API数量为零,我相信(更新:我错了, 见下文)。

基本选项如下:


使用JNI / C#Web服务/等脚本MS Office(仅100%完美结果的选择)
使用可用的API脚本Open Office(90%完美)
使用Apache POI和iText(非常大的工作,永远不会是完美的)。


更新-2016-02-11
这是我关于此主题的博客文章的精简副本,概述了在Java中支持Word-to-PDF的现有产品。

Converting Microsoft Office (Word, Excel) documents to PDFs in Java

我知道的三种产品可以呈现Office文档:

yeokm1/docs-to-pdf-converter
不定期维护,纯Java,开源
将许多库链接在一起以执行转换。

xdocreport
积极开发,纯Java,开源
它是Java API,用于将使用MS Office(docx)或OpenOffice(odt),LibreOffice(odt)创建的XML文档与Java模型进行合并,以生成报告并将报告转换为其他格式(PDF,XHTML ...)。

Snowbound Imaging SDK
封闭源,纯Java
Snowbound似乎是100%的Java解决方案,价格超过2500美元。它包含描述如何在评估下载中转换文档的样本。

OpenOffice API
开源而非纯Java-需要安装Open Office
OpenOffice是本机Office套件,支持Java API。这支持阅读Office文档和编写PDF文档。该SDK包含一个文档转换示例(examples / java / DocumentHandling / DocumentConverter.java)。要编写PDF,您需要通过“ writer_pdf_Export”作家而不是“ MS Word 97”。
或者,您可以使用包装器API JODConverter

JDocToPdf-死亡于2016-02-11
使用Apache POI读取Word文档,并使用iText编写PDF。完全免费,100%Java,但有一些limitations

关于java - 如何将Word文档转换为PDF?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59158555/

相关文章:

vba - 如何调用 Documents.open 并避免 'file in use' 对话框?

java - 当 JTree 获得焦点时,JMenu 出现在 JTree 后面?

java - 将 MongoDB ObjectId 序列化为字符串

java - “订单”实体 bean

php - 想象异常 : Postscript delegate failed imagick IIS

Python 3 - 从 PDF 中挖掘数据

c# - 在 .Net 中将 Html 转换为 Word

java - 有没有什么方法可以在 servlet 中获取 jetty 上的所有有效 session key 值?

ios - 使用 CGPDFContextCreateWithURL 时 PDF 为空白页

regex - 使用正则表达式检查 Word 宏中的数值