在 Java 开发中,将 Word 文档(.doc 或 .docx)转换为 PDF 是常见的办公自动化需求。本文介绍几种主流技术方案及其对应的配置文件和依赖设置。
1. 使用 JODConverter + LibreOffice
JODConverter 是一个基于 LibreOffice/OpenOffice 的文档转换库,支持 Word 到 PDF 的高质量转换。
Maven 依赖
<dependency>
<groupId>org.jodconverter</groupId>
<artifactId>jodconverter-spring-boot-starter</artifactId>
<version>4.4.6</version>
</dependency>
application.yml 配置
jodconverter:
office-home: /usr/lib/libreoffice
port-numbers: 2002
working-dir: /tmp
2. 使用 Docx4j
Docx4j 可直接将 .docx 文件转换为 PDF,无需外部服务,但对复杂格式支持有限。
Maven 依赖
<dependency>
<groupId>org.docx4j</groupId>
<artifactId>docx4j-export-fo</artifactId>
<version>11.4.7</version>
</dependency>
基本转换代码示例
WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load(new File("input.docx"));
OutputStream os = new FileOutputStream("output.pdf");
Docx4J.toPDF(wordMLPackage, os);
3. 注意事项
- 确保服务器已安装 LibreOffice(用于 JODConverter 方案)
- Docx4j 不支持 .doc 格式,仅支持 .docx
- 生产环境建议使用异步处理避免阻塞