我正在尝试实现一个c# idml到html的转换器。我已经设法生成了一个平面html文件,与indesign导出生成的文件类似。
我想要做的是生成尽可能类似于indesign视图的html,就像html idml查看器一样。要做到这一点,我需要找到适合文本框架的文本,我可以提取故事文本内容,但我真的找不到一种方法将该内容分割为框架/页面。
我有什么方法可以做到这一点吗?
发布于 2012-11-05 19:13:57
仅仅从故事中提取文本是不够的。文本的布局方式由Spread文档中的TextFrames控制。每个TextFrame都有一个ParentStory属性,显示它从哪个故事加载文本,每个框架都有决定布局的维度。对于未串接的文本框架(即一个故事<>一帧),这就是你所需要的。
对于线程框架,需要使用PreviousTextFrame和NextTextFrame属性来创建链。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
发布于 2013-01-01 22:15:22
微软和Adobe已经为css命名区域提出了一个新的模块,允许你将tekst流到多个容器中。请记住,您永远无法创建外观与Indesign文档完全相同的html页面。
http://www.w3.org/TR/css3-regions/
目前只有IE10和webkit夜间支持它:http://caniuse.com/#feat=css-regions
https://stackoverflow.com/questions/13179590
复制相似问题