InDesignのドキュメントの再構築、再計算、recompose
InDesign CS6 で作業中、知らない間に中身があるはずのテキストフレームの中身の描画が真っ白になる場合がある。
PDF に書き出しても真っ白なまま。PDF書き出し時にも特にエラーも出ないので、しれっと意図しない空白が紛れ込んだPDFが出来上がる。まずい。
テキストがオーバーフローしているのではなく、真っ白なテキストフレーム内で探り探りテキスト選択等をしてみると、選択等の操作はできてしまう。
該当のテキストフレームをリサイズしたりすると正常に描画される。
(テキストフレームのgeometricBounds
をJavaScriptで変更して戻すなど、何らかの更新作業をさせても可。)
そのようなテキストフレームは表組みなんかが含まれている場合が多い気がする。
目視チェックも現実的ではないので、どうしたものかとググったが、一通り作業した後などに「全ストーリーの再計算(Command + Option + /)」コマンドを実行するのが現実的な作業になるかと思う。 (なお、idml に書き出してまた開くのもそれはそれで有用な方法だろうと思うが、作業上、そこまでの作業をするような段階ではない場合の話)
以下、おかしな動作をする書類を再構築するには(InDesign CS3以降)より引用。
※ちなみにテキストがないドキュメントだと上記コマンドを実行しても何も起こらない模様。(追記:2019-04-16)
ただ、これはこれで意図しないオーバーフローを起こす可能性があるので、「全ストーリーの再計算」後にオーバーフローのチェック、調整の工程を入れる必要がある。
なお、表のセルの意図しないオーバーフローの解消にも有効な模様。というか表周りの処理はバギーなのか。忌まわしき理不尽な赤丸。
AppleScriptで「全ストーリーの再計算」のキーストロークを入力
上記の「Command + Option + / キー」をAppleScriptで入力するサンプルスクリプト。
「全ストーリーの再計算」のメニューアイテムがあればJavaScriptの「menuAction.invoke()」 で実行できそうなものだが、メニューアイテムに存在するかどうかわからない。
--DESCRIPTION:全ストーリーの再計算_全ドキュメント.scpt on run tell application "Adobe InDesign CS6" activate set myDocuments to every document repeat with myDocument in myDocuments set active document to myDocument tell application "System Events" key code 44 using {command down, option down} end tell end repeat end tell end run
JavaScript の recompose
InDesign の JavaScriptのオブジェクトのメソッドにはrecompose
なんてものがあるので、これを使えるんじゃないかと思ったんだけど、どうも、期待したような問題解決には使えない模様。
試してみたrecompose
。これを選択したテキストフレーム、その親ストーリー等に対して実行してみたが特に何も起きなかった。
TextFrame.recompose ()
Document.recompose ()
Story.recompose ()
Table.recompose ()
Cell.recompose ()
「Recompose issue | Adobe Community 」を読むと
It's true that recompose() often doesn't work in a script.
とか書いてあって、テキストフレームのgeometricBounds
を変更して戻すスクリプトが提示されているあたり、JavaScriptのrecompose
にはあまり期待できない模様。