内容借鉴至:https://blog.csdn.net/ITBigGod/article/details/81155483
1.准备模板图片

2.准备Adobe Acrobat 工具
下载地址:
链接:https://pan.baidu.com/s/1KGHIK4PV6gP1F5OQX8iCdQ?pwd=gv42
提取码:gv42

3.使用Adobe Acrobat 工具生成pdf模板
打开图片

选择保存pdf模板的位置进行保存

在需要添加动态数据处添加文本框

package cn.zhuoqianmingyue;import java.io.ByteArrayOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.pdf.AcroFields;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfStamper;public class ITextDemo {public static void main(String[] args) throws Exception {System.out.println("==========证书生成start==========");test();System.out.println("==========证书生成end============");}public static void test() throws Exception {/* 导入PDF模板 */String fileName = "J:/pdf/test.pdf";/* 生成的新文件路径 */String newPDFPath = "J:/pdf/ceshi.pdf";try {PdfReader reader = new PdfReader(fileName);ByteArrayOutputStream bos = new ByteArrayOutputStream();/* 2.读取PDF模板内容 */PdfStamper ps = new PdfStamper(reader, bos);PdfContentByte under = ps.getUnderContent(1);System.out.println("采用PDF模板:" + fileName);/* 3.法1:设置使用itext-asian.jar的中文字体 */BaseFont bf = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);/*法2:使用项目下的自定义的中文字体bfChinese = BaseFont.createFont("static/font/SIMSUN.TTC,1", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);*//*法3:使用windows系统下的字体库bfChinese = BaseFont.createFont("c://windows//fonts//simsun.ttc,1",BaseFont.IDENTITY_H, false);*/ArrayList<BaseFont> fontList = new ArrayList<BaseFont>();fontList.add(bf);/* 4.获取模板中的所有字段 */AcroFields fields = ps.getAcroFields();fields.setSubstitutionFonts(fontList);fillData(fields, data());          //调用方法执行写入/* 必须要调用这个,否则文档不会生成的 */ps.setFormFlattening(true);ps.close();/* 5.将要生成的目标PDF文件名称 */OutputStream fos = new FileOutputStream(newPDFPath);fos.write(bos.toByteArray());System.out.println("新证书已生成:" + newPDFPath);fos.flush();fos.close();bos.close();} catch (IOException e) {System.out.println("证书生成失败,原因:" + e.getLocalizedMessage());} catch (DocumentException e) {System.out.println("证书生成失败,原因:" + e.getLocalizedMessage());}}// 获取pdf模板中有哪些字段key+赋值的值valuepublic static void fillData(AcroFields fields, Map<String, String> data) throws IOException, DocumentException {for (String key : data.keySet()) {String value = data.get(key); // 调用data方法获取值System.out.println(key + "字段:" + value);fields.setField(key, value); // 为字段赋值,注意字段名称是区分大小写的}}// 为需要填入的数据value赋值public static Map<String, String> data() {Map<String, String> data = new HashMap<String, String>();data.put("name", "张三:"); // 字段需要对应pdf模板里面的名称return data;}
}

追加:因为上面提供的Adobe Acrobat 工具软件出现频繁奔溃所以更换版本
链接:https://pan.baidu.com/s/1VEQnk6WlakLwQsqQxXpHXg?pwd=9cvb
提取码:9cvb

下载安装好后生成pdf模板
先加载图片

保存pdf模板位置

Java生成证书类pdf相关推荐

  1. java生成缩略图类源码

    把做工程过程比较好的一些内容备份一下,如下内容段是关于 java生成缩略图类的内容. package com.whatycms.common.util; import java.awt.image.B ...

  2. Java生成证书用HTTPS进行访问

    文章目录 一.CA证书是什么? 1. 什么是CA? 2. 什么是证书? 3. 证书生成过程 4. 将数字签名房价到数字证书上,变成一个签过名的数字证书 二.Java生成证书 1.进入JDK的bin目录 ...

  3. java生成pdf_Java实现PDF文件生成并且打印pdf文件 demo

    ## Java实现PDF生成并且打印pdf文件(附demo) #### 目录: 0. 效果预览 1. 准备环境 2. Java如何调用打印机进行打印 3. Java如何生成pdf打印文件 4. 实现p ...

  4. java生成公钥和私钥_使用Java生成证书,公钥和私钥

    小编典典 您可以使用一对或密钥在Java中动态生成证书.(公钥,私钥).以BigInteger格式获取这些密钥,并检查以下代码以生成证书. RSAPrivateKeySpec serPrivateSp ...

  5. java生成word和pdf的几种方法的优缺点对比

    JAVA生成word优缺点对比 所用技术 优点 缺点 Jacob 功能强大 代码量大,设置样式繁琐:需要windows平台支持,无法跨平台 Apache POI 读写excel功能强大.操作简单 一般 ...

  6. java 生成证书 android_Android自有证书生成指南

    Android部署打包apk应用,需要用上数字证书进行签名,来表明身份的. 说到苹果证书,那是要收费的.而安卓证书恰恰相反,免费又不需要审批. 安卓证书可以使用Java的keytool工具生成,以下是 ...

  7. linux java 生成证书_Java 制作证书(Windows 和Linux)

    一.Windows数字证书 1. 生成数字证书 1.1 进入[%JAVA_HOME%]路径下 1 cd D:Program FilesJavajdk1.8.0_131 1.2 生成证书.一些命令中红色 ...

  8. java生成实体类的工具内部是如何实现的(mysql)

    一.认识INFORMATION_SCHEMA数据库 INFORMATION_SCHEMA数据库提供了访问数据库元数据(数据的数据)的方式 该数据库中存放有数据库名.表名,列名.列的数据类型等各种数据 ...

  9. java 生成证书 pkcs12_PKCS12 证书的生成及验证

    本文首先感谢 Apple 开发者论坛的eskimo1,他是我见过的最热心肠的人,对任何人他都不吝于给予无私帮助. 服务器生成PKCS12证书库,并通过servlet导出为DER客户端证书(含一个密钥和 ...

最新文章

  1. PointASNL: 点云的Adaptive Sampling(CVPR2020)
  2. Python使用pandas保存csv文件:如果文件存在则只添加内容(append),如果无表则同时写入表头和内容(write)
  3. RHCS图形界面建立GFS共享上
  4. java节假日api--关于节假日想到的
  5. c++输入了后边不继续_医疗:连涨多日,后边还能加仓吗?直接说答案!
  6. 无代码iVX编程实现简单 小蜜蜂 经典游戏
  7. python中分割字符串两种方法正则分组别名_Python 正则表达式(分组)
  8. Java中的return this
  9. 设置XMLHttpRequest“ withCredentials”属性问题,axios请求不成功
  10. K-th largest element in an array
  11. PHP实现MySQL并发查询
  12. 网站跳出率高是什么原因引起的?如何优化?
  13. flex 文字竖排_4种CSS文字竖排方法
  14. 移动广告平台Android SDK接入指南
  15. 传送网发展与各种网元的功能
  16. 百度网盘里的加密视频为什么不能直接用点盾云播放?
  17. Java中输入一个整数n,实现n的阶乘
  18. 内核态与用户态通信之eventfd使用
  19. 攻防世界之Web新手练习篇
  20. 素数筛(c语言实现)

热门文章

  1. html5 见缝插针,HTML5见缝插针小游戏
  2. 网站Github资源收集 ,此篇没有找到github地址,作者整理了自己在Github中的starred项目可以直接在此网站进行访问。
  3. 基于Mask的音频降噪
  4. python连接mt4服务器_如何从MetaTrader 4/5终端向外部服务器发送数据?
  5. python三门问题_如何用Python解决蒙特霍尔三门问题
  6. Java8 Stream流List<JSONObject>通过某一属性进行排序
  7. 余世维博士:赢在执行-执行没有借口
  8. EAS添加系统参数F7的子项
  9. 分区工具给硬盘重新分区
  10. Kaggle_news_stock简单文本特征处理