1

在商业环境中,我们使用 Adob​​e LiveCycle ES 已有好几年了。一个关键功能是在 PDF 中启用“阅读器扩展”,它为阅读器扩展PDF 解锁了 Adob​​e Reader 中的一些功能。其中之一是允许用户在 Adob​​e Reader 中对空的签名字段进行数字签名。

我记得如果 PDF 不是“阅读器扩展”,单击 Adob​​e Reader 中的签名字段时没有发生任何事情。例如,如果 PDF 是使用 iText 生成的,就是这种情况。iText 常见问题解答中仍然确认了此限制,该常见问题解答应该是最新的,因为项目处于活动状态。

我最近重新执行了一些旧代码,令人惊讶的是,空的签名字段可以在 Acrobat Reader DC 中签名。

生成 PDF 的代码如下:

Document document = new Document();
PdfWriter.getInstance(document, new FileOutputStream(filename));
document.open();
document.add(new Paragraph("Hello World!"));
document.close();

添加签名字段的代码:

PdfReader pdf = new PdfReader(inputstream);
PdfStamper stp = new PdfStamper(pdf, new FileOutputStream(filename));
PdfFormField sig = PdfFormField.createSignature(stp.getWriter());
sig.setWidget(new Rectangle(100, 100, 200, 200), null);
sig.setFlags(PdfAnnotation.FLAGS_PRINT);
sig.put(PdfName.DA, new PdfString("/Helv 0 Tf 0 g"));
sig.setFieldName("Signature1");
sig.setPage(1);
stp.addAnnotation(sig, 1);
stp.close();

有什么变化?我猜 Adob​​e Acrobat DC 已经删除了一些阅读器扩展要求,但我找不到任何解释这一点的发行说明。

4

0 回答 0