如何使用itext在PDF签名外观中显示时间戳状态

时间:2012-07-14 13:26:38

标签: pdf itext

adobe reader显示pdf签名状态,有效且无效。

我希望读者能够显示签名中包含的动态(非静态)时间戳状态。

我使用的itext代码如下。

PdfReader reader = new PdfReader(IN_FILE);
FileOutputStream fout = new FileOutputStream(OUT_FILE);
PdfStamper stp = PdfStamper.createSignature(reader, fout, '\0');
PdfSignatureAppearance sap = stp.getSignatureAppearance();

sap.setCrypto(null, chain, null, PdfSignatureAppearance.SELF_SIGNED);

sap.setVisibleSignature(new Rectangle(100, 100, 300, 200), 1, "Signature");

PdfSignature dic = new PdfSignature(PdfName.ADOBE_PPKLITE, new PdfName("adbe.pkcs7.detached"));
dic.setReason(sap.getReason());
dic.setLocation(sap.getLocation());
dic.setContact(sap.getContact());
dic.setDate(new PdfDate(sap.getSignDate()));
sap.setCryptoDictionary(dic);

int contentEstimated = 15000;
HashMap exc = new HashMap();
exc.put(PdfName.CONTENTS, new Integer(contentEstimated * 2 + 2));
sap.preClose(exc);

PDFTemplate sigLayer = PdfSignatureAppearance.getLayer(n);

负责签名外观。但我无法包含动态时间戳状态。

1 个答案:

答案 0 :(得分:0)

当创建文档的签名外观时,将根据签名的pdf计算要签名的时间戳哈希值。

修改pdf添加ts信息将使签名无效...