JP4547508B2 - 印刷ジョブ管理プログラムおよび印刷ジョブ管理システム - Google Patents

印刷ジョブ管理プログラムおよび印刷ジョブ管理システム Download PDF

Info

Publication number
JP4547508B2
JP4547508B2 JP2006316665A JP2006316665A JP4547508B2 JP 4547508 B2 JP4547508 B2 JP 4547508B2 JP 2006316665 A JP2006316665 A JP 2006316665A JP 2006316665 A JP2006316665 A JP 2006316665A JP 4547508 B2 JP4547508 B2 JP 4547508B2
Authority
JP
Japan
Prior art keywords
print
print job
client terminal
network printer
terminal computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006316665A
Other languages
English (en)
Other versions
JP2008129978A (ja
Inventor
洋一 早川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Silex Technology Inc
Original Assignee
Silex Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Silex Technology Inc filed Critical Silex Technology Inc
Priority to JP2006316665A priority Critical patent/JP4547508B2/ja
Publication of JP2008129978A publication Critical patent/JP2008129978A/ja
Application granted granted Critical
Publication of JP4547508B2 publication Critical patent/JP4547508B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Accessory Devices And Overall Control Thereof (AREA)

Description

本発明は、ネットワークプリンタに対して、クライアント端末コンピュータから複数の印刷ジョブの処理を行う際に、他のクライアント端末コンピュータからの印刷ジョブの割り込みを防止し得るプログラムおよびシステムに関する。
ネットワークプリンタは複数のクライアント端末コンピュータの共用プリンタであり、ネットワークを経由して、複数のクライアント端末コンピュータから印刷ジョブを受付ける。通常、ネットワークプリンタは、印刷ジョブを管理する機能を有しないため、印刷ジョブを受付けた順番に印刷を行う。このため、複数のクライアント端末コンピュータからネットワークプリンタに対して、複数の印刷ジョブの処理を行った場合、以下に述べるような問題が生じる。
先ず、印刷ジョブと印刷ジョブとの間に、他のクライアント端末コンピュータの印刷ジョブが割り込んで印刷されることがある。かかる場合、印刷物の中に、意図しない他人の印刷物が混じってしまうこととなり好ましくない。すなわち、印刷枚数が多い場合は、別のクライアント端末コンピュータの印刷ジョブがどこに割り込まれたのかを探す作業が大変煩雑である。
また、別のクライアント端末コンピュータの印刷ジョブが割り込まれて、意図しない他人の印刷物が混じっていることに気がつかず、そのまま印刷物をネットワークプリンタの所から持っていってしまう場合もある。
また、封筒の宛名印刷など差込み印刷で非定型印刷を大量に行う場合に、他の印刷ジョブが割り込まれることにより、印刷用紙の不一致な印刷が行われてしまう場合もある。
更に、帳票処理ソフトによっては、ファイル単位で印刷要求しても、帳票シート単位で印刷ジョブが分かれるものもあり、別のクライアント端末コンピュータの印刷ジョブが割り込まれることが少なくない。
これを解決するために、印刷ジョブと印刷ジョブとの間に、他のクライアント端末コンピュータの印刷ジョブが割り込んで印刷されることを防止するために、例えば、印刷ジョブに識別番号を割り当て、必要に応じて印刷ジョブが統合され、関連する印刷ジョブを連続印刷するものがある(例えば、特許文献1を参照)。
特開平11−194905号公報
Windows(登録商標)に代表されるOS(オペレーティング・システム)環境における従来のネットワークプリンタに対する印刷処理は、文書処理ソフトウェアや帳票処理ソフトウェアなどのアプリケーション・プログラムから印刷を実行すると、プリントスプーラ領域に印刷ジョブが格納され、プリンタドライバに関連付けられたポートモニタ・プログラムが起動される。かかるポートモニタ・プログラムは、プリントスプーラ領域から印刷ジョブを読み込み、LPR(Line printer daemon)等の印刷プロトコルを用いて、印刷ジョブをネットワークプリンタに送信する。
かかる印刷ジョブを送信する場合において、上記ポートモニタ・プログラムは、ネットワークプリンタに送信する印刷ジョブ毎に、ネットワークプリンタとの間で通信セッションを確立し、印刷ジョブの送信が完了すると確立した通信セッションを切断していた。ポートモニタ・プログラムは、印刷ジョブ毎に起動されるため、複数の印刷ジョブを印刷した場合でも、1個の印刷ジョブの印刷が完了する度に、一旦通信セッションが切断されてしまう。
従来のシステムにおけるネットワークプリンタは、1個の印刷ジョブの印刷を完了すると、次の印刷ジョブを受付けるが、ネットワーク上の複数のクライアント端末コンピュータから印刷要求があった場合、必ずしも前回と同一のクライアント端末コンピュータの印刷ジョブを受付けるとは限らない。そのため、複数の印刷ジョブの間に、他のクライアント端末コンピュータからの印刷ジョブが割り込まれるといった状態が生じるのである。
上記の内容について図1〜図3を用いてより詳細に説明する。図1は、従来のシステムのネットワーク印刷において、クライアント端末コンピュータからネットワークプリンタに対して印刷処理を行う場合の機能ブロック図を示している。また、図2は、従来のシステムのネットワーク印刷において、複数のクライアント端末コンピュータからネットワークプリンタに対して印刷する場合の問題点の説明図である。また、図3は、従来のシステムのネットワーク印刷の通信セッション・フロー図を示している。
図1において、クライアント端末コンピュータ100のアプリケーション・プログラム110から印刷を実行すると、プリンタドライバ120を介して、プリントスプーラ領域130に印刷ジョブ131が格納され、プリンタドライバ120に関連付けられたポートモニタ・プログラム140が起動される。ポートモニタ・プログラム140は、プリントスプーラ領域130から印刷ジョブ131を読み込み、ネットワークプリンタ300との間で通信セッション(本明細書では、通信セッションを、データ転送の開始や終了にかかわる一連の過程と定義する。)を確立する。かかる通信セッションを確立すると、ポートモニタ・プログラム140は、印刷ジョブ131をネットワークプリンタ300に送信し、ネットワークプリンタ300は印刷ジョブ131を印刷出力する。
ここで、クライアント端末コンピュータ100のアプリケーション・プログラム110から複数の印刷が連続して実行されると、プリントスプーラ領域130に複数の印刷ジョブ131,132,・・・が格納される。そして、プリンタドライバ120に関連付けられたポートモニタ・プログラム140が、印刷ジョブごとに複数回起動される。ポートモニタ・プログラム140は、ネットワークプリンタ300との間で印刷ジョブ毎に通信セッションを確立して、印刷ジョブ131,132,・・・をネットワークプリンタ300に送信する。つまり、図3に示されるようにネットワークプリンタとの間で確立される通信セッションは印刷ジョブ毎に行われるのである。
図3を用いて詳細に説明する。クライアント端末コンピュータ100のポートモニタ・プログラム140は、印刷ジョブ131を読み込むとネットワークプリンタ300に対してコネクト要求を行う(ステップS31)。これを受けてネットワークプリンタ300はコネクト応答を行う(ステップS32)。これにより通信セッションが確立される。通信セッションが確立すると、クライアント端末コンピュータ100のポートモニタ・プログラム140は、印刷ジョブ131をネットワークプリンタ300に送信する(ステップS41)。ここでポートモニタ・プログラム140は印刷ジョブ131を処理するために起動されたので、プリントスプーラ領域130に他の印刷ジョブ132が残っている場合でも、印刷ジョブ131の送信処理が完了すれば、ネットワークプリンタ300に対して通信セッションの終了処理を行う。具体的には、ポートモニタ・プログラム140はディスコネクト要求を送信し(S51)、これを受けてネットワークプリンタ300はディスコネクト応答を行う(S52)。これにより通信セッションが終了する。ここでプリントスプーラ領域130に印刷ジョブ132が残っている場合は、当該印刷ジョブ132に対して再びポートモニタ・プログラム140が起動され同様の処理を行う。
従って、ネットワークプリンタ300において、クライアント端末コンピュータ100からの複数印刷ジョブを処理中に、他のクライアント端末コンピュータのアプリケーション・プログラムから印刷を実行されると、以下に説明するように、他のクライアント端末コンピュータの印刷ジョブがクライアント端末コンピュータ100の複数印刷ジョブの途中に割り込む場合が生じるのである。
図2を用いてこれを説明する。まず、クライアント端末コンピュータ100のアプリケーション・プログラム110から印刷を実行する。このとき、プリントスプーラ領域130には複数の印刷ジョブ131,132,・・・が格納されたとする。これは、印刷対象データの容量が大きく複数の印刷ジョブに分割された場合、またはユーザが短時間に複数の印刷指示を行った場合などに生じる。印刷ジョブ131,132,・・・は、先に説明したようにポートモニタ・プログラム140によって個別に処理されるので、まず、ポートモニタ・プログラム140は、印刷ジョブ131を送信するための通信セッションを確立する。
ここで、クライアント端末コンピュータ100の通信セッションが確立した後に、クライアント端末コンピュータ200のポートモニタ・プログラム240から印刷ジョブ231のための通信セッションのコネクト要求が行われたとする。この場合、ネットワークプリンタ300は、既に、クライアント端末コンピュータ100との通信セッションを確立しているので、かかる通信セッションを確立している間は、クライアント端末コンピュータ100の専有状態となっている。従って、ネットワークプリンタ300は、クライアント端末コンピュータ200から通信セッションのコネクト要求があると、コネクト応答を行い、通信セッションの確立はするが、印刷ジョブ231を受信待ちの状態とする。そして、クライアント端末コンピュータ100のポートモニタ・プログラム140が印刷ジョブ131の通信セッションを終了すると、待ち状態となっていたクライアント端末コンピュータ200からの印刷ジョブ231の受信処理を行う。そして、クライアント端末コンピュータ200の通信セッション終了までクライアント端末コンピュータ200の専有状態となる。その後、クライアント端末コンピュータ100の印刷ジョブ132の受信処理が行われる。
ネットワークプリンタ300は受信した印刷ジョブを受信した順番で印刷出力するので、その結果、印刷ジョブ131と132の間に他のクライアント端末コンピュータ200の印刷ジョブ231が割り込むのである。このように、従来のネットワーク印刷においては、ネットワークプリンタ300との間で印刷ジョブ毎に通信セッションを確立しているので、図2に示すように、印刷ジョブ231が印刷ジョブ131,132,・・・の途中に割り込まれるのである。
こうした状況になると、他のクライアント端末コンピュータ200の印刷物が、クライアント端末コンピュータ100の印刷物に混じって印刷されることになる。
また、クライアント端末コンピュータ100において複数のアプリケーション・プログラムが同時に印刷を実行した場合も同様な状態を生じることとなる。
本発明は、上記の問題点に鑑みてなされたものであり、複数のクライアント端末コンピュータからネットワークプリンタに対して、複数の印刷ジョブの処理を行った場合において、印刷ジョブと印刷ジョブとの間に、他のクライアント端末コンピュータの印刷ジョブが割り込まれることのない印刷ジョブ管理プログラムおよび印刷ジョブ管理システムを提供することを目的としている。
上記の目的を達成するため、本発明は、印刷ジョブ毎にネットワークの通信セッションを張るのではなく、1回の通信セッションで複数の印刷ジョブを送信するようにし、同一のクライアント端末コンピュータの複数の印刷ジョブの間に、他のクライアント端末コンピュータからの印刷ジョブを割り込ませないようにするものである。
このために、本発明の印刷ジョブ管理プログラムは、印刷を指示する1乃至複数のクライアント端末コンピュータと印刷を実行する1乃至複数のネットワークプリンタとがネットワークを介して接続され、前記クライアント端末コンピュータから印刷指示された印刷ジョブを前記ネットワークプリンタにて印刷するネットワーク印刷システムにおいて、前記クライアント端末コンピュータに実行させるプログラムであって、以下の(a)〜()のステップを実行させる。
(a)印刷ジョブを格納する第2のプリントスプーラ領域を確保するステップ
(b)第1のプリントスプーラ領域にある印刷ジョブを第2のプリントスプーラ領域に移動し格納するステップ
(c)第2のプリントスプーラ領域に印刷ジョブが存在し、且つ、ネットワークプリンタとの通信セッションが確立していない場合は、ネットワークプリンタとの通信セッションを開始するステップ
d)ネットワークプリンタに対してステータス要求を行い、ネットワークプリンタから専有信号を受信した場合、ネットワークプリンタを専有しているクライアント端末コンピュータを特定し、ネットワークプリンタを専有しているクライアント端末コンピュータに対して印刷ジョブを送信するステップ
e)ネットワークプリンタとの通信セッションが確立した場合は、第2のプリントスプーラ領域にある印刷ジョブをネットワークプリンタに送信するステップ
f)ネットワーク上の他のクライアント端末コンピュータから印刷ジョブを受付け、他のクライアント端末コンピュータの印刷ジョブを第2のプリントスプーラ領域に格納するステップ
)第2のプリントスプーラ領域に印刷ジョブが存在するか否かを確認するステップ
)第2のプリントスプーラ領域に印刷ジョブが存在する間は前記()乃至前記()の処理を行うステップ
)第2のプリントスプーラ領域に印刷ジョブが存在しない場合、ネットワークプリンタとの通信セッションを終了するステップ
印刷を指示する1乃至複数のクライアント端末コンピュータと印刷を実行する1乃至複数のネットワークプリンタとがネットワークを介して接続され、前記クライアント端末コンピュータから印刷指示された印刷ジョブを前記ネットワークプリンタにて印刷するネットワーク印刷システムにおいては、アプリケーション・プログラムとプリンタドライバとプリントスプーラ領域(第1のプリントスプーラ領域)を備えており、アプリケーション・プログラムから印刷指示を受けたタイミングで、ポートモニタ・プログラムが呼出され、ネットワークプリンタにプリントスプーラ領域に存在する印刷ジョブを送信している。
本発明の印刷ジョブ管理プログラムは、印刷ジョブを格納する第2のプリントスプーラ領域を確保するステップ(a)を実行させる。
第2のプリントスプーラ領域を確保するのは、第1のプリントスプーラ領域に格納された印刷ジョブの処理において、印刷ジョブ毎に上記ポートモニタ・プログラムが呼出され、ネットワークプリンタに送信されているのを回避するためである。
すなわち、第2のプリントスプーラ領域を確保して、第1のプリントスプーラ領域に格納された印刷ジョブ毎に呼出されるポートモニタ・プログラムに、ネットワークプリンタに印刷ジョブを送信させるのではなく、第1のプリントスプーラ領域にある印刷ジョブを第2のプリントスプーラ領域に移動し格納するステップ(b)を行わせるのである。
そして、第2のプリントスプーラ領域内に格納された複数の印刷ジョブを纏めて、1回の通信セッションでネットワークプリンタに送信するのである。
第2のプリントスプーラ領域に印刷ジョブが存在し、且つ、ネットワークプリンタとの通信セッションが確立していない場合は、ネットワークプリンタとの通信セッションを開始するステップ(c)としたのは、第2のプリントスプーラ領域に連続した印刷ジョブが格納されたときに、既にネットワークプリンタとの通信セッションが確立している場合、ネットワークプリンタとの通信セッションを新たに開始しないで、先に開始された通信セッションの中で印刷ジョブをネットワークプリンタに送信するためである。
そして、第2のプリントスプーラ領域にある印刷ジョブをネットワークプリンタに送信するステップ()において、確立した通信セッションにより印刷ジョブがネットワークプリンタに送信される。
第2のプリントスプーラ領域に印刷ジョブが存在するか否かを確認するステップ()としたのは、印刷ジョブを送信した後に他の印刷ジョブが第2のプリントスプーラ領域に存在する場合には、通信セッションを終了することなく、継続して既に確立した通信セッションを利用して印刷ジョブを送信するためである。
こうして、第2のプリントスプーラ領域に印刷ジョブが存在する間は前記)乃至)の処理を行うステップ()を行わせるのである。
そして、第2のプリントスプーラ領域に印刷ジョブが存在しない場合、ネットワークプリンタとの通信セッションを終了するステップ()としたのは、第2のプリントスプーラに印刷ジョブがなくなったときには、ネットワークプリンタの専有状態を解除し、通信セッションを確立し待ち状態となっている他のクライアント端末コンピュータにネットワークプリンタの使用権を与えるために通信セッションを終了するためである。
ここで、上記ステップ(a)と(c)〜()を備える部分のプログラムは、ポートモニタ・プログラムと区別すべく、印刷サービス・プログラムと定義する。
本発明の印刷ジョブ管理プログラムにおいてネットワークプリンタに対する印刷は、文書ソフトウェアや帳票ソフトウェアなどのアプリケーションから印刷を行うと、標準のプリントスプーラ領域(第1のプリントスプーラ領域)に印刷ジョブが格納され、プリンタドライバに関連付けられたポートモニタ・プログラムが起動される。ポートモニタ・プログラムは、第1のプリントスプーラ領域から印刷ジョブを読み込み、第2のプリントスプーラ領域に印刷ジョブを格納する。印刷サービス・プログラムは常駐しており、周期的に第2のプリントスプーラ領域の状態を監視する。第2のプリントスプーラ領域に印刷ジョブが格納されると印刷サービス・プログラムが第2のプリントスプーラ領域に格納されている印刷ジョブを読み込み、ネットワークプリンタに印刷ジョブを送信する。印刷サービス・プログラムは、印刷が完了しても、第2のプリントスプーラ領域に印刷ジョブが存在している間は、ネットワークの通信セッションを確立した状態を保持する。印刷サービス・プログラムは、第2のプリントスプーラ領域に印刷ジョブがなくなったときに、ネットワークの通信セッションを終了する。
本発明の印刷ジョブ管理プログラムは、クライアント端末コンピュータにインストールするだけで、ネットワークプリンタは既存のまま変更することなく、複数の印刷ジョブの印刷の際に、他のクライアント端末コンピュータからの印刷ジョブの割り込みを防止することができるのである。
ここで、上記ステップ(i)において、第2のプリントスプーラ領域に印刷ジョブが存在しない場合にすぐに通信セッションを終了するのでなく、一定時間待って終了させるのでも構わない。これは、印刷ジョブによっては、その内容により非常に短時間で処理を終えるものもあり、アプリケーションからの連続した印刷指示であっても、次の印刷指示前に前回の印刷処理を終えてしまう場合があるからである。また、ユーザが、短時間の間に複数回、データ量の少ない印刷対象データの印刷指示を行った場合も同様のことがいえる。これらの場合、ユーザが連続印刷を行ったつもりでも、第2のプリントスプーラ領域に格納される印刷ジョブの間に間隔を生じてしまい、他のクライアント端末コンピュータからの印刷ジョブの混在を招いてしまうからである。
また、タイマーが所定時間を経過する前に印刷ジョブが第2のプリントスプーラ領域に格納された場合は、所定時間を待っている間に新しい印刷ジョブが第2のプリントスプーラ領域に格納されたとして、連続した印刷ジョブとして取り扱うためである。
そして、タイマーが所定時間を経過した場合、ネットワークプリンタとの通信セッションを終了するステップとし、所定時間が経過したのち、通信セッションを終了し、ネットワークプリンタの専有を解除する。すなわち、第2のプリントスプーラ領域内に印刷ジョブが無くなって所定時間が経過した状態を、連続した印刷ジョブが無くなったと判断するとしたのである。
このように、印刷ジョブによっては、印刷データ内容によって非常に短時間で処理を終えるものもあり、アプリケーションからの連続した印刷指示であっても、次の印刷指示前に前回の印刷処理を終えてしまい、連続した印刷ジョブとはならない場合があるので、第2のプリントスプーラ領域内に印刷ジョブが無くなった場合でも、所定時間経過するまでは、ネットワークプリンタとの通信セッションを確立したまま維持することで、印刷ジョブに短時間で処理を終えるものが存在した場合であっても、連続した印刷ジョブとして処理できるようにしたのである。
また、本発明の印刷ジョブ管理プログラムは、更に、クライアント端末コンピュータの画面操作により、第2のプリントスプーラ領域にある印刷ジョブを制御するステップを実行させるものでもよい
通常のプリントスプーラ領域では、印刷ジョブはFIFO(First-In First-Out)方式で、格納した印刷ジョブを、古く格納した順に取り出すものである。しかしながら、第2のプリントスプーラ領域では、クライアント端末コンピュータのユーザに対し、GUI(Graphical User Interface)により、第2のプリントスプーラ領域にある印刷ジョブの制御(順序の変更や削除など)を操作できるようにしたものである。すなわち、印刷ジョブを操作できるようにし、ユーザの利便性の向上を図るものである。
また、本発明の印刷ジョブ管理プログラムの上記ステップ(f)は、ネットワーク上の他のクライアント端末コンピュータから印刷ジョブを受付け、他のクライアント端末コンピュータの印刷ジョブを第2のプリントスプーラ領域に格納するステップ更にクライアント端末コンピュータに実行させるものである。
かかる構成により、ネットワーク上の他のクライアント端末コンピュータから、例えば緊急の優先度の高い印刷ジョブが生じた場合に、ネットワークプリンタに現に印刷を行っているクライアント端末コンピュータに対して、当該優先度の高い印刷ジョブを送り、当該クライアント端末コンピュータが当該印刷ジョブを第2のプリントスプーラ領域に格納したものである。
また、本発明の印刷ジョブ管理プログラムの上記ステップ(d)は、ネットワークプリンタに対してステータス要求を行い、ネットワークプリンタから専有信号を受信した場合、ネットワークプリンタを専有しているクライアント端末コンピュータを特定、ネットワークプリンタを専有しているクライアント端末コンピュータに対して印刷ジョブを送信するステップ更にクライアント端末コンピュータに実行させるものである。
ステータス要求に対する専有信号とは、ネットワークプリンタがクライアント端末コンピュータとの通信セッションを確立し、かつ当該クライアント端末コンピュータの専有状態となっていることを示す信号のことである。例えば、Busy信号があげられるが、これはあくまでも一例であり、ネットワークプリンタの機種や仕様によって異なるものである。
ここで、ネットワークプリンタを専有しているクライアント端末コンピュータの情報を取得する方法としては、ネットワーク上のクライアント端末コンピュータに同報通信(ブロードキャスト通信)などで問合せる方法がある。また、ネットワークプリンタが通信セッションを確立し現に印刷ジョブを受信中のクライアント端末コンピュータのホスト名やネットワークアドレスなどの情報を認識し、問合せのあったクライアント端末コンピュータに返信する方法もある。
また、本発明の印刷ジョブ管理プログラムは、第2のプリントスプーラ領域が、ユーザアカウント毎にスプール領域を割り当てられることが好ましい
第2のプリントスプーラ領域が、ユーザアカウント毎にスプール領域を割り当てられるとしたのは、単一のクライアント端末コンピュータのユーザアカウントが短時間で変更された場合、第2のプリントスプーラ領域内部で印刷ジョブの混在が発生するので、これを回避するためにユーザアカウント毎にスプール領域を割り当てたものである。
次に、本発明の印刷ジョブ管理システムは、印刷を指示する1乃至複数のクライアント端末コンピュータと印刷を実行する1乃至複数のネットワークプリンタとがネットワークを介して接続され、クライアント端末コンピュータから印刷指示された印刷ジョブをネットワークプリンタにて印刷する印刷ジョブ管理システムであって、以下の(A1)〜(A15)の手段を備える。
クライアント端末コンピュータは、次の(A1)〜(A13)の手段を備える。
(A1)印刷ジョブを格納する第2のプリントスプーラ領域を確保する手段
(A2)第1のプリントスプーラ領域にある印刷ジョブを第2のプリントスプーラ領域に移動し格納する手段
(A3)ネットワーク上の他のクライアント端末コンピュータから印刷ジョブを受付ける手段
(A4)他のクライアント端末コンピュータの印刷ジョブを第2のプリントスプーラ領域に格納する手段
(A5)第2のプリントスプーラ領域に印刷ジョブが存在し、且つ、ネットワークプリンタとの通信セッションが確立していない場合は、ネットワークプリンタとの通信セッションを開始する手段
(A6)ネットワークプリンタに対してステータス要求を行い、ネットワークプリンタから専有信号を受信した場合、ネットワークプリンタを専有しているクライアント端末コンピュータを特定し、ネットワークプリンタを専有しているクライアント端末コンピュータに対して印刷ジョブを送信する手段
A7ネットワークプリンタとの通信セッションが確立した場合は、第2のプリントスプーラ領域にある印刷ジョブをネットワークプリンタに送信する手段
A8)第2のプリントスプーラ領域に印刷ジョブが存在するか否かを確認する手段
(A9)ネットワーク上の他のクライアント端末コンピュータから印刷ジョブを受付け、他のクライアント端末コンピュータの印刷ジョブを第2のプリントスプーラ領域に格納する手段
(A10)第2のプリントスプーラ領域に印刷ジョブが存在する間は前記(A7)乃至(A9)の処理を行う手段
(A11)第2のプリントスプーラ領域に印刷ジョブが存在しない場合、タイマーを開始する手段
(A12)タイマーが所定時間を経過する前に印刷ジョブが第2のプリントスプーラに格納された場合は、前記(A7)乃至(A11)の処理を行う手段
(A13)タイマーが所定時間を経過した場合、ネットワークプリンタとの通信セッションを終了する手段
また、ネットワークプリンタは、次の(A14)および(A15)の手段を備える。
(A14)クライアント端末コンピュータからステータス要求を受信した場合に、ステータス応答を返信する手段
(A15)クライアント端末コンピュータから専有中のクライアント端末コンピュータの問合せを受けた場合、専有中のクライアント端末コンピュータの識別情報を返信する手段
本発明に係る印刷ジョブ管理プログラムおよび印刷ジョブ管理システムでは、複数のクライアント端末コンピュータからネットワークプリンタに対して、複数の印刷ジョブの処理を行った場合において、印刷ジョブと印刷ジョブとの間に、他のクライアント端末コンピュータの印刷ジョブが割り込まれること無く、複数の印刷ジョブが連続して印刷処理できるといった効果を有する。
また、本発明に係る印刷ジョブ管理プログラムおよび印刷ジョブ管理システムでは、複数のクライアント端末コンピュータからネットワークプリンタに対して、複数の印刷ジョブの処理を行った場合において、印刷ジョブと印刷ジョブとの間に、他のクライアント端末コンピュータの印刷ジョブが割り込まれることのないプログラムおよびシステムを提供するとともに、特定の印刷ジョブを優先的に印刷する必要が生じた場合には、当該印刷ジョブを割り込ませて優先的に印刷出力することができるといった効果を有する。
以下、本発明の実施形態について、図を参照しながら詳細に説明する。ただし、本発明の範囲は、図示例に限定されるものではない。
図4は、実施例1の印刷ジョブ管理プログラムにおけるネットワーク印刷の機能ブロック図を示している。
クライアント端末コンピュータ100は、ネットワーク10を介して、ネットワークプリンタ300と通信可能に接続されている。クライアント端末コンピュータ100は、一般的なパーソナルコンピュータであり、以下では、OS(オペレーティング・システム)としてWindows(登録商標)XPが稼動しているものを一例として説明する。なお、本発明は他のOSでも適用可能である。ネットワークプリンタ300は、クライアント端末コンピュータ100から送信された印刷ジョブを受信して印刷出力する。図4において、ネットワークプリンタ300はネットワーク10に直接接続されているが、プリンタと別体のプリントサーバを介してネットワーク10に接続されていても良い。この場合、プリントサーバがネットワークプリンタのネットワーク通信機能を担うことになる。
次に、クライアント端末コンピュータ100の内部構成について説明する。アプリケーション・プログラム110は、文書処理ソフトウェアや帳票処理ソフトウェアなどであり印刷対象データを作成または管理する。通常、ユーザは、アプリケーション・プログラム110のGUI(Graphical User Interface)を操作して印刷先ネットワークプリンタと印刷対象データを指定し印刷指示を行う。プリンタドライバ120は、印刷対象データをネットワークプリンタ300にて出力可能な形式(PDL:Page Description Language)へと変換し、印刷ジョブ131を生成する。第1のプリントスプーラ領域130、第2のプリントスプーラ領域160、ポートモニタ・プログラム150、印刷サービス・プログラム170に関する説明は後述する。
次に、図4を参照しながら本発明の動作プロセスの概要を説明する。ユーザは、クライアント端末コンピュータ100のアプリケーション・プログラム110を操作して、印刷先ネットワークプリンタ(ここではネットワークプリンタ300とする)と印刷対象データを指定し印刷を指示する。クライアント端末コンピュータ100のアプリケーション・プログラム110から印刷要求が出されると、プリンタドライバ120が起動して、印刷対象データをネットワークプリンタ300にて印刷出力可能な形式へと変換し、印刷ジョブ131として第1のプリントスプーラ領域130に格納する。
ここで、第1のプリントスプーラ領域130は、従来のネットワーク印刷で用いられていたOS標準のプリントスプーラ領域(図1に示すプリントスプーラ領域130)のことである。後述する第2のプリントスプーラ領域と区別するために第1のプリントスプーラ領域と呼ぶことにする。第1のプリントスプーラ領域130に印刷ジョブが格納されると、プリンタドライバ120に関連付けられたポートモニタ・プログラム150が起動する。このポートモニタ・プログラム150は、印刷ジョブ毎に起動されるものである。
ポートモニタ・プログラム150は、第1のプリントスプーラ領域130に格納された印刷ジョブ131を、第2のプリントスプーラ領域160へと移動して処理を終了する。本発明においては、従来のネットワーク印刷と異なり、ポートモニタ・プログラム150はネットワークプリンタ300と通信セッションを確立することはなく、第1のプリントスプーラ領域130から第2のプリントスプーラ領域160に印刷ジョブを移動する機能のみを担う。
次に、印刷サービス・プログラム170は、第2のプリントスプーラ領域160に格納された印刷ジョブ131を取得しネットワークプリンタ300との通信セッションを確立する。印刷サービス・プログラム170は、常駐プログラムであり、クライアント端末コンピュータ100が起動してから終了するまでの間、常に処理をおこなっている。
この印刷サービス・プログラム170は、クライアント端末コンピュータ100の初期化時に第2のプリントスプーラ領域160を確保する。そして、第2のプリントスプーラ領域160に印刷ジョブが格納されていないかを周期的にチェックする。第2のプリントスプーラ領域160に印刷ジョブが格納されていれば、ネットワークプリンタ300と通信セッションを開始して印刷ジョブを送信するのである。
印刷サービス・プログラム170は、通信セッションを確立し、ネットワークプリンタ300に印刷ジョブ131を送信した後、再び、第2のプリントスプーラ領域160に印刷ジョブが存在するか否かを判断する。もし別の印刷ジョブが第2のプリントスプーラ領域160に格納されていた場合(例えば印刷ジョブ132とする)、印刷サービス・プログラム170はネットワークプリンタ300との通信セッションを終了することなく、続けて別の印刷ジョブ132をネットワークプリンタ300へと送信する。
一方、ネットワークプリンタ300は、クライアント端末コンピュータ100との通信セッションが継続的に確立されているので、この間に他のクライアント端末コンピュータから通信セッションの確立要求を受けても、これを待たせる処理(通信セッションの確立はするが印刷ジョブの受信は待たせる)を行う。このように、通信セッションが確立している間は当該通信セッションを確立したクライアント端末コンピュータ以外のクライアント端末コンピュータからの印刷ジョブの受信を待たせるので、その結果、ネットワークプリンタ300にて印刷出力される印刷ジョブの混在を防ぐことができる。なお、印刷サービス・プログラム170は、第2のプリントスプーラ領域160に印刷ジョブがないことを判断してからネットワークプリンタ300との通信セッションを終了する。ここで、通信セッション終了のタイミングとして、第2のプリントスプーラ領域160に印刷ジョブがないことを確認すれば直ちに通信セッションの終了処理を行っても良いし、また、後述するように第2のプリントスプーラ領域に印刷ジョブがないことを確認してから所定時間を待って通信セッションの終了処理を行っても良い。
上記の構成としているため、クライアント端末コンピュータ100において、1つのアプリケーションから複数の印刷ジョブが発生した場合や、複数のアプリケーションから同時に複数の印刷ジョブが発生した場合に、第2のプリントスプーラ領域160にこれら複数の印刷ジョブが格納され、ネットワークプリンタ300との間で一度に複数の印刷ジョブを送信することができるのである。
なお、ここでいう同時とは厳密に同タイミングということではなく、1つの印刷ジョブが終了したのち一定時間が経過する前に別の印刷ジョブが発生するといった意味で用いている。
すなわち、図4において、符号Aで示す点線で囲まれた部分が従来から存在する機能ブロックの部分であり、また、符号Bで示す点線で囲まれた部分が本発明で追加された機能ブロックの部分である。
追加されたプログラムは2つで、印刷サービス・プログラム170が、
(a)印刷ジョブを格納する第2のプリントスプーラ領域を確保するステップ
(c)第2のプリントスプーラ領域に印刷ジョブが存在し、且つ、ネットワークプリンタとの通信セッションが確立していない場合は、ネットワークプリンタとの通信セッションを開始するステップ
(d)第2のプリントスプーラ領域にある印刷ジョブをネットワークプリンタに送信するステップ
(e)第2のプリントスプーラ領域に印刷ジョブが存在するか否かを確認するステップ
(f)第2のプリントスプーラ領域に印刷ジョブが存在する間は前記d)乃至f)の処理を行うステップ
(g)第2のプリントスプーラ領域に印刷ジョブが存在しない場合、ネットワークプリンタとの通信セッションを終了するステップ
を実施し、
ポートモニタ・プログラム150が、
(b)第1のプリントスプーラ領域にある印刷ジョブを第2のプリントスプーラ領域に移動し格納するステップ
を実施する。
なお、後述する、第2のプリントスプーラ領域160に印刷ジョブがなくなってから所定時間を待って通信セッションを終了するという処理を入れるならば、印刷サービス・プログラムは、上記(a)〜(f)のステップに加えて、
(g)第2のプリントスプーラ領域に印刷ジョブが存在しない場合に、タイマーを開始するステップ
(h)タイマーが所定時間を経過する前に印刷ジョブが第2のプリントスプーラ領域に格納された場合は、前記d)乃至h)の処理を行うステップ
(i)タイマーが所定時間を経過した場合、ネットワークプリンタとの通信セッションを終了するステップ
を実施する。
このように、ポートモニタ・プログラム150がネットワークプリンタ300と通信セッションを確立するのではなく、印刷サービス・プログラム170がネットワークプリンタ300と通信セッションを確立して、第2のプリントスプーラ領域160に格納された印刷ジョブをネットワークプリンタ300に送信することにしたものである。
次に、図5を用いてクライアント端末コンピュータ100とネットワークプリンタ300との間で確立される通信セッションについて説明する。図5は、本システムのネットワーク印刷の通信セッション・フロー図である。
先ず、クライアント端末コンピュータ100の印刷サービス・プログラム170は、周期的に第2のプリントスプーラ領域160を監視している。第2のプリントスプーラ領域160に印刷ジョブが格納されると、印刷サービス・プログラム170はこれを検知し、ネットワークプリンタ300に対してコネクト要求を送信する(ステップS31)。ネットワークプリンタ300では、通信セッションが確立できる場合はコネクト応答を行う(ステップS32)。これにより通信セッションが確立される。ネットワークプリンタ300との通信セッションが確立されると、印刷サービス・プログラム170が、第2のプリントスプーラ領域160に格納されている複数の印刷ジョブ1,2,・・・nを送信する。ここで、ネットワークプリンタ300が、既に他のクライアント端末コンピュータと通信セッションを確立し印刷ジョブの受信処理を行っている場合は、クライアント端末コンピュータ100の印刷ジョブ1,2,・・・nの送信が待たされる。
そして、印刷サービス・プログラム170は、第2のプリントスプーラ領域160内に印刷ジョブがなくなれば、ディスコネクト要求を送信する(ステップS51)。これを受けてネットワークプリンタ300はディスコネクト応答を返信する(ステップS52)。これにより、ネットワークプリンタとの通信セッションを終了する。
なお、後述するように、第2のプリントスプーラ領域160内に印刷ジョブがなくなってから所定時間を計測して通信セッションを終了させても良い。また、通信セッション確立手順としてコネクト要求とコネクト応答を行うとしたが、この手順は通信プロトコルによって異なる。例えば、TCP/IPプロトコルを用いた通信セッションの確立は、3ウェイハンドシェイクの手順となる。通信セッションの終了処理も同様である。
このように、本発明では、第2のプリントスプーラ領域160に複数の印刷ジョブが格納されている場合には、1回の通信セッションで複数の印刷ジョブ1,2,・・・nを送信できるようにしている。これに対して、従来のネットワーク印刷では、印刷ジョブごとに起動されるポートモニタ・プログラムが通信セッションの確立を行っていたので、1つの印刷ジョブの送信が終了すると、通信セッションも切断されていた(図3参照)。本発明では、印刷サービス・プログラム170が通信セッションの管理と印刷ジョブの送信を行うことで、複数の印刷ジョブを1つの通信セッションで送信するものとしたのである。
図6は本発明の印刷ジョブ管理プログラムにおけるポートモニタ・プログラム150のフローチャート図を、図7は本発明の印刷ジョブ管理プログラムにおける印刷サービス・プログラム170のフローチャート図を示している。
本発明の印刷ジョブ管理プログラムは、図4において符号Bで示された点線で囲まれた部分のプログラムを称している。
先ず、図6を用いてポートモニタ・プログラム150の動作を説明する。
ポートモニタ・プログラム150は、第1のプリントスプーラ領域から第2のプリントスプーラ領域に印刷ジョブを移動する処理(ステップS11)だけを行っている。これは、ポートモニタ・プログラムが、第1のプリントスプーラ領域に格納された印刷ジョブ毎に起動するため、処理を簡素化したものである。
次に、図7を用いて印刷サービス・プログラムの処理について説明する。ここで、所定時間を待って通信セッションを終了する処理についても併せて説明する。
印刷サービス・プログラム170は、先ず初期化処理として、クライアント端末コンピュータ100が起動したときに、第2のプリントスプーラ領域160を確保する処理(図示せず)を行い、定常処理として、第2のプリントスプーラ領域160に印刷ジョブが存在するかを監視する処理(ステップS21)を行っている。
第2のプリントスプーラ領域160に印刷ジョブが存在する場合、ネットワークプリンタ300に対してコネクト要求を出し通信セッションを開始(オープン)し(ステップS22)、第2のプリントスプーラ領域160に格納された印刷ジョブをネットワークプリンタ300に送信する(ステップS23)。印刷ジョブの送信が終了すると、再び第2のプリントスプーラ領域160に印刷ジョブが存在するか否かを判断し(ステップS24)、存在すれば印刷ジョブの送信処理を行う(ステップS23)。このように、第2のプリントスプーラ領域160に格納された印刷ジョブがなくなるまで、印刷ジョブの送信を繰り返す。
そして、第2のプリントスプーラ領域160に印刷ジョブが無くなった場合、所定時間経過するまで待って(ステップS25)、通信セッションを終了する(ステップS26)。所定時間経過するまで待つ方法としてタイマーを用いている。所定時間が経過する前に、第2のプリントスプーラ領域160に印刷ジョブが格納された場合、タイマーの計測をリセットし、再び当該印刷ジョブを送信する(ステップS23)。そして第2のプリントスプーラ領域160を確認し(ステップS24)、印刷ジョブが存在しない場合は、再びタイマーを開始し、所定時間の経過を待つ(ステップS25)。所定時間が経過した場合、ネットワークプリンタ300との通信セッションを終了(クローズ)する(ステップS26)。なお、タイマーで所定時間の計測をしない場合は、ステップS25の処理が省略される。すなわち、ステップS24で印刷ジョブが存在しないと判断された場合は、ステップS26に進み、通信セッションが終了される。
次に、本発明のネットワーク印刷における割込み防止に関して、図8,9を参照して説明する。以下の説明図において、2台のクライアント端末コンピュータをそれぞれPC100,PC200で示している。
図8では、PC100内のアプリケーション・プログラムから印刷ジョブ11〜14が生成されネットワークプリンタ300に送信されようとする状態、およびPC200内のアプリケーション・プログラムから印刷ジョブ21が生成されネットワークプリンタ300に送信されようとする状態を模式的に示している。
まず、PC100とネットワークプリンタ300との間で先に通信セッションが確立したとする。
図9に示されるように、PC100においては第2のプリントスプーラ領域160の印刷ジョブ11〜14を、1回の通信セッションでネットワークプリンタ300にまとめて送信を行う。ここで、PC100との通信セッション確立中に、PC200から通信セッションのコネクト要求を受信した場合、ネットワークプリンタ300は、コネクト応答を返信し通信セッションは確立するが、印刷ジョブ21の受信処理を待たせる。そしてPC100とネットワークプリンタ300との通信セッションが終了したときに、待たせておいた印刷ジョブ21の受信処理を開始する。
従って、ネットワークプリンタ300からは、PC100の印刷物がまとまって印刷出力することとなり、PC200の印刷物がPC100の印刷物に混在して印刷出力されることはない。
次に実施例2では、実施例1の印刷ジョブ管理プログラムに、クライアント端末コンピュータの画面操作により、第2のプリントスプーラ領域にある印刷ジョブを制御するステップを更にクライアント端末コンピュータに実行させる印刷ジョブ管理プログラムについて説明する。
図10に、実施例2の印刷ジョブ管理プログラムの機能ブロック図を示す。実施例1の印刷ジョブ管理プログラムの機能ブロック図と相違する点は、印刷ジョブ順序制御プログラム180が追加された点である。
ここで、印刷ジョブ順序制御プログラム180は、第2のプリントスプーラ領域160に格納されている印刷ジョブに対して、「停止」、「削除」、「入れ替え」の3つの処理操作を行うものである。まず「停止」は、第2のプリントスプーラ領域160の印刷ジョブの処理を一時停止する操作である。次に「削除」は、第2のプリントスプーラ領域160にある印刷ジョブを削除する操作である。そして「入れ替え」は、第2のプリントスプーラ領域160にある印刷ジョブの優先順位の変更を行う操作である。
印刷ジョブ順序制御プログラム180は、また、ユーザに対してGUI(Graphical User Interface)を提供する。GUIを提供するとは、例えば、印刷ジョブ順序操作ウィンドウ画面を表示端末(図示せず)に表示して、ユーザに印刷ジョブ操作を促すものである。ユーザは、印刷ジョブ順序制御プログラム180のGUIを操作して、印刷ジョブ操作を指示する。
このようにして、ユーザは、印刷処理の優先順位に応じて印刷順序を入れ替えたり、印刷指示後に印刷不要と判断した印刷ジョブを削除することができる。
印刷ジョブ順序制御プログラム180は、イベント駆動型のプログラムであり、ユーザからの操作イベント若しくは後述する実施例で説明する他のクライアント端末コンピュータからの印刷ジョブを受付けるといったイベントにより、第2のプリントスプーラ領域160の印刷ジョブを制御するのである。
次に実施例3では、本発明の印刷ジョブ管理プログラムにおける強制割込み機能について説明する。
図11は、実施例3の印刷ジョブ管理プログラムの機能ブロック図を示している。
上述した実施例2の印刷ジョブ管理プログラムの機能ブロック図と相違する点は、緊急ジョブ管理プログラム190が追加された点である。
ここで、緊急ジョブ管理プログラム190は、以下のステップをクライアント端末コンピュータに実行させるものである。
すなわち、ネットワーク上の他のクライアント端末コンピュータから印刷ジョブを受付けるステップと他のクライアント端末コンピュータの印刷ジョブを前記第2のプリントスプーラ領域に格納するステップとをクライアント端末コンピュータに実行させる。
また一方で、ネットワークプリンタに対してステータス要求を行い、ネットワークプリンタから専有信号を受信した場合、ネットワークプリンタを専有しているクライアント端末コンピュータを特定するステップと、ネットワークプリンタを専有しているクライアント端末コンピュータに対して印刷ジョブを送信するステップとをクライアント端末コンピュータに実行させる。
なお、他のクライアント端末コンピュータの印刷ジョブを前記第2のプリントスプーラ領域に格納するステップは、緊急ジョブ管理プログラム190が直接第2のプリントスプーラに印刷ジョブを格納しても良いし、印刷ジョブ順序制御プログラムを経由して格納しても良い。
実施例3の印刷ジョブ管理プログラムの処理フローについて、図12を参照しながら説明する。説明の前提として、PC100とネットワークプリンタ300との通信セッションが既に確立しており、PC100がネットワークプリンタ300を専有しているものとする。
(処理1)PC200の印刷サービス・プログラムは、第2のプリントスプーラ領域に印刷ジョブが格納されたことを検知すると、ネットワークプリンタ300との間に通信セッションを確立するため、コネクト要求を行う。
(処理2)ネットワークプリンタ300は、かかる要求に対してコネクト応答を行う。これにより通信セッションが確立する。
(処理3)PC200の印刷サービス・プログラムは、ネットワークプリンタに対して、ステータス要求を行う。
(処理4)PC100が既にネットワークプリンタ300を専有しているので、ネットワークプリンタ300からステータス応答としてBusy信号を受信する。
(処理5)割込印刷を行うかどうかを決定する。かかる決定には、ユーザが選択する方法と自動的に割込印刷を実行する方法とがあり、以下に場合を分けて説明する。
まず、ユーザが選択する方法を説明する。PC200の印刷サービス・プログラムはネットワークプリンタ300からBusy信号を受信した場合、その旨を印刷ジョブ順序制御プログラム280に伝える。印刷ジョブ順序制御プログラム280はGUIを有しているのでメッセージウインドウ等によりユーザに割込印刷を行うかどうかを伝える。ユーザは印刷ジョブ順序制御プログラム280を操作して割込印刷の指示を与える。割込印刷を行う場合、かかる指示は印刷ジョブ順序制御プログラム280を介して緊急ジョブ管理プログラム290へと伝えられる。割込印刷を行わない場合、PC200の通信セッションが終了するまで印刷ジョブの送信が待たされる。つまり実施例1の手順が続く。
次に、自動的に実行する方法は、ユーザに割込印刷の選択を促すことなく、ネットワークプリンタからBusy信号を受けると、いつでも割込印刷処理を行うものである。この場合、Busy信号を受信した印刷サービス・プログラムは、その旨を緊急ジョブ管理プログラム290へと伝える。この方法は、例えば、役員の端末コンピュータからの印刷の場合は必ず最優先となるよう設定するといったケースに適用できる。
(処理6)割込印刷を行うことが決定されると、緊急ジョブ管理プログラム290がネットワークプリンタを専有中のクライアント端末コンピュータを特定する。なお、特定する方法については後述する。ここでは、PC100が特定されるとする。
(処理7)ネットワークプリンタを専有中のクライアント端末コンピュータ(ここではPC100)が特定されたので、PC200の緊急ジョブ管理プログラム290は、印刷ジョブに緊急フラグを付与して、緊急フラグ付き印刷ジョブをPC100へ送信する。ここで、緊急フラグとは、優先印刷すべき印刷ジョブであることを示すために、印刷ジョブに付与する情報のことである。
(処理8)PC100の緊急ジョブ管理プログラム190は、緊急フラグ付き印刷ジョブを受信すると、これをPC100の印刷ジョブ順序制御プログラム180へと渡す。
(処理9)PC100の印刷ジョブ順序制御プログラム180は、受信した印刷ジョブを第2のプリントスプーラ領域160に格納する。この時、第2のプリントスプーラ領域160内の印刷ジョブの待ち行列のうち高い優先順位のところに格納する。
(処理10)PC100の印刷サービス・プログラムは、当該印刷ジョブをネットワークプリンタ300へ送信し印刷出力する。
以上(処理1)〜(処理10)のプロセスを経て、強制的に優先度(緊急度)の高い印刷ジョブを割り込ませて印刷を行うのである。
ここで、上記(処理6)ネットワークプリンタを使用中のクライアント端末コンピュータを特定する方法としては、ネットワーク上のクライアント端末コンピュータに同報通信(ブロードキャスト通信)やユニキャスト又はマルチキャスト通信を利用して問合せる方法や、ネットワークプリンタに問合せる方法があり、以下に具体的な動作プロセスを説明する。
まず、ブロードキャスト通信およびユニキャストもしくはマルチキャスト通信を利用する方法とは、図12において、PC200が、ネットワークプリンタ300からBusy信号を受け取った場合、PC200はネットワーク上の複数のクライアント端末コンピュータに対してネットワークプリンタ300を専有中かどうかの問合せを行う(図12の処理6a)。図12に示すように、PC100がネットワークプリンタ300を専有中とすると、PC100の緊急ジョブ管理プログラム190は専有中であるメッセージをPC200に応答する(図12の処理6b)。ここで、あらかじめ問合せをするクライアント端末コンピュータ群を登録している場合はユニキャスト又はマルチキャスト通信で行い、登録していない場合はブロードキャスト通信を利用する。
次に、ネットワークプリンタに問合せる方法について、図13−1〜図13−3を参照しながら説明する。なお、以下では、PC100とネットワークプリンタ300との通信セッションが既に確立しており、PC100がネットワークプリンタ300を専有しているものとする。
図13−1に示されるように、PC200はネットワークプリンタ300に対してコネクト要求を行い(ステップS71)、ネットワークプリンタ300はコネクト応答する(ステップS72)。これにより通信セッションを確立する。次に、PC200でステータス要求(ステップS81)に対してネットワークプリンタ300からBusy応答が返信された場合(ステップS82)、PC200からホスト情報の問合せ要求を出す(ステップS90)。ネットワークプリンタ300では、ネットワークプリンタ300を使用しているクライアント端末コンピュータのホスト情報(ホスト名、ネットワークアドレスなど)を返信する(ステップS91)。ここでは、PC100と通信セッションを確立しPC100の専有状態となっているので、PC100の情報を返信することになる。
次に、図13−2に示されるように、PC200はPC100に対して印刷ジョブ21に緊急フラグを付加して送信する。緊急フラグは、印刷ジョブ21を現在印刷中の印刷ジョブ11〜14に対して優先的に処理を行うように促すものである。
PC100では、図13−3に示されるように、第2のプリントスプーラ領域160の中の印刷ジョブの順番を入れ替えて、または印刷ジョブに付加された連番を付け替えて、または緊急フラグを有している印刷ジョブを最優先にデータ送信するようにして、印刷ジョブ21を強制的にPC100の印刷物に割り込ませて印刷させるのである。
図13−3においては、PC100の印刷ジョブ11が既にデータ転送を始めたタイミングで、PC200の印刷ジョブ21の要求が来たことから、PC100の第2のプリントスプーラ領域160の中の印刷ジョブの順番を印刷ジョブ11,12,13,14から印刷ジョブ11,21,12,13,14というように入れ替えている。
実施例3の印刷ジョブ管理プログラムでは、緊急フラグ付き印刷ジョブを受信した場合、これを第2のプリントスプーラ領域の印刷ジョブ待ち行列のうち優先度の高いところに格納するようにしたが、印刷ジョブの順序を変更することなく、印刷ジョブ待ち行列の一番後ろに格納するようにしても良い。この場合、順序変更を行わないので、緊急ジョブ管理プログラムは、印刷ジョブ順序制御プログラムを経由することなく、直接第2のプリントスプーラ領域にアクセスし印刷ジョブの格納を行っても良い。
次に実施例4では、本発明の印刷ジョブ管理プログラムにおける第2のプリントスプーラ領域がユーザアカウント毎にスプール領域を割り当てられる場合について説明する。
上述の実施例1の印刷ジョブ管理プログラムでは、同一クライアント端末コンピュータ内のユーザ毎の印刷ジョブ管理までは想定していない。同一クライアント端末コンピュータ上において、例えば、短いタイミングで、ユーザAが印刷指示を行い、ユーザを切り替えて、ユーザBが印刷指示を行い、ユーザを切り替えて、ユーザCが印刷指示を行い、さらにユーザを切り替えて、ユーザA,Cと再び印刷指示を行った場合を想定する。実施例1の印刷ジョブ管理プログラムでは、第2のプリントスプーラ領域に時系列順に格納されるため、印刷ジョブはA1,B1,C1,A2,C2と格納される。ここでは説明上、ユーザAの印刷ジョブをAn(n=1,2,・・)、ユーザBの印刷ジョブをBn(n=1,2,・・)、ユーザCの印刷ジョブをCn(n=1,2,・・)と表記する。印刷サービス・プログラム170は、第2のプリントスプーラ領域の印刷ジョブを順番にネットワークプリンタに送信するため、ユーザAの印刷とユーザBの印刷とユーザCの印刷が混同してしまうという問題が生じる。
実施例4の印刷ジョブ管理プログラムは、上記問題を解決するために、クライアント端末コンピュータ内部の第2のプリントスプーラ領域が、ユーザアカウント毎にスプール領域を割り当てられるものである。
図14に、実施例4の印刷ジョブ管理プログラムにおけるネットワーク印刷の機能ブロック図を示す。図14に示されるように、クライアント端末コンピュータ100内部の第2のプリントスプーラ領域160が、ユーザアカウント(ユーザA,ユーザB,ユーザC)毎にスプール領域を割り当てられる。
印刷サービス・プログラム170は、ユーザアカウント(ユーザA,ユーザB,ユーザC)毎のスプール領域に格納している印刷ジョブが複数あればそれらを連続してネットワークプリンタ300に送信する。図14の場合は、まずユーザA領域161の2つの印刷ジョブAをネットワークプリンタ300に送信し、次にユーザB領域162の1つの印刷ジョブBをネットワークプリンタ300に送信し、最後にユーザC領域163の2つの印刷ジョブCをネットワークプリンタ300に送信することとなる。
ここで、クライアント端末コンピュータ100内部の第2のプリントスプーラ領域160が、ユーザアカウント毎にスプール領域を割り当てられる替わりに、外部サーバのスプール領域に対して、ユーザアカウントごとにユーザ領域を割り当てることにしてもよい。
このように、ユーザアカウント毎にスプール領域を分離することにより、印刷ジョブが混在するということはない。なお、この場合、予めクライアント端末コンピュータ若しくは外部サーバに、ユーザアカウントを登録することが必要となる。
実施例1〜実施例4では、あるクライアント端末コンピュータがネットワークプリンタを専有している間、他のクライアント端末コンピュータからコネクト要求を受けた場合、コネクト応答を行い、通信セッションを確立していたが、コネクト応答を行わないように構成しても良い。すなわち、ネットワークプリンタが許可する通信セッション数は1本とし、この通信セッションが終了するまでは、他のクライアント端末コンピュータからのコネクト要求には応じないようにするのである。
実施例1〜実施例4では、印刷ジョブを、プリンタドライバで変換されたデータ形式であるとしたが、プリンタドライバで変換される前のデータ形式であっても良い。すなわち、クライアント端末コンピュータの第2のプリントスプーラ領域に格納される印刷ジョブは、特定のネットワークプリンタに特化したデータ形式ではなく、汎用的なデータ形式で格納されるのである。この場合、当該印刷ジョブを受信したネットワークプリンタにて、データの変換処理を行い、印刷出力可能な形式へと変換すれば良い。また、ネットワーク上にある他のサーバコンピュータにてデータの変換処理をさせるようにしても良い。
本発明の印刷ジョブ管理プログラムは、複数のクライアント端末コンピュータからネットワークプリンタに対して印刷するシステムに有用である。
従来のシステムのネットワーク印刷の機能ブロック図 従来のシステムのネットワーク印刷において、複数のクライアント端末コンピュータからネットワークプリンタに対して印刷する場合の問題点の説明図 従来のシステムのネットワーク印刷の通信セッション・フロー図 実施例1の印刷ジョブ管理プログラムにおけるネットワーク印刷の機能ブロック図 実施例1の印刷ジョブ管理プログラムにおけるネットワーク印刷の通信セッション・フロー図 実施例1の印刷ジョブ管理プログラムにおけるポートモニタ・プログラムのフローチャート図 実施例1の印刷ジョブ管理プログラムにおける印刷サービス・プログラムのフローチャート図 実施例1の印刷ジョブ管理プログラムにおける割込み防止の説明図(1) 実施例1の印刷ジョブ管理プログラムにおける割込み防止の説明図(2) 実施例2の印刷ジョブ管理プログラムにおけるネットワーク印刷の機能ブロック図 実施例3の印刷ジョブ管理プログラムにおけるネットワーク印刷の機能ブロック図 実施例3の印刷ジョブ管理プログラムにおける強制割込みフロー(ブロードキャストで問合せする場合)の説明図 実施例3の印刷ジョブ管理プログラムにおける強制割込みフロー(ネットワークプリンタに問合せする場合)の説明図(1) 実施例3の印刷ジョブ管理プログラムにおける強制割込みフロー(ネットワークプリンタに問合せする場合)の説明図(2) 実施例3の印刷ジョブ管理プログラムにおける強制割込みフロー(ネットワークプリンタに問合せする場合)の説明図(3) 実施例4の印刷ジョブ管理プログラムにおけるネットワーク印刷の機能ブロック図
符号の説明
100,200 クライアント端末コンピュータ
300 ネットワークプリンタ
10 通信ネットワーク
110,210 アプリケーション・プログラム
120,220 プリンタドライバ
130,230 プリントスプーラ領域
140,240 ポートモニタ・プログラム
131,132,231 印刷ジョブ
150 専用のポートモニタ・プログラム
160 第2のプリントスプーラ領域
170 印刷サービス・プログラム
180 印刷ジョブ順序制御プログラム
190 緊急ジョブ管理プログラム

