如题,给pdf文件添加数字签名
工具包:itextpdf-5.1.3.jar 等
方式:读取一个需要添加签名的源文件,输出成功的签名后的文件
import java.io.*; import java.security.*; import com.itextpdf.text.*; public class signPDF { public static void sign() throws Exception { KeyStore ks = KeyStore.getInstance("pkcs12"); ks.load(new FileInputStream("demo.p12"),"123456".toCharArray()); //123456为私钥密码 String alias = (String) ks.aliases().nextElement(); PrivateKey key = (PrivateKey) ks.getKey(alias, "123456".toCharArray()); Certificate[] chain = ks.getCertificateChain(alias); PdfReader reader = new PdfReader("demo.pdf"); //源文件 FileOutputStream fout = new FileOutputStream("z.pdf"); PdfStamper stp = PdfStamper.createSignature(reader, fout, '\0'); PdfSignatureAppearance sap = stp.getSignatureAppearance(); sap.setCrypto(key, chain, null, PdfSignatureAppearance.VERISIGN_SIGNED); sap.setReason(""); sap.setLocation(""); //添加位置信息,可为空 sap.setContact("http://swordshadow.iteye.com/"); Image image = Image.getInstance("sign.png"); //使用png格式透明图片 sap.setSignatureGraphic(image); sap.setAcro6Layers(true); sap.setRenderingMode(RenderingMode.GRAPHIC); sap.setVisibleSignature(new Rectangle(300, 600, 400, 675), 1, null); //300和600 是对应x轴和y轴坐标 stp.getWriter().setCompressionLevel(5); if (stp != null) { stp.close(); } if (fout != null) { fout.close(); } if (reader != null) { reader.close(); } } public static void main(String[] args) { try { sign(); System.out.println("done!!"); } catch (Exception e) { e.printStackTrace(); } } }
效果图:(右下角图片原为签章,已修改为普通图片)
点击右下角签章,弹出签名信息,如下图
欢迎大家积极交流
相关推荐
java实现pdf文件电子签名,可以直接在eclipse上运行,采用itextpdf,pdfbox 两种方式实现!!!
itext-5.4.2资源包附带pdf加密、pdf水印签名java文件 http://blog.csdn.net/oushaomeng2011/article/details/9253447
java使用itext对PDF进行签名签章。包括:java创建PDF文档,java对PDF进行加水印,java对PDF加图片水印。java对PDF进行签章。java读取p12秘钥库中证书对PDF进行签章加密。
这两个jar ,可以解决导出PDF,不能显示中文问题。 pdf文档jar包 itext-asian-5.2.0.jaritextpdf-5.5.5.jar 读取PDF文件,PDF签名文件
PDF集成线上签字+盖章+防伪二维码+水印...itext5实现pdf文件的电子签名、签章、添加水印、文件加密(springboot) 下载后根据配置提示配置好 导入即可运行 有很大扩展空间 后台层次分明,配置清晰,代码实现易懂易理解。
通过iText,你可以对PDF文件进行组装、扩展、提取、切割等等多方面交互性的操作。它能够是符合大多数ISO PDF标准以及数字签名标准(PAdES)与 安全发票(ZUGFeRD)。 省时间 iText能够帮你自动完成一些繁琐事项,...
基于itext7实现的A4版PDF电子签名java示例程序源码 1、需要进行电子签名的html文件内容,一般为富文本编辑器对应代码。 2、用户电子签名完成后的签名图片访问地址,例如:http://*****/hlwft/2_1659677726496.jpg。...
通过freemarker进行渲染,由html生成合同pdf。 查找指定电子签名的位置,然后再在指定位置插入签名图片,生成最终pdf。
itextsharp 数字签名白皮书配套应用代码 该代码C#示例 详细解释如何通过itext对pdf文件签名和验证操作
通过iText,你可以对PDF文件进行组装、扩展、提取、切割等等多方面交互性的操作。它能够是符合大多数ISO PDF标准以及数字签名标准(PAdES)与 安全发票(ZUGFeRD)。 省时间 iText能够帮你自动完成一些繁琐事项,...
历经一个月总结使用java实现pdf文件的电子签字+盖章+防伪二维码+水印+PDF文件加密的全套解决方案
用itext在pdf文件中加水印,在签名处加盖印章,读取pdf模板,pdf转成图片格式。最难的就是如何在签名处加盖印章,即在签名处加上图片,因为pdf中添加图片需要知道图片在pdf中的绝对位置。
iText 是一个开源的PDF文件操作类库,它可以动态生成PDF文档以及对PDF文件进行编辑更改,比如:从XML文件或数据库生成动态PDF文档、添加/更改书签、页码、添加数字签名、页面排版操作等等。功能非常强大。
对pdf文件进行读取,根据传入的文字去寻找指定位置信息,根据位置信息添加图片,其中样式格式可自定义,具体可查看jar包的操作文档,地址可百度。实现签字或者盖章操作,文件中包括源码和架包。
主要为大家详细介绍了java如何实现在pdf模板的指定位置插入图片,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
(以前的iTextSharp)由几个dll组成。...请使用此代码hyph.dll :如果您希望将文本连字符,请使用此文件font-asian.dll :使用此功能需要CJK功能(中文/日文/韩文) sign.dll :如果需要数字签名支持,请使用此文件st
它使用 iText 库来处理 PDF 文件和应用签名。代码组织代码被组织成 Maven 项目。 app-signer ,主要的 Maven 项目,将以下两个添加为模块。 app-signer-client ,用于生成将在本地执行的 JAR 的项目。 他们使用 ...
PortableSigner-一个命令行和GUI工具,用于使用X.509证书对PDF文件进行数字签名 英文(德语向下滚动) 使用Java 1.5或更高版本启动程序 java -jar PortableSigner linux /目录中的PortableSigner-Generic-xxxxx.zip...