2

开始之前的一些背景知识:我绝不是 InDesign 专家,但我的任务是从我们公司的 InDesign 文件中提取一些文本信息来进行一些分析。我正在使用的每个 InDesign 文件都有多个页面,并且每个页面都使用母版页中的故事(如果我使用了错误的术语,请原谅我,我对 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 块的实例,即属于 Master 的实例。但是,我很想知道有问题的故事块属于所有 4 页。我尝试访问 allPageItems 属性,但我一直得到 0 个结果。

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

4

1 回答 1

3

当您访问元素时,您将访问锚定在该故事中allPageItemsStory所有页面项目,我认为这不是您想要的。

当您访问该allPageItems属性时,您会得到 0 个结果,因为您Story不包含任何textFrames. 该Story元素由textContainersnot包含textFrames。我知道这很混乱!

如果要确定故事是否在特定页面上,可以访问textContainers'parentPage属性。

AStory流经多个textContainers. 例如:

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

AStory还可以包含textFrames, rectangles,words等。例如:

                                 Story
___________________________________|__________________________________
|                                                                     |
Word  -->  Word2  -->  TextFrame  -->   Word3  -->   Word4  -->   Word5
于 2013-04-12T13:35:31.583 回答