1

我正在研究 IDML 文件自动化。我的要求是在 HTML5 编辑器中展示一个 IDML 模板。

我有一个简单TextFrameHello World文本。我将文件保存为:sample.idml. 然后,我解压缩sample.idml并得到了一些文件。转到stories文件夹并打开:story_d8.xml

由于我是一名开发人员,因此我使用 Java 进行了此操作,并将文件路径公开为 REST 调用。最大的停止点是:jQuery / AngularJS脚本说:无效文件

有人可以建议解决以下几点的选项:

  1. Content使用 JavaScript ( jQuery / AngularJS )获取数据

  2. 将“Demo Hello”放入Content并重新生成story_d8.xml(使用 JavaScript)

  3. 这是正确的方法吗?这种方法有替代方案吗?

4

2 回答 2

3

老问题,但我会为其他人回答。

A1) 它是纯 XML,因此您应该能够像任何其他文件一样将其流式传输。一旦你得到它,你需要使用 jquery来解析它。然后你可以遍历树并找到你正在寻找的节点。如果每个故事文件中只有一个节点,那么您可以使用正则表达式自己解析它。但听起来您不希望所有这些都在客户端上,只需要某些字段中的数据 - 所以只需让 Java 解析数据并将其发送到客户端应用程序即可。

A2)您可以使用 JavaScript 更新 XML,但您必须将其发送回中间层才能将其保存回 IDML 文件,所以我只需将数据发送到服务器并让服务器处理它。Java会很好。

A3)好吧,在不确切知道您要完成什么的情况下,我建议您在服务器端做所有可以做的事情。您提到需要为 IDML 文件提供“HTML5 编辑器”。这本身就是一个从头开始的巨大要求,尽管这是可能的。我建议您查看可以通过网页维护 IDML 文件的几种产品之一(使用 Flash/Flex 客户端)

您可以使用在线维护/查看 IDML 的一些(非常昂贵的)第三方产品示例,可以是Adob​​e InDesign Server SDKNXPublisher

我的项目是根据用户输入网页的数据基于 IDML 模板创建 IDML 文件。我是这样处理的:

  • 用户输入表单数据
  • 发送到服务器的数据
  • 服务器将适当的 IDML 模板文件解压缩到一个新的临时文件夹中
  • 服务器打开提取的故事文件并搜索和替换预定义的关键字(如 <content> 标记内的 {{first_name}}),然后用用户提供的内容替换该文本。
  • 在每个字段上重复
  • 将临时文件夹文件压缩到新的 IDML 文件中
  • 一天一次,有人会在 Mac 上加载 InDesign 并运行我编写的一个小自动化脚本,该脚本将遍历所有等待的 IDML 文件并从中创建可打印的 PDF 文件。

我很想知道您的解决方案是什么。但是,如果有人知道在线查看/编辑 IDML 的廉价解决方案(尤其是使用 HTML5 客户端),我肯定想听听。;)

于 2014-11-22T05:46:53.230 回答
1

不久前,我通过http://www.treeorgtech.com/沿着这条路线走, 考虑使用http://idmllib.com/来读取元素 - 我们构建了自己的脚本来读取 IDML。我将 IDML 读入我自己的数据库“格式”,然后使用http://www.pdflib.com/生成高分辨率 PDF,我使用 flex/flash 构建编辑器。

于 2015-03-24T11:35:39.240 回答