我正在研究 IDML 文件自动化。我的要求是在 HTML5 编辑器中展示 IDML 模板。
我有一个带有 Hello World 文本的简单 TextFrame
。我将文件保存为:sample.idml
。然后,我解压缩了 sample.idml
并得到了一些文件。转到 stories
文件夹并打开:story_d8.xml
。
因为我是一名开发人员,所以我使用 Java 完成了这项工作,并将文件路径公开为 REST 调用。最大的停止点是:jQuery/AngularJS 脚本说:无效文件。
有人可以建议解决以下问题的选项:
使用 JavaScript(jQuery/AngularJS)获取
Content
数据将“Demo Hello”放入
Content
并重新生成story_d8.xml
(使用JavaScript)这是正确的方法吗?这种方法有替代方法吗?
最佳答案
老问题,但我会为其他人回答。
A1) 它是纯 XML,因此您应该能够像任何其他文件一样将其流式传输出来。一旦你得到它,你需要parse它使用 jquery。然后你可以遍历树并找到你要找的节点。如果每个故事文件中只有一个节点,那么您可以使用正则表达式自行解析它。但听起来您不希望客户端上的所有数据,只需要某些字段中的数据 - 所以只需让 Java 解析数据并将其发送到客户端应用程序即可。
A2) 您可以使用 JavaScript 更新 XML,但无论如何您都必须将其发送回中间层以便将其保存回 IDML 文件,所以我只将数据发送到服务器并让服务器处理它。 Java 就可以了。
A3) 好吧,在不知道您想要完成什么的情况下,我建议您尽一切可能在服务器端完成。您提到需要为 IDML 文件提供“HTML5 编辑器”。这本身就是一个从头开始做的巨大要求,尽管它 is possible .我建议您查看可以通过网页(使用 Flash/Flex 客户端)维护 IDML 文件的几种产品之一
您可以在线维护/查看 IDML 的第 3 方产品的一些(非常昂贵的)示例可能是 Adobe InDesign Server SDK或 NXPublisher .
我的项目是基于 IDML 模板从某人输入网页的数据创建 IDML 文件。我是这样处理的:
- 用户输入表单数据
- 发送到服务器的数据
- 服务器将适当的 IDML 模板文件解压缩到一个新的临时文件夹中
- 服务器打开提取的故事文件并搜索和替换预定义的关键字(例如
标签内的 {{first_name}}),然后用用户提供的内容替换该文本。 - 重复每个字段
- 将临时文件夹文件压缩到新的 IDML 文件中
- 每天一次,有人会在 Mac 上加载 InDesign 并运行我编写的一个小自动化脚本,该脚本会遍历所有等待的 IDML 文件并从中创建可打印的 PDF 文件。
我很想知道您的解决方案是什么。但是,如果有人知道在线查看/编辑 IDML 的廉价解决方案(尤其是使用 HTML5 客户端),我肯定想听听。 ;)
关于javascript - Indesign(IDML 文件)自动化使用 HTML5 和 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23893514/