(57)【要約】【課題】  データベースへの接続及びデータベースファイルの表示を簡易なものとする。【解決手段】  子原稿にインポートされるファイルがデータベースファイルであるか否かを判定する(ステップＳ２７０１)。次に、電子原稿にインポートされるファイルがデータベースファイルであると判定された場合、電子原稿はテンプレートを含むレイアウトファイルがインポートされたものであるか否かを判定し、電子原稿がレイアウトファイルがインポートされたものであると判定された場合、データベースへの接続を可能とし、データベース内のデータをレイアウトファイルに則した状態で表示させる（ステップＳ２７０７）。【選択図】  図２７
2006293430.tif 000002
【特許請求の範囲】
【請求項１】
電子原稿にインポートされるファイルがデータベースファイルであるか否かを判定する第１の判定手段と、
前記電子原稿はテンプレートを含むレイアウトファイルがインポートされたものであるか否かを判定する第２の判定手段と、
前記第１の判定手段により前記電子原稿にインポートされるファイルがデータベースファイルであると判定され、かつ、前記第２の判定手段により前記電子原稿がレイアウトファイルがインポートされたものであると判定された場合、前記電子原稿のデータフィールドと前記データベースファイルのデータフィールドを関連付けるか判定する第３の判定手段と、
前記第３の判定手段により関連付けると判定された場合に、前記データベース内のデータを、前記電子原稿のレイアウトファイルに関連付ける関連付け手段とを有することを特徴とする情報処理装置。
【請求項２】
前記関連付け手段により前記レイアウトファイルに関連付けられた前記データベース内のデータを、前記レイアウトファイルに則した状態で表示させる表示制御手段を更に有することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記データベースのフィールドネーム情報と前記テンプレートのフィールドネーム情報とを取得するフィールドネーム取得手段を更に有し、
前記第３の判定手段は、前記データベース中のデータフィールドのフィールドネーム情報に前記テンプレート中のデータフィールドのフィールドネーム情報が全て含まれるか否かを判定することにより、前記電子原稿のデータフィールドと前記データベースファイルのデータフィールドを関連付けるか判定することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
少なくとも、前記データベース内のデータを前記電子原稿内に取り込むか、前記電子原稿内に前記データベース内のデータを取り込まずに関連付けを行うかを選択する選択手段を更に有することを特徴とする請求項１乃至３の何れか１項に記載の情報処理装置。
【請求項５】
情報処理装置による情報処理方法であって、
電子原稿にインポートされるファイルがデータベースファイルであるか否かを判定する第１の判定ステップと、
前記電子原稿はテンプレートを含むレイアウトファイルがインポートされたものであるか否かを判定する第２の判定ステップと、
前記第１の判定ステップにより前記電子原稿にインポートされるファイルがデータベースファイルであると判定され、かつ、前記第２の判定ステップにより前記電子原稿がレイアウトファイルがインポートされたものであると判定された場合、前記電子原稿のデータフィールドと前記データベースファイルのデータフィールドを関連付けるか判定する第３の判定ステップと、
前記第３の判定ステップにより関連付けると判定された場合に、前記データベース内のデータを、前記電子原稿のレイアウトファイルに関連付ける関連付けステップとを含むことを特徴とする情報処理方法。
【請求項６】
前記関連付けステップにより前記レイアウトファイルに関連付けられた前記データベース内のデータを、前記レイアウトファイルに則した状態で表示させる表示制御ステップを更に含むことを特徴とする請求項５記載の情報処理方法。
【請求項７】
前記データベースのフィールドネーム情報と前記テンプレートのフィールドネーム情報とを取得するフィールドネーム取得ステップを更に含み、
前記第３の判定ステップでは、前記データベース中のデータフィールドのフィールドネーム情報に前記テンプレート中のデータフィールドのフィールドネーム情報が全て含まれるか否かを判定することにより、前記電子原稿のデータフィールドと前記データベースファイルのデータフィールドを関連付けるか判定することを特徴とする請求項５又は６に記載の情報処理方法。
【請求項８】
少なくとも、前記データベース内のデータを前記電子原稿内に取り込むか、前記電子原稿内に前記データベース内のデータを取り込まずに関連付けを行うかを選択する選択ステップを更に含むことを特徴とする請求項５乃至７の何れか１項に記載の情報処理方法。
【請求項９】
請求項５乃至８の何れか１項に記載の情報処理方法をコンピュータに実行させるためのプログラム。
【請求項１０】
請求項９に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テンプレートファイルを含む電子原稿にデータベースファイルをインポート可能な情報処理装置及び情報処理方法に関するものである。
【背景技術】
【０００２】
近年、商品の多品種化で商品ライフが短くなっていること、インターネット利用の普及による消費者のカスタマイズサービス指向などの要因からＣＲＭ（Customer Relationship Management）、Ｏｎｅ−ｔｏ−Ｏｎｅマーケティングの必要性が注目されている。これらの手法により顧客満足度を高め、顧客の開拓や囲い込みを目指すものである。
【０００３】
Ｏｎｅ−ｔｏ−Ｏｎｅマーケティングはデータベース・マーケティングの一種で、顧客の年齢、性別、趣味、嗜好、購買履歴等の個人属性情報をデータベース化し、その内容を分析、顧客のニーズに合った提案を行うものであり、その代表的な手法としてバリアブルプリントが挙げられる。ここ最近ではＤＴＰ（デスクトップパブリッシング）技術の進展とデジタル印刷装置の普及に伴って、文書を顧客毎にカスタマイズして出力するバリアブルプリントシステムが開発され、顧客毎に異なる量のコンテンツを最適にレイアウトすることが求められるようになった。
【０００４】
従来、バリアブルプリントシステムは、ドキュメント上にコンテナ等によりレイアウトを作成し、データベースとレイアウトを関連付けることにより達成していた。しかし、テキストおよびイメージのコンテナのサイズが固定であったため、データベース内のデータがコンテナに挿入されたときに、データ量がコンテナサイズより多いとテキストのオーバーラップおよびイメージのクリッピングが発生し、またデータ量がコンテナサイズより小さいと隙間が空いてしまった。その問題を解決するために、自動レイアウトシステムが発明されている。自動レイアウトシステムはテキストおよびイメージのコンテナサイズを可変に設定することが可能である。この自動レイアウトシステムを実現しているソフトウェアとしてはＰａｇｅfｌｅｘ社のＰａｇｅfｌｅｘ等があり、コンテナのサイズを可変とし、差し込まれるデータ量に応じてコンテナのサイズを変更する。またテキストの場合において固定のコンテナサイズ内に入りきらないデータが挿入された場合、テキストのフォントサイズを縮小し、コンテナ内に全てのテキストを表示する技術なども存在する。しかしコンテナのサイズが大きくなった場合、同ドキュメント上の他のコンテナに重なってしまう問題が発生する。またフォントサイズを調節する場合はテキストの量が大きい場合、フォントサイズが小さくなりすぎる問題が発生する。
【０００５】
それを解決するための更なる自動レイアウトの技術としては、あるコンテナのサイズが大きくなった場合、隣接したコンテナのサイズを小さくする技術が特許文献１に開示されている。
【０００６】
また、それぞれのオブジェクト(コンテナ)を動的にレイアウトし直すものではないが、画像を印刷装置で出力する際のレイアウトを制御するレイアウト制御装置が開示されている（例えば、特許文献２参照）。
【０００７】
また、バリアブル印刷する際に、保存する画像形成データの量を抑制できるようにすると共に、画像形成装置のデータ待ちをなくし、時間効率を向上できる画像形成管理システム等を提供する制御装置の開示がされている（例えば、特許文献３参照）。
【０００８】
【特許文献１】特開平７−１２９６５８号公報
【特許文献２】特開２００４−１５２１５号公報
【特許文献３】特開２００４−２９５２１４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、自動レイアウトシステムで生成したレイアウトファイルを上記文書処理システムに取り込み、連携して動作する場合がある。上記文書処理システムではそのレイアウトファイルにＤＢの接続を行う際、エディタの起動、レイアウトファイルに則したＤＢの接続等、非常に手間を有していた。
【００１０】
また、複数のレイアウトファイルのテンプレートを持つ文書処理システムへの簡易なＤＢへの接続を行うことができなかった。
【００１１】
そこで、本発明の目的は、データベースへの接続及びデータベースファイルの表示を簡易なものとすることにある。
【００１２】
また本発明の目的は、電子原稿が複数のテンプレートを持つ場合でもデータベースへの接続を簡易なものとすることにある。
【課題を解決するための手段】
【００１３】
本発明の情報処理装置は、電子原稿にインポートされるファイルがデータベースファイルであるか否かを判定する第１の判定手段と、前記電子原稿はテンプレートを含むレイアウトファイルがインポートされたものであるか否かを判定する第２の判定手段と、前記第１の判定手段により前記電子原稿にインポートされるファイルがデータベースファイルであると判定され、かつ、前記第２の判定手段により前記電子原稿がレイアウトファイルがインポートされたものであると判定された場合、前記電子原稿のデータフィールドと前記データベースファイルのデータフィールドを関連付けるか判定する第３の判定手段と、前記第３の判定手段により関連付けると判定された場合に、前記データベース内のデータを、前記電子原稿のレイアウトファイルに関連付ける関連付け手段とを有することを特徴とする。
本発明の情報処理方法は、情報処理装置による情報処理方法であって、電子原稿にインポートされるファイルがデータベースファイルであるか否かを判定する第１の判定ステップと、前記電子原稿はテンプレートを含むレイアウトファイルがインポートされたものであるか否かを判定する第２の判定ステップと、前記第１の判定ステップにより前記電子原稿にインポートされるファイルがデータベースファイルであると判定され、かつ、前記第２の判定ステップにより前記電子原稿がレイアウトファイルがインポートされたものであると判定された場合、前記電子原稿のデータフィールドと前記データベースファイルのデータフィールドを関連付けるか判定する第３の判定ステップと、前記第３の判定ステップにより関連付けると判定された場合に、前記データベース内のデータを、前記電子原稿のレイアウトファイルに関連付ける関連付けステップとを含むことを特徴とする。
本発明のプログラムは、前記情報処理方法をコンピュータに実行させることを特徴とする。
本発明のコンピュータ読み取り可能な記録媒体は、前記プログラムを記録したことを特徴とする。
【発明の効果】
【００１４】
本発明によれば、電子原稿にインポートされるファイルがデータベースファイルであり、且つ、電子原稿がレイアウトファイルがインポートされたものとである場合、電子原稿のデータフィールドとデータベースファイルのデータフィールドとを関連付けるか否かを判断し、その判断結果に基づいて、データベース内のデータを電子原稿のレイアウトファイルに関連付けるように構成したので、データベースへの接続及びデータベースファイルの表示を簡易なものとすることができる。
【００１５】
本発明の他の特徴によれば、データベースファイルがインポートされる位置の電子原稿にレイアウトファイルがインポートされている場合、データベースへの接続を可能とするように構成したので、電子原稿が複数のテンプレートを持つ場合でもデータベースへの接続を簡易なものとすることができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明を適用した好適な実施形態を、添付図面を参照しながら詳細に説明する。
【００１７】
図１−１は、本発明の一実施形態に係るシステム構成及びアプリケーション構成を示す図である。図１−１に示すシステム１００は、バリアブルデータドキュメントを印刷するシステムであり、ここで示される方法は図１−２を用いて詳しく説明する汎用コンピュータモジュール１０１で実践される。
【００１８】
図１−２に示すプロセスは、コンピュータ１０１内で実行され、システム１００上で実施可能となるレイアウト編集アプリケーション１２１のようにソフトウェアの全体、あるいは一部分で実行される。特にレイアウト編集や必然的に起こる印刷のステップはコンピュータ１０１によって実行されるソフトウェアの指示によって実施される。ソフトウェアは例えば以下に記述されるような記憶装置を含むコンピュータの可読媒体に格納される。ソフトウェアはコンピュータの可読媒体からコンピュータにロードされ、コンピュータ１０１によって実行される。そのようなソフトウェアや媒体に記録されたコンピュータプログラムを持つコンピュータの可読媒体はコンピュータプログラム製品である。そのコンピュータでのコンピュータプログラム製品の使用は望ましくもドキュメントのレイアウト編集やバリアブルデータ印刷に有利な装置をもたらす。
【００１９】
コンピュータモジュール１０１はキーボード１３２やマウス１３３のようなポインティングデバイスなどの入力装置をつなぎ、ディスプレイ装置１４４や状況に応じてはローカルプリンタ１４５を含む出力装置を連結する。入力／出力インタフェース１３８はコンピュータ１０１をネットワーク１０７から接続してシステム１００の他のコンピュータ装置につなげることができる。そのネットワーク１０７の典型はローカルエリアネットワーク（ＬＡＮ）、あるいはワイドエリアネットワーク（ＷＡＮ）である。
【００２０】
コンピュータ１０１は典型的に少なくとも１つのプロセッサユニット１３５、例えば半導体のランダムアクセスメモリ（ＲＡＭ）やリードオンリーメモリ（ＲＯＭ）から構成されるメモリユニット１３６、ビデオインタフェース１３７を含むＩＮＰＵＴ／ＯＵＴＰＵＴ（Ｉ／Ｏ）インタフェース、キーボード１３２やマウス１３３のためのＩ／Ｏインタフェース１４３を含んでいる。記憶装置１３９は典型的にハードディスクドライブ１４０やフレキシブルディスクドライブ１４１を含んでいる。図には示されていないが磁気テープドライブもまた使用され得る。ＣＤ−ＲＯＭドライブ１４２は不揮発性のデータソースとして提供される。コンピュータモジュール１０１はＧＮＵ／ＬＩＮＵＸやマイクロソフトウインドウズのようなオペレーションシステムや、典型的にはオペレーションシステムに従う形で、あるいは関連のある技術で知られているもので形成されたコンピュータシステムの常套的なオペレーションモードによる方法によって、相互接続バス１３４を介して通信を行うコンピュータ１０１のコンポーネント１３５から１４３を利用する。
【００２１】
図１−１に示した配置コンピュータの例ではＩＢＭ互換ＰＣやＳＵＮ社のＳｐａｒｃ Sｔａｔｉｏｎ、あるいはそれらを含んだコンピュータシステムが考えられる。
【００２２】
レイアウト編集アプリケーション１２１は典型的にハードディスクドライブ１４０に常駐し、プロセッサ１３５により実行、読み込み、コントロールされる。レイアウト編集アプリケーション１２１の媒介記憶装置とネットワーク１３４からフェッチされるデータはハードディスクドライブ１４０に呼応して半導体メモリ１３６を使用する。いくつかのインスタンスではレイアウト編集アプリケーション１２１がＣＤ−ＲＯＭやフレキシブルディスク上でエンコードされ、対応するドライブ１４２や１４１を通じて読み込まれユーザに提供される。
【００２３】
あるいはもう一つの方法としてレイアウト編集アプリケーション１２１はネットワーク１０７からユーザによって読み込まれることもあり得る。さらにソフトウェアは磁気テープまたはＲＯＭまたは集積回路、光磁気ディスクまたは無線またはコンピュータ１０１とその他のデバイス間の赤外線通信、ＰＣＭＣＩＡカードのようなコンピュータ可読カード、そしてＥメール通信やＷＥＢサイト上の記録情報を持つインターネットやイントラネットを含む、他の適当な大きさのコンピュータ可読媒体からコンピュータ１０１内にロードされる可能性もある。前述は単に関連するコンピュータ可読メディアの模範である。他のコンピュータ可読媒体も使用される可能性はある。
【００２４】
またレイアウト編集アプリケーション１２１はバリアブルデータ印刷（ＶＤＰ）を行うよう指示し、２つのソフトウェアコンポーネントを含んでいる。これらのうち１つめのコンポーネントはレイアウトエンジン１０５であり、これは長方形の範囲内で与えられた制限やサイズによって矩形と線の位置を計算するためのソフトウェアコンポーネントである。２つめのコンポーネントであるユーザインタフェース１０３はユーザにドキュメントテンプレートを作成させ、ドキュメントテンプレート内でデータソースと関連付けるメカニズムを提供する。
【００２５】
ユーザインタフェース１０３とレイアウトエンジン１０５はコミュニケーションチャネル１２３を介して通信する。ドキュメント生成のためのデータソースは一般的にデータベースアプリケーションを動かしている他のコンピュータによって構成されたデータベースサーバ１１７上にある典型的なデータベース１１９である。コンピュータ１０１はネットワーク１０７の手段によってデータベースサーバ１１７と通信する。レイアウト編集アプリケーション１２１はコンピュータ１０１か一般的に他のコンピュータで構成されるファイルサーバ１１５に保存されるドキュメントテンプレートを生成する。
【００２６】
またレイアウト編集アプリケーション１２１はデータとマージされたドキュメントテンプレートによって構成されたドキュメントを生成する。これらのドキュメントはコンピュータ１０１のローカルファイルシステムに保存されるか、ファイルサーバ１１５に保存されるか、あるいはプリンタ１１３に直接印刷される。プリントサーバ１０９は直接ネットワークにつながっていないプリンタにネットワーク機能を提供するコンピュータである。プリントサーバ１０９とプリンタ１１３は典型的な通信チャネル１１１を介して接続される。
【００２７】
図２はエンジンサーバ２２７が追加され、レイアウトエンジン１０５の分離バージョン２２５を含む図１−１、図１−２の類似の図である。エンジンサーバ２２７は典型的なコンピュータである。ファイルサーバ１１５に保存されたドキュメントテンプレートは印刷や他の目的がある際、レイアウトエンジン２２５によってドキュメントを生成するためにデータベース１１９に保存されたデータと結合することができる。そのようなオペレーションはユーザインタフェース１０３を介して要求されるか、特定のレコードのみ印刷するように要求される。
【００２８】
図３で参照されるように、ユーザインタフェース１０３は、操作時にディスプレイ装置１４４に表示されるアプリケーションウインドウ３０１によって形成されたユーザインタフェースを含んでいる。ウインドウ３０１は、非表示にすることや、スクリーン上の色々な場所に移動することが可能なメニューバー３０２とツールバー３０３、そしてマウス１３３の位置・動作によって場所を移動可能なワークエリア３０６とオプションのパレット３１１とカーソル／ポインタデバイス３１３から特徴付けされる。
【００２９】
メニューバー３０２は、メニューオプションの階層の下に拡張される多くのメニューアイテム３０４を持つ。ツールバー３０３は、アプリケーションの特別なモードによって非表示にする、または表示することが可能な多くのツールボタンとウィジット３０５を持つ。
【００３０】
オプションのルーラー３０８はワークエリア内のポインタ、ページ、ライン、マージンガイド、コンテナまたはオブジェクトの位置を示すために使われる。パレット３１１はバリアブルデータライブラリのような追加機能にアクセスするために使われる。パレット３１１は移動、リサイズ、クローズをするためのウインドウコントロール３１２を持つ。パレット３１１はオプションで、ワークエリアの前面に表示される、あるいはオブジェクトの背面に隠される。パレット３１１はアプリケーションウインドウ３０１の範囲内のみに表示されることを制限される、あるいはアプリケーションウインドウ３０１の外側に部分的・全体を表示することを許される。
【００３１】
図４を参照すると、ツールバーエリア３０３は少なくとも、次のユーザ選択可能な「ボタン」を持つ。選択ツールボタン４０３は、コンテナの辺を選択、移動、サイズ変更、リサイズ、そしてロック・ロック解除するために使われる。コンテナは、（複数）コンテナの周りに選択ボックスをドラッグする、あるいは複数コンテナを選択する間にＣＴＲＬキーを押しつづけることによって、複数選択を可能にする。イメージコンテナツールボタン４０５は、スタティックあるいはバリアブルイメージを持つコンテナを作成するために使われる。テキストコンテナツールボタン４０４は、スタティックあるいはバリアブルテキストを持つコンテナを作成するために使われる。リンクツールボタン４０６は、コンテナ間の距離をコントロールするリンクを作成するために使われる。これらのボタンは、操作状況に合わせて変化するアイコンのツールチップとして実装される。
【００３２】
ワークエリア３０６はドキュメントテンプレートのデザインを表示・編集するために使われる。これはユーザに下準備で印刷されたドキュメントの概観をデザインすること、そしてマージされたドキュメントが、バリアブルデータの量・サイズに基づいてどのように変化するかを理解することを可能にする。もし外部データソースがテンプレートにリンクされていたら、現在のドキュメントのプレビューができるように、バリアブルテキストとイメージがそれらのコンテナに表示される。ドキュメントの構造とバリアブルデータコンテナの描写をする視覚的な手がかりは、カーソルをコンテナ上に移動させたときや、コンテナを選択したときにいつも表示される。
【００３３】
ワークエリア３０６はスクロールバー３０７とオプションのルーラー３０８とドキュメントテンプレート３０９に特徴付けられる。ドキュメントテンプレート３０９はページが複数あることを示すことができる。
【００３４】
与えられたドキュメントテンプレートのページサイズは、ユーザによって指定される。それぞれのドキュメントでの実際のページ数は、バリアブルデータによって変化するかもしれない。もし１ページ内にフィットできなかった時、追加のページは自動的に作成される。それぞれのページ内の境界線は、ページ上の印刷可能なオブジェクトの最大幅を示す、任意のページマージン３１０である。
【００３５】
また、図４は１ページのドキュメントテンプレート３０９上に表示することが可能なオブジェクトの例である、それらは、複数のコンテナ４０７、４０８と、任意に適用するアンカーアイコン４０９と固定されていない辺４１０、リンク４１２そしてスライダー４１３を持つ。
【００３６】
コンテナは、ドキュメントテンプレート内の固定あるいは可変テキスト・イメージを持つスペースであり、他のコンテナやオブジェクトとレイアウトされる。コンテナはマウス１３３動作でポインタ３１３を使い、ユーザインタフェースで示されるように移動、サイズ調整そして再作成される。より正確にはコンテナは、設定の集まり、視覚的表現そしてインタラクションと編集動作をもっている。下記はコンテナの定義の全部分である。
【００３７】
コンテナは、固定あるいは可変のコンテンツを持つ。可変コンテンツは、データソースからとってきて、異なるドキュメントでは異なるかもしれない、という意味でダイナミックである。可変コンテンツは印刷されないような時間によって変更されたり、アニメーションするコンテンツを含むことは意図していない。同様に、固定コンテンツはコンテナを使って生成される全てのドキュメントで、同じように表示される。しかし、可変コンテナの動作によって、固定コンテンツはそれぞれのドキュメントで位置が異なり得る。
【００３８】
コンテナは、コンテンツに適用される背景色、ボーダー、フォント・スタイルのようなテキスト設定のような装飾機能を持っている。コンテナはドキュメントを生成したときにデータソースからのデータとマージされる。装飾機能は、どんな固定コンテンツでもそうであるように、典型的に印刷された出力物で可視である。可変コンテンツはデータソースから特定のデータの表示をもたらす。コンテナのこの表現は例えば印刷されるか、スクリーン１４４上で表示されるか、その両方が可能である。
【００３９】
コンテナはユーザインタフェースを持つ、例えばコンテナの編集そして表示設定のためのインタラクティブなＧＵＩを持つ。インタフェースの要素は典型的にディスプレイ装置１４４上に表示される、しかしドキュメントには印刷されない。ユーザインタフェース１０３は、背景色やフォントのようなコンテナの装飾機能のいくつかを表示する、そしてコンテナの設定の編集や表示を許すための機能を追加する。ユーザインタフェース機能の特別な目的の例としては、ボーダー、あるいは、コンテナのサイズや位置を対話的に変更、表示するための角アイコン、あるいはコンテナがデータソースからデータをマージされたとき、コンテナの動作を示すための上塗りした数、線、アイコン、テキストがある。現在の公表の一つの概観は、新しい直接編集技術とコンテナのＧＵＩコンポーネントに伴う表示方法の集まりである。
【００４０】
コンテナはそれぞれのドキュメントで表示されるコンテンツを、どのように結びつけるか制御する制約がある。これらの制約（固定・可変コンテンツをコンテナと結びつけると共に）は、ユーザが一つのドキュメントテンプレートから、多数のドキュメントの生成を制御する主要な方法である。制約の例は「このコンテナのコンテンツの高さは、最大値４インチです。」である。もう一つの制約は「コンテナのコンテンツの左端は、それぞれのドキュメントで同じ水平位置で表示しなければならない。」である。ここに記述される内容は、ＧＵＩを使ってこのような制約を表示、編集するためのいろいろな方法である。
【００４１】
イメージがページ上に定義された場所を持っているように、固定コンテンツの配置を指定するコンテンツプレイスホルダーは、デジタル印刷技術でよく知られている。下記の検討で、コンテナは位置とサイズを持ち、それらは公知の技術で知られている手法で編集され、表示されると想定される。その代わりに、現在の検討はバリアブルデータ印刷に特化した方法での表示・編集に焦点を合わせる。
【００４２】
コンテナは、ユーザにドキュメントのコンテンツのサイズ・位置を指定することを可能にする。いくつかのドキュメントは一つのドキュメントテンプレートから生成されるので、コンテナは多数の可能性と制約を指定・表示するためにユーザインタフェースを使わなければならない。
【００４３】
１つのコンテナの辺は、関連付けられたコンテンツがドキュメント内で表示される仮想の境界線を定義する。このように、ここでコンテナの左辺を論じることは、関連付けられたコンテンツがどんなドキュメント内でも表示可能である最も左の辺を論じることと同じである。同様に、コンテナの高さを論じることは生成されたドキュメントで関連付けられたコンテンツの高さの制約を論じることとして理解される。ここでは、ユーザインタフェース１０３を参照してコンテナの辺あるいは大きさを論じるところで、この区別は明らかにされる。
【００４４】
下記検討では、コンテンツの表示を制限するために使われるいくつかの値を定義している用語「固定」は、全てのドキュメントで同じである。
・もしコンテナの幅が固定なら、関連付けられたコンテンツに割り当てられる幅は、全てのドキュメントで同じになる。
・もしコンテナの高さが固定なら、関連付けられたコンテンツに割り当てられる高さは、全てのドキュメントで同じになる。
・もし距離の制約が固定なら、指定された距離は全てのドキュメントのための制約である。
・もしコンテナの左右辺が固定なら、辺の水平位置がページに関して全てのドキュメントで同じであることを意味している、しかしコンテナの高さあるいは垂直方向の位置は、変わり得る。例えば、もしコンテナの左辺が固定なら、関連付けられたコンテンツは、一つのドキュメントでページの上に近く表示され、他のドキュメントでページの下に近く表示される、しかし左辺は全てのケースで同じ水平位置である。
・もしコンテナの上下辺が固定なら、辺の垂直位置がページに関して全てのドキュメントで同じであることを意味している、しかしコンテナの幅あるいは水平位置は変わり得る。
・コンテナの垂直軸はコンテナの右と左辺の平行で、そして中間に位置される想像上の垂直線である。もしコンテナの垂直軸が固定なら、コンテナの左右辺の水平位置の平均は、すべてのドキュメントで同じである。この制約で、コンテナの幅は変化し得る、左右辺両方が異なったドキュメントで、垂直軸にもっとも遠いか又は近くなり得る、しかし軸は全てのドキュメントで同じ水平位置にある。コンテナの高さと水平位置はこの制約によって影響されない。
・同様に、もし水平軸が固定なら、コンテナの上そして下辺が垂直に位置されることを制約する、けれども高さは、この制約によって影響されない。
・もし水平、垂直軸両方が固定なら、コンテナの中心位置が固定されていることを意味する、しかし、幅・高さはこの制約によって影響されない。
・もしコンテナの角、コンテナの辺の中間位置、あるいはコンテナの中心位置が固定なら、すべてのドキュメントで同じ場所で、そしてコンテナに関連付けられた同じ場所で表示される。例えば、もしコンテナの左上角が固定なら、配置されたコンテナの左上位置が全てのドキュメントで同じになることを意味している。
・垂直辺あるいは軸はページの左辺、あるいは右辺、あるいは左ページマージン、あるいは右ページマージン、あるいは他の水平位置に関連付けされて固定になる。同様に、水平辺あるいは軸はページの上あるいは下辺あるいはマージン、あるいは他の垂直位置に関連付けされて固定になる。用語「固定」の改良は、もしページサイズが全てのドキュメントで同じならこれらの可能性はドキュメント生成で相違はないため、ドキュメント間でページサイズが変わるときにのみ重要となる。
【００４５】
「固定」の反対は、辺、軸、角、中間位置、あるいはドキュメント制約がドキュメント間で変化するかもしれないことを意味している「可変」である。しかしドキュメントの特定な設定でそうする必要が無いかもしれない。例えば、変更による辺の実際の好ましい位置のような他の外部制約がある、しかし、もし外部制約が適用されないなら、辺は固定されてないものとしてラベル付けされているので辺の位置は変更できる。
【００４６】
コンテナは、テキストコンテナとイメージコンテナの２種類で記述される。テキストコンテナはテキスト、そして埋め込みのイメージを持つ。イメージコンテナは、イメージだけを持つ。
【００４７】
図４で参照されるように、新規テキストコンテナとイメージコンテナは、テキストコンテナツール４０４、あるいはイメージコンテナツール４０５をマウス１３３でクリックし、テンプレート３０９に四角形をドラッグすることによって、ドキュメントテンプレート３０９上に作成される。
【００４８】
代わりにコンテナは、適切なツール４０４、４０５をアクティブにした後に、ドキュメントテンプレート３０９上でクリックすることによって単純に作成される。デフォルトサイズのコンテナが挿入されるか、新規コンテナの寸法を入れるために、ダイアログボックスあるいは他のプロンプトが提供される。いくつかのコンテナは自動的に前もって定義されたか、計算されたスキーマによって、作成・配置される。また他の案が考えられるかも知れない。
【００４９】
以前記述した３６の辺の状態それぞれが、グラフィカルな表現で描画されるのが好ましい。いくつかの辺の状態は、いくつかの状況で表現を分け合うため、３６のグラフィック表示より少なくなるかもしれない。
【００５０】
図５はコンテナの模範的な辺ルールを例示している。レイアウト編集アプリケーション１２１は、辺の状態を表現するために、塗りつぶし線（アイテム５０３）あるいは点線（５０４）で辺を描き、アンカー（辺の近くに描画された５０６、５０７、５０９によって示されるような線、形状、アイコン）、ハンドル（移動、修正するために辺、形の近くに描画されたコントロール点、５０２）、スライダー（辺の両サイドに描画された短い並行線、図４の４１３）、拡縮アイコン（５０５）、そして色を特徴として持っている。
【００５１】
図５のコンテナ表示方法のルールは、次の通りである。
１．それぞれの辺を固定するために、塗りつぶし線で描画する。
２．もし幅が固定なら、左と右の辺を塗りつぶし線で描画する。
３．もし高さが固定なら、上と下の辺を塗りつぶし線で描画する。
４．軸は描画しない。
５．まだ描画されていない全ての辺は、それぞれの辺の近くに拡縮アイコンが描画され、点線になる。
６．垂直辺あるいは軸のそれぞれのペアで、もし両者が固定なら、交差点にアンカーが描画される。
７．それぞれの固定辺で、もし辺のどこにもアンカーが描画されていなければ、エッジの中央にスライダーが描画される。
８．垂直辺あるいは軸のそれぞれのペアで、もしアンカーやスライダーが描画されていなければ、交差点にハンドルが描画される。
【００５２】
ルール１、２、３で保証した線は、もしそれらが固定あるいは制限されているなら、点線で描画される。ルール５で保証した可変の辺は、点線で描画される。ルール６、７、８で保証した固定された点は、アンカーを表示し、いくつかの固定された辺はスライダーを表示し、他はハンドルを表示する。
【００５３】
上記で、辺はただ一度描画されることが必要である、それでもし、ルールが描画されるべき辺に影響すれば、そのとき後のルールはふたたび描画されるべき辺に影響しないだろう。もしそうすることで都合が良いなら、例えばもしコンテナがとても小さくアイコンがお互い重なるか、あるいは他の表示機能を不明瞭にするならば、アイコンは異なって、あるいは省略されて描画され得る。
【００５４】
可変の辺が描画される場所は、コンテナのコンテンツに依存する。後で記述されるように、ドキュメントテンプレートにコンテンツがマージされて、ユーザインタフェースで可視になることを意味する、「動的な校正処理」が使われる。代わりの実行手段としては、すべてのドキュメントで平均化されるコンテナのコンテンツエリア、あるいは可変の辺がユーザインタフェースで、どこにレイアウトされるべきか決定するほかの手段で使われることができる。
【００５５】
これらのコンテンツ表現は、コンテナの辺の状態を表示するグラフィカルな手段を提供する。その表現の解釈は下記のとおりである。
・図４の４１０の辺のように、点線はコンテナのコンテンツに依存して、ドキュメント内の辺の位置を意味する。
・塗りつぶし線は制限された辺を意味する、なぜなら、辺は固定されている（辺４１４）、あるいはコンテナの幅・高さが固定されている（コンテナ４０８では両方が固定されている）ため。
・アンカーは辺そして軸が交差した場所が固定されていることを意味する。それゆえ、アンカー点は、すべてのドキュメントの水平、垂直位置で現れるだろう。当然アンカーは固定される。図４のアイコン４０９は、交差する辺４１４が固定されていることを意図している、アンカーアイコンの例である。
・スライダーは関係付けられた辺が固定されていることを意味する、しかしコンテナは辺に沿って多くの位置「スライドの長さ」で位置を定められる。例えば、図４でスライダー４１３はコンテナ４０８のコンテンツが、ドキュメント内で特定のダイアグラムで表される位置の、左あるいは右に表示され得る。
【００５６】
これらのアイコン・辺のいくつかあるいは全ては、どのツール、どのコンテナを選択・ハイライトあるいはアクティブにするかによって、描画されたりされなかったりする。一般的に、コンテナの辺・アイコンはドキュメントテンプレートのデザインの手助けであるため、印刷物には描画されない。
【００５７】
幅・高さの最小値・最大値の設定は、副次的なダイアログウインドウに表示される。図５（ａ）で、コンテナ５０１は幅・高さ両方が固定されていない。固定された辺５０３は塗りつぶし線で表現される。可変の辺５０４は点線で表現される。拡縮アイコン５０５は、隣接する辺５０４が可変であることを示す、追加あるいは代わりのインジケーターである。図５（ｂ）で、コンテナ５０１は幅・高さ両方が可変である。アンカーアイコン５０６は、交差している両方の辺５０３が固定されていることを、追加であるいは代わりに示している。図５（ｃ）で、コンテナ５０１は、コンテナの拡大あるいは縮小が任意のアンカーアイコン５０７で示されるような中心点の周りを平等に広がるという状態で、幅・高さ両方が可変である。図５（ｄ）で、コンテナ５０１は、上辺５０８が固定されていることを除けば、幅・高さ両方が可変である。上辺５０８の中心に位置付けられて示されるアンカーアイコン５０９は、固定されている、そしてまたコンテナの左・右辺が、アイコンを通り垂直に描画される中心軸（垂直軸）の周りを、拡大・縮小することを示す。
【００５８】
リンクは、コンテナとコンテナの関連を示している。関連とはコンテナ間の距離を示しており、リンクによって関連付けられたコンテナ同士は、互いのレイアウト変更の影響を受けてレイアウトを計算する。図４の４１２で示されているものがリンクであり、この図ではコンテナ４０７と４０８とを関連づけている。リンクの設定方法および、リンクで関連付けられたコンテナのレイアウト計算方法については、後述する。
【００５９】
図６はリンクの設定方法を示したフロー図である。また図７はＵＩ例を示している。それらを用いてコンテナにリンクを設定する方法について説明をする。
【００６０】
まず、リンクを設定するためには、リンクを設定するためのコンテナ（最低２つ）を作成する（ステップＳ６０１）。図７は、２つのコンテナを作成してリンクを設定する場合の例を示している。次に、前述したリンクツール４０６を選択した状態にする（ステップＳ６０２）。図７は、コンテナを作成し、リンクツールが選択されていた状態から、リンクを設定する動作を示している。図７（ａ）〜（ｃ）を順に説明していく。
【００６１】
図７（ａ）の７０１と７０２は、前述した図４の４０７と４０８と同じであり、固定されている辺を意味する。また、７０３と７０４は、４０９と同じであり、アンカーを意味する。７０５はマウスポインタを意味している。まず、リンクを設定する片方のコンテナをクリックして選択する（ステップＳ６０３）。次に図７（ｂ）で示されるように、もう片方のコンテナまでマウスポインタを移動して、クリックする（ステップＳ６０４）。図７（ｂ）の７０６は図７（ａ）でクリックをした位置と移動したマウスポインタを結んだ線を示しており、どの位置にリンクが設定されるのかをユーザに示すＵＩである。ステップＳ６０４が終わった後、設定した場所に７０７で示されるリンクＵＩが表示される（ステップＳ６０５）。コンテナは図７（ｃ）の状態になる。また、リンクが設定されたことにより、コンテナのＵＩも自動的に変更される（ステップＳ６０６）。７０８は、点線で示されている辺であり、前述した通り可変の辺を示している。図７（ｃ）のようにコンテナの辺の状態が変化したのは、リンクを設定したことにより、コンテナの辺を可変にする必要があるためであり、リンクを設定したにも拘わらず、全ての辺が固定という矛盾を引き起こすことを防ぐために、自動的に行われる処理である。また、７０９は図５の５０５と同じで、リンクを設定したことにより、コンテナが変化できる方向をユーザに視覚的に示したしるしである。図７（ｃ）の例では、左のコンテナの右辺と右のコンテナの左辺が可変に変化したが、これは一例であり、右コンテナが、図４の４１３で示したスライダーを持つ設定に変化してもかまわない。
【００６２】
図８はレイアウト計算のフローを示している。まず、プレビューモードを選択する（ステップＳ８０１）。前述した自動レイアウトシステムでは、コンテナを作成して、そのコンテナ間に関連付けを行い、レイアウトを作成するレイアウトモードと、作成したレイアウトにレコードを挿入して、実際にレコードが挿入された後のレイアウト結果をプレビューするプレビューモードに分けられる。このプレビューモードにおいて、実際のレコードが挿入され、レイアウトを計算する。ただし、プレビューモードは、表示上でのレイアウト計算である。実際に印刷する場合においても、レコードを挿入してレイアウトを計算する。その際の計算方法も同じである。
【００６３】
プレビューモードになったら、プレビューするレコードを選択して挿入する（ステップＳ８０２）。レコードの挿入を行うと、そのレコードをレイアウトするために計算を行う（ステップＳ８０３）。ステップＳ８０３で計算されたレイアウトを表示する（ステップＳ８０４）。他のレコードについてもプレビューを行うかどうかを判断する（ステップＳ８０５）。ステップＳ８０５で、他のレコードについてプレビューを行う必要がないと判断した場合は、プレビューモードを終了する（ステップＳ８０７）。他のレコードについてプレビューを行うのであれば、他のレコードを選択して再度レイアウト計算を行い、プレビューを行う（ステップＳ８０６）。プレビューモードでなく印刷時においては、印刷するレコード全てについて順にレイアウトの計算を行う。したがって、ステップＳ８０５、ステップＳ８０７は存在しない。全てのレコードについて印刷が終了した時点で終了する。
【００６４】
図９はレイアウト計算の詳細を示したフロー図である。また、図１０はそのときのＵＩ表示例を示した図である。
【００６５】
まず、レイアウトを計算するコンテナの集合を求める（ステップＳ９０１）。レイアウト計算は、関連付けられたコンテナを一つの集合として計算を行う。例えば図１１を参照すると、ページ上に４つのコンテナがレイアウトされており、各コンテナに関連付けが設定されている。この場合、コンテナＡとコンテナＢ、そしてコンテナＣとコンテナＤがリンクによって関連付けされている。したがって、コンテナＡ・Ｂが集合１、コンテナＣ・Ｄが集合２となる。前述した通りであるが、１１０１はアンカー、１１０２は固定された辺、１１０３はコントローラ、１１０４は可変の辺の変化方向を示している矢印、１１０５は可変の辺、１１０６はリンク、そして１１０７はスライダーを示している。
【００６６】
次に、ステップＳ９０１で求めたコンテナの集合から、レイアウトを計算するために一つを選択する（ステップＳ９０２）。そして、選択したコンテナの集合について、レイアウトの計算を行う。ここでは、レイアウトされるコンテナのサイズが、実際のコンテンツのサイズとできる限り差が少なくなるように、レイアウトの最適化を行う（ステップＳ９０３）。レイアウトの最適化は、動的にサイズを変化することが可能なように関連付けられたコンテナにおいて、それぞれに挿入されるコンテンツのサイズとレイアウトされるサイズとの差が、できる限り同じになるように行われる。レイアウトの最適化を行い、ルールに違反していた場合は、再度ルールを違反しないように計算をする（ステップＳ９０４）。ここで記述したルールとは、レイアウト作成時にユーザによって設定される制限であり、コンテナのサイズと位置、リンクの長さなどである。ルールを違反しないようにレイアウトが計算されたら、その集合のレイアウトは完成される。そして、ステップＳ９０２〜ステップＳ９０４のステップをページ上のすべての集合について施し、ページ全体のレイアウトを計算する（ステップＳ９０５）。
【００６７】
図１０はレイアウト計算時のＵＩ例である。図１０（ａ）は、あるレコードが挿入されレイアウトが決定されている状態を表している。１００１と１００２はアンカー、１００３と１００４は固定された辺、１００５は可変の辺、１００６は可変の辺の変化方向を示している矢印、１００８はリンクをそれぞれ示している。この状態において、レコードを変更し、異なったサイズのコンテンツを挿入する。図１０（ｂ）は図１０（ａ）の状態に新しいコンテンツのサイズを重ねて示している。１００９はそれぞれのコンテナに挿入されるコンテンツのサイズを表している。そして、レイアウト計算が行われる。図１０（ｃ）はレイアウト計算された結果を示している。計算後の各コンテナのサイズは、実際挿入されるコンテンツのサイズと同等に差異があるように計算され、且つ前述したルールを違反しないように計算される。図１０（ｃ）で示されるように、図１０（ｂ）で示した挿入されるコンテンツサイズ（１００９）と計算後のコンテンツサイズ（１０１０）は、双方において同等な差異がある。
【００６８】
図１２では一般的な可変リンクの状態を表している。図４と同様にアプリケーションウインドウ３０１とツールバー３０３があり、ドキュメントテンプレート３０９上にコンテナ１２０３とコンテナ１２０４が存在する。それぞれのコンテナは典型的にアンカーアイコン１２０１、アンカーアイコン１２０２と固定された辺１２０５、辺１２０６から成り立つ。各エッジコンテナ１２０３と１２０４の間には可変サイズのリンク１２０９があり、それぞれのコンテナを結んでいる。コンテナ１２０３とコンテナ１２０４の間にはリンクが設定されているのでそれぞれの右辺１２０７と左辺１２０８は点線で表現されている。このため各コンテナにインジケーター１２１０、インジケーター１２１１が表示され、これは辺１２０７と辺１２０８が可変であることを示している。
【００６９】
また、図１４はリンク１２０９の情報がセットされているダイアログウインドウ１４０１の例である。このダイアログは典型的にタイトルバー１４０２、ツールボタン１４０３、ダイアログウインドウの開閉を行うボタン１４０４、各種の情報をセットするエリア１４０９で構成されている。このダイアログウインドウではリンクタイプが可変（１４０７）あるいは固定（１４０６）の選択や、可変の場合、リンクの長さの最大値（１４１０）そして最小値（１４１２）、また現在の値（１４１１）が設定できる。
【００７０】
図１３は前述のリンク設定方法を踏まえ、例えば図１５のコンテナＡとコンテナＢ間に張られている固定サイズのリンク１５０３の状態から可変サイズのリンク１２０９を示している図１２の状態までの操作遷移を表している。マウスによりリンク１５０３をクリックし、選択する（ステップＳ１３０２）。マウスの右クリックあるいはキーボードの特定のキーにより選択したリンク１５０３のプロパティダイアログウインドウ１４０１を表示する（ステップＳ１３０３）。この状態ではリンクサイズは可変ではなく固定であるため、Ｆｉｘｅｄ Ｌｅｎｇｔｈ１４０６がＬｉｎｋ Ｔｙｐｅ１４０５において選択されている。リンクを固定サイズから可変サイズに変更するために、Ｌｉｎｋ Ｔｙｐｅ１４０５においてリンクサイズを可変に設定するＦｌｅｘｉｂｌｅ Ｌｅｎｇｔｈ１４０７を選択する（ステップＳ１３０４）。これによりＬｉｎｋ Ｄｉｓｔａｎｃｅ１４０８内に配置されているＭａｘ．Ｄｉｓｔａｎｃｅ１４１２、Ｍｉｎ．Ｄｉｓｔａｎｃｅ１４１０、Ｄｉｓｔａｎｃｅ１４１１が有効化され、数値の設定が可能となる。そこでリンクの可変サイズを設定するために、そのリンクの長さの最大値をＭａｘ．Ｄｉｓｔａｎｃｅ１４１２、最小値をＭｉｎ．Ｄｉｓｔａｎｃｅ１４１０、現在の値をＤｉｓｔａｎｃｅ１４１１において設定する（ステップＳ１３０５）。一般的なダイアログウインドウ開閉ボタン１４０４によって設定を適用すると図１２のリンク１２０９のような状態にリンクのＵＩ表示が変化する（ステップＳ１３０６）。このダイアログウインドウ１４０１の設定情報はメモリに格納される。
【００７１】
図１５は固定サイズのリンクを使用した場合のレイアウト結果を示している。レイアウト計算方法は前述した通りに従って行われる。例えば図１２においてコンテナ１２０３とコンテナ１２０４にそれぞれ違ったサイズのデータが挿入された時、それぞれのコンテナはデータの大きさを最適と考え、コンテナ１２０３は挿入されたイメージサイズになる枠１５０４（最適コンテナサイズ）に近づこうと右方向へ大きく、同様にコンテナ１２０４も挿入されたイメージサイズになる枠１５０５（最適コンテナサイズ）に近づこうと左方向へやや大きくサイズを変更しようとする。しかしコンテナ１２０３とコンテナ１２０４の間には固定サイズのリンクが設定されているとすると、コンテナ１２０３とコンテナ１２０４はそれぞれアンカー１２０１とアンカー１２０２によってそれぞれ左辺１２１２と右辺１２１３は移動出来ないため、変更しようとするサイズがリンクサイズを上回ってしまう。そしてこのリンクサイズは固定されているためレイアウト計算時に優先的に計算されるためコンテナ１２０３とコンテナ１２０４のサイズが変更されることになる。その結果、コンテナ１２０３とコンテナ１２０４はデータに合わせた最適なサイズを確保することが出来ず、最終的に図１５のコンテナ１５０１とコンテナ１５０２のように最適なサイズ（枠１５０４、枠１５０５）よりも小さくなってしまう。リンク１５０３のサイズは固定であるためコンテナ１５０１とコンテナ１５０２は最適サイズを達成していない。
【００７２】
図１６はリンクを可変サイズにした場合を示している。この場合、上記の例でコンテナ１２０３とコンテナ１２０４の間には図の通り可変サイズのリンクが設定されているとすると、コンテナ１２０３とコンテナ１２０４のサイズが変更される際に、リンクサイズが縮まることでコンテナ１２０３とコンテナ１２０４のサイズが上記の例より大きくなることができ、挿入されるデータサイズに合わせた最適なサイズを達成、あるいはより挿入データサイズ（最適サイズ）に近づけてコンテナの枠を計算することが出来る。その結果が、図１６のコンテナ１６０１とコンテナ１６０２である。可変リンク１２０９はレイアウト計算の結果、可変リンク１６０３のサイズ状態となり、この場合コンテナ１６０１とコンテナ１６０２はそれぞれ最適なサイズ（データサイズに合った大きさ）になっている。
【００７３】
また、次に、本発明の実施形態に係る文書処理システムの概要を、図１７〜図３１を参照して説明する。この文書処理システムでは、一般アプリケーションにより作成されたデータファイルが、電子原稿ライタによって電子原稿ファイルに変換される。製本アプリケーションはその電子原稿ファイルを編集する機能を提供している。尚、本実施形態では、それぞれの機能が明瞭になるように、一般アプリケーション、電子原稿ライタ、製本アプリケーション、電子原稿デスプーラと分離して示しているが、ユーザに提供されるパッケージはこれらに限定されず、これらを組合わせたアプリケーションやグラフィックエンジンとして提供されてもよい。以下、その詳細は説明する。
【００７４】
図１７は、本実施形態の文書処理システムのソフトウェア構成を示す図である。文書処理システムは、本発明の文書処理装置（情報処理装置）の好適な実施形態であるデジタルコンピュータ１７００（以下、ホストコンピュータとも呼ぶ）によって実現されている。一般アプリケーション１７０１は、上述したレイアウト編集アプリケーション１２１、ワードプロセシングやスプレッドシート、フォトレタッチ、ドローあるいはペイント、プレゼンテーション、テキスト編集などの機能を提供するアプリケーションプログラムであり、ＯＳに対する印刷機能を有している。これらアプリケーションは、作成された文書データや画像データなどのアプリケーションデータを印刷するにあたって、オペレーティングシステム（ＯＳ）により提供される所定のインタフェース（一般に、ＧＤＩと呼ばれる）を利用する。すなわち、アプリケーション１７０１は、作成したデータを印刷するために、前記インタフェースを提供するＯＳの出力モジュールに対して、予め定められる、ＯＳに依存する形式の出力コマンド（ＧＤＩ関数と呼ばれる）を送信する。出力コマンドを受けた出力モジュールは、プリンタ等の出力デバイスが処理可能な形式にそのコマンドを変換し、変換されたコマンド（ＤＤＩ関数と呼ばれる）を出力する。出力デバイスが処理可能な形式はデバイスの種類やメーカ、機種などによって異なるために、デバイスごとにデバイスドライバが提供されており、ＯＳではそのデバイスドライバを利用してコマンドの変換を行い、印刷データを生成し、ＪＬ（Job Language）でくくることにより印刷ジョブが生成される。ＯＳとしてマイクロソフト社のウインドウズを利用する場合には、前述した出力モジュールとしてはＧＤＩ（Graphic Device Interface）と呼ばれるモジュールが相当する。
【００７５】
電子原稿ライタ１７０２は、前述のデバイスドライバを改良したものであり、本文書処理システム実現のために提供されるソフトウェアモジュールである。ただし、電子原稿ライタ１７０２は特定の出力デバイスを目的としておらず、後述の製本アプリケーション１７０４やプリンタドライバ１７０６により処理可能な形式に出力コマンドを変換する。この電子原稿ライタ１７０２による変換後の形式（以下、「電子原稿形式」と呼ぶ）は、ページ単位の原稿を詳細な書式をもって表現可能であれば特に問わない。実質的な標準形式のうちでは、例えばアドビシステムズによるＰＤＦ形式や、ＳＶＧ形式などが電子原稿形式として採用できる。
【００７６】
一般アプリケーション１７０１により電子原稿ライタ１７０２を利用させる場合には、出力に使用するデバイスドライバとして電子原稿ライタ１７０２を指定してから印刷を実行させる。ただし、電子原稿ライタ１７０２によって作成されたままの電子原稿ファイルは、電子原稿ファイルとして完全な形式を備えていない。そのため、デバイスドライバとして電子原稿ライタ１７０２を指定するのは製本アプリケーション１７０４であり、その管理下でアプリケーションデータの電子原稿ファイルへの変換が実行される。製本アプリケーション１７０４は、電子原稿ライタ１７０２が生成した新規の不完全な電子原稿ファイルを後述する形式を備えた電子原稿ファイルとして完成させる。以下では、この点を明瞭に識別する必要がある際には、電子原稿ライタ１７０２によって作成されたファイルを電子原稿ファイルと呼び、製本アプリケーションによって構造を与えられた電子原稿ファイルをブックファイルと呼ぶ。また、特に区別する必要がない場合は、アプリケーションにより生成されるドキュメントファイル、電子原稿ファイル、及びブックファイルをいずれも文書ファイル（または文書データ）と呼ぶ。
【００７７】
このようにデバイスドライバとして電子原稿ライタ１７０２を指定し、一般アプリケーション１７０１によりそのデータを印刷させることで、アプリケーションデータはアプリケーション１７０１によって定義されたページ（以後、「論理ページ」あるいは「原稿ページ」と呼ぶ。）を単位とする電子原稿形式に変換され、電子原稿ファイル１７０３としてハードディスクなどの記憶媒体に格納される。なお、ハードディスクは、本実施形態の文書処理システムを実現するコンピュータが備えているローカルドライブであってもよいし、ネットワークに接続されている場合にはネットワーク上に提供されるドライブであっても良い。
【００７８】
製本アプリケーション１７０４は、電子原稿ファイルあるいはブックファイル１７０３を読み込み、それを編集するための機能を利用者に提供する。ただし製本アプリケーション１７０４は、各ページの内容を編集する機能は提供しておらず、ページを最小単位として構成される、後述する章やブックの構造を編集するための機能を提供している。
【００７９】
製本アプリケーション１７０４によって編集されたブックファイル１７０３を印刷する際には、製本アプリケーション１７０４によって電子原稿デスプーラ１７０５が起動される。電子原稿デスプーラ１７０５は、製本アプリケーションと共にコンピュータ内にインストールされるプログラムモジュールであり、製本アプリケーションで利用するドキュメント（ブックファイル）を印刷する際に、プリンタドライバへ描画データを出力するために使用されるモジュールである。電子原稿デスプーラ１７０５は、指定されたブックファイルをハードディスクから読み出し、ブックファイルに記述された形式で各ページを印刷するために、前述したＯＳの出力モジュールに適合する出力コマンドを生成し、不図示の出力モジュールに出力する。その際に、出力デバイスとして使用されるプリンタ１７０７のドライバ１７０６がデバイスドライバとして指定される。出力モジュールは、指定されたプリンタ１７０７のプリンタドライバ１７０６を用いて受信した出力コマンドを、プリンタ１７０７で解釈実行可能なデバイスコマンドに変換する。そしてデバイスコマンドはプリンタ１７０７に送信され、プリンタ１７０７によってコマンドに応じた画像が印刷される。
【００８０】
製本アプリケーション１７０４の詳細を言及する前に、ブックファイルのデータ形式を説明する。ブックファイルは紙媒体の書物を模した３層の層構造を有する。上位層は「ブック」と呼ばれ、１冊の本を模しており、その本全般に係る属性が定義されている。その下の中間層は、本でいう章に相当し、やはり「章」と呼ばれる。各章についても、章ごとの属性が定義できる。下位層は「ページ」であり、アプリケーションプログラムで定義された各ページに相当する。各ページついてもページごとの属性が定義できる。一つのブックは複数の章を含んでいてよく、また、一つの章は複数のページを含むことができる。
【００８１】
図１８−１では、ブックファイルが１つの完結したブックである必要はないので、「ブック」を「文書」として一般化して記載している。
【００８２】
まず最上位に文書情報１８０１を持つ。文書情報１８０１は１８０２〜１８０４の３つのパートに大別できる。文書制御情報１８０２は、文書ファイルのファイルシステムにおけるパス名などの情報を保持する。文書設定情報１８０３は、ページレイアウトなどのレイアウト情報とステイプルなど印刷装置の機能設定情報を保持し、ブックの属性に相当する。章情報リスト１８０４は、文書を構成している章の集合をリスト形式で保持する。リストが保持するのは章情報１８０５である。
【００８３】
章情報１８０５も１８０６〜１８０８の３つのパートに大別できる。章制御情報１８０６は、章の名称などの情報を保持する。章設定情報１８０７は、その章特有のページレイアウトやステイプルの情報を保持し、章の属性に相当する。章ごとに設定情報をもつことで最初の章は２ＵＰのレイアウトその他の章は４ＵＰのレイアウトのように複雑なレイアウトを持った文書を作成することが可能である。ページ情報リスト１８０８は各章を構成する原稿ページの集合リスト形式で保持している。ページ情報リスト１８０８が指示するのは、ページ情報データ１８０９である。
【００８４】
ページ情報データ１８０９も１８１０〜１８１２の３つのパートに大別される。ページ制御情報１８１０は、ツリー上に表示するページ番号などの情報を保持する。ページ設定情報１８１１は、ページ回転角やページの配置位置情報などの情報を保持し、原稿ページの属性に相当する。ページリンク情報１８１２は、ページに対応する原稿データである。この例では、ページ情報１８０９が直接原稿データを持つのではなく、リンク情報１８１２だけを持ち、実際の原稿データは、ページデータリスト１８１３で保持する構成としている。
【００８５】
図１９は、ブック属性（文書設定情報１８０３）の例を示すリストである。通常、下位層と重複して定義可能な項目に関しては、下位層の属性値が優先採用される。そのため、ブック属性にのみ含まれる項目に関しては、ブック属性に定義された値はブック全体を通して有効な値となる。しかし、下位層と重複する項目については、下位層において定義されていない場合における既定値としての意味を有する。しかし、本実施形態では、後述するように、下位層の属性値を優先するか否かが選択可能となっている。なお、図示された各項目は具体的に１項目に対応するのではなく、関連する複数の項目を含むものもある。
【００８６】
ブック属性に固有の項目は、印刷方法、製本詳細、表紙／裏表紙、インデックス紙、合紙、章区切りの６項目である。これらは、ブックを通して定義される項目である。印刷方法属性としては、片面印刷、両面印刷、製本印刷の３つの値を指定できる。製本印刷とは、別途指定する枚数の用紙を束にして２つ折りにし、その束をつづり合わせることで製本が可能となる形式で印刷する方法である。製本詳細属性としては、製本印刷が指定されている場合に、見開き方向や、束になる枚数等が指定できる。
【００８７】
表紙／裏表紙属性は、ブックとしてまとめられる電子原稿ファイルを印刷する際に、表紙及び裏表紙となる用紙を付加することの指定、及び付加した用紙への印刷内容の指定を含む。インデックス紙属性は、章の区切りとして、印刷装置に別途用意される耳付きのインデックス紙の挿入の指定及びインデックス（耳）部分への印刷内容の指定を含む。この属性は、印刷用紙とは別に用意された用紙を所望の位置に挿入するインサート機能を持ったインサータが使用する印刷装置に備えられている場合か、あるいは、複数の給紙カセットを使用可能である場合に有効となる。これは合紙属性についても同様である。
【００８８】
合紙属性は、章の区切りとして、インサータからあるいは給紙カセットから供給される用紙の挿入の指定、及び、合紙を挿入する場合には、給紙元の指定などを含む。
【００８９】
章区切り属性は、章の区切り目において、新たな用紙を使用するか、新たな印刷ページを使用するか、特に何もしないか等の指定を含む。片面印刷時には新たな用紙の使用と新たな印刷ページの使用とは同じ意味を持つ。両面印刷時には、「新たな用紙の使用」を指定すれば連続する章が１枚の用紙に印刷されることは無いが、「新たな印刷ページの使用」を指定すれば、連続する章が１枚の用紙の表裏に印刷されることがあり得る。
【００９０】
図２０は、章属性（章設定情報１８０７）の、図２１はページ属性（ページ設定情報１８１１）の例を示すリストである。章属性とページ属性との関係もブック属性と下位層の属性との関係と同様である。
【００９１】
章属性に関しては、章に固有の項目はなく、すべてブック属性と重複する。したがって、通常は、章属性における定義とブック属性における定義とが異なれば、章属性で定義された値が優先する。しかし、本例では、後述するように、下位層の属性値を優先するか否かが選択可能となっている。
【００９２】
ブック属性と章属性とにのみ共通する項目は、用紙サイズ、用紙方向、Ｎ−ｕｐ印刷指定、拡大縮小、排紙方法の５項目である。このうち、Ｎ−ｕｐ印刷指定属性は、１印刷ページに含まれる原稿ページ数を指定するための項目である。指定可能な配置としては、１×１や１×２、２×２、３×３、４×４などがある。排紙方法属性は、排出した用紙にステイプル処理を施すか否かを指定するための項目であり、この属性の有効性は使用する印刷装置がステイプル機能を有するか否かに依存する。
【００９３】
ページ属性に固有の項目には、ページ回転属性、ズーム、配置指定、アノテーション、ページ分割などがある。ページ回転属性は、原稿ページを印刷ページに配置する際の回転角度を指定するための項目である。ズーム属性は、原稿ページの変倍率を指定するための項目である。変倍率は、仮想論理ページ領域のサイズを１００％として指定される。仮想論理ページ領域とは、原稿ページを、Ｎ−ｕｐ等の指定に応じて配置した場合に、１原稿ページが占める領域である。例えば１×１であれば、仮想論理ページ領域は１印刷ページに相当する領域となり、１×２であれば、１印刷ページの各辺を約７０パーセントに縮小した領域となる。
【００９４】
ブック、章、ページについて共通な属性として、ウォーターマーク属性及びヘッダ・フッタ属性がある。ウォーターマークとは、アプリケーションで作成されたデータに重ねて印刷される、別途指定される画像や文字列などである。ヘッダ・フッタは、それぞれ各ページの上余白及び下余白に印刷されるウォーターマークである。ただし、ヘッダ・フッタには、ページ番号や日時など、変数により指定可能な項目が用意されている。なお、ウォーターマーク属性及びヘッダ・フッタ属性において指定可能な内容は、章とページとは共通であるが、ブックはそれらと異なっている。ブックにおいてはウォーターマークやヘッダ・フッタの内容を設定できるし、また、ブック全体を通してどのようにウォーターマークやヘッダ・フッタを印刷するかを指定することができる。一方、章やページでは、その章やページにおいて、ブックで設定されたウォーターマークやヘッダ・フッタを印刷するか否かを指定できる。
【００９５】
ブックファイルは、上述したような構造及び内容を有している。次に、製本アプリケーション１７０４及び電子原稿ライタ１７０２によってブックファイルを作成する手順を説明する。ブックファイルの作成は、製本アプリケーション１７０４によるブックファイルの編集操作の一環として実現される。
【００９６】
図２２は、製本アプリケーション１７０４によりブックファイルを開く際の手順を示すフローチャートである。
【００９７】
まず、開こうとするブックファイルが、新規作成すべきものであるか、それとも既存のものであるかを判定する（ステップＳ２２０１）。新規作成の場合には、章を含まないブックファイルを新規に作成する（ステップＳ２２０２）。ブック属性は、新規作成用として予め用意された属性のセットが適用される。そして、新規ブックファイルを編集するためのユーザインタフェース（ＵＩ）画面を表示する（ステップＳ２２０４）。図２３は、新規にブックファイルが作成された際のＵＩ画面の一例である。この場合には、ブックファイルは実質的な内容を持たないために、ＵＩ画面には何も表示されない。
【００９８】
一方、既存のブックファイルがあれば、指定されたブックファイルを開き（ステップＳ２２０３）、そのブックファイルの構造、属性、内容に従ってユーザインタフェース（ＵＩ）画面を表示する。図２４は、このＵＩ画面の一例である。ＵＩ画面２４００は、ブックの構造を示すツリー部２４０１と、印刷された状態を表示するプレビュー部２４０２とを含む。ツリー部２４０１には、ブックに含まれる章、各章に含まれるページが、図１８−１のような木構造が分かるように表示される。ツリー部２４０１に表示されるページは原稿ページである。プレビュー部２４０２には、印刷ページの内容が縮小されて表示される。その表示順序は、ブックの構造を反映したものとなっている。
【００９９】
さて、開かれたブックファイルには、電子原稿ライタ１７０２によって電子原稿ファイルに変換されたアプリケーションデータを、新たな章として追加することができる。この機能を電子原稿インポート機能と呼ぶ。図２２の手順によって新規に作成されたブックファイルに電子原稿インポートすることで、そのブックファイルには実体が与えられる。この機能は、図２３あるいは図２４の画面にアプリケーションデータをドラッグアンドドロップ操作することで起動される。
【０１００】
図２５に電子原稿インポートの手順例を示すフローチャートである。まず、指定されたアプリケーションデータを生成したアプリケーションプログラムを起動し、デバイスドライバとして電子原稿ライタ１７０２を指定してアプリケーションデータを印刷出力させることで、電子原稿データに変換する（ステップＳ２５０１）。変換を終えたなら、変換されたデータが画像データであるか否かを判定する（ステップＳ２５０２）。この判定は、ウインドウズＯＳの下であれば、アプリケーションデータのファイル拡張子に基づいて行うことができる。例えば、拡張子が「ｂｍｐ」であればウインドウズビットマップデータであり、「ｊｐｇ」であればＪＰＥＧ圧縮された画像データ、「ｔｉｆｆ」であればｔｉｆｆ形式の画像データであると判定できる。また、このような画像データの場合はアプリケーションを起動せずに、画像データから直接電子原稿ファイルを生成することが可能である。
【０１０１】
画像データでなかった場合には、ステップＳ２５０１で生成された電子原稿ファイルを、現在開かれているブックファイルのブックに、新たな章として追加する（ステップＳ２５０３）。通常、章属性としては、ブック属性と共通するものについてはブック属性の値がコピーされ、そうでないものについては、予め用意された規定値に設定されるが、本実施形態では、後述するように、下位層の属性値を優先するか否かが選択可能となっている。
【０１０２】
画像データである場合には、原則として新たな章は追加されず、指定されている章に、ステップＳ２５０１で生成された電子原稿ファイルに含まれる各原稿ページが追加される（ステップＳ２５０４）。ただし、ブックファイルが新規作成されたファイルであれば、新たな章が作成されて、その章に属するページとして電子原稿ファイルの各ページが追加される。通常、ページ属性は、上位層の属性と共通のものについてはその属性値が与えられ、アプリケーションデータにおいて定義された属性を電子原稿ファイルに引き継いでいるものについてはその値が与えられる。例えば、Ｎ−ｕｐ指定などがアプリケーションデータにおいてされていた場合には、その属性値が引き継がれる。このようにして、新規なブックファイルが作成され、あるいは、新規な章が追加される。しかし、本実施形態では、後述するように、下位層の属性値を優先するか否かが選択可能となっている。
【０１０３】
図２６は、図２５のステップＳ２５０１において、電子原稿ライタ１７０２により電子原稿ファイルを生成させる手順を示すフローチャートである。
【０１０４】
まず、新たな電子原稿ファイルを作成してそれを開く（ステップＳ２６０１）。指定したアプリケーションデータに対応するアプリケーションを起動し、電子原稿ライタ１７０２をデバイスドライバとして、ＯＳの出力モジュールに対して出力コマンドを送信させる。出力モジュールは、受信した出力コマンドを電子原稿ライタによって電子原稿形式のデータに変換し、出力する（ステップＳ２６０２）。出力先はステップＳ２６０１で開いた電子原稿ファイルである。指定されたデータ全てについて変換が終了したか判定し（ステップＳ２６０３）、終了していれば電子原稿ファイルを閉じる（ステップＳ２６０４）。電子原稿ライタ１７０２によって生成される電子原稿ファイルは、原稿ページデータの実体を含むファイルである。
【０１０５】
以上のようにして、アプリケーションデータからブックファイルを作成することができる。生成されたブックファイルについては、章及びページに対して次のような編集操作が可能である。
（１）新規追加
（２）削除
（３）コピー
（４）切り取り
（５）貼り付け
（６）移動
（７）章名称変更
（８）ページ番号名称振り直し
（９）表紙挿入
（１０）合紙挿入
（１１）インデックス紙挿入
（１２）各原稿ページに対するページレイアウト。
【０１０６】
この他、一旦行った編集操作を取り消す操作や、さらに取り消した操作をやり直す操作が可能である。これら編集機能により、例えば複数のブックファイルの統合、ブックファイル内で章やページの再配置、ブックファイル内で章やページの削除、原稿ページのレイアウト変更、合紙やインデックス紙の挿入などといった編集操作が可能となる。これらの操作を行うと、図１９〜図２１に示す属性に操作結果が反映されたり、あるいはブックファイルの構造に反映される。たとえば、ブランクページの新規追加操作を行えば、指定された箇所にブランクページが挿入される。このブランクページは原稿ページとして扱われる。また、原稿ページに対するレイアウトを変更すれば、その変更内容は、印刷方法やＮ−ｕｐ印刷、表紙／裏表紙、インデックス紙、合紙、章区切りといった属性に反映される。本実施形態における、編集時の表示及び操作例については、以下で詳細に示す。
【０１０７】
以上のように作成・編集されるブックファイルは印刷出力を最終目的としている。利用者が図２４に示す製本アプリケーションのＵＩ画面２４００からファイルメニューを選択し、そこから印刷を選択すると、指定した出力デバイスにより印刷出力される。この際、まず製本アプリケーション１７０４は、現在開かれているブックファイルからジョブチケットを作成して電子原稿デスプーラ１７０５に渡す。電子原稿デスプーラ１７０５は、ジョブチケットをＯＳの出力コマンド、例えばウインドウズのＧＤＩコマンドに変換し、それを出力モジュール、例えばＧＤＩに送信する。出力モジュールは、指定されたプリンタドライバ１７０６によってデバイスに適したコマンドを生成し、そのデバイスに送信する。
【０１０８】
すなわち、図示しない出力モジュールのグラフィックエンジンは、印刷装置ごとに用意されたプリンタドライバ１７０６を外部メモリからＲＡＭにロードし、出力をプリンタドライバ１７０６に設定する。そして、出力モジュールは、受け取ったＧＤＩ（Graphic Device Interface）関数からＤＤＩ（Device Driver Interface）関数に変換して、プリンタドライバ１７０６へＤＤＩ関数を出力する。プリンタドライバ１７０６は、出力モジュールから受け取ったＤＤＩ関数に基づいて、プリンタが認識可能な制御コマンド、例えばＰＤＬ（Page Description Language）に変換する。変換されたプリンタ制御コマンドは、ＯＳによってＲＡＭにロードされたシステムスプーラを経てプリンタ１７０７へ印刷データとして出力される仕組みとなっている。
【０１０９】
ここで、上記ジョブチケットは、原稿ページを最小単位とする構造を有するデータである。ジョブチケットにおける構造は、用紙上における原稿ページのレイアウトを定義している。ジョブチケットは１ジョブにつき１つ発行される。そのため、まず最上位にドキュメントというノードがあり、文書全体の属性、例えば両面印刷／片面印刷などが定義されている。その下には、用紙ノードが属し、用いるべき用紙の識別子や、プリンタにおける給紙口の指定などの属性が含まれる。各用紙ノードには、その用紙で印刷されるシートのノードが属する。１シートは１枚の用紙に相当する。各シートには、印刷ページ（物理ページ）が属する。片面印刷ならば１シートには１物理ページが属し、両面印刷ならば１シートに２物理ページが属する。各物理ページには、その上に配置される原稿ページが属する。また物理ページの属性として、原稿ページのレイアウトが含まれる。
【０１１０】
ジョブチケットのデータ構造の例を図１８−２に示す。印刷用のデータでは、文書は用紙の集合で構成されており、各用紙は表、裏の２面で構成されており、各面は原稿をレイアウトする領域（物理ページ）を持ち、各物理ページには、最小単位である原稿ページの集合から構成される。１８−２０１は文書に相当するデータで、文書全体に関係するデータと、文書を構成する用紙情報のリストから構成される。用紙情報１８−２０２は用紙サイズなど用紙に関する情報と用紙上に配置される面情報のリストから構成される。面情報１８−２０３は、面に固有のデータと、面上に配置される物理ページのリストから構成される。物理ページ情報１８−２０４は、物理ページのサイズやヘッダ・フッタなどの情報と、物理ページを構成する原稿ページのリストから構成される。電子原稿デスプーラ１７０５は、上述のジョブチケットを、出力モジュールへの出力コマンドに変換する。
【０１１１】
すでに説明したとおり、ブックファイルが製本アプリケーションによって開かれると、図２４に示すユーザインタフェース画面２４００が表示される。ツリー部２４０１には、開いているブック（以下、「注目ブック」と呼ぶ）の構造を示すツリーが表示される。プレビュー部には、利用者の指定に応じて、３通りの表示方法が用意されている。第１は原稿ページをそのまま表示する原稿ビューと呼ばれるモードである。原稿ビューモードでは、注目ブックに属する原稿ページの内容が縮小されて表示される。プレビュー部の表示にレイアウトは反映されない。第２は印刷ビューモードである。印刷ビューモードでは、プレビュー部２４０２には、原稿ページのレイアウトが反映された形で原稿ページが表示される。第３は簡易印刷ビューモードである。簡易印刷ビューモードでは、各原稿ページの内容はプレビュー部の表示には反映されず、レイアウトのみが反映される。
【０１１２】
図２７〜３１は本実施形態に係る処理の流れを示すフローチャートである。先に説明したように、レイアウト編集アプリケーション１２１は、可変情報の位置等の属性情報と、固定情報とを含むドキュメントテンプレート情報ファイルを含んだファイル(以降、ダイナミックレイアウトファイルと呼ぶ)を保存する。レイアウトエンジン１０５を搭載しているアプリケーションはこのダイナミックレイアウトファイルを読むことが可能である。本発明の実施形態である文書処理システムはこのレイアウトエンジン１０５を製本アプリケーション１７０４内に搭載している。ダイナミックレイアウトファイル及びＤＢファイルは製本アプリケーション１７０４へインポートすることが可能である。
【０１１３】
ダイナミックレイアウトファイルをインポートすることにより、製本アプリケーション１７０４上で先に説明した複数アプリケーションの結合、属性の変更を行い、印刷を行うことが可能となる。
【０１１４】
図２７を用い、それぞれのインポート時の処理について説明する。まず、ダイナミックレイアウトファイルがインポートされた場合、電子原稿ライタ１７０２が起動され、電子原稿ライタ１７０２によりＤＢファイルかの判定処理（ステップＳ２７０１）が行われる。これはインポート(ドラック＆ドロップ)されたファイルがＣＳＶファイル等、この文書処理システムがＤＢとして扱うファイルかどうかを判定する処理である。ここでは、ＤＢファイルではないダイナミックレイアウトファイルを想定しているので、ＤＢファイルではないと判定される。
【０１１５】
次に、インポートされたファイルがダイナミックレイアウトファイルかの判定処理（ステップＳ２７０２）が行われる。先に説明したように、ダイナミックレイアウトファイルでなければ、他の一般アプリと同様、新たな電子原稿ファイルの作成及び開く（ステップＳ２６０１）、アプリケーション起動及び、電子原稿ファイルへのデータの変換処理（ステップＳ２６０２）、全ページの判定処理（ステップＳ２６０３）、電子原稿ファイルのクローズ処理（ステップＳ２６０４）を経て電子原稿生成が行われることになる。ここではダイナミックレイアウトファイルを想定しているので、新たに電子原稿ファイルを生成する必要がない。そのため、次の生成されたファイルをブックに章として追加する処理（ステップＳ２７０５）が行われる。これにより、先に説明したように、既に存在するブックにダイナミックレイアウトファイルが章として追加されることになる。章属性としては、ブック属性と共通するものについてはブック属性の値がコピーされ、そうでないものについては、予め用意された規定値に設定される。このようにして、ダイナミックレイアウトファイルが製本アプリケーション１７０４に取り込まれることとなる。
【０１１６】
次に、ＤＢファイルがインポートされた場合を想定する。前回同様、ＤＢファイルかの判定処理（ステップＳ２７０１）が行われる。これはインポート(ドラック＆ドロップ)されたファイルがＣＳＶファイル等、この文書処理システムがＤＢとして扱うファイルかどうかを判定する処理である。ここでは、ＤＢファイルを想定しているので、次のＤＢファイルのインポート処理（ステップＳ２７０７）が行われる。この処理の詳細を図２８−１を用いて説明する。
【０１１７】
まず、製本アプリケーション１７０４によりＤＢファイルのインポート先の電子原稿ファイル１７０３が原稿がテンプレートファイルかの判定処理（ステップＳ２８０１）が行われる。これは原稿が先に示したような方法により、ダイナミックレイアウトファイルがインポートされたものかを判定する処理である。ここでもし、開かれている原稿原稿ファイル１７０３がダイナミックレイアウトファイルがインポートされたものでなかったら、ＤＢファイルとして認識できるファイルであっても、通常の原稿生成のインポートとして扱われる。ここでは図３０（ａ）のように、ダイナミックレイアウトファイルがインポートされたものとし、開かれている電子原稿ファイルがテンプレートファイルであると判定される。
【０１１８】
すると次に、電子原稿ライタ１７０２によりインポートすべきＤＢファイルのデータベースフィールドネーム取得処理（ステップＳ２８０２）が行われる。図３０（ｂ）のようにＤＢファイルの各フィールドには名前を付けることが可能である。この処理は各々のフィールドからフィールド名を取得する処理である。ここでは"name"、"国名"が取得されることになる。
【０１１９】
次に、製本アプリケーション１７０４によりテンプレートのデータベースフィールドネーム取得処理（ステップＳ２８０３）が行われる。先の図３０（ａ）には既にフィールド設定がされており、それぞれのフィールドにはデータベースフィールド名が定義されている。これを取得する処理である。
【０１２０】
そして、電子原稿ライタ１７０２は、製本アプリケーション１７０４からテンプレートのデータベースフィールド名を取得し、ＤＢファイルのデータベースフィールド名と比較して、全てのデータベースフィールドネームが一致するかの判定処理（ステップＳ２８０４）が行われる。これは先に取得したＤＢファイルの各フィールド名に、テンプレートに設定されているフィールドのフィールド名が全てが含まれているかの判定処理である。これにより、このテンプレートが必要としているフィールドをこのＤＢファイルが満たしているかを判定することができる。ここでは、予めテンプレートに定義してあるフィールド名は"Name"、"国名"であるとし、この条件を満たすとする。
【０１２１】
ここでもし、この条件を満たさなければ、必要としているＤＢファイルではないと判断され、通常のインポートの処理に移る。条件を満たすと、次に、電子原稿ライタ１７０２によりダイアログ表示処理（ステップＳ２８０５）が行われる。これは図３０（ｃ）のようなダイアログを表示する処理である。これはＤＢとしての条件が満たされる場合、さらに、ユーザに対して、インポートの種類については以下の３つ、エディタの起動については、以下の２つの選択肢を提示する処理である。
インポートの種類：
１．ＤＢファイルとしてインポート(外部参照)
２．ＤＢファイルとしてインポート(取り込み)
３．原稿ファイルとしてインポート
エディタの起動：
１．する
２．しない
【０１２２】
まず、インポートの種類について、「ＤＢファイルとしてインポート(外部参照)」は、ドラック＆ドロップされたファイルをＤＢファイルとして扱うが、あくまで、インポート先の電子原稿ファイル中の各データベースフィールドはＤＢファイルの各データベースフィールドへ接続されたまま参照するというものである。また、「ＤＢファイルとしてインポート(取り込み)」は、ドラック＆ドロップされたファイルをＤＢファイルとして接続し、さらにＤＢファイル中の各データベースフィールドのコンテンツデータをインポート先の電子原稿ファイルの内部のバリアブルデータ領域に取り込む処理を行う。最後の「原稿ファイルとしてインポート」は、ドラック＆ドロップされたファイルはＤＢファイルとして取り込むことは可能だが、ユーザの選択によって、開かれている電子原稿ファイルのブック中に新規の章として原稿ファイルとして取り込むことを意味している。これらの選択がユーザによって行われることになる。
【０１２３】
また、エディタの起動について、"する"はＤＢファイルのコンテンツデータを即時に表示、確認するためにエディタを立ち上げるというものである。"しない"はＤＢファイルとしてインポートは行うが、即時の表示、確認は必要なく、エディタの立ち上げを行わないというものである。この選択はＤＢファイルとしてインポート(外部参照)もしくはＤＢファイルとしてインポート(取り込み)が選択された時に選択が可能になるもので、これらの選択がユーザによって行われることになる。ここでは、インポートの種類はＤＢファイルとしてインポート(取り込み)、エディタの起動は"する"が選択されたとする。
【０１２４】
次に、電子原稿ライタ１７０２によりＤＢファイルとしてのインポートが選択されたかの判定処理（ステップＳ２８０６）が行われる。これは先のダイアログでユーザがＤＢファイルとしてインポート(外部参照)もしくはＤＢファイルとしてインポート(取り込み)をしたか判定する処理である。ここでもし原稿ファイルとしてインポートが選択されたとしたら、通常のインポート処理に移ることになる。先に示したように、ここではＤＢファイルとしてインポート(取り込み)が選択されたと仮定しているので、次のＤＢ接続処理（ステップＳ２８０７）が行われる。これはドラック＆ドロップされたファイルをＤＢファイルとして接続し、コンテンツデータを読み込む処理である。
【０１２５】
次に電子原稿ライタ１７０２により取り込みかの判定処理（ステップＳ２８０８）が行われる。これは先のダイアログの選択でＤＢファイルとしてインポート(取り込み)が選択されたかを判定する処理である。ここでは、取り込みが選択されたとして、次のコンテンツデータの電子原稿への取り込み処理（ステップＳ２８０９）が行われる。先のＤＢ接続処理（ステップＳ２８０７）によって読み込まれたコンテンツデータを電子原稿内部に取り込む処理である。これにより、ＤＢファイルへの接続は切断され、必要なコンテンツデータが内部に取り込まれることになる。
【０１２６】
そして、電子原稿ライタ１７０２によりエディタの起動が選択されたかの判定処理（ステップＳ２８１０）が行われる。これは、先のダイアログでエディタの起動"する"が選択されているかを判定する処理で、ここでは、"する"が選択されていることを仮定しているため、次のエディタの起動処理（ステップＳ２８１１）が行われる。これは図３０（ｄ）で示すような専用のエディタを起動する処理である。通常、このエディタはデータによって自動的に起動するようなことはない。
【０１２７】
その後、製本アプリケーション１７０４によりダイナミックレイアウト処理及び表示処理（ステップＳ２８１２）が行われる。尚、製本アプリケーション１７０４は、前述したレイアウト編集アプリケーション１２１のレイアウトエンジン１０５の機能を有するものとする。これは起動したエディタ上で、先に取得したコンテンツデータを再レイアウトし、表示する処理である。これにより図３０（ｄ）で示すようなコンテンツデータを含むレイアウト結果を表示することが可能となる。
【０１２８】
次に、本発明の他の実施形態について説明する。本発明の他の実施形態として、原稿ファイルが予め複数のテンプレートを持っている場合、製本アプリケーション上のドラック＆ドロップ（Ｄ＆Ｄ）される位置により、ＤＢファイルとして認識するしないを変更することが挙げられる。これを図２９を用いて説明する。
【０１２９】
まず、ドラック＆ドロップされた位置の原稿がテンプレートファイルかの判定処理（ステップＳ２９０１）が行われる。これは図３１のように複数のテンプレートをもつ原稿にＤＢファイルをドラック＆ドロップした場合、その位置によって原稿がテンプレートファイルかどうかを判定する処理である。ここでドラック＆ドロップされた位置の原稿がテンプレートであると判定されれば、上記実施形態と同様、ＤＢファイルのデータベースフィールドネーム取得処理（ステップＳ２９０２）が行われる。この処理は各々のフィールドからフィールド名を取得する処理である。ここでは"Name","国名"が取得されることになる。
【０１３０】
次に、ドラック＆ドロップされた位置のテンプレートのデータベースフィールドネーム取得処理（ステップＳ２９０３）が行われる。図３１の各々のテンプレートにはフィールド設定がされており、それぞれのフィールドにはデータベースフィールド名が定義されている。この中のドラッグ＆ドロップされたテンプレートの位置のデータベースフィールド名を取得する処理である。つまり、ユーザは適用させたいテンプレートにＤＢファイルをドラッグ＆ドロップするということである。
【０１３１】
その後、上記実施形態と同様のダイアログ表示処理、判定処理により、ユーザの所望するテンプレートにＤＢファイルとしての認識をさせ、同時に起動、再レイアウトを可能とする。
【０１３２】
上記の実施形態によれば、文書処理システムにインポートされたファイルをＤＢファイルとして認識し、ユーザにＤＢファイル、もしくは原稿ファイルとしての取り込みを選択させ、ＤＢファイルの場合、動的レイアウトを行い、即時にプレビューを行うことを可能とし、また、ＤＢファイルの場合、外部参照か、内部にデータを取り込むかを選択することを可能とし、ユーザに簡易なＤＢファイルの接続、プレビューを提供することができる。
【０１３３】
さらに、複数のテンプレートファイルをもつ文書処理システムに対してもそのドラッグ＆ドロップされた位置によりインポートされたファイルをＤＢファイルとして認識することを可能とし、複数のテンプレートを持つ場合にもユーザに簡易なＤＢファイルの接続を提供することができる。
【０１３４】
なお、本発明は、上記実施形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体(又は記録媒体)を、システム又は装置に供給し、そのシステム又は装置のコンピュータ(又はＣＰＵやＭＰＵ)が記憶媒体に格納されたプログラムコードを読み出して実行することによっても達成されることは云うまでもない。
【０１３５】
この場合、記憶媒体から読み出されたプログラムコード自体が上記実施の形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、上記実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(ＯＳ)などが実際の処理の一部又は全部を行い、その処理によって上記実施の形態の機能が実現される場合も含まれることは云うまでもない。
【０１３６】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わる記憶媒体に書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは云うまでもない。
【０１３７】
また、本発明は、上記実施の形態の機能を実現するソフトウェアのプログラムコードがネットワークを介して配信されることにより、システム又は装置のハードディスクやメモリ等の記憶手段又はＣＤ−ＲＷ、ＣＤ−Ｒ等の記憶媒体に格納され、そのシステム又は装置のコンピュータ(又はＣＰＵやＭＰＵ)が当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行することによっても、達成されることは云うまでもない。
【図面の簡単な説明】
【０１３８】
【図１−１】本発明の実施形態に係るコンピュータシステム構成を示す図である。
【図１−２】図１−１におけるコンピュータの概略構成を示す図である。
【図２】図１−１のコンピュータシステムにエンジンサーバを追加した構成を示す図である。
【図３】メニューバー、ツールバー、ワークエリア、フローティングパレットを含む典型的なアプリケーションのメインウインドウを示す図である。
【図４】コンテナ間のリンク、アンカーやスライダーを持つ典型的なコンテナの一面をスクリーン、ツール、アイコンで示した図である。
【図５】典型的なコンテナルールを示す図である。
【図６】リンクを作成する際の処理の流れを示すフローチャートである。
【図７】リンク作成時のＵＩの構成例を示す図である。
【図８】レイアウト計算の全体的な処理の流れを示すフローチャートである。
【図９】レイアウト計算の詳細な処理の流れを示すフローチャートである。
【図１０】図９のフローチャートに対応するＵＩ例を示す図である。
【図１１】レイアウト計算時におけるコンテナの集合について説明するための図である。
【図１２】典型的な可変リンクによるコンテナ配置を示す図である。
【図１３】図１２の状態までの操作遷移を表した図である。
【図１４】典型的なリンクの設定ダイアログウインドウを示した図である。
【図１５】固定リンクによるレイアウト結果を示す図である。
【図１６】可変リンクによるレイアウト結果を示す図である。
【図１７】文書処理システムのソフトウェア構成例を示すブロック図である。
【図１８−１】ブックファイルの構造の一例を示す図である。
【図１８−２】印刷や表示を行う際に使用するデータ構造の例を示す図である。
【図１９】ブック属性の一覧を示す図である。
【図２０】章属性の一覧を示す図である。
【図２１】ページ属性の一覧を示す図である。
【図２２】ブックファイルを開く手順例を示すフローチャートである。
【図２３】新規のブックファイルを開いた際のユーザインタフェース画面の一例を示す図である。
【図２４】既存のブックファイルを開いた際のユーザインタフェース画面の一例を示す図である。
【図２５】電子原稿ファイルをブックファイルにインポートする手順例を示すフローチャートである。
【図２６】アプリケーションデータを電子原稿ファイルに変換する手順例を示すフローチャートである。
【図２７】本発明の実施形態における処理の流れを示すフローチャートである。
【図２８−１】本発明の実施形態における処理の流れを示すフローチャートである。
【図２８−２】本発明の実施形態における処理の流れを示すフローチャートである。
【図２９−１】本発明の実施形態における処理の流れを示すフローチャートである。
【図２９−２】本発明の実施形態における処理の流れを示すフローチャートである。
【図３０】ユーザインタフェース画面の一例を示す図である。
【図３１】ユーザインタフェース画面の一例を示す図である。
【符号の説明】
【０１３９】
１００  システム
１０１  コンピュータ
１０３  ユーザインタフェース
１０５  レイアウトエンジン
１０７  ネットワーク
１０９  プリントサーバ
１１３  プリンタ
１１５  ファイルサーバ
１１７  データベースサーバ
１１９  データベース
１２１  レイアウトアプリケーションプログラム
１３２  キーボード
１３３  マウス
１４３  Ｉ／Ｏインタフェース
１４４  ビデオディスプレイ
２２５  レイアウトエンジン
２２７  エンジンサーバ
３０１  アプリケーションウインドウ
３０３  ツールバー
３１３  カーソル/ポインタ
４０６  リンクツールボタン
４０７、４０８  コンテナ
４０９  アンカーアイコン
４１０  固定されていない辺
４１２  リンク
１７００  デジタルコンピュータ（ホストコンピュータ）
１７０１  一般アプリケーション
１７０２  電子原稿ライタ
１７０３  電子原稿ファイル
１７０４  製本アプリケーション
１７０６  電子原稿デスプーラ
１７０７  プリンタ
【図１−１】
2006293430.tif 000003
【図１−２】
2006293430.tif 000004
【図２】
2006293430.tif 000005
【図３】
2006293430.tif 000006
【図４】
2006293430.tif 000007
【図５】
2006293430.tif 000008
【図６】
2006293430.tif 000009
【図７】
2006293430.tif 000010
【図８】
2006293430.tif 000011
【図９】
2006293430.tif 000012
【図１０】
2006293430.tif 000013
【図１１】
2006293430.tif 000014
【図１２】
2006293430.tif 000015
【図１３】
2006293430.tif 000016
【図１４】
2006293430.tif 000017
【図１５】
2006293430.tif 000018
【図１６】
2006293430.tif 000019
【図１７】
2006293430.tif 000020
【図１８−１】
2006293430.tif 000021
【図１８−２】
2006293430.tif 000022
【図１９】
2006293430.tif 000023
【図２０】
2006293430.tif 000024
【図２１】
2006293430.tif 000025
【図２２】
2006293430.tif 000026
【図２３】
2006293430.tif 000027
【図２４】
2006293430.tif 000028
【図２５】
2006293430.tif 000029
【図２６】
2006293430.tif 000030
【図２７】
2006293430.tif 000031
【図２８−１】
2006293430.tif 000032
【図２８−２】
2006293430.tif 000033
【図２９−１】
2006293430.tif 000034
【図２９−２】
2006293430.tif 000035
【図３０】
2006293430.tif 000036
【図３１】
2006293430.tif 000037