メモ:InDesign自動組版では「スマートテキストのリフロー処理」をオフに

自動組版案件でやらかしたのでメモ。

どのバージョンからか分かりませんが、InDesignの「スマートテキストのリフロー処理」はバックグラウンドプロセスになっています。これが自動組版と非常に相性が悪い。1ページを超える長文テキストを流し込んだ後、何か処理をしようとすると、ページ追加処理がバックグラウンドで進行、そのため数十分間オーバーフローが解消されず、無駄な待ち時間が発生してしまいます。

対処法としては「流し込み後すぐに保存する」ことで、バックグラウンド処理させずに進めることが分かっていますが、置換処理の場合はこの手も使えないということになります。

で、結論として標題の結果となったわけです。幸いなことに「スマートテキストのリフロー処理」はドキュメントごとの設定になるので、テンプレートファイルで設定しておけば特にスクリプト中に記述する必要はないということですね。

その代わりにページの追加・削除はスクリプトで実装することになります。以下のスクリプトは自分メモ。

txf = doc.pages[-1].textFrames[0];
//あふれている場合ページを追加
while (txf.overflows) {
    doc.pages.add(LocationOptions.AT_END);
    txf.nextTextFrame = doc.pages[-1].textFrames[0];
    txf = txf.nextTextFrame;
}
//空白ページがあれば削除
while (txf.contents == "") {
    txf = txf.previousTextFrame;
    doc.pages[-1].remove();
}