个人感觉pdf的操作比word舒心多了

java操作pdf有个非常好用的库itextpdf,maven:

com.itextpdf

itextpdf

5.5.6

com.itextpdf

itext-asian

5.2.0

思路:

Adobe的Acrobat可以对pdf进行编辑,在文档中插入域,这个插入的域就是图片的位置。这儿有关于域的介绍,但是这不重要,我们只是把域作为一个占位符用;

利用itextpdf得到目标域所在的页面、位置、大小;

利用域的坐标,把图片以绝对位置的方式插入到pdf中。

代码

public static void main(String[] args) throws Exception {

// 模板文件路径

String templatePath = "template.pdf";

// 生成的文件路径

String targetPath = "target.pdf";

// 书签名

String fieldName = "field";

// 图片路径

String imagePath = "image.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("STSong-Light","UniGB-UCS2-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.setAbsolutePosition(x, y);

under.addImage(image);

stamper.close();

reader.close();

}

参考

java pdf 插入图片_java在pdf模板的指定位置插入图片相关推荐

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

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

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

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

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

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

  4. java如何接受字符_java中string怎么获取指定位置的字符

    //截取#之前的字符串String str = "sdfs#d";str.substring(0, str.indexOf("#"));// 输出的结果为:sd ...

  5. php数组中插入数值,php中如何在数组指定位置插入数据单元

    方法: 使用array_splice()函数. 语法格式:array_splice(array,offset,length,array) 参数: array:必需.规定数组. offset:必需.数值 ...

  6. poi在指定位置插入图片,图片可以浮动内容上方下方

    在使用poi操作docx模板文件时,总会出现需要插入类似印章签名的图片.poi直接插入图片是插入内嵌图片 这个图片是占位置的. 会撑高当前的那一行类似效果 行使得制作出来的word样式辣眼睛. 一般印 ...

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

    java使用itext将图片放到pdf模板的指定位置 前面的准备步骤可以参考我的上一篇文章 这里直接上代码 这里用的图片是路径的形式,还有种情况是图片是base64的时候,这种情况就需要转一下图片格式 ...

  8. 使用Itext操作PDF,修改文本内容及指定位置插入图片

    参考博客:修改文本的 参考博客:插入图片的 这里基于修改文本的博客编写的,主要解决了几个问题: 1.文件乱码 2.设置区域背景色 3.设置文字字体颜色 4.插入图片空指针 5.指定位置插入偏移 等等问 ...

  9. java word添加图片_Java 替换word文档文字并指定位置插入图片

    先说下 需要的依赖包 org.apache.poi poi-excelant 3.12 org.apache.poi poi-scratchpad 3.12 org.apache.poi poi-oo ...

最新文章

  1. 【文末送5本书】与「韦神」齐名,35岁刁晗生任教清华!18岁一战成名,数学界颜值巅峰...
  2. Codeforces Gym 100523E E - Gophers SET
  3. Pytorch搭建Faster R-CNN目标检测平台
  4. 一个老鸟发的公司内部整理的 Android 学习路线图 Markdown 版本
  5. 使用DeviceOne实现微信小程序功能
  6. Swagger-概述
  7. php上传原生代码,腾讯云cos-php-sdk-v5的原生代码上传方式
  8. java项目设计_java项目设计
  9. python 高级语言特性_Pytohon学习笔记(一)Python编程语言历史及特性
  10. eclipse java混淆打包_Android Studio和eclipse混淆打包总结
  11. iPhone降价都救不回销量?苹果仍需努力!
  12. matlab与水库调度,蛙跳算法优化水库调度,全局迭代中最优解未更新
  13. 什么是Web Service
  14. mysql所选路径已经存在_5分钟安装好MySQL数据库(建议收藏)
  15. Microsoft.NET离线运行库合集
  16. vim学习笔记-tags用法
  17. Oracle调优总结
  18. NOIP 陶陶摘苹果
  19. 再谈Revit二次开发的可靠性和前景
  20. vscode切换中英文

热门文章

  1. 前端-HTML基础入门
  2. React项目中请求跨域解决方法
  3. Arduino Leonardo教程:如何回车,特殊按键定义,DIY超便宜的键盘主控
  4. XYplorer v17.60.01
  5. MAC剪切板神器 —— Paste
  6. 数据安全态势感知解决方案汇总
  7. 惠普CEO李艾科的“金刚钻儿”
  8. 计算机显卡的安装步骤简约,自己组装电脑:显卡安装教程
  9. 七牛云 播放的时候显示错误信息:视频解析异常 请重试
  10. 水平仪算公式计算机,水准仪的使用及计算方法