こないだの
「現在のページ」を印刷するスクリプトは、スクリプトを実行したらプリントダイアログが出るタイプで、ショートカットキーに登録して呼び出すことを想定してたんですが、
これを使ってると「現在のページ番号を入力する」という習慣がなくなることにより、
「
うっかり普通に印刷しちゃって全ページ出てきてあわてふためく」という事態がむしろ増加する可能性が高いことに(
身をもって)気づいた。
てことで今回のはファイルメニューのプリント(もしくはCtrl+P)でふつーに印刷するとき、常に印刷範囲が現在表示中のページになるスクリプトです。Startup Scriptsフォルダに放りこんで使います。
つっても、現在のページだけを印刷したいドキュメントもあれば、そうでないドキュメントもあるので、
ドキュメントのフルパス(Windowsでは C:\あああ\あいう.indd って形式)を正規表現でマッチングして、マッチした場合だけ有効にするという仕組みにしています。
9行目の「/」で囲まれてる部分を適当に書き換えて使います。
たとえば「りほりほ」フォルダ内のドキュメントだけ有効にするなら
var myRegExp=/\\りほりほ\\/;
とか
ホントにいつでも有効にしたいなら
var myRegExp=/./;
とか。
以下ソース
//(14.09.02 マスターページを開いてたらエラーが出てたのを修正)
#target "InDesign"
#targetengine "session"
AddEL(app,'afterOpen',DocuGenzainoPage,"GenzainoPageAfterOpen");
AddEL(app,'afterNew',DocuGenzainoPage,"GenzainoPageAfterNew");
function DocuGenzainoPage(ev){
var Docu=ev.target;
if (Docu.constructor.name!="Document") return;
var DocuName=(Docu.saved?Docu.fullName.fsName:Docu.name);
var myRegExp=/./;//ドキュメントのフルパス(Windowsでは C:\あああ\あいう.indd って形式)からマッチさせる正規表現
if (DocuName.match(myRegExp)!=null) AddEL(Docu,'beforePrint',GenzainoPage,"GenzainoPage");
}
function GenzainoPage(ev){
var Docu=ev.target;
var PageNum=Docu.layoutWindows[0].activePage.name;
if (isNaN(PageNum)) return;
Docu.printPreferences.pageRange=""+PageNum;
}
function AddEL(Obj,EventType,Handler,Name){//イベントリスナーを、同じ名前のがあったら消してから追加する
if (Obj.eventListeners.item(Name).isValid) {
Obj.eventListeners.item(Name).remove();
}
var EL=Obj.addEventListener(EventType,Handler);
EL.name=Name;
}
PR