(57)【要約】【課題】プルプリントに使用するプリンターの機種の制約を緩和する。【解決手段】プルプリントサーバー３は、ジョブＪ５２を作成したプリンタードライバー５２を特定するドライバー情報５２０をクライアント２Ａから取得する。機種別の適合するプリンタードライバーを示す情報Ｔ２を用いて、ジョブＪ５２がこれの転送を要求したプリント装置４に適合するかどうかを判定する。適合しない場合に、プルプリントサーバー３は、複数のプリンタードライバーの間のコマンドの対応を示す情報Ｔ３に基づいて、ジョブＪ５２のコマンドをプリント装置４に適合するプリンタードライバー４２のコマンドに置き換え、得られた修正ジョブＪ５２４をプリント装置４に転送する。【選択図】図２
2015001857.tif 000002
【特許請求の範囲】
【請求項１】
サーバーと、前記サーバーにプリントジョブをアップロードするクライアントと、前記サーバーからプリントジョブを取り込んで実行するプリント装置とを備えるプルプリントシステムであって、
前記クライアントは、前記サーバーへのプリントジョブのアップロードに際して、当該プリントジョブを作成したプリンタードライバーを特定するドライバー情報を前記サーバーに送信する情報送信部を有しており、
前記サーバーは、
アップロードされた前記プリントジョブと前記通信モニター部から送信された前記ドライバー情報とを関連付けて保存するジョブ管理部と、
機種の異なる複数のプリント装置のそれぞれに適合するプリンタードライバーを示す適合ドライバー情報と、前記適合ドライバー情報に示される複数のプリンタードライバーのそれぞれが用いるコマンドのうちの指示内容が同じコマンドどうしの対応を示す対応コマンド情報とを管理するデータベース部と、
前記複数のプリント装置のそれぞれとの通信時に各プリント装置の機種を示す装置情報を取得する取得部と、
保存されている前記プリントジョブの転送が前記複数のプリント装置のいずれかから要求されたときに、前記適合ドライバー情報において前記装置情報が示す機種に適合するプリンタードライバーと前記ドライバー情報が示すプリンタードライバーとを照合することによって、転送の要求された当該プリントジョブが当該プリントジョブの転送を要求したプリント装置である要求元プリント装置に適合しているかどうかを判定する判定部と、
前記判定部によって判定対象の前記プリントジョブが前記要求元プリント装置に適合していると判定された場合には、転送が要求された前記プリントジョブを前記要求元プリント装置に転送し、判定対象の前記プリントジョブが前記要求元プリント装置に適合していないと判定された場合には、転送が要求された前記プリントジョブに代えて、当該プリントジョブのコマンドを前記対応コマンド情報によって対応づけられている他のプリンタードライバーのコマンドのうちの前記装置情報が示す機種に適合するプリンタードライバーのコマンドに置き換えた修正プリントジョブを、前記要求元プリント装置に転送する転送部と、を有する
ことを特徴とするプルプリントシステム。
【請求項２】
前記クライアントは、情報処理装置から送信されたプリントジョブを前記サーバーにアップロードする中継サーバーであり、当該情報処理装置による当該プリントジョブの送信に先立って、当該プリントジョブを作成するプリンタードライバーを当該情報処理装置にダウンロードする
請求項１記載のプルプリントシステム。
【請求項３】
プリント装置によって指定されたプリントジョブを当該プリント装置へ転送するプルプリントサーバーであって、
クライアントから送信されたプリントジョブと当該プリントジョブを作成したプリンタードライバーを特定するドライバー情報とを関連付けて保存するジョブ管理部と、
機種の異なる複数のプリント装置のそれぞれに適合するプリンタードライバーを示す適合ドライバー情報と、前記適合ドライバー情報に示される複数のプリンタードライバーのそれぞれが用いるコマンドにおける指示内容が同じコマンドどうしの対応を示す対応コマンド情報とを管理するデータベース部と、
前記複数のプリント装置のそれぞれとの通信時に各プリント装置の機種を示す装置情報を取得する取得部と、
保存されている前記プリントジョブの転送が前記複数のプリント装置のいずれかから要求されたときに、前記適合ドライバー情報において前記装置情報が示す機種に適合するプリンタードライバーと前記ドライバー情報が示すプリンタードライバーとを照合することによって、転送の要求された当該プリントジョブが当該プリントジョブの転送を要求したプリント装置である要求元プリント装置に適合しているかどうかを判定する判定部と、
前記判定部によって判定対象の前記プリントジョブが前記要求元プリント装置に適合していると判定された場合には、転送が要求された前記プリントジョブを前記要求元プリント装置に転送し、判定対象の前記プリントジョブが前記要求元プリント装置に適合していないと判定された場合には、転送が要求された前記プリントジョブに代えて、当該プリントジョブのコマンドを前記対応コマンド情報によって対応づけられている他のプリンタードライバーのコマンドのうちの前記装置情報が示す機種に適合するプリンタードライバーのコマンドに置き換えた修正プリントジョブを、前記要求元プリント装置に転送する転送部と、を備える
ことを特徴とするプルプリントサーバー。
【請求項４】
プリントジョブを作成する装置別に指定された１以上のプリント装置の機種を示す指定機種情報を記憶しており、
前記転送部は、前記ジョブ管理部によって保存された前記プリントジョブについて、当該プリントジョブの転送が要求される以前に、当該プリントジョブのコマンドを前記指定機種情報に示される機種に適合するプリンタードライバーのコマンドに置き換えた修正プリントジョブを作成し、
前記ジョブ管理部は、前記クライアントから送信された前記プリントジョブと対応づけて、当該プリントジョブについて前記転送部によって作成された前記修正プリントジョブを保存し、当該プリントジョブの転送が前記複数のプリント装置のいずれかから要求されたときの前記判定部による判定において、判定対象の当該プリントジョブが前記要求元プリント装置に適合していないと判定された場合に、当該要求元プリント装置に適合する保存されている修正プリントジョブを前記転送部に転送させる
請求項３記載のプルプリントサーバー。
【請求項５】
前記適合ドライバー情報は、前記複数のプリント装置のそれぞれに最適なプリンタードライバーを示す第１のテーブルと、前記複数のプリント装置のそれぞれに適合するプリンタードライバーのうちの当該最適なプリンタードライバー以外のプリンタードライバーを示す第２のテーブルとを有しており、
前記判定部は、前記第１のテーブルにおいて前記装置情報が示す機種に対応づけられている最適なプリンタードライバーが、前記ドライバー情報が示すプリンタードライバーと一致しない場合に、前記第２のテーブルにおいて前記装置情報が示す機種に対応づけられているプリンタードライバーと前記ドライバー情報が示すプリンタードライバーとを照合する
請求項３または４記載のプルプリントサーバー。
【請求項６】
前記修正プリントジョブの作成に際して、元のプリントジョブに含まれるコマンドのうち、当該修正プリントジョブの転送先のプリント装置が受け入れない非対応のコマンドを削除する
請求項３ないし５のいずれかに記載のプリプリントサーバー。
【請求項７】
前記判定部によって判定対象の前記プリントジョブが前記要求元プリント装置に適合していないと判定された場合に、前記複数のプリント装置のうちの当該プリンタードライバーに適合するプリント装置を前記要求元プリント装置へ通知し、当該要求元プリント装置からの指示に従って、前記修正プリントジョブの転送を中止または続行する
請求項３ないし６のいずれかに記載のプリプリントサーバー。
【請求項８】
前記データベース部は、予め定められた時期に、クラウド上のサーバーから前記適合ドライバー情報および前記対応コマンド情報を取得する
請求項３ないし７のいずれかに記載のプリプリントサーバー。
【請求項９】
プリント装置によって指定されたプリントジョブを当該プリント装置へ転送するプルプリントサーバーとして動作する情報機器において実行されるコンピュータープログラムであって、
前記情報機器が有するコンピューターに、
クライアントから送信されたプリントジョブと当該プリントジョブを作成したプリンタードライバーを特定するドライバー情報とを関連付けて保存するジョブ管理処理と、
機種の異なる複数のプリント装置のそれぞれに適合するプリンタードライバーを示す適合ドライバー情報と、前記適合ドライバー情報に示される複数のプリンタードライバーのそれぞれが用いるコマンドにおける指示内容が同じコマンドどうしの対応を示す対応コマンド情報とを管理するデータベース処理と、
前記複数のプリント装置のそれぞれとの通信時に各プリント装置の機種を示す装置情報を取得する取得処理と、
保存されている前記プリントジョブの転送が前記複数のプリント装置のいずれかから要求されたときに、前記適合ドライバー情報において前記装置情報が示す機種に適合するプリンタードライバーと前記ドライバー情報が示すプリンタードライバーとを照合することによって、転送の要求された当該プリントジョブが当該プリントジョブの転送を要求したプリント装置である要求元プリント装置に適合しているかどうかを判定する判定処理と、
前記判定処理によって判定対象の前記プリントジョブが前記要求元プリント装置に適合していると判定された場合には、転送が要求された前記プリントジョブを前記要求元プリント装置に転送し、判定対象の前記プリントジョブが前記要求元プリント装置に適合していないと判定された場合には、転送が要求された前記プリントジョブに代えて、当該プリントジョブのコマンドを前記対応コマンド情報によって対応づけられている他のプリンタードライバーのコマンドのうちの前記装置情報が示す機種に適合するプリンタードライバーのコマンドに置き換えた修正プリントジョブを、前記要求元プリント装置に転送する転送処理と、を実行させる
ことを特徴とするコンピュータープログラム。
【請求項１０】
サーバーと、前記サーバーにプリントジョブをアップロードするクライアントと、前記サーバーからプリントジョブを取り込んで実行する複数のプリント装置とを備えるプルプリントシステムであって、
前記クライアントは、前記サーバーへのプリントジョブのアップロードに際して、当該プリントジョブを作成したプリンタードライバーを特定するドライバー情報を前記サーバーに送信する通信モニター部を有しており、
前記サーバーは、
前記複数のプリント装置のそれぞれに適合するプリンタードライバーを示す適合ドライバー情報と、前記適合ドライバー情報に示される複数のプリンタードライバーのそれぞれが用いるコマンドにおける指示内容が同じコマンドどうしの対応を示す対応コマンド情報とを管理するデータベース部と、
前記クライアントからアップロードされた前記プリントジョブについて、当該プリントジョブのコマンドを前記適合ドライバー情報に示される複数のプリンタードライバーのうちの前記ドライバー情報が示すプリンタードライバー以外のプリンタードライバーのコマンドに置き換えた修正プリントジョブを、前記対応コマンド情報に基づいて作成するジョブ修正部と、
前記プリントジョブと前記修正プリントジョブとを保存するジョブ管理部と、
前記複数のプリント装置のそれぞれとの通信時に各プリント装置の機種を示す装置情報を取得する取得部と、
保存されている前記プリントジョブの転送が前記複数のプリント装置のいずれかから要求されたときに、当該プリントジョブと前記修正プリントジョブとのうちの前記装置情報が示す機種に適合する一つを、当該プリントジョブの転送を要求したプリント装置へ転送する転送部と、を有する
ことを特徴とするプルプリントシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プルプリントのための装置およびコンピュータープログラムに関する。
【背景技術】
【０００２】
一般にパーソナルコンピューターには、プリンターを使用するためのプリンタードライバーがインストールされる。これにより、プリンターに適合するプリントジョブをプリンターに与えることが可能になる。プリントジョブは、印刷すべき画像情報と印刷設定情報（部数、用紙サイズ、片面／両面、モノクロ／カラー、仕上げ加工の要否など）とを含む所定形式の印刷命令データである。
【０００３】
プリンターのメーカーが提供する純正ドライバーのように機種別に最適化された機種依存性のプリンタードライバーを用いることにより、プリンターのもつ印刷機能を最大限に利用することができる。例えば用紙を加工する後処理機能がプリンターに備わる場合には、後処理を行なわせることができる。これに対して、複数の機種に適合する汎用型のプリンタードライバーでは、プリンターのもつ機能の一部を利用することができなかったり、ユーザーの意図しない印刷動作が行なわれたりする。
【０００４】
従来、企業のオフィスのように複数のユーザーがプリンターを共用する印刷環境において、プルプリントが行なわれている。ここでいうプリンターには、ＭＦＰ（Multi-functional Peripheral）のようにネットワークプリンターとして使用可能な情報機器が含まれる。プルプリントでは、プルプリントサーバーが使用され、プリントジョブの作成とは非同期のタイミングでプリントジョブの実行（すなわち印刷動作）が行われる。
【０００５】
例えば、複数のプリンターを備えるプルプリントシステムにおいて、パーソナルコンピューターのユーザーがドキュメントの印刷を指示すると、パーソナルコンピューターにおいて作成されたプリントジョブがプルプリントサーバーへ送信される。送信されたプリントジョブは、いったんプルプリントサーバーにおいて保存される。その後、ユーザーが複数のプリンターから任意に選んだ一つのプリンターの設置場所へ出向き、プリンターの操作パネルを用いてプリントジョブの実行を指示する。指示を受けたプリンターはプルプリントサーバーからプリントジョブを引き出して実行する。
【０００６】
プルプリントによれば、当人以外による印刷物の持ち去りを防止するセキュアプリントを実現することができる。また、ユーザーが都合の良い場所で印刷物を受け取ったり、他のユーザーによって使用されていないプリンターを選んで使用したりすることができる。
【０００７】
プルプリントに関して、プリンタードライバーがプリンターの機種に依存しない中間形式のプリントジョブを作成してプルプリントサーバーに送る手法が提案されている（特許文献１）。この手法によれば、ユーザーはプリンターの設置場所に出向いて印刷を実行させる段階で、印刷設定を変更することができる。ユーザーが印刷設定の変更を指示した場合、プルプリントサーバーは中間形式のプリントジョブを、プリンターによる実行が可能でかつ設定変更指示を反映させたプリントジョブに変換してプリンターに送る。
【０００８】
一方、プリンターに対する外部装置による制御に関して、プリンターに与えるコマンドをプリンターの機種に応じて切り替える技術がある（特許文献２）。従来において開示されたＰＯＳ（Point of sale）用の端末装置には、ロール紙に文字情報を印刷してレシートを発行する記録装置として、この種の製品ラインナップにおける上位または下位のプリンターが選択的に接続される。プリンターを制御する端末装置は、上位用コマンドとそれに対する代替コマンドになり得る下位用コマンドとを対応づけるデータベースを備える。下位のプリンターが接続されている場合、端末装置は、上位用コマンドを出力して制御すべき状況において、代替コマンドである下位用コマンドを出力する。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１２−０７８９９９号公報
【特許文献２】特開２０１２−１４１８８０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
従来では、複数のプリンターを備えるプルプリントシステムを構築する際に、これらプリンターの機種を、適合する機種依存性のプリンタードライバーが共通である“同類”の機種に統一する必要があった。この制約は、プリンターを追加したり既存のプリンターの一部を最新機種に入れ替えたりするシステム構成の拡張や改変における制約でもあった。
【００１１】
本発明は、このような事情に鑑み、プルプリントに使用するプリンターの機種の制約を緩和することを目的としている。
【課題を解決するための手段】
【００１２】
上記目的を達成するシステムは、サーバーと、前記サーバーにプリントジョブをアップロードするクライアントと、前記サーバーからプリントジョブを取り込んで実行するプリント装置とを備えるプルプリントシステムであって、前記クライアントは、前記サーバーへのプリントジョブのアップロードに際して、当該プリントジョブを作成したプリンタードライバーを特定するドライバー情報を前記サーバーに送信する通信モニター部を有しており、前記サーバーは、アップロードされた前記プリントジョブと前記通信モニター部から送信された前記ドライバー情報とを関連付けて保存するジョブ管理部と、機種の異なる複数のプリント装置のそれぞれに適合するプリンタードライバーを示す適合ドライバー情報と、前記適合ドライバー情報に示される複数のプリンタードライバーのそれぞれが用いるコマンドのうちの指示内容が同じコマンドどうしの対応を示す対応コマンド情報とを管理するデータベース部と、前記複数のプリント装置のそれぞれとの通信時に各プリント装置の機種を示す装置情報を取得する取得部と、保存されている前記プリントジョブの転送が前記複数のプリント装置のいずれかから要求されたときに、前記適合ドライバー情報において前記装置情報が示す機種に適合するプリンタードライバーと前記ドライバー情報が示すプリンタードライバーとを照合することによって、転送の要求された当該プリントジョブが当該プリントジョブの転送を要求したプリント装置である要求元プリント装置に適合しているかどうかを判定する判定部と、前記判定部によって判定対象の前記プリントジョブが前記要求元プリント装置に適合していると判定された場合には、転送が要求された前記プリントジョブを前記要求元プリント装置に転送し、判定対象の前記プリントジョブが前記要求元プリント装置に適合していないと判定された場合には、転送が要求された前記プリントジョブに代えて、当該プリントジョブのコマンドを前記対応コマンド情報によって対応づけられている他のプリンタードライバーのコマンドのうちの前記装置情報が示す機種に適合するプリンタードライバーのコマンドに置き換えた修正プリントジョブを、前記要求元プリント装置に転送する転送部と、を有する。
【発明の効果】
【００１３】
本発明によれば、複数のプリンターのうちの少なくともいずれか一つに適合する機種依存性のプリンタードライバーによって作成されたプリントジョブを、いずれのプリンターにおいても実行させることができる。すなわち、適合する機種依存性のプリンタードライバーが異なる複数のプリンターを共存させたプルプリント環境の実現が可能になる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施形態に係るネットワーク構成の一例を示す図である。
【図２】プルプリントシステムの動作の概要を示す図である。
【図３】適合ドライバーテーブルの例を示す図である。
【図４】対応コマンドテーブルの例を示す図である。
【図５】プルプリントシステムにおけるプリントジョブのアップロードに関係する要部の機能構成を示す図である。
【図６】プルプリントシステムにおけるプリントジョブの実行に関係する要部の機能構成を示す図である。
【図７】プルプリントサーバーのハードウェア構成を示す図である。
【図８】プルプリントサーバーの動作の概要を示すフローチャートである。
【図９】プルプリントサーバーによるジョブ保存のフローチャートである。
【図１０】プルプリントサーバーによるジョブ転送のフローチャートである。
【図１１】ジョブ転送ルーチンにおけるジョブ修正サブルーチンのフローチャートである。
【図１２】プルプリントサーバーによるデータベース管理のフローチャートである。
【図１３】プルプリントサーバーの構成の変形例を示す図である。
【図１４】図１３の変形例に係る指定機種テーブルの例を示す図である。
【図１５】図１３のプルプリントサーバーの動作の概要を示すフローチャートである。
【図１６】図１３のプルプリントサーバーによる修正ジョブ作成のフローチャートである。
【図１７】図１３のプルプリントサーバーによるジョブ転送のフローチャートである。
【図１８】プルプリントに係るネットワーク構成の変形例を示す図である。
【図１９】適合ドライバーテーブルの変形例を示す図である。
【発明を実施するための形態】
【００１５】
図１にプルプリント環境として例示されるネットワーク７は、企業のオフィスに構築されたＬＡＮ（Local Area Network）である。ネットワーク７には、複数のパーソナルコンピューター２Ａ，２Ｂ、プルプリントサーバー３、および複数のＭＦＰ４，５Ａ，５Ｂが接続されている。これらの機器によってプルプリントシステムが構成される。パーソナルコンピューター２Ａ，２Ｂの台数（図示では２）およびＭＦＰ４，５Ａ，５Ｂの台数（図示では３）は例示の数に限らない。
【００１６】
パーソナルコンピューター２Ａ，２Ｂは、プルプリントサーバー３に対するクライアントである。パーソナルコンピューター２Ａ，２Ｂは、据置き型でもよいし、ノート型やタブレット型といった可搬型であってもよい。パーソナルコンピューター２Ａ，２Ｂは、有線通信または無線通信によってプルプリントサーバー３にアクセスする。無線通信には例えばＷＬＡＮ(Wireless Local Area Network)の規格に準拠した図示しないアクセスポイントが利用される。
【００１７】
プルプリントサーバー３は、クライアントからアップロードされたプリントジョブ（以下、これを略して「ジョブ」という）を管理する。本例のプルプリントサーバー３は、インターネット８を介して接続されるクラウド上のサーバー９と交信することができる。プルプリントサーバー３は、プルプリント専用の情報機器であってもよいし、メールサーバーやファイルサーバーといった他のサーバー機能を兼ね備える情報機器であってもよい。サーバー機やパーソナルコンピューターといった情報処理装置に限らず、サーバー用プログラムの実行が可能な他の機器をプルプリントサーバー３として利用することができる。サーバー用プログラムは、ネットワーク上のデバイスを効率的に管理する統合デバイス管理アプリケーションのプラグインソフトウェアであってもよい。
【００１８】
ＭＦＰ４，５Ａ，５Ｂは、ＳＮＭＰ（Simple Network Management Protocol）によって管理されるネットワークプリンターとして使用可能な複合型の情報機器である。ＭＦＰ４，５Ａ，５Ｂは、プルプリントにおけるプリント装置として動作する。すなわち、ＭＦＰ４，５Ａ，５Ｂは、プルプリントサーバー３内で保存されているジョブをプルプリントサーバー３から引き出して実行し、ジョブに応じた印刷物を出力する。ＭＦＰ４，５Ａ，５Ｂは画面表示の可能な操作パネルを有しており、プルプリントシステムのユーザーは、この操作パネルを用いて、実行させたいジョブを指定したりプリント動作の開始を指示したりする。
【００１９】
図１に描かれた３台のＭＦＰ４，５Ａ，５Ｂにおいて、ＭＦＰ４と他の２台のＭＦＰ５Ａ，５Ｂとは互いに機種が異なる。ただし、３台のＭＦＰ４，５Ａ，５Ｂにおいてハードウェア構成および印刷出力に関する仕様はほぼ共通であり、ＭＦＰ４，５Ａ，５Ｂのいずれもが同様の印刷物を出力することができる。しかし、ＭＦＰ４とＭＦＰ５Ａ，５Ｂとの間に、ハードウェアの制御および印刷に伴う画像データ処理のためのソフトウェアに差異がある。
【００２０】
例えば、ＭＦＰ４，５Ａ，５ＢがＯＥＭ（Original Equipment Manufacturer）メーカーによって製造され、ＭＦＰ４とＭＦＰ５Ａ，５Ｂとで販売者が異なり、販売者ごとに細部に独自性をもつソフトウェアが組み込まれるという場合がある。また、販売者は同じであるが、ソフトウェアのバージョンアップを機に機種名を変えて販売される場合もある。
【００２１】
以下に説明するプリプリントシステムは、機種の異なるプリント装置が混在するネットワークにおいて、機種に依存するプリンタードライバーによって作成されたジョブに対応する印刷物を、ユーザーがいずれのプリント装置にも出力させることが可能なプルプリントを実現する。
【００２２】
図２はプルプリントシステムの動作の概要を示している。図２において、プルプリントシステム１は、クライアントとしてのパーソナルコンピューター（ＰＣ）２Ａ，２Ｂ、プルプリントサーバー３、およびプリント装置としての複数のＭＦＰ４，５Ａ，５Ｂを備える。
【００２３】
ＭＦＰ４，５Ａ，５Ｂの使用に先立って、パーソナルコンピューター２Ａ，２Ｂには、少なくともＭＦＰ４およびＭＦＰ５Ａ，５Ｂのいずれかに適合するプリンタードライバーがインストールされる。ＭＦＰ４に最適な純正のプリンタードライバーとして、ジョブを記述するページ記述言語としてＰＣＬ（Printer Control Language）を用いるＰＣＬドライバー４１と、ＰｏｓｔＳｃｒｉｐｔ（登録商標）を用いるＰＳドライバー４２とが、ＭＦＰ４のメーカーから提供されている。また、ＭＦＰ５Ａ，５Ｂに最適な純正のプリンタードライバーとして、ＰＣＬを用いてプリントジョブを記述するＰＣＬドライバー５１と、ＰｏｓｔＳｃｒｉｐｔを用いてプリントジョブを記述するＰＳドライバー５２とが、ＭＦＰ５Ａ，５Ｂのメーカーから提供されている。図示の状態では、これら計四つのプリンタードライバーのうち、ＰＣＬドライバー４１とＰＳドライバー４２とがパーソナルコンピューター２Ａにインストールされ、ＰＣＬドライバー５１とＰＳドライバー５２とがパーソナルコンピューター２Ｂにインストールされている。ただし、パーソナルコンピューター２Ａ，２Ｂのそれぞれに四つのプリンタードライバーのうちの一つのみをインストールしてもよいし、任意に選んだ二つないし四つのプリンタードライバーをインストールしてもよい。
【００２４】
パーソナルコンピューター２Ａ，２Ｂを操作するそれぞれのユーザーは、ドキュメントファイルＤ１、Ｄ２の印刷を指示する際に、インストールされているプリンタードライバーのうちの一つを任意に選択する。そうすると、選択されたプリンタードライバーによってジョブ（印刷動作を指定するファイル）が作成されてプルプリントサーバー３にアップロードされる。詳しくは、ＰＣＬドライバー４１が選択されるとジョブＪ４１がアップロードされ、ＰＳドライバー４２が選択されるとジョブＪ４２がアップロードされる。ＰＣＬドライバー５１が選択されるとジョブＪ５１がアップロードされ、ＰＳドライバー５２が選択されるとジョブＪ５２がアップロードされる。
【００２５】
アップロードされたジョブＪ４１，Ｊ４２，Ｊ５１，Ｊ５２は、いったんプルプリントサーバー３において保存される。このとき、プルプリントサーバー３は、ジョブを作成してアップロードしたプリンタードライバーを特定するドライバー情報をパーソナルコンピューター２Ａから取得する。そして、取得したドライバー情報４１０，４２０，５１０，５２０をそれに該当するジョブに対応づけて記憶する。ドライバー情報４１０，４２０，５１０，５２０は、以後に“ジョブ修正”の要否判断に用いられる。
【００２６】
ところで、ジョブＪ４１，Ｊ４２は、いずれも同じ画像データ（ここではドキュメントファイルＤ１）を印刷対象に指定する。言い換えれば、ジョブＪ４１，Ｊ４２のいずれが実行されたとしても、得られる印刷物に実質的な差異は生じない。ジョブＪ５１，Ｊ５２についても同様である。しかし、ジョブＪ４１，Ｊ４２，Ｊ５１，Ｊ５２の間において、印刷動作を規定するコマンド（指示を表わすビット列）およびパラメーターに差異の生じる場合がある。ページ記述言語が異なればコマンドは異なる。ページ記述言語が同じであっても、印刷設定の如何によっては、コマンドまたはパラメーターに差異が生じる。したがって、各ジョブＪ４１，Ｊ４２，Ｊ５１，Ｊ５２がそれに適合しないＭＦＰに投入された場合、ユーザーによる設定と異なる印刷物が出力されたり、ジョブ自体が実行されなかったりする。
【００２７】
そこで、プルプリントサーバー３は、ＭＦＰ４，５Ａ，５Ｂからジョブの転送が要求されたときに、必要に応じて元のジョブのコマンドおよびパラメーターを変更する“ジョブ修正”を行ない、要求元のＭＦＰに対してそれに適合するジョブを転送する。例えば、ＭＦＰ４からジョブＪ４１の転送が要求された場合、ジョブＪ４１を作成したＰＣＬドライバー４１はＭＦＰ４の純正のドライバーであるので、ジョブＪ４１はＭＦＰ４に適合する。したがって、この場合、ジョブＪ４１がそのままＭＦＰ４へ転送される。これに対して、ＭＦＰ４からジョブＪ５２の転送が要求された場合、ジョブＪ５２を作成したＰＳドライバー５２はＭＦＰ５Ａ，５Ｂの純正のドライバーであってＭＦＰ４には適合しない。必然的にジョブＪ５２はＭＦＰ４に適合しない。したがって、この場合、ジョブＪ５２に対するジョブ修正が行なわれ、それによって得られた修正ジョブＪ５２４がＭＦＰ４へ転送される。
【００２８】
このようにプルプリントサーバー３が必要に応じてジョブ修正を行なうことにより、ユーザーがＰＣＬドライバー４１，５１およびＰＳドライバー４２，５２のいずれを選択するかにかかわらず、かつユーザーがＭＦＰ４，５Ａ，５Ｂのいずれにジョブの実行を指示するかにかかわらず、ユーザーは所望の印刷物を得ることができる。
【００２９】
以下、プルプリントシステムの構成および動作をさらに詳しく説明する。
【００３０】
“ジョブ修正”の要否を判定するため、プルプリントサーバー３は、ＭＦＰ４，５Ａ，５Ｂの機種にそれぞれ適合するプリンタードライバーを示す適合ドライバーテーブルＴ２を有している。また、プルプリントサーバー３は、“ジョブ修正”において置き換えるべきコマンドおよびパラメーターを示す対応コマンドテーブルＴ３を有している。
【００３１】
図３は適合ドライバーテーブルＴ２の例を示している。適合ドライバーテーブルＴ２の各レコードは、機種を特定するフィールド２０１、機種に適合する第１のプリンタードライバーを示すフィールド２０２、および機種に適合する第２のプリンタードライバーを示すフィールド２０３を有する。
【００３２】
フィールド２０１には、ＭＦＰ４，５Ａ，５Ｂを含むプリント装置として使用可能な機器に備わるＭＩＢ（Management Information Base）におけるＳｙｓＯＩＤ（システムオブジェクトＩＤ)またはＳｙｓＤｅｓｃｒｉｐｔｉｏｎが格納される。フィールド２０２には、例えばＰＣＬドライバーの識別コードが格納され、フィールド２０３には、例えばＰＳドライバーの識別コードが格納される。他のページ記述言語を用いるドライバーが存在する場合には、それの識別コードを格納するフィールドが、適合ドライバーテーブルＴ２に設けられる。
【００３３】
図４は対応コマンドテーブルＴ３の例を示している。対応コマンドテーブルＴ３において、レコードはプリンタードライバーが用いるページ記述言語によってグループ分けされる。各グループにおいて、各レコードは、コマンド種別を示すフィールド３０１、および適合ドライバーテーブルＴ２に示される該当する全てのプリンタードライバーのそれぞれに対応するフィールド３０２，３０３，３５１，３５２を有する。
【００３４】
例示において、ＰＣＬを用いるプリンタードライバーについては、「給紙トレイ」というコマンド種別がある。これは、複数の給紙トレイを有するプリント装置に対して、印刷時に使用する給紙トレイを指定するために設けられている。この「給紙トレイ」のレコードにおいて、フィールド３０２の「KOMIHA bh25 new PCL」というドライバーのコマンド（パラメーターを伴う）は「MEDIASOURCE=1」であり、フィールド３０３の「KOMIHA bh30 PCL」というドライバーのコマンドも同じく「MEDIASOURCE=1」である。したがって、フィールド３０２に対応するドライバーによって作成されたジョブの転送が、フィールド３０３に対応するドライバーと適合するプリント装置から要求された場合には、「給紙トレイ」ついてコマンドを置き換える必要はない。同様に、フィールド３０３に対応するドライバーによって作成されたジョブの転送が、フィールド３０２に対応するドライバーと適合するプリント装置から要求された場合にもコマンドを置き換える必要はない。
【００３５】
しかし、「給紙トレイ」におけるフィールド３５１の「AHIMOK 300 Series PCL」というドライバーのコマンド（パラメーターを伴う）は「MEDIASOURCE=5」であり、フィールド３５２の「AHIMOK 400 Series PCL」というドライバーのコマンドも同じく「MEDIASOURCE=5」である。すなわち、フィールド３０２，３０３のコマンドとフィールド３５１，３５２のコマンドとを比較すると、給紙指定を意味するコマンドの文字列は共通であるが、デフォルトの給紙トレイを表わすパラメーターの数値が異なる。したがって、フィールド３０２またはフィールド３０３に対応するドライバーによって作成されたジョブの転送が、フィールド３５１またはフィールド３５２に対応するドライバーと適合するプリント装置から要求された場合に、「給紙トレイ」ついてコマンドのパラメーターを置き換えるジョブ修正を行なう必要がある。同様に、フィールド３５１またはフィールド３５２に対応するドライバーによって作成されたジョブの転送が、フィールド３０２またはフィールド３０３に対応するドライバーと適合するプリント装置から要求された場合にも、ジョブ修正を行なう必要がある。
【００３６】
さらに他のレコードに注目すると、「フォント」というコマンド種別がある。これは、画像データに含まれる文字のラスタライズに適用するフォントを指定するために設けられている。この「フォント」のレコードにおいて、フィールド３０２，３０３のコマンド（パラメーターを伴う）は「FontStatus Hirakaku W3」であるのに対して、フィールド３５１，３５２のコマンドは（パラメーターを伴う）は「FStyle Hirakaku W3」である。これらコマンドを比較すると、フォント名を示すパラメーター部分（Hirakaku W3）は共通であるが、フォント指定を意味するコマンドの文字列に違いがある。すなわち、フィールド３０２，３０３では「FontStatus」であるのに対して、フィールド３５１，３５２では「FStyle」である。したがって、ジョブとそれの転送を要求するプリント装置とが、「フォント」のレコードにおける互いにコマンドの異なる二つのフィールドに対応する場合には、「フォント」についてコマンドを置き換えるジョブ修正を行なう必要がある。
【００３７】
図５はプルプリントシステムにおけるジョブのアップロードに関係する要部の機能構成を示している。図５ではＰＳドライバー４２によってジョブＪ４２のアップロードされる場合が模式的に示されている。ただし、これに限らず、上述のとおりユーザーは他のプリンタードライバー（ＰＣＬドライバー４１，５１、またはＰＳドライバー５２）をジョブの作成手段として選択することができる。
【００３８】
クライアントとしてのパーソナルコンピューター２Ａにおいて、ユーザーはワードプロセッサーやビューワといった所定のアプリケーション２５に対して、ファイル処理としてドキュメントファイルＤ１の印刷を指定する。続いて、アプリケーション２５によって呼び出された印刷設定画面において、プリンターの選択肢として表示される複数のプリンタードライバーのうちの一つを選択する。本例ではＰＳドライバー４２を選択するものとする。ユーザーは、必要に応じて、印刷対象ページや部数といった基本項目およびプリンタードライバーに依存する応用項目について所望の設定を指示する。そして、ユーザーはファイル出力の開始を指示する。
【００３９】
ユーザーの指示を受けて、ＰＳドライバー４２は、ドキュメントファイルＤ１の画像データを印刷対象として含むジョブＪ４２を作成する。ジョブＪ４２は、ＰＳドライバー４２に適合するＭＦＰ４が実行可能なコマンドによって構成される。ＰＳドライバー４２は、パーソナルコンピューター２Ａに備わる通信機能を利用してプルプリントサーバー３にジョブＪ４２をアップロードする。
【００４０】
ジョブＪ４２がアップロードされるとき、ポートモニター６０によってドライバー情報４２０がプルプリントサーバー３に送信される。ドライバー情報４２０は、アップロードされるジョブを作成したプリンタードライバーを特定する情報である。図示の場合、ドライバー情報４２０が示すプリンタードライバーはＰＳドライバー４２である。
【００４１】
ドライバー情報４２０を送信するため、予めパーソナルコンピューター２Ａには、ポートモニター６０がＰＳドライバー４２または他のプリンタードライバーとともにインストールされている。ポートモニター６０は、ＡＰＩ（Application Programming interface）を介して、パーソナルコンピューター２Ａのオペレーティングシステム（ＯＳ）２０またはミドルウェアからＰＳドライバー４２のドライバー名をドライバー情報４２０として取得する。
【００４２】
プルプリントサーバー３は、通信処理部３１およびジョブ管理部３２を有する。これらの構成要素は所定のプログラムが実行されることによって実現される機能要素である。通信処理部３１は、クライアントおよびプリント装置との通信処理を受け持ち、ジョブ管理部３２は、ジョブおよびドライバー情報の管理を受け持つ。
【００４３】
通信処理部３１は、パーソナルコンピューター２Ａから受信したジョブＪ４２およびドライバー情報４２０をジョブ管理部３２に引き渡す。ジョブ管理部３２は、ジョブＪ４２をジョブ保存フォルダー１３１に格納する。ジョブ保存フォルダー１３１は、プルプリントサーバー３の内部の不揮発性メモリ領域である。ジョブＪ４２の格納に際して、ジョブ管理部３２は、ジョブ管理テーブルＴ１にジョブＪ４２の管理に必要な情報を書き込む。
【００４４】
ジョブ管理テーブルＴ１では、管理されるジョブのそれぞれにレコードが対応する。各レコードは、「ジョブファイル名」というフィールド１０３と「ドライバー名」というフィールド１０５とを含む複数のフィールドを有している。フィールド１０３には、例えばジョブ管理テーブルＴ１が管理対象のジョブに対して自動付与したファイル名が書き込まれる。このファイル名はジョブを一意に特定する。フィールド１０５には、ドライバー情報４２０が書き込まれる。これにより、ジョブ保存フォルダー１３１内のジョブＪ４２と関連づけてドライバー情報４２０がプルプリントサーバー３において保存されることになる。
【００４５】
図６は、プルプリントシステムにおけるプリントジョブの実行に関係する要部の機能構成を示している。図６ではＭＦＰ５Ａによってジョブが実行される場合が模式的に示されている。ただし、これに限らず、上述のとおりユーザーは他のＭＦＰ４，５Ｂをジョブの実行手段として選択することができる。
【００４６】
プルプリントサーバー３は、判定部３４、転送部３５、およびデータベース部３６を有する。これらの構成要素は所定のプログラムが実行されることによって実現される機能要素である。判定部３４は上述のジョブ修正の要否を判定する。転送部３５は、通信処理部３１と連携してジョブまたは修正ジョブをプリント装置へ転送する。修正ジョブを転送する場合、転送部３５によってジョブ修正が行なわれる。データベース部３６は、適合ドライバーテーブルＴ２および対応コマンドテーブルＴ３の保守管理を受け持つ。
【００４７】
ＭＦＰ５Ａからの転送要求は、通信処理部３１を経由してジョブ管理部３２に与えられる。転送要求には、ユーザーが指定したジョブのファイル名が含まれる。ジョブ管理部３２は、ジョブ管理テーブルＴ１を参照し、転送要求の示すファイル名をもつジョブをジョブ保存フォルダー１３１から読み出す。ここでは、ユーザーがジョブＪ４２を指定したものとする。読み出されたジョブＪ４２は転送部３５に引き渡される。
【００４８】
一方、通信処理部３１は、転送要求を受ける通信の過程において、要求元のプリント装置であるＭＦＰ５Ａから当該ＭＦＰ５Ａの機種を特定する装置情報７５Ａを取得する。すなわち、通信処理部３１は装置情報７５Ａの取得手段として機能する。装置情報７５Ａは、ＭＦＰ５Ａが保有するＭＩＢ情報の一部である。装置情報７５Ａの示す機種は判定部３４に伝えられる。
【００４９】
判定部３４は、通信処理部３１から伝えられたＭＦＰ５Ａの機種をキーとして適合ドライバーテーブルＴ２を検索する。これに先立って、判定部３４には、ジョブＪ４２に関連づけて保存されているドライバー名がジョブ管理部３２から伝えられている。判定部３４は、キーに該当する適合ドライバーテーブルＴ２のレコードに、ジョブ管理部３２から伝えられたドライバー名が存在するかどうかを判定する。つまり、ジョブＪ４２がこれの転送を要求したＭＦＰ５Ａに適合するかどうかを判定する。そして、判定部３４は、判定結果を転送部３５に伝える。その際、判定結果が「適合しない」である場合には、判定部３４は、キーとしたドライバー名とキーに該当するレコード内のドライバー名（すなわちＭＦＰ５Ａに適合するプリンタードライバー）とを転送部３５に通知する。
【００５０】
転送部３５は、判定部３４からの判定結果が「適合する」であった場合には、ジョブ管理部３２から引き渡されたジョブＪ４２をそのまま通信処理部３１を介してＭＦＰ５Ａに転送する。判定結果が「適合しない」であった場合、転送部３５は、対応コマンドテーブルＴ３を参照してジョブＪ４２に対するジョブ修正を行ない、得られた修正ジョブＪ４２５をＭＦＰ５Ａに転送する。対応コマンドテーブルＴ３の参照に際して、転送部３５は、判定部３４から通知された二つのドライバー名のそれぞれ対応する二つのフィールドに注目し、これらフィールドの間でのコマンドおよびパラメーターの差異の有無を判別する。そして、差異のあるレコード（コマンド種別）についてコマンドまたはそれに付随するパラメーターを置き換える。
【００５１】
なお、図６の例示では、ＭＦＰ５Ａから転送が要求されたジョブＪ４２は、ＭＦＰ４に適合するＰＳドライバー４２によって作成されたジョブであるので、ＭＦＰ５Ａには適合しない。したがって、判定部３４による判定結果は「適合しない」となり、転送部３５によって修正ジョブＪ４２５が作成されてＭＦＰ５Ａに転送されることになる。
【００５２】
図７はプルプリントサーバーのハードウェア構成を示している。図示のように、プルプリントサーバー３のハードウェア構成は一般的な情報処理装置の構成と同様である。プルプリントサーバー３は、プログラムを実行するコンピューターとしてのＣＰＵ(Central Processing Unit)１１、ＣＰＵ１１が直接にアクセスすることができる主記憶装置１２、記憶容量を高める補助記憶装置１３、および外部装置との通信のため通信インタフェース１４を有する。補助記憶装置１３によってサーバー用プログラム、ジョブ管理テーブルＴ１、適合ドライバーテーブルＴ２、および対応コマンドテーブルＴ３が保存される。また、補助記憶装置１３にジョブ保存フォルダー１３１が設けられる。
【００５３】
図８のフローチャートはプルプリントサーバーの動作の概要を示している。プルプリントサーバー３は、クライアントによるアップロード要求があれば（Ｓ０１でＹＥＳ）、ジョブ保存ルーチンの処理を実行し（Ｓ０２）、プリント装置からの転送要求があれば（Ｓ０３でＹＥＳ）、ジョブ転送ルーチンの処理を実行する（Ｓ０４）。そして、毎日の定刻や設定時間が経過するごとの時点といった所定の時期が到来すれば（Ｓ０５でＹＥＳ）、データベース管理ルーチンの処理を実行する（Ｓ０６）。
【００５４】
図９はジョブ保存ルーチンのフローチャートである。プルプリントサーバー３は、クライアントからアップロードされたジョブをジョブ保存フォルダー１３１に格納する（Ｓ２１）。クライアントのポートモニターからドライバー情報を受信し（Ｓ２２）、受信したドライバー情報をジョブ管理テーブルＴ１に登録する（Ｓ２３）。
【００５５】
図１０はジョブ転送ルーチンのフローチャートである。
【００５６】
プルプリントサーバー３は、転送要求によって指定されたジョブをジョブ保存フォルダー１３１から読み出し（Ｓ４１）、読み出したジョブに対応するドライバー情報をジョブ管理テーブルＴ１から読み込む（Ｓ４２）。ジョブの転送を要求した要求元プリント装置の装置情報を取得し（Ｓ４３）、読み出したジョブが要求元プリント装置に適合するかどうかを判定する（Ｓ４４）。
【００５７】
読み出したジョブが要求元プリント装置に適合する場合（Ｓ４５でＹＥＳ）、プルプリントサーバー３は当該ジョブを要求元プリント装置へ送信する（Ｓ４６）。読み出したジョブが要求元プリント装置に適合しない場合には（Ｓ４５でＮＯ）、プルプリントサーバー３はジョブ修正サブルーチンの処理を実行する（Ｓ４７）。
【００５８】
図１１はジョブ修正サブルーチンのフローチャートである。
【００５９】
プルプリントサーバー３は、対応コマンドテーブルＴ３に基づいて、転送要求に従って読み出したジョブに含まれるコマンドと、要求元プリント装置に適合するプリンタードライバー（これを要求元適合ドライバーという）が使用するコマンドとを照合する（Ｓ４７０）。そして、ジョブに含まれるコマンドの中に、要求元適合ドライバーが対応しない非対応コマンドが有るかどうかをチェックする（Ｓ４７１）。つまり、置換えることのできないコマンド（非対応コマンド）がジョブに含まれているかどうかをチェックする。
【００６０】
非対応コマンドが無ければ（Ｓ４７１でＮＯ）、フローはステップＳ４７５へ進む。プルプリントサーバー３は、ジョブに含まれるコマンドのうちの置換えの必要なコマンドを要求元適合ドライバーのコマンドに置き換える。そして、このジョブ修正によって得られた修正ジョブを要求元プリント装置へ送信する（Ｓ４７６）。
【００６１】
一方、非対応コマンドが有った場合（Ｓ４７１でＹＥＳ）、プルプリントサーバー３は、要求元プリント装置に対して、ユーザーの指定した印刷設定どおりの印刷結果が得られないおそれのあることを通知する。このとき、指定されているジョブに適合する他のプリント装置の機種または機種および設置場所を合わせて通知する（Ｓ４７２）。そして、要求元プリント装置からの連絡を待つ（Ｓ４７３）。この場合、要求元プリント装置は、自装置での印刷（転送の続行）または他のプリント装置での印刷（転送中止）の選択をユーザーに促す案内画面を操作パネルのディスプレイに表示させる。
【００６２】
要求元プリント装置から“転送中止”を指示する連絡があると、フローは直ちに当該ジョブ修正サブルーチンを抜けて図１０のフローに戻る。要求元プリント装置から“転送続行”を指示する連絡があると、プルプリントサーバー３は、転送要求に従って読み出したジョブのうちの非対応コマンドを削除する（Ｓ４７４）。この場合、削除されなかった残りのコマンドを必要に応じて置き換えるジョブ修正が行なわれ（Ｓ４７５）、得られた修正ジョブが要求元プリント装置へ送信される（Ｓ４７６）。
【００６３】
図１２はデータベース管理ルーチンのフローチャートである。プルプリントサーバー３は、クラウド上のサーバー９（図１参照）に、適合ドライバーテーブルＴ２および対応コマンドテーブルＴ３の更新の有無を問い合わせる（Ｓ６１）。サーバー９は、例えばプルプリントサーバー３を実現するサーバー用プログラムのベンダーによって更新される最新のテーブル内容を示すデータ、および最新でない歴代のテーブル内容と最新のテーブル内容との差分を示すデータを保有している。
【００６４】
クラウドにおいて適合ドライバーテーブルＴ２および対応コマンドテーブルＴ３が更新されている場合（Ｓ６２でＹＥＳ）、プルプリントサーバー３は、最新のデータまたは差分データをサーバー９からダウンロードして自装置内の適合ドライバーテーブルＴ２および対応コマンドテーブルＴ３を更新する（Ｓ６３、Ｓ６４）。
【００６５】
以上のプルプリントシステム１には次に説明する変形例がある。
【００６６】
図１３のプルプリントシステム１ｂはプルプリントサーバー３ｂを有している。このプルプリントサーバー３ｂは、プリント装置からジョブの転送が要求される以前に、クライアントからアップロードされたジョブＪ４２について、一つまたは複数の修正ジョブＪ４２５，Ｊ４２６を作成して保存しておく。このように予め修正ジョブを準備しておくことにより、転送が要求されてからジョブ修正を行なう上述のプルプリントシステム１と比べて、修正ジョブを転送すべき場合における転送要求から転送完了までの時間を、ジョブ修正処理の所要時間分だけ短縮することができる。すなわち、転送要求に対する応答性が高まる。
【００６７】
図１３の例示において、アップロードされるジョブＪ４２はＭＦＰ４に適合し、ＭＦＰ４とは機種の異なるＭＦＰ５に適合しない。また、ジョブＪ４２は、ＭＦＰ４，５のいずれとも機種の異なるＭＦＰ６にも適合しない。そこで、ＭＦＰ５に適合する修正ジョブＪ４２５とＭＦＰ６に適合する修正ジョブＪ４２６とが作成され、元のジョブＪ４２とともにジョブ保存フォルダー１３１において保存される。
【００６８】
修正ジョブの準備において、プルプリントサーバー３ｂは指定機種テーブルＴ４を参照する。指定機種テーブルＴ４は、準備すべき修正ジョブをクライアント別に示すテーブルであり、予めプルプリントサーバー３ｂ内に設けられている。図１４のとおり、指定機種テーブルＴ４の各レコードは、「クライアント」、「指定プリント装置の機種」および「備考」というフィールド４０１，４０２，４０３を有している。フィールド４０２の「指定プリント装置の機種」は、クライアントのユーザーがよく使用するプリント装置の機種を示し、フィールド４０３の「備考」は、クライアントのユーザーがよく使用するプリント装置の設置場所を示す。指定機種テーブルＴ４の内容は、例えばシステム管理者によってユーザーの要望を踏まえて定められる。
【００６９】
図１４の指定機種テーブルＴ４に基づく修正ジョブの準備の例として、クライアントがユーザーＡのＰＣ（パーソナルコンピューター）であった場合を想定する。このクライアントには機種１、機種２および機種３が指定されているので、このクライアントからのジョブについて、二つの修正ジョブが準備されることになる。ジョブが機種１に適合する場合は、機種２，３にそれぞれ適合する修正ジョブが作成され、ジョブが機種２に適合する場合は、機種１，３にそれぞれ適合する修正ジョブが作成され、ジョブが機種３に適合する場合は、機種１，２にそれぞれ適合する修正ジョブが作成される。
【００７０】
また、他の例としてクライアントがユーザーＢのＰＣであった場合を想定する。このクライアントには機種１および機種２が指定されているので、このクライアントからのジョブについて、一つの修正ジョブが準備されることになる。ジョブが機種１に適合する場合は機種２に適合する修正ジョブが作成され、ジョブが機種２に適合する場合は機種１に適合する修正ジョブが作成される。
【００７１】
このように指定機種テーブルＴ４によって修正ジョブの数を定めることにより、プルプリントサーバー３ｂにおけるデータ処理の負担を低減することができる。一般に、同じジョブが複数のプリント装置から引き出されることは少なく、アップロードされるジョブの大半は一回しか引き出されない。つまり、修正ジョブを準備してもそれが引き出されるとは限らない。引き出されなかった場合は結果的に無駄に修正ジョブを作成したことになってしまう。ネットワーク上のプリント装置の機種の数が多いほど、またアップロードされるジョブが多いほど、無駄になる修正ジョブを数多く作成することになる。そこで、ユーザーが頻繁に使用するプリント装置の機種に限定して修正ジョブを準備しておくことにより、無駄な修正ジョブの作成を低減することができる。
【００７２】
図１５のフローチャートは図１３のプルプリントサーバーの動作の概要を示している。プルプリントサーバー３ｂは、クライアントによるアップロード要求があれば（Ｓ１１でＹＥＳ）、ジョブ保存ルーチンの処理を実行し（Ｓ１２）、ＣＰＵの稼動率の小さい低負荷状態であるときに（Ｓ１３でＹＥＳ）、修正ジョブ作成ルーチンの処理を実行する（Ｓ１４）。そして、プリント装置からの転送要求があれば（Ｓ１５でＹＥＳ）、ジョブ転送ルーチンの処理を実行し（Ｓ１６）、所定の時期が到来すれば（Ｓ１７でＹＥＳ）、データベース管理ルーチンの処理を実行する（Ｓ１８）。
【００７３】
図１６は修正ジョブ作成ルーチンのフローチャートである。
【００７４】
プルプリントサーバー３ｂは、ジョブ保存フォルダー１３１からジョブ修正における元のジョブとして注目していないジョブ（未処理のジョブ）を抽出する（Ｓ１４１）。抽出したジョブをアップロードしたクライアントをジョブ管理テーブルＴ１によって特定し、特定したクライアントに対して指定された機種を指定機種テーブルＴ４から抽出する（Ｓ１４２）。
【００７５】
続いてプルプリントサーバー３ｂは、抽出した機種に適合するプリンタードライバーを適合ドライバーテーブルＴ２から抽出し（Ｓ１４３）、注目しているジョブを作成したプリンタードライバー以外のプリンタードライバーを判別する（Ｓ１４４）。
【００７６】
そして、プルプリントサーバー３ｂは、対応コマンドテーブルＴ３に基づいて、注目しているジョブのコマンドをステップＳ１４４で判別したプリンタードライバーのコマンドに置き換えた修正ジョブを作成して保存する（Ｓ１４５、Ｓ１４６）。注目したジョブに対応するクライアントに当該ジョブに適合しない機種が複数指定されている場合には、これら機種のそれぞれに適合する修正ジョブを作成する。未処理のジョブが複数保存されている場合には、これらジョブのそれぞれについて以上と同様の処理を実行する。
【００７７】
図１７は図１３のプルプリントサーバーによるジョブ転送のフローチャートである。
【００７８】
プルプリントサーバー３ｂは、ジョブの転送を要求した要求元プリント装置からその機種を示す装置情報を取得する（Ｓ１６１）。転送要求によって指定されたジョブが要求元プリント装置に適合する場合には（Ｓ１６２でＹＥＳ）、指定されたジョブをジョブ保存フォルダー１３１から読み出して要求元プリント装置へ送信する（Ｓ１６３、Ｓ１６４）。
【００７９】
一方、指定されたジョブが要求元プリント装置に適合しない場合には（Ｓ１６２でＮＯ）、要求元プリント装置に適合する修正ジョブが既に作成されて保存されているかどうかをチェックする（Ｓ１６５）。適合する修正ジョブが既に有れば（Ｓ１６５でＹＥＳ）、その修正ジョブをジョブ保存フォルダー１３１から読み出して要求元プリント装置へ送信する（Ｓ１６６、Ｓ１６４）。適合する修正ジョブが無い場合、すなわち修正ジョブの準備が間に合っていない場合には（Ｓ１６５でＮＯ）、図１１と同様のジョブ修正ルーチンの処理を実行する（Ｓ１６７）。
【００８０】
図１８は、プルプリントに係るネットワーク構成の変形例を示している。
【００８１】
図１８のネットワークでは、プルプリントサーバー３へのジョブのアップロードにプリントサーバー１０が介在する。プリントサーバー１０は、パーソナルコンピューター２Ｃまたは図示しない他の情報処理装置から送信されたジョブをスプールして順次にプルプリントサーバー３にアップロードする。プリントサーバー１０は、プルプリントサーバー３からみたクライアントである。
【００８２】
プリントサーバー１０には、ネットワーク上のプリント装置に適合するプリンタードライバーがインストールされる。図ではプリント装置として互いに機種の異なる２台のＭＦＰ４，５が描かれている。プリントサーバー１０におけるプリンタードライバー４３は一方のＭＦＰ４に適合し、プリンタードライバー５３は他方のＭＦＰ５に適合する。これらプリンタードライバー４３，５３は、プリントサーバー１０からプリントサーバー１０に対するクライアントであるパーソナルコンピューター２Ｃおよび他の図示しない情報処理装置へダウンロードされる。
【００８３】
パーソナルコンピューター２Ｃは、プリントサーバー１０からダウンロードされかつインストールされたプリンタードライバー４３，５３を、ジョブの作成およびアップロードに用いる。パーソナルコンピューター２Ｃにおいて作成されたジョブがプリントサーバー１０を経由してプルプリントサーバー３へアップロードされるとき、プリントサーバー１０において稼動するポートモニター６０によって、ジョブを作成したプリンタードライバーを特定するドライバー情報が取得されてプルプリントサーバー３に送信される。
【００８４】
図１９は適合ドライバーテーブルの変形例を示している。プリント装置に適合するプリンタードライバーを示す情報を第１のテーブルＴ２Ａと第２のテーブルＴ２Ｂとに振り分けることにより、テーブル検索の効率化を図りかつテーブルの保守性を高めることができる。あるプリント装置の機種に対して、最適なプリンタードライバーの他に適合するプリンタードライバーが数多く存在する場合、適合するプリンタードライバーの全てを上述の図３の例のように単一のテーブルに列挙すると、適合するプリンタードライバーが増えたり減ったりしたときに、テーブル更新のためにテーブル全体をスキャニングしなければならない。これに対して、複数のテーブルに情報を分散しておくと、更新の内容によっては一部のテーブルのみを書き換えるだけで済む。
【００８５】
第１のテーブルＴ２Ａのレコードは、機種を特定するフィールド２０１、最適なプリンタードライバーをそれぞれ示す二つのフィールド２０２，２０３、およびフィールド２０１の機種が属する機種グループを示すフィールド２０４を有する。機種グループは、少なくとも一つのプリンタードライバーが共通に適合する複数の機種の集合である。第２のテーブルＴ２Ｂのレコードは、機種グループを示すフィールド２０４および機種グループに適合するプリンタードライバーを示すフィールド２０５を有する。
【００８６】
ジョブ修正の要否の判定に際して、まず、第１のテーブルＴ２Ａが参照される。判定部３４は、要求元プリント装置から取得した装置情報が示す機種をキーとして第１のテーブルＴ２Ａを検索し、ヒットしたレコードにおけるフィールド２０２，２０３のいずれかのプリンタードライバーとドライバー情報の示すプリンタードライバーとが一致するかどうかをチェックする。一致すれば、その時点で「ジョブ修正は不要」と判定する。一致しない場合に限って、第２のテーブルＴ２Ｂを検索する。
【００８７】
第１のテーブルＴ２Ａのプリンタードライバーとドライバー情報が示すプリンタードライバーとが一致しなかった場合、判定部３４は、第１のテーブルＴ２Ａのフィールド２０４の機種グループをキーとして第２のテーブルＴ２Ｂを検索する。ヒットしたレコードにおけるフィールド２０５に列挙されたプリンタードライバーの中にドライバー情報の示すプリンタードライバーがあれば、「ジョブ修正は不要」と判定する。フィールド２０５にドライバー情報の示すプリンタードライバーがなければ、判定部３４は「ジョブ修正は不要（ジョブは要求元プリント装置に適合しない）」と判定する。
【００８８】
以上の実施形態によれば、プリンタードライバーと独立して動作するポートモニター６０によってドライバー情報を取得するので、既存のプリンタードライバーをそのまま用いて（すなわち、既にクライアントにインストールされているプリンタードライバーを入れ替えることなく）、プルプリントシステム１，１ｂを実現することができる。
【００８９】
上述の実施形態によれば、転送要求に応えてジョブ保存フォルダー１３１からジョブを読み出すときに当該ジョブを残しておくので、ユーザーの意図しない出力結果になるおそれのあることを操作パネルによる通知で知ったユーザーが、意図した印刷物を得るために、修正ジョブの転送を中止させて他のプリント装置に当初のジョブを実行させることができる。
【００９０】
上述の実施形態において、プルプリントサーバー３，３ｂの構成を、本発明の趣旨に沿う範囲内で適宜変更することができる。ジョブ管理テーブルＴ１、適合ドライバーテーブルＴ２、対応コマンドテーブルＴ３、および指定機種テーブルＴ４の構成は例示に限らない。適合ドライバーテーブルＴ２および対応コマンドテーブルＴ３をクラウド上のサーバー９からダウンロードする形態に限らず、ネットワーク７にプリント装置を導入するときに、システム管理者がテーブルに所定のデータを追加する操作を行なってもよい。機種プラグインをインストールすることによってテーブルを更新することができる。
【００９１】
ネットワーク上のプリント装置の機種の数およびアップロードされるジョブの数が比較的に少ない場合などにおいて、アップロードされたジョブの転送がどのプリント装置から要求されても対応可能なように、予め修正ジョブを作成して保存しておくようにしてもよい。その場合、保存されているジョブおよび修正ジョブの中から転送を要求したプリント装置に適合する一つを選択して転送すればよい。
【符号の説明】
【００９２】
１，１ｂ    プルプリントシステム
２Ａ，２Ｂ，２Ｃ    パーソナルコンピューター（クライアント、情報処理装置）
３，３ｂ    プルプリントサーバー
４，５，５Ａ，５Ｂ，６    ＭＦＰ（プリント装置）
１０    プリントサーバー（中継サーバー）
Ｊ４１，Ｊ４２，Ｊ５１，Ｊ５２    ジョブ（プリントジョブ）
Ｊ５２４，Ｊ４２４、Ｊ４２５，Ｊ４２６    修正ジョブ（修正プリントジョブ）
４１，５１    ＰＣＬドライバー（プリントドライバー）
４２，５２    ＰＳドライバー（プリントドライバー）
４１０，４２０，５１０，５２０    ドライバー情報
６０    ポートモニター（情報送信部）
３１    通信処理部（取得部）
３２    ジョブ管理部
３４    判定部
３５    転送部
３６    データベース部
Ｔ２    適合ドライバーテーブル（適合ドライバー情報）
Ｔ３    対応コマンドテーブル（対応コマンド情報）
Ｔ４    指定機種テーブル（指定機種情報）
Ｔ２Ａ    第１のテーブル
Ｔ２Ｂ    第２のテーブル
７５Ａ    装置情報
９    クラウド上のサーバー
【図１】
2015001857.tif 000003
【図２】
2015001857.tif 000004
【図３】
2015001857.tif 000005
【図４】
2015001857.tif 000006
【図５】
2015001857.tif 000007
【図６】
2015001857.tif 000008
【図７】
2015001857.tif 000009
【図８】
2015001857.tif 000010
【図９】
2015001857.tif 000011
【図１０】
2015001857.tif 000012
【図１１】
2015001857.tif 000013
【図１２】
2015001857.tif 000014
【図１３】
2015001857.tif 000015
【図１４】
2015001857.tif 000016
【図１５】
2015001857.tif 000017
【図１６】
2015001857.tif 000018
【図１７】
2015001857.tif 000019
【図１８】
2015001857.tif 000020
【図１９】
2015001857.tif 000021