问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何使用itext对PDF生成叠加签名

发布网友 发布时间:2022-04-20 14:45

我来回答

3个回答

热心网友 时间:2022-04-21 19:56

方式:读取一个需要添加签名的源文件,输出成功的签名后的文件
Java代码 收藏代码
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();
}
}
}

热心网友 时间:2022-04-21 21:14

检查下有没有document.newPage()使得把数据放到下一页了。如果没有,那就需要分析代码。但是换种思路也能解决你问题:把数据作为附件一,附件二等形式生成在pdf的最后,那样就没人关注pdf内容的空白了。

热心网友 时间:2022-04-21 22:49

将PDF文件导入到其中,然后进行下一步的操作
有“编辑内容”这一栏,然后进行点击

在需要签名的地方按住空格键就可以了!


将文件编辑完之后我们就可以将他进行保存了!

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
邯郸自驾游到青岛马壕运河遗址推荐线路 株洲自驾到青岛马壕运河遗址途径地方 梧州回青岛马壕运河遗址要几个小时 石嘴山到青岛马壕运河遗址要多少油钱 可不可以用开水敷脸 开水能不能敷脸 发动机和发电机区别?? 电音之王朴智妍MV的图片? 电音之王mv里跳舞的是谁 自己怎样开网站 怎样把一个网页设置为主页 虚心求教,向PDF文件里面加水印问题,做过的请进来... 使用iText给pdf文件添加水印不能正常显示 java用itext向pdf模板中添加动态图片 pdfstamper.createsignature参数什么意思 java如何实现在web工程中用OpenOffice生成带有图片... 有哪些可以给pdf加水印,java第三方开源类库 java 怎样给相对路径下的pdf文件加水印 java 如何给pdf文件加水印 杭州良渚有晚上的兼职工作吗? 良渚街道的良渚文化 人鱼的旋律那一集露亚和海斗衣湿了,躲在房子里,... clannad游戏如何转到古河渚线 金牛出渚:采石矶为何又叫牛渚矶? 作文良渚汉族人的文化特点 月夜散步,看到月亮悄悄地躲到云朵后面,我不由的想... 月夜散步,月亮悄悄躲到云朵后面,我想到了( )的... 怎么形容 朋也和渚的爱情 CLANNAD 感动句子要动画的 第一部、第二部 冈崎朋... 逐鹿之战后,良渚先民被迫远走他乡,成了爱斯基摩... 《后宫惊心(原名日月明——如铃传))》文云渚的txt全... 如何把springmvc model 生成pdf文件 苹果7plus支持nfc功能吗 pdf 怎么把html变成pdf 如何使用.net编程给pdf文件加水印?(急) ultra foreground renderer 怎么安装 报了一个java.io.EOFException 的错误,怎么解决啊? java,gradle编译spring源码出错 关于 java 控制打印 Image ,怎样设置 Image 前置在... itext生成pdf用AcroFields.setField替换文本域中的... itext生成pdf,documen.newPage()后如何在第一页添... itext 如何让图片放在最上面 如何在PDF文件中调用JAVASCRIPT iphone7plus有nfc功能吗 宁波拓邦智能控制有限公司怎么样? 拓邦移动电源的拓邦移动电源简介 深圳市拓邦电子科技股份有限公司的公司简介 深圳拓邦苏州智能技术有限公司怎么样? 深圳市金拓邦智能设备有限公司怎么样? 拓邦股份属于什么概念股 拓邦移动电源的拓邦公司简介