Claims (2)

  1. 印刷を指示する1乃至複数のクライアント端末コンピュータと印刷を実行する1乃至複数のネットワークプリンタとがネットワークを介して接続され、前記クライアント端末コンピュータから印刷指示された印刷ジョブを前記ネットワークプリンタにて印刷するネットワーク印刷システムにおいて、前記クライアント端末コンピュータに実行させるプログラムであって、
    A)印刷ジョブを格納する第2のプリントスプーラ領域を確保するステップと、
    B)第1のプリントスプーラ領域にある印刷ジョブを前記第2のプリントスプーラ領域に移動し格納するステップと、
    C)前記第2のプリントスプーラ領域に印刷ジョブが存在し、且つ、前記ネットワークプリンタとの通信セッションが確立していない場合は、前記ネットワークプリンタとの通信セッションを開始するステップと、
    D)前記ネットワークプリンタに対してステータス要求を行い、前記ネットワークプリンタから専有信号を受信した場合、前記ネットワークプリンタを専有しているクライアント端末コンピュータを特定し、前記ネットワークプリンタを専有しているクライアント端末コンピュータに対して印刷ジョブを送信するステップと、
    E)前記ネットワークプリンタとの通信セッションが確立した場合は、前記第2のプリントスプーラ領域にある印刷ジョブを前記ネットワークプリンタに送信するステップと、
    F)ネットワーク上の他のクライアント端末コンピュータから印刷ジョブを受付け、前記他のクライアント端末コンピュータの印刷ジョブを前記第2のプリントスプーラ領域に格納するステップと、
    )前記第2のプリントスプーラ領域に印刷ジョブが存在するか否かを確認するステップと、
    )前記第2のプリントスプーラ領域に印刷ジョブが存在する間は前記)乃至)の処理を行うステップと、
    )前記第2のプリントスプーラ領域に印刷ジョブが存在しない場合、前記ネットワークプリンタとの通信セッションを終了するステップと、
    を前記クライアント端末コンピュータに実行させることを特徴とする印刷ジョブ管理プログラム。
  2. 印刷を指示する1乃至複数のクライアント端末コンピュータと印刷を実行する1乃至複数のネットワークプリンタとがネットワークを介して接続され、前記クライアント端末コンピュータから印刷指示された印刷ジョブを前記ネットワークプリンタにて印刷する印刷ジョブ管理システムであって、
    前記クライアント端末コンピュータは、
    A)印刷ジョブを格納する第2のプリントスプーラ領域を確保する手段と、
    B)第1のプリントスプーラ領域にある印刷ジョブを前記第2のプリントスプーラ領域に移動し格納する手段と、
    C)ネットワーク上の他のクライアント端末コンピュータから印刷ジョブを受付ける手段と、
    D)前記他のクライアント端末コンピュータの印刷ジョブを前記第2のプリントスプーラ領域に格納する手段と、
    E)前記第2のプリントスプーラ領域に印刷ジョブが存在し、且つ、前記ネットワークプリンタとの通信セッションが確立していない場合は、前記ネットワークプリンタとの通信セッションを開始する手段と、
    F)前記ネットワークプリンタに対してステータス要求を行い、前記ネットワークプリンタから専有信号を受信した場合、前記ネットワークプリンタを専有しているクライアント端末コンピュータを特定し、前記ネットワークプリンタを専有しているクライアント端末コンピュータに対して印刷ジョブを送信する手段と、
    前記ネットワークプリンタとの通信セッションが確立した場合は、前記第2のプリントスプーラ領域にある印刷ジョブを前記ネットワークプリンタに送信する手段と、
    )前記第2のプリントスプーラ領域に印刷ジョブが存在するか否かを確認する手段と、
    I)ネットワーク上の他のクライアント端末コンピュータから印刷ジョブを受付け、前記他のクライアント端末コンピュータの印刷ジョブを前記第2のプリントスプーラ領域に格納する手段と、
    J)前記第2のプリントスプーラ領域に印刷ジョブが存在する間は前記)乃至)の処理を行う手段と、
    K)前記第2のプリントスプーラ領域に印刷ジョブが存在しない場合、タイマーを開始する手段と、
    L)前記タイマーが所定時間を経過する前に印刷ジョブが前記第2のプリントスプーラ領域に格納された場合は、前記)乃至)の処理を行う手段と、
    M)前記タイマーが所定時間を経過した場合、前記ネットワークプリンタとの通信セッションを終了する手段と、
    を備え、
    前記ネットワークプリンタは、
    N)前記クライアント端末コンピュータからステータス要求を受信した場合に、ステータス応答を返信する手段と、
    O)前記クライアント端末コンピュータから専有中のクライアント端末コンピュータの問合せを受けた場合、前記専有中のクライアント端末コンピュータの識別情報を返信する手段と、
    を備えたことを特徴とする印刷ジョブ管理システム。
