IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ブラザー工業株式会社の特許一覧

<>
  • 特開-情報処理プログラム 図1
  • 特開-情報処理プログラム 図2
  • 特開-情報処理プログラム 図3
  • 特開-情報処理プログラム 図4
  • 特開-情報処理プログラム 図5
  • 特開-情報処理プログラム 図6
  • 特開-情報処理プログラム 図7
  • 特開-情報処理プログラム 図8
  • 特開-情報処理プログラム 図9
  • 特開-情報処理プログラム 図10
  • 特開-情報処理プログラム 図11
  • 特開-情報処理プログラム 図12
  • 特開-情報処理プログラム 図13
  • 特開-情報処理プログラム 図14
  • 特開-情報処理プログラム 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024143254
(43)【公開日】2024-10-11
(54)【発明の名称】情報処理プログラム
(51)【国際特許分類】
   G06F 3/12 20060101AFI20241003BHJP
   B41J 29/38 20060101ALI20241003BHJP
【FI】
G06F3/12 329
G06F3/12 303
G06F3/12 328
G06F3/12 360
G06F3/12 386
B41J29/38 202
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2023055831
(22)【出願日】2023-03-30
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.UNIX
(71)【出願人】
【識別番号】000005267
【氏名又は名称】ブラザー工業株式会社
(74)【代理人】
【識別番号】110003096
【氏名又は名称】弁理士法人第一テクニカル国際特許事務所
(72)【発明者】
【氏名】門田 政敏
【テーマコード(参考)】
2C061
【Fターム(参考)】
2C061AP01
2C061AQ05
2C061AQ06
2C061HJ08
2C061HN05
2C061HN15
2C061HP00
2C061HP04
2C061HP06
2C061HP08
2C061HQ01
(57)【要約】
【課題】ドライバレスのOS印刷機能を利用する環境において、印刷のための処理とステータスモニタの安定的な両立を実現することができる情報処理プログラムを提供する。
【解決手段】プリンタアプリケーション170は、CUPS160に仮想プリンタとして登録されたとき、クライアントPC100のプロセッサ110に対し、印刷データ送信処理と、プリンタ200のステータスを問い合わせるためのUSTATUS DEVICE ON及びINFO STATUSコマンドをプリンタ200に向けて出力するステップS10と、USTATUS DEVICE ON及びINFO STATUSコマンドに応じたプリンタ200からのステータス情報を取得するステップS20と、を実行させる。
【選択図】図2
【特許請求の範囲】
【請求項1】
情報処理装置の演算部によって実行可能であり、前記情報処理装置と通信可能な印刷装置に対応可能な情報処理プログラムであって、前記情報処理装置にはOS標準印刷ソフトウェアを有するオペレーティングシステムが搭載されており、前記情報処理プログラムは前記OS標準印刷ソフトウェアに仮想の印刷装置として登録可能であり、
前記情報処理プログラムは、前記OS標準印刷ソフトウェアに前記仮想の印刷装置として登録されたとき、前記情報処理装置の演算部に対し、
前記OS標準印刷ソフトウェアからの第1印刷データを取得し、当該第1印刷データに基づく第2印刷データを前記印刷装置へ向けて送信する印刷データ送信処理と、
前記印刷装置のステータスの問い合わせ信号を前記印刷装置に向けて出力する問い合わせ信号出力処理と、
前記問い合わせ信号出力処理での前記問い合わせ信号の出力に応じた前記印刷装置からのステータス情報を取得するステータス情報取得処理と、
を実行させる、情報処理プログラム。
【請求項2】
前記ステータス情報は、
前記印刷装置の前記ステータスが変更されたときに取得可能なステータス変更データを含む、請求項1記載の情報処理プログラム。
【請求項3】
前記問い合わせ信号出力処理及び前記ステータス情報取得処理は、
所定周期で繰り返される、請求項1記載の情報処理プログラム。
【請求項4】
前記演算部に対し、さらに、
前記所定周期で繰り返される前記ステータス情報取得処理で取得される前記ステータス情報を集計する情報集計処理を実行させる、請求項3記載の情報処理プログラム。
【請求項5】
前記演算部に対し、さらに、
前記情報処理装置に対し通信可能に構成された外部装置からの情報収集信号を取得する情報収集信号取得処理と、
前記情報収集信号取得処理で取得された前記情報収集信号に応じて、前記ステータス情報取得処理で取得した前記ステータス情報を前記外部装置へ向けて出力するステータス情報送信処理と、
を実行させる、請求項1記載の情報処理プログラム。
【請求項6】
前記演算部に対し、さらに、
前記ステータス情報取得処理で取得された前記ステータス情報を表示するためのステータス表示信号を出力するステータス表示信号出力処理
を実行させる、請求項1乃至請求項5のいずれか1項記載の情報処理プログラム。
【請求項7】
前記演算部に対し、さらに、
前記ステータス情報取得処理で取得される前記ステータス情報の一部である基本ステータスを前記OS標準印刷ソフトウェアへ向けて出力する基本ステータス出力処理
を実行させる、請求項6記載の情報処理プログラム。
【請求項8】
前記情報処理装置と前記印刷装置とはUSBケーブルにより接続されており、
前記演算部に対し、さらに、
前記印刷装置との間で前記USBケーブルを介した通信を行うためのバックエンドに対してアクセスするアクセス権限を取得するアクセス権限取得処理
を実行させ、
前記問い合わせ信号出力処理では、前記アクセス権限取得処理で取得された前記アクセス権限に基づき、前記バックエンドを介して前記問い合わせ信号を前記印刷装置へ向けて出力し、
前記ステータス情報取得処理では、前記アクセス権限取得処理で取得された前記アクセス権限に基づき、前記バックエンドを介して前記印刷装置からの前記ステータス情報を取得する、
請求項1乃至請求項5のいずれか1項記載の情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、印刷装置に対し通信可能な情報処理装置で実行される情報処理プログラムに関する。
【背景技術】
【0002】
従来、所定の印刷規格に従ってプリンタのベンダが提供するプリンタドライバを用いることなく印刷を行う、いわゆるドライバレスの印刷機能を有するオペレーティングシステム(OS)が一般的になりつつある。この場合、プリンタドライバのインストールを行うことなく印刷を行うことができる。
【0003】
このようなドライバレスのOS印刷機能を利用し、かつドライバレス未対応のプリンタへの対応あるいは通常のドライバレス印刷の機能を拡張するものとして、例えば特許文献1に記載のように、OSから印刷ジョブを受信し、受信した印刷ジョブをプリンタに送信する仮想プリンタを情報処理装置内に作成したものが知られている。
【0004】
また従来ステータスモニタと呼ばれる装置が公知である。これはプリンタや印刷キューの状態や消耗品の消費状況を使用者に知らせる装置である。従来はこのステータスモニタはプリンタドライバや上記仮想プリンタとは切り離された単独のモジュールとして提供されていた。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2020-201802号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
ドライバレスのOS印刷機能を利用する環境において、OSの種類や情報処理装置とプリンタとの接続形態によっては、印刷装置との間で通信を行うためのバックエンドに対し、単体のアプリケーションしかアクセス権限を取得できない場合がある。また、アクセス権限を取得できたとしても、印刷を実行するための印刷装置との通信とステータスモニタのための印刷装置との通信の一方が他方を制限したりするおそれがある。印刷装置においても、印刷を実行するための通信とステータスモニタのための通信を並行して処理しなければならず負担が大きい。
【0007】
本発明の目的は、ドライバレスのOS印刷機能を利用する環境において、印刷のための処理とステータスモニタの安定的な両立を実現することができる情報処理プログラムを提供することにある。
【課題を解決するための手段】
【0008】
上記目的を達成するために、本願発明は、情報処理装置の演算部によって実行可能であり、前記情報処理装置と通信可能な印刷装置に対応可能な情報処理プログラムであって、前記情報処理装置にはOS標準印刷ソフトウェアを有するオペレーティングシステムが搭載されており、前記情報処理プログラムは前記OS標準印刷ソフトウェアに仮想の印刷装置として登録可能であり、前記情報処理プログラムは、前記OS標準印刷ソフトウェアに前記仮想の印刷装置として登録されたとき、前記情報処理装置の演算部に対し、前記OS標準印刷ソフトウェアからの第1印刷データを取得し、当該第1印刷データに基づく第2印刷データを前記印刷装置へ向けて送信する印刷データ送信処理と、前記印刷装置のステータスの問い合わせ信号を前記印刷装置に向けて出力する問い合わせ信号出力処理と、前記問い合わせ信号出力処理での前記問い合わせ信号の出力に応じた前記印刷装置からのステータス情報を取得するステータス情報取得処理と、を実行させる。
【0009】
本願発明の情報処理プログラムは、情報処理装置の演算部によって実行可能であり、情報処理装置と通信可能な印刷装置に対応可能である。情報処理装置にはOS標準印刷ソフトウェアを有するオペレーティングシステムが搭載されており、情報処理プログラムはOS標準印刷ソフトウェアに仮想の印刷装置として登録可能である。情報処理プログラムは、OS標準印刷ソフトウェアに仮想の印刷装置として登録されたとき、情報処理装置の演算部に対し、能力情報出力処理と、印刷データ送信処理と、問い合わせ信号出力処理と、ステータス情報取得処理と、を実行させる。能力情報出力処理では、印刷装置の能力を表す第1能力情報が取得され、取得された第1能力情報に基づく第2能力情報がOS標準印刷ソフトウェアへ向けて出力される。印刷データ送信処理では、能力情報出力処理で出力した第2能力情報に対応したOS標準印刷ソフトウェアからの第1印刷データが取得され、当該第1印刷データに基づく第2印刷データが印刷装置へ向けて送信される。問い合わせ信号出力処理では、印刷装置のステータスの問い合わせ信号が印刷装置に向けて出力される。ステータス情報取得処理では、問い合わせ信号出力処理での問い合わせ信号の出力に応じた印刷装置からのステータス情報が取得される。
本願発明によれば、OS標準印刷ソフトウェアに登録された仮想の印刷装置が印刷装置に対してステータスを問い合わせてステータス情報を取得する。仮想の印刷装置がOS標準印刷ソフトウェアと印刷装置との間で印刷処理及びステータスモニタ処理の仲介を行うので、印刷を実行するための印刷装置との通信とステータスモニタのための印刷装置との通信の一方が他方を制限したりするおそれがない。本願発明によれば、印刷のための処理とステータスモニタの安定的な両立を実現することができる。
【発明の効果】
【0010】
本発明によれば、ドライバレスのOS印刷機能を利用する環境において、印刷のための処理とステータスモニタの安定的な両立を実現することができる。
【図面の簡単な説明】
【0011】
図1】実施形態に係る印刷システムの全体構成の一例を表す図である。
図2】第1クライアントPCのプリンタアプリケーション又は第2クライアントPCのプリンタアプリケーションが実行する、ステータスモニタに係わる処理手順の一例を表すフローチャートである。
図3】プリンタ追加又は削除に対する処理の制御手順の一例を表すフローチャートである。
図4】指定時間ごとの処理及び管理ソフトからのデータ収集命令に対する処理の制御手順の一例を表すフローチャートである。
図5】管理ソフトからのステータス収集命令に対する処理の制御手順の一例を表すフローチャートである。
図6】管理PCからのPause/Resumeボタン通知に対する処理の制御手順の一例を表すフローチャートである。
図7】管理PCでクリーニングボタンに対する処理の制御手順の一例を表すフローチャートである。
図8】管理PCの管理集計部によるステータス情報の集計手法の一例を表す説明図である。
図9】管理ソフト画面の一例を表す図である。
図10】プリンタアプリケーションを有しない場合のバックエンドに対する使用権の占有の一例を表す説明図である。
図11】実施形態に係るプリンタアプリケーションを有する場合のバックエンドに対する使用権の占有の一例を表す説明図である。
図12】プリンタアプリケーションによる使用権取得に係わる処理手順の一例を表すフローチャートである。
図13】管理PCの管理ソフトによるステータスモニタに係わる処理手順の一例を表すフローチャートである。
図14】クライアントPC及びプリンタのハードウェア構成の一例を表すブロック図である。
図15】管理PCのハードウェア構成の一例を表すブロック図である。
【発明を実施するための形態】
【0012】
本発明の実施形態を図面を参照しつつ説明する。
【0013】
<印刷システムの全体構成>
図1に、実施形態に係る印刷システム1の全体構成の一例を示す。図1に示すように、印刷システム1は、複数のクライアントPC100A,100Bと、複数のプリンタ200A~200Dと、管理PC300と、を有する。第1クライアントPC100Aは、ユーザAが使用する端末装置であり、例えば第1プリンタ200A及び第2プリンタ200BとUSB(Universal Serial Bus)ケーブルにより通信可能に接続されている。第2クライアントPC100Bは、ユーザBが使用する端末装置であり、例えば第3プリンタ200CとUSBケーブルにより通信可能に接続されている。管理PC300は、印刷システム1の管理者Cが使用する端末装置であり、第1クライアントPC100A及び第2クライアントPC100Bと例えばインターネット、有線LAN又は無線LAN等のネットワークを介して通信可能に接続されている。また管理PC300には、第4プリンタ200Dが例えばインターネット、有線LAN又は無線LAN等のネットワークを介して通信可能に接続されている。
【0014】
なお、印刷システム1が情報処理システムの一例であり、第1クライアントPC100A及び第2クライアントPC100Bが情報処理装置及び第1情報処理装置の一例であり、プリンタ200が印刷装置の一例であり、管理PC300が外部装置及び第2情報処理装置の一例である。
【0015】
第1クライアントPC100Aは、第1プリンタ200A及び第2プリンタ200Bに印刷データを送信して印刷を実行させる。第1クライアントPC100Aは、例えばデスクトップ型PC、ノート型PC、タブレットコンピュータ等であるが、スマートフォン等の携帯端末でもよい。詳細は後述するが、第1クライアントPC100Aはプロセッサ110と、各種の情報処理プログラムを記憶した記憶装置115と、を有する(後述の図14参照)。プロセッサ110が各種の情報処理プログラムを実行することで、第1クライアントPC100Aは図1に示す機能構成を有する。なお、プロセッサ110が演算部の一例である。
【0016】
第1クライアントPC100Aには、CUPS(Common Unix Printing System)160Aを有するOS(オペレーティングシステム)が搭載されている。第1クライアントPC100Aは、編集アプリケーション102Aと、CUPS160Aと、プリンタアプリケーション170Aと、ブラウザ104Aと、を有する。編集アプリケーション102Aは、印刷ジョブをCUPS160Aに出力する。CUPS160Aは、OSに標準に搭載されプリンタベンダの提供するドライバを用いないドライバレス印刷を実行可能な、OS用のモジュール化された印刷システムである。CUPS160AがOS標準印刷ソフトウェアの一例であり、プリンタアプリケーション170Aが情報処理プログラムの一例である。
【0017】
プリンタアプリケーション170Aは、複数のプリンタ200A~200Dのうち接続されている第1プリンタ200A及び第2プリンタ200Bに対応する仮想プリンタとして、CUPS160Aに登録可能である。CUPS160Aは、プリンタアプリケーション170Aを仮想のプリンタとして取り扱い、印刷に係わる各種の処理を実行する。各種の処理には、例えば能力情報取得処理や印刷データ送信処理等が含まれる。CUPS160Aの能力情報取得処理に対し、プリンタアプリケーション170Aは、プリンタ200A,200Bの能力を表すアトリビュートを取得し、取得したアトリビュートをCUPS160Aが対応可能か否か、機能制限があるか否か、等に応じて変換し、変換したアトリビュートをCUPS160Aへ向けて出力する。CUPS160Aの印刷データ送信処理に対し、プリンタアプリケーション170Aは、CUPS160Aから印刷データを取得する。当該印刷データは、上記CUPS160Aの能力情報取得処理で出力したアトリビュートに対応している。プリンタアプリケーション170Aは、取得した印刷データを、プリンタ200A,200Bのアトリビュート、機能制限、等に応じて変換する。そして変換した印刷データをプリンタ200A,200Bへ向けて送信する。なお、変換前のアトリビュートが第1能力情報の一例であり、変換後のアトリビュートが第2能力情報の一例であり、変換前の印刷データが第1印刷データの一例であり、変換後の印刷データが第2印刷データの一例である。
【0018】
また、プリンタアプリケーション170Aは、第1プリンタ200A及び第2プリンタ200Bに対してステータスを問い合わせ、第1プリンタ200A及び第2プリンタ200Bからステータス情報を取得し、管理PC300に送信する処理等も行う。当該処理の詳細については後述する。
【0019】
ブラウザ104Aは、管理PC300のHTTP(Hypertext Transfer Protocol)サーバ303から各種情報を取得し、取得した情報をユーザAに提供する。各種情報には、印刷システム1が有する複数のプリンタ200A~200Dのステータス情報等が含まれる。
【0020】
第2クライアントPC100Bは、第3プリンタ200Cに印刷データを送信して印刷を実行させる。第2クライアントPC100Bは、例えばデスクトップ型PC、ノート型PC、タブレットコンピュータ等であるが、スマートフォン等の携帯端末でもよい。第2クライアントPC100Bは、第1クライアントPC100Aと同様に、プロセッサ110と、各種の情報処理プログラムを記憶した記憶装置115と、を有する(後述の図14参照)。プロセッサ110が各種の情報処理プログラムを実行することで、第2クライアントPC100Bは図1に示す機能構成を有する。
【0021】
第2クライアントPC100Bには、CUPS160Bを有するOSが搭載されている。第2クライアントPC100Bは、編集アプリケーション102Bと、CUPS160Bと、プリンタアプリケーション170Bと、ブラウザ104Bと、を有する。CUPS160BもOS標準印刷ソフトウェアの一例であり、プリンタアプリケーション170Bも情報処理プログラムの一例である。これらの機能は、上記第1クライアントPC100Aと同様であるので説明を省略する。
【0022】
管理PC300は、例えばデスクトップ型PC、ノート型PC、タブレットコンピュータ等である。詳細は後述するが、管理PC300はプロセッサ310と、各種の情報処理プログラムを記憶した記憶装置315と、を有する(後述の図15参照)。プロセッサ310が各種の情報処理プログラムを実行することで、管理PC300は図1に示す機能構成を有する。なお、プロセッサ310が演算部の一例である。
【0023】
管理PC300は、管理ソフト301と、ブラウザ302と、を有する。管理ソフト301は、印刷システム1の各プリンタ200A~200Dのステータス情報を管理するプログラムである。管理ソフト301は、HTTPサーバ303と、管理集計部304と、を有する。管理集計部304は、第1クライアントPC100Aのプリンタアプリケーション170Aから第1プリンタ200A及び第2プリンタ200Bのステータス情報を取得し、集計する。管理集計部304は、第2クライアントPC100Bのプリンタアプリケーション170Bから第3プリンタ200Cのステータス情報を取得し、集計する。管理集計部304は、第4プリンタ200Dからステータス情報を取得し、集計する。管理集計部304は、集計したステータス情報をHTTPサーバ303に出力する。HTTPサーバ303は、管理ソフト301上で動作するサーバソフトウェアである。HTTPサーバ303は、管理集計部304からステータス情報を取得し、ブラウザ302を介して管理者Cに提供すると共に、ブラウザ104A,104Bを介してユーザA及びユーザBにも提供する。なお、管理ソフト301が情報処理プログラムの一例である。
【0024】
本実施形態では、第1クライアントPC100Aと第2クライアントPC100Bとを区別しない場合には、単に「クライアントPC100」と記載する。CUPS160AとCUPS160Bとを区別しない場合には、単に「CUPS160」と記載する。プリンタアプリケーション170Aとプリンタアプリケーション170Bとを区別しない場合には、単に「プリンタアプリケーション170」と記載する。第1プリンタ200A、第2プリンタ200B、第3プリンタ200C、及び第4プリンタ200Dを区別しない場合には、単に「プリンタ200」と記載する。
【0025】
また、上述した印刷システム1のシステム構成は一例であり、上記以外としてもよい。例えば、クライアントPC100は上記2台に限らず3台以上でもよいし、複数に限らず1台でもよい。管理PC300は上記1台に限らず複数台でもよい。印刷システム1が有するプリンタ200は上記4台に限らず5台以上でもよいし、複数に限らず1台でもよい。プリンタ200はプリンタアプリケーション170に対して1台又は複数台接続されてもよいし、クライアントPC100を介さずにネットワークを介して管理PC300に接続されてもよい。クライアントPC100とプリンタ200との接続は上記USBに限らず、例えばインターネット、有線LAN又は無線LAN等を介したネットワーク接続でもよい。
【0026】
<プリンタアプリケーションによるステータスモニタに係わる処理>
プリンタアプリケーション170が実行する、ステータスモニタに係わる処理手順の一例を図2図7のフローチャートにより説明する。プリンタアプリケーション170は、CUPS160に仮想プリンタとして登録されたときに以下のフローチャートを実行する。
【0027】
図2に示すように、ステップS5では、プリンタアプリケーション170は、USTATUS監視スレッドを作成する。USTATUS監視スレッドは、USTATUSにより各プリンタのステータス情報を取得するためのスレッドである。USTATUSは、監視イベントにおいてステータスが変更された際にステータス情報を送信するように要求するコマンドである。当該ステップS5で作成されたUSTATUS監視スレッドにおいて、後述のステップS10~ステップS25が実行される。
【0028】
ステップS10では、プリンタアプリケーション170は、接続されたプリンタ200の各々にPJLのUSTATUS DEVICE ON及びINFO STATUSを送信する。PJLはHewlett Packard社のジョブ管理言語である。USTATUS DEVICE ONは上記USTATUSによるステータス情報の送信機能をONとするコマンドであり、INFO STATUSは当該コマンドの送信時点のステータス情報の送信を要求するコマンドである。USTATUS DEVICE ON及びINFO STATUSが問い合わせ信号の一例であり、当該ステップS10が問い合わせ信号出力処理の一例である。
【0029】
ステップS15では、プリンタアプリケーション170は、例えば1秒待機する。なお、待機時間は1秒以外でもよい。
【0030】
ステップS20では、プリンタアプリケーション170は、接続されたプリンタ200の各々からUSTATUSによるステータス情報及びINFO STATUSによるステータス情報を取得する。USTATUSによるステータス情報は、プリンタ200のステータスが変更されたときに取得可能なステータス情報であり、INFO STATUSによるステータス情報は当該コマンドを送信した時点のステータス情報である。USTATUSによるステータス情報がステータス変更データの一例であり、当該ステップS20がステータス情報取得処理の一例である。
【0031】
ステップS25では、プリンタアプリケーション170は、例えば記憶装置115の不揮発性記憶装置130のデータ記憶領域132等(後述の図14参照)、適宜の記憶領域に記憶されたステータス情報を、上記ステップS20で取得したステータス情報に更新する。その後、上記ステップS15に戻る。
【0032】
プリンタアプリケーション170は、上記ステップS15~ステップS25を繰り返すことで、ステップS20及びステップS25を例えば1秒間隔で実行する。当該1秒が所定周期の一例である。
【0033】
プリンタアプリケーション170は、上記ステップS15~ステップS25を繰り返し実行するのと並行して、ステップS30以降の処理を実行する。ステップS30では、プリンタアプリケーション170は、イベントが発生するまで待機する。イベントは、後述するステップS100~ステップS800の各々に対応したイベントである。
【0034】
ステップS35では、プリンタアプリケーション170は、イベントの種類を判定する。後述するステップS100~ステップS800のいずれにも対応していないイベントが発生した場合には(ステップS35:No)、次のステップS36に移行し、その他のイベントに対応する処理を実行する。その後、上記ステップS30に戻る。一方、プリンタアプリケーション170は、後述するステップS100~ステップS800に対応するいずれかのイベントが発生した場合には(ステップS35:Yes)、該当するイベント処理を実行する。
【0035】
プリンタアプリケーション170は、発生したイベントが印刷システム1へのプリンタ200の追加又は削除である場合には、ステップS100のプリンタ追加又は削除に対する処理を実行する。図3に、ステップS100の詳細内容の一例を示す。このイベントは、プリンタアプリケーション170がmDNSなどのプロトコルやUSB PnP情報により新たなプリンタが接続されたことを検出した場合や、ユーザー操作によりプリンタの追加が行われた場合に発生する。
【0036】
図3に示すように、ステップS110では、プリンタアプリケーション170は、mDNS/SD(multicast Domain Name System/Service Discovery)プロトコルにより追加されたプリンタ200EをmDNS/SDプロトコルによりCUPS160に通知する。CUPS160はこれによりプリンタアプリケーション170によって生成されたプリンタ200Eに対応する仮想プリンタを自身に登録する。その登録に必要なデータはmDNS/SDにより提供される。つまりCUPS160の接続先はプリンタ200Eではなくプリンタアプリケーション170となる。また個々の仮想プリンタはURIにて識別される。
【0037】
ステップS120では、プリンタアプリケーション170内にプリントキューを作成する。このプリントキューはURIで指定された仮想プリンタと実プリンタをつなぐものである。
【0038】
ステップS130では、プリンタアプリケーション170は、上記ステップS110でmDNSを用いて検出されたプリンタ200を管理PC300の管理ソフト301に通知する準備をする。管理ソフト301からmDNS/SDで問い合わせがあった際に、その追加又は削除されたプリンタ情報が反映された情報が返されることになる。その後、図3のサブルーチンを終了し、図2のステップS30に戻る。
【0039】
プリンタアプリケーション170は、発生したイベントが指定時間になったことである場合には、ステップS200の指定時間ごとの処理を実行する。またプリンタアプリケーション170は、発生したイベントが管理ソフト301からのデータ収集命令の受信である場合には、ステップS500の管理ソフトからのデータ収集命令に対する処理を実行する。ステップS200とステップS500の処理内容は共通である。図4に、ステップS200及びステップS500の詳細内容の一例を示す。なお、発生したイベントが管理ソフト301からのデータ収集命令の受信である場合には、上記ステップS35のYES判定においてプリンタアプリケーション170は管理PC300からのデータ収集命令を受け付ける。データ収集命令が情報送信要求の一例であり、上記ステップS35のYES判定が情報要求受付処理の一例である。
【0040】
図4に示すように、ステップS210では、プリンタアプリケーション170は、接続されたプリンタ200の各々に情報収集PJL(Printer Job Language)を送信する。情報収集PJLは、例えばトナー残量、用紙残量等の各プリンタ200に備えられた消耗品の消耗状況に係わる消耗データの送信を要求するコマンドである。なお、プリンタ200がインクジェットプリンタである場合には消耗データにインク残量が含まれてもよい。情報収集PJLがデータ送信要求の一例であり、当該ステップS210がデータ要求出力処理の一例である。
【0041】
ステップS220では、プリンタアプリケーション170は、上記情報収集PJLに応じて接続されたプリンタ200の各々から送信された応答情報を受信し、各プリンタ200の消耗データを取得する。当該ステップS220が消耗データ取得処理の一例である。
【0042】
ステップS230では、プリンタアプリケーション170は、上記ステップS35で受け付けたデータ収集命令に応じて、上記ステップS220で取得した各プリンタ200の消耗データを管理PC300の管理ソフト301へ向けて送信する。その後、図4のサブルーチンを終了し、図2のステップS30に戻る。当該ステップS230が消耗品情報出力処理の一例である。
【0043】
なお、上記ステップS210~ステップS230は、指定時間ごと、あるいは、管理PC300からのデータ収集命令を受け付けたタイミングで実行される。指定時間ごとは、予め定められた所定時刻ごとでもよいし、あるいは、予め定められた所定周期ごとでもよい。
【0044】
プリンタアプリケーション170は、発生したイベントがCUPS160、あるいは、CUPS160からプリンタ200に対する印刷指示である場合には、ステップS300の印刷指示に対する処理を実行する。ステップS300では、プリンタアプリケーション170は、管理PC300の管理ソフト301に印字開始通知を送信すると共に、対応するプリンタ200に印刷データを送信して印刷を実行させる。
【0045】
プリンタアプリケーション170は、発生したイベントが印字終了である場合には、ステップS400の印字終了通知に対する処理を実行する。ステップS400では、プリンタアプリケーション170は、管理PC300の管理ソフト301に印字終了通知を送信する。
【0046】
プリンタアプリケーション170は、発生したイベントが管理ソフト301からのステータス収集命令を受け取ったことにより発生したものである場合には、ステップS600の管理ソフトからのステータス収集命令に対する処理を実行する。図5に、ステップS600の詳細内容の一例を示す。ステータス収集命令が情報収集信号の一例であり、上記ステップS35のYES判定が情報収集信号取得処理の一例である。
【0047】
図5に示すように、ステップS610では、プリンタアプリケーション170は、ステータス収集命令に応じてステータス情報を集計し、当該集計情報を管理PC300の管理ソフト301に送信する。集計されるステータス情報には、前述のステップS15~ステップS25の繰り返しにより更新された最新のUSTATUSによるステータス情報及びINFO STATUSによるステータス情報が含まれる。その後、図5のサブルーチンを終了し、図2のステップS30に戻る。当該ステップS610が情報集計処理及びステータス情報送信処理の一例である。
【0048】
プリンタアプリケーション170は、発生したイベントが管理PC300からのPause又はResumeボタン通知である場合には、ステップS700の管理PCからのPause/Resumeボタン通知に対する処理を実行する。図6に、ステップS700の詳細内容の一例を示す。なお、Pauseボタンは管理PC300の管理ソフト画面において管理者Cが特定のプリンタ200における印刷の実行を一時停止させる場合に操作されるボタンであり、Resumeボタンは一時停止後に印刷を再開させる場合に操作されるボタンである。
【0049】
図6に示すように、ステップS710では、プリンタアプリケーション170は、CUPS160に対してPause又はResumeを指示する。その後、図6のサブルーチンを終了し、図2のステップS30に戻る。
【0050】
プリンタアプリケーション170は、発生したイベントが管理PC300からのクリーニングボタン通知である場合には、ステップS800の管理PCでクリーニングボタンに対する処理を実行する。図7に、ステップS800の詳細内容の一例を示す。
【0051】
図7に示すように、ステップS810では、プリンタアプリケーション170は、操作されたクリーニングボタンに対応するプリンタ200にクリーニングPJLを送信する。クリーニングPJLは、例えばレーザプリンタであるプリンタ200にトナーのクリーニングを要求するコマンドである。なお、プリンタ200がインクジェットプリンタである場合には印字ヘッドのノズルのクリーニングを要求してもよい。その後、図7のサブルーチンを終了し、図2のステップS30に戻る。
【0052】
なお、図2図7のフローチャートでは図示を省略したが、プリンタアプリケーション170は、上記ステップS10~ステップS25で取得されるステータス情報の一部である基本ステータスを、CUPS160へ向けて出力する。基本ステータスには、例えば用紙切れ、ジャム等の基本的なエラーの情報等が含まれる。当該処理が基本ステータス出力処理の一例である。
【0053】
<ステータス情報の集計、管理ソフト画面>
管理PC300の管理ソフト301の管理集計部304は、プリンタアプリケーション170A,170B及び第4プリンタ200Dから取得したステータス情報をプリンタごとに集計する。図8に、上記管理集計部304によるステータス情報の集計手法の一例を示す。図8では、プリンタアプリケーション170からステータス情報を取得し集計する場合について説明する。
【0054】
図8に示すように、プリンタアプリケーション170は、印刷ジョブごとにステップS1~ステップS9を実行する。ステップS1では、プリンタアプリケーション170は、管理ソフト301に印字開始通知を送信する。ステップS2では、プリンタアプリケーション170は、印刷データを受信する。ステップS3では、プリンタアプリケーション170は、受信した印刷データをスプールする。ステップS4では、プリンタアプリケーション170は、印刷を実行するプリンタ200とのコネクションを確立する。ステップS5では、プリンタアプリケーション170は、プリンタ200が対応可能な印刷データに応じて、印刷機能の制限や拡張の有無に応じて、印刷データの変換を行う。受信した印刷データがプリンタ200の対応可能な印刷データであり、かつ印刷機能の拡張や制限がない場合にはステップS5は実行しなくてもよい。ステップS6では、プリンタアプリケーション170は、印刷を実行するプリンタ200に、変換された印刷データ或いは変換の必要のなかった印刷データを送信する。ステップS7では、プリンタアプリケーション170は、印刷を実行したプリンタ200から印字終了通知を受信するまで待機する。ステップS8では、プリンタアプリケーション170は、管理ソフト301に印字終了通知を送信する。ステップS9では、プリンタアプリケーション170は、印刷を実行したプリンタ200とのコネクションを終了する。
【0055】
図8は、例えばプリンタ200が3つの印刷ジョブ1~印刷ジョブ3を所定時間ずつずれたタイミングで受信した場合の例である。印刷ジョブ2での処理手順は印刷ジョブ1と同様であるが、印刷ジョブ3では例えばステップS6で送信エラーが発生したものとする。印刷ジョブ1のステップS1が開始されるまでの間は、プリンタ200のステータスはREADYとなる。印刷ジョブ1のステップS1が実行されてから印刷ジョブ2のステップS1が実行されるまでの間は、プリンタ200のステータスは印字中且つ待機0となる。なお、待機の数値は印字終了通知がされるまで待機中の印字ジョブの数である。印刷ジョブ2のステップS1が実行されてから印刷ジョブ3のステップS1が実行されるまでの間は、プリンタ200のステータスは印字中且つ待機1となる。印刷ジョブ3のステップS1が実行されてから印刷ジョブ1のステップS8が実行されるまでの間は、プリンタ200のステータスは印字中且つ待機2となる。印刷ジョブ1のステップS8が実行されてから印刷ジョブ2のステップS8が実行されるまでの間は、プリンタ200のステータスは印字中且つ待機1となる。印刷ジョブ2のステップS8が実行されてから印刷ジョブ3のステップS8が実行されるまでの間は、プリンタ200のステータスは印字中且つ待機0となる。なお、この期間において印刷ジョブ3のステップS6でエラーが発生している間は、プリンタ200のステータスはエラーとなる。印刷ジョブ3のステップS8が実行された後は、プリンタ200のステータスはREADYとなる。
【0056】
管理ソフト301は、以上のようにして各プリンタ200A~200Dについて集計したステータス情報等の一覧を表示部340(後述の図15参照)に表示させる。図9に、管理ソフト301により表示される管理ソフト画面(ステータスモニタ画面)の一例を示す。
【0057】
図9に示すように、管理ソフト画面には、第1プリンタ200A、第2プリンタ200B、第3プリンタ200C、及び第4プリンタ200Dのそれぞれに、上記集計されたステータス情報309と、消耗品の消耗状況に係わる消耗データ306と、が表示されている。ステータス情報309は、READY又は印字中(Printing)を表すステータスと、待機中の印字ジョブの数を表す待機ジョブと、を含む。消耗データ306は、例えばゲージで表されたトナー残量と用紙残量を含む。また管理ソフト画面には、第1プリンタ200A、第2プリンタ200B、第3プリンタ200C、及び第4プリンタ200Dのそれぞれに、Pause(又はResume)ボタン307及びクリーニングボタン308が表示されている。Pause(又はResume)ボタン307は、操作される度にPauseとResumeの表示が切り替わる。管理者Cは、いずれかのプリンタ200のPauseボタン307を操作することで、対応するプリンタ200における印刷を一時停止させることができる。管理者Cは、一時停止されたプリンタ200のResumeボタン307を操作することで、一時停止されたプリンタ200の印刷を再開させることができる。管理者Cは、いずれかのプリンタ200のクリーニングボタン308を操作することで、対応するプリンタ200のトナーのクリーニングを実行することができる。
【0058】
なお、図9に示す管理ソフト画面は、管理PC300以外にも、例えば第1クライアントPC100A又は第2クライアントPC100Bの表示部140(後述の図14参照)に表示されてもよい。
【0059】
また、本実施形態では各クライアントPC100はローカルプリンタ(第1クライアントPC100Aにおけるプリンタ200A,200B)の情報を管理PC300のHTTPサーバ303を介してステータス情報を知るようになっているが、プリンタアプリケーション170は内部に個別にHTTPサーバを内包してそのHTTPサーバにてローカルプリンタの情報を得ることが可能なようにしてもよい。その場合、HTTPサーバは自身の管理するステップS25で記憶された情報をHTTPプロトコルにて公開し、クライアントPC100は自身をあらわすIPアドレス(127.0.0.1)にてステータスを表示できる。
【0060】
また管理PC300のHTTPサーバ303は管理者Cのみに特定作業を可能とするように認証をおこなってもよい。また、第1能力情報の一例としてアトリビュートをあげたが、PPDなどの設定ファイルによる情報であってもよい。
【0061】
<プリンタアプリケーションによるバックエンドに対するアクセス権の占有>
本実施形態では、プリンタアプリケーション170が、プリンタ200との間でUSBケーブルを介した通信を行うためのバックエンド180に対するアクセス権限を占有して、印刷を実行するための通信とステータスモニタのための通信を実行する。これにより、印刷のための処理とステータスモニタのための処理の安定的な両立を実現することができる。上記内容について図10及び図11を用いて説明する。なお、図10及び図11に示すステータスモニタとは、ステータスモニタの実行に必要な処理であり、例えば図2のステップS10,S20及び図4のステップS210,S220に相当する。
【0062】
まず本実施形態との比較のために、図10にプリンタアプリケーション170を有しない場合のバックエンド180に対する使用権の一例を示す。使用権はアクセス権の一例である。例えば、クライアントPC100とプリンタ200とがUSBケーブルにより接続され、且つ、CUPS160を搭載するOSが例えばLinux(登録商標)等である場合には、プリンタ200との間で通信を行うためのバックエンド180に対し、単体のアプリケーションしか使用権限を取得できない。この場合において、図10に示すようにCUPS160やステータスモニタがプリンタアプリケーション170を介さずにバックエンド180にアクセスする場合、印刷実行中はCUPS160がバックエンド180に対する使用権を占有する。このため、ステータスモニタはバックエンド180にアクセスすることができない。一方、ステータスモニタは、印刷実行中でない場合にはバックエンド180にアクセスすることができる。したがって、図10に示す構成では印刷のための処理とステータスモニタのための処理を両立することができない。
【0063】
図11に、本実施形態におけるバックエンド180に対するアクセス権の一例を示す。本実施形態では、図11に示すように、プリンタアプリケーション170がCUPS160及びステータスモニタとバックエンド180との間で印刷処理及びステータスモニタ処理の仲介を行う。このため、印刷実行中であるか否かにかかわらず、プリンタアプリケーション170がバックエンド180に対する使用権を占有する。このため、印刷を実行するためのプリンタ200との通信とステータスモニタのためのプリンタ200との通信の一方が他方を制限したりするおそれがない。したがって、印刷のための処理とステータスモニタの安定的な両立を実現することができる。
【0064】
図12に、プリンタアプリケーション170による使用権取得に係わる処理手順の一例を示す。ステップS910では、プリンタアプリケーション170は、USBディスクリプタを取得する。USBディスクリプタは、USB機器の仕様の詳細を表すデータ列である。
【0065】
ステップS920では、プリンタアプリケーション170は、上記ステップS910で取得したUSBディスクリプタに記述されたインタフェースと送信エンドポイント及び受信エンドポイントを取得する。
【0066】
ステップS930では、プリンタアプリケーション170は、上記ステップS920で取得したインタフェースの使用権の取得をバックエンド180に要求する。
【0067】
ステップS940では、プリンタアプリケーション170は、インタフェースの使用権を取得できたか否かを判定する。プリンタアプリケーション170は、使用権を取得できない場合には(ステップS940:No)、上記ステップS930に戻る。一方、プリンタアプリケーション170は、使用権を取得できた場合には(ステップS940:Yes)、次のステップS950に移行する。すなわち、当該ステップS940のYES判定では、プリンタアプリケーション170はバックエンド180に対するアクセス権限を取得する。当該ステップS940のYES判定がアクセス権限取得処理の一例である。
【0068】
ステップS950では、プリンタアプリケーション170は、処理要求が受信されるまで待機する。
【0069】
ステップS960では、プリンタアプリケーション170は、受信した処理要求が送信要求であるか否かを判定する。プリンタアプリケーション170は、受信した処理要求が送信要求である場合には(ステップS960:Yes)、次のステップS970に移行する。
【0070】
ステップS970では、プリンタアプリケーション170は、上記ステップS920で取得した送信エンドポイントに対して、上記ステップS940で取得した使用権に基づき、各種のデータをバックエンド180を介して送信する。各種のデータには、例えば前述のステップS10で送信するUSTATUS DEVICE ON及びINFO STATUSコマンド、前述のステップS210で送信する情報収集PJL、前述のステップS810で送信するクリーニングPJL、印刷データ、等が含まれる。その後、ステップS990に移行する。
【0071】
一方、上記ステップS960において、プリンタアプリケーション170は、受信した処理要求が受信要求である場合には(ステップS960:No)、次のステップS980に移行する。
【0072】
ステップS980では、プリンタアプリケーション170は、上記ステップS920で取得した受信エンドポイントから、上記ステップS940で取得した使用権に基づき、各種のデータをバックエンド180を介して受信する。各種のデータには、例えば前述のステップS20で取得したUSTATUSによるステータス情報及びINFO STATUSによるステータス情報、ステップS220で取得する応答、等が含まれる。その後、ステップS990に移行する。
【0073】
ステップS990では、プリンタアプリケーション170は、処理を終了するか否かを判定する。プリンタアプリケーション170は、処理を終了しない場合には(ステップS990:No)、上記ステップS950に戻る。一方、プリンタアプリケーション170は、処理を終了する場合には(ステップS990:Yes)、本フローを終了する。
【0074】
<管理ソフトによるステータスモニタに係わる処理>
図13に、管理PC300の管理ソフト301によるステータスモニタに係わる処理手順の一例を示す。
【0075】
ステップS1005では、管理ソフト301は、PCブラウズスレッドを開始する。PCブラウズスレッドは、印刷システム1のプリンタ200Dおよびプリンタアプリケーション170で生成された仮想プリンタの検索を実行するためのスレッドである。ネットワークプリンタ200Dは、プリンタ自身とのmDNS/SDプロトコルによる通信で検索が行われる。またプリンタ200A~プリンタ200Cに対応するプリンタアプリケーション170による仮想プリンタは、プリンタアプリケーション170とのmDNS/SDによる通信によりなされる。
【0076】
ステップS1010では、管理ソフト301は、クライアントPC100それぞれのプリンタアプリケーション170を検索し、当該プリンタアプリケーション170からmDNS情報を取得する。mDNS情報には、プリンタアプリケーション170の各々においてmDNSを用いて検出されたプリンタ200の情報が含まれる。当該ステップS1010が検索処理の一例である。この情報は図3のステップS130によりプリンタの増減が反映されたものとなる。
【0077】
なお、クライアントPC100のプリンタアプリケーション170は、上記ステップS1010において管理ソフト301により実行される検索アクセスを受け付ける。当該プリンタアプリケーション170による処理が検索アクセス受付処理の一例である。
【0078】
ステップS1012では、管理ソフト301は、上記ステップS1010で取得したmDNS情報に基づいて、プリンタアプリケーション170ごとに対応するプリンタ200およびネットワークプリンタ200Dの情報を取得する。なお、以下説明の簡略化のため、本発明と関係ないネットワークプリンタ200Dの処理は省略して説明する。ただし実際にはプリンタ200Dに関しても同列に管理される。
【0079】
ステップS1014では、管理ソフト301は、プリンタ200に増減があるか否かを判定する。管理ソフト301は、プリンタ200に増減がない場合には(ステップS1014:No)、上記ステップS1010に戻る。一方、管理ソフト301は、プリンタ200に増減がある場合には(ステップS1014:Yes)、次のステップS1015に移行する。
【0080】
ステップS1015では、管理ソフト301は、上記ステップS1012で取得したプリンタ200の情報に基づき、プリンタ200のリストを作成又は既に作成されているリストを更新する。このプリンタリストには、そのプリンタが仮想プリンタの場合には生成したプリンタアプリケーション170の情報と関連付けて記憶されている。当該ステップS1015がリスト作成処理及びリスト更新処理の一例である。その後、上記ステップS1010に戻る。
【0081】
管理ソフト301は、上記ステップS1010~ステップS1015を繰り返すことで、印刷システム1のプリンタリストを最新の状態に更新し続ける。管理ソフト301は、上記ステップS1010~ステップS1015を繰り返し実行するのと並行して、ステップS1020以降の処理を実行する。
【0082】
ステップS1020では、管理ソフト301は、プリンタアプリケーション170ごとに対応するプリンタリストを取得する。このプリンタリストは前述のステップS1015で適宜更新されたものである。
【0083】
ステップS1025では、管理ソフト301は、上記ステップS1020で取得したプリンタリストに含まれる各プリンタ200のプリンタ情報を対応するプリンタアプリケーション170から取得する。プリンタ情報には、前述のステータス情報や消耗データ等が含まれる。この処理は、プリンタアプリケーション170にイベントを通知して図2のステップS600を行わせることにより実行される。
【0084】
ステップS1030では、管理ソフト301は、管理ソフト画面(前述の図9参照)を表示部340(後述の図15参照)に表示させる。
【0085】
ステップS1035では、管理ソフト301は、イベントを受信するまで待機する。イベントは、例えばプリンタリストの更新、所定時間の経過、所定時刻への到達、Pause(又はResume)ボタン307の操作、クリーニングボタン308の操作等である。
【0086】
ステップS1040では、管理ソフト301は、前述のステップS1015によりプリンタリストが更新されたか否かを判定する。管理ソフト301は、プリンタリストが更新された場合には(ステップS1040:Yes)、上記ステップS1020に戻る。一方、管理ソフト301は、プリンタリストが更新されていない場合には(ステップS1040:No)、次のステップS1045に移行する。
【0087】
ステップS1045では、管理ソフト301は、前回のステップS1050の実行から所定時間(例えば10秒)が経過したか否かを判定する。管理ソフト301は、所定時間が経過した場合には(ステップS1045:Yes)、次のステップS1050に移行する。
【0088】
ステップS1050では、管理ソフト301は、全てのプリンタ200のステータス情報を、上記ステップS1025で取得したステータス情報に更新する。その後、上記ステップS1020に戻る。管理ソフト301が、所定時間が経過する度にステップS1050及びステップS1020~ステップS1030を繰り返すことにより、管理ソフト画面のステータス情報が所定時間(例えば10秒)ごとに最新の状態に更新される。この処理は、プリンタアプリケーション170にイベントを通知して図2のステップS600を行わせることにより実行される。
【0089】
一方、上記ステップS1045において、管理ソフト301は、所定時間が経過していない場合には(ステップS1045:No)、次のステップS1055に移行する。
【0090】
ステップS1055では、管理ソフト301は、予め定められた所定時刻に到達したか否かを判定する。管理ソフト301は、所定時刻に到達した場合には(ステップS1055:Yes)、次のステップS1060に移行する。
【0091】
ステップS1060では、管理ソフト301は、上記ステップS1010で検索できた各プリンタアプリケーション170に向けて、対応する各プリンタ200に備えられた消耗品の消耗状況に係わる消耗データを含む消耗品情報の送信を要求する情報送信要求を出力する。具体的には、管理ソフト301は、上記ステップS1015で作成したプリンタリストに含まれるプリンタ200に対応する各プリンタアプリケーション170に向けて上記情報送信要求を出力する。管理ソフト301は、情報送信要求に応じて各プリンタアプリケーション170から出力された消耗品情報を取得する。これにより、管理ソフト301は、印刷システム1が有する全てのプリンタ200のAuditor情報を取得する。Auditor情報は、プリンタ200に備えられた消耗品の消耗状況に係わる消耗データを含む消耗品情報である。当該ステップS1060が情報要求出力処理及び消耗品情報取得処理の一例である。この処理は、プリンタアプリケーション170にイベントを通知して図2のステップS500を行わせることにより実行される。
【0092】
ステップS1065では、管理ソフト301は、上記ステップS1060で取得されたAuditor情報に基づいて消耗品の消耗状況をプリンタ200ごとに評価する。当該ステップS1065が消耗状況評価処理の一例である。
【0093】
ステップS1070では、管理ソフト301は、上記ステップS1065における評価結果に応じて、消耗品の消耗状況に関する何らかのアクションが必要か否かを判定する。管理ソフト301は、アクションが不要であると判定した場合には(ステップS1070:No)、上記ステップS1020に戻る。一方、管理ソフト301は、アクションが必要であると判定した場合には(ステップS1070:Yes)、次のステップS1075に移行する。
【0094】
ステップS1075では、管理ソフト301は、上記ステップS1065での評価結果に応じて対応するアクションを実行する。アクションは、例えばユーザに対する警告や消耗品の自動発注等である。当該ステップS1075が対応アクション処理の一例である。その後、上記ステップS1020に戻る。
【0095】
なお、上記ステップS1055により、上記ステップS1060~ステップS1075は予め定められた所定時刻に実行されるが、予め定められた所定周期ごとに実行させてもよい。
【0096】
一方、上記ステップS1055において、管理ソフト301は、所定時刻に到達していない場合には(ステップS1055:No)、次のステップS1080に移行する。
【0097】
ステップS1080では、管理ソフト301は、Pause(又はResume)ボタン307が操作されたか否かを判定する。管理ソフト301は、Pause(又はResume)ボタン307が操作された場合には(ステップS1080:Yes)、次のステップS1085に移行する。
【0098】
ステップS1085では、管理ソフト301は、対象のプリンタ200に対してPause又はResumeボタン307の操作に応じて印刷の一時停止又は再開処理を実行する。その後、上記ステップS1020に戻る。この処理は、プリンタアプリケーション170にイベントを通知して図2のステップS700を行わせることにより実行される。
【0099】
一方、上記ステップS1080において、管理ソフト301は、Pause(又はResume)ボタン307が操作されていない場合には(ステップS1080:No)、次のステップS1090に移行する。
【0100】
ステップS1090では、管理ソフト301は、クリーニングボタン308が操作されたか否かを判定する。管理ソフト301は、クリーニングボタン308が操作された場合には(ステップS1090:Yes)、次のステップS1095に移行する。
【0101】
ステップS1095では、管理ソフト301は、対象のプリンタ200に対してトナーのクリーニング処理を実行する。この処理は、プリンタアプリケーション170にイベントを通知して図2のステップS800を行わせることにより実行される。その後、上記ステップS1020に戻る。
【0102】
一方、上記ステップS1090において、管理ソフト301は、クリーニングボタン308が操作されていない場合には(ステップS1090:No)、上記ステップS1020に戻る。
【0103】
<実施形態の効果>
本実施形態のプリンタアプリケーション170は、クライアントPC100のプロセッサ110によって実行可能であり、クライアントPC100と通信可能なプリンタ200に対応可能である。クライアントPC100にはCUPS160を有するオペレーティングシステムが搭載されており、情報処理プログラムはCUPS160に仮想プリンタとして登録可能である。プリンタアプリケーション170は、CUPS160に仮想プリンタとして登録されたとき、クライアントPC100のプロセッサ110に対し、能力情報出力処理と、印刷データ送信処理と、ステップS10と、ステップS20と、を実行させる。能力情報出力処理では、プリンタ200の能力を表すアトリビュートが取得され、取得されたアトリビュートに基づき変換されたアトリビュートがCUPS160へ向けて出力される。印刷データ送信処理では、能力情報出力処理で出力した変換後のアトリビュートに対応したCUPS160からの印刷データが取得され、当該印刷データに基づき変換された印刷データがプリンタ200へ向けて送信される。ステップS10では、プリンタ200のステータスを問い合わせるためのUSTATUS DEVICE ON及びINFO STATUSコマンドがプリンタ200に向けて出力される。ステップS20では、USTATUS DEVICE ON及びINFO STATUSコマンドに応じたプリンタ200からのステータス情報が取得される。
【0104】
本実施形態によれば、CUPS160に登録された仮想プリンタとしてのプリンタアプリケーション170がプリンタ200に対してステータスを問い合わせてステータス情報を取得する。プリンタアプリケーション170がCUPS160とプリンタ200との間で印刷処理及びステータスモニタ処理の仲介を行うので、印刷を実行するためのプリンタ200との通信とステータスモニタのためのプリンタ200との通信の一方が他方を制限したりするおそれがない。本実施形態によれば、印刷のための処理とステータスモニタの安定的な両立を実現することができる。
【0105】
また、本実施形態では特に、ステータス情報は、プリンタ200のステータスが変更されたときに取得可能なUSTATUSによるステータス変更データを含む。本実施形態によれば、ステータスに変更があったときにステータス変更データを取得するので、ステータス情報を常時取得して監視する場合に比べて処理負荷を軽減できる。
【0106】
また、本実施形態では特に、プリンタ200からステータス情報を取得するステップS20が所定周期で繰り返される。本実施形態によれば、ステータス情報を常に新しい情報に更新できる。
【0107】
また、本実施形態では特に、プリンタアプリケーション170は、プロセッサ110に対し、所定周期で繰り返されるステップS20で取得されるステータス情報を集計するステップS610を実行させる。本実施形態によれば、所定周期で取得されるステータス情報の集計結果を外部に送信したり、表示させたりすることができる。
【0108】
また、本実施形態では特に、プリンタアプリケーション170は、プロセッサ110に対し、ステップS35と、ステップS610と、を実行させる。ステップS35では、プリンタアプリケーション170に対し通信可能に構成された管理PC300からのステータス収集命令が取得される。ステップS610では、ステップS35で取得されたステータス収集命令に応じて、ステップS20で取得したステータス情報が管理PC300へ向けて出力される。本実施形態によれば、取得したステータス情報を管理PC300の要求に応じて送信し、管理PC300において集計や表示等をさせることができる。
【0109】
また、本実施形態では特に、プリンタアプリケーション170は、プロセッサ110に対し、ステップS20で取得されるステータス情報の一部である基本ステータスをCUPS160へ向けて出力する。CUPS160は実際のプリンタ200を認識していないので、実際のプリンタ200から直接制御に必要な基本ステータス情報を取得することができない。本実施形態によれば、基本ステータス情報をCUPS160へ向けて出力することで、CUPS160によるドライバレス印刷を実行できる。
【0110】
また、本実施形態では特に、クライアントPC100とプリンタ200とがUSBケーブルにより接続される。プリンタアプリケーション170は、プロセッサ110に対し、プリンタ200との間でUSBケーブルを介した通信を行うためのバックエンド180に対してアクセスするアクセス権限を取得するステップS940を実行させる。プリンタアプリケーション170は、ステップS10では、ステップS940で取得されたアクセス権限に基づき、バックエンド180を介してUSTATUS DEVICE ON及びINFO STATUSをプリンタ200へ向けて出力する。ステップS20では、ステップS940で取得されたアクセス権限に基づき、バックエンド180を介してプリンタ200からのステータス情報を取得する。本実施形態によれば、プリンタアプリケーション170がバックエンド180に対するアクセス権限を占有してUSTATUS DEVICE ON及びINFO STATUSの出力及びステータス情報の取得を実行するので、印刷の実行の有無に関わらずステータスモニタを安定して実行できる。
【0111】
<変形例>
なお、本発明は、上記実施形態に限られるものではなく、その趣旨及び技術的思想を逸脱しない範囲内で種々の変形が可能である。
【0112】
上記実施形態では、プリンタアプリケーション170がステップS10~ステップS25により取得したステータス情報をステップS610において管理PC300に送信するようにしたが、これに加えて、例えばクライアントPC100において表示してもよい。例えば、プリンタアプリケーション170がステップS10~ステップS25で取得されたステータス情報を表示するためのステータス表示信号をブラウザ104A,104Bに出力し、ユーザA又はユーザBに提供してもよい。この場合にプリンタアプリケーション170が実行する上記処理がステータス表示信号出力処理の一例である。本変形例によれば、ステップS10~ステップS25により取得されるステータス情報をクライアントPC100のユーザに提供することができる。
【0113】
また、図2図8及び図12図13に示すフローチャートは本発明を上記フローに示す手順に限定するものではなく、発明の趣旨及び技術的思想を逸脱しない範囲内で手順の追加・削除又は順番の変更等をしてもよい。
【0114】
また、以上既に述べた以外にも、上記実施形態や各変形例による手法を適宜組み合わせて利用しても良い。
【0115】
その他、一々例示はしないが、本発明は、その趣旨を逸脱しない範囲内において、種々の変更が加えられて実施されるものである。
【0116】
<クライアントPC、プリンタ、管理PCのハードウェア構成>
図14を用いて、クライアントPC100及びプリンタ200のハードウェア構成の一例を説明する。なお、第1クライアントPC100Aと第2クライアントPC100Bのハードウェア構成を共通としてもよい。また、第1プリンタ200A、第2プリンタ200B、第3プリンタ200C、及び第4プリンタ200Dのハードウェア構成を共通としてもよい。
【0117】
<クライアントPC>
図14に示すように、クライアントPC100は、プロセッサ110と、記憶装置115と、表示部140と、操作部150と、通信インタフェース190と、を有している。これらプロセッサ110、記憶装置115、表示部140、操作部150、及び通信インタフェース190は、バス105を介して互いにデータ送受信可能に接続されている。
【0118】
記憶装置115は、揮発性記憶装置120と、不揮発性記憶装置130と、を備えている。揮発性記憶装置120は、例えば、DRAMであり、処理対象となる各種のプログラムやデータを記憶する。不揮発性記憶装置130は、例えば、ハードディスクドライブ、あるいはソリッドステートドライブであり、プログラム記憶領域131と、データ記憶領域132と、を有している。
【0119】
プログラム記憶領域131には各種プログラムが格納されている。各種プログラムには、前述の図2図7及び図12のフローチャート等に基づく情報処理プログラム等が含まれる。データ記憶領域132には、各種プログラムの実行に必要なデータ等が記憶されている。
【0120】
プロセッサ110は、データ処理を行う装置、例えばCPUであり、プログラム記憶領域131に格納された各種プログラムを実行する。プロセッサ110は、ネットワークNTに接続された管理PC300及びプリンタ200等に対するデータ通信を含む各種の処理を行う。プロセッサ110と、上記プログラム記憶領域131に記憶された情報処理プログラムとが、第1制御部の一例である。
【0121】
表示部140は、例えば液晶ディスプレイ等であり、種々の情報を表示可能である。操作部150は、例えばマウスやキーボード等であり、ユーザによる操作を受け付ける。ユーザは、操作部150を操作することによって、種々の指示をクライアントPC100に入力可能である。
【0122】
通信インタフェース190は、他の装置と通信するための有線又は無線のネットワークインタフェースであり、ネットワークNTに接続されている。
【0123】
なお、上記記憶装置115は上述した装置要素での構成に限られず、例えば、RAM、ROM、EEPROM、HDD、クライアントPC100に着脱されるUSBメモリ等の可搬記録媒体、プロセッサ110が備えるバッファ等、或いはそれらの組み合わせによって構成されてもよい。
なお、記憶装置115は、コンピュータが読み取り可能なストレージ媒体であってもよい。コンピュータが読み取り可能なストレージ媒体とは、non-transitoryな媒体である。non-transitoryな媒体には、上記の例の他に、CD-ROM、DVD-ROM等の記録媒体も含まれる。また、non-transitoryな媒体は、tangibleな媒体でもある。後述するプリンタ200の記憶装置215及び管理PC300の記憶装置315についても同様である。
【0124】
<プリンタ>
図14に示すように、プリンタ200は、プロセッサ210と、記憶装置215と、表示部240と、操作部250と、通信インタフェース270と、印刷部290と、を有している。これらプロセッサ210、記憶装置215、表示部240、操作部250、通信インタフェース270、及び印刷部290は、バス205を介して互いにデータ送受信可能に接続されている。
【0125】
記憶装置215は、揮発性記憶装置220と、不揮発性記憶装置230と、を備えている。揮発性記憶装置220は、例えば、DRAMであり、印刷対象の画像データを記憶する画像データ記憶領域222を備えている。不揮発性記憶装置230は、例えばNVRAM、フラッシュメモリ等であり、プログラム記憶領域231と、データ記憶領域232と、を備えている。プログラム記憶領域231には各種プログラムが格納されている。各種プログラムには、印刷処理プログラムなどのファームウェア等が含まれる。データ記憶領域232には、上記各種プログラムを実行するための各種データ等が記憶されている。
【0126】
プロセッサ210は、データ処理を行う装置であり、例えば、CPUである。プロセッサ210は、プログラム記憶領域231に格納された各種プログラムを実行する。
【0127】
表示部240は、例えば、液晶ディスプレイであり、種々の情報を表示可能である。操作部250は、ユーザによる操作を受け付ける装置である。ユーザは、操作部250を操作することによって、種々の指示をプリンタ200に入力可能である。通信インタフェース270は、他の装置と通信するための有線または無線のネットワークインタフェースであり、ネットワークNTに接続されている。
【0128】
印刷部290は、図示しない搬送機構により搬送されるシートに画像を印刷する。印刷部290は、クライアントPC100から送信された印刷データ、若しくは、操作部250での操作に基づき自ら生成した印刷ジョブに基づいて、シートに画像を印刷する。
【0129】
<管理PC>
図15に示すように、管理PC300は、プロセッサ310と、記憶装置315と、表示部340と、操作部350と、通信インタフェース390と、を有している。これらプロセッサ310、記憶装置315、表示部340、操作部350、及び通信インタフェース390は、バス305を介して互いにデータ送受信可能に接続されている。
【0130】
記憶装置315は、揮発性記憶装置320と、不揮発性記憶装置330と、を備えている。揮発性記憶装置320は、例えば、DRAMであり、処理対象となる各種のプログラムやデータを記憶する。不揮発性記憶装置330は、例えば、ハードディスクドライブ、あるいはソリッドステートドライブであり、プログラム記憶領域331と、データ記憶領域332と、を有している。
【0131】
プログラム記憶領域331には各種プログラムが格納されている。各種プログラムには、前述の図13のフローチャート等に基づく情報処理プログラム等が含まれる。データ記憶領域332には、各種プログラムの実行に必要なデータ等が記憶されている。
【0132】
プロセッサ310は、データ処理を行う装置、例えばCPUであり、プログラム記憶領域331に格納された各種プログラムを実行する。プロセッサ310は、ネットワークNTに接続されたクライアントPC100等に対するデータ通信を含む各種の処理を行う。プロセッサ310と、上記プログラム記憶領域331に記憶された情報処理プログラムとが、制御部及び第2制御部の一例である。
【0133】
表示部340は、例えば液晶ディスプレイ等であり、種々の情報を表示可能である。操作部350は、例えばマウスやキーボード等であり、ユーザによる操作を受け付ける。ユーザは、操作部350を操作することによって、種々の指示を管理PC300に入力可能である。
【0134】
通信インタフェース390は、他の装置と通信するための有線又は無線のネットワークインタフェースであり、ネットワークNTに接続されている。
【符号の説明】
【0135】
1 印刷システム(情報処理システムの一例)
100A 第1クライアントPC(情報処理装置、第1情報処理装置の一例)
100B 第2クライアントPC(情報処理装置、第1情報処理装置の一例)
110 プロセッサ(演算部の一例)
160A CUPS(OS標準印刷ソフトウェアの一例)
160B CUPS(OS標準印刷ソフトウェアの一例)
170A プリンタアプリケーション(情報処理プログラムの一例)
170B プリンタアプリケーション(情報処理プログラムの一例)
180 バックエンド
200 プリンタ(印刷装置の一例)
300 管理PC(外部装置、第2情報処理装置の一例)
310 プロセッサ(演算部の一例)
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15