【问题标题】:html idml viewerhtml idml 查看器
【发布时间】:2012-11-01 14:49:56
【问题描述】:

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

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

有什么方法可以实现吗?

【问题讨论】:

    标签: c# html idml


    【解决方案1】:

    仅从故事中提取文本是不够的。文本的布局方式由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

    【讨论】:

    • 感谢您的回复。这正是我目前正在尝试做的。我只是想也许有一种预定义的方法来计算可以放入我不知道的框架中的文本。
    • 不,我不知道 - 你可能会找到一些 .js 来提供帮助,但主要是你自己滚动的情况。祝你好运。
    【解决方案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

    【讨论】:

    • 我的主要问题是没有预定义的方法来计算适合文本框的文本。我不认为这个问题的解决方案取决于用于显示提取文本的 html 元素。我可能是错的,因为我还没有真正研究过区域的使用。还是谢谢你的回复
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-12
    相关资源
    最近更新 更多