word转PDF类XWPFdocumentVisitor出现空指针异常

Java使用apache下的XWDF包将word转为pdf时,documentVisitor类473行document.getNumbering出现了空指针异常,报错代码如下:

protected XWPFNum getXWPFNum( CTNumPr numPr )
    {
        CTDecimalNumber numID = numPr.getNumId();
        if ( numID == null )
        {
            // numID can be null, ignore the numbering
            // see https://code.google.com/p/xdocreport/issues/detail?id=239
            return null;
        }
        XWPFNum num = document.getNumbering().getNum( numID.getVal() );
        return num;
    };

针对这个问题之前采用了一种方案,java实现word转pdf大写目录转为小写的修复方案_jodconverter的word转pdf的二级标题数字会变大写,间距也会变大-CSDN博客

 但是这个,会导致排版的编号和内容出现空格,如

后来发现了,既然word不使用文字排版,那么我就对此处代码加了非空判断处理,由于是引用的包中的代码,我在相同包下重写了XWPFdocumentVisitor中的getXWPFNum方法,如下:

protected XWPFNum getXWPFNum( CTNumPr numPr )
    {
        CTDecimalNumber numID = numPr.getNumId();
        if ( numID == null )
        {
            // numID can be null, ignore the numbering
            // see https://code.google.com/p/xdocreport/issues/detail?id=239
            return null;
        }
        /**
         * 20240418修复 word有可能不使用编号排版功能
         */
        if(null != document.getNumbering()) {
            XWPFNum num = document.getNumbering().getNum( numID.getVal() );
            return num;
        }else {
            return null;
        }              
    }

本地测试后,无论word怎么排版,转换为PDF后格式都保持和word一样了

  • 18
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值