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