説明

印刷制御装置、印刷制御方法、及びコンピュータプログラム

【課題】バリアブルデータの面付け印刷を行う場合でも、特定のレコードの印刷を従来よりも確実に行えるようにする
【解決手段】複数のレコードから構成される印刷データを生成するに際し、次の情報を生成して印刷データに含めるようにする。すなわち、各レコードの各ページと、そのページが実際に印刷される物理ページとを相互に対応付ける情報としてページリスト(DestList)712を、各レコードのページ数と面付け印刷の方法とに基づいて生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、印刷制御装置、印刷制御方法、及びコンピュータプログラムに関し、特に、複数ページのバリアブルデータを面付け印刷するために用いて好適なものである。
【背景技術】
【0002】
バリアブルデータは、例えば、表紙や本文等の固定コンテンツと、レコード毎に異なる可変コンテンツとからなる。レコードとは、個人等を指す個別のデータでありデータベース等にその情報が格納されている。
バリアブルデータを印刷する際には、固定コンテンツと、データベースから取り出した"レコードに応じた可変コンテンツ"とを組み合わせて印刷を行う。また、バリアブルデータを印刷する際には、用紙料金やメンテナンス料を削減するために、複数ページ分のデータを同一の用紙に割りつけて印刷を行うことが多い。例えば、A3の用紙に複数枚のはがきサイズの印刷や、複数枚のチケットの印刷を行った後、印刷物を断裁する。
【0003】
製本印刷時の物理面付けデータとは、原稿文書を面付けして印刷するのに必要な全ての情報を含むデータである。従来、POD(プリント・オン・デマンド)で物理面付けデータを作成する際には、原稿文書の各ページをどこに面付けするかをユーザの指定に合わせるようにしていた。具体的に従来は、ユーザによって指定された面付け情報を反映した物理面付けデータを面付けアプリケーションソフトで作成した後に、その物理面付けデータを印刷装置に送信して印刷するようにしていた(特許文献1を参照)。
【0004】
ところで、印刷データのフォーマットの一例としてPDF(Portable Document Format)がある。バリアブル規格のPDFでは、固定コンテンツと、レコード毎の可変コンテンツとを順に合成した物理面付けデータとなる。
一方、バリアブルデータの印刷では、特定のレコードのみを取り出した印刷を行えるようにすることが必須である。例えば、特定のレコードの試し印刷や追加印刷を行ったり、本社で作成したデータのうち支社のレコードを指定して印刷を行ったりする等、特定のレコードのみを取り出した印刷に多くの需要があるからである。そのため、前述したバリアブル規格のPDFでは、各レコードの先頭ページの情報をPDF内に持っている。
【0005】
【特許文献1】特開平11−99723号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかしながら、前述した特許文献1に記載の技術では、バリアブルデータをレコード毎に印刷するということができない。また、前述したバリアブル規格のPDFでは、複数の論理ページを一枚の物理ページ(用紙)に印刷するような面付け印刷(以下の説明では必要に応じてNUP印刷と称する)の際にバリアブルデータの各レコードの印刷位置が分からない。そのため、特定のレコードのみの印刷を行うことができないという問題がある。
【0007】
図3は、レコードの一例を概念的に示す図である。図3では、1レコードが3ページからなるバリアブルデータで、AさんからEさんの5レコードが存在する例である。図3に示すバリアブルデータの1ページ(1論理ページ)を、1枚の用紙(1物理ページ)に印刷すると、図4に示すような印刷物が得られる。図4は、図3に示すレコードにおける1論理ページを1物理ページに印刷した場合の印刷物を概念的に示す図である。
【0008】
このように1論理ページを1物理ページに印刷する場合には、各レコードの先頭ページと総ページ数(図3、図4に示す例では3ページ)とが分かれば、各レコードを個別に印刷することが可能である。Bさんのレコードを印刷する場合は、Bさんの先頭ページから3ページ分を印刷すればよい。
【0009】
次に、複数のページを一枚の用紙に面付け印刷する場合を考える。図5は、串指し印刷を行った場合の印刷物の一例を概念的に示す図である。図5では、4ページ分を一枚の用紙にカット&スタック(串刺し印刷)で印刷した場合を例に挙げて示している。図5において、Bさんのレコードの先頭ページ501は4枚目に、2ページ目502は1枚目に、3ページ目503は2枚目に夫々存在する。しかしながら、前述したバリアブル規格のPDFでは、先頭ページ501の情報しかないために、Bさんのレコードの全ての情報を印刷することができないという問題がある。このような問題は、特にカット&スタック(串刺し印刷)に限ったものではなく、複数のページを一枚の用紙に印刷するような面付け印刷(NUP印刷)を行った場合に共通する問題である。
図6は、串指し印刷以外の面付け印刷を行った場合の印刷物の一例を概念的に示す図である。図6に示す例では、Bさんのレコードの先頭ページ601は1枚目に、2ページ目602と3ページ目603は2枚目に存在する。しかしながら、前述したバリアブル規格のPDFでは、先頭ページ601の情報しかないため、図5に示したのと同様に、Bさんのレコードの全ての情報を印刷することができないという問題が生じる。
【0010】
本発明は、このような問題点に鑑みてなされたものであり、バリアブルデータの面付け印刷を行う場合でも、特定のレコードの印刷を従来よりも確実に行えるようにすることを目的とする。
【課題を解決するための手段】
【0011】
本発明の印刷制御装置は、レコードによって不変の固定コンテンツと、レコードに応じて異なる可変コンテンツとを含むバリアブルデータを作成するバリアブルデータ作成手段と、複数ページの前記バリアブルデータを1物理ページに面付けする面付け方法を、ユーザによる操作に基づいて決定する決定手段と、前記複数ページのバリアブルデータを、前記決定手段により決定された面付け方法で1物理ページに面付けして印刷を行うための印刷データを作成する印刷データ作成手段と、を有し、前記印刷データ作成手段は、各レコードの各ページを識別するための情報を含む印刷データを作成することを特徴とする。
【0012】
本発明の印刷制御方法は、レコードによって不変の固定コンテンツと、レコードに応じて異なる可変コンテンツとを含むバリアブルデータを作成するバリアブルデータ作成ステップと、複数ページの前記バリアブルデータを1物理ページに面付けする面付け方法を、ユーザによる操作に基づいて決定する決定ステップと、前記複数ページのバリアブルデータを、前記決定ステップにより決定された面付け方法で1物理ページに面付けして印刷を行うための印刷データを作成する印刷データ作成ステップと、を有し、前記印刷データ作成ステップは、各レコードの各ページを識別するための情報を含む印刷データを作成することを特徴とする。
【0013】
本発明のコンピュータプログラムは、前記印刷制御方法の各ステップをコンピュータに実行させることを特徴とする。
【発明の効果】
【0014】
本発明によれば、各レコードの各ページを識別するための情報を印刷データに含めるようにしたので、バリアブルデータの面付け印刷を行う場合に、特定のレコードが指定された場合でも、その特定のレコードを抽出することができる。したがって、バリアブルデータの面付け印刷を行う場合でも、特定のレコードの印刷を従来よりも確実に行える。
【発明を実施するための最良の形態】
【0015】
(第1の実施形態)
以下に、図面を参照しながら、本発明の第1の実施形態について説明する。
図1は、バリアブルデータ印刷システムのハードウェア構成の一例を示す図である。
図1において、バリアブルデータ印刷システムは、ホストPC100と印刷装置12とを有し、これらがLAN13を介して相互に通信可能に接続されている。
CPU1は、ハードディスク4やROM5に記憶されているプログラムを実行する等して装置(ホストPC100)を統括制御する。キーボード2は、ユーザがデータを入力するために操作するユーザインターフェースである。ディスプレイ3は、文書画像等を表示する。ハードディスク4は、装置(ホストPC100)を制御するためのプログラムや文書等を記憶する。ROM5は、装置(ホストPC100)を制御するプログラムや必要な情報を予め記憶する。RAM6は、様々なワークエリアとして利用される記憶装置である。データベース7は、バリアブルデータの各レコードに関するレコード情報を格納する。これらは、データバス11を介して相互に接続されている。データバス11は、各種データを転送するものである。
一方、印刷装置12は、ホストPC100から送信された"バリアブル印刷データ等"に基づいて印刷を行う。印刷装置12は例えばデジタル複合機(MFP)である。
【0016】
図2は、バリアブルデータ(印刷データ)をレコード毎に印刷することができるようにするためのホストPC100における機能構成の一例を示す図である。
図2において、バリアブルデータ作成部8は、バリアブルデータを作成する機能を有する。物理面付けデータ作成部9は、バリアブルデータ作成部8で作成されたバリアブルデータの特定のレコードを物理ページに面付けして印刷するための物理面付けデータ(印刷データ)を作成する機能を有する。ページ解析部10は、レコードと物理面付けデータとの関係を解析する。
【0017】
前述したように、図5は、1レコードが3ページからなる5レコード分のバリアブルデータの4ページ分を一枚の用紙にカット&スタック(串刺し印刷)で印刷した場合の印刷物を示している。図5において、Bさんのレコードの先頭ページ501は4枚目に、2ページ目502は1枚目に、3ページ目503は2枚目に夫々存在する。
【0018】
また、前述したように、図6は、1レコードが3ページからなる5レコード分のバリアブルデータの4ページ分を一枚の用紙に串指し印刷以外の方法で面付け印刷した場合の印刷物を示している。図6において、Bさんのレコードの先頭ページ601は1枚目に、2ページ目602と3ページ目603は2枚目に夫々存在する。
【0019】
図7は、図5に示したような印刷物を得るためのバリアブル印刷データの一例を示す図である。尚、本実施形態では、バリアブル印刷データがPDFに基づく印刷データ(PDFデータ)である場合を例に挙げて説明する。
PDFは階層構造で成り立っている。Document Catalog701は、その階層のルートにあたる。Page tree702はページの情報をとりまとめる。ページ構成情報Page703は、各ページの構成を表す。Xobject704は、ページ内で使用される描画オブジェクトを表す。このXobject704は、各ページで共通して使われる描画オブジェクトであり、再利用オブジェクトとも言われる。Xobject704は、Page1からPage4までの全てのページから参照されることが分かる。Outline hierarchy705は、各レコードの先頭ページの位置等を示す。Outline entry A706a〜Outline entry E706eは、夫々、Aさん〜Eさんのレコードの先頭ページの位置、総ページ数等の情報をもつ。例えば、Outline entry B706b、Outline entry C706cの具体的なデータ708b、708cは、先頭ページ位置710b、710c、総ページ数711b、711c、及びページリスト712b、712c等である。本実施形態では、ページリスト712は、該当するレコードの各ページが実際に印刷される物理ページ(用紙)の何ページ目に属するかを示すものである。
【0020】
図8は、バリアブルデータの一例を示す図である。尚、図8では夫々のページを模式的に示している。
前述したようにここでは1レコードが3ページからなる。ページ901、902、903は、夫々、1ページ目、2ページ目、3ページ目を指す。文書904、905、906には、レコードによって不変の固定コンテンツである。一方、イメージ907、908、909には、レコード毎に異なる可変コンテンツである。
【0021】
図9は、データベース7に格納されているレコード情報の一例を示す図である。
図9において、レコード情報1001には、レコードID1002、氏名1003、年齢1004、及び可変コンテンツであるイメージ907、908、909のイメージデータのファイル名1005、1006、1007が含まれる。
【0022】
以下に、入稿された文書からバリアブルデータ、印刷データ(物理面付けデータ)を順に作成して、印刷する際のバリアブルデータ印刷システム(バリアブルデータ作成部8、物理面付けデータ作成部9、ページ解析部10)の動作に関して詳細に説明する。
図10は、バリアブルデータを作成して印刷する際のバリアブルデータ印刷システムの全体処理の一例を説明するフローチャートである。
【0023】
まず初めに、図10のステップS801において、バリアブルデータ作成部8は、バリアブルデータを作成する。
バリアブルデータ作成部8は、ユーザがキーボード2等を操作して入力した文書904、905、906、イメージ907、908、909等をディスプレイ3に描画する。その後、バリアブルデータ作成部8は、描画した文書904、905、906、イメージ907、908、909等の配置を、ユーザによるキーボード2等の操作内容に基づいて確定してハードディスク4に格納する。前述したように本実施形態では、文書904、905、906を固定コンテンツ(固定データ)とし、イメージ907、908、909を可変コンテンツ(可変データ)としている。レコード毎にどのイメージを使うかは、データベース7に格納されているレコード情報1001に基づいて判断される。例えば、レコードID1002が「1」のAさん用のバリアブル印刷では、次のイメージが使用される。すなわち、1ページ目のイメージ907、908としてファイル名が「xxx.jpg」、「yyy.jpg」であるイメージが使用され、2ページ目のイメージ909としてファイル名が「zzz.jpg」であるイメージが使用される。同様に、Bさん用のバリアブル印刷では、次のイメージが使用される。すなわち、1ページ目のイメージ907、908としてファイル名が「aaa.jpg」、「bbb.jpg」であるイメージが使用され、2ページ目のイメージ909としてファイル名が「zzz.jpg」であるイメージが使用される。
以上のように本実施形態では、例えば、ステップS801の処理を行うことによりバリアブルデータ作成手段の一例が実現される。
【0024】
次に、ステップS802において、物理面付けデータ作成部9は、ユーザによるキーボード2等の操作内容に基づいて印刷方法(面付け方法)を決定する。
印刷方法には、種々の方法がある。例えば、図4に示したように、用紙1枚(1物理ページ)に1ページ(1論理ページ)ずつ印刷する方法がある。また、図5に示したように、用紙1枚に4ページ分(4論理ページ分)を印刷し、その印刷した用紙を断裁した場合に、その裁断した用紙をそのまま積み替えれば、上からページ順に並ぶようにするカット&スタック(串刺し印刷)で印刷する方法もある。
ここでは、図5に示した串指し印刷を行う場合を例に挙げて説明する。
図5において、A1は、レコード情報1001のレコードID1002が「1」の氏名1003がAさん用のバリアブルデータの1ページ目901を表している。同様に、B1(Bさんのレコードの先頭ページ501)は、Bさん用のバリアブルデータの1ページ目901を表し、B2(Bさんのレコードの2ページ目502)は、Bさん用のバリアブルデータの2ページ目902を表す。更に、B3(Bさんのレコードの3ページ目503)は、Bさん用のバリアブルデータの3ページ目903を表す。ここでは、串指し印刷を行うため、Bさんのレコードの先頭ページ501は4枚目に、2ページ目502は1枚目に、3ページ目503は2枚目に配置される。
【0025】
次に、ステップS803において、物理面付けデータ作成部9とページ解析部10は、印刷データ(物理面付けデータ)を作成する。図11は、図10のステップS803のバリアブル印刷データ作成処理の詳細の一例を説明するフローチャートである。尚、前述したように、ここでは、物理面付けデータがPDFデータである場合を例に挙げて説明する。図10における処理の主体は、全体としては、物理面付けデータ作成部9であるが、ステップS204等、対象となるページが物理ページのどこ(何ページ目)に印刷されるか等の解析はページ解析部10が行う。
【0026】
まず、図11のステップS201において、物理面付けデータ作成部9は、前記ステップS802で決めた印刷方法を確認する。ここでは、図5に示したような串指し印刷が印刷方法として決定されたとする。したがって、ここでは、1レコードが3ページである5レコード分のバリアブルデータを、串指し印刷で4UP(用紙1枚に4ページ分を面付け)するような印刷データが作成されることになる。
【0027】
次に、ステップS202において、物理面付けデータ作成部9は、レコード番号Rを初期化して「1」とする。
次に、ステップS203において、物理面付けデータ作成部9は、レコード内ページ番号Pを初期化して「1」とする。
次に、ステップS204において、ページ解析部10は、レコード番号Rのレコードの、レコード内ページ番号Pのページが、最終的にどの物理ページに印刷されるのかを求める。尚、以下の説明では、ここで求められる物理ページを物理ページ番号と称する。また、この物理ページ番号は、ステップS801で作成されたバリアブルデータと、ステップS802で決定された印刷方法とに基づいて求められるものである。例えば、Bさんのレコードの先頭ページ501は物理ページの4ページ目にあるので、物理ページ番号は「4」となる。
【0028】
次に、ステップS205において、物理面付けデータ作成部9は、レコード内ページ番号Pが1か否かを判定する。つまり、処理対象のページが、処理対象のレコードの先頭ページであるか否かを判定する。この判定の結果、処理対象のページが、処理対象のレコードの先頭ページであれば、ステップS206に進む。一方、処理対象のページが、処理対象のレコードの先頭ページでなければ、ステップS206を省略してステップS207に進む。ここでは、Bさんのレコードの先頭ページ501であるとして、ステップS206に進む。
【0029】
ステップS206に進むと、ページ解析部10は、レコード番号RのOutline entry706の先頭ページ位置(Dest)710に、レコード内ページ番号Pにおける物理ページ番号を記録する。例えば、Bさんのレコードの先頭ページ501は物理ページの4ページ目にあるので、ページ解析部10は、OutLine hierarchy705のOutline entry B706bの先頭ページ位置(Dest)710に「4」と記録する。また、ページ解析部10は、レコード番号RのOutline entry706の総ページ数(NP)711に、レコード番号Rの総ページ数を記録する。例えば、ページ解析部10は、レコード番号RのOutline entry706の総ページ数(NP)711bに「3」と記録する。
【0030】
次に、ステップS207において、物理面付けデータ作成部9は、図8のステップS802で決定された印刷方法が面付け印刷であるか否かを判定する。前述したように、面付け印刷とは、複数の論理ページを同一の物理ページ内に面付け配置する印刷のことを指す。面付け印刷は、NUP(Nは自然数であり、1物理ページに面付けされる論理ページの数である。図5に示す例では4UPとなる)と称されることもある。
この判定の結果、印刷方法が面付け印刷であればステップS208に進む。一方、印刷方法が面付け印刷でなければ、ステップS208、S209を省略してステップS210に進む。ここでは、面付け印刷の一種である串指し印刷が印刷方法として決定されたとしているので、ステップS208に進む。
【0031】
ステップS208に進むと、ページ解析部10は、レコード番号RのOutline entry706のページリスト(DestList)712に、レコード内ページ番号Pにおける物理ページ番号を追加記録する。例えば、Bさんのレコードの先頭ページ501、901は、物理ページの4ページ目にある。よって、OutLine hierarchy705のOutline entry B706のページリスト(DestList)712bに「4」と記録する。また、Bさんの2ページ目502、902の処理を行う場合には、OutLine hierarchy705のOutline entry B706のページリスト(DestList)712bに「1」と追記する。同様に、Bさんの3ページ目503、903の処理を行う場合には、OutLine hierarchy705のOutline entry B706のページリスト(DestList)712bに「2」と追記する。こうしてBさんのレコード内のページと物理ページとの関係を示すページリスト(DestList)712bには、[4 1 2]が記録され、ページリスト(DestList)712bの情報が完成する。同じようにCさんのレコードに関してOutLine hierarchy705のOutline entry C706cのページリスト(DestList)712cには[3 4 1]が記録される。このように、ページリスト(DestList)712を参照することによって、各レコードの各ページが実際にどの物理ページで印刷されるのかが印刷装置12側で識別できるようになる。
【0032】
次に、ステップS209において、物理面付けデータ作成部9は、レコード番号Rのレコード内の全てのページについて、データ708の内容を記録したかを判定する。この判定の結果、レコード内の全てのページについて、データ708の内容を記録した場合には、処理対象のレコードに関する"先頭ページ位置(Dest)710、総ページ数(NP)711、ページリスト(DestList)712"の作成が終了する。したがって、ステップS210に進む。一方、レコード内の全てのページについて、データ708の内容を記録していない場合は、ステップS211に進む。
【0033】
ステップS210に進むと、物理面付けデータ作成部9は、ドキュメント内の処理対象の全てのレコードについて、データ708の内容を記録したかを判定する。この判定の結果、処理対象の全てのレコードについて、データ708の内容を記録した場合には、処理対象のレコードに関する"先頭ページ位置(Dest)710、総ページ数(NP)711、ページリスト(DestList)712"の作成は終了する。したがって、図11のフローチャートを終了して、図10のステップS804に進む。一方、処理対象の全てのレコードについて、データ708の内容を記録していない場合には、ステップS212に進む。
【0034】
前述したようにしてステップS209からステップS211に進むと、物理面付けデータ作成部9は、レコード内ページ番号Pに「1」を加算して、次のレコード内ページ番号Pについて処理を行う。例えば、Bさんの1ページ目502、902の処理を行った後であれば、現在のレコード内ページ番号P(=1)に「1」を加算した新たなレコード内ページ番号P(=2)としてステップS204に進む。そして、Bさんの2ページ目502、902が、物理ページのどのページに該当するのかを求める。
【0035】
また、前述したようにしてステップS210からステップS212に進むと、物理面付けデータ作成部9は、レコード番号Rに「1」を加算して、次のレコード番号Rについて処理を行う。例えば、Bさんのレコードの処理の後であれば、現在のレコード番号R(=2)に「1」を加算した新たなレコード番号R(=3)としてステップS203に進む。そして、Cさんのレコードに処理を移し、まず、Cさんの先頭ページについて処理を進める。
以上のように本実施形態では、例えば、ステップS803の処理を行うことにより印刷データ作成手段の一例が実現される。
【0036】
図10の説明に戻り、以上のようにしてステップS803の処理が終了したらステップS804に進む。
ステップS804に進むと、ホストPC100から印刷装置12に、以上のようにして作成された物理面付けデータ(PDFデータ)が送信される。印刷装置12は、物理面付けデータに基づいて印刷を行う。
印刷方法が面付け印刷でない場合、印刷装置12は、Document Catalog701のPage tree702の下の階層にあるPage703から順に全ページを印刷する。
【0037】
一方、複数のレコードのうちの特定レコードについて面付け印刷を行うことが指定されている場合、印刷装置12は、本実施形態の特徴的な処理の一つとして、図12のフローチャートに基づく印刷処理を実行する。図12は、複数のレコードのうちの特定のレコードについて面付け印刷を行うことが指定されている場合における、印刷装置12の処理の一例を説明するフローチャートである。尚、特定レコードは、1つのレコードであってもよいし、複数のレコードであってもよい。
まず、図12のステップS1101において、印刷装置12は、特定レコードのOutline entry706の情報を取り出す。ここでは、Bさんのレコードを印刷することが指定された場合を例に挙げて説明する。したがって、印刷装置12は、Outline hierarchy705のOutline entry B706bの情報を取り出す。
【0038】
次に、ステップS1102において、印刷装置12は、特定レコードの総ページ数(NP)711を抽出する。ここでは、Bさんのレコードを印刷するので、Outline hierarchy705のOutline entry B706b内の総ページ数(NP)711b(すなわち「3」)を抽出する。これにより、印刷装置12は、Bさんのレコードの総ページ数が3ページであると判断することができる。
【0039】
次に、ステップS1103において、印刷装置12は、ページ番号Pを「1」とする。
次に、ステップS1104において、印刷装置12は、特定レコードのOutline hierarchy705のOutline entry706内に、ページリスト(DestList)712があるか否かを判定する。この判定の結果、ページリスト(DestList)712がある場合には、ステップS1105に進む。一方、ページリスト(DestList)712がない場合には、ステップS1108に進む。ここでは、BさんのレコードのOutline hierarchy705のOutline entry B706内には、ページリスト(DestList)712bが存在するので、ステップS1105に進む。
【0040】
ステップS1105に進むと、印刷装置12は、ページリスト(DestList)712の内容に従って、ページ番号Pのページの印刷を行う。ここでは、Bさんのレコードの先頭ページ501、901は、ページリスト(DestList)712bの値より、物理ページの4ページ目にあることが分かる。よって、印刷装置12は、物理面付けデータ(PDFデータ)から、物理ページで4ページ目のデータを抽出し、抽出したデータに基づいて印刷を実行する。
【0041】
また、Bさんのレコードの2ページ目502、902は、ページリスト(DestList)712bの値より、物理ページの1ページ目にあることが分かる。よって、印刷装置12は、物理面付けデータ(PDFデータ)から、物理ページで1ページ目のデータを抽出し、抽出したデータに基づいて印刷を実行する。同様に、Bさんのレコードの3ページ目503、903については、物理ページで2ページ目のデータに基づいて印刷を実行する。
同様に、Cさんのレコードを印刷することが指定されている場合、OutLine hierarchy705のOutline entry C706cのDestList712cの値は[3 4 1]である。よって、物理ページで3ページ目、4ページ目、1ページ目の印刷を行うことになる。
【0042】
以上のようにしてステップS1105の処理が終了すると、ステップS1106に進む。ステップS1106に進むと、印刷装置12は、特定レコード内の全てのページを印刷したか否かを判定する。この判定の結果、特定レコード内の全てのページを印刷した場合には、図12のフローチャートによる処理(印刷処理)を終了する。一方、特定レコード内の全てのページを印刷していない場合には、ステップS1107に進む。
【0043】
ステップS1107に進むと、印刷装置12は、現在のページ番号Pに「1」を加算して、次のページの印刷処理に進む。例えば、Bさんのレコードの先頭ページ501、901の印刷が終わった場合には、現在のページ番号P(=1)に「1」を加算した新たなページ番号P(=2)としてステップS1104に進む。そして、2ページ目502、902について先頭ページ501、901と同様の印刷処理を行う。
【0044】
前述したように、ステップS1104において、特定レコードのOutline hierarchy705のOutline entry706内に、ページリスト(DestList)712がないと判定された場合には、ステップS1108に進む。ステップS1108に進むと、印刷装置12は、先頭ページ位置(Dest)710と、Page tree702とに従って、ページ番号Pの印刷を実行する。ここでは、BさんのレコードのOutline entry B706bにページリスト(DestList)712bがないと仮定して説明する。ページリスト(DestList)712bがないということは、面付け印刷を行わないということである。つまり、図4に示したように、用紙1枚に、レコードの1ページの情報を印刷することになる。
【0045】
そこで、印刷装置12は、BさんのレコードのOutline entry B706b内の先頭ページ情報(Dest)710bを抽出する。この先頭ページ情報(Dest)710bは、物理ページの4ページ目を指しているので、印刷装置12は、先頭ページとして、物理ページの4ページ目を印刷する。
そして、前述したステップS1106、S1107を処理して再びステップS1108に戻ると、処理対象のページを示す"Bさんのレコードのページ番号P"は「2」になる。
ここで、印刷装置12は、以下の(1)式に従って、印刷すべき物理ページ番号を求める。
印刷すべき物理ページ番号=(先頭ページの物理ページ番号)+[(処理対象のページ番号P)−1] ・・・(1)
【0046】
ここでは、先頭ページの物理番号は、先頭ページ情報(Dest)710bより「4」であるので、ページ番号Pが「2」である場合には、以下のように、物理ページの5ページ目を印刷することになる。
先頭ページの物理ページ番号(=4)+処理対象のページ番号P(=2)−1=5
同様に、Bさんのレコードの3ページ目として物理ページの6ページを印刷することになる。
以上で、バリアブルデータを作成してから、印刷装置12に物理面付けデータを送信して印刷するまでの処理の一例の説明を終了する。
【0047】
以上のように本実施形態では、複数のレコードから構成される印刷データを生成するに際し、次の情報を生成して印刷データに含めるようにする。すなわち、各レコードの各ページと、そのページが実際に印刷される物理ページとを相互に対応付ける情報としてページリスト(DestList)712を生成する。このページリスト(DestList)712は、バリアブルデータの内容(例えばレコードの数や各レコードのページ数)と面付け印刷の方法とに基づいて生成される。
【0048】
したがって、複数のレコードのうちの特定のレコードの印刷が指定された場合でも、そのレコードの各ページが、どの物理ページに印刷されるのかを判断することができるようになる。よって、その物理ページだけを印刷することにより、特定のレコードの印刷を印刷することができる。すなわち、どのような物理面付けされたバリアブルデータであっても、レコード毎にデータを取り出して正しく印刷することができるようになり、従来よりも無駄のない効率的な処理が可能となる。
【0049】
(第2の実施形態)
次に、本発明の第2の実施形態について説明する。
前述した第1の実施形態では、1物理ページに複数ページが面付けされたバリアブルデータにおいてもレコード毎に印刷が可能になる。図13は、第1の実施形態のようにしてBさんのレコードを印刷した結果の一例を示す図である。
【0050】
図13の左側に示すように、第1の実施形態のようにすれば、Bさんのレコードについては全て印刷できるが、1物理ページに複数のレコードのページが面付けされ得るため、Bさんのレコード以外の他のレコード(の一部)が印刷物に含まれる。したがって、Bさんのレコードの部分のみを必要とする場合には、図13の右側に示すように、Bさんのレコードの部分とそれ以外のレコードの部分とを分離することになる。このようにした場合、Bさんのレコード以外の部分は無駄になる。
【0051】
そこで、本実施形態では、可及的に特定レコードのみを用紙(物理ページ)に印刷できるようにする。このように本実施形態と前述した第1の実施形態とは、バリアブル印刷データと、バリアブル印刷データの内容の一部と、バリアブル印刷データを作成する処理の一部と、特定レコードを印刷する処理の一部とが主として異なる。したがって、本実施形態の説明において、前述した第1の実施形態と同一の部分については詳細な説明を省略する。
【0052】
図14は、バリアブル印刷データの一例を示す図である。尚、本実施形態でも、バリアブル印刷データがPDFデータである場合を例に挙げて説明する。
前述したようにPDFは階層構造で成り立っており、Document Catalog1301は、その階層のルートにあたる。Page tree1302はページの情報をとりまとめる。ページ構成情報Page1303は、各ページの構成を表す。本実施形態の特徴の1つとなるForm Xobject1304は、各ページにおける中間データ(中間リソース)である。このForm Xobject1304は、元原稿の各ページの描画オブジェクトの状態をそのまま保持するようなデータであり、例えば、各レコードの各ページにおけるバリアブルデータ(例えば描画オブジェクト)の内容に基づいて生成される。どのForm Xobject1304がどのPage1303に属するかは、例えば、バリアブルデータの内容(例えば、レコードの数や各レコードのページ数)と、ユーザによって指定された面付け方法とに基づいて決定される。Xobject1305は、Form Xobject1304で再利用データとして使用される描画オブジェクトである。このXobject1305は、各ページで共通して使われている描画オブジェクトであり、再利用オブジェクトとも言われる。Xobject1305は、Page1からPage4までの全てのページから参照されている。
【0053】
RecordTop page1306は、レコード毎の面付け印刷の際に、各レコードの各ページの位置・状態を保持する中間データであるForm Xobject1304をどのように縮小、移動等して面付け配置するかを示す中間データ構成情報である。このRecordTop page1306は、例えば、面付け印刷の方法と、バリアブルデータの内容(例えばレコードの数や各レコードのページ数)とに基づいて生成される。
Outline hierarchy1307は、各レコードの先頭ページの位置等を示す。Outline entry A1308a〜Outline entry E1308eは、夫々、Aさん〜Eさんのレコードの先頭ページの位置、総ページ数等の情報をもつ。例えば、Outline entry B1308bの具体的なデータ1309には、先頭ページの位置(Dest)1310と、総ページ数(NP)1311とが含まれる。また、このデータ1309には、Form Xobject1304の位置のリストである中間データ位置リストDestFormList1312が含まれる。更に、このデータ1309には、中間データ構成情報RecordTop page1306の位置を示すページ構成情報位置DestTop1313が含まれる。尚、この他に、PDF内のオブジェクト番号等の情報がデータ1309に含まれていてもよい。
【0054】
図15は、図5に示した印刷物の1ページ目の状態を模式的に示した図である。図15に示す情報は、図14に示したバリアブル印刷データの構造図のPage1303よりも下の階層の情報に対応する。
【0055】
図5に示した例では、物理ページの1ページ目に、Aさんのレコードの1ページ目A1と、Bさんのレコードの2ページ目B2と、Cさんの3ページ目C3と、Eさんの1ページ目E1とが配置されている。それら各ページのPDFの状態を示したのが、図15である。Aさんのレコードの1ページ目1401では、その1ページ目1401に含まれる各オブジェクトの情報がContentsA1内に保持され、そのオブジェクトとして使用されるイメージデータ等のデータがResourcesA1内に保持される。Bさんのレコードの2ページ目1402、Cさんのレコードの3ページ目1403、Eさんのレコードの1ページ目1404についても、同様のデータが保持される。
【0056】
このような1物理ページに含まれる各ページ(1401〜1404)の状態を保持する中間データ(中間リソース)1304a〜1304dが生成される。RecordTop page 1306aは、それら中間データ1304a〜1304dを物理ページ(1ページ目)においてどのように縮小し、移動するか等の配置を定めている。元原稿のAさんの1ページ目1401の中間データ(の状態)がForm Xobject1304aであり、Bさんの2ページ目1402の中間データがForm Xobject1304bである。また、Cさんの3ページ目1403の中間データがForm Xobject1304cであり、Eさんの1ページ目1404の中間データがForm Xobject1304dである。
【0057】
図16は、Bさんのレコードのみを印刷する場合の物理面付けデータの一例を概念的に示す図である。
RecordTop page1306bは、Bさんのレコードの各ページを示す中間データを物理ページにどう配置するかを記述したデータである。RecordTop page1701は、RecordTop page1306bのContentsを、Bさんのレコード用に、Bさんのレコードの各ページのForm Xobject1304b、1304e、1304fに合わせて修正したものである。また、Bさんの1ページ目の中間データがForm Xobject1304fであり、Bさんの2ページ目の中間データがForm Xobject1304bであり、B酸の3ページ目の中間データがForm Xobject1304eである。
【0058】
次に、図10のフローチャートを参照しながら、バリアブルデータを作成して印刷する際のバリアブルデータ印刷システムの全体処理の一例を説明する。
まず、第1の実施形態と同様に、ステップS801において、バリアブルデータ作成部8は、バリアブルデータを作成し、ステップS802において、印刷方法(面付け方法)を決定する。以上のように本実施形態では、例えば、ステップS801の処理を行うことによりバリアブルデータ作成手段の一例が実現され、ステップS802の処理を行うことにより決定手段の一例が実現される。
【0059】
次に、ステップS803において、物理面付けデータ作成部9とページ解析部10は、印刷データ(物理面付けデータ)を作成する。図17は、図10のステップS803のバリアブル印刷データ作成処理の詳細の一例を説明するフローチャートである。尚、前述したように、ここでは、物理面付けデータがPDFデータである場合を例に挙げて説明する。図17における処理の主体は、全体としては、物理面付けデータ作成部9であるが、ステップS1504等、対象となるページが物理ページのどこ(何ページ目)に印刷されるか等の解析はページ解析部10が行う。
【0060】
まず、図17のステップS1500において、物理面付けデータ作成部9は、前記ステップS802で決めた印刷方法を確認する。ここでは、図5に示したような串指し印刷が印刷方法として決定されたとする。したがって、ここでは、1レコードが3ページである5レコード分のバリアブルデータを、串指し印刷で4UP(用紙1枚に4ページ分を面付け)するような印刷データが作成されることになる。
【0061】
次に、ステップS1501において、物理面付けデータ作成部9は、中間データ(中間リソース)1304と、物理面付けデータ(PDFデータ)を作成する。
具体的に説明すると、物理面付けデータ作成部9は、図14に示したようなバリアブル印刷データ(PDFデータ)のうち、データ1309を除く部分を作成する。第1の実施形態では、物理面付けした状態をPage703に保持していた。このため、各レコードの情報のみを取り出す事が出来なかった。これに対して、本実施形態では、元原稿の各レコードの情報を中間データで残してそれらの組み合わせで物理面付け状態を記載する。
【0062】
PDFは階層構造で成り立ち、物理面付けデータ作成部9は、その階層のルートにあたるDocument Catalog1301と、ページの情報をとりまとめるPage tree1302と、各ページを指すPage1303とを記載する。Page1303は、本実施形態の特徴の一つとなるページ内の中間データであるForm Xobject1304等の組み合わせにより、物理面付けの縮小、位置の移動等の配置情報を持つ。
【0063】
Form Xobject1304は、元原稿の各ページの描画オブジェクトの状態をそのまま保持するようなデータである。
る。例えば、図5に示した例では、物理面付けされた先頭ページ501に、Aさんのレコードの1ページ目A1、Bさんのレコードの2ページ目B2、Cさんの3ページ目C3、及びEさんの1ページ目E1が配置されている。前述したようにAさんのレコードの1ページ目1401に含まれる各オブジェクトの情報がContentsA1内に記述され、そのオブジェクトで使用されるイメージデータ等のデータがResourcesA1内に保持される(図15を参照)。Bさんのレコードの2ページ目1402、Cさんのレコードの3ページ目1403、Eさんのレコードの1ページ目1404についても同様である。
【0064】
このような元原稿のAさんの1ページ目1401の中間データ(の状態)がForm Xobject1304aであり、Bさんの2ページ目1402の中間データがForm Xobject1304bである。また、Cさんの3ページ目1403の中間データがForm Xobject1304cであり、Eさんの1ページ目1404の中間データがForm Xobject1304dである。
【0065】
Aさんの1ページ目1401の各オブジェクトの情報(ContentsA1)、そのオブジェクトで使用されるデータの情報(ResourcesA1)が、中間データであるForm Xobject1304aに残っている。このため、レコード毎の印刷の際に、各オブジェクトを描画するのに必要な情報をレコード毎に個別に取り出す事ができる。物理ページ(用紙)の1ページ目の配置を示すRecordTop page 1306aには、中間データ1304をどのように面付けするのか(縮小や位置の移動等をどのように行うか)を示す情報が記載される。RecordTop page 1306aは、図14のPage1の情報である。この場合、Aさんの1ページ目の中間データ1304aは、1ページ目の用紙の左上に縮小率50%で描画され、Bさんの2ページ目の中間データ1304bは、用紙の右上に縮小率50%で描画される。同様に、Cさんの3ページ目の中間データ1304cは、用紙の左下に縮小率50%で描画され、Eさんの1ページ目の中間データ1304dは、用紙の右下に縮小率50%で描画される。
【0066】
再利用データとして使用されるオブジェクトであるXobject1305は、各ページで共通して使われている描画オブジェクトであり、バリアブルデータの再利用オブジェクトとも言われる。Xobject1305は、中間データ(中間リソース)であるForm Xobject1304等から参照され、間接的にPage1からPage4までの全てのページから参照される。
以上のように本実施形態では、例えば、ステップS1501の処理を行うことにより中間データ作成手段の一例が実現される。
【0067】
図17の説明に戻り、ステップS1502において、物理面付けデータ作成部9は、レコード番号Rを初期化して「1」とする。
次に、ステップS1503において、物理面付けデータ作成部9は、レコード内ページ番号Pを初期化して「1」とする。
次に、ステップS1504において、ページ解析部10は、レコード番号Rのレコードの、レコード内ページ番号Pのページが、最終的にどの中間リソースになるかを求める。例えば、Bさんのレコードの先頭ページ501は、オブジェクト番号22の中間リソースであるForm Xobject1304fになる。
【0068】
次に、ステップS1505において、物理面付けデータ作成部9は、レコード内ページ番号Pが1か否かを判定する。レコード内ページ番号Pが1かどうか判定する。つまり、つまり、処理対象のページが、処理対象のレコードの先頭ページであるか否かを判定する。この判定の結果、処理対象のページが、処理対象のレコードの先頭ページであれば、ステップS1506に進む。一方、処理対象のページが、処理対象のレコードの先頭ページでなければ、ステップS1506を省略してステップS1507に進む。ここでは、Bさんのレコードの先頭ページ501であるとして、ステップS1506に進む。
【0069】
ステップS1506に進むと、ページ解析部10は、レコードRのOutline entry1308の先頭ページ情報(Dest)に、レコード内ページ番号Pにおける物理ページ番号を記録する。例えば、Bさんのレコードの先頭ページ501は物理ページの4ページ目にあるので、ページ解析部10は、OutLine hierarchy1307のOutline entry B1308bの先頭ページ位置(Dest)1310に「4」と記録する。また、ページ解析部10は、レコード番号RのOutline entry1308の総ページ数(NP)に、レコード番号Rの総ページ数を記録する。例えば、ページ解析部10は、レコード番号RのOutline entry1308bの総ページ数(NP)1311に「3」と記録する。
【0070】
次に、ステップS1507において、物理面付けデータ作成部9は、図8のステップS802で決定された印刷方法が面付け印刷であるか否かを判定する。前述したように、面付け印刷とは、複数の論理ページを同一の物理ページ内に面付け配置する印刷のことを指す。
この判定の結果、印刷方法が面付け印刷であればステップS1508に進む。一方、印刷方法が面付け印刷でなければ、ステップS1508、S1509を省略してステップS1510に進む。ここでは、面付け印刷の一種である串指し印刷が印刷方法として決定されたとしているので、ステップS1508に進む。
【0071】
ステップS1508に進むと、物理面付けデータ作成部9は、次の処理を行う。すなわち、物理面付けデータ作成部9は、レコード番号RのレコードのOutline entry1308に含まれる中間データ位置リストであるDestFormList1312に、ページ番号Pの中間リソースのオブジェクト番号を追加記録する。Bさんのレコードの先頭ページ501、901に対応する中間データ(中間リソース)は、オブジェクト番号22のForm Object B11304fである。したがって、ページ解析部10は、Outline hierarchy1307のOutline entry B1308bのDestFormList1312に「22」と記録する。また、Bさんのレコードの2ページ目502、902であれば、OutLine hierarchy1307のOutline entry B1308bのDestFormList1312に「11」と追記する。同様にBさんのレコードの3ページ目503、903であれば、OutLine hierarchy1307のOutline entry B1308bのDestFormList1312に「15」と追記する。こうしてBさんのレコード内のページと中間リソースとの関係を示す中間データ位置リスト(DestFormList1312)には[22 11 15]が記録され、中間データ位置リスト(DestFormList1312)が完成する。このような中間データ位置リスト(DestFormList1312)により、印刷装置12側で、各レコードの各ページにおける中間データ(Form Xobject1304)を識別することができる。
【0072】
次に、ステップS1509において、物理面付けデータ作成部9は、レコード内ページ番号Pが「1」(P=1)の場合に、次の処理を行う。すなわち、物理面付けデータ作成部9は、レコード番号Rのレコードの中間リソースをまとめるページ構成情報Page Contentsのオブジェクト番号をDestTopに記録する。ここでは、ページ解析部10は、Bさんのレコードの中間リソースをまとめるページ構成情報Page ContentsであるRecordTop page1306bのオブジェクト番号は「100」である(図14を参照)。したがって、ページ解析部10は、OutLine hierarchy1307のOutline entry B1308bのDestTop1313に「100」と記録する。尚、レコード内ページ番号Pが「1」でない場合には、ステップS1509の処理は行われずに、ステップS1510に進む。このようにDestTop1313によりRecordTop page1306bが特定されることにより、印刷装置12側で、各レコードにおける中間データ(Form Xobject1304)の実際に印刷される物理ページでの配置を識別することができる。
【0073】
次に、ステップS1510に進むと、物理面付けデータ作成部9は、レコード番号Rのレコード内の全てのページについて、データ1309の内容を記録したかを判定する。この判定の結果、この判定の結果、レコード内の全てのページについて、データ1309の内容を記録した場合には、処理対象のレコードに関する"Dest1310、NP1311、DestFormList1312、DestTop1313"の作成が終了する。したがって、ステップS1511に進む。一方、レコード内の全てのページについて、データ1309の内容を記録していない場合には、終了していない場合は、ステップS1512に進む。
【0074】
ステップS1511に進むと、物理面付けデータ作成部9は、ドキュメント内の処理対象の全てのレコードについて、データ1309の内容を記録したかを判定する。この判定の結果、ドキュメント内の処理対象の全てのレコードについて、データ1309の内容を記録した場合には、処理対象のレコードに関する"Dest1310、NP1311、DestFormList1312、DestTop1313"の作成は終了する。したがって、図17のフローチャートを終了して、図10のステップS804に進む。一方、処理対象の全てのレコードについて、データ1309の内容を記録していない場合には、ステップS1513に進む。
【0075】
前述したようにしてステップS1510からステップS1512に進むと、物理面付けデータ作成部9は、レコード内ページ番号Pに「1」を加算して、次のレコード内ページ番号Pについて処理を行う。例えば、Bさんの1ページ目502、902の処理を行った後であれば、現在のレコード内ページ番号P(=1)に「1」を加算した新たなレコード内ページ番号P(=2)としてステップS1504に進む。そして、Bさんの2ページ目502、902が、どの中間データ(中間リソース)に該当するのかを求める。
【0076】
また、前述したようにしてステップS1511からステップS1513に進むと、物理面付けデータ作成部9は、レコード番号Rに「1」を加算して、次のレコード番号Rについて処理を行う。例えば、Bさんのレコードの処理の後であれば、現在のレコード番号R(=2)に「1」を加算した新たなレコード番号R(=3)としてステップS1503に進む。そして、Cさんのレコードに処理を移し、まず、Cさんの先頭ページについて処理を進める。
以上のように本実施形態では、例えば、ステップS803の処理を行うことにより印刷データ作成手段の一例が実現される。
【0077】
図10の説明に戻り、以上のようにしてステップSS803の処理が終了したらステップS804に進む。
ステップS804に進むと、ホストPC100から印刷装置12に、以上のようにして作成された物理面付けデータ(PDFデータ)が送信される。印刷装置12は、物理面付けデータに基づいて印刷を行う。
印刷方法が面付け印刷でない場合、印刷装置12は、Document Catalog1301のPage tree1302の下の階層にあるPage1303から順に全ページを印刷する。
【0078】
一方、複数のレコードのうちの特定レコードについて面付け印刷を行うことが指定されている場合、印刷装置12は、本実施形態の特徴的な処理の一つとして、図18のフローチャートに基づく印刷処理を実行する。図18は、複数のレコードのうちの特定のレコードについて面付け印刷を行うことが指定されている場合における、印刷装置12の処理の一例を説明するフローチャートである。尚、特定レコードは、1つのレコードであってもよいし、複数のレコードであってもよい。
【0079】
まず、図18のステップS1601において、印刷装置12は、特定レコードのOutline entry1308の情報を取り出す。ここでは、Bさんのレコードのみ印刷することが指定された場合を例に挙げて説明する。したがって、印刷装置12は、Outline hierarchy1307のOutline entry B1308bの情報を取り出す。
【0080】
次に、ステップS1602において、印刷装置12は、特定レコードの総ページ数(NP)711を抽出する。ここでは、Bさんのレコードを印刷するので、Outline hierarchy1307のOutline entry B1308b内の総ページ数(NP)1311(すなわち「3」)を抽出する。これにより、印刷装置12は、Bさんのレコードの総ページ数が3ページであると判断することができる。
【0081】
次に、ステップS1603において、印刷装置12は、ページ番号Pを「1」とする。
次に、ステップS1604において、印刷装置12は、特定レコードのOutline hierarchy1307のOutline entry1308内に、中間データ位置リスト(DestFormList)があるか否かを判定する。この判定の結果、中間データ位置リスト(DestFormList)がある場合には、ステップS1605に進む。一方、中間データ位置リスト(DestFormList)がない場合には、後述するステップS1608に進む。ここでは、BさんのOutline hierarchy1307のOutline entry B1308b内にはDestFormList1312が存在するので、ステップS1605に進む。
【0082】
ステップS1605に進むと、印刷装置12は、DestTop1313とDestFormList1312の内容に従ってページ番号Pのページの印刷を行う。ここでは、Bさんのレコードの印刷配置を記述した中間データ構成情報RecordTop page1306bは、オブジェクト番号100にあることが分かる。また、Bさんのレコードの先頭ページ501、901の中間データは、Outline entry B1308bのDestFormList1312により、オブジェクト番号22の中間データ(Form Xobject1304f)であることが分かる。同様にBさんのレコードの2ページ目502、902の中間データは、Outline entry B1308bのDestFormList1312により、オブジェクト番号11の中間データ(Form Xobject1304b)であることが分かる。更にBさんのレコードの3ページ目503、903の中間データは、Outline entry B1308のDestFormList1312により、オブジェクト番号15の中間データ(Form Xobject1304e)であることが分かる。
【0083】
そして、印刷装置12は、RecordTop page1306b内のContentsのPage1、Page2、Page3にこれらの中間データを順に割り当てる。具体的に説明すると、RecordTop page1306b内の/Page1を/B1(Form Xobject B11304f)に、/Page2を/B2(Form Xobject B21304b)に書き換える。また、/Page3を/B3(Form Xobject B31304e)に置き換える。こうしてRecordTop page1306bは、RecordTop page1701に変換される(図16を参照)。
そして、印刷装置12は、RecordTop page1701に従って、Bさんのレコードを印刷する。こうしてBさんのレコード内の全てのページが印刷される。
【0084】
以上のようにしてステップS1605の処理が終了すると、ステップS1606に進む。ステップS1606に進むと、印刷装置12は、特定レコード内の全てのページを印刷したか否かを判定する。この判定の結果、特定レコード内の全てのページを印刷した場合には、図18のフローチャートによる処理(印刷処理)を終了する。一方、特定レコード内の全てのページを印刷していない場合には、ステップS1607に進む。
【0085】
ステップS1607に進むと、印刷装置12は、現在のページ番号Pに「1」を加算して、次のページの印刷処理に進む。例えば、Bさんのレコードの先頭ページ501、901の印刷が終わった場合には、現在のページ番号P(=1)に「1」を加算した新たなページ番号P(=2)としてステップS1604に進む。そして、2ページ目502、902について先頭ページ501、901と同様の印刷処理を行う。
【0086】
また、ステップS1604において、特定レコードのOutline hierarchy1307のOutline entry1308内に、中間データ位置リスト(DestFormList)がないと判定された場合には、ステップS1608に進む。ステップS1608に進むと、印刷装置12は、先頭ページ位置(Dest)1310と、Page tree1302とに従って、ページ番号Pの印刷を実行する。ここでは、BさんのレコードのOutline entry B1308bに中間データ位置リスト(DestFormList)1312がないと仮定して説明する。中間データ位置リスト(DestFormList)1312がないということは、面付け印刷を行わないということである。つまり、図4に示したように、用紙1枚に、レコードの1ページの情報を印刷することになる。
【0087】
そこで、印刷装置12は、BさんのレコードのOutline entry B1308b内の先頭ページ情報(Dest)1310を抽出する。この先頭ページ情報(Dest)1310は、物理ページの4ページ目を指しているので、印刷装置12は、先頭ページとして、物理ページの4ページ目を印刷する。
そして、前述したステップS1606、S1607を処理して再びステップS1608に戻ると、処理対象のページを示す"Bさんのレコードのページ番号P"は「2」になる。
【0088】
ここで、印刷装置12は、前述した(1)式に従って、印刷すべき物理ページ番号を求める。
ここでは、先頭ページの物理ページ番号は、先頭ページ情報(Dest)1310より「4」であるので、ページ番号Pが「2」である場合には、以下のように、物理ページの5ページ目を印刷することになる。
同様に、Bさんのレコードの3ページ目として物理ページの6ページを印刷することになる。
【0089】
以上で、バリアブルデータを作成してから、印刷装置12に物理面付けデータを送信して印刷するまでの処理の一例の説明を終了する。
【0090】
以上のように本実施形態では、複数のレコードから構成される印刷データを生成するに際し、次の情報を生成して印刷データに含めるようにする。すなわち、各レコードの各ページの描画オブジェクトの状態を表す中間データであるForm Xobject1304を生成する。また、各レコードの各ページにおける中間データ(Form Xobject1304)を識別するためのデータ位置リスト(DestFormList)1312を生成する。また、各レコードのおける中間データ(Form Xobject1304)を物理ページ(用紙)でどのように配置するかを示す中間データ構成情報(RecordTop page1306)を生成する。
【0091】
したがって、複数のレコードのうちの特定のレコードの印刷が指定された場合でも、その特定のレコードにおける中間データのみを取り出し、その特定のレコードにおけるオブジェクトだけを印刷することができる。したがって、第1の実施形態よりも更に無駄のない効率的な処理が可能となる。
【0092】
(第1の変形例)
前述した第2の実施形態では、バリアブル印刷データの印刷を図18のフローチャートに従って処理している。ステップS1605では、DestTop1313とDestFormList1312とに基づいて、ページ番号Pのページを印刷している。しかしながら、DestTop1313がない場合は、ページ構成情報Page1303を代用してもよい。
【0093】
図14において物理面付けデータ(バリアブル印刷データ)の1ページを示すPage1には、元原稿の各レコードの各ページに対応する中間リソースが存在している。すなわち、Page1には、Form Xobject A1から順にForm Xobject B2、Form Xobject C3、Form Xobject E1というように元原稿の各レコードの各ページに対応する中間リソースが存在している。本変形例では、Form Xobject1304によって、印刷装置12側で、バリアブルデータの全体(全てのレコード)を、ユーザによって指定された面付け方法で印刷する場合に各物理ページに面付けされるバリアブルデータを識別できる。そこで、本変形例では、例えば、Bさんのレコードのみを印刷する際には、Page1のコンテンツの中間リソースの部分をDestFormList1312に従って順に置き換えて印刷する。つまり、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の内容に従ってBさんのみのレコードを印刷する。
このように、レコード毎に中間データを組み合わせるためのRecordTop page1306、DestTop1313がバリアブル印刷データ内にない場合でも、第2の実施形態と同様の効果が得られる。
【0094】
(第2の変形例)
前述した各実施形態では、バリアブル印刷データの印刷を印刷装置12で処理する例を示した。しかしながら、ホストPC100の"印刷ジョブを管理するモジュール"でバリアブル印刷データを処理してもよい。例えば、Bさんのレコードのみの印刷が指示されると、ホストPCは、Bさんの印刷データ(PDFデータ)のみを含む印刷ジョブに印刷ジョブを変更して印刷装置12に送信してもよい。このようにしても、前述した第1、第2の実施形態と同様の効果が得られる。
【0095】
(本発明の他の実施形態)
前述した本発明の実施形態における印刷制御装置を構成する各手段、並びに印刷制御方法の各ステップは、コンピュータのRAMやROMなどに記憶されたプログラムが動作することによって実現できる。このプログラム及び前記プログラムを記録したコンピュータ読み取り可能な記録媒体は本発明に含まれる。
【0096】
また、本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
【0097】
尚、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム(実施形態では図10〜図12、図17、18に示すフローチャートに対応したプログラム)を、システムあるいは装置に直接、あるいは遠隔から供給するものを含む。そして、そのシステムあるいは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
【0098】
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【0099】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であってもよい。
【0100】
プログラムを供給するための記録媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RWなどがある。また、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などもある。
【0101】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【0102】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
【0103】
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【0104】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【0105】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
【0106】
尚、前述した各実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【図面の簡単な説明】
【0107】
【図1】本発明の第1の実施形態を示し、バリアブルデータ印刷システムのハードウェア構成の一例を示す図である。
【図2】本発明の第1の実施形態を示し、バリアブルデータ(印刷データ)をレコード毎に印刷することができるようにするためのホストPCにおける機能構成の一例を示す図である。
【図3】本発明の第1の実施形態を示し、レコードの一例を概念的に示す図である。
【図4】本発明の第1の実施形態を示し、図3に示すレコードにおける1論理ページを1物理ページに印刷した場合の印刷物を概念的に示す図である。
【図5】本発明の第1の実施形態を示し、串指し印刷を行った場合の印刷物の一例を概念的に示す図である。
【図6】本発明の第1の実施形態を示し、串指し印刷以外の面付け印刷を行った場合の印刷物の一例を概念的に示す図である。
【図7】本発明の第1の実施形態を示し、図5に示したような印刷物を得るためのバリアブル印刷データの一例を示す図である。
【図8】本発明の第1の実施形態を示し、バリアブルデータの一例を示す図である。
【図9】本発明の第1の実施形態を示し、データベースに格納されているレコード情報の一例を示す図である。
【図10】本発明の第1の実施形態を示し、バリアブルデータを作成して印刷する際のバリアブルデータ印刷システムの全体処理の一例を説明するフローチャートである。
【図11】本発明の第1の実施形態を示し、図10のステップS803のバリアブル印刷データ作成処理の詳細の一例を説明するフローチャートである。
【図12】本発明の第1の実施形態を示し、複数のレコードのうちの特定のレコードについて面付け印刷を行うことが指定されている場合における、印刷装置の処理の一例を説明するフローチャートである。
【図13】本発明の第2の実施形態を示し、第1の実施形態のようにしてBさんのレコードを印刷した結果の一例を示す図である。
【図14】本発明の第2の実施形態を示し、バリアブル印刷データの一例を示す図である。
【図15】本発明の第2の実施形態を示し、図5に示した印刷物の1ページ目の状態を模式的に示した図である。
【図16】本発明の第2の実施形態を示し、Bさんのレコードのみを印刷する場合の物理面付けデータの一例を概念的に示す図である。
【図17】本発明の第2の実施形態を示し、図10のステップS803のバリアブル印刷データ作成処理の詳細の一例を説明するフローチャートである。
【図18】本発明の第2の実施形態を示し、複数のレコードのうちの特定のレコードについて面付け印刷を行うことが指定されている場合における、印刷装置12の処理の一例を説明するフローチャートである。
【符号の説明】
【0108】
8 バリアブルデータ作成部
9 物理面付けデータ作成部
10 ページ解析部
12 印刷装置
100 ホストPC
710、1310 先頭ページ位置
711、1311 総ページ数
712 ページリスト
1304 中間データ
1312 中間データ位置リスト
1313 ページ構成情報位置

