クリエイター手抜きプロジェクト[204]InDesign CS/CS2/CS3/CS4編 InDesignのオブジェクト内部を探る/古籏一浩

投稿:  著者:  読了時間:6分(本文:約2,600文字)


InDesign CS2までは、PDFによるJavaScriptリファレンスが付属していましたが、InDesign CS3からは付属しなくなってしまいました。

こうなると、InDesign CS3/CS4でスクリプト(VBScript, JavaScript, Apple Script)制御しようと考えている人は困ってしまいます。

AppleScriptの場合は用語説明が用意されており、スクリプトエディタで開けばリファレンスが表示されます。このリファレンスを参照するのもひとつの方法です。また、CS2ベースのPDFに関しては、以下のURLからダウンロードすることができます。



< http://www.adobe.com/products/indesign/pdfs/InDesign_Scripting_Reference.pdf >

リファレンスに掲載されていないメソッドや、プロパティを調べたいこともあります。JavaScriptの場合、一部の機能に関しては以下のスクリプトで機能やプロパティを知ることができます。

CR = String.fromCharCode(13);
result = "";
docObj = app.activeDocument;
obj = app;
for (i in obj)
{
try {
result = result + "[" + typeof(obj[i])+"] " + i + " = "+new String(obj[i]).substr(0,360)+CR;
}catch(e){}
}
txtObj = docObj.pages[0].textFrames.add();
txtObj.visibleBounds = ["0cm","0cm","29cm","18cm"];
txtObj.contentType = ContentType.textType;
txtObj.contents = result;


このスクリプトは、InDesignで新規に書類を作成した後に実行してください。
指定したオブジェクトの内容がリスト表示されます。実行すると、以下のような感じのテキストがテキストフレーム内に表示されます。


[object] indexGenerationOptions = [object IndexOptions]
[object] allPageItems =
[object] allGraphics =
[object] buttonPreferences = [object ButtonPreference]
[undefined] fullName = undefined
[string] name = 名称未設定-9
[boolean] visible = true
[undefined] filePath = undefined
[boolean] modified = true
[boolean] saved = false
[object] zeroPoint = 0,0
[string] label =


[〜]で囲まれている部分が、対象となるものの種類を示しています。objectであれば、さらに内部にメソッドやプロパティがあるということになります。
stringであれば、プロパティだと思ってよいでしょう。
見たいオブジェクトを指定するには

obj = app;

の行を変更します。例えば一番手前に表示されているドキュメントの場合は、以下のようになります。

obj = app.activeDocument;

1ページ目のページオブジェクトであれば以下のようになります。

obj = app.activeDocument.pages[0];

ただ、この方法でも全てのメソッドを表示できるわけではありません。あと、CS3で追加された機能に関しては、以下にあるJavaScript Tools Guideを参照するとよいでしょう。

< http://www.adobe.com/devnet/bridge/pdfs/javascript_tools_guide_cs3.pdf >

CS4に関しては以下のURLにあります。

< http://www.adobe.com/devnet/scripting/pdfs/javascript_tools_guide_cs4.pdf >

このようなfor..inを使った内部情報のチェックはInDesignだけでなく、Photo shopやAfterEffects、一般的なブラウザやJavaScriptを使って制御できるアプリケーションすべてに有効です。InDesignのように、日本語特有の機能(プロパティ)を見つけたい場合には便利でしょう。


【古籏一浩】openspc@po.shiojiri.ne.jp
< http://www.openspc2.org/ >

組版時間を半減する! InDesign自動処理実例集ということで、自動処理についてもっと知りたい方は「組版時間を半減する─InDesign自動処理実例集」をどうぞ。
< ttp://www.amazon.co.jp/exec/obidos/ASIN/4774136875/dgcrcom-22/ >

・AfterEffectsをスクリプトで制御(とりあえず一区切り)
< http://ae-users.com/jp/ >

・アスキー:「29分でできる! あのサイトの“技”を盗め」第22回、第23回
< http://ascii.jp/elem/000/000/410/410838/ >
< http://ascii.jp/elem/000/000/413/413302/ >

・Adobe AIR例文辞典
< http://www.openspc2.org/reibun/AdobeAIR/1.5/ >

・フルサイズ フリー素材(たくさん追加)
< http://footage2.openspc2.org/sozai/fullsize/ >

・ハイビジョン映像素材
HDD容量の都合で3台のサーバーに分散させました。
< http://www.openspc2.org/HDTV/ >

photo
改訂第4版 JavaScript ポケットリファレンス
古籏 一浩
技術評論社 2006-10-18
おすすめ平均 star
starJavaScriptを使ったプロジェクトのお供に是非
starJavaScript仮免者以上の方へ
starバランスの良いバイブル
star中級者向けです。

[改訂版] PHP ポケットリファレンス (Pocket reference) 改訂第5版 オールカラー  HTML ポケットリファレンス (POCKET REFERENCE) 改訂新版 SQLポケットリファレンス (Pocket reference) [改訂版] VBScriptポケットリファレンス (POCKET REFERENCE) スタイルシート ポケットリファレンス (Pocket reference)

by G-Tools , 2009/05/11