在企业级开发中,将 Word 文档(.doc 或 .docx)转换为 PDF 是常见的需求。本文介绍几种基于 Java 的高效、稳定、支持中文且能保持格式的转换方案。
Aspose.Words 是商业库,但功能强大、兼容性好,能几乎 100% 还原 Word 格式,包括表格、图片、页眉页脚等。
// Maven 引入
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-words</artifactId>
<version>23.10</version>
</dependency>
// 转换代码
Document doc = new Document("input.docx");
doc.save("output.pdf", SaveFormat.PDF);
适合轻量级场景,但对复杂格式支持有限,需手动处理样式和布局。
// 注意:此方案需自行解析段落、表格等结构
XWPFDocument document = new XWPFDocument(new FileInputStream("input.docx"));
PdfWriter writer = new PdfWriter("output.pdf");
PdfDocument pdf = new PdfDocument(writer);
PdfCanvas canvas = new PdfCanvas(pdf.addNewPage());
// ... 需逐元素绘制内容(代码较复杂)
⚠️ 此方法不推荐用于生产环境中的复杂文档。
若项目允许使用商业库,Aspose.Words for Java 是目前最完美的 Word 转 PDF 解决方案。如需完全开源,可考虑 LibreOffice + JODConverter,但需部署额外服务。