当窗口不可见时选择/剪切/ pasteInto

时间:2012-08-07 18:28:55

标签: javascript adobe-indesign extendscript

我正在编写一个脚本,我采用名片设计并使用它生成一张纸,上面有十张卡片,以匹配模板打印临时卡片。这里棘手的部分是流血;它们会在中间重叠,所以我需要为每一个制作剪贴蒙版。

我想出了一个系统,在那里我制作了可以成为剪裁蒙版的框架,复制并将卡片移动到需要去的位置,然后或多或少地执行了以下操作:

dupCard[i].select();
app.cut();

frameGroupFront[i].select();
app.pasteInto();

这很有效。但由于它有点资源密集,我试图在创建时隐藏工作文件并使用workingFile.windows.add();最后,就像我过去一样。但是当没有窗口时,select()不起作用!我收到错误90886,指出“没有文档窗口打开。”

如何选择我想要的物品,以便在没有可见窗口的情况下剪切和粘贴它?如果不可能,是否有替代解决方案?

编辑:

我被要求提供一个脚本样本,所以这是我能提供的最基本的样本:

var newPage = app.documents.add();

var myRectangle = newPage.rectangles.add({geometricBounds:[1, 1, 5, 5]});
var myRectangle2 = newPage.rectangles.add({geometricBounds:[1, 1, 3, 3]});

myRectangle.select();
app.cut();

myRectangle2.select();
app.pasteInto();

此脚本有效。但是,取第一行并改为执行app.documents.add(false),它不起作用,因为没有打开文档窗口。在这个例子中,我希望能够将一个矩形放在另一个矩形中,没有可见的窗口。

1 个答案:

答案 0 :(得分:1)

您可以像这样操作矩形对象,而不是使用复制和粘贴:

var doc = app.documents.add(); // Add a new doc

var page = doc.pages[0];       // Get the first page

var rect = page.rectangles.add({geometricBounds:[30,30,6,6]})    // Make a new rect

var rect2 = rect.rectangles.add({geometricBounds:[20,20,6,6]});  // Add a new rect inside

这可以在没有窗口打开的情况下完成,因为您直接操作对象。希望这有帮助!