JP2006221582A - 情報処理装置及びその制御方法、プログラム - Google Patents

情報処理装置及びその制御方法、プログラム Download PDF

Info

Publication number
JP2006221582A
JP2006221582A JP2005036952A JP2005036952A JP2006221582A JP 2006221582 A JP2006221582 A JP 2006221582A JP 2005036952 A JP2005036952 A JP 2005036952A JP 2005036952 A JP2005036952 A JP 2005036952A JP 2006221582 A JP2006221582 A JP 2006221582A
Authority
JP
Japan
Prior art keywords
container
layout
template
setting
partial layout
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2005036952A
Other languages
English (en)
Inventor
Satoshi Ota
聡 太田
Hajime Ono
肇 大野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2005036952A priority Critical patent/JP2006221582A/ja
Priority to US11/276,037 priority patent/US7853872B2/en
Publication of JP2006221582A publication Critical patent/JP2006221582A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/114Pagination

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Processing Or Creating Images (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Document Processing Apparatus (AREA)

Abstract

【課題】 複数種類のテンプレートを同一ページ上に好適にレイアウトすることができる情報処理装置及びその制御方法、プログラムを提供する。
【解決手段】 ページ内で、テンプレートを使用する部分レイアウトエリアを作成する。その作成した部分レイアウトエリアで使用するテンプレートに関する設定情報を設定する。作成した部分レイアウトエリアで使用するテンプレートのレイアウトを、その部分レイアウトエリアに設定されている設定情報に基づいて制御する。
【選択図】 図18

Description

本発明は、 複数種類のデータフィールドからなるレコードから、選択されたデータフィールドのデータを差し込むためのフィールド領域を、ページ内にレイアウトする情報処理装置及びその制御方法、プログラムに関するものである。
近年、商品の多品種化で商品ライフが短くなっていること、インターネット利用の普及による消費者のカスタマイズサービス指向などの要因からCRM(Customer Relationship Management)、One−to−Oneマーケティングの必要性が注目されている。これらの手法により、顧客満足度を高め、顧客の開拓や囲い込みを目指すものである。
One−to−Oneマーケティングは、データベース・マーケティングの一種で、顧客の年齢、性別、趣味、嗜好、購買履歴等の個人属性情報をデータベース化し、その内容を分析、顧客のニーズに合った提案を行うものであり、その代表的な手法としてバリアブルプリントが挙げられる。ここ最近では、DTP(デスクトップパブリッシング)技術の進展とデジタル印刷装置の普及に伴って、文書を顧客毎にカスタマイズして出力するバリアブルプリントシステムが開発されている。このようなバリアブルプリントシステムでは、顧客毎に異なるコンテンツがレイアウトされたカスタマイズ文書を作成することが求められる。
一般にバリアブルプリントシステムにおいて、そのようなカスタマイズ文書を作成する際には、文書上にコンテナをレイアウトする。ここで、コンテナとは、コンテンツ(描画内容(例えば、イメージ、テキスト等))を描画するための描画領域であり、フィールド領域と呼ばれることもある。
そして、文書上にこのようなコンテナをレイアウトし、データベースとレイアウトを関連付ける(データベース内の各種コンテンツとコンテナとを関連付ける)作業を行うことにより、所望のカスタマイズ文書(ドキュメントテンプレートと呼ばれる)を作成することができる。そして、このカスタマイズ文書上のコンテナ内のコンテンツをデータベース内のレコード毎に適宜切り換えることで、その内容を可変(バリアブル)にすることができる。そのため、このような文書を、バリアブルデータ文書(ドキュメント)と呼んでおり、このバリアブルデータドキュメントを用いるプリントシステムが、バリアルプリントシステムである。このようなバリアブル印刷用のテンプレートを作成する手段として、従来からフォーム作成アプリケーションがある。(例えば、特許文献1)
ここで、従来のバリアブルプリントシステムでは、コンテンツであるテキストやイメージに関連付けられるコンテナのサイズが固定であるため、データベース内のコンテンツがコンテナに挿入された(流し込まれた)ときに、そのデータ量がコンテナサイズより多いと、そのデータがテキストであれば、テキストのオーバーラップが発生し、また、そのデータイメージであればイメージのクリッピングが発生し、イメージの一部が欠落してしまう。また、データ量がコンテナサイズより小さいと、コンテナとその内部のコンテンツとの間に隙間が空いてしまう等の適切な表示がなされない可能性がある。
また、固定のコンテナサイズのコンテナに挿入されるテキストが、そのコンテナサイズ内に挿入しきれない場合は、そのテキストのフォントサイズを可変(この場合、縮小する)にして、コンテナ内に全てのテキストが収まるように表示する技術も存在する。
しかしながら、コンテナサイズが可変な環境においては、挿入されるコンテンツによってコンテナが大きくなった場合は、同一文書内の他のコンテナに重なってしまう問題が発生する。また、フォントサイズを可変な環境においては、挿入されるテキストのデータ量が非常に大きい場合は、縮小されるフォントサイズが小さくなりすぎてしまう問題が発生する。
そこで、このような問題を解決するための更なる自動レイアウト技術として、あるコンテナ(画像部品ブロック)に配置されるデータ量が大きくなった場合には、次に配置するコンテナ(画像部品ブロック)内の配置位置を変更したり、配置できない場合に次の配置順のコンテナ(画像部品ブロック)に移動させる技術が、例えば、特許文献2の「レイアウトデザイン装置」に開示されている。
また、従来のバリアブルプリントシステムにおいて、1レコードを1ドキュメントにレイアウトする技術だけでなく、多レコードを1ドキュメントにレイアウトするマルチレコードの技術も知られている。この技術により、一人の顧客に対して、レイアウトするデータの数が異なることが可能になり、さらに一人一人に対してカスタマイズされたドキュメントを作成することができる。
特開2000−222493号公報 特開2000−48216号公報
しかし、特許文献2のバリアブルプリントシステムでは、流し込むデータの順序である配置順が予め決められており、この配置順に従って1つづつデータを配置してレイアウトを決定している。このため、流し込まれるデータ量が多い(各データのデータサイズが大きい)場合、配置順の低いデータは、配置される領域が狭くなってしまい、データが配置できなくなってしまうという問題がある。
このような課題を解決するために、動的レイアウトシステムが考案されている。動的レイアウトシステムは、文書上にレイアウトされているコンテナのコンテナサイズを可変に設定し、かつ、可変に設定されたコンテナ同士をリンク(関連付ける)することで、リンクされたお互いのコンテナが押し合いながら負荷を均等にしてコンテナの位置とサイズとを決定することが可能にする。これにより、動的レイアウトシステムを実現しているソフトウェアは、例えば、コンテナに挿入されるデータ量と各コンテナとの関係に応じて、各コンテナのサイズを変更することができる。
また、この動的レイアウトシステムでは、商品カタログ等のレイアウトを作成するときのように、一つの商品のレイアウト(商品名、イメージ、スペックなど)をあらかじめまとまりのあるテンプレート(以下、サブテンプレート)として定義しておく機能を提供することが考案されている。
しかしながら、上記バリアブルプリントシステムにおける動的レイアウトシステムでは、1つのテンプレートに対して1つの部分レイアウトエリアについてしか考案されていない。すなわち、同一ページ上に、同一レコードを複数の部分レイアウトエリアに分割してレイアウトすることができなかった。そのため、1つのレコードであるが、商品画像の集まりと、スペック表の集まりに分けるような分離レイアウトが困難であった。
また、部分レイアウトエリアを同一ページ上に複数備えた場合、各部分レイアウトエリアに定義されているコンテナに順次コンテンツを並べることになり、同一ページにおいて、第1の部分レイアウトエリアには3レコード分のコンテンツが配置されるが、第2部分のレイアウトエリアには4レコード分のコンテンツが配置されてしまうようなことが発生する。そのため、商品画像の集まりのコンテンツと、スペック表の集まりのコンテンツとを、別の部分レイアウトエリアで配置すると、商品画像のコンテンツとスペック表のコンテンツとがずれてしまうという問題がある。
本発明は上記の課題を解決するためになされたものであり、複数種類のテンプレートを同一ページ上に好適にレイアウトすることができる情報処理装置及びその制御方法、プログラムを提供することを目的とする。
また、本発明は上記の課題を解決するためになされたものであり、更に、互いのテンプレート(部分レイアウトエリア)が互いに配置するコンテンツの関連性を持たせながら、レイアウトを決定することができる情報処理装置及びその制御方法、プログラムを提供することを目的とする。
上記の目的を達成するための本発明による情報処理装置は以下の構成を備える。即ち、
複数種類のデータフィールドからなるレコードから、選択されたデータフィールドのデータを差し込むためのフィールド領域を、テンプレートに基づいてページ内にレイアウトする情報処理装置であって、
前記ページ内で、前記テンプレートを使用する部分レイアウトエリアを作成する作成手段と、
前記作成手段で作成した部分レイアウトエリアで使用するテンプレートに関する設定情報を設定する設定手段と、
前記作成手段で作成した部分レイアウトエリアで使用するテンプレートのレイアウトを、その部分レイアウトエリアに設定されている設定情報に基づいて制御する制御手段と
を備える。
また、好ましくは、前記設定手段は、前記部分レイアウトエリアで使用するレイアウトの配置方向、配置間隔、他の部分レイアウトエリアとの同期設定に関する設定情報を設定する。
また、好ましくは、前記同期設定とは、部分レイアウトエリア間で使用するテンプレート数の同期を図るための設定である。
また、好ましくは、前記制御手段は、複数の前記部分レイアウトエリア間において、前記同期設定がなされている場合には、各部分レイアウトエリア内で使用されるテンプレート数が、それぞれの部分レイアウトエリアで使用可能な最大テンプレート数の内、最小の最大テンプレート数に制限されるように、各部分レイアウトエリアで使用するテンプレート数を制御する。
また、好ましくは、前記制御手段は、複数の部分レイアウトエリアそれぞれに使用するテンプレートのいずれかが、対応する部分レイアウトエリア内に配置できない場合で、かつ前記複数の前記部分レイアウトエリア間において、前記同期設定がなされている場合には、新規のページを作成して、前記ページ内で前記配置できないテンプレートを配置するための部分レイアウトエリアを前記新規のページ内に作成する。
また、好ましくは、前記制御手段は、複数の部分レイアウトエリアそれぞれに使用するテンプレートのいずれかが、対応する前記部分レイアウトエリア内に配置できない場合で、かつ前記複数の前記部分レイアウトエリア間において、前記同期設定がなされていない場合には、所定のメッセージを出力する。
上記の目的を達成するための本発明による情報処理装置の制御方法は以下の構成を備える。即ち、
複数種類のデータフィールドからなるレコードから、選択されたデータフィールドのデータを差し込むためのフィールド領域を、テンプレートに基づいてページ内にレイアウトする情報処理装置の制御方法であって、
前記ページ内で、前記テンプレートを使用する部分レイアウトエリアを作成する作成工程と、
前記作成工程で作成した部分レイアウトエリアで使用するテンプレートに関する設定情報を設定する設定工程と、
前記作成工程で作成した部分レイアウトエリアで使用するテンプレートのレイアウトを、その部分レイアウトエリアに設定されている設定情報に基づいて制御する制御工程と
を備える。
上記の目的を達成するための本発明によるプログラムは以下の構成を備える。即ち、
複数種類のデータフィールドからなるレコードから、選択されたデータフィールドのデータを差し込むためのフィールド領域を、テンプレートに基づいてページ内にレイアウトする情報処理装置の制御を実現するためのプログラムであって、
前記ページ内で、前記テンプレートを使用する部分レイアウトエリアを作成する作成工程のプログラムコードと、
前記作成工程で作成した部分レイアウトエリアで使用するテンプレートに関する設定情報を設定する設定工程のプログラムコードと、
前記作成工程で作成した部分レイアウトエリアで使用するテンプレートのレイアウトを、その部分レイアウトエリアに設定されている設定情報に基づいて制御する制御工程のプログラムコードと
を備える。
本発明によれば、複数種類のテンプレートを同一ページ上に好適にレイアウトすることができる情報処理装置及びその制御方法、プログラムを提供できる。
以下、本発明の実施の形態について図面を用いて詳細に説明する。
<システム構成>
まず、本実施形態の情報処理システム及び、その構成要素であるホストコンピュータのハードウェア構成について、図1A及び図1Bを用いて説明する。
図1Aは本発明の実施形態の情報処理システムの構成例を示す図である。また、図1Bは本発明の実施形態の情報処理システムの一構成要素であるホストコンピュータ(本発明の情報処理装置に相当する)のハードウェア構成を示す図である。
尚、図1A中のホストコンピュータ以外の各種コンピュータ(例えば、データベースサーバ117、ファイルサーバ115及びプリントサーバ109)も、例えば、図1Bのハードウェア構成と同等のハードウェア構成を有している。
図1Aにおいて、情報処理システム100は、ネットワーク107を介して、ホストコンピュータ101、データベースサーバ117、ファイルサーバ115及びプリントサーバ109が相互に接続されている。
データベースサーバ117は、データベース119を備えている。また、プリントサーバ109は、プリンタ113を接続しており、ネットワーク107を介して受信する印刷データを適宜プリンタ113に出力して、その印刷データを印刷させることが可能である。
図1Aの情報処理システム100は、特に、バリアブルデータドキュメントを印刷するバリアブルプリントシステムの構成例を示している。本実施形態で説明されるバリアブルプリント処理は、レイアウト編集装置として機能するホストコンピュータ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、あるいはそれらを含んだコンピュータシステムが考えられる。
本実施形態では、レイアウト編集アプリケーション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レコードずつ読み込み、読み込んだバリアブルデータとコンテナの制限とから、読み込んだバリアブルデータが流し込まれるコンテナのサイズや位置等のレイアウトを計算するソフトウェアコンポーネントである。
また、本実施形態では、レイアウトエンジン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は本発明の実施形態の情報処理システムの別構成を示す図である。
図1Cは、ネットワーク107上にエンジンサーバ227を追加して、このエンジンサーバ227にレイアウトエンジン225を構成した例を示している。つまり、ホストコンピュータ101内のレイアウトエンジン105を、エンジンサーバ227内で実現した構成である。この構成の場合、ホストコンピュータ101の処理負荷を軽減することができる。
尚、このエンジンサーバ227は、他のサーバと同様、典型的なコンピュータである。また、ファイルサーバ115に保存されたドキュメントテンプレートは、印刷や他の目的がある際、レイアウトエンジン225によってドキュメントを生成するためにデータベース119に保存されたデータと結合することができる。そのようなオペレーションは、ユーザインタフェース103を介して要求されるか、特定のレコードのみ印刷するように要求される。
<レイアウト編集アプリケーションの概要>
まず、バリアブルデータプリントの概略について、図2を用いて説明する。
図2は本発明の実施形態のバリアブルデータプリントの概略を説明するための図である。
レイアウト編集アプリケーション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は本発明の実施形態のユーザインタフェースの一例を示す図である。
図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には、図4Aに示されるような、ユーザが選択可能な複数種類の『ボタン』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は、ページ上の印刷可能なオブジェクトの最大幅を示す、任意のページマージンである。
また、図4Aでは、1ページのドキュメントテンプレート309上に表示され得るオブジェクトの例を示している。
このようなオブジェクトとしては、コンテナ407、408と、任意に適用するアンカーアイコン409、固定されている辺411、414、固定されていない辺410、リンク412、そしてスライダー413がある。
アンカーアイコン409は、コンテナの矩形の角、辺、またはコンテナの中央に設定することが可能である。アンカーアイコン409が設定されると、設定された個所の位置が固定となる。つまり、図4Aの例では、アンカーアイコン409は、コンテナ407の左上の角に設定されているため、コンテナ407はバリアブルデータが流し込まれ、バリアブルデータの画像サイズもしくはテキスト量が多い場合には、右方向及び下方向に拡大可能であることを示している。
一方、アンカーアイコン409が辺に設定されている場合は、その辺が固定となり、その他の3辺の各方向に拡大可能である。また、アンカーアイコン409がコンテナの中央に設定されている場合は、コンテナの中央位置が固定となり、コンテナ矩形の中央位置が変わらないように、4方向に拡大可能である。
リンク412についての詳細は後述するが、これは、コンテナ407とコンテナ408が関連付けられていることを示しており、このリンク412に設定されている長さ(範囲指定可能)を保ちつつ、コンテナ408が右方向に移動可能であることを示している。スライダー413は、設定されている辺と水平方向に移動可能であることを示している。
[コンテナ]
次に、データベース中の各レコードに含まれる複数種類のデータフィールドのデータを差し込むためのフィールド領域であるコンテナについて説明する。
コンテナは、ドキュメントテンプレート内にバリアブルデータファイルから固定あるいは可変のテキスト/イメージ(複数種類のデータフィールドのデータ)が流し込まれ、描画されるフィールド領域(これを部分領域と呼ぶ)であり、図4Aに示されるように、他のコンテナやオブジェクトと共にレイアウトされる。ユーザインタフェースを介して、ユーザからの操作指示により、コンテナは、マウス133の操作により移動、サイズ調整、再作成される。
より正確には、コンテナは、位置、最大/最小/デザイン時サイズ、マージされるコンテンツの最大/最小フォントサイズ、各辺が固定/可変であることなどを示すコンテナ属性を有している。以下、本実施形態におけるコンテナの定義を示す。
(1)コンテナは、固定あるいは可変のコンテンツを持つ。可変コンテンツ(バリアブルデータ)は、データソースから取得したデータがドキュメント毎、つまり、レコード毎に異なる可能性があるという意味でダイナミック(動的)であるということができる。但し、本実施形態の可変コンテンツは、アニメーション化されたもの、あるいは他の方法で時間的に変化するコンテンツは印刷には適していないため、ここでは、意図していない。
同様に、固定コンテンツは、コンテナを使って生成される全てのドキュメントで、同じように表示される。しかしながら、可変コンテンツとリンクが設定されている場合、可変コンテンツの影響を受けて、固定コンテンツはそれぞれのドキュメントで位置が異なる可能性がある。また、コンテナにマージされるコンテンツは各レコードで異なるため、表示内容は当然異なる。
(2)コンテナは、コンテンツに適用される背景色、ボーダー、フォント・スタイルのようなテキスト設定と同様の装飾機能を持っている。このような設定を、コンテナ属性と呼ぶ。コンテナ属性は、各コンテナごとに設定可能であるが、あるコンテナと同じコンテナ属性であるという設定を行うことも可能である。
(3)コンテナは、ドキュメントを生成する際にデータソースからのデータとマージされる。装飾機能は、どんな固定コンテンツでもそうであるように、印刷された出力物において可視である。可変コンテンツは、データソースからの特定のデータの表示を提供する。コンテナのこの表現は、例えば、印刷されるか、ディスプレイ装置144のスクリーン上に表示されるか、その両方が可能である。
(4)コンテナは、図4Aに示されるように視覚的な手がかりとしてのユーザインタフェースを有している。例えば、コンテナの編集そして表示設定のためのインタラクティブなグラフィカルユーザインタフェース(GUI)を有する。GUIコンポーネントは、ディスプレイ装置144のスクリーン上に表示されるが、ドキュメントとしては印刷されない。レイアウト編集アプリケーション121のユーザインタフェース103は、背景色やフォントのようなコンテナの装飾機能のいくつかを表示し、さらにコンテナの設定の編集や表示を可能にするための機能を有している。
ユーザインタフェースの機能の特別な目的の例としては、ボーダー、あるいは、コンテナのサイズや位置を対話的に変更、表示するための角アイコン、あるいはコンテナがデータソースからデータをマージされたとき、コンテナの動作を示すための上塗りした数、線、アイコン、テキストがある。
[コンテナの制約]
コンテナはそれぞれのドキュメントで表示されるコンテンツをどのように結びつけるかの制御に関する制約がある。これらの制約(固定/可変コンテンツをコンテナと結びつけることを含む)は、ユーザが一つのドキュメントテンプレートから多数のドキュメントの生成をコントロールする主要な方法である。
制約の一つの例には、『このコンテナのコンテンツの高さは最大4インチです』がある。また、別の制約の例には、『コンテナのコンテンツの左エッジは、それぞれのドキュメントにおいて同じ水平位置で表示しなければならない』がある。ここに記述される内容は、GUIを使ってこのような制約を表示、編集するためのいろいろな方法である。
イメージがページ上に定義された場所を持っているように、固定コンテンツの配置を指定するコンテンツプレイスホルダーは、デジタル印刷技術でよく知られている。コンテナは、位置とサイズを持ち、それらは公知の技術で知られている手法で編集され、表示される。よって、以下の説明では、バリアブルデータプリントに特化した方法における表示・編集に焦点を合わせる。
コンテナを用いることにより、ユーザは、ドキュメントにおけるコンテンツのサイズ(描画サイズ)や位置を指定することが可能となる。いく種類ものドキュメントが一つのドキュメントテンプレートから生成されるので、コンテナに多数の可能性と制約を設定することになるが、これらの設定(指定)や表示のために所定のユーザインタフェースが利用される。
1つのコンテナの辺は、関連付けられたコンテンツがドキュメント内で表示される仮想の境界線を定義する。従って、コンテナの左辺を論じることは、関連付けられたコンテンツが、各ドキュメントにおいて、表示可能であるエリア内の最も左の辺を論じることと同じである。同様に、コンテナの高さを論じることは、生成されたドキュメントで関連付けられたコンテンツの高さの制約を論じることとして理解される。本明細書では、ユーザインタフェース103を参照して、コンテナの辺あるいは大きさを論じるところで、この区別は明らかにされるであろう。
以下の記載において、コンテンツの表示を制限するために使われるある値を定義している用語『固定』は、全てのドキュメントで同じである。
(1)コンテナの幅が固定である場合、関連付けられたコンテンツに割り当てられる幅は、全てのドキュメントで同じになる。
(2)コンテナの高さが固定である場合、関連付けられたコンテンツに割り当てられる高さは、全てのドキュメントで同じになる。
(3)距離(リンクの長さ)が固定である場合、指定された距離は全てのドキュメントにおける制約となる。
(4)コンテナの左右辺が固定の場合、ページに関する辺の水平位置は全てのドキュメントで同じであることを意味している。但し、コンテナの高さあるいは垂直方向の位置は、変化する可能性がある。例えば、コンテナの左辺が固定である場合、関連付けられたコンテンツの表示位置は、全てのドキュメントでその左辺の位置は同じ水平位置となるが、あるドキュメントではページの上の方に表示され、他のドキュメントではページの下の方に表示される可能性がある。
(5)コンテナの上下辺が固定の場合、ページにおける辺の垂直位置は全てのドキュメントで同じとなることを意味している。但し、コンテナの幅あるいは水平位置はドキュメントによって変わる可能性がある。
(6)コンテナの垂直軸は、コンテナの右辺と左辺に平行で、それらの中間に位置される仮想の垂直線である。もしコンテナの垂直軸が固定なら、当該コンテナの左右辺の水平位置の平均(即ち、左右の中央位置)は、すべてのドキュメントで同じとなる。この制約において、コンテナの幅は変化する可能性がある。しかしながら、左右辺が垂直軸にもっとも遠いものからもっともものまで、垂直軸は全てのドキュメントで同じ水平位置となる。尚、コンテナの高さと垂直位置はこの制約によって影響されない。
(7)同様に、もし水平軸が固定なら、コンテナの上辺と下辺の平均が同一の垂直方向位置に配置される。但し、コンテナの幅と水平位置はこの制約によって影響されることはない。
(8)水平軸と垂直軸の両方が固定である場合、コンテナの中心位置が固定されていることを意味する。但し、コンテナの幅・高さは、この制約によって影響されない。
(9)コンテナの角位置、コンテナの辺の中間位置、あるいはコンテナの中心位置が固定である場合、それぞれの位置はすべてのドキュメントで同じ場所となる。例えば、もしコンテナの左上角が固定なら、配置されたコンテナの左上位置が全てのドキュメントで同じになることを意味している。
(10)垂直辺あるいは垂直軸は、ページの左辺もしくは右辺、あるいは左ページマージンもしくは右ページマージン、あるいは他の水平位置に関連付けされて固定することができる。同様に、水平辺あるいは水平軸はページの上辺もしくは下辺、あるいは上下ページマージン、あるいは他の垂直位置に関連付けされて固定することができる。
『固定』の反対は、コンテナの辺、軸、角、中間位置、あるいはドキュメント制約がドキュメント間(レコード間)で変化するかもしれないことを意味する『可変』である。例えば、ページ内では、バリアブルデータのサイズや量により、動的にレイアウトが変更されることを期待するが、特定のコンテナについては、大きさや位置を固定にしたり、また、ページの角のコンテナの四隅は固定にしたいということを所望する場合がある。
そのため、レイアウト編集アプリケーション121では、各コンテナ(部分領域)について、辺、軸、角、中間位置等を固定にするか、可変にするかを適宜設定できるようにしている。これにより、ユーザはドキュメントテンプレート180の基本レイアウトを決定する場合に、ユーザが所望とするように基本レイアウトを作成することができる。
[コンテナ表示・編集]
−−新規コンテナの作成方法−−
コンテナは、テキストコンテナとイメージコンテナの2種類で記述される。テキストコンテナはテキストおよび埋め込みのイメージを有する。イメージコンテナは、イメージだけを有する。
図4Aで示されるように、新規のテキストコンテナあるいはイメージコンテナは、テキストコンテナツール404あるいはイメージコンテナツール405をマウス133でクリックし、ドキュメントテンプレート309上に四角形をドラッグすることによって、当該ドキュメントテンプレート309上に作成される。
あるいは、コンテナは、所望のテキストコンテナツール404あるいはイメージコンテナツール405をアクティブにした後に、ドキュメントテンプレート309上で単にクリックすることによって作成されるようにしてもよい。この場合、マウス133のクリック操作に応じてデフォルトサイズのコンテナがテンプレート上に挿入されるとともに、当該新規コンテナの寸法等を設定するためのダイアログボックスあるいは他のプロンプトが提供される。
尚、コンテナサイズは、自動的に前もって定義されるようにしてもよいし、あるいは、計算されたスキーマによって作成・配置される等、種々の方法が考えられる。ここで、生成されたコンテナをマウス等の入力装置により選択し、右クリックでプロパティを指示する等の操作を行うことにより、コンテナのプロパティダイアログが表示され、コンテナの制約を設定することができる。
[コンテナの表示方法]
図5の(A)から(D)は、コンテナの辺に関する表示ルールを例示している。
レイアウト編集アプリケーション121は、コンテナの辺の状態を表現するために、実線503(アイテム)あるいは点線504を用いて辺を表すとともに、アンカー506、507、509(コンテナの辺の近くに描画される線、形状、アイコン)、ハンドル502(移動、修正するために領域の辺上あるいは近傍に描画されるコントロール点)、スライダー413(辺の両側に描画される短い並行線、図4A参照)、拡縮アイコン505、色を用いる。
図5の(A)〜(D)に示されるコンテナ表示方法のルールは、以下の通りである。
(1)それぞれの辺を固定するために、実線で描画する。
(2)幅が固定の場合は、左と右の辺を実線で描画する。
(3)高さが固定の場合は、上と下の辺を実線で描画する。
(4)軸は描画しない。
(5)(1)〜(3)によって描画されていないそれぞれの辺の近くには、拡縮アイコンが描画され、それらの辺を点線で描画する。
(6)垂直辺と水平辺、あるいは垂直軸と水平軸のそれぞれのペアで、もし両者が固定なら、それらの交差点にアンカーが描画される。
(7)それぞれの固定辺で、もし辺のどこにもアンカーが描画されていなければ、エッジの中央にスライダーが描画される。
(8)垂直及び水平辺、あるいは垂直及び水平軸のそれぞれのペアで、アンカーやスライダーが描画されていない場合、それらの交差点にハンドルが描画される。
ルール(1)、(2)、(3)で定義された線は、前述したように固定あるいは制限されているため実線で描画される。ルール(5)のように、可変の辺は、点線で描画される。ルール(6)、(7)、(8)で定義された固定された点は、アンカーを表示し、いくつかの固定された辺は、スライダーを表示し、他はハンドルを表示する。
上記のルールは、ユーザにより後で設定された制約が優先される。つまり、後で別の制約が設定された場合、上記のルールが描画されるべき辺に影響すれば、実線や点線の描画内容が変更されることになる。例えば、もしコンテナがとても小さくアイコンがお互い重なるか、あるいは他の表示機能を不明瞭にするならば、アイコンは異なって、あるいは省略されて描画される可能性がある。
可変の辺が描画される場所は、コンテナのコンテンツに依存する。後に説明するように、ドキュメントテンプレートにコンテンツがマージされて、ユーザインタフェースで可視になることを意味する、『動的な校正処理』が使われる。代わりの実行は、すべてのドキュメントで平均化されるコンテナのコンテンツエリアで、あるいは、可変の辺がユーザインタフェースで、どこにレイアウトされるべきか決定するほかの手段で使われることができる。
これらのコンテンツ表現は、コンテナの各辺の状態を表示するグラフィック機能を提供する。その表現の解釈は、下記の通りである。
(1)図4Aの辺410のように、点線は、コンテナのコンテンツに依存してドキュメント内の辺の位置が変化することを意味する。
(2)実線の辺414は固定されている、あるいはコンテナの幅・高さが固定されている(コンテナ408では、4辺が実線であり、両方が固定されている)ために制限された辺であることを意味する。
(3)アンカーは、辺および軸が交差した場所が固定されていることを意味する。それゆえ、アンカー点は、すべてのドキュメントの水平、垂直位置で現れることになる。アンカーは当然固定される。図4Aのアイコン409は、辺414の交差する位置が固定されていることを意味しているアンカーアイコンの例である。
(4)スライダーは、関係付けられた辺の長さが固定されているが、並行移動する可能性があることを意味する。例えば、図4Aで、スライダー413は、コンテナ408のコンテンツが、ドキュメント内で特定のダイアグラムで表される位置の、左あるいは右に表示されるかもしれない。
例えば、コンテナ408と関連付けられている(リンク設定されている)コンテナ407に流し込まれるデータの画像サイズもしくはテキスト量が少ない場合は、コンテナ407のサイズが小さくなるため、コンテナ408は、左方向にスライド(並行移動)してレイアウトされて表示されることになる。また、コンテナ407のサイズが大きくなる場合は、逆にコンテナ408は右方向にスライドしてレイアウトされることになる。
これらのアイコン・辺のいくつかあるいは全ては、どのツール、どのコンテナを、選択・ハイライトあるいはアクティブにするかによって、描画されたりされなかったりする。ここで、図4Bは、上記ルールに基づくコンテナの辺の状態として、16通りの状態を示している。一般的に、コンテナの辺・アイコンはドキュメントテンプレートのデザインの手助けとして表示される要素であるため、印刷物には描画されない。
尚、前述したように、コンテナの幅・高さの基本値・最小値・最大値の基本パターンの設定は、副次的なダイアログウインドウに表示される。
図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を通って垂直な中心軸(垂直軸)の周りを、拡大・縮小する。
[リンク]
リンクは、コンテナとコンテナの関連を示している。関連とは、コンテナ間の距離を示しており、リンクによって関連付けられたコンテナ同士は、互いのレイアウト変更の影響を受けてレイアウト計算を実行する。例えば、上述のように、図4Aのリンク412は、コンテナ407とコンテナ408とを関連づけている。リンクの設定方法および、リンクで関連付けられたコンテナのレイアウト計算方法については、後述する。
[リンクの設定方法]
次に、コンテナ同士を関連付けるためのリンクの設定について説明する。
図6は本発明の実施形態のリンクの設定処理を示すフローチャートである。また、図7は本発明の実施形態のリンク設定時のユーザインタフェースの遷移例を示す図である。以下、図6及び図7を用いてコンテナにリンクを設定する方法について説明する。

まず、ステップS601において、レイアウト編集アプリケーション121は、ユーザインタフェースのワークエリア306上に編集対象の選択されたドキュメントテンプレートを表示する。リンクを設定するためには、リンクを設定するためのコンテナ(最低2つ)がドキュメントテンプレート上に作成されている必要がある。図7の(A)〜(C)では、ステップS601で、2つのコンテナを作成してリンクを設定する場合のユーザインタフェースの遷移例を示している。
次に、ステップS602において、レイアウト編集アプリケーション121は、リンクツールを選択状態にする(図4Aのボタン406をクリックすることにより選択状態となる)。
図7の(A)において、コンテナ701と702はすべて固定されている辺で構成されているものとする。また、703と704は、図4Aの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)の例では、左のコンテナの右辺と右のコンテナの左辺が可変な状態へ変化したが、これは一例であり、例えば、右コンテナが図4Aのスライダー413を持つ設定に変化してもかまわない。
<レイアウトエンジンによるレイアウト計算処理>
[レイアウト計算方法(全体フロー)]
本実施形態のレイアウト編集アプリケーション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は本発明の実施形態のレイアウト計算処理の詳細を示すフローチャートである。
尚、図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は本発明の実施形態のマルチレコードとそのレイアウト方法の概要を示す図である。
1201はドキュメント、1202はページ、1203はサブテンプレート、1204はデータベースを示している。データベース1204では、No1〜7のレコードが管理されている。1レコード1ドキュメントのバリアブルプリントでは、7つレコードがあるので、この場合、7ドキュメントが作成される。
一方、多レコード1ドキュメントのマルチレコードをサポートするバリアブルプリントでは、次のような処理を行う。
まず、マルチレコードを指定するカラムをユーザが任意に指定する、この例では、フィールド名「Name」が指定されたものとする。この場合、そのフィールド名が同じレコードは、1ドキュメントにレイアウトされるレコードであると認識する。この例では、No1〜4のレコードは「Name」が「Tom」であるため、これらのレコードのデータは、同じドキュメント上にレイアウトされる。また、No5〜7のレコードは「Name」がNancyであるため、これらのレコードのデータは、同じドキュメント上にレイアウトされる。
即ち、サブテンプレート1203が、1ドキュメント内のフローエリアに複数個流し込まれる場合は、マルチレコードとしてフローエリア内に複数のサブテンプレートが配置されることになり、配置されるサブテンプレート数分のレコード数で1つのドキュメントが生成される。一方、サブテンプレート1203が、1ドキュメント内に1つしか配置されていない場合は、1レコードで1ドキュメントが生成されることになる。
次に、本実施形態の特徴的な処理について説明する。
図13は本発明の実施形態のバリアブルプリントシステムが実行する処理を示すフローチャートである。
まず、レイアウト編集アプリケーション121は、ユーザの操作に基づいて、エリア作成モードを選択する(ステップS1001)。尚、このエリア作成モードの選択は、例えば、図14において、アプリケーションウインドウ1401上のエリア作成ツールボタン1403を操作することによって実現する。
次に、レイアウト編集アプリケーション121は、ページエリア1407内のページマージン1402において、マウス133のドラッグ操作に基づいて、矩形領域を描画し、表示する(ステップS1002)。
この描画された矩形領域は、フローエリアとして認識される(ステップS1003)。図14では、フローエリアA〜Cの3つのフローエリア1404が表示されている状態を示している。フローエリアA〜Cには、同じレコードに含まれるが異なるレコードのデータを格納するそれぞれのサブテンプレートを配置することができる。フローエリアの関連付けは、後述するフローエリアプロパティ設定ダイアログにて設定することができる。尚、フローエリアは、それらのコンテナとは色や線種等の矩形UIを異ならせることにより、ユーザに視覚的に認識しやすいようにする。つまり、フローエリアは、コンテナとは識別可能に表示される。
次に、レイアウト編集アプリケーション121は、作成したフローエリアにマルチレコードフィールドを関連付ける(ステップS1004)。次に、作成したフローエリアにフローエリアプロパティの設定操作の有無を判定する(ステップS1005)。設定操作がない場合(ステップS1005でNO)、ステップS1008に進む。一方、設定操作がある場合(ステップS1005でYES)、ステップS1006に進む。
尚、設定操作は、例えば、設定操作対象のフローエリアをマウスポインタでクリックする等により実現する。
設定操作があると、レイアウト編集アプリケーション121は、フローエリアプロパティ設定ダイアログを表示する(ステップS1006)。次に、フローエリアプロパティ設定ダイアログに対する設定内容に基づいて、各種設定をフローエリアに反映する(ステップS1007)。
尚、フローエリアプロパティ設定ダイアログ及びその設定方法の詳細については、後述する。
次に、レイアウト編集アプリケーション121は、ドキュメントのプレビュー操作の有無を判定する(ステップS1008)。プレビュー操作がない場合(ステップS1008でNO)、処理を終了する。一方、プレビュー操作がある場合(ステップS1008でYES)、ステップS1009に進む。
次に、レイアウト編集アプリケーション121は、データベースからコンテンツを取得し、各コンテナに取得したコンテンツを流し込み、レイアウト計算を実行して、コンテナの位置とサイズを確定する(ステップS1010)。
次に、設定されているフローエリアのレイアウト計算を実行する(ステップS1010)。尚、この処理の詳細については、後述する。
そして、レイアウト編集アプリケーション121は、レイアウト計算されたレイアウト結果を表示(プレビュー)する(ステップS1011)。
次に、フローエリアプロパティ設定ダイアログについて、図15を用いて説明する。
図15は本発明の実施形態のフローエリアプロパティ設定ダイアログの一例を示す図である。
このフローエリアプロパティ設定ダイアログ1501は、図13のフローチャートのステップS1006で表示され、フローエリアプロパティ設定ダイアログ1501に対する設定内容が、ステップS1007で処理対象のフローエリアに設定されることになる。
フローエリアプロパティ設定ダイアログ1501では、エディットボックス1502で、フローエリアの名称として、任意の名称を入力することができる。ここで、入力した名称は、他のフローエリアに対して表示されるフローエリアプロパティ設定ダイアログ中のコンテンツ同期状態表示エリア1506に一覧表示されることになる。
次に、リストボックス1503では、フローエリアで使用するサブテンプレートを指定することが可能である。サブテンプレートは、編集中のドキュメントテンプレート内に、それぞれの特有なUIによって設定できるものとするが、これに限定されるものではない。例えば、サブテンプレートを別ファイルとして保存しておき、このフローエリアプロパティ設定ダイアログ1507から、その別ファイルを呼び出し指定することによって、所望のサブテンプレートを選択指定する構成としても良い。
尚、本実施形態では、サブテンプレートは、ドキュメントテンプレート内にそれぞれ複数作成できるが、リストボックスから選択するという特性上からも、すべてが一意な名前を持ち識別できるように設計されるべきである。
次に、ラジオボタン1504では、サブテンプレートの配置方向(フロー方向)を指定することが可能である。ここでは、その配置方向(フロー方向)として、「縦のみ」と「縦と横」を選択可能である。また、複数のサブテンプレートを配置する場合には、そのフローエリア内の各サブテンプレートの配置間隔として、縦方向フロー間隔及び横方向フロー間隔をそれぞれ、エディットボックス1505及び1506で入力することが可能である。
コンテンツ同期状態表示エリア1507は、コンテンツ同期エリアの設定状態を示すものである。ここで、コンテンツ同期状態表示エリア1507には、フローエリアにレイアウトされるサブテンプレートに格納するコンテンツとの同期設定状態の有無がリスト表示される。同期設定がなされているフローエリアには、そのフローエリア名にチェックマーク「レ」が付与される。また、この同期設定状態は、ユーザの操作によって、ON/OFFに切り替えることが可能である。同期設定がなされた各フローエリアは、配置されるサブテンプレートの数(レコード数)が一致するようにレイアウトが決定される。
図15の例では、FlowArea01(現プロパティ設定対象フローエリア)にレイアウトされるサブテンプレート(「SubTemplate01」)に対し、フローエリア名「FlowArea02」及び「FlowArea04」にレイアウトされるサブテンプレート数が同期することを示している。
同期動作としては、例えば、FlowArea01に3レコード分のサブテンプレートがレイアウトでき、FlowArea02には4レコード、FlowArea04には4レコード分配置可能である場合には、配置可能サブテンプレート数が一番少ないフローエリアに従ってサブテンプレートがレイアウトされる。
従って、この場合、FlowArea02やFlowArea04には4レコード分配置できるが、FlowArea01には3レコード分しかレコードを配置できない。そのため、同期動作を行う場合には、各フローエリアでは、3レコード分のサブテンプレートを配置し、その後のサブテンプレートの配置は止めることになる。
フローエリアプロパティ設定ダイアログ1501に対する設定の確定は、OKボタン1508を操作する。一方、設定の取消は、キャンセルボタン1509を操作する。
[サブテンプレート]
次に、サブテンプレート及びそのレイアウト処理について説明する。
サブテンプレートは、ドキュメントテンプレートと同様に、イメージコンテナ、テキストコンテナを任意数配置して、そのコンテナにレコードのどのデータ(フィールド)を割り当てるかを設定したものであり、ドキュメントテンプレートの一部(部品)として保存してあるものを指す。
また、サブテンプレートには、互いに識別可能にするためにドキュメントテンプレート内で一意な名称が付与される。このような構成にすることで、同一のレイアウトを一つのドキュメントで数多く使う場合に互いに識別可能に利用することができる。
サブテンプレート内に配置されるコンテナは、上述のように、イメージコンテナ、テキストコンテナであり、各コンテナ間にはリンクを設定することも可能である。従って、コンテナに差し込むデータ(レイアウト対象のデータ)によって、サブテンプレート全体及びその構成要素のレイアウトサイズを最適に変化させることが可能である。
ここで、サブテンプレートにおけるレイアウト処理について、図16を用いて説明する。
図16は本発明の実施形態のサブテンプレートにおけるレイアウト処理を示すフローチャートである。
まず、レイアウト編集アプリケーション121は、レイアウト対象のデータ(データベース中のコンテンツ)を取得する(ステップS1401)。次に、各コンテナに、レイアウト対象のデータのサイズを渡す(ステップS1402)。そして、渡されたデータのサイズに基づいて、各コンテナにおいて、そのデータをレイアウトするためのレイアウト計算を実行する(ステップS1403)。
次に、レイアウト編集アプリケーションは、レイアウトの最適化を行う(ステップS1404)。これは、図9のステップS903と同様である。次に、最適化されたレイアウトを決定する(ステップS1405)。次に、レイアウト対象のデータを対応するコンテナに流し込む(ステップS1406)。そして、レイアウト結果を表示する(ステップS1407)。
ここで、サブテンプレートのレイアウト例について、図17を用いて説明する。
図17は本発明の実施形態のサブテンプレートのレイアウト例を示す図である。
図17では、ドキュメント1730において、同一のサブテンプレートで作成したフローエリア1710及び1720を配置した例を示している。フローエリア1710及び1720において、1702と1705はイメージコンテナ、1703と1706はテキストコンテナ、1707はリンクを示している。
ここで、各イメージコンテナ、テキストコンテナに流し込まれるコンテンツ(イメージ、テキスト)は、異なるレコードであり、そのサイズが異なる。そして、図16の処理によって、各フローエリア1710及び1720上のコンテナは、流し込まれるコンテンツのサイズに基づいて、それぞれ最適なレイアウト計算がなされて、レイアウトされることになる。
[フローエリアのレイアウト計算処理]
図18は本発明の実施形態のフローエリアのレイアウト計算処理を示すフローチャートである。
尚、図18の処理は、レイアウト編集アプリケーション121の制御によって実現される。
まず、ドキュメントテンプレートに関連付いたデータベースに接続する(ステップS1501)。この接続方法に関しては、既存の技術を使用して実現できるので、その詳細については省略する。
次に、取得したデータからレコード数(レイアウト対象のレコード数)を取得し、これを変数Nに設定すると共に、繰り返し変数Kを1で初期化する(ステップS1502)。
次に、N=0であるか否かを判定する、つまり、取得したレコード数が0であるか否かを判定する(ステップS1503)。N=0である場合(ステップS1503でYES)、つまり、レコード数がない場合、処理を終了する。一方、N=0でない場合(ステップS1503でNO)、ドキュメントテンプレート上に定義されたフローエリアの数を変数Mに代入する(ステップS1504)。尚、この処理は、各レコード毎に処理されることになる。
次に、接続が確立したデータベースからK番目のレコードを取得する(ステップS1505)。次に、フローエリアプロパティ設定ダイアログ(図15)で設定されたM番目のフローエリアの各種設定属性(フロー方向、フロー間隔等)を取得する(ステップS1506)。
次に、レコードに格納されている各データフィールドのデータと、フローエリアに設定されているサブテンプレートを使って、上述の図16の処理に基づいて、サブテンプレートのレイアウト計算を実行する(ステップS1507)。次に、レイアウト計算されたサブテンプレートの外接矩形のサイズを取得する(ステップS1508)。次に、現在のフローエリアに配置可能な格納領域のサイズを計算する(ステップS1509)。
次に、変数M=0であるか否かを判定する、つまり、処理対象のフローエリアの有無を判定する。変数M=0でない場合(ステップS1510でNO)、つまり、フローエリアが他にも設定されている場合、フローエリアの数である変数Mをデクリメントして、ステップS1506に戻る(ステップS1511)。
その後、ステップS1506からステップS1509までの処理を、フローエリアの数(M)分繰り返し、それぞれのフローエリアに配置可能な格納領域のサイズと、配置するサブテンプレートの外接矩形サイズが計算される。
一方、ステップS1510の判定の結果、すべてのフローエリアについて、格納領域サイズとサブテンプレートの外接矩形サイズが計算された場合、即ち、変数M=0である場合(ステップS1510でYES)、ステップS1514に進む。
そして、すべてのサブテンプレートがそれぞれのフローエリアに、設定されているフロー方向とフロー間隔を考慮した上で、配置可能であるか否かを判定する(ステップS1514)。すべてのサブテンプレートが配置可能である場合(ステップS1514でYES)、各々のサブテンプレートを各フローエリアに配置する(ステップS1517)。
一方、1つでもサブテンプレートが配置可能でない場合(ステップS1514でNO)、コンテンツの同期設定がなされているか否かを判定する(ステップS1515)。コンテンツの同期設定がなされていない場合(ステップS1515でNO)、コンテンツの同期が取れないので、エラーメッセージ(不図示)を表示して、処理を終了する(ステップS1518)。
一方、コンテンツの同期設定がなされている場合(ステップS1515でYES)、新しいページを作成し、新規のフローエリアを確保する(ステップS1516)。次に、各サブテンプレートをフローエリアの所定の位置に配置する(ステップS1517)。尚、所定の位置は、フロー方向、フロー間隔から算出される。
以上の処理で、各フローエリアの最適な位置にサブテンプレートがレイアウトされることになる。
次に、以降のレコードについても同様の処理を実行するため、繰り返し変数Kをインクリメントして、次のレコードを取得する準備をする(ステップS1512)。次に、繰り返し変数Kとレコード数Nを比較し、K<Nであるか否かを判定する(ステップS1513)、つまり、未処理のレコードの有無を判定する。K<Nである場合(ステップS1513でNO)、ステップS1504に戻り、変数Mをリセットした後、次のレコードについて、同様の処理を実行する。
以上の処理の結果、ページ上に配置されるサブテンプレートのコンテンツが同期するので、1つのレコードを分割レイアウトするようなドキュメントであっても、情報が拡散することがなく、より効果的なレコードのレイアウトを実現することができる。
[フローエリアのレイアウト]
次に、図18の処理による、フローエリア内のサブテンプレートのレイアウト例について、図19を用いて説明する。
図19は本発明の実施形態のフローエリア内のサブテンプレートのレイアウト例を示す図である。
図19で、1901はページ境界、1902はページマージン、1903はフローエリア、1904はサブテンプレートを示している。また、1905は横フロー間隔、縦フロー間隔を現している。
図19では、3つのフローエリア1903に各々サブテンプレートがレイアウトされている。各フローエリアでは、フローエリアの左上を起点として、フローエリアプロパティ設定ダイアログで設定された適切なフロー間隔を空けてそれぞれが配置される。
サブテンプレートそれぞれは、データのサイズに応じてまちまちなサイズを持つ。Record01に含まれるData01からData09が3つのサブテンプレートに分割されてレイアウトされている。
図19では、Record01とRecord02の2レコード分のデータが1ページに収まっている状態を示しているが、データのサイズによっては、フローエリア毎に3レコード分収まることもあれば、1レコード分しか納まらないこともある。このように、1つのページ上に配置されるレコード数が違っていると、ドキュメントとして混乱した情報を提供する可能性がある。つまり、データのサイズが可変となる場合には、各フローエリアに配置できるサブテンプレート数を同期させることが重要となる。
つまり、図19では、各フローエリア1903では、配置されるサブテンプレートの数が2個に一致するように同期している。換言すれば、各フローエリア間において、同期設定がなされている場合には、各フローエリア内で使用されるサブテンプレート数が、それぞれのフローエリアで使用可能な最大サブテンプレート数の内、最小の最大サブテンプレート数に制限されるように制御される。
以上説明しように、本実施形態によれば、データベースから抽出した1つのレコードデータの内容(値)に応じて、異なる複数のサブテンプレートを選択して、選択されたサブテンプレートに対してレコードを流し込む。そして、その流し込み処理をレコードごとに繰り返すことによって、多種のサブテンプレートとレコードの結びついた複数の部分レイアウトエリア(フローエリア)を構成することができる。そして、その多種の部分レイアウトを、複数の部分レイアウトエリアに分割して処理することで、従来の流し込みでは実現できない、複雑なレイアウト切替を繰り返すレイアウトを実現することができる。
これは、カタログのように、項目数があらかじめ定まらない、ある程度類似しているが詳細なレイアウト構造が異なるような部分レイアウトをグループ分けして、ユーザが直感的に商品を比較できるようなドキュメントを作成する際に非常に有効となる。
以上、実施形態例を詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
尚、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム(実施形態では図に示すフローチャートに対応したプログラム)を、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であっても良い。
プログラムを供給するための記録媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などがある。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現される。
本発明の実施形態の情報処理システムの構成例を示す図である。 本発明の実施形態の情報処理システムの一構成要素であるホストコンピュータのハードウェア構成を示す図である。 本発明の実施形態の情報処理システムの別構成例を示す図である。 本発明の実施形態のバリアブルデータプリントの概略を説明するための図である。 本発明の実施形態のユーザインタフェースの一例を示す図である。 本発明の実施形態のユーザインタフェースにおけるコンテナの表示例を示す図である。 本発明の実施形態のコンテナの辺の状態の種類を示す図である。 本発明の実施形態のコンテナの表示ルールを説明するための図である。 本発明の実施形態のリンクの設定処理を示すフローチャートである。 本発明の実施形態のリンク設定時のユーザインタフェースの遷移例を示す図である。 本発明の実施形態のレイアウト計算処理を示すフローチャートである。 本発明の実施形態のレイアウト計算処理の詳細を示すフローチャートである。 本発明の実施形態のレイアウト計算処理時におけるコンテナの集合を説明するための図である。 本発明の実施形態のレイアウト計算処理におけるユーザインタフェースの一例を示す図である。 本発明の実施形態のマルチレコードとそのレイアウト方法の概要を示す図である。 本発明の実施形態のバリアブルプリントシステムが実行する処理を示すフローチャートである。 本発明の実施形態のバリアブルプリントシステムが実行する処理の具体例を説明するための図である。 本発明の実施形態のフローエリアプロパティ設定ダイアログの一例を示す図である。 本発明の実施形態のサブテンプレートにおけるレイアウト処理を示すフローチャートである。 本発明の実施形態のサブテンプレートのレイアウト例を示す図である。 本発明の実施形態のフローエリアのレイアウト計算処理を示すフローチャートである。 本発明の実施形態のフローエリア内のサブテンプレートのレイアウト例を示す図である。
符号の説明
101 ホストコンピュータ
103 ユーザインタフェース
105 レイアウトエンジン
107 ネットワーク
109 プリントサーバ
113 プリンタ
115 ファイルサーバ
117 データベースサーバ
119 データベース
121 レイアウト編集アプリケーション
123 通信チャネル
225 レイアウトエンジン
227 エンジンサーバ

