java maven 读写pdf_Java动态生成pdf文件(使用itext编辑pdf)

一、创建pdf模板使用PDFelement制作pdf模板(数据域的名称对应后面插入的key)二、导入maven依赖com.itextpdfitextpdf5.5.13com.itextpdfitext-asian5.2.0三、插入数据和图片到pdf模板Map data;//要插入的数据//初始化itext//设置编码BaseFont baseFont = BaseFont.createFont("...
摘要由CSDN通过智能技术生成

一、创建pdf模板

使用PDFelement制作pdf模板(数据域的名称对应后面插入的key)

ebe60a6c6a33fe676e5a1faa83f449a7.png

二、导入maven依赖

com.itextpdf

itextpdf

5.5.13

com.itextpdf

itext-asian

5.2.0

三、插入数据和图片到pdf模板Map data;//要插入的数据

//初始化itext

//设置编码

BaseFont baseFont = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H",BaseFont.NOT_EMBEDDED);

PdfReader pdfReader=new PdfReader(“pdf模板文件路径”);

PdfStamper pdfStamper=new PdfStamper(pdfReader, new FileOutputStream(“输出pdf文件路径”));

AcroFields form = pdfStamper.getAcroFields();

form.addSubstitutionFont(baseFont);

//写入数据

for(String key:data.keySet()){

String value=data.get(key).toString();

//key对应模板数据域的名称

form.setField(key,value);

}

//添加图片

int pageNo = form.getFieldPositions("img").get(0).page;

Rectangle signRect = form.getFieldPositions("img").get(0).position;

float x = signRect.getLeft();

float y = signRect.getBottom();

Image image = Image.getInstance("图片路径");

PdfContentByte under = pdfStamper.getOverContent(pageNo);

//设置图片大小

image.scaleAbsolute(signRect.getWidth(), signRect.getHeight());

//设置图片位置

image.setAbsolutePosition(x, y);

under.addImage(image);

//设置不可编辑

pdfStamper.setFormFlattening(true);

pdfStamper.close();

PS:合并多个pdf成一个//先删除之前的all.pdf

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值