Java Word 转 PDF 配置文件指南

在 Java 开发中,将 Word 文档(.docx)转换为 PDF 是一个常见的需求。本文介绍如何通过开源库实现这一功能,并提供完整的配置说明。

1. 所需依赖库

推荐使用以下组合:

2. Maven 依赖配置(pom.xml)

<dependencies>
  <!-- Apache POI for .docx -->
  <dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>5.2.4</version>
  </dependency>

  <!-- OpenPDF (open-source fork of iText) -->
  <dependency>
    <groupId>com.github.librepdf</groupId>
    <artifactId>openpdf</artifactId>
    <version>1.3.30</version>
  </dependency>

  <!-- Optional: docx4j for direct conversion -->
  <dependency>
    <groupId>org.docx4j</groupId>
    <artifactId>docx4j-export-fo</artifactId>
    <version>11.4.7</version>
  </dependency>
</dependencies>

3. 简单转换示例(使用 Docx4j)

import org.docx4j.convert.in.xhtml.XHTMLImporterImpl;
import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.file.Files;
import java.nio.file.Paths;

public class WordToPdfConverter {
    public static void convert(String wordPath, String pdfPath) throws Exception {
        InputStream in = Files.newInputStream(Paths.get(wordPath));
        WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load(in);
        OutputStream out = Files.newOutputStream(Paths.get(pdfPath));
        XHTMLImporterImpl.convert(wordMLPackage, out, null);
    }
}

4. 注意事项

5. 常见问题

Q:转换后中文显示乱码?
A:需在 PDF 生成时嵌入中文字体,或使用支持中文的字体配置。

Q:能否批量转换?
A:可以,只需循环调用转换方法即可。

更多功能More features
批量转换批量转换批量处理文件,支持docx/txt 降低AI率降低AI率用更自然的表达方式重写内容 改写建议改写建议看看同一句话还能怎么说