javascript - 使用 JavaScript 在 Acrobat 中导入图像(文档级别首选)

标签 javascript adobe acrobat adobe-javascript

我将在 Adob​​e Acrobat 中使用 JavaScript 实现动态图例。

该文档包含很多层。每一层都有自己的传说。最初的想法是实现图例,以便它在可见图层的对话框中包含图像。

我只能通过在文档级别将状态设置为 false 或 true (this.getOCGs()[i].state = false;) 来隐藏/显示图层。

问题1:我可以以某种方式从图层中提取数据来建立图例吗?我认为不可以,因为我们只在层上有这些函数:getIntent()、setIntent() 和 setAction()。正确的?因此,我决定这样安排,即每个图层所需的所有图标都保存在具有相应名称的文件夹中。 JavaScript 应该导入图标,我用可见层的图标构建一个对话框窗口,并放置一个文本(该图标的描述)。

我尝试了此处描述的图像导入的所有可能性:http://pubhelper.blogspot.com.au/2012/07/astuces-toolbar-icons-et-javascript.html 。我只有一种方法(将图标转换为十六进制字符串)。这种方式并不好,因为使用其他工具从图像创建十六进制字符串并将其放入 JavaScript 代码中的工作量太大。 不幸的是,我无法使用其他方法导入图像:(。由于 Adob​​e 中的安全设置在版本 7 左右之后发生了更改,因此无法在文档级别使用 app.newDoc、app.openDoc 甚至 app.getPath 等功能.我决定使用受信任的函数在文件夹级别实现导入,如下所示:

变体 1:

var importImg = app.trustedFunction(function() {
app.beginPriv();
var myDoc = app.newDoc({
    nWidth: 20,
    nHeight: 20
});

var img = myDoc.importIcon("icon", "/icon.png", 0);
app.endPriv();
return img;   });  
var oIcon = importImg();

首选项->JavaScript->JavaScript安全中的设置被禁用(启用菜单项JS执行权限,启用全局对象安全策略) NotAllowedError:安全设置阻止访问此属性或方法。 App.newDoc:109:文件夹级别:用户:acrobat.js

变体 2:

var importImg = app.trustedFunction(function() {
var appPath = var phPath = app.getPath({
    cCategory: "user",
    cFolder: "javascript"
});

try {

    app.beginPriv();
    var doc = app.openDoc({
        cPath: phPath + "/icon.png",
        bHidden: true
    });
     app.endPriv();
} catch (e) {
    console.println("Could not open icon file: " + e);
    return;
}

    var oIcon = util.iconStreamFromIcon(doc.getIcon("icon"));
return oIcon;});
var oIcon = importImg();

无法打开图标文件:NotAllowedError:安全设置阻止访问此属性或方法。

至少它允许执行所有这些函数,例如app.newDoc,但在第二个变体中它说,内容范围错误等等。也许这里创建的图像的 pdf 是假的?我刚刚拍摄了图像并将其打印成 pdf 文件。

我用 .jpg、.png、.pdf 尝试了所有这些可能性。不同尺寸(大图像和 20x20),它不起作用。

有人可以帮助我吗,因为我花了很多时间尝试不同的可能性。如果在文档层面实现上述主要目标实际上会更好,可能吗?

谢谢您和亲切的问候, 亚历克斯

最佳答案

您是否已在 Acrobat 中完全激活控制台?如果没有,请执行此操作并查找收到的错误消息。

第一个变体不起作用,因为 myDoc 未定义(除非您在调用 importImg 函数之前已定义)。

如果要将图像导入到新创建的文件中,则必须引用使用 newDoc() 创建的文档对象。实际上,这将链接到 myDoc,如

var myDoc = app.newDoc(1,1)

(您确定要创建尺寸为 1x1 pt 的文档吗?)

第一个变体的下一个问题是 Acrobat 中的一个错误,它在保存文档时会丢弃“ float ”图标对象;您必须将图标对象附加到字段才能保留它;该字段可以隐藏,甚至可以隐藏在文档中的隐藏模板页面上。

关于javascript - 使用 JavaScript 在 Acrobat 中导入图像(文档级别首选),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25323427/

相关文章:

javascript - Adobe Acrobat Pro DC 自定义计算脚本建议

http - "name"web pdf 在 Acrobat 中更好的默认保存文件名?

javascript - Creative SDK Image Editor (Web) 加载图像,等待,然后图像消失(无实时预览)

javascript - Acrobat 自动对焦

javascript - 在 Ajax 中解析 JSON

javascript - 如何在下拉 Protractor e2e 测试中选择选项

java - aem 6.1 扩展用户属性

adobe - 在 Postscript 中画出这个循环

javascript - Promise 的具体行为是什么?

javascript - 在 'else' 语句中检查 'if - else' 是否相等