java使用itext填充pdf模板

  • 1、先去建一个Word文件,设置好想要填充的地方,留好位置,设置好下划线
  • 2、将Word另存为pdf
  • 3、打开电脑中的Adobe Acrobat pro DC(这个应该win10 都有,搜索一下就出来了),点击 文件→创建→创建表单
  • 4、然后导入刚刚生成的pdf
    • 会出来这个页面
    • 双击这个阴影部分,将名称改成你要设置的名称,后面要根据这个名称来给他赋值
    • 全部设置好以后就可以另存为了
  • 5、前期的pdf模板准备好了,就开始上代码!
    • 1、首先导入我们所需要的依赖
    • 2、上代码
    • 3、字体需要放在resources目录下
  • 6、开始测试
  • 7、看看效果
    • ok,非常完美!
    • 问题总结:

1、先去建一个Word文件,设置好想要填充的地方,留好位置,设置好下划线

2、将Word另存为pdf

3、打开电脑中的Adobe Acrobat pro DC(这个应该win10 都有,搜索一下就出来了),点击 文件→创建→创建表单

4、然后导入刚刚生成的pdf

会出来这个页面

双击这个阴影部分,将名称改成你要设置的名称,后面要根据这个名称来给他赋值

全部设置好以后就可以另存为了


5、前期的pdf模板准备好了,就开始上代码!

1、首先导入我们所需要的依赖

<dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.13</version></dependency>

2、上代码

