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

【InDesign】条件テキストで文字校正 2/2(ブックのインジケーターを一括変更)

1/2より続き。(2023.12.30 スクリプト内confirm文章を、意味が通じやすいように修正)



前項で、条件テキストの使い方と実行スクリプトを説明しました。

この条件テキストとインジケーターを変更する事で、後からちまちまちまちまAcrobatでハイライトと注釈を書き込んだり(※ツラい)、そもPDF注釈機能など見てもらえない層の方々(涙)への質問事項などを、データに変更を与えず安全に可視化させる事ができるわけですが、

インジケーターの変更
「表示と印刷」にすると、PDFにも反映されます

インジケーター変更が、ドキュメントの「別名で保存」でないと更新されないことは前項に書きましたが、これがブックだった場合。

ドキュメントが数十統合されたブック

ひとつひとつ開いて全て別名保存。つらいしバカバカしい。

同期オプションの「条件テキスト設定」を実行してみましたが、

インジケーターはこの「条件テキスト設定」に含まれません。(なんでや)

ということで、えっちらスクリプトを書いてみました。



フォルダ内inddドキュメントのインジケーターを一括変更

//DESCRIPTION:条件テキストインジケーターを変更+上書き保存(らーで閣下)

(function(){
    flagA=confirm("次で指定するフォルダー内全ての*.inddに対して実行します。\rWinの場合ネットワーク内の通信が重くなるため、予め対象フォルダーをShift+→クリック→「パスのコピー」を取ってから実行して下さい。\r\r実行しますか?")
    if(flagA == false)
    {
        alert("終了します");
        exit();
        }
    else
    {
        var folderObj = Folder.selectDialog ("処理するInDesignファイルのあるフォルダを選択");
        if (! folderObj)
        { alert ("キャンセルが押されました。終了します"); exit(); }
        else
        {
            makeList (folderObj); // Dialog pathに対して、下の関数を実行
            function makeList (folderObj) // inddファイルを求める関数
            {
                // ファイルとフォルダを取得
                var fileList = folderObj.getFiles ("*.indd");
                var array = [];
                for (i=0; i<fileList.length; i++)
                // Windowsから見えるAppleDouble(._xxxx.indd)を除外
                if (fileList[i].name.match ("^[^\.]"))
                {
                    array.push(fileList[i]);
                    var arrayFile = app.open(array);

        /////////////////ここに処理を書く/////////////////////////
        app.activeDocument.conditionalTextPreferences.showConditionIndicators = ConditionIndicatorMode.HIDE_INDICATORS;
        /*
        HIDE_INDICATORS 1698908520 (隠す)
        SHOW_AND_PRINT_INDICATORS   1698908528 (表示と印刷)
        SHOW_INDICATORS 1698908531 (表示のみ)
        */
        /////////////////////////////////////////////////////////////

                    for (j=arrayFile.length-1; j>=0; j--)
                    {
                        var arrayFilePath = arrayFile[j].fullName;
                        var saveINDD = new File (arrayFilePath) ;
                        arrayFile[j].save(saveINDD);
                        arrayFile[j].close(SaveOptions.no);
                        }
                    }
                }

            }
        })();

※不可視ファイル(AppleDouble)除外版に差し替えました(2020.6.17)


単純なものしか書けませんごめんなさい

これだと別名保存と同じ意味合いになり、インジケーター変更も更新されます。

適用したくないドキュメントは、別フォルダを作り一時退避させて下さい。(子フォルダ内は処理しません)


フォルダ内の一括処理、また再帰処理などのテンプレには、いつもこちらを参考にしています。

rokuyan.hatenablog.com

tu-kazu.jp http://nakatoji.lolipop.jp/index.php/extendscript/js-gen/jslist/9-2014-05-09-04-06-48nakatoji.lolipop.jp

下記のは、1年前の私には紐解くに能力不足だった・・・・

uske-s.hatenablog.com

cs5.xyz

今ならもう少し理解できそう。

 

追記:

鯵ぼんさんが、「ブックのドキュメントからパスを取得する」という指定にしたら再帰処理要らないやろ、とアドバイスを!

さあ、続きを待て!←

 

-----------翌日談------------

鯵ぼんさん、Uskeさんのお叱りを受けながら()頑張ってみました。

ブックコンテンツの条件テキスト・インジケーターを一括変更

//DESCRIPTION:Bookの条件テキストインジケーターを変更(らーで閣下)

    (function(){
    flagA = confirm ("activeBookが対象です。「1つだけ」開いていますか?");
    if (flagA == false)
    {
        alert("対象ブックを開いてからやり直して下さい。\r\r【終了】");
        exit();
        }
    else
    {
        var myBook = app.activeBook;
        var myBookContents = myBook.bookContents;
        for (i=0; i<myBookContents.length; i++)
        {
            var fileObjPath = myBookContents[i].fullName;
            app.open(File(fileObjPath));
            var myDoc = app.activeDocument;
            myDoc.conditionalTextPreferences.showConditionIndicators = ConditionIndicatorMode.SHOW_INDICATORS;
            /*
                HIDE_INDICATORS 1698908520 (隠す)
                SHOW_AND_PRINT_INDICATORS   1698908528 (表示と印刷)
                SHOW_INDICATORS 1698908531 (表示のみ)
                */
            var saveINDD = new File(fileObjPath) ;
            myDoc.save(saveINDD);
            myDoc.close(SaveOptions.no);
            }
        }

    })();

 

これなら不可視ファイルも、ブック対象外inddも拾わずに済みますね。

毎度至らない永遠の末弟子(ぇ?)ですが、いつもいつもありがとうございます!!

試行錯誤しながらのエントリーだったので、散漫になってしまいましたね。(反省)

※エラー処理を追加しました
※細かい記述ミスを修正しました(ごべんなさい)
※不可視ファイルについて文章と記述を修正しました
※(2023.12.1)最初のconfirm文章を直しました

不可視ファイルについては、そのうち別に纏めたいと思っています。