主にInDesignによる新聞組版Tips中心です。Mac使いですが業務はWin多め。Win DTP Tipsを増やしたい

【InDesign】【スクリプト】プリント・PDF書き出し後、ページ設定&部数&見開き指定&ページ情報を初期値にリセット

2023.12.11 if「Bookがない時」とかアホな書き方してました、しーません←
2023.6.16 17:30更新〈続報〉どうやらハンドラエラーが出るのは、afterExport, beforeExportとテキストコピー(書き出し)に付随する仕様(バグ?)の模様(あるふぁ(仮)様談)


前項の後、「そうかPDF書き出しもあると便利だな」と気付きまして。

ついでに自分が引っ掛かりやすい設定(見開き指定&ページ情報)を追加しました。

「見開き」指定はまあ、アイコンを見れば分かるっちゃ分かるんですが一応。

PDF「ページ情報」は、ダブルトンボ内に出力されるので運用上問題はありませんが、PDF Merge(差分チェック)の際に邪魔なのですよ。

「印刷可能領域を含む」、これはドキュメントに埋め込みたい時とそうでない時とあり微妙なため、先頭に//を付けて一旦保留状態になっています。


プリント版

2023.6.9更新 諸事情によりプリントとPDF書き出しは分けて作成。

ブック書き出し時「このイベントハンドラーを無効にしますか?」メッセージが出たら、「いいえ」でそのまま進んで下さい。但しその際スクリプト内容は実行されません。つまりブックは非対応。

//DESCRIPTION:プリント後に部数・ページ数・見開き・Page情報をリセット(らーで閣下)

#targetengine "EventListener_afterPrint_2023"

(function(){
app.addEventListener("afterPrint", function(){
    var myDoc = app.activeDocument;
    if(myDoc == null)
    { return; }
    else
    {
        myDoc.printPreferences.copies = 1; //部数 1
        myDoc.printPreferences.printSpreads = false; //見開き OFF
        //myDoc.printPreferences.pageInformationMarks = false; //ページ情報 OFF
        //myDoc.printPreferences.includeSlugToPrint = false; //印刷可能領域を含む OFF
        }
    if(myDoc !== null)
    {
        myDoc.printPreferences.pageRange = 1886547553; //出力ページ ALL_PAGES
        }
    }); // イベントハンドラ終了
})();

PDF書き出し

PDF版には一部問題があるため、プリント版と別にしました

2023.6.26 13:50更新 テキストコピー実行時にafterExport, beforeExportが実行されるInDesign ESTK仕様上の問題?のため、PDF版は運用するとハンドラエラーが出ます

書き出しや出力全く関係ない時

これが出た場合、「いいえ」を選んで取り敢えず進んでも運用上問題はありませんが、スクリプトの内容は実行されません。またページ数多めのブックで実行時は、応答が帰らず固まってしまう場合があります。

//DESCRIPTION:PDF書き出し後に部数・ページ数・見開き・Page情報をリセット(らーで閣下)

#targetengine "EventListener_afterExport_2023"

// PDF書き出し//////////////////////////////////////////////
(function(){
    app.addEventListener("afterExport", function(){
    if(app.activeDocument == null)
    { return; }
    else
    {
        app.pdfExportPreferences.exportReaderSpreads = false; //見開き OFF
        app.pdfExportPreferences.pageInformationMarks = false; //ページ情報 OFF
        //app.pdfExportPreferences.includeSlugToPrint = false; //印刷可能領域を含む OFF  
        app.pdfExportPreferences.pageRange = 1886547553; //出力ページ ALL_PAGES
        }
    }); // イベントハンドラ終了
})();

/*
ALL_PAGES   1886547553(全ページ)
SELECTED_ITEMS  1886547571(現在のページ)
PageRange,(文字列値)
*/

このハンドラエラーを回避するにはmenuActionからのinvokeに書き換える必要があるそうですが、また後日に。try catchが上手く書けんかった← ブック対応はどう書けばいいんでしょうね。


前項同様、複数バージョン同時起動時に対象が混同するのを防ぐため、#target名後ろの西暦数字(2023)をInDesignバージョン毎に変えてあげて下さい。

他に追加したい設定がある方は、こちらお~まち大先生のMODEL図から「PrintPreference」「PDFExportPreference」で拾っておくんなまし。

お~まち先生に足を向けて寝られません