(57)【要約】【課題】ネットワークを介して印刷装置を複数のユーザで共用する際、あるユーザによる多量印刷、至急印刷等のために、他のユーザに迷惑のかからないような印刷ジョブの印刷停止，印刷再開機能を可能にすること。【解決手段】印刷データを一時的に格納しておくジョブスプーリング手段と、停止指定手段によって印刷ジョブに付随されたパラメータによって印刷データか停止指定であるかどうかを、印刷データの投入時にただちに判断するジョブプリプロセス手段と、前記ジョブプリプロセス手段によって停止指定であると認識された場合、当該停止指定のある印刷ジョブを前記ジョブスプーリング手段から取り出すのを停止し、その印刷ジョブの印刷を停止させておく停止手段と、時計手段と、印刷を再開する指令を受信して、あるいは、あらかじめ指定された再開時刻になると、当該印刷を停止しているジョブを前記ジョブスプーリング手段から取り出して印刷を行なう再開手段とを有することを特徴とする。【選択図】　　　図１
2004021458.tif 000002
【特許請求の範囲】
【請求項１】
ホストコンピュータと印刷システムとからなる印刷システムにおいて、前記ホストコンピュータにあって、
ユーザの指示によって、印刷ジョブに停止指定であることを示すパラメータおよび再開時刻を付随させて送信する停止指定手段と、
前記印刷装置にあって時計手段と、
最低１つの印刷ジョブのＥＤＬデータを印刷完了まて格納保持するジョブスプーリング手段と、
前記停止指定手段によって印刷ジョブに付随されたパラメータによって印刷データか停止指定であるかどうかを、印刷データの投入時に直ちに判断するジョブプリプロセス手段と、
前記ジョブプリプロセス手段によって停止指定であると認識された場合、当該停止指定のある印刷ジョブを前記ジョブスプーリング手段から取り出すのを停止し、その印刷ジョブの印刷を停止させておく停止手段と、
さらに前記ホストコンピュータにあって、すでに印刷装置に投入されて印刷を停止しているジョブに対して、ユーザの指示によって印刷を再開する指令を発行する再開指定手段と、
前記印刷装置にあって、前記再開指定手段によって発行された印刷を再開する指令を受信して、あるいは、前記停止指定手段により再開時刻になると、当該印刷を停止しているジョブを前記ジョブスプーリング手段から取り出して印刷を行なう再開手段と、
を有することを特徴とする印刷システム。
【請求項２】
さらに前記ホストコンピュータにあって、
すでに印刷装置に投入された印刷ジョブに対して、ユーザの指示によって任意の印刷ジョブの印刷を再開時刻まで停止する指令を再開時刻を付加して発行するユーティリティ手段と、
前記印刷装置にあって時計手段と、
前記ユーティリティ手段によって発行された印刷を停止する指令を受信して、当該停止指定のある印刷ジョブを前記ジョブスプーリンク手段から取り出すのを停止し、その印刷ジョブの印刷を停止させておく停止手段と、
さらに前記ホストコンピュータにあって、
すでに印刷装置に投入されて印刷を停止している印刷ジョブに対して、ユーザの指示によって印刷を再開する指令を発行する再開指定手段と、
前記印刷装置にあって、
前記再開指定手段によって発行された印刷を御開する指令を受信して、あるいは、前記ユーティリティ手段により指定された再開時刻になると、当該印刷を停止しているジョブを前記ジョブスプーリング手段から取り出して印刷を行なう再開手段と、
を有することを特徴とする印刷システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ユーザの指示にしたがって印刷データを生成するホストコンピュータと、所定の通信媒体を介して前記ホストコンピュータから送信された印刷データをデータ処理して画像データを生成し、用紙などのメディアに実際に印刷を行なう印刷装置からなる印刷システムに関するものである。
【０００２】
【従来の技術】
従来、ホストコンピュータと印刷装置から構成された印刷システムにおいては、ホストコンピュータから生成される印字データを印刷するだけではなく、ホストコンピュータから印刷装置の情報獲得、環境設定を行なうといった機能が要求されている。特に昨今のネットワークの普及により、印刷処理時間の速い高機能な１台の印刷装置を複数のユーザでネットワークを介して共有することにより、オフィスにおける大量の印刷ニーズを満たしながら管理コストを最低限に抑えるといった使用形態が一般化している。この状況下で、管理者はリアルタイムで遠隔地にある印刷装置の管理を行ないたいという要求があり、また一般ユーザは自分が発行した印刷ジョブの処理状況の確認や、取り消しといった２次操作を行ないたいという要求があり、この要求を満たす印刷システムが数多く実現化されている。
【０００３】
図１２は従来の印刷システムにおける、ホストコンピュータから印刷装置への印刷ジョブ送信、印刷装置の情報獲得、環境設定を行なう仕組みを具現化した印刷システムの機能構成を示すブロック図である。従来の印刷システムは、ホストコンピュータ１００と印刷装置１５０とが所定の印刷媒体１８０を介して接続されているという構成になっている。
【０００４】
ホストコンピュータ１００はアプリケーンョン部１０１、プリンタドライバ部１０２，送信バッファ１０３，Ｉ／Ｆドライバ部１０４，ユーティリティ部１０５，論理チャネル制御部１０６，ジョブパケット生成部１０７から構成されている。
【０００５】
アプリケーション部１０１はユーザにグラフィカルユーザインタフェースを提供し、ユーザの目的に適った画像データを生成する。プリンタドライバ部１０２は、アプリケーション部１０１が生成した画像データを印刷装置１５０で印刷可能なページ記述言語（以下ＰＤＬと略称）データに変換する。送信バッファ１０３はプリンタドライバ部１０２が生成したＰＤＬデータを一時的に格納しておく。ジョブパケット生成部１０７は送信バッファ１０３に蓄えられたデータに、アプリケーション部１０１が所有する印刷ジョブの情報を付加して所定のフォーマットに従ってジョブパケットを生成する。
【０００６】
ユーティリティ部１０５は印刷装置１５０に関する情報を獲得してグラフッィクユーザインタフェースを提供して、ユーザや管理者の要望に従って、印刷装置１５０における機器の情報を設定したり、印刷ジョブの状態の獲得や取り出し要求を行なうための管理パケットの生成を行なう。論理チャネル制御部１０６はジョブパケット生成部１０７が生成するジョブパケットとユーティリティ部１０５が生成する管理パケットとの多重化の制御を行ない、ＯＳＩ７階層におけるトランスボート層の役割を受け持つ。Ｉ／Ｆドライバ部１０４は論理チャネル制御部１０６から生成されたデータの送信と印刷装置１５０から送信されたデータの受信を行なう。
【０００７】
印刷装置１５０は、論理チャネル制御部１５１，機器データベース部１５２，ジョブプリプロセッサ部１５３，受信バッファ１５４，ＰＤＬトランスレータ部１５５，描画バッファ１５６，描画部１５７，プリンタエンジン部１５８，Ｉ／Ｆドライバ部１５９，情報管理部１６０，操作パネル１６１から構成されている。Ｉ／Ｆドライバ部１５９はホストコンピュータ１００から送信されたデータの受信と、論理チャネル制御部１５１から生成されたデータの送信を行なう。論理チャネル制御部１５１はＩ／Ｆドライバ部１５９が受信したデータを解析し、ジョブパケットはジョブプリプロセッサ部１５３、管理パケットは情報管理部１６０に分別し、逆に情報管理部１６０から送信される管理パケットをＩ／Ｆドライバ部１５１に送信する。ジョブプリプロセッサ部１５３は、ジョブパケットを受け取って解釈し、ＰＤＬデータを受信バッファ１５４に、ジョブの管理情報を機器テーダベース部１５２に送る。
【０００８】
受信バッファ１５４はＰＤＬデータが受信された順番に格納されている。
【０００９】
機器データベース部１５２はコピー数などのジョブ情報や、機器に関する情報が格納されている。
【００１０】
ＰＤＬトランスレータ部１５５は受信バッファ１５４に格納されたＰＤＬデータと機器データベースに格納されたジョブ情報を元にトランスレート処理を行ない、描画部１５７がリアルタイムに描画できる中間データに変換し、描画バッファ１５６に送信する。
【００１１】
描画バッファ１５６は複数ページ分の中間データを格納し、描画部１５７に渡す。
【００１２】
描画部１５７は描画バッファ１５６から中間データを取得し、プリンタエンジン部１５８が行なう用紙搬送処理とともにリアルタイムに中間データのレンダリングを行ない、プリンタエンジン部１５８にビデオデータとして送信を行なう。
【００１３】
プリンタエンジン部１５８は既知の電子写真技術を用いて描画部１５７から送信されたビデオデータを元に、用紙に物理的に印刷を行なう。
【００１４】
情報管理部１６０はユーティリティ部１０５の情報獲得要求を管理パケットの形で受け取り、機器データベース部１５２に必要な情報を獲得し、管理パケットに変換して論理チャネル制御部１５１を介してホストコンピュータに返答する。また、ジョブの終了を検知して自発的に終了の通知を管理パケットに変換して通知する。
【００１５】
操作パネル１６１は印刷装置１５０の本体に備え付けられている液晶やＬＥＤなどのディスプレイ装置と操作ボタンから構成されており、ユーザからの設定を情報管理部１６０を通して機器データベース部１５２に反映させ、あるいは現在の機器の状態を表示するという処理を行なう。
【００１６】
次に従来例におけるジョブの取り消し機能の仕組みを説明する。
【００１７】
ジョブの取り消し機能は、印刷要求を出したユーザあるいは管理者が印刷装置に対して送信されたジョブの印刷取り消しを要求する機能で、ユーティリティ部１０５にあるユーザインタフェース、あるいは操作パネル１６１から取り消しを要求する。
【００１８】
印刷装置１５０は印刷ジョブの印刷要求を受けると、ジョブプリプロセッサ部１５３で新規ジョブを認識し、印刷装置内で一意に保たれるジョブＩＤをジョブに対して割り振り、その情報を機器データベース部１５２に格納する。この情報は印刷ジョブの全ページが解釈、描画され、プリンタエンジン部１５８で最後の１ページの排紙が完了したと検知された段階で削除が行なわれる。
【００１９】
ユーティリティ部１０５は印刷装置１５０に対して、装置内ジョブリストの獲得を要求する管理パケットを発行し、印刷装置１５０は装着内で認識しているすべてのジョブの前記ジョブＩＤのリストを送信する。ユーティリティ部１０５はこれを受け取り、グラフッィクユーザインタフェースを用いて表示を行なう。
【００２０】
印刷ジョブを送信したユーザあるいは印刷装置の管理者は、ジョブの取り消しが可能である。すなわち、これはユーティリティ部１０５のグラフィックユーザインタフェースから削除を行なうジョブＩＤの指定が行なわれ、管理パケットに変換されて印刷装置１５０に取り消し要求の指令が行なわれる。印刷装置１５０へジョブ取り消し要求の管理パケットが送信されると、情報管理部１６０が検知を行ない、印刷パス上に該当ジョブが存在する場含にはその印刷の取り消しを行なう。
【００２１】
操作パネル１６１から取り消しを行なう場合は、ジョブＩＤを明示的に指定するのが困難であるので、印刷バス上もっとも処理が進んでいるジョブを取り消しの対象とする。具体的にはプリンタエンジン部１５８で、ジョブを処理しているときはそのジョブＩＤを取り消しの対象とし、そうでない場合には描画部１５７、ＰＤＬトランスレート部１５５といった感じに印刷バス上で処理中のジョブが見つかった段階で該当ジョブＩＤの決定を行ない、取り消しの対象とする。操作パネル１６１によるとジョブの取り消しは、該当ジョブＩＤの決定方法が異なるだけで、実際の印刷装置内の取り消し処理はユーティリティ部１０５による取り消しと同じである。
【００２２】
以上の操作によって、印刷装置１５０内に格納された任意のジョブの取り消し動作が可能となっている。
【００２３】
【発明が解決しようとする課題】
ネットワークの普及に伴い、高速、高機能な印刷装置を複数のユーザで共有する利用形態が増えてきた結果、新しいサービスのニーズかでてきた。
【００２４】
・多量の部数分印刷した
・データサイズか大きく、解析処理が困難である
などの理由で印刷処理に時間がかかり、共有プリンタを占有してしまうケースがある。
【００２５】
そこで、多量に印刷したいのだが、特に急いでいる訳ではなく、また、複数ユーザにより使用頻度の高いプリンタなので他のユーザに迷惑をかけないタイミンクで印刷したい、というような要求がある。
【００２６】
このような要求を遂行するために、印刷装置に印刷ジョブの印刷停止、印刷再開機能が望まれている。
【００２７】
さらに、再開時刻を指定した自動再開機能も望まれている。
【００２８】
本発明は上述した点に鑑みてなされたものであり、印刷ジョブの印刷の停止を指定された場合には、停止指定された印刷ジョブは、データは受信して格納しておくか、実際の印刷は停止しておき、印刷を再開をするようにあらかじめ指定されている時刻になると、自動的に格納してあるデータを取り出して実際に印刷を行なうことを可能としている。
【００２９】
【課題を解決するための手段】
上記目的を達成するために、本発明に係る印刷システムは、印刷データを一時的に格納しておくジョブスプーリング手段と、停止指定手段によって印刷ジョブに付随されたパラメータによって印刷データか停止指定であるかどうかを、印刷データの投入時にただちに判断するジョブプリプロセス手段と、前記ジョブプリプロセス手段によって停止指定であると認識された場合、当該停止指定のある印刷ジョブを前記ジョブスプーリング手段から取り出すのを停止し、その印刷ジョブの印刷を停止させておく停止手段と、時計手段と、印刷を再開する指令を受信して、あるいは、あらかじめ指定された再開時刻になると、当該印刷を停止しているジョブを前記ジョブスプーリング手段から取り出して印刷を行なう再開手段とを有することを特徴とする。
【００３０】
【発明の実施の形態】
〔第１実施形態〕
以下、本発明の第１の実施例を説明する。図１は本発明の第１の実施例の印刷システムにおける、ホストコンピュータから印刷装置への印刷ジョブ送信、印刷装置情報獲得、環境設定を行なう仕組みを具現化した印刷システムの機能構成を示すブロック図である。印刷システムは印刷すべきジョブを生成するホストコンピュータ２００と、実際に用紙に印刷を行なう印刷装置３００、および所定のインタフェース２１０から構成されている。インタフェース２１０はＩＥＥＥ１２８４で規定されているローカルインタフェースでもＥｔｈｅｒｎｅｔ（登録商標）のようなネットワークインタフェースでもよく、本実施例ではローカルインタフェースの場合の説明を行なう。
【００３１】
図１において、ホストコンピュータ２００は、ユーザがグラフィックユーザインタフェースを操作しなから所望の印刷データを生成するアプリケーション部２０１、アプリケーション部２０１が作成した画像データを、印刷装置３００が印刷可能なページ記述言語（以下ＰＤＬと略称）データに変換するプリンタドライバ部２０２，プリンタドライバ部２０２が変換したＰＤＬデータを一時的に格納しておく送信バッファ２０３、送信バッファ２０３に格納されたＰＤＬデータとアプリケーション部２０１が有するジョブ属性情報とから所定のジョブパケットを生成するジョブパケット生成部２０７、印刷装置３００の状態の確認や送信した印刷ジョブの印刷状態の確認や、印刷ジョブの取り消し、停止などの操作をグラフッィクユーザインタフェースを用いて、これらの要求を印刷装置３００が解釈可能な管理パケットに変換するユーティリティ部２０５、ジョブパケットと管理パケットをそれぞれ異なるチャネルに割り振り、ＯＳＩ７階層におけるトランスボート層の多重化を行なう論理チャネル制御部２０６，論理的なデータを電気信号に変換し、インタフェースとのやりとりを行なうＩ／Ｆドライバ部２０４から構成される。
【００３２】
印刷装置３００は、論理的なデータを電気信号に変換し、インタフェースとのやりとりを行なうＩ／Ｆドライバ部３０１，Ｉ／Ｆドライバ部から受信したデータを解析し、ジョブパケットと管理パケットをそれぞれ異なるチャネルに割り振り、ＯＳＩ７階層におけるトランスボート層の多重化を行なう論理チャネル制御部３０２、ジョブパケットを受け取って解析を行ない、印刷ジョブの属性情報は機器データベース部３０５，ＰＤＬデータはジョブスプーラ３０４に割り分けて格納するジョブプリプロセッサ部３０３，ＨＤＤやフラッシュメモリ、あるいはＤＲＡＭなどの大容量メモリデバイスから構成され、印刷ジョブの管理データを印刷完了まで一時的に保存するジョブスプーラ３０４、ジョブの処理順番および停止しているかどうかを記述したジョブ読み出しテーブル３１３、ジョブ読み出しテーブル３１３に記述された順番にジョブを取りだし、機器データベース部３０５に格納された属性情報とジョブスプーラ３０４に格納されたＰＤＬデータを解析し、リアルタイムに描画処理可能な中間データを生成して描画バッファ３０７に格納するＰＤＬトランスレータ部３０６、中間データをページ単位に印刷完了まで一時的に保持する描画バッファ３０７、描画バッファ３０７から中間データを取得し、プリンタエンジン部３０９が行なう用紙搬送処理とともにリアルタイムに中間データのレンダリングを行ない、プリンタエンジン部３０９にビデオデータとして送信を行なう描画部３０８、既知の電子写真技術を用いて描画部３０８から送信されたビデオデータを元に、用紙に物理的に印刷を行なうプリンタエンジン部３０９、ホストコンピュータ２００から送信された管理パケットを受け取り、要求に応じて機器データベース部３０５から情報の獲得を行ない、またジョブの取り消し要求や停止要求、再開要求を行ない、またジョブの終了や機器の異常を検知して自立的にホストコンピュータ２００に通知イベントを発行する情報管理部３１０、ジョブの停止指定および再開指定か行なわれた時に、実際の停止処理および再開処理を行なう停止／再開処理部３１２から構成される。
【００３３】
ホストコンピュータ部２００の論理チャネル制御部２０６から印刷装置３００の論理チャネル制御部３０２までに行なわれるデータ通信は、たとえばネットワークの場合はＴＣＰ／ＩＰ、ローカルの場合はＩＥＥＥ１２８４／ＩＥＥＥ１２８４．４による規定のプロトコルにより、トランスボート層レベルの多重化が行なわれているものとし、詳細な説明については省略する。
【００３４】
論理的にジョブパケット生成部２０７から送信されるジョブパケットはジョブプリプロセッサ部３０３によって受信され、この経路をジョブチャネルといい、ユーティリティ部２０５から送受信される管理パケットは情報管理部３１０によって送受信され、この経路を管理チャネルという。双方のチャネルは双方向通信が可能であることを規定しているが、ジョブチャネルに関してはホストコンピュータ印刷装置の片方向だけでも本実施例の実施形態を阻害するものではない。ジョブチャネルと管理チャネルはＯＳＩ７階層におけるトラースポート層レベルで多重化されており、片方のフロー処理が他力に影響することはない。次にジョブパケット、管理パケットの構造について説明する。
【００３５】
ジョブパケット、管理パケットはアプリケーション層のプロトコルであり、ヘッダ部、パラメータ部から構成されるパケット構造になっている。
【００３６】
１つの印刷ジョブは複数のジョブパケットから構成される。印刷ジョブを構成する一連のジョブパケットの集まりをジョブスクリプトと呼ぶ。
【００３７】
図２はジョブパケットの構造を示す説明図である。縦軸はバイトを示し、横軸は各バイトビットを示している。図中において０〜１バイト目のオペレーションコードは、パケットの機能を示す長さ２バイトのＩＤである。ジョブパケットにおいては以下の値を取ることかできる。
【００３８】
０ｘ０２０１　ジョブ開始オペレーション
０ｘ０２０２　ジョブ属性設定オペレーション
０ｘ０２０４　ＰＤＬデータ送信オペレーション
０ｘ０２０５　ジョブ終了オペレーション
２〜３バイト目のブロック番号は、ジョブパケットを送信した側が、返答を要求する場合に、受信側からの返答が送信側のどの返答要求に対するものであるか、その対応を取るために使用する番号である。例えばそれぞれブロック番号＝１，２，３というジョブパケットを立て続けに送信した時にブロック番号＝２というエラーパケットが帰ってきた場合、返答が帰ってきたとき、送信側は、２番目に送ったジョブパケットにエラーが発生したことを特定することが可能である。
【００３９】
４〜５バイト目のパラメータ長はデータ部のバイト長さを示す領域で、０〜６４Ｋバイトまでを示すことが可能である。
【００４０】
６〜７バイト目はジョブパケットの各種フラグを示す領域で、それぞれ以下の値を示す。
【００４１】
エラーフラグ：
この値が１の場合、印刷装置で何らかのエラーが発生したことを示す。このフラグは印刷装置からホストコンピュータに送られる返信パケットに付加される。
【００４２】
通知フラグ：
ここの値が１の場合は、ホストコンピュータからの要求パケットに対する返答ではなく、印刷装置がなんらかの通知事項があることをホストコンピュータに通知することを示している。
【００４３】
継続フラグ
この値が１の場合、テーダ部にすべてのデータか入らなかったため、次のジョブパケットで残りのデータが送られることを示す。次のジョブパケットは前のパケットと同じオペレーションコード、ブロック番号を設定しなくてはならない。
【００４４】
返答要求
ホストコンピュータから印刷装置に対して返答パケットが必要な場合に１をセットする。０のときは要求パケットは正常に処理された場合には返答は返さない。印刷装置でエラーが発生した場合には返答要求の０／１に関わらず、つねにエラーフラグを１にした返答パケットを送出する。
【００４５】
８〜９バイト目のユーザＩＤおよび１０〜１１バイト目のパスワードは、要求パケットでできる操作にセキュリティ的制限を設ける際に認証に使われる領域である。本実施例には影響しない。
【００４６】
１２バイト目以降はオペレーションコードに対応した追加データが格納される。
【００４７】
ジョブ開始オペレーションの場合、追加データとして、ジョブの実行モードが記述される。指定可能な実行モードを以下に述べる。
【００４８】
０ｘ０１：　ジョブの通常実行。当該ジョブは通常ジョブとして印刷装置キューの最後に追加され、スケジューリングが回ってきたら印刷処理を行なう。
【００４９】
０ｘ０４　ジョブの印刷停止。当該ジョブは投入と同時に停止ジョブとして扱い、当該ジョブはデータの格納のみ行ない、印刷は停止しておく。
【００５０】
ジョブ開始オペレーションの場合、追加データとして前記ジョブの実行モードに加えて、再開時刻が記述される。再開時刻を指定するデータについて説明する。図３は、年月日および時刻を示すデータ（以下、時刻データと呼ぶ）の構成を説明する図である。縦軸はバイトを示し、横軸は各バイトのビットを示している。図中において、１２ｂｉｔを占めるＹｅａｒは西暦年を示し、０〜４０９５の値を取ることができる。
【００５１】
Ｍｏｎｔｈは月を示す。１〜１２の値を取ることかできる。
【００５２】
Ｄａｔｅは日を示す。１〜３１の値を取ることかできる。
【００５３】
Ｈｏｕｒは時を示す。２４時間表記で、０〜２３の値を取ることができる。
【００５４】
Ｍｉｎｕｔｅは分を示す。０〜５９の値を取ることができる。
【００５５】
Ｓｅｃｏｎｄは秒を示す。０〜５９の値を取ることができる。
【００５６】
この時刻データにより何年何月何日何時何分何秒という情報を示すことができる。
【００５７】
ジョブ属性設定オペレーションの場合、設定したいジョブ属性ＩＤとジョブ属性値を設定する。ジョブ属性ＩＤとは、ジョブに関する属性あるいは環境に対応した識別子を示すもので、ＩＳＯ−１０１７５（ＤＰＡ）で規定されるジョブの属性に相当するＩＤが予め割り振られている。以下にジョブ属性の代表的なものを挙げる。
【００５８】
ジョブ属性ＩＤ
０ｘ０１０１　ジョブ名称
０ｘ０１０３　ジョブオーナ名
０Ｘ０１６ａ　ジョブサイズ
この他、印刷装置の機能に応じて、印刷部数、モノクロ・カラーなどのジョブ属性とそれに対応するＩＤを割り振ることができる。
【００５９】
ＰＤＬデータ送信オペレーションの場合は、追加データ部にはＰＤＬデータが入る。
【００６０】
１つのジョブパケットのデータは前記パラメータ長に格納できる最大サイズまでなので、６４ＫＢまで格納可能であり、それ以上のデータは複数のＰＤＬデータ送信オペレーションに返信して送信する。この場合は前記継続フラグに１を立てる。
【００６１】
ジョブ終了オペレーョンの場合は追加データは存在しない。
【００６２】
次にホストコンピュータにあるジョブパケット生成部２０７を説明する。
【００６３】
図４，図５はジョブパケット生成部２０７の動作を説明するフローチャートである。
【００６４】
ジョブパケット生成部２０７は、アプリケーション部２０１により、印刷指定が選択された時にプリンタドライバ部２０２が起動し、プリンタドライバ部２０２が印刷データを送信バッファ部２０３に生成を完了した後に処理が開始される。
【００６５】
Ｓ５０１において、当該ジョブが停止指定がされたかどうかを判断する。停止指定はプリンタドライバ部２０２のユーザインタフェースが提供するプロパティによって指定される。その際、該ユーザインタフェースでは、何時に再開時刻も指定される。停止指定ありの場合にはＳ５０３において動作モードを０ｘ０４、そうでない場合にはＳ５０２において動作モードを０ｘ０１に設定される。
【００６６】
Ｓ５０４において、図２のオペレーションコードを格納する領域にジョブ開始オペレーションコード（０ｘ０２０１）を指定したジョブパケットを論理チャネル制御部２０６に発行する。この時、ジョブパケットの追加データ領域に動作モードおよび再開時刻が設定され、通常ジョブか停止指定ジョブかの指定がなされる。
【００６７】
以降、ジョブ終了オペレーションを発行するまで、全てのオペレーションは当該ジョブの情報設定のためだけに用いられる。
【００６８】
Ｓ５０５において、ジョブの名称の設定が行なわれる。図２のオペレーションコードを格納する領域にジョブ属性設定オペレーションコード（０ｘ０２０２）、パラメータ部に、ジョブ名称を示すジョブ属性ＩＤ（＝０ｘ０１０１）、およびジョブ属性値となる名称を指定したジョブパケットを論理チャネル制御部２０６に発行する。
【００６９】
Ｓ５０６において、ジョブの所有者の設定が行なわれる。図５のオペレーションコードを格納する領域にジョブ属性設定オペレーションコード（０ｘ０２０２）、パラメータ部に、ジョブ所有者を示すジョブ属性ＩＤ（＝０ｘ０１０３）、およびジョブ属性値となる所有者名を指定したジョブパケットを論理チャネル制御部２０６に発行する。
【００７０】
Ｓ５０７において、ジョブサイズの設定が行なわれる。図２のオペレーションコードを格納する領域にジョブ属性設定オペレーションコード（０ｘ０２０２）、パラメータ部に、ジョブサイズを示すジョブ属性ＩＤ（＝０ｘ０１６ａ）、およびジョブ属性値となるジョブのデータサイズを指定したジョブパケットを論理チャネル制御部２０６に発行する。
【００７１】
Ｓ５０８において、変数ｓｉｚｅに送信すべきＰＤＬデータのサイズを代入する。
【００７２】
Ｓ６０１において、変数ｓｉｚｅの大きさをチェックし、６４Ｋより大きいかどうかを比較する。ジョブパケットに指定できるパラメータのサイズはパケットヘッダのパラメータ長のサイズが１６ビットで表現されているため、最大６４Ｋバイトの制限があるので、それ以上のデータは複数のジョブパケットに分割して発行されることになる。もしデータのサイズが６４Ｋよりも大きい時は、Ｓ６０５において図２のパケットヘッダ継続フラグを１に設定し、さらにＳ６０６において、送信バッファ２０３から６４Ｋバイト分のＰＤＬデータが取り出され、図２のオペレーションコードを格納する領域にＰＤＬデータ送信オペレーション（０ｘ０２０４）に、パラメータ部に前記取り出されたＰＤＬデータを指定したジョブパケットを論理チャネル制御部２０６に発行する。またＳ６０７において、送信した分の６４Ｋをｓｉｚｅから減じて、Ｓ６０１の分岐に戻る。
【００７３】
Ｓ６０１において、データサイズが６４Ｋ以下の場合は、後１回のＰＤＬデータ送信オペレーションで全データの送信が完了する。この場合、Ｓ６０２において、図２のパケットヘッダの継続フラグを０にして、ＰＤＬデータ送信が最後であることを設定し、さらにＳ６０３において送信バッファ２０３からすべてのＰＤＬデータか取り出され、図２のオペレーションコードを格納する領域にＰＤＬデータ送信オペレーション（０ｘ０２０４）に、パラメータ部に前記取り出されたＰＤＬデータを指定したジョブパケットを論理チャネル制御部２０６に発行する。
【００７４】
その後Ｓ６０４において、図２のオペレーションコードを格納する領域にジョブ終了オペレーションコード（０ｘ０２０５）を指定したジョブパケットを論理チャネル制御部２０６に発行して終了する。
【００７５】
次にジョブプリプロセッサ部３０３の説明を行なう。
【００７６】
図５はジョブプリプロセッサ部３０３の動作を説明するフローチャートである。
【００７７】
図５において、ジョブフリプロセッサ部３０３は印刷装置３００の起動時に開始され、以後印刷装置３００の電源遮断まで処理を継続する。
【００７８】
最初にＳ７０１においてジョブパケットの受信を行なう。受信するとＳ７０２においてジョブ開始オペレーションかどうかの比較が行なわれる。ここでジョブ開始オペレーション以外のオペレーションが到着した場合には不正動作となり、Ｓ７０３でジョブパケットの破棄が行なわれ、Ｓ７０１に戻る。ジョブ開始オペレーションと判断されると、Ｓ７０４で当該ジョブのジョブＩＤの獲得が行なわれる。ジョブＩＤは２バイトの番号として割り振られ、機器データベース部３０５におけるジョブ属性情報の読み書き処理のキーとして利用される。次にＳ７０５においてジョブ読み出しテーブルに当該ジョブのジョブＩＤが追加される。Ｓ７０６において、ジョブパケットの追加データを検索し、動作モードが０ｘ０４かどうかが比較される。０ｘ０４の場合は前記のとおり停止指定を示しており、その場合にはＳ７０７において停止／再開処理部３１２に対してジョブの印刷停止の指示を出す。この際、ジョブ読み出しテーブルの当該ジョブの停止フラグにＴをセットする。さらに、追加データに設定されている再開時刻データも、ジョブ読み出しテーブルにセットする。
【００７９】
統いてＳ７０８で次のジョブパケットの受け付けを行なう。Ｓ７０９において受信したジョブパケットが属性設定オペレーンョンの場合は、Ｓ７１０において機器データベース部３０５において属性データの設定を行なう。この時キーとなるのはＳ７０４で獲得したジョブＩＤとジョブパケットの追加データに記述されてある属性ＩＤおよび属性データである。属性設定が完了すると次のジョブパケットを受信するため、Ｓ７０８に戻る。
【００８０】
Ｓ７１１においてジョブパケットがＰＤＬデータ送信オペレーションであるかどうかの比較を行ない、そうである場合にはＳ７１２においてジョブスプーラ３０４にＰＤＬデータの追加を行なう。この時、ジョブＩＤをキーとして渡し、後で取り出すときにもジョブＩＤをキーとして取り出せるようにしておく。ジョブスプーラ３０４への追加が完了すると次のジョブパケットを受信するため、Ｓ７０８に戻る。
【００８１】
Ｓ７１３においてジョブパケットがジョブ終了オペレーションであるかどうかの比較を行ない、そうである場合には、一連のループを抜けてＳ７０１の初期状態に戻る。
【００８２】
いずれのオペレーションに該当しない場合には、不正なジョブパケットであるので、Ｓ７１４においてジョブパケットの破棄を行なう。
【００８３】
以上の動作によって、ジョブプリプロセッサ部３０３はジョブパケットを機器データベース部３０５とジョブスプーラ３０４にデータの振り分けを行なう。
【００８４】
次にジョブ読み出しテーブル３１３の説明を行なう。
【００８５】
図６はジョブ読み出しテーブルを表す説明図である。
【００８６】
図６（ａ）は読み出しテーブルにジョブ１〜４が登録されていることを示す。停止フラグは、そのジョブが停止ししているかどうかを示す。この停止フラグがＴ（＝ＴＲＵＥ）の場合そのジョブは停止しており、Ｆ（＝ＦＡＬＳＥ）の場合そのジョブは停止していない通常ジョブであることを示す。図６（ａ）の例の場合、ジョブ１，ジョブ２，ジョブ３は停止していない通常ジョブで、ジョブ４は停止しているジョブである。
【００８７】
なお、ジョブ４は２０００年５月１日２３時３０分になったら再開するよう指定されている。
【００８８】
ＰＤＬトランスレータ部３０５はトランスレートを実行する時、読み出しテーブルの上から順番に印刷ジョブの取り出しを行なう。ただし、この際、停止フラグにＴがセットされているものは取り出さない。すなわち、停止しているジョブは取り出さない。
【００８９】
なお、読み出しテーブルにおいて、停止フラグにＴがセットされているジョブの再開時刻部分は、意味がないゴミデータか入っているので、参照したり使用したりしてはいけない。
【００９０】
ジョブプリプロセッサ部がＳ７０５においてジョブ読み出しテーブルに停止指定のされていないジョブ５を追加する場合、図６（ｂ）のように、ジョブ５は読み出しテーブルの停止フラグにＦがセットされているものの最後尾に追加される。すなわち、この図６（ｂ）の例の場合には、ジョブ３とジョブ４の間に追加されることになる。この際、ジョブ５は停止指定されていないので、停止フラグはＦがセットされる。
【００９１】
また、ジョブ１を最後まで読み出しを完了したと認識すると、図６（ｃ）のようにジョブ１はジョブ読み出しテーブルから削除される。以上のようにジョブ読み出しテーブル３１３はＰＤＬトランスレータ部が処理するジョブの順番の制御を行なう。ＰＤＬトランスレータ以降の印刷ジョブの処理については従来系と同じ処理であるため、説明を省略する。
【００９２】
次に停止処理について説明する。
【００９３】
ジョブプリプロセッサ部３０３が印刷ジョブの停止指定を認識すると、Ｓ７０７において停止／再開処理部に対して停止指定が行なわれる。この時、停止を行なうジョブＩＤと再開時刻も通知される。
【００９４】
図７は停止／再開処理部３１２の動作を説明するフローチャートである。
【００９５】
図７においてＳ９０１で停止指示がされたかどうかを判断し、指示がない場合はＳ９０４にすすむ。停止指示がされると、Ｓ９０２において停止ジョブのジョブＩＤをジョブ読み出しテーブルの最後尾に追加する。
【００９６】
そして、Ｓ９０３にすすみ、停止フラグにＴをセットし、再開時刻もセットする。これによって当該印刷ジョブは、再開時刻に達するあるいはホストからの再開指定がくることにより、再開されるまでは読み出されないので、停止ジョブということになる。
【００９７】
つづいてＳ９０４において、再開指示がされたかどうかを判断し、再開指示がされると、Ｓ９０５において再開指定されたジョブが実際に停止されているかどうかを調べる。これは、読み出しテーブルの停止フラグかＴかＦかを調べる。ここて、停止されていない場合、先頭に戻る。
【００９８】
停止されていたジョブへ再開指定が発行されていた場合、Ｓ９０６にすすみ、当該再開指定されたジョブの停止フラグをＦにセットする。そしてＳ９０７で、停止フラグにＦがセットされている最後尾へ移動する。
【００９９】
一方、Ｓ９０４において、再開指示がない場合は、Ｓ９０８で読み出しテーブル上の全ての停止ジョブについて、再開時刻になったかどうかのチェックを行なう。そして、Ｓ９０９で再開時刻になった停止ジョブについては、停止フラグをＦにセットし、Ｓ９１０で停止フラグにＦがセットされている最後尾へ移動する。
【０１００】
図８は停止処理時におけるジョブ読み出しテーブルの状態を表す説明図である。図８（ａ）において、通常ジョブかジョブ１〜４まて投入された状態で、ジョブ５が停止ジョブとして投入された場合を想定しており図８（ｂ）において、停止ジョブであるジョブ５はジョブ読み出しテーブルの最後に追加されている。
【０１０１】
ＰＤＬトランスレータ部３０６はジョブ読み出しテーブルに記述された順番に印刷ジョブのトランスレートを行なうことによって、ジョブ１〜４の順番に印刷処理が行なわれ、停止フラグかＴにセットされた停止ジョブ５のみ残ったままになる。この停止しているジョブ５は、再開指定により、停止フラグがＦにセットされた後、ＰＤＬトランスレータ部３０６に読み出されることになる。あるいは、再開時刻に達した場合、停止フラグかＦにセットされた後、ＰＤＬトランスレータ部３０６に読み出されることになる。
【０１０２】
次に、ユーティリティ部２０５の説明を行なう。
【０１０３】
ユーティリティ部は印刷装置３００に対して、印刷ジョブのリストや属性表示およびジョブのキャンセル停止、再開指示等の操作を指定するために存在する。
【０１０４】
ユーティリティが行なう操作は論理チャネルを用い、印刷ジョブを送信するジョブパケットと同等の管理パケットを送受信することとによって行なわれる。管理パケットはジョブパケットと同様、図２に示すようなデータ構造を持つ。０〜１１バイト目のパケットヘッダの各情報の内容もジョブパケットと同様で、オペレーションコードのみが以下のように異なる。
【０１０５】
０ｘ０１０ｂ　印刷ジョブのキャンセル指定
０ｘ０１２３　印刷ジョブの割り込み指定
０ｘ０１０ｄ　印刷ジョブのリスト獲得
０ｘ０１２０　印刷ジョブの停止指定
０ｘ０１２１　印刷ジョブの再開指定
０ｘ０１０５　属性の設定
０ｘ０１０６　属例の獲得
ジョブパケットと異なり、管理パケットは個々のパケットが固有の目的に使用される。ジョプパケットにより、印刷ジョブが送信されると、印刷装置はジョブプリプロセッサ部３０３の働きにより、機器データベース部３０５に、ジョブの情報が格納される。ユーティリティ部２０５が印刷装置にどのジョブが格納されているかを知りたい時は、前記印刷ジョブのリスト獲得のオペレーションコード（０ｘ０１０ｄ）を指定した管理パケットを管理チャネルに送信する。パラメータ部には獲得したいオブジェクトである印刷ジョブクラスを示すオブジェクトＩＤ＝０ｘ０１０２を指定する。
【０１０６】
この管理パケットは論理チャネル制御部２０６に送られ、インタフェース２１０を介して印刷装置３００の情報管理部３１０に送られる。
【０１０７】
情報管理部３１０は、受け取った管理パケットのオペレーションコードによって、印刷ジョブのリスト獲得だと確認し、機器データベース部３０５に蓄えられた印刷ジョブのリスト情報を獲得して、送信パケットの送信を行なう。返信パケットのパラメータ部には、印刷装置が認識している印刷ジョブの個数および、各印刷ジョブによって一意に決まるオブシェクトＩＤのリストか格納されている。
【０１０８】
各印刷ジョブが、ジョブ属性設定オペレーションによりジョブ名称、オーナ、サイズの情報を持っている場合、ユーティリティ部２０５は印刷ジョブに関する詳細な情報を獲得可能である。
【０１０９】
ユーティリティ部は印刷ジョブのリストを獲得した場合、さらに個々の印刷ジョブに対して、詳細な属性を獲得するために、属性の獲得をオペレーションコード（＝０ｘ０１０６）に指定した管理パケットを印刷装置に送信する。
【０１１０】
情報管理部３１０は、受け取った管理パケットのオペレーションコードによって、属性の獲得だと認識し、機器データベース部３０５に蓄えられた指定印刷ジョブのオブジェクトＩＤに対応する指定した属性ＩＤの属性を獲得し、返信パケットの返信を行なう。管理パケットのパラメータ部には、獲得したい印刷ジョブのオブジェクトＩＤ、獲得したい属性のＩＤを指定する。例えば、１番の印刷ジョブのジョブ名称を獲得したい場合には、オブジェクトＩＤに１，属性ＩＤに０ｘ０１０１を指定する。
【０１１１】
次に再開処理について説明する。
【０１１２】
ユーティリティ部２０５によって、印刷装置に入った停止している任意のジョブの印刷の再開を行ないたい時は、印刷ジョブの再開指定をオペレーションコード（＝０ｘ０１２１）に指定した管理パケットを印刷装置３００に送信する。この時、追加データとして、再開を行なう印刷ジョブのジョブＩＤを指定する。
【０１１３】
情報管理部３１０は、受け取った管理パケットのオペレーションコードによって、印刷ジョブの再開指定だと認識し、停止／再開処理部３１２に再開の指示を行なう。
【０１１４】
停止／再開処理部３１２が再開の指示を受けた時の動きは、図７の説明の時に行なった。
【０１１５】
以上により、停止しているジョブは、あらかじめ指定されている再開時刻になった場合に、自動的に再開され実際の印刷処理が行なわれる。さらに、ユーザによりユーティリティ部から再開指定が行なわれた場合は、再開指定時刻になっていなくても、再開され印刷処理か行なわれる。
【０１１６】
〔第２実施形態〕
第１の実施例でジョブパケットのジョブ開始オペレーションの追加データに記述された動作モードを見て停止処理を行なうかどうかの判断をしていたが、通常ジョブとして投入されたジョブに関して後で停止指定を行なうことが可能である。
【０１１７】
本発明の第２の実施例ではユーティリティから停止指定を行なう方法について説明する。
【０１１８】
実施構成は第１の実施例と同じであり、図１の構成図をそのまま使用する。
【０１１９】
ユーティリティ部２０５によって印刷装置に入った任意のジョブの停止を行ないたい時は、印刷ジョブの停止指定をオペレーションコード（＝０ｘ０１２０）に指定した管理パケットを印刷装置３００に送信する。
【０１２０】
この時、追加データとして、停止を行なう印刷ジョブのジョブＩＤを指定する。さらに追加データとして、そのジョブの自動再開を希望する時刻も指定する。
【０１２１】
情報管理部３１０は、受け取った管理パケットのオペレーションコードによって、印刷ジョブの停止指定だと認識し、停止／再開処理部３１２に停止の指示を行なう。
【０１２２】
この場合、第１の実施例とは異なり、停止するジョブは新規追加ではなく、すでにある印刷ジョブが停止ジョブに変化するのであるため、停止／再開処理部３１２の処理が若干変更される。
【０１２３】
図９は第２の実施例における停止／再開開処理部３１２の動作を説明するフローチャートである。第１の実施例における図７のフローチャートとほぼ同等であるが、Ｓ１１０２の読み出し開始しているかどうかのチェックが入る点が異なる。そのジョブの印刷データを１バイトでも読み出し開始してしまっていた場合、そのジョブを停止することはできない。
【０１２４】
図１０は停止処理におけるジョブ読み出しテーブルの状態を表す説明図である。図１０（ａ）において、通常ジョブがジョブ１〜４まで投入された状態で、ジョブ４がユーティリティから停止指定された場合を想定しており、図１０（ｂ）において、停止ジョブになったジョブ３はジョブ読み出しテーブルの最後尾に移動されている。
【０１２５】
ＰＤＬトランスレータ部３０６はジョブ読み出しテーブルに記述された順番に印刷ジョブのトランスレートを行なうことによって、ジョブ１，２，４の順番に印刷処理が行なわれ、停止フラグがＴにセットされた停止ジョブ３のみ残ったままになる。この停止しているジョブ３は、再開指定により、停止フラグがＦにセットされた後、ＰＤＬトランスレータ部３０６に読み出されることになる。あるいは、再開時刻に達した場合、停止フラグがＦにセットされた後、ＰＤＬトランスレータ部３０６に読み出されることになる。
【０１２６】
〔第３実施形態〕
第２の実施例において、停止処理として図９のＳ１１０３とＳ１１０４で示したように、そのジョブの順序を最後尾に移動し、かつ、停止フラグにＴをセットし、再開指定時刻をセットした。しかし、読み出しテーブルでのジョブの順序はそのままにして、停止フラグをＴにセットするのみにするやり方もある。この場合、再開指定が発行されなければ結果として第２の実施例と全く同じことで、停止フラグがＴにセットされた停止ジョブ３のみ残ったままになる。
【０１２７】
ただし、途中でジョブ３に対して再開指定が発行された場合、第２の実施例とは異なる動きになる。
【０１２８】
すなわち、図１０（ａ）において、ジョブ３を停止指定した場合、ジョブの順序は移動しないので、図１１（ａ）のようになる。そして、ジョブ１の読み出しが完了し、ジョブ２の読み出しを開始したタイミングでは図１１（ｂ）のようになる。ここで、ジョブ３に対して再開指定した場合、ジョブの順序を変えずに停止フラグのみＦにセットし直すので、図１１（ｃ）のようになり、この後ジョブ２，ジョブ３，ジョブ４の順で印刷されることになる。
【０１２９】
第２の実施例で同様のタイミングで再開を行なった場合には、停止した時点でジョブ３はジョブ読み出しテーブルの最後尾に移動されてしまっているので、ジョブ２，ジョブ４，ジョブ３の順序で印刷され、この点に特徴がある。
【０１３０】
すなわち、第２の実施例も停止したジョブは再開時点の通常ジョブの最後尾という扱いになるが、第３の実施例の場合は停止したジョブが再開された場合、停止された時の順序あるいはそれに近い順序で通常ジョブに戻ることとができる。
【０１３１】
〔第４実施形態〕
以上の実施例において、再開時刻について、何年何月何日何時何分何秒というような絶対的な時刻で扱ってきた。しかし、相対的な時間で扱っても構わない。
【０１３２】
たとえば、印刷装置へのジョブの投入後何時間何分後に再開せよ、というように指定するやり方でも構わない。
【０１３３】
本実施例は、絶対時刻を保持する時計機能は持っていないが、電源起動時を起点とする相対タイマを持っている印刷装置においては特に有効である。
【０１３４】
【発明の効果】
以上説明したように、本発明によれば、ユーザがホストコンピュータ上から印刷処理を行なう場合に、停止指定を行なって印刷実行を行なうことによって、停止指定のジョブのデータは格納するのみで印刷せずに惇止しておき、再開指定を行なうことにより、実際の印刷を行なうことが可能である。
【０１３５】
さらにすでに印刷装置に投入した印刷ジョブに対して、ユーティリティから停止指定を行なうことによって印刷の停止をすることとが可能であるため、ジョブ投入後に印刷の停止をする必要性が発生しても、同様の効果が期待できる。
【図面の簡単な説明】
【図１】本発明の第１の実施例の印刷システムの機能構成を示すブロック図である。
【図２】ジョブパケットの構成を示す説明図である。
【図３】時刻データの構成を示す説明図である。
【図４】ジョブパケット生成部の動作を説明するフローチャートである。
【図５】ジョブプリプロセッサ部の動作を説明するフローチャートである。
【図６】ジョブ読み出しテーブルを表す説明図である。
【図７】停止／再開処理部の動作を説明するフローチャートである。
【図８】停止処理時におけるジョブ読み出しテーブルの状態を表す説明図である。
【図９】第２の実施例における停止／再開処理部の動作を説明するフローチャートである。
【図１０】停止処理時におけるジョブ読み出しテーブルの状態を表す説明図である。
【図１１】停止／再開処理時におけるジョブ読み出しテーブルの状態を表す説明図である。
【図１２】従来の印刷システムの機能構成を示すブロック図である。
【符号の説明】
２００　ホストコンピコータ
３００　印刷装置
２１０　インタフェース
【図１】
2004021458.tif 000003
【図２】
2004021458.tif 000004
【図３】
2004021458.tif 000005
【図４】
2004021458.tif 000006
【図５】
2004021458.tif 000007
【図６】
2004021458.tif 000008
【図７】
2004021458.tif 000009
【図８】
2004021458.tif 000010
【図９】
2004021458.tif 000011
【図１０】
2004021458.tif 000012
【図１１】
2004021458.tif 000013
【図１２】
2004021458.tif 000014