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

时间:2014-08-15 08:30:09

标签: javascript adobe acrobat adobe-javascript

我将在Adobe 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代码是太多的工作。 不幸的是,我无法使用其他方法导入图像:(。由于Adobe中的安全设置在版本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),它不起作用。

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

谢谢你,亲切的问候, 亚历

1 个答案:

答案 0 :(得分:2)

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

第一个变体不起作用,因为没有定义myDoc(除非你在调用importImg函数之前已经这样做了)。

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

var myDoc = app.newDoc(1,1)

(你确定要创建一个1x1磅的文件吗?)

第一个变体的下一个问题是Acrobat中的一个错误,它在保存文档时丢弃“浮动”图标对象;你必须将Icon Object附加到一个字段来保存它;此字段可以隐藏,甚至可以隐藏在文档中隐藏的模板页面上。