Я столкнулся с проблемой при попытке выполнить скрипт, чтобы найти определенное слово - в данном случае имя проекта в книге - и записать номера страниц всех его вхождений в моем документе InDesign в. текстовый файл.
Проблема: По какой-либо причине возвращенные значения «parentPage.name» перечислены в неупорядоченном порядке (например, его появление на стр. 184 появляется в списке перед стр. 11, например, и т. Д.)
Я не уверен, связан ли он с этим кодом (ниже) или где-либо еще:
pg_nr = found_txt.parentTextFrames[0].parentPage.name;
Если у кого-нибудь есть идеи, как решить эту проблему, это было бы замечательно. Спасибо!
Полная версия моего кода ниже:
main ();
function main() {
var file_name = new Date() + "-Title-Project_Name-Page_Location";
var filepath = "~/Desktop/" + file_name + ".txt";
var write_file = File(filepath);
write_file = new File(filepath);
var write_text;
write_text = write_file.open('w', undefined, undefined);
write_file.encoding = "UTF-8";
write_file.lineFeed = "Macintosh";
#target indesign;
var doc = app.activeDocument;
app.findTextPreferences = NothingEnum.nothing;
app.changeTextPreferences = NothingEnum.nothing;
app.findChangeTextOptions.includeLockedLayersForFind = true;
app.findChangeTextOptions.includeLockedStoriesForFind = true;
app.findChangeTextOptions.includeHiddenLayers = false;
app.findChangeTextOptions.includeMasterPages = false;
app.findChangeTextOptions.includeFootnotes = true;
app.findChangeTextOptions.caseSensitive = false;
app.findChangeTextOptions.wholeWord = false;
project_name = "Project Name";
app.findTextPreferences.findWhat = project_name;
find_txt = doc.findText();
for (var i = 0; i < find_txt.length; i++) {
if (find_txt[i].contents == project_name) {
found_txt = find_txt[i];
pg_nr = found_txt.parentTextFrames[0].parentPage.name;
write_file.writeln(project_name + " : p. " + pg_nr + "\r\r");
}
}
app.findTextPreferences = NothingEnum.nothing;
app.changeTextPreferences = NothingEnum.nothing;
write_file.close();
return;
}