gpt4 book ai didi

javascript - 我可以在 Acrobat 脚本中访问模型树对象数据/属性吗?

转载 作者:行者123 更新时间:2023-11-30 15:52:58 28 4
gpt4 key购买 nike

我正在为 Adob​​e Acrobat 编写一个简单的 javscript 脚本,它通过 PDF 查找类型的“对象”,这些类型可以通过工具 > 分析 > 对象数据工具选择并在“模型树”中浏览,然后查看在它们的属性中,并使用属性数据转换它们。

我经历过 docs但找不到任何相关的东西。我要找的东西可能有不同的名字。我能找到的最接近的是 dataObjects and the Data class但这些似乎围绕着 PDF 组合中的附件,这是不同的。

如何通过与分析 > 对象数据工具一起使用的脚本来访问持有属性的交互式对象的类型?


术语“对象”、“数据”、“属性”和“模型”如此笼统也于事无补。为避免疑问,这是我想通过脚本访问的对象数据/属性的类型,如 Acrobat UI 中所示。我希望我的脚本遍历左上面板的项目,然后对于每个项目,访问它们的属性属性和值,就像在左下面板中一样:

enter image description here

此示例基于地理引用 map PDF,而 PDF 的此功能通常用于 ArcGIS 和 MapInfo 等 GIS 应用程序生成的 PDF:

最佳答案

这是可能的。 Acrobat 和 Reader 中的 3D 播放器实际上是一个单独的 javascript 引擎,但您可以将文档 JavaScript 桥接到 3D JavaScript 并从模型中获取信息。您需要查看链接到下面的文档。它很旧,但 3D JavaScript 从那时起就没有改变,所以它仍然有效。

http://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/js_3d_api_reference.pdf

模型树中每个节点的属性都作为 XML 字符串存储在网格对象的 metadataString 属性中。您可以通过访问文档中的 3D 上下文来获取它。假设您只有一个 3D 注释并且它在第一页上,您将使用下面的代码。您可以通过名称或索引获取网格。只需将 getByName() 替换为 getByIndex()。通常,节点名称与模型树中显示的名称相同,但并非总是如此。

var metadata = this.getAnnots3D(0)[0].context3D.scene.meshes.getByName("mesh name").metadataString

然后您需要使用 Acrobat 的 XMLData 对象中的方法将字符串转换为 XML 对象。从那里您可以使用 XPath 获取属性。

关于javascript - 我可以在 Acrobat 脚本中访问模型树对象数据/属性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39024467/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com