[ 掲示板に戻る ]

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

EventListenerのExportでファイル種別限定できますか? / snl
お世話になっております

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

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

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

なにか方法はありますか?

No.9534 2018/10/24(Wed) 23:28:28
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0

Re: EventListenerのExportでファイル種別限定できますか? / あるふぁ
ハンドラ関数にわたされるイベントオブジェクトがいくつか役立つ情報を持ってたりします。

#targetengine "session"
app.addEventListener("beforeExport",function(ev){
alert(decodeURI(ev.fullName)+"\n"+ev.format);
})

No.9535 2018/10/25(Thu) 14:10:30
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0

Re: EventListenerのExportでファイル種別限定できますか? / snl
解決しました。
全く知らなかったので他のスクリプトにも使えそうです。
ありがとうございました。

No.9537 2018/10/25(Thu) 19:10:15
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0

Re: EventListenerのExportでファイル種別限定できますか? / Uske_S URL
sniさん、こんばんは。
もうあるふぁさんの解答で解決されていらっしゃるとは思うのですが、他にもInDesignのメニューアクションを見張る方法もあります。
メニューアクションとはInDesignの各メニューのことで、今回でいえば「書き出し」コマンドのことです。
このアクションが実行されたら(beforeInvoke / afterInvoke)、というEventListenerを仕込むことが可能です。

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

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

myFuncのところに適当な関数を渡してみてください。
書き出しコマンドを監視しているので、
それを実行する前にmyFunc関数の内容が実行されるはずです。

No.9538 2018/10/25(Thu) 21:38:06
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36

Re: EventListenerのExportでファイル種別限定できますか? / snl
ありがとうございます。
なにかいい方法がないか調べていて、shock the siteさんのところのスクリプトでbeforeInvokeを使っていたので、
それが使えないか調べてみましたが、結局わからなくて諦めてました。
というか、itemByNameでわたす引数がなんなのかがわからないというか・・・
いずれ似たような機会があれば試してみます。
ありがとうございました。

No.9539 2018/10/26(Fri) 00:11:06
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0