2011-09-08 43 views
6

我必須使用Adobe InDesign來創建文檔。我們基本上需要在需要填寫的整個文檔(公司名稱,項目名稱等)中有幾個變量。以編程方式將數據插入InDesign文檔

我想知道是否有一種方法可以使用現有的模板,使用我熟悉的語言(Ruby,Python等)。我試圖用文本編輯器打開Adobe InDesign文件 - 但是當我使用Notepad ++進行修改,然後在InDesign中打開文件時,它告訴我文件已損壞。

如果您對以編程方式構建InDesign文檔或瞭解任何非常感謝的教程有任何洞見。

PS。我試圖查看Adobe的ExtendScript,但沒有發現適用於InDesign的許多文檔。

感謝您的幫助!

回答

2

在Ruby/Python中沒有這樣做的(合法)方法。從理論上講,可以直接編輯使用任何語言,但InDesign文檔:

  1. 它遠不那麼容易,因爲只是做一些文字修改,你就必須找出更多的格式,並
  2. 它在直接違反InDesign許可協議,這意味着如果Adobe發現,您可能會面臨法律訴訟。

ExtendScript非常適合做這樣的小事情。如果打開ExtendScript Toolkit並將目標設置爲InDesign,則可以輕鬆瀏覽和搜索整個API。搜索/替換簡單的文本變量並不難。

另一種方法是將文檔導出爲.idml語言,這對於在InDesign之外進行編輯更簡單合法。

+3

我使用.idml方法 - 它本質上是一個xml文件和folers的zip文件。在裏面你會發現一個名爲'designmap.xml'的文件,這個文件是InDesign定義文本變量的地方。我使用Nokogiri gem來遍歷html並更新我想要的文本變量(基於它的名稱屬性)的值。我現在正在努力將此腳本與Google文檔相關聯。希望這可以幫助其他類似情況的人。 – aren55555

+0

似乎是一種很好的方法,但如果您的輸入是.indd文件,您仍然需要使用InDesign將它們轉換爲.idml。 – MatsT

+0

我把我的模板保存在.idml中,最終的輸出是在.idml中 - 它適用於我 - 我正在做的就是之後打印它。 – aren55555

0

您需要將.indd文件轉換爲.idml和unzi它。 在/Stories/Story_*.idml您可能會發現所有文本變量。 並沒有簡單的方法來改變.indd文本變量沒有Adobe產品。

相關問題