InDesignでJavaScriptその4。
任意の場所にガイドラインを引くJavaScript。
ダイアログに数値を入力し縦か横かを選択すると、その場所にガイドが引けます。
Quarkと違ってInDesignはガイドを吸着することができるので使用頻度は低いと思うけど、いちいちガイドを吸着させたり、ロックを解除して数値を入力したりを面倒だと考えるので、作ったみた。
/*
★任意の場所にguide.jsx★
☆ver.1.0☆
Copyright [偽善者こうちゃん]
[2006.10.30] {
ver.1.0作成
}
任意の場所にguideを引くためのJavaScript。
勉強用に作ったのでサンプルとして使わないほうが…。
なお、このJavaScriptを使用して損害をこうむっても
私は知りませんので、あしからず。
偽善者こうちゃん
http://macneko.blog77.fc2.com/
*/
//ドキュメントを開いているかチェック
if (app.documents.length != 0) {
//開いていたら
guidelineAdd();
} else {
//開いていなかったら
alert("ドキュメントを開いてから実行してください");
}
function guidelineAdd() {
//変数に代入
var docObj = app.activeDocument;
// ダイアログの土台の生成とタイトル名の付与
var myDialog = app.dialogs.add({name:"ガイド作成設定"});
// 生成したダイアログの中身を構築
with (myDialog) {
with(dialogColumns.add()) {
staticTexts.add({staticLabel : "ガイドを引く座標:"});
}
with(dialogColumns.add()) {
//座標値地を入力するフィールドの作成
var zahyo = realEditboxes.add({editValue :10, minWidth : 180});
}
with(dialogColumns.add()) {
with(dialogRows.add()) {
//ガイドを引く場所をラジオボタンで設定するためにラジオボタンを作成
var MyguideGroups = radiobuttonGroups.add();
with (MyguideGroups) {
//ガイドを引く場所をラジオボタンで設定する
var verticalG= radiobuttonControls.add({staticLabel:"縦"});
var horizonG = radiobuttonControls.add({staticLabel:"横"});
}
}
}
}
//ダイアログを表示
if (myDialog.show() == true) {
var Gzahyo = zahyo.editValue;
switch(MyguideGroups.selectedButton) {
//選択したボタンにあわせてキーワードを代入
//switchは「●●の場合△△する」という使い方ができる
case 0 : var GuideAline = "verticalG"; break ;
case 1 : var GuideAline = "horizonG"; break ;
default : break ;
}
with(docObj.pages.item(0)){ //
switch(GuideAline) {
case "verticalG" :
guides.add(undefined,{orientation:HorizontalOrVertical.vertical,location:Gzahyo});
break ;
case "horizonG" :
guides.add(undefined,{orientation:HorizontalOrVertical.horizontal,location:Gzahyo});
break ;
default : break ;
}
}
}
myDialog.destroy();
}