针对特定文本框架的 InDesign 脚本

InDesign script targeting specific text frames

我有一个约 550 页的 InDesign 文档。在每一页上,有 4 个框架,所有页面看起来都一样(见下图)。我正在使用 InDesign CS6 和 JS。

如果可能的话,我需要一个能够实现一些相当基本功能的脚本:

1.

2.

3.

我尝试了以下方法(见下文)。不知何故,ID 告诉我 "myParagraph.applyParagraphStyle" 和 "myFrame.fit" 是 "not a function".

2.

var myDocument = app.activeDocument;
myParagraph = myDocument.pages.item(1);
myParagraphStyle  = myDocument.paragraphStyles.item('datum');
myParagraph.applyParagraphStyle(myParagraphStyle,true);

3.

var myDocument = app.activeDocument;
var myGraphic = myDocument.pages.item(3);
var myFrame = myGraphic.parent;
myFrame.fit(FitOptions.proportionally);

您需要查看 InDesign 的 DOM。看看这里:

http://jongware.mit.edu/idcs6js/

myParagraph = myDocument.pages.item(1);

段落不是页面的子节点。另外,我会一次处理一页并循环浏览页面。

尝试:

var myParagraph = myDocument.pages[0].textFrames[0].paragraphs[0];

类似的图形问题。您需要解决作为图形父级的容器,然后是它包含的图形:

var myGraphic = myDocument.pages[0].rectangles[0].graphics[0];

var myGraphic = myDocument.pages[0].allGraphics[0].graphics[0];

或者,您可以使用 pageItems,而不是 textFrames 或矩形