Скрипт Indesign для упорядочивания всех текстовых фреймов страницы - PullRequest
0 голосов
/ 06 мая 2020

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

myDoc.pages[1] //assuming the 1st index page
>> [object Page]
myDoc.pages[eachPage].textFrames   //get all the text frames on that page.
>> [object TextFrames]     //able to get the textframes but they are not in the order if they are linked textframes

Есть ли способ их упорядочить, если они связаны текстовые фреймы? (не уверен, как они появятся, если они не связаны)

Если не хотя бы как узнать первый текстовый фрейм на странице, чтобы я мог получить другие фреймы с помощью . nextTextFrame.

1 Ответ

2 голосов
/ 06 мая 2020

В основном вам нужно будет начать с любого текстового фрейма и из него найти все связанные текстовые фреймы, а затем на третьем этапе собрать только те, которые есть на вашей странице. Вот как можно go об этом:

// get your document and your page somehow
var doc = app.activeDocument;
var myPage = doc.pages[1];

// get any text frame on your page and from its parent story get the
// text containers which is an array of all text frames that contain
// the linked text story
var someTextFrame = myPage.textFrames[0];
var textContainers = someTextFrame.parentStory.textContainers;

// loop over all text containers in order and collect those that are
// on your page
var textFramesInOrder = [];
for (var i = 0; i < textContainers.length; i++) {
  if(textContainers[i].parentPage === myPage) {
    textFramesInOrder.push(textContainers[i]);
  }
}

// now textFramesInOrder holds all the text frames of the page in correct order
...