【问题标题】:Indesign scripting to get all textframes of a page in orderIndesign脚本按顺序获取页面的所有文本框
【发布时间】:2020-05-05 22:52:37
【问题描述】:

我正在尝试按顺序获取单个页面的所有文本框架,但在使用

时我总是以随机顺序获取它们
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 获取其他框架。

【问题讨论】:

  • 在这种情况下,我们是否可以假设所有链接的文本框架都在同一页面上?或者它是可能从前一页开始并继续到下一页的链接文本框架链?
  • 所有都是第一页上的链接文本框架,它们可能有一个来自前一页的链,基本上有一个从最后一个文本框架延伸到下一页的链。

标签: scripting adobe-indesign extendscript


【解决方案1】:

基本上,您必须从任何文本框架开始,并从中找到所有链接的文本框架,然后在第三步中仅收集页面上的那些。以下是您可以采取的方法:

// 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-06
    • 2022-09-06
    相关资源
    最近更新 更多