1

私は名刺のデザインを取り、それを使用して、一時的なカードを印刷するためのテンプレートと一致する10枚のカードを含む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 に答える