一、创建pdf模板
使用PDFelement制作pdf模板(数据域的名称对应后面插入的key)
二、导入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