2011-04-20 50 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應該易於集成...