我是IDML的新手,我正在努力理解这一点。
我已经知道IDML是包含多个XML文件的zip文件。我打开了designmap.xml,在Document元素中看到了StoryLine属性。然而,StoryLine属性中的这种顺序不一定与在实际内容上显示的文本的逻辑顺序一致。
例如,IDML SDK内部的BusinessCardTemplate具有以下逻辑顺序:
John Doe
Software Developer
InDesign
Adobe Systems Incorporated
801 North 34th Street
Seattle, WA 98103
Phone: 206.675.7000
jdoe@adobe.com
www.adobe.com但是,根据StoryList属性,它引用的顺序如下:
Software Developer
InDesign
John Doe
jdoe@adobe.com
www.adobe.com
Phone: 206.675.7000
801 North 34th Street
Seattle, WA 98103
Adobe Systems Incorporated有没有办法从IDML的内容中找出这些故事的逻辑顺序(最好是从左上到左下)?
提前感谢
发布于 2012-08-27 22:29:09
故事只是文本内容,从文档中的使用中抽象出来。如果你想以正确的顺序获得故事,你需要:
1)在解压后的IDML文件的根目录中找到designmap.xml (首先解压整个文件--我想你已经知道了)
2)通过查找spread元素得到Spreads的顺序:
<idPkg:Spread src="Spreads/Spread_uc6.xml" />3)在每个展开文档中,获取TextFrames的顺序:
<TextFrame Self="uec" ParentStory="uda" PreviousTextFrame="n" NextTextFrame="n" ContentType="TextType" ... (many more parameters) ... />4)检查每个文本框架的ParentStory引用:
<TextFrame Self="uec" ParentStory="uda" ... />5)找到相关的故事:在本例中它将是Stories/Story_uda.xml.
在一个简单的文档中,每个TextFrame都与一个故事相匹配,这将为您提供故事在文档中出现的顺序。
然而,在某些情况下-例如链接到单个故事的多个框架,或者线程框架,其中一个故事被拆分到多个TextFrames -在这些情况下,这种映射不会如此简单。还要注意MasterSpreads引入的复杂性。
您会发现Adobe IDML文档很有用:http://www.adobe.com/devnet/indesign/documentation.html#idml
发布于 2012-04-10 09:57:46
直接使用故事是相当困难的。如果使用标记功能,则会更容易。打开InDesign文件并导入具有正确数据结构的XML文件。然后,您可以标记文档的各个部分以映射到XML节点。
完成后,将文档导出到IDML,然后查看XML目录中的文件BackingStory.xml,您将在其中找到如下所示的节点:
<XMLElement Self="di3i29" MarkupTag="XMLTag/Instructions" XMLContent="u16a" />这定义了Instructions XML节点到Story_u16a.xml文件的映射。但是,您不再需要担心Story,因为您现在已经可以访问将注入到Story中的节点值。
本教程将介绍InDesign XML tagging。
https://stackoverflow.com/questions/8346961
复制相似问题