在一个文件中使用数字签名和图像输入按钮

Using digital signature and image input button in one file

我需要使用 Antenna House Formatter 创建 PDF 表单。 表格需要同时具有数字签名和图像输入字段。

带有 AHF-CSS 的数字签名是独立工作的:

input.signature{
    display: -ah-form-field;
    -ah-field-type: signature;
}

图像输入也是如此 HTML/JavaScript:

<meta name="openaction"
    content="#JavaScript=            
        var f = this.getField('imageInput');      
        f.setAction('MouseUp', 'event.target.buttonImportIcon();');
"/>

但是如果我同时使用两者并尝试输入数字签名,我会收到消息:

The document cannot be signed in its current state. Please save the document, close it, reopen it, and then attempt to sign again.

保存并重新打开不能解决问题。有办法解决这个问题吗?

我不得不向 Antenna House Support 询问此事。 (如果您的维护是最新的,您可以这样做。)他们的回答:


我认为 Formatter 和 CSS 不可能实现。 'OpenAction' 脚本使用此代码修改文档:

f.setAction('MouseUp', 'event.target.buttonImportIcon();');

即使您保存文档,'OpenAction' 脚本也会 运行 再次修改它。

使用 XSL-FO,您可以通过直接设置 'MouseUp' 值来避免 OpenAction 脚本:

<axf:form-field-event name="MouseUp" action-type="javascript">
    event.target.buttonImportIcon();
</axf:form-field-event>

'form-field-event' 不适用于 CSS。

一个糟糕的解决方法是在 'OpenAction' 脚本中添加检查以查看按钮是否已被修改。例如:

var f = this.getField('imageInput');

    if (color.equal(f.fillColor, color.red)) {
       /* do nothing, this will happen after document is saved */
    } else {
       f.fillColor = color.red;
       f.setAction('MouseUp', 'event.target.buttonImportIcon();');
    }

您可以'save'在Acrobat中使用Formatter生成PDF,然后保存的结果可以得到签名。


可能还有一个地方可以设置 this.dirty = false;,这样文档就不会被视为已修改。 (我之前在 JavaScript 函数中使用 this.dirty = false; 来关闭和打开图层:我不想因为某些图层改变了可见性而提示我在关闭时保存文档。)