[ 掲示板に戻る ]

記事No.5985に関するスレッドです

セル幅を内容に合わせる / がちゃぴん
Mac OS10.5.8 CS3です。

「フレームを内容に合わせる」のように、
表のセル幅も内容に合わせることは可能でしょうか?

カタログ等のスペックを作成しているのですが、
「それぞれの項目のアキを2mmにする」
という指示が来てしまいました。
添付した画像は試しに使うであろう項目を作ってみたものです。
(実際は一つの表にここまで入りませんが)
セルの左右のインデントを1mmずつ入れて2mmアキになるようにしてあります。
今回、スペックの内容もバラバラなのでどうしても可変になってしまいます。

No.5985 2011/08/04(Thu) 16:56:06
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; ja-jp) AppleWebKit/533.21.1 (KHTML, like Gecko) Version/5.0.5 Safari/533.21.1

Re: セル幅を内容に合わせる / mg
そもそも、その指示自体に疑問も残るのですが
やろうとしてる事自体は下記のコードで出来るとおもいます

var sel = app.selection[0];
if (sel.hasOwnProperty('cells')) {
// selection 選択した列のみに適用
main(sel, 2);
};

function main (sel, margin) {
var col = sel.columns;
for (var i=0, iL=col.length; i < iL ; i++) {
var cel = col[i].cells;
var ar = [];
for (var j=0, jL=cel.length; j < jL ; j++) {
var os_start = cel[j].lines[0].insertionPoints[0].horizontalOffset;
var os_end = cel[j].lines[0].insertionPoints[-1].horizontalOffset;
ar.push(os_end - os_start);
};
col[i].rightInset = col[i].leftInset = margin * 0.5;
var padding = col[i].rightInset + col[i].leftInset;
var line_weight = col[i].rightEdgeStrokeWeight * 0.5 + col[i].leftEdgeStrokeWeight * 0.5;
col[i].width = ar.sort(function(a,b){return b > a})[0] + padding + line_weight;
};
}

No.5989 2011/08/05(Fri) 10:32:01
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.107 Safari/535.1

Re: セル幅を内容に合わせる / がちゃぴん
mg様

どうもありがとうございました!できました!

デザイナーではなく、クライアントの担当者が
色々とこだわっているようでして、
指示書もInDesignで作られていたものが来ました。

私もこんなに細かい指示をもらったのが初めてだったので途方に暮れていました。


本当に助かりました。ありがとうございました。

No.5990 2011/08/05(Fri) 12:24:09
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; ja-jp) AppleWebKit/533.21.1 (KHTML, like Gecko) Version/5.0.5 Safari/533.21.1