当前位置: 首页 > news >正文

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 = 

相关文章:

  • worldquant rank函数
  • 多智能体Multi-Agent应用实战与原理分析
  • 单片机-STM32部分:16、Git工具使用
  • 理解c++中关键字友元friend的作用
  • 使用nps配置内网穿透加域名解析
  • C++二项式定理:原理、实现与应用
  • nvidia-smi-Failed to initialize NVML: Driver/library version mismatch
  • Newton 迭代
  • Openlayers:如何注册一个新的坐标系统
  • 【数字图像处理】半开卷复习提纲
  • 建筑迈向绿色发展之路,楼宇自控成建筑可持续发展关键技术
  • 室内定位:热门研究方向与未解难题深度解析
  • 培训机构教务管理系统软件的功能有哪些?
  • 【c语言】动态内存分配
  • Python继承
  • 全息美AISEO引领AIGEO新趋势
  • C++ 函数声明,定义与命名空间的关系
  • Linux操作
  • 25.第二阶段x64游戏实战-分析物品相关数据
  • CoreDNS 的无状态设计与动态数据源
  • 美F-35险被胡塞武装击中,损失增大让行动成“烂尾仗”
  • 全国人大常委会今年将初次审议检察公益诉讼法
  • MSCI中国指数5月调整:新增5只A股、1只港股
  • 夜读丨取稿费的乐趣
  • 最高降价三成,苹果中国iPhone开启大促销,能拉动多少销量?
  • 马上评丨未成年人“擦边”短视频岂能成流量密码