0

我需要使用 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();');
"/>

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

无法在当前状态下签署该文档。请保存文档,关闭它,重新打开它,然后再次尝试签名。

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

4

1 回答 1

1

我不得不向 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();');
    }

您可以在 Acrobat 中“保存”格式化程序生成的 PDF,然后保存的结果可以获得签名。


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

于 2021-06-09T16:17:31.240 回答