package com.icaremgt.admin.test;import com.itextpdf.text.Image;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.*;
import org.junit.Test;import java.io.*;
import java.util.HashMap;
import java.util.Map;public class TestPdf {@Testpublic void testPdf() {// 模板文件路径String inputFileName = "F:\\pdfWork\\1\\mytests.pdf";// 生成的文件路径String outputFileName = "F:\\pdfWork\\2\\test9.pdf";OutputStream os = null;PdfStamper ps = null;PdfReader reader = null;PdfStamper stamper = null;try {os = new FileOutputStream(new File(outputFileName));// 2 读入pdf表单reader = new PdfReader(inputFileName);// 3 根据表单生成一个新的pdfps = new PdfStamper(reader, os);// 4 获取pdf表单AcroFields form = ps.getAcroFields();// 5给表单添加中文字体BaseFont bf = BaseFont.createFont("Font/SIMYOU.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);form.addSubstitutionFont(bf);// 6查询数据================================================Map<String, Object> data = new HashMap<String, Object>();data.put("childrenName", "李四");data.put("gender", "男");data.put("year", "2021");data.put("month", "09");data.put("day", "23");data.put("userName", "张三");data.put("address", "河南省案发时发放手动阀是的");// 7遍历data 给pdf表单表格赋值for (String key : data.keySet()) {form.setField(key, data.get(key).toString());}ps.setFormFlattening(true);System.out.println("===============PDF导出成功=============");} catch (Exception e) {System.out.println("===============PDF导出失败=============");e.printStackTrace();} finally {try {ps.close();reader.close();os.close();} catch (Exception e) {e.printStackTrace();}}}}

3、字体需要放在resources目录下

BaseFont bf = BaseFont.createFont("Font/SIMYOU.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);

这个SIMYOU.TTF就是字体 (字体下载地址)

6、开始测试


导出成功!

7、看看效果

ok,非常完美!

可以关注我,下一期讲java使用itext将图片放到pdf模板的指定位置

问题总结:

@gao1123576431 这位老哥提出问题说赋值了,但是最后导出的PDF是没有值得,后来他给出了解决办法,引入itext-asian

<dependency><groupId>com.itextpdf</groupId><artifactId>itext-asian</artifactId><version>5.2.0</version></dependency>

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

  1. java使用itext填充pdf模板文字和图片,并使填充后的模板内容垂直水平居中

    一.背景 由于业务需求,我需要将程序的部分数据生成PDF报告以供下载浏览 二.实现方式 设计一个pdf模板,可以通过pdf编辑工具编辑模板.市面上支持编辑表单的pdf编辑都可以,如Adobe Acro ...

  2. java之数据填充PDF模板

    1.既然要使用PDF模板填充,那么就需要制作PDF模板,可以使用Adobe Acrobat DC,下载地址:https://carrot.ctfile.com/dir/11269771-2715881 ...

  3. java 填写pdf_新知识:Java 利用itext填写pdf模板并导出(昨天奋战到深夜四点,知道今天两点终于弄懂)...

    标签: 废话少说,不懂itext干啥用的直接去百度吧. ***************制作模板******************* 1.先用word做出界面 2.再转换成pdf格式 3.用Adobe ...

  4. Java填充PDF模板数据

    PDF模板数据填充 一.思路 根据业务需求,获取实际业务数据,借助itext库功能,将业务数据填充入提前制作好的PDF模板中 二.操作步骤 制作PDF模板:提前下载好Adobe Acrobat Pro ...

  5. Java/web/jsp根据pdf模板生成荣誉证书PDF文件

    Java/web/jsp根据pdf模板生成荣誉证书PDF文件 1.前言 最近博主在开发一个大学生学分管理系统,按照对方用户的要求,他们需要一个生成PDF荣誉证书的功能. 于是Java根据pdf模板生成 ...

  6. java 使用itext导出PDF文件,中文不显示问题解决

    之前写的java 使用itext 导出pdf 发现有个问题,在今天使用的时候,发现一个问题,就是当单元格中写中文的时候,导出来的pdf中文不显示. java 使用itext导出PDF文件,图片文字左右 ...

  7. 通过Java组件iText生成PDF报表或合同,完成pdf上传,预览,存入数据库

    因业务需要,做了一个通过Java组件iText生成PDF合同,运行成功了,做个记录,也分享给大家. 首先,我们需要准备好一个有文本域的pdf文件. 1.先用word做出你需要的模板,并保存. 2.通过 ...

  8. java 使用itext 导出pdf 控制图片的大小

    在使用itext 导出pdf 的过程中,可能会遇到这样的需求,就是导出文字加图片.使用我们前面写的程序,确实是可以导出图片,如果针对于类似简历的需求,图片填充单元格,会满足效果,如下图所示: 但在实际 ...

  9. Java使用itext生成Pdf

    Java使用itext生成Pdf 背景 所需依赖 解决jpedal-lgpl jar包问题 示例代码 生成带图片的PDF(使用本地文件系统图片) 生成带图片的PDF(使用网络图片) 背景 在某些业务场 ...

最新文章

  1. JavaScript初学者编程题(25)
  2. buu [GKCTF2020]汉字的秘密
  3. 记一次Sentry部署过程
  4. Helpdesk 流程
  5. clientX和clientY属性需要注意的地方
  6. 详解Python序列解包(4)
  7. atom系列服务器,这才叫四两拨千斤!Atom将登陆服务器
  8. 什么样的人适合微信创业
  9. java去0,Java如何处理除零?
  10. 网页html跑马灯,web实现跑马灯
  11. 【1】PASCAL VOC数据集下载
  12. STM32 磁场传感器HMC5883
  13. 【Arduino 项目篇】智能窗户控制系统(附录:简单红绿灯制作)
  14. 使用wps将excel中的行转列(转置)
  15. oracle中execute函数,oracle中execute immediate的使用(select/insert/update/delete)详解
  16. css table thead tr border生效
  17. oracle的闪存_ORACLEFS1-2闪存存储系统.PDF
  18. 明确不站队BAT,帆软——这家只有几百人的BI公司靠什么赢得生存?
  19. 树莓派模拟量输入范围_模拟量输入值超过了em235的量程范围,可以吗?-工业支持中心-西门子中国...
  20. Project build error: Non-parseable POM D:\code\pom.xml: expected start tag name and not

热门文章

  1. python颜色表_Python+matplotlib绘制不同大小和颜色散点图实例
  2. 工业互联网智能智造-工业企业大数据汇聚通道-产品设计
  3. HTML+CSS+JS实现 ❤️响应式团队❤️
  4. kafka 重新分配节点_Kafka扩容节点和分区迁移
  5. 放射性渐变色html,html5 canvas绘制放射性渐变色效果
  6. 登陆 manager app显示不是私密链接_小米上线了一款靠指静脉识别开锁的私密箱,打造你的私人存储空间...
  7. java .net 3des_Java.net3DES差异及互通
  8. mysql 5.1版本无innodb trx_MySQL 5.7: Innodb 事务子系统优化-阿里云开发者社区
  9. java - 条件嵌套
  10. python如何把一张图像的所有像素点的值都显示出来_情人节,教你用 Python 向女神表白...