4

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

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

有什么办法可以实现吗?

4

2 回答 2

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

于 2012-11-05T11:13:56.800 回答
2

Microsoft 和 Adob​​e 提出了一个名为 Regions 的新 CSS 模块,它允许您将 tekst 流式传输到多个容器中。请记住,您将永远无法创建看起来与 Indesign 文档完全相同的 html 页面。

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

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

于 2013-01-01T14:15:21.750 回答