AcroForm 文档(打开时)级脚本对比 Excel VBA 参考

文档级脚本位于文档JavaScript结构的顶层,一个PDF可以包含任意数量的文档级脚本。这些脚本在Acrobat或Adobe Reader中"打开文档时"首先执行。需要注意的是,由于这些脚本可能在文档完全加载并显示给用户之前就已运行,因此应避免在其中编写依赖文档加载完成的代码。例如,任何影响文档页面、创建可视化元素或用户界面元素的代码都不应放在文档脚本中。

文档脚本通常用于:

  • 执行初始化操作
  • 进行顶层环境测试
  • 定义文档中其他代码将使用的函数和变量

示例:在文档脚本中定义创建UI元素的函数是可行的,但直接在该脚本中调用此类函数可能存在风险。


变量与函数

在文档脚本(或文档的任何脚本)中定义的变量或函数均属于文档作用域。这意味着文档内的所有脚本均可直接访问这些变量或函数,无需额外限定符。

文档脚本示例

// 定义变量
var nDoc1Var = 3;

// 文档内任意脚本均可使用该变量
b = nDoc1Var + 1;

// 也可通过文档限定符访问(非必需)
b = this.nDoc1Var + 1;
  • 前两行为常规用法,最后一行通过this关键字(指向文档对象)访问变量。
  • 在文档作用域内,this可省略;但在文档作用域外需通过文档对象访问。

在文档作用域外访问变量/函数

若多个文档的脚本需协同工作,或设计自动化脚本处理特定文档/表单时,可能需要在文档作用域外访问其变量/函数。

可信脚本示例
// 打开文档
var oDoc1 = app.openDoc(...文档路径...);

// 设置文档变量(仅限可信上下文执行)
oDoc1.nDoc1Var = 1;

注意:Acrobat会阻止非可信上下文访问文档作用域对象,因此上述代码仅在可信脚本中有效。


非可信文档上下文的访问机制

早期Acrobat通过**文档披露(document disclosure)**实现安全机制。需在文档脚本中主动披露对象,其他文档的非可信脚本才能通过app.activeDocs数组访问已披露的文档。

文档脚本

// 披露当前文档对象
this.disclosed = 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

課代表

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值