Немного фона перед тем, как я начинаю: Я никоим образом не специалист 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 страницы: {Мастер, регион 1, регион 2, регион 3}. Регион 1 - 3 все наследует блок Истории от Мастера. Когда я запускаю этот скрипт, я получаю только один экземпляр блока Story, экземпляр, принадлежащий Master. Тем не менее, мне было бы интересно узнать, что блок Story, о котором идет речь, принадлежит всем 4 страницам. Я попытался получить доступ к свойству allPageItems, но я продолжаю получать 0 результатов.
Любая помощь будет оценена по достоинству. Я работаю над InDesign CS 6, если это помогает
Спасибо за разъяснение Джош, это было очень полезно! Вы знакомы с тем, как переопределения представлены в объектной модели? Например, если Story1 переопределен новым текстом, появляется ли это как новый TextContainer в исходной истории или новый объект Story, где переопределенное свойство является истинным? – Jama22
Мммм, пытаясь понять, что ты говоришь. Если на странице используется мастер-лист, элементы, которые были на главной странице, применяются к странице, но вы не можете их изменить, потому что они еще не переопределены. Если вы хотите переопределить элемент на этой странице, вам нужно вызвать функцию 'override' для этого элемента следующим образом:' masterPageItem.override (pageItem) '. –
Возможно, вы думаете об этом, так как 'pageItem' все еще находится на главной странице, пока вы не переопределите его на фактической странице ... может быть, надеюсь, я не смущаю себя. –