[ 掲示板に戻る ]

記事No.10365に関するスレッドです

スクリプトを使って「すべての特色をプロセスカラーへ」にチェックを入れる / ぶぶまる
macOS 10.13.6
InDesign CC2018

お世話になります。
スクリプト勉強中の超初心者です。

JavaScriptを使って、現在操作しているドキュメント(スウォッチには特色あり)の分版パネル→インキ管理メニューにある「すべての特色をプロセスカラーへ」にチェックを入れようと思っています。

Web上の「InDesign ドキュメントオブジェクトモデル図」を参照に、

app.activeDocument.ink.convertToProcess = true;

と書いて、ESTKで実行すると「オブジェクトは、ink プロパティかメソッドをサポートしていない」とエラーがでます。

また、inDesignの初期設定をいじればいいのかと思い、

app.preferences.ink.convertToProcess = true;

としても、同じエラーがでます。

そもそも考え違いをしているのかどうかも分かりません。

初歩的なことで申し訳ございませんが、
どうかご教授くださいますようお願いいたします。

No.10364 2023/02/09(Thu) 15:55:23
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:109.0) Gecko/20100101 Firefox/109.0

Re: スクリプトを使って「すべての特色をプロセスカラーへ」にチェックを入れる / Uske_S URL
ぶぶまるさん;
ひょっとするとそのものズバリなプロパティが存在するかもしれないのですが僕は見つけられなかったので、特色を一つずつプロセスカラーにするスクリプトを示します。

var myDoc = app.activeDocument;
var myInks = myDoc.inks;
for (var i = 0; i < myInks.length; i++) {
if (!myInks[i].isProcessInk && !myInks[i].convertToProcess) {
myInks[i].convertToProcess = true;
}
}

ドキュメントに存在するインキのうち、プロセスインクでない&&プロセスカラーにする設定がオフの場合、そのインキをプロセスカラーにする設定をオンにします。
こうすることにより、すべての特色がプロセスカラーに分版されるので、結果的に「すべての特色をプロセスカラーへ」がオンになります。

オブジェクトモデルの考え方とか実際に参照する際のポイント、みたいのは言葉で説明するのがすごく難しいので割愛しますが、
Inkオブジェクトはドキュメントに単体で存在せず、Documentオブジェクトに
まるで配列のように存在しているので、例のようにfor文などでインデックスを振って順にアクセスする必要があります。

もしスクリプトで気になることがあればTwitterやブログ、また下記のようなもくもく会もやっていますので、お気軽にお声がけください!
https://dtpmkmk.connpass.com

No.10365 2023/02/09(Thu) 17:32:30
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36

Re: スクリプトを使って「すべての特色をプロセスカラーへ」にチェックを入れる / ぶぶまる
Uske_S さま

すばやい回答ありがとうございます!

いろいろ考えさせられ、勉強になる回答でした。

ドキュメントオブジェクトモデル図を見て、
inkオブジェクトのプロパティ"convertToProcess" が「すべての特色をプロセスカラーへ」に「チェックをいれる」もの、と思い込んでいました。
これでは何をやってもダメなはずですね。。。

回答を読んで、改めてDOM図を眺めると、
「inkのプロパティには、length があるので、Inkオブジェクトぞれぞれにアクセスして、convertToProcessプロパティを変更する」と発想できてもよさそうなのに、と思いました。

今回はどうもありがとうございました。
もくもく会をちょっと覗いてみます!

No.10366 2023/02/10(Fri) 11:48:05
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:109.0) Gecko/20100101 Firefox/109.0