Java生成证书类pdf
内容借鉴至: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相关推荐
- java生成缩略图类源码
把做工程过程比较好的一些内容备份一下,如下内容段是关于 java生成缩略图类的内容. package com.whatycms.common.util; import java.awt.image.B ...
- Java生成证书用HTTPS进行访问
文章目录 一.CA证书是什么? 1. 什么是CA? 2. 什么是证书? 3. 证书生成过程 4. 将数字签名房价到数字证书上,变成一个签过名的数字证书 二.Java生成证书 1.进入JDK的bin目录 ...
- java生成pdf_Java实现PDF文件生成并且打印pdf文件 demo
## Java实现PDF生成并且打印pdf文件(附demo) #### 目录: 0. 效果预览 1. 准备环境 2. Java如何调用打印机进行打印 3. Java如何生成pdf打印文件 4. 实现p ...
- java生成公钥和私钥_使用Java生成证书,公钥和私钥
小编典典 您可以使用一对或密钥在Java中动态生成证书.(公钥,私钥).以BigInteger格式获取这些密钥,并检查以下代码以生成证书. RSAPrivateKeySpec serPrivateSp ...
- java生成word和pdf的几种方法的优缺点对比
JAVA生成word优缺点对比 所用技术 优点 缺点 Jacob 功能强大 代码量大,设置样式繁琐:需要windows平台支持,无法跨平台 Apache POI 读写excel功能强大.操作简单 一般 ...
- java 生成证书 android_Android自有证书生成指南
Android部署打包apk应用,需要用上数字证书进行签名,来表明身份的. 说到苹果证书,那是要收费的.而安卓证书恰恰相反,免费又不需要审批. 安卓证书可以使用Java的keytool工具生成,以下是 ...
- linux java 生成证书_Java 制作证书(Windows 和Linux)
一.Windows数字证书 1. 生成数字证书 1.1 进入[%JAVA_HOME%]路径下 1 cd D:Program FilesJavajdk1.8.0_131 1.2 生成证书.一些命令中红色 ...
- java生成实体类的工具内部是如何实现的(mysql)
一.认识INFORMATION_SCHEMA数据库 INFORMATION_SCHEMA数据库提供了访问数据库元数据(数据的数据)的方式 该数据库中存放有数据库名.表名,列名.列的数据类型等各种数据 ...
- java 生成证书 pkcs12_PKCS12 证书的生成及验证
本文首先感谢 Apple 开发者论坛的eskimo1,他是我见过的最热心肠的人,对任何人他都不吝于给予无私帮助. 服务器生成PKCS12证书库,并通过servlet导出为DER客户端证书(含一个密钥和 ...
最新文章
- PointASNL: 点云的Adaptive Sampling(CVPR2020)
- Python使用pandas保存csv文件:如果文件存在则只添加内容(append),如果无表则同时写入表头和内容(write)
- RHCS图形界面建立GFS共享上
- java节假日api--关于节假日想到的
- c++输入了后边不继续_医疗:连涨多日,后边还能加仓吗?直接说答案!
- 无代码iVX编程实现简单 小蜜蜂 经典游戏
- python中分割字符串两种方法正则分组别名_Python 正则表达式(分组)
- Java中的return this
- 设置XMLHttpRequest“ withCredentials”属性问题,axios请求不成功
- K-th largest element in an array
- PHP实现MySQL并发查询
- 网站跳出率高是什么原因引起的?如何优化?
- flex 文字竖排_4种CSS文字竖排方法
- 移动广告平台Android SDK接入指南
- 传送网发展与各种网元的功能
- 百度网盘里的加密视频为什么不能直接用点盾云播放?
- Java中输入一个整数n,实现n的阶乘
- 内核态与用户态通信之eventfd使用
- 攻防世界之Web新手练习篇
- 素数筛(c语言实现)
热门文章
- html5 见缝插针,HTML5见缝插针小游戏
- 网站Github资源收集 ,此篇没有找到github地址,作者整理了自己在Github中的starred项目可以直接在此网站进行访问。
- 基于Mask的音频降噪
- python连接mt4服务器_如何从MetaTrader 4/5终端向外部服务器发送数据?
- python三门问题_如何用Python解决蒙特霍尔三门问题
- Java8 Stream流List<JSONObject>通过某一属性进行排序
- 余世维博士:赢在执行-执行没有借口
- EAS添加系统参数F7的子项
- 分区工具给硬盘重新分区
- Kaggle_news_stock简单文本特征处理