2011-04-20 76 views
2

不太确定这是否是发布此内容的正确位置,但认为此处某人可能对此有一点经验。我们有一个包含许多产品的MySQL数据库(实际上是3200个)。出于显而易见的原因,我们不希望将所有内容都重新输入到InDesign中,以制作新赛季的产品目录。有没有人在InDesign中构建类似Microsoft的“邮件合并”功能的经验?MySQL数据库到Adobe InDesign

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

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

如果有人有这方面的经验,我一定会欢迎您的意见。

+0

Indesign没有使用Javascript的可能性?也许这是您填写文档的选项? – 2011-04-20 10:03:41

回答

1

首先你必须准备以XML格式,将数据导出到XML 然后,XML导入InDesign文档(查看 - >结构;导入XML ...),而此前在InDesign

InDesign的准备使用XML数据,节省了大量时间

1

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

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方法将允许您在生成的布局中添加,去除和控制空白。

希望有所帮助。

3

InDesign内置了非常强大的XML功能。您还可以使用XSLT使其更加强大。

我详细介绍了Adobe Press提供的书“Adobe InDesign和XML设计指南”中的整个XML工作流程。或者,您可以看到我的Lynda.com录制内容为“使用Adobe InDesign和XML的动态工作流程”

对于除小目录以外的任何内容,我都不会使用数据合并功能,但编辑结果文件太困难。

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

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

通过导入时使用XSLT,如上所述,您可以用图形替换数字。我们用一张实际情况表做了这样的工作,其中一个数字(例如3)被三个星形图形所取代。

1

我知道这是一个古老的线程,但为寻找另一种解决方案,以色彩芯片的一部分,你可以在段落样式加上字符样式使用grep来做到这一点很容易地。

例如,使用前面提到的XML工作流程在您需要颜色条的位置放置序列号。将段落样式应用于模板文本,并在段落样式的“GREP”选项中查找数字3,然后将“红色”的字符样式应用于该样式,字体样式使用下划线格式,根据您的需要缩放和设计样式。并将相同的红色应用于数字3,以便它消失在下划线中。

这是基本的想法,拨弄字体(比如也许你需要使用一个固定宽度字体),缩放和字体大小,让你正在寻找的间距和位置。

也许使用段落样式的“嵌套样式”功能,以一个“白”字样式应用到的前三个字母让那些消失在背景中。

1

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

而且也没有必要使用类似XML交换文件格式(但当然是可能的),你可以通过SQL直接查询。

对于数据库访问,有一个样本通过php pdo提供。 mysql应该易于集成...