由于业务中需要导出pdf合同,而且合同中有些数据是列表的,长度不固定,迫不得已只能使用itext手写pdf
table:宽度与页面的比列:table.setWidth(95);//占页面宽度比例
位置:table.setAlignment(Element.ALIGN_LEFT);//左
网上教程:
网上有教程是通过模板pdf,准备表单域(key),然后读取模板odf和读取的动态数据一结合得到需要的pdf
但是控制动态数据填充后禁用编辑似乎不能用(如果你有方法,能否留言告知我,感激不尽!)
除此之外,如果是生成表格,比如商品列表,再通过key来一 一对号入座,那就使得上述方法不适用
我也尝试过,通过上诉方法生成多个目标pdf(p1,p2),然后再招网上的另一个方法merge合并pdf(p3),但是得到的pdf(p3)是合并了,但是动态区域是空白,查看合并前的单个pdf(p1,p2)是有值的(只是不能禁用编辑)
我的做法:
在无表单(比如商品列表那种情景)时,借鉴于模板pdf准备表单,填充key的方式生成想要的pdf,
第一步:
将目的pdf需要显示的模板字符串中动态的位置使用“占位符”来代替
第二步:
使用工具了类(将查询的数据实体转为map类型的数据(属性名-属性值)))
第三步:
替换占位符<