【特許請求の範囲】
【請求項1】
レコードによって不変の固定コンテンツと、レコードに応じて異なる可変コンテンツとを含むバリアブルデータを作成するバリアブルデータ作成手段と、
複数ページの前記バリアブルデータを1物理ページに面付けする面付け方法を、ユーザによる操作に基づいて決定する決定手段と、
前記複数ページのバリアブルデータを、前記決定手段により決定された面付け方法で1物理ページに面付けして印刷を行うための印刷データを作成する印刷データ作成手段と、を有し、
前記印刷データ作成手段は、各レコードの各ページを識別するための情報を含む印刷データを作成することを特徴とする印刷制御装置。
【請求項2】
前記印刷データ作成手段は、前記バリアブルデータ作成手段により作成されたバリアブルデータと、前記決定手段により決定された面付け方法とに基づいて、各レコードの各ページの、実際に印刷される物理ページを識別するための情報を求め、当該求めた情報を含む印刷データを作成することを特徴とする請求項1に記載の印刷制御装置。
【請求項3】
前記各レコードの各ページの状態を保持する中間データを当該各レコードの各ページの夫々について作成する中間データ作成手段を有し、
前記印刷データ作成手段は、各レコードの各ページにおける前記中間データを識別するための情報を生成し、生成した情報を含む印刷データを作成することを特徴とする請求項1に記載の印刷制御装置。
【請求項4】
前記印刷データ作成手段は、前記各レコードにおける前記中間データの、実際に印刷される物理ページでの配置に関する情報を更に含む印刷データを作成することを特徴とする請求項3に記載の印刷制御装置。
【請求項5】
前記印刷データ作成手段は、前記決定手段により決定された面付け方法で前記バリアブルデータの全てのレコードを印刷する場合に各物理ページに面付けされるバリアブルデータを識別する情報を、前記バリアブルデータ作成手段により作成されたバリアブルデータと、前記決定手段により決定された面付け方法とに基づいて作成し、作成した情報を更に含む印刷データを作成することを特徴とする請求項3又は4に記載の印刷制御装置。
【請求項6】
レコードによって不変の固定コンテンツと、レコードに応じて異なる可変コンテンツとを含むバリアブルデータを作成するバリアブルデータ作成ステップと、
複数ページの前記バリアブルデータを1物理ページに面付けする面付け方法を、ユーザによる操作に基づいて決定する決定ステップと、
前記複数ページのバリアブルデータを、前記決定ステップにより決定された面付け方法で1物理ページに面付けして印刷を行うための印刷データを作成する印刷データ作成ステップと、を有し、
前記印刷データ作成ステップは、各レコードの各ページを識別するための情報を含む印刷データを作成することを特徴とする印刷制御方法。
【請求項7】
前記印刷データ作成ステップは、前記バリアブルデータ作成ステップにより作成されたバリアブルデータと、前記決定ステップにより決定された面付け方法とに基づいて、各レコードの各ページの、実際に印刷される物理ページを識別するための情報を求め、当該求めた情報を含む印刷データを作成することを特徴とする請求項6に記載の印刷制御方法。
【請求項8】
前記各レコードの各ページの状態を保持する中間データを当該各レコードの各ページの夫々について作成する中間データ作成ステップを有し、
前記印刷データ作成ステップは、各レコードの各ページにおける前記中間データを識別するための情報を生成し、生成した情報を含む印刷データを作成することを特徴とする請求項6に記載の印刷制御方法。
【請求項9】
前記印刷データ作成ステップは、前記各レコードにおける前記中間データの、実際に印刷される物理ページでの配置に関する情報を更に含む印刷データを作成することを特徴とする請求項8に記載の印刷制御方法。
【請求項10】
前記印刷データ作成ステップは、前記決定ステップにより決定された面付け方法で前記バリアブルデータの全てのレコードを印刷する場合に各物理ページに面付けされるバリアブルデータを識別する情報を、前記バリアブルデータ作成ステップにより作成されたバリアブルデータと、前記決定ステップにより決定された面付け方法とに基づいて作成し、作成した情報を更に含む印刷データを作成することを特徴とする請求項8又は9に記載の印刷制御方法。
【請求項11】
請求項6〜10の何れか1項に記載の印刷制御方法の各ステップをコンピュータに実行させることを特徴とするコンピュータプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate


【公開番号】特開2010−157099(P2010−157099A)
【公開日】平成22年7月15日(2010.7.15)
【国際特許分類】
【出願番号】特願2008−335040(P2008−335040)
【出願日】平成20年12月26日(2008.12.26)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】