JavaScript 在 Acrobat 中工作,但在 Reader 中不工作

Posted

技术标签:

【中文标题】JavaScript 在 Acrobat 中工作,但在 Reader 中不工作【英文标题】:JavaScript working in Acrobat but not Reader 【发布时间】:2012-10-05 16:41:35 【问题描述】:

我在 Acrobat 中创建了一个包含提交按钮的表单。当用户单击它时,我希望将某些字段导出为制表符分隔的文本。在 Acrobat 中,单击按钮时会打开窗口,允许我选择要导出到的文件夹,然后导出数据。在阅读器中没有任何反应。调试器给了我这个错误:

RangeError: Invalid argument value.
Doc.exportAsText:2:Field Submit:Mouse Up

我已查看,但似乎无法找到有关此错误的信息。我原来的脚本是这样的:

var aSubmitFields = new Array ( "Name", "Address")
this.exportAsText (aFields: aSubmitFields)

如您所见,它非常基础。我不明白为什么它不起作用。

编辑:从 (aFields 中删除“a”后,我收到错误:

NotAllowedError: Security settings prevent access to this property or method.
Doc.exportAsText:2:Field Submit:Mouse Up

【问题讨论】:

您需要允许高级表单功能权限。 help.adobe.com/en_US/acrobat/X/standard/using/… 你最后解决了这个问题吗? Wayback 机器从 @IlyaKharlamov web.archive.org/web/20130214082334/http://help.adobe.com/en_US/… 存档了该链接 【参考方案1】:

要在 Acrobat Reader 中实现这一点,首先用户将打开工具>首选项,用户将看到安全设置。这里首先需要允许active contentsrun

执行此操作后,您的代码应该可以工作,恶意用户会利用 javascript 等活动内容,因此默认情况下禁用此功能。

安装了 HotFix 的新版本将不允许使用 JavaScript,每次应用安全热修复时都会禁用 JavaScript/Active Content 选项。

我希望这会给您一些解决方案的见解..

【讨论】:

【参考方案2】:

为了能够在 Adobe Reader 中调用 exportAsText(),您需要对文档拥有“高级表单功能权限”。您可以在documentation 第 32 和 251 页中看到它。如果您在调用 JavaScript 代码的文档上没有此权限,则会收到“安全设置阻止访问此属性或方法”。错误。

在 Adob​​e Acrobat 中创建文档时可以设置此权限。

正如 MarmiK 已经告诉您的那样,阅读器中必须允许活动内容。

【讨论】:

以上是关于JavaScript 在 Acrobat 中工作,但在 Reader 中不工作的主要内容,如果未能解决你的问题,请参考以下文章

多个 addEventListener 如何在 JavaScript 中工作?

onbeforeunload 不/不正确在 Javascript 中工作

了解 CONTINUE 如何在 Javascript 中工作?

Javascript - 无法发布数据(使用 axios),而它在邮递员中工作。为啥?

为啥 JavaScript 拦截“在野外”(在网页上)工作的 formData 不能在小提琴中工作?

如何让这个 Javascript 字谜算法在 Ruby 中工作?