Цикл в файле InDesign, размещение графики на каждой странице - PullRequest
0 голосов
/ 16 декабря 2018

Я настроил документ, который содержит идентичные структуры, включая текстовое поле с меткой «pageNumber» для хранения переменной на основе номера страницы, пустой прямоугольник для получения файла иллюстратора и текстовое поле, заполненное заполнителемtext.

В конце концов, я буду использовать слияние данных для создания гораздо более длинного документа, состоящего из идентично структурированных страниц, но содержащих персонализированные данные.

(я создал zip-файл, содержащий этиэлементы, на случай, если будет полезно посмотреть, что я тестирую) (http://arthousemedia.com/files/PageNumbers.zip)

jsx, который я создал, работает в некоторой степени.Когда я запускаю его, появляется пара предупреждений, которые показывают, что я создал правильные переменные) Но вместо того, чтобы разместить pageNumber-p1.ai на первой странице и pageNumber-p2 на второй странице, на какой бы странице я ни был «сфокусирован»его графическое изображение размещается дважды на странице 1. Судя по всему, мне не удается зацикливаться на страницах.Не уверен.

Любой ваш совет будет полезен.Спасибо.

var doc = app.activeDocument,
pagesLength = doc.pages.length; 

for (var i = 0; i < pagesLength; i++) {

    var myLabel = "pageNumber",
    myPage = app.properties.activeWindow && app.activeWindow.activePage,  
    myTextFrames = myPage.textFrames.everyItem().getElements(myLabel).slice(0),  
    l = myTextFrames.length,  
    myVariable

    alert(myVariable);

    while (l--) {  
        if (myTextFrames[l].label != myLabel) continue;  
        myVariable = myTextFrames[l].contents;  
        break; 
    } 

   var thisState = "~/Documents/PageNumbers/pageNumber-" + myVariable + ".ai";

   alert(thisState);

   var rect = doc.pages[i].rectangles[0];      

   try {  
       rect.place(File(thisState));  
       rect.fit (FitOptions.CONTENT_TO_FRAME);
       rect.fit (FitOptions.PROPORTIONALLY);
       rect.fit (FitOptions.CENTER_CONTENT);
   }  

   catch(e){  
       alert(e);  
   };

}
...