忍者ブログ

ぼんぷろぐ

InDesign、イラレ、フォトショ(CS6 Win)の勉強中。。。(旧まとめいみブログ)

[InDesign]
いつも「現在のページ」を印刷するスクリプト

来週発売のUDF ポコニャンが可愛いすぎる
買います。ピー助もついでに。
それはさておき、
こないだの「現在のページ」を印刷するスクリプトは、スクリプトを実行したらプリントダイアログが出るタイプで、ショートカットキーに登録して呼び出すことを想定してたんですが、

これを使ってると「現在のページ番号を入力する」という習慣がなくなることにより、
うっかり普通に印刷しちゃって全ページ出てきてあわてふためく」という事態がむしろ増加する可能性が高いことに(身をもって)気づいた。

てことで今回のはファイルメニューのプリント(もしくは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

コメント

お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード Vodafone絵文字 i-mode絵文字 Ezweb絵文字

プロフィール

あるふぁ(仮)
InDesignで新聞組版のようなことをしてる人です。

InDesignスクリプトについて

つくったInDesignスクリプトのまとめ

twitter

フリーエリア