2012-11-01 61 views
3

我想實現一個 idml到html轉換器。我設法生成了一個類似於由indesign導出生成的平面html文件。html idml查看器

我想要做的是生成html,將盡可能類似於html idml查看器的indesign視圖。要做到這一點,我需要找到適合文本框的文本,我可以提取故事文本內容,但我無法真正找到將這些內容分割成幀/頁面的方法。

有什麼辦法可以達到這個目的嗎?

回答

4

只是從故事中提取文本是不夠的。文本的佈局方式由Spread文檔中的TextFrames控制。每個TextFrame都有一個ParentStory屬性,顯示從哪個故事中加載文本,並且每個框架都有確定佈局的尺寸。對於無螺紋的文字框架(即一個故事<>一個框架),這就是你所需要的。

對於線程幀,您需要使用PreviousTextFrameNextTextFrame屬性創建鏈。 IDML中沒有任何內容可以告訴您在一個線程鏈中每個框架中有多少文本適合,您需要根據計算的文本維度(或使用暴力試驗和錯誤)自己進行計算。

你可以在主designmap.xml的利差:

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

而且傳播將包含一個或多個節點TextFrame:

<Spread Self="udd" ...> 
    <TextFrame Self="uf7" ParentStory="ue5" PreviousTextFrame="n" NextTextFrame="n" ContentType="TextType">...</> 
    ... 
</Spread> 

這將反過來鏈接到一個特定的故事:

<Story Self="ue5" AppliedTOCStyle="n" TrackChanges="false" StoryTitle="$ID/" AppliedNamedGrid="n">...</> 

(在此示例中,幀不是線程的,因此'n'值。

這一切是IDML文檔,您可以與其他的InDesign開發文檔在這裏找到:http://www.adobe.com/devnet/indesign/documentation.html

+0

感謝您的答覆。這正是我目前想要做的。我只是想,也許有一種預定義的方式來計算可以適合我不知道的框架的文本。 – dp901

+0

不,我不知道 - 你可能會發現一些.js來幫助你,但大多數情況下它是你自己的。祝你好運。 – JcFx

1

微軟和Adobe已經提出了對CSS命名的地區,讓你可以做人流tekst成多一個新的模塊容器。請記住,您永遠無法創建看起來完全像Indesign文檔的html頁面。

http://www.w3.org/TR/css3-regions/

現在只有IE10和WebKit每晚支持:http://caniuse.com/#feat=css-regions

+0

我的主要問題是沒有預定義的方式來計算可以放入文本框中的文本。我不認爲這個問題的解決方案取決於用來顯示提取文本的html元素。我可能是錯誤的,因爲我沒有真正考慮過區域的使用。無論如何感謝您的答覆 – dp901