JP2005174225A - 情報処理装置、印刷システム、情報処理方法、及びコンピュータプログラム、並びにコンピュータ読み取り可能な記憶媒体 - Google Patents

情報処理装置、印刷システム、情報処理方法、及びコンピュータプログラム、並びにコンピュータ読み取り可能な記憶媒体 Download PDF

Info

Publication number
JP2005174225A
JP2005174225A JP2003416722A JP2003416722A JP2005174225A JP 2005174225 A JP2005174225 A JP 2005174225A JP 2003416722 A JP2003416722 A JP 2003416722A JP 2003416722 A JP2003416722 A JP 2003416722A JP 2005174225 A JP2005174225 A JP 2005174225A
Authority
JP
Japan
Prior art keywords
job
print
data
information processing
printing
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.)
Granted
Application number
JP2003416722A
Other languages
English (en)
Other versions
JP3962720B2 (ja
Inventor
Nakakatsu Kurotsu
中克 黒津
Takashi Yakida
隆 八木田
Masamichi Oshima
正道 大島
Hiroyuki Kayama
博之 嘉山
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.)
Canon Inc
Original Assignee
Canon 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 Canon Inc filed Critical Canon Inc
Priority to JP2003416722A priority Critical patent/JP3962720B2/ja
Publication of JP2005174225A publication Critical patent/JP2005174225A/ja
Application granted granted Critical
Publication of JP3962720B2 publication Critical patent/JP3962720B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Accessory Devices And Overall Control Thereof (AREA)

Abstract

【課題】 優先印刷時、或いは割り込み印刷時にユーザの意に沿った適切な印刷制御を行うことが可能になる印刷システムを提供することを目的とする。
【解決手段】 印刷ジョブを解析して優先ジョブ/割り込み印刷ジョブの実行を検知し、検知された優先/割り込みジョブの指示に従いスプーラに優先/割り込み印刷ジョブの投入を指示し、この優先/割り込み印刷ジョブを優先的にデバイスへ送信する。この検知動作は、印刷ジョブ中に含まれる属性を解析することにより、又は、プリンタドライバから通知される優先/割り込みジョブのIDを検知することにより、実行される。
【選択図】 図6

Description

