スポンサーサイト

Tags :
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

InDesignの表組を角丸にするJavaScript

ちょっと前になりますけど、『InDesignの表組を角丸にするには?』といった話題をこちらのBBSで見たんですが、InDesignとJavaScriptの組み合わせは経験が無かったので丁度良いネタだと思い練習のつもりで書いてみました。

スクリプトを.jsxファイルとして保存して、InDesignのスクリプトのフォルダ(Macの場合 /Applications/Adobe InDesign CS3/Scripts/Scripts Panel/)に入れてください。

角丸にしたい表組を「1つだけ」選択してスクリプトパレットから実行します。
(複数同時に選択して処理出来るようにすると複雑になりそうな予感がしたので見送りました)

やっている事は、BBSでのやりとりを参考に
・選択された表組をカット
・カットした表組と同じ位置に同じサイズ、同じ線幅とカラーのテキストフレームを作成
・作成したテキストフレームの角を丸める
・テキストフレームに、カットした表組を『選択範囲にペースト』する
となってます。

角丸の半径はデフォルトのままなので適宜変更してください。

■2009-04-23追記
角丸の表組が先頭ページに出来てしまう問題を修正

■動作確認■
MacOSX10.4.11 & InDesign CS3
MacOSX10.3.9 & InDesign CS2
#target InDesign

var sel = app.activeDocument.selection;

if (sel.length == 1) {
    if (sel[0].contentType == 1952412773 && sel[0].tables.length > 0) {
        roundCornerOfTable(sel[0]);
    }
    else {
        alert("選択したオブジェクトに表が含まれていません");
    }
}
else {
    alert("表を1つだけ選択してください");
}

function roundCornerOfTable(tableObj) {
	var p = tableObj.parent;
	var fBounds = tableObj.geometricBounds
    var fColor = tableObj.strokeColor;
    var fWeight = tableObj.strokeWeight;
    app.cut();
    var tf = p.textFrames.add({
		geometricBounds: fBounds,
		contentType: ContentType.textType,
		strokeColor: fColor,
		strokeWeight: fWeight
	});
	if (app.version.charAt(0) > 4) {
        tf.cornerOption = CornerOptions.roundedCorner;//CS3以降のバージョンの処理
    }
    else {
        tf.cornerEffect = CornerEffects.roundedCorner;//CS2以前のバージョンの処理
    }
    tf.select(SelectionOptions.addTo);
    app.pasteInto();
}
関連記事
スポンサーサイト

コメント

非公開コメント

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます

>香川さま。

コメントありがとうございます。
ご指摘の、表組が先頭ページに作成されてしまう件、確認しましたので早速このエントリのコードを修正しておきました。

InDesignのスクリプトを書き始めた頃という事もあって、検証作業がしっかり出来ていない様でした。(今でも割と書きっ放しなのですが…)

今回の修正で一応、選択した表組のあるページ、同じレイヤ上に作成される様にはなっていますが、オブジェクトの重なり順は全く考慮していませんので前面に出て来てしまいます。(このあたりはまた、考えてみたいと思います)
Profile
choco
Author : choco

印刷・製版の現場を経て、広告制作会社でPhotoshopを使ったビジュアル制作を担当。

→現在は車載機器開発ベンダにて、組み込み3Dデータ作成やUIデザインなどを行っています。

Categories
Favorites


Search
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。