EventListenerのExportでファイル種別限定できますか?

[9534]EventListenerのExportでファイル種別限定できますか? 投稿者:snl 投稿日:2018/10/24 23:28:28
お世話になっております

スクリプトに関しての質問です。

PDFを書き出す時に、自動でドキュメントを検査するスクリプトを作っています。
検査する処理に関しては作ったのでいいですが、
PDFを書き出す時に自動で走らせる」
という部分で悩んでいます。

一応、〜〜addEventListener("beforeExport"〜〜
で書き出し時に処理する記述はできましたが、
PDF以外の書き出しにも、その処理がかかってしまうため、
これをPDFの書き出し限定にしたいのです。

なにか方法はありますか?
[9535]Re: EventListenerのExportでファイル種別限定できますか? 投稿者:あるふぁ 投稿日:2018/10/25 14:10:30
ハンドラ関数にわたされるイベントオブジェクトがいくつか役立つ情報を持ってたりします。

#targetengine "session"
app.addEventListener("beforeExport",function(ev){
alert(decodeURI(ev.fullName)+"\n"+ev.format);
})
解決しました。
全く知らなかったので他のスクリプトにも使えそうです。
ありがとうございました。
sniさん、こんばんは。
もうあるふぁさんの解答で解決されていらっしゃるとは思うのですが、他にもInDesignのメニューアクションを見張る方法もあります。
メニューアクションとはInDesignの各メニューのことで、今回でいえば「書き出し」コマンドのことです。
このアクションが実行されたら(beforeInvoke / afterInvoke)、というEventListenerを仕込むことが可能です。

また、beforeInvokeはメニューアクション実行前に動作するので、
処理によっては以降のメニューアクションをキャンセルしたりすることもできます。

app.menuActions.itemByName ("$ID/Export...").addEventListener ("beforeInvoke", myFunc);

myFuncのところに適当な関数を渡してみてください。
書き出しコマンドを監視しているので、
それを実行する前にmyFunc関数の内容が実行されるはずです。
ありがとうございます。
なにかいい方法がないか調べていて、shock the siteさんのところのスクリプトでbeforeInvokeを使っていたので、
それが使えないか調べてみましたが、結局わからなくて諦めてました。
というか、itemByNameでわたす引数がなんなのかがわからないというか・・・
いずれ似たような機会があれば試してみます。
ありがとうございました。
この記事の書き込み元へのリンク (コメントや質問などはこちらへどうぞ)

このページをシェア