JP2006316665A 2006-11-24 2006-11-24 印刷ジョブ管理プログラムおよび印刷ジョブ管理システム Expired - Fee Related JP4547508B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006316665A JP4547508B2 (ja) 2006-11-24 2006-11-24 印刷ジョブ管理プログラムおよび印刷ジョブ管理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006316665A JP4547508B2 (ja) 2006-11-24 2006-11-24 印刷ジョブ管理プログラムおよび印刷ジョブ管理システム

Publications (2)

Publication Number Publication Date
JP2008129978A JP2008129978A (ja) 2008-06-05
JP4547508B2 true JP4547508B2 (ja) 2010-09-22

Family

ID=39555705

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006316665A Expired - Fee Related JP4547508B2 (ja) 2006-11-24 2006-11-24 印刷ジョブ管理プログラムおよび印刷ジョブ管理システム

Country Status (1)

Country Link
JP (1) JP4547508B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022083183A (ja) * 2020-11-24 2022-06-03 キヤノン株式会社 印刷制御装置、印刷制御方法およびプログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002062995A (ja) * 2000-08-22 2002-02-28 Murata Mach Ltd ネットワークプリントシステム
JP2002207584A (ja) * 2001-01-12 2002-07-26 Canon Inc 画像形成システム、画像形成装置、画像形成方法および記録媒体
JP2006004077A (ja) * 2004-06-16 2006-01-05 Canon Inc 情報処理装置及びジョブ転送制御方法
JP2006309717A (ja) * 2005-03-31 2006-11-09 Canon Inc プリント要求の受付順保証機能を備える印刷制御装置、制御方法、記憶媒体及びプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002062995A (ja) * 2000-08-22 2002-02-28 Murata Mach Ltd ネットワークプリントシステム
JP2002207584A (ja) * 2001-01-12 2002-07-26 Canon Inc 画像形成システム、画像形成装置、画像形成方法および記録媒体
JP2006004077A (ja) * 2004-06-16 2006-01-05 Canon Inc 情報処理装置及びジョブ転送制御方法
JP2006309717A (ja) * 2005-03-31 2006-11-09 Canon Inc プリント要求の受付順保証機能を備える印刷制御装置、制御方法、記憶媒体及びプログラム

