为什么需要 Word 转 PDF?
在企业级应用或办公自动化系统中,常常需要将用户编辑的 Word 文档(.doc 或 .docx)转换为 PDF 格式,以确保内容格式固定、便于打印和分享。使用 Java 实现这一功能,可以无缝集成到 Web 应用或后端服务中。
推荐技术方案
目前主流的 Java Word 转 PDF 方案通常结合以下两个开源库:
- Apache POI:用于读取和操作 Word 文档内容。
- iText / iText7:用于生成高质量 PDF 文件。
但需注意:Apache POI 本身不支持直接导出 PDF。更推荐使用 LibreOffice + JODConverter 或 Aspose.Words for Java(商业)实现高保真转换。
示例代码(基于 LibreOffice + JODConverter)
前提:已安装 LibreOffice,并启动其服务模式(soffice --headless --accept="socket,host=127.0.0.1,port=8100;urp;")。
import org.jodconverter.LocalConverter;
import org.jodconverter.office.OfficeManager;
import org.jodconverter.office.DefaultOfficeManager;
import java.io.File;
public class WordToPdfConverter {
public static void main(String[] args) {
// 启动 OfficeManager
OfficeManager officeManager = DefaultOfficeManager.builder()
.officeHome("/usr/lib/libreoffice") // 根据系统调整路径
.build();
officeManager.start();
try {
LocalConverter.make()
.convert(new File("input.docx"))
.to(new File("output.pdf"))
.execute();
System.out.println("转换成功!");
} catch (Exception e) {
e.printStackTrace();
} finally {
officeManager.stop();
}
}
}
注意事项
- 确保服务器安装了字体,避免 PDF 中文字缺失。
- LibreOffice 方案适合 Linux/Windows 服务器环境。
- 如需纯 Java 无依赖方案,可考虑 Aspose.Words(付费但效果极佳)。