利用itextpdf实现PDF显示上下标

        因公司要动态生成PDF文档,并且需要生成同时带有上下标的PDF段落,搜遍度娘,只有单边生成上标或下标的文章。最后无奈自行研究。最终造出能同时显示上下标的PDF段落。以上进行记录,作个留念。

具体实现思路如下(过程表述可能较混乱,请有不明白、不理解的朋友留言相互交流):

1. 以pdfCell进行显示段落,对需要同时生成上下标的段落,添加(上下标,适用于html)标记<sup></sup>或<sub></sub>

2. 对每个段落,进行上下标判断,若有,则特殊处理,否则按正常的段落进行显示处理。即对段落的文字进行区分,不带上下标特殊字符的,则为普通文字,带有的则为需要区分显示,如下图 test为下常的文字,2和n为对应的上下标,这是最终显示在pdf上的效果(下图的灰色线在PDF上是不存在的)

 ==>最终显示效果(pdf单元格)

3. 将拆分好的段落(正常字符串、上下标字符串)放进显示队列, 正常字符串取PDF的正文段落字体(以11号字体大小为例),上下标则取一半大小的字体

4. 1个单元格中,放一个pdftable,按第3步拆分的段落,进行动态行数的设定

5. 正文与上下标相连的,设置好pdfcell的水平方向、垂直方向

6. 根据外层pdf cell的中文字数多少,作为总行数,以正文为1:1计算,上下标为1:2计算占比,计算出里层的pdfcell的宽度

7. 将里层的pdftable放进pdf cell中,最终实现显示效果。

 

以上,第3、4、6为关键。

若较多朋友需要,本人后续再放出demo代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值