2011-12-01 75 views
3

我是IDML的新手,我試圖理解這一點。IDML中Story XML的邏輯順序

我發現IDML是包含多個XML文件的zip文件。 我已打開designmap.xml並在Document元素中看到StoryLine屬性。 但是,StoryLine屬性中的此順序不必與實際內容上顯示的文本的邏輯順序一致。

例如,IDML SDK內的BusinessCardTemplate具有以下邏輯順序:

John Doe 
Software Developer 
InDesign 
Adobe Systems Incorporated 
801 North 34th Street 
Seattle, WA 98103 
Phone: 206.675.7000 
[email protected] 
www.adobe.com 

然而,根據StoryList屬性以下是爲了它是指如下:

Software Developer 
InDesign 
John Doe 
[email protected] 
www.adobe.com 
Phone: 206.675.7000 
801 North 34th Street 
Seattle, WA 98103 
Adobe Systems Incorporated 

是有沒有辦法從IDML的內容中找出這些故事的邏輯順序(最好從左上角到左下角)?

在此先感謝

+0

你見過這個嗎? http://www.adobe.com/content/dam/Adobe/en/devnet/indesign/cs5_docs/idml/idml-specification.pdf – lhan

回答

1

直接與故事的工作是相當困難的。如果您使用標記功能,則更容易。打開您的InDesign文件並導入XML文件,其數據結構正確。然後您可以標記文檔的各個部分以映射到XML節點。

一旦完成將文檔導出爲IDML,然後看看在XML目錄中的文件BackingStory.xml在那裏你會發現這樣的節點:

<XMLElement Self="di3i29" MarkupTag="XMLTag/Instructions" XMLContent="u16a" /> 

這定義了指令的XML節點映射到Story_u16a.xml文件。但是您不再需要擔心故事,因爲您現在已經可以訪問將被注入故事的節點值。

本教程介紹了InDesign XML tagging

3

故事僅僅是從文檔中使用的文本內容中抽象出來的。如果你想獲得故事正確的順序,你需要:

1)在你的解壓IDML文件的根目錄查找designmap.xml(第一解壓整個事情 - 我想你已經知道了)

2)通過尋找傳播元素從它那裏得到利差的順序:

<idPkg:Spread src="Spreads/Spread_uc6.xml" /> 

3)在每個傳播文件,得到TextFrames的順序:)

<TextFrame Self="uec" ParentStory="uda" PreviousTextFrame="n" NextTextFrame="n" ContentType="TextType" ... (many more parameters) ... /> 

4檢查霸每個文本框的rentStory參考:

<TextFrame Self="uec" ParentStory="uda" ... /> 

5)找到相關的故事:在這種情況下,這將是Stories/Story_uda.xml.

在一個簡單的文檔,其中,每個TextFrame匹配到一個故事,這會給你您的故事在文檔中的顯示順序。

但是,有一些情況 - 例如多個幀鏈接到單個故事,或者線程幀,其中一個故事被分割到多個TextFrame上 - 其中映射不會那麼直截了當。還要注意MasterSpreads引入的複雜性。

你會發現Adobe IDML文檔很有用:http://www.adobe.com/devnet/indesign/documentation.html#idml