不确定这是不是发布这篇文章的正确地方,但我想这里的人可能有一点经验。
我们有一个包含许多产品的MySQL数据库(嗯,实际上是3200个)。出于显而易见的原因,我们不想在InDesign中重新输入所有内容来制作新一季的目录。有人有在InDesign中构建类似微软"邮件合并"功能的经验吗?
还有另一个警告。数据库中的项目有一个唯一的序列号,长度为5位。然后我们有三个彩色条,它们是根据物品序列号的最后两位数字进行颜色编码的。例如,数字12345将有三个垂直条分别涂成红色、绿色、红色(在我们的系统中,5代表红色,4代表绿色)。
有人知道InDesign中是否有这种功能吗?我在想,也许有可能生成一个PHP文件,以PDF格式输出所有内容,但由于我们可能需要编辑一些细节,我们希望这些信息在Adobe InDesign中随时可用和可编辑。
如果有人有这方面的经验,我当然欢迎你的评论。以上两个选项都可以将您的数据带入,但它们忽略了您关于颜色的其他问题。我想在导入数据时,您希望根据唯一的序列号自动显示颜色,对吗?
所以答案分为两部分:1。是的,您可以将数据导入为XML。这将是最简单和最灵活的方法。数据合并对于简短的文档来说是可以的,但是对于大量的数据来说,这就有点麻烦了。数据合并最终为每个数据记录创建一个文本框架。那将是大量的额外工作。
另一方面,可以导入XML,使其在文档中流动,自动填充页面,并根据段落和字符样式对自己进行格式化。这本书:adobeindesign和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>H H</stars>
</xsl:when>
<xsl:when test="current()[.=3]"><stars>H H H</stars>
</xsl:when>
<xsl:when test="current()[.=4]"><stars>H H H H</stars>
</xsl:when>
<xsl:when test="current()[.=5]"><stars>H H H H H</stars>
</xsl:when>
<xsl:otherwise></xsl:otherwise>
</xsl:choose>
您可以创建一个类似的例程,甚至可以从硬盘驱动器或服务器加载图形。当您将XML导入InDesign时,您将在XML导入选项对话框中加载XSLT。这可以完成基于序列号加载彩色芯片的工作。
除了能够构建图形芯片之外,XSLT还可以根据需要插入段落返回和其他样板文本和空白,从而帮助构建数据内容。我喜欢使用<xsl:text></xsl:text>
来插入空白,我需要InDesign。它像一个冠军一样工作。
很多时候XML文件没有空白或空白太多。XSLT方法将允许您根据需要在生成的布局中添加、删除和控制空白。
希望有帮助。
InDesign内置了非常强大的XML功能。而且,您可以使用XSLT使它们更强大。
我在我的书中详细介绍了整个XML工作流程"Adobe InDesign和XML的设计师指南",可从Adobe Press获得。或者,你可以看到我的Lynda.com记录"动态工作流使用Adobe InDesign和XML"
除了一个小目录,我不会使用数据合并功能,因为编辑结果文件太难了。
使用导入XML的流方法,您可以使用适当的XML结构创建一个示例布局,然后使用Clone和过滤选项导入该导入。
如果您需要重新排列数据元素,您可以在导入时使用XSLT,或者通过在MySQL中创建查询并再次将数据导出为XML来生成不同的XML结构。
通过在导入时使用XSLT(如上所述),可以用图形替换数字。我们通过一个事实表来做到这一点,其中一个数字,比如3,被三星图形所取代。
首先必须准备XML格式的数据,导出为XML然后,将XML导入设计文档(视图->结构;导入XML…),之前在InDesign
中准备InDesign处理XML数据,节省了很多时间
你也可以尝试InDesign的数据合并功能从csv文件。
我知道这是一个旧的线程,但对于任何寻找另一个解决方案的颜色芯片部分,你可以使用GREP在段落样式加字符样式来完成这很容易。
例如,使用前面提到的XML工作流将序列号放到需要颜色条的位置。在模板文本中应用段落样式,我们称之为"颜色条",在段落样式的"GREP"选项中查找数字3,并为其应用"红色"字符样式,其中该字符样式使用下划线格式,根据您的需要缩放和样式。并将相同的红色应用于数字3,使其消失在下划线中。
这是基本的想法,摆弄字体(例如,你可能需要使用一个固定宽度的字体),缩放和字体大小来获得你想要的间距和位置。
也许可以使用段落样式的"嵌套样式"功能为前三个字母应用"白色"字符样式,使它们消失在背景中。
你可以使用www.porky.io来访问JavaScript数据库。
不需要使用像xml这样的交换文件格式(当然这是可能的),你可以直接通过SQL查询。
对于数据库访问,有一个通过php pdo包含的示例。Mysql应该很容易集成…你可以试试iziDBConnect。这个adobeindesign插件有一个试用版。您可以从Adobe Exchange下载它。它直接连接到MySQL。http://www.izidbconnect.com/接下来,可能需要一个小脚本将一些文本字段转换为图像。