(57)【要約】【課題】１部数分に相当するデータを複数部数分だけ複製して結合された印刷元データがアプリケーションから渡された場合に、両面印刷及び割付印刷の少なくとも何れか一方の設定がされても、プリンタドライバ側で結合された印刷元データの部と部の間に必要に応じて白紙データを挿入し、部単位毎に区切られた印刷体裁を提供する。【解決手段】両面印刷及び割付印刷の少なくとも何れか一方の印刷設定がなされている場合に、印刷元データＰから構成単位データｐの構成頁数を算出し（ステップＳ２１）、構成頁数と印刷元データＰの総頁数（Ｐａｇｅ）から、印刷元データＰの構成部数を算出し、構成単位データｐの最後に白紙の頁データを付加して白紙頁付データとし、印刷元データＰを構成部数と白紙頁付データとによって定義し直して印刷データへ変換する（ステップＳ２６）【選択図】図２
2008176651.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１頁以上の頁データを１つの構成単位データとし、前記構成単位データを複製して複数結合された印刷元データを、印刷装置が処理可能な印刷データへ変換する印刷制御装置であって、
両面印刷及び割付印刷の少なくとも何れか一方の印刷設定がなされている場合に、前記印刷元データから前記構成単位データの構成頁数を算出し、前記構成頁数と前記印刷元データの総頁数から、前記印刷元データの構成部数を算出する部数算出部と、
前記構成単位データの最後に白紙の頁データを付加して白紙頁付データとし、前記印刷元データを前記構成部数と前記白紙頁付データとによって定義し直した印刷データへ変換する印刷データ生成部と、を有することを特徴とする印刷制御装置。
【請求項２】
前記印刷元データの総頁数の約数を全て算出する約数算出部と、
前記印刷元データのうち最初の構成単位データを構成する各頁データの要素情報と、最初の構成単位データ以外の他の構成単位データを構成する各頁データの要素情報と、が一致するか否かを前記約数について繰り返し判断する要素情報判断部と、を有し、
前記部数算出部は、前記要素情報判断部が全ての各頁データの要素情報が一致すると判断したときの約数のうち最小値を、前記構成頁数とすることを特徴とする請求項１に記載の印刷制御装置。
【請求項３】
前記印刷データ生成部は、１の印刷媒体に印刷される頁データの最大頁数を算出し、前記最大頁数と前記構成頁数とによって、前記構成単位データの最後に付加する前記白紙のデータの枚数を算出することを特徴とする請求項１または２に記載の印刷制御装置。
【請求項４】
少なくとも１頁以上の頁データを１つの構成単位データとし、前記構成単位データを複製して複数結合された印刷元データを、印刷装置が印刷可能な印刷データへ変換する印刷制御装置の制御方法であって、
両面印刷及び割付印刷の少なくとも何れか一方の印刷設定がなされている場合に、前記印刷元データから前記構成単位データの構成頁数を算出し、前記構成頁数と前記印刷元データの総頁数から、前記印刷元データの構成部数を算出する算出ステップと、
前記構成単位データの最後に白紙の頁データを付加して白紙頁付データとし、前記印刷元データを前記構成部数と前記白紙頁付データとによって定義し直して印刷データへ変換する変換ステップと、を有することを特徴とする印刷制御装置の制御方法。
【請求項５】
前記算出ステップにおいて、
前記印刷元データのうち最初の構成単位データを構成する各頁データの要素情報と、最初の構成単位データ以外の他の構成単位データを構成する各頁データの要素情報と、が一致するか否かを前記約数について繰り返し判断し、
全ての各頁データの要素情報が一致すると判断したときの約数のうち最小値を、前記構成頁数として保持することを特徴とする請求項４に記載の印刷制御装置の制御方法。
【請求項６】
前記変換ステップにおいて、１の印刷媒体に印刷される頁データの最大頁数を算出し、前記最大頁数と前記構成頁数とによって、前記構成単位データの最後に付加する前記白紙のデータの枚数を算出することを特徴とする請求項４または５に記載の印刷制御方法の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、少なくとも１頁以上の頁データを１つの構成単位データとし、構成単位データを複製して複数結合された印刷元データを、印刷装置が印刷可能な印刷データへ変換する印刷制御装置及びその制御方法に関する。
【背景技術】
【０００２】
従来、様々な印刷形式で印刷結果を出力するよう対応された印刷装置が提供されている。このような印刷装置は、一般にホストコンピュータから印刷ジョブを受けると、指定された印刷形式に基づき印刷処理を実行することができる。例えば、印刷形式には次のような形式がある。１枚の用紙に対して複数頁を割り付けて印刷する割付印刷、１枚の用紙の表面と裏面の両面に印刷する両面印刷、１つのドキュメントを複数部数に亘って部単位で印刷する部単位印刷等が知られている。印刷装置が対応可能であれば、これらの印刷形式を複合的に設定することも可能である。
【０００３】
この場合、ホストコンピュータ側で実行する内部処理について説明する。ホストコンピュータに組み込まれた各アプリケーションから印刷装置で印刷を行う際、アプリケーションとプリンタドライバとの間でやり取りが行われ、アプリケーションはさまざまな形式で印刷元データを加工し、プリンタドライバへ送る。アプリケーションの中には、複数部数の印刷を行う際、複数部数のデータを印刷すると言う命令をプリンタドライバに送るのではなく、プリンタドライバには１部のみ印刷すると言う命令を送り、アプリケーション内でデータを加工して、複数部数のデータを１まとまりの印刷元データとして、プリンタドライバに送る場合がある。
【０００４】
ここで、具体的に両面印刷や割付印刷などに対応した印刷装置で、両面印刷や割付印刷などの設定を行って複数部数印刷を行う場合について考える。印刷元データが奇数頁を有しているデータで且つ、両面印刷が設定されていた場合、アプリケーションからプリンタドライバには上記のような１部のみ印刷すると言う命令と、１まとまりとなった複数部数のデータ（印刷元データ）、とが送られる。プリンタドライバは受け取った印刷元データをそのまま印刷データへラスタライズしてプリンタへ転送すると、プリンタでは、１部目の最後の奇数頁を用紙の表面に印刷し、２部目の最初の頁をその用紙の裏面、すなわち１部目の最後の奇数頁の裏面に印刷される。これでは、それぞれ異なる部に含まれる頁が１枚の用紙の表裏に印刷されてしまい都合が悪い。また、割付印刷が設定された場合も同様に印刷元データが奇数頁を有している場合は、１部目の最後の奇数頁と、２部目の最初の頁のデータが、１枚の用紙に印刷されてしまうと言う不具合が生じる。
【０００５】
ここで、図６を参照して、具体的な印刷元データの構成について説明する。ここでは、１頁からＮ頁に亘るドキュメントを２部印刷する場合を説明する。図６は、部単位印刷を設定せずに通常の印刷処理を指示したときにアプリケーションが加工する印刷元データの構成を示している。図６に示すように、アプリケーションはヘッダ情報で部数を管理し、印刷元データは１部を構成する１頁からＮ頁までのデータを順に並べた構成となっており、これに基づきプリンタが印刷処理を実行すると１頁目が２部、２頁目が２部、３頁目が２部、Ｎ頁目が２部というように頁毎に部数分の印刷結果が得られる。
【０００６】
一方、図７は、部単位印刷を設定したときにアプリケーションが加工する印刷元データの構成を示している。図７に示すように、アプリケーションはヘッダ情報で部数を管理せず、１部を構成するデータを２つ連続させて１まとまりにした構成となっている。すなわち、１部目の１頁からＮ頁のデータを並べた後、続いて２部目の１頁からＮ頁のデータを並べて印刷元データとしている。
【０００７】
特許文献１には、各頁データに付与された部数番号を参照することよって部の切り替わりを発見し、異なる部数番号を読み出したときに、その部を構成するデータが奇数頁であった場合には、白紙データを生成する方法が記載されている。これにより部単位印刷を設定した場合に生じる印刷体裁の不具合を解決することができる。すなわち、１部目の最終頁データと２部目の最初頁データとの間に、白紙の頁データを挿入することにより、１部目と２部目のデータの一部が同じ用紙に印刷されてしまうと言う問題を回避することができるようになっている。
【特許文献１】特開平１０−１４３３４２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１に記載の方法は、プリンタドライバがアプリケーションから部数情報をもらっている場合にのみ適用できる方法である。すなわち、図６に示したようなヘッダ情報で部数を管理するアプリケーションの場合に有効であるが、図７に示すようなヘッダ情報で部数を管理しないアプリケーションの場合には、プリンタドライバは部数情報を取得できないため、印刷元データが１部構成であると認識してしまう。このため、白紙データを挿入するにしても１部目のデータと２部目のデータの境界（図７の矢印Ｚ参照）を検出できないため相変わらず上述の不具合は発生してしまう。
【０００９】
本発明は、上記課題を解決するためになされたものであって、１部数分に相当するデータを複数部数分だけ複製して結合された印刷元データがアプリケーションから渡された場合に、両面印刷及び割付印刷の少なくとも何れか一方の設定がされても、プリンタドライバ側で結合された印刷元データの部と部の間に必要に応じて白紙データを挿入し、部単位毎に区切られた印刷体裁を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決することのできる本発明は、少なくとも１頁以上の頁データを１つの構成単位データとし、前記構成単位データを複製して複数結合された印刷元データを、印刷装置が処理可能な印刷データへ変換する印刷制御装置であって、
両面印刷及び割付印刷の少なくとも何れか一方の印刷設定がなされている場合に、前記印刷元データから前記構成単位データの構成頁数を算出し、前記構成頁数と前記印刷元データの総頁数から、前記印刷元データの構成部数を算出する部数算出部と、
前記構成単位データの最後に白紙の頁データを付加して白紙頁付データとし、前記印刷元データを前記構成部数と前記白紙頁付データとによって定義し直した印刷データへ変換する印刷データ生成部と、を有することを特徴とする。
また、上記課題を解決することのできる本発明は、少なくとも１頁以上の頁データを１つの構成単位データとし、前記構成単位データを複製して複数結合された印刷元データを、印刷装置が印刷可能な印刷データへ変換する印刷制御装置の制御方法であって、
両面印刷及び割付印刷の少なくとも何れか一方の印刷設定がなされている場合に、前記印刷元データから前記構成単位データの構成頁数を算出し、前記構成頁数と前記印刷元データの総頁数から、前記印刷元データの構成部数を算出する算出ステップと、
前記構成単位データの最後に白紙の頁データを付加して白紙頁付データとし、前記印刷元データを前記構成部数と前記白紙頁付データとによって定義し直して印刷データへ変換する変換ステップと、を有することを特徴とする。
【００１１】
上記構成によれば、構成単位データを複製して複数結合された印刷元データを、構成単位データの最後に白紙の頁データを付加した白紙頁データと構成部数とによって定義し直した印刷データへ変換するよう構成されている。例えば、アプリケーションから、構成単位データを複製して複数結合された印刷元データが渡された場合でも、プリンタドライバ側で構成単位データの構成頁数を算出することができる。また、印刷元データの総頁数を構成頁数で割ることによって、印刷元データに構成単位データが幾つ含まれているかを算出することができる。これにより、結合されている構成単位データ同士の区切りを把握することができるので、必要に応じて構成単位データと構成単位データとの間に適当な枚数の白紙の頁データを挿入することができる。
【００１２】
また、本発明の印刷制御装置は、
前記印刷元データの総頁数の約数を全て算出する約数算出部と、
前記印刷元データのうち最初の構成単位データを構成する各頁データの要素情報と、最初の構成単位データ以外の他の構成単位データを構成する各頁データの要素情報と、が一致するか否かを前記約数について繰り返し判断する要素情報判断部と、を有し、
前記部数算出部は、前記要素情報判断部が全ての各頁データの要素情報が一致すると判断したときの約数のうち最小値を、前記構成頁数とすることを特徴とする。
また、本発明の印刷制御装置の制御方法は、
前記算出ステップにおいて、
前記印刷元データのうち最初の構成単位データを構成する各頁データの要素情報と、最初の構成単位データ以外の他の構成単位データを構成する各頁データの要素情報と、が一致するか否かを前記約数について繰り返し判断し、
全ての各頁データの要素情報が一致すると判断したときの約数のうち最小値を、前記構成頁数として保持することを特徴とする。
【００１３】
上記構成によれば、印刷元データのうち最初の構成単位データを構成する各頁データの要素情報と、最初の構成単位データ以外の他の構成単位データを構成する各頁データの要素情報と、が一致するかどうかを判断するよう構成されている。ここで、印刷元データの総頁数を（Ｐａｇｅ）、構成単位データの構成頁数を（Ａ）、印刷元データの構成部数を（Ｂ）とすると、（Ｐａｇｅ）＝（Ａ）×（Ｂ）と表すことができる。つまり、印刷元データの総頁数の約数とは（Ａ）あるいは（Ｂ）に該当し、（Ａ）に当てはまる数値が決まれば（Ｂ）に当てはまる値が決まる。
【００１４】
総頁数の全ての約数を構成頁数（Ａ）の候補として順に当てはめ候補とされた各構成頁数によって１つの構成単位データを区切ると、１部目の構成単位データを構成する各頁データの要素情報と、２部目以降の構成単位データを構成する各頁データの要素情報とが全て一致する場合が出てくる。この一致したときの約数を構成頁数（ａ）とすればこれに応じて構成部数（ｂ）も一意に決まる。このように、総頁数の約数を用いることによって、互いに異なる構成単位データに含まれるであろう頁データを検討付けて処理することができる。したがって、印刷元データに含まれる全ての頁データの要素情報についてそれぞれ一致するか否かを逐一判断する必要がないため、処理速度を高速化することができる。
【００１５】
また、要素情報が全て一致したときの約数が複数ある場合には、そのうちの最小値を構成頁数とする。最小値をとることによって、最小単位の構成部数を確実に求めることができる。
例えば、５頁の文書データを４部、割り付け及び両面印刷設定した場合に、印刷元データの総頁数は（Ｐａｇｅ）＝２０、総頁数の約数は、１,２,４,５,１０,２０の６つである。約数１０を構成頁数の候補とすれば、構成部数は（Ｂ）＝（Ｐａｇｅ）／（Ａ）＝２０／１０＝２となり、構成部数（Ｂ）＝２部である。この場合、１部目の１頁から１０頁の要素情報と２部目の１頁から１０頁の要素情報とが一致する。
一方、約数５を構成頁数の候補とすれば、構成部数は（Ｂ）＝（Ｐａｇｅ）／（Ａ）＝２０／５＝４となり、構成部数（Ｂ）＝４部である。この場合は、１部目の１頁から５頁の要素情報と、２部目の１頁から５頁の要素情報と、３部目の１頁から５頁の要素情報と、４部目の１頁から５頁の要素情報と、が一致する。
したがって、要素情報が全て一致したときの約数は、５と１０の２つの約数になる。この場合には、より小さい方の約数である５を構成頁数とすれば、印刷元データを構成する確実な構成部数を求めることができ、各構成単位データを明確に区切ることができる。
【００１６】
また、本発明において、前記印刷データ生成部は、１の印刷媒体に印刷される頁データの最大頁数を算出し、前記最大頁数と前記構成頁数とによって、前記構成単位データの最後に付加する前記白紙のデータの枚数を算出することを特徴とする。
また、本発明は、前記変換ステップにおいて、１の印刷媒体に印刷される頁データの最大頁数を算出し、前記最大頁数と前記構成頁数とによって、前記構成単位データの最後に付加する前記白紙のデータの枚数を算出することを特徴とする。
【００１７】
上記構成によれば、構成単位データの最後に付加する白紙のデータの枚数を算出することができるので、割り付け印刷及び両面印刷の少なくとも何れか一方の印刷設定がされていた場合に、設定内容に応じた適切な枚数の白紙データを部と部の間に挿入することができる。したがって、部単位毎に区切られた印刷体裁を提供することができる。
また、白紙のデータの枚数は、１の印刷媒体に印刷される頁データの最大頁数と、構成頁数と、によって求めることができる。
例えば、１頁に４頁分の頁データを割り付けて印刷するよう設定され、かつ両面印刷が設定されていた場合には、１枚の印刷用紙の片面に４頁分、他面に４頁分、合計８頁分印刷される。これが最大頁数である。５頁の文書データを４部印刷する場合に、各部とも、印刷媒体の１頁の表面に４頁分割り付け印刷され、裏面に１頁分割り付け印刷され、裏面に３頁分の白紙ページを残した印刷体裁が出力されることが望ましい。このためには、各部と部の間に３頁分の白紙の頁データを挿入する必要がある。本発明によれば、この白紙の頁データを挿入する枚数を算出することができので、従来のように、裏面に次の部の頁データが印刷されてしまうような不都合が発生することを防止することができる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の実施の形態における印刷装置について図面を用いて説明する。図１は、本発明の実施の形態における印刷制御装置の構成を説明するためのブロック図である。
【００１９】
本実施形態の印刷システムは、ホストコンピュータ１とプリンタ２で構成される。また、ホストコンピュータ１は、主に、アプリケーション１０、プリンタドライバ１１（印刷制御装置）、送受信部１２、などで構成される。更に、プリンタドライバ１１は、印刷データ生成部１３と要素情報判断部１４と約数算出部１５とを含む。プリンタ２は、主に、送受信部２０、プリントバッファ２１、印刷制御部２２、印刷機構２３、などで構成される。
【００２０】
ホストコンピュータ１のアプリケーション１０は、印刷に係る各種コマンド等をプリンタ２に実行させるためのユーザーインターフェースを提供する。ユーザーは、アプリケーション上で印刷元データの作成や編集、印刷指示を行う。プリンタドライバ１１は、アプリケーション１０により呼び出され、プリンタ２の動作を直接制御する。具体的には、アプリケーション１０は与えられた設定等に応じて印刷元データを加工してプリンタドライバ１１に送る。プリンタドライバ１１の印刷データ生成部１３では、アプリケーション１０から送られた印刷元データをプリンタ２で処理可能な形式に変換して印刷データを生成する。
【００２１】
本実施形態のアプリケーション１０は、ユーザーが部単位印刷を設定すると、少なくとも１頁以上の頁データを１つの構成単位データとし、構成単位データを複製して複数結合した印刷元データをプリンタドライバ１１へ送るようになっている。例えば、ユーザーが編集、作成した１つの文書ファイルが１頁からＮ頁までの頁データによって構成され、この文書ファイルを２部、部単位で印刷するよう設定した場合には、アプリケーション１０は図７のように印刷元データＰを加工してプリンタドライバ１１へ送るようになっている。
【００２２】
従来では、プリンタドライバ１１は印刷元データＰを受け取ると印刷元データＰをそのまま印刷データに変換していた。しかし、本実施形態では、約数算出部１４と要素情報判断部１５とを備える部数算出部１６が、構成単位データｐの構成頁数及び印刷元データＰに含まれる構成単位データｐの数と（構成部数）を算出し、印刷データ生成部１３が、印刷元データＰを構成単位データの最後に適切な枚数の白紙の頁データを付加した印刷データへ変換することができるよう構成されている。
【００２３】
約数算出部１４は、アプリケーション１０で加工された印刷元データＰの総頁数の約数を算出する。図５のような印刷元データＰの場合は、１頁からＮ頁の文書データが２部分結合されているので総頁数は２Ｎ頁であり、この２Ｎの約数を全て算出する。
【００２４】
要素情報判断部１５は、印刷元データＰのうち最初の構成単位データｐ１を構成する各頁データの要素情報と、最初の構成単位データｐ１以外の他の構成単位データ（ここではｐ２）を構成する各頁データの要素情報と、が一致するか否かを、約数算出部１４が算出した約数について繰り返し判断する。具体的には、１部目１頁目のデータの要素情報と２部目１頁目のデータの要素情報、１部目２頁目のデータの要素情報と２部目２頁目のデータの要素情報、…１部目Ｎ頁目のデータの要素情報と２部目Ｎ頁目のデータの要素情報が一致するか否かを判断する。これらの、詳細な処理については後述する。
なお、要素情報とは、頁データの内容が同一であるか否かを判断することができる項目であればどのような値でもよく、例えば各頁データのデータサイズを要素情報としてもよい。
【００２５】
印刷データ生成部１３は、１の印刷用紙に印刷される頁データの最大頁数を算出し、最大頁数と構成頁数とによって、構成単位データｐの最後に付加する白紙のデータの枚数を算出する。さらに、構成単位データｐの最後に算出した枚数分の白紙の頁データを付加して白紙頁付データとし、印刷元データＰを部数算出部１６によって算出された構成部数と、白紙頁付データと、によって定義し直した印刷データＰ′へ変換する。
【００２６】
送受信部１２は、印刷データ生成部１３によって生成された印刷データをプリンタ２へ送信するためのインターフェース部である。なお、アプリケーション１０およびプリンタドライバ１１は、ホストコンピュータ１の図示しないＲＯＭあるいはフラッシュＲＯＭ等に予め格納されたプログラムであり、それぞれの各種機能は、ホストコンピュータ１の図示しない制御部（ＣＰＵ）で上記プログラムを読み出し、実行することにより実現される。
【００２７】
プリンタ２の送受信部２０は、ホストコンピュータ１から送信された印刷データ等を受信するためのインターフェース部である。送受信部２０で一時保存した印刷データはプリントバッファ２１に展開され、印刷機構２３で印字可能なドットデータに変換される。印刷制御部２２は、受信した印刷コマンドに基づいて、印刷機構２３の動作を制御する。印刷機構２３は、変換されたドットデータに基づいて印字動作を行う。なお、印刷機構２３は、印刷用紙に直接印刷を行うための印刷ヘッドやキャリッジ等を備ええる。
【００２８】
（印刷元データから印刷データへの変換処理について）
次に、本実施形態のホストコンピュータ１のプリンタドライバ１１が行う印刷元データを印刷データへ変換する処理について説明する。図２は、印刷元データを印刷データへ変換する処理を説明するためのフローチャートである。
【００２９】
以下では、ユーザーがアプリケーション１０で編集、作成した１つの文書ファイルが１頁から５頁までの頁データによって構成され、この文書ファイルを両面印刷及び割付印刷（用紙の片面に４頁分の頁データを割り付けて印刷する設定とする。）の印刷方法で２部、部単位で印刷するよう設定した場合を前提として説明する。つまり、上記背景技術において説明した図７において印刷元データＰを構成する各構成単位データｐ１，ｐ２がそれぞれ５頁の頁データによって構成された印刷元データＰをプリンタドライバ１１がアプリケーション１０から受けた場合である。
【００３０】
まず、プリンタドライバ１１は、アプリケーション１０から１頁から５頁の頁データを２部分結合して全体を１部とした印刷元データＰを受けると、印刷元データＰのヘッダ情報から総頁数（Ｐａｇｅ）を取得する（ステップＳ１１）。ここでは、印刷元データの総頁数（Ｐａｇｅ）＝１０である。
【００３１】
次に、総頁数（Ｐａｇｅ）＝１０の約数をＮ個全て算出する。１０の約数は、１，２，５，１０の４個である。これを、ｍｅａ[０]＝１，ｍｅａ[１]＝２，ｍｅａ[２]＝５，ｍｅａ[Ｎ−１]＝ｍｅａ[３]＝１０と定義し、さらにｎ＝Ｎ−２と定義する（ステップＳ１３）。ｎ＝Ｎ−１とせずｎ＝Ｎ−２とするのは、ｎ＝Ｎ−１の場合の約数ｍｅａ[Ｎ−１]は必ず印刷元データＰの総頁数＝Ｐａｇｅであり、この場合は印刷元データＰが複数部数となることがなく白紙頁データを挿入する必要がないので本実施形態の計算から除外するためである。まずは、ｎ＝Ｎ−２＝４−２＝２とする。
【００３２】
（約数ｍｅａ[２]＝５を当てはめたときの処理）
各構成単位データｐ１，ｐ２を構成する頁数をカウントする頁数カウンタｐＣｎｔを初期化しｐＣｎｔ＝１とし（ステップＳ１４）、さらに印刷元データＰを構成する部数をカウントする部数カウンタｂＣｎｔを初期化してｂＣｎｔ＝１とする（ステップＳ１５）。そして、印刷元データＰのうち最初の構成単位データｐ１を構成する各頁データの要素情報と、最初の構成単位データｐ１に続く構成単位データｐ２を構成する各頁データの要素情報と、が一致するか否かを判断する（ステップＳ１６）。各カウンタを用いて表せば、1部目のｐＣｎｔ頁と（ｂＣｎｔ＋1）部目のｐＣｎｔ頁とが一致するか否かを判断する。この判断は、例えば次の式１によって表すことができる。
Ｂ(ｐＣｎｔ)＝Ｂ(ｐＣｎｔ+ｂＣｎｔ＊ｍｅａ[ｎ])・・・式１
【００３３】
具体的に数値を当てはめてみる。まず約数ｍａｅ[ｎ]＝５を当てはめてみると、構成単位データｐ１を構成する１頁目のデータの要素情報、Ｂ(ｐＣｎｔ)＝Ｂ（１）と、最初の構成単位データｐ１に続く２部目の構成単位データｐ２を構成する１頁目のデータの要素情報、Ｂ(ｐＣｎｔ+ｂＣｎｔ＊ｍｅａ[ｎ])＝Ｂ（１+１＊５）＝Ｂ(６)と、が一致するか否かを判断する。すなわち、印刷元データＰの１頁目と６頁目の要素情報が一致するかを判断する。
【００３４】
１部目の１頁と、ｂＣｎｔ+１＝１+１＝２部目の１頁の要素情報が一致する場合には（ステップＳ１６：Ｙｅｓ）、部数カウンタｂＣｎｔに+１した値が、現在想定している頁数あたりの部数に等しいか否かを判断する（ステップＳ１７）。ここで、印刷元データＰを構成する各構成単位データｐ１，ｐ２は、約数に相当する構成頁数ｍｅａ[ｎ]を有するものと仮定すると、現在想定している構成頁数ｍｅａ[ｎ]あたりの構成部数はＰａｇｅ／ｍｅａ[ｎ]によって求めることができる。すなわち、１部目の１頁から構成頁数までの各頁データと、想定する構成部数の１頁から構成頁数までの各頁データとが一致するかを、構成単位データ毎に比較判断する。ステップＳ１７の判断は、次の式２によって表すことができる。
ｂＣｎｔ+１＝Ｐａｇｅ／ｍｅａ[ｎ]・・・式２
【００３５】
１部目の１頁目のデータと２部目の１頁目のデータ、１部目の１頁目のデータと３部目の１頁目のデータ、１部目の１頁目のデータと４部目の１頁目のデータ、・・・１部目の１頁目のデータと、想定される構成部数部目の１頁目のデータ、が一致するか否かを順に比較判断する。想定される構成部数全てについて１頁目のデータの比較判断を行った場合には、ステップＳ１７の条件を満たすため各構成部の２頁目のデータについての比較判断へ進む。つまり、想定される構成部数全てに関して各頁データの比較判断が行われるまではステップＳ１７の条件を満たすことができない（ステップＳ１７：Ｎｏ）。すなわち、構成部数全てに関して各頁データの比較判断が行われるようステップＳ１７の条件を満たすまで部数カウンタｂＣｎｔをカウントアップして(ステップＳ１８)、ステップＳ１６，ステップＳ１７の判断を繰り返し行うよう構成されている。
【００３６】
本実施形態の具体的な数値を当てはめてみると、ここではｍｅａ[ｎ]＝５とした場合の印刷元データＰの構成部数は、Ｐａｇｅ／ｍｅａ[ｎ]＝１０／５＝２であり、ステップＳ１７の式２の条件を満たす。すなわち、ｂＣｎｔ+１＝１+１＝２＝Ｐａｇｅ／ｍｅａ[ｎ]＝２であるから（ステップＳ１７：Ｙｅｓ）、次のステップＳ１９の処理を実行する。構成単位データｐ１の２頁目の要素情報と構成単位データｐ２の２頁目の要素情報が一致するかを判断するため、頁数カウンタｐＣｎｔを+１する（ステップＳ１９）。すなわち、ｐＣｎｔ＝ｐＣｎｔ+１＝１+１＝２とする。
【００３７】
次に、頁数カウンタｐＣｎｔが現在想定している頁数よりも大きい値か否かを判断する（ステップＳ２０）。すなわち、構成単位データｐ１，ｐ２を構成する全ての頁データについて要素情報が一致するか否かを繰り返し判断するため、頁数カウンタｐＣｎｔをカウントアップした値が構成単位データｐ１，ｐ２の構成頁数を超えたかを判断している。ステップＳ２０の判断は、次の式３によって表すことができる。
ｐＣｎｔ＞ｍｅａ[ｎ]・・・式３
【００３８】
ステップＳ１９で頁数カウンタｐＣｎｔを１だけカウントアップしたので、ｐＣｎｔ＝２＜ｍｅａ[ｎ]＝５となり、式３は満たさない（ステップＳ２０：Ｎｏ）。このため、ステップＳ１５に戻って部数カウンタｂＣｎｔを初期化する。ここでは、現在の部数カウンタｂＣｎｔ＝１のままである。
【００３９】
再びステップＳ１６の式１の条件判断を行う。Ｂ(ｐＣｎｔ)＝Ｂ（２）＝Ｂ(ｐＣｎｔ+ｂＣｎｔ＊ｍｅａ[ｎ])＝Ｂ（２+１＊５）＝Ｂ（７）。構成単位データｐ１を構成する２頁目のデータの要素情報と、２部目の構成単位データｐ２を構成する２頁目のデータの要素情報が一致するか否かを判断する。すなわち、印刷元データＰの２頁目と７頁目の要素情報が一致するかを判断する。
【００４０】
１部目の２頁目の要素情報と、２部目の２頁目の要素情報が一致する場合には（ステップＳ１６：Ｙｅｓ）、再びステップＳ１７の式２の条件判断を行う。すなわち、ｂＣｎｔ+１＝１+１＝２＝Ｐａｇｅ／ｍｅａ[ｎ]＝１０／５＝２であり条件を満たすため（ステップＳ１７：Ｙｅｓ）、構成単位データｐ１の３頁目の要素情報と構成単位データｐ２の３頁目の要素情報が一致するかを判断するため、頁数カウンタｐＣｎｔ＝２を+１して頁数カウンタｐＣｎｔ＝３とする（ステップＳ１９）。
【００４１】
次に再び、頁数カウンタｐＣｎｔが現在想定している頁数よりも大きい値か否かをステップＳ２０において判断する。ｐＣｎｔ＝３＜ｍｅａ[ｎ]＝５であるため（ステップＳ２０：Ｎｏ）、ステップＳ１５に戻って部数カウンタｂＣｎｔを初期化する。
【００４２】
以降、構成単位データｐ１の１頁から５頁，構成単位データｐ２の１頁から５頁について、各頁データの要素情報がステップＳ１６における式１の条件判断が行われる。そして、ステップＳ１６で、構成単位データｐ１を構成する５頁目のデータの要素情報と、２部目の構成単位データｐ２を構成する５頁目のデータの要素情報が一致すると判断し、ステップＳ１９で頁数カウンタｐＣｎｔがカウントアップされてｂＣｎｔ＝ｂＣｎｔ+１＝５+１＝６となると、ステップＳ２０における式３の条件を満たすため（つまり、ｐＣｎｔ＝６＞ｍｅａ[ｎ]＝５）ステップＳ２１へ分岐する（ステップＳ２０：Ｙｅｓ）。
【００４３】
ステップＳ２１では、ｍｅａ[ｎ]＝５を印刷元データＰを構成する各構成単位データｐ１，ｐ２の構成頁数として保存する。次に、ステップＳ１２で求めた他の約数について上記のステップを実行するため、ステップＳ１３で定義したｎの値が０であるかを判断する（ステップＳ２２）。ステップＳ２２の判断を行うことにより、ｎが０になるまで他の約数を当てはめることができる。すなわち、ｍｅａ[２]＝５，ｍｅａ[１]＝２，ｍｅａ[０]＝１の値を順に当てはめていくことができる。ここでは、ｎ＝２であるためｎ＝０の条件は満たさない（ステップＳ２２：Ｎｏ）。ｎをカウントダウンすると、ｎ＝ｎ−１＝２−１＝１となり(ステップＳ２３)、次に当てはめる約数ｍｅａ[ｎ]＝ｍｅａ[１]＝２となる。
【００４４】
（約数ｍｅａ[１]＝２を当てはめたときの処理）
ステップＳ１４に戻り、頁数カウンタを初期化してｐＣｎｔ＝１とし、さらにステップＳ１５で部数カウンタを初期化してｂＣｎｔ＝１とする。
具体的に数値を当てはめてみる。ステップＳ１６において、式１に約数ｍａｅ[ｎ]＝２を当てはめてみると、構成単位データｐ１を構成する１頁目のデータの要素情報＝Ｂ(ｐＣｎｔ)＝Ｂ（１）と、最初の構成単位データｐ１に続く２部目の構成単位データｐ２を構成する１頁目のデータの要素情報＝Ｂ(ｐＣｎｔ+ｂＣｎｔ＊ｍｅａ[ｎ])＝Ｂ（１+１＊２）＝Ｂ(３)と、が一致するか否かを判断する。すなわち、印刷元データＰの１頁目と３頁目の要素情報が一致するかを判断する。
【００４５】
ここでは、１部目の１頁と、ｂＣｎｔ+１＝１+１＝２部目の１頁の要素情報は一致しない（ステップＳ１６：Ｎｏ）。つまり、印刷元データＰの１頁目と３頁目の要素情報は異なる値である。このため、ステップＳ２２までとび、ｎ＝０であるかを判断する。ここでは、ｎ＝１であるためｎ＝０の条件は満たさない（ステップＳ２２：Ｎｏ）。さらに、ｎをカウントダウンする(ステップＳ２３)。ｎ＝ｎ−１＝１−１＝０となり、次に当てはめる約数ｍｅａ[ｎ]＝ｍｅａ[０]＝１となる。
【００４６】
（約数ｍｅａ[０]＝２を当てはめたときの処理）
ステップＳ１４に戻り、頁数カウンタを初期化してｐＣｎｔ＝１とし、さらにステップＳ１５で部数カウンタを初期化してｂＣｎｔ＝１とする。
具体的に数値を当てはめてみる。ステップＳ１６において、式１に約数ｍａｅ[ｎ]＝１を当てはめてみると、構成単位データｐ１を構成する１頁目のデータの要素情報＝Ｂ(ｐＣｎｔ)＝Ｂ（１）と、最初の構成単位データｐ１に続く２部目の構成単位データｐ２を構成する１頁目のデータの要素情報＝Ｂ(ｐＣｎｔ+ｂＣｎｔ＊ｍｅａ[ｎ])＝Ｂ（１+１＊１）＝Ｂ(２)と、が一致するか否かを判断する。すなわち、印刷元データＰの１頁目と２頁目の要素情報が一致するかを判断する。
【００４７】
ここでは、１部目の１頁と、ｂＣｎｔ+１＝１+１＝２部目の１頁の要素情報は一致しない（ステップＳ１６：Ｎｏ）。つまり、印刷元データＰの１頁目と２頁目の要素情報は異なる値である。このため、ステップＳ２２までとび、ｎ＝０であるかを判断する。ここでは、ｎ＝０であるためｎ＝０の条件を満たす（ステップＳ２２：Ｙｅｓ）。これにより、総頁数Ｐｅｇｅ＝１０の約数＝１，２，５，１０の４つの約数ｍｅａ[ｎ]のうち、[Ｎ−１]＝ｍｅａ[３]＝１０を除く全ての約数ｍｅａ[０]＝１，ｍｅａ[１]＝２，ｍｅａ[２]＝５を当てはめて、要素情報が一致するかを判断したことになる。つまり、本実施形態では、ステップＳ２１で保存した約数ｍｅａ[２]＝５が構成単位データｐ１，ｐ２を構成する構成頁数となる。
【００４８】
（白紙頁データの枚数を算出する処理）
次に、１枚の用紙に印刷される最大の頁数（ｐＰａｇｅ）を求める（ステップＳ２４）。本実施形態では、両面印刷及び割付印刷の印刷方法で２部、部単位で印刷するよう設定されている。そして、割付印刷は１枚の用紙の片面に４頁分の頁データを割り付けて印刷するよう設定されている。したがって、１枚の用紙に印刷される頁数は、次の式４によって表すことができる。
ｐＰａｇｅ＝Ｕｐ＊２（両面印刷の場合）・・・式４    Ｕｐ：用紙の片面に印刷可能な頁数
なお、片面印刷及び割付印刷の印刷方法が設定されていた場合には、次の式５によって表すことができる。
ｐＰａｇｅ＝Ｕｐ・・・式５
具体的な数値を当てはめると、ｐＰａｇｅ＝Ｕｐ＊２＝４＊２＝８となり、１枚の用紙に最大で８ページ分が印刷される。
【００４９】
そして、挿入する白紙頁データの枚数（ｗＰａｇｅ）を求める（ステップＳ２５）。挿入する白紙頁データの枚数は、次の式６によって表すことができる。
ｗＰａｇｅ＝ｐＰａｇｅ−ｍｅａ[ｎ]％ｐＰａｇｅ（ただし、ｍｅａ[ｎ]は最小値）・・・式６
なお、ｍｅａ[ｎ]％ｐＰａｇｅは、ｍｅａ[ｎ]をｐＰａｇｅで割ったときの余りを意味する。
具体的な数値を当てはめると、ｗＰａｇｅ＝ｐＰａｇｅ−ｍｅａ[ｎ]％ｐＰａｇｅ＝８−５／８の余り＝８−５＝３となり、３頁分の白紙頁データが必要となることが分かる。
【００５０】
最後に、構成部数が５部（Ｐａｇｅ／ｍｅａ[ｎ]＝１０／２＝５）、白紙頁データを３頁分付加して、印刷元データＰを印刷データへ変換し（ステップＳ２６）、変換された印刷データＰ′はプリンタ２へ送信されて、印刷処理が実行される。
【００５１】
図３は、図７の印刷元データＰを上述した変換処理を行うことによって得られた印刷データＰ′である。図７の印刷元データＰのヘッダ情報に含まれていた部数＝１は、ステップＳ２１で保存された構成頁数＝５を元に算出される構成部数によって書き換えられる。すなわち、構成部数＝Ｐａｇｅ／ｍｅａ[ｎ]＝１０／５＝２に書き換えられている。さらに、３頁分の白紙頁データは印刷データＰ′の最後に印刷フッタ情報として付加されている。図３の印刷データＰ′がプリンタ２へ送信されると、プリンタ２の印刷制御部２２は印刷データＰ′にしたがって印刷処理を実行する。
【００５２】
図４は、プリンタ２の印刷制御部２２が印刷データＰ′にしたがって印刷処理を実行した場合の印刷結果を示した模式図である。図４に示すように、１枚の用紙Ｘの表面には１ページから４ページの頁データが割り付けて印刷され、用紙Ｘの裏面には５ページ目の頁データと３ページ分の白紙ページが割り付けて印刷されている。これを１部目、２部目と部数毎に印刷して出力することができる。
【００５３】
このように本実施形態によれば、両面印刷及び割付印刷が設定され、文書データを複数部数にわたって部単位で印刷する指示が与えられた場合でも、部と部の間に適当な頁数の白紙ページが挿入されるので、１部目の最後のページＥと、２部目の最初のページＦが１部目の用紙Ｘ１に印刷されてしまうと言う不具合が発生することを防止することができる。
【００５４】
なお、ここではステップＳ２１で保存した約数はｍｅａ[２]＝５の１つだけであったが、場合によっては複数保持することもある。例えば、アプリケーション１０から１頁から５頁の頁データを４部分結合して総頁数＝２０頁を１部とする印刷元データＰを受けた場合には、総頁数の約数は１，２，４，５，１０，２０であり、ｍｅａ[０]＝１，ｍｅａ[１]＝２，ｍｅａ[２]＝４，ｍｅａ[３]＝５，ｍｅａ[Ｎ−２＝４]＝１０，ｍｅａ[Ｎ−１＝５]＝２０である。約数ｍｅａ[５]＝２０以外の約数を順にあてはめていくと、ステップＳ２１においてｍｅａ[４]＝１０とｍｅａ[３]＝５の２つの値が保持される。このときはステップＳ２５においてその内の最小のｍｅａ[３]＝５を用いて白紙頁データの枚数を算出すればよい。
【００５５】
（変形例）
次に、図２のフローチャートを参照して説明した、印刷データ変換処理の変形例について図５を参照して説明する。図５は、印刷データ変換処理の変形例を説明するフローチャートである。
上記実施形態では、１部目の１頁目と２部目の１頁目を比較すると、部数カンウタをカウントアップして１部目の１頁目と３部目の１頁目とが同一であるか否かを判断し、全ての構成部の１頁目の比較判断が終了すると、頁数カウンタをカウントアップして１部目の２頁目と全ての構成部の２頁目を比較する。このように、各構成単位データのうち同一の頁数に該当する頁データだけを順次読み出して比較判断するようになっている。
【００５６】
一方、図５に示す変形例では、図２のいくつかのステップを入れ替えた処理となっている。１部目の１頁目と２部目の１頁目を比較すると（ステップＳ１６）、まず頁数カウンタをカウントアップして（ステップＳ１９）１部目の２頁目と２部目の２頁目とが同一であるか否かを比較する。１部目と２部目の各頁について全て比較判断が終了すると、次に部数カウンタをカウントアップして（ステップＳ１８）頁数カウンタを初期化し（ステップＳ１４）、再び１部目の各頁と３部目の各頁を比較判断する（ステップＳ１６）。１部目の構成単位データの全てと、１部目以外の他の構成単位データの全てを１頁から順に読み出して比較判断するようになっている。
【図面の簡単な説明】
【００５７】
【図１】本発明の実施の形態における印刷制御装置の構成を説明するためのブロック図である。
【図２】印刷元データを印刷データへ変換する処理を説明するためのフローチャートである。
【図３】印刷元データＰに対して変換処理を行うことによって得られた印刷データＰ′のデータ構成である。
【図４】印刷制御部が変換後の印刷データにしたがって印刷処理を実行した場合の印刷結果を示した模式図である。
【図５】印刷データ変換処理の変形例を説明するフローチャートである。
【図６】部単位印刷を設定せずに通常の印刷処理を指示したときにアプリケーションが加工する印刷元データの構成を示している。
【図７】部単位印刷を設定したときにアプリケーションが加工する印刷元データの構成を示している。
【符号の説明】
【００５８】
１：ホストコンピュータ、２：プリンタ、１０：アプリケーション、１１：プリンタドライバ、１２：送受信部、１３：印刷データ生成部、１４：約数算出部、１５：要素情報判断部、１６：部数算出部、２０：送受信部、２１：プリントバッファ、２２：印刷制御部、２３：印刷機構
【図１】
2008176651.tif 000003
【図２】
2008176651.tif 000004
【図３】
2008176651.tif 000005
【図４】
2008176651.tif 000006
【図５】
2008176651.tif 000007
【図６】
2008176651.tif 000008
【図７】
2008176651.tif 000009