本発明は、印刷システムのジョブ制御処理に関する。
従来、DPA (ISO10175)で定義される割り込み印刷あるいは優先印刷を処理可能な印刷装置と、前記印刷装置で処理可能な割り込み印刷あるいは優先印刷指示を含んだジョブデータを生成可能なプリンタドライバが存在した。
このようなプリンタドライバについては、例えば、特開平7−182124号公報や特開平7−325685号公報に開示されている。特開平7−182124号公報では、プリンタドライバが優先印刷指令を受け、かつプリンタ装置が現在他の印刷データの出力処理中であるときに、優先印刷する印刷データから描画データを生成することにより印刷データを展開することなく優先印刷を可能とする印刷システムが開示されている。また、特開平7−325685号公報では、印刷データに付加された優先度情報に基づいて印刷順位を定め、印刷順位を管理する印刷システムが開示されている。
特開平07―182124 特開平07―325685
しかしながら、昨今の印刷システムでは印刷効率を向上させるために、プリンタドライバと印刷装置の間には、印刷ジョブをスプールし、順次デバイスへ送信する機能を有するスプーラーが存在することが普通となっている。例えば、Windows(登録商標)におけるプリントスプーラーが代表例的なスプーラーとして知られている。そして、これらスプーラーにおいてはドキュメントに優先順位のパラメータを付加して、優先順位の高いドキュメントを優先順により低いドキュメントよりも先に出力するという機能が備わっていた。
また、上に説明したDPA(ISO10175)で定義される割り込み印刷あるいは優先印刷と、オペレーティングシステムにおける優先順位とのリンクは取られていなかった。
このため、プリンタドライバで指示された優先印刷ジョブ或いは割り込み印刷ジョブがスプーラーに通常ジョブと同様にWindows(登録商標)プリントスプーラーにスプールされてしまうため、例えば先行するジョブが複数存在した場合には、該複数の印刷ジョブの送信処理が完了するまで、プリンタデバイスにおいて割り込み印刷ジョブ或いは優先印刷されるはずの印刷ジョブの送信が待たされてしまうという問題があった。
このように、単に印刷ジョブに優先度を付して、該付された優先度に基づく先送り印刷処理を行うという概念は既に公知であるものの、昨今の複雑化した高機能印刷システムにおいては改善の余地があった。
本発明は上記の問題点を解消するためになされたもので、プリントジョブのデータをプリンタデバイスに出力する順番を、プリンタデバイスにおける先送りジョブの指定を考慮して行える仕組みを提供することを目的とする。
上記課題を解決するために、本発明による情報処理装置は、アプリケーションデータに基づき作成されたデータをスプーラーにより外部に出力可能な情報処理装置であって、アプリケーションデータに基づき作成されたプリントジョブのデータを受け取る受信手段と、前記受け取ったプリントジョブのデータに、プリンタデバイスにおいて優先的に印刷出力されるよう指示された先送りジョブの属性が含まれる場合に、前記受け取ったプリントジョブのデータを優先的に前記プリンタデバイスに転送するようにする制御手段と、を有することを特徴とする。
また、本発明による印刷システムは、印刷装置と、この印刷装置と通信回線を介して通信可能な、印刷処理を行う情報処理装置とを有する印刷システムであって、先送りプリントジョブを検知するジョブ検知手段と、前記ジョブ検知手段によって検知された前記先送りジョブを優先的にプリンタデバイスに送信するようにするスケジュールアップの指示を検知するスケジュールアップ検知手段と、前記スケジュールアップ検知手段により検知された指示に従い、前記プリンタデバイスへ先送りジョブの属性を含むジョブを出力する制御手段と、
を備え、前記印刷装置においては前記先送りジョブの属性に基づく印刷処理が行なわれることを特徴とする。
さらに、本発明による情報処理方法は、アプリケーションデータに基づき作成されたデータをスプーラーにより外部に出力可能な情報処理方法であって、 アプリケーションデータに基づき作成されたプリントジョブのデータを受け取る受信工程と、前記受け取ったプリントジョブのデータに、プリンタデバイスにおいて優先的に印刷出力されるよう指示された先送りジョブの属性が含まれる場合に、前記受け取ったプリントジョブのデータを優先的に前記プリンタデバイスに転送するようにする制御工程と、を有することを特徴とする。
なお、本発明による情報処理方法を実現することを特徴とするコンピュータプログラム、及びそのプログラムを記憶したコンピュータで読み取り可能な記憶媒体も開示される。
本発明によれば、プリントジョブのデータをプリンタデバイスに出力する順番を、プリンタデバイスにおける先送りジョブの指定を考慮して行なえる印刷制御を行なうことが可能となる。つまり、プリンタドライバで指示された優先印刷ジョブ或いは割り込み印刷ジョブがスプーラーに通常ジョブと同様にスプールされてしまうため、例えば先行するジョブが複数存在した場合には、該印刷ジョブの送信処理が完了するまで割り込み印刷ジョブ或いは優先印刷ジョブの送信が待たされてしまうという問題が解決される。
以下、図面を参照して本発明の好適な実施形態について詳細に説明する。
<第1の実施の形態>
(印刷処理システムの構成例)
図1は、実施形態に係る印刷処理システムの構成を示す図である。
同図において、101、102、103、104は、ネットワーク106に接続され、相互に通信可能なネットワークコンピュータであり、典型的にはパーソナルコンピュータ(PC)である。
これらのうち、102,103,104はクライアントコンピュータ(以下、クライアント)であり、それぞれイーサネット(登録商標)などのネットワークケーブルによってネットワーク106に接続され、アプリケーションプログラム等の各種のプログラムを実行可能であり、印刷データをプリンタに対応するプリンタ言語に変換する機能を有するプリンタドライバを搭載している。ここで、各クライアントは複数のプリンタドライバをサポートするものとする。
これに対し101はサーバコンピュータ(以下、サーバ)であり、ネットワークケーブルによってネットワーク106に接続され、ネットワークで使用されるファイルを蓄積したり、ネットワーク106の使用状態を監視する。このサーバは、ネットワーク106に接続されているプリンタを管理するプリントサーバとしても機能する。具体的には、プリントサーバ101は、クライアントコンピュータ102、103、104から印刷要求が出されたプリントデータを含む印刷ジョブを格納して印刷する機能や、クライアントコンピュータ102〜104から印字データを含まないジョブ情報を受け取って印刷順序を管理し、印刷順序になったクライアントに対して印字データを含む印刷ジョブの送信許可を通知する機能、後述するプリンタデバイス(プリンタデバイス)105のステータスや印刷ジョブの各種情報を取得して、クライアントコンピュータ102〜104に通知する機能などを有している。サーバコンピュータ101は本発明の印刷システムにおいてサーバの機能が動作する論理的な存在である。図1で示されるように専用のサーバコンピュータを設けることもできるし、また、クライアントコンピュータ102〜104或いはプリンタデバイス105にサーバコンピュータの機能を代替させる事も可能である。
105は、印刷制御装置としてのプリンタデバイスであり、図示しないネットワークインタフェースを介してネットワーク106と接続されており、クライアントコンピュータから送信されてくる印字データを含む印刷ジョブを解析し、1ページずつドットイメージに変換して印刷する。なお、同図にプリンタデバイス105は1台しか示されていないが、他のプリンタデバイスが複数接続されていても良い。各プリンタデバイスの機能は相違するものであってもよい。尚、プリンタデバイスにおける画像記録方式としては様々な方式のものを適用可能であり、例えば、電子写真方式や、インクジェット方式の記録方式を採用した印刷制御装置を想定することができる。
また、106はネットワークであり、クライントコンピュータ102〜104、プリントサーバ101、プリンタデバイス105等と接続している。
(ネットワークコンピュータのハードウェア構成例)
図2は、クライアント102〜104とプリントサーバ101として使用されるコンピュータの構成を説明するブロック図である。なお、本実施形態においてはこのように、クライントコンピュータ102〜104もプリントサーバ101も同様あるいは同等のハードウェア構成とするが、それぞれ専用のハードウェア構成であっても構わない。
図2において、200は装置全体の制御を行うCPUであり、ハードディスク(HD)205に格納されているアプリケーションプログラム、プリンタドライバプログラム、OSや、本実施形態のプリンタデバイス制御プログラム等を実行し、RAM202にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。
201は記憶手段としてのROMであり、内部には、基本I/Oプログラム等のプログラム、文書処理の際に使用するフォントデータ、テンプレート用データ等の各種データを記憶する。202は一時記憶手段としてのRAMであり、CPU200の主メモリ、ワークエリア等として機能する。
203は記憶媒体読み込み手段としてのフロッピディスクドライブであり、後述する図5に示すようにFDドライブ203を通じて、記憶媒体としてのFD204に記憶されたプログラム等を本コンピュータにロードすることができる。204は記憶媒体であるフロッピディスク(FD)であり、コンピュータが読み取り可能にプログラムが格納された記憶媒体である。なお、記憶媒体はFDに限らず、CD−ROM、CDR、CDRW、PCカード、DVD、ICメモリカード、MO、メモリスティック等、任意である。
205は外部記憶手段の一つであり、大容量メモリとして機能するハードディスク(HD)であり、アプリケーションプログラム、プリンタドライバプログラム、OS、プリンタデバイス制御プログラム、関連プログラム等を格納している。更に、スプール手段であるスプーラーはここに確保される。スプール手段は、クライアントではクライアントスプーラのことであり、プリントサーバではサーバスプーラのことである。また、プリントサーバでは、クライアントから受けたジョブ情報を格納し、順序制御を行うためのテーブルもこの外部記憶手段に生成されて格納される。
206は指示入力手段であるキーボードであり、ユーザがクライアントコンピュータに対して、また、オペレータや管理者がプリントサーバに対して、デバイスの制御コマンドの命令等を入力指示するものである。207は表示手段であるディスプレイであり、キーボード206から入力したコマンドや、プリンタの状態等を表示したりするものである。
208はシステムバスであり、クライアントやプリントサーバであるコンピュータ内のデータの流れを司るものである。209は入出力手段であるインタフェースであり、該インタフェース209を介して情報処理装置は外部装置とのデータのやり取りを行う。
なお、上記コンピュータの構成はその一例であり、図2の構成例に限定されるものではない。例えば、データやプログラムの格納先は、その特徴に応じてROM、RAM、HDなどで変更することも可能である。
図3は、図2に示したRAM202のメモリマップの一例を示す図であり、FD204からロードされる上記プリンタデバイス制御プログラムが、RAM202にロードされ実行可能となった状態のメモリマップである。
なお、本実施形態では、プリンタデバイス制御プログラムおよび関連データをFD204から直接RAM202にロードして実行させる例を示すが、これ以外にも、プリンタデバイス制御プログラムを動作させる度に、既にプリンタデバイス制御プログラムがFD204からインストールされているHD205から、RAM202にロードするようにしてもよい。また、本プリンタデバイス制御プログラムを記憶する媒体は、FD以外にCD−ROM、CDR、PCカード、DVD、ICメモリカードであってもよい。
さらに、本プリンタデバイス制御プログラムをROM201に記憶しておき、これをメモリマップの一部となすように構成し、直接CPU200で実行することも可能である。また、以上の各装置と同等の機能を実現するソフトウェアをもって、ハードウェア装置の代替として構成することもできる。
また、以下では、本プリンタデバイス制御プログラムのことを、簡単に印刷制御プログラムまたはプリンタドライバと呼ぶこともある。印刷制御プログラムは、クライアントにおいては、印刷ジョブの印刷先の変更を指示したり、印刷順序を変更する指示をするための制御を行うプログラムを含む。一方、プリントサーバにおいては、印刷ジョブの順序制御を行ったり、印刷ジョブの印刷終了や印刷先変更要求などを通知するためのプログラムを含んでいる。
また、このような制御を行う本実施形態の印刷制御プログラムは、クライアントにインストールされるモジュールと、プリントサーバにインストールされるモジュールを別々に分けてもよいし、ひとつの印刷制御プログラムが、実行される環境によりクライアント用として機能したり、プリントサーバ用として機能するようにしてもよい。あるいは、一台のコンピュータに、クライアント用の機能を持つモジュールとプリントサーバ用として機能するモジュールとをともにインストールし、同時にあるいは時分割で、擬似的に平行動作させる構成も可能である。
301は基本I/Oプログラムであり、コンピュータの電源がONされたときに、HD205からOSがRAM202に読み込まれ、OSの動作を開始させるIPL(イニシャルプログラムローデイング)機能などを有しているプログラムが入っている領域である。302はオペレーティングシステム(OS)であり、303はプリンタデバイス制御プログラムで、RAM202上に確保される領域に記憶される。304は関連データで、RAM202上に確保される領域に記憶される。305はワークエリアで、CPU200が本プリンタ制御プログラムを実行する領域が確保されている。
図4は、図2に示したFD204のメモリマップの一例を示す図である。図4において、401はデータの情報を示すボリューム情報であり、402はディレクトリ情報、403は本実施形態で説明する印刷制御プログラムであるプリンタデバイス制御プログラム、404はその関連データである。プリンタデバイス制御プログラム403は、本実施形態で説明するフローチャートに基づいてプログラム化したものであり、本実施形態では、クライアント及びサーバ共に、同様の構成をとっている。
図5は、図2に示したFDドライブ203に対して挿入されるFD204との関係を示す図であり、図2と同一のものには同一の符号を付してある。図5において、FD204には、本実施形態で説明するプリンタデバイス制御プログラムおよび関連データが格納されている。
(印刷処理システムにおけるソフトウェア構成例及び動作例)
図6は、本システムのクライアントサーバモデルにおいて、Microsoft Word(登録商標)などの一般的なアプリケーションから発行された描画コマンドを含む印刷ジョブが、印刷ジョブ制御システムにおいてどのように処理されるかを示した図である。
通常、印刷の指示がされると、アプリケーションプログラムは一連の描画命令をOSを介して生成させる。この生成された描画命令はプリンタドライバを経て所定の形式に変換された後、ウインドウズスプーラ(Windows(登録商標) Spooler)に渡される。Windows(登録商標) Spoolerは、ユーザがユーザインタフェースを介して選択し指示したポートモニタにプリントジョブデータを渡して、プリンタデバイスに送信させる手順をとる。本実施形態では、今述べた通常の動作に対してユーザはあらかじめ印刷ジョブ制御システム用のポートモニタ621(以降、ジョブ制御ポートモニタと略記)を指定して印刷を指示する。
また、図示はされていないが、ユーザが予めポートモニタとして他のポートモニタ、例えば、Windows(登録商標)のOS(オペレーティングシステム)に設けられたスタンダードTCP/IPポート(モニタ)を指定している場合には、ウインドウズスプーラ603からスタンダードTCP/IPポート(モニタ)にプリントジョブデータが渡され、その後にプリントジョブデータがプリンタデバイス105に転送される。この場合に図6に示されるジョブ制御プリントサービス622を介してプリントジョブデータはプリンタデバイスに送信されない。
なお、ジョブ制御ポートモニタ621はWindows(登録商標)で定義されたポートモニタだけでなく、ランゲージモニタ、プリントプロセッサ等、ジョブデータを渡されて処理可能なモジュールであってもよい。またジョブ制御ポートモニタの機能をこれらモジュールの複数に割り当てる事も可能である。また、UNIX(登録商標)等の印刷システムにおいては、印刷時に使用されるフィルタプログラムであってもよい。
アプリケーションプログラム601は一連の描画命令をOSを介して生成させる。ここで、OSを介して生成された描画命令は、PDLDriver602に引き渡させる。尚、以下の説明においては、PDLDriverを例に説明を行うが、アプリケーションデータに基づく印刷データを生成するソフトウェアモジュールであればこれに限定されるものではなく、例えば、BDL(Band Description Language)Driverなどに適用することも可能である。
OSを介して生成された描画命令がPDLDriver602に投入された場合に、PDLDriver602よって頁記述言語が生成され、該生成された頁記述言語は、印刷処理を行うよう設定されたPDLDriver602に対応するジョブ制御ポートモニタ621からジョブ制御サービス622を介して対応するデバイス105に送信される。
印刷ジョブ制御システム用プリントマネージャ623(以降、ジョブ制御プリントマネージャと略記)は、ユーザがジョブ制御プリントサービス622内部でプリントジョブがどのような状態にあるかを調べたり、プリントジョブを操作したりするためのユーザインタフェースを提供するプログラムである。ジョブ制御プリントマネージャ623は、ジョブ制御プリントサービス622のソフトウェアのインタフェース(API:Application Program Interface)を介して、ジョブ制御プリントサービス622と情報・指示をやり取りしている。更に詳細な処理としては、プリントマネージャ623がジョブ制御プリントサービス622に対してデバイスを指定してのイベントを発行し、ジョブ制御プリントサービス622は発行されたイベントに基づくデバイスのステータスを監視して、該監視に基づく結果をプリントマネージャ623に通知する。
印刷ジョブ制御システム用サーバ630(以降、ジョブ制御サーバと略記)は、個々のクライアント102〜104上のジョブ制御プリントサービス622がプリンタデバイス105にプリントジョブデータを送信するタイミングを集中制御(スケジューリング)している。印刷ジョブ制御システム用マネージメントコンソール633(以降、ジョブ制御マネージメントコンソールと略記)は、ジョブ制御サーバ630が持つソフトウェアがアクセスするためのAPIを介して、ジョブ制御サーバ630と情報・指示をやり取りすることで、印刷ジョブ制御システム全体を監視することができる。
また、ジョブ制御サーバ630は、デバイス情報コントロールモジュール631を用いて各プリンタデバイス105と通信を行い、各プリンタ内の印刷ジョブや動作状態に関する情報を入手したり、操作を行ったりする。入手した情報は、クライアント102〜104側のジョブ制御プリントサービス622に渡すことができる。
(ジョブ制御の流れ)
次に、本発明におけるプリントジョブデータの制御の流れについて説明する。
まずジョブ生成装置であるクライアントコンピュータにおいて(ジョブ生成装置がプリントサーバである場合にはプリントサーバ)アプリケーションからのGDI呼び出しはOSによって変換されプリンタドライバ602が呼び出される。プリンタドライバはDEVMODEの設定に従いPDLデータを作成する。割り込み或いは優先印刷を指示する情報は印刷の初期設定或いは印刷実行時に表示されるプリンタドライバUI(USER INTERFACE)によって、DEVMODEの拡張領域に保存される。プリンタドライバではこの拡張領域を確認することによって、割り込み或いは優先印刷ジョブを作成する。図7はPDLプリンタドライバ602によって生成される割り込み印刷コマンドの一例である。割り込み或いは優先印刷コマンドは図7の左部に示すように、通常のジョブスタートコマンドに対し、オプションの印刷種別が「割り込み」のジョブとして表される。優先印刷コマンドは図示しないがオプションの印刷種別が「優先」として表現される。
ここで、割り込み処理と優先処理の違いについて述べておく。割り込み処理とは、プリンタデバイス105において実行中のジョブを中断して別のジョブの印刷を行うことをいう。仕様例としては、2重割り込みは禁止される。また、優先処理は、実行中のジョブは中断せずにその実行中のジョブの次に実行するよう予約する処理をいう。これら割り込み処理と優先処理を合せて、先送り処理と呼んでも良い。また、割り込み処理及び優先処理の対象となっているジョブを先送りジョブと呼んでも良い。
処理の具体例について説明する。まず、プリンタデバイス105において所定のプリントジョブを出力中に優先ジョブが投入されると、現在実行している所定のプリントジョブの次の出力にスケジューリングされる。次に通常ジョブを出力中に割り込みジョブが投入されると、出力中のジョブが中断され、割り込みジョブが出力される。割り込みジョブの出力が終了すると、中断された通常ジョブの出力が再開される。そして、通常ジョブの出力が終了した後に優先ジョブの出力が開始される。また、優先ジョブの出力中に割り込みジョブが投入されると、優先ジョブは中断され、割り込みジョブが出力され始める。
クライアントコンピュータにおいて作成されたデータはジョブ単位に管理され、順次Windows(登録商標) Spooler603へスプールされる。
Windows(登録商標) Spooler603では、該プリントジョブデータを、1頁分のスプールが完了したタイミング、或いは全頁分のスプールが完了したタイミング、或いはスプールが行われる都度、順次デスプール(送信処理)を行い、ジョブ制御ポートモニタ621にジョブデータを渡して行く。この際にWindows(登録商標)プリントキューの操作におけるジョブの優先度が他のものよりも高く設定されたプリントジョブデータはOSの仕組みにより優先的にWindows(登録商標) Spooler603から外部に出力される。
図8はジョブ制御ポートモニタ621における書き込み処理の一例を示すフローチャートである。
まず、ステップS800においてWindows(登録商標) Spooler603からの最初の書き込みであるか否か判断される。この判断は、「最初の書き込みフラグ」をチェックして行われる。ステップS800で最初の書き込みであると判断されると処理はステップS801に移行し、ここでジョブ制御プリントサービスに対してジョブ制御ポートモニタ621からスプール開始コマンドが呼び出され、ジョブ制御プリントサービスで管理している独自ジョブIDとスプールファイ名がジョブデータの送出元であるジョブ制御ポートモニタ621に通知される。
ステップS800でNoの場合、又はステップS801の処理が終了すると、処理はステップS802に移行し、「最初の書き込みフラグ」がOFFにされ、後続する書き込み処理においてステップS801が重複しないように制御される。
なおステップS802の「最初の書き込みフラグ」は、Windows(登録商標) Spooler603におけるジョブIDと関連付けられて管理され、Windows(登録商標) Spooler603からの送信開始呼び出しの時点でONに初期化される。
続いてステップS803でジョブ制御ポートモニタ621がWindows(登録商標) Spooler603から渡されたジョブデータの解析を行い、渡されたデータがジョブ開始コマンドか否かの判定が行われる。ジョブ開始コマンドであると判定された場合、ステップS804で割り込み或いは優先指示があるか否かが判定(検知)される。
ステップS804でジョブデータの解析に基づき割り込み或いは優先指示があると判定された場合には、ステップS805で、ジョブ制御プリントサービス622に対し割り込み或いは優先印刷指示ジョブ属性の変更がジョブ制御プリンタサービス622により対象となるプリントジョブが識別可能なID(上の説明した独自ジョブID)とともに通知される。
なおジョブ属性は、「割り込み或いは優先印刷指示」等具体的な属性ではなく、「印刷タイプ」のような汎用的なジョブ属性を用いても良い。また、本発明の実施例ではジョブ制御プリントサービスへ割り込み或いは優先ジョブの投入を指示する手段としてジョブ属性の変更コマンドを用いているが、優先度変更或いは割り込み印刷実行等の別なコマンドを用いても良い。
続いてステップS806において、Windows(登録商標) Spooler603から受け取ったジョブデータを順次前述のステップS801で取得されたファイル名に基づく格納領域にジョブデータを書き込み、ジョブ書き込み処理が終了する。ジョブ制御ポートモニタ621ではWindows(登録商標) Spooler603から該ジョブについてのジョブデータ送信終了が通知されると、ジョブ制御プリントサービス622に対し、該ジョブのスケジュールを依頼する。ジョブ制御プリントサービス622における割り込み或いは優先印刷制御の詳細は後述の図9で説明する。
図9はジョブ制御プリントサービス622の動作概要を示すフローチャートである。本実施例においてジョブ制御プリントサービス622は、コンピュータの起動と共に起動されるサービスプログラムである。また、この図9の処理は図8に示された処理とは別個独立して並行に行われる。
まずステップS900において初期化処理を行う。初期化処理では、サーバと通信のイベント処理待ちであるステップS901へ移行する。ステップS901のイベント待ちループでは、ジョブ制御プリントサービス622を利用するアプリケーションプログラム623、1324やジョブ制御ポートモニタ622によるAPI呼び出しや、ジョブ制御サーバ630からのイベント通知、或いは内部処理の遷移によるイベント通知により、イベントの発生が検知される。そして、イベントの種類によってステップS902以下の処理が実行される。
ステップS902でイベントがジョブ投入コマンドであると判定される。Yesの場合、ステップS903に処理が移行し、ジョブ情報データがジョブ制御プリントサービス622がアクセス可能なRAM202中に作成される。ジョブ情報データには最低限、ジョブの送信順序を制御するために必要なデータ(ジョブ制御プリントサービス622が発行した独自ジョブIDとジョブを発行したWindows(登録商標) SpoolerでのオペレーティングシステムジョブID(以下ではOSジョブIDと呼ぶ)、ジョブファイル名、受け付け時刻、優先順位等)が含まれ、必要に応じ文書名、ユーザ名等の付加情報等が含まれる。ジョブ情報が作成されると続いてステップS901のイベント待ちループへ戻る。ステップS903の処理によって、複数のジョブが投入されたとしてもこれらの処理の順番が制御され、また、割り込みや優先処理(先送り処理)の指示が入力されてもどのジョブをスキップしたか、先送り処理の次はどのジョブを処理するか等、複雑な制御でも簡単に行うことができる。
ステップS902における判定がNOの場合は、ステップS904において、該イベントがスプール開始コマンドか否かが判定される。このスプール開始コマンドは、例えばステップS801におけるスプール開始コマンドの呼び出しに対応するものである。YESの場合にはステップS905において独自ジョブIDとスプールファイル名が要求元(ここではジョブ制御ポートモニタ621)返却される。
なお、ジョブ制御プリントサービス622は、スプール開始コマンドではWindows(登録商標) Spooler603等、ジョブ制御プリントサービス622の前段にある外部のジョブID(印刷要求に応じてOSを介して発行されるOSジョブIDがジョブ制御ポートモニタ621から通知される)が通知され、ステップS903で作成されたジョブ情報から適切なジョブファイル名を返却し、ステップS901のイベント待ちループへ戻る。
また、ステップS905において、ステップS903で作ったジョブ情報ファイルに該当するジョブ情報が存在しない場合には、ステップS903に相当する処理が実行され、ジョブ情報が新規に作成される。
ステップS904においてNOと判定された場合、処理はステップS906に移行する。そして、ステップS906において該イベントが属性設定コマンドか否かが判定される。YESと判定されると処理はステップS907に移行し、そこでS903において作成されたジョブ属性の更新処理が行われる。本実施形態において割り込み或いは優先ジョブを示す属性は文書名、ユーザ名等、通常のジョブ属性と同様に管理されている。その様子が図16に示される。ジョブ属性の更新が終了するとステップS901のイベント待ちループへ戻る。
なお、このステップS906でYesと判断されると、即ち、イベントが属性設定コマンドである場合に、ステップS907で、ジョブ制御プリントサービス622によってジョブ制御ポートモニタ621から受け取ったプリントジョブデータの属性設定内容がチェックされ、優先ジョブ又は割り込みジョブであることが判明する(検知される)。
ステップS906においてNOと判定された場合、ステップS908において何れかからの該イベントがスケジュールコマンドか否か判定される。図9のフローチャートにおいてはジョブ制御ポートモニタ621からステップS801に対応してスケジュールコマンドのイベントが発行される。YESと判定されるとステップS909においてジョブ制御サーバ630にスケジュール依頼が通知される。この時該ジョブのステップS907でチェックされたジョブ属性も同時に通知される。ステップS909のスケジュール依頼処理が終わるとステップS901のイベント待ちループへ戻る。尚ジョブ制御サーバ630での処理は後述の図10で説明する。
ステップS908でNOと判定された場合には、ステップS910において該イベントがジョブ制御サーバ630からのスケジュールアップイベントか否か判定される。YESの場合にはステップS911において該ジョブをデバイス105へ送信し、ステップS901のイベント待ちループへと戻る。該ジョブが割り込み或いは優先印刷指示されたジョブである場合には、印刷装置105において優先印刷処理が行われる。印刷装置105における処理の詳細は、後述の図12において詳しく説明することとする。
ステップS910でNOと判定された場合には、ステップS912において該イベントがサーバからのジョブ完了イベントか否かが判定される。YESの場合には処理はステップS913に移行し、そこで該S907で更新され管理されるジョブ属性及びファイルが削除され、該ジョブの印刷処理が終了する。続いてステップS901のイベント待ちループへと戻る。尚、ジョブ制御サーバ630においても、プリントジョブが完了したジョブ情報は削除される。
ステップS912においてNOと判定された場合には、ステップS914において終了イベントか否かが判定される。YESの場合には、ステップS915において終了処理が行われ、ジョブ制御プリントサービスは処理を終了する。ステップS914においてNOの場合には、ステップS916においてその他のコマンド処理が行われ、ステップS901のイベント待ちループへと戻る。その他のコマンド処理については本発明と直接関係が無いため詳細な説明は割愛する。
図10は、ジョブ制御サーバ630の処理の概要を示すフローチャートである。ジョブ制御サーバ630もジョブ制御プリントサービス622と同様にサービスプログラムであり、コンピュータの起動と共に開始され常駐を続ける。尚、Server Machine101の機能がクライアントコンピュータ内に設けられた場合には、図10の処理は、図8、9の処理と同じコンピュータ上で実行されることとなる。また、後述する図11の処理も同様にクライアントコンピュータにおいて実行される。
ジョブ制御プリントサーバは起動時にステップS1000で初期化処理を行い、ステップS1001のイベント受信待ちループへと入る。ステップS1001のイベント待ちループはAPI呼び出しやジョブ制御プリントサービス622からのリクエスト、デバイス情報コントロールモジュール631からの通知、内部処理の遷移の結果として終了する。イベント発生しイベント待ちループS1001が終了するとステップS1002で該イベントがスケジュール予約コマンド呼び出しか否かが判定される。この処理は図9のステップS909の処理に相当するものである。ステップS1002でYESの場合には、ステップS1003においてジョブ制御サーバ630側のRAM202に保持しているジョブリストが更新される。なお、この際にジョブ属性が判定され、「割り込み或いは優先印刷指示」属性があるジョブについては他のジョブに比べて優先的に処理されるようにセットされる。例えば、ジョブ属性が優先印刷指示である場合には他のジョブに比べて当該ジョブの優先度が最高に設定される。そして、この優先度を最高に設定する処理工程は、後述する図11のフローチャートのS1101の処理において参照されることになる。続いてステップS1004において送信ジョブ選択イベントをセットしてステップS1001のイベント受信待ちループへと戻る。
ステップS1002の判定においてNOと判定された場合には、ステップS1005において該イベントが送信ジョブ選択イベントか否かが判定される。YESの場合はステップS1006において送信ジョブ選択処理が行われる。本処理の詳細については図11で後述する。続いてステップS1001のイベント受信待ちループへと戻る。
ステップS1005の判定においてNOと判定された場合には、ステップS1007において該イベントがプリントジョブの状態を定期的に監視するためのタイマーイベントか否か判定される。YESの場合には、ステップS1008において、デバイス情報コントロールモジュール631を用いて送信済みのジョブ状態を確認する。ステップS1009においてジョブの完了が確認されると、ステップS1010においてジョブ選択イベントを設定し、続いてステップS1011においてジョブの完了をジョブ制御プリントサービス622へ通知する。この際のジョブ制御プリントサービスの動作は前述した通りである。ステップS1009でNOと判定された場合或いはステップS1011が終了した時点でステップS1001のイベント待ちループへと戻る。なお、タイマーイベントは定期的に発生するイベントであり、この他にも印刷デバイス105の状態監視や、ジョブ制御プリントサービス622の生存確認等の処理を行っているが、本発明とは直接の関係がないため此処では割愛する。
ステップS1007の判定においてNOと判定された場合、ステップS1012において該イベントが終了イベントか否かが判定される。YESの場合にはステップS1013において終了処理が行われ、ジョブ制御サーバ630は終了する。ステップS1012においてNOと判定された場合にはその他のコマンドであると判定され、その他のコマンドに対する処理が行われるが、本発明とは関係が無いため割愛する。
図11は、ジョブ制御サーバ630における送信ジョブ決定処理の概略を示すフローチャートである。ステップS1100において印刷ジョブに関連付けられて指定された所定の印刷デバイス(例えば印刷デバイス105)へプリントジョブデータを送信可能な状態か否かが判定される。尚、ジョブ制御サーバ630においては、該印刷デバイスの状態や送信済みのジョブ数を管理しており、該デバイスにエラーが発生している場合や、一定数以上のジョブを送信済みの場合にはジョブの送信を行わずに送信ジョブ選択処理を終了し、印刷デバイスにおいて、エラーが解除されるか、一定数未満のジョブを送信済みの状態になるまで他の処理をする。
ステップS1100においてYESと判定された場合には、ステップS1101において優先度の最も高いジョブを選択する。この時に先に説明したステップS1003における優先度の設定が選択基準に加味される。そして、優先度の最も高いジョブが複数選択された場合には受け付け時刻の早いジョブを選択する。
ステップS1102において、選択されたジョブのリストを判定し、複数のジョブが選択された場合には、ステップS1103において受け付け時刻の早いジョブを選択する。続いて、ステップS1101或いはステップS1103で選択された唯一のジョブを送信候補とし、該ジョブのPDLデータ640を保持しているジョブ制御プリントサービスに対して送信順序が来たことを通知する。本発明においてはこの処理のことをスケジュールアップ通知と呼んでいる。
ステップS1100においてデバイス105が送信可能状態ではない場合、またはステップS11104においてスケジュールアップ処理が行われた場合に、送信ジョブ選択処理は終了する。このステップS1104の処理は、上に説明した図9のステップS910において判定対象となるスケジュールアップに相当するものである。そして、ステップS1104の処理を受けたジョブ制御プリントサービス622では、保持された複数のプリントジョブデータの中から、指定されたプリントジョブデータを印刷デバイスに優先的に送信するように制御される。つまり、ステップS805で、ジョブ制御プリントサービス622に対し割り込み或いは優先印刷指示ジョブ属性の変更の通知の対象となったプリントジョブデータは、ジョブ制御プリントサービス622から先送りジョブとして優先的に所定のプリンタデバイスに送信される。
図12は本発明を適用する印刷装置105における割り込み印刷処理の概略を示すフローチャートである。割り込み印刷処理は印刷装置105がジョブデータを受信すると起動される。ステップS1200において印刷中(エンジン使用中)のジョブがあるか否かが判定され、YESの場合には、ステップS1201において印刷中のジョブ情報を退避するとともにステップS1202において印刷中のジョブを中止する。
続いて、ステップS1203において解析中(トランスレート中)のジョブがあるか否かが判定され、YESの場合にはステップS1204において解析処理が中断される。解析処理の中断に関してはジョブデータを退避するだけで良く解析結果(中間データ)を保持する必要はないが、解析途中のデータを合わせて退避する構成としても良い。続いてステップS1205において割り込み発生イベントを送信する。このイベントは該イベントを欲するデバイス情報コントロールモジュール631によって受信され処理される。続いてS1206において該割り込みジョブの印刷を開始する。
印刷が完了すると印刷完了通知が発せられ、デバイス情報コントロールモジュール631、ジョブ制御サーバ630を経由して、ジョブ制御プリントサービス622へ通知される。ジョブ完了イベント発生時におけるジョブ制御プリントサービスの処理は前述した通りである。
続いて印刷デバイス105では、スプールされているその他のジョブを優先順位或いは受け付け順に従って処理するが本発明とは直接関係ないため此処では割愛する。
なお、ステップS1200からステップS1206は割り込み印刷における印刷装置105の処理であり、優先印刷時にはスケジュールの優先順位をあげるだけで、印刷中、解析中のジョブの中断処理は行われない。
以上のように第1の実施の形態によれば、従来はDPAに規定される、プリントデバイスにおける優先ジョブや割り込みジョブの仕組みと、プリントデータ作成元であるクライアントコンピュータにおける優先的にプリントデバイスにプリントジョブデータを送信するようにする順序制御の仕組みとのリンクを取る事ができるようになる。さらに、本印刷の仕組みによればWindows(登録商標) Spoolerから出力されるプリントジョブデータをジョブ制御プリントサービス622で保持し、該保持されたプリントジョブデータを適切なタイミングでプリントデバイスにおいて送信するようにするので、Windows(登録商標) Spoolerにおいて、プリントジョブデータが滞ることもない。従ってWindows(登録商標) Spoolerの仕組みにおいてプリントジョブデータを滞らせることもなく、且つ、ジョブ制御プリントサービス622でプリントジョブデータの送信を滞らせることもなく、且つ、プリントデバイスにおいても印刷出力を滞らせることもない。
<第2の実施の形態>
第2の実施の形態においても、第1の実施の形態の図1乃至5、図7、及び図10乃至12が適用される。これらの図面については、冗長となるので詳細な説明を省略する。ただし、これらの図面及びその説明についても第2の実施形態の内容となるものである。
なお、第1の実施形態と第2の実施形態では、優先ジョブ又は割り込みジョブの指定がなされているか否かを判断するタイミング及び方法が異なる。つまり、第1の実施形態では、Windows(登録商標) Spoolerからのデータをジョブ制御ポートモニタ621の解析に基づいてプリントジョブ制御サービス622が優先ジョブ等の指定の有無を判断するが、第2の実施形態では、事前にジョブ制御プリントサービス622に通知される先送りジョブID(以下、UUIDと呼ぶ)とジョブ制御ポートモニタ(後述される)から投入されるデータに含まれるUUIDとをチェックし、それによって優先ジョブ等か否かが判断される。
(印刷処理システムにおけるソフトウェア構成例及び動作例)
図13は、第1の実施の形における図6に相当する図であり、本システムのクライアントサーバモデルにおいて、Microsoft Word(登録商標)などの一般的なアプリケーションから発行された描画コマンドを含む印刷ジョブが、印刷ジョブ制御システムにおいてどのように処理されるかを示した図である。図6と同じ参照番号のブロックは、同じ機能ブロックを示している。
通常、印刷の指示がされると、アプリケーションプログラムは一連の描画命令をOSを介して生成させる。この生成された描画命令はプリンタドライバを経て所定の形式に変換された後、ウインドウズスプーラ(Windows(登録商標) Spooler)に渡される。Windows(登録商標) Spoolerは、ユーザがユーザインタフェースを介して選択し指示したポートモニタにプリントジョブデータを渡して、プリンタデバイスに送信させる手順をとる。本実施形態では、今述べた通常の動作に対してユーザはあらかじめ印刷ジョブ制御システム用のポートモニタ621(以降、ジョブ制御ポートモニタと略記)を指定して印刷を指示する。
なお、ジョブ制御ポートモニタ621はWindows(登録商標)で定義されたポートモニタだけでなく、ランゲージモニタ、プリントプロセッサ等、ジョブデータを渡されて処理可能なモジュールであってもよい。またジョブ制御ポートモニタの機能をこれらモジュールの複数に割り当てる事も可能である。また、UNIX(登録商標)等の印刷システムにおいては、印刷時に使用されるフィルタプログラムであってもよい。
アプリケーションプログラム601は一連の描画命令をOSを介して生成させる。ここで、OSを介して生成された描画命令は、PDLDriver602に引き渡させる。
OSを介して生成された描画命令がPDLDriver602に投入された場合に、PDLDriver602よって頁記述言語が生成される。またPDL Driver602はジョブ情報を解析し、割り込み印刷或いは優先印刷指示や、使用する用紙サイズ、用紙の枚数等をジョブ情報通知サービス1324へ通知し、外部(ジョブ情報通知サービス1324)からジョブの識別子を受け取る。ジョブ情報通知サービスではPDL Driver602からジョブ情報を通知された際に、一意なジョブ識別子(UUID)を生成すると共に、ジョブ情報に従い適切な処理を行い、ジョブ制御プリントサービス622にジョブの識別子(UUID)とWindows(登録商標) SpoolerでのOSジョブID及びジョブの情報を通知する。ジョブ情報通知サービスから返却されたジョブ識別子(UUID)は、PDLDriver602によってジョブデータに埋め込まれる。
一方、PDLDriver602によって生成された頁記述言語は、ポートモニタを通してデバイスへ送信されるか或いは、予め設定されたPDLDriver602に対応するジョブ制御ポートモニタ621からジョブ制御プリントサービス622を介して対応するデバイス105に送信される。
例えば、スタンダードTCP/IPポート(モニタ)から送信されたジョブは、デバイス105によって優先順位に従った印刷処理が行われる。
一方、ジョブ制御ポートモニタ621を経由した場合は、ジョブデータがジョブ制御プリントサービス622へ通知される際に、ジョブ制御ポートモニタ621は前述のジョブ識別子(UUID)を抜き取り、Windows(登録商標) Spoolerで発行されたOSジョブIDも合わせて通知する。またこのジョブ識別子(UUID)はデバイス105内部のジョブ状態確認においても利用される。これによりジョブ制御プリントサービス622及びジョブ制御サーバ630ではWindows(登録商標)で発行されたジョブの情報とデバイス105内部でのジョブ情報を関連付け、印刷ジョブの確実な追跡を行っている。
印刷ジョブ制御システム用プリントマネージャ623、印刷ジョブ制御システム用サーバ630の動作については、第1の実施の形態において説明したものと同様なので、ここでは説明を省略する。
(ジョブ制御の流れ)
次に、本発明の印刷システムにおけるPDLジョブの制御の流れについて説明する。
アプリケーションからのGDI呼び出しはOSによって変換されプリンタドライバ602が呼び出される。プリンタドライバはDEVMODEの設定に従いPDLデータを作成する。割り込み或いは優先印刷を指示する情報は印刷の初期設定或いは印刷実行時に表示されるプリンタドライバUI(USER INTERFACE)によって、DEVMODEの拡張領域に保存される。プリンタドライバではこの拡張領域を確認することによって、割り込み或いは優先印刷ジョブを作成する。
なお、PDLプリンタドライバ602によって生成される割り込み印刷コマンドの一例は、第1の実施形態の図7と同じである。
このようにして作成されたデータはジョブ単位に管理され、順次Windows(登録商標) Spooler603へスプールされる。
Windows(登録商標) Spooler603では、該ジョブデータを、1頁分のスプールが完了したタイミング、或いは全頁分のスプールが完了したタイミング、或いはスプールが行われる都度、順次デスプール(送信処理)を行い、ジョブ制御ポートモニタ621にジョブデータを渡して行く。
図14はジョブ情報通知処理の概要を示すフローチャートである。この処理はPDLDriver602において、PDLデータ生成が始まった時及びデータの生成が終了したときの2度呼び出される。
なお、PDLDriver602からジョブ情報通知サービスからジョブ制御プリントサービス622へ通知されるジョブ情報の概要は図16に示される。ここには、Windows(登録商標)上のOSジョブID、ジョブ名、プリンタ名、割り込み属性等、Windows(登録商標)で管理しているジョブ情報の他、用紙サイズや用紙枚数、更にジョブ生成終了時の通知においては、ジョブ生成時にジョブ通知サービスから通知されたジョブ識別子(UUID)も含まれる。この他のOSあるいはプリンタドライバを用いて収集可能なジョブ属性を含むことも任意であり本発明の趣旨に反するものではない。尚、図16における割込み属性には、割り込み或いは優先印刷を指示する属性が含まれるものとする。
まずステップS1400でPDLDriver602からジョブ情報が通知されるとジョブ情報通知サービス1324はジョブ情報をジョブ制御プリントサービス622が識別するための識別子(UUID)を生成する。
続いてステップS1401においてジョブ情報に割り込み印刷指示が含まれるかを確認(検知)する。NOの場合には続いてステップS1402において優先印刷指示が含まれるかを確認(検知)する。
ステップS1401或いはS1402においてYESと判定された場合には、ステップS1403においてPDLDriver602から通知されたWindows(登録商標) Spooler上のOSジョブIDを用いて、Windows(登録商標) Spoolerに対して優先順位変更が指示される。尚、このWindows(登録商標) Spoolerに対しての優先順位変更の指示は事前にOSジョブIDの通知を受けているジョブ制御プリントサービス622が行うようにしても良い。
優先順位が変更されたジョブは、Windows(登録商標) Spooler中に先行するジョブが存在する場合でもWindows(登録商標) Spoolerによって優先的にポートモニタ或いはジョブ制御ポートモニタ621に渡される。ジョブ制御ポートモニタ以外のポートモニタに渡されたPDLジョブは直ちにデバイスへ送信され、デバイス105によって後述する割り込み印刷処理或いは優先印刷処理が行われる。
そして、処理がステップS1404に移行し、ステップS1403でジョブの優先順位が変更された場合には、ジョブ情報の更新が実行される。ステップS1402から処理が移行してきた場合には、更新処理は行われない。
ステップS1405では、通知されたジョブ識別子(UUID)がドライバに返還される。
一方ジョブ制御ポートモニタを経由した際のジョブ制御の動作概要を以下に説明する。
図15はジョブ制御プリントサービス622及びジョブ制御ポートモニタ621の協働の動作概要を示すフローチャートである。このフローチャートにおいて、第1の実施形態との差はステップS1517が存在することである。他のステップの機能は第1の実施形態と同じなので、同じ参照番号が付されている。
本実施形態においてジョブ制御プリントサービス622及びジョブ制御ポートモニタ621は、コンピュータの起動と共に起動されるサービスプログラムである。まずステップS900において初期化処理を行う。
初期化処理では、ジョブ制御プリントサービス622はサーバと通信を行いサーバからプリンタデバイス等の最新の情報を取得する。続いてステップS901のイベント処理待ちへ移る。イベント待ちループは、ジョブ制御プリントサービスを利用するアプリケーションプログラム623、1324やジョブ制御ポートモニタ622によるAPI呼び出しや、ジョブ制御サーバからのイベント通知、或いは内部処理の遷移によるイベント通知により、イベントの発生が検知される。そして、イベントの種類によってステップS902以下の処理が実行される。
まず、ステップS902でジョブ投入コマンドの投入があるか否かの判定が行われる。
ステップS902でイベントがジョブ投入コマンドであると判定されるとステップS903でジョブ情報データをRAM202中に作成する。ジョブ情報データには最低限、ジョブの送信順序を制御するために必要なデータ(ジョブ制御プリントサービス622が発行した独自ジョブIDとジョブを発行したWindows(登録商標) SpoolerでのOSジョブID、ジョブファイル名、受け付け時刻、優先順位等)が含まれ、必要に応じ文書名、ユーザ名等の付加情報等が含まれる。そして、ジョブ情報が作成されると続いてステップS901のイベント待ちループへ戻る。
一方、ステップS902における判定がNOの場合は、ステップS904において、該イベントがスプール開始コマンドか否かが判定される。図6に対応させると、ジョブ制御ポートモニタ621がWindows(登録商標) Spooler603からスプール開始コマンドを受けたか否かを判定する。
ステップS904において、YESの場合には、処理はステップ1517に移行する。ステップS1517では、ジョブ制御ポートモニタ621からジョブ制御プリントサービス622へスプールファイルの読み出しがUUIDと共に通知され、処理はステップS905に移行する。UUIDの通知の結果、ステップS905において独自ジョブIDとスプールファイル名がジョブ制御ポートモニタ621に返却される。ジョブ制御プリントサービス622は、このUUIDの通知に基づいて投入されたジョブが割り込み印刷であるか否かを区別(何れであるかを検知)することができる。これは、図14のステップS1405において事前に割り込み印刷或いは優先印刷を指示されたプリントジョブのUUIDが事前にジョブ制御プリントサービス622に通知されていることにより実現する。
つまり、スプール開始コマンドではジョブ制御ポートモニタ621はジョブ制御プリントサービス622にWindows(登録商標) Spooler603等のジョブ制御プリントサービス622の前段にある外部のWindows(登録商標)のOSジョブIDと共に前述のジョブ情報通知サービス1324が発行したジョブ識別子(UUID)が通知される。この時、ジョブ制御プリントサービス622はジョブ識別子(UUID)を用いて、予めジョブ情報通知サービスから通知されていたジョブ情報を検索する。一致したジョブ属性があれば、そのジョブに割り込み印刷指示或いは優先印刷指示が含まれるかを確認し、含まれていれば図15のステップS907におけるジョブ属性の更新処理も合わせて行う。
更にステップS903で作成されたジョブ情報から適切なジョブファイル名を返却し、ステップS901のイベント待ちループへ戻る。なお、ステップS905において、ステップS903で作ったジョブ情報ファイルに該当するジョブ情報が存在しない場合には、ステップS903に相当する処理を行いジョブ情報を新規に作成する。
ステップS904においてNOと判定された場合、ステップS906において該イベントが属性設定コマンドか否かが判定される。YESと判定されるとステップS907においてジョブ制御ポートモニタ621からのジョブ制御プリントサービス622へのジョブ属性の更新処理が行われる。本実施形態において割り込み或いは優先ジョブを示す属性は文書名、ユーザ名等、通常のジョブ属性と同様に管理されている。ジョブ属性の更新が終了するとステップS901のイベント待ちループへ戻る。
一方、ステップS906においてNOと判定された場合、ステップS908において該イベントがスケジュールコマンドか否か判定される。YESと判定されるとステップS909においてサーバ630にスケジュール依頼が通知される。この時該ジョブのジョブ属性も同時に通知される。また、このジョブ属性には独自ジョブIDが含まれるものとする。ステップS909のスケジュール依頼処理が終わるとステップS901のイベント待ちループへ戻る。尚ジョブ制御サーバ630での処理は第1の実施形態と同様である。
ステップS908でNOと判定された場合には、ステップS910において該イベントがサーバ630からのスケジュールアップイベントか否か判定される。YESの場合にはステップS911において該ジョブをデバイス105へ送信し、ステップS901のイベント待ちループへと戻る。該ジョブが割り込み或いは優先印刷指示されたジョブである場合には、印刷装置105において優先印刷処理が行われる。
ステップS910でNOと判定された場合には、ステップS912において該イベントがサーバからのジョブ完了イベント(デバイスからのジョブ完了イベントに対応)か否かが判定される。YESの場合には処理はステップS913に移行し、そこで独自ジョブIDを含むジョブ属性及びファイルが削除され、該ジョブの印刷処理が終了する。続いて処理はステップS901のイベント待ちループへと戻る。
ステップS912においてNOと判定された場合には、ステップS914において終了イベントか否かが判定される。YESの場合には、ステップS915において終了処理が行われ、ジョブ制御プリントサービスは終了する。ステップS914においてNOの場合には、ステップS916においてその他のコマンド処理が行われ、ステップS901のイベント待ちループへと戻る。その他のコマンド処理は本発明とは直接関係が無いため本実施例においては割愛する。
このように、第2の実施の形態によれば、Windows(登録商標)のSpoolerにジョブを投入したとしても、事前にジョブ制御プリントサービス622にOSジョブID及びUUIDが通知されているので、プリンタドライバに対して複雑な制御を施すことなく、ジョブ制御プリントサービス622から通知されたOSジョブIDについてWindows(登録商標) Spoolerの順番制御を簡単に行うことができる。
以上第1実施形態及び第2実施形態で説明したように、本発明は、単に印刷ジョブに優先度を付して、該付された優先度に基づく先送り印刷処理を行うという概念に留まるものではない。つまり、プリンタドライバで指示された優先印刷ジョブ或いは割り込み印刷ジョブが、通常ジョブと同様にWindows(登録商標)プリントスプーラーでスプールされ、且つ、このスプーラーに先行するジョブが複数存在した場合であっても、複数の印刷ジョブの送信処理が完了するまで、割り込み或いは優先印刷の対象である印刷ジョブの送信を待機しなければならないという状態を回避することができる。従って、割り込み或いは優先印印刷の指示がなされれば、対象の印刷ジョブを迅速に処理することができる。
<その他>
各実施の形態の処理は、各機能を具現化したソフトウェアのプログラムコードを記録した記憶媒体をシステム或は装置に提供し、そのシステム或は装置のコンピュータ(又はCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても実現することができる。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フロッピィ(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM,CD−R、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した各実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)などが実際の処理の一部又は全部を行い、その処理によって前述した各実施の形態の機能が実現される場合も含まれている。
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によって前述した各実施の形態の機能が実現される場合も含むものである。
本発明の実施形態に係る印刷処理システムの構成概略を示す図である。 本発明の実施例におけるコンピュータの構成を概要ブロック図である。 図2に示したRAM202のメモリマップの一例を示す図である。 図2に示したFD204のメモリマップの一例を示す図である。 図2に示したFDドライブ203とFD204との関係を示す図である。 第1の実施形態に係る印刷システムの機能ブロック図である。 割込みジョブ印刷コマンドのデータ構造例である。 ジョブ制御ポートモニタにおけるデータ書き込み処理のフローチャートである。 第1の実施形態における、ジョブ制御プリントサービス(クライアント)でのフローチャートである。 ジョブ制御プリントサーバでのメインフローチャートである。 ジョブ制御プリントサーバでのジョブ選択フローチャートである。 割り込み印刷を処理するプリンタデバイスのフローチャートである。 第1の実施形態に係る印刷システムの機能ブロック図である。 ジョブ情報通知処理の概要を示すフローチャートである。 第2の実施形態における、ジョブ制御プリントサービス(クライアント)でのフローチャートである。 ドライバからジョブ情報通知サービスに通知される情報の一例を示す図である。
符号の説明
101 サーバコンピュータ
102〜104 クライアントコンピュータ
105 プリンタデバイス
106 ネットワーク
602 PDLプリンタドライバ
621 ジョブ制御ポートモニタ
622 ジョブ制御プリントサービス
630 ジョブ制御サーバ

Claims (21)

  1. アプリケーションデータに基づき作成されたデータをスプーラーにより外部に出力可能な情報処理装置であって、
    アプリケーションデータに基づき作成されたプリントジョブのデータを受け取る受信手段と、
    前記受け取ったプリントジョブのデータに、プリンタデバイスにおいて優先的に印刷出力されるよう指示された先送りジョブの属性が含まれる場合に、前記受け取ったプリントジョブのデータを優先的に前記プリンタデバイスに転送するようにする制御手段と、を有することを特徴とする情報処理装置。
  2. 前記受信手段は、前記プリントジョブのデータをスプーラーから受け取ることを特徴とする請求項1に記載の情報処理装置。
  3. さらに、前記受け取ったプリントジョブのデータを解析する解析手段を有し、
    前記制御手段は、前記解析手段による解析に基づき前記先送りジョブの属性を検知することを特徴とする請求項1又は2に記載の情報処理装置。
  4. さらに、前記プリンタデバイスにおける先送りジョブの指定に応じて発行される前記制御手段が解釈できる先送りジョブIDを、前記制御手段に通知する通知制御手段を備え、
    前記制御手段は、前記スプーラーから受信した前記プリントジョブのデータに前記先送りジョブIDが含まれる場合に、前記プリントジョブのデータを優先的に前記プリンタデバイスに出力することを特徴とする請求項2又は3に記載の情報処理装置。
  5. 前記通知制御手段は、前記プリンタデバイスにおける先送りジョブの指定に応じて発行されるオペレーティングシステムジョブIDを、通知するようにし、
    前記制御手段は、前記通知されたオペレーティングシステムジョブIDに基づき前記スプーラーに対して前記オペレーティングシステムジョブIDのジョブを優先的に出力するよう指示することを特徴とする請求項4に記載の情報処理装置。
  6. 前記通知制御手段は前記プリンタデバイスにおける先送りジョブの指定に応じて発行される、前記オペレーティングシステムジョブIDを前記先送りジョブIDと共に前記制御手段に通知し、
    前記制御手段は、前記先送りジョブIDと共に通知されたオペレーティングシステムジョブIDに基づき前記スプーラーに対して前記オペレーティングシステムジョブIDのジョブを優先的に出力させることを特徴とする請求項4に記載の情報処理装置。
  7. 前記先送りジョブは、優先ジョブ又は割り込みジョブを含むことを特徴とする請求項1乃至6の何れか1項に記載の情報処理装置。
  8. さらに、イベントの発生を検知するイベント検知手段と、
    前記イベント検知手段によって検知されたイベントがジョブ投入コマンドであった場合には、投入されたジョブのIDとジョブ属性を生成するジョブ情報作成手段と、
    を備えることを特徴とする請求項1乃至7の何れか1項に記載の情報処理装置。
  9. さらに、前記イベント検知手段によって検知されたイベントがスプール開始コマンドであった場合に、前記情報作成手段によって作成された、対応するジョブ情報をプリントジョブデータの送出元に出力するジョブ情報出力手段を備えることを特徴とする請求項8に記載の情報処理装置。
  10. 印刷装置と、この印刷装置と通信回線を介して通信可能な、印刷処理を行う情報処理装置とを有する印刷システムであって、
    先送りプリントジョブを検知するジョブ検知手段と、
    前記ジョブ検知手段によって検知された前記先送りジョブを優先的にプリンタデバイスに送信するようにするスケジュールアップの指示を検知するスケジュールアップ検知手段と、
    前記スケジュールアップ検知手段により検知された指示に従い、前記プリンタデバイスへ先送りジョブの属性を含むジョブを出力する制御手段と、を備え、
    前記印刷装置においては前記先送りジョブの属性に基づく印刷処理が行なわれることを特徴とする印刷システム。
  11. アプリケーションデータに基づき作成されたデータをスプーラーにより外部に出力可能な情報処理方法であって、
    アプリケーションデータに基づき作成されたプリントジョブのデータを受け取る受信工程と、
    前記受け取ったプリントジョブのデータに、プリンタデバイスにおいて優先的に印刷出力されるよう指示された先送りジョブの属性が含まれる場合に、前記受け取ったプリントジョブのデータを優先的に前記プリンタデバイスに転送するようにする制御工程と、を有することを特徴とする情報処理方法。
  12. 前記受信工程では、前記プリントジョブのデータをスプーラーから受け取ることを特徴とする請求項11に記載の情報処理方法。
  13. さらに、前記受け取ったプリントジョブのデータを解析する解析工程を有し、
    前記制御工程では、前記解析工程による解析に基づき前記先送りジョブの属性を検知することを特徴とする請求項11又は12に記載の情報処理方法。
  14. さらに、前記プリンタデバイスにおける先送りジョブの指定に応じて発行される前記制御工程で解釈できる先送りジョブIDを、前記制御工程に通知する通知制御工程を備え、
    前記制御工程では、前記スプーラーから受信した前記プリントジョブのデータに前記先送りジョブIDが含まれる場合に、前記プリントジョブのデータが優先的に前記プリンタデバイスに出力されることを特徴とする請求項12又は13に記載の情報処理方法。
  15. 前記通知制御工程では、前記プリンタデバイスにおける先送りジョブの指定に応じて発行されるオペレーティングシステムジョブIDを、通知するようにし、
    前記制御工程では、前記通知されたオペレーティングシステムジョブIDに基づき前記スプーラーに対して前記オペレーティングシステムジョブIDのジョブを優先的に出力するよう指示することを特徴とする請求項14に記載の情報処理方法。
  16. 前記通知制御工程では、前記プリンタデバイスにおける先送りジョブの指定に応じて発行される、前記オペレーティングシステムジョブIDが前記先送りジョブIDと共に前記制御工程に通知され、
    前記制御工程では、前記先送りジョブIDと共に通知されたオペレーティングシステムジョブIDに基づき前記スプーラーに対して前記オペレーティングシステムジョブIDのジョブが優先的に出力されることを特徴とする請求項14に記載の情報処理方法。
  17. 前記先送りジョブは、優先ジョブ又は割り込みジョブを含むことを特徴とする請求項11乃至16の何れか1項に記載の情報処理方法。
  18. さらに、イベントの発生を検知するイベント検知工程と、
    前記イベント検知工程で検知されたイベントがジョブ投入コマンドであった場合には、投入されたジョブのIDとジョブ属性を生成するジョブ情報作成工程と、
    を備えることを特徴とする請求項11乃至17の何れか1項に記載の情報処理方法。
  19. さらに、前記イベント検知工程で検知されたイベントがスプール開始コマンドであった場合に、前記情報作成工程で作成された、対応するジョブ情報をプリントジョブデータの送出元に出力するジョブ情報出力工程を備えることを特徴とする請求項18に記載の情報処理方法。
  20. 請求項11乃至19の何れか1項に記載の情報処理方法を実現することを特徴とするコンピュータプログラム。
  21. 請求項20に記載のコンピュータプログラムを記憶したことを特徴とする、コンピュータで読み取り可能な記憶媒体。
JP2003416722A 2003-12-15 2003-12-15 情報処理装置、情報処理方法、及びコンピュータプログラム、並びにコンピュータ読み取り可能な記憶媒体 Expired - Fee Related JP3962720B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003416722A JP3962720B2 (ja) 2003-12-15 2003-12-15 情報処理装置、情報処理方法、及びコンピュータプログラム、並びにコンピュータ読み取り可能な記憶媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003416722A JP3962720B2 (ja) 2003-12-15 2003-12-15 情報処理装置、情報処理方法、及びコンピュータプログラム、並びにコンピュータ読み取り可能な記憶媒体

Publications (2)

Publication Number Publication Date
JP2005174225A true JP2005174225A (ja) 2005-06-30
JP3962720B2 JP3962720B2 (ja) 2007-08-22

Family

ID=34735840

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003416722A Expired - Fee Related JP3962720B2 (ja) 2003-12-15 2003-12-15 情報処理装置、情報処理方法、及びコンピュータプログラム、並びにコンピュータ読み取り可能な記憶媒体

Country Status (1)

Country Link
JP (1) JP3962720B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007083522A (ja) * 2005-09-21 2007-04-05 Fuji Xerox Co Ltd 印刷装置および印刷装置の印刷ジョブ割込み制御方法
KR100908781B1 (ko) 2006-05-29 2009-07-22 캐논 가부시끼가이샤 정보 처리 장치, 인쇄 시스템, 감시 방법 및 기억 매체
JP2016118983A (ja) * 2014-12-22 2016-06-30 キヤノン株式会社 情報処理装置、印刷制御方法、およびプログラム
JP2019096172A (ja) * 2017-11-27 2019-06-20 富士ゼロックス株式会社 情報処理装置及び情報処理プログラム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007083522A (ja) * 2005-09-21 2007-04-05 Fuji Xerox Co Ltd 印刷装置および印刷装置の印刷ジョブ割込み制御方法
KR100908781B1 (ko) 2006-05-29 2009-07-22 캐논 가부시끼가이샤 정보 처리 장치, 인쇄 시스템, 감시 방법 및 기억 매체
JP2016118983A (ja) * 2014-12-22 2016-06-30 キヤノン株式会社 情報処理装置、印刷制御方法、およびプログラム
JP2019096172A (ja) * 2017-11-27 2019-06-20 富士ゼロックス株式会社 情報処理装置及び情報処理プログラム
US11243730B2 (en) 2017-11-27 2022-02-08 Fujifilm Business Innovation Corp. Information processing apparatus, method and non-transitory computer readable medium storing information processing program
JP7027837B2 (ja) 2017-11-27 2022-03-02 富士フイルムビジネスイノベーション株式会社 情報処理装置及び情報処理プログラム

Also Published As

Publication number Publication date
JP3962720B2 (ja) 2007-08-22

Similar Documents

Publication Publication Date Title
JP3720740B2 (ja) 分散印刷システム、分散印刷制御方法、記憶媒体、及びプログラム
US7719703B2 (en) Print control program and medium and information processing apparatus
JP4817474B2 (ja) データ処理装置およびデ―タ処理方法およびコンピュ―タが読み出し可能なプログラムを格納した記憶媒体
US7945712B2 (en) Job status monitoring system, job status monitoring method, program, and storage medium
JP4980776B2 (ja) 画像形成装置、プログラム及び記録媒体
JP4944682B2 (ja) 印刷制御装置、印刷制御方法、プログラム及び記憶媒体
JP3903024B2 (ja) 出力管理方法及び情報処理装置
JP2007328639A (ja) 印刷システム、サーバ装置、クライアント装置及び印刷設定方法
JP4018609B2 (ja) 情報処理装置、情報処理方法および情報処理プログラム並びにコンピュータ読み取り可能な記憶媒体
JP2001350606A (ja) 印刷システム、印刷データ処理方法及び該方法を実施するためのプログラムを記録した記録媒体
JP2002182879A (ja) 印刷制御装置および方法および印刷システム
JP2006209309A (ja) 印刷システム
JP3789062B2 (ja) 情報処理装置およびデータ処理方法およびコンピュータが読み取り可能なプログラムを格納した記憶媒体
JP3962720B2 (ja) 情報処理装置、情報処理方法、及びコンピュータプログラム、並びにコンピュータ読み取り可能な記憶媒体
JP4886501B2 (ja) 印刷装置、印刷制御方法、及びプログラム
KR100644671B1 (ko) 프린터 드라이버 변경장치 및 방법과 이를 이용한드라이버 변경가능한 프린터 시스템 및 방법
JP2007087130A (ja) サーバ装置、サーバ装置の印刷処理方法、記憶媒体およびプログラム
JP2007058417A (ja) プリントシステム
JP2006146716A (ja) 情報処理装置、情報処理方法、ならびにプログラム、記憶媒体
JP2008027217A (ja) 情報処理装置および印刷装置を備える印刷システム
JP2006178767A (ja) 印刷予約システム及びその制御方法
JP2006209308A (ja) 印刷システム
JP2003241948A (ja) 失敗した印刷ジョブを回復するための方法または装置
JP4776763B2 (ja) プリントサーバ装置及び情報処理装置及び印刷ジョブ保存管理方法、及び保存ジョブ生成方法および記憶媒体
JP2002248840A (ja) 印刷制御装置およびデータ処理方法および記憶媒体

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060720

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060904

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061106

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: 20070507

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070521

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20100525

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110525

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120525

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120525

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130525

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20140525

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees