记录一下使用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
* */
相关推荐
包括itext的jar包,以及对pdf进行签章所需要的jar包,
itext5生成PDF(含水印文字及图片)的源代码,操作说明详细,代码完整可用。
java 使用IText导出PDF(包含图片、表格、文字等等Demo和依赖包),最全IText使用Demo,下载即可用
itextpdf实现pdf签章代码示例,依赖itextpdf-5.5.0、bcpkix-jdk15on-1.64、bcprov-jdk15on-1.64 jar包
简单的javademo,利用itextpdf实现电子签章,添加背景图片,水印。 支持支持利用检索文件某内容实现签章,如落款处、私章等
利用itext读取PDF后使用pdfbox将PDF转为图片。压缩包内附有相应JAR文件
用Itext操作word,可以在word里画表格,也可以往word里插入图片
Itext5文本转PDF,含图片,代码实例,是5版本的,含亚洲文字支持,有文本,图片转pdf的实例,支持自定义编码,整理好的,直接能用,乱码是因为编码不对,设置编码就好了,具体百度怎样设置编码,里面有设置编码的接口...
使用iText-2.0.8将Html转换为pdf,带图片功能
IText.Pdf-CheckPdf的签章-参考Demo 网上下载的参考Demo, 后续会更新一般自己测试成功的Demo
在已有pdf文件中,指定页及绝对位置添加图片(包含itextpdf.jar及实例)
Android使用iText生成pdf并读取pdf内容,iText是著名的开放源码的站点sourceforge的一个项目,可用来生成Pdf文件和读取Pdf文件内容.
IText5 Excel转pdf ,带有添加文字水印,图片水印实例。 文件中含有依赖的jar,代码,下载后你直接可以用了,花了2天时间整理完成。 共3个方法,一个是生成pdf,第2个是加文字水印,第3个是加图片水印 public static...
iText是用于生成PDF文档的一个java类库。版本号:5.5.10。通过iText不仅可以生成PDF或rtf的文档... iText的安装:下载iText.jar文件后,只需要在系统的CLASSPATH中加入iText.jar的路径,在程序中就可以使用iText类库了。
itext5 生成pdf 使用总结
使用ITEXT导出EXCEL工具类使用ITEXT导出EXCEL工具类使用ITEXT导出EXCEL工具类使用ITEXT导出EXCEL工具类使用ITEXT导出EXCEL工具类
使用Itext简单生产了PDF文件,添加图片页眉的简单例子
将word转换成pdf确实有很多种方案!最近正好需要做一个这样的功能,需求是将word模板进行签名后转换为pdf。...这里记录一下最终的方案:利用poi+itextpdf进行word转pdf。此资源按包含源码和maven依赖。
java使用itext对PDF进行签名签章。包括:java创建PDF文档,java对PDF进行加水印,java对PDF加图片水印。java对PDF进行签章。java读取p12秘钥库中证书对PDF进行签章加密。
iText7jar和英文文档,以及itext5的一些文档。建议大家去官网看itext7,改动有点大。我也在摸索中。