Last Update:2005/10/4 PM 5:07

【InDesign CS自動化作戦】

 このページはInDesign CSをJavaScriptによって自動化運用するためのサンプルスクリプトを掲載しています。本当はシリーズ化のような形で書籍として発売されればよかったのですが諸々の都合により企画自体が消滅したため、Webにて公開、掲載しています。
 InDesign CSはJavaScriptのコアオブジェクト、Adobeファイルオブジェクトに関しては他のAdobeソフトと同じです。つまりPhotoshop CS、AfterEffects 6.5、Illustrator CSで作成された一部のコードは、そのまま動かす事ができます。InDesign CS独自部分の機能だけを習得すれば良いと言うメリットもあります。ただし、スクリプト内に日本語を含む場合には注意が必要でUnicode (UCS-2,UTF-16)の文字コードにする必要があります。多く利用されているSHIFT JISやUnicode (UTF-8)では日本語を正しく表示できません。
 このページに掲載されているスクリプトはMacOS X版のInDesign CSを基準にしているためWindows版では異なる動作になる可能性があります。あらかじめ、ご了承ください。
 また、掲載されているスクリプトで不具合がある場合はメール、openspc@po.shiojiri.ne.jpまでお願いします。
 InDesign CS2についてはInDeisgn CS2自動化作戦のページを参照してください。

2005 Copyright 古籏一浩/openspc@po.shiojiri.ne.jp


■準備
 [01]はじめに
 [02]注意事項
 [03]JavaScriptとは?
 [04]アプリケーション/バージョンアップに伴う注意点
 [05]Adobe製品でのJavaScript
 [06]InDesign CSのJavaScriptで、できることと、できないこと
 [07]InDesign CSでのJavaScriptの実行方法
 [08]JavaScript実行時の注意点
 [09]ファイルの指定(パス)について
 [10]InDesignのJavaScriptでプログラムを作成する前に

■InDesignのJavaScript入門
 [01]プログラムとは何?(すぐに始めたい人&面倒な人は読む必要はありません)
 [02]JavaScriptとは? (すぐに始めたい人&面倒な人は読む必要はありません)
 [03]簡単なプログラムでInDesign CSを制御する
 [04]新規にドキュメントを作成する
 [05]文字を表示する
 [06]画像を表示する
 [07]よく使われる省略した書き方

■JavaScriptの基本文法
 [01]行の記述
 [02]数値
 [03]文字列
 [04]変数名
 [05]型変換
 [06]特殊文字
 [07]三項演算子
 [08]代入演算子
 [09]演算子
 [10]比較演算子
 [11]文字列演算子
 [12]優先順位
 [13]オブジェクト
 [14]プロパティ/メソッド
 [15]イベント
 [16]リテラル



■基本編
 [01]注釈(コメント)を入れる
 [02]変数を用意する
 [03]変数に数字や文字を入れる
 [04]配列変数を用意する
 [05]配列変数に数字や文字を入れる
 [06]配列のサイズ(個数)を調べる
 [07]基本的な演算を行う
 [08]高度な演算を行う
 [09]小数点以下の処理を行う
 [10]乱数値を発生させる
 [11]文字列を連結する(文字列の加算)
 [12]文字から数値に変換する
 [13]数値から文字に変換する
 [14]文字列の長さを調べる
 [15]特定の文字列があるかどうか調べる
 [16]文字列を抜き出す
 [17]文字をLatin 1コードに変換する
 [18]英文字を大文字、小文字に変換する
 [19]関数を定義する
 [20]条件判断を行う
 [21]複雑な条件判断を行う
 [22]一定回数繰り返し処理を行う
 [23]条件を満たしている間、繰り返し処理を行う
 [24]値によって分岐させる(switch, case)
 [25]例外処理(エラー処理)を行う
 [26]日付処理を行う
 [27]時間処理を行う
 [28]タイムアウト処理を行う



■初級編
 [01]アラートダイアログを表示する
 [02]確認のダイアログを表示する
 [03]入力ダイアログを表示する
 [04]現在実行しているスクリプトのパスを調べる
 [05]ペーストする
 [06]終了する

□ウィンドウ関連
 [01]ウィンドウ名を調べる
 [02]開かれているウィンドウの枚数を調べる
 [03]特定のウィンドウを最前面に表示する
 [04]特定のウィンドウを最大化する
 [05]特定のウィンドウを最小化する
 [06]特定のウィンドウの表示位置とサイズを指定する

