以下、本発明の実施の形態について図面を用いて詳細に説明する。
<<実施形態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によって実行されるソフトウェアにより実現される。
レイアウト編集アプリケーション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は、典型的な通信チャネル123(例えば、USB、IEEE1394、無線LAN等)を介して接続される。
次に、バリアブルプリントシステム100の別構成例について、図1Cを用いて説明する。
図1Cは本発明の実施形態1の情報処理システムの別構成を示す図である。
図1Cは、ネットワーク107上にエンジンサーバ227を追加して、このエンジンサーバ227にレイアウトエンジン225を構成した例を示している。つまり、ホストコンピュータ101内のレイアウトエンジン105を、エンジンサーバ227内で実現した構成である。この構成の場合、ホストコンピュータ101の処理負荷を軽減することができる。
尚、このエンジンサーバ227は、他のサーバと同様、典型的なコンピュータである。また、ファイルサーバ115に保存されたドキュメントテンプレートは、印刷や他の目的がある際、レイアウトエンジン225によってドキュメントを生成するためにデータベース119に保存されたデータと結合することができる。そのようなオペレーションは、ユーザインタフェース103を介して要求されるか、特定のレコードのみ印刷するように要求される。
<レイアウト編集アプリケーションの概要>
まず、バリアブルデータプリントの概略について、図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のレイアウト編集アプリケーション121におけるレイアウト計算処理を示すフローチャートである。
尚、この制御フローは、ドキュメントテンプレートに対して、データベース119から各レコードのコンテンツを流し込み(マージ)、各コンテナ属性と、各コンテンツの量・サイズに応じて、動的にレイアウト計算を行う手法を説明するものである。また、このフローチャートは、レイアウト編集アプリケーション121のレイアウトエンジン105が、プロセッサ135及びメモリ136を用いて動作する制御となる。
まず、レイアウト編集アプリケーション121は、プレビューモードが選択されると、本処理を開始する(ステップS801)。
尚、前述した図6の制御は、自動レイアウトシステムで、少なくとも2つのコンテナを作成して、それらのコンテナ間に関連付けを行うことでドキュメントテンプレートのレイアウトを作成するレイアウトモードにおける動作である。
これに対し、図8の制御は、図6で作成したレイアウトにレコードを挿入して、実際にレコードが挿入された後のレイアウト結果をプレビューするプレビューモードが実行されることにより開始される。そこで、ステップS801では、まずプレビューモードを選択し、次いで、実際のレコードを挿入してレイアウトを計算する。但し、プレビューモードは、表示上でのレイアウト計算であって、実際に印刷する場合においても、レコードを挿入してレイアウトを再度計算する。その際の計算方法も同じである。
そして、プレビューモードになった後、レイアウト編集アプリケーション121は、プレビューするレコードを選択して、選択されたレコードの各フィールドデータを各コンテナに挿入する(ステップS802)。尚、プレビューするレコードは、ユーザから特定のレコードが指定された場合はその指定されたレコードとなり、指定がない場合は、1レコード目から順次計算が行なわれる。
各コンテナへフィールドデータを挿入すると、レイアウト編集アプリケーション121は、そのレコードをレイアウトするためのレイアウト計算を行う(ステップS803)。尚、ステップS803におけるレイアウト計算の詳細については、図9を用いて後述する。
そして、レイアウト編集アプリケーション121は、ステップS803の処理で計算されたレイアウトを表示(プレビュー)する(ステップS804)。レイアウト編集アプリケーション121は、他のレコードについてもプレビューを行うかどうかをユーザの指示により判定する(ステップS805)。ステップS805で、他のレコードについてプレビューを行う必要がない場合(ステップS805でNO)、プレビューモードを終了する(ステップS807)。
一方、他のレコードについてプレビューを行う場合(ステップS805でYES)、レイアウト編集アプリケーション121は、他のレコードを選択して再度レイアウト計算を行い、プレビューを行う(ステップS806)。
尚、プレビューモードでなく印刷モードにおいては、印刷するレコード全てについて順に、上述した手順と同様にレイアウトの計算を行う。従って、ステップS804は存在せず、ステップS805は印刷するレコードを全て処理したかの判断を行う。そして、ステップS807で、レイアウト計算された結果を、描画出力して出力し、プリンタドライバを用いて印刷データとして生成し、プリンタに印刷データが出力される。この場合、全てのレコード(印刷対象の指定された全レコード)について印刷データの出力が終了した時点で、本処理を終了することになる。
[レイアウト計算方法(詳細)]
次に、上記ステップ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のマルチレコードとそのレイアウト方法の概要を示す図である。
1201はドキュメント、1202はページ、1203はサブテンプレート、1204はデータベースを示している。データベース1204では、No1〜7のレコードが管理されている。1レコード1ドキュメントのバリアブルプリントでは、7つレコードがあるので、この場合、7ドキュメントが作成される。
一方、多レコード1ドキュメントのマルチレコードをサポートするバリアブルプリントでは、次のような処理を行う。
まず、マルチレコードを指定するカラムをユーザが任意に指定する、この例では、フィールド名「Name」が指定されたものとする。この場合、そのフィールド名が同じレコードは、1ドキュメントにレイアウトされるレコードであると認識する。この例では、No1〜4のレコードは「Name」が「Tom」であるため、これらのレコードのデータは、同じドキュメント上にレイアウトされる。また、No5〜7のレコードは「Name」がNancyであるため、これらのレコードのデータは、同じドキュメント上にレイアウトされる。
次に、実施形態1の特徴的な処理について説明する。
特に、実施形態1では、コンテナにコンテンツを流し込む場合に、そのコンテンツ中に存在する余白を、設定に基づいて、削除する余白削除処理を実行する。
尚、余白とは、コンテンツを構成する主な対象物(被写体あるいは関心領域)以外の部分であり、通常は、その対象物の背景部分となる。あるいは、コンテンツ中において、それを配置するドキュメントの色と同一あるいは類似の色を有する部分である。
以下、この余白削除処理を含む、実施形態1のバリアブルプリントシステムが実行する処理について、図13及び図14を用いて説明する。
図13は本発明の実施形態1のバリアブルプリントシステムが実行する処理を示すフローチャートである。図14は本発明の実施形態1のバリアブルプリントシステムが実行する処理の具体例を説明するための図である。
まず、操作者は、コンテナをページ上に配置し、それらをリンクで結合する(ステップS1401)。図14の(1)の場合、ページ1300に対し、コンテナ1301及び1302を配置し、それらをリンク1310で結合する。
次に、コンテナに対する「余白削除設定」操作の有無を判定する(ステップS1402)。「余白削除設定」操作がない場合(ステップS1402でNO)、ステップS1405に進む。一方、「余白削除設定」操作がある場合(ステップS1402でYES)、ステップS1403に進む。図14の(1)の場合、コンテナ1301及び1302それぞれに対し、「余白削除設定」操作をする。
尚、操作者は、例えば、マウス133の操作によって、「余白削除設定」対象のコンテナを選択し、「余白削除設定」を実行することが可能である。選択及び設定方法としては、例えば、マウス133の右クリックによって現れるコンテキストメニューで、「余白削除設定プロパティ」を選択し、設定する。
ステップS1402で、「余白削除設定」操作があると、レイアウト編集アプリケーション121は、余白削除設定プロパティダイアログを表示する(ステップS1403)。
ここで、余白削除設定プロパティダイアログの一例について、図15を用いて説明する。
図15は本発明の実施形態1の余白削除設定プロパティダイアログの一例を示す図である。
図15に示すように、余白削除設定プロパティダイアログ1500では、余白削除処理の処理基準として、「コンテンツサイズで動的レイアウト」と「コンテンツ内の対象物の矩形サイズで動的レイアウト」のいずれかを選択するためのラジオボタンが構成されている。
そして、操作者が、例えば、余白削除設定プロパティダイアログ1500の「コンテンツ内の対象物の矩形サイズで動的レイアウト」ラジオボタンを選択し、余白削除設定プロパティダイアログ1500を閉じると、その選択された内容に基づいて、各種設定をページに反映する(この場合、処理対象のコンテナに対して余白削除属性をONとして保存する)(ステップS1404)。
ここまでが、コンテナに対する余白削除設定処理となる。その後、操作者が他のコンテナにも余白削除設定することを望む可能性があるので、更なるコンテナに対する「余白削除設定」操作の有無を判定する(ステップS1405)。「余白削除設定」操作がある場合(ステップS1405でYES)、ステップS1403に戻り、同様の処理を実行する。一方、「余白削除設定」操作がない場合(ステップS1405でNO)、ステップS1406に進む。
次に、ドキュメントのプレビュー操作の有無を判定する(ステップS1406)。プレビュー操作がない場合(ステップS1406でNO)、処理を終了する。一方、プレビュー操作がある場合(ステップS1406でYES)、ステップS1407に進む。
このステップS1407以降の処理がプレビュー処理となる。
まず、レイアウト編集アプリケーション121は、データベースからコンテンツを取得する(ステップS1407)。図14の(2)の場合、コンテンツ1303及び1304を取得する。
次に、レイアウト編集アプリケーション121は、各コンテナに取得したコンテンツを流し込む処理を実行する(ステップS1408)。図14の(2)の場合、コンテナ1301にコンテンツ1303、コンテンツ1302にコンテンツ1304を流し込む。
次に、レイアウト編集アプリケーション121は、処理対象のコンテナに「余白削除設定」がなされているか否かを判定する(ステップS1409)。「余白削除設定」がなされていない場合(ステップS1409でNO)、ステップS1411に進む。一方、「余白削除設定」がなされている場合(ステップS1409でYES)、ステップS1410に進む。
「余白削除設定」がなされている場合、余白削除処理を実行する(ステップS1410)。これは、コンテンツの流し込み前後のどちらであっても良い。図14の(3)の場合、コンテナ1300及び1301はいずれも「余白削除設定」がなされているので、それぞれに流し込むコンテンツ1303及び1304の余白を削除する。
次に、レイアウト編集アプリケーション121は、レイアウト計算を実行して、コンテナの位置とサイズを確定する(ステップS1411)。例えば、図14の(4)及び(5)の場合、縦横比を保って、コンテンツ1303及び1304を拡縮して、それらが存在するコンテナ1301及び1302の固定長辺にフィットさせる。更に、コンテナ1301及び1302の可変長辺をコンテンツ1303及び1304にフィットさせて、関連するコンテナを移動する。
その後、レイアウト結果を表示(プレビュー)する(ステップS1412、図14の(5))。
次に、ステップS1410の余白削除処理の詳細について、図16を用いて説明する。
図16は本発明の実施形態1の余白削除処理の詳細を説明するための図である。
まず、図16の(a)において、レイアウト編集アプリケーション121は、処理対処のコンテンツ(例えば、画像)を二値化する。
次に、図16の(b)において、レイアウト編集アプリケーション121は、例えば、矩形領域の背景(余白)を有するコンテンツの任意の辺から、その辺に垂直に画像を走査して、コンテンツ内の主な対象物を構成する対象物画素(有効画素(この場合、例えば、白黒画素の内の黒画素))を検出する。
尚、ここでの検出は、コンテンツが配置されるドキュメント上の背景色に基づいて実行する。但し、ドキュメント上の背景色は、通常、白であることが多いため、図16の(b)では、上記のような、背景色と同一の色を有する領域(余白)の検出を実行する。一方、背景色が白以外の色である場合には、その色に基づいて、コンテンツ内の主な対象物を構成する対象物画素を検出することになるのは言うまでもない。
また、余白の検出は、背景色と同一の色を有する領域を余白として検出するだけでなく、その背景色を含む所定色範囲内の色を有する領域を余白として検出するようにしても良い。
次に、図16の(c)において、レイアウト編集アプリケーション121は、走査中に対象物画素を検出したら、その検出した対象物画素の座標までを、余白領域としてメモリ136に記憶する。
次に、図16の(d)において、レイアウト編集アプリケーション121は、その他の3辺についても、図16の(c)と同様の処理を実行する。
次に、図16の(e)において、レイアウト編集アプリケーション121は、図16の(c)及び(d)で余白領域としてメモリ136に記憶した領域を、コンテンツから削除し、残った領域(コンテンツ内の主な対象物の最外接矩形領域(関心領域))をコンテンツ画像として、コンテナに流し込む。
つまり、図16で説明する処理は、別の見方をすれば、矩形領域からなるコンテンツ(データ)の各辺から対辺方向に垂直にコンテンツを走査して得られる、ドキュメントのページの背景色を含む所定色範囲内の色以外の色が最初に検出される画素を含む、走査を開始した辺に平行な線分を検出し、各辺の走査によって検出される線分によって囲まれる矩形領域を関心領域として検出する処理となる。また、関心領域以外の領域が余白領域となる。
以上説明したように、実施形態1によれば、ページ上のコンテナに対して「余白削除設定」機能を実現することで、その「余白削除設定」されたコンテナに流し込まれるコンテンツのサイズを、ドキュメント上の背景色と同一あるいは類似色(例えば、濃度値や輝度値が、背景色の濃度値や輝度値の所定色範囲内にある色)の部分をコンテンツの周囲から取り除く。そして、その取り除かれて残る矩形からなるコンテンツを、コンテナに流し込む。
これにより、コンテンツ中の主な対象物が、より適切にかつ視認し易いサイズでコンテナ上に配置することができる。また、操作者は、コンテンツ中の不要な余白部分を削除する手間から解放され、操作性をより向上することができる。更に、ドキュメント内の各コンテナ領域に流し込むコンテンツを有効的に使用することができるので、ドキュメント全体の情報密度を向上させることができる。
<<実施形態2>>
実施形態2は、実施形態1の応用例である。実施形態1では、コンテンツ中の余白を削除することで、コンテナ内でコンテンツ中の主要部分をより好適に配置する構成について説明した。
これに対し、実施形態2では、コンテナ同士を結合するリンクの両端側において、そのコンテナ同士の位置決め(レイアウト)をする際に、各コンテナ内のコンテンツのリンク側の余白を無視してコンテンツ間距離を最小化にして、コンテナ及びコンテンツをより好適に配置する構成について説明する。
まず、実施形態2のバリアブルプリントシステムが実行する処理について、図17〜図19を用いて説明する。
図17は本発明の実施形態2のバリアブルプリントシステムが実行する処理を示すフローチャートである。図18及び図19は本発明の実施形態2のバリアブルプリントシステムが実行する処理の具体例を説明するための図である。
尚、図18は後述する「余白無視設定」がOFFの場合の具体例、図19は「余白無視設定」がONの場合の具体例を示している。
まず、操作者は、コンテナをページ上に配置し、それらをリンクで結合する(ステップS1901)。図18の(1)の場合、ページ1800に対し、コンテナ1801及び1802を配置し、それらをリンク1810で結合する。
次に、リンクに対する「余白無視設定」操作の有無を判定する(ステップS1902)。「余白無視設定」操作がない場合(ステップS1902でNO)、ステップS1905に進む。一方、「余白無視設定」操作がある場合(ステップS1902でYES)、ステップS1903に進む。図19の(1)の場合、リンク1810に対し、「余白無視設定」操作をする。
尚、操作者は、例えば、マウス133の操作によって、「余白無視設定」対象のリンクを選択し、「余白無視設定」を実行することが可能である。選択及び設定方法としては、例えば、マウス133の右クリックによって現れるコンテキストメニューで、「余白無視設定プロパティ」を選択し、設定する。
ステップS1902で、「余白無視設定」操作があると、レイアウト編集アプリケーション121は、余白無視設定プロパティダイアログを表示する(ステップS1903)。
ここで、余白無視設定プロパティダイアログの一例について、図20を用いて説明する。
図20は本発明の実施形態2の余白無視設定プロパティダイアログの一例を示す図である。
図20に示すように、余白削除設定プロパティダイアログ2000では、余白削除処理の処理基準として、「コンテナサイズでリンクする」と「コンテナ内の対象物に対してリンクする」のいずれかを選択するためのラジオボタンが構成されている。
そして、操作者が、例えば、余白削除設定プロパティダイアログ2000の「コンテナ内の対象物に対してリンクする」ラジオボタンを選択し、余白削除設定プロパティダイアログ2000を閉じると、その選択された内容に基づいて、各種設定をページに反映する(この場合、処理対象のリンクに対して余白無視属性をONとして保存する)(ステップS1904)。
ここまでが、リンクに対する余白無視設定処理となる。その後、操作者が他のリンクにも余白無視設定することを望む可能性があるので、更なるコンテナに対する「余白無視設定」操作の有無を判定する(ステップS1905)。「余白無視設定」操作がある場合(ステップS1905でYES)、ステップS1903に戻り、同様の処理を実行する。一方、「余白無視設定」操作がない場合(ステップS1905でNO)、ステップS1906に進む。
次に、ドキュメントのプレビュー操作の有無を判定する(ステップS1906)。プレビュー操作がない場合(ステップS1906でNO)、処理を終了する。一方、プレビュー操作がある場合(ステップS1906でYES)、ステップS1907に進む。
このステップS1907以降の処理がプレビュー処理となる。
まず、レイアウト編集アプリケーション121は、データベースからコンテンツを取得する(ステップS1907)。図18の(2)の場合、コンテンツ1803及び1804を取得する。
次に、レイアウト編集アプリケーション121は、各コンテナに取得したコンテンツを流し込む処理を実行する(ステップS1908)。図18の(2)の場合、コンテナ1801にコンテンツ1803、コンテンツ1802にコンテンツ1804を流し込む。
次に、レイアウト編集アプリケーション121は、処理対象のリンクに「余白無視設定」がなされているか否かを判定する(ステップS1909)。「余白無視設定」がなされていない場合(ステップS1909でNO)、ステップS1913に進む。一方、「余白無視設定」がなされている場合(ステップS1909でYES)、ステップS1910に進む。
ステップS1909において、「余白無視設定」がなされていない場合は、レイアウト編集アプリケーション121は、ステップS1913でレイアウト計算を実行し、ステップS1914でレイアウト結果を表示することになる。例えば、図18の(3)及び(4)の場合、縦横比を保って、コンテンツ1803及び1804を拡縮して、それらが存在するコンテナ1801及び1802の固定長辺にフィットさせる。更に、コンテナ1801及び1802の可変長辺をコンテンツ1803及び1804にフィットさせて、関連するコンテナを移動する。
一方、ステップS1909において、「余白無視設定」がなされている場合は、レイアウト編集アプリケーション121は、まず、図18の(2)及び(3)までの処理(図19の(2)に対応)を実行後、余白無視設定処理として、リンク両端の余白削除処理を実行する(ステップS1910)。図19の(3)の場合、コンテンツ1803及び1804の余白の内、リンク1810側の余白を削除する。
尚、実施形態2の余白無視設定処理とは、リンク両端側のコンテナの位置を決定する際に、各コンテナ内のコンテンツの余白を無視してコンテンツ間距離を最小化するレイアウトを実行するものである。従って、コンテンツにとってみれば、リンク側に存在する余白が削除されることになる。
次に、レイアウト編集アプリケーション121は、コンテンツ間の距離が最小距離Lmin1になる位置を検索し、そこをリンク位置として設定する(ステップS1911、図19の(4))。
そして、レイアウト編集アプリケーション121は、設定したリンク位置へリンクを移動する(ステップS1912、図19の(5))。
次に、レイアウト編集アプリケーション121は、レイアウト計算を実行して、コンテナの位置とサイズを確定する(ステップS1913)。その後、レイアウト結果を表示(プレビュー)する(ステップS1914、図19の(5))。
次に、ステップS1910の余白削除処理の詳細について、図21を用いて説明する。
図21は本発明の実施形態2の余白削除処理の詳細を説明するための図である。
まず、図21の(a)において、レイアウト編集アプリケーション121は、処理対象のコンテンツ(例えば、画像)を二値化する。
次に、図21の(b)において、レイアウト編集アプリケーション121は、余白無視属性が「ON」に設定されているリンク(図19の場合、リンク1810)と結合しているコンテナ(図19の場合、例えば、コンテナ1801)の辺を所定単位の線分に分割し、その線分の単位で、その辺と垂直な方向に走査する。
次に、図21の(c)において、レイアウト編集アプリケーション121は、走査中の線分に、コンテンツ内の主な対象物を構成する対象物画素(有効画素(この場合、白黒画素の内の黒画素))を検出したら、そこでその線分の走査は止めて、その位置をメモリ136に記憶し、次の線分の走査に移る。
尚、ここでの検出は、実施形態1の図16の(b)で説明した検出原理と同様である。
次に、図21の(d)において、レイアウト編集アプリケーション121は、図21の(c)の処理を繰り返して、処理対象辺の全体に渡り走査を行ない、処理対象辺に接するコンテンツ中の余白を削除する。つまり、メモリ136に記憶した位置と処理対象辺間の領域を、コンテンツから削除し、残った領域がコンテンツ画像として、コンテナに流し込まれることになる。
つまり、図21で説明する処理は、矩形領域からなるコンテンツの各辺の内、リンク側にある辺から対辺方向に所定線分単位で垂直に画像を走査し、各線分による走査によって、ページの背景色を含む所定色範囲内の色以外の色が最初に検出される画素までの線分領域を検出し、各走査によって検出された線分領域からなる領域を余白領域として検出し、その余白領域以外の領域を関心領域として検出することになる。
以上説明したように、実施形態2によれば、コンテナ同士を結合するリンクの両端側において、そのコンテナ同士の位置決め(レイアウト)をする際に、各コンテナ内のコンテンツのリンク側の余白を無視してコンテンツ間距離を最小化することで、コンテンツ中のリンク側にある余白が削除されるとともに、かつその削除によってコンテナ(コンテンツ)間の位置を最小限にすることができる。
これにより、実施形態1と同様の効果を得ることができる。
<<実施形態3>>
実施形態3は、実施形態2の応用例である。実施形態2では、コンテナ内のコンテンツの余白の内、リンク側に存在する余白を無視(削除)した上で、コンテナ及びコンテンツをより好適に配置する構成について説明した。
これに対し、実施形態3では、更に、コンテンツの向きを左右反転して、その左右反転前後でのコンテンツ間距離に基づいて、コンテナ及びコンテンツをより好適に配置する構成について説明する。
まず、実施形態3のバリアブルプリントシステムが実行する処理について、図22及び図23を用いて説明する。
図22は本発明の実施形態3のバリアブルプリントシステムが実行する処理を示すフローチャートである。図23は本発明の実施形態3のバリアブルプリントシステムが実行する処理の具体例を説明するための図である。
まず、操作者は、コンテナをページ上に配置し、それらをリンクで結合する(ステップS2201)。図23の(1)の場合、ページ2300に対し、コンテナ2301及び2302を配置し、それらをリンク2310で結合する。
次に、リンクに対する「余白無視設定」操作の有無を判定する(ステップS2302)。「余白無視設定」操作がない場合(ステップS2302でNO)、ステップS2308に進む。一方、「余白無視設定」操作がある場合(ステップS2302でYES)、ステップS2303に進む。図23の(1)の場合、リンク1810に対し、「余白無視設定」操作をする。
尚、「余白無視設定」対象のリンクの選択及び設定方法は、実施形態2と同様である。
ステップS2302で、「余白無視設定」操作があると、レイアウト編集アプリケーション121は、余白無視設定プロパティダイアログを表示する(ステップS2303)。そして、操作者による余白削除設定プロパティダイアログに対する走査に基づいて、各種設定をページに反映する(ステップS2304)。
次に、リンクに結合しているコンテナに「左右反転許可設定」操作の有無を判定する(ステップS2305)。「左右反転許可設定」操作がない場合(ステップS2305でNO)、ステップS2308に進む。一方、「左右反転許可設定」操作がある場合(ステップS2305でYES)、ステップS2306に進む。図23の(1)の場合、コンテナ2302に対し、「左右反転許可設定」操作をする。
尚、操作者は、例えば、マウス133の操作によって、「左右反転許可設定」対象のリンクを選択し、「左右反転許可設定」を実行することが可能である。選択及び設定方法としては、例えば、マウス133の右クリックによって現れるコンテキストメニューで、「左右反転許可設定プロパティ」を選択し、設定する。
ステップS2305で、「左右反転許可設定」操作があると、レイアウト編集アプリケーション121は、左右反転許可設定プロパティダイアログを表示する(ステップS2306)。
ここで、左右反転許可設定プロパティダイアログの一例について、図24を用いて説明する。
図24は本発明の実施形態3の左右反転許可設定プロパティダイアログの一例を示す図である。
図24に示すように、左右反転許可設定プロパティダイアログ2400では、左右反転許可設定として、「コンテンツの左右反転を許可する」を選択するためのチェックボタンが構成されている。
そして、操作者が、例えば、左右反転許可設定プロパティダイアログ2400の「コンテンツの左右反転を許可する」チェックボックスを選択し、左右反転許可設定プロパティダイアログ2400を閉じると、その選択された内容に基づいて、各種設定をページに反映する(この場合、処理対象のコンテナに対して左右反転許可属性をONとして保存する)(ステップS2307)。
ここまでが、リンクに対する余白無視設定処理及びコンテナに対する左右反転許可設定処理となる。その後、操作者が、他のリンクにも余白無視設定、あるいは他のコンテナにも左右反転許可設定することを望む可能性があるので、更なるリンクあるいはコンテナに対する各種設定操作の有無を判定する(ステップS2308)。各種設定操作がある場合(ステップS2308でYES)、ステップS2302に戻り、同様の処理を実行する。一方、各種設定操作がない場合(ステップS2308でNO)、ステップS2309に進む。
次に、ドキュメントのプレビュー操作の有無を判定する(ステップS2309)。プレビュー操作がない場合(ステップS2309でNO)、処理を終了する。一方、プレビュー操作がある場合(ステップS2309でYES)、ステップS2310に進む。
このステップS2309以降の処理がプレビュー処理となる。
まず、レイアウト編集アプリケーション121は、データベースからコンテンツを取得する(ステップS2310)。図23の(2)の場合、コンテンツ2303及び2304を取得する(図19の(2)に対応)。
次に、レイアウト編集アプリケーション121は、各コンテナに取得したコンテンツを流し込む処理を実行する(ステップS2311)。図23の(2)の場合、コンテナ1801にコンテンツ1803、コンテンツ1802にコンテンツ1804を流し込む(図19の(2)に対応)。
次に、レイアウト編集アプリケーション121は、処理対象のリンクに「余白無視設定」がなされているか否かを判定する(ステップS2312)。「余白無視設定」がなされていない場合(ステップS2312でNO)、ステップS2319に進む。一方、「余白無視設定」がなされている場合(ステップS2312でYES)、ステップS2313に進む。
一方、ステップS2312において、「余白無視設定」がなされている場合は、レイアウト編集アプリケーション121は、余白無視設定処理として、リンク両端の余白削除処理を実行する(ステップS1910、図23の(2)(図19の(3)))。
次に、レイアウト編集アプリケーション121は、コンテンツ間の距離が最小距離Lmin1になる位置を検索する(ステップS2314、図23の(2)(図19の(4))。
次に、レイアウト編集アップリケーションは、処理対象のコンテナに「左右反転許可設定」がなされているか否かを判定する(ステップS2315)。「左右反転許可設定」がなされていない場合(ステップS2315でNO)、ステップS2319に進む。一方、「左右反転許可設定」がなされている場合(ステップS2315でYES)、ステップS2316に進む。
ステップS2315において、「左右反転許可設定」がなされている場合は、レイアウト編集アプリケーション121は、「余白無視設定」がONのリンクに結合している左右反転可能なコンテンツを反転し、反転後のコンテンツ間の距離が最小距離Lmin2になる位置を検索する(ステップS2316)。
そして、レイアウト編集アプリケーション121は、最小距離Lmin1と最小距離Lmin2を比較し、小さい方の値をとるコンテンツの方向を決定し、リンク位置を決定する(ステップS2317、図23の(3))。
そして、レイアウト編集アプリケーション121は、設定したリンク位置へリンクを移動する(ステップS2318、図23の(4))。
次に、レイアウト編集アプリケーション121は、レイアウト計算を実行して、コンテナの位置とサイズを確定する(ステップS2319)。その後、レイアウト結果を表示(プレビュー)する(ステップS2320、図23の(4))。
以上説明したように、実施形態3によれば、実施形態2で説明した効果に加えて、コンテンツの方向を左右反転前後における、各コンテンツ間の距離の内、最小となるコンテンツの方向で、コンテンツを配置する。
これにより、よりコンテンツ間の距離が好適でかつ最小となる構成で、コンテナ及びコンテンツを配置することが可能となる。
尚、実施形態3では、コンテンツの方向を左右反転する場合を例に挙げて説明したが、これに限定されず、上下反転、あるいは任意の角度に回転する構成とすることも可能である。
<<実施形態4>>
実施形態4は、実施形態1〜3に対する応用例である。実施形態4では、ドキュメント上に一旦配置したコンテナが、コンテンツが流し込まれることによって、そのサイズが拡縮された後のコンテナが、ドキュメント内で収まるか否かによって、各コンテナの表示を制御する構成について説明する。
まず、実施形態4のバリアブルプリントシステムが実行する処理について、図25及び図26を用いて説明する。
図25は本発明の実施形態4のバリアブルプリントが実行する処理を示すフローチャートである。図26は本発明の実施形態4のバリアブルプリントシステムが実行する処理の具体例を説明するための図である。
まず、操作者は、コンテナをページ上に配置し、それらをリンクで結合する(ステップS2601)。図26の(1)の場合、ページ2600に対し、コンテナ2601〜2603を配置し、それぞれをリンク2610及び2620で結合する。
次に、コンテナに対する「Optional設定」操作の有無を判定する(ステップS2602)。「Optional設定」操作がない場合(ステップS2602でNO)、ステップS2605に進む。一方、「Optional設定」操作がある場合(ステップS2602でYES)、ステップS2603に進む。図26の(1)の場合、コンテナ2603に対し、「Optional設定」操作をする。
尚、操作者は、例えば、マウス133の操作によって、「Optional設定」対象のコンテナを選択し、「Optional設定」を実行することが可能である。選択及び設定方法としては、例えば、マウス133の右クリックによって現れるコンテキストメニューで、「Optionalプロパティ」を選択し、設定する。
ステップS2602で、「Optional設定」操作があると、レイアウト編集アプリケーション121は、Optionalプロパティダイアログを表示する(ステップS2603)。
ここで、Optionalプロパティダイアログの一例について、図27を用いて説明する。
図27は本発明の実施形態4のOptionalプロパティダイアログの一例を示す図である。
図27に示すように、Optionalプロパティダイアログ2600では、Optional設定として、「Optional Cotainer設定する」を選択するためのチェックボックスが構成されている。
そして、操作者が、例えば、Optionalプロパティダイアログ2600の「Optional Cotainer設定する」チェックボックスを選択し、Optionalプロパティダイアログ2600を閉じると、その選択された内容に基づいて、各種設定をページに反映する(この場合、処理対象のコンテナに対してOptional属性をONとして保存する)(ステップS2604)。
ここまでが、コンテナに対するOptional設定処理となる。その後、操作者が他のコンテナにもOptional設定することを望む可能性があるので、更なるコンテナに対する「Optional設定」操作の有無を判定する(ステップS2605)。「Optional設定」操作がある場合(ステップS2605でYES)、ステップS2603に戻り、同様の処理を実行する。一方、「Optional設定」操作がない場合(ステップS2605でNO)、ステップS2606に進む。
次に、ドキュメントのプレビュー操作の有無を判定する(ステップS2606)。プレビュー操作がない場合(ステップS2606でNO)、処理を終了する。一方、プレビュー操作がある場合(ステップS2606でYES)、ステップS2607に進む。
このステップS2607以降の処理がプレビュー処理となる。
まず、レイアウト編集アプリケーション121は、データベースからコンテンツを取得する(ステップS2607)。
次に、レイアウト編集アプリケーション121は、各コンテナに取得したコンテンツを流し込む処理を実行する(ステップS2608)。次に、レイアウト編集アプリケーション121は、レイアウト計算を実行して、コンテナの位置とサイズを一旦確定する(ステップS2609)。
次に、レイアウト編集アプリケーション121は、処理対象のコンテナに「Optional設定」がなされているか否かを判定する(ステップS2610)。「Optional設定」がなされていない場合(ステップS2610でNO)、ステップS2613に進む。一方、「Optional設定」がなされている場合(ステップS2610でYES)、ステップS2611に進む。
「Optional設定」がなされている場合、処理対象のコンテナがページ内に収まっているか否かを判定する(ステップS2611)。
コンテナがページ内に収まっている場合(ステップS2611でYES)、ステップS2609で得られるレイアウト結果に基づいて、ページ内の各コンテナ及びそのコンテナ内のコンテンツを表示する(ステップS2613、図26の(2))。
一方、コンテナがページ内に収まっていない場合(ステップS2611でNO)、該当するコンテナ及びそのコンテナ内のコンテンツをページ上で非表示にするための非表示化を実行する(ステップS2612)。そして、この場合は、ステップS2609で得られるレイアウト結果と、非表示化されたコンテナ及びそのコンテナ内のコンテンツに基づいて、ページ内の各コンテナ及びそのコンテナ内のコンテンツを表示する(ステップS2613、図26の(2)’)。
以上説明したように、実施形態4によれば、ページ上のコンテナにコンテンツを流し込んだ後、そのコンテンツがページ内に収まらない場合には、そのコンテンツを非表示にする。
つまり、コンテンツの一部のみしか表示できないような場合には、そのコンテンツの表示を禁止することで、操作者にとって、違和感のない好適なページ出力を可能にすることができる。
尚、上記実施形態1〜4は、用途や目的に応じて、任意に組み合わせ実現しても良いことは言うまでもない。例えば、実施形態1と、実施形態2あるいは3を組み合わせることで、コンテンツ中の余白を削除しつつ、コンテンツ間の距離を最小にするレイアウト制御を実現することが可能である。
また、上記実施形態1〜4において、コンテンツ中の余白領域の検出(換言すれば、コンテンツ中の関心領域の検出)は、ドキュメントの背景色に基づいて検出する構成としているが、これに限定されない。
例えば、周知のブロックセレクション処理や、関心領域(ROI)検出処理を用いて、コンテンツ中の関心領域を検出したり、コンテンツ中の余白領域を検出するようにしても良い。
ここで、ブロックセレクション処理とは、例えば、処理対象のコンテンツを、意味のある各オブジェクト毎の塊として認識し、該ブロック各々の属性(文字(TEXT)/図画(PICTURE)/写真(PHOTO)/線(LINE)/表(TABLE)等)を判定し、異なる属性を持つブロックに分割する処理である。
ブロックセレクション処理の実施形態としては、例えば、以下のようのものがある。
まず、処理対象コンテンツ(画像)を白黒に二値化し、輪郭線追跡を行って黒画素輪郭で囲まれる画素の塊を抽出する。面積の大きい黒画素の塊については、内部にある白画素に対しても輪郭線追跡を行って白画素の塊を抽出、さらに一定面積以上の白画素の塊の内部からは再帰的に黒画素の塊を抽出する。
このようにして得られた黒画素の塊を、大きさ及び形状で分類し、異なる属性を持つブロックへ分類していく。例えば、縦横比が1に近く、大きさが一定の範囲のブロックは文字相当の画素塊とし、さらに近接する文字が整列良くグループ化可能な部分を文字ブロック、扁平な画素塊を線ブロック、一定大きさ以上でかつ矩形の白画素塊を整列よく内包する黒画素塊の占める範囲を表ブロック、不定形の画素塊が散在している領域を写真ブロック、それ以外の任意形状の画素塊を図画ブロックとする。
そして、本発の上記各実施形態における余白領域の検出を、ブロックセレクション処理を利用する場合には、特に、ブロックセレクション処理によってコンテンツから得られる写真ブロックや図画ブロックを関心領域として検出し、残りの部分を余白領域として検出することで、上述の各実施形態を実現することができる。
もちろん、写真ブロックや図画ブロック以外の文字ブロックや表ブロックを関心領域として検出し、残りの部分を余白領域として検出するようにしても良い。
以上、実施形態例を詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
尚、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム(実施形態では図に示すフローチャートに対応したプログラム)を、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であっても良い。
プログラムを供給するための記録媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などがある。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現される。