在已有内容的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上添加空白数字签名域相关推荐

  1. java 在已有内容的PDF上添加空白数字签名域

    在已有内容的PDF上添加空白数字签名域 如果想根据PDF模板生成PDF请跳转 废话不多说,上代码,亲测可用. pom.xml <dependency><groupId>com. ...

  2. php实现电子签名,php实现往pdf中加数字签名操作示例【附源码下载】

    本文实例讲述了php实现往pdf中加数字签名操作.分享给大家供大家参考,具体如下: //======================================================== ...

  3. 如何在 PDF 中搜索并准确找到您要查找的文本内容

    您是否需要在冗长的 PDF 文档中快速查找单词或短语? 没有什么比打开一个只有文本墙的大型 PDF 文档更令人沮丧的了.或者必须在很长的文本中找到特定的单词或短语.或者很长的 PDF. 它不方便.耗时 ...

  4. PDF中加java空白可写字段,使用iTextSharp压模的可填写PDF中的空白字段

    当我在等待某人创建可填写的PDF供我在我的项目中使用时,我在编写代码时用可填写的税表代替 . 以下代码填写了税务PDF表格,但是当我用可填写的PDF表格替换税表时,它不再有效 . 我已经验证了字段名称 ...

  5. java pdf无法加载_无法在Java中将完整数据生成为PDF文件

    小编典典 好的,这是一个非常基本的示例-- JTable通过各种print方法,已经支持打印了,基本上,这归结为获取JTable Printable 接口实例并将其传递给打印API,该API需要Gra ...

  6. 如何在pdf中加入手写签名

    目录 1.手写签名 2. 抠字符 3. 插入签名 1.手写签名 在白纸上写下需要的签名,然后用手机拍下来,再用扫描全能王将图片进行扫描,得到白底黑字的图像. 2. 抠字符 将第一步得到的图像中的字符部 ...

  7. java pdf 图片替换_Java 添加、替换、删除PDF中的图片

    Java 添加.替换.删除PDF中的图片 本文介绍通过java程序向PDF文档添加图片,以及替换和删除PDF中已有的图片. 工具:Free Spire.PDF for Java (免费版) Jar获取 ...

  8. java 图片识别提取_老司机帮您Java 提取/读取PDF中的图片

    电脑现已成为我们工作.生活和娱乐必不可少的工具了,在使用电脑的过程中,可能会遇到Java 提取/读取PDF中的图片的问题,如果我们遇到了Java 提取/读取PDF中的图片的情况,该怎么处理怎么才能解决 ...

  9. 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 ...

最新文章

  1. 福布斯2019全球最佳创投人榜单发布,沈南鹏蝉联全球第一
  2. 在ubuntu上使用SSH客户端
  3. 100多本python书,免费电子版下载
  4. dnSpy 强大的.Net反编译软件
  5. 使用remi安装php70,Linux下使用yum安装LNMP环境
  6. Java基础-SSM之mybatis快速入门篇
  7. foreach之引用的使用
  8. scala之Akka的Actor模型(上)
  9. 关于Cocos2d-x的动作和动画
  10. ORB-SLAM 解读(六)ORB特征点构建BoW
  11. python网络编程第三版网盘_Python网络编程(socketserver、TFTP云盘、HTTPServer服务器模型)...
  12. php adodb类库下载,PHP中 ADOdb 类库介绍(二)
  13. java环境配置(jdk、jre安装和环境配置)
  14. 如何在系统设置mysql环境变量(win11)
  15. 值得入手的键盘——Keychron K8 Pro
  16. 游戏地图与场景设计常用名词
  17. 1.2 最短路算法的多用
  18. python把http字符串转码https%3A%2F%2F转https://
  19. 机器学习(一):简介
  20. 贾立平是中科学院计算机所博士,在思考中砥砺前行——记我校计算机与软件工程学院青年教师王晓明博士...

热门文章

  1. win10系统盘多大合适_韩博士装机大师一键重装win10系统
  2. Python RE 正则表达式模块
  3. 开放麒麟openKylin 0.7.5版本升级
  4. R语言使用glm构建logistic回归模型,构建多个协变量和分组变量之间的关系模型进行倾向性评分计算、估计(Propensity score)、预测倾向性评分并可视化不同分组倾向性评分的分布
  5. 《周鸿祎自述:我的互联网方法论》----摘抄
  6. 轧钢测径仪稳定可靠 丰富的软件系统显示
  7. simulink仿真及代码生成技术入门到精通_行星排混动从入门到精通(结构)
  8. pdfFactory怎么合并PDF
  9. HTML中的表格以及对表格样式的处理
  10. 用shell写俄罗斯方块