使用itext5做html转pdf不全问题

        我们项目文书全部是PDF格式,生成的方法是将html文本转换成PDF,使用iText5中的XmlWorker小组件,具体步骤如下:



 

        用着一直都非常顺利,后台自动生成,非常快速、稳定、方便,可是就在去年出现了一个严重问题,当文书页数较多时,比如有10页,只会生成钱2页,后面被截断了。

        去年解决了但是没有记录,前两天又出现了,生成一部分文书,后面内容没了,又花了不少时间解决。
        经过反复测试html文档,最终确定了这个问题原因,由于XmlWorker对css支持不全,为了让pdf中的表格边框一样粗细,我们给每个td加了0.1mm的边框,这样内部的表格线是0.2mm,又在整个table最外层套了一个td,这样外部表格线也是0.2mm。
        问题就出在当一个td跨页显示时,比如跨了1整页以上,里面内容又有自动高度的td,而且到本页结束时没有对齐(比如一行2cm,1cm一半在上一页,1cm在下一页)时,后面的内容有时无法生成。
        解决办法就是把外边嵌套的td去掉就好了,这样导致表格线粗细不一致,不过打印出来0.1mm和0.2mm区别不太大,pdf放大才可以发现,暂时能满足需要。
     
        我在网上查到也有人碰到类似问题,刚刚好上一页有本条的一部分数据,刚刚好下一页页头又一部分本条数据,刚刚好设置了不在一页全部显示,刚刚好下一页数据高度有问题,就会这样,也有说因为setSplitRows这个方法确实会丢弃数据,不知道算不算XmlWorker的bug,希望有解决过这个问题的大师给我留言,教教我解决办法。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值