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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。