DTP駆け込み寺
  1. [19965] 埋め込みjavascript 半田 2019/04/03 22:29
    1. [19966] Re: 埋め込みjavascript (z-) 2019/04/04 12:12
      1. [19968] Re^2: 埋め込みjavascript 半田 2019/04/04 21:51 *
        1. [19969] Re^3: 埋め込みjavascript -e 2019/04/05 09:20
        2. [19970] Re^3: 埋め込みjavascript -e 2019/04/05 10:48
          1. [19971] Re^4: 埋め込みjavascript -e 2019/04/05 11:20
            1. [19972] Re^5: 埋め込みjavascript (z-) 2019/04/05 12:17
              1. [19974] Re^6: 埋め込みjavascript 半田 2019/04/05 23:10

[ 返信 ]

埋め込みjavascript

Illustratorで埋め込み(embed)するJavascriptですが、
リンク画像(placedItems)にクリッピングパスが使用されているpsdがあると画像が大きくずれてしまいます。
ずれないように埋め込む方法をご存知の方いらっしゃいましたらおたすけください。
以下使用しているJavascript
----------------------------
myDoc = app.activeDocument;
plcObj = myDoc.placedItems;
for( n=plcObj.length-1; n>-1; n--){
plcObj[n].locked = false;
plcObj[n].embed();
}
----------------------------
作業環境
MACOS 10.13.6
Illustrator 16.2.2

[19965] 半田 (2019/04/03 Wed 22:29)

[ 返信 ]


Re: 埋め込みjavascript

psdとepsを配置したaiドキュメント上で提示されたスクリプトを実行してみましたが特にズレた感じの結果は確認できませんでした。

スクリプト自体よりもドキュメントの設定や配置画像の状態(形式やら何やら)との兼ね合いに問題があるのでしょうか?

[19966] (z-) (2019/04/04 Thu 12:12)

[ 返信 ]


Re^2: 埋め込みjavascript

Re^2: 埋め込みjavascript

返信ありがとうございます。

どういう条件下で起こるのかいまいち不明で申し訳ないですが、
添付のようなクリッピングパスpsdを作りイラレに配置、大きさ変えたり回転かけたりしていると、スクリプトを使った時右側のようにずれてしまうようです。(変わらないものもあります)

追記になりますが、MacOS10.6.8のころは同じ画像でもズレないで使えておりましたが、
Elcapitanにアップデートして以降、イラレの全てのバージョンでズレる現象が起きるようになってしまいました。。

[19968] 半田 (2019/04/04 Thu 21:51)

[ 返信 ]


Re^3: 埋め込みjavascript

手動で埋め込んだ際にはズレないのでしょうか?

[19969] -e (2019/04/05 Fri 09:20)

[ 返信 ]


Re^3: 埋め込みjavascript

検証しました。手動では起きないですね。バグなのかな?
forの回し方の昇順と降順で結果が変わるようです。
昇順だと正しく埋め込まれますが、全てのオブジェクトを埋め込まずに終了します。
for(var n=0; n<plcObj.length; n++)
降順だと全て埋め込まれますがズレます。
for(var n=plcObj.length-1; n>=0; n--)

手動で一つずつ選択して以下のスクリプトを実行すると正常です。
app.activeDocument.selection[0].embed();

このあたりはアドビのフォーラムで聞いた方が良いかも。
(z-)さんあたりは対処法をご存知かもしれませんが。

[19970] -e (2019/04/05 Fri 10:48)

[ 返信 ]


Re^4: 埋め込みjavascript

降順でredraw();入れたら正常に動作しました。

var myDoc = app.activeDocument;
var plcObj = myDoc.placedItems;
for(var n=plcObj.length-1; n>=0; n--){
plcObj[n].embed();
redraw();
}

[19971] -e (2019/04/05 Fri 11:20)

[ 返信 ]


Re^5: 埋め込みjavascript

いやー、検証不足で申し訳ないです。

redraw() 頼もしいですよね…w

[19972] (z-) (2019/04/05 Fri 12:17)

[ 返信 ]


Re^6: 埋め込みjavascript

redraw();で正常に動作しました!

-eさん (z-)さん
ありがとうございました!

[19974] 半田 (2019/04/05 Fri 23:10)