Also Published As

Publication number Publication date
JP2008129978A (ja) 2008-06-05

Similar Documents

Publication Publication Date Title
JP3405159B2 (ja) 印刷装置
US8570561B2 (en) Image forming apparatus, printing control method, and computer-readable recording medium thereof
JP3854699B2 (ja) プリントシステムおよび印刷中断方法
EP2492793B1 (en) Device selecting apparatus, and printing system and computer readable medium for the same
US20110131310A1 (en) Multi-homed communication apparatus, and control method and storage medium therefor
JP3774702B2 (ja) 印刷制御プログラム及び情報処理装置
US20060256372A1 (en) Terminal device for performing print processing, method of controlling the same, and computer product
JP2006309717A (ja) プリント要求の受付順保証機能を備える印刷制御装置、制御方法、記憶媒体及びプログラム
JP2000311068A (ja) プリントサーバ装置、クライアントとしての情報処理装置、これら装置の印刷管理方法および記憶媒体
JP4298738B2 (ja) クライアントコンピュータ及び情報処理方法
JP4577610B2 (ja) 共有プリントサーバ制御プログラム及び共有プリントサーバ制御方法
JP3963057B2 (ja) プリンタシステム
JP2005309982A (ja) ポート設定変更装置、ポート設定変更制御プログラム及びポート設定変更方法
JP4547508B2 (ja) 印刷ジョブ管理プログラムおよび印刷ジョブ管理システム
JP7016841B2 (ja) 印刷装置、印刷制御方法及びプログラム
JP2001309104A (ja) ステータス監視装置
JP2012221334A (ja) 画像形成システムとその処理方法、画像形成装置、印刷管理サーバー、プリントサーバ、御方法及びプログラム
JP3420482B2 (ja) 情報処理装置およびネットワークプリントシステムおよび印刷制御方法およびプログラムが格納された記憶媒体
JP5376253B2 (ja) データ処理装置、データ処理システム、データ処理プログラム、及び、デバイスドライバ
US8542387B2 (en) Printing apparatus, printing system and printer driver
JP2006185031A (ja) データ出力制御装置及びその制御プログラム
JP3509815B2 (ja) 印刷システム及び画像形成装置及びジョブ管理方法
JP2009267461A (ja) 画像処理装置
JPH07152514A (ja) リモート印刷システム
JP2005333447A (ja) 情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091124

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20100125

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20100317

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100319

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100517

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100607

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100611

R150 Certificate of patent or registration of utility model

Ref document number: 4547508

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130716

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees