我正在编写一个脚本,我采用名片设计并使用它生成一张纸,上面有十张卡片,以匹配模板打印临时卡片。这里棘手的部分是流血;它们会在中间重叠,所以我需要为每一个制作剪贴蒙版。
我想出了一个系统,在那里我制作了可以成为剪裁蒙版的框架,复制并将卡片移动到需要去的位置,然后或多或少地执行了以下操作:
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),它不起作用,因为没有打开文档窗口。在这个例子中,我希望能够将一个矩形放在另一个矩形中,没有可见的窗口。
答案 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
这可以在没有窗口打开的情况下完成,因为您直接操作对象。希望这有帮助!