2011年8月アーカイブ

すいません。あちこちでみなさんがんばっていらっしゃいます。
私も皆さんのブログを見させて頂いており勉強させていただいております。
ただ皆さんちょっと難しく考えすぎているような気もします。
もっとベタにif文いっぱい書いて、ちょっと条件変わったら動かない。
そんなのでいいですよ。練習なので。

●課題1 テキストフレームのプロパティセット
・テキストフレームの中のテキストを上下センターにする

これはさほど難しくないと思うのですが、複数行あったらどうするかとか
悩まれている方がいらっしゃいますよね、最初の1行だけでかまいません。
もし複数行きたかったらparagraphの数を調べて、くり返し処理させると良いでしょう。

●課題2 場所の移動
・1つのテキストフレームを右へ10mm移動
・2つのテキストフレームの間隔を3mmにする。
こちらもさほど難しくないですよね。
visibleBoundsでオブジェクトの領域を調べることができます。
「間隔を3mmにする」はそういうコマンドがあるのですが
今後、オブジェクトを自由自在にコントロールしたい場合は1つずつ座標を取り出してどっちが右かとか調べながらやってもらっても良いかと。

●課題3 テキスト処理1
・テキストフレーム内の文字「楽しく」にルビをふる
こちら意外と難しいですね。課題を出した時点では正規表現とかは考えていませんでした。。。すいません。
汎用性を考えずに楽しくだけにルビを振れば良いので
最初から総当たりで文字をひろっていっていいですよ。
まぁこんな感じで。

var mytf = app.activeDocument.selection[0]; 
for (var i=0; i<mytf.characters.length; i++) {
//ここに処理
}

あと、InDesignではなくJavaScriptにもindexOfという関数があるのです。
検索対象.indexOf('検索ワード',検索位置);
で最初に見つかった文字の位置が返ってきます。
下みたいな感じです。これをつかって繰り返してもいいと思います。

var mytf = app.activeDocument.selection[0]; 
var mytf_contents = mytf.contents;
var findpos = mytf_contents.indexOf('楽しく',0);

もちろんInDesignの正規表現検索をJavaScriptでコントロールしてもらってもOKです。
ただ、ちょっと難しいと思うんですが大丈夫でしょうか?

●課題4 テキスト処理2
・テキストの中の値段をすべて10円アップする。
「バナナ120円りんご100円もも1,000円」
こちらもヒントの古旗さんのところにあるのをいじれば出来ると思うのですが
ルビのときのように総当たりでも良いです。

例えば下みたいな方法。1文字づつひっぱりだして、それが1234567890,のいずれかなら数字。円が来たら数字終わり。で数字は別の変数に入れておくとか。

var mytf = app.activeDocument.selection[0];
var nedan_flg = false;
for (var i=0; i<mytf.characters.length; i++) {
	if(mytf.characters[i].contents == "1"){
		nedan_flg = true;
	}else if(mytf.characters[i].contents == "2"){
		nedan_flg = true;
	}else if(mytf.characters[i].contents == "3"){
		nedan_flg = true;
	}else if(mytf.characters[i].contents == "2"){
		nedan_flg = true;
	}//以下続く。。。
}

値をInDesignにセットするときも意外に難しいかも、もし予想したよりたくさん文字が入ったりしたら、その文字は消せば良いのです。

そしてチャレンジ課題のヒントとさらにチャレンジ課題です。

InDesignをJavaScriptでコントロールする
●お題1 テキストフレームのプロパティセット
・ページすべてのテキストフレームの中のテキストを上下センターにする
ヒント:
lengthとforを使う
alert(app.activeDocument.textFrames.length);
・選択テキストフレーム「全て」の中のテキストを上下センターにする
ヒント:
selectionを使う
alert(app.activeDocument.selection.length);

●お題2 場所の移動
・4つのテキストフレームの間隔を3mmにする。
ヒント:
ここがそのものずばりか?http://d.hatena.ne.jp/oimoh/20100507/1273203847
document直下のdistributeというメソッドを使うみたい。

●お題3 テキスト処理1
・「InDesignのスクリプト作成方法を楽しく学ぶ。」にルビをふる
作成方法と楽しくと学ぶにルビを振ります。こちらは汎用性を考えないとだめですね。
あと、「楽しく」や「学ぶ」の漢字部分だけにルビを振るのです。ちょっと難しいですよね。
僕も初心者でもなんとか理解できるようなのを考えてみます。

9月17日(土)DTPの勉強会 特別編・第2回に出させて頂いているお題のヒントです。
またすでにお題を解かれた方にはチェレンジ課題も入れております。

[内容]
DTP作業でスクリプトを利用するメリットやその効果は多くの方が紹介されています。
しかし自分でスクリプトを作ろうとすると敷居が高く、挫折した方も多いのではないでしょうか?

そこで今回はInDesignでJavaScriptを利用するためのスクリプト入門として、
簡単なスクリプトの作り方とカスタマイズ方法、スクリプトを作成するアプローチ
(考え方やDOMの読み方など)についてご説明いただきます。

