(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024143257
(43)【公開日】2024-10-11
(54)【発明の名称】情報処理プログラム
(51)【国際特許分類】
G06F 3/12 20060101AFI20241003BHJP
B41J 29/38 20060101ALI20241003BHJP
H04N 1/00 20060101ALI20241003BHJP
【FI】
G06F3/12 367
G06F3/12 303
G06F3/12 347
G06F3/12 374
G06F3/12 338
G06F3/12 385
B41J29/38 201
H04N1/00 127B
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2023055834
(22)【出願日】2023-03-30
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.UNIX
(71)【出願人】
【識別番号】000005267
【氏名又は名称】ブラザー工業株式会社
(74)【代理人】
【識別番号】110003096
【氏名又は名称】弁理士法人第一テクニカル国際特許事務所
(72)【発明者】
【氏名】門田 政敏
【テーマコード(参考)】
2C061
5C062
【Fターム(参考)】
2C061AP01
2C061HJ08
2C061HN04
2C061HN15
2C061HP00
2C061HQ01
2C061HQ17
2C061HQ20
5C062AA05
5C062AA13
5C062AA35
5C062AB20
5C062AB22
5C062AB23
5C062AB38
5C062AB42
5C062AC04
5C062AC22
5C062AC34
(57)【要約】
【課題】サーバがなくともプルプリントを実現でき、且つ、ローカルプリンタにも対応することができる情報処理プログラムを提供する。
【解決手段】プリンタアプリケーション170は、CUPS160から印刷ジョブを取得するステップS20と、印刷ジョブについてプルプリント情報を取得するステップS35と、印刷ジョブに対応するプルプリント要求をプリンタ200A,200Bの少なくとも1つから取得するステップS55と、プルプリント要求を取得した取得先のプリンタ200に向けて印刷ジョブを送信するステップS80と、を実行させる。
【選択図】
図3
【特許請求の範囲】
【請求項1】
少なくとも1つの印刷装置に対し通信可能な情報処理装置の演算部によって実行可能であり、前記少なくとも1つの印刷装置に対応可能な情報処理プログラムであって、前記情報処理装置にはOS標準印刷ソフトウェアを有するオペレーティングシステムが搭載されており、前記情報処理プログラムは前記OS標準印刷ソフトウェアに仮想の印刷装置として登録可能であり、
前記情報処理プログラムは、前記OS標準印刷ソフトウェアに前記仮想の印刷装置として登録されたとき、前記情報処理装置の演算部に対し、
前記OS標準印刷ソフトウェアから第1印刷ジョブを取得する印刷ジョブ取得処理と、
前記第1印刷ジョブについてプルプリント情報を取得するプルプリント情報取得処理と、
前記第1印刷ジョブに対応するプルプリント要求を、前記少なくとも1つの印刷装置の少なくとも1つから取得するプルプリント要求取得処理と、
前記プルプリント要求取得処理で前記プルプリント要求を取得した取得先の前記印刷装置に向けて前記第1印刷ジョブを送信する第1ジョブ送信処理と、
を実行させるための、情報処理プログラム。
【請求項2】
前記演算部に対し、さらに、
前記プルプリント情報取得処理で取得した前記プルプリント情報に対応した前記第1印刷ジョブの識別情報を、前記少なくとも1つの印刷装置へ向けて送信するジョブ情報送信処理を実行させる、請求項1記載の情報処理プログラム。
【請求項3】
前記演算部に対し、さらに、
前記第1印刷ジョブに含まれる第1形式の印刷データを、前記プルプリント要求取得処理で前記プルプリント要求を取得した取得先の前記印刷装置に対応した第2形式の印刷データに変換するデータ変換処理を実行させ、
前記第1ジョブ送信処理では、
前記データ変換処理で変換後の前記第2形式の印刷データを含む前記第1印刷ジョブを前記印刷装置に向けて送信する、請求項1記載の情報処理プログラム。
【請求項4】
前記演算部に対し、さらに、
前記第1ジョブ送信処理で前記第1印刷ジョブを送信した後、保持していた前記第1印刷ジョブを削除するジョブ削除処理を実行させる、請求項1記載の情報処理プログラム。
【請求項5】
前記演算部に対し、さらに、
前記プルプリント情報取得処理で取得した前記プルプリント情報に対応した前記第1印刷ジョブの識別情報を、前記少なくとも1つの印刷装置へ向けて送信するジョブ情報送信処理と、
前記ジョブ削除処理で前記第1印刷ジョブを削除した後、前記ジョブ情報送信処理で送信した前記識別情報の削除要求を前記少なくとも1つの印刷装置へ向けて送信する削除要求送信処理と、を実行させる、請求項4記載の情報処理プログラム。
【請求項6】
前記プルプリント情報取得処理で取得した前記プルプリント情報は、前記第1印刷ジョブの第1認証情報を含み、
前記演算部に対し、さらに、
前記プルプリント要求取得処理で前記プルプリント要求を取得した取得先の前記印刷装置からの第2認証情報を取得する認証情報取得処理と、
前記第1認証情報と、前記認証情報取得処理で取得した前記第2認証情報と、に基づいて前記第1印刷ジョブのプルプリントの認証を行う認証実行処理と、
を実行させ、
前記第1ジョブ送信処理は、
前記認証実行処理で認証が成功した場合に実行される、請求項1乃至請求項5のいずれか1項記載の情報処理プログラム。
【請求項7】
前記演算部に対し、さらに、
前記OS標準印刷ソフトウェアからの、第2印刷ジョブのプリント実行指示を取得するプリント指示取得処理と、
前記プリント指示取得処理で前記プリント実行指示を取得した場合、前記認証実行処理による認証が実行中であるか否かを判定する認証判定処理と、
前記認証判定処理で前記認証が実行中であると判定された場合は、前記プリント指示取得処理で前記プリント実行指示を取得した前記第2印刷ジョブを対応する前記印刷装置に向けて送信せずに待機し、前記認証判定処理で前記認証が実行中ではないと判定された場合は、前記第2印刷ジョブを対応する前記印刷装置に向けて送信する第2ジョブ送信処理と、
を実行させる、請求項6記載の情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、印刷装置に対し通信可能な情報処理装置によって実行される情報処理プログラムに関する。
【背景技術】
【0002】
従来、プリンタがスプールされた印刷ジョブの格納場所にアクセスして印刷ジョブを取得し印刷を実行する、いわゆるプルプリントが知られている。
【0003】
例えば特許文献1には、このようなプルプリントを実行する印刷システムが記載されている。この印刷システムは、情報処理装置、クラウド上の印刷サーバ、及び複数の印刷装置を備えている。情報処理装置がユーザによる印刷ジョブの投入指示を受け付けると、情報処理装置がユーザによって設定された印刷設定情報に基づいて印刷ジョブを実行するための印刷データを生成し、印刷サーバが当該印刷データを保持する。ユーザが、印刷サーバに登録された複数の印刷装置のうち当該ユーザの最寄りの一の印刷装置からプルプリント指示を行うと、印刷サーバは保持された印刷データを一の印刷装置に送信し、一の印刷装置が受信した印刷データに基づいて印刷を行う。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
上記従来技術の印刷システムは、プルプリント指示に基づいて印刷データを特定のプリンタに送信する印刷サーバを有する。このため、システム構成が複雑化すると共に、ローカルプリンタに対応することができない。
【0006】
本発明の目的は、サーバがなくともプルプリントを実現でき、且つ、ローカルプリンタにも対応することができる情報処理プログラムを提供することにある。
【課題を解決するための手段】
【0007】
上記目的を達成するために、本願発明は、少なくとも1つの印刷装置に対し通信可能な情報処理装置の演算部によって実行可能であり、前記少なくとも1つの印刷装置に対応可能な情報処理プログラムであって、前記情報処理装置にはOS標準印刷ソフトウェアを有するオペレーティングシステムが搭載されており、前記情報処理プログラムは前記OS標準印刷ソフトウェアに仮想の印刷装置として登録可能であり、前記情報処理プログラムは、前記OS標準印刷ソフトウェアに前記仮想の印刷装置として登録されたとき、前記情報処理装置の演算部に対し、前記OS標準印刷ソフトウェアから第1印刷ジョブを取得する印刷ジョブ取得処理と、前記第1印刷ジョブについてプルプリント情報を取得するプルプリント情報取得処理と、前記第1印刷ジョブに対応するプルプリント要求を、前記少なくとも1つの印刷装置の少なくとも1つから取得するプルプリント要求取得処理と、前記プルプリント要求取得処理で前記プルプリント要求を取得した取得先の前記印刷装置に向けて前記第1印刷ジョブを送信する第1ジョブ送信処理と、を実行させる。
【0008】
本願発明の情報処理プログラムは、情報処理装置の演算部に対し、印刷ジョブ取得処理と、プルプリント情報取得処理と、プルプリント要求取得処理と、第1ジョブ送信処理と、を実行させる。印刷ジョブ取得処理では、OS標準印刷ソフトウェアから第1印刷ジョブが取得される。プルプリント情報取得処理では、第1印刷ジョブについてプルプリント情報が取得される。プルプリント要求取得処理では、第1印刷ジョブに対応するプルプリント要求が、少なくとも1つの印刷装置の少なくとも1つから取得される。第1ジョブ送信処理では、プルプリント要求取得処理でプルプリント要求を取得した取得先の印刷装置に向けて第1印刷ジョブを送信する
本願発明によれば、例えばユーザが使用するPC等の情報処理装置により、印刷装置からの要求に応じたプルプリントを実行することができる。本願発明によれば、プルプリントをサーバがなくても実現できるので、印刷システムの構成を簡素化できる。また、印刷装置にオフラインで接続されたPCによりプルプリントを実現することができるので、ローカルプリンタにも対応することができる。
【発明の効果】
【0009】
本発明によれば、サーバがなくともプルプリントを実現でき、且つ、ローカルプリンタにも対応することができる。
【図面の簡単な説明】
【0010】
【
図1】実施形態に係る印刷システムの全体構成の一例を表す図である。
【
図2】印刷システムにおいてプルプリントが実行される場合のデータの流れの一例を表す図である。
【
図3】プリンタアプリケーションによる印刷に係わる処理手順の一例を表すフローチャートである。
【
図4】プリンタのプロセッサによる印刷に係わる処理手順の一例を表すフローチャートである。
【
図5】クライアントPC及びプリンタのハードウェア構成の一例を表すブロック図である。
【発明を実施するための形態】
【0011】
本発明の実施形態を図面を参照しつつ説明する。
【0012】
<印刷システムの全体構成>
図1に、実施形態に係る印刷システム1の全体構成の一例を示す。
図1に示すように、印刷システム1は、クライアントPC100と、複数のプリンタ200A,200Bと、を有する。クライアントPC100は、例えばユーザAが使用する端末装置であり、第1プリンタ200A及び第2プリンタ200Bと例えば無線LANにより、或いは有線LANにより、或いはUSB(Universal Serial Bus)ケーブル等により通信可能に接続されている。クライアントPC100は、第1プリンタ200Aと第2プリンタ200Bと異なる通信手段で接続されていても良い。なお、クライアントPC100が情報処理装置の一例であり、プリンタ200が印刷装置の一例である。
【0013】
クライアントPC100は、第1プリンタ200A及び第2プリンタ200Bに印刷データを送信して印刷を実行させる。クライアントPC100は、例えばデスクトップ型PC、ノート型PC、タブレットコンピュータ等であるが、スマートフォン等の携帯端末でもよい。詳細は後述するが、クライアントPC100はプロセッサ110と、各種の情報処理プログラムを記憶した記憶装置115と、を有する(後述の
図5参照)。プロセッサ110が各種の情報処理プログラムを実行することで、クライアントPC100は
図1に示す機能構成を有する。なお、プロセッサ110が演算部の一例である。
【0014】
クライアントPC100には、CUPS(Common Unix Printing System)160を有するOS(オペレーティングシステム)が搭載されている。クライアントPC100は、編集アプリケーション102と、CUPS160と、プリンタアプリケーション170と、ジョブ記憶部104と、を有する。編集アプリケーション102は、ユーザAの入力内容に基づき印刷ジョブをCUPS160に出力する。CUPS160は、OSに標準に搭載され、プリンタベンダの提供するドライバを用いないドライバレス印刷を実行可能な、OS用のモジュール化された印刷プログラムである。CUPS160がOS標準印刷ソフトウェアの一例であり、プリンタアプリケーション170が情報処理プログラムの一例である。
【0015】
プリンタアプリケーション170は、接続されている第1プリンタ200A及び第2プリンタ200Bに対応する仮想プリンタとして、CUPS160に登録可能である。CUPS160は、プリンタアプリケーション170を仮想のプリンタとして取り扱い、印刷に係わる各種の処理を実行する。各種の処理には、例えば能力情報取得処理や印刷データ送信処理等が含まれる。能力情報取得処理では、CUPS160はプリンタアプリケーション170に能力情報を要求し、プリンタアプリケーション170はプリンタ200A,200Bから能力を表すアトリビュートを取得し、取得したアトリビュートをCUPS160が対応可能か否か、機能制限があるか否か、等に応じて変換し、変換したアトリビュートをCUPS160へ向けて出力する。CUPS160の印刷データ送信処理に対し、プリンタアプリケーション170は、CUPS160から印刷データを取得する。当該印刷データは、上記CUPS160の能力情報取得処理で出力したアトリビュートに対応している。プリンタアプリケーション170は、取得した印刷データを、プリンタ200A,200Bのアトリビュート、機能制限、等に応じて変換する。そして変換した印刷データをプリンタ200A,200Bへ向けて送信する。
【0016】
CUPS160からプリンタアプリケーション170に出力される印刷ジョブには、プルプリント情報を備えるものと、プルプリント情報を備えないものが含まれる。印刷ジョブがプルプリント情報を備える場合には、プリンタアプリケーション170は、印刷ジョブをジョブ記憶部104に一時的にスプールする。プリンタアプリケーション170は、ジョブ記憶部104にスプールした印刷ジョブの識別情報をプリンタ200A,200Bへ向けて送信する。プリンタアプリケーション170は、識別情報を送信した印刷ジョブに対応するプルプリント要求をプリンタ200A,200Bの少なくとも1つから取得し、当該プルプリント要求の要求元のプリンタ200に向けて印刷ジョブを送信する。一方、印刷ジョブがプルプリント情報を備えない場合(プッシュプリントの場合)には、プリンタアプリケーション170は、印刷ジョブを対応するプリンタ200A又は200Bに送信し、印刷を実行させる。これらの処理の詳細については後述する。ジョブ記憶部104は、クライアントPC100の例えば記憶装置115の不揮発性記憶装置130のデータ記憶領域132等(後述の
図5参照)である。
【0017】
なお、本実施形態では、第1プリンタ200Aと第2プリンタ200Bとを区別しない場合には単に「プリンタ200」と記載する。また、上述した印刷システム1のシステム構成は一例であり、上記以外としてもよい。例えば、クライアントPC100は上記1台に限らず複数でもよい。印刷システム1が有するプリンタ200は上記2台に限らず3台以上でもよいし、複数に限らず1台でもよい。クライアントPC100とプリンタ200との接続は上記USBに限らず、例えばインターネット、有線LAN又は無線LAN等を介したネットワーク接続でもよい。
【0018】
<プルプリント実行時のデータの流れ>
図2に、印刷システム1においてプルプリントが実行される場合のデータの流れの一例を示す。
図2に示すように、ユーザAが編集アプリケーション102を用いてプルプリントによる印刷指示を行うと、編集アプリケーション102はユーザAの入力内容に基づき印刷ジョブをCUPS160に出力する。CUPS160が印刷ジョブをプリンタアプリケーション170に出力すると、プリンタアプリケーション170は印刷ジョブに含まれるプルプリント情報を取得して、ジョブ記憶部104に記憶させる。プリンタアプリケーション170は、例えばUDP(User Datagram Protocol)プロトコルを用いたブロードキャストにより、プルプリントの印刷ジョブがスプールされたことを印刷システム1の全プリンタ200A,200Bに通知する。プリンタ200A,200Bのそれぞれの表示部240(後述の
図5参照)のジョブリストには、スプールされた印刷ジョブの識別情報が一覧表示される。
【0019】
プリンタ200A,200Bの任意の1つから、印刷ジョブに対するプルプリントの要求が出力される。
図2に示す例では、例えばユーザAが第2プリンタ200Bの操作部250(後述の
図5参照)を操作することで、第2プリンタ200BからクライアントPC100のプリンタアプリケーション170に所定の印刷ジョブに対するプルプリント要求が送信される。プリンタアプリケーション170は、受け付けたプルプリント要求に対応する印刷ジョブをジョブ記憶部104から取得し、第2プリンタ200Bに送信する。第2プリンタ200Bは、印刷ジョブの印刷を終了すると印刷終了通知をプリンタアプリケーション170に送信する。プリンタアプリケーション170は、プルプリントによる印刷を終了した印刷ジョブをジョブ記憶部104から削除する。
【0020】
図2に示す例は、例えばユーザAが作成する印刷物がセキュリティの高い内容を含む等により、ユーザAが例えば他人の侵入が制限されていないセキュリティレベルの高くない場所に配置された第2プリンタ200Bを用いて印刷を行う場合等の事例である。
【0021】
<プリンタアプリケーションによる印刷に係わる処理手順>
図3に、プリンタアプリケーション170による印刷に係わる処理手順の一例を示す。
【0022】
ステップS1では、プリンタアプリケーション170は、HTTP(Hypertext Transfer Protocol)サーバを立ち上げる。HTTPサーバは、CUPS160上で動作するサーバソフトウェアであり、ブラウザを介してHTTPプロトコルを用いてユーザAが入力した情報や機能を取得、又は、ユーザAに対して情報や機能を提供する。
【0023】
ステップS5では、プリンタアプリケーション170は、イベントを取得するまで待機する。イベントには、例えば印字要求、ジョブキャンセル要求、プルプリントからプッシュプリントへの変更要求、プルプリント要求、新規プリンタの検知等が含まれる。
【0024】
ステップS10では、プリンタアプリケーション170は、上記ステップS5で取得したイベントの種類を判定する。イベントがCUPS160からの印字要求を受け取ったことにより発生したものである場合には、次のステップS15に移行する。
【0025】
ステップS15では、プリンタアプリケーション170は、印刷ジョブを取得する。印刷ジョブには、印刷データ、ドキュメント名、ユーザ名等が含まれる。プルプリントによる印刷ジョブの場合には、上記に加えてさらにPIN(Personal Identification Number)コード等の認証情報が含まれる。PINコードがプルプリント情報及び第1認証情報の一例である。
【0026】
ステップS20では、プリンタアプリケーション170は、上記ステップS15で取得した印刷ジョブの内容に基づき、当該印刷ジョブがプルプリントによるものかプッシュプリントによるものかを判定する。プリンタアプリケーション170は、例えば印刷ジョブにPINコードが含まれていない場合にはプッシュプリントであると判定し(ステップS20:No)、次のステップS25に移行する。
【0027】
なお、上記PINコードが含まれていない印刷ジョブが第2印刷ジョブの一例である。また、上記ステップS20でNo判定の場合には、プリンタアプリケーション170はプッシュプリントによる印刷ジョブのプリント実行指示を取得する。当該ステップS20のNo判定がプリント指示取得処理の一例である。
【0028】
ステップS25では、プリンタアプリケーション170は、印刷ジョブの印刷実行対象であるプリンタ200からのプルプリント要求によりPINコードの認証処理を実行中であるか否かを判定する。ステップS25における当該判定処理が認証判定処理の一例である。プリンタアプリケーション170は、上記判定の結果に応じて、PINコードの認証処理を実行中である場合には印刷ジョブを送信せずにプルプリント処理が終了するまで待機する。一方、プリンタアプリケーション170は、PINコードの認証処理を実行中でない場合には直ちに次のステップS30に移行する。
【0029】
ステップS30では、プリンタアプリケーション170は、印刷ジョブの印刷実行対象であるプリンタ200に印刷ジョブを送信し、印刷を実行させる。その後、上記ステップS5に戻る。上記ステップS25及び当該ステップS30において、後述のPINコードの認証処理等のプルプリント要求に応じた処理を実行中である場合にはプルプリント要求に応じた処理が終了するまで待機し、実行中でない場合には印刷ジョブを対応するプリンタ200に送信する処理が、第2ジョブ送信処理の一例である。
【0030】
なお、上記ステップS20において、プリンタアプリケーション170は、例えば印刷ジョブにPINコードが含まれている場合にはプルプリントであると判定し(ステップS20:Yes)、次のステップS35に移行する。なお、上記PINコードが含まれている印刷ジョブが第1印刷ジョブの一例である。また、上記ステップS20でYes判定の場合には、プリンタアプリケーション170はプルプリントによる印刷ジョブを取得する。当該ステップS20のYes判定が印刷ジョブ取得処理の一例である。
【0031】
ステップS35では、プリンタアプリケーション170は、印刷ジョブ、すなわち印刷ジョブに含まれる印刷データ、ドキュメント名、ユーザ名、及びPINコードをジョブ記憶部104に記憶させる。なお、印刷データは後述するステップS75において変換される前の中間データである。当該ステップS35がプルプリント情報取得処理の一例である。
【0032】
ステップS40では、プリンタアプリケーション170は、前述のUDPプロトコルを用いたブロードキャストにより、上記ステップS35で記憶させた印刷ジョブの識別情報の追加要求を印刷システム1の全プリンタ200A,200Bに対して送信する。識別情報は、例えばドキュメント名又はユーザ名等である。これにより、プリンタ200A,200Bのそれぞれの表示部240のジョブリストには、スプールされた印刷ジョブの識別情報が一覧表示される。その後、上記ステップS5に戻る。当該ステップS40がジョブ情報送信処理の一例である。
【0033】
なお、上記ステップS10において、イベントがHTTPサーバからのジョブキャンセル要求を受け取ったことにより発生したものである場合には、次のステップS45に移行する。
【0034】
ステップS45では、プリンタアプリケーション170は、ジョブキャンセル要求に対応する印刷ジョブをジョブ記憶部104から削除する。
【0035】
ステップS50では、プリンタアプリケーション170は、前述のUDPプロトコルを用いたブロードキャストにより、上記ステップS45で削除した印刷ジョブの識別情報の削除要求を印刷システム1の全プリンタ200A,200Bに対して送信する。これにより、プリンタ200A,200Bのそれぞれの表示部240のジョブリストから、削除された印刷ジョブの識別情報が削除される。その後、上記ステップS5に戻る。
【0036】
なお、上記ステップS10において、イベントがいずれかのプリンタ200からのプルプリント要求を受け取ったことにより発生したものである場合には、次のステップS55に移行する。
【0037】
ステップS55では、プリンタアプリケーション170は、プルプリント要求を取得する。当該プルプリント要求には、プリンタ200の操作部250を介して入力された、プルプリントの要求対象である印刷ジョブに対応するPINコードが含まれる。当該ステップS55がプルプリント要求取得処理の一例である。プリンタアプリケーション170は、取得したプルプリント要求に対応する印刷ジョブがジョブ記憶部104に残っているか否かを判定する。プリンタアプリケーション170は、例えばJOBキャンセルにより或いは他のプリンタ200による印刷実行によりプルプリント要求に対応する印刷ジョブがジョブ記憶部104から削除されている場合には(ステップS55:No)、次のステップS60に移行する。
【0038】
ステップS60では、プリンタアプリケーション170はエラー通知を行う。当該エラー通知では、例えば表示部140(後述の
図5参照)に「印刷ジョブがないため印刷できません」等のメッセージが表示されてもよい。その後、上記ステップS5に戻る。
【0039】
一方、上記ステップS55において、プリンタアプリケーション170は、プルプリント要求に対応する印刷ジョブがジョブ記憶部104に残っている場合には(ステップS55:Yes)、次のステップS65に移行する。
【0040】
ステップS65では、プリンタアプリケーション170は、上記ステップS55で取得したプルプリント要求に基づき、要求元のプリンタ200からのPINコードを取得する。プリンタアプリケーション170は、上記ステップS35で記憶させたプルプリント要求に対応する印刷ジョブのPINコードと、プリンタ200からのPINコードと、に基づいて、印刷ジョブのプルプリントの認証を行う。上記プリンタ200からのPINコードが第2認証情報の一例であり、当該ステップS65が認証情報取得処理の一例である。
【0041】
ステップS70では、プリンタアプリケーション170は、上記ステップS65による認証が成功したか否かを判定する。具体的にはプリンタアプリケーション170は、上記ステップS35で記憶させたプルプリント要求に対応する印刷ジョブのPINコードと、プリンタ200からのPINコードと、が一致するか否かを判定する。プリンタアプリケーション170は、PINコード一致しない場合には認証が失敗したと判定し(ステップS70:No)、上記ステップS60に移行してエラー通知を行う。当該エラー通知では、例えば表示部140に「認証に失敗したため印刷できません」等のメッセージが表示されてもよい。一方、プリンタアプリケーション170は、PINコードが一致した場合には認証が成功したと判定し(ステップS70:Yes)、次のステップS75に移行する。上記ステップS65及び当該ステップS70が認証実行処理の一例である。
【0042】
ステップS75では、プリンタアプリケーション170は、プルプリント要求の要求元のプリンタ200のエンコーダを選択し、当該エンコーダにより印刷データの変換を行う。すなわち、プリンタアプリケーション170は、印刷ジョブに含まれる所定のデータ形式(例えばPWGRaster等)の印刷データを、プルプリント要求の要求元のプリンタ200に対応した所定のデータ形式(例えばPCL等)の印刷データに変換する。プルプリント要求の要求元のプリンタ200がプルプリント要求を取得した取得先の印刷装置の一例であり、変換前の印刷データのデータ形式が第1形式の一例であり、変換後の印刷データのデータ形式が第2形式の一例である。当該ステップS75がデータ変換処理の一例である。
【0043】
ステップS80では、プリンタアプリケーション170は、上記ステップS75で変換したデータ形式の印刷データを含む印刷ジョブを、プルプリント要求の要求元のプリンタ200に向けて送信し、当該プリンタ200で印刷を実行させる。当該ステップS80が第1ジョブ送信処理の一例である。
【0044】
ステップS85では、プリンタアプリケーション170は、上記ステップS80で印刷ジョブを送信した後、ジョブ記憶部104にスプールしていた対応する印刷ジョブを削除する。当該ステップS85がジョブ削除処理の一例である。
【0045】
ステップS90では、プリンタアプリケーション170は、前述のUDPプロトコルを用いたブロードキャストにより、上記ステップS85で削除した印刷ジョブの識別情報の削除要求を印刷システム1の全プリンタ200A,200Bに対して送信する。これにより、プリンタ200A,200Bのそれぞれの表示部240のジョブリストから、削除された印刷ジョブの識別情報が削除される。その後、上記ステップS5に戻る。当該ステップS90が削除要求送信処理の一例である。
【0046】
なお、上記ステップS10において、イベントがHTTPサーバからのプルプリントからプッシュプリントへの変更要求を受け取ったことにより発生したものである場合には、プリンタアプリケーション170は、上記ステップS55~ステップS70を経ずにステップS75に移行する。この場合、プリンタアプリケーション170は、ステップS75~ステップS90を実行し、上記ステップS5に戻る。
【0047】
なお、上記ステップS10において、イベントが新たなプリンタ200の検知である場合には、次のステップS95に移行する。プリンタアプリケーション170は、例えばmDNS/SD(multicast Domain Name System/Service Discovery)プロトコルにより新たなプリンタ200を検知することができる。
【0048】
ステップS95では、プリンタアプリケーション170は、前述のUDPプロトコルを用いたブロードキャストにより、上記ステップS35で記憶され、かつジョブ記憶部104に残っているすべての印刷ジョブの識別情報の追加要求を新たに検知したプリンタ200に対して送信する。これにより、新たなプリンタ200の表示部240のジョブリストには、スプールされている印刷ジョブの識別情報が一覧表示される。その後、上記ステップS5に戻る。当該ステップS95もジョブ情報送信処理の一例である。以上により、本フローチャートを終了する。
【0049】
<プリンタによる印刷に係わる処理手順>
図4に、プリンタ200のプロセッサ210(後述の
図5参照)による印刷に係わる処理手順の一例を示す。
【0050】
ステップS105では、プリンタ200のプロセッサ210は、イベントを取得するまで待機する。イベントには、例えばジョブ追加要求、ジョブ削除要求、プルプリント処理、印刷データの受信等が含まれる。
【0051】
ステップS110では、プリンタ200のプロセッサ210は、取得されたイベントがクライアントPC100のプリンタアプリケーション170から印刷ジョブの識別情報の追加要求を受信することで発生したものか否かを判定する。印刷ジョブの識別情報の追加要求は、例えば前述のステップS40又はステップS95においてクライアントPC100のプリンタアプリケーション170から送信される。プロセッサ210は、追加要求を受信した場合には(ステップS110:Yes)、次のステップS115に移行する。
【0052】
ステップS115では、プリンタ200のプロセッサ210は、上記ステップS110で受信した追加要求の対象である印刷ジョブの識別情報をジョブリストに追加する。その後、上記ステップS105に戻る。
【0053】
一方、上記ステップS110において、プリンタ200のプロセッサ210は、追加要求を受信していない場合には(ステップS110:No)、次のステップS120に移行する。
【0054】
ステップS120では、プリンタ200のプロセッサ210は、取得されたイベントがクライアントPC100のプリンタアプリケーション170から印刷ジョブの識別情報の削除要求を受信することで発生したものか否かを判定する。印刷ジョブの識別情報の削除要求は、例えば前述のステップS50又はステップS90においてクライアントPC100のプリンタアプリケーション170から送信される。プロセッサ210は、削除要求を受信した場合には(ステップS120:Yes)、次のステップS125に移行する。
【0055】
ステップS125では、プリンタ200のプロセッサ210は、上記ステップS120で受信した削除要求の対象である印刷ジョブの識別情報をジョブリストから削除する。その後、上記ステップS105に戻る。
【0056】
一方、上記ステップS120において、プリンタ200のプロセッサ210は、削除要求を受信していない場合には(ステップS120:No)、次のステップS130に移行する。
【0057】
ステップS130では、プリンタ200のプロセッサ210は、取得されたイベントが例えば操作パネル等の操作部250を介してプルプリントに係わる処理が実行されることで発生したものか否かを判定する。プルプリントに係わる処理が実行された場合、すなわちPINプリントによる印刷の場合には(ステップS130:Yes)、次のステップS135に移行する。
【0058】
ステップS135では、プリンタ200のプロセッサ210は、表示部240にプルプリントに対応した印刷ジョブのジョブリストを表示すると共に印刷ジョブを選択可能な選択画面を表示し、ユーザによる選択入力を待つために待機する。当該ジョブリストはステップS115のJOB追加、ステップS125のJOB削除等により更新されたものである。
【0059】
ステップS140では、プリンタ200のプロセッサ210は、上記ステップS135で表示した選択画面において印刷ジョブが選択されたか否かを判定する。プロセッサ210は、印刷ジョブが選択されなかった場合には(ステップS140:No)、上記ステップS105に戻る。一方、プロセッサ210は、印刷ジョブが選択された場合には(ステップS140:Yes)、次のステップS145に移行する。
【0060】
ステップS145では、プリンタ200のプロセッサ210は、表示部240にプルプリント要求対象である印刷ジョブに対応したPINコードの入力画面を表示し、ユーザによる入力を待つために待機する。
【0061】
ステップS150では、プリンタ200のプロセッサ210は、上記ステップS145で表示した入力画面で入力されたPINコードを含むプルプリント要求をクライアントPC100のプリンタアプリケーション170に送信する。その後、上記ステップS105に戻る。なお、プリンタアプリケーション170において送信したPINコードによる認証(ステップS65)が成功した場合(ステップS70 Yes)には、プロセッサ210は、プリンタアプリケーション170がステップS80において送信する印刷データを受信して印刷を実行する。この処理はステップS105において印刷データ受信イベントとして処理され、前記ステップS110、ステップS120、ステップS130にてそれぞれNoと判断され、そののちにステップS155において印刷データ受信(Yes)と判断される。
【0062】
一方、上記ステップS130において、PINプリントによらない通常の印刷の場合、すなわちプルプリントに係わる処理が実行されなかった場合には(ステップS130:No)、プリンタ200のプロセッサ210はステップS155に移行する。
【0063】
ステップS155では、プリンタ200のプロセッサ210は、取得されたイベントが印刷データを含む印刷ジョブを受信することで発生したものか否かを判定する。印刷ジョブは、例えば前述のステップS30においてクライアントPC100のプリンタアプリケーション170から送信される。プロセッサ210は、印刷ジョブを受信した場合には(ステップS155:Yes)、次のステップS160に移行する。
【0064】
ステップS160では、プリンタ200のプロセッサ210は、上記ステップS155で受信した印刷ジョブに基づいて印刷を実行する。その後、上記ステップS105に戻る。
【0065】
一方、上記ステップS155において、プリンタ200のプロセッサ210は、印刷ジョブを受信しなかった場合には(ステップS155:No)、次のステップS165に移行する。
【0066】
ステップS165では、プリンタ200のプロセッサ210は、その他のイベントに応じた処理を実行する。その後、上記ステップS105に戻る。以上により、本フローチャートを終了する。
【0067】
<実施形態の効果>
本実施形態のプリンタアプリケーション170は、ステップS20と、ステップS35と、ステップS55と、ステップS80と、を実行させる。ステップS20では、CUPS160から印刷ジョブが取得される。ステップS35では、印刷ジョブについてプルプリント情報が取得される。ステップS55では、印刷ジョブに対応するプルプリント要求が、プリンタ200A,200Bの少なくとも1つから取得される。ステップS80では、ステップS55でプルプリント要求を取得した取得先のプリンタ200に向けて印刷ジョブを送信する。
【0068】
本実施形態によれば、ユーザAが使用するクライアントPC100により、プリンタ200からの要求に応じたプルプリントを実行することができる。本実施形態によれば、プルプリントをサーバがなくても実現できるので、印刷システム1の構成を簡素化できる。また、プリンタ200にオフラインで接続されたクライアントPC100によりプルプリントを実現することができるので、ローカルプリンタにも対応することができる。
【0069】
また、本実施形態では特に、プリンタアプリケーション170は、ステップS75を実行させる。ステップS75では、印刷ジョブに含まれる所定のデータ形式の印刷データが、ステップS55でプルプリント要求を取得した取得先のプリンタ200に対応したデータ形式の印刷データに変換される。ステップS75で変換された後のデータ形式の印刷データを含む印刷ジョブは、ステップS80においてプルプリントの要求元のプリンタ200に向けて送信される。本実施形態によれば、印刷ジョブに含まれる印刷データをプルプリントを要求したプリンタ200の例えば仕様や機能等に対応した印刷データに変換した上で、当該プリンタ200に送信してプルプリントを実行させることができる。本実施形態によれば、プリンタに特化した柔軟なカスタマイズに対応したプルプリントが可能となる。
【0070】
また、本実施形態では特に、プリンタアプリケーション170は、ステップS80で印刷ジョブを送信した後、ジョブ記憶部104に保持していた印刷ジョブを削除するステップS85を実行させる。本実施形態によれば、プルプリントによる印刷を実行する毎にスプールしていた印刷ジョブを削除するので、印刷ジョブを記憶するジョブ記憶部104の記憶容量を低減できる。
【0071】
また、本実施形態では特に、プリンタアプリケーション170は、ステップS90を実行させる。ステップS90では、ステップS85で印刷ジョブを削除した後、ステップS40,S95で識別情報の削除要求をプリンタ200A,200Bへ向けて送信する。本実施形態によれば、スプールしていた印刷ジョブのプルプリントによる印刷を実行する毎に全てのプリンタ200における当該印刷ジョブの識別情報を削除するので、プリンタ200においてプルプリント実行済みの印刷ジョブがパネルメニューに表示されることを防止できる。
【0072】
また、本実施形態では特に、ステップS35で取得したプルプリント情報は、印刷ジョブのPINコードを含む。プリンタアプリケーション170は、ステップS65と、ステップS70と、を実行させる。ステップS65では、ステップS55でプルプリント要求を取得した取得先のプリンタ200からのPINコードが取得される。ステップS70では、ステップS35で取得したPINコードと、ステップS65で取得したPINコードと、に基づいて印刷ジョブのプルプリントの認証が行われる。本実施形態によれば、印刷ジョブに設定されたPINコードと、プルプリントを要求したプリンタ200において入力されたPINコードと、が例えば一致する場合にのみ、当該プリンタ200で印刷ジョブのプルプリントを実行することができる。本実施形態によれば、セキュリティを向上することができる。
【0073】
また、本実施形態では特に、プリンタアプリケーション170は、ステップS20と、ステップS25と、ステップS30と、を実行させる。ステップS20では、CUPS160からのプッシュプリントによる印刷ジョブのプリント実行指示が取得される。ステップS25では、ステップS20でプリント実行指示を取得した場合、ステップS65及びステップS70による認証が実行中であるか否かが判定される。プリンタアプリケーション170は、認証が実行中であると判定された場合は、印刷ジョブを対応するプリンタ200に向けて送信せずに待機する。プリンタアプリケーション170は、認証が実行中ではないと判定された場合は、印刷ジョブを対応するプリンタ200に向けて送信する。本実施形態によれば、プルプリント実行のための認証が実行されている最中のプリンタ200に対し、他のプッシュプリントによる印刷ジョブを送信することを防止できる。本実施形態によれば、プルプリントを要求したプリンタ200においてユーザがプルプリントによる印刷物の作成を待っている際に、他のプッシュプリントによる印刷物が割り込んで作成されることを防止できる。
【0074】
<変形例>
なお、本発明は、上記実施形態に限られるものではなく、その趣旨及び技術的思想を逸脱しない範囲内で種々の変形が可能である。
【0075】
上記実施形態では、プルプリントによる印刷ジョブをクライアントPC100内にスプールするようにしたが、印刷ジョブをスプールする場所はクライアントPC100の内部に限らず外部でもよい。例えば他のクライアントPCや外部記憶装置等にスプールしてもよい。
【0076】
また、上記実施形態では、印刷ジョブを同一のクライアントPC100内のCUPS160から取得するようにしたが、印刷ジョブをスプールする場所はクライアントPC100の内部に限らず外部でもよい。例えば他のクライアントPCからPINコードを含む印刷ジョブを取得してプルプリントできるように構成してもよい。
【0077】
また、上記実施形態では、ステップS40,S95においてステップS35で取得したプルプリント情報に対応した印刷ジョブの識別情報をプリンタ200A,200Bへ向けて送信するようにしたが、識別情報の送信はされなくてもよい。この場合、プリンタにおいてジョブリストは表示されなくなるが、通常、印刷を指示した人と印刷物を受け取る人(プリンタを操作してプルプリントする人)は同じであるため、ユーザはどのクライアントPC100のプリンタアプリケーション170に印刷ジョブがあるか知っており、そのためユーザがパネルでそのプリンタアプリケーション170と印刷ジョブを示すID等を指定してPINコードを入力する等により、プルプリントは可能となる。このようにすることで、機密性の高い印刷ジョブをメニューに表示しない、つまりユーザ以外に印刷ジョブがプリンタに溜まっていることがわからないほうがいい、といったニーズに対応できる。
【0078】
また、
図3~
図4に示すフローチャートは本発明を上記フローに示す手順に限定するものではなく、発明の趣旨及び技術的思想を逸脱しない範囲内で手順の追加・削除又は順番の変更等をしてもよい。
【0079】
また、以上既に述べた以外にも、上記実施形態や各変形例による手法を適宜組み合わせて利用しても良い。
【0080】
その他、一々例示はしないが、本発明は、その趣旨を逸脱しない範囲内において、種々の変更が加えられて実施されるものである。
【0081】
<クライアントPC、プリンタのハードウェア構成>
図5を用いて、クライアントPC100及びプリンタ200のハードウェア構成の一例を説明する。なお、第1プリンタ200Aと第2プリンタ200Bのハードウェア構成を共通としてもよい。
【0082】
<クライアントPC>
図5に示すように、クライアントPC100は、プロセッサ110と、記憶装置115と、表示部140と、操作部150と、通信インタフェース190と、を有している。これらプロセッサ110、記憶装置115、表示部140、操作部150、及び通信インタフェース190は、バス105を介して互いにデータ送受信可能に接続されている。
【0083】
記憶装置115は、揮発性記憶装置120と、不揮発性記憶装置130と、を備えている。揮発性記憶装置120は、例えば、DRAMであり、処理対象となる各種のプログラムやデータを記憶する。不揮発性記憶装置130は、例えば、ハードディスクドライブ、あるいはソリッドステートドライブであり、プログラム記憶領域131と、データ記憶領域132と、を有している。
【0084】
プログラム記憶領域131には各種プログラムが格納されている。各種プログラムには、前述の
図3のフローチャート等に基づく情報処理プログラム等が含まれる。データ記憶領域132には、各種プログラムの実行に必要なデータ等が記憶されている。
【0085】
プロセッサ110は、データ処理を行う装置、例えばCPUであり、プログラム記憶領域131に格納された各種プログラムを実行する。プロセッサ110は、プリンタ200及びネットワークNTに接続された管理PC300等に対するデータ通信を含む各種の処理を行う。
【0086】
表示部140は、例えば液晶ディスプレイ等であり、種々の情報を表示可能である。操作部150は、例えばマウスやキーボード等であり、ユーザによる操作を受け付ける。ユーザは、操作部150を操作することによって、種々の指示をクライアントPC100に入力可能である。
【0087】
通信インタフェース190は、他の装置と通信するための有線又は無線のネットワークインタフェースであり、USBケーブルやネットワークNTに接続されている。
【0088】
なお、上記記憶装置115は上述した装置要素での構成に限られず、例えば、RAM、ROM、EEPROM、HDD、クライアントPC100に着脱されるUSBメモリ等の可搬記録媒体、プロセッサ110が備えるバッファ等、或いはそれらの組み合わせによって構成されてもよい。
なお、記憶装置115は、コンピュータが読み取り可能なストレージ媒体であってもよい。コンピュータが読み取り可能なストレージ媒体とは、non-transitoryな媒体である。non-transitoryな媒体には、上記の例の他に、CD-ROM、DVD-ROM等の記録媒体も含まれる。また、non-transitoryな媒体は、tangibleな媒体でもある。後述するプリンタ200の記憶装置215についても同様である。
【0089】
<プリンタ>
図5に示すように、プリンタ200は、プロセッサ210と、記憶装置215と、表示部240と、操作部250と、通信インタフェース270と、印刷部290と、を有している。これらプロセッサ210、記憶装置215、表示部240、操作部250、通信インタフェース270、及び印刷部290は、バス205を介して互いにデータ送受信可能に接続されている。
【0090】
記憶装置215は、揮発性記憶装置220と、不揮発性記憶装置230と、を備えている。揮発性記憶装置220は、例えば、DRAMであり、印刷対象の画像データを記憶する画像データ記憶領域222を備えている。不揮発性記憶装置230は、例えばNVRAM、フラッシュメモリ等であり、プログラム記憶領域231と、データ記憶領域232と、を備えている。プログラム記憶領域231には各種プログラムが格納されている。各種プログラムには、前述の
図4のフローチャート等に基づく情報処理プログラムや、印刷処理プログラムなどのファームウェア等が含まれる。データ記憶領域232には、上記各種プログラムを実行するための各種データ等が記憶されている。
【0091】
プロセッサ210は、データ処理を行う装置であり、例えば、CPUである。プロセッサ210は、プログラム記憶領域231に格納された各種プログラムを実行する。
【0092】
表示部240は、例えば、液晶ディスプレイであり、種々の情報を表示可能である。操作部250は、ユーザによる操作を受け付ける装置である。ユーザは、操作部250を操作することによって、種々の指示をプリンタ200に入力可能である。通信インタフェース270は、他の装置と通信するための有線または無線のネットワークインタフェースであり、USBケーブルやネットワークNTに接続されている。
【0093】
印刷部290は、図示しない搬送機構により搬送されるシートに画像を印刷する。印刷部290は、クライアントPC100から送信された印刷データ、若しくは、操作部250での操作に基づき自ら生成した印刷ジョブに基づいて、シートに画像を印刷する。
【符号の説明】
【0094】
1 印刷システム
100 クライアントPC(情報処理装置の一例)
110 プロセッサ(演算部の一例)
160 CUPS(OS標準印刷ソフトウェアの一例)
170 プリンタアプリケーション(情報処理プログラムの一例)
200 プリンタ(印刷装置の一例)