(57)【特許請求の範囲】
【請求項１】
印刷データを受信する受信手段と、
前記受信手段が受信した印刷データに含まれる各ページを解析する解析手段と、
前記受信手段が受信した印刷データが、互いに異なるシート処理を指定することを可能にするために使用されるページセットを含む印刷データであるか否かを判定する判定手段と、
前記判定手段による判定の結果に基づき、前記受信手段が受信した印刷データが、前記ページセットを含む印刷データであると判定された場合は、所定数分のページが前記解析手段によって解析されるまでは印刷開始しないように制御し、前記受信手段が受信した印刷データが、前記ページセットを含む印刷データではないと判定された場合は、前記所定数分のページが前記解析手段によって解析される前に印刷開始するように制御する制御手段と、
を備えることを特徴とする印刷装置。
【請求項２】
前記制御手段は、前記受信手段が受信した印刷データが、前記ページセットを含む印刷データではないと判定された場合は、最初のページが前記解析手段によって解析されたことに応じて印刷開始するように制御することを特徴とする請求項１に記載の印刷装置。
【請求項３】
印刷データを受信する受信手段と、
前記受信手段が受信した印刷データに含まれる各ページを解析する解析手段と、
前記受信手段が受信した印刷データが、互いに異なるシート処理を指定することを可能にするために使用されるページセットを含む印刷データであるか否かを判定する判定手段と、
前記判定手段による判定の結果に基づき、前記受信手段が受信した印刷データが、前記ページセットを含む印刷データであると判定された場合は、所定数分のページセットに含まれるページが前記解析手段によって解析されるまでは印刷開始しないように制御し、前記受信手段が受信した印刷データが、前記ページセットを含む印刷データではないと判定された場合は、最初のページが前記解析手段によって解析されたことに応じて印刷開始するように制御する制御手段と、
を備えることを特徴とする印刷装置。
【請求項４】
前記判定手段は、前記解析手段による解析の結果に基づいて前記判定を行うことを特徴とする請求項１乃至３のいずれか１項に記載の印刷装置。
【請求項５】
前記解析手段は、解析したページにページセットの区切りを示す情報が含まれていることを検出した場合に、当該ページの解析をやり直すことを特徴とする請求項１乃至４のいずれか１項に記載の印刷装置。
【請求項６】
前記シート処理は、パンチ処理、ステープル処理、折り処理、挿入処理、及びシフト処理の少なくとも１つを含むことを特徴とする請求項１乃至５のいずれか１項に記載の印刷装置。
【請求項７】
前記受信手段が受信する印刷データは、氏名または住所を含む顧客毎の情報を管理するデータベースを参照して生成された印刷データであることを特徴とする請求項１乃至６のいずれか１項に記載の印刷装置。
【請求項８】
印刷データを受信する受信工程と、
前記受信工程で受信した印刷データに含まれる各ページを解析する解析工程と、
前記受信手段が受信した印刷データが、互いに異なるシート処理を指定することを可能にするために使用されるページセットを含む印刷データであるか否かを判定する判定工程と、
前記判定工程における判定の結果に基づき、前記受信工程で受信した印刷データが、前記ページセットを含む印刷データであると判定された場合は、所定数分のページが前記解析工程で解析されるまでは印刷開始しないように制御し、前記受信工程で受信した印刷データが、前記ページセットを含む印刷データではないと判定された場合は、前記所定数分のページが前記解析工程で解析される前に印刷開始するように制御する制御工程と、
を備えることを特徴とする印刷方法。
【請求項９】
印刷データを受信する受信工程と、
前記受信工程で受信した印刷データに含まれる各ページを解析する解析工程と、
前記受信手段が受信した印刷データが、互いに異なるシート処理を指定することを可能にするために使用されるページセットを含む印刷データであるか否かを判定する判定工程と、
前記判定工程における判定の結果に基づき、前記受信工程で受信した印刷データが、前記ページセットを含む印刷データであると判定された場合は、所定数分のページセットに含まれるページが前記解析工程で解析されるまでは印刷開始しないように制御し、前記受信工程で受信した印刷データが、前記ページセットを含む印刷データではないと判定された場合は、最初のページが前記解析工程で解析されたことに応じて印刷開始するように制御する制御工程と、
を備えることを特徴とする印刷方法。
【請求項１０】
コンピュータを請求項１乃至７のいずれか１項に記載の印刷装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷装置、印刷方法及びプログラムに関する。
【背景技術】
【０００２】
従来、複数の住所や複数の氏名を、レコードごとにわけて管理するデータベースがある。また、このようなデータベースによって管理された各レコードを、それぞれ別のシートに印刷する印刷装置がある。それによって、配布物の宛先を、レコードごとに容易に印刷することができる。
【０００３】
例えば、特許文献１には、複数のレコードの各々に含まれる各フィールドのデータをシートの所定の領域に記録するためのジョブを生成し、当該ジョブを印刷装置に送信することによって、印刷を実行する技術が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−２６９２６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述したような印刷は、ＰｏｓｔＳｃｒｉｐｔ言語のページ例外設定や、メーカ毎の独自拡張仕様等を使用することによって実現されている。
【０００６】
ＰＣ等の外部装置は、ＰｏｓｔＳｃｒｉｐｔ言語を用いて印刷ジョブを生成し、印刷装置に送信する。印刷装置は、外部装置から送信された印刷ジョブを受信し、受信した印刷ジョブを解釈し、印刷ジョブで指定された印刷設定や、フィニッシング設定に従って印刷を実行する。
【０００７】
また、近年では、レコードごとに異なる種類のシートを使用したり、レコードごとに異なるフィニッシングを実行できるようにしたりする必要が出てきた。例えば、宛先Ａに配布する印刷物は、普通紙にステープルをした仕上がりにし、宛先Ｂに配布する印刷物は、コート紙にパンチ処理をした印刷物にした仕上がりにしたい場合である。
【０００８】
このような背景から、印刷装置は、外部装置から印刷ジョブを受信し、印刷ジョブで指定された各レコードのシートの種類やフィニッシング設定を解釈しつつ、連続的にシートに印刷を実行することが求められている。この場合、印刷装置は、ジョブの印刷データに含まれるレコードの区切りをページセットとして検出し、検出されたページセット毎に異なるフィニッシング処理を行う。
【０００９】
しかしながら、ＰｏｓｔＳｃｒｉｐｔ言語は、各ページのデータ以外の欄にレコードの区切りを示す情報を埋め込むと汎用性が低下してしまう。そのため、汎用性を維持するためには、レコードの区切りを示す情報を各ページのデータの中に埋め込まなければならない。そのため、印刷装置は、ページを解析している途中でページセットの先頭ページであることを検出すると、そのページの解析を中断して、そのページがページセットの先頭ページであることを示す情報を設定する。そして、ページセットの設定を行った後に、再度そのページを解析し直す。このように、印刷装置は、新たなページセットを設定した後、再度そのページの解析処理を行わなければならないため、ページの画像データを生成する処理が遅れてしまう。また、画像データを生成する処理が遅れてしまった結果、画像を転写する画像転写体に画像を載せられず、シートの搬送は停止し、定着器をシートが通過しないために熱がこもってしまう。一度、熱がこもることによる急激な温度上昇が発生すると安定した品質の印刷を維持することができなくなる。
【００１０】
本発明は、上記課題に鑑みてなされたものである。そして、本発明は、受信した印刷データが、互いに異なるシート処理を指定することを可能にするために使用されるページセットを含む印刷データであるか否かに応じて印刷開始タイミングを適切に切り替える仕組みを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するため、本発明に係る印刷装置は以下の構成を有する。すなわち、印刷データを受信する受信手段と、前記受信手段が受信した印刷データに含まれる各ページを解析する解析手段と、前記受信手段が受信した前記印刷データが、互いに異なるシート処理を指定することを可能にするために使用されるページセットを含む印刷データであるか否かを判定する判定手段と、前記判定手段による判定の結果に基づき、前記受信手段が受信した印刷データが、前記ページセットを含む印刷データであると判定された場合は、所定数分のページが前記解析手段によって解析されるまでは印刷開始しないように制御し、前記受信手段が受信した印刷データが、前記ページセットを含む印刷データではないと判定された場合は、前記所定数分のページが前記解析手段によって解析される前に印刷開始するように制御する制御手段と、を備えることを特徴とする。
また、本発明に係る印刷装置は、印刷データを受信する受信手段と、前記受信手段が受信した印刷データに含まれる各ページを解析する解析手段と、前記受信手段が受信した印刷データが、互いに異なるシート処理を指定することを可能にするために使用されるページセットを含む印刷データであるか否かを判定する判定手段と、前記判定手段による判定の結果に基づき、前記受信手段が受信した印刷データが、前記ページセットを含む印刷データであると判定された場合は、所定数分のページセットに含まれるページが前記解析手段によって解析されるまでは印刷開始しないように制御し、前記受信手段が受信した印刷データが、前記ページセットを含む印刷データではないと判定された場合は、最初のページが前記解析手段によって解析されたことに応じて印刷開始するように制御する制御手段と、を備えることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、受信した印刷データが、互いに異なるシート処理を指定することを可能にするために使用されるページセットを含む印刷データであるか否かに応じて印刷開始タイミングを適切に切り替えることができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施形態に係る印刷システムの全体構成を示す図。
【図２】印刷装置のハードウェア及びソフトウェアの構成を示す図。
【図３】レコード情報の管理状況の変化を示す図。
【図４】印刷装置の全体的な処理手順を示す図。
【図５】印刷開始条件判定処理（Ｓ３０８）の詳細な処理手順を示す図
【図６】ＰｏｓｔＳｃｒｉｐｔページデータの構造を示す図
【図７】ページセット・ページ処理を示す図
【発明を実施するための形態】
【００１４】
以下、図面を参照して本発明の実施形態を詳細に説明する。なお、以下の実施形態は特許請求の範囲を限定するものでなく、また、実施形態で説明される特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
【００１５】
［印刷システムの全体構成（図１）］
図１は、本実施形態に係る印刷システム６００の全体の構成を示すシステム図である。
【００１６】
印刷システム６００は、印刷データを生成する外部装置の一例であるホストＰＣ６０１と、印刷データを受信して印刷を実行する印刷装置６０２（画像形成装置）と、印刷されたシートに対してフィニッシング処理（後処理）を行うフィニッシング装置とを備える。ホストＰＣ６０１は、印刷装置６０２とネットワークを介して接続されている。
【００１７】
ホストＰＣ６０１は、ユーザの指示に従って、ホストＰＣ６０１に接続されたデータベース上の住所録等のレコードを抽出し、ＰｏｓｔＳｃｒｉｐｔ（以下、単にＰＳと言う）の印刷データに変換する。なお、この住所録には、顧客ごとの氏名や住所が含まれている。このデータベースからのデータ抽出と、ＰＳへの変換は連続的に行われる。そして、ホストＰＣ６０１は、ＰＳのストリームデータ５５０（ＰＤＬデータ）を印刷装置６０２に送信する。このとき、ホストＰＣ６０１は、同じフィニッシング処理を行うページの印刷データで構成されるページセットを生成し、１以上のページセットで構成されるジョブを生成し、出力する。従って、１つのジョブに含まれるページセットの数は、フィニッシング処理の数に依存する。
【００１８】
例えば、ユーザは、データベースから抽出されたレコードをホストＰＣ６０１の画面に表示させ、プリンタドライバ等の設定画面を介して、各レコードごとに後処理を実行するよう指定するものとする。後処理には、パンチ処理、ステープル処理、折り処理、挿入処理、シフト処理等がある。また、レコードごとに必ず後処理を指定しなければならないわけではなく、後処理を指定しないレコードがあってもよい。このような指定をした状態で印刷データの送信を指示すると、ホストＰＣ６０１は、１ページまたは複数ページからなるページセットに変換した印刷データを生成する。また、ホストＰＣ６０１は、レコードに対して指定された後処理の設定を付加してジョブを生成する。そして、ホストＰＣ６０１は、生成したジョブを印刷装置６０２に送信する。なお、ここで説明したＰＤＬデータは、レコードごとに異なる種類のシート（印刷媒体）の使用を指定できるようにしてもよい。
【００１９】
印刷装置６０２は、ホストＰＣ６０１からジョブを受信し、受信したジョブを解析し、そのジョブ中の印刷データを画像データに変換し、画像データに従って画像をシートに印刷する。また、印刷装置６０２は、ページセットごとに指定された後処理を、インタフェースを介してフィニッシング装置を制御して、印刷されたシートに対して実行する。印刷装置６０２は、後処理が指定されていないレコードについては、フィニッシング装置に設けられた特別何もしない排出トレイ上に、印刷済みシートを排紙する。排紙された出力結果については、図６を用いて後に説明する。
【００２０】
［印刷装置６０２の構成］
（ハードウェア構成（図２（ａ））
図２（ａ）は、印刷装置のハードウェア構成を示す図である。
【００２１】
印刷装置６０２は、ＣＰＵ１０１、ＲＡＭ１０２、ＵｓｅｒＩ／Ｆ１０３、ＮｅｔｗｏｒｋＩ／Ｆ１０４、ＲＯＭ１０５、ＨＤＤ１０６を有する。これらの構成は、互いにＳｙｓｔｅｍＢｕｓ１２０によって接続されており、相互に通信を行うことができる。
【００２２】
ＣＰＵ１０１は、印刷装置６０２を統括的に制御する。ＲＡＭ１０２は、ＣＰＵ１０１の作業領域として機能し、ＲＯＭ１０５は、ＣＰＵ１０１によって読み出される各種プログラムを格納する。
【００２３】
また、ＣＰＵ１０１は、ＩｍａｇｅＢｕｓＩ／Ｆ１０７を経由して、ＩｍａｇｅＢｕｓ１３０に接続されたＲＩＰ１０８、画像処理部１０９、印刷エンジンＩ／Ｆ１１０へアクセスすることができる。さらに、後述する印刷ジョブ制御部２０３、ＰＤＬ解析部２０５、印刷制御部２０９等のソフトウェアは、ＣＰＵ１０１上で実行し、処理中の一時的なデータはＲＡＭ１０２に保持される。また、ＣＰＵ１０１は、インタフェース１２１を介してフィニッシング装置１４０も制御する。
【００２４】
ＵｓｅｒＩ／Ｆ１０３は、操作部１１１に接続されており、操作部１１１の信号を各モジュールへ通知する。ＮｅｔｗｏｒｋＩ／Ｆ１０４は、ネットワーク経由で印刷ホストＰＣ６０１からＰＤＬデータを受信し、ＨＤＤ１０６へ格納する。ＨＤＤ１０６は、ネットワーク経由で受信したＰＤＬデータの一時的な格納やＲＩＰ１０８、画像処理部１０９のデータスワップ領域として各モジュールからアクセスされる。
【００２５】
ＩｍａｇｅＢｕｓＩ／Ｆ１０７は、印刷装置６０２のＳｙｓｔｅｍＢｕｓ１２０、ＩｍａｇｅＢｕｓ１３０を取り持つ。また、ＩｍａｇｅＢｕｓＩ／Ｆ１０７は、制御系ソフトウェアが動作するＳｙｓｔｅｍＢｕｓ１２０側とＩｍａｇｅＢｕｓ１３０上で動作するページ画像処理に関するモジュールの通信を取り持つ。ＩｍａｇｅＢｕｓ１３０に接続されたＲＩＰ１０８（Ｒａｓｔｅｒ  Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｏｒ）は、ページ記述言語（ＰＤＬ）コードをイメージファイルへ展開する。画像処理部１０９は、ＲＩＰ１０８が生成したイメージファイルに対して印刷エンジン１１２に適した解像度変換処理や補正処理を行う。印刷エンジンＩ／Ｆ１１０は、印刷制御部２０９が印刷エンジンＩ／Ｆ２１０を介して、印刷エンジン１１２を制御するための通信Ｉ／Ｆである。
【００２６】
（ソフトウェア構成（図２（ｂ））
図２（ｂ）は、印刷装置６０２におけるソフトウェアの構成を模式的に示す図である。図２（ｂ）に示されるＮｅｔｗｏｒｋ制御部２０２、印刷ジョブ制御部２０３、ページセットフィニッシング制御部２０４は、ＣＰＵ１０１が、ＲＯＭ１０５に記憶されたプログラムを読み出して実行することによって実現される。また、ＰＤＬ（ＰＳ）解析部２０５、ページセット検出部２０６、データ描画部２０８、印刷制御部２０９も同様に、ＣＰＵ１０１が、ＲＯＭ１０５に記憶されたプログラムを読み出して実行することによって実現される。
【００２７】
ＮｅｔｗｏｒｋＩ／Ｆ２０１は、ＴＣＰ／ＩＰのソケットＩ／ＦをＮｅｔｗｏｒｋ制御部２０２に提供する。印刷ホストＰＣ６０１側の大量のページのＰＤＬデータを生成するアプリケーションは、ＲＡＷ／ＬＰＲのいずれかのデータ送信プロトコルでＰＳフォーマットデータを送信する。ＬＰＲは、Ｌｉｎｅ  ＰＲｉｎｔｅｒ  ｄａｅｍｏｎ  ｐｒｏｔｏｃｏｌの略である。
【００２８】
印刷装置６０２は、Ｎｅｔｗｏｒｋ制御部２０２がＲＡＷ／ＬＰＲの通信プロトコルに対応し、ＰＳデータで構成される印刷ジョブを受信し、ＨＤＤ１０６に逐次、ストリームデータとして書き込みを行う。印刷ジョブ制御部２０３は、Ｎｅｔｗｏｒｋ制御部２０２の印刷ジョブの受信開始を認識して内部で印刷ジョブに対する印刷ジョブ処理を開始する。詳細な印刷ジョブ処理シーケンスは図３で後述する。印刷ジョブ制御部２０３は、ＰＤＬ解析部２０５を起動する。この結果、ＰＤＬ解析部２０５はＨＤＤ１０６に蓄積されたＰＳデータの読出し、並びに解析処理を実行する。
【００２９】
具体的に、ＰＤＬ解析部２０５は、ＨＤＤ１０６から読み出したＰＳデータを展開する。ページセット検出部２０６は、ＰＳの描画情報内に埋め込まれた拡張コマンドを検出し、レコード単位の給紙・排紙先指定やフィニッシング指示として認識する。これらのページセット情報は印刷ジョブ制御部２０３のページセットフィニッシング制御部２０４に通知される。通知される情報は、レコード束の開始するページＩＤや、レコード毎のステープル処理、パンチ処理等、各種フィニッシング条件の指示である。
【００３０】
データ描画部２０８は、ＲＩＰ１０８、画像処理部１０９を呼び出して、ＰＳデータを印刷エンジン１１２に最適化した画像ファイルへ変換にした後、ＨＤＤ１０６へページメモリ２０７を介してスプールする。ＨＤＤ１０６上の最適化画像ファイルは、印刷制御部２０９が逐次、印刷エンジンＩ／Ｆ２１０を介して印刷エンジン１１２へ転送する。このような印刷装置６０２は、印刷ホストＰＣ６０１から受信した大量のレコードデータに従った印刷を実行し、フィニッシング装置１４０にフィニッシング処理を実行させる。
【００３１】
ここで、大量のレコードデータに対して、レコード単位でフィニッシング処理を実現するためには、レコードの区切り情報の管理が必要となる。この区切りの検出及びレコード単位でのページ管理によって発生するオーバーヘッドについて次に説明する。
【００３２】
［レコード情報の管理状況の変化（図３）］
図３は、印刷装置６０２が、ホストＰＣ６０１からＰＳデータ（図５参照）を受信し、受信したＰＳデータを解析する場合におけるレコード情報の変化を示している。ＣＰＵ１０１は、このレコード情報を、ＨＤＤ１０６内で管理する。
【００３３】
通常、印刷ジョブ階層の次にページ階層があり、ジョブとページで親子関係を持つ（Ｓ８０１）。そして、ジョブの中にページセットが含まれない場合、ＣＰＵ１０１は、ジョブのページのデータを展開した後、展開されたデータに従った印刷を印刷エンジン１１２に実行させる。一方、ページセットを含む印刷データを解析する場合、ＣＰＵ１０１は、ジョブとページの間にページセットを示す情報を設定し、ページセット単位でページを管理するための中間階層を生成する。そして、全てのページセットとページの展開が完了した後、当該ページのデータに従った印刷を印刷エンジン１１２に実行させる。
【００３４】
ただ、印刷ジョブ処理の開始時点では、印刷装置６０２のＣＰＵ２０１は、受信したジョブに含まれる印刷データがページセットを含むデータであるか否かの判断がつかない。なぜならば、本実施形態では、ＰｏｓｔＳｃｒｉｐｔのデータの汎用性を維持するために、レコードの区切りを示す情報を各ページのデータの中に埋め込んでいるからである。仮に、各ページのデータ以外の欄にレコードの区切りを示す情報を埋め込むと、表示用のアプリケーションで画像データのプレビュー表示ができなくなる等、汎用性が低下してしまう。このようにページのデータの中に埋め込まれた情報は、ＣＰＵ１０１によってそのページのデータが解析されてはじめて検出される。つまり、ＣＰＵ２０１は、受信したジョブで印刷すべき印刷データが、複数のページセットを含み、それぞれのページセットごとに異なる後処理を指定可能な所定の印刷データであるか否かを、印刷データの解析前に判断することができない。
このため、Ｓ８００、Ｓ８０１では「ページセット無し」を前提としてＰＤＬデータを内部に保持する。
【００３５】
ＣＰＵ１０１は、先頭ページの前にあるページセット情報を検出した場合、ＨＤＤ１０６に記憶された内部構造を一度キャンセルし（Ｓ８０２）、ジョブ→ページセット１→ページ１の形に再構成する（Ｓ８０３）。この後、ＣＰＵ１０１は、ページセット１の下にページ２以降が続く前提でＳ８０７までＰＤＬ（ＰＳ）解析部２０５にＰＳページ展開処理を先行させる。
【００３６】
そして、Ｓ８０７でページ１１の展開処理途中に、ＣＰＵ１０１は、ページ１１のデータの途中に埋め込まれたページセットの情報を検出し、ページ１１がページセット１ではなく、ページセット２に属することを検出する。そのため、ＣＰＵ１０１は、先行して準備していたページセット１とページ１１との関係をキャンセルし（Ｓ８０８）、ページセット２とページ１１の関係を構築する（Ｓ８０９）。
【００３７】
仮に、ジョブを受信した時点でジョブ全体のページ数と各ページセットのページ範囲を確定できれば、このようなキャンセル処理を行うことなく処理を進めることができる。しかしながら、ジョブを受信した後、ジョブの解析が終わるまで、印刷ジョブ全体のページ数と各ページセットのページ範囲を確定することができない。ここで、印刷ジョブのページ数が多い場合に、ジョブの解析が終わるまで、印刷を開始しないようにすると、印刷開始のタイミングが遅くなってしまう。また、印刷ジョブが数千・数万ページに及び、各ページセットのページ数も異なるようなケースでは、ＨＤＤ１０６内の印刷用のスプール領域に蓄えきれなくなってしまう。
【００３８】
このように、ページセットを有する印刷ジョブのハンドリング時には、ページを解析するまで、ページセットの区切れ目がわからない。また、１つ前のページでページセットの範囲を確定し、新たなページセットを生成するために、解析中のページの情報をキャンセルし、再度そのページを解析し直す必要があり、処理のオーバーヘッドが発生する。このページセット構造を管理するためのタイムラグが、画像データの生成の遅延につながってしまい、画像データ生成処理が印刷処理に追いつかなくなってしまう。また、画像データを生成する処理が遅れてしまった結果、画像を転写する画像転写体に画像を載せられず、シートの搬送は停止し、定着器をシートが通過しないために熱がこもってしまう。一度、熱がこもることによる急激な温度上昇が発生すると安定した品質の印刷を維持することができなくなる。そこで、本実施形態では、印刷装置が受信した印刷データが、ページセットごとに異なる処理を指定可能な印刷データである場合には、解析済みのページが所定の数以上になるまで印刷を開始せず、所定の数以上になったことを条件に印刷を開始する。それによって、印刷を開始した後に、画像データの生成時間の遅延による印刷動作の停止を防ぐ。その処理について以下に説明する。
【００３９】
［印刷装置の全体的な処理手順（図４）］
図４は、印刷装置における処理を示すシーケンス図である。
【００４０】
このページセット検出シーケンスは、Ｎｅｔｗｏｒｋ制御部２０２、印刷ジョブ制御部２０３、ＰＤＬ解析部２０５、印刷制御部２０９によって行われる。
【００４１】
まず、印刷装置６０２のＮｅｔｗｏｒｋ制御部２０２は、ホストＰＣ６０１から送信されたＰｏｓｔＳｃｒｉｐｔ形式のレコードデータで構成される印刷ジョブデータを受信する。Ｎｅｔｗｏｒｋ制御部２０２は、受信した印刷ジョブデータをＨＤＤ１０６へ逐次、書き込みを行い、印刷ジョブの受信を印刷ジョブ制御部２０３に通知する（Ｓ３０１）。
【００４２】
印刷ジョブ制御部２０３は、この通知によりＰＳデータの受信開始を検出し、印刷ジョブの処理を開始する。具体的には、印刷ジョブ制御部２０３の内部でジョブ管理のためのインスタンスを生成する。そして、印刷ジョブ制御部２０３は、その下位にページセット管理のためのインスタンスを生成し、関連付けを行うと共にＰＤＬ解析部２０５に対して、ＰＳファイルの展開を指示する（Ｓ３０２）。
【００４３】
Ｓ３０３〜Ｓ３１４では、印刷ジョブ制御部２０３からの指示に基づき、ＰＳデータの展開処理が実行される。まず、１ページ分のＰＳデータをページセット判定用にページセット検出部２０６に転送する（Ｓ３０３）。そして、ページセット検出部２０６は、該当ページデータの中にレコードの切れ目である、ページセットの開始通知（ページセットの先頭であることを示す情報）とページセット単位のフィニッシング指定に関する情報が含まれるか否かの検索を行う（Ｓ３０４）。
【００４４】
そして、ページセット検出部２０６からＰＤＬ解析部２０５へその判定結果が通知され（Ｓ３０５）、また、ＰＤＬ解析部２０５から印刷ジョブ制御部２０３へその判定結果が通知される（Ｓ３０６）。Ｓ３０５でＰＤＬ解析部２０５がページセットの検出通知を受信しなかった場合には、ページセットが含まれない通常の印刷ジョブであるため、ＰＤＬ解析部２０５は、印刷ジョブ制御部２０３にページ処理の開始を通知する（Ｓ３１２）。その場合、印刷ジョブ制御部２０３は、データ描画部２０８にページの展開を開始させる。そして、印刷制御部２０９は、１ページ目の展開が終わったことを条件に印刷を開始する。その後、データ描画部２０８は、ページの展開処理を進め、展開が終わったページから順に印刷制御部２０９が印刷するよう制御する。
【００４５】
一方、Ｓ３０６で印刷ジョブ制御部２０３がページセットの検出通知を受信した場合には、Ｓ３０７〜Ｓ３１１までのページセット検出時の処理が行われる。ページセット検出部２０６の判定により、ＰＳデータ内のレコードの区切り位置を検出すると、印刷ジョブ制御部２０３からページセットフィニッシング制御部２０４に、新たなページセット情報の通知が行われる（Ｓ３０７）。
【００４６】
新たなページセット情報の通知を受けたページセットフィニッシング制御部２０４は、前ページまでを１レコードとして認識し、ページセット単位のページ束情報と対応するページセットフィニッシング指示を確定させる（Ｓ３０８）。さらに、ページセットフィニッシング制御部２０４は、ＨＤＤにスプールされている解析済みのページ数の情報から印刷処理を開始するか否かを判定する。ページセットフィニッシング制御部２０４は、印刷開始後の印刷速度を判定する。なお、Ｓ３０８の詳細な処理手順については図５を用いて後述する。
【００４７】
そして、Ｓ３０８で、ページセットフィニッシング制御部２０４が、印刷処理を開始するよう判定した場合、ページセット情報と印刷開始を示す判定結果を印刷制御部２０９に対して通知する（Ｓ３０９）。一方、ページセットフィニッシング部２０４が、印刷処理を開始しないよう判定した場合、印刷開始を示さない判定結果を印刷制御部２０９に対して通知する。印刷制御部２０９は、印刷開始を示す判定結果の通知を受信した場合に、レコード単位での印刷と、レコードごとに指定された後処理とを開始する。一方、印刷開始を示さない判定結果の通知を受信した場合、印刷制御部２０９は、印刷を開始せずに、印刷待ちリストに、解析されたデータをページセット単位で追加する。
【００４８】
次に、ページセットフィニッシング制御部２０４は、Ｓ３０４で検出した次のページセットを処理するためのインスタンスを生成し、Ｓ３０４で検出したページセット条件をＨＤＤ１０６に保存する（Ｓ３１１）。
【００４９】
ＰＤＬ解析部２０５は、ＰＳデータを展開してページ解釈処理を開始する旨の通知を印刷ジョブ制御部２０３に行い（Ｓ３１２）、そのページ解釈処理を行う（Ｓ３１３）。そして、ＰＤＬ解析部２０５は、当該処理が終了した際に終了した旨の通知を印刷ジョブ制御部２０３に行う（Ｓ３１４）。
【００５０】
印刷ジョブ制御部２０３は、ＰＤＬ解析部２０５からページ解釈処理の終了通知を受信すると、データ描画部２０８に画像を印刷エンジン１１２に最適化したデータへ変換するためのレンダリング処理の開始を指示する（Ｓ３１５）。この指示を受けたデータ描画部２０８は、レンダリング処理を行って（Ｓ３１６）、当該処理が終了した際に終了した旨の通知を印刷ジョブ制御部２０３に行う（Ｓ３１７）。
【００５１】
ページセットフィニッシング制御部２０４は、印刷ジョブ制御部２０３からページ生成終了通知を受ける度に（Ｓ３１８）、展開されたページを新たなページセットの子ページとして関連付けする（Ｓ３１９）。
【００５２】
印刷制御部２０９は、Ｓ３０９でページセットフィニッシング制御部２０４から印刷開始を示す判定結果の通知を受信すると、先頭ページから印刷を開始し、フィニッシングまでの一連の処理を行う（Ｓ３１０）。印刷制御部２０９は、各ページ及び各ページセットの印刷が終了する度に、その旨をページセットフィニッシング制御部２０４に通知する（Ｓ３２０、Ｓ３２３）。この通知はＳ３０８での判定処理に用いられるため、必須の処理である。この通知を受信したページセットフィニッシング制御部２０４は、同様の通知を印刷ジョブ制御部２０３に行う（Ｓ３２１、Ｓ３２４）。
【００５３】
［印刷開始条件判定処理（Ｓ３０８）の詳細な処理手順（図５）］
図５に示すフローチャートは、ページセットフィニッシング制御部２０４によって実行されるものである。つまり、ＣＰＵ１０１が、ＲＯＭ１０５に記憶されたプログラムを読み出して実行することによって実現されるものである。
まず、ページセットフィニッシング制御部２０４は、ＰＤＬ解析部２０５から新たなページセットの検出通知（Ｓ３０７）を受信すると、次のページセットの開始指示を認識する（Ｓ４０１）。つまり、ページセットフィニッシング制御部２０４は、前のページまでに前のページセットが終了していることを認識する。よって、前のページまでで１つのページセットが確定するため、ページセットフィニッシング制御部２０４は、ページセット内の情報（例えば、ページ数等）を算出・確定させる（Ｓ４０２）。
【００５４】
そして、ページセットフィニッシング制御部２０４は、最終確定したページ数を元にＰＳデータ内で指定されていたページセットフィニッシング指示が実行可能であるか否かを判定する（Ｓ４０３）。例えば、ページセットフィニッシングの指示としてパンチ処理が指定されていた場合に、ページ数がパンチ可能枚数を超えているような場合は、パンチ処理の指示を無効にする（印刷装置内部の保護処理）。
【００５５】
次に、ページセットフィニッシング制御部２０４は、印刷装置内部でスプールしている印刷待ちのページセット数をカウントする（Ｓ４０４）。この時、前回のカウント結果は別途メモリ上に保持し、Ｓ４０６での判定処理の際に、ページセットフィニッシング制御部２０４がそのカウント結果を識別できるように記憶しておく。そして、Ｓ４０４と同様に、ページセットフィニッシング制御部２０４は、印刷制御部２０９への印刷指示を行わずに（サスペンド）、印刷装置内部でスプールしている印刷待ちのページ数をカウントする（Ｓ４０５）。カウントされたページ数は、ＨＤＤ１０６内に保持される。
【００５６】
そして、ページセットフィニッシング制御部２０４は、印刷待ちのページの数（解析済みのページの数）が所定の閾値を超えているか否かを判定する（Ｓ４０６）。所定の閾値として、例えば、印刷エンジン１１２が有する搬送経路に印刷時に滞留可能な滞留枚数（用紙搬送パスの最大同時搬送枚数）を用いることができる。なお、閾値の設定に依存するが、Ｓ４０６を、印刷待ちのページの数（解析済みのページの数）が所定の数以上である、所定の数未満であるかを判定しても構わない。印刷装置６０２は、滞留可能枚数分の用紙を所定の間隔をあけて給紙し、それらの用紙を印刷装置６０２が有する搬送経路に滞留させつつ印刷する滞留印刷を実行することができる。滞留枚数は、用紙のサイズによらずに印刷装置の設定として所定の値（例えば、３枚や４枚）が用いられるものとする。
【００５７】
ページセットが含まれない印刷データを印刷する場合には、１ページのデータが生成される処理より、印刷のために１枚の用紙を給紙する速度のほうが遅いため、１ページ目のデータの生成が終わり次第印刷を開始してもよい。しかしながら、例えば、印刷データに複数のページセットが含まれる場合のように、ページデータの生成処理に時間がかかってしまう場合には、画像データの準備が間に合わないことがある。そのため、印刷装置は印刷を中断しなければならず印刷エンジンが空転してしまう。このとき、滞留可能枚数分の用紙に記録するページの画像データがスプールされていれば、印刷装置６０２は滞留印刷を続けることができる。そこで、本実施形態に係る印刷装置６０２のページセットフィニッシング制御部２０４は、Ｓ４０６で、印刷待ちのページの数（解析済みのページの数）が所定の閾値（例えば、滞留枚数）を超えているか否かを判定する。このような判定によって、印刷時に、ページセットの切替えに時間を要して、印刷動作が停止してしまうことを抑制することができる。
【００５８】
印刷待ちのページ数が所定の閾値を超えていれば、印刷エンジン１１２からの次のページの読み出しにおいて遅延は発生しないため、ページセットフィニッシング制御部２０４は、Ｓ４０９に処理を進め、印刷を開始可能であると判定する。その後、図４のシーケンスに処理を戻し、ページセットフィニッシング制御部２０４は、判定結果を印刷制御部２０９に通知し、印刷制御部２０９に印刷を開始させる。一方、印刷待ちページ数が所定の閾値を超えていない場合には、印刷エンジン１１２側の速度に画像データの生成が間に合わず、印刷が途切れてしまう可能性があるため、印刷を開始可能であるあると判定せずにＳ４０１へ戻る。つまり、この場合、ページセットフィニッシング制御部２０４は、印刷が途切れてしまう可能性があるため、印刷の開始を制限している。その後、所定の閾値を超えるページ数のデータが印刷待ちとなった場合に、ページセットフィニッシング制御部２０４は、印刷制御部２０９に印刷開始を指示し、印刷制御部２０９は、印刷を実行する。
【００５９】
このように、受信した印刷データが、複数のページセットからなり、各ページセットごとに異なる種類の処理が指定された印刷データである場合と、ページセットを含まない印刷データとで印刷の開始タイミングを変える。具体的に説明すると、ページセットを含まない印刷データに従った印刷を実行する場合、図５に示す処理を実行せずに、１ページのデータの解析が終わったタイミングで印刷を開始可能であると判定し、展開が終わったページから順に印刷を開始する。一方、複数のページセットからなり、各ページセットごとに異なる種類の処理が指定された印刷データに従った印刷を実行する場合、解析済みのページの数が所定の閾値以上になるまで印刷を開始せず、所定の閾値以上になったことを条件に印刷を開始する。それによって、画像データの生成処理が遅くなることが原因で、印刷動作が停止してしまうことを防ぐことができる。
［ＰＳトランザクションデータのフィニッシング指示と出力例（図６、図７）］
図６において、５３０は印刷装置の排紙トレイへの積載状況、５４０はジョブ内に含まれる各ページセットの排紙トレイ上の詳細を示している。図７では、５３０、５４０の出力結果を実現するためのＰＳコマンドを５３０、５４０の個々の結果と関連付けて説明する。
【００６０】
ページセット５１０では、２箇所綴じを示すステープル処理５１１と印刷メディアを普通紙→厚紙→普通紙へと切り替え５１２を行う。ページセット５２０では、ステープル処理の左上１箇所綴じ５２１、用紙左側へのパンチ処理５２２、印刷メディアを普通紙→厚紙→コート紙への切り替え５２３、排紙トレイへ排出するときのシフト処理５２４を行う。
【００６１】
ＰＳデータ中におけるページセットの開始は、図７の５５１、５５２のタグにより検出される。ＰＤＬ解析部２０５は、図７で示すＰＳストリームデータを受信し、逐次メモリにストアしながら解析を行う。まず、ページセットの開始を示すタグ５５１を検出し、そのページセットの処理に必要なフィニッシング指示であるステープル処理５１１及びメディア切り替え５１２をページセットフィニッシング制御部２０４へ通知する。メディア切り替え５１２に関しては、各ページ処理のタイミングで随時切り替えを通知し、Ｐａｇｅ１０まで処理を継続する。
【００６２】
Ｐａｇｅ１１の処理に入ろうとしたところで、次のページセットの開始を示す区切り情報５１２を検出し、同様にページセットフィニッシング制御部２０４へページセット開始を通知する。この次のページセットの開始通知を受けて、ページセットフィニッシング制御部２０４は、Ｓ３０８〜Ｓ３１１の前ページセットの処理情報の確定と印刷制御部２０９の動作内容を決める判定処理を行う。５５１、５５２のページセット開始情報がＳ３０５、Ｓ３０６、Ｓ３０７のページセット情報のイベント・トリガである。Ｓ３０８において確定するページセット処理情報とは、ページセット５１０の場合はステープル処理５１１とメディア切り替え５１２の２点、ページセット５２０の場合はステープル処理５２１、パンチ処理５２２、メディア切り替え５２３、シフト処理５２４の４点である。なお、これらの他にフィニッシング処理として、折り処理や挿入処理を指定することも可能である。
【００６３】
以上述べた通り、本実施形態によれば、データ受信後、印刷開始までに印刷エンジンに転送するページ画像バッファに格納される画像を適切なページ分確保することができる。
【００６４】
なお、印刷を開始した後、ページセットフィニッシング制御部２０４は、印刷待ちのページ数の変化を、所定時間ごとに確認してもよい。印刷待ちのページ数が減少している場合、ページセットフィニッシング制御部２０４は、印刷制御部２０９に、エンジン印刷速度を遅くするよう指示してもよい。それによって、ページ画像バッファに格納される画像が不足する場合には事前に印刷速度の増減の調整を行うことによって、搬送されるシートが途切れることを防ぐことができる。
【００６５】
なお、上述した実施形態のＳ４０６において、ページセットフィニッシング制御部２０４が、印刷待ちのページ数が所定の閾値を超えているか否かを判定する例を説明した。このＳ４０６において、ページセットフィニッシング制御部２０４は、印刷待ちのページセット数（束数）が所定の閾値以上であるか否かを判定するようにしてもよい。なぜならば、印刷待ちのページセットの数が所定の閾値を超えている場合、例え１つのページセットに１ページしか含まれていなくても、閾値で示される枚数分だけの印刷すべきデータがＨＤＤ１０６に保存されていることが保障される。このような判定によって、印刷時に、ページセットの切替えに時間を要して、印刷動作が停止してしまうことを抑制することができる。
【００６６】
本実施形態におけるフローチャートに示す機能は、ネットワーク又は各種記憶媒体を介して取得したソフトウェア（プログラム）をコンピュータパソコン等の処理装置（ＣＰＵ、プロセッサ）にて実行することでも実現できる。
【図１】
0005839845.tif 000002
【図２】
0005839845.tif 000003
【図３】
0005839845.tif 000004
【図４】
0005839845.tif 000005
【図５】
0005839845.tif 000006
【図６】
0005839845.tif 000007
【図７】
0005839845.tif 000008