使用itext5进行文字或图片签章

 记录一下使用iText5组件进行pdf文字或图片签章

库文件:bcmail-jdk14-1.38.jar, bcpkix-jdk15on-1.54.jar, bcprov-jdk14-1.38.jar, bcprov-jdk15on-1.54.jar,itext-asian-5.2.0.jar,itextpdf-5.5.12.jar

输入:自建的PDF文件、pkcs12密钥证书、自定义签章图片、自定义文字信息、外部字体

输出:签章后的PDF文件

用途:PDF浏览器可以识别该文件在Signature之后是否被修改过

 

 

     KeyStore ks = KeyStore.getInstance("PKCS12");
     ks.load(new FileInputStream("D:/ex/pdfsign2.p12"), "123456".toCharArray());//STOREPASS,密钥库
     String alias = ks.aliases().nextElement();
     PrivateKey pk = (PrivateKey) ks.getKey(alias,"123456".toCharArray() );//KEYPASS ,私钥
     Certificate[] cer = ks.getCertificateChain(alias);    //证书
     
     PdfReader read = new PdfReader("d:/ex/test2.pdf");
     FileOutputStream os = new FileOutputStream("d:/ex/test2_sig.pdf");
     PdfStamper pstp = PdfStamper.createSignature(read, os, '\0', null, true);//签证工具类对象,true表示可以反复签章(详见http://itextsupport.com/apidocs/itext5)
     PdfSignatureAppearance psa = pstp.getSignatureAppearance();    //签章属性对象
     Image img = Image.getInstance("D:\\0001_ICONS\\bee.jpg");
     psa.setSignatureGraphic(img);           //签章图片
     psa.setReason("Private Reason[个人原因]");
     psa.setLocation("太阳系地球北半球东经120°");
     psa.setVisibleSignature(new Rectangle(180, 100, 650, 170),1,"sigflag1");
     psa.setSignDate(Calendar.getInstance());
     psa.setRenderingMode(RenderingMode.GRAPHIC_AND_DESCRIPTION); 
     psa.setCertificationLevel(PdfSignatureAppearance.CERTIFIED_FORM_FILLING_AND_ANNOTATIONS);  
     BaseFont f3 = BaseFont.createFont("fonts/MSYH.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);//外部字体
     //BaseFont f = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
     psa.setLayer2Font(new Font(f3,10,Font.NORMAL,BaseColor.BLUE));
     
     ExternalDigest dg = new BouncyCastleDigest(); //摘要算法
     ExternalSignature es = new PrivateKeySignature(pk,DigestAlgorithms.SHA1,null);//签名算法
     
     MakeSignature.signDetached(psa, dg, es, cer, null, null, null, 0, CryptoStandard.CMS);//签章
     
     JOptionPane.showMessageDialog(null, "完成!");     
     
     
/**
 * 密钥建立
 * keytool -genkey -v -alias merrickpdfsign2 -keyalg RSA -storetype PKCS12 -keystore D:/ex/pdfsign2.p12 -storepass 123456 -keypass 123456
 * */

 

 

记一次itext5合并多个pdf、文字、图片遇到的问题(已解决) 记一次itext5合并多个pdf、文字、图片遇到的问题(已解决,但原因不清楚) 1、需求 有多个pdf、图片需要合并,同时在之间可能会需要插入分隔语句 2、生成逻辑 获得byte数组buildPdf图片/PDFPdfBrickStringPdfBrickList组合后的PDF 3、实现 先上能正确实现的代码 /** * 合并多个个pdf文件(已有电子签章会失效) */ ... 阅读详情

相关推荐

使用itextpdf进行动态盖章,解决PDF页数不确定时签章位置变化问题

一简介 因公司业务需求需要做一个生成PDF的功能,采用的是html+freemarker来实现的。其中由于内容是变动的,需要确定签章图片的绝对位置,故选择找到附近关键字的坐标,从而来确定盖章位置。 二 项目依赖 <dependency> <groupId>com.itextpdf</groupId> <artifactId>...

weixin_39515661的博客 5528

itext 5.3.0实现对pdf文件添加(文字和图片)水印

在itext 较新的版本中, 对中文的支持还是存在着问题,在网络上得到的信息和多方尝试下,将字体文件xx.TTF放到项目里面,然后加载到BaseFont 中,可行。如下: BaseFont font = BaseFont.createFont(path + "MSYH.TTF", BaseFont.IDENTITY_H, BaseFont.EMBEDDED); 具体的加水印代码如下: pac

极e象 1万+

Java实战:用iText7实现PDF关键字电子签章(附完整代码)

本文详细介绍了如何使用Java和iText7库实现基于关键字定位的PDF电子签章功能。通过解析PDF文本、精准定位关键字坐标,并动态叠加签章图像,提供了从静态定位到智能匹配的完整解决方案,附有核心代码示例,帮助开发者高效集成自动化签章能力。

weixin_29290863的博客 340

依赖冲突解决的一个思路

windowns和linux环境下JVM类加载结果不一致

XMU20162841的博客 3785

bcprov-jdk14-160.jar

bcprov-jdk14-160.jar用于rsa非对称加密jar包,bcprov-jdk14-160.jar用于rsa非对称加密jar包,

bcmail-jdk14-138

bcmail-jdk14-138.jar bcprov-jdk14-138.pom bcprov-jdk14-138.pom.sha1

websphere上部署基于cxf框架的webservice项目报错问题的解决方案

报错: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'xxxService': Invocation of init method failed;nested exception is java.lang.NoSuchMethodError:org/apache/ws...

Anubies的专栏 2688

bcprov-jdk14-119.jar

AES加加解密使用jar包,bcprov-jdk14-119.jar,不知道怎么免费上传

数学分析(五)-导数和微分3-参变量函数的导数4:光滑曲线-表述②【若f的导函数在[a,b]上连续, 则称f在[a,b]上光滑】【光滑曲线C每一点都有切线,且切线与x轴正向夹角α(t)是t的连续函数】

上不仅每一点都有切线, 且切线与。

u013250861的博客 198

itextpdf电子签章.zip

简单的javademo,利用itextpdf实现电子签章,添加背景图片,水印。 支持支持利用检索文件某内容实现签章,如落款处、私章等

bcprov-jdk14-1.38-API文档-中文版.zip

赠送jar包:bcprov-jdk14-1.38.jar; 赠送原API文档:bcprov-jdk14-1.38-javadoc.jar; 赠送源代码:bcprov-jdk14-1.38-sources.jar; 赠送Maven依赖信息文件:bcprov-jdk14-1.38.pom; 包含翻译后的API文档:bcprov-jdk14-1.38-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.bouncycastle:bcprov-jdk14:1.38; 标签:bouncycastle、bcprov、jdk14、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

IText5实现PDF签章流程

public class ReadMe { public static void main(String[] args) throws Exception { //1、创建PDF阅读器 PdfReader pdfReader = new PdfReader("需要签章的PDF文件路径"); //2、创建签章工具PdfStamper...

走马川行雪的博客 3503

bctsp-jdk14-1.38.jar中文-英文对照文档.zip

注:下文中的 *** 代表文件名中的组件名称。 # 包含: 中文-英文对照文档:【***-javadoc-API文档-中文(简体)-英语-对照版.zip】 jar包下载地址:【***.jar下载地址(官方地址+国内镜像地址).txt】 Maven依赖:【***.jar Maven依赖信息(可用于项目pom.xml).txt】 Gradle依赖:【***.jar Gradle依赖信息(可用于项目build.gradle).txt】 源代码下载地址:【***-sources.jar下载地址(官方地址+国内镜像地址).txt】 # 本文件关键字: 中文-英文对照文档,中英对照文档,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压 【***.jar中文文档.zip】,再解压其中的 【***-javadoc-API文档-中文(简体)版.zip】,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·本文档为双语同时展示,一行原文、一行译文,可逐行对照,避免了原文/译文来回切换的麻烦; ·有原文可参照,不再担心翻译偏差误导; ·边学技术、边学英语。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

itext5实现PDF文件的电子签名签章添加水印文件加密SpringBoot:全方位提升PDF文档处理效率

itext5实现PDF文件的电子签名签章添加水印文件加密SpringBoot:全方位提升PDF文档处理效率 去发现同类优质开源项目:https://gitcode.com/ 在当今数字化时代,PDF文件已经成为商务交流与文档管理的标准格式。然而,PDF文件的安全性、个性化以及便捷性处理一直是开发者面临的挑战。今天,我们为您推荐一个功能强大的开源项目——itext5实现PDF文件的电子签名签章添加水...

gitblog_06762的博客 807

自学篇--使用keil5.23创建一个stm32工程并编译(固件包自带版本)

之前在本科学习阶段学习过一点51单片机的知识,可是因为基本没有实践过几次现在已经完全忘记了。。前几天老师突然丢给我几个板子说让我把程序编译、烧写环境装好,当时我就震惊了,不过经过三四天的自我摸索,之后参考他人的学习经验,现在已经基本能处理这个问题了,所以为了方便后面的学者,主要也是为了把自己这几天的学习成果记录一下,我在这里把这个过程写下来。(因为刚刚接触,很多原理性的东西都还不懂,只是一个操作步

yang_csdnForOBTS的博客 8659

从零到一:STM32G431的DSP库集成与FFT实战避坑指南

本文详细介绍了在STM32G431微控制器上集成CMSIS-DSP库并进行FFT实战开发的完整流程。重点解析了通过CubeMX和Keil环境配置DSP库的关键步骤、编译器宏定义陷阱及解决方案,并提供了FFT算法优化、内存管理及常见问题诊断的实用技巧,帮助开发者高效实现嵌入式信号处理应用。

oauth7security的博客 768

itext5实现PDF文件的电子签名、签章、添加水印、文件加密(Spring Boot)

itext5实现PDF文件的电子签名、签章、添加水印、文件加密(Spring Boot) 去发现同类优质开源项目:https://gitcode.com/ 介绍 本项目提供了一套基于itext5的PDF文件处理解决方案,包括电子签名、签章、添加水印和文件加密等功能。通过Spring Boot框架进行整合,为开发者提供了一套完整的线上签字、盖章、防伪二维码及水印的PDF处理流程。下载后按照配置提示进...

gitblog_06770的博客 950

ELK 企业级日志分析系统(1)

ELK平台是一套完整的日志集中处理解决方案,将、Logstash和Kiabana三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求。ElasticSearch:是基于Lucene(一个全文检索引擎的架构)开发的分布式存储检索引擎,用来存储各类日志。Elasticsearch 是用 Java 开发的,可通过 RESTful Web 接口,让用户可以通过浏览器与 Elasticsearch 通信。

云计算运维工程师的成长之路 1864

PDF电子签章实现:基于SpringBoot与iText的完整方案

数字签名技术作为信息安全领域的基础设施,通过非对称加密算法确保电子文档的完整性和身份真实性。其核心原理是利用RSA等算法生成密钥对,通过私钥加密文档哈希值实现签名,公钥用于验证。在电子合同、政府公文等场景中,符合PKCS#7标准的数字签名能有效解决文档防伪和认证问题。本文以SpringBoot3和iText5为核心,详细解析PDF可视化电子签章的实现方案,包括证书管理、签章外观设计、签名嵌入等关键技术环节,并针对政府项目中常见的RSA算法要求和PKCS#7标准合规性提供工程实践指导。

weixin_33788244的博客 507

从12摄像头到纯视觉:小鹏AI鹰眼方案如何用LOFIC技术省掉激光雷达?

本文深入解析小鹏汽车AI鹰眼方案如何通过LOFIC技术实现纯视觉自动驾驶,替代传统激光雷达。LOFIC摄像头在动态范围、噪声控制和HDR优化方面表现卓越,结合800万像素双目广角摄像头,达到激光雷达级测距精度。该方案不仅降低成本,还提升系统可靠性和用户体验,展示了纯视觉路线的技术潜力与边界。

t8u9v0w1x的博客 933

立创·庐山派-K230-CanMV(嘉楠勘智)开发板通过ATK-ESP8266实现图像识别数据无线传输至原子云

本文详细介绍了如何使用立创·庐山派-K230-CanMV开发板,通过ATK-ESP8266 WIFI模块实现图像识别数据的无线传输至原子云平台。内容包括硬件连接、软件环境搭建、AT指令控制、原子云连接及数据上传的全过程,并提供了实用的调试技巧和常见问题解决方案,为物联网应用开发提供了完整实践指南。

potato的博客 741

PDF电子签章

pdf电子签章,是通过pdf查找某个文字的坐标来实现签章 **pdf文件和章自己准备** 1、 引入pom文件 <!-- pdf样式 --> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itext-asian</artifactId> <version>5.2.0&l

qq_36978700的博客 2558

YOLOv11 TensorRT极致加速:C++部署性能优化完全指南

购买即可解锁300+YOLO优化文章,并且还有海量深度学习复现项目,价格仅需两杯奶茶的钱,别人有的本专栏也有!

LXY_LOVE36的博客 117

生成电子签章图片的Java方法

以上代码和方法提供了在Java中生成电子签章图片的基本框架,可以根据具体需求进行扩展和修改。JAVA代码生成电子签章图片。利用Java的AWT库和Graphics2D类可以绘制基本的电子签章图形,包括圆形、文字和图案。使用Java生成电子签章图片可以通过多种方式实现,以下是一些常见的方法和代码示例。为电子签章添加数字签名功能,可以使用Java的加密API。如果需要生成PDF格式的电子签章,可以使用iText库。

weixin_43271600的博客 566

《Python星球日记》 第73天:情感分析与主题建模

《Python星球日记》 第73天:情感分析与主题建模,今天我们将探索两个自然语言处理领域的重要技术:情感分析和主题建模。这两项技术在社交媒体分析、用户反馈处理、市场研究等多个领域有着广泛应用。

Code_流苏:在代码中寻诗意,在实践中觅真知 919

fatal: unable to access ‘https://github.com/xxx.git/‘ OpenSSL SSL_connect: SSL_ERROR_SYSCALL 解决方案

 本文主要介绍了fatal: unable to access ‘https://github.com/xxx.git/’: OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443解决方案,希望能对使用git的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 24万+
上一篇: 个人首个AndroidApp开发小结(201509)
下一篇: Apache ActiveMQ P2P模式实时请求-响应
johnsearcher
博客等级 码龄17年 12粉丝 55原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值