确定故事和页面之间的关系

时间:2013-04-11 15:13:21

标签: adobe-indesign

我之前的一些背景知识:我绝不是InDesign的专家,但我的任务是从我们公司的InDesign文件中提取一些文本信息来进行一些分析。我正在使用的每个InDesign文件都有多个页面,每个页面都使用Master页面中的Stories(如果我使用了错误的术语,请原谅我,我正在对InDesign对象模型进行有限的理解) 。使用默认的“导出所有文本”脚本作为起点,我能够扩展该功能以转储其他有用信息;例如几何边界。我已经发布了以下一些代码:

myFileName = "StoryID" + myID + myExtension;
myFilePath = myFolder + "/" + myFileName;
myFile = new File(myFilePath);

myFile.encoding='text';
myFile.open('w');

containers = myStory.textContainers;

if (containers[0].overridden) {
    for (i = 0; i < myStory.words.length; i++) {
        myFile.write(myStory.words[i].contents);
        myFile.write(" ");
    }
    myFile.write("\n");
}
else {
    myFile.write(myStory.contents + '\n');
}

var geometry = containers[0].geometricBounds
myFile.write("++" + containers[0].parent.name + '\n');
myFile.write("$$" + geometry[0] + "\t" + geometry[1] + "\t" + geometry[2] + "\t" + geometry[3] + "\n");

pageitems = myStory.allPageItems;
for (j = 0; j < pageitems.length; j++){
    myFile.write("--" + pageitems[0]);
}
myFile.close();

我的问题是,如何确定故事中出现的所有页面?例如,我可以说我有4页:{Master,Region 1,Region 2,Region 3}。区域1 - 3都从Master继承了一个Story块。当我运行这个脚本时,我只得到一个Story块的实例,属于Master的实例。但是,我很想知道有问题的Story块属于所有4页。我试过访问allPageItems属性,但我一直得到0结果。

任何帮助将不胜感激。如果有帮助,我正在研究InDesign CS 6

1 个答案:

答案 0 :(得分:3)

当您访问allPageItems元素的Story时,您正在访问该故事中锚定的所有页面项目,我认为这不是您想要的。“ / p>

当您访问allPageItems属性时,您会得到0结果,因为您的Story不包含任何textFramesStory元素包含在textContainers而不是textFrames中。我知道这很令人困惑!

如果您想确定某个故事是否在特定网页上,您可以访问textContainers'parentPage媒体资源。

Story流经多个textContainers。例如:

                  link                         link
TextContainer      -->      TextContainer2      -->      TextContainer3
|_____________________________________________________________________|
                                   |
                                 Story

Story还可以包含textFramesrectangleswords等。例如:

                                 Story
___________________________________|__________________________________
|                                                                     |
Word  -->  Word2  -->  TextFrame  -->   Word3  -->   Word4  -->   Word5