□ドキュメント関連
 [01]新規にドキュメントを作成する
 [02]ドキュメントのサイズを求める
 [03]総ページ数を表示する
 [04]ページ内にある項目数を調べる
 [05]ドキュメントを閉じる
 [06]最前面(アクティブ)ドキュメントを指定する
 [07]開かれているドキュメントを指定する
 [08]バージョンを調べる
 [09]テキスト(ストーリー)の総数を表示する

□マスターページ関連
 [01]マスターページの総数を求める
 [02]マスターページを追加する
 [03]マスターページを削除する
 [04]マスターページを複製する
 [05]マスターページの名前を設定する

□レイヤー関連
 [01]レイヤーの総数を求める
 [02]レイヤーを追加する
 [03]レイヤーのロック状態を調べる
 [04]全レイヤーをロックする
 [05]全レイヤーを不可視にする
 [06]レイヤーを複製する
 [07]レイヤーを削除する
 [08]レイヤーを移動する

□フレーム関連
 [01]テキストフレームを作成する
 [02]テキストフレームを10個一定間隔で作成する
 [03]複数のテキストフレームを指定された座標に作成する
 [04]テキストフレームに文字を表示する
 [05]テキストフレームに画像を表示する
 [06]テキストフレームを回転させる
 [07]フレームの枠の色を指定する
 [08]フレームの枠の幅を指定する
 [09]テキストフレームを横に拡大縮小する
 [10]テキストフレームを縦に拡大縮小する
 [11]テキストフレームを傾ける
 [12]フレームの枠の角の形状を指定する
 [13]テキストがオーバーフローしている場合に警告する
 [14]ページ内にあるテキストフレーム数を調べる
 [15]テキストがオーバーフローしている場合に警告する(全ページチェック)
 [16]テキストフレームの座標を表示する
 [17]テキストフレームの不透明度を指定する
 [18]テキストフレームの背景色を指定する
 [19]テキストフレームの背景色をスォッチカラーで指定する
 [20]テキストフレームをグループ化する
 [21]テキストフレームにテキストファイルの内容を表示する

□テキスト(文字)関連
 [01]文字のサイズを指定する
 [02]文字の色を指定する
 [03]文字のフォント(書体)を指定する
 [04]文字のベースラインを指定する
 [05]文字の拡大縮小率(長体、平体)を指定する
 [06]文字のアウトラインを作成する
 [07]文字に下線(アンダーライン)を付ける
 [08]文字の下線(アンダーライン)に色を付ける
 [09]文字の下線(アンダーライン)の太さを指定する
 [10]文字の下線(アンダーライン)の位置を指定する

□段落関連
 [01]段落の最初の文字のインデントを指定する
 [02]段落の位置揃えを指定する
 [03]段落のフォント(書体)を指定する
 [04]段落に行番号を付ける
 [05]最初の段落に下線(アンダーライン)を付ける
 [06]最初の段落にトラッキングを設定する
 [07]最初の段落にベースラインを設定する
 [08]最初の段落を削除する
 [09]最初の段落にスタイルを適用する

□フォント(書体)関連
 [01]利用できるフォント(書体)の総数を求める
 [02]利用できるフォント(書体)の名前をテキストフレームに書き出す
 [03]利用できるフォント(書体)のPostScriptフォント名をテキストフレームに書き出す
 [04]フォントの種類を表示する
 [05]利用できるフォント(書体)で埋め込み可能なフォント名をテキストフレームに書き出す
 [06]利用できるフォント(書体)でアウトラインが作成可能なフォント名をテキストフレームに書き出す
 [07]利用できるフォント(書体)でPDFに埋め込み可能なフォント名をテキストフレームに書き出す
 [08]フォントファミリー名、フォントスタイル名を取得する

□選択関連
 [01]選択されている項目数を表示する
 [02]選択されている項目の描画モードを設定する
 [03]選択されているテキストフレーム内の文字数を表示する
 [04]選択されているフレームの種類を表示する
 [05]選択されたテキストフレーム内の段落数を求める
 [06]選択されたテキストフレーム内の段落ごとに色を交互に付ける
 [07]選択されたテキストフレームの全ての文字のアウトラインを作成する
 [08]選択されたテキストフレームの最初の文字のアウトラインを作成する
 [09]選択されたテキストフレームの最初の段落のアウトラインを作成する
 [10]選択項目から除外する
 [11]テキストフレームのみ選択する
 [12]選択されたオブジェクトの種類を表示する

□画像関連
 [01]新規に画像を表示する
 [02]ファイル選択ダイアログで選択された画像を表示する
 [03]ファイル選択ダイアログでキャンセルボタンが押されるまで画像を配置する
 [04]画像を拡大縮小表示する
 [05]画像を指定位置に移動する
 [06]画像の座標を表示する
 [07]画像の不透明度を設定する
 [08]画像を回転させる
 [09]画像の境界をぼかす
 [10]画像のファイルパスを表示する

