(57)【要約】【課題】予め設定された第１プリンタ以外で印刷をした場合に、代行印刷された印刷物であることを印刷物の受取者に知らせる。【解決手段】実施形態に係る情報処理装置は、印刷指示に応じて、印刷の対象データを予め定められた形式の中間データに変換する仮想プリンタドライバと、出力先に予め設定された第１プリンタとは異なるプリンタにより印刷する場合、代行印刷された印刷物であることを示す代行印刷情報を中間データに付加し、第１プリンタとは異なる第２プリンタを選択し、第２プリンタを制御する実プリンタドライバに対して中間データの印刷指示を与える代行印刷部と、を備える。【選択図】図２
2017058807.tif 000002
【特許請求の範囲】
【請求項１】
印刷指示に応じて、印刷の対象データを予め定められた形式の中間データに変換する仮想プリンタドライバと、
出力先に予め設定された第１プリンタとは異なるプリンタにより印刷する場合、代行印刷された印刷物であることを示す代行印刷情報を前記中間データに付加し、前記第１プリンタとは異なる第２プリンタを選択し、前記第２プリンタを制御する実プリンタドライバに対して前記中間データの印刷指示を与える代行印刷部と、
を備える情報処理装置。
【請求項２】
前記代行印刷部は、前記中間データにおける印刷面に、前記代行印刷情報の画像を合成する
請求項１に記載の情報処理装置。
【請求項３】
前記代行印刷部は、前記中間データのメタ情報に、前記代行印刷情報を含める
請求項１または２に記載の情報処理装置。
【請求項４】
前記代行印刷部は、前記メタ情報における、前記第２プリンタのモニタに表示されるデータ領域に、印刷面のサムネイルを含む前記代行印刷情報を含める
請求項３に記載の情報処理装置。
【請求項５】
前記代行印刷部は、ユーザを特定する情報を前記代行印刷情報に含める
請求項１から４の何れか１項に記載の情報処理装置。
【請求項６】
前記代行印刷部は、ユーザの連絡先を前記代行印刷情報に含める
請求項１から５の何れか１項に記載の情報処理装置。
【請求項７】
前記代行印刷部は、印刷日時を前記代行印刷情報に含める
請求項１から６の何れか１項に記載の情報処理装置。
【請求項８】
前記代行印刷部は、ユーザが印刷物を取りに行くか、他人に印刷物を持ってきてもらうかを選択させ、他人に印刷物を持ってきてもらう場合、前記中間データに前記代行印刷情報を含める
請求項１から７の何れか１項に記載の情報処理装置。
【請求項９】
前記代行印刷部は、ユーザに緊急に用いる印刷物であるか否かを選択させ、緊急に用いる印刷物である場合、緊急である旨の情報を前記代行印刷情報に含める
請求項１から８の何れか１項に記載の情報処理装置。
【請求項１０】
前記代行印刷部は、前記中間データに、代行印刷である旨を示すページを追加する
請求項１から９の何れか１項に記載の情報処理装置。
【請求項１１】
前記代行印刷部は、前記中間データを印刷した印刷物が前記第２プリンタにおける予め設定された代行印刷用トレイに排紙されるように、前記実プリンタドライバに対して印刷指示を与える
請求項１から１０の何れか１項に記載の情報処理装置。
【請求項１２】
シナリオ情報により定義される複数のルール情報を順次に実行するフロー制御部をさらに備え、
前記ルール情報には、条件と、前記条件を満たした場合に実行する動作とが記述されており、
前記フロー制御部は、前記仮想プリンタドライバから前記中間データが与えられた場合、予め定められた前記シナリオ情報を読み出し、
読み出した前記シナリオ情報は、前記第１プリンタによる印刷ができないという前記条件を満たした場合に、代行印刷を実行することが記述された第１のルール情報を含む
請求項１から１１の何れか１項に記載の情報処理装置。
【請求項１３】
前記第１プリンタの状態を監視する状態監視部をさらに備え、
前記フロー制御部は、前記第１のルール情報を実行する場合に、前記状態監視部を呼び出して前記条件を判断し、前記代行印刷部を呼び出して動作を実行させる
請求項１２に記載の情報処理装置。
【請求項１４】
情報処理装置により実行される情報処理方法であって、
印刷指示に応じて、印刷の対象データを予め定められた形式の中間データに変換するステップと、
出力先に予め設定された第１プリンタとは異なるプリンタにより印刷する場合、代行印刷された印刷物であることを示す代行印刷情報を前記中間データに付加し、前記第１プリンタとは異なる第２プリンタを選択し、前記第２プリンタを制御する実プリンタドライバに対して前記中間データの印刷指示を与えるステップと、
を実行する情報処理方法。
【請求項１５】
情報処理装置を、
印刷指示に応じて、印刷の対象データを予め定められた形式の中間データに変換する仮想プリンタドライバと、
出力先に予め設定された第１プリンタとは異なるプリンタにより印刷する場合、代行印刷された印刷物であることを示す代行印刷情報を前記中間データに付加し、前記第１プリンタとは異なる第２プリンタを選択し、前記第２プリンタを制御する実プリンタドライバに対して前記中間データの印刷指示を与える代行印刷部と、
して機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法およびプログラムに関する。
【背景技術】
【０００２】
従来より、予め設定されたプリンタがエラー状態等により印刷ができない場合、出力先を他のプリンタに変更して代行印刷する印刷システムが知られている。また、印刷データ等に含まれているキーワードに応じて、出力先のプリンタを切り替えて印刷する印刷システムが知られている。
【０００３】
特許文献１には、キーワード等に応じて出力先のプリンタを切り替える技術が記載されている。また、例えば、特許文献２には、予め設定されたプリンタにより印刷ができない場合、出力先のプリンタを変更して代行印刷する技術が記載されている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、予め設定されたプリンタ以外のプリンタで印刷をした場合、そのプリンタが比較的に遠くに設置されているため、印刷物を受け取る人が印刷指示者本人でない場合がある。このような場合、印刷物を受け取った人は、その印刷物が誰のものなのかが分かりづらかった。このため、印刷物が、印刷指示者本人の手元に届くまでに時間がかかってしまう場合もあった。
【０００５】
本発明は、上記に鑑みてなされたものであって、予め設定された第１プリンタ以外で印刷をした場合に、代行印刷された印刷物であることを印刷物の受取者に知らせることを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明に係る情報処理装置は、印刷指示に応じて、印刷の対象データを予め定められた形式の中間データに変換する仮想プリンタドライバと、出力先に予め設定された第１プリンタとは異なるプリンタにより印刷する場合、代行印刷された印刷物であることを示す代行印刷情報を前記中間データに付加し、前記第１プリンタとは異なる第２プリンタを選択し、前記第２プリンタを制御する実プリンタドライバに対して前記中間データの印刷指示を与える代行印刷部と、を備える。
【発明の効果】
【０００７】
本発明によれば、予め設定された第１プリンタ以外で印刷をした場合に、代行印刷された印刷物であることを印刷物の受取者に知らせることができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施形態に係る情報処理システムの構成を示す図である。
【図２】図２は、端末装置の機能構成を示す図である。
【図３】図３は、フロー制御部の機能構成を記憶部とともに示す図である。
【図４】図４は、状態監視部の機能構成を記憶部とともに示す図である。
【図５】図５は、代行印刷部の機能構成を記憶部とともに示す図である。
【図６】図６は、印刷時における端末装置の処理手順を示すシーケンス図である。
【図７】図７は、フロー制御部の処理手順を示すフローチャートである。
【図８】図８は、ルール情報の一例を示す図である。
【図９】図９は、状態監視部の処理手順を示すフローチャートである。
【図１０】図１０は、代行印刷部の処理手順を示すフローチャートである。
【図１１】図１１は、代行印刷をするか否かを問い合わせるＵＩ画面の一例を示す図である。
【図１２】図１２は、印刷物を他人に持ってきてもらうかを問い合わせるＵＩ画面の一例を示す図である。
【図１３】図１３は、代行印刷情報を付加するかを問い合わせるＵＩ画面の一例を示す図である。
【図１４】図１４は、プリンタの設置場所に関する情報の一例を示す図である。
【図１５】図１５は、代行印刷情報の印刷例を示す図である。
【図１６】図１６は、端末装置のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【０００９】
以下に、本発明に係る実施形態を図面に基づいて詳細に説明する。なお、この実施形態によりこの発明が限定されるものではない。
【００１０】
図１は、実施形態に係る情報処理システム１０の構成を示す図である。情報処理システム１０は、端末装置２０と、複数のプリンタ２４と、アプリケーションサーバ３２と、認証装置３４と、管理者装置３６とを備える。
【００１１】
端末装置２０は、印刷を指示するユーザが使用する情報処理装置である。端末装置２０は、例えば、デスクトップ型コンピュータ、ノート型コンピュータ、スマートフォン、タブレット端末および携帯電話機等である。
【００１２】
プリンタ２４は、端末装置２０からの印刷指示および印刷対象のデータを受信し、印刷指示に従って印刷対象のデータを用紙等の媒体に印刷する。プリンタ２４は、端末装置２０に直接接続されたローカルの装置であってよい。また、プリンタ２４は、ネットワークを介して端末装置２０と接続された、他の情報処理装置からの印刷要求も受け付けることが可能な共有の装置であってもよい。プリンタ２４は、印刷機能に加えて、ファクシミリ機能、コピー機能およびスキャナ機能等の少なくとも１つも併せて有する複合機であってもよい。
【００１３】
アプリケーションサーバ３２は、１または複数の情報処理装置から構成される。アプリケーションサーバ３２は、端末装置２０にアプリケーションプログラムおよび関連するデータを配布する。
【００１４】
認証装置３４は、端末装置２０のユーザを認証する。例えば、認証装置３４は、ユーザが端末装置２０にログインした場合に、ログインＩＤおよびパスワードを受け取り、端末装置２０を使用するユーザを認証する。これにより、端末装置２０は、使用しているユーザを特定することができる。
【００１５】
管理者装置３６は、管理者により使用される情報処理装置である。管理者装置３６は、管理者の要求に従って、端末装置２０に対する設定等を行う。
【００１６】
端末装置２０、共有のプリンタ２４、アプリケーションサーバ３２、認証装置３４および管理者装置３６は、ネットワークを介して接続される。ネットワークは、例えば、ＬＡＮ（Local  Area  Network）、ＶＰＮ（Virtual  Private  Network）またはＬＡＮがルータを介して接続されたＷＡＮ（Wide  Area  Network）である。また、ネットワークは、インターネットまたは電話通信回線等を含んでいてもよい。また、ネットワークは、有線で構成されていてもよいし、一部または全部が無線により構成されていてもよい。
【００１７】
また、情報処理システム１０は、複数の端末装置２０を備えてもよい。また、情報処理システム１０は、複数のアプリケーションサーバ３２および複数の管理者装置３６を備えてもよい。また、情報処理システム１０は、アプリケーションサーバ３２および管理者装置３６を備えない構成であってもよい。
【００１８】
図２は、端末装置２０の機能構成を示す図である。端末装置２０は、１以上のアプリケーション部４２と、仮想プリンタドライバ４４と、１以上の実プリンタドライバ４６と、プラットフォーム部４８と、印刷管理部５０と、記憶部５４とを備える。
【００１９】
１以上のアプリケーション部４２のそれぞれは、例えば、文書作成、表計算、メールまたはプレゼンテーションデータ作成等の情報処理をユーザに提供する。それぞれのアプリケーション部４２は、情報処理装置がオペレーティングシステム上でアプリケーションプログラムを実行することにより実現される。それぞれのアプリケーション部４２は、ユーザによる印刷操作等に応じて印刷対象データを生成し、仮想プリンタドライバ４４を呼び出して印刷指示および印刷の対象データを与える。
【００２０】
仮想プリンタドライバ４４は、仮想プリンタドライバプログラムを端末装置２０が実行することにより実現され、オペレーティングシステムの一部に組み込まれて動作する。仮想プリンタドライバ４４は、何れかのアプリケーション部４２から呼び出されて、印刷指示および印刷の対象データを受け取る。仮想プリンタドライバ４４は、印刷指示に応じて、印刷の対象データを予め定められた形式の中間データに変換する。中間データは、プリンタ２４の機種に依存しない形式の印刷データである。中間データは、例えば、ＸＰＳ（XML  Paper  Specification）等の形式の印刷データである。仮想プリンタドライバ４４は、生成した中間データをプリンタ２４に与えるのではなく、端末装置２０の所定の記憶領域に書き込む。
【００２１】
１以上の実プリンタドライバ４６のそれぞれは、プリンタドライバプログラムを端末装置２０が実行することにより実現され、オペレーティングシステムの一部に組み込まれて動作する。それぞれの実プリンタドライバ４６は、端末装置２０がアクセス可能な何れかのプリンタ２４に対応する。それぞれの実プリンタドライバ４６は、印刷管理部５０から呼び出されて、印刷指示および中間データを受け取る。それぞれの実プリンタドライバ４６は、受け取った中間データを、当該実プリンタドライバ４６に対応するプリンタ２４が受け取り可能な形式の印刷データに変換し、変換後の印刷データを送信する。これにより、それぞれの実プリンタドライバ４６に対応するプリンタ２４は、印刷データに応じて印刷することができる。
【００２２】
プラットフォーム部４８は、プリンタ２４等の周辺機器等を管理するための情報処理をユーザに提供する。プラットフォーム部４８は、オペレーティングシステム上で所定のプラットフォームプログラム（アプリケーションプログラム）を端末装置２０が実行することにより実現される。
【００２３】
プラットフォーム部４８は、表示制御部６２と、設定部６４と、通信部６６と、第１ＡＰＩ制御部６８とを含む。表示制御部６２は、ユーザインターフェイス画面等を表示して、ユーザに必要な設定値等を入力させる。設定部６４は、ユーザインターフェイス画面等を介して入力された設定値を取得して記憶する。通信部６６は、例えば、ネットワーク等を介してプリンタ２４等の周辺機器にアクセスして必要な情報を取得する。第１ＡＰＩ制御部６８は、プラットフォーム部４８の管理の下で動作するプログラムとの間で情報のやり取りをする。
【００２４】
印刷管理部５０は、仮想プリンタドライバ４４から印刷指示および中間データを受け取り、何れか１つのプリンタ２４を出力先として選択する。印刷管理部５０は、中間データを、選択した１つのプリンタ２４に対応するデータ形式の印刷データに変換する。そして、印刷管理部５０は、選択した１つのプリンタ２４に対応する実プリンタドライバ４６を呼び出して、印刷指示および変換後の印刷データを与える。
【００２５】
また、印刷管理部５０は、通常の場合、出力先として、予め設定されたプリンタ２４（第１プリンタ２４−１）を選択する。すなわち、印刷管理部５０は、第１プリンタ２４−１が通常に印刷可能な場合には、第１プリンタ２４−１を出力先として選択する。しかし、印刷管理部５０は、第１プリンタ２４−１により印刷できない場合、第１プリンタ２４−１とは異なるプリンタ２４（第２プリンタ２４−２）を出力先として選択し、第２プリンタ２４−２を制御する実プリンタドライバ４６に対して中間データの印刷指示を与える。
【００２６】
このような印刷管理部５０は、プラットフォーム部４８の管理の下で動作をする。印刷管理部５０は、フロー制御部７２と、状態監視部７４と、代行印刷部７６と、印刷制御部８０と、第２ＡＰＩ制御部８２とを含む。フロー制御部７２、状態監視部７４、代行印刷部７６および印刷制御部８０のそれぞれは、プラグインプログラムを端末装置２０が実行することにより実現され、プラットフォーム部４８の管理下で動作する。
【００２７】
フロー制御部７２は、仮想プリンタドライバ４４から印刷指示を受け取ったことにより実行を開始する。フロー制御部７２は、印刷指示を受け取ると、シナリオ情報を読み出して実行する。
【００２８】
シナリオ情報には、少なくとも１つのルール情報が定義される。ルール情報には、条件と、その条件を満たした場合に実行する動作とが記述されている。フロー制御部７２は、シナリオ情報により定義される複数のルール情報を順次に実行する。
【００２９】
具体的には、フロー制御部７２は、シナリオ情報に記述されたルール情報について、条件を満たすか否かを判断する。そして、フロー制御部７２は、条件を満たさない場合には、次のルール情報に進み、条件を満たす場合には、その条件を満たした場合に実行する動作を実行してから、次のルール情報に進む。なお、ルール情報には、条件が記述されていない場合もある。この場合、フロー制御部７２は、条件に関係無く、ルール情報に記述された動作を実行する。フロー制御部７２は、最後のルール情報まで処理を完了した場合、または、所定の終了条件に達した場合、印刷指示に応じた処理を終了する。
【００３０】
また、フロー制御部７２は、条件を満たすか否かの判断を、その条件に対応するプラグインプログラムに実現される機能ブロックを呼び出して実行させる。また、フロー制御部７２は、条件を満たした場合に実行する動作を、その動作に対応するプラグインプログラムに実現される機能ブロックを呼び出して実行させる。
【００３１】
ここで、フロー制御部７２は、仮想プリンタドライバ４４により中間データが生成された場合、予め定められたシナリオ情報を取得する。この予め定められたシナリオ情報は、第１プリンタ２４−１による印刷ができないという条件を満たした場合に、第１プリンタ２４−１とは異なる第２プリンタ２４−２による代行印刷を実行することが記述された第１のルール情報を含む。
【００３２】
そして、フロー制御部７２は、第１のルール情報に記述された条件（第１プリンタ２４−１による印刷ができるか否かの判断条件）を、状態監視部７４を呼び出して実行させる。また、フロー制御部７２は、第１のルール情報に記述された動作（第１プリンタ２４−１とは異なる第２プリンタ２４−２による代行印刷）を、代行印刷部７６を呼び出して実行させる。
【００３３】
状態監視部７４は、フロー制御部７２により呼び出されることにより実行を開始する。状態監視部７４は、出力先として予め設定されている第１プリンタ２４−１の状態を監視する。例えば、状態監視部７４は、出力先として予め設定されている第１プリンタ２４−１が、印刷可能状態であるか、エラー状態により印刷できない状態であるかを監視する。そして、状態監視部７４は、出力先として予め設定されている第１プリンタ２４−１がエラー状態により印刷ができないか否かを判定し、判定結果をフロー制御部７２に返す。
【００３４】
代行印刷部７６は、フロー制御部７２により呼び出されることにより実行を開始する。具体的には、代行印刷部７６は、出力先として予め設定されている第１プリンタ２４−１により印刷できない場合であって、第１プリンタ２４−１とは異なるプリンタ２４により代行印刷する場合に呼び出される。代行印刷部７６は、フロー制御部７２に呼び出された場合、代行印刷された印刷物であることを示す代行印刷情報を中間データに付加する。代行印刷部７６は、一例として、中間データの印刷面に代行印刷情報の画像を合成してもよいし、中間データのメタ情報に代行印刷情報を含めてもよい。
【００３５】
さらに、代行印刷部７６は、第１プリンタ２４−１とは異なる第２プリンタ２４−２を選択する。代行印刷部７６は、例えば、第１プリンタ２４−１とは異なるプリンタ２４のうち、端末装置２０と最も近いプリンタ２４を第２プリンタ２４−２として選択する。そして、代行印刷部７６は、第２プリンタ２４−２を制御する実プリンタドライバ４６に対して中間データの印刷指示を与える。代行印刷部７６は、中間データの印刷指示を与えた後、処理をフロー制御部７２に返す。
【００３６】
印刷制御部８０は、フロー制御部７２により呼び出されることにより実行を開始する。具体的には、印刷制御部８０は、出力先として予め設定されている第１プリンタ２４−１が印刷可能である場合に呼び出される。印刷制御部８０は、フロー制御部７２に呼び出された場合、第１プリンタ２４−１を制御する実プリンタドライバ４６に対して中間データの印刷指示を与える。印刷制御部８０は、中間データの印刷指示を与えた後、処理をフロー制御部７２に返す。
【００３７】
第２ＡＰＩ制御部８２は、印刷管理部５０に含まれるそれぞれの機能ブロックとプラットフォーム部４８との間で情報のやり取りをする。
【００３８】
記憶部５４は、アプリケーション部４２、仮想プリンタドライバ４４、実プリンタドライバ４６、プラットフォーム部４８および印刷管理部５０のそれぞれにおいて用いる情報を記憶する。
【００３９】
図３は、フロー制御部７２の機能構成を記憶部５４とともに示す図である。フロー制御部７２は、フロー実行部９２と、呼出部９４とを含む。
【００４０】
フロー実行部９２は、仮想プリンタドライバ４４から印刷指示を受け取ったことに応じて、シナリオ情報を記憶部５４から読み出す。そして、フロー実行部９２は、読み出したシナリオ情報により定義される複数のルール情報を順次に実行する。
【００４１】
呼出部９４は、ルール情報に記述された条件を判断する場合に、その条件を判断するためのプラグインプログラムにより実現される機能ブロックを呼び出して判断処理を実行させる。また、呼出部９４は、ルール情報に記述された動作を実行する場合に、その動作を実行するためのプラグインプログラムにより実現される機能ブロックを呼び出して動作を実行させる。
【００４２】
例えば、仮想プリンタドライバ４４により中間データが生成された場合、フロー実行部９２は、第１のルール情報を含むシナリオ情報を読み出す。第１のルール情報には、第１プリンタ２４−１による印刷ができないという条件を満たした場合に第１プリンタ２４−１とは異なる第２プリンタ２４−２による代行印刷を実行することが記述されている。
【００４３】
第１のルール情報を実行する場合、呼出部９４は、条件を判断させるためのプラグインプログラムにより実現される機能ブロックとして状態監視部７４を呼び出す。そして、呼出部９４は、状態監視部７４に、第１プリンタ２４−１による印刷ができるか否かの判断を実行させる。
【００４４】
また、第１のルール情報を実行する場合、呼出部９４は、動作を実行させるためのプラグインプログラムにより実現される機能ブロックとして代行印刷部７６を呼び出す。そして、呼出部９４は、代行印刷部７６に、中間データに代行印刷情報を付加する処理、および、第１プリンタ２４−１とは異なる第２プリンタ２４−２による印刷を実行させる。
【００４５】
図４は、状態監視部７４の機能構成を記憶部５４とともに示す図である。状態監視部７４は、状態取得部９６と、判定部９８とを含む。
【００４６】
状態取得部９６は、フロー制御部７２から呼び出されたことに応じて、出力先として予め設定された第１プリンタ２４−１に関する設定情報を記憶部５４から読み出す。例えば、状態取得部９６は、第１プリンタ２４−１のアドレス等を設定情報として記憶部５４から読み出す。そして、状態取得部９６は、設定情報に基づき第１プリンタ２４−１にアクセスして、第１プリンタ２４−１の状態を取得する。
【００４７】
判定部９８は、状態取得部９６が取得した状態に基づき、第１プリンタ２４−１が、動作可能状態であるか、エラー状態により印刷できない状態であるかを判定する。そして、判定部９８は、判定結果をフロー制御部７２に戻す。
【００４８】
図５は、代行印刷部７６の機能構成を記憶部５４とともに示す図である。代行印刷部７６は、ＵＩ制御部１０２と、情報付加部１０４と、プリンタ選択部１０６と、印刷指示部１０８とを含む。
【００４９】
ＵＩ制御部１０２は、ユーザインターフェイス画面を表示し、ユーザに設定値を入力させる。情報付加部１０４は、記憶部５４に記憶された代行印刷情報を読み出し、ＵＩ制御部１０２が取得した設定値に従って、中間データに代行印刷情報を付加する。プリンタ選択部１０６は、複数のプリンタ２４のうち、第１プリンタ２４−１とは異なる何れかのプリンタ２４を代行印刷の出力先（第２プリンタ２４−２）として選択する。印刷指示部１０８は、選択された第２プリンタ２４−２に対応する実プリンタドライバ４６を呼び出して、代行印刷情報が付加された中間データの印刷指示を与える。
【００５０】
図６は、印刷時における端末装置２０の処理手順を示すシーケンス図である。端末装置２０は、印刷を実行する場合、図６に示すシーケンスに従って処理を実行する。
【００５１】
まず、何れかのアプリケーション部４２において、ユーザが印刷操作をする（Ｓ１０１）。ユーザにより印刷操作がされたアプリケーション部４２は、仮想プリンタドライバ４４を呼び出して、印刷の対象データおよび印刷指示を与える（Ｓ１０２）。
【００５２】
仮想プリンタドライバ４４は、印刷指示に応じて、印刷の対象データを予め定められた形式の中間データに変換する（Ｓ１０３）。続いて、仮想プリンタドライバ４４は、印刷管理部５０を呼び出して、生成した中間データを与える（Ｓ１０４）。
【００５３】
印刷管理部５０は、仮想プリンタドライバ４４から中間データを受け取ると、出力先として予め設定された第１プリンタ２４−１とは異なるプリンタ２４により印刷するか否かを判定する（Ｓ１０５）。例えば、印刷管理部５０は、出力先として予め設定された第１プリンタ２４−１がエラーにより印刷ができないか否かを判定する。
【００５４】
Ｓ１０５において第１プリンタ２４−１により印刷できると判定した場合、印刷管理部５０は、第１プリンタ２４−１に対応する実プリンタドライバ４６を呼び出して、中間データおよび印刷指示を与える（Ｓ１０６）。第１プリンタ２４−１に対応する実プリンタドライバ４６は、印刷指示を受け取ると、中間データを第１プリンタ２４−１に対応する形式の印刷データに変換し、第１プリンタ２４−１に対して変換後の印刷データおよび印刷指示を与える（Ｓ１０７）。これにより、第１プリンタ２４−１は、印刷データに応じた印刷物を出力することができる。
【００５５】
一方、Ｓ１０５において第１プリンタ２４−１により印刷できないと判定した場合、印刷管理部５０は、代行印刷された印刷物であることを示す代行印刷情報を中間データに付加する（Ｓ１０８）。例えば、印刷管理部５０は、中間データの印刷面に代行印刷情報の画像を合成したり、中間データのメタ情報に代行印刷情報を含めたりする。
【００５６】
続いて、印刷管理部５０は、第１プリンタ２４−１とは異なる第２プリンタ２４−２を出力先として選択する（Ｓ１０９）。印刷管理部５０は、例えば、第１プリンタ２４−１とは異なるプリンタ２４のうち、端末装置２０と最も近いプリンタ２４を第２プリンタ２４−２として選択する。
【００５７】
続いて、印刷管理部５０は、選択された第２プリンタ２４−２に対応する実プリンタドライバ４６を呼び出して、中間データおよび印刷指示を与える（Ｓ１１０）。第２プリンタ２４−２に対応する実プリンタドライバ４６は、印刷指示を受け取ると、中間データを第２プリンタ２４−２に対応する形式の印刷データに変換し、第２プリンタ２４−２に対して変換後の印刷データおよび印刷指示を与える（Ｓ１１１）。これにより、第２プリンタ２４−２は、印刷データに応じた印刷物を出力することができる。
【００５８】
以上のように、本実施形態に係る端末装置２０は、出力先として予め設定された第１プリンタ２４−１以外で印刷をした場合に、代行印刷された印刷物であることを印刷物の受取者に知らせることができる。
【００５９】
図７は、フロー制御部７２の処理手順を示すフローチャートである。印刷管理部５０に含まれるフロー制御部７２は、仮想プリンタドライバ４４から中間データを受け取った場合、図７に示す処理を実行する。
【００６０】
印刷管理部５０が仮想プリンタドライバ４４から中間データを受け取ると、フロー制御部７２は、シナリオ情報を取得する（Ｓ１２１）。シナリオ情報には、１番目からＮ番目（Ｎは１以上の整数）のルール情報が記述されている。
【００６１】
続いて、フロー制御部７２は、変数Ｎに１を代入する（Ｓ１２２）。続いて、フロー制御部７２は、シナリオ情報にＮ番目のルール情報が存在するか否かを判断する（Ｓ１２３）。Ｎ番目のルール情報が存在しない場合（Ｓ１２３のＮｏ）、フロー制御部７２は、本フローを終了する。
【００６２】
Ｎ番目のルール情報が存在する場合（Ｓ１２３のＹｅｓ）、フロー制御部７２は、Ｎ番目のルール情報に条件が定義されているか否かを判断する（Ｓ１２４）。条件が定義されていない場合（Ｓ１２４のＮｏ）、フロー制御部７２は、処理をステップＳ１２７に進める。
【００６３】
条件が定義されている場合（Ｓ１２４のＹｅｓ）、フロー制御部７２は、ルール情報に定義された条件を判定するためのプラグインプログラムにより実現される機能ブロックを呼び出す（Ｓ１２５）。そして、フロー制御部７２は、プラグインプログラムの実行が終了すると、処理をステップＳ１２６に進める。
【００６４】
ステップＳ１２６において、フロー制御部７２は、プラグインプログラムの実行の結果に基づき、条件を満たしているか否かを判断する（Ｓ１２６）。条件を満たしていない場合（Ｓ１２６のＮｏ）、フロー制御部７２は、変数Ｎに１を加算して（Ｓ１２９）、処理をステップＳ１２３に戻す。これにより、フロー制御部７２は、次のルール情報に定義された処理を実行することができる。
【００６５】
条件を満たしている場合（Ｓ１２６のＹｅｓ）、フロー制御部７２は、ルール情報に定義された動作を実行するためのプラグインプログラムにより実現される機能ブロックを呼び出す（Ｓ１２７）。そして、フロー制御部７２は、プラグインプログラムの実行が終了すると、処理をステップＳ１２８に進める。
【００６６】
続いて、フロー制御部７２は、動作を実行した結果、処理を終了する状態となったか否かを判断する（Ｓ１２８）。処理を終了する状態となっていない場合（Ｓ１２８のＮｏ）、フロー制御部７２は、変数Ｎに１を加算して（Ｓ１２９）、処理をステップＳ１２３に戻す。これにより、フロー制御部７２は、次のルール情報に定義された処理を実行することができる。
【００６７】
そして、処理を終了する状態となった場合（Ｓ１２８のＹｅｓ）、フロー制御部７２は、本フローを終了する。
【００６８】
図８は、ルール情報の一例を示す図である。仮想プリンタドライバ４４から中間データを受け取った場合、フロー制御部７２は、ある特定のシナリオ情報を読み出す。この特定のシナリオ情報には、出力先に予め設定された第１プリンタ２４−１による印刷ができないという条件を満たした場合に、第２プリンタ２４−２により代行印刷を実行することが記述された第１のルール情報が定義されている。
【００６９】
例えば、シナリオ情報には、図８に示すような第１のルール情報が定義されている。図８に示された第１のルール情報には、条件を判断するために、第１プリンタ２４−１の状態を取得し、取得した状態が、値の欄に示された情報（ＰｒｉｎｔｅｒＡ＝エラー）と等しい場合に、条件を満たすことが記述されている。
【００７０】
また、図８に示された第１のルール情報には、情報付加処理（代行印刷情報を付加する処理）と、代行印刷処理（近くのプリンタ２４に印刷する処理）とを実行することが定義されている。
【００７１】
図９は、状態監視部７４の処理手順を示すフローチャートである。状態監視部７４は、図７のステップＳ１２５において、フロー制御部７２からプラグインプログラムが呼び出されることにより実行を開始する。
【００７２】
フロー制御部７２により呼び出されると、状態監視部７４は、出力先として予め設定された第１プリンタ２４−１を特定する（Ｓ１４１）。状態監視部７４は、一例として、記憶部５４に記憶された設定情報を読み出すことにより、第１プリンタ２４−１を特定する。
【００７３】
続いて、状態監視部７４は、第１プリンタ２４−１の状態を取得する（Ｓ１４２）。例えば、状態監視部７４は、第１プリンタ２４−１が印刷をできないエラー状態であるか、印刷可能な正常状態であるかを取得する。
【００７４】
続いて、状態監視部７４は、取得した第１プリンタ２４−１の状態に基づき、条件を満たしているか否かを判断する（Ｓ１４３）。具体的には、状態監視部７４は、第１プリンタ２４−１の状態が、印刷をできないエラー状態である場合、条件を満たしていると判定し、印刷可能な正常状態である場合、条件を満たしていないと判定する。そして、状態監視部７４は、判定結果をフロー制御部７２に戻して、処理を終了する。これにより、フロー制御部７２から呼び出されたプラグインプログラムの実行が終了する。
【００７５】
図１０は、代行印刷部７６の処理手順を示すフローチャートである。代行印刷部７６は、図７のステップＳ１２７において、フロー制御部７２からプラグインプログラムが呼び出されることにより実行を開始する。
【００７６】
フロー制御部７２により呼び出されると、ステップＳ１５１において、代行印刷部７６は、代行印刷をするか否かを判断する。例えば、代行印刷部７６は、図１１に示すような、代行印刷をするか否かを問い合わせるＵＩ画面を表示し、ユーザに代行印刷をするか否かを選択させる。代行印刷部７６は、ＹＥＳボタン２０１が選択された場合、代行印刷すると判断し、ＮＯボタン２０２が選択された場合、代行印刷しないと判断する。フロー制御部７２は、代行印刷すると判断した場合（Ｓ１５１のＹｅｓ）、処理をステップＳ１５２に進め、代行印刷しないと判断した場合（Ｓ１５１のＮｏ）、処理をステップＳ１５５に進める。
【００７７】
続いて、ステップＳ１５２において、代行印刷部７６は、印刷物を他人に持ってきてもらうか否かを判断する。例えば、代行印刷部７６は、図１２に示すような、印刷物を他人に持ってきてもらうか否かを問い合わせるＵＩ画面を表示し、ユーザに印刷物を他人に持ってきてもらうか否かを選択させる。代行印刷部７６は、自分で持ってくると表示されたボタン２１１が選択された場合、印刷物を自分で持ってくると判断し、他人に持ってきてもらうと表示されたボタン２１２が選択された場合、印刷物を他人に持ってきてもらうと判断する。フロー制御部７２は、印刷物を他人に持ってきてもらうと判断した場合（Ｓ１５２のＹｅｓ）、処理をステップＳ１５３に進め、印刷物を自分で持ってくると判断した場合（Ｓ１５２のＮｏ）、処理をステップＳ１５５に進める。
【００７８】
続いて、ステップＳ１５３において、代行印刷部７６は、代行印刷情報を付加するか否かを判断する。例えば、代行印刷部７６は、図１３に示すような、代行印刷情報を付加するかを問い合わせるＵＩ画面を表示し、ユーザに代行印刷情報を付加するかを選択させる。代行印刷部７６は、付加すると表示されたボタン２２１が選択された場合、代行印刷情報を付加すると判断し、付加しないと表示されたボタン２２２が選択された場合、代行印刷情報を付加しないと判断する。フロー制御部７２は、代行印刷情報を付加すると判断した場合（Ｓ１５３のＹｅｓ）、処理をステップＳ１５４に進め、代行印刷情報を付加しないと判断した場合（Ｓ１５３のＮｏ）、処理をステップＳ１５５に進める。
【００７９】
ステップＳ１５４において、代行印刷部７６は、記憶部５４に記憶された代行印刷情報を、仮想プリンタドライバ４４により生成された中間データに付加する。代行印刷部７６は、中間データの印刷面に代行印刷情報の画像を合成してもよいし、中間データのメタ情報に代行印刷情報を含めてもよい。
【００８０】
続いて、ステップＳ１５５において、代行印刷部７６は、第１プリンタ２４−１とは異なる第２プリンタ２４−２を選択する。例えば、代行印刷部７６は、端末装置２０から印刷可能なプリンタ２４のうち、第１プリンタ２４−１以外で、最も近くのプリンタ２４を第２プリンタ２４−２として選択する。
【００８１】
例えば、代行印刷部７６は、図１４に示されるようなプリンタ２４の設置場所に関する情報を、記憶部５４から取得する。プリンタ２４の設置場所に関する情報には、端末装置２０が印刷可能なそれぞれのプリンタ２４のアドレス、場所、部門および端末装置２０との位置関係が記述されている。代行印刷部７６は、例えば、位置関係に基づき、第１プリンタ２４−１とは異なるプリンタ２４のうち、最も近いプリンタ２４を選択する。なお、端末装置２０が印刷可能なそれぞれのプリンタ２４に、優先順位が予め設定されていてもよい。この場合、代行印刷部７６は、第１プリンタ２４−１以外で最も優先順位の高いプリンタ２４を第２プリンタ２４−２として選択する。
【００８２】
続いて、ステップＳ１５６において、代行印刷部７６は、選択した第２プリンタ２４−２に対応する実プリンタドライバ４６に対して印刷指示および中間データを与える。これにより、第２プリンタ２４−２に対応する実プリンタドライバ４６は、中間データを第２プリンタ２４−２に対応する印刷データに変換し、変換した印刷データを第２プリンタ２４−２に送信することができる。
【００８３】
そして、代行印刷部７６は、処理をフロー制御部７２に戻して、処理を終了する。これにより、フロー制御部７２から呼び出されたプラグインプログラムの実行が終了する。
【００８４】
図１５は、代行印刷情報の印刷例を示す図である。代行印刷部７６は、中間データに代行印刷情報を付加する場合、例えば、中間データにおける印刷面の画像に、代行印刷情報の画像を合成する。代行印刷部７６は、例えば先頭ページの角または余白等に代行印刷情報の画像を合成する。また、代行印刷部７６は、中間データの先頭ページに、代行印刷情報が記載された新たなページを挿入してもよい。
【００８５】
代行印刷部７６は、例えば、図１５に示すように、文書名、ページ数、印刷日時、印刷指示者であるユーザを特定する情報（担当者）、印刷指示者であるユーザの連絡先、印刷元のプリンタ２４（第１プリンタ２４−１）を特定する情報、印刷元のプリンタ２４（第１プリンタ２４−１）の場所を示す情報、および、代行理由等を、代行印刷情報に含める。
【００８６】
代行印刷部７６は、文書名を代行印刷情報に含めることにより、トレイから印刷物を取り出す人に、印刷物の内容を知らせることができる。これにより、代行印刷部７６は、トレイから印刷物を取り出す人に、印刷物を早急に印刷指示者に持っていくべきものか否かを容易に判断させることができる。
【００８７】
また、代行印刷部７６は、ページ数を代行印刷情報に含めることにより、トレイから印刷物を取り出す人に、印刷物のページ数を知らせることができる。これにより、代行印刷部７６は、代行印刷された印刷物をトレイから取り出す場合に、一部のページをトレイに残したり、別箇の印刷物を誤って取り出してしまったりすることを無くすことができる。
【００８８】
また、代行印刷部７６は、印刷日時を代行印刷情報に含めることにより、トレイから印刷物を取り出す人に、印刷した日時を知らせることができる。これにより、代行印刷部７６は、トレイから印刷物を取り出す人に、代行印刷された印刷物を早急に印刷指示者に持っていくべきものか否かを容易に判断させることができる。
【００８９】
また、代行印刷部７６は、担当者を代行印刷情報に含めることにより、トレイから印刷物を取り出す人に、印刷物の印刷指示をした人を知らせることができる。これにより、代行印刷部７６は、トレイから印刷物を取り出す人に、代行印刷された印刷物を誰に持っていけばよいのかを容易に判断させることができる。
【００９０】
また、代行印刷部７６は、印刷元のプリンタ２４を特定する情報および印刷元のプリンタ２４の場所を示す情報を代行印刷情報に含めることにより、トレイから印刷物を取り出す人に、代行印刷された印刷物が元々どのプリンタ２４で印刷されるべきものだったかを知らせることができる。これにより、代行印刷部７６は、トレイから印刷物を取り出す人に、代行印刷された印刷物を、印刷元のプリンタ２４へ持っていかせることができる。
【００９１】
また、代行印刷部７６は、中間データに代行印刷情報を付加する場合、例えば、中間データのメタ情報に、代行印刷情報を含めてもよい。これにより、代行印刷部７６は、第２プリンタ２４−２のモニタに代行印刷情報を表示させることができる。また、第２プリンタ２４−２がメタ情報を印刷する機能を有していれば、代行印刷部７６は、中間データの印刷物とともにメタ情報を印刷させることができる。
【００９２】
さらに、代行印刷部７６は、中間データのメタ情報における、第２プリンタ２４−２のモニタに表示されるデータ領域に、中間データの印刷面のサムネイルを代行印刷情報を含めてもよい。これにより、代行印刷部７６は、サムネイルとともに、文書名、ページ数、印刷日時および担当者等をモニタに表示させることができ、印刷物との対応関係を明確にすることができる。
【００９３】
また、代行印刷部７６は、ユーザに、緊急に用いる印刷物であるか否かを選択させてもよい。緊急に用いる印刷物である場合、代行印刷部７６は、緊急である旨の情報を代行印刷情報に含める。これにより、代行印刷部７６は、代行印刷された印刷物を、早急に持ってこさせることができる。
【００９４】
また、代行印刷部７６は、中間データに、代行印刷である旨を示すページを追加してもよい。これにより、代行印刷部７６は、印刷物が代行印刷されたものであることを、トレイから印刷物を取り出す人に容易に判断させることができる。
【００９５】
また、さらに、代行印刷部７６は、中間データを印刷した印刷物が第２プリンタ２４−２における予め設定された代行印刷用トレイに排紙されるように、実プリンタドライバ４６に対して印刷指示を与えてもよい。このようにしても、代行印刷部７６は、印刷物が代行印刷されたものであることを、トレイから印刷物を取り出す人に容易に判断させることができる。
【００９６】
図１６は、端末装置２０のハードウェア構成の一例を示す図である。端末装置２０は、通常のコンピュータと同様の構成をしている。すなわち、端末装置２０は、ＣＰＵ（Central  Processing  Unit）４０１と、ＲＯＭ（Read  Only  Memory）４０２と、ＲＡＭ（Random  Access  Memory）４０３と、記憶デバイス４０４と、ネットワークＩ／Ｆ４０６と、ディスプレイ４１１と、表示Ｉ／Ｆ４１２と、入力デバイス４１３と、入力Ｉ／Ｆ４１４とを有する。ＣＰＵ４０１、ＲＯＭ４０２、ＲＡＭ４０３、記憶デバイス４０４、ネットワークＩ／Ｆ４０６、表示Ｉ／Ｆ４１２および入力Ｉ／Ｆ４１４は、バスにより接続されている。
【００９７】
ＣＰＵ４０１は、記憶デバイス４０４に記憶されたプログラムをＲＡＭ４０３に展開して実行し、各部を制御して入出力を行ったり、データの加工を行ったりする。ＲＯＭ４０２には、ＯＳの起動用プログラムを記憶デバイス４０４からＲＡＭ４０３に読み出すスタートプログラムが記憶されている。
【００９８】
記憶デバイス４０４は、例えば、ハードディスクドライブまたはフラッシュメモリ等である。記憶デバイス４０４は、オペレーティングシステム、アプリケーションプログラムおよびデータを記憶している。これらのプログラムは、インストール可能な形式または実行可能な形式のファイルで、コンピュータで読み取り可能な記録メディアに記録して配布される。また、プログラムは、サーバからダウンロードすることにより配布されてもよい。ネットワークＩ／Ｆ４０６は、例えばネットワークに接続するためのインターフェイス装置である。
【００９９】
ディスプレイ４１１は、情報を表示するデバイスである。表示Ｉ／Ｆ４１２は、ＣＰＵ４０１の制御に従ってディスプレイ４１１に画像信号を供給する。入力デバイス４１３は、キーボード、マウスおよびタッチパネル等であり、ユーザによる操作情報を取得する。入力Ｉ／Ｆ４１４は、ＣＰＵ４０１の制御に従って、入力デバイス４１３が取得した情報をＲＡＭ４０３に記憶させる。
【０１００】
本実施形態の端末装置２０で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【０１０１】
また、本実施形態の端末装置２０で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施形態の端末装置２０で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。また、本実施形態のプログラムを、ＲＯＭ４０２等に予め組み込んで提供するように構成してもよい。
【０１０２】
このような端末装置２０を印刷管理部５０として機能させるためのプログラムは、フロー制御プラグインプログラム、状態監視プラグインプログラム、代行印刷プラグインプログラムおよび印刷制御プラグインプログラム等を含む。端末装置２０は、実際のハードウェアとしてはプロセッサ（ＣＰＵ４０１）が記憶媒体（記憶デバイス４０４等）からプログラムを読み出して実行することにより上記各部が主記憶装置（ＲＡＭ４０３）上にロードされ、フロー制御部７２、状態監視部７４、代行印刷部７６および印刷制御部８０が主記憶装置上に生成されるようになっている。
【０１０３】
以上、本発明の実施形態を説明したが、実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能である。
【符号の説明】
【０１０４】
１０  情報処理システム
２０  端末装置
２４  プリンタ
３２  アプリケーションサーバ
３４  認証装置
３６  管理者装置
４２  アプリケーション部
４４  仮想プリンタドライバ
４６  実プリンタドライバ
４８  プラットフォーム部
５０  印刷管理部
５４  記憶部
６２  表示制御部
６４  設定部
６６  通信部
６８  第１ＡＰＩ制御部
７２  フロー制御部
７４  状態監視部
７６  代行印刷部
８０  印刷制御部
８２  第２ＡＰＩ制御部
９２  フロー実行部
９４  呼出部
９６  状態取得部
９８  判定部
１０２  ＵＩ制御部
１０４  情報付加部
１０６  プリンタ選択部
１０８  印刷指示部
【先行技術文献】
【特許文献】
【０１０５】
【特許文献１】特開２０１３−８３５３号公報
【特許文献２】特開２０１４−１７９９０９号公報
【図１】
2017058807.tif 000003
【図２】
2017058807.tif 000004
【図３】
2017058807.tif 000005
【図４】
2017058807.tif 000006
【図５】
2017058807.tif 000007
【図６】
2017058807.tif 000008
【図７】
2017058807.tif 000009
【図８】
2017058807.tif 000010
【図９】
2017058807.tif 000011
【図１０】
2017058807.tif 000012
【図１１】
2017058807.tif 000013
【図１２】
2017058807.tif 000014
【図１３】
2017058807.tif 000015
【図１４】
2017058807.tif 000016
【図１５】
2017058807.tif 000017
【図１６】
2017058807.tif 000018