(57)【特許請求の範囲】
【請求項１】
それぞれが、印刷データにおける互いに異なるページを解析して、解析エラーが生じたらエラーを通知する複数の解析手段と、
前記複数の解析手段のうちで解析エラーが生じた解析手段からエラー通知を受け取り、解析エラーが生じていない他の解析手段に印刷データの解析のキャンセルを通知する制御手段と、
を有し、
前記制御手段は、前記解析エラーが生じたページより前の全てのページの印刷処理が完了したことに基づいて、前記キャンセルを前記他の解析手段に通知する印刷装置。
【請求項２】
印刷データを記述するページ記述言語の種類を判定する判定手段を更に有し、
前記制御手段は、
前記判定手段により前記印刷データを記述するページ記述言語が第１のページ記述言語であると判定された場合に、前記解析エラーが生じたページより前の全てのページの印刷処理が完了したことに基づいて、前記キャンセルを前記他の解析手段に通知し、
前記判定手段により前記印刷データを記述するページ記述言語が前記第１のページ記述言語とは異なる第２のページ記述言語であると判定された場合に、前記解析エラーが生じたページより前の全てのページの印刷処理が完了したかどうかにかかわらず、前記キャンセルを前記他の解析手段に通知する請求項１記載の印刷装置。
【請求項３】
それぞれが印刷データにおける互いに異なるページを解析する複数の解析手段と、
前記複数の解析手段による前記印刷データの解析結果に基づいて、前記印刷データの各ページの印刷を行う印刷手段と、
を有し、
前記印刷手段は、前記複数の解析手段のうちの解析手段において、印刷データの解析エラーが生じた場合に、前記印刷データの少なくとも１ページ分の印刷をキャンセルするが、前記解析エラーが生じたページより前の全てのページの印刷はキャンセルしない制御を行う印刷装置。
【請求項４】
前記印刷データを記述するページ記述言語の種類を判定する判定手段を更に有し、
前記印刷手段は、
前記判定手段により前記印刷データを記述するページ記述言語が第１のページ記述言語であると判定された場合に、前記解析エラーが生じたページより前の全てのページの印刷はキャンセルしないが、
前記判定手段により前記印刷データを記述するページ記述言語が第２のページ記述言語であると判定された場合に、前記解析エラーが生じたページより前の全てのページの印刷が完了したかどうかにかかわらず、前記印刷データのページの印刷をキャンセルする制御を行う請求項３記載の印刷装置。
【請求項５】
前記第１のページ記述言語はポストスクリプトである請求項２又は４記載の印刷装置。
【請求項６】
印刷装置が実行する情報処理方法であって、
複数の解析手段のそれぞれが、印刷データにおける互いに異なるページを解析して、解析エラーが生じたらエラーを通知する解析ステップと、
制御手段が、前記複数の解析手段のうちで解析エラーが生じた解析手段からエラー通知を受け取り、解析エラーが生じていない他の解析手段に印刷データの解析のキャンセルを通知する制御ステップと、
を含み、
前記制御ステップでは、前記解析エラーが生じたページより前の全てのページの印刷処理が完了したことに基づいて、前記キャンセルを前記他の解析手段に通知する情報処理方法。
【請求項７】
判定手段が、印刷データを記述するページ記述言語の種類を判定する判定ステップを更に含み、
前記制御ステップでは、
前記判定ステップで前記印刷データを記述するページ記述言語が第１のページ記述言語であると判定された場合に、前記解析エラーが生じたページより前の全てのページの印刷処理が完了したことに基づいて、前記キャンセルを前記他の解析手段に通知し、
前記判定ステップで前記印刷データを記述するページ記述言語が前記第１のページ記述言語とは異なる第２のページ記述言語であると判定された場合に、前記解析エラーが生じたページより前の全てのページの印刷処理が完了したかどうかにかかわらず、前記キャンセルを前記他の解析手段に通知する請求項６記載の情報処理方法。
【請求項８】
印刷装置が実行する情報処理方法であって、
複数の解析手段のそれぞれが、印刷データにおける互いに異なるページを解析する解析ステップと、
印刷手段が、前記複数の解析手段による前記印刷データの解析結果に基づいて、前記印刷データの各ページの印刷を行う印刷ステップと、
を含み、
前記印刷ステップでは、前記複数の解析手段のうちの解析手段において、印刷データの解析エラーが生じた場合に、前記印刷データの少なくとも１ページ分の印刷をキャンセルするが、前記解析エラーが生じたページより前の全てのページの印刷はキャンセルしない制御を行う情報処理方法。
【請求項９】
判定手段が、前記印刷データを記述するページ記述言語の種類を判定する判定ステップを更に含み、
前記印刷ステップでは、
前記判定ステップで前記印刷データを記述するページ記述言語が第１のページ記述言語であると判定された場合に、前記解析エラーが生じたページより前の全てのページの印刷はキャンセルしないが、
前記判定ステップで前記印刷データを記述するページ記述言語が第２のページ記述言語であると判定された場合に、前記解析エラーが生じたページより前の全てのページの印刷が完了したかどうかにかかわらず、前記印刷データのページの印刷をキャンセルする制御を行う請求項８記載の情報処理方法。
【請求項１０】
前記第１のページ記述言語はポストスクリプトである請求項７又は９記載の情報処理方法。
【請求項１１】
請求項１乃至５の何れか１項記載の印刷装置の各手段として、コンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷データの解析処理に対して複数の解析手段を適用した場合でも、エラーに応じて適切な処理を行うことができる印刷装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
印刷装置は、ＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）と呼ばれる印刷データを受信し、受信した印刷データを解析し、文字や図形を描画したビットマップ画像を生成して印刷処理を行う。印刷データに不明なデータ等があると、解析処理でエラーが発生し、それ以降の印刷処理はキャンセルされる。
従来、印刷データの解析処理はシングルコア（１つのコアを持つプロセッサ）のＣＰＵで実行されていた。このとき、印刷データはページ順に解析され、エラーが発生した時点で処理が中断されるため、処理が終了したページまで排紙（印刷結果が出力）される。
近年はマルチコア（複数のコアを持つプロセッサ）のＣＰＵが登場し、様々な分野で処理能力向上のためにマルチコアＣＰＵが採用され、印刷データの解析処理についてもマルチコアを適用する提案がなされている（特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−１８３７５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
印刷データの解析処理に対してマルチコアを適用する場合、複数のコアで複数のページが同時に解析され、エラーが発生した時点で処理を中断すると、従来は出力されていたページが出力されない場合があり、エラーに応じて適切な処理が必要となっている。
【課題を解決するための手段】
【０００５】
そこで、本発明の印刷装置は、それぞれが、印刷データにおける互いに異なるページを解析して、解析エラーが生じたらエラーを通知する複数の解析手段と、前記複数の解析手段のうちで解析エラーが生じた解析手段からエラー通知を受け取り、解析エラーが生じていない他の解析手段に印刷データの解析のキャンセルを通知する制御手段と、を有し、前記制御手段は、前記解析エラーが生じたページより前の全てのページの印刷処理が完了したことに基づいて、前記キャンセルを前記他の解析手段に通知する。
【発明の効果】
【０００６】
本発明によれば、印刷データの解析処理に対して複数の解析手段を適用した場合でも、エラーに応じて適切な処理を行うことができる。
【図面の簡単な説明】
【０００７】
【図１】印刷装置のハードウェア構成の一例を示す図である。
【図２】印刷装置の印刷データの解析を行うためのソフトウェア構成の一例を示す図である。
【図３】解析部の情報処理を示すフローチャートである。
【図４】通知管理部の情報処理を示すフローチャートである。
【図５】解析処理をシングルコアで実施する印刷装置のソフトウェア構成を示す図である。
【図６】制御部の情報処理を示すフローチャートである。
【図７】２ページの印刷データを印刷する処理の一例を示す図である。
【図８】従来における２ページの印刷データを印刷する処理の一例を示す図である。
【図９】通知管理部の情報処理を示すフローチャートである。
【図１０】制御部の情報処理を示すフローチャートである。
【図１１】印刷装置の印刷データの解析を行うためのソフトウェア構成を示す図である。
【図１２】通知管理部の情報処理を示すフローチャートである。
【図１３】制御部の情報処理を示すフローチャートである。
【発明を実施するための形態】
【０００８】
以下、本発明の実施形態について図面に基づいて説明する。
【０００９】
＜実施形態１＞
図１は、印刷装置のハードウェア構成の一例を示す図である。印刷装置は、画像処理装置の一例である。
印刷装置では、システムバス１０１を介して、マルチコアＣＰＵ１０２、ＲＡＭ１０３、ＲＯＭ１０４、エンジン１０５、入力部１０６、表示部１０７、外部メモリ１０８、通信ＩＦ１０９が接続されている。システムバス１０１に接続される各部は、システムバス１０１を介して互いにデータのやりとりを行うことができるように構成されている。
ＲＯＭ１０４は、不揮発性のメモリであり、マルチコアＣＰＵ１０２が動作するための各種プログラム等が、それぞれ所定の領域に格納されている。
ＲＡＭ１０３は、揮発性のメモリであり、マルチコアＣＰＵ１０２の主メモリ、ワークエリア等の一時記憶領域として用いられる。
マルチコアＣＰＵ１０２は、マルチコアのプロセッサであり、例えばＲＯＭ１０４に格納されるプログラムに従い、ＲＡＭ１０３をワークメモリとして用いて、印刷装置の各部を制御する。プログラムは、ＲＯＭ１０４に格納されるのに限られず、ハードディスク等の外部メモリ１０８に予め記憶されていてもよい。
【００１０】
入力部１０６は、ユーザ操作を受け付け、操作に応じた制御信号を生成し、マルチコアＣＰＵ１０２に供給する。マルチコアＣＰＵ１０２は、入力部１０６から供給される制御信号に基づき、プログラムに従って印刷装置の各部を制御する。
表示部１０７は、マルチコアＣＰＵ１０２が生成する表示制御信号に基づき、ＧＵＩ画面をユーザに表示する。
外部メモリ１０８には、ハードディスクやメモリーカード等の外部メモリが装着可能である。装着された外部メモリ１０８に対するデータの読み出しや書き込みは、マルチコアＣＰＵ１０２の制御に基づいて行われる。通信ＩＦ１０９は、マルチコアＣＰＵ１０２の制御に基づき、有線、無線等の各種ネットワークに対する通信を行う。
エンジン１０５は、マルチコアＣＰＵ１０２がプログラムに従い生成したビットマップ画像を印刷媒体に出力する。
マルチコアＣＰＵ１０２がＲＯＭ１０４又は外部メモリ１０８に記憶されているプログラムに基づき処理を実行することによって、後述する印刷装置のソフトウェア構成及びフローチャートの処理が実現される。
【００１１】
図２は、印刷装置の印刷データの解析を行うためのソフトウェア構成の一例を示す図である。
制御部２０１は、印刷データを受信して印刷するまでの印刷処理全体を制御する。
通知管理部２０２は、制御部２０１と解析部２０３ａ、２０３ｂの間に入り、両者の連携を行う。通知管理部２０２は、解析部２０３ａ、又は２０３ｂで発生するエラーを検知し、制御部２０１にエラー通知を行う。また、通知管理部２０２は、エラー通知を受けた制御部２０１が行うキャンセル通知を、解析部２０３ａ、２０３ｂの両方に通知する。
解析部２０３ａ、２０３ｂは、印刷データの解析を行う。本実施形態においては、これらのソフトウェアモジュールがマルチコアＣＰＵで実行され、印刷データの奇数ページを解析部２０３ａが解析し、印刷データの偶数ページを解析部２０３ｂが解析するものとする。解析部２０３ａ、２０３ｂは、キャンセル通知を受けると、解析処理を中止する。
【００１２】
このようなソフトウェア構成において、印刷データの解析中にエラーが発生した場合のキャンセル処理について、図３、４、５のフローチャートを使って説明する。
図３は、解析部（２０３ａ又は２０３ｂ）の情報処理を示すフローチャートである。
ステップＳ３０１において、解析部は、通知管理部２０２から印刷データ解析開始通知があるか確認する。印刷データを受信する制御部２０１が、通知管理部２０２に印刷データ解析開始を通知し、その通知を受けた通知管理部２０２が解析部に印刷データ解析開始を通知する。解析部は、印刷データ解析開始通知がある場合は、ステップＳ３０２の処理へ進み、ない場合は、ステップＳ３０１の処理を繰り返す。
ステップＳ３０２において、解析部は、印刷データの総ページ数を通知管理部２０２に通知する。
ステップＳ３０３において、解析部は、印刷データの解析処理を開始する。
ステップＳ３０４において、解析部は、印刷データの解析処理中にエラーが発生したか確認する。解析部は、エラーが発生した場合は、ステップＳ３０５の処理へ進み、発生してない場合は、ステップＳ３０６の処理へ進む。
ステップＳ３０５において、解析部は、エラー発生を通知管理部２０２に通知する。
【００１３】
ステップＳ３０６において、解析部は、通知管理部２０２からキャンセル通知があるか確認する。解析部は、キャンセル通知がある場合は、ステップＳ３０７の処理へ進み、ない場合は、ステップＳ３０８へ進む。
ステップＳ３０７において、解析部は、解析処理を中止する。
ステップＳ３０８において、解析部は、１ページ分の解析処理が終了したか確認する。解析部は、１ページ分の解析処理が終了した場合は、ステップＳ３０９の処理へ進み、終了してない場合は、ステップＳ３０３の処理へ戻り、解析処理を継続する。
ステップＳ３０９において、解析部は、１ページ分の解析処理終了を通知管理部２０２に通知する。
ステップＳ３１０において、解析部は、印刷データ全ての解析処理が終了したか確認する。解析部は、終了した場合は、ステップＳ３１１の処理へ進み、終了してない場合は、ステップＳ３０３の処理へ戻り、解析処理を継続する。
ステップＳ３１１において、解析部は、印刷データの解析終了を通知管理部２０２に通知する。
【００１４】
図４は、通知管理部２０２の情報処理を示すフローチャートである。
ステップＳ４０１において、通知管理部２０２は、制御部２０１からの通知があるか確認する。通知管理部２０２は、キャンセルの通知がある場合は、ステップＳ４０２、印刷が済んだページを示す印刷済ページの通知がある場合は、ステップＳ４０３、印刷データ解析開始の通知がある場合は、ステップＳ４０４の処理へ進む。また、通知管理部２０２は、制御部２０１からの通知がない場合は、ステップＳ４０５の処理へ進む。
ステップＳ４０２において、通知管理部２０２は、解析処理のキャンセルを解析部２０３ａ、２０３ｂに通知する。
ステップＳ４０３において、通知管理部２０２は、自身で記憶する印刷済ページの値を更新する。
ステップＳ４０４において、通知管理部２０２は、印刷データ解析開始を解析部２０３ａ、２０３ｂに通知する。
【００１５】
ステップＳ４０５において、通知管理部２０２は、解析部２０３ａ、２０３ｂからの通知があるか確認する。通知管理部２０２は、エラーの通知がある場合は、ステップＳ４１０、ページ解析終了の通知がある場合は、ステップＳ４０６、印刷データ解析終了の通知がある場合は、ステップＳ４０８、総ページ数の通知がある場合は、ステップＳ４０９の処理へ進む。通知管理部２０２は、解析部２０３ａ、２０３ｂからの通知がない場合は、ステップＳ４０１の処理へ戻る。
ステップＳ４０６において、通知管理部２０２は、ページ解析終了を制御部２０１に通知する。
ステップＳ４０７において、通知管理部２０２は、自身で記憶する解析済ページの値を更新する。
ステップＳ４０８において、通知管理部２０２は、印刷データ解析終了を制御部２０１に通知する。
ステップＳ４０９において、通知管理部２０２は、印刷データの総ページ数の値を記憶する。
【００１６】
ステップＳ４１０において、通知管理部２０２は、最終ページ後（最終ページを解析後ｔ）のエラー通知か確認する。エラー通知があったタイミングで、通知管理部２０２が記憶する解析済ページと総ページ数との値が等しい場合、通知管理部２０２は、最終ページ後のエラー通知と判断する。通知管理部２０２は、最終ページ後のエラー通知の場合は、ステップＳ４１１の処理へ進み、そうでない場合は、ステップＳ４１２の処理へ進む。
ステップ４１１において、通知管理部２０２は、最終ページが印刷された後、エラーを制御部にエラーを通知する。なお、通知管理部２０２は、記憶する印刷済ページと総ページ数との値が等しい場合、最終ページまで印刷されたと判断する。
ステップＳ４１２において、通知管理部２０２は、自身で記憶する従来モードのＯＮ（オン）／ＯＦＦ（オフ）を確認する。
従来モードがＯＮの場合、印刷データの解析処理をシングルコアで実施する従来の印刷装置の印刷と同じ結果の印刷が求められる。図５は、解析処理をシングルコアで実施する印刷装置のソフトウェア構成の一例を示す図である。
従来モードの値（例えば、ＯＮは１、ＯＦＦはゼロ等）は、ユーザによって予め指定されるものとする。通知管理部２０２は、従来モードの値がＯＮの場合は、ステップＳ４１３の処理へ進み、そうでない場合は、ステップＳ４１４の処理へ進む。なお、マルチコアＣＰＵ１０２は、入力部１０６等を介したユーザ操作に応じて、従来モードのＯＮ、ＯＦＦを切り替えるようにしてもよい。以下に示す実施形態においても同様である。
ステップＳ４１３において、通知管理部２０２は、自身で記憶する印刷済ページの値を参照し、エラー発生ページの１ページ前の印刷を確認したら、エラーを制御部２０１に通知する。
【００１７】
ステップＳ４１４において、通知管理部２０２は、解析処理を行っている印刷データの種別を確認する。通知管理部２０２は、印刷データが予め設定された形式のデータ（例えば、ＰＳ（ＰｏｓｔＳｃｒｉｐｔ（登録商標）））の場合は、ステップＳ４１５の処理へ進み、そうでない場合は、ステップＳ４１６の処理へ進む。
ステップＳ４１５において、通知管理部２０２は、自身で記憶する印刷済ページの値を参照し、エラー発生ページの１ページ前の印刷を確認したら、エラーを制御部２０１に通知する。印刷データがＰＳの場合、その仕様でエラーが発生するまでのページは全て印刷する必要があり、このような対応が必要となる。
ステップＳ４１６において、通知管理部２０２は、エラーを制御部２０１に通知する。
【００１８】
図６は、制御部２０１の情報処理を示すフローチャートである。
ステップＳ５０１において、制御部２０１は、印刷データを受信したか確認する。制御部２０１は、印刷データを受信した場合は、ステップＳ５０２の処理へ進み、受信しない場合は、ステップＳ５０１の処理を繰り返す。
ステップＳ５０２において、制御部２０１は、印刷データ解析開始を通知管理部２０２に通知する。
ステップＳ５０３において、制御部２０１は、通知管理部２０２からエラー通知があるか確認する。制御部２０１は、エラー通知がある場合は、ステップＳ５０４の処理へ進み、ない場合は、ステップＳ５０５の処理へ進む。
ステップＳ５０４において、制御部２０１は、キャンセルを通知管理部２０２に通知する。
【００１９】
ステップＳ５０５において、制御部２０１は、通知管理部２０２からページ解析終了通知があるか確認する。制御部２０１は、ページ解析終了通知がある場合は、ステップＳ５０６の処理へ進み、ない場合は、ステップＳ５０８の処理へ進む。
ステップＳ５０６において、制御部２０１は、ページ解析終了通知があったページの印刷処理を実行する。
ステップＳ５０７において、制御部２０１は、印刷したページを印刷済ページとして通知管理部２０２に通知する。
ステップＳ５０８において、制御部２０１は、通知管理部２０２から印刷データ解析終了通知があるか確認する。制御部２０１は、印刷データ解析終了通知がある場合は、ステップＳ５０１の処理へ進み、ない場合は、ステップＳ５０３の処理へ進む。
【００２０】
図７は、本実施形態における２ページの印刷データを印刷する処理の一例を示す図である。２ページ目にエラーがある場合、通常は図７の（Ａ）のようにエラーはすぐに制御部２０１に通知され（Ｓ４１６）、ページ１、２の解析処理がキャンセルされる。その結果、従来（図８）より早いキャンセル処理が実行され、ページ１を無駄に出力することも抑制できる。
従来モードがＯＮの場合や印刷データがＰＳの場合は、図７の（Ｂ）のようにページ１の印刷後にエラーが制御部２０１に通知され（Ｓ４１３、Ｓ４１５）、その結果、ページ１は出力され、ページ２は出力されない。これは従来（図８）の印刷装置と同じ出力結果となる。
また、印刷データの最終ページ後にエラーがある場合は、図７の（Ｃ）のようにキャンセル処理は最終ページ印刷後に行われ（Ｓ４１１）、ユーザはページ１、２の印刷結果を得ることができる。
このように本実施形態によれば、マルチコアを適用した印刷データの解析処理において、エラーが発生した状況に応じて、最適なキャンセルを行うことができる。
【００２１】
＜実施形態２＞
解析部２０３ａ、２０３ｂの処理については、実施形態１の図３と同様のため、説明を省略する。
図９は、通知管理部２０２の情報処理を示すフローチャートである。
ステップＳ７０１において、通知管理部２０２は、制御部２０１からの通知があるか確認する。通知管理部２０２は、キャンセルの通知がある場合は、ステップＳ７０２の処理を進み、印刷データ解析開始の通知がある場合は、ステップＳ７０３の処理へ進む。また、通知管理部２０２は、制御部２０１からの通知がない場合は、ステップＳ７０４の処理へ進む。
ステップＳ７０２において、通知管理部２０２は、解析処理のキャンセルを解析部２０３ａ、２０３ｂに通知する。
ステップＳ７０３において、通知管理部２０２は、印刷データ解析開始を解析部２０３ａ、２０３ｂに通知する。なお、本実施形態において、印刷データの奇数ページを解析部２０３ａが解析し、印刷データの偶数ページを解析部２０３ｂが解析するものとする。
【００２２】
ステップＳ７０４において、通知管理部２０２は、解析部２０３ａ、２０３ｂからの通知があるか確認する。通知管理部２０２は、エラーの通知がある場合は、ステップＳ７０５、ページ解析終了の通知がある場合は、ステップＳ７０６、印刷データ解析終了の通知がある場合は、ステップＳ７０７、総ページ数の通知がある場合は、ステップＳ７０８の処理へ進む。通知管理部２０２は、解析部２０３ａ、２０３ｂからの通知がない場合はステップＳ７０１の処理へ戻る。
ステップＳ７０５において、通知管理部２０２は、エラーを制御部２０１に通知する。
ステップ７０６において、通知管理部２０２は、ページ解析終了を制御部２０１に通知する。
ステップＳ７０７において、通知管理部２０２は、印刷データ解析終了を制御部２０１に通知する。
ステップＳ７０８において、通知管理部２０２は、総ページ数の値を制御部２０１へ通知する。
【００２３】
図１０は、制御部２０１の情報処理を示すフローチャートである。
ステップＳ８０１において、制御部２０１は、印刷データを受信したか確認する。制御部２０１は、印刷データを受信した場合は、ステップＳ８０２の処理へ進み、受信しない場合は、ステップＳ８０１の処理を繰り返す。
ステップＳ８０２において、制御部２０１は、印刷データ解析開始を通知管理部２０２に通知する。
ステップＳ８０３において、制御部２０１は、通知管理部２０２から総ページ数の通知があるか確認する。制御部２０１は、前記通知がある場合は、ステップＳ８０４の処理へ進み、ない場合は、ステップＳ８０５の処理へ進む。
ステップＳ８０４において、制御部２０１は、総ページ数の値を記憶する。
ステップＳ８０５において、制御部２０１は、通知管理部２０２からエラー通知があるか確認する。制御部２０１は、エラー通知がある場合は、ステップＳ８０６の処理へ進み、ない場合は、ステップＳ８１３の処理へ進む。
【００２４】
ステップＳ８０６において、制御部２０１は、最終ページ後のエラー通知か確認する。制御部２０１は、最終ページ後のエラー通知の場合は、ステップＳ８０７の処理へ進み、そうでない場合は、ステップＳ８０８の処理へ進む。
ステップ８０７において、制御部２０１は、最終ページの印刷を確認後、キャンセルを通知管理部に通知する。
ステップＳ８０８において、制御部２０１は、自身で記憶する従来モードのＯＮ／ＯＦＦを確認する。従来モードの値は、ユーザによって予め指定されるものとする。制御部２０１は、従来モードの値がＯＮの場合は、従来のシングルコアと同じ印刷処理を行うことを示し、ステップ８０９の処理へ進み、そうでない場合はステップＳ８１０の処理へ進む。
ステップＳ８０９において、制御部２０１は、自身で記憶する印刷済ページの値を参照し、エラー発生ページの１ページ前の印刷を確認後、キャンセルを通知管理部２０２に通知する。
ステップＳ８１０において、制御部２０１は、解析処理を行っている印刷データの種別を確認する。制御部２０１は、印刷データがＰＳの場合は、ステップＳ８１１の処理へ進み、そうでない場合は、ステップＳ８１２の処理へ進む。
ステップＳ８１１において、制御部２０１は、自身で記憶する印刷済ページの値を参照し、エラー発生ページの１ページ前の印刷を確認後、キャンセルを通知管理部２０２に通知する。
ステップＳ８１２において、制御部２０１は、間隔を空けずに直ぐに、キャンセルを通知管理部２０２に通知する。
【００２５】
ステップＳ８１３において、制御部２０１は、通知管理部２０２からページ解析終了通知があるか確認する。制御部２０１は、通知がある場合は、ステップＳ８１４の処理へ進み、通知がない場合はステップＳ８１６の処理へ進む。
ステップＳ８１４において、制御部２０１は、ページ解析終了通知があったページの印刷処理を実行する。
ステップＳ８１５において、制御部２０１は、自身で記憶する印刷済ページの値を更新する。
ステップＳ８１６において、制御部２０１は、通知管理部２０２から印刷データ解析終了通知があるか確認する。制御部２０１は、通知がある場合は、ステップＳ８０１の処理へ進み、ない場合は、ステップＳ８０３の処理へ進む。
【００２６】
本実施形態でも実施形態１と同様、マルチコアを適用した印刷データの解析処理において、エラーが発生した状況に応じて、最適なキャンセルを行うことが可能になる。
更に本実施形態では、通知管理部２０２の処理を、制御部２０１と解析部２０３ａ、２０３ｂとの間に発生するエラーとキャンセルの通知だけにして、実施形態１の通知管理部２０２が行っていた処理を制御部２０１に移している。そのため、実施形態１の制御部２０１は解析部が複数あることを知らないが、本実施形態の制御部２０１は解析部が複数あることを知っており、マルチコアに特化した制御を制御部２０１に導入することが容易となる。
【００２７】
＜実施形態３＞
図１１は、印刷装置の印刷データの解析を行うためのソフトウェア構成の一例を示す図である。
制御部９０１は、印刷データを受信して印刷するまでの印刷処理全体を制御する。
通知管理部９０２ａは、制御部９０１と解析部９０３ａとの間に入り、両者の連携を行う。通知管理部９０２ａは、解析部９０３ａで発生するエラーを検知し、制御部９０１にエラー通知を行う。また、通知管理部９０２ａは、エラー通知を受けた制御部９０１が行うキャンセル通知を、解析部９０３ａに通知する。制御部９０１と通知管理部９０２ｂ、解析部９０３ｂとの関係は、制御部９０１と通知管理部９０２ａ、解析部９０３ａとの関係と同様である。
解析部９０３ａ、９０３ｂは、印刷データの解析を行う。解析部９０３ａ、９０３ｂは、キャンセル通知を受けると、解析処理を中止する。
このようなソフトウェア構成において、印刷データの解析中にエラーが発生した場合のキャンセル処理について、図１２、図１３のフローチャートを使って説明する。なお、解析部９０３ａ、９０３ｂの処理については、実施形態１の図３と同様のため、ここでは省略する。
【００２８】
図１２は、通知管理部９０２ａの情報処理を示すフローチャートである。ここでは通知管理部９０２ａの処理を説明するが、通知管理部９０２ｂも同様の処理を行う。
ステップＳ１００１において、通知管理部９０２ａは、制御部９０１からの通知があるか確認する。通知管理部９０２ａは、通知がある場合は、ステップＳ１００２の処理へ進み、通知がない場合は、ステップＳ１００３の処理へ進む。
ステップＳ１００２において、通知管理部９０２ａは、制御部９０１からの通知をそのまま解析部９０３ａに通知する。
ステップＳ１００３において、通知管理部９０２ａは、解析部９０３ａからの通知があるか確認する。通知管理部９０２ａは、通知がある場合は、ステップＳ１００４の処理へ進み、通知がない場合は、ステップＳ１００１の処理へ進む。
ステップＳ１００４において、通知管理部９０２ａは、解析部９０３ａからの通知をそのまま制御部９０１に通知する。
【００２９】
図１３は、制御部９０１の情報処理を示すフローチャートである。
ステップＳ１１０１において、制御部９０１は、印刷データを受信したか確認する。制御部９０１は、印刷データを受信した場合は、ステップＳ１１０２の処理へ進み、受信しない場合は、ステップＳ１１０１の処理を繰り返す。
ステップＳ１１０２において、制御部９０１は、印刷データ解析開始を通知管理部９０２ａ、９０２ｂに通知する。図１２のステップＳ１００２で説明した通り、通知を受けた通知管理部９０２ａ、９０２ｂは、それぞれ解析部９０３ａ、９０３ｂに印刷データ解析開始を通知する。なお、本実施形態において、印刷データの奇数ページを解析部９０３ａが解析し、印刷データの偶数ページを解析部９０３ｂが解析するものとする。
ステップＳ１１０３において、制御部９０１は、通知管理部９０２ａ、９０２ｂから総ページ数の通知があるか確認する。制御部９０１は、総ページ数の通知がある場合はステップＳ１１０４の処理へ進み、ない場合はステップＳ１１０５の処理へ進む。
ステップＳ１１０４において、制御部９０１は、総ページ数の値を記憶する。
【００３０】
ステップＳ１１０５において、制御部９０１は、通知管理部９０２ａ、９０２ｂからエラー通知があるか確認する。制御部９０１は、エラー通知がある場合は、ステップＳ１１０６の処理へ進み、ない場合は、ステップＳ１１０７の処理へ進む。
ステップＳ１１０６において、制御部９０１は、エラー通知があった通知管理部９０２に対してキャンセルを通知する。
ステップＳ１１０７において、制御部９０１は、通知管理部９０２ａ、９０２ｂからページ解析終了通知があるか確認する。制御部９０１は、ページ解析終了通知がある場合は、ステップＳ１１０８の処理へ進み、通知がない場合は、ステップＳ１１１８の処理へ進む。
ステップＳ１１０８において、制御部９０１は、自身が記憶する解析済ページの値を更新する。
ステップＳ１１０９において、制御部９０１は、解析部９０３ａ、９０３ｂでエラーが発生したか確認する。制御部９０１は、エラーが発生した場合は、ステップＳ１１１０の処理へ進み、発生してない場合は、ステップＳ１１１７の処理へ進む。
【００３１】
ステップＳ１１１０において、制御部９０１は、最終ページ後のエラーかどうか確認する。制御部９０１は、最終ページ後のエラーの場合、ステップＳ１１１１の処理へ進み、そうでない場合は、ステップＳ１１１２の処理に進む。
ステップＳ１１１１において、制御部９０１は、最終ページまで印刷処理を行う。
ステップＳ１１１２において、制御部９０１は、自身で記憶する従来モードのＯＮ／ＯＦＦを確認する。本実施形態において、従来モードの値は、ユーザによって予め指定されるものとする。制御部９０１は、従来モードの値がＯＮの場合は、従来のシングルコアと同じ印刷処理を行うことを示し、ステップＳ１１１３の処理へ進み、そうでない場合は、ステップＳ１１１４の処理へ進む。
ステップＳ１１１３において、制御部９０１は、自身で記憶する印刷済ページの値を参照し、エラー発生ページの１ページ前の印刷処理まで実行する。
ステップＳ１１１４において、制御部９０１は、解析処理を行っている印刷データの種別を確認する。制御部９０１は、印刷データがＰＳの場合は、ステップＳ１１１５の処理へ進み、そうでない場合は、ステップＳ１１１６の処理へ進む。
ステップＳ１１１５において、制御部９０１は、自身で記憶する印刷済ページの値を参照し、エラー発生ページの１ページ前の印刷処理まで実行する。
ステップＳ１１１６において、制御部９０１は、エラー発生ページの印刷処理を実行しない。
【００３２】
ステップＳ１１１７において、制御部９０１は、解析が終了したページの印刷処理を実行する。
ステップＳ１１１８において、制御部９０１は、通知管理部９０２ａ、９０２ｂから印刷データ解析終了通知があるか確認する。制御部９０１は、通知がある場合は、ステップＳ１１０１の処理へ戻って次の印刷データの受信を待ち、通知がない場合は、ステップＳ１１０３の処理へ戻って印刷データの解析を続ける。
【００３３】
本実施形態でも実施形態１、２と同様、マルチコアを適用した印刷データの解析処理において、エラーが発生した状況に応じて、最適なキャンセルを行うことが可能になる。
本実施形態では、通知管理部、解析部の両方がマルチコアに対応しているため、マルチコアＣＰＵのコア数に応じて解析部の数を増やすような拡張がより容易となる。
【００３４】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００３５】
以上、上述した各実施形態によれば、印刷データの解析処理に対して複数の解析手段を適用した場合でも、エラーに応じて適切な処理を行うことができる。
【符号の説明】
【００３６】
１０２  マルチコアＣＰＵ、１０３  ＲＡＭ、１０４  ＲＯＭ、１０５  エンジン
【図１】
0005968373.tif 000002
【図２】
0005968373.tif 000003
【図３】
0005968373.tif 000004
【図４】
0005968373.tif 000005
【図５】
0005968373.tif 000006
【図６】
0005968373.tif 000007
【図７】
0005968373.tif 000008
【図８】
0005968373.tif 000009
【図９】
0005968373.tif 000010
【図１０】
0005968373.tif 000011
【図１１】
0005968373.tif 000012
【図１２】
0005968373.tif 000013
【図１３】
0005968373.tif 000014