在企业级应用或办公自动化系统中,经常需要将用户上传的 Word 文档(.doc 或 .docx)转换为 PDF 格式以便归档、打印或安全分发。本文介绍如何使用 Java 实现这一功能,并确保转换过程高效且内容不失真。
目前最常用的组合是:
注意:POI 本身不支持直接导出 PDF,需配合 PDF 库使用。
更推荐使用 docx4j,它原生支持将 .docx 转换为 PDF,保留样式更完整:
// Maven 依赖:
// <dependency>
// <groupId>org.docx4j</groupId>
// <artifactId>docx4j-export-fo</artifactId>
// <version>11.4.9</version>
// </dependency>
import org.docx4j.convert.Outcome;
import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
import org.docx4j.Docx4J;
import java.io.File;
import java.io.InputStream;
public class WordToPdfConverter {
public static void convert(String wordPath, String pdfPath) throws Exception {
InputStream is = new FileInputStream(new File(wordPath));
WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load(is);
Outcome outcome = Docx4J.toPDF(wordMLPackage, new FileOutputStream(pdfPath));
}
}
通过 Java 实现 Word 转 PDF 是可行的,选择合适的技术栈能显著提升转换质量和效率。对于高保真需求,推荐结合开源办公套件(如 LibreOffice)进行后台转换。