□ファイル関連
 [01]ファイルを開く
 [02]ファイル内容を全部読み込む
 [03]最初の5文字だけ読み込む
 [04]1行読み込む
 [05]1文字読み込む
 [06]1文字読み込み文字コードを表示する
 [07]ファイルに文字を書き込む
 [08]ファイルタイプ(種類)を調べる
 [09]ファイルポインタの位置を調べる
 [10]ファイルポインタの位置を指定する
 [11]ファイル保存ダイアログを表示する
 [12]ファイル選択ダイアログを表示する
 [13]ファイルのバイト数を求める
 [14]ファイルの行数を求める
 [15]改行コードの数を調べる
 [16]ファイルの終わりかどうか調べる
 [17]ファイルのエンコードの種類を調べる
 [18]ファイルをコピーする
 [19]ファイル名を変更する
 [20]ファイルを削除する
 [21]ファイルが存在するかどうか調べる
 [22]ファイルの作成日/修正日を調べる
 [23]ファイル名を調べる
 [24]ファイルのパスを調べる
 [25]フォルダ選択ダイアログを表示する
 [26]フォルダオブジェクトを作成する
 [27]フォルダが存在するかどうか調べる
 [28]フォルダの作成日/修正日を調べる
 [29]フォルダのパスを調べる
 [30]フォルダを作成する
 [31]フォルダ名を変更する
 [32]フォルダを削除する
 [33]フォルダ内のファイル一覧を取得する
 [34]選択されたファイル名をテキストフレームに表示する

□表/テーブル関連
 [01]表を作成する
 [02]表の行数を求める
 [03]表の列数を求める
 [04]表の内容を表示する
 [05]表のセルの文字を一括して設定する
 [06]表の最初の行の内容を一括して設定する
 [07]表の最初の列の内容を一括して設定する
 [08]表の最初の行の二番目のセルの内容を設定する
 [09]表の最初の列の二行目のセルの内容を設定する


■中級編
 [01]全てのページに同じ文字を追加する
 [02]2つのテキストフレームの内容が同じかどうか調べる
 [03]語尾を変更する
 [04]定義されているハイパーリンク数を求める
 [05]テキストファイル内容をテキストフレームに自動的に読み込ませる
 [06]画像をテキストフレームに自動的に読み込ませる
 [07]テキストフレームに自動的に文字や画像を読み込ませる
 [08]全ページのフレームに自動的に文字や画像を読み込ませる
 [09]全ページのテキストフレームの総数を調べる
 [10]全ページのテキストフレーム以外のオブジェクトを削除する
 [11]全ページのフレームに自動的に文字や画像を読み込ませる(画像フィット)
 [12]全ページのフレームに自動的に文字や画像を読み込ませる(枠にフィット)
 [13]全ページの画像に図番号を連番で付ける
 [14]全ページのフレームに自動的に文字や画像を読み込ませる(縦横の比率を保ったままフレームにフィット)
 [15]PDFを配置する
 [16]PDFの指定されたページを配置する
 [17]PDFの指定された範囲のページを配置する

□正規表現関連
 [01]該当する文字列があるかどうか全ページに渡って調べる
 [02]該当する文字列があるかどうか全ページに渡って調べ確認させながら置換する
 [03]全ページにある全角の英大文字を半角の英大文字にする
 [04]全ページにある全角の英文字を半角の英文字にする
 [05]全ページにある全角の数字を半角の数字にする
 [06]全ページにある全角の数字を漢数字にする
 [07]全ページにある郵便番号の表記を変更する
 [08]選択されたテキストフレームの点(.)を句点(。)に変換する
 [09]選択されたテキストフレームの文章の末尾の点(.)のみ句点(。)に変換する
 [10]選択されたテキストフレーム内の行頭に全角空白がない場合に全角空白を挿入する
 [11]選択されたテキストフレーム内の行頭が全角空白の場合に全角空白を削除する
 [12]選択されたテキストフレーム内の英文字の前後に半角空白を入れる
 [13]選択されたテキストフレーム内の数字を3桁ごとに区切る
 [14]選択されたテキストフレーム内の数字を3桁ごとに区切る(〜円の場合のみ)
 [15]選択されたテキストフレーム内の数字を3桁ごとに区切る(¥〜の場合のみ)

