我将在 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),它不起作用。
有人可以帮助我吗,因为我花了很多时间尝试不同的可能性。如果在文档层面实现上述主要目标实际上会更好,可能吗?
谢谢您和亲切的问候, 亚历克斯
最佳答案
您是否已在 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/