Claims (8)

  1. 複数種類のデータフィールドからなるレコードから、選択されたデータフィールドのデータを差し込むためのフィールド領域を、テンプレートに基づいてページ内にレイアウトする情報処理装置であって、
    前記ページ内で、前記テンプレートを使用する部分レイアウトエリアを作成する作成手段と、
    前記作成手段で作成した部分レイアウトエリアで使用するテンプレートに関する設定情報を設定する設定手段と、
    前記作成手段で作成した部分レイアウトエリアで使用するテンプレートのレイアウトを、その部分レイアウトエリアに設定されている設定情報に基づいて制御する制御手段と
    を備えることを特徴とする情報処理装置。
  2. 前記設定手段は、前記部分レイアウトエリアで使用するレイアウトの配置方向、配置間隔、他の部分レイアウトエリアとの同期設定に関する設定情報を設定する
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記同期設定とは、部分レイアウトエリア間で使用するテンプレート数の同期を図るための設定である
    ことを特徴とする請求項2に記載の情報処理装置。
  4. 前記制御手段は、複数の前記部分レイアウトエリア間において、前記同期設定がなされている場合には、各部分レイアウトエリア内で使用されるテンプレート数が、それぞれの部分レイアウトエリアで使用可能な最大テンプレート数の内、最小の最大テンプレート数に制限されるように、各部分レイアウトエリアで使用するテンプレート数を制御する
    ことを特徴とする請求項2に記載の情報処理装置。
  5. 前記制御手段は、複数の部分レイアウトエリアそれぞれに使用するテンプレートのいずれかが、対応する部分レイアウトエリア内に配置できない場合で、かつ前記複数の前記部分レイアウトエリア間において、前記同期設定がなされている場合には、新規のページを作成して、前記ページ内で前記配置できないテンプレートを配置するための部分レイアウトエリアを前記新規のページ内に作成する
    ことを特徴とする請求項2に記載の情報処理装置。
  6. 前記制御手段は、複数の部分レイアウトエリアそれぞれに使用するテンプレートのいずれかが、対応する前記部分レイアウトエリア内に配置できない場合で、かつ前記複数の前記部分レイアウトエリア間において、前記同期設定がなされていない場合には、所定のメッセージを出力する
    ことを特徴とする請求項2に記載の情報処理装置。
  7. 複数種類のデータフィールドからなるレコードから、選択されたデータフィールドのデータを差し込むためのフィールド領域を、テンプレートに基づいてページ内にレイアウトする情報処理装置の制御方法であって、
    前記ページ内で、前記テンプレートを使用する部分レイアウトエリアを作成する作成工程と、
    前記作成工程で作成した部分レイアウトエリアで使用するテンプレートに関する設定情報を設定する設定工程と、
    前記作成工程で作成した部分レイアウトエリアで使用するテンプレートのレイアウトを、その部分レイアウトエリアに設定されている設定情報に基づいて制御する制御工程と
    を備えることを特徴とする情報処理装置の制御方法。
  8. 複数種類のデータフィールドからなるレコードから、選択されたデータフィールドのデータを差し込むためのフィールド領域を、テンプレートに基づいてページ内にレイアウトする情報処理装置の制御を実現するためのプログラムであって、
    前記ページ内で、前記テンプレートを使用する部分レイアウトエリアを作成する作成工程のプログラムコードと、
    前記作成工程で作成した部分レイアウトエリアで使用するテンプレートに関する設定情報を設定する設定工程のプログラムコードと、
    前記作成工程で作成した部分レイアウトエリアで使用するテンプレートのレイアウトを、その部分レイアウトエリアに設定されている設定情報に基づいて制御する制御工程のプログラムコードと
    を備えることを特徴とするプログラム。
