• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Illustratorスクリプト 新規文書上の処理)

Illustratorスクリプト 新規文書上での処理についての質問

このQ&Aのポイント
  • Adobe Illustratorのスクリプティング処理で新規ドキュメント上での処理について質問があります。
  • 特に、アクティブドキュメントのループ処理中に作成した新規ドキュメント上にコピーした要素のプロパティにアクセスできない問題が発生しています。
  • 解決策または代替案があれば教えていただきたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • shut0325
  • ベストアンサー率40% (490/1207)
回答No.2

shut0325です。 簡単なコードを書いてテストしてみましたが、可能でした。 下記のコードでは、最初のアクティブドキュメント(BaseDoc)内の選択されたオブジェクトを新規ドキュメント(MyDoc)に複製し、100(ポイント)ピッチで、配置(移動)しています。 ちょっと引っかかった点としては BaseDoc.activate(); この部分で、最初のアクティブドキュメントをアクティブにしないと、新規書類に対して何も処理してくれませんでした。 今回は各々で複製→複製先で移動とやっていますが、元ドキュメントをアクティブにしてコピー(copy())→複製先ドキュメントをアクティブにしてペースト(paste())すると、選択は維持されたままになっているので、複製先でループ処理して移動、、、としてもいいと思います。 var BaseDoc = activeDocument; var Mydoc = app.documents.add(); var mat = new Array; BaseDoc.activate(); for (var i in BaseDoc.selection){ mat[i] = BaseDoc.selection[i].duplicate(Mydoc); mat[i].position = [100*i,100]; }

Shinroh
質問者

お礼

お返事遅くなってすみません。 サンプルコードを元に色々やったらうまく動きました。 とても参考になりました、ありがとうございます!

その他の回答 (1)

  • shut0325
  • ベストアンサー率40% (490/1207)
回答No.1

コードがないので、何が問題か良くわかりませんが、開始時のアクティブドキュメント及び新規ドキュメントは変数に格納していますでしょうか? 下記の様な感じです。 var docref = activeDocument; var Mydoc = app.documents.add(); 最初に宣言しておけば、後は、変数名を指定しての処理が進められます。

Shinroh
質問者

補足

ご回答ありがとうございます。 > コードがないので、何が問題か良くわかりませんが、開始時のアクティブドキュメント及び新規ドキュメントは変数に格納していますでしょうか? はい、スクリプト実行時のアクティブドキュメントとスクリプト実行中に作成するドキュメントを区別するために、変数に格納しています。 以下のように新規ドキュメント上にコピーした画像の座標を(0,0)に移動させようとすると止まってしまいます。 //newDoc = 新規作成したドキュメント //imgObj = コピーする画像オブジェクト imgObj.moveToBeginning(newDoc); newDoc.pageItems[0].translate(0, 0); 新規ドキュメントに画像をコピー後、画像の座標を操作するスクリプトを組むことはできるのでしょうか…?