You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Apache POI转换Docx到PDF时遇ST_Jc枚举值无效错误求助

解决Apache POI转换Docx到PDF时的XmlValueOutOfRangeException错误

这个错误我之前也碰到过,本质是你用的旧版本Apache POI(3.15)和XWPF转换器不支持Word文档里用到的对齐方式枚举值end——在OOXML规范中,ST_Jc枚举定义了文本对齐的合法值,旧版本POI没把end纳入支持范围,导致解析时抛出异常。结合你的场景,给你几个可行的解决方案:

1. 升级依赖版本(最推荐)

Apache POI 3.15是2016年的旧版本,对后续Word新增的格式支持不足,建议升级到较新的稳定版,同时匹配对应的XWPF转换器版本:

推荐的依赖配置(适配POI 4.1.2)

<!-- Apache POI核心依赖 -->
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>4.1.2</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>4.1.2</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-scratchpad</artifactId>
    <version>4.1.2</version>
</dependency>

<!-- XWPF转换器依赖(匹配POI 4.x) -->
<dependency>
    <groupId>fr.opensagres.xdocreport</groupId>
    <artifactId>org.apache.poi.xwpf.converter.core</artifactId>
    <version>2.0.2</version>
</dependency>
<dependency>
    <groupId>fr.opensagres.xdocreport</groupId>
    <artifactId>org.apache.poi.xwpf.converter.pdf</artifactId>
    <version>2.0.2</version>
</dependency>

升级后,新版本POI的ST_Jc枚举已经包含end等更多对齐值,能正确解析你的文档。

2. 检查并修改Word文档的对齐格式

如果暂时不想升级依赖,可以尝试排查文档中的特殊对齐设置:

  • 打开待转换的Docx文件,检查所有段落、表格单元格的对齐方式,把非常规的对齐(比如可能被标记为end的右对齐变体)改成POI 3.15支持的标准类型(左对齐、居中、右对齐、两端对齐)
  • 保存文档后重新尝试转换,看是否能绕过枚举值错误

3. 手动修复Docx中的无效XML

如果文档是自动生成或被修改过,可能存在不符合OOXML规范的枚举值:

  1. 将Docx文件重命名为.zip并解压
  2. 打开word/document.xml文件,搜索包含<w:jc w:val="end"/>的标签
  3. 将end替换为POI 3.15支持的有效值,比如right(对应右对齐)
  4. 重新打包所有文件为zip,再改回.docx后缀,然后执行转换

另外,你的转换代码可以稍微优化一下,确保资源正确关闭(用try-with-resources语法):

try (FileInputStream in = new FileInputStream(inputFile);
     XWPFDocument document = new XWPFDocument(in);
     OutputStream out = new FileOutputStream(outputFile)) {
    PdfOptions options = PdfOptions.create();
    PdfConverter.getInstance().convert(document, out, options);
} catch (IOException | XWPFConverterException e) {
    e.printStackTrace();
}

内容的提问来源于stack exchange,提问作者kirti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:04:56