1

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

我想出了一个系统,在其中制作将成为剪贴蒙版的框架,复制卡片并将其移动到需要去的地方,然后或多或少地做了以下事情:

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) ,它不起作用,因为没有打开文档窗口。在此示例中,我希望能够将一个矩形放在另一个矩形内,而没有可见的窗口。

4

1 回答 1

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

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

于 2012-09-12T17:04:56.583 回答