Indesign(IDML文件)使用HTML5和Javascript实现自动化

时间:2014-05-27 15:35:29

标签: javascript html5 angularjs automation idml

我正致力于IDML文件自动化。我的要求是在HTML5编辑器中展示IDML模板。

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

由于我是开发人员,我使用Java完成了这项工作,并将文件路径作为REST调用公开。最大的停止点是: jQuery / AngularJS 脚本说:无效文件

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

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

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

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

2 个答案:

答案 0 :(得分:2)

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

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

A2)您可以使用JavaScript更新XML,但是您必须将其发送回midtier以便将其保存回IDML文件中,所以我只是将数据发送到服务器并且让服务器处理它。 Java就可以了。

A3)嗯,如果不知道你想要完成什么,我会建议做一切你可以服务器端的事情。您提到需要为IDML文件提供“HTML5编辑器”。这本身就是一个巨大的要求,从头开始,尽管is possible。我建议你看一下那些可以通过网页维护IDML文件的产品之一(使用Flash / Flex客户端)

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

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

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

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

答案 1 :(得分:1)

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