如何在 Acrobat Javascript 中编写文本文件

2024-02-18

我正在使用 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(使用前将#替换为@)

如何在 Acrobat Javascript 中编写文本文件 的相关文章

随机推荐

  • 抽屉式导航无法关闭

    我的应用程序中的导航抽屉没有关闭 我正在使用活动而不是片段 当我单击中的任何项目时listview 它会按应有的方式打开其他活动 但当我回去时 抽屉仍然打开 我尝试过使用DrawerLayout closeDrawers 但它不起作用 如何
  • 如何缩短 C# 中的路径并保持其有效

    我工作的地方 目录的名字很长 而且目录树也很长 而且我遇到了外部应用程序中文件夹路径名太长的问题 我无法更改此外部应用程序 但我可以给它缩短的路径名 我知道微软操作系统可以缩短路径名 例如转换C TooLongName TooLongSub
  • 通过 Id 和 Name 获取下一个和上一个 sql 行,EF?

    假设我们在 SQL Server 表中有以下数据 按名称排序 Id Name LName 5 Abbas Dayyan 3 Mohammad KD 4 Nima Ahmad 1 Omid Zangene 2 Pedram Ahmadi 我们
  • 使用声纳 checkstyle 插件尊重 @SuppressWarnings

    是否有可能使用 Checkstyle 插件配置 SonarQube 5 1 以遵守 SuppressWarnings deprecation 注解 我不想关闭 避免使用已弃用的方法 规则 我只想 SonarQube 尊重 SuppressW
  • 跨多个进程使用双端队列对象

    我试图减少读取大约 100 000 个条目的数据库的处理时间 但我需要它们以特定的方式格式化 为了尝试做到这一点 我尝试使用 pythonmultiprocessing map函数工作完美 只是我似乎无法获得任何形式的队列引用来跨它们工作
  • 为什么此 WebGL 帧缓冲区使用会抛出 FRAMEBUFFER_UNSUPPORTED?

    我正在尝试创建一个 WebGL 选择缓冲区 有人能看到我在这里做错了什么吗 我在 Mozilla 5 0 X11 Linux x86 64 rv 2 0b3pre Gecko 20100724 Minefield 4 0b3pre 和 Ch
  • Mule Salesforce Batch 中的错误处理

    我正在尝试将一组帐户从 CSV 文件加载到 Salesforce 中 我已经配置了常用的 Datamapper 带有批提交的 Upsert SFDC 步骤和仅处理失败的批步骤 目前为日志 我的 OnComplete 有一个简单的记录器 我故
  • 如何处理 Mac 上 VS Code 中的 C++ 头文件 #include 错误?

    我的 Mac 上的 VS Code 产量 包含错误 for 头文件 and 第三方库 wxWidgets在这种情况下 我阅读了我能找到的所有内容 调整了 c cpp properties json 中的 includePath 设置 但没有
  • JMeter 框架

    我最近开始学习 JMeter 来对我们的应用程序进行性能测试 我有一个测试计划 jmx 并使用 Jenkins Ant 定期运行它 到目前为止一切都很好 我的问题是 我们有一个关键字驱动的框架 TestNG 等用于功能测试工具 QTP Se
  • 从 PDO 准备好的语句中检索(或模拟)完整查询

    我偶然发现这个问题 https stackoverflow com questions 210564 pdo prepared statements从两年前开始 在准备好的语句上调用 PDOStatement execute 时 有没有办法
  • ModuleNotFoundError:没有名为“telethon”的模块

    我已经使用以下代码安装了 telethon sudo pip3 install telethon 我尝试重新安装它并收到以下消息 Requirement already satisfied pyasn1 gt 0 1 3 in usr lo
  • vb6中删除字符串左右两侧的某些字符(TrimChar)

    我想删除字符串中一些错误使用的某些字符 我想只删除此文本之外的点 正如你所看到的 我不能为此使用替换 我必须找到一种方法来仅删除字符串左侧和右侧的字符 而这些点只是我要删除的字符的示例 我有一系列不需要的字符 所以在处理之后字符串应该看起来
  • OPENGL混合功能——以分层的方式缓慢替换颜色

    我想做的是在亮红色 1 0 0 1 上添加带有 alpha 0 1 0 0 0 2 的深红色 对于第一层 它工作正常 结果是 0 9 0 0 1 然而 当红色值达到 0 5 时 它不能低于该值 第一层用以下等式进行演示 并且工作正常 glB
  • Javascript正则表达式多重匹配[重复]

    这个问题在这里已经有答案了 我正在尝试使用 javascript 在具有查询字符串参数的 url window location href 上执行正则表达式 但无法弄清楚如何执行此操作 就我而言 有一个查询字符串参数可以重复自身 例如 qu
  • ZF2 fileprg 与集合中的文件

    我无法得到fileprg用于处理集合中的文件的插件 我正在尝试使用上传多个文件FormCollections 但在 form gt getData 没有与我的收藏或文件相关的密钥 我用简单的方法测试了表单和 fileprgfile inpu
  • 在 HTML 省略号下划线

    我在用text overflow ellipsis剪切锚点内跨度内的文本 当我悬停时 省略号字符没有下划线 这会导致一个小间隙 有没有办法来解决这个问题 是的 你可以这样做 设置text decoration none而不是使用border
  • Ruby代码美化,将长指令拆分为多行

    我们如何编写以下语句以提高可读性 Promotion joins category where lft gt and rgt lt c lft c rgt joins shops where promotions per shops gt
  • 如何检查Dotnet事务是否回滚?

    如何检查 dotnet 交易是否已关闭 你的标题问的是一件事 你的问题问的是另一件事 所以 我同意你的标题 如果想知道事务是否回滚或者设置为仅回滚 可以查看 transaction WasRolledBack true if transac
  • SSRS:仅为当前登录的用户提取报告

    我需要能够根据登录人员提取报告 例如 在一组销售人员中 如果鲍勃进入此报告并单击 销售人员 下拉列表 我需要他只能将鲍勃视为可用的销售人员 而不是其他任何人 我通过使用解决了这个问题 User UserIDSSRS 中的函数并且运行良好 我
  • 如何在 Acrobat Javascript 中编写文本文件

    我正在使用 acrobat XI 我尝试过输出这样的文本文件 var cMyC abc var doc this createDataObject cName test txt cValue cMyC this exportDataObje