java实现在pdf模板的指定位置插入图片
本文实例为大家分享了java在pdf模板的指定位置插入图片的具体代码,供大家参考,具体内容如下
java操作pdf有个非常好用的库itextpdf,maven:
com.itextpdf itextpdf 5.5.6 com.itextpdf itext-asian 5.2.0
思路:
- Adobe的Acrobat可以对pdf进行编辑,在文档中插入域,这个插入的域就是图片的位置。这儿有关于域的介绍,但是这不重要,我们只是把域作为一个占位符用;
- 利用itextpdf得到目标域所在的页面、位置、大小;
- 利用域的坐标,把图片以绝对位置的方式插入到pdf中。
代码
publicstaticvoidmain(String[]args)throwsException{
//模板文件路径
StringtemplatePath="template.pdf";
//生成的文件路径
StringtargetPath="target.pdf";
//书签名
StringfieldName="field";
//图片路径
StringimagePath="image.jpg";
//读取模板文件
InputStreaminput=newFileInputStream(newFile(templatePath));
PdfReaderreader=newPdfReader(input);
PdfStamperstamper=newPdfStamper(reader,newFileOutputStream(targetPath));
//提取pdf中的表单
AcroFieldsform=stamper.getAcroFields();
form.addSubstitutionFont(BaseFont.createFont("STSong-Light","UniGB-UCS2-H",BaseFont.NOT_EMBEDDED));
//通过域名获取所在页和坐标,左下角为起点
intpageNo=form.getFieldPositions(fieldName).get(0).page;
RectanglesignRect=form.getFieldPositions(fieldName).get(0).position;
floatx=signRect.getLeft();
floaty=signRect.getBottom();
//读图片
Imageimage=Image.getInstance(imagePath);
//获取操作的页面
PdfContentByteunder=stamper.getOverContent(pageNo);
//根据域的大小缩放图片
image.scaleToFit(signRect.getWidth(),signRect.getHeight());
//添加图片
image.setAbsolutePosition(x,y);
under.addImage(image);
stamper.close();
reader.close();
}
参考
Howtoshowanimageatatextfieldposition?
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。