なお、今回は課題を出させていただきますので、
開催日までに実際にスクリプトを作成してみてください。
当日はお題の答えとカスタマイズ方法の解説をメインに進行します。
お題は作成できなくても結構ですが、「どこでつまずいたか」「何がわからなかったか」を
ご自分で把握してご参加ください。

●課題1 テキストフレームのプロパティセット
・テキストフレームの中のテキストを上下センターにする
ヒント:
参考サイト古旗さんのOpenSpace http://www.openspc2.org/
ExtendScriptToolKitのヘルプからオブジェクトモデルビューアを選び
TextFramesを調べる

●課題2 場所の移動
・1つのテキストフレームを右へ10mm移動
ヒント:
alert(app.selection[0].geometricBounds);//Y1,X1,Y2,X2
参考http://www.adg7.com/takenote_b/2010/07/20-2.html
・2つのテキストフレームの間隔を3mmにする。
ヒント:
参考http://www.adg7.com/takenote_b/2009/03/post-22.html
●課題3 テキスト処理1
・テキストフレーム内の文字「楽しく」にルビをふる
ヒント:
参考サイト古旗さんのOpenSpaceテキスト(文字)関連 http://www.openspc2.org/
・「作成方法」にルビをふる(グループルビ)
上と同じ
●課題4 テキスト処理2
・テキストの中の値段をすべて10円アップする。
「バナナ120円りんご100円もも1,000円」
ヒント:
参考サイト古旗さんのOpenSpaceテキスト(文字)関連
http://www.openspc2.org/
あとここもhttp://www.adg7.com/takenote_b/2010/05/10-1.html


あと、対象となるオブジェクトは
app.selection[0]
で選択されたオブジェクトが取れます。


あと、すでに課題が出来ている方にはチェレンジ課題があります。

InDesignをJavaScriptでコントロールする
●お題1 テキストフレームのプロパティセット
・ページすべてのテキストフレームの中のテキストを上下センターにする

●お題2 場所の移動
・選択された2つのテキストフレームの間隔を3mmにする。

●お題3 テキスト処理1
・「InDesignのスクリプト作成方法を楽しく学ぶ。」にルビをふる

おかげさまで15周年。

| コメント(0) | トラックバック(0)

01.jpg

02.jpg

せうぞーさんのブログを見て僕も書かなきゃというわけで。。。)

たけうちとおるのホームページ単福がオープンしてからもう15年です。
現在も本体サイトとしてほとんどアクセスがないものの健在中。

ネーミングの由来は当時大好きだった三国志に出てくる徐庶が横山光輝マンガで名乗っていた「単福」。そのほか当時作っていたDTP関連のソフトの名前は全部三国志がらみ。

15年前はまだまだNiftyのパソコン通信全盛でしたが、どういうわけか海外の方が私の作ったソフトを知ってくれてNiftyからメッセージをいただきました。当時はemailなど持っていないのが普通だったので、海外の人とやり取りするのは不便でした。そんな理由で僕もホームページを持って海外の人ともやりとりできればなぁと思い作ったのでした。
市川せうぞーさんがホームページShow Time +oneを作った事にも影響されました。(相互リンクしたりね。)どこのプロバイダがいいかとか良くわからなかったのでASAHI-NETはいいらしいとか、せうぞーさんをはじめ当時のNifty仲間と相談しつつやっていたように思います。
当時はNetScapeでホームページが作れたので、まずはざっくり作ってテキストエディタで編集していたように思います。モデムも14400bpsとか28800bpsとかの時代。
そしてハイパーカードで作ってアプリ化したソフトを出していました。(購入して頂いた皆さんありがとうございました。)

15年も前というとコンピュータの世界では、今とは全然違って遅かったから工夫できたし、不便で難しかったから楽しかったように思います。
はじめてモデムを買ってきて電話につないでパソコン通信した時は(Mac通信幕の内!)どきどきして、気がつけば徹夜してたり。Niftyのフォーラムでは和田さんにお世話になったり、MdNやMacPower、MacLIFEに掲載して頂いたり、せうぞーさんが自宅サーバ(テレホサーバ?)を作って京都からアクセスすると東京のアクセスランプが「チカチカしてるぜ」「すげーーーー」など夢のような楽しい事をやってきました。

僕はというと結婚したり子供が出来たり転職したりフリーになったりといろいろあって、社内向けのソフトはあいかわらず作っていたもののネットでの発信はしていなかった時期もありました。(しばらくなりをひそめていた)
その間にすっかり取り残されてしまった感があったのですが、名古屋のDTP勉強会にせうぞーさんやYujiさんからのお声がけがあり、大阪DTP勉強会も発足。そして東京でもDTP勉強会となんだかいろいろと楽しい事になってきています。

もともと熱中しやすいので、本サイトの更新をさぼっていたと思えば、他の事をどんどんやっていたりしています。最近は自動車ランニングコストの充実。(いまはiPhoneのWebアプリに夢中。)
まだまだ若輩者ですがマイペースで20周年をめざしてやって行きますので、おつきあい下さいませ。

カテゴリ

OpenID対応しています OpenIDについて
Powered by Movable Type 6.0.3
印刷会社、大阪の遊文舎