2009年6月アーカイブ

このエントリはセルに絡んだバグ?のおはなしなんだ。いや、仕様ですって言われればそれまでなのだけどね。前回自動的にオーバーセットしたセルの内容を長体をかけて追込む方法をお伝えしたのだけど、ちょいと思い立って選択したセルのオーバーセットをちょこっと長体をかけて追込んじゃうってスクリプトを書いてみたんだ。

オフトピックが連続するけど、こちらも結構有用だと思うので先に書いてしまうね。
前回のエントリではテキストフレームに対する処理だったのだけど、今回はセルに対する処理をやってみようと思うんだ。特にセルが対象の場合だと追込み方はほほ長体のみで完結してしまうのではないかいな、と思うのでこちらの方が実務には役立つかもしれないね。
基本はテキストフレームの時と同じで、手順もそのままで大丈夫。何が違うかと言うと処理対象だけだとwww


今回はテキストフレーム中に表が一つだけ存在するケースを想定してコードを書いてみるんだ。表が含まれるテキストフレームを選択した状態でスクリプトを走らせるんだよ。

まずはこの2行から

slct = app.activeDocument.selection[0];
cellNum = slct.tables[0].cells.length;

slctの中身はtextFramesが入ることになるね。次の行はテキストフレームに含まれるテーブルのセル数を取得しているんだ。前回のテキストフレームの数を調べるのと同様の処理だね。これがループの回数になるわけだね。

for (i=0;i<cellNum;i++){
    flow = slct.tables[0].cells[i].overflows;
    scale = 100;
    if (flow){
        txObj = slct.tables[0].cells[i].characters.everyItem();
        while (flow){
            scale--;
            txObj.horizontalScale = scale;
            flow=slct.tables[0].cells[i].overflows;
            }
        }
    }

ループの方をみてみよう。前回とほぼ同様なのは分かってもらえると思うんだ。違うのは処理対象

    flow = slct.tables[0].cells[i].overflows;

slctはtextFramesなので、「選択したテキストフレームの最初のテーブルのセルのオーバーフロープロパティ」を順番に参照するかたちになるね。
その他は変わらないので解説は割愛するよ。前回のエントリを参照してね。
それから、テキストフレーム内にtableが複数あるケースでは、予めtableの数を調べてループを作って、その中で今回のコードを走らせる形にすれば良いんだ。需要のある人は考えてみてね。

表組にしてもテキストフレームにしても、勝手はみ出てしまうオーバーフローはとっても厄介なんだ。特に高解像度表示で編集作業を行っている場合、オーバーセットの警告マークが表示されないので見逃しがちになって、プリント時にオーバーセットがあるからなんとかしろ!みたいなこと云われて涙目になってしまったよいこが全国で推定120人程度はいると思うんだ。そんな気の弱いおぺ&でざ達のためにオーバーセットテキストをスクリプトで調整しちゃおうみたいなエントリなんだ。

なんだかんだで引き延ばしでいるようだけど、それもこれも、ひとえにわたしの低スペックのなせる技なんだ、すまないwwwだれかCore2Quad提供してくれないだろうか。脳みそせれろんなみなものでwww
このところ、前振りなげぇ〜よなんて思われている様なので早速本題に入る事にするね。今回は要になるルビ振りAPIの利用方法についてなんだ。

朗報です。今回でこのスクリプトは完成となりそうなんだ。ええ、ようやく終了なんだ。そんなに時間はかけてませんが長いですね。もう少し、こう、さらっとスマートに出来ないものかと反省しきりな訳なのだけどね。まあ、今更自分のスタイルは捨てられないwという事なので今回もいってみますね。

とうとう完結編になるのか?の6回目となりました。前回迄で並べるビットデータは得る事が出来ているので、今回のエントリではそのデータを基に描画していくことになるんだ。乱暴にいうとビットの立っている位置にナローバーを並べて行くだけという、いかにも手抜き感満載のエントリであること請け合いなんだwまあ、手抜きLabですからねぇ〜。でも動くから良いよねwww

このアーカイブについて

このページには、2009年6月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2009年5月です。

次のアーカイブは2009年7月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

OpenID対応しています OpenIDについて
Powered by Movable Type 5.12

    follow? twitter...     
    available on exchange