html idml viewer

时间:2012-11-01 14:49:57

标签: html idml

我正在尝试将 idml实现为html转换器。我设法生成了一个类似于indesign导出的单个平面html文件。

我想做的是生成与html idml查看器尽可能相似的html视图的html。要做到这一点,我需要找到适合文本框架的文本,我可以提取故事文本内容,但我真的找不到将这些内容拆分成框架/页面的方法。

有什么方法可以实现吗?

2 个答案:

答案 0 :(得分:5)

仅从故事中提取文本是不够的。文本的布局方式由TextFrames文档中的Spread控制。每个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

答案 1 :(得分:2)

Microsoft和Adobe已经为css命名区域提出了一个新模块,它允许您将flow tekst转换为多个容器。请记住,您永远无法创建与Indesign文档完全相同的html页面。

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

目前只有IE10和webkit每晚都支持它:http://caniuse.com/#feat=css-regions