关于itext使用过程中遇到的问题总结

本文总结了在使用iText2版本进行PDF导出时遇到的常见问题,包括不闭合HTML标签、非法属性、非HTTP img标签、特殊字体和大图片导致的截图现象。为了解决这些问题,提出了利用jsoup进行HTML合法性处理的方法,通过获取图片宽度来优化图片在PDF中的显示,从而确保PDF导出的成功和质量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境介绍:

itext目前已经发展到itext7版本,目前系统里面使用的itext2版本;

使用spring的freemaker结合itext,完成pdf的导出

需要进行pdf导出的html文件,可能包含下面这几种情况,导致pdf导出失败:

  1. 含有不闭合的html标签,比如<br>
  2. html标签中,含有非法的属性,比如 v:data="xxx"
  3. img标签不是引用的http,而是base64之类的
  4. 设置了特殊字体的,pdf导出虽然不失败,但是内容看不到
  5. img图片过大的时候,pdf导出会出现截图的现象

针对上面的几个问题,解决思路

1,研究itext代码,重写html解析相关的类

2,使用html处理工具,对html文件进行合法性处理(比如:jsoup)

选第二种方案(第一个费时间,没有太多的精力研究)

 

结合jsoup,对html文件进行处理,核心代码:

对html文件进行合法性处理

	/**
	 * 1,html标签对齐
	 * 2,检查所有的img标签,如果为base64编码就去掉该图片
	 * 3,过滤所有的html标签,仅保留styles和class两个属性,其他的属性去掉
	 * 4,检查字体设置,如果
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值