以下、本発明の実施の形態について図面を用いて詳細に説明する。
<<実施形態1>>
<システム構成>
まず、実施形態1の情報処理システム及び、その構成要素であるホストコンピュータのハードウェア構成について、図1A及び図1Bを用いて説明する。
図1Aは本発明の実施形態1の情報処理システムの構成例を示す図である。また、図1Bは本発明の実施形態1の情報処理システムの一構成要素であるホストコンピュータ(本発明の情報処理装置に相当する)のハードウェア構成を示す図である。
尚、図1A中のホストコンピュータ以外の各種コンピュータ(例えば、データベースサーバ117、ファイルサーバ115及びプリントサーバ109)も、例えば、図1Bのハードウェア構成と同等のハードウェア構成を有している。
図1Aにおいて、情報処理システム100は、ネットワーク107を介して、ホストコンピュータ101、データベースサーバ117、ファイルサーバ115及びプリントサーバ109が相互に接続されている。
データベースサーバ117は、データベース119を備えている。また、プリントサーバ109は、プリンタ113を接続しており、ネットワーク107を介して受信する印刷データを適宜プリンタ113に出力して、その印刷データを印刷させることが可能である。
図1Aの情報処理システム100は、特に、バリアブルデータドキュメントを印刷するバリアブルプリントシステムの構成例を示している。実施形態1で説明されるバリアブルプリント処理は、レイアウト編集装置として機能するホストコンピュータ101(汎用コンピュータモジュールによって構成される)で実現される。
バリアブルプリントシステム100上で実施可能となるレイアウト編集アプリケーション121は、ホストコンピュータ101において、その全体あるいは一部分が実行される。特に、レイアウト編集に関する処理や、バリアブルデータドキュメントの印刷に関する処理は、ホストコンピュータ101によって実行されるソフトウェアにより実現される。
また、後述するバリアブルプリントシステム100上で実施可能となるレイアウトプレビューアプリケーション227も、ホストコンピュータ101において、その全体あるいは一部分が実行される。
レイアウト編集アプリケーション121等のソフトウェアやコンピュータプログラムはコンピュータ可読媒体に格納され、そのコンピュータ可読媒体からホストコンピュータ101のメモリ136にロードされ、実行される。そのようなソフトウェアやコンピュータプログラムを格納したコンピュータ可読媒体は、コンピュータプログラム製品である。そして、例えば、ホストコンピュータ101において、そのコンピュータプログラム製品を使用することにより、バリアブルデータドキュメントのレイアウト編集やバリアブルプリントに好適な装置が提供されることになる。
図1Bに示されるように、ホストコンピュータ101には、I/O(入出力)インタフェース143を介してキーボード132や、ポインティングデバイスであるマウス133が入力装置として接続される。また、出力装置としてのディスプレイ装置144がビデオインタフェース137を介して接続される。更に、プリンタ145を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は、GNU/LINUXやマイクロソフトウインドウズ(登録商標)のようなオペレーティングシステムや、典型的にはオペレーティングシステムに従う形で、あるいは関連のある技術で知られているもので形成されたコンピュータシステムの常套的なオペレーションモードによる方法によって、相互接続バス134を介して、ホストコンピュータ101の各種構成要素135〜143と通信する。即ち、上述の各種構成要素135〜143は、相互接続バス134を介して通信可能に接続されており、ホストコンピュータ101にインストールされたオペレーティングシステムにより利用される。
尚、図1Bに示すホストコンピュータ101の例としては、IBM互換PC(パーソナルコンピュータ)やSUNのSparcstation、あるいはそれらを含んだコンピュータシステムが考えられる。
実施形態1では、レイアウト編集アプリケーション121は、ハードディスクドライブ140に常駐し、プロセッサ135による実行や読込が制御される。レイアウト編集アプリケーション121の媒介記憶装置とネットワーク107からフェッチされるデータは、ハードディスクドライブ140に呼応してメモリ136を使用する。
一つの例では、レイアウト編集アプリケーション121のエンコードされたプログラムが、CD−ROMやフロッピー(登録商標)ディスク上に格納され、対応するCD−ROMドライブ142やフロッピー(登録商標)ディスクドライブ141を通じて読み込まれ、ハードディスクドライブ140にインストールされる。
あるいは、別の例として、レイアウト編集アプリケーション121は、ネットワーク107からホストコンピュータ101内に読み込まれて、ハードディスクドライブ140にインストールされてもよい。
更に、レイアウト編集アプリケーション121を含む各種ソフトウェアは、磁気テープまたはROMまたは集積回路、光磁気ディスク、または、ホストコンピュータ101とその他のデバイス間における赤外線等の無線通信、PCMCIAカードのようなコンピュータ可読カード、そしてEメール通信やWEBサイト上の記録情報を持つインターネットやイントラネットを含む他の適当なコンピュータからホストコンピュータ101内にロードされてもよい。これらは、コンピュータ可読媒体の例であり、他のコンピュータ可読媒体が使用されてもよいことは明らかである。
図1Aにおいて、レイアウト編集アプリケーション121は、ホストコンピュータ101にバリアブルプリント(バリアブルデータプリント(VDP)ともいう)を実現させるものであり、2つのソフトウェアコンポーネント、即ち、レイアウトエンジン105とユーザインタフェース103を含んでいる。
レイアウトエンジン105は、フィールド領域(部分領域)であるコンテナ(矩形の範囲)に与えられたサイズや位置の制限にしたがって、データベース119にレコード単位で格納されているバリアブルデータから1レコードずつ読み込み、読み込んだバリアブルデータとコンテナの制限とから、読み込んだバリアブルデータが流し込まれるコンテナのサイズや位置等のレイアウトを計算するソフトウェアコンポーネントである。
また、実施形態1では、レイアウトエンジン105は、更に、コンテナに割り当てられたバリアブルデータを描画し、バリアブルデータドキュメントのイメージを生成する処理も行う。但し、本発明は、これに限るものではなく、レイアウトエンジン105は、各部分領域(コンテナ)のサイズと位置を決定するアプリケーションとして動作し、プリンタドライバ(不図示)に描画情報を出力することで、プリンタドライバがバリアブルデータドキュメントのイメージ描画処理を行い、印刷データを生成してもよい。
ユーザインタフェース103は、ユーザによるコンテナのレイアウトや属性設定を可能とし、ユーザにドキュメントテンプレート(テンプレート情報とも呼ぶ)を作成させる。また、ユーザインタフェース103は、ドキュメントテンプレート内の各コンテナとデータソース(データベース119上のバリアブルデータ(コンテンツ))とを関連付けるメカニズムを提供する。ユーザインタフェース103とレイアウトエンジン105は、通信チャネル123を介して通信する。
バリアブルデータドキュメント生成のためのデータソースは、一般的には、データベースアプリケーションを実行している、他のコンピュータで構成されるデータベースサーバ117上にある典型的なデータベース119が挙げられる。
ホストコンピュータ101は、ネットワーク107を介して、データベースサーバ117と通信する。レイアウト編集アプリケーション121は、ホストコンピュータ101、あるいは、一般的には、他のコンピュータで構成されるファイルサーバ115に保存されるドキュメントテンプレートを生成する。
また、レイアウト編集アプリケーション121は、バリアブルデータとマージされたドキュメントテンプレートによって構成されたバリアブルデータドキュメントを生成する。これらのバリアブルデータドキュメントは、ホストコンピュータ101のローカルファイルシステム、ファイルサーバ115、あるいはプリンタサーバ109を介してプリンタ113に直接印刷される。
ここで、プリントサーバ109は、直接ネットワーク107に接続されていないプリンタ113に、ネットワーク機能を提供するコンピュータである。プリントサーバ109とプリンタ113は、典型的な通信チャネル111(例えば、USB、IEEE1394、無線LAN等)を介して接続される。
次に、バリアブルプリントシステム100の別構成例について、図1Cを用いて説明する。
図1Cは本発明の実施形態1の情報処理システムの別構成を示す図である。
図1Cは、ネットワーク107上にエンジンサーバ1227を追加して、このエンジンサーバ1227にレイアウトエンジン1225を構成した例を示している。つまり、ホストコンピュータ101内のレイアウトエンジン105を、エンジンサーバ1227内で実現した構成である。この構成の場合、ホストコンピュータ101の処理負荷を軽減することができる。
尚、このエンジンサーバ1227は、他のサーバと同様、典型的なコンピュータである。また、ファイルサーバ115に保存されたドキュメントテンプレートは、印刷や他の目的がある際、レイアウトエンジン1225によってドキュメントを生成するためにデータベース119に保存されたデータと結合することができる。そのようなオペレーションは、ユーザインタフェース103を介して要求されるか、特定のレコードのみ印刷するように要求される。
次に、実施形態1の特徴となるレイアウトプレビューシステムを実現するバリアブルプリントシステム100の構成について、図1Dを用いて説明する。
図1Dは本発明の実施形態1のレイアウトプレビューシステムの構成例を示す図である。
尚、レイアウトプレビューシステムは、図1Aのバリアブルプリントシステム100の拡張構成例と捉えることができ、図1Dにおいて、図1Aのバリアブルプリントシステム100と共通の構成要素については、同一の参照番号を付加して、その詳細については省略する。
図1Dにおいて、レイアウトプレビュークライアント225は、図1Aのホストコンピュータ101と同様の典型的なコンピュータである。レイアウトプレビューアプリケーション227は、レイアウト編集アプリケーション121と、同様に、ユーザインタフェース229とレイアウトエンジン231の2つのコンポーネントを含んでいる。
但し、ユーザインタフェース229は、プレビュー及び印刷の指示は可能であるがドキュメントテンプレートの作成・保存の指示ができないという点で、ユーザインタフェース103と異なる。レイアウトエンジン231は、レイアウトエンジン105と同じ機能を有する。
本発明は、特に、このレイアウトプレビュークライアント225およびレイアウトプレビューアプリケーション227に関するものである。
ここで、レイアウト編集アプリケーション121と、レイアウトプレビューアプリケーション227は共通する構成を多く持っている。そこで、まず、レイアウト編集アプリケーション121の構成について、以下に説明する。
<レイアウト編集アプリケーションの概要>
まず、バリアブルデータプリントの概略について、図2を用いて説明する。
図2は本発明の実施形態1のバリアブルデータプリントの概略を説明するための図である。
レイアウト編集アプリケーション121のユーザインタフェース103により、ユーザからの操作指示に従いページ上に複数のコンテナ181〜183を配置し、各コンテナに位置やサイズに関する制約条件を付与することによりドキュメントテンプレート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によって実現されるユーザインタフェースの一例について、図3を用いて説明する。
[メインウインドウ]
図3は本発明の実施形態1のユーザインタフェースの一例を示す図である。
図3に示すように、ユーザインタフェース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)イメージコンテナツールボタン404:スタティックあるいはバリアブルイメージを有するコンテナを作成するために使用される。
(4)リンクツールボタン406:コンテナ間に関連付けを行うリンクを作成するために使われ、リンクの距離をコントロールするためにも使用される。
尚、これらのボタンは、周知の技術で知られているように、操作状況に合わせて変化するアイコンのツールチップとして実装される。
また、アプリケーションウインドウ301は、ページ内に各コンテナやリンクをレイアウトすることで、基本レイアウトを決定することができる。基本レイアウトとは、バリアブルデータプリントで基本となるレイアウトのことである。基本レイアウト内の各コンテナが固定コンテナである場合は、すべてのレコードの印刷結果のレイアウトは同じになる。
また、基本レイアウト内の各コンテナが後述する可変コンテナである場合は、レコード単位に読み込まれるデータの量やサイズにより各コンテナのサイズや位置が、後述する制約の範囲内で変動することになる。よって、レイアウト編集アプリケーション121で作成されるドキュメントテンプレートは、あくまで基本レイアウトを決定するものであり、可変コンテナが含まれる場合は、最終的な印刷物のレイアウトは読み込まれるデータによりレイアウト調整されることになる。
[ドキュメントテンプレート]
図3において、ワークエリア306は、ドキュメントテンプレート(180:基本レイアウト)のデザインを表示・編集するために使われる。これは、ユーザがドキュメントテンプレートをデザインする過程において、印刷されるドキュメントの概観をユーザに提示することを可能とする。これにより、ユーザは、データソース(190)とマージされたドキュメントが、バリアブルデータの量・サイズに基づいてどのように変化するかを容易に理解することができる。
また、データソースがドキュメントテンプレートに関連付けられていた場合は、現在のドキュメントのプレビューができるように、対応するバリアブルテキストやイメージがレイアウトされた各コンテナに表示される。
ドキュメントテンプレートにおけるドキュメント構造とコンテナを描写する視覚的な手がかり(コンテナの枠線、アンカー、スライダー、リンク等)は、ドキュメントテンプレート作成時には常に表示される。また、バリアブルデータを流し込むプレビュー時には、視覚的な手がかりは、カーソルをコンテナ上に移動させたときや、コンテナを選択したときに表示される。
ワークエリア306は、スクロールバー307と、オプションのルーラー308と、ドキュメントテンプレート309を含む。ドキュメントテンプレート309は、ページが複数あることを示すことができる。また、ドキュメントテンプレート309は、図2のドキュメントテンプレート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におけるコンテナの定義を示す。
(1)コンテナは、固定あるいは可変のコンテンツを持つ。可変コンテンツ(バリアブルデータ)は、データソースから取得したデータがドキュメント毎、つまり、レコード毎に異なる可能性があるという意味でダイナミック(動的)であるということができる。但し、実施形態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は本発明の実施形態1のリンクの設定処理を示すフローチャートである。また、図7は本発明の実施形態1のリンク設定時のユーザインタフェースの遷移例を示す図である。以下、図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を持つ設定に変化してもかまわない。
<レイアウトエンジンによるレイアウト計算処理>
[レイアウト計算方法(全体フロー)]
実施形態1のレイアウト編集アプリケーション121は、ユーザインタフェース103を用いてコンテナを作成し、そのコンテナ間に関連付け(リンク設定)を行ってレイアウトを作成するレイアウトモードと、レイアウトエンジン105により、作成したレイアウトにデータソースの各レコードを挿入して、実際にレコードが挿入された後のレイアウト結果をプレビューするプレビューモードに分けられる。
このプレビューモードにおいて、実際のレコードが挿入され、レイアウトを計算する。但し、プレビューモードは、表示上でのレイアウト計算である。実際に印刷する場合においても、レイアウトエンジン105が各コンテナにデータを挿入してレイアウトを計算するが、その際の計算方法はプレビューモードと同じである。
図8は本発明の実施形態1のレイアウト計算処理を示すフローチャートである。
まず、プレビューモードが選択される(ステップ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は本発明の実施形態1のレイアウト計算処理の詳細を示すフローチャートである。
尚、図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は本発明の実施形態1のレイアウト計算処理におけるユーザインタフェースの一例を示す図である。
図11の(A)は、あるレコードが挿入されレイアウトが決定されている状態を表している。1001と1002はアンカー、1003と1004は固定された辺、1005は可変の辺、1006は可変の辺の変化方向を示している矢印、1008はリンクをそれぞれ示している。この状態において、レコードを変更し、異なったサイズのコンテンツを挿入する。
図11の(B)は、図11の(A)の状態に新しいコンテンツのサイズを重ねて示している。1009はそれぞれのコンテナに挿入されるコンテンツのサイズを表している。そして、レイアウト計算が行われる。
図11の(C)は、レイアウト計算された結果を示している。計算後の各コンテナのサイズは、実際に挿入されるコンテンツのサイズと同等に差異があるように計算され、且つ前述したルールを違反しないように計算される。図11の(C)で示されるように、図11の(B)で示した挿入されるコンテンツサイズ1009と計算後のコンテンツサイズ(010は、双方において同等な差異がある。
[可変リンクの設定]
図12は本発明の実施形態1の可変リンクの設定のためのユーザインタフェースの一例を示す図である。
図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は本発明の実施形態1のリンク設定機能を実現するユーザインタフェースの一例を示す図である。
ここでは、リンク1209の情報をセットするためのダイアログウインドウ1401の例を示している。このダイアログウインドウ1401は、タイトルバー1402、ツールボタン1403、ダイアログウインドウ1401の開閉を行うボタン1404、各種の情報をセットするエリア1409で構成されている。
このダイアログウインドウ1401では、リンクタイプが可変長(1407)のリンクであるか、あるいは固定長(1406)のリンクであるかの択一的な選択を行えるラジオボタンからなるリンクタイプフィールド1405が構成されている。
リンクタイプが可変の場合には、リンクの長さの最小値フィールド1410(最小距離)、最大値フィールド1412(最大距離)、ならびに基準値フィールド(距離)からなるリンク距離フィールド1408が構成されている。
図13のダイアログウインドウ1401は、例えば、図6及び図7で説明したリンクの設定操作によって2つのコンテナ間にリンクを設定した後に、この設定されたリンクをクリック等の操作によって選択したときに表示される。あるいは、リンクを設定した直後に、当該リンクに関するダイアログウインドウ1401が自動的に表示されるようにしてもよい。ここで、各コンテナ間の距離の基準値1411は、データを流し込んだ際に各コンテナのサイズが変更されない場合に用いられるリンクの長さである。
次に、可変リンクの設定方法について、図14を用いて説明する。
図14は本発明の実施形態1の可変リンクの設定処理を示すフローチャートである。
例えば、図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は本発明の実施形態1の固定サイズのリンクを使用した場合のレイアウト結果を示す図である。
レイアウト計算方法は、前述したとおりに従って行われる。例えば、図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はそれぞれ最適なサイズ(データサイズに合った大きさ)になっている。 以上が、本発明の前提となる基本構成である。
次に、レイアウトプレビューアプリケーション227の構成について説明する。
<レイアウト編集アプリケーションの説明>
まず、レイアウトプレビューアプリケーション227のユーザインタフェース229によって実現されるユーザインタフェースの一例について、図17を用いて説明する。
[メインウインドウ]
図17は本発明の実施形態1のユーザインタフェースの一例を示す図である。
尚、図17において、図3のユーザインタフェースと同一の構成要素については、同一の参照番号を付加する。
図17に示すように、ユーザインタフェース229は、操作時にアプリケーションウインドウ1701によって形成されたユーザインタフェースをディスプレイ装置144に表示させる。このアプリケーションウインドウ1701は、レイアウト編集アプリケーション121のアプリケーションウインドウ301と概ね同じであるが、コンテナの新規作成およびドキュメントテンプレートの作成・保存ができない点等が異なる。つまり、図17では、ツールバー1703に構成されるツールボタンとウィジット(部品)179の数が、図1のツールバー303に比べて制限されている。
以下の説明では、レイアウト編集アプリケーション121と異なる点を中心に説明する。
ツールバー1703には、図18に示されるような、ユーザが選択可能な『ボタン』1803が少なくとも配置されている。
(1)選択ツールボタン1803:レイアウト編集アプリケーション121の選択ツールボタン403と同様の機能である。
[ドキュメントテンプレート]
図18において、ユーザは、直接的もしくは間接的にドキュメントテンプレートを開くと、レイアウトエンジン231によりデータソース190のコンテンツがマージされたレイアウト計算後のドキュメントが作成される。システムによっては、ユーザがユーザインタフェース229によって選択することなくシステムが指定したドキュメントテンプレートが自動的に開かれるかもしれないし、ファイルを指定する形ではなくアイコンや文書名等を指定もしくは選択するかもしれない。
ここで、ドキュメントテンプレートの修正やデータベースのデータの修正は、セキュリティ上の問題があり、一般ユーザに対してそのような権限が与えられないのが一般的である。そのため、ユーザインタフェース229は、生成されたドキュメントのプレビュー・印刷の指示が可能であるが、ドキュメントテンプレート自体の編集・保存はできない。しかしながら、ある一般ユーザが印刷するときに適用される(他の一般ユーザには影響を与えない)事項として、一部の修正を許可している。これについて説明する。
[コンテナ表示・編集]
レイアウトプレビューアプリケーション227のユーザインタフェース229は、ドキュメントテンプレートに対して、一時的な修正事項として、コンテナの移動・サイズ調整・装飾属性の変更等の編集(調整)の指示が可能である。しかし、その編集は、ドキュメントテンプレート自体に対するものではなく、各レコード(ドキュメントテンプレートが1ページの場合は、各ページになる。)の個々のコンテナに対するものである。従って、あるレコードのプレビュー中に所定のコンテナを編集しても、ドキュメントテンプレートでは、同じコンテナに相当する他のレコードのコンテナには影響を与えない。
ドキュメントテンプレート自体の編集である、コンテナの新規作成や、コンテナの制約設定、コンテナ間のリンク設定、コンテナにマージする外部ソースの変更などもレイアウトプレビューアプリケーション227ではできない。ここで、ドキュメントテンプレート自体の編集は、前述したように、レイアウト編集アプリケーション121を利用できるユーザ(管理者)が行うことになる。
[保存・再読込]
レイアウトプレビューアプリケーション227のユーザインタフェース229により保存の指示がされると、ドキュメントのコンテナに対する調整結果をファイルに保存する。尚、この詳細については、後述する。
次に、レイアウトプレビューアプリケーション227を実行する場合の概要フローについて、図19を用いて説明する。
図19は本発明の実施形態1のレイアウトプレビューアプリケーションに係る概要フローを示すフローチャートである。
まず、レイアウトプレビューアプリケーション227は、ユーザインタフェース229によってユーザ操作を受け付ける(ステップS1901)。次に、そのユーザ操作の内容を判別して(ステップS1902)、そのユーザ操作に応じて、ステップS1903〜ステップS1908の処理に分岐し、各処理を実行する。
以下、ユーザ操作に応じて実行する各処理について説明する。
ユーザインタフェース229によって、プレビュー指示がなされた場合、ステップS1903において、レイアウトエンジン231を用いて計算処理した結果のプレビュー処理を実行する。
ここで、プレビュー処理の詳細について、図20を用いて説明する。
図20は本発明の実施形態1のプレビュー処理の詳細を示すフローチャートである。
尚、図20において、図8と同一のステップについては、同一のステップ番号を付加して、その詳細については省略する。
まず、ユーザインタフェース229により指定されたドキュメントテンプレートの読込を行う(ステップS2001)。その後の処理は、図8と同じである。プレビュー処理の結果、図18のように、アプリケーションウインドウ1701にドキュメントテンプレート1709が表示される。この時点で、ツールバー1703上のボタンは選択ツールボタン1803に切り替わる。
次に、図19において、レイアウトプレビューアプリケーション227は、ユーザによるマウス133の操作で、カーソル/ポインタ313を用いて、ドキュメントテンプレート1709上のコンテナ1810や1811上をクリックすることによりコンテナが選択されたことを認識する。これにより、ステップS1904の選択処理が実行される。
次に、このステップS1904の選択処理の詳細について、図21を用いて説明する。 図21は本発明の実施形態1の選択処理の詳細を示すフローチャートである。
まず、カーソル/ポインタ313がクリックされた位置(クリック位置)を取得する(ステップS2101)。次に、ドキュメントテンプレート1709中でそのクリック位置の最上層に存在するコンテナを検索する(ステップS2102)。そして、その検索結果に基づいて、コンテナの有無を判定する(ステップS2103)。
尚、コンテナの有無の判定は、コンテナが存在する座標領域内にクリック位置座標が属するか否かで判定する。
コンテナがある場合(ステップS2103でYES)、メモリ136内のレイアウトプレビューアプリケーション227が使用するために設けられたワーク領域中の選択コンテナテーブルに、そのコンテナを登録する(ステップS2104)。更に、選択されているコンテナを操作するための選択ハンドルを表示する(ステップS2105)。
一方、コンテナがない場合(ステップS2103でNO)、既に選択されているコンテナを操作するための選択ハンドルを非表示にする(ステップS2106)。次に、選択コンテナテーブルの内容をクリアする(ステップS2107)。
ここで、選択コンテナテーブルとは、選択されたコンテナが属するページ番号とドキュメントテンプレートにおいてコンテナを一意に示すID(コンテナID)から構成され、ドキュメントテンプレートにおいて同じコンテナであっても、生成されたドキュメントのページ番号が異なれば別のコンテナとして選択コンテナテーブルに登録される。
ここで、選択コンテナテーブルの一例について、図22を用いて説明する。
図22は本発明の実施形態1の選択コンテナテーブルの一例を示す図である。
図22に示す例では、ドキュメントの3ページ目(ページ番号3)のドキュメントテンプレートにおけるコンテナID15のコンテナが選択されていることを表している。
ここで、レイアウト編集アプリケーション121では、ドキュメントテンプレートにおいて、同じコンテナは異なるページをプレビューしていても同じコンテナとして扱うので、その点で異なっている。
尚、実施形態1では、同時に選択できるコンテナは1つに限っているが、公知の技術で知られている手法によって、複数のコンテナを同時に選択するように構成することも可能である。但し、その場合には、ユーザの操作性の観点や選択状態の可否の判断の混乱を防止するために、異なるページのコンテナは選択できないよう制限するのが望ましい。
また、コンテナの選択ハンドルは、例えば、選択されているコンテナの判別及びコンテナの移動・サイズ変更のために描画されたコントロール点1802で示され、選択されているコンテナの4頂点と4辺の中点の計8点が表示される。
次に、図19において、レイアウトプレビューアプリケーション227は、ユーザからのユーザインタフェース229によって選択されているコンテナに対して調整の指示を受け付け、調整処理を行う。これにより、ステップS1905のコンテナ調整処理が実行される。尚、コンテナの調整には、移動・サイズ調整・装飾属性の変更等がある。
次に、このステップS1905のコンテナ調整処理について、図23を用いて説明する。
図23は本発明の実施形態1のコンテナ調整処理の詳細を示すフローチャートである。
まず、レイアウトプレビューアプリケーション227は、選択されたコンテナ(選択コンテナ)があるか否か、つまり、選択コンテナテーブルの選択コンテナ数が0でないか否かを判定する(ステップS2301)。選択コンテナがない場合(ステップS2301でNO)、そのまま処理を抜ける。一方、選択コンテナがある場合(ステップS2301でYES)、調整の種別を判定する(ステップS2302)。
次に、選択コンテナに対して、ユーザが行った種別の調整が既になされているかを検索する、つまり、調整データを検索する(ステップS2303)。
ここでの検索は、選択コンテナテーブルのページ番号(レコード番号)とコンテナIDと、ステップS2302で判定された調整種別を持つ調整データを、メモリ136内のレイアウトプレビューアプリケーション227が使用するために設けられたワーク領域中のコンテナ調整テーブルから検索することで行う。
尚、実施形態1では、ドキュメントテンプレートが1ページで生成されているため、1レコードが1ページに対応している。よって、調整データはページ番号に対応して保持しているが、この項目はレコード番号に相当する。
ここで、コンテナ調整テーブルの一例について、図24を用いて説明する。
図24は本発明の実施形態1のコンテナ調整テーブルの一例を示す図である。
コンテナ調整テーブルは、調整データを一意に識別するための調整データID、コンテナが属するページ番号、そのコンテナID、調整種別(位置/サイズ=1、文字属性=2、線属性=3、面属性=4等)、実際の調整データから構成されるコンテナ調整情報と、そのコンテナ調整情報で管理される実際の調整データの数であるデータ数を管理している。
図24に示す例では、各修飾属性の調整の場合、調整データにはその修飾属性の属性値が全て格納される。例えば、調整ID2の調整は、書体名のみを変更したが、実際には、文字サイズや文字色等の文字属性が全て格納される。格納領域を省くために属性種別をより細かに分類するよう構成することも可能である。
図23の説明に戻る。
検索結果に基づいて、選択コンテナに対する調整種別の調整データがコンテナ調整テーブルにあるか否かを判定する(ステップS2304)。調整データがない場合(ステップS2304でNO)、調整データを追加する(ステップS2305)。一方、調整データがある場合(ステップS2304でYES)、検索された調整データを上書きで変更する(ステップS2306)。
尚、ステップS2305で、調整データを追加する場合、コンテナ調整テーブルの最後に追加しても良いが、ステップS2303の検索速度を上げるために、ページ番号(レコード番号)・コンテナID・調整種別の順でソートされるように追加するのが望ましい。ステップS2303においては、調整種別も区別して検索するため、調整種別が異なれば同じコンテナに対して別の調整データが作成される。図24の例では、ページ番号1のコンテナID1に対して、位置/サイズ変更と文字属性変更の2種類の調整がなされている。
そして、調整データの追加・変更が終了すると、レイアウトコンテナデータ(レイアウト結果)を調整データで上書きする(ステップS2307)。そして、その調整データに基づいて調整された選択コンテナを含む調整済レイアウトコンテナデータを再表示する(ステップS2308)。そして、処理を抜ける。
ここで、レイアウトコンテナデータは、ステップS803のレイアウト計算処理で計算されたコンテナの位置・サイズ、ドキュメントテンプレートにおける対応するコンテナの調整データ及びコンテンツから構成されるデータであり、コンテナを表示・印刷するために必要十分なデータである。
コンテナの調整を1回もしくは複数回行ったら、ユーザは、ユーザインタフェース229によって調整済ドキュメント(調整済レイアウトコンテナデータ)の保存の指示をする。
ここで、調整済ドキュメントのデータフォーマット例について、図25を用いて説明する。
図25は本発明の実施形態1の調整済ドキュメントのデータフォーマット例を示す図である。
調整済ドキュメントは、調整ページ情報(調整レコード情報とも呼ぶ)として、テンプレート情報とコンテンツ情報とコンテナ調整情報から構成される。テンプレート情報には、ドキュメントテンプレートが格納されている。但し、テンプレート情報は、ドキュメントテンプレートの実体ではなくリンク情報とすることも可能である。
また、コンテンツ情報には、各コンテナにマージされるコンテンツが全ページの全コンテナ分格納されている。但し、コンテンツ情報は、コンテンツの実体ではなくコンテンツへのリンク情報やデータベースからの抽出するための情報(例えば、ファイルパス情報)とすることも可能である。
そして、このテンプレート情報とコンテンツ情報があれば、コンテナの調整をする前のオリジナルのドキュメントが生成可能である。コンテナ調整情報には、前述のコンテナ調整テーブルが格納されている。一方、コンテナ調整情報を用いれば、オリジナルのドキュメントを調整したドキュメントを生成可能である。
さて、ユーザインタフェース229によって調整済ドキュメントの保存が指示されると、ステップS1906のドキュメント保存処理が実行される。
次に、このステップS1906のドキュメント保存処理の詳細について、図26を用いて説明する。
図26は本発明の実施形態1のドキュメント保存処理の詳細を示すフローチャートである。
まず、ドキュメントテンプレートを保存する(ステップS2601)。次に、全ページの全コンテンツに挿入されるデータ(コンテンツ情報)を保存する(ステップS2602)。そして、コンテナ調整テーブル(コンテナ調整情報)を保存する(ステップS2603)。
調整済ドキュメントは、後から読み込んでプレビューし、再度コンテナの調整を行ったり、印刷を行ったりすることが可能である。例えば、ユーザインタフェース229によって調整済ドキュメントの読込が指示されると、ステップS1907のドキュメント読込処理が実行される。
次に、このステップS1907のドキュメント読込処理の詳細について、図27を用いて説明する。
図27は本発明の実施形態1のドキュメント読込処理の詳細を示すフローチャートである。
まず、ドキュメントテンプレートのデータ(テンプレート情報)を読み込む(ステップS2701)。次に、全ページの全コンテンツのデータ(コンテンツ情報)を読み込む(ステップS2702)。次に、コンテナ調整テーブル(コンテナ調整情報)を読み込む(ステップS2703)。そして、読み込んだ各種データによって構成される調整済ドキュメントのプレビュー処理を行う(ステップS2704)。
次に、ステップS2704の調整済ドキュメントのプレビュー処理の詳細について、図28を用いて説明する。
図28は本発明の実施形態1の調整済ドキュメントのプレビュー処理の詳細を示すフローチャートである。
尚、図28において、図20と同一のステップについては、同一のステップ番号を付加して、その詳細については省略する。この図28の調整済ドキュメントのプレビュー処理の大部分は、図20のプレビュー処理と同じであるが、レイアウト結果をそのままプレビューするのではなく、ステップS803の処理後、該当するコンテナの調整データをコンテナ調整テーブルから検索する(ステップS2804)。
そして、その検索結果に基づいて、調整データの有無を判定する(ステップS2805)。調整データがない場合(ステップS2805でNO)、ステップS2806に進む。一方、調整データがある場合(ステップS2805でYES)、レイアウト結果のレイアウトコンテナデータを、検索した調整データで上書きすることにより、レイアウト結果を調整する(ステップS2806)。そして、得られる調整済レイアウト結果を表示(プレビュー)する(ステップS2807)。
尚、レイアウトプレビューアプリケーション227は、プレビュー以外に印刷を実行することも可能である。印刷時においては、ステップS2704の調整済ドキュメントのプレビュー処理と同様に、印刷するレコード全てについて順にレイアウトの計算を行う。従って、この場合は、ステップS805及びステップS810は存在せず、全てのレコード(印刷対象の指定された全レコード)について印刷データの出力が終了した時点で、本処理を終了することになる。
最後に、ユーザは、ユーザインタフェース229によって、アプリケーション終了の指示をすると、ステップS1908において、使用したメモリのワーク領域をクリアする等の一連のアプリケーション終了処理を実行し、処理を終了する。
以上説明したように、実施形態1によれば、コンテナのレイアウトの調整やフォントサイズや罫線等の修飾属性の調整が可能になるだけでなく、調整結果をファイルとして保存し、そのファイルを用いて、後から再度調整をしたりプレビュー表示や印刷を行うことが可能となる。
つまり、従来技術では、ドキュメントテンプレートやコンテンツを格納するデータベースの内容の変更が必要なために、管理者以外の一般ユーザではできなかったレイアウトやコンテンツの修正が可能になるだけでなく、自由にコンテナのレイアウト(位置やサイズ等)を調整可能にすることにより、従来では不可能であったレイアウトが可能となる。
また、コンテナ調整情報に加えて、ドキュメントテンプレートのテンプレート情報と、それに関連するオリジナルのコンテンツ情報を保持するので、調整前のオリジナルの状態に戻すことも可能となる。また、必要に応じて、記憶資源を有効利用したい場合には、オリジナルのコンテンツ情報を削除することも可能となる。
<<実施形態2>>
実施形態1では、コンテナの調整種別として、移動/サイズ変更・修飾属性変更の例を説明したが、コンテナにマージ(差し込まれる)される文字列やイメージ等のコンテンツの変更を可能にする構成とすることもできる。
以下、コンテンツの変更を可能にする構成とした場合の、ステップS1905のコンテナ調整処理の詳細について、図29を用いて説明する。
図29は本発明の実施形態2のコンテナ調整処理の詳細を示すフローチャートである。
尚、図29のフローチャートは、実施形態1の図23のフローチャートに対して、ステップS2901〜ステップS2904を新たに追加している。
ユーザインタフェース229によって、コンテンツの調整が指示されると、ステップS2305あるいはステップS2306によって、調整種別が「コンテンツ」である調整データがコンテナ調整テーブルに追加・変更される。コンテンツの調整種別を指示する操作としては、コンテナをコンテンツ編集ツールでクリックしてコンテンツ編集モードにしてから文字列の削除・入力等を行う方法などが考えられる。
そして、コンテンツのみを変更してしまうとリンクされた他のコンテナも含めた複数のコンテナのレイアウトまで変わってしまう可能性があるため、現在のコンテナ位置/サイズが変わらないように、つまり、現在のコンテナ位置/サイズを維持するための位置・サイズ調整データを必要に応じて追加する。
次に、調整種別がコンテンツ調整であるか否かを判定する(ステップS2901)。コンテンツ調整でない場合(ステップS2901でNO)、ステップS2308に進む。一方、コンテンツ調整である場合(ステップS2901でYES)、調整種別が「位置・サイズ」の該コンテナに対する調整データ(位置・サイズ調整データ)を、コンテナ調整テーブルから検索する(ステップS2902)。
次に、検索結果に基づいて、位置・サイズ調整データがあるか否かを判定する(ステップS2903)。位置・サイズ調整データがない場合(ステップS2903でYES)、現在のレイアウトの位置/サイズを調整するための、位置・サイズ調整データを新たに生成してコンテナ調整テーブルに追加し、ステップS2307によって得られる調整済レイアウトコンテナデータを更に位置・サイズ調整データで上書きする(ステップS2904)。その後、ステップS2308に進む。
一方、位置・サイズ調整データがある場合(ステップS2903でYES)、その位置・サイズ調整データに基づいて調整された選択コンテナを含む調整済レイアウトコンテナデータを再表示する(ステップS2308)。
また、ステップS1906のドキュメント保存処理の詳細である、図26のステップS2602において、調整種別が「コンテンツ」の調整データがコンテナ調整テーブルにないか検索し、調整データがある場合には、対応するコンテナに挿入するはずだった調整前のコンテンツをコンテンツ情報には保存しないようにする構成とすることも可能である。このように構成すると、調整済ドキュメントのサイズを小さくすることができる。
以上説明したように、実施形態2によれば、実施形態1で説明した効果に加えて、コンテナにマージされる(差し込まれる)コンテンツに対しても調整することが可能となる。
<<実施形態3>>
実施形態1及び2では、レイアウト編集アプリケーション121やレイアウトプレビューアプリケーション227は、サーバクライアントシステムにおけるクライアント上で実現する構成としているが、これらのアプリケーションを搭載するアプリケーションサーバを構成して、このアプリケーションサーバに対してクライアントがアクセスすることで、実施形態1や2の構成を実現するようにしても良い。
そこで、実施形態3では、例えば、Webサーバクライアントシステムを構築し、Webサーバがレイアウト編集アプリケーション121やレイアウトプレビューアプリケーション227を搭載して、このWebサーバとWebクライアント間で実施形態1や2の構成を実現する構成について説明する。
まず、実施形態3のWebサーバクライアントシステムの構成の概要について、図30を用いて説明する。
図30は本発明の実施形態3のWebサーバクライアントシステムの構成を示す図である。
図30では、レイアウト編集アプリケーション121やレイアウトプレビューアプリケーション227が搭載されたWebサーバ161に対して、Webブラウザを有するWebクライアント152〜154からの指示/操作を実現した構成である。
図30において、ネットワーク107には、クライアント用パーソナルコンピュータ(以下「クライアントPC」)152〜154と、サーバ用パーソナルコンピュータ(以下「サーバPC」)161が接続されている。また、これらのコンピュータは、図1Bと同様のハードウェア構成を有している。
サーバPC161はWebサーバ機能を有し、クライアントPC152〜154のWebブラウザ経由から指示を受けて、その指示を発行したクライアントPCのWebブラウザに対して、処理結果を返す。但し、本発明においては、サーバPC161及びクライアントPC152〜154間の通信手法については、特に限定するものではない。また、サーバPC161単体で、実施形態1や2の構成を実現する形態でも構わない。
次に、Webサーバクライアントシステムの機能構成について、図31を用いて説明する。
図31は本発明の実施形態3のWebサーバクライアントシステムの機能構成を示す図である。
クライアントPC152では、Webブラウザ機能を有しており、これに加えて、カタログ情報や画像データ等のコンテンツをサーバPC161に登録するための情報登録モジュール172と、出力するドキュメントテンプレートを登録する出力ドキュメントテンプレート登録モジュール173と、差替モジュール174を有している。
但し、これらのモジュールは、サーバPC161から必要に応じて、Webブラウザのプラグイン形式で自動的に配信されるので、クライアントPC152上で、インストール処理を行う必要はない。
サーバPC161は、HTTPWebアプリケーションサーバ機能を有しており、クライアントPC152からのリクエストを処理するための各種モジュール群からなるモジュールセット177を有している。
このモジュールセット177には、ユーザ認証モジュール、検索処理モジュール、各種データ(商品情報、カタログ情報、関連付け情報)の一括登録モジュール、各種メンテナンスモジュール、ドキュメントテンプレートに基づくデータ出力モジュール等がある。
これらのモジュールは、クライアントPC161からのリクエストに応じて、サーバPC161内のメモリ上にロードされ、処理を実行する。
また、これらのモジュールとは別に、レイアウトエンジンを用いてPDFファイル等の画像編集を行う画像編集モジュール、データファイルに対して、結合・分割等の編集を行うファイル編集モジュールからなる編集モジュール178を有している。この編集モジュール178は、例えば、実施形態1や2のレイアウト編集アプリケーション121やレイアウトプレビューアプリケーション227によって実現される。
更に、サーバPC161内のデータベース179(図1のデータベース119に対応)とのデータのやり取りを行うためのデータベース共通ライブラリ180や、実施形態3で実行する処理を実現するための各種機能を実現するユーティリティライブラリ181を有している。
次に、実施形態3の具体例を説明するにあたり、コンテナとドキュメントテンプレートの構成例について、図32を用いて説明する。
図32は本発明の実施形態3のコンテナとドキュメントテンプレートの構成例を示す図である。
図32において、2701は複数のコンテナを有するドキュメントテンプレートである。また、ドキュメントテンプレート2701には、コンテンツデータである「商品名」データを差し込むためのコンテナ(フィールド領域)2702、コンテンツデータである「製品コード」データを差し込むためのコンテナ2703、コンテンツデータである「商品画像」データを差し込むためのコンテナ2704を有している。
データベース179は、各コンテナ2702〜2704に差し込むための各種データを格納するデータベースである。このデータベース179には、少なくとも各コンテナに対応するデータを格納するデータフィールド2708〜2710と、分類別キー名称管理フィールド2711からなるコンテナ管理テーブルが管理されている。また、ドキュメントテンプレート2701もデータベース179に管理されている。
コンテナ管理テーブル2706は、コンテナ2702〜2704にそれぞれ実際に差し込まれるデータを管理するテーブルであり、コンテナ2702には、データフィールドキー2708(DATA_A)、コンテナ2703にはデータフィールドキー2709(DATA_B)、そして、コンテナ2704にはデータフィールドキー2710(DATA_C)がそれぞれ関連付けられている。
[プレビュー及びコンテンツ差替]
次に、例えば、クライアントPC152上のWebブラウザの画面例について、図33を用いて説明する。
図33は本発明の実施形態3のクライアントPC上のWebブラウザの画面例を示す図である。
図33では、サーバPC161上にある構造のデータベース179のコンテンツデータ、ドキュメントテンプレートを使用して、クライアントPC152のWebブラウザ上で、ドキュメントのプレビュー及びコンテンツ(画像)差替を実現させる構成を示している。つまり、このコンテンツ(画像)差替は、実施形態2で説明したコンテナ内のコンテンツの調整操作の1つに相当する。もちろん、実施形態3において、コンテナのレイアウトや修飾属性を変更することも可能である。
図33において、3801は一般的なWebブラウザを示しており、プレビュー及びコンテンツ差替画面のUIとなる。3802は図34(説明は後述する)で作成されたレイアウト結果(レイアウト済ドキュメント)である。3803はレイアウト結果3802を表示するためのフレームである。3804はフレーム3803で表示されたレイアウト結果3802に対して、コンテンツの差替を行う際に、差替対象のコンテンツ(画像)ファイルを入力するためのフレームである。
3805はドキュメントテンプレート(レイアウト結果3802)上の各コンテナが、コンテンツデータの差替可能であるか否かを矩形(レイアウト結果3802上のコンテナのレイアウトとサイズに対応する矩形領域)でユーザに通知するためのコントロール領域(コンテンツ差替エリア)である。特に、このコントロール領域3805では、差替可能なコンテナに対しては、差替対象のコンテンツファイルを入力することが可能なコントロールが構成される。
差替対象のコンテンツファイルの入力を行うと、コンテナを示す矩形の外枠の表示形態(例えば、色付け表示、ブリンク表示等)を変更することによって、入力済状態であることをユーザに通知する。このコントロール領域3805は、Webブラウザ3801のプラグイン機能を利用して提供される。具体的には、Microsoft社の技術であるActiveXまたはJava(登録商標)で提供されるアプレットを利用する。
3806はコントロール領域3805内で、差替可能なコンテナを示す矩形領域である。3807はコントロール領域3805内で差替不可能なコンテナを示す矩形領域である。実施形態3の場合、矩形領域3807はグレーアウトされて差替不可能であることをユーザに通知する。尚、この矩形領域3807の表示形態は、これに限定されず、差替可能/差替不可能であることをユーザが視認できる表示形態であれば、どのようなものでも良い。
3808は差替実行ボタンである。この差替実行ボタン3808が押下されると、コントロール領域3805内で差替可能なコンテナに対して、コンテンツファイルの入力があった場合に、そのコンテンツファイルで差替を行って、その差替に基づいてレイアウト結果3802を作成して更新する要求(再プレビュー要求情報)をサーバPC161に送信する。3809は差替実行ボタン3808を実行して、コンテンツの差替を行った場合に、その操作を取り消す(アンドゥ(Undo))要求を、サーバPC161に送信するためのアンドゥボタンである。
次に、サーバPC161によって、クライアントPC152のWebブラウザ上で図33の画面を表示するまでの表示処理について、図34を用いて説明する。
図34は本発明の実施形態3の表示処理を示すフローチャートである。
尚、図34では、使用するドキュメントテンプレート及び差込対象のコンテンツデータの選択方法は、ここでは特定しない。また、この表示処理は、サーバPC161側で、ドキュメントテンプレートによって生成されたレイアウト結果のプレビューデータ(レイアウトコンテナデータ)と、コンテンツ差替に用いるコントロール(UI)を生成し、例えば、クライアントPC152のWebブラウザに送信して、表示する処理を示している。
まず、サーバPC161は、クライアントPC152のWebブラウザを介して、プレビューモードの指示を受信する(ステップS3901)。次に、差込対象のコンテンツデータに対してドキュメントテンプレートを用いて、レイアウト計算を行う(ステップS3902)。これは、図8のステップS803に対応する。
次に、計算されたレイアウト結果(レイアウト済ドキュメント)に対して、識別番号(ID)を付与して、これをメモリ上の一時ディレクトリに保存する(ステップS3903)。次に、今後、クライアントPC152によって処理がキャンセル(アンドゥ)される場合に備えて、ドキュメントテンプレートを識別するテンプレートID、差込対象のコンテンツデータを識別するマスタID、クライアントPC152のユーザの識別番号(ユーザID)をアンドゥ(Undo)情報として保存する(ステップS3904)。
次に、処理対象のドキュメントテンプレートファイルを開く(ステップS3905)。次に、クライアントPC152に送信する図33のコントロール領域3805を、ドキュメントテンプレートの全体を表現する矩形領域として新規に作成する(ステップS3906)。
次に、ドキュメントテンプレートファイル内に存在するコンテナの数だけ繰り返す(ループ)処理として、ステップS3908〜ステップS3914を実行する。ここで、ステップS3907a及びステップS3907bはそれぞれ、ループ処理の始端及び終端を示している。
ループ処理では、まず、ドキュメントテンプレートファイル内の処理対象のコンテナの位置(座標)情報と矩形サイズを含むコンテナ情報を取得する(ステップS3908)。次に、処理対象のコンテナが、データベースの画像コンテンツと関連付いているか否かを判定する(ステップS3909)。コンテナが画像コンテンツと関連付いている場合(ステップS3909でYES)、コンテンツの差替可能であることを示す差替可能フラグをONに設定する(ステップS3910)。次に、取得したコンテナ情報に基づいて、画像コンテンツを差替可能であることを通知する矩形領域を作成する(ステップS3911)。
一方、コンテナが画像コンテンツと関連付いていない場合(ステップS3909でNO)、差替可能フラグをOFFに設定する(ステップS3912)。次に、取得したコンテナ情報に基づいて、画像コンテンツを差替不可能であることを通知する矩形領域を作成する(ステップS3913)。
尚、実施形態3では、上述したように、矩形領域をグレーアウトすることで、差し替え不可であることを通知する。また、差替可能フラグの設定値はサーバPC161内のメモリ上に記憶される。
次に、ステップS3911またはステップS3913で作成した矩形領域を、ステップS3906で作成したコントロール領域に対して追加する(ステップS3914)。次に、矩形領域が追加されたコントロール領域を、クライアントPC152のWebブラウザのプラグインに含めて、クライアントPC152に送信する(ステップS3915)。次に、ステップS3903で保存したレイアウト結果をプレビューとして、クライアントPC152に送信する(ステップS3916)。
次に、クライアントPC152からサーバPC161に対して、レイアウト結果(レイアウト済ドキュメント)に対して、コンテンツ画像の差替要求を行う場合のコンテンツ差替処理について、図35を用いて説明する。
図35は本発明の実施形態3のコンテンツ差替処理を示すフローチャートである。
まず、図33の画面において、コンテンツ画像ファイルの差替操作を行う(ステップS3001)。
尚、差替操作は、実施形態3では、例えば、図33のコントロール領域3805に対して、コンテンツ画像ファイルを、所望の矩形領域にドラッグ&ドロップすることで実現する。もちろん、この方法に限定されず、メニュー操作やボタン操作等の他のコントロール操作によって、差替操作を実現するようにしても良い。
次に、差替操作によって処理対象となる矩形領域が差替可能なコンテナであるか否かを判定する(ステップS3002)。実施形態3の場合、コンテンツ画像ファイルのドロップ先の矩形領域が、差替可能なコンテナであるか否を判定する。
差替可能なコンテナでない場合(ステップS3002でNO)、コンテンツ画像ファイルの差替が不可能であることを示すエラーメッセージを表示する(ステップS3004)。
一方、差替可能なコンテナである場合(ステップS3002でYES)、矩形領域の位置から、差替対象となるドキュメントテンプレートにおけるコンテナの識別番号(コンテナID)を取得する(ステップS3003)。次に、差替対象のコンテンツ画像ファイルを保存する(ステップS3005)。次に、図33の差替実行ボタン3808の押下を受け付ける(ステップS3006)。次に、ドキュメントテンプレートを識別するテンプレートIDと、差替対象のコンテンツ画像ファイルを識別するマスタIDと、コンテナID、差替対象のコンテンツ画像ファイルを含む再プレビュー要求情報を、サーバPC161に対して送信する(ステップS3007)。
次に、クライアントPC152からの再プレビュー要求情報をサーバPC161が受信した場合に実行する再プレビュー処理について、図36を用いて説明する。
図36は本発明の実施形態3の再プレビュー処理を示すフローチャートである。
まず、サーバPC161は、クライアントPC152から再プレビュー要求情報を受信する(ステップS3101)。尚、実施形態3では、サーバPC161とクライアントPC152間のデータ通信は、例えば、HTTP通信を使用する。
次に、ドキュメントテンプレートファイル内に存在するコンテナの数だけ繰り返す(ループ)処理として、ステップS3103〜ステップS3105を実行する。ここで、ステップS3102a及びステップS3102bはそれぞれ、ループ処理の始端及び終端を示している。
ループ処理では、まず、再プレビュー要求情報中のコンテナIDに基づいて、対応するのコンテナが差替対象のコンテナであるか否かを判定する(ステップS3103)。差替対象のコンテナである場合(ステップS3103でYES)、再プレビュー要求情報中のコンテンツ画像ファイルとコンテナとの関連付けを行い、一時的に、コンテンツ画像ファイルを入れ替える(ステップS3104)。
一方、差替対象のコンテナでない場合(ステップS3103でNO)、データベースに登録された情報をそのまま取得する。
次に、コントロール領域を作成する(ステップS3106)。尚、この処理は、図34のステップS3905〜ステップS3914の処理に対応する。次に、ドキュメントテンプレートを用いて、レイアウト計算及びレイアウト結果を保存する(ステップS3107)。尚、この処理は、図34のステップS3902及びステップS3903の処理に対応する。
これにより、クライアントPC152から送信されたコンテンツ画像ファイルの差替が実行されたレイアウト結果が作成される。
そして、作成したコントロール領域を、クライアントPC152のWebブラウザのプラグインに含めて、クライアントPC152に送信する(ステップS3108)。尚、この処理は、図34のステップS3915に対応する。そして、ステップS3107で保存したレイアウト結果をプレビューとして、クライアントPC152に送信する(ステップS3109)。尚、この処理は、図34のステップS3916に対応する。
次に、クライアントPC152でアンドゥボタン3809が押下された場合にサーバPC161が実行するアンドゥ処理について、図37を用いて説明する。
図37は本発明の実施形態3のアンドゥ処理を示すフローチャートである。
クライアントPC152でアンドゥボタン3809が押下されると、アンドゥ要求情報がサーバPC161に送信される。そこで、サーバPC161は、クライアントPC152から送信されたアンドゥ要求情報に対応するユーザID・マスタIDを取得する(ステップS3201)。次に、取得したユーザID・マスタIDに基づいて、図34の処理によって既に作成されたレイアウト結果を一時ディレクトリから取得する(ステップS3202)。
次に、コントロール領域を作成する(ステップS3203)。尚、この処理は、図19のステップS3905〜ステップS3914の処理に対応する。次に、作成したコントロール領域を、クライアントPC152のWebブラウザのプラグインに含めて、クライアントPC152に送信する(ステップS3204)。尚、この処理は、図34のステップS3915に対応する。そして、ステップS3202で取得したレイアウト結果をプレビューとして、クライアントPC152に送信する(ステップS3205)。尚、この処理は、図34のステップS3916に対応する。
以上の処理により、クライアントPC152で行われたコンテンツ画像ファイルの差替をアンドゥ(キャンセル)することが実現される。
以上説明したように、実施形態3によれば、ユーザが、システム管理者にコンテンツの修正および登録(差替)を依頼することなく、ドキュメントテンプレートによるレイアウト結果の出力実行時に、Webブラウザ上で視覚的に出力結果のコンテンツを一時的に差し替えることができる。また、一時的な差し替えが行われた際には、動的なレイアウト処理がなされるため、ユーザは最適なレイアウトの出力結果を得ることができる。
尚、実施形態3では、コンテンツを一時的に差し替える構成としているが、実施形態1や2のように、クライアントPCがコンテナやコンテンツの調整操作を指示して、その指示に従ってサーバPCが調整データを生成して管理する構成とすることも可能である。
以上、実施形態例を詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
尚、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム(実施形態では図に示すフローチャートに対応したプログラム)を、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であっても良い。
プログラムを供給するための記録媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などがある。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現される。