【问题标题】:How to reset the complete document after opening it?打开后如何重置完整的文档?
【发布时间】:2015-05-05 09:20:29
【问题描述】:

我想在打开后重置完整的表单。

我试过这个:

page.open = this.resetForm();

但它不起作用。 我正在使用 Acrobat Pro DC。

【问题讨论】:

  • 定义“重置整个文档”。您目前只重置表单中的条目。
  • @BrunoLowagie 打开文件后我想休息一下,这样我就可以得到实际日期,例如
  • 问题不清楚。没有“重置文档”之类的东西,只有在表单的上下文中重置才有意义。
  • @BrunoLowagie 好的,使用 this.resetForm();我重置表单中的条目,但我如何在打开文档时执行此操作?
  • 通过定义一个打开的动作。在 PDF 的根字典(又名目录)中有一个名为 /OpenAction 的键,它可以保存一个动作,例如JavaScript 动作。

标签: javascript pdf dom-events reset acrobat


【解决方案1】:

打开时如何重置表单:

您可以按照这些说明进行操作(请注意,该说明适用于 Acrobat DC;在旧版本中类似)。

  1. 在 Acrobat 中打开您的文档。

  2. 在左侧面板中显示页面。

  3. 选择第一页的上下文菜单(或在文档属性中指定的要打开的页面)。

  4. 从上下文菜单中选择页面属性…

  5. 在出现的对话框中,选择操作选项卡

  6. 选择触发器页面打开

  7. 选择操作运行 JavaScript

  8. 点击添加

  9. 在出现的编辑器窗口中输入以下代码:

如果您的表单是单页文档:

this.resetForm() ;

如果您的表单是多页文档:

if (loaded == false) {
this.resetForm() ;
loaded = true ;
}
  1. 确认对话框,直到您回到文档中。如果您有一个单页文档,请保存它,您就完成了。

如果您有一个多页文档,请按以下步骤操作:

  1. 切换到“工具”窗口,然后选择 JavaScript 工具

  2. 在工具栏中选择Document JavaScripts

  3. 在打开的对话框中输入脚本的名称,例如loading

  4. 点击添加…

  5. 在打开的编辑器窗口中,删除所有选定的文本。

然后输入这行代码:

var loaded = false ;
  1. 确认,直到您返回文档。

  2. 保存文档

应该这样做。

【讨论】:

  • 虽然这使用页面事件解决了问题,但我很想知道如何使用 Adob​​e Acrobat 定义 /Catalog 字典中的 /OpenAction 键。
  • @Bruno Lowagie:页面事件而不是文档级脚本的原因是我遇到了问题,因为文档级脚本可以在整个文档正确加载之前运行。这么多为什么……关于实施,你比我知道的多……
  • 啊哈,是的,这是反对使用文档级 OpenAction 的合理理由。
  • 我知道这个答案很旧,但在搜索该主题时它是第一个推荐的。所以我想为较新版本的 Acrobat 添加信息。在第 7 步,现在它具有“重置表单”选项,一个新对话框显示页面上的字段列表。选择所有或仅选择要重置的字段。按 OK 并执行第 10 步。
  • 感谢@CarlosH 的评论。建议的过程适用于单页表单,但对于多页表单则不行,因为每次到达第一页时,表单都会重置。 FWIW,查看 Acrobat JavaScript 文档中 resetForm() 的条目显示了如何指定要重置的字段,而其他字段则不会。
猜你喜欢
  • 2019-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-05
  • 1970-01-01
  • 1970-01-01
  • 2017-02-04
相关资源
最近更新 更多