(57)【要約】【課題】印刷を中止する旨をアプリケーション部に伝達することなく印刷を中止可能で、しかも、印刷中止にかかる時間を短縮可能なプリンタドライバ部としてコンピュータを機能させるプログラムと、そのようなプリンタドライバ部を備えたコンピュータの提供。【解決手段】プリンタドライバは、ＧＤＩ経由で初期化命令が呼ばれたときに（Ｓ１１０）、プリンタドライバの判断で印刷を中止していれば（Ｓ１２０：ＹＥＳ）、ＧＤＩの処理に影響する印刷設定を高速用に変更する（Ｓ１２５）。これにより、ＧＤＩからプリンタドライバへ描画命令を伝達する際に、ＧＤＩにおいて実行される前処理が、より短時間で完了する状態になる。したがって、プリンタドライバの判断で印刷を中止する際に、アプリケーションに印刷の中止を伝達しないまま、アプリケーションから印刷関連の命令を受け取るにもかかわらず、印刷を中止するための処理に要する時間を短縮できる。【選択図】図３
2010257040.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションプログラムに基づく処理を実行するアプリケーション部と、印刷データを印刷装置へと出力可能なプリンタドライバ部と、前記アプリケーション部と前記プリンタドライバ部との間で印刷関連の命令および情報を伝達するインターフェース部とを備え、前記アプリケーション部から印刷関連の命令が発行された際に、前記インターフェース部では、前記プリンタドライバ部から伝達された印刷設定に応じた前処理を実行してから前記印刷関連の命令を前記プリンタドライバ部へと伝達し、前記プリンタドライバ部では、前記印刷設定に応じた後処理を実行して前記印刷データを完成させ、その印刷データを前記印刷装置へと出力するコンピュータにおいて、前記コンピュータを前記プリンタドライバ部として機能させるためのプログラムであって、
あらかじめ定められた印刷中止条件が成立したか否かを判断する判断手段と、
前記判断手段によって前記印刷中止条件が成立したと判断された場合に、前記インターフェース部での前処理、および前記プリンタドライバ部での後処理のうち、少なくとも一方の処理の一部または全部を対象として、当該対象となる処理が実行されない設定内容か、当該対象となる処理が元の設定内容よりも短時間で完了する設定内容に、前記印刷設定を変更する印刷設定変更手段と、
前記判断手段によって前記印刷中止条件が成立していないと判断された場合には、前記印刷データの出力を実行する一方、前記判断手段によって前記印刷中止条件が成立したと判断された場合には、前記印刷データの出力を実行しない出力制御手段と
を備えた前記プリンタドライバ部として、前記コンピュータを機能させるためのプログラム。
【請求項２】
前記印刷設定変更手段は、前記インターフェース部から前記印刷関連の命令として初期化命令が伝達された場合に、前記インターフェース部での前処理の一部または全部を対象として、当該対象となる処理が実行されない設定内容か、当該対象となる処理が元の設定内容よりも短時間で完了する設定内容に、前記印刷設定を変更する手段である
ことを特徴とする請求項１に記載のプログラム。
【請求項３】
前記印刷設定変更手段は、前記インターフェース部から前記印刷関連の命令として初期化命令が伝達された場合に、前記プリンタドライバ部での後処理の一部または全部を対象として、当該対象となる処理が実行されない設定内容か、当該対象となる処理が元の設定内容よりも短時間で完了する設定内容に、前記印刷設定を変更する手段である
ことを特徴とする請求項１または請求項２に記載のプログラム。
【請求項４】
前記印刷設定変更手段は、前記インターフェース部から前記印刷関連の命令としてページ開始命令が伝達された場合に、前記プリンタドライバ部での後処理の一部または全部を対象として、当該対象となる処理が実行されない設定内容か、当該対象となる処理が元の設定内容よりも短時間で完了する設定内容に、前記印刷設定を変更する手段である
ことを特徴とする請求項１〜請求項３のいずれかに記載のプログラム。
【請求項５】
前記判断手段によって前記印刷中止条件が成立したと判断された場合に、印刷を中止する旨を利用者に対して通知する通知手段
を備えた前記プリンタドライバ部として、前記コンピュータを機能させることを特徴とする請求項１〜請求項４のいずれかに記載のプログラム。
【請求項６】
アプリケーションプログラムに基づく処理を実行するアプリケーション部と、印刷データを前記印刷装置へと出力可能なプリンタドライバ部と、前記アプリケーション部と前記プリンタドライバ部との間で印刷関連の命令および情報を伝達するインターフェース部とを備え、前記アプリケーション部から印刷関連の命令が発行された際に、前記インターフェース部では、前記プリンタドライバ部から伝達された印刷設定に応じた前処理を実行してから前記印刷関連の命令を前記プリンタドライバ部へと伝達し、前記プリンタドライバ部では、前記印刷設定に応じた後処理を実行して前記印刷データを完成させ、その印刷データを前記印刷装置へと出力するコンピュータであって、
前記プリンタドライバ部は、
あらかじめ定められた印刷中止条件が成立したか否かを判断する判断手段と、
前記判断手段によって前記印刷中止条件が成立したと判断された場合に、前記インターフェース部での前処理、および前記プリンタドライバ部での後処理のうち、少なくとも一方の処理の一部または全部を対象として、当該対象となる処理が実行されない設定内容か、当該対象となる処理が元の設定内容よりも短時間で完了する設定内容に、前記印刷設定を変更する印刷設定変更手段と、
前記判断手段によって前記印刷中止条件が成立していないと判断された場合には、前記印刷データの出力を実行する一方、前記判断手段によって前記印刷中止条件が成立したと判断された場合には、前記印刷データの出力を実行しない出力制御手段と
を備えることを特徴とするコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷に関連する制御を行うプリンタドライバ部としてコンピュータを機能させるプログラムと、プリンタドライバ部を備えたコンピュータに関する。
【背景技術】
【０００２】
従来、ＯＳ（Operating System）やアプリケーションが有するＵＩ（User Interface）を利用してユーザが印刷中止指示を入力した際に、その印刷中止指示をプリンタドライバに伝えて、プリンタドライバにおいて印刷中止に対応した処理を実行する技術が知られている（例えば、特許文献１参照）。この事例は、ＯＳやアプリケーションが先に印刷の中止を認識し、それをプリンタドライバへと伝達する事例である。
【０００３】
一方、従来、プリンタドライバが先に印刷の中止を認識し、それをＯＳやアプリケーションへ伝達する事例も存在する（例えば、特許文献２参照）。特許文献２に記載の技術の場合、解像度との関係で過剰に小さい文字が潰れてしまうおそれがある場合に、そのことをプリンタドライバが判断して印刷を中止する。
【０００４】
このようにプリンタドライバが印刷を中止する事例としては、上記事例の他にも、例えば、所定の期間内に印刷可能な枚数がユーザ毎に決められているプリンタにおいて、印刷可能な上限枚数を超えたとプリンタドライバが判断した場合に以降の印刷を中止する、といったものがある。
【０００５】
あるいは、例えば、プリンタドライバが自らのＵＩとして印刷プレビューを表示する画面を有するものにおいて、プレビューを見たユーザが印刷をキャンセル操作を行った場合に印刷を中止する、といったものもある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−２１６６９３号公報
【特許文献２】特開２００３−１５０３３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、上記特許文献２に記載の技術のように、プリンタドライバ側の都合で印刷を中止した際、印刷を中止した旨をアプリケーションに伝達すると、アプリケーションが予期しない挙動を示すことがあった。
【０００８】
具体例を挙げて説明すると、例えば、印刷を中止した旨をプリンタドライバからアプリケーションに伝達すると、アプリケーションによっては、致命的なエラーが発生した旨を表示するなど、ユーザに対して過度の不安を与えるような挙動を示すことがあった。
【０００９】
また、別の例としては、例えば、印刷を中止した旨をプリンタドライバからアプリケーションに伝達すると、アプリケーションによっては、プリンタドライバに対して再印刷の命令を出すこともあった。このような場合に、プリンタドライバが印刷中止の伝達を繰り返しても、アプリケーションが再印刷命令を繰り返すだけであれば、いつまでたっても印刷中止を達成できない状況に陥るおそれがあった。
【００１０】
ここで、アプリケーションによるエラーメッセージの出力や再印刷命令の発行を回避する方法としては、プリンタドライバ側の都合で印刷中止を行う場合に、アプリケーションに対しては印刷を中止した旨の情報を伝えない、という方法もある。このようにすれば、アプリケーションは、プリンタドライバ側の都合で印刷が中止されたとしても、そのことを認識しないまま通常の印刷処理と同様に印刷関連命令の発行を続ける。したがって、プリンタドライバは、アプリケーションからの命令を受け取るだけにとどめて、それらの命令に対応した印刷データの出力を実行しないようにし、これにより、アプリケーションによるエラーメッセージの出力や再印刷命令の発行を回避しながら、印刷の中止を達成することができる。
【００１１】
しかしながら、上記のような方法を採用すると、アプリケーションからプリンタドライバへ伝達される印刷関連の命令が、最初の命令から最後の命令まですべて伝達されることになるため、それらすべての命令を伝達するのに相応の時間を要し、印刷中止にかかる時間が長くなってしまうという問題があった。
【００１２】
本発明は、上記問題を解決するためになされたものであり、その目的は、印刷を中止する旨をアプリケーション部に伝達することなく印刷を中止可能で、しかも、印刷中止にかかる時間を短縮可能なプリンタドライバ部としてコンピュータを機能させるプログラムと、そのようなプリンタドライバ部を備えたコンピュータを提供することにある。
【課題を解決するための手段】
【００１３】
以下、本発明において採用した構成について説明する。
請求項１に記載のプログラムは、アプリケーションプログラムに基づく処理を実行するアプリケーション部と、印刷データを印刷装置へと出力可能なプリンタドライバ部と、前記アプリケーション部と前記プリンタドライバ部との間で印刷関連の命令および情報を伝達するインターフェース部とを備え、前記アプリケーション部から印刷関連の命令が発行された際に、前記インターフェース部では、前記プリンタドライバ部から伝達された印刷設定に応じた前処理を実行してから前記印刷関連の命令を前記プリンタドライバ部へと伝達し、前記プリンタドライバ部では、前記印刷設定に応じた後処理を実行して前記印刷データを完成させ、その印刷データを前記印刷装置へと出力するコンピュータにおいて、前記コンピュータを前記プリンタドライバ部として機能させるためのプログラムであって、あらかじめ定められた印刷中止条件が成立したか否かを判断する判断手段と、前記判断手段によって前記印刷中止条件が成立したと判断された場合に、前記インターフェース部での前処理、および前記プリンタドライバ部での後処理のうち、少なくとも一方の処理の一部または全部を対象として、当該対象となる処理が実行されない設定内容か、当該対象となる処理が元の設定内容よりも短時間で完了する設定内容に、前記印刷設定を変更する印刷設定変更手段と、前記判断手段によって前記印刷中止条件が成立していないと判断された場合には、前記印刷データの出力を実行する一方、前記判断手段によって前記印刷中止条件が成立したと判断された場合には、前記印刷データの出力を実行しない出力制御手段とを備えた前記プリンタドライバ部として、前記コンピュータを機能させるためのプログラムである。
【００１４】
このように構成されたプログラムによってプリンタドライバ部を機能させれば、印刷中止条件が成立した場合に、インターフェース部での前処理、およびプリンタドライバ部での後処理のうち、少なくとも一方の処理の一部または全部が、実行されない状態または短時間で完了する状態になり、且つ、印刷データの出力が実行されない状態となる。
【００１５】
したがって、アプリケーション部に印刷の中止を伝達しないまま、アプリケーション部から印刷関連の命令を受け取るにもかかわらず、印刷を中止するための処理に要する時間を短縮することができ、アプリケーション部が予期しない挙動を示さないようにすることができる。
【００１６】
請求項２に記載のプログラムは、請求項１に記載のプログラムにおいて、前記印刷設定変更手段は、前記インターフェース部から前記印刷関連の命令として初期化命令が伝達された場合に、前記インターフェース部での前処理の一部または全部を対象として、当該対象となる処理が実行されない設定内容か、当該対象となる処理が元の設定内容よりも短時間で完了する設定内容に、前記印刷設定を変更する手段であることを特徴とする。
【００１７】
このように構成されたプログラムによってプリンタドライバ部を機能させれば、インターフェース部から初期化命令が伝達された場合に、インターフェース部での前処理において参照される印刷設定を変更でき、以降は、インターフェース部での前処理に要する時間を短縮できる。
【００１８】
請求項３に記載のプログラムは、請求項１または請求項２に記載のプログラムにおいて、前記印刷設定変更手段は、前記インターフェース部から前記印刷関連の命令として初期化命令が伝達された場合に、前記プリンタドライバ部での後処理の一部または全部を対象として、当該対象となる処理が実行されない設定内容か、当該対象となる処理が元の設定内容よりも短時間で完了する設定内容に、前記印刷設定を変更する手段であることを特徴とする。
【００１９】
このように構成されたプログラムによってプリンタドライバ部を機能させれば、インターフェース部から初期化命令が伝達された場合に、プリンタドライバ部での後処理において参照される印刷設定を変更でき、以降は、プリンタドライバ部での後処理に要する時間を短縮できる。
【００２０】
請求項４に記載のプログラムは、請求項１〜請求項３のいずれかに記載のプログラムにおいて、前記印刷設定変更手段は、前記インターフェース部から前記印刷関連の命令としてページ開始命令が伝達された場合に、前記プリンタドライバ部での後処理の一部または全部を対象として、当該対象となる処理が実行されない設定内容か、当該対象となる処理が元の設定内容よりも短時間で完了する設定内容に、前記印刷設定を変更する手段であることを特徴とする。
【００２１】
このように構成されたプログラムによってプリンタドライバ部を機能させれば、インターフェース部からページ開始命令が伝達された場合に、プリンタドライバ部での後処理において参照される印刷設定を変更でき、以降は、プリンタドライバ部での後処理に要する時間を短縮できる。
【００２２】
請求項５に記載のプログラムは、請求項１〜請求項４のいずれかに記載のプログラムにおいて、前記判断手段によって前記印刷中止条件が成立したと判断された場合に、印刷を中止する旨を利用者に対して通知する通知手段を備えた前記プリンタドライバ部として、前記コンピュータを機能させることを特徴とする。
【００２３】
このように構成されたプログラムによってプリンタドライバ部を機能させれば、印刷を中止する場合には、その旨が利用者に対して通知されるので、利用者は、印刷が通常通り終了したのか中止されたのかを察知できる。
【００２４】
請求項６に記載のコンピュータは、アプリケーションプログラムに基づく処理を実行するアプリケーション部と、印刷データを前記印刷装置へと出力可能なプリンタドライバ部と、前記アプリケーション部と前記プリンタドライバ部との間で印刷関連の命令および情報を伝達するインターフェース部とを備え、前記アプリケーション部から印刷関連の命令が発行された際に、前記インターフェース部では、前記プリンタドライバ部から伝達された印刷設定に応じた前処理を実行してから前記印刷関連の命令を前記プリンタドライバ部へと伝達し、前記プリンタドライバ部では、前記印刷設定に応じた後処理を実行して前記印刷データを完成させ、その印刷データを前記印刷装置へと出力するコンピュータであって、前記プリンタドライバ部は、あらかじめ定められた印刷中止条件が成立したか否かを判断する判断手段と、前記判断手段によって前記印刷中止条件が成立したと判断された場合に、前記インターフェース部での前処理、および前記プリンタドライバ部での後処理のうち、少なくとも一方の処理の一部または全部を対象として、当該対象となる処理が実行されない設定内容か、当該対象となる処理が元の設定内容よりも短時間で完了する設定内容に、前記印刷設定を変更する印刷設定変更手段と、前記判断手段によって前記印刷中止条件が成立していないと判断された場合には、前記印刷データの出力を実行する一方、前記判断手段によって前記印刷中止条件が成立したと判断された場合には、前記印刷データの出力を実行しない出力制御手段とを備えることを特徴とする。
【００２５】
このように構成されたコンピュータによれば、印刷中止条件が成立した場合に、インターフェース部での前処理、およびプリンタドライバ部での後処理のうち、少なくとも一方の処理の一部または全部が、実行されない状態または短時間で完了する状態になり、且つ、印刷データの出力が実行されない状態となる。
【００２６】
したがって、アプリケーション部に印刷の中止を伝達しないまま、アプリケーション部から印刷関連の命令を受け取るにもかかわらず、印刷を中止するための処理に要する時間を短縮することができ、アプリケーション部が予期しない挙動を示さないようにすることができる。
【図面の簡単な説明】
【００２７】
【図１】本発明のコンピュータの一例に相当するＰＣと、このＰＣに接続されたプリンタとで構成されたシステムのブロック図。
【図２】（ａ）はＰＣが備える印刷処理関連のソフトウェアを示すブロック図、（ｂ）はアプリケーションが表示する印刷設定画面の説明図。
【図３】印刷処理を示すフローチャート。
【図４】初期処理を示すフローチャート。
【図５】ページ処理を示すフローチャート。
【図６】中断メッセージを示す説明図。
【図７】（ａ）はアプリケーションが印刷する文書の具体例を示す説明図、（ｂ）はプリンタドライバへ伝達される印刷関連の命令の具体例を示す説明図。
【図８】（ａ）は利用者が設定した印刷設定を示す説明図、（ｂ）は印刷中止時にプリンタドライバによって変更された印刷設定を示す説明図、（ｃ）は３ページ目以降の印刷中止時に出力される印刷データを示す説明図。
【発明を実施するための形態】
【００２８】
次に、本発明の実施形態について一例を挙げて説明する。
［ハードウェアの構成］
図１は、パーソナルコンピュータ１（以下、ＰＣ１という）と、このＰＣ１に接続されたプリンタ２とを備えたシステムの概略構成を示すブロック図である。このシステム内に含まれるＰＣ１は、本発明でいうコンピュータに相当し、プリンタ２は、本発明でいう印刷装置に相当する。
【００２９】
このシステムの内、ＰＣ１は、図１に示すように、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、ＮＶＲＡＭ１４、ＨＤＤ１５（ハードディスク装置１５）、操作部１６、表示部１７、および通信インターフェース１８などを備えている。
【００３０】
ＣＰＵ１１は、ＲＯＭ１２やＲＡＭ１３に記憶されたプログラムに従って、ＰＣ１各部に対する制御および各種演算を実行する装置で、後述するアプリケーション３１，ＧＤＩ３３，およびプリンタドライバ３５としての処理や、その他、ＯＳとしての処理などは、このＣＰＵ１１によって実行される。
【００３１】
ＲＯＭ１２は、ＰＣ１の電源スイッチを切っても記憶内容を保持可能な記憶装置で、ＢＩＯＳ（Basic Input Output System）や通常であれば更新されない読み出し用のデータ等を記憶している。
【００３２】
ＲＡＭ１３は、ＣＰＵ１１から直接アクセスされるメインメモリ等として利用される記憶装置である。このＲＡＭ１３には、ＯＳやアプリケーション３１などのソフトウェアがＨＤＤ１５から読み込まれ、また、ＣＰＵ１１による各種演算の結果やＨＤＤ１５から読み込まれたデータもＲＡＭ１３に記憶されるようになっている。後述するプリンタドライバ３５としての処理を実行する際には、プリンタドライバ３５のプログラムがＨＤＤ１５からＲＡＭ１３に読み込まれ、ＲＡＭ１３に記憶されたプログラムに従って、ＣＰＵ１１がプリンタドライバとしての処理を実行することになる。
【００３３】
ＮＶＲＡＭ（Non Volatile RAM）１４は、ＰＣ１の電源スイッチを切っても記憶内容を保持可能、且つ、その記憶内容を更新可能な記憶装置で、利用者によって任意に変更され得る設定データや各種可変データを記憶している。
【００３４】
ＨＤＤ１５は、ＯＳ、各種アプリケーションプログラム、および各種データファイルを保存しておくための装置で、上記アプリケーション３１やプリンタドライバ３５のプログラムもＨＤＤ１５に保存されている。
【００３５】
操作部１６は、利用者からの各種指示を入力するための入力装置であり、例えば、キーボードや各種ポインティングデバイス（例えば、マウス）等によって構成される。表示部１７は、各種情報を利用者に提示するための出力装置であり、例えば、液晶ディスプレイ等によって構成される。
【００３６】
通信インターフェース１８は、プリンタおよびその他の周辺機器を接続可能なシリアルインターフェース（例えば、ＵＳＢインターフェース）、あるいは、ＬＡＮ（Local Area Network）インターフェース等である。
【００３７】
プリンタ２は、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、ＮＶＲＡＭ２４、印刷部２５、操作部２６、表示部２７、通信インターフェース２８などを備えている。
ＣＰＵ２１は、ＲＯＭ２２に記憶されている制御プログラムに従ってプリンタ２各部の制御および各種演算を実行する装置である。
【００３８】
ＲＯＭ２２は、プリンタ２の電源スイッチを切っても記憶内容を保持可能な記憶装置で、上記制御プログラムの他、通常であれば更新されない読み出し用の各種データを記憶している。
【００３９】
ＲＡＭ２３は、ＣＰＵ２１から直接アクセスされるメインメモリ等として利用される記憶装置で、ＰＣ１から受信したデータを格納するためのバッファとして利用されている。また、ＣＰＵ２１が処理中に算出する各種データなども一時的にＲＡＭ２３に記憶されるようになっている。
【００４０】
ＮＶＲＡＭ２４は、このプリンタ２に関する設定等、電力供給が断たれたときにも消失させたくないデータを記憶する記憶装置である。本実施形態の場合、プリンタ２には、１ヶ月に印刷可能な枚数の上限をユーザ毎に設定する機能があり、当月中に印刷可能な残りの枚数（以下、印刷可能残枚数ともいう。）は、このＮＶＲＡＭ２４に記憶される仕組みになっている。
【００４１】
印刷部２５は、インクジェット方式や電子写真方式の印刷機構により、シート状の媒体（例えば記録用紙）に対する印刷を実行可能に構成されている。
操作部２６は、利用者がマニュアル操作でプリンタ２に対して指令を与える場合に操作するキー入力装置である。
【００４２】
表示部２７は、液晶ディスプレイによって構成された装置で、プリンタ２の設定や状態などの情報を表示できるようになっている。
通信インターフェース２８は、ＰＣ１側の通信インターフェース１８と同じ規格に準拠したもので、ＰＣ１との間でデータ通信を実行可能に構成されている。
【００４３】
［ＰＣが備えるソフトウェアの構成］
次に、ＰＣ１が備えるソフトウェアの構成について説明する。
本実施形態において、ＰＣ１には、マルチタスク機能を備えたＯＳ（例えば、ＷｉｎｄｏｗｓＸＰ（登録商標））が搭載され、複数のプロセスが並列に機能するとともに、それら複数のプロセスが連携して各種処理を実行するようになっている。
【００４４】
後述する印刷関連の処理を実行するソフトウェアとしては、図２（ａ）に示すように、アプリケーション３１、ＧＤＩ（Graphics Device Interface）３３、プリンタドライバ３５などが機能する。
【００４５】
アプリケーション３１は、例えばワープロソフトや表計算ソフトなどに代表されるもので、アプリケーション３１において作成された文書の印刷を指示する操作が行われると、アプリケーション３１は、印刷すべき文書に対応する印刷関連の命令（ＧＤＩ用描画命令など）を生成し、その命令をＧＤＩ３３に対して与える。
【００４６】
ＧＤＩ３３は、ＯＳの一部として提供される描画関連の処理を実行するソフトウェアで、仮想化された描画領域であるデバイスコンテキストの管理や、このデバイスコンテキストへの描画に伴う表示用ないし印刷用データの作成などを実行する。
【００４７】
プリンタドライバ３５は、アプリケーション３１からＧＤＩ３３経由で伝達される命令に従って、印刷データを生成、出力するソフトウェアである。アプリケーション３１は、印刷関連の命令をプリンタドライバ３５に対して与えたい場合に、ＧＤＩ３３に対して指令を与えるための関数（ＡＰＩ；Application Program Interface）を呼び出すことにより、ＧＤＩ３３経由でプリンタドライバ３５へ命令を伝達する。また、ＧＤＩ３３は、印刷データを生成・出力する際には、プリンタドライバ３５を利用するための関数（ＤＤＩ；Device Driver Interface）を呼び出すことにより、プリンタドライバ３５を利用して印刷データの生成・出力を実行する。
【００４８】
以上のようなソフトウェアのうち、アプリケーション３１は、図２（ｂ）に示すような印刷設定用のＵＩを有し、このＵＩを利用して設定された印刷設定の内容（アプリケーション側印刷設定）は、ＧＤＩ３３経由でプリンタドライバ３５へと伝達される。図２（ｂ）に例示した印刷設定用ＵＩの場合、印刷設定として、用紙サイズ、用紙向き、解像度、およびウォーターマーク（例えば社外秘といった文字や記号を付加する機能）についての設定を、利用者が任意に指定できる。なお、このアプリケーション３１の場合、複数ページある文書の途中で用紙向きを変えたり、ウォーターマークの有無をページ毎に設定したりすることもできる。
【００４９】
一方、プリンタドライバ３５は、プリンタ２が有する機能や性能をプリンタ側印刷設定としてＧＤＩ３３へ伝達する。具体例を交えて説明すれば、例えば、プリンタ２がモノクロプリンタである場合、その旨の情報がプリンタ側印刷設定としてＧＤＩ３３へ伝達される。あるいは、例えば、プリンタ２の解像度などもプリンタ側印刷設定としてＧＤＩ３３へ伝達される。このようなプリンタ２の印刷能力に関する情報は、ＧＤＩ３３経由でアプリケーション３１に伝達することもできる。
【００５０】
ただし、アプリケーション３１は、プリンタ２の印刷能力を特に考慮することなく印刷関連の命令を発行することができる。これも具体例を交えて説明すれば、例えば、プリンタ２がモノクロプリンタであっても、アプリケーション３１は、カラー印刷用の命令をそのまま発行することができる。また、アプリケーション３１は、プリンタ２の解像度を考慮することなく、ＧＤＩ用描画命令を発行することができる。
【００５１】
これは、アプリケーション３１が印刷関連の命令を発行した際に、ＧＤＩ３３は、上記プリンタ側印刷設定を考慮して、プリンタ２での印刷を実行可能な命令に変換した上で、その命令をプリンタドライバ３５に伝達するからである。
【００５２】
すなわち、ＧＤＩ３３は、例えば、仮にアプリケーション３１がカラー印刷に対応したＧＤＩ用描画命令をＧＤＩ３３に対して発行したとしても、プリンタ２がモノクロプリンタであれば、プリンタ側印刷設定を考慮して、カラー印刷対応のＧＤＩ用描画命令をモノクロ印刷対応のプリンタドライバ用描画命令に変換してからプリンタドライバ３５に伝達する。
【００５３】
また、アプリケーション３１が解像度を特定することなくＧＤＩ用描画命令をＧＤＩ３３に対して発行したとしても、ＧＤＩ３３においてプリンタ側印刷設定を考慮した解像度で描画処理が行われて、プリンタドライバ３５において利用される。
【００５４】
こうした仕組みにより、アプリケーション３１が要求する印刷能力とプリンタ２が有する印刷能力に差異があっても、その差異をＧＤＩ３３において吸収してプリンタドライバ３５へと伝達することができ、これにより、アプリケーション３１およびプリンタドライバ３５には過剰な負担がかからない仕組みになっている。
【００５５】
［プリンタドライバによる印刷処理の説明］
次に、上記ＰＣ１においてプリンタドライバ３５（厳密には、ＰＣ１においてプリンタドライバに相当する処理を実行するＣＰＵ１１；以下、単にプリンタドライバ３５と称する。）によって実行される印刷処理の詳細について、図３〜図５のフローチャートに基づいて説明する。
【００５６】
なお、本実施形態では、プリンタ２が所定期間に印刷できる印刷枚数が予め決められており、プリンタ２は自身が印刷可能な印刷枚数（以下、印刷可能残枚数という）を管理している。プリンタドライバ３５は、印刷処理を開始する場合に、プリンタ２で管理されている印刷可能残枚数を取得し、これから印刷する印刷枚数が印刷可能残枚数を超えると判断すると、印刷を中止する仕組みになっている。
【００５７】
この印刷処理は、アプリケーション３１からの印刷要求に基づき、ＧＤＩ３３経由でプリンタドライバ３５がコールされることによって開始される。印刷処理を開始すると、プリンタドライバ３５は、まず、初期処理を実行する（Ｓ１０５）。このＳ１０５の初期処理は、詳しくは図４に示すような処理となる。
【００５８】
すなわち、図４に示す初期処理を開始すると、プリンタドライバ３５は、まず、印刷開始命令が呼ばれたか否かを判断する（Ｓ２０５）。この印刷開始命令は、文書全体の印刷を開始するに当たって、最初にアプリケーション３１から伝達される命令である。
【００５９】
Ｓ２０５において、印刷開始命令が呼ばれていない場合は（Ｓ２０５：ＮＯ）、Ｓ２０５へ戻ることにより、印刷開始命令が呼ばれるまで待機する状態になる。一方、Ｓ２０５において、印刷開始命令が呼ばれた場合（Ｓ２０５：ＹＥＳ）、プリンタドライバ３５は、ＮＶＲＡＭ２４に記憶された印刷可能残枚数をプリンタ２から取得し（Ｓ２１０）、取得した値を変数ｉに代入する（Ｓ２１５）。
【００６０】
続いて、プリンタドライバ３５は、変数ｉが０より大きいか否かを判断し（Ｓ２２０）、変数ｉが０より大きい場合は（Ｓ２２０：ＹＥＳ）、プリンタ２に対して印刷開始命令を出力する（Ｓ２２５）。
【００６１】
この印刷開始命令を出力した場合、プリンタドライバ３５は、印刷開始命令出力フラグを真にし（Ｓ２３０）、印刷中止フラグを偽にして（Ｓ２３５）、図４に示す初期処理を終了する。なお、印刷開始命令出力フラグは、印刷開始命令の出力をした場合に真とされるフラグであり、印刷中止フラグは、プリンタドライバ３５の判断で印刷を中止した場合に真とされるフラグである。
【００６２】
一方、Ｓ２２０において、変数ｉが０以下であった場合は（Ｓ２２０：ＮＯ）、すでに印刷可能残枚数が無い状態になっていることを意味し、この時点で全く印刷ができないことになる。そのため、プリンタドライバ３５は、上述のような印刷開始命令も含めてプリンタ２に対しては何も出力せず、印刷開始命令出力フラグは偽とし（Ｓ２４０）、印刷中止フラグを真にして（Ｓ２４５）、図４に示す初期処理を終了する。
【００６３】
さて、以上のようにして図４に示す初期処理を終了すると、図３に示すＳ１０５を終えたことになるので、続いて、プリンタドライバ３５は、初期化命令が呼ばれたか否かを判断する（Ｓ１１０）。この初期化命令は、文書の各ページの印刷を開始するに当たって、各ページの印刷設定に変更がある場合にアプリケーション３１から伝達される命令である。
【００６４】
Ｓ１１０において、初期化命令が呼ばれていた場合（Ｓ１１０：ＹＥＳ）、プリンタドライバ３５は、アプリケーション３１から伝達される設定内容に従って印刷設定を初期化する（Ｓ１１５）。このＳ１１０により、図２（ｂ）に例示した印刷設定用ＵＩに含まれる各項目の内容が設定されることになる。
【００６５】
そして、プリンタドライバ３５は、印刷中止フラグが真であるか否かを確認する（Ｓ１２０）。印刷中止フラグが真である場合は（Ｓ１２０：ＹＥＳ）、プリンタドライバ３５の判断で印刷を中止する状況にあったということを意味するので、この場合は、ＧＤＩ３３の処理に影響する印刷設定を高速用に変更して（Ｓ１２５）、Ｓ１１０へと戻る。
【００６６】
より詳しく説明すると、印刷設定には、すでに説明したとおり、用紙サイズ、用紙向き、解像度、ウォーターマークなどの項目があるが、この中には、設定の変更内容がＧＤＩ３３にも伝えられる項目が含まれている。しかも、ＧＤＩ３３に伝えられる項目の中には、ＧＤＩ３３での処理速度に影響を与える項目が含まれている。
【００６７】
具体的には、上記項目中、解像度は、ＧＤＩ３３に伝えられる項目であり、且つ、ＧＤＩ３３での処理速度に影響を与える項目に該当する。アプリケーション３１からＧＤＩ３３へ印刷関連の命令が伝えられた場合、その命令はＧＤＩ３３で処理されて、プリンタドライバ３５で処理可能な印刷命令に置き換えられた上でプリンタドライバ３５へと送られる。
【００６８】
このとき、ＧＤＩ３３では、解像度が高い印刷設定になっている場合ほど、より細かい印刷命令に置き換えられる一方、解像度が低い印刷設定になっている場合は、大まかな印刷命令に置き換えられることがある。そのため、このような場合には、解像度が高ければ高いほど、ＧＤＩ３３での処理に時間がかかるということになる。
【００６９】
そこで、Ｓ１２５では、印刷設定を変更することでＧＤＩ３３での内部処理が速くなる項目（上記事例では解像度）について、ＧＤＩ３３の処理が高速化されるような設定値に変更する処理を実行する。具体例を挙げれば、当初の印刷設定において解像度６００ＤＰＩが利用者によって設定されていても、Ｓ１２５では、ＧＤＩ３３の処理が高速化されるように、解像度を３００ＤＰＩに変更する、といった処理が行われる。
【００７０】
ちなみに、解像度をどの程度まで下げるかは、高速化される程度も考慮してあらかじめ決めておけばよい事項であり、上記事例のような３００ＤＰＩという具体例が推奨値を意味するものではない。また、上記事例では、解像度を低下させる例を示したが、解像度以外の印刷設定を変更することでＧＤＩ３３の処理が高速化されるのであれば、そのような項目は、すべてＳ１２５での変更対象になり得る項目となる。
【００７１】
なお、Ｓ１２０において、印刷中止フラグが偽である場合は（Ｓ１２０：ＮＯ）、その時点において、プリンタドライバ３５の判断で印刷を中止する状況にはなかったということを意味するので、この場合は、Ｓ１２５を実行することなく、Ｓ１１０へと戻る。
【００７２】
さて、Ｓ１１０において、初期化命令が呼ばれていなかった場合（Ｓ１１０：ＮＯ）、プリンタドライバ３５は、続いて、ページ開始命令が呼ばれたか否かを判断する（Ｓ１３０）。このページ開始命令は、文書の各ページの印刷を開始する際にアプリケーション３１から伝達される命令である。
【００７３】
Ｓ１３０においてページ開始命令が呼ばれていた場合（Ｓ１３０：ＹＥＳ）、プリンタドライバ３５は、ページ処理を実行する（Ｓ１３５）。このＳ１３５のページ処理は、詳しくは図５に示すような処理となる。
【００７４】
すなわち、図５に示すページ処理を開始すると、プリンタドライバ３５は、まず、印刷中止フラグが真であるか否かを確認する（Ｓ３０５）。このＳ３０５において、印刷中止フラグが真である場合は（Ｓ３０５：ＹＥＳ）、プリンタドライバ３５の判断で印刷を中止する状況にあったということを意味するので、この場合は、プリンタドライバ３５の内部処理に影響する印刷設定を高速用に変更する（Ｓ３１０）。
【００７５】
より詳しく説明すると、印刷設定には、すでに説明した解像度のように、ＧＤＩ３３での処理速度に影響を与える項目が含まれているが、さらに、プリンタドライバ３５の内部処理の処理速度に影響を与える項目も含まれている。
【００７６】
具体的には、上記項目中、ウォーターマークは、プリンタドライバ３５の内部処理によって付加されるものであるため、ウォーターマークありの場合はプリンタドライバ３５の内部処理に時間を要することになり、ウォーターマークなしの場合はプリンタドライバ３５の内部処理に要する時間を短縮することができる。
【００７７】
そこで、Ｓ３１０では、印刷設定を変更することでプリンタドライバ３５の内部処理が速くなる項目（上記事例ではウォーターマーク）について、プリンタドライバ３５の内部処理が高速化されるような設定値に変更する処理を実行する。具体例を挙げれば、当初の印刷設定においてウォーターマークありが利用者によって設定されていても、Ｓ３１０では、プリンタドライバ３５の内部処理が高速化されるように、ウォーターマークなしの設定に変更する、といった処理が行われる。
【００７８】
ちなみに、上記事例では、ウォーターマークの有無を変更する例を示したが、ウォーターマーク以外の印刷設定を変更することでプリンタドライバ３５の内部処理が高速化されるのであれば、そのような項目は、すべてＳ３１０での変更対象になり得る項目となる。
【００７９】
なお、Ｓ３０５において、印刷中止フラグが偽である場合は（Ｓ３０５：ＮＯ）、その時点において、プリンタドライバ３５の判断で印刷を中止する状況にはなかったということを意味するので、この場合は、Ｓ３１０を実行することなく、Ｓ３１５へと進む。また、Ｓ３１０を終えた場合も、Ｓ３１５へと進む。
【００８０】
さて、Ｓ３１５へと進んだ場合、プリンタドライバ３５は、描画命令が呼ばれたか否かを判断する（Ｓ３１５）。この描画命令は、文書の各ページ内に文字や図形等を描画する際にアプリケーション３１から伝達される命令である。
【００８１】
Ｓ３１５において、描画命令が呼ばれた場合は（Ｓ３１５：ＹＥＳ）、印刷中止フラグが真であるか否かを判断する（Ｓ３２０）。印刷中止フラグが偽である場合は（Ｓ３２０：ＮＯ）、プリンタドライバ３５の判断で印刷を中止する状況にはなかったということを意味するので、この場合は、描画命令に対応する描画処理を実行して（Ｓ３２５）、Ｓ３１５へと戻る。これにより、描画命令がアプリケーション３１から伝達される間は、Ｓ３１５〜Ｓ３２５が繰り返される状態となって、１ページ内の描画が進められることになる。
【００８２】
一方、Ｓ３２０において、印刷中止フラグが真である場合は（Ｓ３２０：ＹＥＳ）、プリンタドライバ３５の判断で印刷を中止する状況にあったということを意味するので、この場合は、Ｓ３２５を実行することなく、Ｓ３１５へと戻る。この場合、描画命令がアプリケーション３１から伝達される間は、Ｓ３１５〜Ｓ３２０が繰り返される状態となるが、Ｓ３２５は実行されないの、実際に描画処理がなされることはない。
【００８３】
さて、Ｓ３１５においては、描画命令が呼ばれない場合もあり（Ｓ３１５：ＮＯ）、その場合、プリンタドライバ３５は、ページ終了命令が呼ばれたか否かを判断する（Ｓ３３０）。このページ終了命令は、文書の各ページの印刷を終了する際にアプリケーション３１から伝達される命令である。
【００８４】
Ｓ３３０において、ページ終了命令が呼ばれていない場合は（Ｓ３３０：ＮＯ）、Ｓ３１５へと戻ることにより、再び別の命令が到来するのを待つ状態になる。一方、Ｓ３３０において、ページ終了命令が呼ばれていた場合（Ｓ３３０：ＹＥＳ）、プリンタドライバ３５は、ウォーターマーク設定がＯＮか否かを判断する（Ｓ３３５）。
【００８５】
Ｓ３３５において、ウォーターマーク設定がＯＮの場合は（Ｓ３３５：ＹＥＳ）、ウォーターマークを付加する処理を実行して（Ｓ３４０）、Ｓ３４５へと進む。一方、Ｓ３３５において、ウォーターマーク設定がＯＦＦの場合は（Ｓ３３５：ＮＯ）、Ｓ３４０を実行することなく、Ｓ３４５へと進む。
【００８６】
Ｓ３４０が実行された場合は、ウォーターマークを付加する処理のため、プリンタドライバ３５の内部処理に相応の時間を要することになる。しかし、利用者がウォーターマーク設定をＯＮにしていた場合でも、Ｓ３１０が実行されている場合は、Ｓ３１０においてウォーターマーク設定がＯＦＦにされる。そのため、Ｓ３４０が実行されることはなく、その分だけプリンタドライバ３５の内部処理に要する時間は短縮されることになる。
【００８７】
さて、Ｓ３４５へと進んだら、プリンタドライバ３５は、印刷中止フラグが真であるか否かを判断する（Ｓ３４５）。Ｓ３４５において、印刷中止フラグが偽である場合は（Ｓ３４５：ＮＯ）、プリンタドライバ３５の判断で印刷を中止する状況にはなかったということを意味するので、この場合は、描画結果をプリンタ２へ出力する（Ｓ３５０）。
【００８８】
なお、Ｓ３５０では、一般的なプリンタドライバ同様、描画領域に描画された画像に対して、所定の色成分（例えば、ＣＭＹＫ）からなるカラーイメージデータに変換する色変換処理を行う。そして、その変換されたカラーイメージデータに基づいて２値カラーイメージデータを生成する２値化処理を行い、各プレーンデータを所定の解像度に圧縮する。
【００８９】
その上で、圧縮したデータに各種制御コマンドを付加して、プリンタ２に適合するページ記述言語（ＰＤＬ：Page Description Language）を作成し、この作成した１ページ分のＰＤＬデータをプリンタ２に送信する。以上の処理により、１ページ分のＰＤＬデータがスプーラシステムに出力され、スプーラシステムでの処理によってＰＤＬデータがプリンタ２に出力されることになる。
【００９０】
このようにして描画結果をプリンタ２へ出力したら、プリンタドライバ３５は、変数ｉを１減らして（Ｓ３５５）、変数ｉが０より大きいか否かを判断する（Ｓ３６０）。Ｓ３６０において、変数ｉが０以下であった場合は（Ｓ３６０：ＮＯ）、Ｓ３５５の演算の結果、印刷可能残枚数が無い状態に至ったことを意味するので、その場合は、印刷中止フラグを真にして（Ｓ３６５）、図５に示すページ処理を終了する。
【００９１】
また、Ｓ３６０において、変数ｉが０より大きい場合は（Ｓ３６０：ＹＥＳ）、Ｓ３５５の演算の結果、印刷可能残枚数がまだあることを意味するので、その場合は、Ｓ３６５を実行することなく、図５に示すページ処理を終了する。
【００９２】
一方、Ｓ３４５において、印刷中止フラグが真である場合は（Ｓ３４５：ＹＥＳ）、プリンタドライバ３５の判断で印刷を中止する状況にあったということを意味するので、この場合は、Ｓ３５０〜Ｓ３６５を実行することなく、図５に示すページ処理を終了する。
【００９３】
以上のようにして図５に示すページ処理を終了すると、図３に示すＳ１３５を終えたことになるので、この場合は、Ｓ１１０へと戻る。
さて一方、Ｓ１３０においてページ開始命令が呼ばれなかった場合（Ｓ１３０：ＮＯ）、プリンタドライバ３５は、印刷終了命令が呼ばれたか否かを判断する（Ｓ１４０）。この印刷終了命令は、文書全体の印刷を終了する場合にアプリケーション３１から伝達される命令である。
【００９４】
Ｓ１４０において、印刷終了命令が呼ばれていない場合は（Ｓ１４０：ＮＯ）、Ｓ１１０へと戻ることにより、再び別の命令が到来するのを待つ状態になる。一方、Ｓ１４０において、印刷終了命令が呼ばれていた場合（Ｓ１４０：ＹＥＳ）、プリンタドライバ３５は、印刷開始命令出力フラグが真であるか否かを確認する（Ｓ１４５）。この印刷開始命令出力フラグは、Ｓ２３０において真がセットされる一方、Ｓ２４０において偽がセットされるフラグである。
【００９５】
したがって、Ｓ１４５において、印刷開始命令出力フラグが真である場合は（Ｓ１４５：ＹＥＳ）、プリンタ２に対して印刷開始命令を出力済みなので、この印刷開始命令と対になる印刷終了命令を出力して（Ｓ１５０）、Ｓ１５５へと進む。一方、Ｓ１４５において、印刷開始命令出力フラグが偽である場合は（Ｓ１４５：ＮＯ）、プリンタ２に対して印刷開始命令を未出力なので、Ｓ１５０を実行することなく、Ｓ１５５へと進む。
【００９６】
こうしてＳ１５５へ進むと、プリンタドライバ３５は、印刷中止フラグが真であるか否かを確認する（Ｓ１５５）。このＳ１５５において、印刷中止フラグが真である場合は（Ｓ１５５：ＹＥＳ）、プリンタドライバ３５の判断で印刷を中止する状況にあったということを意味するので、この場合は、中止メッセージを表示して（Ｓ１６０）、図３に示す印刷処理を終了する。このＳ１６０により、ＰＣ１の表示部１７には、図６に示すような中止メッセージが表示され、これにより、利用者は印刷が中止された旨を認識することができる。
【００９７】
一方、Ｓ１５５において、印刷中止フラグが偽である場合は（Ｓ１５５：ＮＯ）、プリンタドライバ３５の判断で印刷を中止する状況にはなかったということを意味するので、この場合はＳ１６０を実行することなく図３に示す印刷処理を終了する。
【００９８】
［印刷中止制御がなされる場合の具体的事例］
次に、上記のようなプリンタドライバ３５が機能して印刷中止制御がなされる場合の挙動について、具体的な例を挙げて説明する。
【００９９】
以下に説明する例では、図７（ａ）に示すような５ページの文書の印刷を指令する場合を例に挙げて説明を行う。この文書は、１〜３ページ目は用紙向きが縦向き、４〜５ページ目は用紙向きが横向きに設定された文書であり、この印刷設定は、図２（ｂ）に例示した印刷設定用ＵＩを利用してアプリケーション３１側で実施されているものである。
【０１００】
また、プリンタ２に記憶されている印刷可能残枚数は、２となっている事例を想定する。すなわち、図７（ａ）に示すような５ページの文書の印刷を指令するものの、印刷可能残枚数は２となっているため、２ページ目までは印刷され、３ページ目以降は、プリンタドライバ３５が印刷不可と判断して、印刷中止制御が行われるケースを想定して、以下の説明を行う。
【０１０１】
上記のような文書の印刷が利用者によって指令された場合、アプリケーション３１は、ＧＤＩ３３経由でプリンタドライバ３５に対して印刷関連の命令を伝達する。このときプリンタドライバ３５に伝達される命令は、図７（ｂ）に示すような命令群となる。
【０１０２】
具体的には、プリンタドライバ３５には、まず、印刷開始命令が伝達され、続いて、初期化命令が伝達される。この初期化命令の中には、図２（ｂ）に例示した印刷設定用ＵＩにおいて設定された各項目の内容が含まれ、例えば、この段階では、用紙向きを縦向きとする旨の情報が含まれている。
【０１０３】
続いて、プリンタドライバ３５には、各ページに対応する命令として、ページ開始命令、いくつかの描画命令、およびページ終了命令が伝達される。描画命令の数や種別は、各ページの描画内容に応じて変わる。また、本実施形態の場合、１〜３ページ目に対応する命令群が伝達された後、４ページ目に対応する命令群が伝達される前に、あらためて初期化命令が伝達される。この初期化命令の中には、用紙向きを横向きとする旨の情報が含まれており、これにより、４ページ目以降の用紙向きが横向きとされることになる。
【０１０４】
このように４ページ目以降は、印刷設定が変更されるため、１〜３ページ目と４〜５ページ目とでは、図８（ａ）に示すような印刷設定が、アプリケーション３１から指示されることになる。そして、５ページ目に対応する命令群が伝達された後、最後に印刷終了命令が伝達されて、プリンタドライバ３５に対する命令の伝達が完了する。
【０１０５】
以上のような命令群がプリンタドライバ３５に伝達されると、通常であれば、プリンタドライバ３５は上記５ページの文書に対応する印刷データを生成、出力することになる。ただし、すでに説明した通り、この事例では、上記５ページの文書の印刷を開始する際に、印刷可能残枚数が残り２枚となっていて、３ページ目以降を印刷できない状況を想定している。
【０１０６】
そのため、３ページ目以降に対応する命令群がアプリケーション３１からプリンタドライバ３５へ伝達されると、プリンタドライバ３５では、上述した印刷処理の中で印刷設定を変更することになり、各ページの印刷設定が図８（ｂ）に示すような内容に変更される（図中斜線を付した箇所が設定変更箇所）。また、３ページ目以降について、プリンタドライバ３５は、印刷データの生成、出力も実行しないので、プリンタ２での印刷もなされない状態になる。
【０１０７】
このようにプリンタドライバ３５が印刷設定を変更する場合、プリンタドライバ３５は、２段階のタイミングに分けて印刷設定の変更を行う。具体的には、この事例の場合、２ページ目の印刷データを出力した時点で印刷可能残枚数が０になるので、これ以降の印刷がなされなくなる。
【０１０８】
そこで、第１段階として、３ページ目に対応する命令群を処理するときには、上述のＳ３０５で肯定判断がなされて、Ｓ３１０でプリンタドライバ３５の内部処理に影響する印刷設定が高速用に変更される。その結果、本実施形態の場合であれば、３ページ目以降について、ウォーターマークの設定がＯＦＦに変更されることになる。
【０１０９】
次に、第２段階として、４ページ目に対応する命令群を処理する前には、元々印刷設定が変更（用紙向きが縦向きから横向きに変更）される状況にあり、４ページ目のページ処理の前には初期化命令が呼ばれるため、Ｓ１１０で肯定判断がなされ、またＳ１２０でも肯定判断がなされ、Ｓ１２５でＧＤＩ３３の処理に影響する印刷設定が高速用に変更される。その結果、本実施形態の場合であれば、４ページ目以降について、解像度が３００ＤＰＩに変更されることになる。
【０１１０】
このように２段階に分けて印刷設定の変更を行うのは、プリンタドライバ３５の内部処理に影響する印刷設定は、プリンタドライバ３５が内部的に実施する設定変更なので、プリンタドライバ３５が所望のタイミングで実施できるのに対し、ＧＤＩ３３の処理に影響する印刷設定は、初期化命令が呼ばれたタイミングでしか、設定変更ができないためである。
【０１１１】
ただし、このように段階的に印刷設定を変更しても、プリンタドライバ３５では、３ページ目に対応する命令群を処理する段階では、利用者がウォーターマークの設定をＯＮにしていたにもかかわらず、ウォーターマークを描画する処理から解放されるので、その分だけ処理が迅速に完了することになる。
【０１１２】
また、４ページ目以降に対応する命令群を処理する段階では、ＧＤＩ３３が３００ＤＰＩでの描画に必要な命令群を伝達する状態になるので、６００ＤＰＩでの描画に必要な命令群を伝達していた状態よりも、ＧＤＩ３３の内部処理が迅速に完了することになる。
【０１１３】
したがって、単に印刷データの生成、出力を見合わせるだけで、こうした印刷設定の変更がなされない技術に比べれば、アプリケーション３１からの命令群の伝達完了までに要する時間とプリンタドライバ３５の内部処理に要する時間、双方が短縮されることになるのである。
【０１１４】
なお、以上のような印刷中止制御が行われる場合でも、印刷開始命令出力フラグが真となっていれば、Ｓ１４５では肯定判断がなされ、Ｓ１５０では印刷終了命令が出力される。その結果、プリンタドライバ３５では、図８（ｃ）に示すような、２ページ分の印刷データが生成され、プリンタ２に対して出力されることになる。
【０１１５】
［効果］
以上説明した通り、上記プリンタドライバ３５によれば、印刷中止条件が成立した場合に、Ｓ１２５により、ＧＤＩ３３（本発明でいうインターフェース部に相当。）での前処理が、より短時間で完了する状態（上記実施形態の場合、解像度６００ＤＰＩ対応の処理が、より迅速に処理が完了する解像度３００ＤＰＩ対応の処理で代替された状態）になる。また、Ｓ３１０により、プリンタドライバ３５（本発明でいうプリンタドライバ部に相当。）での後処理が、実行されない状態（上記実施形態の場合、ウォーターマークを描画しない状態）になる。
【０１１６】
したがって、アプリケーション３１（本発明でいうアプリケーション部に相当。）に印刷の中止を伝達しないまま、アプリケーション３１から印刷関連の命令を受け取るにもかかわらず、印刷を中止するための処理に要する時間を短縮することができる。また、アプリケーション３１に印刷の中止を伝達しないことにより、アプリケーション３１が予期しない挙動を示さないようにすることができる。
【０１１７】
また、このような機能を実現するに当たって、プリンタドライバ３５は、ＧＤＩ３３から初期化命令が伝達された機会を利用して、ＧＤＩ３３での前処理において参照される印刷設定を変更しているので、ＧＤＩ３３に特別なインターフェースを追加しなくても、上記のようなＧＤＩ３３での前処理の高速化を実現できる。
【０１１８】
さらに、プリンタドライバ３５は、ＧＤＩからページ開始命令が伝達された段階で、プリンタドライバ３５での後処理が実行されない設定内容に印刷設定を変更しているので、ＧＤＩ３３での前処理において参照される印刷設定を変更できない状況でも、プリンタドライバ３５での後処理に要する時間を、先行して短縮することができ、これにより、印刷中止に要する時間の短縮に寄与することができる。
【０１１９】
加えて、プリンタドライバ３５は、印刷を中止する場合には、Ｓ１６０により、印刷を中止する旨を利用者に対して通知しているので、利用者は、中止メッセージを見て印刷が通常通り終了したのか中止されたのかを察知できる。
【０１２０】
［変形例等］
以上、本発明の実施形態について説明したが、本発明は上記の具体的な一実施形態に限定されず、この他にも種々の形態で実施することができる。
【０１２１】
例えば、上記実施形態においては、ＧＤＩ３３での処理が迅速化され得る印刷設定として、解像度を高解像度（６００ＤＰＩ）から低解像度（３００ＤＰＩ）に変更する例を示したが、この解像度の絶対値は任意であり、さらなる処理の高速化に寄与するのであれば、例えば１００ＤＰＩ，１５０ＤＰＩ等、上記実施形態とは異なる解像度に変更してもよい。
【０１２２】
また、ＧＤＩ３３での処理が迅速化され得る印刷設定として、解像度以外の設定を変更してもよい。一例を挙げれば、色モード（フルカラー、モノクロ）の変更をしてもよく、この場合、フルカラーよりもモノクロの方が伝達すべき情報量が少なくなるので、ＧＤＩ３３での処理が迅速化されることになる。
【０１２３】
さらに、プリンタドライバ３５の内部処理に関しても、ウォーターマークの描画を見合わせることで迅速化を図る事例を示したが、これもウォーターマーク以外のものについて、いくつかの処理を実行しない構成にしてもよい。
【０１２４】
具体的には、ヘッダー／フッターを付加する処理、色変換を行う処理、コレート処理などは、印刷中止に伴って不要となる処理なので、これらの処理を実行しない印刷設定（または、ある程度の処理を実行するとしても、より短時間で処理が完了する印刷設定）に変更することで、プリンタドライバ３５の内部処理を迅速に完了させることが可能となる。
【０１２５】
また、上記実施形態において、プリンタドライバ３５は、ＧＤＩ３３から初期化命令が伝達されたタイミングで、ＧＤＩ３３での前処理において参照される印刷設定だけを変更していたが、このタイミングで、プリンタドライバ３５での後処理が実行されない設定内容に印刷設定を変更してもよい。具体的には、Ｓ３１０相当の処理をＳ１２５とともに実行するようにしてもよい。
【０１２６】
加えて、上記実施形態では、印刷可能残枚数が０になったときにプリンタドライバ３５の判断で印刷を中止する事例を示したが、他の判定条件に基づいてプリンタドライバ３５が印刷の中止を判断する場合でも、本発明の構成を採用することができる。
【０１２７】
例えば、プリンタドライバ３５が自らのＵＩとして印刷プレビューを表示する画面を有する場合、プレビューを見たユーザが印刷をキャンセル操作を行った場合に、プリンタドライバ３５の判断で印刷を中止する、といった構成を採用してもよい。
【０１２８】
あるいは、プリンタドライバ３５が、ＰＣ−ＦＡＸ機能に対応し、自らのＵＩとしてＦＡＸ番号入力画面を有する場合、その入力画面でユーザがＦＡＸ送信のキャンセル操作を行った場合に、プリンタドライバ３５の判断でＦＡＸ送信を中止する、といった構成を採用してもよい。すなわち、本発明でいう印刷装置は、ＰＣからプリンタデバイスとして認識し得るデバイス全般を含むものであり、単機能のプリンタはもちろんのこと、例えば、ファクシミリ装置、ＭＦＰ（Multifunction Peripheral）なども、本発明でいう印刷装置の概念に含まれるものである。
【０１２９】
また、プリンタドライバ３５が、特定のキーワードや特定の画像に基づいて機密文書等の印刷が指示されたか否かを検出する機能を備えている場合には、機密文書等の印刷が指示された際に、プリンタドライバ３５の判断で印刷を中止する、といった構成を採用してもよい。
【０１３０】
ちなみに、上記のようにプリンタドライバ３５の判断で印刷を中止する事例の中には、ユーザの指示に基づいてプリンタドライバ３５が判断を行う事例、ユーザの指示がなくてもプリンタドライバ３５が判断を行う事例、双方が存在するので、Ｓ１６０によって中止メッセージを表示する際には、いずれの事例に該当するのかを判断する処理ステップを追加し、ユーザの指示がなくてもプリンタドライバ３５が判断を行う場合にのみ、中止メッセージを表示するように構成してもよい。このようにすれば、ユーザが明示的に指示をしているにもかかわらず、メッセージが出力されてしまうのを回避できるので、ユーザがメッセージダイアログを閉じる手間を省くことができる。
【符号の説明】
【０１３１】
１・・・パーソナルコンピュータ、２・・・プリンタ、１１，２１・・・ＣＰＵ、１２，２２・・・ＲＯＭ、１３，２３・・・ＲＡＭ、１４，２４・・・ＮＶＲＡＭ、１５・・・ハードディスク装置、１６，２６・・・操作部、１７，２７・・・表示部、１８，２８・・・通信インターフェース、２５・・・印刷部、３１・・・アプリケーション、３３・・・ＧＤＩ、３５・・・プリンタドライバ。
【図１】
2010257040.tif 000003
【図２】
2010257040.tif 000004
【図３】
2010257040.tif 000005
【図４】
2010257040.tif 000006
【図５】
2010257040.tif 000007
【図６】
2010257040.tif 000008
【図７】
2010257040.tif 000009
【図８】
2010257040.tif 000010