JP2005036952A 2005-02-14 2005-02-14 情報処理装置及びその制御方法、プログラム Withdrawn JP2006221582A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005036952A JP2006221582A (ja) 2005-02-14 2005-02-14 情報処理装置及びその制御方法、プログラム
US11/276,037 US7853872B2 (en) 2005-02-14 2006-02-10 Laying out field regions in a page for insertion of data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005036952A JP2006221582A (ja) 2005-02-14 2005-02-14 情報処理装置及びその制御方法、プログラム

Publications (1)

Publication Number Publication Date
JP2006221582A true JP2006221582A (ja) 2006-08-24

Family

ID=36817067

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005036952A Withdrawn JP2006221582A (ja) 2005-02-14 2005-02-14 情報処理装置及びその制御方法、プログラム

Country Status (2)

Country Link
US (1) US7853872B2 (ja)
JP (1) JP2006221582A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008299571A (ja) * 2007-05-31 2008-12-11 Digital Stage:Kk ホームページ作成装置とそのホームページ作成プログラム及びホームページ作成方法

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4912139B2 (ja) * 2006-12-22 2012-04-11 キヤノン株式会社 情報処理装置
AR067297A1 (es) * 2007-03-28 2009-10-07 Avery Dennison Corp Interfaz de usuario de tipo cinta para un programa de aplicacion
US8042039B2 (en) * 2008-05-25 2011-10-18 Hewlett-Packard Development Company, L.P. Populating a dynamic page template with digital content objects according to constraints specified in the dynamic page template
JP2010113479A (ja) * 2008-11-05 2010-05-20 Canon Inc 情報処理装置及び情報処理方法
US9268761B2 (en) * 2009-06-05 2016-02-23 Microsoft Technology Licensing, Llc In-line dynamic text with variable formatting
US10007933B2 (en) * 2013-02-22 2018-06-26 Swoop Inc. Systems and methods for integrating dynamic content into electronic media
US9830304B1 (en) * 2013-02-22 2017-11-28 Swoop Inc. Systems and methods for integrating dynamic content into electronic media
US9880994B1 (en) * 2013-06-21 2018-01-30 Nativo, Inc. Detecting compatible layouts for content-based native ads
US10409895B2 (en) * 2017-10-17 2019-09-10 Qualtrics, Llc Optimizing a document based on dynamically updating content

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5845303A (en) * 1994-12-06 1998-12-01 Netpodium, Inc. Document processing using frame-based templates with hierarchical tagging
US6243172B1 (en) * 1995-01-18 2001-06-05 Varis Corporation Method and system for merging variable text and images into bitmaps defined by a page description language
US5956737A (en) * 1996-09-09 1999-09-21 Design Intelligence, Inc. Design engine for fitting content to a medium
US6596032B2 (en) * 1996-10-15 2003-07-22 Fujitsu Limited Document processing apparatus storing and modifying data using effect data
JP2000048216A (ja) 1998-07-24 2000-02-18 Dainippon Screen Mfg Co Ltd 画像部品ブロックのレイアウト処理方法及び装置、並びに、コンピュータ読み取り可能な記憶媒体
JP3754838B2 (ja) 1999-01-29 2006-03-15 キヤノン株式会社 複合フォーム編集装置及び複合フォーム編集方法及びプログラムの記憶媒体
US7039863B1 (en) * 1999-07-23 2006-05-02 Adobe Systems Incorporated Computer generation of documents using layout elements and content elements
US6826727B1 (en) * 1999-11-24 2004-11-30 Bitstream Inc. Apparatus, methods, programming for automatically laying out documents
US7454699B2 (en) * 2003-03-24 2008-11-18 Microsoft Corporation Smart content insertion
US7325197B1 (en) * 2003-06-16 2008-01-29 Microsoft Corporation Method and system for providing page control content
US7325196B1 (en) * 2003-06-16 2008-01-29 Microsoft Corporation Method and system for manipulating page control content
US7380202B1 (en) * 2003-06-16 2008-05-27 Microsoft Corporation Method and system for customizing and personalizing page control content
JP4089655B2 (ja) * 2003-09-16 2008-05-28 セイコーエプソン株式会社 レイアウトシステムおよびレイアウトプログラム、並びにレイアウト方法
JP4332480B2 (ja) * 2004-08-31 2009-09-16 キヤノン株式会社 レイアウト調整方法及び装置並びにプログラム
US7656543B2 (en) * 2004-11-12 2010-02-02 Hewlett-Packard Development Company, L.P. Albuming images
GB2430061A (en) * 2005-09-08 2007-03-14 Hewlett Packard Development Co Templates for variable data printing

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008299571A (ja) * 2007-05-31 2008-12-11 Digital Stage:Kk ホームページ作成装置とそのホームページ作成プログラム及びホームページ作成方法

