以下、本発明の実施の形態について図面を用いて詳細に説明する。
<システム構成>
まず、本実施形態の情報処理システム及び、その構成要素であるホストコンピュータのハードウェア構成について、図1A及び図1Bを用いて説明する。
図1Aは本発明の実施形態の情報処理システムの構成例を示す図である。また、図1Bは本発明の実施形態の情報処理システムの一構成要素であるホストコンピュータ(本発明の情報処理装置に相当する)のハードウェア構成を示す図である。
尚、図1A中のホストコンピュータ以外の各種コンピュータ(例えば、データベースサーバ117及びファイルサーバ115)も、例えば、図1Bのハードウェア構成と同等のハードウェア構成を有している。
図1Aにおいて、情報処理システム100は、ネットワーク107を介して、ホストコンピュータ101、データベースサーバ117及びファイルサーバ115及び画像形成装置109(例えば、プリンタ)が相互に接続されている。
データベースサーバ117は、データベース119を備えている。また、画像形成装置109は、ネットワーク107を介して受信する印刷データを適宜印刷することが可能である。
図1Aの情報処理システム100は、特に、バリアブルデータドキュメントを印刷するバリアブルプリントシステムの構成例を示している。実施形態で説明されるバリアブルプリント処理は、レイアウト編集装置として機能するホストコンピュータ101(汎用コンピュータモジュールによって構成される)で実現される。
バリアブルプリントシステム100上で実施可能となるレイアウト編集アプリケーション121は、ホストコンピュータ101において、その全体あるいは一部分が実行される。特に、レイアウト編集に関する処理や、バリアブルデータドキュメントの印刷に関する処理は、ホストコンピュータ101によって実行されるソフトウェアにより実現される。
レイアウト編集アプリケーション121等のソフトウェアやコンピュータプログラムはコンピュータ可読媒体に格納され、そのコンピュータ可読媒体からホストコンピュータ101のメモリ136にロードされ、実行される。そのようなソフトウェアやコンピュータプログラムを格納したコンピュータ可読媒体は、コンピュータプログラム製品である。そして、例えば、ホストコンピュータ101において、そのコンピュータプログラム製品を使用することにより、バリアブルデータドキュメントのレイアウト編集やバリアブルプリントに好適な装置が提供されることになる。
図1Bに示されるように、ホストコンピュータ101には、I/O(入出力)インタフェース143を介してキーボード132や、ポインティングデバイスであるマウス133が入力装置として接続される。また、出力装置としてのディスプレイ装置144がビデオインタフェース137を介して接続される。更に、画像形成装置109をI/Oインタフェース138を介して接続することも可能である。
また、I/Oインタフェース138は、ホストコンピュータ101を、ネットワーク107へ接続する機能も有する。これにより、ネットワーク107を介して、バリアブルプリントシステム100内の他のコンピュータ装置(外部機器)にホストコンピュータ101を接続することができる。ネットワーク107の典型的な例としては、ローカルエリアネットワーク(LAN)、あるいはワイドエリアネットワーク(WAN)が挙げられる。
また、図1Bに示すように、ホストコンピュータ101は、少なくとも1つのプロセッサ135、例えば、半導体メモリである、ランダムアクセスメモリ(RAM)やリードオンリーメモリ(ROM)から構成されるメモリ136を含んでいる。記憶装置139は、プログラム等の各種データを格納するコンピュータ可読媒体との間でデータのやり取りが可能なハードディスクドライブ(HDD)140やフロッピー(登録商標)ディスクドライブ(FDD)141を含む。
尚、図1Bには示されていないが、磁気テープドライブやメモリカード等の各種記憶装置も記憶装置139として使用することが可能である。CD−ROMドライブ142は、不揮発性のデータソースとして提供される(もちろん、CD−ROMによってコンピュータプログラムを提供してもよい)。
ホストコンピュータ101は、相互接続バス134を介して、ホストコンピュータ101の各種構成要素135〜134と通信する。この通信は、例えば、GNU/LINUXやマイクロソフトウインドウズ(登録商標)のようなオペレーティングシステムや、典型的にはオペレーティングシステムに従う形で実現される。あるいは、この通信は、関連のある技術で知られているもので形成されたコンピュータシステムの常套的なオペレーションモードによる方法によって、実現される。即ち、上述の各種構成要素135〜143は、相互接続バス134を介して通信可能に接続されており、ホストコンピュータ101にインストールされたオペレーティングシステムにより利用される。
尚、図1Bに示すホストコンピュータ101の例としては、IBM互換PC(パーソナルコンピュータ)やSUNのSparcstation、あるいはそれらを含んだコンピュータシステムが考えられる。
本実施形態では、レイアウト編集アプリーション121は、ハードディスクドライブ140に常駐し、プロセッサ135による実行や読込が制御される。レイアウト編集アプリケーション121の媒介記憶装置とネットワーク107からフェッチされるデータは、ハードディスクドライブ140に呼応してメモリ136を使用する。
一つの例では、レイアウト編集アプリケーション121のエンコードされたプログラムが、CD−ROMやフロッピー(登録商標)ディスク上に格納される。そして、対応するCD−ROMドライブ142やフロッピー(登録商標)ディスクドライブ141を通じて読み込まれ、ハードディスクドライブ140にインストールされる。
あるいは、別の例として、レイアウト編集アプリケーション121は、ネットワーク107からホストコンピュータ101内に読み込まれて、ハードディスクドライブ140にインストールされてもよい。
更に、レイアウト編集アプリケーション121を含む各種ソフトウェアは、磁気テープまたはROMまたは集積回路、光磁気ディスクからホストコンピュータ101内にロードされてもよい。または、ホストコンピュータ101とその他のデバイス間における赤外線等の無線通信からホストコンピュータ101内にロードされてもよい。または、PCMCIAカードのようなコンピュータ可読カード、そしてEメール通信やWEBサイト上の記録情報を持つインターネットやイントラネットを含む他の適当なコンピュータからホストコンピュータ101内にロードされてもよい。これらは、コンピュータ可読媒体の例であり、他のコンピュータ可読媒体が使用されてもよいことは明らかである。
図1Aにおいて、レイアウト編集アプリケーション121は、ホストコンピュータ101にバリアブルプリント(バリアブルデータプリント(VDP)ともいう)を実現させるものである。このレイアウト編集アプリケーション121は、2つのソフトウェアコンポーネント、即ち、レイアウトエンジン105とユーザインタフェース103を含んでいる。
レイアウトエンジン105は、フィールド領域(部分領域)であるコンテナ(矩形の範囲)に与えられたサイズや位置の制限に従って、データベース119にレコード単位で格納されているバリアブルデータから1レコードずつ読み込む。そして、読み込んだバリアブルデータとコンテナの制限とから、読み込んだバリアブルデータが流し込まれるコンテナのサイズや位置等のレイアウトを計算するソフトウェアコンポーネントである。
また、本実施形態では、レイアウトエンジン105は、更に、コンテナに割り当てられたバリアブルデータを描画し、バリアブルデータドキュメントのイメージを生成する処理も行う。但し、本発明は、これに限るものではなく、レイアウトエンジン105は、各部分領域(コンテナ)のサイズと位置を決定するアプリケーションとして動作し、プリンタドライバ(不図示)に描画情報を出力する。これにより、プリンタドライバがバリアブルデータドキュメントのイメージ描画処理を行い、印刷データを生成してもよい。
ユーザインタフェース103は、ユーザによるコンテナのレイアウトや属性設定を可能とし、ユーザにドキュメントテンプレート(テンプレート情報とも呼ぶ)を作成させる。また、ユーザインタフェース103は、ドキュメントテンプレート内の各コンテナとデータソース(データベース119上のバリアブルデータ(コンテンツ))とを関連付けるメカニズムを提供する。ユーザインタフェース103とレイアウトエンジン105は、通信チャネル123を介して通信する。
バリアブルデータドキュメント生成のためのデータソースは、一般的には、データベースアプリケーションを実行している、他のコンピュータで構成されるデータベースサーバ117上にある典型的なデータベース119が挙げられる。
ホストコンピュータ101は、ネットワーク107を介して、データベースサーバ117と通信する。レイアウト編集アプリケーション121は、ホストコンピュータ101、あるいは、一般的には、他のコンピュータで構成されるファイルサーバ115に保存されるドキュメントテンプレートを生成する。
また、レイアウト編集アプリケーション121は、バリアブルデータとマージされたドキュメントテンプレートによって構成されたバリアブルデータドキュメントを生成する。これらのバリアブルデータドキュメントは、ホストコンピュータ101のローカルファイルシステムやファイルサーバ115に保存されるか、あるいは画像形成装置109に直接印刷される。
次に、バリアブルプリントシステム100の別構成例について、図1Cを用いて説明する。
図1Cは本発明の実施形態の情報処理システムの別構成を示す図である。
図1Cは、ネットワーク107上にエンジンサーバ227を追加して、このエンジンサーバ227にレイアウトエンジン225を構成した例を示している。つまり、ホストコンピュータ101内のレイアウトエンジン105を、エンジンサーバ227内で実現した構成である。この構成の場合、ホストコンピュータ101の処理負荷を軽減することができる。
尚、このエンジンサーバ227は、他のサーバと同様、典型的なコンピュータである。また、ファイルサーバ115に保存されたドキュメントテンプレートは、印刷や他の目的がある際、レイアウトエンジン225によってドキュメントを生成するためにデータベース119に保存されたデータと結合することができる。そのようなオペレーションは、ユーザインタフェース103を介して要求されるか、特定のレコードのみ印刷するように要求される。
図1Aや図1Cでは、レイアウト編集アプリケーション121は、サーバクライアントシステムにおけるクライアント上で実現する構成としているが、これに限定されない。例えば、このレイアウト編集アプリケーション121を搭載するアプリケーションサーバを構成して、このアプリケーションサーバに対してクライアントがアクセスする構成としても良い。
具体的には、例えば、Webサーバクライアントシステムを構築し、Webサーバがレイアウト編集アプリケーション121を搭載して、このWebサーバとWebクライアント間で図1Aや図1Cの構成を実現する構成について説明する。
まず、Webサーバクライアントシステムの構成の概要について、図1Dを用いて説明する。
図1Dは本発明の実施形態のWebサーバクライアントシステムの構成を示す図である。
図1Dは、レイアウト編集アプリケーション121が搭載されたWebサーバ161に対して、Webブラウザを有するWebクライアント152〜154からの指示/操作を実現した構成である。
図1Dにおいて、ネットワーク107には、クライアント用パーソナルコンピュータ(以下「クライアントPC」)152〜154と、サーバ用パーソナルコンピュータ(以下「サーバPC」)161、画像形成装置109が接続されている。また、これらのコンピュータは、図1Bと同様のハードウェア構成を有している。
サーバPC161はWebサーバ機能を有し、クライアントPC152〜154のWebブラウザ経由から指示を受けて、その指示を発行したクライアントPCのWebブラウザに対して、処理結果を返す。但し、本発明においては、サーバPC161及びクライアントPC152〜154間の通信手法については、特に限定するものではない。また、サーバPC161単体で、図1Aや図1Cの構成を実現する形態でも構わない。
次に、Webサーバクライアントシステムの機能構成について、図1Eを用いて説明する。
図1Eは本発明の実施形態のWebサーバクライアントシステムの機能構成を示す図である。
クライアントPC152では、Webブラウザ機能を有している。これに加えて、カタログ情報や画像データ等のコンテンツをサーバPC161に登録するための情報登録モジュール172を有している。また、商品情報(コンテンツデータ)を出力するフォーム(ドキュメントテンプレート)を登録する出力フォーム登録モジュール173を有している。更に、商品情報の出力結果をプレビューする出力結果プレビューモジュール174を有している。
但し、これらのモジュールは、サーバPC161から必要に応じて、Webブラウザのプラグイン形式で自動的に配信されるので、クライアントPC152上で、インストール処理を行う必要はない。
サーバPC161は、HTTPWebアプリケーションサーバ機能を有しており、クライアントPC152からのリクエストを処理するための各種モジュール群からなるモジュールセット177を有している。
このモジュールセット177には、次のようなモジュールがある。例えば、ユーザ認証モジュール、検索処理モジュール、商品情報登録モジュール、広告情報登録モジュール、カタログ情報登録モジュール、関連付け情報登録モジュールがある。これに加えて、各種データ(カタログ情報、関連付け情報)の一括登録モジュール、各種メンテナンスモジュール、商品情報のカタログ出力モジュール等がある。
これらのモジュールは、クライアントPC161からのリクエストに応じて、サーバPC161内のメモリ上にロードされ、処理を実行する。
また、これらのモジュールとは別に、レイアウトエンジンを用いてPDFファイル等の画像編集を行う画像編集モジュール、データファイルに対して、結合・分割等の編集を行うファイル編集モジュールからなる編集モジュール178を有している。この編集モジュール178は、例えば、レイアウト編集アプリケーション121によって実現される。
更に、サーバPC161内のデータベース179(図1のデータベース119に対応)とのデータのやり取りを行うためのデータベース共通ライブラリ180や、各種機能を実現するユーティリティライブラリ181を有している。
次に、画像形成装置109の構成例について、図2Aを用いて説明する。
図2Aは本発明の実施形態の画像形成装置の詳細構成を示す図である。
画像形成装置109は、スキャナ部201、プリントエンジン202、タッチパネルで制御する制御部203、定着部204、給紙部205、排紙部206、フィニッシング装置207、排紙された用紙を保存するビン208から構成される。そして、この画像形成装置109は、これらの構成要素によって、複写機能、印刷機能、ファクス機能、データ転送機能等の複数種類の機能を実現するMFP(Multi Function Peripheral)として機能する。
画像形成装置200は、スキャナ部201、プリントエンジン202、タッチパネルで制御する制御部203、定着部204、給紙部205、排紙部206、フィニッシング装置207、排紙された用紙を保存する排紙ビン208から構成される。尚、スキャナ部201は、自動給紙装置(ADF)を有している。
画像形成装置200は、例えば、制御部203からの操作に基づいて、スキャナ部201から原稿を読み取り、指定された印刷モードで、プリントエンジン202によって印刷処理が実行される。印刷処理によって印刷用紙に印刷された印刷物は、排紙部206から排紙され、必要に応じて、フィニッシング装置207でフィニッシング処理(ステイプル処理、パンチ処理等)がなされ、排紙ビン208に出力される。
次に、制御部203によって実現される機能構成について、図2Bを用いて説明する。
図2Bは本発明の実施形態の制御部の機能構成を示す図である。
尚、制御部203には、画像形成装置109を制御するためのCPU、各種データを記憶したり、データ作業領域として機能するRAM、本実施形態の処理を実現するための制御プログラムを含む各種プログラムを記憶するROM等を有している。
231は画像形成装置109全体を制御する本発明の実行環境であり、例えば、画像形成装置109の各種機能をリアルタイムに制御可能なリアルタイムOSの各モジュールで実現される。また、この実行環境231は、CPUに、命令してクリティカルに画像形成装置109のオプション装置、拡張カードを含む各機能を制御することが可能なライブラリ群で実現されても良い。更に、この実行環境231は、その上位で動作するアプリケーションに対して、インタフェース・コマンドを提供するモジュール群により実現されるものである。
232は実行環境231上で動作するコントローラ制御部である。233はアプリケーション・プログラミング・インタフェース(以下、API)である。このAPI233は、アプリケーション236〜238等からの命令の入力の命令列に応答して、コントローラ制御部232にアクセスするための処理を、画像形成装置109に対する制御コマンドを実行環境231に送信する機能を有する。
234は、本実施形態で説明する処理を実現する特定のアプリケーションを実行するために最適な実行環境であり、例えば、Java(登録商標)の仮想マシンにより実現される。236、237、238は仮想マシン234上で動作するアプリケーションであり、API233を使用してコントローラ制御部232に各種処理を依頼する。また、ネットワークを介してネットワーク107上の各種情報処理装置161、152〜154と通信することも可能である。
235は仮想マシン234が使用する資源を管理するリソース管理部であり、実行環境231上で動作する。リソース管理部235は、仮想マシン234自身、API233、あるいは仮想マシン234上の全アプリケーション236〜238がメモリ等のリソース資源を使用する際、予め決められた以上の資源が使用できないように制限する。
<レイアウト編集アプリケーションの概要>
まず、バリアブルデータプリントの概略について、図3Aを用いて説明する。
図3Aは本発明の実施形態のバリアブルデータプリントの概略を説明するための図である。
レイアウト編集アプリケーション121のユーザインタフェース103により、ユーザからの操作指示に従いページ上に複数のコンテナ181〜183を配置する。そして、ユーザインタフェース103により、その各コンテナに位置やサイズに関する制約条件を付与することによりドキュメントテンプレート180が生成される。
また、ユーザインタフェース103は、ドキュメントテンプレート180とデータソース190(例えば、データベース119)との関連付け、更に各コンテナとデータソース190内の各データフィールドとの関連付けを行う。各コンテナとデータソース190内の各データフィールドとの関連付けを示す関連付け情報は、ドキュメントテンプレート180内に記述され、該ドキュメントテンプレート180は、HDD140に格納される。また、データソース190は、レコード単位で項目データが記載されているファイルであり、HDD140に格納されている。
レイアウトエンジン105は、ユーザからの印刷指示もしくはプレビュー指示に応じて、ドキュメントテンプレート180の各コンテナ181〜182に、関連付け情報で関連付けられたデータをデータソース190から読み込む。そして、そのデータをレコード単位でコンテナに流し込み(例えば、データレコード1のデータフィールドA〜Cをコンテナ181〜183へ流し込む)、流し込まれたデータに応じて各コンテナのサイズ等を調整(レイアウト調整)する。
プレビュー指示の場合は、レイアウト調整されたドキュメントイメージを生成し、ディスプレイ装置144の画面上にプレビューとして表示するべく出力される。また、印刷指示の場合は、レイアウトエンジン105もしくはプリンタドライバを用いて生成したドキュメントイメージを印刷データとして画像形成装置109へ出力する。データレコード1,2,3…を順次処理することにより、バリアブルデータプリントが実現されることになる。
<レイアウト編集アプリケーションの説明>
以下、レイアウト編集アプリケーション121について説明する。
まず、ユーザインタフェース103によって実現されるユーザインタフェースの一例について、図3Bを用いて説明する。
[メインウインドウ]
図3Bは本発明の実施形態のユーザインタフェースの一例を示す図である。
図3Bに示すように、ユーザインタフェース103は、操作時にアプリケーションウインドウ301によって形成されたユーザインタフェースをディスプレイ装置144に表示させる。このアプリケーションウインドウ301は、メニューバー302、ツールバー303、ワークエリア306とオプションのパレット311を有する。
メニューバー302とツールバー303は非表示にしたり、画面上の色々な場所に移動することが可能である。また、ワークエリア306は、マウス133の操作によってその場所を移動させることが可能である。また、パレット311はオプションであり、目的に応じて表示/非表示を制御することができる。更に、カーソル/ポインタ313は、マウス133の指示位置を表示する。
メニューバー302は、周知の技術として知られているように、メニューオプションの階層の下に拡張される多くのメニューアイテム304を有する。
ツールバー303は、アプリケーションの特別なモードによって非表示状態にする、または表示状態にすることが可能な多くのツールボタンとウィジット(部品)305を有する。
ルーラー308はオプションであり、ワークエリア306内のポインタ、ページ、ライン、マージンガイド、コンテナまたはオブジェクトの位置を示すために使用される。
パレット311は、バリアブルデータライブラリのような追加機能にアクセスするために使われる。パレット311は、移動、リサイズ、クローズをするためのウインドウコントロール312を有する。また、パレット311は、ワークエリア306の前面に表示したり、あるいはオブジェクトの背面に隠すことができる。更に、パレット311は、アプリケーションウインドウ301の範囲内のみにその表示を制限したり、アプリケーションウインドウ301の外側にその一部或いは全体を表示することが可能である。
ツールバー303には、図4に示されるような、ユーザが選択可能な複数種類の『ボタン』403〜406が配置されている。
(1)選択ツールボタン403:コンテナの辺を選択、移動、サイズ変更、リサイズそしてロック/ロック解除のために使われる。コンテナの選択は、コンテナの周囲に選択ボックスをドラッグすることによりなされる。また、キーボード132上のCTRLキーを押しながら、複数のコンテナについて選択操作をすることによって、複数のコンテナを選択可能である。
(2)テキストコンテナツールボタン404:スタティックあるいはバリアブルテキストを有するコンテナを作成するために使用される。
(3)イメージコンテナツールボタン405:スタティックあるいはバリアブルイメージを有するコンテナを作成するために使用される。
(4)リンクツールボタン406:コンテナ間に関連付けを行うリンクを作成するために使われ、リンクの距離をコントロールするためにも使用される。
尚、これらのボタンは、周知の技術で知られているように、操作状況に合わせて変化するアイコンのツールチップとして実装される。
また、アプリケーションウインドウ301は、ページ内に各コンテナやリンクをレイアウトすることで、基本レイアウトを決定することができる。基本レイアウトとは、バリアブルデータプリントで基本となるレイアウトのことである。基本レイアウト内の各コンテナが固定コンテナである場合は、すべてのレコードの印刷結果のレイアウトは同じになる。
また、基本レイアウト内の各コンテナが後述する可変コンテナである場合は、レコード単位に読み込まれるデータの量やサイズにより各コンテナのサイズや位置が、後述する制約の範囲内で変動することになる。
よって、レイアウト編集アプリケーション121で作成されるドキュメントテンプレートは、あくまで基本レイアウトを決定するものである。そのため、動的コンテナが含まれる場合は、最終的な印刷物のレイアウトは読み込まれるデータによりレイアウト調整されることになる。
一方、この動的コンテナに対して、コンテナのサイズや位置が固定であるものを、静的コンテナと呼ぶ。
[ドキュメントテンプレート]
図3Bにおいて、ワークエリア306は、ドキュメントテンプレート(180:基本レイアウト)のデザインを表示・編集するために使われる。これは、ユーザがドキュメントテンプレートをデザインする過程において、印刷されるドキュメントの概観をユーザに提示することを可能とする。これにより、ユーザは、データソース(190)とマージされたドキュメントが、バリアブルデータの量・サイズに基づいてどのように変化するかを容易に理解することができる。
また、データソースがドキュメントテンプレートに関連付けられていた場合は、現在のドキュメントのプレビューができるように、対応するバリアブルテキストやイメージがレイアウトされた各コンテナに表示される。
ドキュメントテンプレートにおけるドキュメント構造とコンテナを描写する視覚的な手がかり(コンテナの枠線、アンカー、スライダー、リンク等)は、ドキュメントテンプレート作成時には常に表示される。また、バリアブルデータを流し込むプレビュー時には、視覚的な手がかりは、カーソルをコンテナ上に移動させたときや、コンテナを選択したときに表示される。
ワークエリア306は、スクロールバー307と、オプションのルーラー308と、ドキュメントテンプレート309を含む。ドキュメントテンプレート309は、ページが複数あることを示すことができる。また、ドキュメントテンプレート309は、図3Aのドキュメントテンプレート180に相当するものである。
与えられたドキュメントテンプレートのページサイズは、周知の技術を用いて、ユーザによって指定される。例えば、メニューの「ファイル」から「ページ設定」を選択することでページサイズを設定するダイアログを表示し、そこでユーザが指定したページサイズが反映されることになる。
それぞれのドキュメントでの実際のページ数は、関連付けられたデータソース内のバリアブルデータによって変化する可能性がある。これは、ドキュメントテンプレート内に動的表のように、バリアブルデータの量により大きさが変更されるフィールドが設定されている場合である。つまり、この場合には、1ページ内にバリアブルデータをフィットできないバリアブルデータが読み込まれると、追加のページが自動的に作成されるからである。
それぞれのページ内に示される境界線310は、ページ上の印刷可能なオブジェクトの最大幅を示す、任意のページマージンである。
また、図4では、1ページのドキュメントテンプレート309上に表示され得るオブジェクトの例を示している。
このようなオブジェクトとしては、コンテナ407、408と、任意に適用するアンカーアイコン409、固定されている辺411、414、固定されていない辺410、リンク412、そしてスライダー413がある。
アンカーアイコン409は、コンテナの矩形の角、辺、またはコンテナの中央に設定することが可能である。アンカーアイコン409が設定されると、設定された個所の位置が固定となる。つまり、図4の例では、アンカーアイコン409は、コンテナ407の左上の角に設定されている。そのため、コンテナ407はバリアブルデータが流し込まれ、バリアブルデータの画像サイズもしくはテキスト量が多い場合には、右方向及び下方向に拡大可能であることを示している。
一方、アンカーアイコン409が辺に設定されている場合は、その辺が固定となり、その他の3辺の各方向に拡大可能である。また、アンカーアイコン409がコンテナの中央に設定されている場合は、コンテナの中央位置が固定となり、コンテナ矩形の中央位置が変わらないように、4方向に拡大可能である。リンク412についての詳細は後述するが、これは、コンテナ407とコンテナ408が関連付けられていることを示しており、このリンク412に設定されている長さ(範囲指定可能)を保ちつつ、コンテナ408が右方向に移動可能であることを示している。スライダー413は、設定されている辺と水平方向に移動可能であることを示している。
[コンテナ]
次に、データベース中の各レコードに含まれる複数種類のデータフィールドのデータを差し込むためのフィールド領域であるコンテナについて説明する。コンテナは、ドキュメントテンプレート内にバリアブルデータファイルから固定あるいは可変のテキスト/イメージ(複数種類のデータフィールドのデータ)が流し込まれ、描画されるフィールド領域(これを部分領域と呼ぶ)である。そして、このコンテナは、図4に示されるように他のコンテナやオブジェクトと共にレイアウトされる。ユーザインタフェースを介して、ユーザからの操作指示により、コンテナは、マウス133の操作により移動、サイズ調整、再作成される。
より正確には、コンテナは、設定の集まり、視覚的表現、そしてインタラクションと編集動作をもっている。以下、実施形態におけるコンテナの定義を示す。
(1)コンテナは、固定あるいは可変のコンテンツを持つ。可変コンテンツ(バリアブルデータ)は、データソースから取得したデータがドキュメント毎、つまり、レコード毎に異なる可能性があるという意味でダイナミック(動的)であるということができる。但し、実施形態の可変コンテンツは、アニメーション化されたもの、あるいは他の方法で時間的に変化するコンテンツは印刷には適していないため、ここでは、意図していない。
同様に、固定コンテンツは、コンテナを使って生成される全てのドキュメントで、同じように表示される。しかしながら、可変コンテンツとリンクが設定されている場合、可変コンテンツの影響を受けて、固定コンテンツはそれぞれのドキュメントで位置が異なる可能性がある。
(2)コンテナは、コンテンツに適用される背景色、ボーダー、フォント・スタイルのようなテキスト設定と同様の装飾機能を持っている。このような設定を、コンテナ属性と呼ぶ。コンテナ属性は、各コンテナ毎に設定可能であるが、あるコンテナと同じコンテナ属性であるという設定を行うことも可能である。
(3)コンテナは、ドキュメントを生成する際にデータソースからのデータとマージされる。装飾機能は、どんな固定コンテンツでもそうであるように、印刷された出力物において可視である。可変コンテンツは、データソースからの特定のデータの表示を提供する。コンテナのこの表現は、例えば、印刷されるか、ディスプレイ装置144のスクリーン上に表示されるか、その両方が可能である。
(4)コンテナは、図4に示されるように視覚的な手がかりとしてのユーザインタフェースを有している。例えば、コンテナの編集そして表示設定のためのインタラクティブなグラフィカルユーザインタフェース(GUI)を有する。GUIコンポーネントは、ディスプレイ装置144のスクリーン上に表示されるが、ドキュメントとしては印刷されない。レイアウト編集アプリケーション121のユーザインタフェース103は、背景色やフォントのようなコンテナの装飾機能のいくつかを表示し、さらにコンテナの設定の編集や表示を可能にするための機能を有している。
ユーザインタフェースの機能の特別な目的の例としては、ボーダー、あるいは、コンテナのサイズや位置を対話的に変更、表示するための角アイコンがある。あるいは、コンテナがデータソースからデータをマージされたとき、コンテナの動作を示すための上塗りした数、線、アイコン、テキストがある。
[コンテナの制約]
コンテナはそれぞれのドキュメントで表示されるコンテンツをどのように結びつけるかの制御に関する制約がある。これらの制約(固定/可変コンテンツをコンテナと結びつけることを含む)は、ユーザが一つのドキュメントテンプレートから多数のドキュメントの生成をコントロールする主要な方法である。
制約の一つの例には、『このコンテナのコンテンツの高さは最大4インチです』がある。また、別の制約の例には、『コンテナのコンテンツの左エッジは、それぞれのドキュメントにおいて同じ水平位置で表示しなければならない』がある。ここに記述される内容は、GUIを使ってこのような制約を表示、編集するためのいろいろな方法である。
イメージがページ上に定義された場所を持っているように、固定コンテンツの配置を指定するコンテンツプレイスホルダーは、デジタル印刷技術でよく知られている。コンテナは、位置とサイズを持ち、それらは公知の技術で知られている手法で編集され、表示される。よって、以下の説明では、バリアブルデータプリントに特化した方法における表示・編集に焦点を合わせる。
コンテナを用いることにより、ユーザは、ドキュメントにおけるコンテンツのサイズ(描画サイズ)や位置を指定することが可能となる。いく種類ものドキュメントが一つのドキュメントテンプレートから生成されるので、コンテナに多数の可能性と制約を設定することになるが、これらの設定(指定)や表示のために所定のユーザインタフェースが利用される。
1つのコンテナの辺は、関連付けられたコンテンツがドキュメント内で表示される仮想の境界線を定義する。従って、コンテナの左辺を論じることは、関連付けられたコンテンツが、各ドキュメントにおいて、表示可能であるエリア内の最も左の辺を論じることと同じである。同様に、コンテナの高さを論じることは、生成されたドキュメントで関連付けられたコンテンツの高さの制約を論じることとして理解される。本明細書では、ユーザインタフェース103を参照して、コンテナの辺あるいは大きさを論じるところで、この区別は明らかにされるであろう。
以下の記載において、コンテンツの表示を制限するために使われるある値を定義している用語『固定』は、全てのドキュメントで同じである。
(1)コンテナの幅が固定である場合、関連付けられたコンテンツに割り当てられる幅は、全てのドキュメントで同じになる。
(2)コンテナの高さが固定である場合、関連付けられたコンテンツに割り当てられる高さは、全てのドキュメントで同じになる。
(3)距離(リンクの長さ)が固定である場合、指定された距離は全てのドキュメントにおける制約となる。
(4)コンテナの左右辺が固定の場合、ページに関する辺の水平位置は全てのドキュメントで同じであることを意味している。但し、コンテナの高さあるいは垂直方向の位置は、変化する可能性がある。例えば、コンテナの左辺が固定である場合、関連付けられたコンテンツの表示位置は、全てのドキュメントでその左辺の位置は同じ水平位置となる。しかしながら、あるドキュメントではページの上の方に表示され、他のドキュメントではページの下の方に表示される可能性がある。
(5)コンテナの上下辺が固定の場合、ページにおける辺の垂直位置は全てのドキュメントで同じとなることを意味している。但し、コンテナの幅あるいは水平位置はドキュメントによって変わる可能性がある。
(6)コンテナの垂直軸は、コンテナの右辺と左辺に平行で、それらの中間に位置される仮想の垂直線である。もしコンテナの垂直軸が固定なら、当該コンテナの左右辺の水平位置の平均(即ち、左右の中央位置)は、すべてのドキュメントで同じとなる。この制約において、コンテナの幅は変化する可能性がある。しかしながら、左右辺が垂直軸にもっとも遠いものからもっともものまで、垂直軸は全てのドキュメントで同じ水平位置となる。尚、コンテナの高さと垂直位置はこの制約によって影響されない。
(7)同様に、もし水平軸が固定なら、コンテナの上辺と下辺の平均が同一の垂直方向位置に配置される。但し、コンテナの幅と水平位置はこの制約によって影響されることはない。
(8)水平軸と垂直軸の両方が固定である場合、コンテナの中心位置が固定されていることを意味する。但し、コンテナの幅・高さは、この制約によって影響されない。
(9)コンテナの角位置、コンテナの辺の中間位置、あるいはコンテナの中心位置が固定である場合、それぞれの位置はすべてのドキュメントで同じ場所となる。例えば、もしコンテナの左上角が固定なら、配置されたコンテナの左上位置が全てのドキュメントで同じになることを意味している。
(10)垂直辺あるいは垂直軸は、ページの左辺もしくは右辺、あるいは左ページマージンもしくは右ページマージン、あるいは他の水平位置に関連付けされて固定することができる。同様に、水平辺あるいは水平軸はページの上辺もしくは下辺、あるいは上下ページマージン、あるいは他の垂直位置に関連付けされて固定することができる。
『固定』の反対は、コンテナの辺、軸、角、中間位置、あるいはドキュメント制約がドキュメント間(レコード間)で変化するかもしれないことを意味する『可変』である。例えば、ページ内では、バリアブルデータのサイズや量により、動的にレイアウトが変更されることを期待するが、特定のコンテナについては、大きさや位置を固定にしたり、また、ページの角のコンテナの四隅は固定にしたいということを所望する場合がある。
そのため、レイアウト編集アプリケーション121では、各コンテナ(部分領域)について、辺、軸、角、中間位置等を固定にするか、可変にするかを適宜設定できるようにしている。これにより、ユーザはドキュメントテンプレート180の基本レイアウトを決定する場合に、ユーザが所望とするように基本レイアウトを作成することができる。
[コンテナ表示・編集]
−−新規コンテナの作成方法−−
コンテナは、テキストコンテナとイメージコンテナの2種類で記述される。テキストコンテナはテキスト及び埋め込みのイメージを有する。イメージコンテナは、イメージだけを有する。
図4で示されるように、新規のテキストコンテナあるいはイメージコンテナは、テキストコンテナツール404あるいはイメージコンテナツール405をマウス133でクリックし、ドキュメントテンプレート309上に四角形をドラッグする。これによって、当該ドキュメントテンプレート309上に作成される。
あるいは、コンテナは、所望のテキストコンテナツール404あるいはイメージコンテナツール405をアクティブにした後に、ドキュメントテンプレート309上で単にクリックすることによって作成されるようにしてもよい。この場合、マウス133のクリック操作に応じてデフォルトサイズのコンテナがテンプレート上に挿入されるとともに、当該新規コンテナの寸法等を設定するためのダイアログボックスあるいは他のプロンプトが提供される。
尚、コンテナサイズは、自動的に前もって定義されるようにしてもよいし、あるいは、計算されたスキーマによって作成・配置される等、種々の方法が考えられる。ここで、生成されたコンテナをマウス等の入力装置により選択し、右クリックでプロパティを指示する等の操作を行うことにより、コンテナのプロパティダイアログが表示され、コンテナの制約を設定することができる。
[コンテナの表示方法]
図5(A)から(D)は、コンテナの辺に関する表示ルールを例示している。
レイアウト編集アプリケーション121は、コンテナの辺の状態を表現するために、実線503(アイテム)あるいは点線504を用いて辺を表す。これに加えて、アンカー506、507、509(コンテナの辺の近くに描画される線、形状、アイコン)を用いる。更に、ハンドル502(移動、修正するために領域の辺上あるいは近傍に描画されるコントロール点)、スライダー413(辺の両側に描画される短い並行線、図4参照)、拡縮アイコン505、色を用いる。
図5(A)〜(D)に示されるコンテナ表示方法のルールは、以下の通りである。
(1)それぞれの辺を固定するために、実線で描画する。
(2)幅が固定の場合は、左と右の辺を実線で描画する。
(3)高さが固定の場合は、上と下の辺を実線で描画する。
(4)軸は描画しない。
(5)(1)〜(3)によって描画されていないそれぞれの辺の近くには、拡縮アイコンが描画され、それらの辺を点線で描画する。
(6)垂直辺と水平辺、あるいは垂直軸と水平軸のそれぞれのペアで、もし両者が固定なら、それらの交差点にアンカーが描画される。
(7)それぞれの固定辺で、もし辺のどこにもアンカーが描画されていなければ、エッジの中央にスライダーが描画される。
(8)垂直及び水平辺、あるいは垂直及び水平軸のそれぞれのペアで、アンカーやスライダーが描画されていない場合、それらの交差点にハンドルが描画される。
ルール(1)、(2)、(3)で定義された線は、前述したように固定あるいは制限されているため実線で描画される。ルール(5)のように、可変の辺は、点線で描画される。ルール(6)、(7)、(8)で定義された固定された点は、アンカーを表示し、いくつかの固定された辺は、スライダーを表示し、他はハンドルを表示する。
上記のルールは、ユーザにより後で設定された制約が優先される。つまり、後で別の制約が設定された場合、上記のルールが描画されるべき辺に影響すれば、実線や点線の描画内容が変更されることになる。例えば、もしコンテナがとても小さくアイコンがお互い重なるか、あるいは他の表示機能を不明瞭にするならば、アイコンは異なって、あるいは省略されて描画される可能性がある。
可変の辺が描画される場所は、コンテナのコンテンツに依存する。後に説明するように、ドキュメントテンプレートにコンテンツがマージされて、ユーザインタフェースで可視になることを意味する、『動的な校正処理』が使われる。代わりの実行は、すべてのドキュメントで平均化されるコンテナのコンテンツエリアで、あるいは、可変の辺がユーザインタフェースで、どこにレイアウトされるべきか決定するほかの手段で使われることができる。
これらのコンテンツ表現は、コンテナの各辺の状態を表示するグラフィック機能を提供する。その表現の解釈は、下記の通りである。
(1)図4の辺410のように、点線は、コンテナのコンテンツに依存してドキュメント内の辺の位置が変化することを意味する。
(2)実線の辺414は固定されている、あるいはコンテナの幅・高さが固定されている(コンテナ408では、4辺が実線であり、両方が固定されている)ために制限された辺であることを意味する。
(3)アンカーは、辺及び軸が交差した場所が固定されていることを意味する。それゆえ、アンカー点は、すべてのドキュメントの水平、垂直位置で現れることになる。アンカーは当然固定される。図4のアイコン409は、辺414の交差する位置が固定されていることを意味しているアンカーアイコンの例である。
(4)スライダーは、関係付けられた辺の長さが固定されているが、並行移動する可能性があることを意味する。例えば、図4で、スライダー413は、コンテナ408のコンテンツが、ドキュメント内で特定のダイアグラムで表される位置の、左あるいは右に表示されるかもしれない。
例えば、コンテナ408と関連付けられている(リンク設定されている)コンテナ407に流し込まれるデータの画像サイズもしくはテキスト量が少ない場合は、コンテナ407のサイズが小さくなる。そのため、コンテナ408は、左方向にスライド(並行移動)してレイアウトされて表示されることになる。また、コンテナ407のサイズが大きくなる場合は、逆にコンテナ408は右方向にスライドしてレイアウトされることになる。
これらのアイコン・辺のいくつかあるいは全ては、どのツール、どのコンテナを、選択・ハイライトあるいはアクティブにするかによって、描画されたりされなかったりする。一般的に、コンテナの辺・アイコンはドキュメントテンプレートのデザインの手助けであるため、印刷物には描画されない。
尚、前述したように、コンテナの幅・高さの基本値・最小値・最大値の基本パターンの設定は、副次的なダイアログウインドウに表示される。
図5(A)で、コンテナ501は、幅・高さの両方が固定されていない(可変である)。固定された辺503は実線で表現され、可変の辺504は点線で表現されている。拡縮アイコン505は、隣接する辺504が可変であることを示す。他の形態のインジケータを代わりにあるいは追加的に用いてもよい。
図5(B)において、コンテナ501は、幅・高さ両方が可変である。アンカーアイコン506が、交差している両方の辺503の角の位置が固定されていることを明示的に表すべく追加されている。
図5(C)において、コンテナ501は、コンテナの幅及び高さの両方が可変であり、任意のアンカーアイコン507で示されるような中心点の周りを平等に広がるという状態を示している。即ち、コンテナ501は、アンカーアイコン507を中心に拡大あるいは縮小が可能である。ここでの拡大/縮小は、アンカーアイコン507の位置が常にコンテナ501の中心点となるようにレイアウト調整される。
図5(D)において、コンテナ501は、上辺508が固定されているが、幅・高さの両方が可変である。上辺508の中心に位置付けられて示されるアンカーアイコン509は、固定されている。そしてコンテナ501の左辺・右辺(502)は、アンカーアイコン509を通って垂直な中心軸(垂直軸)の周りを、拡大・縮小する。
[リンク]
リンクは、コンテナとコンテナの関連を示している。関連とは、コンテナ間の距離を示しており、リンクによって関連付けられたコンテナ同士は、互いのレイアウト変更の影響を受けてレイアウト計算を実行する。例えば、上述のように、図4のリンク412は、コンテナ407とコンテナ408とを関連づけている。リンクの設定方法及び、リンクで関連付けられたコンテナのレイアウト計算方法については、後述する。
[リンクの設定方法]
次に、コンテナ同士を関連付けるためのリンクの設定について説明する。
図6は本発明の実施形態のリンクの設定処理を示すフローチャートである。また、図7は本発明の実施形態のリンク設定時のユーザインタフェースの遷移例を示す図である。以下、図6及び図7を用いてコンテナにリンクを設定する方法について説明する。
まず、ステップS601において、レイアウト編集アプリケーション121は、ユーザインタフェースのワークエリア306上に編集対象の選択されたドキュメントテンプレートを表示する。リンクを設定するためには、リンクを設定するためのコンテナ(最低2つ)がドキュメントテンプレート上に作成されている必要がある。図7(A)〜(C)では、ステップS601で、2つのコンテナを作成してリンクを設定する場合のユーザインタフェースの遷移例を示している。
次に、ステップS602において、レイアウト編集アプリケーション121は、リンクツールを選択状態にする(図4のボタン406をクリックすることにより選択状態となる)。
図7(A)において、コンテナ701と702はすべて固定されている辺で構成されているものとする。また、703と704は、図4の409と同じであり、アンカーを意味する。705は、マウスポインタを意味している。
さて、リンクツールが選択状態となっている間に、ユーザはリンクを設定する2つのコンテナの内の一方(コンテナ701とする)をクリックして選択する。この操作に応じて、レイアウト編集アプリケーション121のユーザインタフェース103は、第1のコンテナが選択されたことを認識し(ステップS603)、選択されたコンテナを特定する情報を保持する。
また、以降のマウスカーソルの移動に応じた軌跡を画面に表示するようにする。例えば、図7(B)における線分706は、(A)の状態におけるクリック位置と現在のマウスポインタ705の位置とを結んだ線を示しており、このUIによりどの位置にリンクが設定されるのかをユーザに明示することができる。
次に、ユーザは、図7(B)で示されるように、もう一方のコンテナ(コンテナ702)までマウスポインタ705を移動してクリックする。この操作に応じて、ユーザインタフェース103は第2のコンテナが選択されたことを認識し(ステップS604)、選択されたコンテナを特定する情報を保持する。
レイアウト編集アプリケーション121は、ステップS603で選択された第1のコンテナと、ステップS604で選択された第2のコンテナとの間にリンクを設定する。
こうして、ユーザにより選択された2つのコンテナ701、702の間にリンクが設定されると、リンク707を表示する(ステップS605)。更に、このリンク設定を受けて、コンテナの表示状態は、図7(C)の状態になる(ステップS606)。
即ち、リンクが設定されたことにより、コンテナのUIが自動的に変更される。ここでは、リンクによって関連付けられた辺が可変となり、点線で示されている状態を示している。つまり、図7(C)において、708は点線で示されている辺であり、前述した通り可変の辺を示すものである。
尚、図7(C)のようなコンテナの辺の状態の変化は、リンクを設定したことによりコンテナの辺を可変にする必要が生じたことにより自動的に実行されたものである。これは、リンクを設定したにもかかわらず全ての辺が固定であるという矛盾の発生を防ぐことを目的としている。また、709は図5の505と同じで、リンクを設定したことにより、コンテナが変化できる方向をユーザに視覚的に示したマークである。また、図7(C)の例では、左のコンテナの右辺と右のコンテナの左辺が可変な状態へ変化したが、これは一例であり、例えば、右コンテナが図4のスライダー413を持つ設定に変化してもかまわない。
<レイアウトエンジンによるレイアウト計算処理>
[レイアウト計算方法(全体フロー)]
本実施形態のレイアウト編集アプリケーション121は、少なくとも2種類の操作モードを有している。1つは、ユーザインタフェース103を用いてコンテナを作成し、そのコンテナ間に関連付け(リンク設定)を行ってレイアウトを作成するレイアウトモードである。もう1つは、レイアウトエンジン105により、作成したレイアウトにデータソースの各レコードを挿入して、実際にレコードが挿入された後のレイアウト結果をプレビューするプレビューモードである。
このプレビューモードにおいて、実際のレコードが挿入され、レイアウトを計算する。但し、プレビューモードは、表示上でのレイアウト計算である。実際に印刷する場合においても、レイアウトエンジン105が各コンテナにデータを挿入してレイアウトを計算するが、その際の計算方法はプレビューモードと同じである。
図8は本発明の実施形態のレイアウト計算処理を示すフローチャートである。
まず、プレビューモードが選択される(ステップS801)。プレビューモードになったら、レイアウト編集アプリケーション121は、ユーザにプレビューするレコードをデータソースより選択させ、選択されたレコードの各フィールドデータを各コンテナに挿入する(ステップS802)。
各コンテナへフィールドデータを挿入すると、レイアウト編集アプリケーション121は、そのレコードをレイアウトするためのレイアウト計算を行い、必要に応じてレイアウト調整を行う(ステップS803)。尚、ステップS803におけるレイアウト計算の詳細については後述する。
そして、レイアウト編集アプリケーション121は、ステップS803で計算されたレイアウトを表示(プレビュー)する(ステップS804)。レイアウト編集アプリケーション121は、他のレコードについてもプレビューを行うかどうかをユーザの指示により判定する(ステップS805)。ステップS805で、他のレコードについてプレビューを行う必要がない場合(ステップS805でNO)、プレビューモードを終了する(ステップS807)。
一方、他のレコードについてプレビューを行う場合(ステップS805でYES)、レイアウト編集アプリケーション121は、他のレコードを選択して再度レイアウト計算を行い、プレビューを行う(ステップS806)。
尚、プレビューモードでなく印刷時においては、印刷するレコード全てについて順にレイアウトの計算を行う。従って、ステップS804は存在せず、ステップS805は印刷するレコードを全て処理したかの判断を行う。ステップS803で、レイアウト計算された結果を、描画出力して出力し、プリンタドライバを用いて印刷データとして生成し、プリンタに印刷データが出力される。この場合、全てのレコード(印刷対象の指定された全レコード)について印刷データの出力が終了した時点で、本処理を終了することになる。
[レイアウト計算方法(詳細)]
次に、ステップS803のレイアウト計算の詳細について、図9を用いて説明する。
図9は本発明の実施形態のレイアウト計算処理の詳細を示すフローチャートである。
尚、図9は、レイアウト計算処理についてのみ説明するためのフローチャートであるため、バリアブルデータプリントの1レコードの印刷/プレビュー時のレイアウト計算処理に相当する。複数レコードの場合は、下記の処理が繰り返されることになる。
まず、レイアウト編集アプリケーション121は、レイアウトを計算するコンテナの集合を設定する(ステップS901)。レイアウト計算は、関連付けられたコンテナを一つの集合として計算を行う。
例えば、図10を参照すると、ページ上に4つのコンテナがレイアウトされており、各コンテナに関連付けが設定されている。この場合、コンテナAとコンテナB、そしてコンテナCとコンテナDがリンクによって関連付けされている。
従って、コンテナA、Bが集合1、コンテナC、Dが集合2となる。即ち、リンクによって接続されたコンテナ群を一つの集合として特定する。前述したように、1101はアンカー、1102は固定された辺、1103はコントローラ、1104は可変の辺の変化方向を示している矢印、1105は可変の辺、1106はリンク、そして、1107はスライダーを示している。
次に、レイアウト編集アプリケーション121は、ステップS901で設定したコンテナの集合から、レイアウトを計算するために一つを選択する(ステップS902)。そして、選択したコンテナの集合について、レイアウトの計算を行う。
まず、選択したコンテナの集合に含まれる可変要素である2つのコンテナA、Bについて、流し込まれるデータの画像サイズもしくはテキスト量から各コンテナがなにも制約を受けない場合の大きさを計算する。
具体的には、レイアウト編集アプリケーション121は、コンテナAが画像データ用コンテナであるか、テキスト用コンテナであるかを判定する。この判定は、前述したように、コンテナに対して設定されている属性により判定できる。
次に、レイアウト編集アプリケーション121は、コンテナAに流し込まれるデータを読み込む。そして、コンテナAが画像データ用コンテナである場合は、その画像データのサイズ(幅、高さのピクセル数、及び解像度)がコンテナAの制約を受けない場合の大きさになる。
また、コンテナAがテキスト用コンテナである場合は、そのテキストデータも文字数と、コンテナAのコンテナ属性で指定されている文字属性に基づいて、コンテナAに流し込まれるべきデータ量を計算できる。この文字属性には、例えば、フォントタイプ、フォントサイズ、文字ピッチ、行ピッチ等がある。
ここで、テキスト用コンテナの場合は、コンテナAの縦横比が制約を考えないと決定できないため、制約を当てはめる。図10の例では、コンテナAは、左上及び左下の角にアンカーが設定されているため、高さ(縦方向)が固定となる。よって、レイアウト編集アプリケーション121は、コンテナAの基本パターンとして設定されている幅(横方向)のコンテナAに、計算したデータ量(テキスト量)の文字を流し込めるか否かを判定する。
すべての文字を流し込めると判定された場合は、コンテナAは、基本パターンで設定されているサイズ(幅、高さ)に変更はない。また、すべての文字を流し込めないと判定された場合は、コンテナAは、アンカー設定により高さが固定であるため、横方向に伸びることになる。ここで、レイアウト編集アプリケーション121は、コンテナAの幅がどれだけになると、計算したデータ量の文字を流し込めるかを計算し、コンテナAのサイズを算出する。
次に、レイアウト編集アプリケーション121は、レイアウトされるコンテナのサイズが、実際のコンテンツのサイズとできる限り差が少なくなるように、レイアウトの最適化を行う(ステップS903)。
レイアウトの最適化は、動的にサイズを変化することが可能なように関連付けられたコンテナにおいて、それぞれに挿入されるコンテンツのサイズとレイアウトされるサイズとの差が、できる限り同じになるように行われる。
レイアウト編集アプリケーション121は、ステップS902で算出したコンテナの集合のサイズを計算する。つまり、コンテナAとコンテナBとリンク1106(ここでは固定リンク)の合計サイズを計算する。そして、この合計サイズと、基本レイアウトにおける当該コンテナの集合のサイズ(図10の例ではコンテナAとコンテナBのそれぞれのアンカーアイコンの距離に相当する)との差を計算する。コンテナAやコンテナBの幅が大きくなると、前ステップで計算されている場合は、差分値が発生する。レイアウト編集アプリケーション121は、この差分値をコンテナの集合の各要素に均等に分配することでレイアウト調整を行う。
次に、レイアウト編集アプリケーション121は、レイアウトの最適化を行い、そのレイアウトがルールに違反しているか否かを判定する(ステップS904)。ルールに違反していない場合(ステップS904でYES)、ステップS905に進む。一方、ルールに違反している場合(ステップS904でNO)、ステップS903に戻り、再度ルールを違反しないように計算をする。
ここでルールとは、レイアウト作成時にユーザによって設定される制限であり、コンテナのサイズの可変範囲や位置の制限、可変リンクの場合はリンクの長さの変化の制限などである。ルールを違反しないようにレイアウトが計算されたら、その集合のレイアウトは完成される。
そして、ステップS902〜ステップS904の処理をページ上のすべての集合について施し、レイアウト編集アプリケーション121は、ページ全体のレイアウトの計算が終了したか否かを判定する(ステップS905)。計算が終了していない場合(ステップS905でNO)、ステップS902に戻る。一方、計算が終了している場合(ステップS905でYES)、処理を終了する。
次に、上述のレイアウト計算時のUI例について、図11を用いて説明する。
図11は本発明の実施形態のレイアウト計算処理におけるユーザインタフェースの一例を示す図である。
図11(A)は、あるレコードが挿入されレイアウトが決定されている状態を表している。1001と1002はアンカー、1003と1004は固定された辺、1005は可変の辺、1006は可変の辺の変化方向を示している矢印、1008はリンクをそれぞれ示している。この状態において、レコードを変更し、異なったサイズのコンテンツを挿入する。
図11(B)は、図11(A)の状態に新しいコンテンツのサイズを重ねて示している。1009はそれぞれのコンテナに挿入されるコンテンツのサイズを表している。そして、レイアウト計算が行われる。
図11(C)は、レイアウト計算された結果を示している。計算後の各コンテナのサイズは、実際に挿入されるコンテンツのサイズと同等に差異があるように計算され、且つ前述したルールを違反しないように計算される。図11(C)で示されるように、図11(B)で示した挿入されるコンテンツサイズ1009と計算後のコンテンツサイズ(010は、双方において同等な差異がある。
[可変リンクの設定]
図12は本発明の実施形態の可変リンクの設定のためのユーザインタフェースの一例を示す図である。
図12では、図4と同様に、アプリケーションウインドウ301とツールバー303が構成されている。図12の状態では、ドキュメントテンプレート309上にコンテナ1203とコンテナ1204が存在する。それぞれのコンテナはアンカーアイコン1201、アンカーアイコン1202と固定された辺1205、辺1206を含んで構成されている。
コンテナ1203と1204の間には、可変サイズのリンク1209があり、コンテナ1203とコンテナ1204を結んでいる。コンテナ1203とコンテナ1204の間には、リンク1209が設定されているのでそれぞれの右辺1207と左辺1208は点線で表現されている。このため、各コンテナにインジケータ1210、インジケータ1211が表示され、それぞれ辺1207と辺1208が可変であることを示している。
図13は本発明の実施形態のリンク設定機能を実現するユーザインタフェースの一例を示す図である。
ここでは、リンク1209の情報をセットするためのダイアログウインドウ1401の例を示している。このダイアログウインドウ1401は、タイトルバー1402、ツールボタン1403、ダイアログウインドウ1401の開閉を行うボタン1404、各種の情報をセットするエリア1409で構成されている。
このダイアログウインドウ1401では、リンクタイプが可変長(1407)のリンクであるか、あるいは固定長(1406)のリンクであるかの択一的な選択を行えるラジオボタンからなるリンクタイプフィールド1405が構成されている。
リンクタイプが可変の場合には、リンクの長さの最小値フィールド1410(最小距離)、最大値フィールド1412(最大距離)、ならびに基準値フィールド1411(距離)からなるリンク距離フィールド1408が構成されている。
図13のダイアログウインドウ1401は、例えば、図6及び図7で説明したリンクの設定操作によって2つのコンテナ間にリンクを設定した後に、この設定されたリンクをクリック等の操作によって選択したときに表示される。あるいは、リンクを設定した直後に、当該リンクに関するダイアログウインドウ1401が自動的に表示されるようにしてもよい。ここで、各コンテナ間の距離の基準値フィールド1411の基準値は、データを流し込んだ際に各コンテナのサイズが変更されない場合に用いられるリンクの長さである。
次に、可変リンクの設定方法について、図14を用いて説明する。
図14は本発明の実施形態の可変リンクの設定処理を示すフローチャートである。
例えば、図10のコンテナAとコンテナBの間に、図6及び図7で説明したリンクの設定操作によって、2つのコンテナ間にリンクを設定すると、まず、固定サイズのリンクが設定される。そして、このリンクを選択して、図14に示す処理を実行することにより、当該リンクを固定サイズのリンク1106(図10)の状態から可変サイズのリンク1209(図12)へと変更することができる。
まず、マウス133により所望のリンク(例えば、図10のリンク1106)を選択状態とする(ステップS1302)。次に、リンクプロパティを表示させるための所定の操作が行われる。これにより、レイアウト編集アプリケーション121のユーザインタフェース103は、選択状態のリンク(以下、対象リンクという)に対応したダイアログウインドウ1401(図13)を表示する(ステップS1303)。
尚、リンクの選択操作としては、コンテナの基本パターンの設定時と同様に、マウス133の右クリックあるいはキーボード132の特定キーの操作等、いかなるものであってもよい。
表示されるダイアログウインドウ1401には、選択されたリンクの現在の状態が示される。本例では、リンク1106が選択されたので、この段階ではリンクサイズは固定であり、リンクタイプフィールド1405においては、固定長を示す距離1406が選択されている。
このダイアログウインドウ1401において、リンクを固定サイズから可変サイズに変更するために、リンクタイプフィールド1405において、リンクサイズを可変に設定するために、可変長ボタン1407を選択する(ステップS1304)。
これにより、リンク距離フィールド1408内に配置されている最大距離フィールド1412、最小距離フィールド1410、基準値フィールド1411が有効になり、数値の設定が可能となる。ユーザは、リンクの可変サイズを設定するために、そのリンクの長さの最大値を最大距離フィールド1412に、最小値を最小距離フィールド1410に、現在の値を基準値フィールド1411に設定する(ステップS1305)。
設定を終えると、ユーザは一般的なダイアログウインドウ開閉ボタン1404によって当該設定の適用を指示する。ユーザインタフェース103は、この指示を検出すると、当該対象リンクに上記設定状態を反映させる。この結果、図12のリンク1209に示すような状態にリンクのUI表示を変更する(ステップS1306)。
以上のダイアログウインドウ1401の設定情報は、例えば、メモリ136に格納される。
次に、レイアウト結果の一例について、図15及び図16を用いて説明する。
図15は本発明の実施形態の固定サイズのリンクを使用した場合のレイアウト結果を示す図である。
レイアウト計算方法は、前述したとおりに従って行われる。例えば、図15において、コンテナ1203とコンテナ1204にそれぞれ違ったサイズのイメージデータが挿入された場合を考える。この場合、それぞれのコンテナはデータの大きさを最適とみなし、コンテナ1203は挿入されたイメージサイズになる枠1504(最適コンテナサイズ)に近づこうと右方向へサイズを変更しようとする。同様に、コンテナ1204は挿入されたイメージサイズになる枠1505(最適コンテナサイズ)に近づこうと左方向へサイズを変更しようとする。
しかし、コンテナ1203とコンテナ1204はアンカー1201とアンカー1202によってそれぞれ左辺1212と右辺1213の移動ができないため、上記のようにサイズを変更しようとすると両者の間隔を狭めるしかない。しかしながら、コンテナ1203と1204間には固定サイズのリンク1503が設定されており、レイアウト計算時にその長さが維持されるため、コンテナ1203とコンテナ1204のサイズが変更されることになる。
その結果、コンテナ1203とコンテナ1204は、データの縦横比に合わせた最適なサイズを確保することができず、最終的に、図15に示すように、最適なサイズ(枠1504、枠1505)よりも小さくなってしまう。即ち、リンク1503のサイズが固定であるため、コンテナ1203とコンテナ1204は最適サイズを達成できない(図15において、各コンテナ内の一点差線で示した範囲がデータの持つ縦横比である)。
一方、図16は図15と同様の状態でリンクを可変サイズにした場合を示している。
この場合、上記の例で、コンテナ1203とコンテナ1204の間には図示の通り可変サイズのリンク1603が設定されている。従って、コンテナ1203とコンテナ1204のサイズが変更される際には、リンクサイズが縮まることでコンテナ1203とコンテナ1204のサイズを、図15の例より大きくすることができる。
この結果、挿入されるデータサイズに合わせた最適なサイズを達成できる、あるいはより挿入データサイズ(最適サイズ)に近いコンテナの枠を設定することができる。図16はこの結果を示しており、図12の可変リンク1209はレイアウト計算の結果、可変リンク1603に示されるようなサイズ状態となる。尚、この場合、コンテナ1203とコンテナ1204はそれぞれ最適なサイズ(データサイズに合った大きさ)になっている。 以上が、本発明の前提となる基本構成である。
以下、広告情報用フィールド領域領域を有するカタログデータの、クライアントであるブラウザによるプレビュー時または出力時の処理について説明する。
[フィールド領域を有する文書とデータベース]
図17は本発明の実施形態の情報処理処理システムにおけるデータベースの構造の一例を示す図である。
データベース119は、コンテンツデータ(商品情報、広告情報等の各種コンテンツからなるマスタデータ)へアクセスするためのアクセス情報を管理するコンテンツ管理テーブル1711を備えている。また、データベース119は、商品情報、広告情報等の各種コンテンツからなるマスタデータを管理するマスタデータ管理テーブル1713を備えている。
また、データベース119は、コンテンツ管理テーブル1711とマスタデータ管理テーブル1713との関連付けの情報を管理する関連付け管理テーブル1712を備えている。更に、データベース119は、マスタデータ管理テーブル1713で管理される商品情報と広告情報との関連付けを管理するマスタデータ間関連付け管理テーブル1714を備えている。
次に、本実施形態のデータベースと、フィールド領域を有する文書(ドキュメントテンプレート)との関係について、図18を用いて説明する。
図18は本発明の実施形態のデータベースとフィールド領域を有する文書との関係を示す図である。
1801は、フィールド領域として、少なくとも商品情報用フィールド領域及び広告情報用フィールド領域を有する文書(ドキュメントテンプレート)の例を示している。この例においては、商品情報用フィールド領域として、3つのフィールド領域が構成されている。具体的には、商品情報として、「商品名」データを差し込むためのフィールド領域1802、「商品コード」データを差し込むためのフィールド領域1803、「商品画像」データを差し込むためのフィールド領域1804が存在する。また、広告情報用フィールド領域として、広告情報を差し込むためのフィールド領域1805(広告エリア)が存在する。
図18に示すデータベース119は、各フィールド領域1802〜1805用のデータを格納するデータベースである。このデータベース119には、少なくとも商品情報管理テーブル1807と、広告情報管理テーブル1809と、広告情報−商品情報関連付け管理テーブル1808が存在する。
ここで、商品情報管理テーブル1807及び広告情報管理テーブル1809は、図17のマスタデータ管理テーブルに含まれる。また、広告情報−商品情報関連付け管理テーブル1809は、マスタデータ間関連付け管理テーブル1714に含まれる。
商品情報管理テーブル1807は、商品情報用フィールド領域1802〜1804にそれぞれ差し込まれるデータを管理するテーブルである。商品情報用フィールド領域1802には、キー1811(DATA_A)、商品情報用フィールド領域1803にはキー1812(DATA_B)、そして、商品情報用フィールド領域1804にはキー1813(DATA_C)がそれぞれ関連付けられる。
広告情報管理テーブル1809は、広告情報用フィールド領域1805に差し込まれるデータを管理し、1818〜1821等のキーで構成される。
広告情報−商品情報関連付け管理テーブル1808では、広告情報管理テーブル1809のキー1821と、商品情報管理テーブル1807のキー1812またはキー1814とを関連付けている。つまり、図18では、広告情報−商品情報関連付け管理テーブル1808において、広告カテゴリを示す広告カテゴリキー1815と、商品カテゴリを示す商品カテゴリキー1816または商品コードを示す商品カテゴリキー1817とが関連付けてられている。
[商品情報と広告情報の関連付け]
本実施形態では、後述する操作画面を介して、マスタデータである、商品情報と広告情報間の関連付けを行うことができる。そこで、この関連付けの状態の例について、いくつか説明する。
尚、以下の説明での商品情報及び広告情報には、単体の商品についての情報を示す商品マスタデータ、単体の広告についての情報を示す広告マスタデータを含むものとする。更には、商品情報及び広告情報には、同一のカテゴリからなる複数の商品マスタデータを示す商品カテゴリ、同一のカテゴリからなる複数の広告マスタデータを示す広告カテゴリを含むものとする。
図19Aは本発明の実施形態の商品マスタデータと広告マスタデータとの関連付けの状態を示す図である。
図19Aでは、商品マスタデータ1901、1902は、広告マスタデータ1903〜1906と関連付けが可能であることを示している。また、この関連付けは双方向から可能である。そのため、例えば、商品マスタデータ1901から広告マスタデータ1903へと関連付けを行うことも可能であるし、広告マスタデータ1903から商品マスタデータ1901へと関連付けを行うことも可能である。
図19Bは本発明の実施形態の商品カテゴリと広告カテゴリとの関連付けの状態を示す図である。
図19Bでは、商品カテゴリ1911は広告カテゴリ1912と関連付けが可能であることを示している。この関連付けも、図19Aと同様に、双方向からの関連付けが可能である。
図19Cは本発明の実施形態の商品マスタデータと広告カテゴリとの関連付けの状態を示す図である。
図19Cでは、商品マスタデータ1921〜1922は、広告カテゴリ1924、1925と関連付けが可能であることを示している。この関連付けも図19Aと同様に、双方向からの関連付けが可能である。
図19Dは本発明の実施形態の商品カテゴリと広告マスタデータとの関連付けの状態を示す図である。
図19Dでは、商品カテゴリ1931、1932は、広告マスタデータ1933〜1934と関連付けが可能であることを示している。この関連付けも図19A同様に、双方向からの関連付けが可能である。
次に、商品情報と広告情報の関連付けを行う関連付け処理について、図20を用いて説明する。
図20は本発明の実施形態の商品情報と広告情報の関連付けを行う関連付け処理を示すフローチャートである。
尚、この処理は、例えば、ネットワーク107上のクライアントPC152やサーバPC161で実現される。
ステップS2001において、関連付けが商品情報から広告情報への方向で行われるか否かを判定する。関連付けが商品情報から広告情報への方向である場合(ステップS2001でYES)、ステップS2002に進み、関連付けがカテゴリ間で行われるか否かを判定する。関連付けがカテゴリ間で行われる場合(ステップS2002でYES)、ステップS2003において、商品カテゴリを検索する。ステップS2004において、その検索結果から商品カテゴリを選択する。ステップS2005において、関連付けを行う広告カテゴリを選択する。
一方、ステップS2002において、関連付けがカテゴリ間で行われない場合(ステップS2002でNO)、ステップS2006に進み、商品マスタデータの検索を行う。ステップS2007において、その検索結果から商品マスタデータを選択する。ステップS2008において、関連付けを行う広告マスタデータを選択する。
一方、ステップS2001において、関連付けが広告情報から商品情報への方向である場合(ステップS2001でNO)、ステップS2009に進み、関連付けがカテゴリ間で行われるか否かを判定する。関連付けがカテゴリ間で行われる場合(ステップS2009でYES)、ステップS2010に進み、広告カテゴリを検索する。ステップS2011において、その検索結果から広告カテゴリを選択する。ステップS2012において、関連付けを行う商品カテゴリを選択する。
一方、ステップS2009において、関連付けがカテゴリ間で行われない場合(ステップS2009でNO)、ステップS2013に進み、広告マスタデータの検索を行う。ステップS2014において、その検索結果から広告マスタデータを選択する。ステップS2008において、関連付けを行う商品マスタデータを選択する。
以上の処理によって、商品情報と広告情報間の関連付けが決定したら、ステップS2016において、広告情報の優先順位の設定を行う。ここで、優先順位とは、広告情報を出力する順番や、広告が出力される比率等のことである。
ステップS2017において、選択された商品情報と広告情報との関連付けを実行する。そして、その関連付け情報及び優先順位の設定情報をデータベース119に保存する。ステップS2018において、関連付け情報をネットワーク上の画像形成装置109へと送信する。
尚、この関連付け情報及び優先順位の設定情報は、後述する関連付け画面(図22)の操作に基づいて設定されるものである。
[広告情報用フィールド領域を有するドキュメントテンプレート(カタログデータ)のプレビュー・出力]
図21Aは本発明の実施形態の広告情報用フィールド領域を有するドキュメントテンプレートのプレビュー処理を示すフローチャートである。
尚、この処理は、例えば、サーバPC161上で実行され、その処理結果は、クライアントPC152へ出力されることになる。
ステップS2101において、関連付け情報に基づいて、商品情報及び広告情報を取得する。
ステップS2102において、ステップS2101で取得した商品情報と広告情報の数からドキュメントテンプレートを選択する。これは、例えば、商品情報である、ある商品マスタデータに対して広告マスタデータが2つ関連付いている場合、広告情報用フィールド領域を2つ有するドキュメントテンプレートを選択する。この処理は、サーバPC161で行ってもよいし、ユーザに利用可能なドキュメントテンプレートをクライアントPC152上で表示して、選択させてもよい。
ステップS2103において、選択したドキュメントテンプレートを開く。ステップS2104a〜ステップS2104bにおいて、ドキュメントテンプレート内に定義されている広告情報用フィールド領域の数だけ、ステップS2105の処理を繰り返すループ処理を実行する。詳細は、図26を用いて説明する。
ステップS2105では、サーバPC161によって、商品情報及び広告情報をドキュメントテンプレートに挿入し、上述のレイアウト計算方法(図8)によって、動的レイアウトを実行する。
尚、ここでは、商品情報及び広告情報に対して同時に動的レイアウトを実行している構成としているが、これに限定されない。例えば、商品情報に対する動的レイアウトを実行した後、関連付け情報に従ってその商品情報に関連付けられている広告情報に対する動的レイアウトを実行する構成としても良い。この際、広告情報に優先順位が設定されている場合には、その優先順位に従って、広告情報に対する動的レイアウトを実行する。
ステップS2106において、レイアウト計算済の広告情報用フィールド領域を有するドキュメントテンプレート(カタログデータ)をプレビュー可能にするために、プレビュー画面としてクライアントPC152に送信する。
以上の処理により、例えば、クライアントPC152で選択された商品情報に基づいて、広告情報フィールド領域に広告情報が挿入された文書が、サーバPC161内で作成され、クライアントPC152においてプレビューが行われる。
図21Bは本発明の実施形態の広告情報用フィールド領域を有するドキュメントテンプレートの出力処理を示すフローチャートである。
ステップS2111において、画像形成装置109によって、商品情報を選択する。ステップS2112において、画像形成装置109によって、ステップS2111で選択された商品情報とその関連付け情報を取得し、サーバPC161に送信する。ステップS2113において、サーバPC161によって、画像形成装置109から送信された商品情報と関連付け情報を取得して、それに関連付けられている広告情報をデータベース119から取得する。
ステップS2114において、取得した商品情報と広告情報の数からドキュメントテンプレートを選択する。これは、例えば、商品情報である、ある商品マスタデータに対して広告マスタデータが2つ関連付いている場合、広告情報用フィールド領域を2つ有するドキュメントテンプレートを選択する。この処理は、サーバPC161で行ってもよいし、ユーザに利用可能なドキュメントテンプレートをクライアントPC152上で表示して、選択させてもよい。
ステップS2115において、サーバPC161によって、ドキュメントテンプレートを開く。ステップS2116a〜ステップS2116bにおいて、サーバPC161によって、ドキュメントテンプレート内に定義されている広告情報用フィールド領域の数だけ、ステップS2117を繰り返すループ処理を実行する。詳細は、図26を用いて説明する。
ステップS2117では、サーバPC161によって、商品情報及び広告情報をドキュメントテンプレートに挿入し、上述のレイアウト計算方法(図8)によって、動的レイアウトを実行する。
尚、ここでは、商品情報及び広告情報に対して同時に動的レイアウトを実行している構成としているが、これに限定されない。例えば、商品情報に対する動的レイアウトを実行した後、関連付け情報に従ってその商品情報に関連付けられている広告情報に対する動的レイアウトを実行する構成としても良い。この際、広告情報に優先順位が設定されている場合には、その優先順位に従って、広告情報に対する動的レイアウトを実行する。
ステップS2118において、サーバPC161によって、レイアウト計算済の広告情報用フィールド領域を有するドキュメントテンプレート(カタログデータ)を、画像形成装置106に対して送信する。
以上の処理により、画像形成装置109で選択された商品情報に基づいて、広告領域を有するドキュメントテンプレート(カタログデータ)が、サーバPC161内で作成され、画像形成装置109において出力が行われる。
[関連付け画面]
図22は本発明の実施形態の広告マスタデータと商品カテゴリの関連付けを行うための関連付け画面の一例を示す図である。
ユーザインタフェース103によって実現される関連付け画面2200は、メニュータイトル2201を表示し、ガイダンス2202を表示する。2203は、関連付けを行う広告マスタデータの画像である。2204は、関連付けを行う広告マスタデータの内容を示す情報(広告番号、広告タイトル、種別、発行元)である。これらの情報を示す項目の定義は、データベースの設定を行うことにより、項目の名称や数は自由に定義することが可能である。
2205は、商品カテゴリ(パフォーマンス、ミッドレンジPC、エントリレベルPC、モニタ等)のリスト表示を行う領域であり、複数の商品カテゴリの選択が可能である。選択された商品カテゴリの項目は、2206のように反転表示される。2207は、選択状態の商品カテゴリに対して、広告情報(広告マスタデータ)を挿入する優先順位を設定するためのドロップダウンリストである。
この優先順位には、広告情報を挿入する順番や、広告情報を挿入する頻度等の設定を行うことが可能である。また、「強調表示」、「吹き出し」等の表示効果について、ここで設定してもよい。ボタン2208は、広告マスタデータと商品カテゴリの関連付け及び優先順位をデータベース119に保存する機能を提供する。ボタン2209は、以前の画面に戻る機能を提供する。ボタン2210は、メニュー画面に戻る機能を提供する。
尚、この関連付け画面2200は、例えば、クライアントPC152や、サーバPC161上で実現される。また、図22に示す関連付け画面は、特に、広告マスタデータと商品カテゴリの関連付けを行うための画面を示している。同様に、広告カテゴリと商品マスタデータの関連付け、広告マスタデータと商品マスタデータの関連付け等の他の種類の商品情報及び広告情報の関連付けを行うための関連付け画面が構成されることは言うまでもない。
[画像形成装置における操作画面]
図23Aは本発明の実施形態の画像形成装置における商品カテゴリ選択画面の一例を示す図である。
商品カテゴリ選択画面2300は、ロゴ2301を表示し、ガイダンス2302を表示する。ボタン群2303は、それぞれ商品カテゴリ(ハイエンドPC、ミッドレンジPC、ローエンドPC、モニタ等)を選択するためのボタンである。これらのボタン群2303の内、任意のボタンを押すと、対応する商品カテゴリ内にある商品マスタデータの一覧を示す商品マスタデータ一覧選択画面(図23Bで詳述)に遷移する。ボタン2304は、メニュー画面に遷移する機能を提供するボタンである。
尚、商品カテゴリ選択画面2300と同様の広告カテゴリ選択画面が構成されることは言うまでもない。
図23Bは本発明の実施形態の画像形成装置における商品マスタデータ選択画面の一例を示す図である。
商品マスタデータ一覧選択画面2310は、ロゴ2301を表示し、ガイダンス2302を表示する。リスト2311は、図23Aで選択した商品カテゴリに属する商品マスタデータの一覧を表示し、複数選択を可能とさせる機能を提供している。ボタン2312は、リスト2311で選択された商品マスタデータに関連する、広告情報フィールド領域を有するカタログデータを出力する機能を提供する。ボタン2313は、商品カテゴリ選択画面に戻る機能を提供する。
尚、商品マスタデータ選択画面2310と同様の広告マスタデータ選択画面が構成されることは言うまでもない。
[プレビュー実行時における操作画面]
図24は本発明の実施形態の商品情報を確認するためのプレビュー実行画面の一例を示す図である。
プレビュー実行画面2400は、メニュータイトル2401を表示し、商品情報(商品マスタデータ)の選択確認であることをユーザに通知する。2402は、選択されている商品マスタデータの画像である。2403は、選択されている商品マスタデータの項目と内容を示す領域である。この領域2403は、図17及び図18の構成によって、その項目の名称や数の変更が可能である。
ボタン2404は、選択された商品マスタデータの広告情報用フィールド領域を有するカタログデータをプレビュー出力する機能を提供する。ボタン2205は、以前の画面に戻る機能を提供する。ボタン2406は、メニュー画面に戻る機能を提供する。
尚、図24に示すプレビュー実行画面は、特に、商品情報用の画面であるが、これと同様に、広告情報の画面が構成されることは言うまでもない。
[出力時におけるレイアウト変更の例]
図25Aは本発明の実施形態の広告情報用フィールド領域を有するカタログデータのプレビューまたは出力結果の一例を示す図である。
ここでは、商品情報用フィールド領域、及び広告情報用フィールド領域を有する文書(ドキュメントテンプレート)に対して、実際のデータベース119中の各種テーブルで管理されるデータ及び画像(コンテンツ)を差し込む際の動作について説明する。
出力結果2500は、商品マスタデータの項目である2501、2502、2503、2505と、コンテンツデータ2504が動的にレイアウトされる。つまり、2501、2502、2503、2505、コンテンツデータ2504はそれぞれ、ドキュメントテンプレート内でコンテナ(フィールド領域)として定義されている。そして、各コンテナに差し込まれる文字数やコンテンツの大きさ、及びドキュメントテンプレートの設定によって、上述のようなレイアウト計算方法で、最適な形で動的にレイアウト処理が行われる。
また、広告情報用フィールド領域2506に対して、広告情報2507、2511が差し込まれる。ここでも、2508、2509、2510、2512、2513、2514は、ドキュメントテンプレート内ではコンテナ(フィールド領域)として定義されている。そして、広告情報として差し込まれる文字数やコンテンツの大きさ、及びドキュメントテンプレートの設定によって、上述のようなレイアウト計算方法で、最適な形で動的にレイアウト処理が行われる。
図25Bは本発明の実施形態の広告情報用フィールド領域を有するカタログデータのプレビューまたは出力結果の一例を示す図である。
尚、図25Bにおいて、図25Aと同一のものに関しては、同一の参照番号を付加している。
出力結果2520は、商品マスタデータの項目である2521、2522、2523、2525と、コンテンツデータ2524が動的にレイアウトされる。つまり、2521、2522、2523、2525、コンテンツデータ2524はそれぞれ、ドキュメントテンプレート内でコンテナ(フィールド領域)として定義されている。そして、各コンテナに差し込まれる文字数やコンテンツの大きさ、及びドキュメントテンプレートの設定によって、上述のようなレイアウト計算方法で、最適な形で動的にレイアウト処理が行われる。
ここで、図25Aと図25Bとの差異は、コンテナ2523、2524の大きさである。この場合では、図25Bのコンテナ2523、2524の方が、図25Aにおけるコンテナ2503、2504よりも大きい場合の例を挙げている。これは、データベース内の文字データ数及びコンテンツの大きさによって、それぞれが最適に動的レイアウトされた結果によるものである。
更に、広告情報用フィールド領域2506に対して、広告情報2507、2511が差し込まれる。ここでも、2508、2509、2510、2512、2513、2514は、ドキュメントテンプレート内ではコンテナ(フィールド領域)として定義されている。そして、広告情報として差し込まれる文字数やコンテンツの大きさ、及びドキュメントテンプレートの設定によって、上述のようなレイアウト計算方法で、最適な形で動的にレイアウト処理が行われる。
図25Cは本発明の実施形態の広告情報用フィールド領域を有するカタログデータのプレビューまたは出力結果の一例を示す図である。
出力結果2530は、商品マスタデータの項目である2531、2532、2533、2535と、コンテンツデータ2534が動的にレイアウトされる。つまり、2531、2532、2533、2535、コンテンツデータ2534はそれぞれ、ドキュメントテンプレート内でコンテナ(フィールド領域)として定義されている。そして、各コンテナに差し込まれる文字数やコンテンツの大きさ、及びドキュメントテンプレートの設定によって、上述のようなレイアウト計算方法で、最適な形で動的にレイアウト処理が行われる。
更に、広告情報用フィールド領域2536に対して、広告情報2537が1つ定義されている。また、2538、2539、2540がコンテナ(フィールド領域)として定義されている。そして、広告情報として差し込まれる文字数やコンテンツの大きさ、及びドキュメントテンプレートの設定によって、上述のようなレイアウト計算方法で、最適な形で動的にレイアウト処理が行われる。
ここで、図25Bと図25Cとの差異は、広告領域2536内における広告情報の数である。つまり、図25Bでは、2つの広告情報2507及び2511を挿入するために最適なレイアウト処理が行われる。一方、図25Cでは、1つの広告情報2537を挿入するために、最適なレイアウト処理が行われる。この場合における広告情報の数は、商品マスタデータまたは商品カテゴリと関連付いている広告マスタデータまたは広告カテゴリの数によって決めてもよい。
次に、図26を用いて、ステップS2102及びステップS2114の処理の詳細を説明する。
図26は本発明の実施形態のステップS2102及びステップS2114の処理の詳細を示すフローチャートである。
まず、ステップS2601において、ステップS2101あるいはステップS2113で取得した広告情報の数を認識する。次に、ステップS2602において、広告情報が1つであるか否か判定する。広告情報が1つである場合(ステップS2602でYES)、ステップS2603に進み、広告情報用フィールド領域が1つのドキュメントテンプレートを選択する。
一方、広告情報が1つでない場合(ステップS2602でNO)、ステップS2604に進み、広告情報が2つであるか否かを判定する。広告情報が2つである場合(ステップS2604でYES)、ステップS2605に進み、広告情報用フィールド領域が2つのドキュメントテンプレートを選択する。
一方、広告情報が2つでない場合(ステップS2604でNO)、即ち、広告情報が3つ以上である場合、ステップS2606に進み、その広告情報から、所定の条件を満足する広告情報を2つ選択する。その後、ステップS2605に進む。
図26の処理により、ある1つの商品マスタデータに対して広告マスタデータが1つ関連付いている場合、商品情報用フィールド領域を1つ有し、広告情報用フィールド領域を1つ有するドキュメントテンプレートを選択することになる。
更に、広告マスタデータの数(例えば、3)より少ない数(例えば、1と2)の広告情報用フィールド領域のドキュメントテンプレートしか存在しない場合にも対応できる。
具体的には、ステップS2606の処理で、ドキュメントテンプレートが有する広告情報用フィールド領域の最大数(例えば、2)の広告情報を、所定条件を満足する3以上の広告情報から選択する。そして、その選択した広告情報に対して、ステップS2605で最大数(例えば、2)の広告情報用フィールド領域のドキュメントテンプレートを選択することによって対応できる。尚、ドキュメントテンプレート選択後に、そのドキュメントテンプレートが有する広告情報用フィールド領域の最大数の広告情報を選択しても良い。
また、図26の処理では、商品情報が1つの場合を説明している。よって、ある1つの商品マスタデータに対して広告マスタデータが1つ関連付いている場合、商品情報用フィールド領域を1つ有し、広告情報用フィールド領域を1つ有するドキュメントテンプレートを選択している。
しかしながら、本発明はこれに限定されない。例えば、商品情報が複数の場合にも適用できる。この場合、ステップS2601で、取得した商品情報の数と広告情報の数とを認識する。例えば、商品情報の数が2で広告情報の数が2であると認識する。そのような場合は、商品情報用フィールド領域を2つ有し、広告情報用フィールド領域を2つ有するドキュメントテンプレートを選択する。
また、ステップS2606で広告情報を選択するための所定条件には、様々なものが考えられる。例えば、広告情報の使用履歴情報を別途管理しておき、この使用履歴情報に基づいて、各広告情報が均等に使用されるように、各広告情報を適応的に選択しても良い。あるいは、例えば、各広告情報に優先順位を設定しておき、その優先順位に従って、広告情報を選択しても良い。
以上説明したように、本実施形態によれば、商品情報(商品マスタデータ及び商品カテゴリの少なくとも一方)と、広告情報(広告マスタデータ及び広告カテゴリの少なくとも一方)とを関連付ける。そして、例えば、サーバPCにて、その商品情報及び関連する広告情報に対する動的レイアウト処理を実行する。
これによって、クライアントPCにて、広告情報用フィールド領域を有するカタログデータをプレビューすることが可能となる。また、画像形成装置において、商品情報を選択することによって、サーバPCにて、その商品情報及び関連する広告情報に対する動的レイアウト処理を実行させ、その結果を出力することが可能となる。
尚、上記実施形態では、商品情報と、それに関連付けられている広告情報をページ内に動的レイアウトする例を挙げて説明しているが、情報の種類はこれに限定されるものではない。つまり、本発明の趣旨は、異なる種類の情報を関連付けて、それを同一ページ内で動的レイアウトする点にある。そのため、ユーザが明示的に、様々な情報を異なる種類に分類し、その分類間で関連付けを行った情報であれば、本発明を適用することが可能である。
本発明をより一般的に表現すれば、第1情報に属する第1レコードと、第2情報に属する第2レコードを関連付け、ドキュメントテンプレートに基づいて、指定された第1レコードとそれに関連する第2レコードを同一ページ内に動的レイアウトすると言える。
以上、実施形態例を詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
尚、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム(実施形態では図に示すフローチャートに対応したプログラム)を、システムあるいは装置に直接あるいは遠隔から供給する。そして、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であっても良い。
プログラムを供給するための記録媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスクがある。また、更に、記録媒体としては、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などがある。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、その接続先のホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。また、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現される。