因公司要动态生成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代码。