Also Published As

Publication number Publication date
US7853872B2 (en) 2010-12-14
US20060184876A1 (en) 2006-08-17

Similar Documents

Publication Publication Date Title
JP4144883B2 (ja) 情報処理装置及びその制御方法、プログラム
JP4250540B2 (ja) レイアウト調整方法および装置およびレイアウト調整プログラム
JP4700940B2 (ja) 情報処理装置及びその制御方法、プログラム
JP4912139B2 (ja) 情報処理装置
JP4560416B2 (ja) 情報処理装置及びその制御方法、プログラム
JP4522280B2 (ja) 情報処理装置及びその制御方法、プログラム
JP4241410B2 (ja) レイアウト調整方法および装置およびレイアウト調整プログラム
JP4262164B2 (ja) 情報処理装置及びその制御方法、プログラム
US8464151B2 (en) Layout of field area where merchandise and advertising information are inserted or determining position and size of area where merchandise and advertising information flow
JP4332480B2 (ja) レイアウト調整方法及び装置並びにプログラム
JP2006221582A (ja) 情報処理装置及びその制御方法、プログラム
JP2006277727A (ja) レイアウト処理方法、情報処理装置及びコンピュータプログラム
US7847971B2 (en) Layout processing method, information processing apparatus, and computer program
JP2006050445A (ja) レイアウト調整方法及び装置並びにプログラム
JP2007066304A (ja) 情報処理装置及びその制御方法、プログラム
JP2007249431A (ja) 情報処理装置及びその制御方法、プログラム
JP2005216181A (ja) 文書処理方法、文書処理装置及び文書処理プログラム
JP2010122893A (ja) バリアブルプリントシステム
JP2007122486A (ja) Web文書処理方法、プログラム、記憶媒体
JP4743909B2 (ja) 情報処理方法および装置およびコンピュータプログラム
JP2006074225A (ja) レイアウト調整方法及び装置並びにプログラム
JP2010176366A (ja) バリアブルプリントシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080208

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20100204