【问题标题】:Programmatically Inserting Data into an InDesign Document以编程方式将数据插入 InDesign 文档
【发布时间】:2011-09-08 18:30:31
【问题描述】:

我必须使用 Adob​​e InDesign 来创建文档。我们基本上需要在整个文档中有几个变量(公司名称、项目名称等)需要填写。

我想知道是否有一种方法可以获取现有模板并使用我熟悉的语言(Ruby、Python 等)以编程方式填充这些模板。我尝试使用文本编辑器打开 Adob​​e InDesign 文件 - 但是当我使用 Notepad++ 进行修改然后在 InDesign 中打开文件时,它告诉我文件已损坏。

如果您对以编程方式构建 InDesign 文档有任何见解或知道任何教程,将不胜感激。

附:我尝试查看 Adob​​e 的 ExtendScript,但没有找到太多适用于 InDesign 的文档。

感谢您的帮助!

【问题讨论】:

    标签: ruby adobe adobe-indesign


    【解决方案1】:

    在 Ruby/Python 中没有(合法的)方法可以做到这一点。理论上,可以使用任何语言直接编辑 InDesign 文档,但:

    1. 这远没有仅仅修改一些文本那么简单,您必须了解更多有关格式的信息,并且
    2. 这直接违反了 InDesign 许可协议,这意味着如果 Adob​​e 发现您可能会面临法律诉讼。

    ExtendScript 非常适合做这样的小事。如果您打开 ExtendScript Toolkit 并将目标设置为 InDesign,您可以轻松浏览和搜索整个 API。对简单的文本变量进行搜索/替换一点也不难。

    另一种方法是将文档导出为.idml 语言,这种语言在 InDesign 之外进行编辑更容易且合法。

    【讨论】:

    • 我使用了 .idml 方法——它本质上是一个 xml 文件和文件夹的 zip 文件。在里面你会发现一个名为designmap.xml的文件,这个文件是InDesign定义文本变量的地方。我使用 Nokogiri gem 来遍历 html 并更新我想要的文本变量的值(基于他们的 name 属性)。我现在正在努力将此脚本与谷歌文档联系起来。希望这可以帮助其他有类似情况的人。
    • 看起来是个不错的方法,不过如果您输入的是 .indd 文件,您仍然需要使用 InDesign 将它们转换为 .idml。
    • 我将模板保存在 .idml 中,最终输出在 .idml 中 - 它对我有用 - 我所做的只是在之后打印它。
    【解决方案2】:

    您可以使用 Indesign 的 DataMerge 功能 --> https://helpx.adobe.com/indesign/using/data-merge.html

    我认为这正是您想要的。

    或者您可以使用 Indesign API。看看 Extendscript-Toolkit,尤其是 ObjectModell-Viewer。

    【讨论】:

      【解决方案3】:

      您需要将您的 .indd 文件转换为 .idml 并解压缩它。 在 /Stories/Stories_*.idml 中,您可能会找到所有文本变量。 如果没有 Adob​​e 产品,也没有简单的方法可以更改 .indd 中的文本变量。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-08
        • 2011-04-07
        • 1970-01-01
        • 2015-04-12
        • 2015-08-15
        • 1970-01-01
        相关资源
        最近更新 更多