(57)【特許請求の範囲】
【請求項１】
印刷ジョブのスプールデータに基づいて、印刷コマンドを生成する印刷コマンド生成工程と、
印刷装置で印刷コマンドに対応するページを印刷するために、前記印刷コマンド生成工程で生成された印刷コマンドを印刷装置に送信する印刷コマンド送信制御工程と、
エラーが発生した印刷ジョブを識別するジョブ識別情報と該エラーが発生した時点での印刷済みのページ数の情報とを対応させて記憶装置で管理する管理工程とを備え、
前記印刷コマンド生成工程では、処理対象の印刷ジョブが中間描画命令でスプールされるデータ型であると判断された場合に、当該処理対象の印刷ジョブのジョブ識別情報が前記記憶装置で管理されている際には、前記記憶装置で対応して管理されている印刷済みのページ数の情報に基づき、印刷済みのページに関するページ構成処理をスキップして印刷コマンドを生成し、
前記印刷コマンド送信制御工程では、処理対象の印刷ジョブが中間描画命令でスプールされるデータ型でない場合に、当該処理対象の印刷ジョブのジョブ識別情報が前記記憶装置で管理されている際には、前記記憶装置で対応して管理されている印刷済みのページ数の情報に基づき、印刷済みのページに対応する印刷コマンドの送信をスキップすることを特徴とする情報処理方法。
【請求項２】
前記コマンド送信制御工程では、前記印刷済みのページに対応する印刷コマンドの送信をスキップする場合に、該印刷済みのページに関する印刷設定コマンドを前記印刷装置に送信することを特徴とする請求項１に記載の情報処理方法。
【請求項３】
前記印刷コマンド生成工程では、処理対象の印刷ジョブのジョブ識別情報が前記記憶装置で管理されている際に、当該処理対象の印刷ジョブの印刷設定を変更し、変更された印刷設定に基づき印刷コマンドを生成することを特徴とする請求項１または２に記載の情報処理方法。
【請求項４】
前記印刷コマンド生成工程では、前記発生したエラーの種類に応じて変更すべき印刷設定を決定することを特徴とする請求項３に記載の情報処理方法。
【請求項５】
前記印刷コマンド生成工程では、処理対象の印刷ジョブのジョブ識別情報が前記記憶装置で管理されている際に、当該印刷ジョブに関するプレビュー画面を表示し、該プレビュー画面上で選択されたページ以降の印刷コマンドを生成することを特徴とする請求項１乃至４のいずれか１項に記載の情報処理方法。
【請求項６】
前記印刷コマンド送信制御工程では、処理対象の印刷ジョブのスプールされるデータ型が、ＥＭＦであれば中間描画命令でスプールされるデータ型と判断され、ＲＡＷであれば中間描画命令でスプールされるデータ型と判断されないことを特徴とする請求項１乃至５の何れか１項に記載の情報処理方法。
【請求項７】
印刷装置と接続された、記憶装置を備える情報処理装置であって、
印刷ジョブのスプールデータに基づいて、印刷コマンドを生成する印刷コマンド生成手段と、
印刷装置で印刷コマンドに対応するページを印刷するために、前記印刷コマンド生成手段が生成した印刷コマンドを印刷装置に送信する印刷コマンド送信制御手段と、
エラーが発生した印刷ジョブを識別するジョブ識別情報と該エラーが発生した時点での印刷済みのページ数の情報とを対応させて前記記憶装置で管理する管理手段とを備え、
前記印刷コマンド生成手段は、処理対象の印刷ジョブが中間描画命令でスプールされるデータ型であると判断された場合に、当該処理対象の印刷ジョブのジョブ識別情報が前記記憶装置で管理されている際には、前記記憶装置で対応して管理されている印刷済みのページ数の情報に基づき、印刷済みのページに関するページ構成処理をスキップして印刷コマンドを生成し、
前記印刷コマンド送信制御手段は、処理対象の印刷ジョブが中間描画命令でスプールされるデータ型でない場合に、当該処理対象の印刷ジョブのジョブ識別情報が前記記憶装置で管理されている際には、前記記憶装置で対応して管理されている印刷済みのページ数の情報に基づき、印刷済みのページに対応する印刷コマンドの送信をスキップすることを特徴とする情報処理装置。
【請求項８】
前記コマンド送信制御手段は、前記印刷済みのページに対応する印刷コマンドの送信をスキップする場合に、該印刷済みのページに関する印刷設定コマンドを前記印刷装置に送信することを特徴とする請求項７に記載の情報処理装置。
【請求項９】
請求項１乃至６の何れか１項に記載の工程をコンピュータに実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理方法、情報処理装置、及びコンピュータプログラムに関する。
【背景技術】
【０００２】
印刷装置で発生したエラーによってページが欠落した場合に、この欠落したページを再印刷する方法が提案されている。例えば、下記の特許文献１は、印字処理中に、印字処理を取り消す指示がされた場合に、既に生成された出力データのページまでは印字処理を行うことなくスキップして、ページの印字を再開する印刷制御装置を開示している。また、下記の特許文献２は、印刷装置にエラーが生じ、エラー回復後に印刷を再開する時に、記憶手段に記憶された印刷中のページ番号を印刷再開の先頭ページとして指示することによって、エラーになったページから再印刷する情報処理装置を開示している。特許文献２の技術を適用することにより、エラー発生時に、ＯＳ（Operating System）によってスプールされた一時ファイルの印刷開始ページ情報を印刷制御装置が書き換えて、エラーになったページから再印刷することが可能となる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第３２０９９１１号公報
【特許文献２】特開平０９−３１１７７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、上記特許文献１の印刷制御装置は、エラー発生後にページを再印刷する場合に、生成済みのページの印字処理を単純にスキップする。従って、この印刷制御装置によれば、印字処理がスキップされたページに対応する印刷設定コマンドが印刷装置に対して送信されない（印刷設定コマンドの送信処理がスキップされる）。印刷設定コマンドは、印刷設定に関するコマンドである。従って、例えば印刷設定コマンドを蓄積して更新していく印刷装置については、印刷設定コマンドの送信処理がスキップされると、再印刷されたページの出力結果が、エラーにならずに正常に印刷終了した場合の出力結果と異なってしまうという問題がある。
【０００５】
また、例えば、Ｗｉｎｄｏｗｓ（登録商標）システムのシステムスプーラにおいては、ＯＳによりスプールされた一時ファイルの印刷開始情報を印刷制御装置が書き換えるという処理を行うことができない。従って、上記特許文献２の技術をＷｉｎｄｏｗｓ（登録商標）システムに適用することはできない。
【０００６】
本発明は、エラー発生時のページの再印刷処理の効率化を図ることができる情報処理方法、情報処理装置、及びコンピュータプログラムの提供を目的とする。
【課題を解決するための手段】
【０００７】
本発明の一実施形態の情報処理方法は、印刷ジョブのスプールデータに基づいて、印刷コマンドを生成する印刷コマンド生成工程と、印刷装置で印刷コマンドに対応するページを印刷するために、前記印刷コマンド生成工程で生成された印刷コマンドを印刷装置に送信する印刷コマンド送信制御工程と、エラーが発生した印刷ジョブを識別するジョブ識別情報と該エラーが発生した時点での印刷済みのページ数の情報とを対応させて記憶装置で管理する管理工程とを備える。前記印刷コマンド生成工程では、処理対象の印刷ジョブが中間描画命令でスプールされるデータ型であると判断された場合に、当該処理対象の印刷ジョブのジョブ識別情報が前記記憶装置で管理されている際には、前記記憶装置で対応して管理されている印刷済みのページ数の情報に基づき、印刷済みのページに関するページ構成処理をスキップして印刷コマンドを生成し、前記印刷コマンド送信制御工程では、処理対象の印刷ジョブが中間描画命令でスプールされるデータ型でない場合に、当該処理対象の印刷ジョブのジョブ識別情報が前記記憶装置で管理されている際には、前記記憶装置で対応して管理されている印刷済みのページ数の情報に基づき、印刷済みのページに対応する印刷コマンドの送信をスキップする。
【発明の効果】
【０００８】
本実施形態の情報処理方法によれば、印刷データの処理の流れにおける上流側すなわち印刷コマンドを生成する手段が印刷済みのページについてのページ構成処理をスキップするので、下流側すなわち印刷コマンドを印刷装置に送信する手段の負荷が軽くなる。その結果、印刷処理全体が効率化する。
【図面の簡単な説明】
【０００９】
【図１】本実施形態のシステム構成例を示す図である。
【図２】プリンタドライバの機能ブロック図の例である。
【図３】実施例１のプリンタドライバの動作処理フローを示す図である。
【図４】エラー解除後の処理と、再印刷ジョブリストを説明する図である。
【図５】印刷コマンド生成処理の例を説明する図である。
【図６】実施例２のプリンタドライバの印刷コマンド生成処理を示す図である。
【図７】実施例２のプリンタドライバの印刷コマンド送信処理を示す図である。
【図８】再印刷開始確認画面と再印刷ジョブリストとを示す図である。
【図９】印刷プレビュー画面を示す図である。
【発明を実施するための形態】
【００１０】
図１は、本実施形態のシステム構成例を示す図である。本実施形態の印刷システムは、パーソナルコンピュータ（以下、パソコンと記述）１とプリンタ２とを備える。パソコン１は、本実施形態の情報処理装置であって、印刷装置であるプリンタ２と接続されている。パソコン１は、印刷ジョブに対応する印刷コマンドを生成し、この印刷コマンドをプリンタ２に送信して、印刷処理を実行させる。パソコン１は、プリンタ２とネットワークを介して接続されている。本実施形態に特有の動作として、パソコン１は、ページの印刷中にエラーが発生し、印刷ジョブに対応するページを再印刷する場合に、図２に示すプリンタドライバ１０３の機能を用いて、印刷済みのページに関するページ構成処理をスキップする。ページ構成処理は、印刷データのページ構成を決める処理である。例えば、２つのページが１枚の用紙に印刷されるように設定したり、１つのページが印刷される用紙の裏に次のページが印刷されるように設定したりする処理がページ構成処理である。ページ構成処理が行われることによって、印刷データがプリンタによって解釈できる形式のデータになる。
【００１１】
パソコン１は、入力インタフェース１１、ＣＰＵ（Central Processing Unit ）１２、ＲＯＭ（Read Only Memory）１３、ＲＡＭ（Random Access Memory）１４を備える。また、パソコン１は、外部記憶装置１５、出力インタフェース１６、表示部１７、キーボード１０、マウス１８、入出力インタフェース１９を備える。入力インタフェース１１は、マウス１８、キーボード１０を用いたユーザの操作入力に応じた情報をパソコン１に入力する。ＣＰＵ１２は、パソコン１全体を制御する。ＲＯＭ１３には、初期化プログラムが予め記憶されている。ＲＡＭ１４は外部記憶装置１５に記憶（ストア）される各種プログラムがワークメモリとして使用する記憶手段である。ＲＡＭ１４は、例えば、図柄情報を記憶する図柄情報記憶部１４ａ、印刷データを記憶する印刷データ記憶部１４ｂ、各種プログラムがロードされるプログラムロード領域１４ｃ等を備える記憶手段である。
【００１２】
外部記憶装置１５には、アプリケーション、ＯＳ、プリンタドライバ等が記憶されている。外部記憶装置１５に記憶されているアプリケーション、ＯＳ、プリンタドライバの機能については、図２を参照して後述する。出力インタフェース１６は、表示部１７とパソコン１との間の通信インタフェースである。ＣＰＵ１２は、出力インタフェース１６を介して、表示部１７に対して表示データを送信する。入出力インタフェース１９は、パソコン１とプリンタ２との間の通信インタフェースである。ＣＰＵ１２は、入出力インタフェース１９を介して印刷コマンドをプリンタ２に対して送信する。
【００１３】
プリンタ２は、パソコン１から送信された印刷コマンドを受け取って、印刷コマンドに対応する印刷データを印刷する処理装置である。プリンタ２は、入出力インタフェース２１、ＲＡＭ２２、プリントエンジン２３、ＲＯＭ２４、ＣＰＵ２５を備える。入出力インタフェース２１は、パソコン１の入出力インタフェース１９と接続しており、プリンタ２とパソコン１との間の通信を媒介する。本実施形態においては、入出力インタフェース２１は、例えばＵＳＢ（Universal Serial Bus）である。但し、プリンタ２が備える入出力インタフェース２１は、ＵＳＢに限定されない。プリンタ２が、入出力インタフェース２１として任意の通信インタフェースを備えるようにしてもよい。
【００１４】
ＲＡＭ２２は、ＣＰＵ２５の主メモリとワークメモリとして用いられ、各種データを記憶する。また、ＲＡＭ２２は、印刷データを一旦記憶するための受信バッファを備える。プリントエンジン２３は、ＲＡＭ２２に記憶されたデータに基づいて印刷処理を行う。ＲＯＭ２４には、ステータス管理プログラム２４ａ等、各種の制御プログラムや、各々の制御プログラムが使用するデータが予め記憶されている。ＣＰＵ２５は、ＲＯＭに記憶された制御プログラムに従って、プリンタ２の各部を制御する。ステータス管理プログラム２４ａは、プリンタ内部に設けられた各種センサの情報に基づいてプリンタ２の状態を監視してステータス情報を作成し、ＲＡＭ２２に記憶して管理する。ステータス情報は、プリンタ２の状態を示す情報である。
【００１５】
なお、本発明の情報処理装置を備えるシステム構成は、図１に示すシステム構成に限定されない。また、本実施形態においては図２に示すプリンタドライバ１０３が印刷制御処理を実行する例について説明するが、プリンタ２が、プリンタドライバ１０３と同様の機能を有する任意の印刷制御処理実行手段を備えるようにしてもよい。
【００１６】
図２は、本実施形態の情報処理装置を実現するプリンタドライバの機能ブロック図の例である。図２に示すＯＳ、アプリケーション１００、プリンタドライバ１０３は、外部記憶装置１５に記憶されている。以下に説明するＯＳ、プリンタドライバ１０３の動作処理は、図１のパソコン１が備えるＣＰＵ１２の制御に従って実行される。まず、アプリケーション１００が、印刷ジョブに対応する印刷データを作成する。続いて、ＯＳの印刷サポート機能が、ユーザインタフェースモジュール２０１が提供するユーザインタフェースを介して入力された印刷設定情報を印刷データに付加する。この印刷設定情報に対応するコマンドが、印刷設定コマンドである。ＯＳの印刷サポート機能１０１は、印刷設定情報が付加された印刷データをＲＡＭ１４に記憶する。具体的には、ＯＳの印刷サポート機能１０１は、この印刷データを印刷ジョブのスプールデータとしてＲＡＭ１４内の印刷データ記憶部１４ｂに記憶する。
【００１７】
図２に示すプリンタドライバ１０３は、ユーザインタフェースモジュール２０１、印刷コマンド生成部２０２、印刷プレビューモジュール２０３、コマンド送受信モジュール２０５、ステータス情報表示モジュール２０６を備える。ユーザインタフェースモジュール２０１は、パソコン１のユーザが操作入力を行うために用いるユーザインタフェースを提供する。例えば、ユーザインタフェースモジュール２０１は、ユーザが印刷設定情報を入力するためのユーザインタフェースを図１中に示す表示部１７に表示する。ユーザは、表示されたユーザインタフェースを用いて印刷設定情報を入力することができる。
【００１８】
印刷コマンド生成部２０２は、印刷データ記憶部１４ｂに記憶されたスプールデータに基づいて、印刷ジョブに対応する印刷コマンド２０４を生成する印刷コマンド生成手段として機能する。印刷コマンド生成部２０２は、ページ構成モジュール３０１を備える。ページ構成モジュール３０１は、スプールデータに基づいて、ページ構成処理を実行する。具体的には、ページ構成モジュール３０１は、スプールデータに含まれる印刷データのペー構成を該印刷データに付加された印刷設定情報に基づいて決定する。印刷コマンド生成部２０２は、ページ構成処理後のデータに基づいて、印刷コマンドを生成する。印刷コマンド生成部２０２が、印刷コマンドを生成する際に、印刷プレビューモジュール２０３を呼び出して、印刷プレビュー画面を表示させるようにしてもよい。印刷プレビューモジュール２０３は、印刷プレビュー画面を表示部１７に表示する。これにより、ユーザが、印刷結果を事前に確認することができる。
【００１９】
コマンド送受信モジュール２０５は、印刷コマンド送信制御手段として機能する。具体的には、コマンド送受信モジュール２０５は、印刷コマンド生成部２０２から印刷コマンド生成部２０２が生成した印刷コマンドを受信する。そして、コマンド送受信モジュール２０５は、プリンタ２で印刷コマンドに対応するページを印刷するために、受信した印刷コマンドをプリンタ２に送信する。また、コマンド送受信モジュール２０５は、印刷コマンドのプリンタ２への送信処理と並行して、プリンタ２の状態を監視する。このために、コマンド送受信モジュール２０５は、プリンタ２のＲＯＭ２４内のステータス管理プログラム２４ａが管理しているステータス情報を、入出力インタフェース２１、１９を介して取得する。コマンド送受信モジュール２０５は、取得したステータス情報を解析して、プリンタ２にエラーが発生したか否かを判断する。コマンド送受信モジュール２０５が、プリンタ２にエラーが発生したと判断した場合、コマンド送受信モジュール２０５は、ステータス情報表示モジュール２０６を呼び出す。ステータス情報表示モジュール２０６は、エラーが発生したプリンタ２の状態を示す情報を表示部１７に表示する。これにより、ユーザが、エラーが発生したプリンタ２の状態を確認することができる。
【００２０】
コマンド送受信モジュール２０５、印刷コマンド生成部２０２に関する本実施形態に特有の動作について説明する。コマンド送受信モジュール２０５は、ページの印刷中にエラーが発生した場合に、エラーが発生した印刷ジョブの再印刷を実行するかを判断し、該判断結果に基づいて、再印刷ジョブリストをパソコン１が備える所定の記憶装置に記憶する。再印刷ジョブリストは、再印刷ジョブのリストである。再印刷ジョブは、エラーが発生した印刷ジョブ、すなわち、再印刷が必要な印刷ジョブである。再印刷ジョブリストは、再印刷ジョブを識別するジョブ識別情報であるジョブＩＤと、該エラーが発生した時点で印刷済みのページ数の情報との対応情報を有する。なお、ジョブＩＤは、各々の印刷ジョブに予め割り当てられているものとする。すなわち、コマンド送受信モジュール２０５は、エラーが発生した印刷ジョブを識別するジョブ識別情報と該エラーが発生した時点での印刷済みのページ数の情報とを対応させて記憶装置で管理する管理手段として機能する。
【００２１】
また、印刷コマンド生成部２０２は、再印刷ジョブリストが有する対応情報に含まれるジョブＩＤに基づいて、処理対象の印刷ジョブが再印刷対象であるかを判断する。具体的には、印刷コマンド生成部２０２は、処理対象の印刷ジョブのジョブＩＤが再印刷ジョブリスト内のジョブＩＤと一致する場合に、処理対象の印刷ジョブが再印刷対象であると判断する。印刷コマンド生成部２０２は、処理対象の印刷ジョブのジョブＩＤが再印刷ジョブリスト内のジョブＩＤと一致しない場合に、処理対象の印刷ジョブが再印刷対象でないと判断する。印刷コマンド生成部２０２は、処理対象の印刷ジョブが再印刷対象であると判断した場合に、再印刷ジョブリストが有する対応情報に含まれる印刷済みのページ数の情報に基づいて、印刷済みのページに関するページ構成処理をスキップして印刷コマンドを生成する。印刷済みのページに関するページ構成処理のスキップは、印刷済みのページについてはページ構成処理を実行せず、印刷済みでないページからページ構成処理を実行することである。本実施形態の情報処理方法は、図２に示すプリンタドライバ１０３が備える処理部の機能によって実現できる。また、本実施形態のコンピュータプログラムは、上記情報処理装置が有する工程をコンピュータに実行させることを特徴とする。
【００２２】
（実施例１）
図３は、本発明の実施例１のプリンタドライバの動作処理フローを示す図である。ＯＳの指示に従って印刷が開始されると、印刷コマンド生成部２０２が、印刷ジョブに対応する印刷コマンドの生成処理を行う（ステップＳ１）。続いて、コマンド送受信モジュール２０５が、生成された印刷コマンドをプリンタに送信する（ステップＳ２）。コマンド送受信モジュール２０５は、印刷コマンドをプリンタ２に送信する処理と並行して、プリンタ２にエラーが発生したかを判断する（ステップＳ３）。
【００２３】
コマンド送受信モジュール２０５が、プリンタ２にエラーが発生していないと判断した場合、コマンド送受信モジュール２０５は、全ての印刷コマンドの送信が終了したかを判断する（ステップＳ４）。コマンド送受信モジュール２０５が、未送信の印刷コマンドがあると判断した場合は、上記ステップＳ２に戻る。コマンド送受信モジュール２０５が、全ての印刷コマンドの送信が終了したと判断した場合は、プリンタドライバ１０３は、印刷処理を終了する。
【００２４】
上記ステップＳ３において、コマンド送受信モジュール２０５が、プリンタ２にエラーが発生したと判断した場合は、コマンド送受信モジュール２０５は、印刷ジョブを停止すなわち印刷コマンドの送信を停止して、以下の処理を行う。コマンド送受信モジュール２０５が、プリンタ２のエラーが解除されたかを判断する（ステップＳ５）。コマンド送受信モジュール２０５が、プリンタ２のエラーが解除されていないと判断した場合は、上記ステップＳ５に戻る。コマンド送受信モジュール２０５が、プリンタ２のエラーが解除されたと判断した場合は、コマンド送受信モジュール２０５は、図４（Ａ）を参照して後述するエラー解除後の処理を実行する（ステップＳ６）。エラー解除後の処理の結果、ＯＳへのジョブ再印刷要求、ジョブのキャンセル、又は、エラーページ以降の印刷の続行がなされる。ジョブ再印刷要求は、エラーとなった印刷ジョブに対応する印刷データの再印刷を求める要求である。
【００２５】
図４は、エラー解除後の処理と、再印刷ジョブリストを説明する図である。図４（Ａ）は、図３のステップＳ６におけるエラー解除後の処理を示す。まず、コマンド送受信モジュール２０５が、所定の再印刷指示情報に従って、ページの再印刷が指示されているかを判断する（ステップＳ６１）。再印刷指示情報は、ページの再印刷を指示する制御情報である。この再印刷指示情報は、例えばユーザが所定のユーザインタフェースを介して入力したものである。なお、コマンド送受信モジュール２０５が、エラーの種類等のプリンタ情報、印刷設定の種類等のジョブ情報、入出力インタフェースの種類等のパソコン情報、ＯＳバージョン等のＯＳ状態に基づいて、再印刷するかを判断してもよい。
【００２６】
コマンド送受信モジュール２０５が、再印刷が指示されていないと判断した場合、コマンド送受信モジュール２０５は、所定の印刷中止指示情報に従って、印刷中止が指示されているかを判断する（ステップＳ６２）。印刷中止指示情報は、印刷の中止を指示する制御情報である。この印刷中止指示情報は、例えばユーザが所定のユーザインタフェースを介して入力したものである。
【００２７】
コマンド送受信モジュール２０５が、印刷中止が指示されていないと判断した場合、コマンド送受信モジュール２０５は、エラーが発生したページ以降の印刷を続行すると判断し（ステップＳ６３）、エラー解除後の処理を終了させる。その結果、処理がステップＳ４の処理に進む。コマンド送受信モジュール２０５が、印刷中止が指示されていると判断した場合、コマンド送受信モジュール２０５は、ジョブのキャンセル処理を行い（ステップＳ６４）、エラー解除後の処理を終了させる。その結果、印刷処理が終了する。
【００２８】
ステップＳ６１において、コマンド送受信モジュール２０５が、ページの再印刷が指示されていると判断した場合は、コマンド送受信モジュール２０５は以下の処理を行う。コマンド送受信モジュール２０５は、停止中である現在の印刷ジョブのジョブＩＤと印刷済みページ数とを再印刷ジョブリストに記憶する（ステップＳ６５）。ステップＳ６５において再印刷ジョブリストに記憶される印刷ジョブが、再印刷ジョブである。図４（Ｂ）は、ステップＳ６５においてジョブＩＤと印刷済みページ数とが記憶、管理される再印刷ジョブリストの例を示す。ジョブＩＤは、再印刷ジョブの識別情報である。印刷済みページ数は、再印刷ジョブに対応する印刷データのページのうち、印刷済みであるページの数である。例えば、ジョブＩＤ「５」に対応する印刷済みページ数「４」は、４ページまで印刷済みであり、５ページ目でエラーが発生したことを示す。
【００２９】
図４（Ａ）に戻って、コマンド送受信モジュール２０５は、ＯＳにジョブ再印刷要求を行い（ステップＳ６６）、エラー解除後の処理を終了させる。その後、再印刷要求を受けたＯＳの指示によって、再印刷が開始される。
【００３０】
図５は、図３のステップＳ１における印刷コマンド生成処理の例を説明する図である。印刷コマンド生成処理が開始すると、印刷コマンド生成部２０２が、再印刷ジョブリストを確認する（ステップＳ１１）。印刷コマンド生成部２０２が、現在処理対象の印刷ジョブのジョブＩＤが、記憶装置で管理している再印刷ジョブリストに記憶されているジョブＩＤと一致するかを判断する（ステップＳ１２）。印刷コマンド生成部２０２が、現在処理対象の印刷ジョブのジョブＩＤが再印刷ジョブリストに記憶されているジョブＩＤと一致しないと判断した場合、印刷コマンド生成部２０２は、現在処理対象の印刷ジョブが再印刷ジョブでないと判断する。そして、印刷コマンド生成部２０２は、印刷コマンドを生成して（ステップＳ１３）、処理を終了する。印刷コマンド生成部２０２が、現在処理対象の印刷ジョブのジョブＩＤが再印刷ジョブリストに記憶されているジョブＩＤと一致すると判断した場合、印刷コマンド生成部２０２は、現在処理対象の印刷ジョブが再印刷ジョブであると判断して、以下の処理を行う。すなわち、印刷コマンド生成部２０２が備えるページ構成モジュール３０１が、再印刷ジョブリストに記憶されている印刷済みページ数の情報に基づいて、印刷済みのページについてのページ構成処理をスキップする（ステップＳ１４）。そして、印刷コマンド生成部２０２は、ページ構成処理をスキップしたページに対応する再印刷ジョブのジョブＩＤを再印刷ジョブリストから削除することによって再印刷ジョブリストを更新して（ステップＳ１５）、ステップＳ１３に進む。
【００３１】
以上、説明した実施例１のプリンタドライバ１０３が備える印刷コマンド生成部２０２は、処理対象の印刷ジョブのジョブＩＤが記憶装置で管理されている際に、以下の処理を行う。印刷コマンド生成部２０２は、記憶装置で対応して管理されている印刷済みのページ数の情報に基づき、印刷済みのページに関するページ構成処理をスキップして印刷コマンドを生成する。このようなプリンタドライバ１０３の処理は、例えばＷｉｎｄｏｗｓ（登録商標）システムのシステムスプーラに対しても適用可能である。また、実施例１によれば、印刷データの処理の流れにおける上流側すなわち印刷コマンド生成部２０２が印刷済みのページについてのページ構成処理をスキップするので、下流側すなわちコマンド送受信モジュール２０５の処理の負荷が軽くなる。その結果、印刷処理全体が効率化する。
【００３２】
（実施例２）
印刷ジョブのスプールデータのデータ型には、種々のデータ型がある。例えば、Ｗｉｎｄｏｗｓ（登録商標）システムのスプーラが扱うスプールデータのデータ型として、プリンタで解釈可能な印刷コマンドでスプールされるデータ型と中間描画命令でスプールされるデータ型（以下、拡張データ型と記述）とがある。以下に説明する実施例２では、スプールデータのデータ型として、プリンタで解釈可能な印刷コマンドでスプールされるデータ型と拡張データ型とを特に想定し、説明する。ここで、プリンタで解釈可能な印刷コマンドでスプールされるデータ型としては例えばＲＡＷデータなどがある。このＲＡＷデータは、中間描画命令でスプールされない。拡張データ型としては例えばＥＭＦ（Ｅｎｈａｎｃｅｄ  Ｍｅｔａｆｉｌｅ）データなどがある。プリンタで解釈可能な印刷コマンドでスプールされるデータ型のスプールデータについては、プリンタで解釈できるので、印刷コマンド生成部２０２はページ構成処理を行なくとも良い。拡張データ型のスプールデータについては、プリンタで解釈できないので、印刷コマンド生成部２０２がページ構成処理を行う必要がある。
【００３３】
実施例２のプリンタドライバ１０３が備える印刷コマンド生成部２０２は、処理対象の印刷ジョブのスプールデータのデータ型が、拡張データ型であるかを判断する。印刷コマンド生成部２０２は、スプールデータのデータ型が、拡張データ型であると判断した場合に、処理対象の印刷ジョブが再印刷対象であるかを判断し、該判断結果に従って、印刷済みのページのページ構成処理をスキップする。印刷コマンド生成部２０２は、スプールデータのデータ型がプリンタ２で解釈可能な印刷コマンドでスプールされるデータ型である場合は、印刷データについてのページ構成処理を行わない。また、実施例２のプリンタドライバ１０３が備えるコマンド送受信モジュール２０５は、印刷コマンドの送信処理の開始時に、以下の処理を行う。コマンド送受信モジュール２０５は、処理対象の印刷ジョブのスプールデータのデータ型が、拡張データ型であるかを判断する。印刷コマンド生成部２０２は、スプールデータのデータ型が、拡張データ型でないと判断した場合に、再印刷ジョブリストに含まれるジョブＩＤに基づいて、処理対象の印刷ジョブが再印刷対象であるかを判断する。そして、コマンド送受信モジュール２０５は、処理対象の印刷ジョブが再印刷対象であると判断した場合に、再印刷ジョブリストに含まれる印刷済みのページ数の情報に基づいて、印刷済みのページに対応する印刷コマンドの送信をスキップする。
【００３４】
以下に、実施例２のプリンタドライバの動作処理について説明する。実施例２のプリンタドライバ１０３の全体動作処理は、図３に示す実施例１のプリンタドライバの動作処理と同様である。
【００３５】
図６は、実施例２のプリンタドライバの印刷コマンド生成処理を示す図である。図６に示す処理は、実施例２における図３のステップＳ１に対応する処理である。図６中のステップＳ１１２乃至Ｓ１１６は、図５中のステップＳ１１乃至Ｓ１５と同様である。
【００３６】
印刷コマンドの生成処理が開始されると、印刷コマンド生成部２０２が、スプールデータのデータ型が拡張データ型であるかを判断する（ステップＳ１１１）。すなわち、印刷コマンド生成部２０２は、処理対象の印刷ジョブのスプールされるデータ型が中間描画命令でスプールされるデータ型であるかを判断する。印刷コマンド生成部２０２は、例えば、スプールデータのデータ型がＥＭＦであれば、このデータ型が拡張データ型であると判断する。また、印刷コマンド生成部２０２は、例えば、スプールデータのデータ型がＲＡＷであれば、このデータ型が拡張データ型であると判断しない。印刷コマンド生成部２０２が、スプールデータのデータ型が拡張データ型であると判断した場合は、ステップＳ１１２に進む。印刷コマンド生成部２０２が、スプールデータのデータ型が拡張データ型でない、すなわち、プリンタで解釈可能な印刷コマンドでスプールされるデータ型であると判断した場合は、印刷コマンド生成部２０２は、以下の処理を行う。印刷コマンド生成部２０２は、ページ構成処理を実行せずに印刷コマンド生成処理を終了する。すなわち、実施例２における印刷コマンド生成部２０２は、処理対象の印刷ジョブが中間描画命令でスプールされるデータ型であると判断された場合に、当該処理対象の印刷ジョブのジョブ識別情報が記憶装置で管理されている際には、以下の処理を行う。印刷コマンド生成部２０２は、記憶装置で対応して管理されている印刷済みのページ数の情報に基づき、印刷済みのページに関するページ構成処理をスキップして印刷コマンドを生成する。
【００３７】
図７は、実施例２のプリンタドライバの印刷コマンド送信処理を示す図である。図７に示す処理は、実施例２における図３のステップＳ２に対応する処理である。
【００３８】
まず、印刷コマンドの送信処理が開始されると、コマンド送受信モジュール２０５が、スプールデータのデータ型が拡張データ型であるかを判断する（ステップＳ２１）。コマンド送受信モジュール２０５が、スプールデータのデータ型が拡張データ型であると判断した場合は、コマンド送受信モジュール２０５は、印刷コマンドをプリンタ２に送信して（ステップＳ２２）、印刷コマンドの送信処理を終了させる。
【００３９】
コマンド送受信モジュール２０５が、スプールデータのデータ型が拡張データ型でないと判断した場合、コマンド送受信モジュール２０５は、印刷コマンド生成部２０２がページ構成処理を行っていないと判断する。そして、コマンド送受信モジュール２０５が、再印刷ジョブリストを確認する（ステップＳ２３）。コマンド送受信モジュール２０５が、現在処理対象の印刷ジョブのジョブＩＤが再印刷ジョブリストに記憶されているジョブＩＤと一致するかを判断する（ステップＳ２４）。コマンド送受信モジュール２０５が、現在処理対象の印刷ジョブのジョブＩＤが再印刷ジョブリストに記憶されているジョブＩＤと一致しないと判断した場合、コマンド送受信モジュール２０５は、現在処理対象の印刷ジョブが再印刷ジョブでないと判断する。そして、処理が、ステップＳ２２の処理に進む。
【００４０】
コマンド送受信モジュール２０５が、現在処理対象の印刷ジョブのジョブＩＤが再印刷ジョブリストに記憶されているジョブＩＤと一致すると判断した場合、コマンド送受信モジュール２０５は、現在処理対象の印刷ジョブが再印刷ジョブであると判断する。そして、コマンド送受信モジュール２０５が、以下の処理を行う。すなわち、コマンド送受信モジュール２０５は、再印刷ジョブリストに記憶されている印刷済みページ数の情報に基づいて、印刷済みのページに対応する印刷コマンドの送信をスキップすると判断する（ステップＳ２５）。コマンド送受信モジュール２０５は、印刷済みのページに対応する印刷コマンドの送信をスキップすると判断した場合に、該印刷済みのページに関する印刷設定コマンドについては、その送信をスキップしない。従って、コマンド送受信モジュール２０５は、ステップＳ２２において印刷コマンドの送信処理を行う際に、印刷済みのページに関する印刷設定コマンドをプリンタ２に対して送信する。上記ステップＳ２５の処理の後、コマンド送受信モジュール２０５は、再印刷ジョブのジョブＩＤを再印刷ジョブリストから削除して（ステップＳ２６）、ステップＳ２２に進む。すなわち、実施例２におけるコマンド送受信モジュール２０５は、処理対象の印刷ジョブが中間描画命令でスプールされるデータ型でない場合に、当該処理対象の印刷ジョブのジョブ識別情報が記憶装置で管理されている際には、以下の処理を行う。コマンド送受信モジュール２０５は、記憶装置で対応して管理されている印刷済みのページ数の情報に基づき、印刷済みのページに対応する印刷コマンドの送信をスキップする。
【００４１】
図６及び図７を参照して説明した実施例２によれば、スプールデータのデータ型に応じて、再印刷の際に、ページに関する処理をスキップする主体を切り換え、印刷処理全体の効率化を図ることを可能とした。また、実施例２のプリンタドライバ１０３は、印刷済みのページに対応する印刷コマンドの送信をスキップすると判断した場合であっても、印刷済みのページに関する印刷設定コマンドについては、その送信をスキップしない（図７のステップＳ２５を参照）。従って、プリンタ２において、再印刷されたページの出力結果が、エラーにならずに正常に印刷終了した場合の出力結果と異なってしまうということを防止することができる。
【００４２】
なお、本実施例の変形例として、図７のステップＳ２１の処理を省略し、ステップＳ２４において、コマンド送受信モジュール２０５が、以下の処理を行うようにしてもよい。
【００４３】
ステップＳ２４において、コマンド送受信モジュール２０５が、印刷ジョブのジョブＩＤが再印刷ジョブリスト内のジョブＩＤと一致する場合に、印刷コマンド生成部２０２によってページ構成処理がスキップされていないと判断して、ステップＳ２５に進む。このために、この変形例では、印刷コマンド生成部２０２が、印刷ジョブのジョブＩＤが再印刷ジョブリスト内のジョブＩＤと一致すると判断した時点で（図６のステップＳ１１３を参照）、再印刷ジョブリストの更新を行う。これは、印刷コマンド生成部２０２が備えるページ構成モジュール３０１が全てのページについてページ構成処理を終了する前に、後続のコマンド送受信モジュール２０５が先頭のページの送信処理を開始するからである。
【００４４】
（実施例３）
実施例３においては、プリンタドライバ１０３が備える印刷コマンド生成部２０２が、印刷済みのページに関するページ構成処理をスキップする場合に、再印刷対象の印刷ジョブに対応する印刷設定を変更する。そして、印刷コマンド生成部２０２は、変更した印刷設定に基づいて、印刷コマンドを生成する。例えば、図５のステップＳ１２又は図６のステップＳ１１３において、印刷コマンド生成部２０２が、処理対象の印刷ジョブのジョブＩＤが再印刷ジョブリスト内のジョブＩＤと一致すると判断した場合に、図８（Ａ）に示す再印刷の開始の確認画面を表示する。この確認画面は、ユーザに対して再印刷を開始することを通知する画面である。この確認画面には、給紙方法と、用紙の種類といった、再印刷対象の印刷ジョブに対応する印刷設定項目が表示されている。各々の印刷設定項目に対応付けて、印刷設定の選択欄が設けられている。この選択欄は、印刷設定を選択する欄である。図８（Ａ）に示す例では、給紙方法、用紙の種類に対応付けて、それぞれ、選択欄１００、１０１が設けられている。ユーザが、この選択欄１００、１０１を用いて、給紙方法と用紙の種類とを選択して、「印刷開始」ボタンをクリックする操作を行うと、印刷コマンド生成部２０２が、以下の処理を行う。印刷コマンド生成部２０２は、再印刷対象の印刷ジョブに対応する印刷設定を、上記選択された給紙方法と用紙の種類とに設定する。これにより、印刷設定が変更される。すなわち、印刷コマンド生成部２０２は、処理対象の印刷ジョブのジョブＩＤが記憶装置で管理されている際に、この印刷ジョブの印刷設定を変更し、変更された印刷設定に基づき印刷コマンドを生成する。実施例３によれば、再印刷ジョブを前回とは異なった印刷設定によって印刷することができ、従って、再び同じエラーが発生することなどを防止することができる。
【００４５】
本実施例の変形例として、印刷コマンド生成部２０２が、再印刷の原因となったエラーの種類に応じて、前述の確認画面に表示する印刷設定項目を切り換えるようにしてもよい。印刷コマンド生成部２０２が、エラーの種類に応じて、この確認画面に表示する印刷設定項目を切り換えるためには、印刷コマンド生成部２０２がエラーの種類を認識することが必要である。従って、この変形例においては、コマンド送受信モジュール２０５は、図８（Ｂ）に示すように、ジョブＩＤと、印刷済みページ数と、エラーの種類とを含む再印刷ジョブリストを所定の記憶装置に記憶する。印刷コマンド生成部２０２は、印刷ジョブのジョブＩＤが再印刷ジョブリスト内のジョブＩＤと一致すると判断した場合に、上記一致するジョブＩＤに対応するエラーの種類を再印刷ジョブリストから抽出して取得する。そして、印刷コマンド生成部２０２は、予め決められたエラーの種類と印刷設定項目との対応情報に基づいて、上記取得されたエラーの種類に対応する印刷設定項目を決定し、確認画面上に表示する。印刷コマンド生成部２０２のこの処理により、再印刷対象の印刷ジョブに対して、発生したエラーの種類に応じた所望な印刷設定を簡単にユーザに行わせることができる。すなわち、印刷コマンド生成部２０２は、発生したエラーの種類に応じて変更すべき印刷設定を決定する。
【００４６】
（実施例４）
実施例４においては、印刷コマンド生成部２０２が、処理対象の印刷ジョブが再印刷対象であると判断した場合に、再印刷対象の印刷ジョブのプレビュー画面を表示し、該プレビュー画面上で選択されたページ以降のページについて印刷コマンドを生成する。具体的には、図５のステップＳ１２又は図６のステップＳ１１３において、印刷コマンド生成部２０２が、印刷ジョブのジョブＩＤが再印刷ジョブリスト内のジョブＩＤと一致すると判断した場合に、印刷プレビューモジュール２０３を呼び出す。そして、印刷コマンド生成部２０２が、印刷プレビューモジュール２０３に指示して、例えば図９に示す印刷プレビュー画面を表示する。
【００４７】
印刷プレビュー画面は、印刷開始ページを設定するための画面である。印刷コマンド生成部２０２は、図９に示す印刷プレビュー画面上に、エラーになったページであるページＰ１と、ページＰ１の１ページ前のページであるページＰ０と、ページＰ１の１ページ後のページであるページＰ２とを表示する。図９に示す例では、ページＰ１は５ページ目、ページＰ０は４ページ目、ページＰ１は６ページ目である。印刷コマンド生成部２０２は、表示される各々のページに対応付けて、印刷開始ページ選択欄４０１を表示する。印刷開始ページ選択欄４０１は、印刷を開始すなわち印刷コマンドの生成を開始するページを選択するための欄である。
【００４８】
ユーザは、印刷プレビュー画面上に表示されたページを見て、エラーになったページであるページＰ１に必要なデータが欠落しているかを確認することができる。ユーザが、ページＰ１に必要なデータが欠落していると判断し、ページＰ１に対応する印刷開始ページ選択欄４０１をチェックすると、ページＰ１が印刷開始ページとして選択される。そして、印刷コマンド生成部２０２が、ページＰ１以降のページについて印刷コマンドを生成する。すなわち、実施例４における印刷コマンド生成部２０２は、処理対象の印刷ジョブのジョブＩＤが記憶装置で管理されている際に、当該印刷ジョブに関するプレビュー画面を表示する。そして、印刷コマンド生成部２０２は、該プレビュー画面上で選択されたページ以降の印刷コマンドを生成する。
【００４９】
また、例えば、プリンタ２がＷｅｂページを印刷した場合に、エラーになったページＰ１がＷｅｂページ下部の広告部分であって、ページＰ１を再印刷させる必要がない場合には、ユーザは、ページＰ２に対応する印刷開始ページ選択欄４０１をチェックする。これにより、ページＰ２が印刷開始ページとして選択される。また、例えば、ユーザが、ページＰ０に対応する印刷開始ページ選択欄４０１をチェックすることによって、ページＰ０が再印刷される。これにより、エラーが発生したページの前のページから印刷が開始されるので、必要なデータの欠落を確実に防止することができる。
【００５０】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【図１】
0005586934.tif 000002
【図２】
0005586934.tif 000003
【図３】
0005586934.tif 000004
【図４】
0005586934.tif 000005
【図５】
0005586934.tif 000006
【図６】
0005586934.tif 000007
【図７】
0005586934.tif 000008
【図８】
0005586934.tif 000009
【図９】
0005586934.tif 000010