Acrobat/Reader JavaScript 开发:Net.HTTP.Request 的使用与限制
文章目录
- 问题背景
- 代码示例与分析
- Adobe Reader 的限制与解决方案
- SOAP 连接与 Web API 交互
- 关键词提取与生词表
- 总结
问题背景
在 Adobe Acrobat 开发中,开发者常常使用 JavaScript 扩展 PDF 的功能。一位开发者(RCPaluri)在 2016 年遇到了一个问题:他编写了一个 JavaScript 文件,用于将打开的 PDF 文档上传到服务器。该脚本在 Adobe Acrobat Pro 中运行良好,但在 Adobe Reader 中却无法工作。问题出在 Net.HTTP.request
方法上。
代码示例与分析
以下是他的代码示例,并添加了中文注释:
// 在“文件”菜单下添加一个名为“Upload Data”的菜单项
app.addMenuItem({ cName: "Upload Data", nPos: "Close", cParent: "File", cExec: "runExtract()" });// 定义受信任函数 runExtract
var runExtract = app.trustedFunction(function() {app.beginPriv(); // 开始权限提升try {// 设置 HTTP 请求参数var params = {cVerb: "POST", // 请求方法为 POSTcURL: "http://domain/Service/upload.ashx", // 目标 URLaHeaders: [{ name: "fileName", value: this.documentFileName }], // 请求头oRequest: Collab.documentToStream(this) // 将文档转换为流};// 发送 HTTP 请求var responseStream = Net.HTTP.request(params);// 将响应流转换为字符串var response = SOAP.stringFromStream(responseStream);} c