□GUI(グラフィカルユーザーインターフェース)関連
 [01]ダイアログを表示する
 [02]編集できない文字を追加する
 [03]編集フィールドを追加する
 [04]枠を追加する
 [05]ドロップダウンリストを追加する
 [06]ラジオボタンを追加する
 [07]チェックボックスを追加する
 [08]編集フィールドに入力された文字を取得する
 [09]ドロップダウンリストで選択された項目の番号を取得する
 [10]どのチェックボックスが選択されたかどうかを調べる
 [11]ダイアログオブジェクトを破棄する
 [12]OKボタンかキャンセルボタンが押されたかどうかを調べる
 [13]角度を入力するコンボボックスを追加する
 [14]角度を入力するエディットボックスを追加する
 [15]整数値を入力するコンボボックスを追加する
 [16]整数値を入力するエディットボックスを追加する
 [17]単位付きの値を入力するコンボボックスを追加する
 [18]単位付きの値を入力するエディットボックスを追加する
 [19]%値を入力するコンボボックスを追加する
 [20]%値を入力するエディットボックスを追加する
 [21]実数値を入力するコンボボックスを追加する
 [22]実数値を入力するエディットボックスを追加する
 [23]ドロップダウンリストで選択された項目(テキスト)を取得する
 [24]ドロップダウンリストで選択された項目をテキストボックスに表示する(無理矢理

□グラフィック(線、図形)
 [01]線を作成する
 [02]三角形を作成する
 [03]オープンパス、クローズパスを指定する
 [04]四角形を描く
 [05]L字型を描く
 [06]楕円を描く
 [07]多角形を描く

□あまり意味のない役に立たないものか面白いもの
 [01]1文字ずつ等間隔で配置する
 [02]1文字ずつランダムな位置に配置する
 [03]不透明度を変化させながら1文字ずつ等間隔で配置する
 [04]テキストフレームをランダムに配置する
 [05]テキストフレームをランダムに配置しランダムに回転させる
 [06]テキストフレーム内の文字をうねるような感じにする
 [07]テキストフレーム内の文字を左右に揺れるような感じにする
 [08]テキストフレーム内の文字の色を交互に付ける


■上級編
 [01]エクセルのデータを読み込み自動レイアウトする
 [02]エクセルのデータを読み込み自動レイアウトする(ダブルクォーテーション処理あり)
 [03]エクセルのデータを読み込み自動レイアウトする(写真あり)
 [04]エクセルのデータを読み込み自動レイアウトする(自動的にページ追加)
 [05]一致した単語を置き換える
 [06]選択したテキストフレームに特定の単語があるかどうか調べる
 [07]全てのページのテキストフレーム内に特定の単語があるかどうか調べる
 [08]選択されたテキストフレーム内の文字をファイルに書き出す
 [09]選択されたテキストフレーム内の文字をファイルに書き出す(保存ダイアログ)
 [10]選択されたテキストフレーム内の文字をファイルに書き出す(FileMaker 7用)
 [11]ファイルメーカーのデータを読み込み自動レイアウトする(自動的にページ追加)
 [12]特定のアプリケーションを起動する
 [13]シェルスクリプトを呼び出して利用する
 [14]特定のサイトのデータを読み込みレイアウトする
 [15]HTMLタグを削除してテキストフレームに読み込む
 [16]索引を作成する
 [17]フォルダ内にあるJPEG画像を自動的に読み込み配置する
 [18]フォルダ内にあるPDFを自動的に読み込み配置する
 [19]タブ区切りテキストを読み込み表内に自動レイアウトする
 [20]内部のプロパティとその値を調べる

□XML
 [01]エレメントを追加する
 [02]エレメントの内容(テキスト)を設定する
 [03]タグを追加する
 [04]エレメントの内容(テキスト)をテキストフレームに表示する
 [05]属性を追加する
 [06]タグの総数を調べる
 [07]タグの名前を調べる
 [08]コメントを追加する

□ファイルメーカー& XML
 [01]最初のレコードの最初のフィールドの内容をテキストフレームに配置する
 [02]最初のレコードに含まれるフィールド内容を全てテキストフレームに配置する
 [03]1レコード1ページとして全レコード、全フィールドを配置する

□ベンチマーク(速度テスト)
 [01]シリアルサーチと正規表現(文字列の末尾にマッチ)
 [02]シリアルサーチと正規表現(文字列の最初にマッチ)
 [03]整数値代入と小数値代入
 [04]整数値代入と文字列代入
 [05]関数未使用と関数使用


■リンク
 Adobe Studio Exchange
 InDesignの勉強部屋
 センリュウ

2005 Copyright 古籏一浩/openspc@po.shiojiri.ne.jp