【发布时间】:2014-02-25 15:42:55
【问题描述】:
将 XML 数据导入 InDesign 文档后,我在第一页末尾的文本框中看到了那个红色加号。
如何使用脚本在下一页上插入/移动该内容?
【问题讨论】:
将 XML 数据导入 InDesign 文档后,我在第一页末尾的文本框中看到了那个红色加号。
如何使用脚本在下一页上插入/移动该内容?
【问题讨论】:
这个脚本应该做你想做的事。 :)
var myDoc = app.activeDocument;
var myFrames = myDoc.textFrames;
while (myFrames[0].overflows === true) {
var myNewPage = myDoc.pages.add();
var myMargin = myNewPage.marginPreferences;
var myBounds = [myMargin.top, myMargin.left, myDoc.documentPreferences.pageHeight - myMargin.bottom, myDoc.documentPreferences.pageWidth - myMargin.right];
var myOldRuler = myDoc.viewPreferences.rulerOrigin;
myDoc.viewPreferences.rulerOrigin = RulerOrigin.pageOrigin;
with(myDoc.pages[-1].textFrames.add()) {
geometricBounds = myBounds;
previousTextFrame = myDoc.pages[-2].textFrames[0];
}
myDoc.viewPreferences.rulerOrigin = myOldRuler;
}
【讨论】:
TextFrame 对象有一个属性overflows:布尔型,只读。如果属实,则该故事的文字有溢流。
TextFrame 对象还有一个属性nextTextFrame:r/w 线程中的下一个文本框。可以返回:TextFrame 或 TextPath。也可以接受:NothingEnum 枚举器。
【讨论】:
app.activeDocument.textFrames[0].overflows 比创建页面,创建框架,与nextTextFrame 链接框架。或者像@Brett 那样用previousTextFrame 链接框架。
不确定您是否需要编写脚本...如果将文档设置为模板,只需单击加号并“捕获”内容。然后移至下一页并单击您希望文本重排到的位置。根据需要调整文本框。
【讨论】:
对于流动溢出文本框架的非脚本解决方案,在添加新页面后,按住 shift 再单击。这将导致文本在尽可能多的页面上自动流动,直到不再有溢出的文本框。
【讨论】:
从 CS4 开始,我们可以启用“智能文本重排”以自动将文本流向可用内容。它会自动插入页面。
Edit Menu \ Preferences \ Type \ Smart Text Reflow
另外,它自带“删除空页”,所以当内容变少时,它会自动相应地删除空页。
【讨论】: