PDF中加java空白可写字段,java 在已有内容的PDF上添加空白数字签名域
在已有内容的PDF上添加空白数字签名域
如果想根据PDF模板生成PDF请跳转
废话不多说,上代码,亲测可用。
pom.xml
com.itextpdf
itextpdf
5.5.11
整体代码(里面的添加内容请参考上述链接):
import java.io.FileOutputStream;
import java.util.HashMap;
import java.util.Map;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.PdfAnnotation;
import com.itextpdf.text.pdf.PdfFormField;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfStamper;
/**
* 已有的PDF中添加空白数字签名域
* @author
*
*/
public class Demo {
public static void main(String[] args){
Mapmap=fillTemplate();
System.out.println(map.get("pdfs"));
}
public static MapfillTemplate() {
PdfReader reader;
FileOutputStream out;
PdfStamper ps;
Mapmap = new HashMap();
map.put("Text1","HT188888888888");
map.put("Text2","李四");//甲
map.put("Text3","111111111111111111");//乙
map.put("Text4","188888888888");
map.put("Text5","王五");//甲
map.put("Text6","11111111111111111");//乙
map.put("Text7","188888888888");
map.put("Text8","111");//甲
map.put("Text9","2018-11-11");//乙
map.put("Text10","2018-11-18");
map.put("Text11","0.05");//甲
map.put("Text13","阿拉蕾");//乙
map.put("Text14","888.67");
map.put("Text15","李四");//甲
map.put("Text16","王五");
map.put("Text17","2018-11-11");//甲
Mapos=new HashMap();
os.put("datemap",map);
Mapmap2=Model.fillTemplate(os);//添加内容完成了,但是签名域没了。
String src="C:/pdf/demo.pdf";//添加空白域完成的PDF
try {
out = new FileOutputStream(src);
reader = new PdfReader(map2.get("pdf")+"");//源文件
ps = new PdfStamper(reader, out);
// 创建数组签名域 (因为添加两个,所以搞了两个坐标系)
int x = 210, y = 437, width = 60, height = 60; // 坐标系远点位于页面左下角,左下角到右下角为 x 轴,左下角到左上角为 y 轴
Rectangle areaSignatureRect = new Rectangle(// 签名域区域,由两个对角点构成的矩形区域
x, // 点1 x坐标 左边距
y, // 点1 y坐标 上边距
x+width,// 点2 x坐标, 这个最好是左边距+宽,好调点。
y+height // 点2 y坐标, 同样这个最好是上边距+高,好调点。(其实我也懵懵懂.)
);
int xs = 210, ys = 290, widths = 60, heights = 60;
Rectangle areaSignatureRect2 = new Rectangle(// 签名域区域,由两个对角点构成的矩形区域
xs, // 点1 x坐标
ys, // 点1 y坐标
xs+widths,// 点2 x坐标
ys+heights // 点2 y坐标
);
int pageNo = 5; // PDF 文件的页码从 1 开始,而不是 0。(这个就是你要在哪个页面添加签名域,我的是第五页)
PdfFormField pdfFormField = PdfFormField.createSignature(ps.getWriter());
pdfFormField.setFieldName("AREA_SIGNATURE"); // 签名域标识
pdfFormField.setPage(pageNo);
pdfFormField.setWidget(areaSignatureRect, PdfAnnotation.HIGHLIGHT_OUTLINE); // 高亮显示
PdfFormField pdfFormField2 = PdfFormField.createSignature(ps.getWriter());//创建了两个(我也不懂,但是这样就可以)
pdfFormField2.setFieldName("AREA_SIGNATURE2"); // 签名域标识
pdfFormField2.setPage(pageNo);
pdfFormField2.setWidget(areaSignatureRect2, PdfAnnotation.HIGHLIGHT_OUTLINE); // 高亮显示
ps.setFormFlattening(true);// 如果为false,生成的PDF文件可以编辑,如果为true,生成的PDF文件不可以编辑
ps.addAnnotation(pdfFormField, pageNo);
ps.addAnnotation(pdfFormField2, pageNo);
System.err.println("生成pdf文件完成~~~~~~~~~~");
ps.close();//必须要关闭,要不然生成的PDF会是0KB(此代码大部分都是网上摘抄的,以为能用来着。没写这个,让我找大半天)
Mapmap3=new HashMap();
map3.put("pdfs",src);
return map3;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
PDF中加java空白可写字段,java 在已有内容的PDF上添加空白数字签名域相关推荐
- java 在已有内容的PDF上添加空白数字签名域
在已有内容的PDF上添加空白数字签名域 如果想根据PDF模板生成PDF请跳转 废话不多说,上代码,亲测可用. pom.xml <dependency><groupId>com. ...
- php实现电子签名,php实现往pdf中加数字签名操作示例【附源码下载】
本文实例讲述了php实现往pdf中加数字签名操作.分享给大家供大家参考,具体如下: //======================================================== ...
- 如何在 PDF 中搜索并准确找到您要查找的文本内容
您是否需要在冗长的 PDF 文档中快速查找单词或短语? 没有什么比打开一个只有文本墙的大型 PDF 文档更令人沮丧的了.或者必须在很长的文本中找到特定的单词或短语.或者很长的 PDF. 它不方便.耗时 ...
- PDF中加java空白可写字段,使用iTextSharp压模的可填写PDF中的空白字段
当我在等待某人创建可填写的PDF供我在我的项目中使用时,我在编写代码时用可填写的税表代替 . 以下代码填写了税务PDF表格,但是当我用可填写的PDF表格替换税表时,它不再有效 . 我已经验证了字段名称 ...
- java pdf无法加载_无法在Java中将完整数据生成为PDF文件
小编典典 好的,这是一个非常基本的示例-- JTable通过各种print方法,已经支持打印了,基本上,这归结为获取JTable Printable 接口实例并将其传递给打印API,该API需要Gra ...
- 如何在pdf中加入手写签名
目录 1.手写签名 2. 抠字符 3. 插入签名 1.手写签名 在白纸上写下需要的签名,然后用手机拍下来,再用扫描全能王将图片进行扫描,得到白底黑字的图像. 2. 抠字符 将第一步得到的图像中的字符部 ...
- java pdf 图片替换_Java 添加、替换、删除PDF中的图片
Java 添加.替换.删除PDF中的图片 本文介绍通过java程序向PDF文档添加图片,以及替换和删除PDF中已有的图片. 工具:Free Spire.PDF for Java (免费版) Jar获取 ...
- java 图片识别提取_老司机帮您Java 提取/读取PDF中的图片
电脑现已成为我们工作.生活和娱乐必不可少的工具了,在使用电脑的过程中,可能会遇到Java 提取/读取PDF中的图片的问题,如果我们遇到了Java 提取/读取PDF中的图片的情况,该怎么处理怎么才能解决 ...
- Java 读取PDF中表格的工具
目录 1.方法1:Spire.PDF 1.1 Maven仓库下载导入 1.2 读取PDF中的表格 1.2.1 代码 1.2.2 表格内容 1.2.3 读取结果 2.方法2:Tabula 2.1 Mav ...
最新文章
- 福布斯2019全球最佳创投人榜单发布,沈南鹏蝉联全球第一
- 在ubuntu上使用SSH客户端
- 100多本python书,免费电子版下载
- dnSpy 强大的.Net反编译软件
- 使用remi安装php70,Linux下使用yum安装LNMP环境
- Java基础-SSM之mybatis快速入门篇
- foreach之引用的使用
- scala之Akka的Actor模型(上)
- 关于Cocos2d-x的动作和动画
- ORB-SLAM 解读(六)ORB特征点构建BoW
- python网络编程第三版网盘_Python网络编程(socketserver、TFTP云盘、HTTPServer服务器模型)...
- php adodb类库下载,PHP中 ADOdb 类库介绍(二)
- java环境配置(jdk、jre安装和环境配置)
- 如何在系统设置mysql环境变量(win11)
- 值得入手的键盘——Keychron K8 Pro
- 游戏地图与场景设计常用名词
- 1.2 最短路算法的多用
- python把http字符串转码https%3A%2F%2F转https://
- 机器学习(一):简介
- 贾立平是中科学院计算机所博士,在思考中砥砺前行——记我校计算机与软件工程学院青年教师王晓明博士...
热门文章
- win10系统盘多大合适_韩博士装机大师一键重装win10系统
- Python RE 正则表达式模块
- 开放麒麟openKylin 0.7.5版本升级
- R语言使用glm构建logistic回归模型,构建多个协变量和分组变量之间的关系模型进行倾向性评分计算、估计(Propensity score)、预测倾向性评分并可视化不同分组倾向性评分的分布
- 《周鸿祎自述:我的互联网方法论》----摘抄
- 轧钢测径仪稳定可靠 丰富的软件系统显示
- simulink仿真及代码生成技术入门到精通_行星排混动从入门到精通(结构)
- pdfFactory怎么合并PDF
- HTML中的表格以及对表格样式的处理
- 用shell写俄罗斯方块