Skip to main content
6404 Posts
Illustratorのscriptでembed()で生成されるRasterItemを取得したい

placedItem.embed();した後、placedItemが削除され、代わりにRasterItemが生成されます。このRasterItemがどれであるか確実に取得、判別するのが目的となります。 テスト環境は・Illustrator Ver25.4.1・Windows10pro 21H1・javascript(jsx)・リンク画像の形式はeps・「リンクされたEPSに低解像と表示用画像を使用」をonとなっています。 現状、行いたい作業は選択されたリンク画像(placeditem)を埋め込み(.embed())をして、それにラスタライズ(.rasterize())を行うことで、疑似的なリンク画像のリサイズにしようと考えています。 ですので、埋め込んだ後に生成されるRasterItemを見つける必要があるのですが、存在すると思っていた.embed()の返り値はリファレンスによると「Nothing」とあり、実際に出力は「undefined」となります。 「.absoluteZOrderPosition」は一つだけなら問題ないのですが、複数選択の際に一つ目しか同一になりませんでした。widthやleftなどの情報から判別しようと考えましたが、.embed()後には小数点1位以下で微妙に値が変わるようです。そこで誤差を織り込んだ判定を行うと一応稼働するものはできました。 ですが顧客に仕様を説明すると、不安定な方法は望ましくないと言われ行き詰っています。「.absoluteZOrderPosition」値の変動の法則を解析することもおそらく望まれてはいないと思われます。 ご助力いただければ幸いです。 また機能改善リクエストとして、.embed()で生成されるRasterItemをリターンしたいただけると助かります。