(57)【要約】【課題】  ドライバ簡易開発キットの共通モジュール（以下Ｕｎｉｄｒｖ）では、印刷開始から数えたページ数が偶数ならば１８０度回転した画像をプリンタに送るように処理を行っている。Ｕｎｉｄｒｖは渡されたページが実際の印刷用か印刷プレビューの表示用かを判断しないので、プレビュー用のページでもページのカウントを進めるので、プレビュー表示用のページ数が奇数だった場合、実際の印刷での偶数ページと奇数ページの判断が入れ替わってしまうため、自動両面印刷で１８０度回転の処理が正しく行われない。【解決手段】  プレビュー表示のために描画したページ数をプリントプロセッサで数え、プレビューページ数が奇数だった場合はダミーページをプレビューページとしてＵｎｉｄｒｖに処理させて、実際の印刷の先頭ページの描画処理を印刷開始から数えて奇数ページ目となるように制御し、自動両面印刷での１８０度回転処理を正しく行えるようにする。【選択図】  図８
2008107978.tif 000002
【特許請求の範囲】
【請求項１】
ページの画像を作成する画像作成部と、
前記画像作成部の作成したページ数を計測してその偶奇を判断して動作を選択する動作選択部と、
前記画像作成部が作成したページの画像を画面表示する画像表示部と、
ユーザーが前記画像表示部の表示を終了して用紙への印刷開始を指示する印刷開始指示部と、
前記画像作成部が作成したページの画像を印刷装置に送信する画像印刷部と、
を持つ情報処理装置において、
前記画像表示部に表示するために描画したページ数を計測して偶奇を判断する表示ページ数判断部を持ち、
前記印刷開始指示部によって印刷開始が指示されたときに前記表示ページ数判断部によって偶奇を判断し、
前記画像表示部に表示するために描画したページ数が奇数の場合は前記画像作成部にダミーページの描画を指示することを特徴とする情報処理装置。
【請求項２】
画像を180度回転する画像回転部を持ち、
前記画像回転部によって画像を回転するかどうかを前記動作選択部によって選択することを特徴とする請求項1の情報処理装置。
【請求項３】
前記ダミーのページとして空白ページの描画を指示することを特徴とする請求項1または請求項2の情報処理装置。
【請求項４】
前記ダミーのページとして任意の1ページの描画を指示することを特徴とする請求項1または請求項2の情報処理装置。
【請求項５】
ページの画像を作成する画像作成方法と、
前記画像作成方法の作成したページ数を計測してその偶奇を判断して動作を選択する動作選択方法と、
前記画像作成方法が作成したページの画像を画面表示する画像表示方法と、
ユーザーが前記画像表示方法の表示を終了して用紙への印刷開始を指示する印刷開始指示方法と、
前記画像作成方法が作成したページの画像を印刷装置に送信する画像印刷方法と、
前記画像表示方法に表示するために描画したページ数を計測して偶奇を判断する表示ページ数判断方法を持ち、
前記印刷開始指示方法によって印刷開始が指示されたときに前記表示ページ数判断方法によって偶奇を判断し、
前記画像表示方法に表示するために描画したページ数が奇数の場合は前記画像作成方法にダミーページの描画を指示することを特徴とする印刷処理方法。
【請求項６】
ページの画像を作成する画像作成機能と、
前記画像作成機能の作成したページ数を計測してその偶奇を判断して動作を選択する動作選択機能と、
前記画像作成機能が作成したページの画像を画面表示する画像表示機能と、
ユーザーが前記画像表示機能の表示を終了して用紙への印刷開始を指示する印刷開始指示機能と、
前記画像作成機能が作成したページの画像を印刷装置に送信する画像印刷機能と、
前記画像表示機能に表示するために描画したページ数を計測して偶奇を判断する表示ページ数判断機能を持ち、
前記印刷開始指示機能によって印刷開始が指示されたときに前記表示ページ数判断機能によって偶奇を判断し、
前記画像表示機能に表示するために描画したページ数が奇数の場合は前記画像作成機能にダミーページの描画を指示するダミーページ描画機能とを備えたコンピュータプログラムを記録した、
コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリンタに印刷データを送信するパーソナルコンピュータ等の情報処理装置およびその制御方法およびプログラムを格納した記憶媒体に関するもので、特に印刷指示時に印刷データに基づくプレビューを表示し、かつ両面印刷機能を制御するものに関する。
【背景技術】
【０００２】
従来、ある種のプリンタには自動両面印刷機能を有していて、おもて面を印刷した用紙を自動的に裏返して、続けて裏面の印刷を行うことで両面印刷を実現している。図1に示す用紙の裏返し機構は、おもて面を印刷した用紙をスイッチバックして用紙を反転するプリンタの例である。自動両面印刷が開始されると、用紙分離ローラー101を回転させて給紙トレイ102上に積載された用紙から一番上の1枚を分離して、プリンタに給紙する。給紙された用紙は1対の給紙ローラー103を回転させることでプリンタ内の印刷機構内に送り込まれ、印刷ヘッド104によっておもて面の印刷を行う。印刷中は給紙ローラー103と、1対の排紙ローラー105を回転させて用紙を送ることで、おもて面全体に印刷を行う。おもて面の印刷が終了すると、給紙ローラー103と排紙ローラー105を逆回転させることでスイッチバックし、用紙を反転するための反転用紙搬送路106に導き、1対の用紙反転ローラー107を回転させることで用紙搬送方向と垂直な軸で180度回転した用紙を再給紙する。そして印刷中は給紙ローラー103と排紙ローラー105を回転させながら印刷ヘッド104で印刷することで用紙の裏面全体に印刷を行い、表裏両面の印刷が完了した用紙は排紙トレイ108に排紙される。
【０００３】
こうして両面印刷された出力結果は４辺のうちどこかを綴じて閲覧することになる。このとき用紙の綴じ位置によって裏面の印刷の向きをおもて面に対して180度回転する必要がある。図2は図2-(a)に示すようにポートレイト印刷において用紙の上側を綴じる場合を示している。前記の裏返し機構を持つプリンタでは、まずおもて面を図2-(b)のように片面印刷時と同様に印刷し、図2-(c)のように裏返し処理を行い、裏面の印刷は図2-(d)ように印刷すればよい。また図3は図3-(a)に示すようにランドスケープ印刷において用紙の左側を綴じる場合を示している。前記の裏返し機構を持つプリンタでは、まずおもて面を図3-(b)のように片面印刷時と同様に印刷し、図3-(c)のように裏返し処理を行い、裏面の印刷は図3-(d)ように印刷すればよい。このように印刷時の用紙の回転軸と平行な位置を綴じる場合は、おもて面も裏面も片面印刷時と同様に印刷すればよい。
【０００４】
図4は図4-(a)に示すようにポートレイト印刷において用紙の左側を綴じる場合を示している。前記の裏返し機構を持つプリンタでは、まずおもて面を図4-(b)のように片面印刷時と同様に印刷し、図4-(c)のように裏返し処理を行い、裏面の印刷は図4-(d)ように印刷すればよい。図5は図5-(a)に示すようにランドスケープ印刷において用紙の上側を綴じる場合を示している。前記の裏返し機構を持つプリンタでは、まずおもて面を図5-(b)のように片面印刷時と同様に印刷し、図5-(c)のように裏返し処理を行い、裏面の印刷は図5-(d)ように印刷すればよい。このように印刷時の用紙の回転軸と垂直な位置を綴じる場合は、おもて面は片面印刷時と同様に印刷すればよいが、裏面は180度回転した画像を印刷する必要がある。
【０００５】
このように搬送方向と印刷時の用紙の回転軸が直角な自動両面印刷機構を持つプリンタにおいて、自動両面印刷設定時かつ、搬送方向と平行な軸で綴じる場合かつ、印刷開始から数えたページ数が偶数にあたるときは、180度回転処理を施した印刷データを印刷する必要がある。一方、プリンタは一般にPCなどの情報処理装置に搭載されたプリンタドライバにより制御されることが多い。すなわちこのプリンタドライバから上記のような印刷データをプリンタに送ることで、常に正しい自動両面印刷が可能である(特許文献1参照)。
【０００６】
PC内に搭載されるプリンタドライバはプリンタごとに用意されるものだが、バンディング処理やバンドメモリへの描画処理など多くの共通処理が存在する。そのためある種のオペレーティングシステム(以下OS)では印刷処理モジュールにバンドメモリへの描画機能を持っている。またプリンタドライバの基本機能を有し、メーカーが設定ファイルや幾つかのプラグインを用意すればプリンタドライバが作成できるドライバ簡易開発キットを用意している場合もある。上記ドライバ簡易開発キットの共通モジュール(以下UniDrv)はプリンタメーカーが変更できない代わりに、設定ファイルによってある程度のカスタマイズができるようになっている。またプリンタごとに異なる処理が必要な部分はプリンタメーカーがプラグインを用意することで柔軟に対応できるようになっている。UIプラグインはプリンタドライバに必要なユーザーインタフェース(以下UI)を用意するためのプラグインである。レンダープラグインは描画メッセージをバンドメモリに描画し、描画完了後に色処理、ハーフトーン処理などを行って、最終的にプリンタに送るコマンドに変換するプラグインである。このUniDrvを利用することにより、プリンタメーカーは少ない労力でプリンタドライバを開発できる。
【０００７】
図7は上記ドライバ簡易開発キットを使って開発したプリンタドライバにおける、印刷設定を通知するための印刷設定データの構造を示す。前記印刷設定データはOS規定領域301、ドライバ簡易開発キット規定領域302、機種別規定領域303の３つから構成されている。OS規定領域301はOSが規定している領域で、OSやアプリケーション・ソフトウェア(以下アプリケーション)が必要に応じて参照したり、変更したりできる領域である。ドライバ簡易開発キット規定領域302はOSやアプリケーションは参照や変更はできないが、UniDrvは参照や変更が可能な領域である。機種別規定領域303はOSやアプリケーションだけでなく、UniDrvも参照や変更はできない領域で、メーカーが作成したプリンタドライバのモジュールのみが内部的に使用する領域である。プリンタドライバはUIプラグインによって印刷設定データを作成してアプリケーションに渡す。アプリケーションは印刷開始時に受け取った印刷設定データを指定することで印刷ジョブと印刷設定が関連付けられ、以後の処理では印刷ジョブと関連付けられた印刷設定データを参照することで印刷設定に応じた処理を行うことができる。
【０００８】
上記設定ファイルにはプリンタが自動両面印刷機能を持つことを記述できる。この記述により、自動両面印刷設定時かつ、用紙の回転軸と垂直な位置を綴じる場合かつ、印刷開始から数えたページ数が偶数にあたるときは、プリンタドライバは180度回転処理を施した印刷データをプリンタに送るように動作する。ページ全体を180度回転処理するために、UniDrvは通常のページでは上から下に行うバンディング処理を逆順に処理する。したがってUniDrvの内部にページカウンタがあり、これから処理するページが印刷開始から数えて偶数にあたるか奇数にあたるかを判断してバンドメモリの初期化処理を変更している。逆順で処理されたバンドメモリは、レンダープラグイン内部で180度回転してからコマンドに変換することで、180度回転した印刷データとなる。
【０００９】
また近年のプリンタドライバでは印刷プレビュー機能を備えるものがある。これはプリンタドライバに送られてきた印刷データを解析して印刷結果のプレビュー画像を作成して画面に表示することで、ユーザーが実際の印刷を行うことなく印刷結果の確認を可能とするものである。印刷プレビューを表示するプレビューアは、プレビューしているページの拡縮率変更や表示位置の移動、プレビューするページの切り替え、プレビュー表示中のジョブの印刷開始、印刷キャンセルなどを指示出来るようになっている。
【００１０】
通常、前記のドライバ簡易開発キットでは印刷プレビューのような付加機能には対応していないので、プラグインに機能を持たせたり、一部の印刷関連モジュールを独自に作成したりすることで実装することになる。図6はその一例の構成を示す図である。ユーザーがUIプラグイン212の表示するUIで印刷プレビューをONにすると、印刷設定データの機種別規定領域303にある印刷プレビューフラグがONに設定される。アプリケーション201から印刷を行うと、前記印刷設定データと印刷ジョブのデータがスプールファイル205に保存される。スプールファイルが作成されるとプリントプロセッサ206はプレビューア202を起動するとともに、スプールファイル205から取得した印刷設定データの機種別規定領域303にある印刷プレビュー解像度を設定してページの描画を行う。この描画処理は印刷処理モジュール204からUniDrv208を経由してレンダープラグイン211に渡される。印刷設定データの印刷プレビュー解像度が設定されていた場合、レンダープラグイン211は前記解像度でバンドメモリを確保して印刷処理モジュール204に描画を実行させる。描画の完了したバンドメモリは必要に応じて画面用の色処理を行い、プレビューファイル203にビットマップファイルとして保存する。プリントプロセッサ206はプレビューア202にプレビューファイル203の作成完了を通知すると、プレビューア202はプレビューファイル203を読み込んで、表示装置22上に表示されたプレビューウィンドウに印刷プレビュー画像を表示する。
【００１１】
ユーザーがプレビューア202で表示倍率の変更、あるいは表示ページの変更を指示すると、プレビューア202はプリントプロセッサ206に新たにプレビュー表示するページ番号や解像度を通知する。プリントプロセッサ206は上記と同様な手順で前記新たに指定されたプレビュー解像度を印刷設定データの印刷プレビュー解像度に設定して新たに指定されたページの描画を行い、プレビューファイル203を作成する。そしてプレビューア201に通知することで、ユーザーの指定したページを指定解像度でプレビューアに表示させる。
【００１２】
ユーザーがプレビューア202に印刷開始を指示すると、プレビューア202はプリントプロセッサ206に印刷開始を通知し、終了する。プリントプロセッサ206は印刷設定データの印刷プレビュー解像度をゼロに設定してジョブの先頭から順にページの描画を行う。この描画処理は印刷処理モジュール204からUniDrv208を経由してレンダープラグイン211に渡される。印刷設定データの印刷プレビュー解像度がゼロの場合、レンダープラグイン211はプリンタの解像度でバンドメモリを確保して印刷処理モジュール204に描画を実行させる。そして描画の完了したバンドメモリに印刷用の色処理、ハーフトーン処理、コマンドへの変換を行う。このコマンドをプリンタ23に送信することで実際の印刷を行わせることができる。
【特許文献１】特公平7-98403号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
しかしながら、従来行なわれていた方法では、以下のような問題点がある。
【００１４】
上記プリンタドライバは、自動両面印刷かつ搬送方向と平行な軸で綴じる設定のとき、UniDrv208が印刷開始から数えたページ数が偶数にあたるならば180度回転した画像をプリンタに送るように処理を行っている。このプリンタドライバに印刷プレビュー機能の追加を行う場合、プリントプロセッサ206は印刷設定データの印刷プレビュー解像度の設定値を切り替えて、印刷用のページも、プレビュー用のページもUniDrv208に渡して描画を行う。UniDrv208は渡されたページが実際の印刷か印刷プレビューの表示かを判断しないので、プレビュー用のページでもページのカウントを進めてしまう。そのためプレビュー表示のためにUniDrv208の描画したページ数が奇数だった場合、実際の印刷開始から数えたページ数と比較して偶数と奇数の判断が入れ替わってしまうため、自動両面印刷で180度回転の処理が正しく行われないという問題があった。
【００１５】
本発明は上記の問題点を解決するためになされたもので、プレビュー表示のために描画したページ数をプリントプロセッサで数え、プレビューページ数が奇数だった場合はダミーページをプレビューページとしてUniDrvに処理させる。このダミーページは印刷前にUniDrvが描画するページ数を偶数とすることだけを目的としているため、プレビュー表示も印刷処理も行わない。これにより、実際の印刷のための先頭ページの描画処理を印刷開始から数えて奇数ページ目となるように制御し、自動両面印刷での180度回転処理を正しく行えるようにすることを目的とする。
【課題を解決するための手段】
【００１６】
上記目的を達成する本発明のプリンタドライバは以下に示す構成を備える。即ち
ページの画像を作成する画像作成部と、
前記画像作成部の作成したページ数を計測してその偶奇を判断して動作を選択する動作選択部と、
前記画像作成部が作成したページの画像を画面表示する画像表示部と、
ユーザーが前記画像表示部の表示を終了して用紙への印刷開始を指示する印刷開始指示部と、
前記画像作成部が作成したページの画像を印刷装置に送信する画像印刷部と、
前記画像表示部に表示するために描画したページ数を計測して偶奇を判断する表示ページ数判断部を持ち、
前記印刷開始指示部によって印刷開始が指示されたときに前記表示ページ数判断部によって偶奇を判断し、
前記画像表示部に表示するために描画したページ数が奇数の場合は前記画像作成部にダミーページの描画を指示する。
【発明の効果】
【００１７】
プレビュー表示のためにUniDrvに描画させたページ数をプリントプロセッサで数え、描画ページ数が奇数だった場合はダミーページをUniDrvに描画処理させることにより、自動両面印刷での180度回転処理を正しく行えるようにする効果がある。
【発明を実施するための最良の形態】
【００１８】
（実施例１）
図8は本発明の第一実施例を適用できる情報処理装置の構成を示している。図において21はホスト計算機(以下ホストという)、22は表示装置、23はプリンタである。ホスト21には、その主記憶または補助記憶装置にオペレーティングシステム24（以下OSという）とアプリケーション・ソフトウェア201（以下アプリケーションという）、本実施例のプリンタドライバ25が格納される。また202はプリンタドライバ25と同時に配布されてドライバと連動して動作するプレビューアである。203はプリンタドライバ25が作成し、プレビューア202が印刷結果を表示するためのプレビューファイルである。
【００１９】
OS24において、204は印刷メッセージを受け取ってスプールファイルを作成したり、ドライバへのハンドリングを行ったり、バンドメモリに実際の描画を行ったりする印刷処理モジュールである。205は印刷処理モジュール204が作成するスプールファイルである。
【００２０】
プリンタドライバ25において、206は作成されたスプールファイル205を読み込んで実際の印刷処理をハンドリングするプリントプロセッサである。207はプレビュー表示処理したページ数の計測を行うためにプリントプロセッサ206内部に設けられたカウンタである。208はOSメーカーが標準で提供するドライバモジュールで、プリンタドライバの基本的な機能を提供するUniDrvである。209はレンダリング処理したページ数の計測を行うためにUniDrv208内部に設けられたカウンタである。210はプリンタメーカーがUniDrv208の動作をカスタマイズするために用意するプリンタ設定ファイルである。211はデバイスに応じたレンダリング処理をするためにプリンタメーカーが用意してUniDrv208から呼び出されるレンダープラグインである。212はデバイスに応じた印刷設定を行うためにプリンタメーカーが用意してUniDrv208から呼び出されるUIプラグインである。
【００２１】
図9は本発明の実施例を示す印字情報処理手順のフローチャートの一例である。ユーザーがアプリケーション201に印刷を指示すると、アプリケーション201はページ全体の印刷メッセージを印刷処理モジュール204に発行し（S101）、印刷処理モジュール204はスプールファイル205に印刷メッセージを保存する(S102)ことを最終ページまで繰り返して印刷ジョブ全体の印刷メッセージをスプールファイル205に保存する(S103)。その後、プリントプロセッサ206がスプールファイル205のデスプール処理を行うことで、実際の印刷処理を行う(S104)。なお本実施例ではデスプール処理を印刷ジョブ全体のスプール終了後に行うこととしたが、この例によらず、1ページ完了直後などにデスプール処理を開始しても良い。
【００２２】
プリントプロセッサ206のデスプール処理(S104)の詳細なフローチャートの一例を図10に示す。デスプール処理を開始すると最初にUniDrv208のジョブの初期化処理を実行する(S201)。次にスプールファイル205から印刷設定データを読み出してプレビュー設定を確認し(S202)、ONになっていればS203に進んで印刷のプレビュー表示処理を行い、OFFになっていればS216の印刷処理を行う。ONだった場合はプレビューア202を起動し(S203)、PPageカウンタ207をゼロクリアする(S204)などのプレビューの初期化処理を行う。そしてページのプレビュー処理を開始する。まずUniDrv208のページの初期化処理を行い(S205)、PPageカウンタ207をカウントアップする(S206)。そしてスプールファイル205からページの印刷メッセージを取得し(S207)、UniDrv208の描画処理によってビットマップを作成する(S208)。UniDrv208のページの終了処理を行ってプレビューファイル203を作成し(S209)、プレビューア202に通知することでプレビューファイル203の画像を表示装置22上に表示する(S210)。ユーザーからの入力を待ち(S211)、ページや表示倍率の変更などのプレビュー画像作成要求が行われた場合はS205に戻って指定されたプレビュー画像を作製して表示しなおす。印刷中止が指示された場合はUniDrv208のジョブ終了処理を行ってプレビューおよび印刷処理を終了する(S212)。印刷開始が指示された場合は以下のようにプレビューの終了処理を行ってから、実際の印刷処理を行う。
【００２３】
まずPPageカウンタ207の偶奇を判断して偶数なら印刷作業を行う(S213)。奇数ならUniDrv208のページの初期化処理(S214)と、UniDrv208のページの終了処理(S215)をおこなってダミーの空白ページの描画処理を行うことで、実印刷が開始される前のPageカウンタ209の値を偶数にする。このダミーページは描画処理のみを行い、印刷プレビューは行わないので、従来どおりの操作性を維持できる。
【００２４】
続いて実際の印刷処理について説明する。まずUniDrv208のページの初期化処理を行い(S216)、描画を行うバンドメモリを取得する。そしてスプールファイル205からページの印刷メッセージを取得し(S217)、UniDrv208の描画処理によって前記取得したバンドメモリにビットマップを作成する(S218)。UniDrv208のバンドの終了処理を行って作成したビットマップをプリンタ23に送る(S219)ことを全バンドが終了するまで繰り返す(S220)。全バンド終了したらUniDrv208のページの終了処理を行う(S221)ことを、全ページについて繰り返す(S222)。最後にUniDrv208のジョブ終了処理を行って印刷処理を終了する(S212)。
【００２５】
UniDrv208の処理の詳細なフローチャートの一例を図11に示す。まずUniDrv208は呼び出されるとその入力をチェックして処理を切り分ける(S301)。入力がジョブの初期化だった場合、Pageカウンタ209をゼロで初期化する(S302)。
【００２６】
入力がページの初期化だった場合、Pageカウンタ209をインクリメントし(S303)、印刷設定データのOS規定領域301またはドライバ簡易開発キット規定領域302にある設定値から両面印刷かつ搬送方向綴じか、またPageカウンタ209が偶数かを調べる(S304)。もしそうでなければ通常印刷なのでバンドの処理順序を正順として初期化し(S305)、そうであれば180度回転印刷なのでバンドの処理順序を逆順として初期化する(S306)。
【００２７】
入力が描画処理だった場合、UniDrv208はレンダープラグイン211にバンドメモリへの描画を行わせる(S307)。レンダープラグイン211は印刷設定データの設定値に応じて解像度や描画位置を調整して印刷処理モジュール204を呼び出すことでバンドメモリへの実際の描画を行わせる。
【００２８】
入力がバンドの終了処理だった場合、バンドの処理順序が正順か逆順かを判断し(S308)、逆順であればバンドメモリに描画されたビットマップを180度回転する(S309)。そしてビットマップを色処理やハーフトーン処理を行い(S310)、コマンド化してプリンタ23に送信する(S311)ことでバンドに描画されたビットマップを印刷する。その後バンドメモリの情報を更新して次のバンドに移動する(S312)。
【００２９】
入力がページの終了処理だった場合、UniDrv208はレンダープラグイン211のページ終了処理を呼び出す。レンダープラグイン211はプレビュー表示中かどうかを確認(S313)、プレビュー表示中であればビットマップからプレビューファイル203を作成し(S314)、印刷中であればページの終了コマンドをプリンタ23に送信する(S315)。
【００３０】
入力がジョブの終了処理だった場合、UniDrv208はレンダープラグイン211のジョブ終了処理を呼び出す。レンダープラグイン211はジョブの終了コマンドをプリンタ23に送信する(S316)。
【００３１】
以上説明した本実施例によれば、以下のことが可能となる。
【００３２】
本実施例のプリンタドライバは処理ページ数をカウンタで計測してその偶奇を判断して動作を選択するプリンタメーカーが変更不能な共通モジュールを使用することを前提としている。こうしたプリンタドライバで印刷プレビュー機能を実装する場合、印刷プレビューのためのページ処理でも前記共通モジュールでの処理ページのカウンタが加算されてしまうため、実際のページとの食い違いが発生する。そのため印刷プレビュー表示のためにUniDrvに描画させたページ数を計測し、前記ページ数が奇数のばあいは空白のダミーページを1ページ処理させる。これにより、印刷の最初のページを処理する前には共通モジュール内部のページカウンタが常に偶数となるように制御することにより、自動両面印刷での180度回転処理を正しく行わせることが可能になる。
【００３３】
また本実施例によれば、裏面を180度回転処理しない設定の場合にもプレビューページ数が奇数だった場合にはダミーの空白ページをUniDrvに処理させている。前記条件ではダミーページの有無によらず全ページ180度回転処理を行わないため、従来となんら変わらない印刷が可能である。
【００３４】
（実施例２）
本実施例はスプールされた印刷データの1ページ目をダミーページとして使用する場合に関するものである。図10のS214およびS215で示されるように、実施例1のダミーページ処理は空白ページの描画を行わせるもので、ページの初期化と終了処理のみを行っている。しかしプリントプロセッサ206の処理を簡単化するためには、スプールファイル205にスプールされているページデータを使用するほうが良い場合がある。本実施例はこのような条件下での利用を考慮したものである。
【００３５】
本実施例の詳細な手順は、図10のS214およびS215の処理の間にS208と同等な描画処理を行えばよい。追加した描画処理により、スプールファイル205にスプールされた1ページ目の描画処理を行う。なお、描画するページは1ページ目に限らず、任意のページを使用することができる。
【００３６】
（実施例３）
本実施例は割付印刷かつ両面印刷する場合において印刷プレビュー表示を行った場合に関するものである。アプリケーションの作成したページをプリンタドライバが1枚の用紙に複数ページレイアウトして印刷する割付印刷と呼ばれる機能がある。割付印刷を行う場合、プリントプロセッサ206はスプールファイル205から取得したページの描画メッセージを割付印刷の設定に応じてレイアウトしなおし、アプリケーションが作成した複数ページを1つの出力ページとしてUniDrv208に渡して描画処理を行わせる。この描画方法は印刷プレビュー時も実際の印刷処理時も同様である。よってプリントプロセッサ206はPPageカウンタ207によって印刷プレビュー処理した出力ページ数を計測しておく。印刷開始要求後に第1実施例と同様にPPageカウンタ207の偶奇を判断してダミーページを作成することで、裏面ページで180度回転が必要な場合に正しく処理することができるようになる。
【００３７】
（実施例４）
プリンタドライバには印刷結果を二つ折りして綴じることで冊子状の印刷物を得ることができる冊子印刷機能を有するものもある。綴じ位置は通常の両面印刷と異なり用紙の中央になるが、用紙裏返し時の回転軸と綴じ方向が垂直な場合は、裏面ページの印刷では画像を180度回転してから印刷する必要がある。
【００３８】
冊子印刷においてもプリントプロセッサ206がアプリケーションの作成した複数ページを1つの出力ページとしてUniDrv208に渡して描画処理を行わせる。よってプリントプロセッサ206はPPageカウンタ207によって印刷プレビュー処理した出力ページ数を計測しておく。印刷開始要求後に第1実施例と同様にPPageカウンタ207の偶奇を判断してダミーページを作成することで、裏面ページで180度回転が必要な場合に正しく処理することができるようになる。
【図面の簡単な説明】
【００３９】
【図１】本発明における印刷装置の構成を示す図である。
【図２】ポートレイト印刷かつ用紙上側を綴じる自動両面印刷を説明した図である。
【図３】ランドスケープ印刷かつ用紙左側を綴じる自動両面印刷を説明した図である。
【図４】ポートレイト印刷かつ用紙左側を綴じる自動両面印刷を説明した図である。
【図５】ランドスケープ印刷かつ用紙上側を綴じる自動両面印刷を説明した図である。
【図６】印刷プレビュー表示機能を持つプリンタドライバの構成例を示すブロック図である。
【図７】印刷設定データの例を示す図である。
【図８】本発明における実施例の構成の一例を示すブロック図である。
【図９】第一の実施例におけるフローチャートを示す図である。
【図１０】第一の実施例におけるデスプール処理のフローチャートを示す図である。
【図１１】第一の実施例におけるUniDrvの呼び出し処理のフローチャートを示す図である。
【符号の説明】
【００４０】
21  ホスト計算機
22  表示装置
23  プリンタ
24  オペレーティングシステム
25  プリンタドライバ
201  アプリケーション・ソフトウェア
202  プレビューア
203  プレビューファイル
204  印刷処理モジュール
205  スプールファイル
206  プリントプロセッサ
207  PPageカウンタ
208  ドライバ簡易開発キットの共通モジュール
209  Pageカウンタ
210  プリンタ設定ファイル
211  レンダープラグイン
212  ユーザーインタフェースプラグイン
【図１】
2008107978.tif 000003
【図２】
2008107978.tif 000004
【図３】
2008107978.tif 000005
【図４】
2008107978.tif 000006
【図５】
2008107978.tif 000007
【図６】
2008107978.tif 000008
【図７】
2008107978.tif 000009
【図８】
2008107978.tif 000010
【図９】
2008107978.tif 000011
【図１０】
2008107978.tif 000012
【図１１】
2008107978.tif 000013