(57)【要約】【課題】上位プログラムとの間で情報を送受信することができる情報処理装置、プリントシステムおよびプログラムを提供する。【解決手段】中間データ形式の第１印刷データを生成する生成部と、第１印刷データを、出力するデータ形式の第２印刷データに変換するドライバ部と、第２印刷データを送信する中継部と、を備える。中継部は、ドライバ部が実行した処理に関する処理情報を、処理を識別する識別情報と対応づけて記憶部に記憶し、要求に応じて識別情報に対応する処理情報を要求元に出力するデータ処理部を備える。【選択図】図２
2014063477.tif 000002
【特許請求の範囲】
【請求項１】
中間データ形式の第１印刷データを生成する生成部と、
前記第１印刷データを、出力するデータ形式の第２印刷データに変換するドライバ部と、
前記第２印刷データを送信する中継部と、を備え、
前記中継部は、
前記ドライバ部が実行した処理に関する処理情報を、前記処理を識別する識別情報と対応づけて記憶部に記憶し、要求に応じて前記識別情報に対応する前記処理情報を要求元に出力するデータ処理部を備える、
情報処理装置。
【請求項２】
前記処理情報は、前記ドライバ部が実行した処理で生じたエラーを示す情報である、
請求項１に記載の情報処理装置。
【請求項３】
前記処理情報は、前記第２印刷データの送信先を示す情報である、
請求項１に記載の情報処理装置。
【請求項４】
前記処理情報は、前記ドライバ部が前記第１印刷データを加工した内容を示す情報である、
請求項１に記載の情報処理装置。
【請求項５】
前記処理情報は、前記ドライバ部が実行した処理に応じて実行する処理を示す情報である、
請求項１に記載の情報処理装置。
【請求項６】
前記中継部は、ランゲージモニタである、
請求項１に記載の情報処理装置。
【請求項７】
中間データ形式の第１印刷データを生成する生成部と、
前記第１印刷データを、出力するデータ形式の第２印刷データに変換するドライバ部と、
前記第２印刷データを送信する中継部と、を備え、
前記中継部は、
前記ドライバ部が実行した処理に関する処理情報を、前記処理を識別する識別情報と対応づけて記憶部に記憶し、要求に応じて前記識別情報に対応する前記処理情報を要求元に出力するデータ処理部を備える、
プリントシステム。
【請求項８】
前記処理情報は、前記ドライバ部が実行した処理で生じたエラーを示す情報である、
請求項７に記載のプリントシステム。
【請求項９】
前記処理情報は、前記第２印刷データの送信先を示す情報である、
請求項７に記載のプリントシステム。
【請求項１０】
前記処理情報は、前記ドライバ部が前記第１印刷データを加工した内容を示す情報である、
請求項７に記載のプリントシステム。
【請求項１１】
前記処理情報は、前記ドライバ部が実行した処理に応じて実行する処理を示す情報である、
請求項７に記載のプリントシステム。
【請求項１２】
前記中継部は、ランゲージモニタである、
請求項７に記載のプリントシステム。
【請求項１３】
コンピュータを、
ドライバ部によって中間データ形式の第１印刷データから出力するデータ形式に変換された第２印刷データを送信する中継部として機能させ、
前記中継部は、
前記ドライバ部が実行した処理に関する処理情報を、前記処理を識別する識別情報と対応づけて記憶部に記憶し、要求に応じて前記識別情報に対応する前記処理情報を要求元に出力するデータ処理部を備える、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリントシステムにおけるエラー情報の処理技術に関し、より詳細には、ＥＭＦスプール後のプロセスにおいて発生したエラー情報を処理する情報処理装置、プリントシステムおよびプログラムに関する。
【背景技術】
【０００２】
従来、企業や官庁、病院等でネットワークを介して複数の印刷装置から印刷出力可能なネットワークプリントシステムが導入されている。これらの印刷装置が実行する印刷処理を監視し、ユーザに通知する種々の技術が提案されている。
【０００３】
このような技術の一例として、特許文献１は、プリントプロセッサが実行する印刷処理を監視する印刷システムを開示する。この印刷システムでは、ステータスモニタが、プリントプロセッサの処理によって印刷データのデータストリームが停止しているか否か判断し、印刷が停止している場合には、その旨をディスプレイに表示することによってユーザに通知する。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１が開示する印刷システムでは、プレビュー表示によって停止している場合に、その旨をディスプレイに表示してユーザに通知するものの、ＥＭＦスプール終了後のプリントプロセッサやグラフィックドライバ等の処理においてエラーが発生したか否か監視していない。このため、アプリケーションは、そのエラー情報を取得することができず、エラーの発生をユーザに通知することができないという問題があった。
【０００５】
本発明は、上述した従来技術の問題点に鑑みてなされたものであり、スプール方式を採用する印刷処理において、上位プログラムとの間で情報を送受信することができる情報処理装置、プリントシステムおよびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の情報処理装置は、中間データ形式の第１印刷データを生成する生成部と、前記第１印刷データを、出力するデータ形式の第２印刷データに変換するドライバ部と、前記第２印刷データを送信する中継部と、を備え、前記中継部は、前記ドライバ部が実行した処理に関する処理情報を、前記処理を識別する識別情報と対応づけて記憶部に記憶し、要求に応じて前記識別情報に対応する前記処理情報を要求元に出力するデータ処理部を備える。
【発明の効果】
【０００７】
本発明の情報処理装置は、上記構成要件を採用することにより、上位プログラムとの間で情報を送受信することができる。
【図面の簡単な説明】
【０００８】
【図１】本発明のプリントシステムの一実施形態を示す図。
【図２】図１に示すプリントシステムに含まれる情報処理装置の機能構成の一実施形態を示す図。
【図３】図２に示す情報処理装置の記憶装置に保存されるジョブデータの一実施形態を示す図。
【図４】図１に示すプリントシステムが実行する印刷処理のシーケンスの一実施形態を示す図。
【図５】本発明のプリントシステムの別の実施形態を示す図。
【図６】図５に示すプリントシステムに含まれる情報処理装置の機能構成の一実施形態を示す図。
【図７】図５に示すプリントシステムが実行する印刷処理のシーケンスの一実施形態を示す図。
【図８】図８は、印刷データの送信先を示す情報を記憶する構成の一例を説明する図である。
【図９】図９は、印刷データを加工した内容を示す情報を記憶する構成の一例を説明する図である。
【図１０】図１０は、リカバリ処理を指示する情報を記憶する構成の一例を説明する図である。
【図１１】図１１は、変形例によるリカバリ処理のシーケンスの一例を示す図である。
【図１２】図１２は、本実施形態にかかる情報処理装置のハードウェア構成を示す説明図である。
【発明を実施するための形態】
【０００９】
以下、本発明について実施形態をもって説明するが、本発明は、後述する実施形態に限定されるものではない。図１は、本発明のプリントシステムの一実施形態を示す図である。プリントシステム１００は、ネットワーク１３０を介して接続された情報処理装置１１０ａ，１１０ｂ，１１０ｃと、印刷装置１２０ａ，１２０ｂ，１２０ｃとを含んで構成される。
【００１０】
情報処理装置１１０ａ，１１０ｂ，１１０ｃは、印刷装置１２０ａ，１２０ｂ，１２０ｃに印刷処理を実行させる情報処理装置である。情報処理装置１１０ａ，１１０ｂ，１１０ｃは、演算処理を行うプロセッサを搭載し、ＲＡＭ等の主記憶装置、ハードディスク等の補助記憶装置を含んで構成される。情報処理装置１１０ａ，１１０ｂ，１１０ｃは、Ｗｉｎｄｏｗｓ（登録商標）、ＵＮＩＸ（登録商標）、ＬＩＮＵＸ（登録商標）、Ｍａｃ  ＯＳ（登録商標）などのＯＳの下で、Ｃ、Ｃ＋＋、Ｃ＃、ＪＡＶＡ（登録商標）、ＪＡＶＡ  ＳＣＲＩＰＴ（登録商標）などのプログラミング言語などで記述された装置実行可能な本発明のプログラムを主記憶装置に展開して実行することにより、後述する各機能手段を情報処理装置上で実現する。
【００１１】
印刷装置１２０ａ，１２０ｂ，１２０ｃは、情報処理装置１１０ａ，１１０ｂ，１１０ｃが生成した印刷データを使用して、印刷用紙等の印刷媒体に印刷するネットワークプリンタである。図１に示す実施形態では、印刷装置としてＭＦＰ（Multiple  Function  Printer）やページプリンタが利用される。
【００１２】
ネットワーク１３０は、情報処理装置１１０ａ，１１０ｂ，１１０ｃと、印刷装置１２０ａ，１２０ｂ，１２０ｃとの相互通信を可能にするネットワークである。図１に示す実施形態では、ネットワーク１３０として、ＬＡＮ（Local  Area  Network）等の狭域ネットワークが採用されているが、インターネットなどの広域ネットワークを適宜含んで構成してもよい。
【００１３】
図２は、図１に示すプリントシステムに含まれる情報処理装置の機能構成の一実施形態を示す図である。以下、図２を参照して、Ｗｉｎｄｏｗｓ（登録商標）ＯＳを実装する情報処理装置１１０ａの機能構成について説明する。なお、情報処理装置１１０ｂ，１１０ｃは、情報処理装置１１０ａと同様の機能構成を有するため、説明を省略する。
【００１４】
情報処理装置１１０ａは、アプリケーション２００と、仮想ドライバ２０１と、記憶装置２０２，２０９と、振分部２０３と、プリンタドライバ２０４と、電子化ドライバ２０５と、ランゲージモニタ（Language  Monitor）２０６とを含んで構成される。
【００１５】
アプリケーション２００は、印刷すべきデータを作成する文書作成プログラムや表計算プログラム、画像編集プログラム等のアプリケーションプログラムである。アプリケーション２００は、ユーザの指示に基づき、仮想ドライバ２０１に対して印刷を指示する。
【００１６】
仮想ドライバ２０１は、アプリケーション２００からの印刷指示に応じて、印刷データを生成する機能手段である。仮想ドライバ２０１は、アプリケーション２００からの印刷指示を受信すると、Ｗｉｎｄｏｗｓ（登録商標）ＯＳが有する描画プログラム（ＧＤＩ）に対し、中間データであるＥＭＦ形式の印刷データを生成させ、記憶装置２０２にスプールさせると共に、振分部２０３を起動する。本実施形態では、ＥＭＦ形式でスプールするが、ＲＡＷ形式でスプールすることもできる。また、中間データのファイル形式としてＷＭＦやＰｏｓｔＳｃｒｉｐｔで記述したファイルを用いてもよい。このように、仮想ドライバ２０１は、中間データ形式の印刷データ（第１印刷データ）を生成する生成部として機能する。
【００１７】
振分部２０３は、情報処理装置１１０ａが有する複数のドライバに印刷データを振り分ける機能手段である。図１に示す実施形態では、振分部２０３は、記憶装置２０２にスプールされたＥＭＦ形式の印刷データを、プリンタドライバ２０４および電子化ドライバ２０５に振り分ける。印刷データの振り分け先は、ユーザが各ドライバの提供する印刷設定画面を通じて指定することができる。振分部２０３は、ユーザが指定した振り分け先に印刷データを提供する。
【００１８】
プリンタドライバ２０４は、プリントシステム１００に含まれる印刷装置を制御するデバイスドライバである。プリンタドライバ２０４は、ＥＭＦ形式の印刷データを当該プリンタドライバが制御する印刷装置が解釈可能なＲＡＷ形式の印刷データに変換し、ランゲージモニタ２０６を介して当該印刷装置に送信する。
【００１９】
電子化ドライバ２０５は、印刷データを電子化ファイルフォーマットに変換する機能手段である。電子化ドライバ２０５は、ＥＭＦ形式の印刷データをＰＤＦファイル等の電子化ファイルに変換し、ユーザが指定した保存先に保存する。電子化ファイルの保存先は、ユーザが電子化ドライバ２０５の提供する印刷設定画面を通じて指定することができる。
【００２０】
電子化ファイルの保存先として、情報処理装置１１０ａが備える記憶装置が指定された場合、電子化ドライバ２０５は、当該記憶装置に電子化ファイルを保存する。電子化ファイルの保存先として、情報処理装置１１０ａが備える記憶装置以外の記憶装置、例えば、他の情報処理装置の記憶装置が指定された場合には、電子化ドライバ２０５は、電子化ファイルをランゲージモニタ２０６を介して当該情報処理装置に送信する。
【００２１】
図２に示す実施形態では、２つのドライバのみが含まれるが、情報処理装置１１０ａは、任意の数のドライバを備えることができ、これらのドライバが制御する印刷装置に印刷データを振り分けて送信することができる。また、これらのドライバ以外のドライバ、例えば、印刷データを電子化ファイルに変換して電子メールで送信するドライバ等の種々のドライバを採用することもできる。プリンタドライバ２０４および電子化ドライバ２０５を含む、このようなドライバが、中間データ形式の印刷データ（第１印刷データ）を、出力するデータ形式（印刷装置が解釈可能な形式、電子化ファイルの形式など）の印刷データ（第２印刷データ）に変換するドライバ部として機能する。
【００２２】
ランゲージモニタ（Language  Monitor）２０６は、プリンタドライバ２０４および電子化ドライバ２０５が生成した印刷データや電化ファイルを印刷装置や情報処理装置に送信すると共に、これらのドライバが実行するジョブに関する情報（以下、「ジョブデータ」とする。）を保存する機能手段である。
【００２３】
例えばＷｉｎｄｏｗｓ（登録商標）の印刷アーキテクチャで用いられる従来のランゲージモニタは、スプーラ（プリントプロセッサ）からデータを受け取り、受け取ったデータをポートモニタに送信する機能として実装される。このように、従来のランゲージモニタは、スプーラとポートモニタとの間のデータの送受信（中継）の機能を有するのみであった。本実施形態でも、ランゲージモニタ２０６は、プリンタドライバ２０４および電子化ドライバ２０５と、印刷装置または電子化ファイルの保存先の装置との間の各種情報の送受信（中継）を制御する機能を有する。すなわち、ランゲージモニタ２０６は、出力するデータ形式の印刷データ（第２印刷データ）を送信する中継部として機能する。
【００２４】
本実施形態では、ランゲージモニタ２０６が、ジョブデータを記憶する機能、および、上位プログラム等からの要求に応じて記憶したジョブデータを提供する機能をさらに備えている。なお、中継部はランゲージモニタ２０６に限られるものではない。ランゲージモニタ２０６は、通信部２０７と、ジョブデータ処理部２０８とを含んで構成される。
【００２５】
通信部２０７は、プリンタドライバ２０４および電子化ドライバ２０５が提供するデータを、ネットワーク１３０を介して接続された印刷装置１２０ａ，１２０ｂ，１２０ｃや情報処理装置１１０ｂ，１１０ｃに送信する機能手段である。具体的には、通信部２０７は、プリンタドライバ２０４が提供する印刷データを当該プリンタドライバ２０４が制御する印刷装置に送信する。また、通信部２０７は、電子化ドライバ２０５が提供する電子化ファイルを、ユーザが指定した情報処理装置に送信する。
【００２６】
ジョブデータ処理部２０８は、ジョブデータを処理する機能手段である。ジョブデータ処理部２０８は、ジョブデータを記憶装置２０９に保存すると共に、他の機能手段の要求に応じて、記憶装置２０９に保存されたジョブデータを提供する。
【００２７】
図３は、情報処理装置１１０ａの記憶装置２０９に保存されるジョブデータ３００の一実施形態を示す図である。ジョブデータには、Ｗｉｎｄｏｗｓ（登録商標）ＯＳによって割り当てられるジョブを固有に識別可能なジョブＩＤと、当該ジョブＩＤが示すジョブのログとが含まれる。例えば、図３に示す実施形態では、ジョブＩＤ「ＪｏｂＩＤ１」で識別されるログは、ジョブが正常に終了したことを示すログである。また、ジョブＩＤ「ＪｏｂＩＤ２」で識別されるログは、ジョブが異常終了したことを示すログである。本実施形態では、ジョブの処理結果を示すログのみが示されているが、この他、当該ジョブで実行される総ての処理の内容や時刻を、ログとして保存することができる。ログは、プリンタドライバ２０４および電子化ドライバ２０５が実行した処理に関する処理情報の一例である。
【００２８】
アプリケーション２００、仮想ドライバ２０１または振分部２０３等の上位プログラムが、取得すべきジョブデータのジョブＩＤを指定してランゲージモニタ２０６にジョブデータを要求した場合、ジョブデータ処理部２０８は、記憶装置２０９から当該ＩＤに関連付けられたログを取得し、要求元の上位プログラムに提供する。これらの上位プログラムは、取得したログを、ＧＵＩ（Graphical  User  Interface）等を通じて情報処理装置１１０ａの表示装置に表示することができる。
【００２９】
ジョブデータが保存される記憶装置２０９は、Ｗｉｎｄｏｗｓ（登録商標）ＯＳが管理するメモリ領域であり、他の機能手段は、ランゲージモニタ２０６を介してのみ、ジョブデータを取得することができる。本実施形態では、アプリケーション２００、仮想ドライバ２０１または振分部２０３等の上位プログラムは、Ｗｉｎｄｏｗｓ（登録商標）ＯＳが提供するＡＰＩであるSendRecvBidiDataFromPortを用いてジョブデータを取得することができる。これらの上位プログラムは、当該ＡＰＩを用いて、記憶装置２０９に保存された複数のドライバのジョブのログを取得することができる。
【００３０】
これにより、本実施形態では、Ｗｉｎｄｏｗｓ（登録商標）ＯＳが管理するメモリ領域のアクセス権限を上位プログラムに予め付与することなく、当該メモリ領域に保存されたエラー情報を取得することができる。Ｗｉｎｄｏｗｓ（登録商標）ＯＳでは、アクセス権限を有しない機能手段がＯＳの管理するメモリ領域へアクセスする場合、当該メモリ領域へのアクセス権限の付与を承認するか否かをユーザに確認する。これに対し、本実施形態では、ＯＳが提供するＡＰＩを用いて当該メモリ領域にアクセスするため、ユーザがわざわざアクセス権限についての承認する必要がない。
【００３１】
また、ＥＭＦやＲＡＷ形式のスプール方式を採用する従来のプリントシステムでは、スプールが終了した時点でアプリケーションおよび仮想ドライバが印刷処理から解放される。このため、プリンタドライバや電子化ドライバ等のドライバが実行する後続のプロセスにおいてエラーが発生した場合、当該後続のプロセスはアプリケーションや仮想ドライバ等の上位プログラムが生成したものではないため、これらの上位プログラムがエラー情報を取得することができなかった。これに対し、本実施形態では、上述した方法を採用することにより、アプリケーションや仮想ドライバ等の上位プログラムが、スプールによって印刷処理から解放された後でも、後続のプロセスにおいて発生したエラー情報を取得することができ、ユーザに通知することができる。
【００３２】
図４は、図１に示すプリントシステム１００が実行する印刷処理のシーケンスの一実施形態を示す図である。以下、図４を参照して、プリンタドライバ２０４が制御する印刷装置に印刷処理を実行させる場合に、情報処理装置１１０ａが実行する処理について説明する。
【００３３】
ステップＳ４００で情報処理装置１１０ａのアプリケーション２００が、仮想ドライバ２０１に対して印刷を指示する。ステップＳ４０１では、仮想ドライバ２０１が、情報処理装置１１０ａに実装されたＷｉｎｄｏｗｓ（登録商標）ＯＳが備える描画プログラム４００に対し、印刷データの生成およびスプールを指示する。ステップＳ４０２では、描画プログラム４００が、ＥＭＦ形式の印刷データを生成し、記憶装置２０２にスプールする。
【００３４】
仮想ドライバ２０１は、描画プログラム４００に印刷データの生成およびスプールを指示すると、ステップＳ４０３で振分部２０３を起動する。ステップＳ４０４では、振分部２０３は、描画プログラム４００に印刷ジョブの開始を指示する。本実施形態では、Ｗｉｎｄｏｗｓ（登録商標）ＯＳが提供するＡＰＩであるStartDoc関数を用いて描画プログラム４００に印刷ジョブの開始を指示する。
【００３５】
ステップＳ４０５では、描画プログラム４００は、当該印刷ジョブのジョブＩＤを生成し、プリンタドライバ２０４に送信する。ステップＳ４０６では、プリンタドライバ２０４のジョブデータ処理部２０８が、当該ジョブＩＤを記憶装置２０９に保存する。
【００３６】
ステップＳ４０７では、描画プログラム４００が、ジョブＩＤを振分部２０３に送信する。ステップＳ４０８では、振分部２０３が、ジョブＩＤを仮想ドライバ２０１に送信し、ステップＳ４０９で仮想ドライバ２０１が、ジョブＩＤをアプリケーション２００に送信する。他の実施形態では、描画プログラム４００が、アプリケーション２００および仮想ドライバ２０１にジョブＩＤを送信してもよい。また、描画プログラム４００は、アプリケーション２００、仮想ドライバ２０１および振分部２０３が参照可能な情報処理装置が有する記憶装置のメモリ領域にジョブＩＤを保存してもよい。
【００３７】
ステップＳ４１０では、振分部２０３が、描画プログラム４００に対し、新しいページの印刷に必要な制御情報を提供してページデータの書き込みを指示し、ステップＳ４１１で印刷データの描画処理を指示する。本実施形態では、Ｗｉｎｄｏｗｓ（登録商標）ＯＳが提供するＡＰＩであるStartPage関数を用いて描画プログラム４００に制御情報を提供する。
【００３８】
ステップＳ４１２では、描画プログラム４００は、スプールされたＥＭＦ形式の印刷データをプリンタドライバ２０４に送信し、描画を指示する。ステップＳ４１３では、プリンタドライバ２０４は、描画プログラム４００から取得したＥＭＦ形式の印刷データをＲＡＷ形式の印刷データに変換する描画処理を実行する。
【００３９】
プリンタドライバ２０４は、描画処理の最中にエラーが発生した場合には、ステップＳ４１４に示すように、ランゲージモニタ２０６にエラー情報の保存を指示する。ランゲージモニタ２０６は、エラー情報の保存指示を受信すると、ステップＳ４１５でジョブデータ処理部２０８が、当該ジョブを示すジョブＩＤとエラー情報とを関連付けて記憶装置２０９に保存する。
【００４０】
ステップＳ４１６では、振分部２０３は、描画プログラム４００に対してページデータの書き込みの終了を指示し、ステップＳ４１７で印刷ジョブの終了を指示する。本実施形態では、Ｗｉｎｄｏｗｓ（登録商標）ＯＳが提供するＡＰＩであるEndPage関数を用いてページデータの書き込みの終了を指示し、EndDoc関数を用いて印刷ジョブの終了を指示する。
【００４１】
ステップＳ４１８では、描画プログラム４００は、プリンタドライバ２０４に印刷ジョブの終了を通知する。ステップＳ４１９では、プリンタドライバ２０４は、ＲＡＷデータ形式の印刷データをランゲージモニタ２０６に提供し、当該プリンタドライバ２０４が制御する印刷装置に送信させる。ステップＳ４２０では、ランゲージモニタ２０６の通信部２０７は、ネットワーク１３０を介して当該印刷装置に印刷データを送信する。
【００４２】
ステップＳ４２１では、プリンタドライバ２０４は、ログをランゲージモニタ２０６に送信して当該ログの保存を指示し、描画処理が終了する。ステップＳ４２２では、ランゲージモニタ２０６のジョブデータ処理部２０８は、ジョブ情報を、当該ジョブを示すジョブＩＤと関連付けて記憶装置２０９に保存する。なお、ステップＳ４１５で当該ジョブのエラー情報が記憶装置２０９に保存されている場合には、ジョブデータ処理部２０８は、ステップＳ４２２でエラー情報を保存しなくてもよい。
【００４３】
この後、アプリケーション２００は、印刷ジョブの成否やエラー情報を問い合わせることができる。すなわち、アプリケーション２００は、仮想ドライバ２０１および描画プログラム４００を介して、プリンタドライバ２０４に対して、ログを問い合わせる（ステップＳ４２３〜ステップＳ４２５）。アプリケーション２００は、例えばジョブＩＤを指定して、このジョブＩＤに対応するログを問い合わせる。問い合わせには、例えばＷｉｎｄｏｗｓ（登録商標）ＯＳが提供するＡＰＩであるExtEscape関数を用いることができる。
【００４４】
ステップＳ４２６では、プリンタドライバ２０４は、ランゲージモニタ２０６に対してログの取得を指示する。ステップＳ４２７では、ランゲージモニタ２０６は、指示に応じて、指定されたジョブＩＤに対応するログを読み出し、プリンタドライバ２０４に送信する。
【００４５】
プリンタドライバ２０４は、仮想ドライバ２０１および描画プログラム４００を介して、読み出されたログをアプリケーション２００に送信する（ステップＳ４２８〜ステップＳ４３０）。
【００４６】
なお、アプリケーション２００は、仮想ドライバ２０１、描画プログラム４００およびプリンタドライバ２０４を介さずに、ログの取得指示をランゲージモニタ２０６に対して直接送信するように構成してもよい。
【００４７】
また、印刷ジョブの成否やエラー情報の問い合わせは、１回に限られるものではない。例えばプリンタドライバ２０４、および、電子化ドライバ２０５がＥＭＦ形式の印刷データを用いる場合、アプリケーション２００は、各ドライバによる印刷完了のタイミングを知ることができない。このため、所望の情報が取得できるまで、複数回の問い合わせを行うように構成してもよい。図４の例では、例えばステップＳ４２３〜ステップＳ４３０の処理を複数回実行するように構成すればよい。
【００４８】
それぞれ異なるジョブＩＤを指定して複数回の問い合わせを行うように構成してもよいし、同一のジョブＩＤを指定して複数回の問い合わせを行うように構成してもよい。ログが、印刷ジョブの成否、エラー情報、処理内容、および、時刻などの複数の情報を含む場合に、各情報の取得をそれぞれ個別に指定して複数回の問い合わせを行うように構成してもよい。
【００４９】
このように、本実施形態によれば、スプール方式を採用する印刷処理において、スプール後のプロセスでエラーが発生した場合でも、上位プログラムがエラー情報を取得可能となる。
【００５０】
図５は、本発明のプリントシステムの別の実施形態を示す図である。以下、図５を参照して、プリントシステム５００について説明する。なお、図１に示すプリントシステム１００との相違点を中心に説明する。
【００５１】
プリントシステム５００は、サーバクライアント方式のプリントシステムであり、ネットワーク１３０を介して接続されたクライアント５１０ａ，５１０ｂ，５１０ｃと、印刷装置１２０ａ，１２０ｂ，１２０ｃと、プリントサーバ５４０とを含んで構成される。プリントシステム５００では、Ｐｏｉｎｔ＆Ｐｒｉｎｔ等のプリンタ共有技術を用いて、ネットワークプリンタである印刷装置１２０ａ，１２０ｂ，１２０ｃを複数のクライアントで共有することができる。
【００５２】
クライアント５１０ａ，５１０ｂ，５１０ｃは、プリントサーバ５４０を介して印刷装置１２０ａ，１２０ｂ，１２０ｃに印刷処理を実行させる情報処理装置である。クライアント５１０ａ，５１０ｂ，５１０ｃは、情報処理装置１１０ａ，１１０ｂ，１１０ｃと同様のハードウェア構成を有する。
【００５３】
プリントサーバ５４０は、クライアント５１０ａ，５１０ｂ，５１０ｃからの印刷要求に応じて、印刷装置１２０ａ，１２０ｂ，１２０ｃに印刷処理を実行させる情報処理装置である。プリントサーバ５４０は、演算処理を行うプロセッサを搭載し、ＲＡＭ等の主記憶装置、ハードディスク等の補助記憶装置を含んで構成される。プリントサーバ５４０は、Ｗｉｎｄｏｗｓ（登録商標）サーバ、ＵＮＩＸ（登録商標）、ＬＩＮＵＸ（登録商標）、Ｍａｃ  ＯＳ（登録商標）などのＯＳの下で、Ｃ、Ｃ＋＋、Ｃ＃、ＪＡＶＡ（登録商標）、ＪＡＶＡ  ＳＣＲＩＰＴ（登録商標）などのプログラミング言語などで記述された装置実行可能な本発明のプログラムを主記憶装置に展開して実行することにより、後述する各機能手段をプリントサーバ５４０上で実現する。
【００５４】
図６は、図５に示すプリントシステムに含まれるクライアント５１０ａ，５１０ｂ，５１０ｃおよびプリントサーバ５４０の機能構成の一実施形態を示す図である。以下、図６を参照して、Ｗｉｎｄｏｗｓ（登録商標）ＯＳを実装するクライアント５１０ａおよびプリントサーバ５４０の機能構成について、図２に示す実施形態との相違点を中心に説明する。なお、クライアント５１０ｂ，５１０ｃは、クライアント５１０ａと同様の機能構成を有するため、説明を省略する。
【００５５】
クライアント５１０ａは、アプリケーション２００と、仮想ドライバ２０１と、記憶装置２０２とを含んで構成される。
【００５６】
クライアント５１０ａに実装されたＷｉｎｄｏｗｓ（登録商標）ＯＳが有する描画プログラム（ＧＤＩ）は、仮想ドライバ２０１の指示により、アプリケーション２００が生成した印刷対象のデータを使用してＥＭＦ形式の印刷データを生成し、記憶装置２０２にスプールし、当該印刷データをプリントサーバ５４０に送信する。本実施形態では、ＥＭＦ形式でスプールするが、ＲＡＷ形式でスプールすることもできる。また、中間データのファイル形式としてＷＭＦやＰｏｓｔＳｃｒｉｐｔで記述したファイルを用いてもよい。
【００５７】
クライアント５１０ａは、プリンタドライバ２０４および電子化ドライバ２０５（図示せず）を備えており、これらのドライバが、印刷データの振り分け先や電子化ファイルの保存先を指定する印刷設定画面を提供する。
【００５８】
プリントサーバ５４０は、振分部２０３と、プリンタドライバ２０４と、電子化ドライバ２０５と、ランゲージモニタ２０６と、記憶装置２０９とを含んで構成される。振分部２０３は、クライアント５１０ａから印刷データを受信すると、プリントサーバ５４０が有する複数のドライバに印刷データを振り分ける。
【００５９】
図７は、図５に示すプリントシステム５００が実行する印刷処理のシーケンスの一実施形態を示す図である。以下、図７を参照して、プリンタドライバ２０４が制御する印刷装置に印刷処理を実行させる場合に、クライアント５１０ａおよびプリントサーバ５４０が実行する処理について説明する。
【００６０】
ステップＳ７００でクライアント５１０ａのアプリケーション２００が、仮想ドライバ２０１に対して印刷を指示する。ステップＳ７０１では、仮想ドライバ２０１が、クライアント５１０ａに実装されたＷｉｎｄｏｗｓ（登録商標）ＯＳが備える描画プログラム７００に対し、印刷データの生成およびスプールを指示する。ステップＳ７０２では、描画プログラム７００が、ＥＭＦ形式の印刷データを生成し、記憶装置２０２にスプールする。
【００６１】
仮想ドライバ２０１は、印刷データの生成およびスプールを指示すると、ステップＳ７０３でプリントサーバ５４０に対して振分部２０３の起動指示を送信し、振分部２０３を起動させる。描画プログラム７００は、印刷データの生成およびスプールが完了すると、ステップＳ７０４で印刷データをプリントサーバ５４０に送信する。
【００６２】
プリントサーバ５４０の振分部２０３は、クライアント５１０ａから印刷データを受信すると、ステップＳ７０５でプリントサーバ５４０に実装されたＷｉｎｄｏｗｓ（登録商標）ＯＳが備える描画プログラム７０２に対し、印刷ジョブの開始を指示する。ステップＳ７０６では、描画プログラム７０２は、当該印刷ジョブのジョブＩＤを生成し、プリンタドライバ２０４に送信する。ステップＳ７０７では、プリンタドライバ２０４のジョブデータ処理部２０８が、当該ジョブＩＤを記憶装置２０９に保存する。
【００６３】
ステップＳ７０８では、描画プログラム７０２が、ジョブＩＤを振分部２０３に送信する。ステップＳ７０９では、振分部２０３が、ジョブＩＤをクライアント５１０ａの仮想ドライバ２０１に送信し、ステップＳ７１０で仮想ドライバ２０１が、ジョブＩＤをアプリケーション２００に送信する。他の実施形態では、描画プログラム７０２が、クライアント５１０ａのアプリケーション２００および仮想ドライバ２０１にジョブＩＤを送信してもよい。
【００６４】
ステップＳ７１１では、振分部２０３が、描画プログラム７０２に対し、新しいページの印刷に必要な制御情報を提供してページデータの書き込みを指示し、ステップＳ７１２で印刷データの描画処理を指示する。ステップＳ７１３では、描画プログラム７０２は、クライアント５１０ａから受信したＥＭＦ形式の印刷データをプリンタドライバ２０４に送信し、描画を指示する。ステップＳ７１４では、プリンタドライバ２０４は、ＥＭＦ形式の印刷データをＲＡＷ形式の印刷データに変換する描画処理を実行する。
【００６５】
プリンタドライバ２０４は、描画処理の最中にエラーが発生した場合には、ステップＳ７１５に示すように、ランゲージモニタ２０６にエラー情報の保存を指示する。ランゲージモニタ２０６は、エラー情報の保存指示を受信すると、ステップＳ７１６でジョブデータ処理部２０８が、エラー情報を当該ジョブを示すジョブＩＤと関連付けて記憶装置２０９に保存する。
【００６６】
ステップＳ７１７では、振分部２０３は、描画プログラム７０２に対してページデータの書き込みの終了を指示し、ステップＳ７１８で印刷ジョブの終了を指示する。ステップＳ７１９では、描画プログラム７０２は、プリンタドライバ２０４に印刷ジョブの終了を通知する。
【００６７】
プリンタドライバ２０４は、印刷ジョブの終了通知を受信すると、ステップＳ７２０でＲＡＷデータ形式の印刷データをランゲージモニタ２０６に提供し、当該プリンタドライバ２０４が制御する印刷装置に送信させる。ステップＳ７２１では、ランゲージモニタ２０６の通信部２０７は、ネットワーク１３０を介して当該印刷装置に印刷データを送信する。
【００６８】
ステップＳ７２２では、プリンタドライバ２０４は、当該ジョブのログをランゲージモニタ２０６に送信して当該ログの保存を指示し、描画処理が終了する。ステップＳ７２３では、ランゲージモニタ２０６のジョブデータ処理部２０８は、ログを、当該ジョブを示すジョブＩＤと関連付けて記憶装置２０９に保存する。なお、ステップＳ７１６で当該ジョブのエラー情報が記憶装置２０９に保存されている場合には、ジョブデータ処理部２０８は、ステップＳ７２３でエラー情報を保存しなくてもよい。
【００６９】
この後、アプリケーション２００は、印刷ジョブの成否やエラー情報を問い合わせることができる。すなわち、アプリケーション２００は、仮想ドライバ２０１および描画プログラム７０２を介して、プリンタドライバ２０４に対して、ログを問い合わせる（ステップＳ７２４〜ステップＳ７２６）。
【００７０】
ステップＳ７２７では、プリンタドライバ２０４は、ランゲージモニタ２０６に対してログの取得を指示する。ステップＳ７２８では、ランゲージモニタ２０６は、指示に応じて、指定されたジョブＩＤに対応するログを読み出し、プリンタドライバ２０４に送信する。
【００７１】
プリンタドライバ２０４は、仮想ドライバ２０１および描画プログラム７０２を介して、読み出されたログをアプリケーション２００に送信する（ステップＳ７２９〜ステップＳ７３１）。
【００７２】
なお、アプリケーション２００は、仮想ドライバ２０１、描画プログラム７０２およびプリンタドライバ２０４を介さずに、ログの取得指示をランゲージモニタ２０６に対して直接送信するように構成してもよい。
【００７３】
これにより、プリントサーバを介して印刷処理を実行するプリントシステムにおいて、プリントサーバ内でプリンタドライバや電子化ドライバ等のドライバが実行したプロセスでエラーが発生した場合等でも、クライアントに含まれるアプリケーションや仮想ドライバが、ジョブデータを取得することができる。
【００７４】
（変形例１）
上記実施形態では、ドライバ（プリンタドライバ２０４、電子化ドライバ２０５）から、アプリケーション２００などの上位プログラムに対してエラー情報を送信可能とする例を説明した。送信する情報は、エラー情報に限られるものではなく、ジョブデータとしてジョブＩＤと対応づけて記憶できる情報であれば任意の情報を送信できる。
【００７５】
例えば、印刷データの送信先を示す情報をジョブデータとして記憶し、アプリケーション２００などの上位プログラムが取得できるようにしてもよい。プリンタドライバ２０４が、例えば印刷装置の使用状況（混み具合など）をプリンタキューまたは印刷装置から取得し、使用状況に応じて印刷データの送信先（ポートなど）を変更する機能を備える場合がある。このような場合に、実際に印刷データが送信された送信先を示す情報をジョブデータとして保存しておけば、アプリケーション２００などの上位プログラムが送信先の情報を取得できるようになる。
【００７６】
送信先を示す情報としては、出力先の印刷装置のアドレス（ＩＰアドレスなど）、および、出力先の印刷装置の装置名などを用いることができる。
【００７７】
図８は、印刷データの送信先を示す情報を記憶する構成の一例を説明する図である。図８では、プリンタドライバ２０４が、出力するプリンタを変更し、出力先のプリンタを変更したことを、記憶装置２０９に記憶させる例が示されている。同様に、例えば電子化ドライバ２０５が電子化ファイルの出力先の装置を変更した場合に、変更した装置を示す情報を記憶装置２０９に記憶させることも可能である。
【００７８】
また、プリンタドライバ２０４が、印刷データを加工（改変）した上で出力するデータ形式に変換する場合がある。例えば、セキュリティの向上等のため、プリンタドライバ２０４または電子化ドライバ２０５が、描画内容の一部または全部を黒く塗るなどの加工を行う機能を備える場合がある。そしてこのような場合に、アプリケーション２００などの上位プログラムが、印刷データが加工されたことや、加工内容を把握できるようにすることが望ましい場合がある。そこで、印刷データを加工した内容を示す情報をジョブデータとして記憶し、アプリケーション２００などの上位プログラムが取得できるようにしてもよい。
【００７９】
加工した内容を示す情報としては、加工が必要となった理由（秘密情報である、など）を示す情報、および、加工した範囲（座標など）を示す情報などを用いることができる。
【００８０】
図９は、印刷データを加工した内容を示す情報を記憶する構成の一例を説明する図である。図９では、プリンタドライバ２０４が、印刷データ９０１を改変して印刷データ９０２を生成した場合に、改変箇所を示す情報を記憶装置２０９に記憶させる例が示されている。
【００８１】
本変形例では、印刷データの送信先を示す情報、および、印刷データを加工した内容を示す情報が、プリンタドライバ２０４および電子化ドライバ２０５が実行した処理に関する処理情報に相当する。
【００８２】
（変形例２）
処理情報は、ドライバ（プリンタドライバ２０４、電子化ドライバ２０５）から、アプリケーション２００などの上位プログラムに対して送信する情報に限られるものではなく、上位プログラムからドライバに対して送信する情報であってもよい。
【００８３】
例えば、プリンタドライバ２０４を用いた印刷装置に対する印刷処理と、電子化ドライバ２０５による電子化ファイルの出力処理とを並行に実行したが、印刷処理でエラーが発生し、電子化ファイルのみが出力される場合がある。そして、整合性の維持等のために出力済みの電子化ファイルを削除することが望ましい場合がある。
【００８４】
本変形例では、エラーが発生したときに、エラーのリカバリ処理を指示する情報を送信可能とする。なお、指示できる処理はエラーのリカバリ処理に限られるものではなく、ドライバが実行した処理に応じて実行する処理であれば、どのような処理であってもよい。
【００８５】
図１０は、リカバリ処理を指示する情報を記憶する構成の一例を説明する図である。図１０では、アプリケーション２００が、プリンタドライバ２０４による印刷が失敗したため、電子化ドライバ２０５により出力された電子化ファイルを削除するリカバリ処理を指示する例が示されている。
【００８６】
図１１は、本変形例によるリカバリ処理のシーケンスの一例を示す図である。例えば、図４のステップＳ４３０で、エラーが発生したことを示すログを受信したアプリケーション２００が、図１１に示すリカバリ処理を開始する。なお、図１１では、プリンタドライバ２０４がリカバリを実行する場合を例に説明するが、電子化ドライバ２０５についても同様の処理が適用できる。
【００８７】
アプリケーション２００は、エラーのリカバリ処理を指示する情報を保存するように、ランゲージモニタ２０６に指示する（ステップＳ１１０１）。リカバリ処理を指示する情報は、例えば、エラーが発生したジョブのジョブＩＤ、および、リカバリ処理の具体的な内容を示す情報を含む。リカバリ処理の具体的な内容は、指示された側で判断して実行するように構成してもよい。
【００８８】
プリンタドライバ２０４は、例えば定期的に、リカバリを指示する情報が保存されているか否かをランゲージモニタ２０６に問い合わせ、リカバリを指示する情報を読み出す（ステップＳ１１０２）。例えば、プリンタドライバ２０４は、自身が出力したジョブのジョブＩＤに対して、リカバリを指示する情報が保存されていないかをランゲージモニタ２０６に問い合わせる。
【００８９】
リカバリ処理を指示する情報が読み出された場合、プリンタドライバ２０４は、指示されたジョブに対するリカバリ処理を実行する（ステップＳ１１０３）。
【００９０】
なお、図１１では、リカバリ処理を上位プログラム（アプリケーション２００）から指示する例を説明したが、これに限られるものではない。ドライバ（プリンタドライバ２０４、電子化ドライバ２０５）から上位プログラムなどに指示してもよい。また、リカバリ処理は、上位プログラム、ドライバ（プリンタドライバ２０４、電子化ドライバ２０５）、および、ランゲージモニタ２０６のいずれが主体となって実行してもよい。
【００９１】
上述のＡＰＩであるSendRecvBidiDataFromPortは、ランゲージモニタ２０６に対する情報の保存（ｓｅｔ）およびランゲージモニタ２０６からの情報の取得（ｇｅｔ）のいずれにも共通に使用できる。従って、Ｗｉｎｄｏｗｓ（登録商標）ＯＳを用いる場合は、リカバリを指示する情報を記憶させるため、および、この情報を読み出すために、このＡＰＩを用いることができる。
【００９２】
本変形例では、ドライバ部が実行した処理に応じて実行する処理（リカバリ処理など）を示す情報が、プリンタドライバ２０４および電子化ドライバ２０５が実行した処理に関する処理情報に相当する。
【００９３】
このように、本実施形態によれば、上位プログラムとの間で、エラー情報およびリカバリ処理を指示する情報などの処理情報を送受信することが可能となる。
【００９４】
次に、本実施形態にかかる情報処理装置のハードウェア構成について図１２を用いて説明する。図１２は、本実施形態にかかる情報処理装置のハードウェア構成を示す説明図である。
【００９５】
本実施形態の情報処理装置は、ＣＰＵ（Central  Processing  Unit）５１などの制御装置と、ＲＯＭ（Read  Only  Memory）５２やＲＡＭ（Random  Access  Memory）５３などの記憶装置と、ネットワークに接続して通信を行う通信Ｉ／Ｆ５４と、ＨＤＤ（Hard  Disk  Drive）、ＣＤ（Compact  Disc）ドライブ装置などの外部記憶装置と、ディスプレイ装置などの表示装置と、キーボードやマウスなどの入力装置と、各部を接続するバス６１を備えており、通常のコンピュータを利用したハードウェア構成となっている。
【００９６】
本実施形態の情報処理装置で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体に記録されてコンピュータ・プログラム・プロダクトとして提供される。
【００９７】
また、本実施形態の情報処理装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施形態の情報処理装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
【００９８】
また、本実施形態のプログラムを、ＲＯＭ５２等に予め組み込んで提供するように構成してもよい。
【００９９】
本実施形態の情報処理装置で実行されるプログラムは、上述した各部を含むモジュール構成となっており、実際のハードウェアとしてはＣＰＵ５１（プロセッサ）が上記記憶媒体からプログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、上記各部が主記憶装置上に生成されるようになっている。
【０１００】
これまで本実施形態につき説明してきたが、本発明は、上述した実施形態に限定されるものではなく、本実施形態の構成要素を変更若しくは削除し、または本実施形態の構成要素を他の構成要素を追加するなど、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用効果を奏する限り、本発明の範囲に含まれるものである。
【符号の説明】
【０１０１】
１００…プリントシステム、１１０ａ，１１０ｂ，１１０ｃ…情報処理装置、１２０ａ，１２０ｂ，１２０ｃ…印刷装置、１３０…ネットワーク、５００…プリントシステム、５１０ａ，５１０ｂ，５１０ｃ…クライアント、５４０…プリントサーバ
【先行技術文献】
【特許文献】
【０１０２】
【特許文献１】特開２００３−１６７７１８号公報
【図１】
2014063477.tif 000003
【図２】
2014063477.tif 000004
【図３】
2014063477.tif 000005
【図４】
2014063477.tif 000006
【図５】
2014063477.tif 000007
【図６】
2014063477.tif 000008
【図７】
2014063477.tif 000009
【図８】
2014063477.tif 000010
【図９】
2014063477.tif 000011
【図１０】
2014063477.tif 000012
【図１１】
2014063477.tif 000013
【図１２】
2014063477.tif 000014