最近在研究电子签章,想实现如下功能
A先再PDF里设置好空白域,发送给B,然后B拿到PDF后,在空白域签章。
但是不知道如何使用itext对PDF设置空白域,文档都是英文的也看不太明白,有没有大神了解的,给指点指点
使用免费版的Spire.PDF for Java (http://www.e-iceblue.cn/Introduce/Free-Spire-PDF-JAVA.html), 代码如下:
import java.awt.*;
import com.spire.pdf.fields.*;
public class AddFormFieldsToPdf {
public static void main(String[] args) throws Exception {
//创建PdfDocument对象
PdfDocument doc = new PdfDocument();
//添加页面
PdfPageBase page = doc.getPages().add();
//添加签名域
PdfSignatureField sgnField= new PdfSignatureField(page,"sgnField");
Rectangle2D.Float sgnBounds = new Rectangle2D.Float(0, 0, 150, 80);
sgnField.setBounds(sgnBounds);
doc.getForm().getFields().add(sgnField);
//保存文档
doc.saveToFile("AddFormField-1.pdf", FileFormat.PDF);
}
}
// 创建签章工具PdfStamper ,最后一个boolean参数
// false的话,pdf文件只允许被签名一次,多次签名,最后一次有效
// true的话,pdf可以被追加签名,验签工具可以识别出每次签名之后文档是否被修改
PdfStamper stamper = PdfStamper.createSignature(reader, os, '\0', null, true);
// 获取数字签章属性对象,设定数字签章的属性
PdfSignatureAppearance appearance = stamper.getSignatureAppearance();
appearance.setReason("abc");
appearance.setLocation("cde");
//这个就是签名区域 a b c d 代表 签名域左下角x,图章左下角y,图章右上角x,图章右上角y, 1代表签名域页码 "sig1"是名称,多次签章名字不能一样
appearance.setVisibleSignature(new Rectangle(a,b,c,d),1,"sig1");
您好: 请问用itext对pdf设置空白签名域实现了吗?想向您请教一下