3

不确定这是否是发布此内容的正确位置,但认为这里的某人可能对此有所了解。

我们有一个 MySQL 数据库,其中包含许多产品(实际上是 3,200 个)。出于显而易见的原因,我们不想在 InDesign 中重新输入所有内容来为新一季制作目录。有没有人有在 InDesign 中构建类似于 Microsoft 'Mail Merge' 功能的经验?

还有另一个警告。DB 中的项目具有唯一的序列号,长度为 5 位。然后,我们有三个彩色条,它们根据商品序列号的最后两位数字进行颜色编码。例如,数字 12345 将三个垂直条分别着色为红色、绿色、红色(在我们的系统中,5 代表红色,4 代表绿色)。

有谁知道这种功能在 InDesign 中是否可用?我在想也许可以生成一个以 PDF 格式输出所有内容的 PHP 文件,但由于我们可能需要编辑一些细节,因此理想情况下,我们希望这些信息在 Adob​​e InDesign 中易于使用和编辑。

如果有人有这方面的经验,我当然欢迎您的评论。

4

7 回答 7

3

上面的两个选项都可以将您的数据带入,但他们错过了您关于颜色的其他问题。我假设在导入数据时,您希望根据唯一的序列号自动显示颜色,对吧?

所以答案分为两部分: 1. 是的,您可以将数据作为 XML 导入。这将是最简单和最灵活的方法。数据合并对于短文档来说是可以的,但对于大量数据来说,这将是一个负担。数据合并最终会为每个数据记录创建一个文本框。那将是很多额外的工作。

另一方面,可以导入 XML 以在文档中流动并自动填充页面,并根据段落和字符样式自行格式化。这本书:Adobe InDesign 和 XML 设计师指南将教您如何导入 XML。

问题 2:“你如何生成彩色芯片”涉及更多。您必须编写一个 XSLT 来根据序列号中的数字加载图形。我们通过使用xsl:choose例程根据 XML 中的数据选择正确数量的星号,对股票投资组合情况说明书中的星号进行了类似的操作。如:

<xsl:choose> 
<xsl:when test="name()='stars'">
<!--    <xsl:copy><xsl:apply-templates/></xsl:copy><xsl:text></xsl:text>-->
<xsl:choose> 
<xsl:when test="current()[.=2]"><stars>&#72; &#72;</stars>
</xsl:when>
<xsl:when test="current()[.=3]"><stars>&#72; &#72; &#72;</stars>
</xsl:when>
<xsl:when test="current()[.=4]"><stars>&#72; &#72; &#72; &#72;</stars>
</xsl:when>
<xsl:when test="current()[.=5]"><stars>&#72; &#72; &#72; &#72; &#72;</stars>
</xsl:when>
<xsl:otherwise></xsl:otherwise> 
</xsl:choose> 

您可以创建一个类似的例程,甚至从硬盘驱动器或服务器加载图形。将 XML 导入 InDesign 时,您会在 XML 导入选项对话框中加载 XSLT。这可以完成根据序列号加载色卡的工作。

除了能够构建图形芯片之外,XSLT 还可以通过根据需要插入段落返回和其他样板文本和空白来帮助您构建数据内容。我喜欢用来<xsl:text></xsl:text>插入 InDesign 所需的空白。它像冠军一样工作。

很多时候 XML 文件没有空格或太多。XSLT 方法将允许您根据需要在结果布局中添加、去除和控制空白。

希望有帮助。

于 2012-07-05T23:18:42.790 回答
3

InDesign 内置了非常强大的 XML 功能。而且,您可以使用 XSLT 使它们更加强大。

我在 Adob​​e Press 提供的“Adobe InDesign 和 XML 设计师指南”一书中详细介绍了整个 XML 工作流程。或者,您可以查看我在 Lynda.com 上录制的“使用 Adob​​e InDesign 和 XML 的动态工作流程”

除了一个小目录,我不会将数据合并功能用于任何东西,编辑结果文件太难了。

使用导入 XML 的流程方法,您可以使用适当的 XML 结构创建一个示例布局,然后使用克隆和过滤选项导入导入。

如果需要重新排列数据元素,可以在导入时使用 XSLT,或者通过在 MySQL 中创建查询并再次将数据导出到 XML 来生成不同的 XML 结构。

通过在导入时使用 XSLT,如上所述,您可以用图形替换数字。我们使用情况说明书来做到这一点,其中一个数字(例如 3)被替换为三颗星形图形。

于 2012-12-07T19:25:14.713 回答
1

首先,您必须准备 XML 格式的数据,导出为 XML,然后,将 XML 导入 indesign 文档(视图 -> 结构;导入 XML ...),之前在 InDesign 中准备

InDesign 使用 XML 数据,节省大量时间

于 2011-04-30T16:24:04.853 回答
1

您还可以从 csv 文件中试用 InDesign 的数据合并功能。

于 2012-06-30T04:53:41.457 回答
1

我知道这是一个旧线程,但对于任何寻找颜色芯片部分的另一种解决方案的人,您可以在段落样式和字符样式中使用 GREP 来轻松完成此操作。

例如,使用上述 XML 工作流程将序列号拖放到您想要彩条的位置。在此处的模板文本中应用段落样式,我们称其为“颜色条”,并在段落样式的“GREP”选项中查找数字 3,并对其应用“红色”字符样式,其中字符样式使用下划线格式,并根据您的需要进行缩放和样式设置。并将相同的红色应用于数字 3,使其消失在下划线中。

这是基本思想,调整字体(例如,您可能需要使用固定宽度的字体)、缩放和字体大小以获得您正在寻找的间距和位置。

并且可能使用段落样式的“嵌套样式”功能将“白色”字符样式应用于前三个字母,以使它们消失在背景中。

于 2014-01-31T04:22:56.583 回答
1

您可以使用 www.porky.io 访问 JavaScript 数据库。

并且不需要使用像xml这样的交换文件格式(当然可以),可以直接通过SQL查询。

对于数据库访问,有一个通过 php pdo 包含的示例。mysql应该很容易集成...

于 2014-09-26T13:03:51.590 回答
0

你可以试试 iziDBConnect。这个 Adob​​e Indesign 插件有一个试用版。您可以从 Adob​​e Exchange 下载它。它直接连接到 MySQL。 http://www.izidbconnect.com/ 接下来,也许,您应该需要一个小脚本来将一些文本字段转换为图像。

于 2021-07-09T07:59:00.500 回答