本記事は、アーカイブに保存されている過去の記事です。最新の情報は、公益社団法人日本印刷技術協会(JAGAT)サイトをご確認ください。

InDesignのプラグイン開発

(株)エル・シー・エス 川村 則夫 氏

InDesignとプラグイン

斬新な構造と高度な組版機能で注目されたInDesignもバージョン2.0になり,後発というハンディを抱えながらも徐々に浸透しつつある。3月のテキスト&グラフィックス研究会ミーティングでは,プラグイン開発環境としてのInDesignという視点からその特徴を考えてみた。本稿では株式会社エル・シー・エスの川村則夫氏のお話を報告する。

エル・シー・エスはこれまでQuarkXPress用にいろいろなXTensionを開発してきたが,それらの機能がすべてInDesignでも必要というわけではない。InDesignはそれらのかなりの部分を標準機能としてもっているという。InDesignの仕様をよく見ると,各社のDTPソフトやXTensionをかなり詳しく調査・研究していることが分かるという。

DataBox

エル・シー・エスのDataBoxというXTension・プラグインの基本的な発想はバッチ処理である。テキストデータからQuarkXPressやInDesignの文書を組み上げるためのツールとして開発された。

DataBoxの処理対象となるテキストはカンマ区切りのデータである。このデータにはページや位置の情報,画像ファイルの保存先やテキストの属性,カラー環境などの属性がすべて入っている。この情報を使ってEDICOLORやEDIAN PLUSなどに取り込んでQuarkXPressやInDesignのレイアウト情報を再現できるし,InDesignのレイアウトデータをQuarkXPressにもっていくこともできる。

DataBoxをInDesignのプラグインとして開発するに当たっては,既に発売しているXTension版との互換性を保つことを前提にした。DataBoxのXTension版はQuarkXPress3.3から4.1へ,あるいは68KからPowerMacへ,MacintoshからWindowsへなどの移植を経ていて,コードの中で共有できる部分とできない部分が分かれている。InDesignのプラグインへの移行はプラグイン専用のAPIを利用するのだが,やり取りするルールの変更と共にC++という言語を使っているので,その移植も伴った。

InDesign1.0用に最初に開発した時は非常に苦労した。というのも,開発用のドキュメントが足りないのである。InDesignのプラグイン用のSDKには膨大なドキュメントやデータが入っているのだが,本当に必要な情報が入っていなかった。それで,いろいろ試行錯誤しながら開発したのが実情である。その後InDesign2.0用に移植したが,実際は1.0から2.0へAPIが変更になっているので,その変更と共にMac OS XとMac OS 9の両方で動くアプリケーションにするためのカーボン化に伴ってルーチンの変更なども行っている。

InDesignの開発環境

InDesignはモジュール構造になっている。これは,一言でいえばプラグインの集まりのようなもので,オブジェクト指向の最たるものという環境である。こうしたモジュール構造という考え方やC++によるオブジェクト指向プログラミングの技術を習得しないと開発は難しいだろう。 デベロッパプログラムの考え方は,アドビシステムズ社とクォーク社ではかなり異なっており,クォークはプロダクトごとの契約である。つまり,3.1用の契約,3.3用の契約,4.x用の契約,5.0用の契約,5.x用の契約とバージョンごとに契約することになっている。

一方,アドビはすべてのプロダクトについての年間契約となる。バージョンの互換性に関する取り扱いも異なる。QuarkXPressの4.0,4.1は3.3用の互換レイヤーをもっていて,基本的には3.3用のXTensionがそのまま動く。ただし新規の機能は使えない。それに対してInDesignは,1.0用と2.0用では互換性がない。

InDesignのパフォーマンス

2.0になってInDesignのパフォーマンスは向上したといわれる。しかし,目に見える部分では向上したかもしれないが,バッチ処理のように本体の中でガラガラ動くような部分はあまり改善されていない。2.0では中身がさらに複雑になった分,処理に時間が掛かる。目立つ部分のパフォーマンスが改善されたので速くなったように見えるが,実際はどうだろうか。同じようなバッチ処理をXTension版のDataBoxと比べると,QuarkXPressのほうが処理速度は圧倒的に速い。そのくらいパフォーマンスが違うのである。

しかし,逆にいうと,InDesignはそれほど先進的な構造になっているということでもある。オブジェクトがプログラムの中を行き来して,例えば一つのボックスを作るのにも,オブジェクトを作って送る,それを受けてオブジェクトを作成し,また処理するという大変なことをやっていて,それで時間が掛かるのである。ちなみに,Mac OS XとMac OS 9のパフォーマンスはほとんど変わらない。カーボン環境としてのパフォーマンスは改善している。

Windows版とMac版

QuarkXPressとInDesignではマルチプラットフォームの対応方式が全く異なる。つまり,QuarkXPressは先にMac版ができ,Windowsの環境が整ったのを受けてWindows版を開発したわけだが,InDesignは最初から両方で動くように開発している。

QuarkXPressのWindows版は,Mac OSのツールボックス用のAPIに相当するものを用意してくれている。つまり,Mac OS XのカーボンのようなものをQuarkXPressのWindows版がきちっとサポートしているのである。そのため,Mac用のツールボックスルーチンそのままのコールを掛けるとWindows版のQuarkXPressが動くようになっている。要するにQuarkXPressのXTensionはMac版できちんと作っておけばWindows版は比較的やりやすいということである。

一方,InDesignは,本来はOSに依存しない開発環境なのだが,例えばDataBoxの場合はQuarkXPressからコードをもってきているのでMac OSのコードが一部残っており,これが引っ掛かってWindows化が遅れている。

InDesignの現状

アメリカでもプラグインの開発はあまり進んでおらず,開発環境の難しさは大きな障害になっているようだ。つまり,構造的には先進的なオブジェクト指向なのだが,実際の開発になるとそれができる技術者がまだ少ないのである。

以前,アップルコンピュータ社がOpenDocというコンセプトを出したことがあるが,InDesignもあれに類似した概念を基本にしていて,それを知っていればとっつきやすいかもしれないが,開発用のドキュメントは数百ページもあって,一般のユーザが開発するのは難しい。どうしてもやりたいなら基本からきちんとレクチャーを受けたほうがよいだろう。

現状では,エル・シー・エスの母体の会社も含めてQuarkXPressが非常にたくさん使われている。InDesignに移行したいという希望はあるが,実務での移行は徐々に進むだろう。それぞれクライアントとの関係もあるので一概にはいえないが,InDesignは確実な選択肢の一つになったと思う。

エル・シー・エスとしては,バージョンが2.0になるに伴ういろいろな課題を改善するためのプラグインを提供したいとも考えている。既に専用のプラグインについてカスタマイズのオファーもあり,一部開発を始めている。
(テキスト&グラフィックス研究会)

■出典:JAGAT info 2002年6月号

2002/06/16 00:00:00


公益社団法人日本印刷技術協会