(57)【要約】    【課題】  割り込み印刷後の復帰処理の高速化を可能にした印刷装置及び印刷方法を提供する。    【解決手段】  印刷装置４００は、印刷ジョブがページ独立型の言語かどうかを受信開始時に判定すると共に、印刷ジョブ単位で排紙の完了したページ数を記憶しておく。さらに、終了ページ命令を受け取った時点での受信バッファから読み込んだデータバイト数をページ単位に記憶するページデータベース部５００を設ける。割り込み印刷が発生したとき、割り込みジョブ投入後に、復帰する印刷ジョブに関してページ独立型の言語であると判定されていた場合に、ページデータベース部５００から前記データバイト数を取り出し、受信バッファからデータバイト数だけスキップした後のデータを受信し、実際に復帰するページからトランスレートを行う。【選択図】        図１
2005349768.tif 000002
【特許請求の範囲】
【請求項１】
通信可能な外部の情報処理装置からの印刷ジョブを解釈して該解釈後のデータに基づく印刷を行う印刷装置において、
前記情報処理装置からの印刷ジョブの割り込み指示を認識する認識手段と、
前記認識手段によって割り込み指示が認識された場合に、当該印刷ジョブ以外の先行印刷ジョブの印刷処理を中止し、前記割り込み指示のある印刷ジョブの印刷処理を実行する割り込み手段と、
前記割り込み手段による印刷処理後に、前記先行印刷ジョブの印刷を再度行う復帰手段とを備え、
前記復帰手段は、
前記先行印刷ジョブの既に解釈されたデータを、終了ページ命令を受け取ったページの解釈をデータサイズに基づきスキップし、残りのデータのみを解釈する手段を有することを特徴とする印刷装置。
【請求項２】
前記割り込み指示は、外部の情報処理装置におけるユーティリティにより発行された、任意の印刷ジョブを割り込み印刷用の印刷ジョブに変更する指令であることを特徴とする請求項１に記載の印刷装置。
【請求項３】
通信可能な外部の情報処理装置からの印刷ジョブを解釈して印刷を行う印刷装置において、
前記情報処理装置からの印刷ジョブの割り込み指示を認識する認識手段と、
前記認識手段によって割り込み指示が認識された場合に、当該印刷ジョブ以外の先行印刷ジョブの印刷処理を中止し、前記割り込み指示のある印刷ジョブの印刷処理を実行する割り込み手段と、
前記割り込み手段による印刷処理後に、前記先行印刷ジョブの印刷を再度行う復帰手段と、
終了ページ命令を受け取ったことに連動し、印刷処理すべきデータとして既に解釈されているデータのサイズである既読データサイズを記憶するページデータサイズ記憶手段とを備え、
前記復帰手段は、
前記先行印刷ジョブにおける印刷完了したページの既読データサイズを前記ページデータサイズ記憶手段から取り出し、該既読データサイズをスキップして、残りの印刷ジョブを解釈することを特徴とする印刷装置。
【請求項４】
前記ページデータサイズ記憶手段は、終了ページ命令を受け取ったことに連動し、前記既読データサイズを印刷ジョブのページ単位で記憶し、前記復帰手段は印刷ジョブのページ単位で記憶された既読データサイズに基づき前記スキップをして、残りの印刷ジョブを解釈することを特徴とする請求項３に記載の印刷装置。
【請求項５】
印刷ジョブがページ毎に独立した形式のデータであるか否かを判定する判定手段を有し、
前記復帰手段は、
前記判定手段により、印刷ジョブがページ毎に独立した形式のデータであると判定された場合に、前記先行印刷ジョブにおける印刷完了したページの既読データサイズを前記ページデータサイズ記憶手段から取り出し、該既読データサイズをスキップして残りのページのみを解釈することを特徴とする請求項３又は４に記載の印刷装置。
【請求項６】
通信可能な外部の情報処理装置からの印刷ジョブを解釈して印刷を行う印刷方法において、
前記情報処理装置からの印刷ジョブの割り込み指示を認識する認識工程と、
前記認識工程によって割り込み指示が認識された場合に、当該印刷ジョブ以外の先行印刷ジョブの印刷処理を中止し、前記割り込み指示のある印刷ジョブの印刷処理を実行する割り込み工程と、
前記割り込み工程による印刷処理後に、前記先行印刷ジョブの既に解釈されたデータを、終了ページ命令を受け取ったページの解釈をデータサイズに基づきスキップし、残りのデータのみを解釈して、前記先行印刷ジョブの印刷を再度行う復帰工程とを実行することを特徴とする印刷方法。
【請求項７】
前記割り込み指示は、外部の情報処理装置におけるユーティリティにより発行された、任意の印刷ジョブを割り込み印刷用の印刷ジョブに変更する指令であることを特徴とする請求項６に記載の印刷方法。
【請求項８】
通信可能な外部の情報処理装置からの印刷ジョブを解釈して印刷を行う印刷方法において、
前記情報処理装置からの印刷ジョブの割り込み指示を認識する認識工程と、
前記認識工程によって割り込み指示が認識された場合に、当該印刷ジョブ以外の先行印刷ジョブの印刷処理を中止し、前記割り込み指示のある印刷ジョブの印刷処理を実行する割り込み工程と、
終了ページ命令を受け取ったことに連動し、印刷処理すべきデータとして既に解釈されているデータのサイズである既読データサイズを記憶手段に記憶するページデータサイズ記憶工程と、
前記先行印刷ジョブにおける印刷完了したページの既読データサイズを前記記憶手段から取り出し、該既読データサイズをスキップして残りの印刷ジョブを解釈し、前記先行印刷ジョブの印刷を再度行う復帰工程とを実行することを特徴とする印刷方法。
【請求項９】
前記ページデータサイズ記憶工程は、終了ページ命令を受け取ったことに連動し、前記既読データサイズを印刷ジョブのページ単位で前記記憶手段に記憶し、前記復帰工程は、印刷ジョブのページ単位で記憶された既読データサイズに基づき前記スキップをして、残りの印刷ジョブを解釈することを特徴とする請求項８に記載の印刷方法。
【請求項１０】
印刷ジョブがページ毎に独立した形式のデータであるか否かを判定する判定工程を実行し、
前記復帰工程は、
前記判定工程により、印刷ジョブがページ毎に独立した形式のデータであると判定された場合に、前記先行印刷ジョブにおける印刷完了したページの既読データサイズを前記第１の記憶手段から取り出し、該既読データサイズをスキップして残りのページのみを解釈することを特徴とする請求項８又は９に記載の印刷方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部の情報処理装置から受け取った印刷ジョブを解釈して印刷を行う印刷装置及び印刷方法に関する。
【背景技術】
【０００２】
従来、ユーザの指示に従って印刷データを生成するホストコンピュータと、所定の通信媒体を介して前記ホストコンピュータから送信された印刷ジョブを処理して画像データを生成し、用紙などのメディアに印刷を行う印刷装置とを備えた印刷システムは、一般的に知られている。
【０００３】
このような印刷システムにおいては、単に１台のホストコンピュータから印刷装置へ印刷ジョブを転送して印刷を行うだけではなく、高い機能を所持する１台の印刷装置を複数のユーザ（ホストコンピュータ）でネットワークを介して共有することにより、オフィスにおける大量の印刷ニーズに対応しながら管理コストを最低限に抑えるといった使用形態が一般化している。
【０００４】
一般に印刷ジョブの出力スループットは、プリンタエンジン部の出力速度がボトルネックとなっており、いくらコントローラの機能が向上しても出力時間には一定の限界がある。しかしプリンタエンジン部の高速化は、定着温度の上昇や用紙搬送系の高速化に伴い大型、高価格化を招くため、ユーザのニーズに適応しない。つまり、印刷ジョブの出力時間には一定の限界が存在する。
【０００５】
あるユーザが印刷ジョブを至急出力したい時に既に別の印刷ジョブが印刷装置に投入されている場合、従来では先行投入されている印刷ジョブ（以下、先行印刷ジョブと記す）の印刷完了まで一定時間待つ必要があった。あるいは、印刷装置のリセットや先行印刷ジョブの取り消しを行うことにより、至急出力したい印刷ジョブの印刷が即時可能ではあるが、取り消された先行印刷ジョブが他のユーザの印刷要求であった場合には、そのユーザに再度印刷を行うように要請を出す必要があり、現実的ではない。
【０００６】
このような点から、割り込み印刷ジョブを最優先で印刷する割り込み印刷機能と、割り込まれた先行印刷ジョブを自動的に復帰して再印刷を行う復帰印刷機能とを備えた印刷装置が提案されている（例えば、特許文献１を参照）。
【０００７】
以下に、従来の割り込み印刷機能について説明する。
【０００８】
図１６及び図１７は、従来の印刷システムの機能構成を示すブロック図であり、ホストコンピュータから印刷装置に対して行われる、印刷ジョブの送信、印刷装置の情報の獲得及び印刷装置の環境設定の各処理についての仕組みを具現化した印刷システムの機能構成を表している。同図１６はホストコンピュータの機能を示し、同図１７は印刷装置の機能を示している。
【０００９】
この印刷システムは、印刷すべきジョブを生成するホストコンピュータ１００と、実際に用紙に印刷を行う印刷装置２００と、所定のインターフェイス１１０とから構成されている。インターフェイス１１０は、ＩＥＥＥ１２８４やＵＳＢで規定されているローカルインターフェイスであっても、イーサネット（登録商標）（ＥｔｈｅｒＮｅｔ）のようなネットワークインターフェイスでも良く、本例ではローカルインターフェイスを用いるものとする。
【００１０】
ホストコンピュータ１００は、図１６に示すように、アプリケーション部１０１、プリンタドライバ部１０２、送信バッファ１０３、ジョブパケット生成部１０７、ユーティリティ部１０５、論理チャネル制御部１０６、及びＩ／Ｆドライバ部１０４から構成されている。
【００１１】
アプリケーション部１０１は、ユーザが操作するグラフィックユーザインターフェイスの指示を受けて所望の印刷データを生成する。プリンタドライバ部１０２は、アプリケーション部１０１が作成した印刷データを、印刷装置２００が印刷可能なページ記述言語（以下、ＰＤＬと略称）データに変換する。尚、本実施例でいうページ記述言語とはページプリンタにおいて理解できる形式のデータを指し、スプライン曲線等を利用する高級言語のみに限定されず、ライン命令など限られた単純命令のみから構成される低級言語も含むものとする。ホストコンピュータ側のプリンタドライバ部によりプリンタが迅速に解釈できる低級言語までを作成しプリンタに送信する形態が知られているが、そのような形態も本実施例は適用可能である。この場合には後述のＰＤＬトランスレータ部２０６は低級言語を解釈し、描画部２０８がレンダリング処理を行なえる形式の中間データを作成する部分に相当することとなる。送信バッファ１０３は、プリンタドライバ部１０２が変換したＰＤＬデータを一時的に格納し、ジョブパケット生成部１０７は、送信バッファ１０３に格納されたＰＤＬデータとアプリケーション部１０１が有するジョブ属性情報とから所定のジョブパケットを生成する。ユーティリティ部１０５は、印刷装置２００の状態の確認、送信した印刷ジョブの印刷状態の確認、印刷ジョブの取り消し、及び割り込みなどの操作がグラフィックユーザインターフェイスを用いて行われたとき、これらの操作による要求を印刷装置２００が解釈可能な管理パケットに変換する。論理チャネル制御部１０６は、ジョブパケットと管理パケットをそれぞれ異なるチャネルに割り振り、ＯＳＩ７階層（通信分野で広く用いられている通信プロトコルの階層モデル）におけるトランスポート層の多重化を行う。Ｉ／Ｆドライバ部１０４は、論理的なデータを電気信号に変換し、インターフェイス１１０とのやりとりを行う。
【００１２】
一方、印刷装置２００は、図１７に示すように、Ｉ／Ｆドライバ部２０１、論理チャネル制御部２０２、機器データベース部２０５、ジョブプリプロセッサ部２０３、ジョブスプーラ２０４、ジョブ読み出しテーブル２１３、ＰＤＬトランスレータ部２０６、描画バッファ２０７、描画部２０８、プリンタエンジン部２０９、情報管理部２１０、及び割り込み処理部２１２から構成されている。
【００１３】
Ｉ／Ｆドライバ部２０１は、論理的なデータを電気信号に変換し、インターフェイス１１０とのやりとりを行う。論理チャネル制御部２０２は、Ｉ／Ｆドライバ部２０１から受信したデータを解析し、ジョブパケットと管理パケットをそれぞれ異なるチャネルに割り振り、ＯＳＩ７階層におけるトランスポート層の多重化を行う。ジョブプリプロセッサ部２０３は、ジョブパケットを受け取って解析を行い、印刷ジョブの属性情報は機器データベース部２０５に、ＰＤＬデータはジョブスプーラ２０４にそれぞれ振り分けて格納する。
【００１４】
ジョブスプーラ２０４は、ＨＤＤやフラッシュメモリ、あるいはＤＲＡＭなどの大容量メモリデバイスから構成され、印刷ジョブのＰＤＬデータを印刷完了まで一時的に保持する。ジョブ読み出しテーブル２１３は、ジョブの処理順番を記述する。ＰＤＬトランスレータ部２０６は、ジョブ読み出しテーブル２１３に記述された順番にジョブを取り出し、機器データベース部２０５に格納された属性情報とジョブスプーラ２０４に格納されたＰＤＬデータとを解析し、リアルタイムに描画処理可能な中間データを生成して描画バッファ２０７に格納する。描画バッファ２０７は、中間データをページ単位に印刷完了まで一時的に保持する。
【００１５】
描画部２０８は、描画バッファ２０７から中間データを取得し、プリンタエンジン部２０９が行う用紙搬送処理と共に、リアルタイムに中間データのレンダリング処理及び転送処理を行い、プリンタエンジン部２０９にビデオデータとして送信を行う。プリンタエンジン部２０９は、描画部２０８から送信されたビデオデータを基に、電子写真技術など既知の印刷技術を用いて用紙に印刷を行う。情報管理部２１０は、ホストコンピュータ１００から送信された管理パケットを受け取り、その管理パケットによる要求に応じて機器データベース部２０５から情報を獲得し、またジョブの取り消し要求や割り込み要求を行い、さらにはジョブの終了や機器の異常を検知して自立的にホストコンピュータ１００に通知イベントを発行する。割り込み処理部２１２は、印刷ジョブの割り込み指定が行われた時に、実際の割り込み処理を行う。
【００１６】
次に、ジョブ読み出しテーブル２１３について説明する。
【００１７】
図１８（ａ），（ｂ），（ｃ）は、ジョブ読み出しテーブル２１３の登録状況を示す図である。
【００１８】
図１８（ａ）に示した登録状況では、ジョブ読み出しテーブル２１３の最上段から最下段まで順次ジョブ１〜４の各ジョブＩＤがそれぞれ登録されている。ＰＤＬトランスレータ部２０６は、トランスレートを実行する時、ジョブ読み出しテーブル２１３の最上段から順番に印刷ジョブの取り出しを行う。
【００１９】
ジョブプリプロセッサ部２０３がジョブ読み出しテーブル２１３にジョブ５を追加した場合は、図１８（ｂ）に示すように、ジョブ５はジョブ読み出しテーブル２１３の最下段に追加される。プリンタエンジン部２０９においてジョブ１の最終ページの排紙を完了した場合、あるいはジョブ１の印刷取り消しが行われた場合は、図１８（ｃ）に示すようにジョブ１はジョブ読み出しテーブル２１３から削除される。
【００２０】
以上のように、ジョブ読み出しテーブル２１３は、ＰＤＬトランスレータ部２０６が処理するジョブの順番と寿命を制御するために用いられる。
【００２１】
そして、例えばジョブ１が排紙している途中でジョブ５に割り込まれた場合、従来では、ジョブ１の排紙完了したページ数を記憶しておき、ジョブ１を再度印刷する割り込み復帰時に、前ページの環境を引き継ぐ必要があるためＰＤＬトランスレータ部２０６において最初のページから再トランスレートを行い、さらに描画部２０８において排紙完了したページの描画処理のスキップを行う。
【特許文献１】特開２００１−１５４８１９号公報
【発明の開示】
【発明が解決しようとする課題】
【００２２】
しかしながら、上記従来の印刷装置では、次のような問題点があった。
【００２３】
従来の割り込み印刷機能では、既に処理中の先行印刷ジョブを停止した後、割り込み印刷ジョブの印刷処理を直ちに開始するため、割り込み印刷ジョブの印刷を迅速に行うことができる。一方、割り込まれた先行印刷ジョブは、排紙完了ページを記憶すると共に、割り込み復帰後に再度最初のページからＰＤＬのトランスレート処理を行うため、実際に排紙されないページもトランスレートを余分に行わねばならず、割り込み復帰のパフォーマンスが低下する問題があった。そのため、割り込み印刷機能を使うと、割り込まれた先行印刷ジョブの復帰に多くの時間を要し、その結果、割り込み印刷機能はあまり頻繁に使える機能ではなかった。
【００２４】
本発明は上記従来の問題点に鑑み、割り込み印刷後の復帰処理の高速化を可能にした印刷装置及び印刷方法を提供することを目的とする。
【課題を解決するための手段】
【００２５】
上記目的を達成するために本発明の印刷装置は、通信可能な外部の情報処理装置からの印刷ジョブを解釈して該解釈後のデータに基づく印刷を行う印刷装置において、前記情報処理装置からの印刷ジョブの割り込み指示を認識する認識手段と、前記認識手段によって割り込み指示が認識された場合に、当該印刷ジョブ以外の先行印刷ジョブの印刷処理を中止し、前記割り込み指示のある印刷ジョブの印刷処理を実行する割り込み手段と、前記割り込み手段による印刷処理後に、前記先行印刷ジョブの印刷を再度行う復帰手段とを備え、前記復帰手段は、前記先行印刷ジョブの既に解釈されたデータを、終了ページ命令を受け取ったページの解釈をデータサイズに基づきスキップし、残りのデータのみを解釈する手段を有することを特徴とする。
【００２６】
本発明の印刷装置は、通信可能な外部の情報処理装置からの印刷ジョブを解釈して印刷を行う印刷装置において、前記情報処理装置からの印刷ジョブの割り込み指示を認識する認識手段と、前記認識手段によって割り込み指示が認識された場合に、当該印刷ジョブ以外の先行印刷ジョブの印刷処理を中止し、前記割り込み指示のある印刷ジョブの印刷処理を実行する割り込み手段と、前記割り込み手段による印刷処理後に、前記先行印刷ジョブの印刷を再度行う復帰手段と、終了ページ命令を受け取ったことに連動し、印刷処理すべきデータとして既に解釈されているデータのサイズである既読データサイズを記憶するページデータサイズ記憶手段とを備え、前記復帰手段は、前記先行印刷ジョブにおける印刷完了したページの既読データサイズを前記ページデータサイズ記憶手段から取り出し、該既読データサイズをスキップして、残りの印刷ジョブを解釈することを特徴とする。
【００２７】
本発明の印刷方法は、通信可能な外部の情報処理装置からの印刷ジョブを解釈して印刷を行う印刷方法において、前記情報処理装置からの印刷ジョブの割り込み指示を認識する認識工程と、前記認識工程によって割り込み指示が認識された場合に、当該印刷ジョブ以外の先行印刷ジョブの印刷処理を中止し、前記割り込み指示のある印刷ジョブの印刷処理を実行する割り込み工程と、前記割り込み工程による印刷処理後に、前記先行印刷ジョブの既に解釈されたデータを、終了ページ命令を受け取ったページの解釈をデータサイズに基づきスキップし、残りのデータのみを解釈して、前記先行印刷ジョブの印刷を再度行う復帰工程とを実行することを特徴とする。
【００２８】
本発明の印刷方法は、通信可能な外部の情報処理装置からの印刷ジョブを解釈して印刷を行う印刷方法において、前記情報処理装置からの印刷ジョブの割り込み指示を認識する認識工程と、前記認識工程によって割り込み指示が認識された場合に、当該印刷ジョブ以外の先行印刷ジョブの印刷処理を中止し、前記割り込み指示のある印刷ジョブの印刷処理を実行する割り込み工程と、終了ページ命令を受け取ったことに連動し、印刷処理すべきデータとして既に解釈されているデータのサイズである既読データサイズを記憶手段に記憶するページデータサイズ記憶工程と、前記先行印刷ジョブにおける印刷完了したページの既読データサイズを前記記憶手段から取り出し、該既読データサイズをスキップして残りの印刷ジョブを解釈し、前記先行印刷ジョブの印刷を再度行う復帰工程とを実行することを特徴とする。
【発明の効果】
【００２９】
本発明によれば、割り込み印刷後の復帰処理を高速に行うことが可能になり、割り込み印刷機能の繁用性を高めることができる。
【発明を実施するための最良の形態】
【００３０】
本発明の印刷装置及び印刷方法の実施の形態について、図面を参照しながら説明する。本実施形態の印刷装置は、例えばレーザビームプリンタ等に適用される。
【００３１】
［第１実施形態］
＜システム構成＞
図１は、本発明の第１実施形態に係る印刷装置の機能構成を示すブロック図であり、従来の図１７と共通する要素には同一の符合を付し、その説明を省略する。なお、本実施形態の印刷装置４００は、図１６に示したホストコンピュータ１００にインターフェイス１１０を介して接続されるものである。
【００３２】
本実施形態の印刷装置４００の構成は、図１７に示した従来の印刷装置２００の構成において、ジョブスプーラ２０４からの読み込み位置をページ単位に管理するページデータベース部５００を追加したものである。このページデータベース部５００は、本実施形態の特徴的な処理である割り込み復帰処理時に用いられる（詳細は後述する）。
【００３３】
ホストコンピュータ１００の論理チャネル制御部１０６から印刷装置４００の論理チャネル制御部２０２へのデータ通信は、ネットワークの場合は例えばＴＣＰ／ＩＰ、ローカルの場合は例えばＩＥＥＥ１２８４／ＩＥＥＥ１２８４．４といった規定の通信プロトコルにより、トランスポート層レベルの多重化が行われてるものとし、詳細の説明については省略する。
【００３４】
ホストコンピュータ１００のジョブパケット生成部１０７から送信されるジョブパケットは、ジョブプリプロセッサ部２０３によって受信され、この経路をジョブチャネルと呼び、またホストコンピュータ１００のユーティリティ部１０５から送受信される管理パケットは、情報管理部２１０によって送受信され、この経路を管理チャネルと呼ぶ。双方のチャネルは双方向通信が可能であることを規定しているが、ジョブチャネルに関してはホストコンピュータ１００から印刷装置４００への片方向だけでも良い。ジョブチャネルと管理チャネルはＯＳＩ７階層におけるトランスポート層レベルで多重化されており、片方のフロー処理が他方に影響することはない。
【００３５】
＜ジョブパケット及び管理パケットの構造＞
次に、ジョブパケット及び管理パケットの構造について説明する。
【００３６】
ジョブパケット及び管理パケットは、アプリケーション層のプロトコルであり、ヘッダ部とパラメータ部から構成されるパケット構造になっている。１つの印刷ジョブは複数のジョブパケットから構成され、印刷ジョブを構成する一連のジョブパケットの集まりをジョブスクリプトと呼ぶ。
【００３７】
図２は、ジョブパケットの構造を示す模式図であり、縦軸はバイトを示し、横軸は各バイトのビットを示している。
【００３８】
同図中において０〜１バイト目のオペレーションコードは、パケットの機能を示す長さ２バイトのＩＤである。ジョブパケットにおいては以下の値を取ることができる。
０ｘ０２０１：    ジョブ開始オペレーション
０ｘ０２０２：    ジョブ属性設定オペレーション
０ｘ０２０４：    ＰＤＬデータ送信オペレーション
０ｘ０２０５：    ジョブ終了オペレーション
２〜３バイト目のブロック番号は、ジョブパケットを送信した側が返答を要求する場合に、受信側からの返答が送信側のどの返答要求に対するものであるか、その対応を取るために使用する番号である。例えばそれぞれブロック番号＝１，２，３というジョブパケットを立て続けに送信した時に、ブロック番号＝２というエラーパケットが帰ってきた場合、送信側は、２番目に送ったジョブパケットにエラーが発生したことを特定することが可能である。
【００３９】
４〜５バイト目のパラメータ長は、データ部のバイト長さを示す領域であり、０〜６４Ｋバイトまでを示すことが可能である。６〜７バイト目はジョブパケットの各種フラグを示す領域でそれぞれ以下の値を示す。
【００４０】
すなわち、エラーフラグについては、この値が１の場合、印刷装置４００で何らかのエラーが発生したことを示す。このフラグは印刷装置４００からホストコンピュータ１００へ送られる返信パケットに付加される。通知フラグについては、この値が１の時は、ホストコンピュータ１００からの要求パケットに対する返答ではなく、印刷装置４００が何らかの通知事項があることをホストコンピュータ１００に通知することを示している。
【００４１】
また、継続フラグについては、この値が１の場合、パケットのデータ部に全てのデータが入らなかったため、次のジョブパケットで残りのデータが送られることを示す。次のジョブパケットは前のパケットと同じオペレーション・コード、ブロック番号を設定しなくてはならない。返答要求については、ホストコンピュータ１００から印刷装置４００に対して返答パケットが必要な場合に“１”をセットする。印刷装置４００でエラーが発生した場合には返答要求の“０”または“１”に関わらず、常にエラーフラグを“１”にした返答パケットを送出する。
【００４２】
８〜９バイト目のユーザＩＤ及び１０〜１１バイト目のパスワードは、要求パケットで行える操作にセキュリティ的制限を設ける際に認証に使われる領域である。本実施形態には影響しない。１２バイト目以降はオペレーションコードに対応した追加データが格納される。
【００４３】
ジョブ開始オペレーションの場合、追加データとしてジョブの実行モードが記述される。指定可能な実行モードを以下に挙げる。
【００４４】
０ｘ０１：  ジョブの通常実行。当該ジョブは通常ジョブとして印刷装置４００のキュ              ーの最後に追加され、スケジューリングが回ってきたら印刷処理を行う。
【００４５】
０ｘ０４：  ジョブの割り込み実行。当該ジョブは割り込みジョブとして扱い、全て                のジョブの処理を停止して当該ジョブの印刷を優先して実行する。
【００４６】
＜グラフィックユーザインターフェイス＞
図３は、印刷処理実行時にプリンタドライバ部１０２がユーザに所望の印刷方法を指示するために提供されるグラフィックユーザインターフェイスを示す図である。
【００４７】
同図において、「ジョブの処理方法」と記述される欄に「印刷（Ｒ）」「割り込み印刷（Ｉ）」「高速割り込み印刷（Ｆ）」「保存＋印刷（Ｅ）」「保存（Ｂ）」という項目と、各項目のチェックボタンが存在する。チェックボタンは排他的に選択されるため、いずれかの項目をチェックすると、他のチェックボタンのチェックは解除される。このチェックボタンは上記実行モードと対応しており、「印刷（Ｒ）」がチェックされると実行モードは０ｘ０１、「割り込み印刷（Ｉ）」あるいは「高速割り込み印刷（Ｆ）」がチェックされると実行モードは０ｘ０４が選択される。なお「保存＋印刷（Ｅ）」「保存（Ｂ）」に関しては本発明とは直接関係しないので説明を割愛する。
【００４８】
ジョブ属性設定オペレーションの場合、設定したいジョブ属性ＩＤとジョブ属性値を設定する。ジョブ属性ＩＤとは、ジョブに関する属性あるいは環境に対応した識別子を示すもので、ＩＳＯ−１０１７５（ＤＰＡ）で規定されるジョブの属性に相当するＩＤが予め割り振られている。以下にジョブ属性の代表的なものを挙げる。
ジョブ属性ＩＤ
０ｘ０１０１：    ジョブ名称
０ｘ０１０３：    ジョブオーナ名
０ｘ０１６ａ：    ジョブサイズ
０ｘ０２００：    ジョブのＰＤＬ指定
０ｘ０００２：    ジョブ終了の通知アドレス
この他、印刷装置４００の機能に応じて、印刷部数、モノクロ・カラーなどのジョブ属性とそれに対応するＩＤを割り振ることができる。
【００４９】
ＰＤＬデータ送信オペレーションの場合は、追加データ部にはＰＤＬデータが入る。１つのジョブパケットに格納できるデータのサイズは、前記パラメータ長に格納できる最大サイズまでであるので、６４Ｋバイトまで格納可能であり、それ以上のデータは複数のＰＤＬデータ送信オペレーションに分割して送信する。この場合は前記継続フラグに“１”を立てる。
【００５０】
ジョブ終了オペレーションの場合は追加データは存在しない。
【００５１】
＜ＰＤＬのページ非独立、独立の概念＞
ＰＤＬ（ページ記述言語）に関するページ独立、ページ非独立という概念について説明する。
【００５２】
図４は、ページ非独立（ページ依存）型ＰＤＬのデータ構造を示す模式図である。
【００５３】
同図において、当該ＰＤＬデータは３ページから構成され、各々のページは１０−１，１０−２，１０−３の３ページから構成されている。
【００５４】
１ページ目（１０−１）が始まるにあたって、用紙サイズをＡ４に指定する命令と、用紙タイプを普通紙に指定する命令とが送られている。これらの命令は１ページ目（１０−１）にしか設定されず、２ページ目（１０−２）以降には設定されない。２ページ目（１０−２）以降のページは１ページ目（１０−１）に設定された指定を受け継ぐため、２ページ目（１０−２）及び３ページ目（１０−３）もＡ４，普通紙という組み合わせで印刷が行われる。例えば、１ページ目（１０−１）だけを飛ばして２ページ目（１０−２）以降から開始しようとしても、１ページ目（１０−１）を解釈しないことには、用紙サイズ、用紙タイプの指定を受け取ることができない。そのため、１ページ目（１０−１）の情報が他のページに影響していており、ページ非独立の状態にあるといえる。
【００５５】
このようなＰＤＬデータにおいては、割り込み復帰を行う場合にも１ページ目から解釈をし直さないと、割り込み復帰ページ本来の情報を得ることができない。よって１ページ目から再度解釈しなくてはならず、割り込み復帰処理のパフォーマンスを低下させる要因となっていた。なお、このような形式のＰＤＬデータをページ非独立型（あるいはページ依存型）と呼ぶ。
【００５６】
図５は、ページ独立型ＰＤＬのデータの構造を示す模式図である。
【００５７】
同図において、当該ＰＤＬデータは３ページから構成され、各々のページは１１−１，１１−２，１１−３の３ページから構成されている。
【００５８】
１ページ目（１１−１）が始まるにあたって、用紙サイズをＡ４に指定する命令と、用紙タイプを普通紙に指定する命令が送られている。これは、２ページ目（１１−２）及び３ページ目（１１−３）も同様で、全てのページにおいて用紙サイズ、用紙タイプの指定がページ単位に行われている。
【００５９】
このようなＰＤＬデータにおいては、各ページが各々独立関係にあり、例えば１ページ目（１１−１）を解釈せずに、いきなり２ページ目（１１−２）から解釈しても結果が変わることがない。このＰＤＬデータをページ独立型と呼ぶ。よって、割り込み復帰処理に際しても、いきなり復帰したいページから解釈すればいいので復帰処理のパフォーマンス低下を抑えることが可能となる。なお、ページ独立型かページ依存型かはＰＤＬデータを生成するドライバの出力タイプによって決まる。
【００６０】
＜ジョブパケット生成部１０７の動作＞
次に、ホストコンピュータ１００内にあるジョブパケット生成部１０７の動作について説明する。
【００６１】
図６及び図７は、ジョブパケット生成部１０７の動作を示すフローチャートである。
【００６２】
印刷指定が選択された時にプリンタドライバ部１０２が起動し、プリンタドライバ部１０２がＰＤＬデータを送信バッファ１０３に格納完了した後に、ジョブパケット生成部１０７は処理を開始する。
【００６３】
まずステップＳ４０１では、当該ジョブについて割り込み指定がなされたか否かを判定する。割り込み指定は、プリンタドライバ部１０２のユーザインターフェイスが提供するプロパティによって行われる。割り込み指定が有った場合には、ステップＳ４０３において動作モードが０ｘ０４、そうでない場合にはステップＳ４０２において動作モードが０ｘ０１に設定される。さらに、割り込み指定があった場合はステップＳ４１０において高速割り込み指定か否かを判定し、ＹｅｓならステップＳ４１１においてＰＤＬデータをページ独立型に変更する処理を行う。
【００６４】
そして、ステップＳ４０２またはステップＳ４１１の処理後、あるいはステップＳ４１０で高速割り込み指定ではないと判定された場合は、ステップＳ４０４へ進む。ステップＳ４０４においては、図２のオペレーションコードを格納する領域にジョブ開始オペレーションコード（０ｘ０２０１）を指定したジョブパケットを、論理チャネル制御部１０６へ発行する。この時、ジョブパケットの追加データ領域に動作モードが設定され、通常ジョブであるか、あるいは割り込みジョブであるかの指定がなされる。
【００６５】
以降、ジョブ終了オペレーションを発行するまで、全てのオペレーションは当該ジョブの情報設定のためにだけ用いられる。
【００６６】
ステップＳ４０５においては、ジョブの名称の設定が行われる。図２のオペレーションコードを格納する領域にジョブ属性設定オペレーションコード（０ｘ０２０２）を指定し、ジョブ名称を示すジョブ属性ＩＤ（＝０ｘ０１０１）及びジョブ属性値となる名称をパラメータ部に指定したジョブパケットを論理チャネル制御部１０６に発行する。
【００６７】
続くステップＳ４０６においては、ジョブの所有者の設定が行われる。図２のオペレーションコードを格納する領域にジョブ属性設定オペレーションコード（０ｘ０２０２）を指定し、ジョブ所有者を示すジョブ属性ＩＤ（＝０ｘ０１０３）及びジョブ属性値となる所有者名をパラメータ部に指定したジョブパケットを論理チャネル制御部１０６に発行する。
【００６８】
続くステップＳ４０７においては、ジョブのサイズの設定が行われる。図２のオペレーションコードを格納する領域にジョブ属性設定オペレーションコード（０ｘ０２０２）を指定し、ジョブサイズを示すジョブ属性ＩＤ（＝０ｘ０１６ａ）及びジョブ属性値となるジョブのデータサイズをパラメータ部に指定したジョブパケットを論理チャネル制御部１０６に発行する。
【００６９】
次のステップＳ４０８において、ジョブ完了の通知アドレスの設定が行われる。図２のオペレーションコードを格納する領域にジョブ属性設定オペレーションコード（０ｘ０２０２）を指定し、ジョブサイズを示すジョブ属性ＩＤ（＝０ｘ０００２）及びジョブ属性値となるジョブ完了の通知アドレスをパラメータ部に指定したジョブパケットを論理チャネル制御部１０６に発行する。
【００７０】
通知アドレスは通常、ジョブを送信したホストコンピュータ１００の送信アドレスを示しており、１２８４．４を用いたローカルインターフェイスでソケットＩＤが０ｘ１０の場合、“１２８４．４：０ｘ２０”という文字列で指定し、ＴＣＰ／ＩＰのＩＰアドレス１７２．１６．１．１のポート番号が０ｘｂ９ｂ９の場合には、“ＴＣＰ／ＩＰ：１７２．１６．１．１：０ｘｂ９ｂ９”という文字列を属性値として指定することができる。
【００７１】
続くステップＳ４０９においては、ＰＤＬのタイプの設定が行われる。図２のオペレーションコードを格納する領域にジョブ属性設定オペレーションコード（０ｘ０２０２）を指定し、ＰＤＬタイプを示すジョブ属性ＩＤ（＝０ｘ０２００）及びジョブ属性値となるジョブのＰＤＬタイプをパラメータ部に指定したジョブパケットを論理チャネル制御部１０６に発行する。このとき設定されるＰＤＬタイプは、ステップＳ４１０において高速割り込み指定がされた場合にはページ独立型のＰＤＬ、そうでない場合には通常のＰＤＬタイプが指定される。
【００７２】
次のステップＳ４１２において、送信すべきＰＤＬデータのサイズを変数ｓｉｚｅに代入する。さらにステップＳ５０１において、変数ｓｉｚｅの大きさをチェックし、６４Ｋバイトより大きいかどうかを比較する。ジョブパケットに指定できるパラメータのサイズは、パケットヘッダのパラメータ長のサイズが１６ビットで表現されているため、最大６４Ｋバイトの制限があるので、それ以上のデータは複数のジョブパケットに分割して発行されることになる。
【００７３】
もしデータのサイズが６４Ｋバイトよりも大きい時は、ステップＳ５０５において図２のパケットヘッダの継続フラグを１に設定する。さらにステップＳ５０７において、送信バッファ１０３から６４Ｋバイト分のＰＤＬデータが取り出され、図２のオペレーションコードを格納する領域にＰＤＬデータ送信オペレーション（０ｘ０２０４）を指定し、前記取り出されたＰＤＬデータをパラメータ部に指定したジョブパケットを論理チャネル制御部１０６に発行する。またステップＳ５０８において、送信した分の６４Ｋバイトを変数ｓｉｚｅから減じて、ステップＳ５０１に戻る。
【００７４】
ステップＳ５０１において、データのサイズが６４Ｋバイト以下の場合は、後１回のＰＤＬデータ送信オペレーションで全データの送信が完了する。この場合、ステップＳ５０２において、図２のパケットヘッダの継続フラグを“０”にして、ＰＤＬデータ送信が最後であることを設定し、さらにステップＳ５０３において送信バッファ１０３から全てのＰＤＬデータが取り出され、図２のオペレーションコードを格納する領域にＰＤＬデータ送信オペレーション（０ｘ０２０４）を指定し、前記取り出されたＰＤＬデータをパラメータ部に指定したジョブパケットを論理チャネル制御部１０６に発行する。
【００７５】
その後、ステップＳ５０４において、図２のオペレーションコードを格納する領域にジョブ終了オペレーションコード（０ｘ０２０５）を指定したジョブパケットを、論理チャネル制御部１０６に発行して終了する。
【００７６】
＜ジョブプリプロセッサ部２０３の動作＞
次に、印刷装置４００のジョブプリプロセッサ部２０３の動作について説明する。
【００７７】
図８は、ジョブプリプロセッサ部２０３の動作を示すフローチャートである。
【００７８】
同図において、ジョブプリプロセッサ部２０３は印刷装置４００の起動時に開始され、以後印刷装置４００の電源遮断まで処理を継続する。
【００７９】
まずステップＳ６０１においてジョブパケットの受信を行う。受信するとステップＳ６０２においてジョブ開始オペレーションであるか否かの判定が行われる。ここでジョブ開始オペレーション以外のオペレーションが到着した場合には不正動作となり、ステップＳ６０３でジョブパケットの破棄が行われ、ステップＳ６０１に戻る。
【００８０】
ステップＳ６０２でジョブ開始オペレーションと判定されると、ステップＳ６０４で当該ジョブのジョブＩＤの獲得が行われる。ジョブＩＤは、２バイトの番号として割り振られ、機器データベース部２０５におけるジョブ属性情報の読み書き処理のキーとして利用される。
【００８１】
次にステップＳ６０５において、ジョブ読み出しテーブル２１３に当該ジョブのジョブＩＤが追加される（図１８（ｂ）参照）。さらにステップＳ６０６において、ジョブパケットの追加データを検索し、動作モードが０ｘ０４であるか否かの判定が行われる。０ｘ０４である場合は、前記の通り割り込み印刷指定を示しており、ステップＳ６０７において割り込み処理部２１２に対して割り込み印刷の指示を出し、ステップＳ６０８へ進む。また動作モードが０ｘ０４でない場合も、ステップＳ６０８へ進む。
【００８２】
ステップＳ６０８では、次のジョブパケットの受け付けを行い、続くステップＳ６０９においては、受信したジョブパケットが属性設定オペレーションであるか否かを判定し、そうである場合は、ステップＳ６１０へ進んで機器データベース部２０５において属性データの設定を行う。この時、キーとなるのはステップＳ６０４で獲得したジョブＩＤとジョブパケットの追加データに記述されている属性ＩＤ及び属性データである。属性設定が完了すると、次のジョブパケットを受信するためステップＳ６０８に戻る。
【００８３】
受信したジョブパケットが属性設定オペレーションではないと前記ステップＳ６０９で判定された場合は、ステップＳ６１１へ進んで、ジョブパケットがＰＤＬデータ送信オペレーションであるか否かの判定を行い、そうである場合にはステップＳ６１２においてジョブスプーラ２０４にＰＤＬデータの追加を行う。この時、ジョブＩＤをキーとして渡し、後で取り出すときにもジョブＩＤをキーとして取り出せるようにしておく。ジョブスプーラ２０４への追加が完了すると、次のジョブパケットを受信するためステップＳ６０８に戻る。
【００８４】
ジョブパケットがＰＤＬデータ送信オペレーションではないと前記ステップＳ６１１で判定された場合は、ステップＳ６１３へ進んで、ジョブパケットがジョブ終了オペレーションであるかどうかの判定を行い、そうである場合には、一連のループを抜けてステップＳ６０１の初期状態に戻る。
【００８５】
上記いずれのオペレーションに該当しない場合には、不正なジョブパケットであるので、ステップＳ６１４においてジョブパケットの破棄を行う。
【００８６】
以上の動作によって、ジョブプリプロセッサ部２０３は、機器データベース部２０５とジョブスプーラ２０４にジョブパケットの振り分けを行う。
【００８７】
＜ＰＤＬトランスレータ部２０６の動作＞
ＰＤＬトランスレータ部２０６は、印刷装置４００の起動と同時に動作を開始し、以降電源遮断まで継続して処理を行う。
【００８８】
図９は、ＰＤＬトランスレータ部２０６の動作を示すフローチャートであり、以下、同図を用いて、ＰＤＬトランスレータ部２０６における、割り込み印刷ジョブの処理（または割り込まれる前の先行印刷ジョブの処理）と、割り込まれた先行印刷ジョブの復帰処理について説明する。
【００８９】
Ｉ．割り込み印刷ジョブの処理（または割り込まれる前の先行印刷ジョブの処理）
割り込み印刷ジョブの処理（または割り込まれる前の先行印刷ジョブの処理）は、印刷ジョブがジョブ読み出しテーブル２１３の先頭に位置するので、通常の印刷ジョブの処理と同様に印刷される。
【００９０】
ＰＤＬトランスレータ部２０６は、まずステップＳ７０１において、ジョブ読み出しテーブル２１３から最初に読み出すべきジョブＩＤを取得する。次のステップＳ７０２においては、機器データベース部２０５に格納されているスキップページの情報を取得する。このスキップページの情報は、割り込み復帰処理時に読み飛ばすべき既に排紙完了したページを示し、当該印刷ジョブの属性情報として機器データベース部２０５に格納されている。
【００９１】
当該印刷ジョブの処理においては、このとき前記スキップページは存在しないため、スキップページ＝０となり（ステップＳ７０３）、ステップＳ７０４へ進んでページ番号（ＰａｇｅＮｕｍ）に１を代入し、ステップＳ７０５へ進む。
【００９２】
ステップＳ７０５では、ＰＤＬトランスレータ部２０６は、ジョブスプーラ２０４より受信したデータからコマンドを解釈して描画データを生成し、描画バッファ２０７に書き込む。そしてステップＳ７０６において、ページ終了命令を受け取ったかどうかを判断し、ページ終了していない場合にはステップＳ７０５に戻り、ページ終了した場合には、ステップＳ７０７においてＰａｇｅＮｕｍを更新する。
【００９３】
次のステップＳ７０８においては、ジョブスプーラ２０４から現在のＰａｇｅＮｕｍの読み込み完了サイズを受け取り、ページデータベース部５００に登録する。すなわち、当該印刷ジョブに関して、ＰＤＬトランスレータ部２０６がトランスレート処理を行うと、ページ単位の読み込み完了位置情報がページデータベース部５００に登録されるのである。
【００９４】
この点について詳しく説明する。印刷ジョブは一連のデータであり、複数ページから構成されている。ページのデータは可変長であるため、ページ番号（ＰａｇｅＮｕｍ）だけでは割り込み復帰時にどのページから読み出してよいのか判断することができない。そこで、この割り込まれる前の処理の過程において、割り込み復帰時に最初に読み出すべきデータ位置（復帰ページの始まり位置）を、割り込まれるまでのページの読み込み完了サイズとしてページデータベース部５００に記憶しておくのである。例えば、１ページ目（ＰａｇｅＮｕｍ＝１）のデータが１００Ｋバイトのときには、読み込み完了サイズは１００Ｋバイトとなり、２ページ目（ＰａｇｅＮｕｍ＝２）のデータが５０Ｋバイトのときには、読み込み完了サイズは１５０Ｋバイトとなる。このように、前記読み込み完了サイズは、印刷ジョブを解析しながら導き出せるものであり、事前に分かる情報ではない。
【００９５】
従って、ステップＳ７０５において印刷ジョブをページ毎に解析しながら、１ページ目（ＰａｇｅＮｕｍ＝１）については１００Ｋバイト、２ページ目（ＰａｇｅＮｕｍ＝２）については１５０Ｋバイト、…、というようにページ単位に読み込み完了サイズを読み込み完了位置情報としてページデータベース部５００に記憶する。この読み込み完了サイズは、後の割り込み復帰時にデータ読み飛ばしを行う際の読み飛ばしバイト数として使用される。
【００９６】
その後のステップＳ７０９においては、当該印刷ジョブのトランスレートが完了したか否かを判断し、完了であるならステップＳ７０１に戻って、新しいジョブＩＤの取得を試みる。そうでない場合はステップＳ７０５において次のコマンドを解釈する。
【００９７】
ＩＩ．割り込まれた先行印刷ジョブの復帰処理
先行印刷ジョブの処理中に割り込み印刷ジョブが投入されると、割り込まれた先行印刷ジョブのジョブＩＤは、図１３（ｂ）を用いて前述したように、ジョブ読み出しテーブル２１３上において割り込み印刷ジョブの直後に位置している。
【００９８】
割り込み印刷ジョブのトランスレートが完了すると、ＰＤＬトランスレータ部２０６は、まずステップＳ７０１において、ジョブ読み出しテーブル２１３から割り込まれた先行印刷ジョブのジョブＩＤを取得し、割り込まれた先行印刷ジョブの復帰処理を開始する。
【００９９】
そして続くステップＳ７０２において、機器データベース部２０５に格納されているスキップページの情報を取得する。このときは、スキップページの情報が存在しているので、ステップＳ７０３の判断が否定（Ｎｏ）となり、ステップＳ７１０へ進む。
【０１００】
ステップＳ７１０では、当該印刷ジョブに用いるＰＤＬがページ独立型であるか否かを判断し、ページ独立型である場合は、ステップＳ７１１においてスキップページの情報に関する読み飛ばしバイト数（読み込み完了サイズ）をページデータベース部５００から取得する。例えば、前述した例では、スキップページが２であれば、ＰａｇｅＮｕｍ＝２→１５０Ｋバイト、となり、読み飛ばしバイト数は１５０Ｋバイトである。
【０１０１】
そしてステップＳ７１２において、ジョブスプーラ２０４に読み飛ばしバイト数分のデータの読み飛ばしを指示する。ジョブスプーラ２０４では、この指示を受けて、読み飛ばしバイト数分のデータの読み飛ばしを実行する。
【０１０２】
次のステップＳ７１３では、ページ番号（ＰａｇｅＮｕｍ）にスキップページを設定して、前記ステップＳ７０５以降へ進む。また、ＰＤＬがページ独立型でないときは、ステップＳ７０４においてＰａｇｅＮｕｍに１を代入して、ステップＳ７０５以降へ進む。尚、印刷ジョブの属性で例えばジョブ名など、ページ単位ではくジョブ単位で規定される属性も想定されるが、そのような属性については、別途ジョブ単位の属性を記憶部に保持しておき、該保持しておいたジョブ属性を割り込み復帰時に読み込むことでジョブ単位の属性を認識し、割り込みさらた印刷ジョブの復帰処理を行なうことができる。
【０１０３】
プリンタエンジン部２０９によって最後の１ページの排紙が完了すると、情報管理部２１０はジョブの削除処理を実行する。また、このとき、ページデータベース部５００にも作用し、関連するページの情報が削除される。
【０１０４】
＜ジョブ完了処理の動作＞
図１０は、情報管理部２１０が実行するジョブ完了処理の動作を示すフローチャートである。
【０１０５】
まずステップＳ８０１において、機器データベース部２０５の当該ジョブの属性情報を検索し、ジョブ終了の通知アドレスが設定されているかどうかを調べる。通常、ジョブパケット生成部１０７が前記図７のステップＳ４０９において自分のアドレスを属性として設定するため、Ｙｅｓとなり（ジョブ終了の通知アドレスが設定されている）、続くステップＳ８０２において、ジョブの終了通知イベントを、属性として登録されたアドレスに送信を行う。終了通知イベントもジョブパケットと同様に図２で説明したようなパケット構造をしているが、異なる点はオペレーションコードが常に０ｘ０００ａである点と、通知フラグ・ビットと返答送信・ビットが１になることである。パラメータとして、ジョブ完了したことを示すイベントＩＤである０ｘ０００８と、複数の排紙ビンが存在する場合に排紙を行った排紙ビンのビン番号とが渡される。
【０１０６】
ホストコンピュータ１００のユーティリティ部１０５は、上記ジョブの終了通知イベントを受信し、ポップアップダイアログとして、グラフィックユーザインターフェイスを用いてユーザに印刷ジョブの印刷処理が完了したことを通知する。その通知画面を図１１に示す。
【０１０７】
＜ジョブ完了処理の動作＞
図１０は、情報管理部２１０が実行するジョブ完了処理の動作を示すフローチャートである。
【０１０８】
まずステップＳ８０１において、機器データベース部２０５の当該ジョブの属性情報を検索し、ジョブ終了の通知アドレスが設定されているかどうかを調べる。通常、ジョブパケット生成部１０７が前記図７のステップＳ４０９において自分のアドレスを属性として設定するため、Ｙｅｓとなり（ジョブ終了の通知アドレスが設定されている）、続くステップＳ８０２において、ジョブの終了通知イベントを、属性として登録されたアドレスに送信を行う。終了通知イベントもジョブパケットと同様に図２で説明したようなパケット構造をしているが、異なる点はオペレーションコードが常に０ｘ０００ａである点と、通知フラグ・ビットと返答送信・ビットが１になることである。パラメータとして、ジョブ完了したことを示すイベントＩＤである０ｘ０００８と、複数の排紙ビンが存在する場合に排紙を行った排紙ビンのビン番号とが渡される。
【０１０９】
ホストコンピュータ１００のユーティリティ部１０５は、上記ジョブの終了通知イベントを受信し、ポップアップダイアログとして、グラフィックユーザインターフェイスを用いてユーザに印刷ジョブの印刷処理が完了したことを通知する。その通知画面を図１１に示す。
【０１１０】
＜割り込み処理＞
次に、割り込み処理について説明する。
【０１１１】
ジョブプリプロセッサ部２０３が印刷ジョブの割り込み指定を認識すると、図８のステップＳ６０７において、割り込み処理部２１２に対して割り込み指示が行われる。この時、割り込みを行うジョブＩＤも通知される。
【０１１２】
図１２は、割り込み処理部２１２の動作を示すフローチャートである。
【０１１３】
同図において、ステップＳ９０９では、割り込み指示がなされるのを監視し、割り込み指示がなされたと認識されると、まずステップＳ９０１において、ＰＤＬトランスレータ部２０６に対して、現在処理している印刷ジョブの処理中止を指示する。次にステップＳ９０２において描画バッファ４０７に中間データがある場合には削除を行い、さらにステップＳ９０３において、描画部２０８に対して印刷ジョブの処理の一環としての描画処理の中止を指示する。
【０１１４】
続いてステップＳ９０４において、印刷ジョブの処理の一環としてのプリンタエンジン部２０９の処理中止を指示する。但し、現在まさに印刷中のジョブや排紙中のジョブに関しては、処理を中止するとジャムが発生する可能性があるので、これらは中止の対象から除外される。続くステップＳ９１１では、割り込まれたジョブの既に排紙完了したページを記憶しておく。
【０１１５】
次のステップＳ９０５においては、割り込みジョブのジョブＩＤをジョブ読み出しテーブル２１３の先頭に追加する。これによって、次に処置される印刷ジョブが割り込みジョブとなる。さらにステップＳ９０６においてＰＤＬトランスレータ部２０６の処理再開を指示する。このとき外部から受信したページ記述言語の解釈位置は、終了ページ命令を受け取った各ページの解釈前のデータサイズを合わせた合計データサイズに基づくものとなる。そしてステップＳ９０７において描画部２０８の処理を再開し、最後にステップＳ９０８においてプリンタエンジン部２０９の処理を再開する。
【０１１６】
図１３（ａ），（ｂ）は、割り込み処理時におけるジョブ読み出しテーブル２１３の状態を表す図である。同図（ａ）において、通常ジョブがジョブ１〜４まで投入された状態で、ジョブ５が割り込みジョブとして投入された場合を想定しており、同図（ｂ）では、割り込みジョブであるジョブ５がジョブ読み出しテーブル２１３の先頭に追加されている。ＰＤＬトランスレータ部２０６は、ジョブ読み出しテーブル２１３に記述された順番に印刷ジョブのトランスレートを行うことによって、ジョブ５、１〜４の順番に印刷処理が行われ、ジョブ５が割り込まれて処理される。
【０１１７】
また、ジョブ１の排紙途中にジョブ５が割り込まれた場合、排紙完了したページ数を記憶しておき（図１２のステップＳ９１１）、再度ジョブ１が割り込み復帰を行うときに、ＰＤＬトランスレータ部２０６により、ＰＤＬがページ独立型であるか、ページ依存型であるかによってトランスレート処理を変更する。
【０１１８】
すなわち、割り込み復帰されるジョブが、図９のステップＳ７１０においてＰＤＬのページ独立型であると認識された場合には、ステップＳ７１１において、スキップページに関連する読み飛ばしバイト数をページデータベース部５００から取得する。そして、ステップＳ７１２においてジョブスプーラ２０４に読み飛ばしバイト数分のスキップを指示することにより、既に印刷済みのページの解釈を抑止しつつ割り込み復帰処理を正常に実施することが可能である。
【０１１９】
もしＰＤＬがページ独立型ではなくページ依存型（ページ独立型ではない）であった場合は、ＰＤＬトランスレータ部２０６は割り込まれた当該ジョブを１ページ目から解釈するが、描画部２０８において、機器データベース部２０５に格納されたスキップページの情報に従って、排紙完了したページの描画処理のスキップを行う。これによって、ＰＤＬがページ独立型ではない場合にも、割り込まれた印刷ジョブの復帰を行う際に、割り込まれる前の印刷ページと割り込まれた後の印刷ページの重複を避けることができる。
【０１２０】
以上のように、本実施形態では、ＰＤＬの種別を認識し、ページ依存のないページ独立型のＰＤＬであった場合は、最初のページからトランスレートするのではなく、割り込み以前まで処理していたページ番号及びデータ読み込み位置を記憶し、そのデータ読み込み位置に基づく位置のページから直ちにトランスレートするようにしたので、割り込み印刷後の復帰処理を高速に行うことが可能になり、割り込み印刷機能の繁用性を高めることができる。
【０１２１】
［第２実施形態］
上記第１実施形態では、ジョブに関する各ページ毎の読み飛ばしバイト数は、図９のステップＳ７０８において、ＰＤＬトランスレータ部２０６によって算出され、ページデータベース部５００に記憶していた。しかし、本第２実施形態のように、ページ独立型であるＰＤＬデータのコマンド自体にスキップ情報を付加させても良い。
【０１２２】
図１４は、本発明の第２実施形態に係るＰＤＬのデータ構造を示す模式図であり、ページ独立型ＰＤＬのデータ構造を改良したものである。
【０１２３】
同図に示すように、各ページには、コマンド指定によりページ毎の読み飛ばしバイトサイズ情報が付加されている。このような情報はプリンタドライバ部１０２により生成可能である。かかる読み飛ばしバイトサイズ情報は、ＰＤＬトランスレータ部２０６により解釈され、ページデータベース部５００に記憶される。この場合、図９のステップＳ７０８の処理は、現在の読み込み位置からカウントされるのではなく、ＰＤＬデータに含まれるコマンドにより指定される点が異なるのみで、他の要素、効果は第１実施形態と何ら変わることがない。
【０１２４】
［第３実施形態］
ページ独立型のＰＤＬの場合、全てのページに関してページ独立を満たすための情報が格納されるため、ページ依存型のＰＤＬに比較して冗長になる傾向にある。例えば第１実施形態において、図４に示したページ依存型ＰＤＬと図５に示したページ独立型ＰＤＬを比較すると、後者の方がそれぞれのページに用紙サイズや用紙タイプの情報を追加しなくてはならず、データサイズが増えてしまう。ジョブの出力時間がデータサイズに依存する場合、このような冗長な情報になるのを避ける必要がある。そのための手法について述べる。
【０１２５】
図１５は、本発明の第３実施形態に係るＰＤＬのデータ構造を示す模式図であり、初期ページの概念を導入したＰＤＬのデータ構造である。
【０１２６】
同図において、全てのページが持つ情報の初期値が初期ページに記録され、他のページは初期ページに対する差分として設定される。例えば、初期ページ（２４−０）において、用紙サイズはＡ４、用紙タイプは普通紙と設定されると、全てのページ（２４−１〜２４−３）について通常、用紙サイズはＡ４、用紙タイプは普通紙として動作する。
【０１２７】
２ページ目（２４−２）の用紙サイズがＡ３と指定されている。このような場合は、初期値に対する差分設定と見なし、当該ページ（２４−２）をＡ３で出力することが可能である。割り込み復帰においては、例えば２ページ目（２４−２）から復帰したい場合には、まず初期ページ（２４−０）を解釈し、その後２ページ目（２４−２）を解釈することによって、１ページ目（２４−１）を解釈しなくても２ページ目（２４−２）から割り込み復帰を行うことが可能となり、高速な割り込み復帰処理と、ＰＤＬデータの冗長性を抑えることが可能となる。
【図面の簡単な説明】
【０１２８】
【図１】本発明の第１実施形態に係る印刷装置の機能構成を示すブロック図である。
【図２】ジョブパケットの構造を示す模式図である。
【図３】プリンタドライバ部１０２が印刷処理実行時にユーザに所望の印刷方法を指示するために提供されるグラフィックユーザインターフェイスを示す図である。
【図４】ページ非独立（ページ依存）型ＰＤＬのデータ構造を示す模式図である。
【図５】ページ独立型ＰＤＬのデータの構造を示す模式図である。
【図６】ジョブパケット生成部１０７の動作を示すフローチャートである。
【図７】図６の続きのフローチャートである。
【図８】ジョブプリプロセッサ部２０３の動作を示すフローチャートである。
【図９】ＰＤＬトランスレータ部２０６の動作を示すフローチャートである。
【図１０】情報管理部２１０が実行するジョブ完了処理の動作を示すフローチャートである。
【図１１】印刷処理が完了したことを通知する通知画面を示す画面図である。
【図１２】割り込み処理部２１２の動作を示すフローチャートである。
【図１３】割り込み処理時におけるジョブ読み出しテーブル２１３の状態を表す図である。
【図１４】本発明の第２実施形態に係るＰＤＬのデータ構造を示す模式図である。
【図１５】本発明の第３実施形態に係るＰＤＬのデータ構造を示す模式図である。
【図１６】従来の印刷システムにおけるホストコンピュータの機能構成を示すブロック図である。
【図１７】従来の印刷システムにおける印刷装置の機能構成を示すブロック図である。
【図１８】ジョブ読み出しテーブル２１３の登録状況を示す図である。
【符号の説明】
【０１２９】
１００  ホストコンピュータ
１０１  アプリケーション部
１０２  プリンタドライバ部
１０３  送信バッファ
１０４  Ｉ／Ｆドライバ部
１０５  ユーティリティ部
１０６  論理チャネル制御部
１０７  ジョブパケット生成部
１１０  インターフェイス手段
２００，４００  印刷装置
２０１  Ｉ／Ｆドライバ部
２０２  論理チャネル制御部
２０３  ジョブプリプロセッサ部
２０４  ジョブスプーラ
２０５  機器データベース部
２０６  ＰＤＬトランスレータ部
２０７  描画バッファ
２０８  描画部
２０９  プリンタエンジン部
５００  ページデータベース部
【図１】
2005349768.tif 000003
【図２】
2005349768.tif 000004
【図３】
2005349768.tif 000005
【図４】
2005349768.tif 000006
【図５】
2005349768.tif 000007
【図６】
2005349768.tif 000008
【図７】
2005349768.tif 000009
【図８】
2005349768.tif 000010
【図９】
2005349768.tif 000011
【図１０】
2005349768.tif 000012
【図１１】
2005349768.tif 000013
【図１２】
2005349768.tif 000014
【図１３】
2005349768.tif 000015
【図１４】
2005349768.tif 000016
【図１５】
2005349768.tif 000017
【図１６】
2005349768.tif 000018
【図１７】
2005349768.tif 000019
【図１８】
2005349768.tif 000020