我正在使用 acrobat XI
我尝试过输出这样的文本文件
var cMyC = "abc";
var doc = this.createDataObject({cName: "test.txt", cValue: cMyC});
this.exportDataObject({cName: "test.txt", nLaunch:0});
这是可行的,但我想提供一个固定路径,并且不会弹出对话框来请求用户选择保存路径
有什么办法可以解决这个问题吗?谢谢
所有将文件写入用户本地磁盘的 Acrobat JavaScript 函数都会带来安全风险,因此对其使用有一些限制。这些功能包括doc.saveAs()
以及所有数据导出功能,例如doc.exportAsFDF()
.
正如你所读到的here http://acrobatusers.com/tutorials/file-paths-acrobat-javascript:
Acrobat为我们提供了两种操作模式
函数——有路径和无路径。如果没有路径参数
提供给该函数后,Acrobat 将显示一个文件浏览器对话框。这
文件浏览器对话框使用户可以控制数据的保存方式
他们的系统。如果为该函数提供了路径,则不会出现对话框
显示并且操作以静默方式处理,即用户
不一定知道数据已保存到他们的硬盘上。
这是一个安全问题,因此要以静默方式使用这些功能之一
模式下,该函数必须从特权上下文中执行。这
意味着代码必须驻留在受信任的位置。例如,代码
从控制台窗口、批处理或经过认证的 PDF 执行
是有特权的。当这些函数中的任何一个与路径一起使用时
参数并在非特权上下文中执行,Acrobat 将抛出
一个例外。此限制背后的原因是,如果代码
不可信,那么用户必须专门选择该文件
地点。
将数据保存到用户系统的另一个限制是
路径规范必须是安全路径。一条安全的道路是
不指向用户硬盘上的受限制位置或一个
这可能会带来安全风险。这些限制的例子
位置是系统文件夹和任何硬盘驱动器的根文件夹。
其他可能受到限制的文件夹取决于操作
系统和 Acrobat 开发人员的敏感性。既不是
有详细记录,因此最好谨慎使用这些函数。
关于 Acrobat JS API“安全路径”doc.saveAS
states:
Acrobat 6.0 引入了 JavaScript 安全路径的概念
根据传递的路径将数据写入本地硬盘的方法
通过其参数之一来访问它。路径不能指向系统
关键文件夹,例如根目录、Windows 或系统目录。 A
路径还受到其他未指定的测试。对于许多方法来说,
文件名必须具有适合数据类型的扩展名
是要被拯救的。某些方法可能有不可覆盖限制。
这些附加限制已在文档中注明。
一般来说,当判断一条路径不安全时,会出现NotAllowedError
抛出异常(请参阅 Error 对象)并且该方法失败。
当然你不能用exportDataObject
方法,因为它没有path
参数,您也可以阅读here http://acrobatusers.com/tutorials/print/importing-and-exporting-pdf-file-attachments-acrobat-javascript:
“cName”参数为必填项,指定具体的
将导出的文件附件。注意没有路径
范围。事实上这个函数有一个“cPath”输入,但是它
不再有效。如果您尝试在此函数中使用路径,它将
失败并抛出异常。在什么背景下并不重要
函数被调用,因为“cPath”参数已被删除
所有用法。
更多参考:
- 使用 Acrobat Javascript 写入文本文件 https://stackoverflow.com/questions/13760440/write-text-file-using-acrobat-javascript
- Acrobat Javascript 保存和退出按钮 https://stackoverflow.com/questions/2221743/acrobat-javascript-save-exit-button
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)