java使用itext将图片放到pdf模板的指定位置

  • 前面的准备步骤可以参考我的上一篇文章
    • 这里直接上代码
      • 这里用的图片是路径的形式,还有种情况是图片是base64的时候,这种情况就需要转一下图片格式了,具体代码如下:

前面的准备步骤可以参考我的上一篇文章

java使用itext填充pdf模板,超简单教学,有手就行

这里直接上代码

 @Testpublic void testPic() throws Exception {// 模板文件路径String templatepath = "F:\\pdfWork\\2\\test9.pdf";// 生成的文件路径String targetpath = "F:\\pdfWork\\2\\test10.pdf";// 这个指的是模板中对应位置的名字String fieldname = "flag";// 图片路径String imagepath = "F:\\图片\\1.jpg";// 读取模板文件InputStream input = new FileInputStream(new File(templatepath));PdfReader reader = new PdfReader(input);PdfStamper stamper = new PdfStamper(reader, new FileOutputStream((targetpath)));// 提取pdf中的表单AcroFields form = stamper.getAcroFields();form.addSubstitutionFont(BaseFont.createFont("Font/SIMYOU.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED));// 通过域名获取所在页和坐标,左下角为起点int pageno = form.getFieldPositions(fieldname).get(0).page;Rectangle signrect = form.getFieldPositions(fieldname).get(0).position;float x = signrect.getLeft();float y = signrect.getBottom();// 读图片Image image = Image.getInstance(imagepath);// 获取操作的页面PdfContentByte under = stamper.getOverContent(pageno);// 这里控制图片的大小//image.scaleToFit(signrect.getWidth(), signrect.getHeight());image.scaleToFit(100, 100);// 添加图片image.setAbsolutePosition(x, y);under.addImage(image);stamper.close();reader.close();}

这里用的图片是路径的形式,还有种情况是图片是base64的时候,这种情况就需要转一下图片格式了,具体代码如下:

@Testpublic void testPic() throws Exception {// 模板文件路径String templatepath = "F:\\pdfWork\\2\\test9.pdf";// 生成的文件路径String targetpath = "F:\\pdfWork\\2\\test10.pdf";// 这个指的是模板中对应位置的名字String fieldname = "flag";// 读取模板文件InputStream input = new FileInputStream(new File(templatepath));PdfReader reader = new PdfReader(input);PdfStamper stamper = new PdfStamper(reader, new FileOutputStream((targetpath)));// 提取pdf中的表单AcroFields form = stamper.getAcroFields();form.addSubstitutionFont(BaseFont.createFont("Font/SIMYOU.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED));// 通过域名获取所在页和坐标,左下角为起点int pageno = form.getFieldPositions(fieldname).get(0).page;Rectangle signrect = form.getFieldPositions(fieldname).get(0).position;float x = signrect.getLeft();float y = signrect.getBottom();// 读图片//这里就是base64 的码String imgStr = ""byte [] byteArray = Base64.getDecoder().decode();Image image = Image.getInstance(byteArray);// 获取操作的页面PdfContentByte under = stamper.getOverContent(pageno);// 根据域的大小缩放图片//image.scaleToFit(signrect.getWidth(), signrect.getHeight());image.scaleToFit(100, 100);// 添加图片image.setAbsolutePosition(x, y);under.addImage(image);stamper.close();reader.close();}

java使用itext将图片放到pdf模板的指定位置相关推荐

  1. java pdf添加图片_java实现在pdf模板的指定位置插入图片

    本文实例为大家分享了java在pdf模板的指定位置插入图片的具体代码,供大家参考,具体内容如下 java操作pdf有个非常好用的库itextpdf,maven: com.itextpdf itextp ...

  2. java pdf域插入img_java实现在pdf模板的指定位置插入图片

    本文实例为大家分享了java在pdf模板的指定位置插入图片的具体代码,供大家参考,具体内容如下 java操作pdf有个非常好用的库itextpdf,maven: com.itextpdf itextp ...

  3. java pdf 插入图片_java实现在pdf模板的指定位置插入图片

    本文实例为大家分享了java在pdf模板的指定位置插入图片的具体代码,供大家参考,具体内容如下 java操作pdf有个非常好用的库itextpdf,maven: com.itextpdf itextp ...

  4. java pdf 插入图片_java在pdf模板的指定位置插入图片

    个人感觉pdf的操作比word舒心多了 java操作pdf有个非常好用的库itextpdf,maven: com.itextpdf itextpdf 5.5.6 com.itextpdf itext- ...

  5. java根据pdf模板生成指定格式的pdf文件

    java根据pdf模板生成指定格式的pdf文件 一.工具准备 事先得准备好Adobe Acrobat DC,这是一款专门编辑pdf的工具,小编已经给大家准备好了. 链接:https://pan.bai ...

  6. python将图片插入word文件的指定位置,并转为pdf文件

    1.需求说明 现需要做一份数据报告,报告中只需插入少量图片,其他部分的文字和格式不变,需要将图片插入word文件的指定位置,并最终生成一份pdf报告.注意:是基于已有word文件插入图片,不是创建wo ...

  7. poi操作word替换模板向指定位置添加图表

    poi操作word替换模板向指定位置添加图表 首先是引入pom文件 <dependency><groupId>org.apache.poi</groupId>< ...

  8. FME写入Excel数据时写到模板文件指定位置

    在写入Excel数据时写到模板文件指定位置 介绍 本示例对 Excel 写模块参数概述一文进行了扩展.在该示例中,您学习了如何更新模板文件指定的单元格. 使用 FME,您可以重写 RawData 工作 ...

  9. Java itext实现图片转pdf

    一.引入pom依赖 <dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf< ...

最新文章

  1. Asp.net Mvc 多级控制器 路由重写 及 多级Views目录 的寻找视图的规则 (多级路由) 如:Admin/Test/Index...
  2. golang post get put delete 请求实例代码
  3. (转)C#2.0泛型--Dictionary,List用法
  4. Java Math的 floor,round和ceil的总结 ,java基础知识
  5. 牛客题霸 [丑数] C++题解/答案
  6. 力扣429. N 叉树的层序遍历(JavaScript)
  7. [译]理解Node.js事件驱动机制
  8. OSPF高级特性(华为设备)
  9. BDS Business Development Studio
  10. js中小数四舍五入问题
  11. 如何得到最后N位都是1的二进制数
  12. vue 官方推荐的好用的三方库
  13. 虹科和ELPRO推出符合GxP标准的自助式温度分布验证套装
  14. Hutool 导出excel并合并单元格
  15. ArcGIS Pro与ArcGis区别
  16. ADAMS中转动整个模型
  17. 什么是RPC?RPC好处?常用的RPC框架?
  18. UWP使用必应每日壁纸(二)
  19. EastWave应用案例:同轴线仿真
  20. MySQL面试:为什么用自增列作为主键

热门文章

  1. win10启动修复_以安全模式启动win10的4种方法,简单高效,修复电脑故障必用技巧...
  2. c语言将字符串按空格分割_字符串单词输入反向输出怎么搞?C语言又带着二维数组来了!...
  3. 楚留香手游服务器维护,【楚留香手游】4.27日游戏维护公告
  4. at moment的用法 the_值得收藏!初中英语10大词类详解+用法+考点, 这一篇全齐了!...
  5. Java通过反射访问构造方法
  6. java - 菲波拉契数列 兔子个数
  7. 中职计算机组成原理期末,计组期末复习
  8. 计算机系统性错误,《深入理解计算机系统-异常》
  9. python模块使用相对路径还是绝对路径、哪种更好_python学习的第十八天模块之包、相对搜索路径和绝对搜索路径...
  10. wps分享为什么要登入_[win]为什么你需要便携应用?portableapps让你得心应手.