ホーム > 読んだ > 国内

InDesign自動処理実例集
for Mac/Win

書誌

text唯野
author古旗一浩
editorシータス(協力)
publisher技術評論社
year2009
price3600+tax
isbn978-4-7741-3687-5

目次

1感想
2抄録

履歴

2010.6.27読了
2010.7.4公開
2010.7.4修正
2010.7.19修正

感想

InDesignをJavaScriptから操作するためのスクリプトについて解説した本で、大部分がサンプル集となっている。私もInDesignでの自動化についてマニュアルなどを読んでも分かりやすい情報がなく、書籍ならあるのか ? と思い検索してみたところ、本書があったので読んでみた。

実際問題として、類書がないだけに大いに助かった。私はスクリプトとしてはほとんどPerl専門でJavaScriptはAjaxのものを斜め読みしたくらいだが、一通りのことは本書の内容で十分だと思う。また、私はCS4で使用したが特に問題もなかった。なお、実際のリファレンスとしては以下が参考になったので紹介しておく。

抄録

8

InDesignが提供する自動化の仕組みとして以下の4つがある。

InDesignタグ独自のマークアップによりテキストと段落の書式を指定できる。マークアップしたテキストを配置するだけで適用できるが、画像などは制御できない。cf.12-14
XMLXMLで構造化されたテキストをテキストフレームに関連付けられたタグでリンクする。画像も扱える。変更が元データにも反映されInDesignからはXMLの書き出しもできるが、定義の厳密に一致している必要がある。また項目数を増やすことができない。cf.17-20/25
データ結合CSVのデータをテキストフレームに関連付ける。手軽に扱えるが、XMLとは異なりInDesignからの書き出しはできない。また、XML同様、画像も扱えるが、オーバーフローしたテキストなどの制御はできない。cf.29-34
スクリプト言語プログラミング言語を用いることによってInDesignのかなりのことを外部から制御できる。本書ではこれを詳しく扱う。

37/38/42

InDesignには標準でJavaScriptによるコーディングを支援するための ESTK(Extend Script Toolkit)が添付されている。CS4の場合、C:\Program Files\Adobe\Adobe Utilities\ExtendScript Toolkit CS4\ExtendScript Toolkit.exe がそれに当たる。ESTKでは起動のたびに対象アプリケーションを左上のコンボボックスより選択する必要がある。ブレークポイントも設定できる。

61

指定されたInDesignファイルにテキストフレームを配置してフォントを変更(関数使用)。

fileObj = File.openDialog("ファイルを選択してください");
app.open(fileObj);
addText(0);  // 一番手前のドキュメント(関数呼び出し)
app.activeDocument.close(SaveOptions.yes);

function addText(No)
{
    docObj = app.documents[No];;
    tfObj  = docObj.pages[0].textFrames.add();
    tfObj.geometricBounds = ["20mm", "25mm", "30mm", "75mm"];
    tfObj.contents  = "Hello World";
    tfObj.paragraphs[0].pointSize = "14pt";
    ftObj.paragraphs[0].appliedFont = app.fonts.item("小塚ゴシック Pro	B");  // ProとBの間はTab
{

67-68

作成したスクリプトは C:\Program Files\Adobe\Adobe InDesign CS4\Scripts\Scripts Panel か C:\Documents and Settings\(ユーザ名)\Application Data\Adobe\InDesign\Version 6.0-J\ja_JP\Scripts\Scripts Panel にいれておくと、[ウィンドウ]-[自動化]-[スクリプト] でInDesignから直接スクリプトを呼び出すことができる。

71/75/77/81/361

JavaScriptいろいろ。

  • 「;」がなくても改行で行末扱いになる
  • 配列の宣言は a = []; または a = new Array();
  • continue は C のそれと同じ
  • 未定義は undefined、空は null
  • NaN は数値でないことを示す(Not a Number)
  • typeof()で型が分かる(object、function、string、number)
  • instanceof()でオブジェクトの型が分かる
  • ===演算子で型までの一致を見ることができる
  • 変数宣言には var をつける(var docObj;)

全文を読まれる場合はログインしてください


Up