ITEXT的简单使用

本文介绍了在业务中使用iText库生成PDF合同时遇到的问题及解决方案。作者探讨了网上教程中通过模板PDF填充数据的方法,并指出这种方法在禁用编辑方面的局限性。然后分享了自己通过占位符替换生成PDF的步骤,包括模板字符串处理、数据转换等。总结了该方法的优点(如灵活性和数据安全性)和缺点(样式调整困难、代码复用率低)。最后提出了理想的思路,即结合模板和代码生成PDF。

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

由于业务中需要导出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类型的数据(属性名-属性值)))

第三步:

替换占位符

第四步:

将替换后的模板字符串输出到pdf上

代码示例:

POI.java

public class POI {

    public static void main(String[] args) throws Exception {
      //准备数据map
        Map<String ,Object> dataMap=new HashMap<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值