090725DTP勉強会名古屋予習

| コメント(0)

もう明日の話なのですが

市川せうぞーさんの名もないテクノ手の
せうぞーさんの「セル内のオーバーフローを解消するスクリプト」
http://d.hatena.ne.jp/seuzo/20080923/1222106561
の解説と。それをカスタマイズして
「セル内で1行に収まっていない段落を解消するスクリプト」にする方法

var sel = app.activeDocument.selection[0];
for (var i = 0; i < sel.cells.length; i++) {
	var txtObj = sel.cells[i];
	var danraku = txtObj.paragraphs[-1];
	var gyou = txtObj.lines[-1];
	for (var w=danraku.horizontalScale; w >= 10; w--){
		txtObj.recompose();//★ここ
		var danraku_str = danraku.contents;
		var gyou_str = gyou.contents;
		if (danraku_str == gyou_str) {break}
		danraku.horizontalScale = w;
	}
}

さらにエラー処理を加えるというお話をします。ぎりぎりで申し訳ないのですが
予習していただければ、さらに分かりやすいかもしれません。
もちろん予習なしで大丈夫です。

//エラー処理
//ダイアログ表示のおまじない
app.scriptPreferences.userInteractionLevel=1699311169;

main();

function main(){
	if (app.documents.length == 0){
		alert("ドキュメントを開いてください");
		return;
	}
	if (app.selection.length == 0){
		alert("セルを選択してください");
		return;
	}
	myDocu = app.activeDocument;
	mySele = myDocu.selection;
	for(var s = 0; s<app.selection.length; s++){
		table_choutai(app.selection[s]);
	}
}

function table_choutai(myObj){
	var seltype = myObj.constructor.name
	if(seltype == "Cell"){
		table_choutai2(myObj);
	}
}

//ここから下が市川せうぞーさんの名もないテクノ手を参考にしています。
function table_choutai2(myObj){
	for (var i = 0; i < myObj.cells.length; i++) {
	var txtObj = myObj.cells[i];
	var danraku = txtObj.paragraphs[-1];
	var gyou = txtObj.lines[-1];
	for (var w=danraku.horizontalScale; w >= 10; w--){
		txtObj.recompose();//★ここ
		var danraku_str = danraku.contents;
		var gyou_str = gyou.contents;
		if (danraku_str == gyou_str) {break}
			danraku.horizontalScale = w;
		}	
	}
}
Comments are nofollow setting

コメントする

エントリー一覧

OpenID対応しています OpenIDについて
Powered by Movable Type 8.0.2
漢字イラストロジック-脳トレ京
FREE ONLINE SUDOKU