(57)【要約】【課題】バリアブルデータの面付け印刷を行う場合でも、特定のレコードの印刷を従来よりも確実に行えるようにする【解決手段】複数のレコードから構成される印刷データを生成するに際し、次の情報を生成して印刷データに含めるようにする。すなわち、各レコードの各ページと、そのページが実際に印刷される物理ページとを相互に対応付ける情報としてページリスト（DestList）７１２を、各レコードのページ数と面付け印刷の方法とに基づいて生成する。【選択図】図７
2010157099.tif 000002
【特許請求の範囲】
【請求項１】
レコードによって不変の固定コンテンツと、レコードに応じて異なる可変コンテンツとを含むバリアブルデータを作成するバリアブルデータ作成手段と、
複数ページの前記バリアブルデータを１物理ページに面付けする面付け方法を、ユーザによる操作に基づいて決定する決定手段と、
前記複数ページのバリアブルデータを、前記決定手段により決定された面付け方法で１物理ページに面付けして印刷を行うための印刷データを作成する印刷データ作成手段と、を有し、
前記印刷データ作成手段は、各レコードの各ページを識別するための情報を含む印刷データを作成することを特徴とする印刷制御装置。
【請求項２】
前記印刷データ作成手段は、前記バリアブルデータ作成手段により作成されたバリアブルデータと、前記決定手段により決定された面付け方法とに基づいて、各レコードの各ページの、実際に印刷される物理ページを識別するための情報を求め、当該求めた情報を含む印刷データを作成することを特徴とする請求項１に記載の印刷制御装置。
【請求項３】
前記各レコードの各ページの状態を保持する中間データを当該各レコードの各ページの夫々について作成する中間データ作成手段を有し、
前記印刷データ作成手段は、各レコードの各ページにおける前記中間データを識別するための情報を生成し、生成した情報を含む印刷データを作成することを特徴とする請求項１に記載の印刷制御装置。
【請求項４】
前記印刷データ作成手段は、前記各レコードにおける前記中間データの、実際に印刷される物理ページでの配置に関する情報を更に含む印刷データを作成することを特徴とする請求項３に記載の印刷制御装置。
【請求項５】
前記印刷データ作成手段は、前記決定手段により決定された面付け方法で前記バリアブルデータの全てのレコードを印刷する場合に各物理ページに面付けされるバリアブルデータを識別する情報を、前記バリアブルデータ作成手段により作成されたバリアブルデータと、前記決定手段により決定された面付け方法とに基づいて作成し、作成した情報を更に含む印刷データを作成することを特徴とする請求項３又は４に記載の印刷制御装置。
【請求項６】
レコードによって不変の固定コンテンツと、レコードに応じて異なる可変コンテンツとを含むバリアブルデータを作成するバリアブルデータ作成ステップと、
複数ページの前記バリアブルデータを１物理ページに面付けする面付け方法を、ユーザによる操作に基づいて決定する決定ステップと、
前記複数ページのバリアブルデータを、前記決定ステップにより決定された面付け方法で１物理ページに面付けして印刷を行うための印刷データを作成する印刷データ作成ステップと、を有し、
前記印刷データ作成ステップは、各レコードの各ページを識別するための情報を含む印刷データを作成することを特徴とする印刷制御方法。
【請求項７】
前記印刷データ作成ステップは、前記バリアブルデータ作成ステップにより作成されたバリアブルデータと、前記決定ステップにより決定された面付け方法とに基づいて、各レコードの各ページの、実際に印刷される物理ページを識別するための情報を求め、当該求めた情報を含む印刷データを作成することを特徴とする請求項６に記載の印刷制御方法。
【請求項８】
前記各レコードの各ページの状態を保持する中間データを当該各レコードの各ページの夫々について作成する中間データ作成ステップを有し、
前記印刷データ作成ステップは、各レコードの各ページにおける前記中間データを識別するための情報を生成し、生成した情報を含む印刷データを作成することを特徴とする請求項６に記載の印刷制御方法。
【請求項９】
前記印刷データ作成ステップは、前記各レコードにおける前記中間データの、実際に印刷される物理ページでの配置に関する情報を更に含む印刷データを作成することを特徴とする請求項８に記載の印刷制御方法。
【請求項１０】
前記印刷データ作成ステップは、前記決定ステップにより決定された面付け方法で前記バリアブルデータの全てのレコードを印刷する場合に各物理ページに面付けされるバリアブルデータを識別する情報を、前記バリアブルデータ作成ステップにより作成されたバリアブルデータと、前記決定ステップにより決定された面付け方法とに基づいて作成し、作成した情報を更に含む印刷データを作成することを特徴とする請求項８又は９に記載の印刷制御方法。
【請求項１１】
請求項６〜１０の何れか１項に記載の印刷制御方法の各ステップをコンピュータに実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷制御装置、印刷制御方法、及びコンピュータプログラムに関し、特に、複数ページのバリアブルデータを面付け印刷するために用いて好適なものである。
【背景技術】
【０００２】
バリアブルデータは、例えば、表紙や本文等の固定コンテンツと、レコード毎に異なる可変コンテンツとからなる。レコードとは、個人等を指す個別のデータでありデータベース等にその情報が格納されている。
バリアブルデータを印刷する際には、固定コンテンツと、データベースから取り出した"レコードに応じた可変コンテンツ"とを組み合わせて印刷を行う。また、バリアブルデータを印刷する際には、用紙料金やメンテナンス料を削減するために、複数ページ分のデータを同一の用紙に割りつけて印刷を行うことが多い。例えば、Ａ３の用紙に複数枚のはがきサイズの印刷や、複数枚のチケットの印刷を行った後、印刷物を断裁する。
【０００３】
製本印刷時の物理面付けデータとは、原稿文書を面付けして印刷するのに必要な全ての情報を含むデータである。従来、ＰＯＤ（プリント・オン・デマンド）で物理面付けデータを作成する際には、原稿文書の各ページをどこに面付けするかをユーザの指定に合わせるようにしていた。具体的に従来は、ユーザによって指定された面付け情報を反映した物理面付けデータを面付けアプリケーションソフトで作成した後に、その物理面付けデータを印刷装置に送信して印刷するようにしていた（特許文献１を参照）。
【０００４】
ところで、印刷データのフォーマットの一例としてＰＤＦ（Portable Document Format）がある。バリアブル規格のＰＤＦでは、固定コンテンツと、レコード毎の可変コンテンツとを順に合成した物理面付けデータとなる。
一方、バリアブルデータの印刷では、特定のレコードのみを取り出した印刷を行えるようにすることが必須である。例えば、特定のレコードの試し印刷や追加印刷を行ったり、本社で作成したデータのうち支社のレコードを指定して印刷を行ったりする等、特定のレコードのみを取り出した印刷に多くの需要があるからである。そのため、前述したバリアブル規格のＰＤＦでは、各レコードの先頭ページの情報をＰＤＦ内に持っている。
【０００５】
【特許文献１】特開平１１−９９７２３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、前述した特許文献１に記載の技術では、バリアブルデータをレコード毎に印刷するということができない。また、前述したバリアブル規格のＰＤＦでは、複数の論理ページを一枚の物理ページ（用紙）に印刷するような面付け印刷（以下の説明では必要に応じてＮＵＰ印刷と称する）の際にバリアブルデータの各レコードの印刷位置が分からない。そのため、特定のレコードのみの印刷を行うことができないという問題がある。
【０００７】
図３は、レコードの一例を概念的に示す図である。図３では、１レコードが３ページからなるバリアブルデータで、ＡさんからＥさんの５レコードが存在する例である。図３に示すバリアブルデータの１ページ（１論理ページ）を、１枚の用紙（１物理ページ）に印刷すると、図４に示すような印刷物が得られる。図４は、図３に示すレコードにおける１論理ページを１物理ページに印刷した場合の印刷物を概念的に示す図である。
【０００８】
このように１論理ページを１物理ページに印刷する場合には、各レコードの先頭ページと総ページ数（図３、図４に示す例では３ページ）とが分かれば、各レコードを個別に印刷することが可能である。Ｂさんのレコードを印刷する場合は、Ｂさんの先頭ページから３ページ分を印刷すればよい。
【０００９】
次に、複数のページを一枚の用紙に面付け印刷する場合を考える。図５は、串指し印刷を行った場合の印刷物の一例を概念的に示す図である。図５では、４ページ分を一枚の用紙にカット＆スタック（串刺し印刷）で印刷した場合を例に挙げて示している。図５において、Ｂさんのレコードの先頭ページ５０１は４枚目に、２ページ目５０２は１枚目に、３ページ目５０３は２枚目に夫々存在する。しかしながら、前述したバリアブル規格のＰＤＦでは、先頭ページ５０１の情報しかないために、Ｂさんのレコードの全ての情報を印刷することができないという問題がある。このような問題は、特にカット＆スタック（串刺し印刷）に限ったものではなく、複数のページを一枚の用紙に印刷するような面付け印刷（ＮＵＰ印刷）を行った場合に共通する問題である。
図６は、串指し印刷以外の面付け印刷を行った場合の印刷物の一例を概念的に示す図である。図６に示す例では、Ｂさんのレコードの先頭ページ６０１は１枚目に、２ページ目６０２と３ページ目６０３は２枚目に存在する。しかしながら、前述したバリアブル規格のＰＤＦでは、先頭ページ６０１の情報しかないため、図５に示したのと同様に、Ｂさんのレコードの全ての情報を印刷することができないという問題が生じる。
【００１０】
本発明は、このような問題点に鑑みてなされたものであり、バリアブルデータの面付け印刷を行う場合でも、特定のレコードの印刷を従来よりも確実に行えるようにすることを目的とする。
【課題を解決するための手段】
【００１１】
本発明の印刷制御装置は、レコードによって不変の固定コンテンツと、レコードに応じて異なる可変コンテンツとを含むバリアブルデータを作成するバリアブルデータ作成手段と、複数ページの前記バリアブルデータを１物理ページに面付けする面付け方法を、ユーザによる操作に基づいて決定する決定手段と、前記複数ページのバリアブルデータを、前記決定手段により決定された面付け方法で１物理ページに面付けして印刷を行うための印刷データを作成する印刷データ作成手段と、を有し、前記印刷データ作成手段は、各レコードの各ページを識別するための情報を含む印刷データを作成することを特徴とする。
【００１２】
本発明の印刷制御方法は、レコードによって不変の固定コンテンツと、レコードに応じて異なる可変コンテンツとを含むバリアブルデータを作成するバリアブルデータ作成ステップと、複数ページの前記バリアブルデータを１物理ページに面付けする面付け方法を、ユーザによる操作に基づいて決定する決定ステップと、前記複数ページのバリアブルデータを、前記決定ステップにより決定された面付け方法で１物理ページに面付けして印刷を行うための印刷データを作成する印刷データ作成ステップと、を有し、前記印刷データ作成ステップは、各レコードの各ページを識別するための情報を含む印刷データを作成することを特徴とする。
【００１３】
本発明のコンピュータプログラムは、前記印刷制御方法の各ステップをコンピュータに実行させることを特徴とする。
【発明の効果】
【００１４】
本発明によれば、各レコードの各ページを識別するための情報を印刷データに含めるようにしたので、バリアブルデータの面付け印刷を行う場合に、特定のレコードが指定された場合でも、その特定のレコードを抽出することができる。したがって、バリアブルデータの面付け印刷を行う場合でも、特定のレコードの印刷を従来よりも確実に行える。
【発明を実施するための最良の形態】
【００１５】
（第１の実施形態）
以下に、図面を参照しながら、本発明の第１の実施形態について説明する。
図１は、バリアブルデータ印刷システムのハードウェア構成の一例を示す図である。
図１において、バリアブルデータ印刷システムは、ホストＰＣ１００と印刷装置１２とを有し、これらがＬＡＮ１３を介して相互に通信可能に接続されている。
ＣＰＵ１は、ハードディスク４やＲＯＭ５に記憶されているプログラムを実行する等して装置（ホストＰＣ１００）を統括制御する。キーボード２は、ユーザがデータを入力するために操作するユーザインターフェースである。ディスプレイ３は、文書画像等を表示する。ハードディスク４は、装置（ホストＰＣ１００）を制御するためのプログラムや文書等を記憶する。ＲＯＭ５は、装置（ホストＰＣ１００）を制御するプログラムや必要な情報を予め記憶する。ＲＡＭ６は、様々なワークエリアとして利用される記憶装置である。データベース７は、バリアブルデータの各レコードに関するレコード情報を格納する。これらは、データバス１１を介して相互に接続されている。データバス１１は、各種データを転送するものである。
一方、印刷装置１２は、ホストＰＣ１００から送信された"バリアブル印刷データ等"に基づいて印刷を行う。印刷装置１２は例えばデジタル複合機（ＭＦＰ）である。
【００１６】
図２は、バリアブルデータ（印刷データ）をレコード毎に印刷することができるようにするためのホストＰＣ１００における機能構成の一例を示す図である。
図２において、バリアブルデータ作成部８は、バリアブルデータを作成する機能を有する。物理面付けデータ作成部９は、バリアブルデータ作成部８で作成されたバリアブルデータの特定のレコードを物理ページに面付けして印刷するための物理面付けデータ（印刷データ）を作成する機能を有する。ページ解析部１０は、レコードと物理面付けデータとの関係を解析する。
【００１７】
前述したように、図５は、１レコードが３ページからなる５レコード分のバリアブルデータの４ページ分を一枚の用紙にカット＆スタック（串刺し印刷）で印刷した場合の印刷物を示している。図５において、Ｂさんのレコードの先頭ページ５０１は４枚目に、２ページ目５０２は１枚目に、３ページ目５０３は２枚目に夫々存在する。
【００１８】
また、前述したように、図６は、１レコードが３ページからなる５レコード分のバリアブルデータの４ページ分を一枚の用紙に串指し印刷以外の方法で面付け印刷した場合の印刷物を示している。図６において、Ｂさんのレコードの先頭ページ６０１は１枚目に、２ページ目６０２と３ページ目６０３は２枚目に夫々存在する。
【００１９】
図７は、図５に示したような印刷物を得るためのバリアブル印刷データの一例を示す図である。尚、本実施形態では、バリアブル印刷データがＰＤＦに基づく印刷データ（ＰＤＦデータ）である場合を例に挙げて説明する。
ＰＤＦは階層構造で成り立っている。Document Catalog７０１は、その階層のルートにあたる。Page tree７０２はページの情報をとりまとめる。ページ構成情報Page７０３は、各ページの構成を表す。Xobject７０４は、ページ内で使用される描画オブジェクトを表す。このXobject７０４は、各ページで共通して使われる描画オブジェクトであり、再利用オブジェクトとも言われる。Xobject７０４は、Page1からPage4までの全てのページから参照されることが分かる。Outline hierarchy７０５は、各レコードの先頭ページの位置等を示す。Outline entry A７０６ａ〜Outline entry E７０６ｅは、夫々、Ａさん〜Ｅさんのレコードの先頭ページの位置、総ページ数等の情報をもつ。例えば、Outline entry B７０６ｂ、Outline entry C７０６ｃの具体的なデータ７０８ｂ、７０８ｃは、先頭ページ位置７１０ｂ、７１０ｃ、総ページ数７１１ｂ、７１１ｃ、及びページリスト７１２ｂ、７１２ｃ等である。本実施形態では、ページリスト７１２は、該当するレコードの各ページが実際に印刷される物理ページ（用紙）の何ページ目に属するかを示すものである。
【００２０】
図８は、バリアブルデータの一例を示す図である。尚、図８では夫々のページを模式的に示している。
前述したようにここでは１レコードが３ページからなる。ページ９０１、９０２、９０３は、夫々、１ページ目、２ページ目、３ページ目を指す。文書９０４、９０５、９０６には、レコードによって不変の固定コンテンツである。一方、イメージ９０７、９０８、９０９には、レコード毎に異なる可変コンテンツである。
【００２１】
図９は、データベース７に格納されているレコード情報の一例を示す図である。
図９において、レコード情報１００１には、レコードＩＤ１００２、氏名１００３、年齢１００４、及び可変コンテンツであるイメージ９０７、９０８、９０９のイメージデータのファイル名１００５、１００６、１００７が含まれる。
【００２２】
以下に、入稿された文書からバリアブルデータ、印刷データ（物理面付けデータ）を順に作成して、印刷する際のバリアブルデータ印刷システム（バリアブルデータ作成部８、物理面付けデータ作成部９、ページ解析部１０）の動作に関して詳細に説明する。
図１０は、バリアブルデータを作成して印刷する際のバリアブルデータ印刷システムの全体処理の一例を説明するフローチャートである。
【００２３】
まず初めに、図１０のステップＳ８０１において、バリアブルデータ作成部８は、バリアブルデータを作成する。
バリアブルデータ作成部８は、ユーザがキーボード２等を操作して入力した文書９０４、９０５、９０６、イメージ９０７、９０８、９０９等をディスプレイ３に描画する。その後、バリアブルデータ作成部８は、描画した文書９０４、９０５、９０６、イメージ９０７、９０８、９０９等の配置を、ユーザによるキーボード２等の操作内容に基づいて確定してハードディスク４に格納する。前述したように本実施形態では、文書９０４、９０５、９０６を固定コンテンツ（固定データ）とし、イメージ９０７、９０８、９０９を可変コンテンツ（可変データ）としている。レコード毎にどのイメージを使うかは、データベース７に格納されているレコード情報１００１に基づいて判断される。例えば、レコードＩＤ１００２が「１」のＡさん用のバリアブル印刷では、次のイメージが使用される。すなわち、１ページ目のイメージ９０７、９０８としてファイル名が「xxx.jpg」、「yyy.jpg」であるイメージが使用され、２ページ目のイメージ９０９としてファイル名が「zzz.jpg」であるイメージが使用される。同様に、Ｂさん用のバリアブル印刷では、次のイメージが使用される。すなわち、１ページ目のイメージ９０７、９０８としてファイル名が「aaa.jpg」、「bbb.jpg」であるイメージが使用され、２ページ目のイメージ９０９としてファイル名が「zzz.jpg」であるイメージが使用される。
以上のように本実施形態では、例えば、ステップＳ８０１の処理を行うことによりバリアブルデータ作成手段の一例が実現される。
【００２４】
次に、ステップＳ８０２において、物理面付けデータ作成部９は、ユーザによるキーボード２等の操作内容に基づいて印刷方法（面付け方法）を決定する。
印刷方法には、種々の方法がある。例えば、図４に示したように、用紙１枚（１物理ページ）に１ページ（１論理ページ）ずつ印刷する方法がある。また、図５に示したように、用紙１枚に４ページ分（４論理ページ分）を印刷し、その印刷した用紙を断裁した場合に、その裁断した用紙をそのまま積み替えれば、上からページ順に並ぶようにするカット＆スタック（串刺し印刷）で印刷する方法もある。
ここでは、図５に示した串指し印刷を行う場合を例に挙げて説明する。
図５において、Ａ１は、レコード情報１００１のレコードＩＤ１００２が「１」の氏名１００３がＡさん用のバリアブルデータの１ページ目９０１を表している。同様に、Ｂ１（Ｂさんのレコードの先頭ページ５０１）は、Ｂさん用のバリアブルデータの１ページ目９０１を表し、Ｂ２（Ｂさんのレコードの２ページ目５０２）は、Ｂさん用のバリアブルデータの２ページ目９０２を表す。更に、Ｂ３（Ｂさんのレコードの３ページ目５０３）は、Ｂさん用のバリアブルデータの３ページ目９０３を表す。ここでは、串指し印刷を行うため、Ｂさんのレコードの先頭ページ５０１は４枚目に、２ページ目５０２は１枚目に、３ページ目５０３は２枚目に配置される。
【００２５】
次に、ステップＳ８０３において、物理面付けデータ作成部９とページ解析部１０は、印刷データ（物理面付けデータ）を作成する。図１１は、図１０のステップＳ８０３のバリアブル印刷データ作成処理の詳細の一例を説明するフローチャートである。尚、前述したように、ここでは、物理面付けデータがＰＤＦデータである場合を例に挙げて説明する。図１０における処理の主体は、全体としては、物理面付けデータ作成部９であるが、ステップＳ２０４等、対象となるページが物理ページのどこ（何ページ目）に印刷されるか等の解析はページ解析部１０が行う。
【００２６】
まず、図１１のステップＳ２０１において、物理面付けデータ作成部９は、前記ステップＳ８０２で決めた印刷方法を確認する。ここでは、図５に示したような串指し印刷が印刷方法として決定されたとする。したがって、ここでは、１レコードが３ページである５レコード分のバリアブルデータを、串指し印刷で４ＵＰ（用紙１枚に４ページ分を面付け）するような印刷データが作成されることになる。
【００２７】
次に、ステップＳ２０２において、物理面付けデータ作成部９は、レコード番号Ｒを初期化して「１」とする。
次に、ステップＳ２０３において、物理面付けデータ作成部９は、レコード内ページ番号Ｐを初期化して「１」とする。
次に、ステップＳ２０４において、ページ解析部１０は、レコード番号Ｒのレコードの、レコード内ページ番号Ｐのページが、最終的にどの物理ページに印刷されるのかを求める。尚、以下の説明では、ここで求められる物理ページを物理ページ番号と称する。また、この物理ページ番号は、ステップＳ８０１で作成されたバリアブルデータと、ステップＳ８０２で決定された印刷方法とに基づいて求められるものである。例えば、Ｂさんのレコードの先頭ページ５０１は物理ページの４ページ目にあるので、物理ページ番号は「４」となる。
【００２８】
次に、ステップＳ２０５において、物理面付けデータ作成部９は、レコード内ページ番号Ｐが１か否かを判定する。つまり、処理対象のページが、処理対象のレコードの先頭ページであるか否かを判定する。この判定の結果、処理対象のページが、処理対象のレコードの先頭ページであれば、ステップＳ２０６に進む。一方、処理対象のページが、処理対象のレコードの先頭ページでなければ、ステップＳ２０６を省略してステップＳ２０７に進む。ここでは、Ｂさんのレコードの先頭ページ５０１であるとして、ステップＳ２０６に進む。
【００２９】
ステップＳ２０６に進むと、ページ解析部１０は、レコード番号ＲのOutline entry７０６の先頭ページ位置（Dest）７１０に、レコード内ページ番号Ｐにおける物理ページ番号を記録する。例えば、Ｂさんのレコードの先頭ページ５０１は物理ページの４ページ目にあるので、ページ解析部１０は、OutLine hierarchy７０５のOutline entry B７０６ｂの先頭ページ位置（Dest）７１０に「４」と記録する。また、ページ解析部１０は、レコード番号ＲのOutline entry７０６の総ページ数（NP）７１１に、レコード番号Ｒの総ページ数を記録する。例えば、ページ解析部１０は、レコード番号ＲのOutline entry７０６の総ページ数（NP）７１１ｂに「３」と記録する。
【００３０】
次に、ステップＳ２０７において、物理面付けデータ作成部９は、図８のステップＳ８０２で決定された印刷方法が面付け印刷であるか否かを判定する。前述したように、面付け印刷とは、複数の論理ページを同一の物理ページ内に面付け配置する印刷のことを指す。面付け印刷は、ＮＵＰ（Ｎは自然数であり、１物理ページに面付けされる論理ページの数である。図５に示す例では４ＵＰとなる）と称されることもある。
この判定の結果、印刷方法が面付け印刷であればステップＳ２０８に進む。一方、印刷方法が面付け印刷でなければ、ステップＳ２０８、Ｓ２０９を省略してステップＳ２１０に進む。ここでは、面付け印刷の一種である串指し印刷が印刷方法として決定されたとしているので、ステップＳ２０８に進む。
【００３１】
ステップＳ２０８に進むと、ページ解析部１０は、レコード番号ＲのOutline entry７０６のページリスト（DestList）７１２に、レコード内ページ番号Ｐにおける物理ページ番号を追加記録する。例えば、Ｂさんのレコードの先頭ページ５０１、９０１は、物理ページの４ページ目にある。よって、OutLine hierarchy７０５のOutline entry B７０６のページリスト（DestList）７１２ｂに「４」と記録する。また、Ｂさんの２ページ目５０２、９０２の処理を行う場合には、OutLine hierarchy７０５のOutline entry B７０６のページリスト（DestList）７１２ｂに「１」と追記する。同様に、Ｂさんの３ページ目５０３、９０３の処理を行う場合には、OutLine hierarchy７０５のOutline entry B７０６のページリスト（DestList）７１２ｂに「２」と追記する。こうしてＢさんのレコード内のページと物理ページとの関係を示すページリスト（DestList）７１２ｂには、［４ １ ２］が記録され、ページリスト（DestList）７１２ｂの情報が完成する。同じようにＣさんのレコードに関してOutLine hierarchy７０５のOutline entry C７０６ｃのページリスト（DestList）７１２ｃには［３ ４ １］が記録される。このように、ページリスト（DestList）７１２を参照することによって、各レコードの各ページが実際にどの物理ページで印刷されるのかが印刷装置１２側で識別できるようになる。
【００３２】
次に、ステップＳ２０９において、物理面付けデータ作成部９は、レコード番号Ｒのレコード内の全てのページについて、データ７０８の内容を記録したかを判定する。この判定の結果、レコード内の全てのページについて、データ７０８の内容を記録した場合には、処理対象のレコードに関する"先頭ページ位置（Dest）７１０、総ページ数（NP）７１１、ページリスト（DestList）７１２"の作成が終了する。したがって、ステップＳ２１０に進む。一方、レコード内の全てのページについて、データ７０８の内容を記録していない場合は、ステップＳ２１１に進む。
【００３３】
ステップＳ２１０に進むと、物理面付けデータ作成部９は、ドキュメント内の処理対象の全てのレコードについて、データ７０８の内容を記録したかを判定する。この判定の結果、処理対象の全てのレコードについて、データ７０８の内容を記録した場合には、処理対象のレコードに関する"先頭ページ位置（Dest）７１０、総ページ数（NP）７１１、ページリスト（DestList）７１２"の作成は終了する。したがって、図１１のフローチャートを終了して、図１０のステップＳ８０４に進む。一方、処理対象の全てのレコードについて、データ７０８の内容を記録していない場合には、ステップＳ２１２に進む。
【００３４】
前述したようにしてステップＳ２０９からステップＳ２１１に進むと、物理面付けデータ作成部９は、レコード内ページ番号Ｐに「１」を加算して、次のレコード内ページ番号Ｐについて処理を行う。例えば、Ｂさんの１ページ目５０２、９０２の処理を行った後であれば、現在のレコード内ページ番号Ｐ（＝１）に「１」を加算した新たなレコード内ページ番号Ｐ（＝２）としてステップＳ２０４に進む。そして、Ｂさんの２ページ目５０２、９０２が、物理ページのどのページに該当するのかを求める。
【００３５】
また、前述したようにしてステップＳ２１０からステップＳ２１２に進むと、物理面付けデータ作成部９は、レコード番号Ｒに「１」を加算して、次のレコード番号Ｒについて処理を行う。例えば、Ｂさんのレコードの処理の後であれば、現在のレコード番号Ｒ（＝２）に「１」を加算した新たなレコード番号Ｒ（＝３）としてステップＳ２０３に進む。そして、Ｃさんのレコードに処理を移し、まず、Ｃさんの先頭ページについて処理を進める。
以上のように本実施形態では、例えば、ステップＳ８０３の処理を行うことにより印刷データ作成手段の一例が実現される。
【００３６】
図１０の説明に戻り、以上のようにしてステップＳ８０３の処理が終了したらステップＳ８０４に進む。
ステップＳ８０４に進むと、ホストＰＣ１００から印刷装置１２に、以上のようにして作成された物理面付けデータ（ＰＤＦデータ）が送信される。印刷装置１２は、物理面付けデータに基づいて印刷を行う。
印刷方法が面付け印刷でない場合、印刷装置１２は、Document Catalog７０１のPage tree７０２の下の階層にあるPage７０３から順に全ページを印刷する。
【００３７】
一方、複数のレコードのうちの特定レコードについて面付け印刷を行うことが指定されている場合、印刷装置１２は、本実施形態の特徴的な処理の一つとして、図１２のフローチャートに基づく印刷処理を実行する。図１２は、複数のレコードのうちの特定のレコードについて面付け印刷を行うことが指定されている場合における、印刷装置１２の処理の一例を説明するフローチャートである。尚、特定レコードは、１つのレコードであってもよいし、複数のレコードであってもよい。
まず、図１２のステップＳ１１０１において、印刷装置１２は、特定レコードのOutline entry７０６の情報を取り出す。ここでは、Ｂさんのレコードを印刷することが指定された場合を例に挙げて説明する。したがって、印刷装置１２は、Outline hierarchy７０５のOutline entry B７０６ｂの情報を取り出す。
【００３８】
次に、ステップＳ１１０２において、印刷装置１２は、特定レコードの総ページ数（NP）７１１を抽出する。ここでは、Ｂさんのレコードを印刷するので、Outline hierarchy７０５のOutline entry B７０６ｂ内の総ページ数（NP）７１１ｂ（すなわち「３」）を抽出する。これにより、印刷装置１２は、Ｂさんのレコードの総ページ数が３ページであると判断することができる。
【００３９】
次に、ステップＳ１１０３において、印刷装置１２は、ページ番号Ｐを「１」とする。
次に、ステップＳ１１０４において、印刷装置１２は、特定レコードのOutline hierarchy７０５のOutline entry７０６内に、ページリスト（DestList）７１２があるか否かを判定する。この判定の結果、ページリスト（DestList）７１２がある場合には、ステップＳ１１０５に進む。一方、ページリスト（DestList）７１２がない場合には、ステップＳ１１０８に進む。ここでは、ＢさんのレコードのOutline hierarchy７０５のOutline entry B７０６内には、ページリスト（DestList）７１２ｂが存在するので、ステップＳ１１０５に進む。
【００４０】
ステップＳ１１０５に進むと、印刷装置１２は、ページリスト（DestList）７１２の内容に従って、ページ番号Ｐのページの印刷を行う。ここでは、Ｂさんのレコードの先頭ページ５０１、９０１は、ページリスト（DestList）７１２ｂの値より、物理ページの４ページ目にあることが分かる。よって、印刷装置１２は、物理面付けデータ（ＰＤＦデータ）から、物理ページで４ページ目のデータを抽出し、抽出したデータに基づいて印刷を実行する。
【００４１】
また、Ｂさんのレコードの２ページ目５０２、９０２は、ページリスト（DestList）７１２ｂの値より、物理ページの１ページ目にあることが分かる。よって、印刷装置１２は、物理面付けデータ（ＰＤＦデータ）から、物理ページで１ページ目のデータを抽出し、抽出したデータに基づいて印刷を実行する。同様に、Ｂさんのレコードの３ページ目５０３、９０３については、物理ページで２ページ目のデータに基づいて印刷を実行する。
同様に、Ｃさんのレコードを印刷することが指定されている場合、OutLine hierarchy７０５のOutline entry C７０６ｃのDestList７１２ｃの値は［３ ４ １］である。よって、物理ページで３ページ目、４ページ目、１ページ目の印刷を行うことになる。
【００４２】
以上のようにしてステップＳ１１０５の処理が終了すると、ステップＳ１１０６に進む。ステップＳ１１０６に進むと、印刷装置１２は、特定レコード内の全てのページを印刷したか否かを判定する。この判定の結果、特定レコード内の全てのページを印刷した場合には、図１２のフローチャートによる処理（印刷処理）を終了する。一方、特定レコード内の全てのページを印刷していない場合には、ステップＳ１１０７に進む。
【００４３】
ステップＳ１１０７に進むと、印刷装置１２は、現在のページ番号Ｐに「１」を加算して、次のページの印刷処理に進む。例えば、Ｂさんのレコードの先頭ページ５０１、９０１の印刷が終わった場合には、現在のページ番号Ｐ（＝１）に「１」を加算した新たなページ番号Ｐ（＝２）としてステップＳ１１０４に進む。そして、２ページ目５０２、９０２について先頭ページ５０１、９０１と同様の印刷処理を行う。
【００４４】
前述したように、ステップＳ１１０４において、特定レコードのOutline hierarchy７０５のOutline entry７０６内に、ページリスト（DestList）７１２がないと判定された場合には、ステップＳ１１０８に進む。ステップＳ１１０８に進むと、印刷装置１２は、先頭ページ位置（Dest）７１０と、Page tree７０２とに従って、ページ番号Ｐの印刷を実行する。ここでは、ＢさんのレコードのOutline entry B７０６ｂにページリスト（DestList）７１２ｂがないと仮定して説明する。ページリスト（DestList）７１２ｂがないということは、面付け印刷を行わないということである。つまり、図４に示したように、用紙１枚に、レコードの１ページの情報を印刷することになる。
【００４５】
そこで、印刷装置１２は、ＢさんのレコードのOutline entry B７０６ｂ内の先頭ページ情報（Dest）７１０ｂを抽出する。この先頭ページ情報（Dest）７１０ｂは、物理ページの４ページ目を指しているので、印刷装置１２は、先頭ページとして、物理ページの４ページ目を印刷する。
そして、前述したステップＳ１１０６、Ｓ１１０７を処理して再びステップＳ１１０８に戻ると、処理対象のページを示す"Ｂさんのレコードのページ番号Ｐ"は「２」になる。
ここで、印刷装置１２は、以下の（１）式に従って、印刷すべき物理ページ番号を求める。
印刷すべき物理ページ番号＝（先頭ページの物理ページ番号）＋[（処理対象のページ番号Ｐ）−１]  ・・・（１）
【００４６】
ここでは、先頭ページの物理番号は、先頭ページ情報（Dest）７１０ｂより「４」であるので、ページ番号Ｐが「２」である場合には、以下のように、物理ページの５ページ目を印刷することになる。
先頭ページの物理ページ番号（＝４）＋処理対象のページ番号Ｐ（＝２）−１＝５
同様に、Ｂさんのレコードの３ページ目として物理ページの６ページを印刷することになる。
以上で、バリアブルデータを作成してから、印刷装置１２に物理面付けデータを送信して印刷するまでの処理の一例の説明を終了する。
【００４７】
以上のように本実施形態では、複数のレコードから構成される印刷データを生成するに際し、次の情報を生成して印刷データに含めるようにする。すなわち、各レコードの各ページと、そのページが実際に印刷される物理ページとを相互に対応付ける情報としてページリスト（DestList）７１２を生成する。このページリスト（DestList）７１２は、バリアブルデータの内容（例えばレコードの数や各レコードのページ数）と面付け印刷の方法とに基づいて生成される。
【００４８】
したがって、複数のレコードのうちの特定のレコードの印刷が指定された場合でも、そのレコードの各ページが、どの物理ページに印刷されるのかを判断することができるようになる。よって、その物理ページだけを印刷することにより、特定のレコードの印刷を印刷することができる。すなわち、どのような物理面付けされたバリアブルデータであっても、レコード毎にデータを取り出して正しく印刷することができるようになり、従来よりも無駄のない効率的な処理が可能となる。
【００４９】
（第２の実施形態）
次に、本発明の第２の実施形態について説明する。
前述した第１の実施形態では、１物理ページに複数ページが面付けされたバリアブルデータにおいてもレコード毎に印刷が可能になる。図１３は、第１の実施形態のようにしてＢさんのレコードを印刷した結果の一例を示す図である。
【００５０】
図１３の左側に示すように、第１の実施形態のようにすれば、Ｂさんのレコードについては全て印刷できるが、１物理ページに複数のレコードのページが面付けされ得るため、Ｂさんのレコード以外の他のレコード（の一部）が印刷物に含まれる。したがって、Ｂさんのレコードの部分のみを必要とする場合には、図１３の右側に示すように、Ｂさんのレコードの部分とそれ以外のレコードの部分とを分離することになる。このようにした場合、Ｂさんのレコード以外の部分は無駄になる。
【００５１】
そこで、本実施形態では、可及的に特定レコードのみを用紙（物理ページ）に印刷できるようにする。このように本実施形態と前述した第１の実施形態とは、バリアブル印刷データと、バリアブル印刷データの内容の一部と、バリアブル印刷データを作成する処理の一部と、特定レコードを印刷する処理の一部とが主として異なる。したがって、本実施形態の説明において、前述した第１の実施形態と同一の部分については詳細な説明を省略する。
【００５２】
図１４は、バリアブル印刷データの一例を示す図である。尚、本実施形態でも、バリアブル印刷データがＰＤＦデータである場合を例に挙げて説明する。
前述したようにＰＤＦは階層構造で成り立っており、Document Catalog１３０１は、その階層のルートにあたる。Page tree１３０２はページの情報をとりまとめる。ページ構成情報Page１３０３は、各ページの構成を表す。本実施形態の特徴の１つとなるForm Xobject１３０４は、各ページにおける中間データ（中間リソース）である。このForm Xobject１３０４は、元原稿の各ページの描画オブジェクトの状態をそのまま保持するようなデータであり、例えば、各レコードの各ページにおけるバリアブルデータ（例えば描画オブジェクト）の内容に基づいて生成される。どのForm Xobject１３０４がどのPage１３０３に属するかは、例えば、バリアブルデータの内容（例えば、レコードの数や各レコードのページ数）と、ユーザによって指定された面付け方法とに基づいて決定される。Xobject１３０５は、Form Xobject１３０４で再利用データとして使用される描画オブジェクトである。このXobject１３０５は、各ページで共通して使われている描画オブジェクトであり、再利用オブジェクトとも言われる。Xobject１３０５は、Page1からPage4までの全てのページから参照されている。
【００５３】
RecordTop page１３０６は、レコード毎の面付け印刷の際に、各レコードの各ページの位置・状態を保持する中間データであるForm Xobject１３０４をどのように縮小、移動等して面付け配置するかを示す中間データ構成情報である。このRecordTop page１３０６は、例えば、面付け印刷の方法と、バリアブルデータの内容（例えばレコードの数や各レコードのページ数）とに基づいて生成される。
Outline hierarchy１３０７は、各レコードの先頭ページの位置等を示す。Outline entry A１３０８ａ〜Outline entry E１３０８ｅは、夫々、Ａさん〜Ｅさんのレコードの先頭ページの位置、総ページ数等の情報をもつ。例えば、Outline entry B１３０８ｂの具体的なデータ１３０９には、先頭ページの位置（Dest）１３１０と、総ページ数（NP）１３１１とが含まれる。また、このデータ１３０９には、Form Xobject１３０４の位置のリストである中間データ位置リストDestFormList１３１２が含まれる。更に、このデータ１３０９には、中間データ構成情報RecordTop page１３０６の位置を示すページ構成情報位置DestTop１３１３が含まれる。尚、この他に、ＰＤＦ内のオブジェクト番号等の情報がデータ１３０９に含まれていてもよい。
【００５４】
図１５は、図５に示した印刷物の１ページ目の状態を模式的に示した図である。図１５に示す情報は、図１４に示したバリアブル印刷データの構造図のPage１３０３よりも下の階層の情報に対応する。
【００５５】
図５に示した例では、物理ページの１ページ目に、Ａさんのレコードの１ページ目Ａ１と、Ｂさんのレコードの２ページ目Ｂ２と、Ｃさんの３ページ目Ｃ３と、Ｅさんの１ページ目Ｅ１とが配置されている。それら各ページのＰＤＦの状態を示したのが、図１５である。Ａさんのレコードの１ページ目１４０１では、その１ページ目１４０１に含まれる各オブジェクトの情報がContentsＡ１内に保持され、そのオブジェクトとして使用されるイメージデータ等のデータがResourcesＡ１内に保持される。Ｂさんのレコードの２ページ目１４０２、Ｃさんのレコードの３ページ目１４０３、Ｅさんのレコードの１ページ目１４０４についても、同様のデータが保持される。
【００５６】
このような１物理ページに含まれる各ページ（１４０１〜１４０４）の状態を保持する中間データ（中間リソース）１３０４ａ〜１３０４ｄが生成される。RecordTop page １３０６ａは、それら中間データ１３０４ａ〜１３０４ｄを物理ページ（１ページ目）においてどのように縮小し、移動するか等の配置を定めている。元原稿のＡさんの１ページ目１４０１の中間データ（の状態）がForm Xobject１３０４ａであり、Ｂさんの２ページ目１４０２の中間データがForm Xobject１３０４ｂである。また、Ｃさんの３ページ目１４０３の中間データがForm Xobject１３０４ｃであり、Ｅさんの１ページ目１４０４の中間データがForm Xobject１３０４ｄである。
【００５７】
図１６は、Ｂさんのレコードのみを印刷する場合の物理面付けデータの一例を概念的に示す図である。
RecordTop page１３０６ｂは、Ｂさんのレコードの各ページを示す中間データを物理ページにどう配置するかを記述したデータである。RecordTop page１７０１は、RecordTop page１３０６ｂのContentsを、Ｂさんのレコード用に、Ｂさんのレコードの各ページのForm Xobject１３０４ｂ、１３０４ｅ、１３０４ｆに合わせて修正したものである。また、Ｂさんの１ページ目の中間データがForm Xobject１３０４ｆであり、Ｂさんの２ページ目の中間データがForm Xobject１３０４ｂであり、Ｂ酸の３ページ目の中間データがForm Xobject１３０４ｅである。
【００５８】
次に、図１０のフローチャートを参照しながら、バリアブルデータを作成して印刷する際のバリアブルデータ印刷システムの全体処理の一例を説明する。
まず、第１の実施形態と同様に、ステップＳ８０１において、バリアブルデータ作成部８は、バリアブルデータを作成し、ステップＳ８０２において、印刷方法（面付け方法）を決定する。以上のように本実施形態では、例えば、ステップＳ８０１の処理を行うことによりバリアブルデータ作成手段の一例が実現され、ステップＳ８０２の処理を行うことにより決定手段の一例が実現される。
【００５９】
次に、ステップＳ８０３において、物理面付けデータ作成部９とページ解析部１０は、印刷データ（物理面付けデータ）を作成する。図１７は、図１０のステップＳ８０３のバリアブル印刷データ作成処理の詳細の一例を説明するフローチャートである。尚、前述したように、ここでは、物理面付けデータがＰＤＦデータである場合を例に挙げて説明する。図１７における処理の主体は、全体としては、物理面付けデータ作成部９であるが、ステップＳ１５０４等、対象となるページが物理ページのどこ（何ページ目）に印刷されるか等の解析はページ解析部１０が行う。
【００６０】
まず、図１７のステップＳ１５００において、物理面付けデータ作成部９は、前記ステップＳ８０２で決めた印刷方法を確認する。ここでは、図５に示したような串指し印刷が印刷方法として決定されたとする。したがって、ここでは、１レコードが３ページである５レコード分のバリアブルデータを、串指し印刷で４ＵＰ（用紙１枚に４ページ分を面付け）するような印刷データが作成されることになる。
【００６１】
次に、ステップＳ１５０１において、物理面付けデータ作成部９は、中間データ（中間リソース）１３０４と、物理面付けデータ（ＰＤＦデータ）を作成する。
具体的に説明すると、物理面付けデータ作成部９は、図１４に示したようなバリアブル印刷データ（ＰＤＦデータ）のうち、データ１３０９を除く部分を作成する。第１の実施形態では、物理面付けした状態をPage７０３に保持していた。このため、各レコードの情報のみを取り出す事が出来なかった。これに対して、本実施形態では、元原稿の各レコードの情報を中間データで残してそれらの組み合わせで物理面付け状態を記載する。
【００６２】
ＰＤＦは階層構造で成り立ち、物理面付けデータ作成部９は、その階層のルートにあたるDocument Catalog１３０１と、ページの情報をとりまとめるPage tree１３０２と、各ページを指すPage１３０３とを記載する。Page１３０３は、本実施形態の特徴の一つとなるページ内の中間データであるForm Xobject１３０４等の組み合わせにより、物理面付けの縮小、位置の移動等の配置情報を持つ。
【００６３】
Form Xobject１３０４は、元原稿の各ページの描画オブジェクトの状態をそのまま保持するようなデータである。
る。例えば、図５に示した例では、物理面付けされた先頭ページ５０１に、Ａさんのレコードの１ページ目Ａ１、Ｂさんのレコードの２ページ目Ｂ２、Ｃさんの３ページ目Ｃ３、及びＥさんの１ページ目Ｅ１が配置されている。前述したようにＡさんのレコードの１ページ目１４０１に含まれる各オブジェクトの情報がContentsＡ１内に記述され、そのオブジェクトで使用されるイメージデータ等のデータがResourcesＡ１内に保持される（図１５を参照）。Ｂさんのレコードの２ページ目１４０２、Ｃさんのレコードの３ページ目１４０３、Ｅさんのレコードの１ページ目１４０４についても同様である。
【００６４】
このような元原稿のＡさんの１ページ目１４０１の中間データ（の状態）がForm Xobject１３０４ａであり、Ｂさんの２ページ目１４０２の中間データがForm Xobject１３０４ｂである。また、Ｃさんの３ページ目１４０３の中間データがForm Xobject１３０４ｃであり、Ｅさんの１ページ目１４０４の中間データがForm Xobject１３０４ｄである。
【００６５】
Ａさんの１ページ目１４０１の各オブジェクトの情報（ContentsＡ１）、そのオブジェクトで使用されるデータの情報（ResourcesＡ１）が、中間データであるForm Xobject１３０４ａに残っている。このため、レコード毎の印刷の際に、各オブジェクトを描画するのに必要な情報をレコード毎に個別に取り出す事ができる。物理ページ（用紙）の１ページ目の配置を示すRecordTop page １３０６ａには、中間データ１３０４をどのように面付けするのか（縮小や位置の移動等をどのように行うか）を示す情報が記載される。RecordTop page １３０６ａは、図１４のPage1の情報である。この場合、Ａさんの１ページ目の中間データ１３０４ａは、１ページ目の用紙の左上に縮小率５０％で描画され、Ｂさんの２ページ目の中間データ１３０４ｂは、用紙の右上に縮小率５０％で描画される。同様に、Ｃさんの３ページ目の中間データ１３０４ｃは、用紙の左下に縮小率５０％で描画され、Ｅさんの１ページ目の中間データ１３０４ｄは、用紙の右下に縮小率５０％で描画される。
【００６６】
再利用データとして使用されるオブジェクトであるXobject１３０５は、各ページで共通して使われている描画オブジェクトであり、バリアブルデータの再利用オブジェクトとも言われる。Xobject１３０５は、中間データ（中間リソース）であるForm Xobject１３０４等から参照され、間接的にPage1からPage4までの全てのページから参照される。
以上のように本実施形態では、例えば、ステップＳ１５０１の処理を行うことにより中間データ作成手段の一例が実現される。
【００６７】
図１７の説明に戻り、ステップＳ１５０２において、物理面付けデータ作成部９は、レコード番号Ｒを初期化して「１」とする。
次に、ステップＳ１５０３において、物理面付けデータ作成部９は、レコード内ページ番号Ｐを初期化して「１」とする。
次に、ステップＳ１５０４において、ページ解析部１０は、レコード番号Ｒのレコードの、レコード内ページ番号Ｐのページが、最終的にどの中間リソースになるかを求める。例えば、Ｂさんのレコードの先頭ページ５０１は、オブジェクト番号２２の中間リソースであるForm Xobject１３０４ｆになる。
【００６８】
次に、ステップＳ１５０５において、物理面付けデータ作成部９は、レコード内ページ番号Ｐが１か否かを判定する。レコード内ページ番号Ｐが１かどうか判定する。つまり、つまり、処理対象のページが、処理対象のレコードの先頭ページであるか否かを判定する。この判定の結果、処理対象のページが、処理対象のレコードの先頭ページであれば、ステップＳ１５０６に進む。一方、処理対象のページが、処理対象のレコードの先頭ページでなければ、ステップＳ１５０６を省略してステップＳ１５０７に進む。ここでは、Ｂさんのレコードの先頭ページ５０１であるとして、ステップＳ１５０６に進む。
【００６９】
ステップＳ１５０６に進むと、ページ解析部１０は、レコードＲのOutline entry１３０８の先頭ページ情報（Dest）に、レコード内ページ番号Ｐにおける物理ページ番号を記録する。例えば、Ｂさんのレコードの先頭ページ５０１は物理ページの４ページ目にあるので、ページ解析部１０は、OutLine hierarchy１３０７のOutline entry B１３０８ｂの先頭ページ位置（Dest）１３１０に「４」と記録する。また、ページ解析部１０は、レコード番号ＲのOutline entry１３０８の総ページ数（NP）に、レコード番号Ｒの総ページ数を記録する。例えば、ページ解析部１０は、レコード番号ＲのOutline entry１３０８ｂの総ページ数（NP）１３１１に「３」と記録する。
【００７０】
次に、ステップＳ１５０７において、物理面付けデータ作成部９は、図８のステップＳ８０２で決定された印刷方法が面付け印刷であるか否かを判定する。前述したように、面付け印刷とは、複数の論理ページを同一の物理ページ内に面付け配置する印刷のことを指す。
この判定の結果、印刷方法が面付け印刷であればステップＳ１５０８に進む。一方、印刷方法が面付け印刷でなければ、ステップＳ１５０８、Ｓ１５０９を省略してステップＳ１５１０に進む。ここでは、面付け印刷の一種である串指し印刷が印刷方法として決定されたとしているので、ステップＳ１５０８に進む。
【００７１】
ステップＳ１５０８に進むと、物理面付けデータ作成部９は、次の処理を行う。すなわち、物理面付けデータ作成部９は、レコード番号ＲのレコードのOutline entry１３０８に含まれる中間データ位置リストであるDestFormList１３１２に、ページ番号Ｐの中間リソースのオブジェクト番号を追加記録する。Ｂさんのレコードの先頭ページ５０１、９０１に対応する中間データ（中間リソース）は、オブジェクト番号２２のForm Object B1１３０４ｆである。したがって、ページ解析部１０は、Outline hierarchy１３０７のOutline entry B１３０８ｂのDestFormList１３１２に「２２」と記録する。また、Ｂさんのレコードの２ページ目５０２、９０２であれば、OutLine hierarchy１３０７のOutline entry B１３０８ｂのDestFormList１３１２に「１１」と追記する。同様にＢさんのレコードの３ページ目５０３、９０３であれば、OutLine hierarchy１３０７のOutline entry B１３０８ｂのDestFormList１３１２に「１５」と追記する。こうしてＢさんのレコード内のページと中間リソースとの関係を示す中間データ位置リスト（DestFormList１３１２）には［２２ １１ １５］が記録され、中間データ位置リスト（DestFormList１３１２）が完成する。このような中間データ位置リスト（DestFormList１３１２）により、印刷装置１２側で、各レコードの各ページにおける中間データ（Form Xobject１３０４）を識別することができる。
【００７２】
次に、ステップＳ１５０９において、物理面付けデータ作成部９は、レコード内ページ番号Ｐが「１」（Ｐ＝１）の場合に、次の処理を行う。すなわち、物理面付けデータ作成部９は、レコード番号Ｒのレコードの中間リソースをまとめるページ構成情報Page Contentsのオブジェクト番号をDestTopに記録する。ここでは、ページ解析部１０は、Ｂさんのレコードの中間リソースをまとめるページ構成情報Page ContentsであるRecordTop page１３０６ｂのオブジェクト番号は「１００」である（図１４を参照）。したがって、ページ解析部１０は、OutLine hierarchy１３０７のOutline entry B１３０８ｂのDestTop１３１３に「１００」と記録する。尚、レコード内ページ番号Ｐが「１」でない場合には、ステップＳ１５０９の処理は行われずに、ステップＳ１５１０に進む。このようにDestTop１３１３によりRecordTop page１３０６ｂが特定されることにより、印刷装置１２側で、各レコードにおける中間データ（Form Xobject１３０４）の実際に印刷される物理ページでの配置を識別することができる。
【００７３】
次に、ステップＳ１５１０に進むと、物理面付けデータ作成部９は、レコード番号Ｒのレコード内の全てのページについて、データ１３０９の内容を記録したかを判定する。この判定の結果、この判定の結果、レコード内の全てのページについて、データ１３０９の内容を記録した場合には、処理対象のレコードに関する"Dest１３１０、NP１３１１、DestFormList１３１２、DestTop１３１３"の作成が終了する。したがって、ステップＳ１５１１に進む。一方、レコード内の全てのページについて、データ１３０９の内容を記録していない場合には、終了していない場合は、ステップＳ１５１２に進む。
【００７４】
ステップＳ１５１１に進むと、物理面付けデータ作成部９は、ドキュメント内の処理対象の全てのレコードについて、データ１３０９の内容を記録したかを判定する。この判定の結果、ドキュメント内の処理対象の全てのレコードについて、データ１３０９の内容を記録した場合には、処理対象のレコードに関する"Dest１３１０、NP１３１１、DestFormList１３１２、DestTop１３１３"の作成は終了する。したがって、図１７のフローチャートを終了して、図１０のステップＳ８０４に進む。一方、処理対象の全てのレコードについて、データ１３０９の内容を記録していない場合には、ステップＳ１５１３に進む。
【００７５】
前述したようにしてステップＳ１５１０からステップＳ１５１２に進むと、物理面付けデータ作成部９は、レコード内ページ番号Ｐに「１」を加算して、次のレコード内ページ番号Ｐについて処理を行う。例えば、Ｂさんの１ページ目５０２、９０２の処理を行った後であれば、現在のレコード内ページ番号Ｐ（＝１）に「１」を加算した新たなレコード内ページ番号Ｐ（＝２）としてステップＳ１５０４に進む。そして、Ｂさんの２ページ目５０２、９０２が、どの中間データ（中間リソース）に該当するのかを求める。
【００７６】
また、前述したようにしてステップＳ１５１１からステップＳ１５１３に進むと、物理面付けデータ作成部９は、レコード番号Ｒに「１」を加算して、次のレコード番号Ｒについて処理を行う。例えば、Ｂさんのレコードの処理の後であれば、現在のレコード番号Ｒ（＝２）に「１」を加算した新たなレコード番号Ｒ（＝３）としてステップＳ１５０３に進む。そして、Ｃさんのレコードに処理を移し、まず、Ｃさんの先頭ページについて処理を進める。
以上のように本実施形態では、例えば、ステップＳ８０３の処理を行うことにより印刷データ作成手段の一例が実現される。
【００７７】
図１０の説明に戻り、以上のようにしてステップＳＳ８０３の処理が終了したらステップＳ８０４に進む。
ステップＳ８０４に進むと、ホストＰＣ１００から印刷装置１２に、以上のようにして作成された物理面付けデータ（ＰＤＦデータ）が送信される。印刷装置１２は、物理面付けデータに基づいて印刷を行う。
印刷方法が面付け印刷でない場合、印刷装置１２は、Document Catalog１３０１のPage tree１３０２の下の階層にあるPage１３０３から順に全ページを印刷する。
【００７８】
一方、複数のレコードのうちの特定レコードについて面付け印刷を行うことが指定されている場合、印刷装置１２は、本実施形態の特徴的な処理の一つとして、図１８のフローチャートに基づく印刷処理を実行する。図１８は、複数のレコードのうちの特定のレコードについて面付け印刷を行うことが指定されている場合における、印刷装置１２の処理の一例を説明するフローチャートである。尚、特定レコードは、１つのレコードであってもよいし、複数のレコードであってもよい。
【００７９】
まず、図１８のステップＳ１６０１において、印刷装置１２は、特定レコードのOutline entry１３０８の情報を取り出す。ここでは、Ｂさんのレコードのみ印刷することが指定された場合を例に挙げて説明する。したがって、印刷装置１２は、Outline hierarchy１３０７のOutline entry B１３０８ｂの情報を取り出す。
【００８０】
次に、ステップＳ１６０２において、印刷装置１２は、特定レコードの総ページ数（NP）７１１を抽出する。ここでは、Ｂさんのレコードを印刷するので、Outline hierarchy１３０７のOutline entry B１３０８ｂ内の総ページ数（NP）１３１１（すなわち「３」）を抽出する。これにより、印刷装置１２は、Ｂさんのレコードの総ページ数が３ページであると判断することができる。
【００８１】
次に、ステップＳ１６０３において、印刷装置１２は、ページ番号Ｐを「１」とする。
次に、ステップＳ１６０４において、印刷装置１２は、特定レコードのOutline hierarchy１３０７のOutline entry１３０８内に、中間データ位置リスト（DestFormList）があるか否かを判定する。この判定の結果、中間データ位置リスト（DestFormList）がある場合には、ステップＳ１６０５に進む。一方、中間データ位置リスト（DestFormList）がない場合には、後述するステップＳ１６０８に進む。ここでは、ＢさんのOutline hierarchy１３０７のOutline entry B１３０８ｂ内にはDestFormList１３１２が存在するので、ステップＳ１６０５に進む。
【００８２】
ステップＳ１６０５に進むと、印刷装置１２は、DestTop１３１３とDestFormList１３１２の内容に従ってページ番号Ｐのページの印刷を行う。ここでは、Ｂさんのレコードの印刷配置を記述した中間データ構成情報RecordTop page１３０６ｂは、オブジェクト番号１００にあることが分かる。また、Ｂさんのレコードの先頭ページ５０１、９０１の中間データは、Outline entry B１３０８ｂのDestFormList１３１２により、オブジェクト番号２２の中間データ（Form Xobject１３０４ｆ）であることが分かる。同様にＢさんのレコードの２ページ目５０２、９０２の中間データは、Outline entry B１３０８ｂのDestFormList１３１２により、オブジェクト番号１１の中間データ（Form Xobject１３０４ｂ）であることが分かる。更にＢさんのレコードの３ページ目５０３、９０３の中間データは、Outline entry B１３０８のDestFormList１３１２により、オブジェクト番号１５の中間データ（Form Xobject１３０４ｅ）であることが分かる。
【００８３】
そして、印刷装置１２は、RecordTop page１３０６ｂ内のContentsのPage1、Page2、Page3にこれらの中間データを順に割り当てる。具体的に説明すると、RecordTop page１３０６ｂ内の/Page1を/B1（Form Xobject B1１３０４ｆ）に、/Page2を/B2（Form Xobject B2１３０４ｂ）に書き換える。また、/Page3を/B3（Form Xobject B3１３０４ｅ）に置き換える。こうしてRecordTop page１３０６ｂは、RecordTop page１７０１に変換される（図１６を参照）。
そして、印刷装置１２は、RecordTop page１７０１に従って、Ｂさんのレコードを印刷する。こうしてＢさんのレコード内の全てのページが印刷される。
【００８４】
以上のようにしてステップＳ１６０５の処理が終了すると、ステップＳ１６０６に進む。ステップＳ１６０６に進むと、印刷装置１２は、特定レコード内の全てのページを印刷したか否かを判定する。この判定の結果、特定レコード内の全てのページを印刷した場合には、図１８のフローチャートによる処理（印刷処理）を終了する。一方、特定レコード内の全てのページを印刷していない場合には、ステップＳ１６０７に進む。
【００８５】
ステップＳ１６０７に進むと、印刷装置１２は、現在のページ番号Ｐに「１」を加算して、次のページの印刷処理に進む。例えば、Ｂさんのレコードの先頭ページ５０１、９０１の印刷が終わった場合には、現在のページ番号Ｐ（＝１）に「１」を加算した新たなページ番号Ｐ（＝２）としてステップＳ１６０４に進む。そして、２ページ目５０２、９０２について先頭ページ５０１、９０１と同様の印刷処理を行う。
【００８６】
また、ステップＳ１６０４において、特定レコードのOutline hierarchy１３０７のOutline entry１３０８内に、中間データ位置リスト（DestFormList）がないと判定された場合には、ステップＳ１６０８に進む。ステップＳ１６０８に進むと、印刷装置１２は、先頭ページ位置（Dest）１３１０と、Page tree１３０２とに従って、ページ番号Ｐの印刷を実行する。ここでは、ＢさんのレコードのOutline entry B１３０８ｂに中間データ位置リスト（DestFormList）１３１２がないと仮定して説明する。中間データ位置リスト（DestFormList）１３１２がないということは、面付け印刷を行わないということである。つまり、図４に示したように、用紙１枚に、レコードの１ページの情報を印刷することになる。
【００８７】
そこで、印刷装置１２は、ＢさんのレコードのOutline entry B１３０８ｂ内の先頭ページ情報（Dest）１３１０を抽出する。この先頭ページ情報（Dest）１３１０は、物理ページの４ページ目を指しているので、印刷装置１２は、先頭ページとして、物理ページの４ページ目を印刷する。
そして、前述したステップＳ１６０６、Ｓ１６０７を処理して再びステップＳ１６０８に戻ると、処理対象のページを示す"Ｂさんのレコードのページ番号Ｐ"は「２」になる。
【００８８】
ここで、印刷装置１２は、前述した（１）式に従って、印刷すべき物理ページ番号を求める。
ここでは、先頭ページの物理ページ番号は、先頭ページ情報（Dest）１３１０より「４」であるので、ページ番号Ｐが「２」である場合には、以下のように、物理ページの５ページ目を印刷することになる。
同様に、Ｂさんのレコードの３ページ目として物理ページの６ページを印刷することになる。
【００８９】
以上で、バリアブルデータを作成してから、印刷装置１２に物理面付けデータを送信して印刷するまでの処理の一例の説明を終了する。
【００９０】
以上のように本実施形態では、複数のレコードから構成される印刷データを生成するに際し、次の情報を生成して印刷データに含めるようにする。すなわち、各レコードの各ページの描画オブジェクトの状態を表す中間データであるForm Xobject１３０４を生成する。また、各レコードの各ページにおける中間データ（Form Xobject１３０４）を識別するためのデータ位置リスト（DestFormList）１３１２を生成する。また、各レコードのおける中間データ（Form Xobject１３０４）を物理ページ（用紙）でどのように配置するかを示す中間データ構成情報（RecordTop page１３０６）を生成する。
【００９１】
したがって、複数のレコードのうちの特定のレコードの印刷が指定された場合でも、その特定のレコードにおける中間データのみを取り出し、その特定のレコードにおけるオブジェクトだけを印刷することができる。したがって、第１の実施形態よりも更に無駄のない効率的な処理が可能となる。
【００９２】
（第１の変形例）
前述した第２の実施形態では、バリアブル印刷データの印刷を図１８のフローチャートに従って処理している。ステップＳ１６０５では、DestTop１３１３とDestFormList１３１２とに基づいて、ページ番号Ｐのページを印刷している。しかしながら、DestTop１３１３がない場合は、ページ構成情報Page１３０３を代用してもよい。
【００９３】
図１４において物理面付けデータ（バリアブル印刷データ）の１ページを示すPage1には、元原稿の各レコードの各ページに対応する中間リソースが存在している。すなわち、Page1には、Form Xobject A1から順にForm Xobject B2、Form Xobject C3、Form Xobject E1というように元原稿の各レコードの各ページに対応する中間リソースが存在している。本変形例では、Form Xobject１３０４によって、印刷装置１２側で、バリアブルデータの全体（全てのレコード）を、ユーザによって指定された面付け方法で印刷する場合に各物理ページに面付けされるバリアブルデータを識別できる。そこで、本変形例では、例えば、Ｂさんのレコードのみを印刷する際には、Page1のコンテンツの中間リソースの部分をDestFormList１３１２に従って順に置き換えて印刷する。つまり、Form Xobject A1をForm Xobject B1に、Form Xobject B2をForm Xobject B2に、Form Xobject C3をForm Xobject B3に置き換える。Form Xobject E1に対応するForm Xobjectはないので、Form Xobject E1を削除する。こうして置き換えたPage1の内容に従ってＢさんのみのレコードを印刷する。
このように、レコード毎に中間データを組み合わせるためのRecordTop page１３０６、DestTop１３１３がバリアブル印刷データ内にない場合でも、第２の実施形態と同様の効果が得られる。
【００９４】
（第２の変形例）
前述した各実施形態では、バリアブル印刷データの印刷を印刷装置１２で処理する例を示した。しかしながら、ホストＰＣ１００の"印刷ジョブを管理するモジュール"でバリアブル印刷データを処理してもよい。例えば、Ｂさんのレコードのみの印刷が指示されると、ホストＰＣは、Ｂさんの印刷データ（ＰＤＦデータ）のみを含む印刷ジョブに印刷ジョブを変更して印刷装置１２に送信してもよい。このようにしても、前述した第１、第２の実施形態と同様の効果が得られる。
【００９５】
（本発明の他の実施形態）
前述した本発明の実施形態における印刷制御装置を構成する各手段、並びに印刷制御方法の各ステップは、コンピュータのＲＡＭやＲＯＭなどに記憶されたプログラムが動作することによって実現できる。このプログラム及び前記プログラムを記録したコンピュータ読み取り可能な記録媒体は本発明に含まれる。
【００９６】
また、本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
【００９７】
尚、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム（実施形態では図１０〜図１２、図１７、１８に示すフローチャートに対応したプログラム）を、システムあるいは装置に直接、あるいは遠隔から供給するものを含む。そして、そのシステムあるいは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
【００９８】
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【００９９】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【０１００】
プログラムを供給するための記録媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷなどがある。また、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などもある。
【０１０１】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【０１０２】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【０１０３】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０１０４】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【０１０５】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
【０１０６】
尚、前述した各実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【図面の簡単な説明】
【０１０７】
【図１】本発明の第１の実施形態を示し、バリアブルデータ印刷システムのハードウェア構成の一例を示す図である。
【図２】本発明の第１の実施形態を示し、バリアブルデータ（印刷データ）をレコード毎に印刷することができるようにするためのホストＰＣにおける機能構成の一例を示す図である。
【図３】本発明の第１の実施形態を示し、レコードの一例を概念的に示す図である。
【図４】本発明の第１の実施形態を示し、図３に示すレコードにおける１論理ページを１物理ページに印刷した場合の印刷物を概念的に示す図である。
【図５】本発明の第１の実施形態を示し、串指し印刷を行った場合の印刷物の一例を概念的に示す図である。
【図６】本発明の第１の実施形態を示し、串指し印刷以外の面付け印刷を行った場合の印刷物の一例を概念的に示す図である。
【図７】本発明の第１の実施形態を示し、図５に示したような印刷物を得るためのバリアブル印刷データの一例を示す図である。
【図８】本発明の第１の実施形態を示し、バリアブルデータの一例を示す図である。
【図９】本発明の第１の実施形態を示し、データベースに格納されているレコード情報の一例を示す図である。
【図１０】本発明の第１の実施形態を示し、バリアブルデータを作成して印刷する際のバリアブルデータ印刷システムの全体処理の一例を説明するフローチャートである。
【図１１】本発明の第１の実施形態を示し、図１０のステップＳ８０３のバリアブル印刷データ作成処理の詳細の一例を説明するフローチャートである。
【図１２】本発明の第１の実施形態を示し、複数のレコードのうちの特定のレコードについて面付け印刷を行うことが指定されている場合における、印刷装置の処理の一例を説明するフローチャートである。
【図１３】本発明の第２の実施形態を示し、第１の実施形態のようにしてＢさんのレコードを印刷した結果の一例を示す図である。
【図１４】本発明の第２の実施形態を示し、バリアブル印刷データの一例を示す図である。
【図１５】本発明の第２の実施形態を示し、図５に示した印刷物の１ページ目の状態を模式的に示した図である。
【図１６】本発明の第２の実施形態を示し、Ｂさんのレコードのみを印刷する場合の物理面付けデータの一例を概念的に示す図である。
【図１７】本発明の第２の実施形態を示し、図１０のステップＳ８０３のバリアブル印刷データ作成処理の詳細の一例を説明するフローチャートである。
【図１８】本発明の第２の実施形態を示し、複数のレコードのうちの特定のレコードについて面付け印刷を行うことが指定されている場合における、印刷装置１２の処理の一例を説明するフローチャートである。
【符号の説明】
【０１０８】
８  バリアブルデータ作成部
９  物理面付けデータ作成部
１０  ページ解析部
１２  印刷装置
１００  ホストＰＣ
７１０、１３１０  先頭ページ位置
７１１、１３１１  総ページ数
７１２  ページリスト
１３０４  中間データ
１３１２  中間データ位置リスト
１３１３  ページ構成情報位置
【図１】
2010157099.tif 000003
【図２】
2010157099.tif 000004
【図３】
2010157099.tif 000005
【図４】
2010157099.tif 000006
【図５】
2010157099.tif 000007
【図６】
2010157099.tif 000008
【図７】
2010157099.tif 000009
【図８】
2010157099.tif 000010
【図９】
2010157099.tif 000011
【図１０】
2010157099.tif 000012
【図１１】
2010157099.tif 000013
【図１２】
2010157099.tif 000014
【図１３】
2010157099.tif 000015
【図１４】
2010157099.tif 000016
【図１５】
2010157099.tif 000017
【図１６】
2010157099.tif 000018
【図１７】
2010157099.tif 000019
【図１８】
2010157099.tif 000020