MySQL数据库转换为Adobe InDesign

3
我不确定这是否是发布此类问题的正确位置,但认为在这里会有一些相关经验。 我们有一个MySQL数据库,其中包含许多产品(实际上有3,200个)。出于显而易见的原因,我们不想重新在InDesign中键入所有内容来制作新季节的目录。有没有人有建立与Microsoft“邮件合并”功能类似的东西的经验?此外还有另一个警告。DB中的项目具有唯一的序列号,长度为5位数字。然后,我们有三个彩色条,根据项目序列号的最后两位颜色编码。例如,数字12345将其三个垂直条染成红色,绿色和红色(在我们的系统中,5表示红色,4表示绿色)。 有没有人知道InDesign中是否可用此类功能?我想可能可以生成一个PHP文件,以PDF格式输出所有内容,但由于我们可能需要编辑一些细节,因此最好将此信息方便地提供并在Adobe InDesign中进行编辑。 如果有任何人有此类经验,我会非常欢迎您的评论。

Indesign没有使用Javascript的可能性吗?也许这是一个为您填充文档的选项? - Ocaso Protal
7个回答

3
以上两种选项都可以将您的数据导入,但它们忽略了您关于颜色的问题。我假设当数据被导入时,您想根据唯一的序列号自动显示颜色,对吗?
因此答案分为两部分:1.是的,您可以将数据导入为XML。这将是最简单和最灵活的方法。数据合并适用于短文档,但对于大量数据,它会很麻烦。数据合并最终会为每个数据记录创建一个文本框。那将是很多额外的工作。
另一方面,XML可以被导入以流经文档并自动填充页面,并根据段落和字符样式进行格式化。书籍《Adobe InDesign和XML设计师指南》将教您如何导入XML。
问题2:“如何生成彩色芯片”有点复杂。您需要编写XSLT来加载基于序列号中数字的图形。我们在股票投资组合事实表中使用类似的星星来完成类似的操作,通过使用例程根据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方法可以让你在结果布局中添加、删除和控制所需的空格。
希望这能帮到你。

3

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

我在我的书“《Adobe InDesign和XML设计向导》中详细介绍了整个XML工作流程,该书可从Adobe Press获得。或者,您可以查看我的Lynda.com录像,“使用Adobe InDesign和XML进行动态工作流程”

我不会将数据合并功能用于除小型目录之外的任何内容,因为编辑生成的文件太难了。

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

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

如上所述,在导入时使用XSLT,可以用图形替换数字。我们在事实表格中使用了这个功能,其中数字(例如3)被替换为三个星形图形。


1
首先,您必须将数据准备成XML格式,导出为XML文件,然后将其导入到InDesign文档中(查看->结构;导入XML...),该文档之前已在InDesign中准备好。
InDesign与XML数据一起工作,可以节省大量时间。

1
您可以使用www.porky.io进行JavaScript数据库访问。
而且无需使用像xml这样的交换文件格式(当然也是可能的),您可以直接通过SQL查询。
对于数据库访问,通过php pdo包含了一个示例。mysql应该很容易集成...

1
我知道这是一个旧的帖子,但对于寻找另一种解决颜色芯片部分的人来说,您可以在段落样式加上字符样式中使用GREP轻松实现这一点。
例如,使用前面提到的XML工作流将序列号放在您想要颜色条的位置。在此模板文本上应用一个段落样式,我们称之为“Color Bars”,并在段落样式的“GREP”选项中查找数字3,并将字符样式“Red”应用于它,其中该字符样式使用下划线格式,按比例缩放和样式化以满足您的需求。并将同样的红色应用于数字3,使其消失到下划线中。
这是基本思路,通过调整字体(例如,也许您需要使用等宽字体)、缩放和字体大小来获得所需的间距和位置。
也许使用段落样式的“嵌套样式”功能将“white”字符样式应用于前三个字母,使它们消失到背景中。

1
您也可以尝试使用InDesign的数据合并功能从csv文件中导入数据。

0
你可以尝试使用iziDBConnect。这是适用于Adobe Indesign的插件,有试用版本。你可以从Adobe Exchange上下载它。它直接连接到MySQL。 http://www.izidbconnect.com/ 接下来,也许你需要一个小脚本将某些文本字段转换为图像。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接