2

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

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

我只能通过在文档级别将 state 设置为 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();

Preferences->JavaScript-> JavaScript Security中的设置被禁用(启用菜单项JS执行权限,启用全局对象安全策略) NotAllowedError:安全设置阻止访问该属性或方法。App.newDoc:109:Folder-Level:User: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),它不起作用。

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

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

4

1 回答 1

2

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

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

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

var myDoc = app.newDoc(1,1)

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

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

于 2014-08-15T15:50:18.220 回答