(57)【特許請求の範囲】
【請求項１】
ホストから受信した印刷データを記憶する記憶手段と、
前記記憶手段に記憶された印刷データを読み出して中間コードを生成する生成手段と、
前記生成手段により生成された中間コードに基づき画像を形成する画像形成手段と、
ホストと対話して処理を行う印刷データを処理する生成手段を搭載していない場合、ホストから受信した印刷データの保持動作を利用した特定の印刷機能の実行を制限せず、ホストと対話して処理を行う印刷データを処理する生成手段を搭載している場合、ホストから受信した印刷データの保持動作を利用した特定の印刷機能の実行を制限する制限手段とを有することを特徴とする画像形成装置。
【請求項２】
前記ホストから受信した印刷データの保持動作を利用した特定の印刷機能は、実行中のジョブに割り込んで印刷を実行する割り込み印刷を含み、
前記生成手段は、割り込み印刷が終了した後、割り込まれたジョブの印刷データに基づき中間コードを生成することを特徴とする請求項１記載の画像形成装置。
【請求項３】
前記ホストから受信した印刷データの保持動作を利用した特定の印刷機能は、ジョブ単位で指定された部数の印刷を行うコレート印刷を含み、
前記生成手段は、印刷データから中間コードを生成することを指定された部数に応じて複数回行うことを特徴とする請求項１記載の画像形成装置。
【請求項４】
前記ホストから受信した印刷データの保持動作を利用した特定の印刷機能は、ユーザから印刷開始が指示されるまで印刷を留め置く留め置き印刷を含むことを特徴とする請求項１記載の画像形成装置。
【請求項５】
ホストから受信した印刷データを記憶する記憶手段と、前記記憶手段に記憶された印刷データを読み出して中間コードを生成する生成手段と、前記生成手段により生成された中間コードに基づき画像を形成する画像形成手段とを有する画像形成装置における制御方法であって、
ホストと対話して処理を行う印刷データを処理する生成手段を搭載していない場合、ホストから受信した印刷データの保持動作を利用した特定の印刷機能の実行を制限せず、ホストと対話して処理を行う印刷データを処理する生成手段を搭載している場合、ホストから受信した印刷データの保持動作を利用した特定の印刷機能の実行を制限することを特徴とする画像形成装置における制御方法。
【請求項６】
前記ホストから受信した印刷データの保持動作を利用した特定の印刷機能は、実行中のジョブに割り込んで印刷を実行する割り込み印刷を含み、
前記生成手段は、割り込み印刷が終了した後、割り込まれたジョブの印刷データに基づき中間コードを生成することを特徴とする請求項５記載の画像形成装置における制御方法。
【請求項７】
前記ホストから受信した印刷データの保持動作を利用した特定の印刷機能は、ジョブ単位で指定された部数の印刷を行うコレート印刷を含み、
前記生成手段は、印刷データから中間コードを生成することを指定された部数に応じて複数回行うことを特徴とする請求項５記載の画像形成装置における制御方法。
【請求項８】
前記ホストから受信した印刷データの保持動作を利用した特定の印刷機能は、ユーザから印刷開始が指示されるまで印刷を留め置く留め置き印刷を含むことを特徴とする請求項５記載の画像形成装置における制御方法。
【請求項９】
ホストから受信した印刷データを記憶する記憶手段と、前記記憶手段に記憶された印刷データを読み出して中間コードを生成する生成手段と、前記生成手段により生成された中間コードに基づき画像を形成する画像形成手段とを有する画像形成装置で実行されるプログラムであって、
ホストと対話して処理を行う印刷データを処理する生成手段を搭載していない場合、ホストから受信した印刷データの保持動作を利用した特定の印刷機能の実行を制限せず、ホストと対話して処理を行う印刷データを処理する生成手段を搭載している場合、ホストから受信した印刷データの保持動作を利用した特定の印刷機能の実行を制限する工程を画像形成装置に実行させるプログラム。
【請求項１０】
前記ホストから受信した印刷データの保持動作を利用した特定の印刷機能は、実行中のジョブに割り込んで印刷を実行する割り込み印刷を含み、
前記生成手段は、割り込み印刷が終了した後、割り込まれたジョブの印刷データに基づき中間コードを生成することを特徴とする請求項９記載のプログラム。
【請求項１１】
前記ホストから受信した印刷データの保持動作を利用した特定の印刷機能は、ジョブ単位で指定された部数の印刷を行うコレート印刷を含み、
前記生成手段は、印刷データから中間コードを生成することを指定された部数に応じて複数回行うことを特徴とする請求項９記載のプログラム。
【請求項１２】
前記ホストから受信した印刷データの保持動作を利用した特定の印刷機能は、ユーザから印刷開始が指示されるまで印刷を留め置く留め置き印刷を含むことを特徴とする請求項９記載のプログラム。
【請求項１３】
ホストから受信した印刷データを記憶する記憶手段と、
前記記憶手段に記憶された印刷データを読み出して中間コードを生成する生成手段と、
前記生成手段により生成された中間コードに基づき画像を形成する画像形成手段と、
ＰｏｓｔＳｃｒｉｐｔの印刷データを処理する生成手段を搭載していない場合、ホストから受信した印刷データの保持動作を利用した特定の印刷機能の実行を制限せず、ＰｏｓｔＳｃｒｉｐｔの印刷データを処理する生成手段を搭載している場合、ホストから受信した印刷データの保持動作を利用した特定の印刷機能の実行を制限する制限手段とを有することを特徴とする画像形成装置。
【請求項１４】
前記ホストから受信した印刷データの保持動作を利用した特定の印刷機能は、実行中のジョブに割り込んで印刷を実行する割り込み印刷を含み、
前記生成手段は、割り込み印刷が終了した後、割り込まれたジョブの印刷データに基づき中間コードを生成することを特徴とする請求項１３記載の画像形成装置。
【請求項１５】
前記ホストから受信した印刷データの保持動作を利用した特定の印刷機能は、ジョブ単位で指定された部数の印刷を行うコレート印刷を含み、
前記生成手段は、印刷データから中間コードを生成することを指定された部数に応じて複数回行うことを特徴とする請求項１３記載の画像形成装置。
【請求項１６】
前記ホストから受信した印刷データの保持動作を利用した特定の印刷機能は、ユーザから印刷開始が指示されるまで印刷を留め置く留め置き印刷を含むことを特徴とする請求項１３記載の画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホストから受信した印刷ジョブの印刷データ（ＰＤＬ（ｐａｇｅ  ｄｅｓｃｒｉｐｔｉｏｎ  ｌａｎｇｕａｇｅ）データ）に基づき様々な機能を実現する画像形成装置、画像制御方法における制御方法、及びプログラムに関するものである。
【背景技術】
【０００２】
従来、ホストから受信した印刷ジョブの印刷データ（ＰＤＬデータ）を画像形成出力する装置において、受信した印刷ジョブの印刷データ（ＰＤＬデータ）を保持しておくことにより様々な機能を実現している。
【０００３】
例えば、実行中の印刷ジョブに割り込んで印刷する割り込み印刷を可能とした装置が考案されている（例えば、特許文献２参照）。
【０００４】
また、例えば、ジョブ単位で仕分けして印刷するコレート印刷を可能とした装置が考案されている（例えば、特許文献１参照）。
【０００５】
また、例えば、パスワードが入力されるまで印刷を留め置いておく、留め置き印刷を可能とした装置が考案されている（例えば、特許文献３参照）。
【特許文献１】特登録０２８０３０８７
【特許文献２】特開平０７−０９６６３８
【特許文献３】特開平０８−０３９８９８
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、ＰＤＬによっては、ホストとプリンタとの間で、対話型で印刷処理を進める、対話型の印刷モードをサポートしている言語がある。
【０００７】
例えば、ＰｏｓｔＳｃｒｉｐｔ（アドビ社の商標登録）では、ホストから送信されたＰｏｓｔＳｃｒｉｐｔデータ（コマンド）に対して、プリンタがその実行結果を返送するという対話型のやり取りをサポートしている。
【０００８】
図２は、その一例を示した図で、ホストから送信された／Ｔｉｍｅｓ−Ｒｏｍａｎフォントが実装されているか？という問い合わせ（コマンド）に対して、プリンタがその結果（ｔｒｕｅ＝実装されている）を返している。
【０００９】
ここで、従来の画像形成装置において、受信した印刷データを保持しておくことにより実現している機能（割り込み印刷、コレート印刷、留め置き印刷など）と、ホストと対話型の印刷モードとを同時に実行した場合、それぞれ、以下のような問題が発生する。
【００１０】
図３は、課題の説明で使用する印刷データ（ＰＤＬデータ）の例を示す。
【００１１】
ＰＤＬデータ３０１は、コマンド１〜４で構成されていて、コマンド１、コマンド３を実行すると、それぞれ、ホストへの応答データ１、応答データ２が発生する。
【００１２】
また、コマンド１〜２の実行によりページ１が、コマンド３から４の実行によりページ２が生成される。
【００１３】
プリンタは、ホストから受信したＰＤＬデータ３０１を保持しておくことにより、割り込み印刷、コレート印刷、留め置き印刷を実現する。
【００１４】
＜割り込み印刷の場合＞
図４は、プリンタが、ＰＤＬデータ３０１の処理途中で、割り込みジョブを受信したときの例を示す。
【００１５】
図示した通り、割り込みジョブが発生した時点で、プリンタのＰＤＬインタプリタの処理は中断されるので、未実行のコマンドに対する応答データがホストに返信されず、ホスト側はプリンタからの応答データ待ちのままとなってしまう。
【００１６】
また、割り込みジョブの処理が終了し、割り込まれたジョブの処理を再開（割り込み復帰）する場合、ＰＤＬインタプリタは、プリンタに保持しているＰＤＬデータ３０１を先頭から解釈する。
【００１７】
これは、ＰＤＬによっては（例えば、ＰｏｓｔＳｃｒｉｐｔの場合）、データが再帰的に記述されているため、一度解釈を中断したデータに対して、データの途中から解釈を再開することはできないからである。
【００１８】
ＰＤＬインタプリタが、再びＰＤＬデータ３０１の先頭から解釈していくと、コマンド１を実行した時点で、応答データ１が発生し、これを再びホストに返信する。
【００１９】
これに対し、ホスト側は、コマンド３に対する応答データ２を待っている状態なので、応答データ１が返信されると不整合が生じてしまう。
【００２０】
なお、割り込み発生時に、印刷済みページ数を記憶しておき、割り込み復帰時に印刷済みページの画像を印刷しないようにすることは容易に実現できる。
【００２１】
しかし、印刷済みページ数と、割り込み前のコマンドの実行状況とは、必ずしも対応が取れないので（先述の通り、ＰＤＬによってはデータが再帰的に記述されているため）、応答データをホストに返送しないようにすることは困難である。
【００２２】
このように、対話型の印刷ジョブを処理中に割り込みジョブを受信した場合、割り込み発生時、割り込み復帰時、それぞれで問題が生じる。
【００２３】
＜コレート印刷の場合＞
図５は、プリンタが、ＰＤＬデータ３０１を、コレート印刷で２部以上印刷したときの例を示す。
【００２４】
図示した通り、２部目以降の印刷時にも、ＰＤＬインタプリタが、プリンタに保持しているＰＤＬデータ３０１を再び先頭から解釈することにより実現しているので、解釈を複数回行う度に、応答データ１、２をホストに返信してしまう。
【００２５】
これに対し、ホスト側は、ＰＤＬデータ３０１を１回しか送信していないにも関わらず、複数回応答データが返信されると不整合が生じてしまう。
【００２６】
このように、対話型の印刷ジョブをコレート印刷で２部以上印刷した場合に、問題が生じる。
【００２７】
＜留め置き印刷の場合＞
留め置き印刷の場合、プリンタに保持されたＰＤＬデータは、ユーザが印刷開始を指示するまで解釈されない。
【００２８】
したがって、対話型の印刷ジョブにも関わらず、ユーザが印刷開始を指示するまで、ホストには応答データが一切返信されず、ホスト側はプリンタからの応答データ待ちのままとなってしまう、という問題が生じる。
【課題を解決するための手段】
【００２９】
上述した課題を解決するために、本発明の画像形成装置は、
ホストから受信した印刷データを記憶する記憶手段と、
前記記憶手段に記憶された印刷データを読み出して中間コードを生成する生成手段と、前記生成手段により生成された中間コードに基づき画像を形成する画像形成手段と、
ホストと対話して処理を行う印刷データを処理する生成手段を搭載していない場合、ホストから受信した印刷データの保持動作を利用した特定の印刷機能の実行を制限せず、ホストと対話して処理を行う印刷データを処理する生成手段を搭載している場合、ホストから受信した印刷データの保持動作を利用した特定の印刷機能の実行を制限する制限手段とを有することを特徴とする。
【発明の効果】
【００３２】
また、本発明によれば、ホストと対話型で印刷を行う印刷データを受信した場合に、特定の印刷機能を問題なく実現することができる。
【発明を実施するための最良の形態】
【００３３】
（実施例１）
＜ハード構成＞
図６は、本発明が適用される画像形成装置のハード構成の概要を示すブロック図である。
【００３４】
画像形成装置１は、全体の制御を司るプリンタ・コントローラ（コントローラ）１０を有する。さらにユーザからの指示を受け付けたり表示を行うパネル２０、ホスト２から受信した印刷ジョブの印刷データ等を記憶しておく記憶装置（ＨＤＤなど）３０、印刷を行うプリンタ・エンジン４０を有する。
【００３５】
次にコントローラ１０を説明する。ＣＰＵ１０１のＣＰＵバス１０２に、パネル・インターフェース（パネルＩ／Ｆ）１０３、ネットワーク・インターフェース（Ｎｅｔｗｏｒｋ  Ｉ／Ｆ）１０４、画像生成器１０５、プリンタ・エンジン・インターフェース（プリンタＩ／Ｆ）１０６が接続されている。さらにＣＰＵ１０１のＣＰＵバス１０２には、記憶装置インターフェース１０７、ＲＡＭ１０８、ＲＯＭ１０９が接続されている。
【００３６】
パネルＩ／Ｆ１０３は、パネル２０に接続し、パネル２０より入力されたユーザの指示をＣＰＵ１０１に通知したり、ＲＯＭ１０９、ＲＡＭ１０８に格納されている画面情報や設定情報をパネル２０に表示する。
【００３７】
Ｎｅｔｗｏｒｋ  Ｉ／Ｆ１０４は、ネットワークに接続するホスト２との間でデータの送受信を行う。
【００３８】
画像生成器１０５は、ホスト２から受信したデータを解釈して得られたＤｉｓｐｌａｙ  Ｌｉｓｔからビットマップ画像を生成する。
【００３９】
プリンタＩ／Ｆ１０６は、ＣＰＵ１０１の指示の基、画像生成器１０５で生成されたビットマップ画像をプリンタ・エンジン４０に出力する。
記憶装置Ｉ／Ｆ１０７は、記憶装置３０との間でデータの送受信を行う。
ＲＡＭ１０８は、ＣＰＵ１０１の作業領域として使用されるメモリである。
ＲＯＭ１０９は、制御プログラムやパネル２０に表示する画面情報が格納されたメモリである。
ＣＰＵ１０１は、ＲＯＭ１０９に格納された制御プログラムに従って、コントローラ１０の各部を制御する。
【００４０】
＜ソフト構成＞
図１は、本実施例におけるコントローラ１０の機能ブロック図である。
【００４１】
論理チャネル制御部２０１は、Ｎｅｔｗｏｒｋ  Ｉ／Ｆ１０４で受信した印刷ジョブのジョブパケットと管理パケットを、それぞれ異なるチャネルに割り振り、ＯＳＩ７階層におけるトランスポート層の多重化を行う。
【００４２】
また、論理チャネル制御部２０１は、ＰＤＬインタプリタ２０６で発生したホストへの応答データ２０８を、Ｎｅｔｗｏｒｋ  Ｉ／Ｆ１０４を介してホスト２に送信する。
【００４３】
ジョブ識別部２０２は、受信したジョブパケットを解析し、ジョブ設定情報をジョブ制御部２１１に、印刷データ（ＰＤＬデータ）をＰＤＬスプーラ２０３に渡す。
【００４４】
ＰＤＬスプーラ２０３は、受信したＰＤＬデータ２０５を、ＰＤＬインタプリタ２０６に送信したり、ＲＡＭ１０８や記憶装置３０に記憶する。
【００４５】
受信データ管理テーブル２０４は、ＰＤＬスプーラ２０３が、受信したＰＤＬデータ２０５をジョブ毎に管理するためのテーブルである。
【００４６】
ＰＤＬインタプリタ２０６は、ＰＤＬスプーラ２０３から読み出したＰＤＬデータ２０５を解釈し、Ｄｉｓｐｌａｙ  Ｌｉｓｔ（中間コード）２０７を生成して、ＲＡＭ１０８に格納する。
【００４７】
また、ＰＤＬデータ２０５を解釈した結果、ホストへの応答データ２０８が発生した場合、これをＲＡＭ１０８に格納し、論理チャネル制御部２０１に通知する。
【００４８】
なお、ＰＤＬインタプリタ２０６は、複数搭載可能であって（図１では、２０６ａ、２０６ｂ）、ＰＤＬデータ２０５の種別に応じて、該当のＰＤＬインタプリタが処理する。
【００４９】
画像形成出力部２０９は、Ｄｉｓｐｌａｙ  Ｌｉｓｔ（中間コード）２０７を画像生成器１０５でページ画像２１０に展開し、展開したページ画像２１０をプリンタＩ／Ｆ１０６を介してプリンタ・エンジン４０に出力する。プリンタエンジン４０はページ画像に基づき用紙に印刷を行う。
【００５０】
機器管理部２１４は、パネル２０から入力した操作指示や、ホスト２から管理パケットで入力した操作指示をジョブ制御部２１１に通知したり、機器の状態をパネル２０に表示したりする。
【００５１】
ジョブ制御部２１１は、ジョブ識別部２０２、ＰＤＬスプーラ２０３、ＰＤＬインタプリタ２０６、画像形成出力部２０９、機器管理部２１３と接続し、これらの機能部とやり取りして、印刷ジョブを実行する。
【００５２】
ジョブ管理テーブル２１２は、ジョブ制御部２１１が、ジョブを管理するためのテーブルで、ジョブ毎に、ジョブ識別２０２から入力したジョブ設定情報や、ジョブの制御情報が格納される。
【００５３】
ジョブ実行キュー２１３は、ジョブ制御部２１１が、ジョブの実行順を制御するためのテーブルで、実行順にジョブ管理テーブル２１２へのポインタが格納されている。
【００５４】
次に、本発明に係る、コントローラ１０の主な機能部（ジョブ識別部２０２、ＰＤＬスプーラ２０３、ＰＤＬインタプリタ２０６、ジョブ制御部２１１）の処理について、詳細に説明する。
【００５５】
＜ジョブ識別部の処理＞
図７は、ジョブ識別部２０２において、Ｎｅｔｗｏｒｋ  Ｉ／Ｆ１０４から新たなジョブを受信した時の処理プログラムを示すフローチャートである。
【００５６】
ジョブ識別部２０２は、新たなジョブを受信すると、まず、当該ジョブを識別するためのジョブ識別子（ＪｏｂＩＤ）を付与する（Ｓ７０１）。
【００５７】
続いて、ジョブ識別部２０２は、付与したＪｏｂＩＤと、当該ジョブに設定されたジョブ設定情報とともに、ジョブ制御部２１１に新たなジョブを受信したことを通知する（Ｓ７０２）。
【００５８】
次に、ジョブ識別部２０２は、ＰＤＬスプーラ２０３に、新たなジョブを受信したことを通知する（Ｓ７０３）。
【００５９】
次に、ジョブ識別部２０２は、ＰＤＬスプーラ２０３に、受信したジョブに含まれる一連の受信データを転送する（Ｓ７０４）。
【００６０】
ジョブ識別部２０２は、ジョブの終端を検知すると（Ｓ７０５）、ＰＤＬスプーラ２０３に受信データの転送終了を通知して（Ｓ７０６）、一連の処理を終える。
【００６１】
＜ＰＤＬスプーラの受信データ格納処理＞
図８は、ＰＤＬスプーラ２０３において、ジョブ識別部２０２から受信したデータを格納する処理プログラムを示すフローチャートである。
【００６２】
ＰＤＬスプーラ２０３は、ジョブ識別部２０２から各種通知を受信すると、まず、その通知種別を判別する（Ｓ８０１）。
【００６３】
通知種別が、ジョブ受信通知の場合、ＰＤＬスプーラ２０３は、新たな受信データ管理テーブル２０４を生成し、受信データの格納領域をＲＡＭ１０８または、記憶装置３０上に確保する（Ｓ８０２）。
【００６４】
＜受信データ管理テーブル＞
図９は、受信データ管理テーブル２０４の構成を示す。
【００６５】
受信データ管理テーブル２０４は、ジョブ毎に生成され、「ＪｏｂＩＤ」「書き込みポインタ」「読み出しポインタ」「読み出しモード」から構成される。
【００６６】
「ＪｏｂＩＤ」は、ジョブ識別子を示し、ジョブ識別部２０２から通知されたＪｏｂＩＤがセットされる。
【００６７】
「書き込みポインタ」は、受信データ２０５の格納先を示し、ＰＤＬスプーラ２０３が確保した受信データ格納先のアドレスがセットされる。
【００６８】
「読み出しポインタ」は、受信データ２０５の読み出し先を示し、テーブルが生成された時点では、「書き込みポインタ」と同じアドレスがセットされる。
【００６９】
「読み出しモード」は、受信データ２０５が読み出された後の処理を示し、「バックアップ」は、受信データ２０５が読み出された後も保持しておくことを示し、「読み捨て」は、受信データ２０５が読み出された時点で削除することを示す。
【００７０】
なお、「読み出しモード」は、ＰＤＬインタプリタ２０６からの読み出し開始時に指定されるので、テーブルが生成された時点ではセットされない。
【００７１】
再び、図８のフローチャートに戻って説明する。
【００７２】
通知種別が、受信データの転送通知の場合、ＰＤＬスプーラ２０３は、ジョブ識別部２０２から受信したデータを、当該ジョブの受信データ格納領域に書き込み（Ｓ８０３）、「書き込みポインタ」を更新する（Ｓ８０４）。
【００７３】
通知種別が、受信データの転送終了通知の場合、ＰＤＬスプーラ２０３は、当該ジョブの受信データ２０５の最後に、データの終端であることを示す「ＥＯＦ」を追加して、一連の処理を終える（Ｓ８０５）。
【００７４】
＜ＰＤＬスプーラの受信データ読み出し処理＞
図１０は、ＰＤＬスプーラ２０３において、ＰＤＬインタプリタ２０６に受信データ２０５を転送する処理プログラムを示すフローチャートである。
【００７５】
ＰＤＬスプーラ２０３は、ＰＤＬインタプリタ２０６から各種通知を受信すると、まず、その通知種別を判別する（Ｓ１００１）。
【００７６】
通知種別が、受信データの読み出し開始通知の場合、ＰＤＬスプーラ２０３は、ＰＤＬインタプリタ２０６から指定された「読み出しモード」を、当該ジョブの受信管理テーブル２０４にセットする（Ｓ１００２）。
【００７７】
通知種別が、受信データの読み出し通知の場合、ＰＤＬスプーラ２０３は、当該ジョブの「読み出しポインタ」から受信データ２０５を読み出して、ＰＤＬインタプリタ２０６に送信する（Ｓ１００３）。
【００７８】
続いて、ＰＤＬインタプリタ２０６に送信したデータサイズ分「読み出しポインタ」を更新する（Ｓ１００４）。
【００７９】
また、「読み出しモード」が「読み捨て」の場合は（Ｓ１００５）、この時点でＰＤＬインタプリタ２０６に送信した受信データ２０５を、受信データ格納領域から削除する（Ｓ１００６）。
【００８０】
通知種別が、受信データの読み出し終了通知の場合、「読み出しモード」によって処理が異なる（Ｓ１００７）。
【００８１】
「読み出しモード」が「読み捨て」の場合、ＰＤＬスプーラ２０３は、この時点で、当該ジョブの受信データ管理テーブル２０４を削除する（Ｓ１００８）。
【００８２】
「読み出しモード」が「バックアップ」の場合、ＰＤＬスプーラ２０３は、受信データ管理テーブル２０４は削除せず、当該ジョブの「読み出しポインタ」を、受信データ格納領域の先頭に戻す（Ｓ１００９）。
【００８３】
これにより、ＰＤＬインタプリタ２０６が、受信データ２０５を再読み出しする際、受信データ２０５の先頭から解釈を開始することができる。
【００８４】
図１１は、ＰＤＬスプーラ２０３において、ジョブ制御部２１１から、受信データ２０５の削除通知を受信した時の処理プログラムを示すフローチャートである。
【００８５】
ＰＤＬスプーラ２０３は、ジョブ制御部２１１から指定されたジョブの受信データ２０５を、受信データ格納領域から削除し、当該ジョブの受信管理テーブル２０４を削除する（Ｓ１１０１）。
【００８６】
＜ＰＤＬインタプリタの起動時の処理＞
図１２は、ＰＤＬインタプリタ２０６（２０６ａ、２０６ｂ）において、ジョブ制御部２１１から処理の開始が指示された時の処理プログラムを示すフローチャートである。
【００８７】
処理開始を指示されたＰＤＬインタプリタ２０６（２０６ａまたは２０６ｂ）は、まず、ＰＤＬスプーラ２０３に、受信データ２０５の読み出し開始を通知する（Ｓ１２０１）。
【００８８】
なお、読み出し開始通知では、ジョブ制御部２１１から指定された「読み出しモード」を指定する。
【００８９】
続いて、ＰＤＬスプーラ２０３から、順次受信データ２０５を読み出し（Ｓ１２０２）、読み出した受信データ２０５を解釈してＤｉｓｐｌａｙ  Ｌｉｓｔ２０７を生成し、ＲＡＭ１０８に格納する（Ｓ１２０３）。
【００９０】
また、受信データ２０５を解釈して、ホストへの応答データ２０８が発生した場合は（Ｓ１２０４）、これをＲＡＭ１０８に格納するとともに、論理チャネル制御部２０１に通知する（Ｓ１２０５）。
【００９１】
受信データ２０５の終端（ＥＯＦ）を検知するまで、ステップＳ１２０２〜Ｓ１２０５の処理を繰り返す。
【００９２】
ＰＤＬインタプリタ２０６は、受信データ２０５の終端（ＥＯＦ）を検知すると（Ｓ１２０６）、ＰＤＬスプーラ２０３に、受信データ２０５の読み出し終了を通知（Ｓ１２０７）する。
【００９３】
続いて、ＰＤＬインタプリタ２０６は、ジョブ制御部２１１に、受信データ２０５の解釈終了を通知する（Ｓ１２０８）。
【００９４】
なお、ジョブ制御部２１１への解釈終了通知には、ジョブの総ページ数が含まれていて、この通知を受け取ったジョブ制御部２１１は、当該ジョブのジョブ管理テーブル２１２の「総ページ数（ＴＰ）」にこの値をセットする。
【００９５】
＜ＰＤＬインタプリタの停止時の処理＞
図１３は、ＰＤＬインタプリタ２０６（２０６ａ、２０６ｂ）において、ジョブ制御部２１１から処理停止が指示された時の処理プログラムを示すフローチャートである。
【００９６】
処理停止を指示されたＰＤＬインタプリタ２０６（２０６ａまたは２０６ｂ）は、まず、現在処理中の受信データ２０５の解釈を停止する（Ｓ１３０１）。
【００９７】
続いて、ＰＤＬスプーラ２０６から読み出して一時的に保持している受信データ、および、生成途中のＤｉｓｐｌａｙ  Ｌｉｓｔ２０７を削除する（Ｓ１３０２）。
【００９８】
また、受信データ２０５の読み出しを終えていない場合は（Ｓ１３０３）、ＰＤＬスプーラ２０３に、受信データ２０５の読み出し終了を通知して（Ｓ１３０４）処理を終える。
【００９９】
＜ジョブ制御部のジョブ受信時の処理＞
図１４は、ジョブ制御部２１１において、ジョブ識別部２０２からジョブ受信通知を受けた時の処理プログラムを示すフローチャートである。
【０１００】
ジョブ制御部２１１は、まず、ジョブ管理テーブル２１２を生成する（Ｓ１４０１）。
【０１０１】
＜ジョブ管理テーブル＞
ここで、ジョブ管理テーブル２１２について説明する。
【０１０２】
図１５は、実施例１におけるジョブ管理テーブル２１２の構成を示す。
【０１０３】
ジョブ管理テーブル２１２は、「ＪｏｂＩＤ」「ジョブ設定情報」「ジョブ制御情報」から構成される。
【０１０４】
「ＪｏｂＩＤ」は、ジョブ識別子を示し、ジョブ識別部２０２から通知されたＪｏｂＩＤがセットされる。
【０１０５】
「ジョブ設定情報」は、ジョブ識別部２０２が、ホスト２から受信したジョブパケットを解釈して得られたジョブに関する設定情報で、ジョブ識別部２０２が、ジョブ受信通知に含めてジョブ制御部２１１に通知する。
【０１０６】
「ジョブ設定情報」には、例えば、「ジョブ実行モード」「ＰＤＬ種別」「部数」「コレート印刷」などが含まれる。
【０１０７】
「ジョブ実行モード」は、ジョブの実行タイミングを示し、「通常」は、受付け順に処理することを示し、「割り込み」は、現在実行中のジョブに割り込んで実行することを示し、「留め置き」は、ユーザが実行指示を与えるまで実行を待機することを示す。
【０１０８】
「ＰＤＬ種別」は、ジョブに含まれるＰＤＬデータの種別を示し、例えば、ＬＩＰＳやＰｏｓｔＳｃｒｉｐｔといったＰＤＬ名称がセットされる。
【０１０９】
「部数」は、ジョブの印刷部数を指定する。
【０１１０】
「コレート印刷」は、ジョブをコレートで印刷するか否かを指定する。
【０１１１】
「ジョブ制御情報」は、ジョブ制御部２１１が、ジョブを制御する際に用いる情報で、ジョブ制御部２１１によりセットされる。
【０１１２】
「ジョブ制御情報」は、「ステータス」「読み出しモード」「総ページ数（ＴＰ）」「生成済ページ数（ＲＰ）」「印刷済みページ数（ＯＰ）」から構成される。
【０１１３】
「ステータス」は、ジョブの実行状況を示し、状況に応じて「実行待ち」「実行中」「割り込み要求」「停止待ち」「停止中」の何れかの値がセットされる。
【０１１４】
「読み出しモード」は、受信データ管理テーブル２０４の「読み出しモード」と同じである。
「総ページ数（ＴＰ）」は、１ジョブの総ページ数を示す。
「生成済みページ数（ＲＰ）」は、画像形成出力部２０９でページ画像２１０の生成を終えたページ数を示す。
「印刷済みページ数（ＯＰ）」は、プリンタ・エンジン４０で印刷を終えたページ数を示す。
各メンバーの使われ方や更新については、後述の処理で説明する。
【０１１５】
＜ジョブ管理テーブルの生成処理＞
図１６は、従来の画像形成装置における、ジョブ管理テーブル２１２の生成処理プログラムを示すフローチャートである。
【０１１６】
ジョブ制御部２１１は、まず、「ジョブ設定情報」の各メンバーに、それぞれ、ジョブ識別２０２から通知された値をセットする（Ｓ１６０１）。
【０１１７】
次に、「ステータス」に「実行待ち」を、「総ページ数（ＴＰ）」に「未確定」を、「生成済みページ数（ＲＰ）」「印刷済みページ数（ＯＰ）」に０をセットする（Ｓ１６０２）。
【０１１８】
次に、ジョブ制御部２１１は、記憶装置（ＨＤＤ）３０の装着状況を判別し（Ｓ１６０３）、記憶装置（ＨＤＤ）３０が装着されている場合は、「読み出しモード」に「バックアップ」をセットする（Ｓ１６０６）。
【０１１９】
記憶装置（ＨＤＤ）３０が装着されていない場合は、「ジョブ実行モード」を「通常」に、「コレート印刷」を「ＯＦＦ」に上書きし（Ｓ１６０４）、「読み出しモード」に「読み捨て」をセットする（Ｓ１６０５）。
【０１２０】
これは、記憶装置（ＨＤＤ）３０が装着されていない場合、受信データ２０５の格納領域が十分確保できないため、受信データ２０５を保持しておく動作や、これにより実現している機能（割り込み印刷、コレート印刷、留め置き印刷）を制限するためである。
【０１２１】
図１７は、本実施例における、ジョブ管理テーブル２１２の生成処理プログラムを示すフローチャートである。
【０１２２】
従来の画像形成装置との違いは、ステップＳ１７０３で、記憶装置（ＨＤＤ）３０の装着状況に加え、搭載しているＰＤＬインタプリタ２０６の種別を判別するようにした点である。
【０１２３】
本実施例では、ＰＤＬインタプリタの種別として、ＰｏｓｔＳｃｒｉｐｔを搭載しているか否かを判別している。
【０１２４】
これは、ＰＤＬによっては、ホストと対話型の印刷モードをサポートしているので、この場合、受信データ２０５を保持しておく動作や、これにより実現している機能（割り込み印刷、コレート印刷、留め置き印刷）を制限するためである。
【０１２５】
再び、図１４のフローチャートに戻って、ジョブ制御部２１１におけるジョブ受信時の処理を説明する。
【０１２６】
ステップＳ１４０１で、ジョブ管理テーブル２１２の生成を終えると、ジョブ制御部２１１は、当該ジョブの「ジョブ実行モード」に応じて、ジョブ実行キュー２１３への追加を判断する（Ｓ１４０２）。
【０１２７】
「ジョブ実行モード」が「留め置き」の場合は、ユーザの指示があるまで実行しないので、この時点ではジョブ実行キュー２１３には追加せずに処理を終える。
【０１２８】
「ジョブ実行モード」が「通常」の場合は、当該ジョブをジョブ実行キュー２１３の末尾に追加する（Ｓ１４０３）。
【０１２９】
「ジョブ実行モード」が「割り込み」の場合は、まず、ジョブ実行キュー２１３にジョブがあるか否かを判別し（Ｓ１４０４）、無い場合は、ジョブ実行キュー２１３の末尾（＝先頭）に追加する（Ｓ１４０３）。
【０１３０】
ジョブ実行キュー２１３にジョブがある場合、次に、ジョブ実行キュー２１３の先頭ジョブの「ジョブ実行モード」を確認し、「割り込み」か否かを判別する（Ｓ１４０５）。
【０１３１】
先頭ジョブが割り込みジョブの場合、当該ジョブをジョブ実行キュー２１３の２番目に追加する（Ｓ１４１０）。
これは、割り込みジョブに対する割り込みは、禁止するためである。
【０１３２】
先頭ジョブが割り込みジョブでない場合、次に、先頭ジョブの「ステータス」を確認し、「実行中」か否かを判別する（Ｓ１４０６）。
【０１３３】
先頭ジョブが実行中でない場合、当該ジョブをジョブ実行キュー２１３の先頭に追加する（Ｓ１４０９）。
【０１３４】
先頭ジョブが実行中の場合、まずこれを中断する必要があるので、先頭ジョブの「ステータス」を「割り込み要求」に変更し（Ｓ１４０７）、当該ジョブの「ステータス」を「停止待ち」に変更する（Ｓ１４０８）。
【０１３５】
続いて、当該ジョブをジョブ実行キュー２１３の先頭に追加する（Ｓ１４０９）。
【０１３６】
＜ジョブ制御部のジョブ実行処理＞
図１８は、ジョブ制御部２１１におけるジョブ実行処理プログラムのフローチャートを示す。
【０１３７】
ジョブ制御部２１１は、まず、ジョブ実行キュー２１３にジョブがあるか否かを判別し（Ｓ１８０１）、ジョブが無ければ、ジョブが発生するまで待機する。
【０１３８】
ジョブがある場合は、当該ジョブのジョブ管理テーブル２１２の「ステータス」を確認する（Ｓ１８０２）。
【０１３９】
「ステータス」が「停止待ち」の場合、ジョブ制御部２１１は、「ステータス」が「実行待ち」に遷移するまで待機する。
【０１４０】
「ステータス」が「実行待ち」の場合、ジョブ制御部２１１は、当該ジョブの「ステータス」を「実行中」に変更する（Ｓ１８０３）。
【０１４１】
続いて、ジョブ制御部２１１は、ジョブ管理テーブル２１２の「ＰＤＬ種別」で示されるＰＤＬインタプリタ２０６（２０６ａまたは２０６ｂ）、および、画像形成出力部２０９に処理開始を通知する（Ｓ１８０４）。
【０１４２】
なお、ＰＤＬインタプリタ２０６に対しては、ジョブ管理テーブル２１２の「読み出しモード」を指定して、処理開始を通知する。
【０１４３】
ＰＤＬインタプリタ２０６（２０６または２０６ｂ）、および、画像形成出力部２０９の処理が開始されると、実際の印刷シーケンスに入る。
【０１４４】
印刷シーケンスに入ると、ジョブ制御部２１１は、まず、画像形成出力部２０９に、生成済みのページ画像２１０があるか否かを問い合わせる（Ｓ１８０５）。
【０１４５】
生成済みのページ画像２１０があれば、ジョブ制御部２１１は、続いて、ページ画像出力処理を行う（Ｓ１８０６）。
【０１４６】
＜ページ画像出力処理＞
図１９は、ステップＳ１８０６のページ画像出力処理プログラムを示すフローチャートである。
【０１４７】
ジョブ制御部２１１は、まず、ジョブ管理テーブル２１２の「生成済みページ数（ＲＰ）」をインクリメントし（Ｓ１９０１）、これを「印刷済みページ数（ＯＰ）」と比較して、当該ページが未印刷のページであるか否かを判別する（Ｓ１９０２）。
【０１４８】
未印刷のページの場合、ジョブ制御部２１１は、画像形成出力部２０９に、当該ページ画像２１０の出力を指示して、プリンタ・エンジン４０で印刷を行う（Ｓ１９０３）。
【０１４９】
印刷済みのページの場合、ジョブ制御部２１１は、画像形成出力部２０９に、当該ページ画像２１０の破棄を指示して（Ｓ１９０７）処理を終える。
【０１５０】
これは、被割り込みジョブの再開時（割り込み復帰時）には、割り込み発生前に既に印刷したページは、重複して印刷しないようにするためである。
【０１５１】
ステップＳ１９０３で１ページの印刷を終えると、ジョブ制御部２１１は、ジョブ管理テーブル２１２の「コレート印刷」を参照し、当該ジョブの設定が、コレート印刷であるか否かを判別する（Ｓ１９０４）。
【０１５２】
「コレート印刷」が「ＯＦＦ」の場合は、ページ単位で複数部の印刷を行うので、部数で指定された回数、当該ページの印刷を行う（Ｓ１９０５）。
【０１５３】
当該ページの印刷が完了すると、ジョブ制御部２１１は、ジョブ管理テーブル２１２の「印刷済みページ数（ＯＰ）」をインクリメントし（Ｓ１９０６）、画像形成出力部２０９に、当該ページ画像２１０の破棄を指示して（Ｓ１９０７）処理を終える。
【０１５４】
再び、図１８のフローチャートに戻って説明する。
【０１５５】
ステップＳ１８０５で、生成済みのページ画像２１０がない場合、続いて、当該ジョブのジョブ管理テーブル２１２を参照し、「総ページ数（ＴＰ）」が確定していて、且つ、全ページ印刷完了したか（ＯＰとＴＰ等しいか）を判別する（Ｓ１８０７）。
【０１５６】
全ページの印刷が完了していた場合、ジョブ制御部２１１は、ジョブ管理テーブル２１２の「コレート印刷」を参照し、当該ジョブの設定が、コレート印刷か否かを判別する（Ｓ１８０８）。
【０１５７】
「コレート印刷」が「ＯＮ」の場合は、ジョブ単位で複数部の印刷を行うので、続いて、全部数の印刷完了したか否かを判別する（Ｓ１８０９）。
【０１５８】
判別の結果、未だ印刷する部数が残っている場合は、ステップＳ１８０４に戻って、次の部数の印刷を継続する。
【０１５９】
この通知を受けたＰＤＬインタプリタ２０６（２０６ａまたは２０６ｂ）が、ＰＤＬスプーラ２０３で保持しているジョブの受信データ２０５を再び先頭から読み出して解釈することにより、複数部の印刷が行われる。
【０１６０】
ステップＳ１８０８で「コレート印刷」が「ＯＦＦ」の場合、また、ステップＳ１８０９で全部数の印刷完了した場合、続いて、ジョブ終了処理に移行する（Ｓ１８１２）。
【０１６１】
＜ジョブ終了処理＞
図２０は、ステップＳ１８１２のジョブ終了処理プログラムのフローチャートを示す。
【０１６２】
ジョブ制御部２１１は、まず、ジョブ管理テーブル２１２の「読み出しモード」を確認し（Ｓ２００１）、「バックアップ」の場合、ＰＤＬスプーラ２０３にジョブ終了を通知する（Ｓ２００２）。
【０１６３】
この通知を受けたＰＤＬスプーラ２０３は、図１１のステップＳ１１０１で、当該ジョブの受信データ２０５、および、受信データ管理テーブル２０４を削除する。
【０１６４】
続いて、ジョブ制御部２１１は、ジョブ管理テーブル２１２の「ジョブ実行モード」を確認して、当該ジョブが割り込みジョブであるか否かを判別する（Ｓ２００３）。
【０１６５】
当該ジョブが割り込みジョブだった場合、ジョブ制御部２１１は、被割り込みジョブ（「ステータス」＝「停止中」のジョブ）の「ステータス」を「実行待ち」に変更する（Ｓ２００４）。
【０１６６】
最後に、ジョブ制御部２１１は、ジョブ実行キュー２１３から当該ジョブを削除して（Ｓ２００５）、一連の処理を終える。
【０１６７】
再び図１８のフローチャートに戻って説明する。
【０１６８】
ステップＳ１８０７で、全ページの印刷が完了していなかった場合、ジョブ制御部２１１は、続いて、ジョブ管理テーブル２１２の「ステータス」を参照し、「割り込み要求」に変更されていないか確認する（Ｓ１８１１）。
【０１６９】
「ステータス」が「割り込み要求」の場合、割り込みジョブが発生したことを示しているので、続いて、ジョブ割り込み処理へと移行する（Ｓ１８１２）。
【０１７０】
なお、「ステータス」が「割り込み要求」でない場合は、ステップＳ１８０５に戻って、次ページの印刷を継続する。
【０１７１】
＜ジョブ割り込み処理＞
図２１は、ステップＳ１８１２のジョブ割り込み処理プログラムを示すフローチャートである。
【０１７２】
ジョブ制御部２１１は、まず、当該ジョブを処理しているＰＤＬインタプリタ２０６（２０６または２０６ｂ）、および、画像形成出力部２０９に、処理の停止を通知する（Ｓ２１０１）。
【０１７３】
この通知を受けたＰＤＬインタプリタ２０６、画像形成出力部２０９は、それぞれ処理中のデータ（Ｄｉｓｐｌａｙ  Ｌｉｓｔ２０７、ページ画像２１０）を削除する。
【０１７４】
続いて、ジョブ制御部２１１は、当該ジョブのジョブ管理テーブル２１２の「生成済みページ数（ＲＰ）」をクリアし、「ステータス」を「停止中」に変更する。
【０１７５】
最後に、ジョブ制御部２１１は、割り込みジョブ（「ステータス」＝「停止待ち」のジョブ）の「ステータス」を「実行待ち」に変更して（Ｓ２１０３）、処理を終える。
【０１７６】
＜留め置き印刷実行処理＞
図２２は、ジョブ制御部２１１において、留め置き印刷の開始が指示された時の処理プログラムを示すフローチャートである。
【０１７７】
なお、この指示は、ユーザが、パネル２０、または、ホスト２から、画像形成装置１に留め置かれているジョブ（ＪｏｂＩＤ）を指定して、印刷開始を指示することにより発生し、機器管理部２１４を介してジョブ制御部２１１に入力される。
【０１７８】
ジョブ制御部２１１は、まず、指定されたＪｏｂＩＤに該当するジョブ管理テーブル２１２が存在するか否かを判別し（Ｓ２２０１）、存在しない場合は、何もせず処理を終える。
【０１７９】
該当するジョブ管理テーブル２１２が存在する場合、続いて、ジョブ制御部２１１は、ジョブ実行キュー２１３にジョブがあるか否かを判別し（Ｓ２２０２）、ジョブがない場合は、当該ジョブをジョブ実行キュー２１３の先頭に追加する（Ｓ２２０３）。
【０１８０】
ジョブがある場合、続いて、ジョブ制御部２１１は、先頭ジョブのジョブ管理テーブル２１２を参照し、先頭ジョブが割り込みジョブ、または、「ステータス」が「実行中」であるか否かを判別する（Ｓ２２０４）。
【０１８１】
先頭ジョブが割り込みジョブや「ステータス」が「実行中」の場合は、当該ジョブをジョブ実行キューの２番目に追加する（Ｓ２２０５）。それ以外の場合は、ジョブ実行キューの先頭に追加して（Ｓ２２０３）処理を終える。
【０１８２】
以上説明したように、搭載しているＰＤＬインタプリタの種別によっては、特定の印刷機能（ホスト２から受信したＰＤＬデータをＰＤＬスプーラ２０３に保持し、割り込み印刷、コレート印刷、留め置き印刷）の動作を制限するようにした。
【０１８３】
したがって、例えば、ＰｏｓｔＳｃｒｉｐｔのように、ホストと対話型の印刷モードをサポートしているＰＤＬインタプリタを搭載している場合、上述の動作を制限することにより、対話型の印刷モードを問題なく実行することができる。
【０１８４】
（実施例２）
実施例１では、画像形成装置１に搭載しているＰＤＬインタプリタの種別によって、動作を制限するようにしたが、受信したジョブ毎に動作を制限するようにしても良い。
【０１８５】
例えば、ＰｏｓｔＳｃｒｉｐｔデータを、ＡｐｐｌｅＴａｌｋのＰＡＰ（Ｐｒｉｎｔｅｒ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ）  Ｄｉｒｅｃｔモードで受信した場合、画像形成装置１は、ホストと対話型の印刷モードをサポートする。
【０１８６】
この際、画像形成装置１は、データを受信したネットワークのソケットにより、受信したジョブがＰＡＰ  Ｄｉｒｅｃｔジョブであるか否かを識別できるので、これを基に、ジョブ毎に動作を制限することができる。
【０１８７】
図２３は、実施例２における、ジョブ管理テーブル２１２の構成を示す。
【０１８８】
実施例１のジョブ管理テーブル（図１５）との違いは、ジョブ設定情報に、当該ジョブがＰＡＰ  Ｄｉｒｅｃｔジョブであるか否かを示す「ＰＡＰ  Ｄｉｒｅｃｔ」という情報を追加している。
【０１８９】
この「ＰＡＰ  Ｄｉｒｅｃｔ」の情報は、以下のようにして、ジョブ管理テーブル２１２にセットされる。
【０１９０】
まず、Ｎｅｔｗｏｒｋ  Ｉ／Ｆ１０４が、データを受信したネットワークのソケット情報を論理チャネル制御部２０１に通知する。
【０１９１】
次に、論理チャネル制御部２０１が、ジョブ識別部２０２にジョブパケットを送信する際に、ＰＡＰ  Ｄｉｒｅｃｔで受信したジョブの場合、これを明示する。
【０１９２】
そして、ジョブ識別部２０２が、ジョブ制御部２１１に通知するジョブ受信通知で、ジョブ設定情報に「ＰＡＰ  Ｄｉｒｅｃｔ」情報を付加することにより、ジョブ管理テーブル２１２にセットされる。
【０１９３】
＜ジョブ管理テーブルの生成処理＞
図２４は、実施例２における、ジョブ制御部２１１のジョブ管理テーブル２１２の生成処理プログラムを示すフローチャートである。
【０１９４】
ステップＳ２４０１、Ｓ２４０２は、それぞれ、実施例１のステップＳ１７０１、Ｓ１７０２と同じであるため、説明を割愛する。
【０１９５】
ジョブ制御部２１１は、ステップＳ２４０３で、記憶装置（ＨＤＤ）３０の装着状況を確認する。
【０１９６】
記憶装置（ＨＤＤ）３０が装着されている場合は、次に、ジョブ管理テーブル２１２の「ＰＡＰ  Ｄｉｒｅｃｔ」を参照し、当該ジョブがＰＡＰ  Ｄｉｒｅｃｔジョブであるか否かを判別する（Ｓ２４０６）。
【０１９７】
当該ジョブがＰＡＰ  Ｄｉｒｅｃｔジョブでない場合は、特に動作を制限する必要はないので、「読み出しモード」に「バックアップ」をセットして（Ｓ２４１０）処理を終える。
【０１９８】
当該ジョブがＰＡＰ  Ｄｉｒｅｃｔジョブの場合、ジョブ制御部２１１は、ジョブ管理テーブル２１２の「コレート印刷」を「ＯＦＦ」に上書きする（Ｓ２４０７）。
【０１９９】
また、「ジョブ実行モード」が「留め置き」の場合は（Ｓ２４０８）、これを「通常」に上書きする（Ｓ２４０９）。
【０２００】
なお、ＰＡＰ  Ｄｉｒｅｃｔジョブを割り込みジョブとして実行する分には、特に問題ないので（割り込みジョブに対する割り込みは禁止しているので）、「ジョブ実行モード」が「割り込み」であっても、「通常」に上書きはしない。
【０２０１】
記憶装置（ＨＤＤ）３０が装着されていない場合や、当該ジョブがＰＡＰ  Ｄｉｒｅｃｔジョブの場合、ジョブ制御部２１１は、「読み出しモード」に「読み捨て」をセットして（Ｓ２４０５）処理を終える。
【０２０２】
以上の処理により、ＰＡＰ  Ｄｉｒｅｃｔジョブの場合、コレート印刷や留め置き印刷が指定されていても、これらの動作を制限するので、ホストとの対話型の印刷処理を問題なく実行することができる。
【０２０３】
＜ジョブ制御部のジョブ受信時の処理＞
図２５は、実施例２におけるジョブ制御部２１１のジョブ受信時の処理プログラムを示すフローチャートである。
【０２０４】
実施例１との違いは、ステップＳ２５０５で、受信したジョブが割り込みジョブであって、且つ、ジョブ実行キュー２１３にジョブがあった場合に、実施例１では、先頭ジョブが割り込みジョブの場合のみ、当該ジョブに対する割り込みを禁止している。
【０２０５】
これに対し、実施例２では、上記に加え、先頭ジョブがＰＡＰ  Ｄｉｒｅｃｔジョブの場合も、当該ジョブに対する割り込みを禁止している点である。
【０２０６】
これにより、ＰＡＰ  Ｄｉｒｅｃｔジョブに対する割り込みは禁止されるので、ＰＡＰ  Ｄｉｒｅｃｔジョブは、ホストとの対話型の印刷処理を問題なく実行することができる。
【０２０７】
以上説明したように、割り込み印刷、コレート印刷、留め置き印刷を行う際、受信したジョブがホストと対話型の印刷モードをサポートするジョブの場合に、これらの特定の印刷機能の動作を制限した。
【０２０８】
したがって、ＡｐｐｌｅＴａｌｋのＰＡＰ  Ｄｉｒｅｃｔモードで投入されたジョブのように、ホストと対話型の印刷モードをサポートするジョブの場合、上述の動作を制限することにより、対話型の印刷モードを問題なく実行することができる。
【０２０９】
なお、実施例１、２において、画像形成装置がＰｏｓｔＳｃｒｉｐｔを搭載している場合や、ＰＡＰ  Ｄｉｒｅｃｔジョブの場合、「コレート印刷」を行わないようにしたが、以下のような方法を取ることもできる。
【０２１０】
画像形成装置１が、コレート印刷の実現方法として、本実施例で説明した受信データ２０５を保持しておく方法以外に、Ｄｉｓｐｌａｙ  Ｌｉｓｔ２０７やページ画像２１０を保持しておく方法もサポートしていた場合、後者の方法を選択するようにすれば良い。
【０２１１】
後者の方法では、コレート印刷でも受信データ２０５を再度読み出すことはないので、ホストと対話型の印刷モードも問題なく実行することができる。
【図面の簡単な説明】
【０２１２】
【図１】コントローラ１０の機能ブロック図。
【図２】ホストからの問い合わせに対してプリンタが応答する例を示す図
【図３】ホストへの応答データが発生するＰＤＬデータ３０１の例を示す図
【図４】プリンタがＰＤＬデータ３０１の処理途中で割り込みジョブを受信した時の例を示す図。
【図５】プリンタがＰＤＬデータ３０１をコレート印刷で２部以上印刷したときの例を示す図。
【図６】画像形成装置１のハード構成図。
【図７】ジョブ識別部２０２のジョブ受信処理を示すフローチャート。
【図８】ＰＤＬスプーラ２０３の受信データ格納処理を示すフローチャート。
【図９】受信データ管理テーブル２０４の構成を示す図。
【図１０】ＰＤＬスプーラ２０３の受信データ転送処理を示すフローチャート。
【図１１】ＰＤＬスプーラ２０３の受信データ削除処理を示すフローチャート。
【図１２】ＰＤＬインタプリタ２０６の処理開始時の処理を示すフローチャート。
【図１３】ＰＤＬインタプリタ２０６の処理停止時の処理を示すフローチャート。
【図１４】実施例１における、ジョブ制御部２１１のジョブ受信処理を示すフローチャート。
【図１５】実施例１における、ジョブ管理テーブル２１２の構成を示す図。
【図１６】従来の画像形成装置における、ジョブ管理テーブル２１２の生成処理を示すフローチャート。
【図１７】実施例１における、ジョブ管理テーブル２１２の生成処理を示すフローチャート。
【図１８】ジョブ制御部２１１のジョブ実行処理を示す第１のフローチャート。
【図１９】ジョブ制御部２１１のジョブ実行処理を示す第２のフローチャート。
【図２０】ジョブ制御部２１１のジョブ実行処理を示す第３のフローチャート。
【図２１】ジョブ制御部２１１のジョブ実行処理を示す第４のフローチャート。
【図２２】ジョブ制御部２１１の留め置き印刷実行処理を示すフローチャート。
【図２３】実施例２における、ジョブ管理テーブル２１２の構成を示す図。
【図２４】実施例２における、ジョブ管理テーブル２１２の生成処理を示すフローチャート。
【図２５】実施例２における、ジョブ制御部２１１のジョブ受信処理を示すフローチャート。
【符号の説明】
【０２１３】
１  画像形成装置
２  ホスト
１０  プリンタ・コントローラ
２０  パネル
３０  記憶装置
４０  プリンタ・エンジン
１０１  ＣＰＵ
１０２  ＣＰＵバス
１０３  パネルＩ／Ｆ
１０４  Ｎｅｔｗｏｒｋ  Ｉ／Ｆ
１０５  画像生成器
１０６  プリンタＩ／Ｆ
１０７  記憶装置Ｉ／Ｆ
１０８  ＲＡＭ
１０９  ＲＯＭ
２０１  論理チャネル制御部
２０２  ジョブ識別部
２０３  ＰＤＬスプーラ
２０４  受信データ管理テーブル
２０５  受信データ
２０６、２０６ａ、２０６ｂ  ＰＤＬインタプリタ
２０７  Ｄｉｓｐｌａｙ  Ｌｉｓｔ
２０９  画像形成出力部
２０８  応答データ
２１０  ページ画像
２１１  ジョブ制御部
２１２  ジョブ管理テーブル
２１３  ジョブ実行キュー
２１４  機器管理部
【図１】
0005159335.tif 000002
【図２】
0005159335.tif 000003
【図３】
0005159335.tif 000004
【図４】
0005159335.tif 000005
【図５】
0005159335.tif 000006
【図６】
0005159335.tif 000007
【図７】
0005159335.tif 000008
【図８】
0005159335.tif 000009
【図９】
0005159335.tif 000010
【図１０】
0005159335.tif 000011
【図１１】
0005159335.tif 000012
【図１２】
0005159335.tif 000013
【図１３】
0005159335.tif 000014
【図１４】
0005159335.tif 000015
【図１５】
0005159335.tif 000016
【図１６】
0005159335.tif 000017
【図１７】
0005159335.tif 000018
【図１８】
0005159335.tif 000019
【図１９】
0005159335.tif 000020
【図２０】
0005159335.tif 000021
【図２１】
0005159335.tif 000022
【図２２】
0005159335.tif 000023
【図２３】
0005159335.tif 000024
【図２４】
0005159335.tif 000025
【図２５】
0005159335.tif 000026