(57)【要約】【課題】印刷処理中の不具合の発生原因を容易に検出することができる手段を提供する。【解決手段】印刷データのページ画像のハッシュ値を算出する算出部と、正常ハッシュ値を格納する記憶部と、算出部が算出したハッシュ値と記憶部に格納されている正常ハッシュ値とを比較する比較部と、を備え、比較部による比較結果が不一致の場合に、ページ画像が異常であることを報知する。【選択図】        図１
2014037068.tif 000002
【特許請求の範囲】
【請求項１】
印刷データのページ画像のハッシュ値を算出する算出部と、
正常ハッシュ値を格納する記憶部と、
前記算出部が算出したハッシュ値と前記記憶部に格納されている正常ハッシュ値とを比較する比較部と、を備え、
前記比較部による比較結果が不一致の場合に、前記ページ画像が異常であることを報知することを特徴とする画像処理装置。
【請求項２】
請求項１に記載の画像処理装置において、
前記印刷データを受信する受信部と、
前記受信した印刷データを格納する印刷データ格納部と、を設け、
前記比較部による比較結果が一致の場合に、前記印刷データ格納部に格納された印刷データを削除することを特徴とする画像処理装置。
【請求項３】
請求項１または請求項２に記載の画像処理装置において、
前記算出部は、前記印刷データ全体のジョブハッシュ値と、前記ページ画像のコマンドハッシュ値と、そのページ画像の画像ハッシュ値とを算出することを特徴とする画像処理装置。
【請求項４】
請求項３に記載の画像処理装置において、
前記コマンドハッシュ値と前記画像ハッシュ値とを、前記ページ画像の一部の領域についてのみ算出することを特徴とする画像処理装置。
【請求項５】
請求項３または請求項４に記載の画像処理装置において、
前記コマンドハッシュ値と前記画像ハッシュ値とを、複数の部分に分けて算出することを特徴とする画像処理装置。
【請求項６】
請求項１ないし請求項５のいずれか一項に記載の画像処理装置において、
前記正常ハッシュ値を登録する登録モードと、前記正常ハッシュ値と前記算出されたハッシュ値とを比較してページ画像の異常を検出する検証モードとを有することを特徴とする画像処理装置。
【請求項７】
請求項１ないし請求項６のいずれか一項に記載の画像処理装置において、
前記印刷データは、ジョブ名を含むことを特徴とする画像処理装置。
【請求項８】
請求項１ないし請求項７のいずれか一項に記載の画像処理装置において、
前記ページ画像を用紙に印刷する印刷部を設け、
前記印刷部は、前記比較部による比較結果が一致の場合に、印刷を行わないことを特徴とする画像処理装置。
【請求項９】
請求項１ないし請求項８のいずれか一項に記載の画像処理装置において、
前記印刷データに基づいてページ画像を生成するページ画像生成部と、
前記ページ画像生成部は、前記ページ画像のハッシュ値を算出するための画像を生成するときに、前記ページ画像の調整パラメータを固定値として前記画像を生成することを特徴とする画像処理装置。
【請求項１０】
請求項２に記載の画像処理装置において、
前記受信部は、前記ページ画像の異常を検出したときに、以後のデータ受信を中断することを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷処理中の不具合の発生原因を追究する機能を備えた画像処理装置に関する。
【背景技術】
【０００２】
従来のプリンタは、印刷処理中に、装置内部で復旧できない重障害エラーが発生した場合に、表示部に不具合コードと、装置の内部処理に関するアドレス情報とを表示して、不具合原因の解析を容易にしている（例えば、特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−２２３９２７号公報（主に、段落００５８、００５９、第１３図）
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、印刷不具合の発生原因は、プリンタ内部の問題だけでなく、パーソナルコンピュータ等の上位装置側の問題、プリンタドライバ側の問題、ネットワーク接続やＵＳＢケーブル接続等データ通信経路上の問題等、多岐に渡っている。
特に、印刷不具合現象がユーザ先で数日間に１回のみ発生するような場合は、印刷システム全体のどこに問題があるかを究明するために、多くの時間と多くの用紙を費やさなければならないという問題がある。
【０００５】
また、印刷データの一部が欠落する場合やデータに誤りがあった場合、白紙ページが大量に排出されたり、先頭の１行のみに文字化けした印字が行われた用紙が大量に印刷されたりするような現象になり、大量の用紙が無駄になってしまうという問題がある。
本発明は、上記の問題点を解決するためになされたもので、印刷処理中の不具合の発生原因を容易に検出することができる手段を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、上記課題を解決するために、印刷データのページ画像のハッシュ値を算出する算出部と、正常ハッシュ値を格納する記憶部と、前記算出部が算出したハッシュ値と前記記憶部に格納されている正常ハッシュ値とを比較する比較部と、を備え、前記比較部による比較結果が不一致の場合に、前記ページ画像が異常であることを報知することを特徴とする。
【発明の効果】
【０００７】
これにより、本発明は、印刷処理中の不具合発生原因を容易に検出することができ、その後の原因調査における不具合解析時間を更に短縮することができるという効果が得られる。
【図面の簡単な説明】
【０００８】
【図１】実施例１の画像処理システムの構成を示すブロック図
【図２】実施例１のプリンタの装置構成を示す説明図
【図３】実施例１のプリンタの回路構成を示す説明図
【図４】実施例１の表示操作部の操作パネルを示す説明図
【図５】実施例１の印刷データの構成例を示す説明図
【図６】実施例１の動作モードを示す説明図
【図７】実施例１の解析対象領域と解析除外領域を示す説明図
【図８】実施例１の正常データ登録テーブルの構成例を示す説明図
【図９】実施例１の比較結果格納テーブルの構成例を示す説明図
【図１０】実施例１の通常モードによる印刷処理を示すフローチャート
【図１１】実施例１の制限モードによる不具合検出処理を示すフローチャート
【図１２】実施例１の正常データ登録モードによる正常データ登録処理を示すフローチャート
【図１３】実施例１の検証モードによる不具合検出処理を示すフローチャート
【図１４】実施例１の制限モードにおける画面の表示例を示す説明図
【図１５】実施例１の正常データ登録モードにおける画面の表示例を示す説明図
【図１６】実施例１の検証モードにおける画面の表示例を示す説明図
【図１７】実施例２の画像処理システムの構成を示すブロック図
【図１８】実施例２の印刷データの構成例を示す説明図
【図１９】実施例２の正常データ登録テーブルの構成例を示す説明図
【図２０】実施例２の比較結果格納テーブルの構成例を示す説明図
【図２１】実施例２の検証モードにおける画面の表示例を示す説明図
【発明を実施するための形態】
【０００９】
以下に、図面を参照して本発明による画像処理装置の実施例について説明する。
【実施例１】
【００１０】
以下に、図１ないし図１６を用いて本実施例の画像処理システムおよびプリンタについて説明する。
本実施例の画像処理システムは、図１に示すように、パーソナルコンピュータ等の上位装置１と、画像処理装置としてのプリンタ２とをネットワーク３を介して接続して構成される。
本実施例のプリンタ２は、図２に示すように、印刷部４、その上部中央に操作パネル５、印刷部４の下部に給紙トレイ６を配置して構成され、その回路構成は、図３に示すように、バス７に対して、ＣＰＵ８、ＲＡＭ９、ハードディスク１０、ネットワークインタフェース１１、操作パネル５等が接続されており、それぞれＣＰＵ８からの制御信号やデータの送受が可能なように構成されている。
【００１１】
また、操作パネル５は、図４に示すように、表示手段としての液晶パネル１２、入力手段としての操作ボタン１３等で構成され、操作ボタン１３は、メニュー選択用の上ボタン１３ａ、下ボタン１３ｂ、決定ボタン１３ｃ、戻るボタン１３ｄ、オンライン・オフラインを切替えるためのオンラインボタン１３ｅ、印刷ジョブのキャンセルを指示するキャンセルボタン１３ｆ等で構成されている。
本実施例の上位装置１は、図１に示すように、制御部１５、記憶部１６に設けられた中間データ格納部１７、プリンタドライバ１８で構成され、プリンタドライバ１８は、印刷ジョブ名指定部１９、動作モード指定部２０、解析範囲指定部２１、印刷データ送信部２２等で構成されている。
【００１２】
上位装置１の制御部１５は、記憶部１６に格納されているワードプロセッサ用アプリケーションプログラムや、図形やスキャン画像、写真等を処理するためのアプリケーションプログラム等により、上位装置１内の各部を制御して上位装置１による処理動作を実行する機能を有している。
上位装置１の記憶部１６は、制御部１５が実行する前記のプログラムやそれに用いる各種のデータおよび制御部１５による処理結果等を格納する機能を有している。
中間データ格納部１７は、制御部１５のアプリケーションプログラムによって生成された描画情報をプリンタドライバ１８に受渡すための中間データを格納する機能を有している。
【００１３】
プリンタドライバ１８は、中間データ格納部１７に格納された中間データを読出して、印刷するための印刷データを生成するデータ処理部であって、印刷データを生成する機能を有している。
本実施例の印刷データは、図５に示すように、最初の部分は、印刷動作全体に関する制御情報が「＠ＰＪＬ」から始まる形式で指示され、その後に「＠ＰＪＬ  ＥＮＴＥＲＬＡＮＧＵＡＧＥ＝」に続くＰＤＬ名（本実施例では、ＰＤＬ−Ａ）に従った描画データ（一連の描画コマンド群のことをいう。）が、指定されたＰＤＬ（Ｐｒｉｎｔｅｒ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）の形式に従って記述される。
【００１４】
ＰＤＬ形式の描画データは、一般的に、フォントデータの転送コマンド、文字描画のコマンド、イメージデータを転送し描画するためのコマンド、線分や四角形等図形を描画するためのコマンド、背景の色やパターンを描画するコマンドの組合せによって、用紙全体に描画する画像をプリンタ側に指示できるように構成され、例えば、図５に示す、構成要素３８、３９、４０、４１がそれぞれ対応する。
本実施例では、これらのＰＤＬコマンド体系を拡張して、ハッシュ値を算出するための対象領域を指定するコマンドをいくつか追加定義する。
【００１５】
印刷ジョブ名指定部１９は、印刷ジョブのファイル名（ジョブ名という。）を指定するコマンドを、印刷データ中に付加する機能を有しており、具体的には、図５の印刷データの構成要素３１のように、「＠ＰＪＬ  ＪＯＢＦＩＬＥＮＡＭＥ＝」に続けて、ジョブ名（本実施例では「ｔｅｓｔ．ｄｏｃ」）を指定するコマンドを付加する。なお、ジョブ名は、上位装置１が実行するアプリケーションプログラム上のファイル名を利用してもよい。
【００１６】
動作モード指定部２０は、本実施例による処理動作をプリンタ２に行わせるか否かを指定するコマンドを、印刷データに付加する機能を有しており、具体的には、図５の印刷データの構成要素３２のように、「＠ＰＪＬ  ＨＡＳＨＭＯＤＥ＝」に続けて「ＨＡＳＨＣＨＣＫ」のように指定するコマンドを付加する。
本実施例の動作モードは、図６に示すように、通常モード、制限モード、正常データ登録モード、検証モードの４種類のモードが設定され、それぞれ「ＮＯＭＡＬ」、「ＬＩＭＩＴ」、「ＨＡＳＨＲＥＧＩＳＴ」、「ＨＡＳＨＣＨＥＣＫ」からなるコマンド指定文言で定義する。
【００１７】
通常モードは、後述するハッシュ値算出や印刷制限を行わないモードであって、通常の印刷を行いうためのモードである。
制限モードは、ハッシュ値算出は行わないが、印刷データのコマンド解析で異常を検出したときに処理を中断するモードである。
正常データ登録モードは、原因究明の調査対象とする印刷データの正常ハッシュ値（正常にプリンタ２が動作したときに算出したハッシュ値をいう。）をプリンタ２の内部に登録するモードである。
検証モードは、現在処理中のジョブの印刷データを基に算出したハッシュ値と正常ハッシュ値とを比較して、不一致ならその時点でプリンタ２の処理を中断するモードである。
【００１８】
本実施例における特徴的な処理動作は、正常データ登録モードおよび検証モードの処理動作であり、ハッシュ値は、プリンタ２の装置内における内部処理データに対して算出する。
また、本実施例におけるハッシュ値を算出する対象は、受信データである印刷データの全体と、印刷データ中の算出対象とする解析指定範囲のコマンドと、画像生成された後のページ画像中の特定の領域との３種類である。以下の説明においては、一つの印刷ジョブに対応する印刷データ（ジョブデータ）に対して算出したハッシュ値をジョブハッシュ値、原因究明の対象とする解析指定範囲のコマンドに対して算出したハッシュ値をコマンドハッシュ値、原因究明の対象とする解析指定範囲により画像生成された後のページ画像の全体または指定された領域に対して算出したハッシュ値を画像ハッシュ値という。
【００１９】
本実施例は、現在処理中のジョブに対して算出した各ハッシュ値のいずれかが、正常データ登録モードによって登録しておいた正常ハッシュ値と不一致になったときに、異常発生として検出するものであるため、ユーザの運用において、プリンタ２に送信される印刷データの内容は、特定の印刷内容に限るか、あるいは印刷ページ中の特定の領域のみ異なるような印刷内容である場合を想定しており、このようなユーザ環境は、例えば、同じ広告のページを一日に何千枚も印刷するような印刷システムや、領収書等の帳票印刷やダイレクトメールの宛名印字を含んだ印刷を大量の用紙に行うシステム等が考えられる。
【００２０】
本実施例の不具合発生プロセス検出のための機能は、主に前記のようなユーザ環境の印刷システムにおける運用において、数日間に１回のみ発生するような不具合の発生プロセスの検出を行うときに、特に有用なものであり、ユーザが用いている上位装置１側で、動作モードを通常モードや制限モードに切替えられるようにして、正常データ登録モードと検証モードによる不具合発生プロセスの調査と並行して、つまり動作モードを混在させてシステムの運用が可能なように構成している。
【００２１】
解析範囲指定部２１は、コマンドハッシュ値および画像ハッシュ値を算出する対象となる印刷データの範囲を指定するコマンドを印刷データに付加する機能を有しており、具体的には、図５の印刷データの構成要素３４、３５、３７、４３に示すようなコマンドを付加する。
【００２２】
本実施例の画像ハッシュ値算出の対象となる解析対象領域（図７にハッチングを付して示した領域）、および解析対象領域から除外する解析除外領域（図７に白抜きで示した領域）の指定は、図７に示すように、ユーザが、プリンタドライバ１８が表示するプレビュー画面から、解析対象領域（ｘ１，ｙ１）〜（ｘ２，ｙ２）と、解析除外領域（ｘ３，ｙ３）〜（ｘ４，ｙ４）とをマウスによるドラッグ入力で指定し、解析範囲指定部２１は、プレビュー画面によってユーザから受付けた矩形領域に基づいて、その矩形領域に対応する範囲指定コマンド（図５の構成要素３４と構成要素３５）を印刷データに付加する。なお、画像ハッシュ値算出の解析対象領域および解析除外領域は、複数指定できるように構成されている。また、画像ハッシュ値算出の解析対象領域および解析除外領域は、印刷データが複数ページを印刷するものである場合には、調査対象とする各ページ毎に指定することができる。
【００２３】
このような画像ハッシュ値算出の解析除外領域は、例えば帳票の印刷で金額や宛名、住所のみが異なるような印刷を大量に行う印刷システムの場合に、特に有用である。
構成要素３４は、「／ｉｍａｇｅｈａｓｈｃｈｅｃｋａｒｅａ」のキーワードに続くカンマで区切られた４つの数値によって、プリンタ２内で生成されるページ画像の解析対象領域の矩形領域の左上の座標（ｘ１，ｙ１）および、右下の座標（ｘ２，ｙ２）を順に指定したものであり、この指定は、画像ハッシュ値の算出のための解析対象領域として参照される。なお、本実施例の座標値の単位は、ＰＤＬによって定義される単位系を用いている。
【００２４】
構成要素３５は、「／ｉｍａｇｅｈａｓｈｅｘｃｌｕｓｉｏｎａｒｅａ」のキーワードに続くカンマに区切られた４つの数値によって、プリンタ２内で生成されるページ画像の解析除外領域の矩形領域の左上の（ｘ３，ｙ３）座標および、右下の（ｘ４，ｙ４）座標を順に指定するものであり、この指定は、画像ハッシュ値の算出の対象外とする解析除外領域として参照される。
本実施例のコマンドハッシュ値の算出対象とする描画データの解析指定範囲の指定は、図５に示す構成要素３７と構成要素４３によって行われる。
【００２５】
構成要素３７は、「／ｃｏｍｍａｎｄｈａｓｈｓｔａｒｔ」のキーワードによって、その後に続く描画データのコマンドおよび数値データの１バイトずつを、コマンドハッシュ値の解析指定範囲の開始位置として指定するものであり、本実施例では、図７に示した解析対象領域の先頭の描画コマンドの直前に挿入される。
構成要素４３は、「／ｃｏｍｍａｎｄｈａｓｈｅｎｄ」のキーワードによって、構成要素３７の直後から続いた描画データのコマンドおよび数値データの１バイトずつを、コマンドおよび画像ハッシュ値の解析指定範囲の終了位置として指定するものであり、本実施例では、図７に示した解析対象領域の末尾の描画コマンドの直後に挿入される。
【００２６】
なお、コマンドハッシュ値算出の解析指定範囲は、印刷データが複数ページを印刷するものである場合には、調査対象とする各ページ毎に指定することができる。
このように、本実施例の印刷不具合の原因究明（主に、検証モードの動作）においては、調査対象のページの同じ範囲で、コマンドハッシュ値と画像ハッシュ値とを算出するので、予め正常データ登録モードで登録した印刷ジョブ全体の正常ハッシュ値と、コマンド全体の正常ハッシュ値と、画像の正常ハッシュ値に対して、仮に、印刷ジョブ全体のハッシュ値が「一致」すると共に、コマンド全体のハッシュ値が「一致」し、画像ハッシュ値が「不一致」であった場合は、描画コマンドからディスプレイリスト生成のプロセスで不具合が発生した可能性が高くなり、詳細な原因究明の範囲を絞込むことが可能になる。詳細については後述する。
【００２７】
印刷データ送信部２２は、プリンタドライバ１８が生成した印刷データを、ネットワーク３を介してプリンタ２へ送信する機能を有している。
本実施例のプリンタ２は、図１に示すように、主制御部４５、記憶部４６、表示操作部４７、印刷データ受信部４８等で構成されている。
【００２８】
本実施例のプリンタ２の主制御部４５は、ＣＰＵ８によって形成され、記憶部４６に格納されているプログラム等により、プリンタ２内の各部を制御してプリンタ２による処理動作を実行する機能を有しており、ジョブ制御部４９、ＰＤＬデータ解析部５０、ページ画像生成部５１、ハッシュ値算出部５２、ハッシュ値比較部５３、印刷制御部５４等の各機能手段が形成されており、そのジョブ制御部４９には、動作モード検出部４９ａ、同一ジョブ検出部４９ｂが形成され、また、ＰＤＬデータ解析部５０には、解析範囲検出部５０ａが形成されている。
【００２９】
本実施例のプリンタ２の記憶部４６は、ＲＡＭ９、ハードディスク１０等からなり、主制御部４５が実行するプログラムやそれに用いる各種のデータおよび主制御部４５による処理結果等を格納する機能等を有しており、印刷データ格納部５５、動作モード格納部５６、正常データ格納部５７、比較結果格納部５８、ハッシュ用一時保存部５９が設けられている。
表示操作部４７は、操作パネル５を備えており、その液晶パネル１２にプリンタ２の内部動作の状況等を表示するための制御を行う機能、および各操作ボタン１３による指示情報を含む押下信号を主制御部４５へ出力する機能等を有している。
【００３０】
印刷データ受信部４８は、上位装置１から送信された印刷データを、ネットワーク３を介して受信する機能を有している。
ジョブ制御部４９は、上位装置１のユーザから指示された１回分の印刷指示を一つの印刷ジョブとして、１印刷ジョブ単位で印刷データを処理する機能、印刷データ中のヘッダ部分を解析し、印刷データ中に含まれる「＠ＰＪＬ」から始まる各構成要素のコマンドを認識する機能等を有し、ジョブ制御部４９に形成された動作モード検出部４９ａは、印刷データ中に付加されている動作モードの指定文言（図６参照）を検出する機能を有し、同一ジョブ検出部４９ｂは、印刷データ中に付加されている印刷ジョブのジョブ名を指定したコマンドを検出する機能を有している。
【００３１】
ＰＤＬデータ解析部５０は、図５に示す印刷データのうち、ＰＤＬによって定義されるコマンドからなるデータを解析する機能、その解析結果を、内部データ形式であるディスプレイリストとして生成し、それをページ画像生成部５１へ受渡す機能等を有している。
また、ＰＤＬデータ解析部５０は、ハッシュ値算出部５２にも接続しており、印刷データ中のハッシュ値を算出する領域について、その算出領域のデータをハッシュ値算出部５２に受渡す機能を有している。
なお、ＰＤＬデータ解析部５０が解析するコマンドは、具体的には、図５に示す印刷データの構成要素３４〜構成要素４４までの各コマンドである。
【００３２】
ＰＤＬデータ解析部５０に形成された解析範囲検出部５０ａは、印刷データ中に含まれている解析範囲指定コマンドを検出する、具体的には、図５に示す構成要素３４、３５、３７、４３の各行のようなＰＤＬコマンドを検出する機能、検出した範囲指定コマンドに基づいて、対応するディスプレイリストを生成する機能を有している、
なお、構成要素３４と構成要素３５に対応するディスプレイリストについては、範囲指定コマンドに付加されている座標情報を保持できるように構成され、また、ディスプレイリストのデータ順序は、コマンドで指定された描画順序に対応するように生成される。
【００３３】
ページ画像生成部５１は、ディスプレイリストを読込んで、ディスプレイリストによって順に指示される描画指示情報に基づいて、用紙１枚分のイメージデータからなるページ画像を生成する機能等を有している。
なお、動作モードが正常データ登録モードおよび検証モードの場合は、ページ画像生成部５１は、カラー調整等の動的に変化する調整パラメータを、予めハッシュ値算出用に設定された所定の固定値に設定し直して画像生成を行う。これは、画質調整等の変更可能なパラメータによって、画像を構成する画素値に変化が生じ、算出された画像ハッシユ値が変動することを防止するためである。
【００３４】
ハッシュ値算出部５２は、ジョブハッシュ値、コマンドハッシュ値および画像ハッシュ値を算出し生成する機能等を有している。
また、ハッシュ値算出部５２は、ジョブ制御部４９、ＰＤＬデータ解析部５０、ハッシュ用一時保存部５９と、それぞれ接続されており、算出対象となるデータを各部から受取れるように構成され、接続している各部からは、データ送信開始、データ送信終了、算出状態のリセット等の各指示が受取れるように構成される。
【００３５】
なお、本実施例のハッシュ値算出用のアルゴリズムとしては、データの改ざん検出用に一般に利用されているＭＤ５方式を用いている。
ハッシュ値比較部５３は、ハッシュ値算出部５２が算出したハッシュ値と、正常データ格納部５７に登録されている同一ジョブ名のハッシュ値とを比較する機能、その比較結果を、一致または不一致として比較結果格納部５８に格納する機能等を有している。
印刷制御部５４は、ページ画像生成部５１が生成したページ画像を、印刷部４を制御して、用紙に印刷する機能等を有している。
【００３６】
記憶部４６に設けられた印刷データ格納部５５は、印刷データを格納しておくためのメモリ領域であり、本実施例ではハードディスク１０によって構成している。
なお、本実施例の通常モードを除く他の３つの各動作モードの処理動作によって異常を検出したときの印刷データは、印刷データ格納部５５に格納されており、上位装置１およびプリンタ２のユーザは、不具合が生じたときに、上位装置１上で動作する専用ユーティリティを立上げて、その専用ユーティリティからプリンタ２ヘ当該印刷データの送信を指示する制御コマンドを送信すれば、不具合を生じさせた印刷データを印刷データ格納部５５から取得することができる。
【００３７】
動作モード格納部５６は、プリンタ２の現在の動作モードが図６に示す４つの動作モードのうちで、いずれの動作モードであるかを格納するためのメモリ領域であり、本実施例ではＲＡＭ９によって構成している。
なお、上記したプリンタ２の各部は、動作モード格納部５６に格納された動作モードの設定を適宜参照することができ、各部が図６に示した各動作モードに応じてその修理動作を行う。
【００３８】
正常データ格納部５７は、ハッシュ値算出部５２が算出したハッシュ値を、正常データとしてメモリ中に格納するメモリ領域であり、本実施例ではＲＡＭ９によって構成されている。具体的には、各印刷ジョブの正常データは、図８に示す正常データ登録テーブルのような表形式のデータ構造で登録され、その各１行に一つの印刷ジョブのジョブ名に対応する正常データのジョブハッシュ値、コマンドハッシュ値、画像ハッシュ値が登録され、複数の印刷ジョブおよび複数のページに対する正常データを登録することができる。
【００３９】
また、各行には、１ページ分の正常データが登録されるため、一つの印刷ジョブが複数ページに亘る印刷データの場合は、一つの印刷ジョブに対して全ページ番号分の正常データが登録される。このとき、同一の印刷ジョブに対しては、そのジョブ名とジョブハッシュ値の正常データは同じ値が登録される。
なお、図８の例では、ハッシュ値算出部５２が算出するハッシュ値が４バイトであるとして表記している。また、登録された正常データの消去については、プリンタ２のメニューから全体を消去、またはジョブ名を選択して対応する正常データのみを消去できるように構成されている。
【００４０】
比較結果格納部５８は、ハッシュ値比較部５３の比較結果を、一致または不一致として格納するメモリ領域であり、本実施例ではＲＡＭ９によって構成されている。具体的には、比較結果は、図９に示す比較結果格納テーブルのような表形式のデータ構造で格納され、それぞれ現在処理中の印刷データに対応するジョブ名、ジョブハッシュ値比較結果、コマンドハッシュ値比較結果、画像ハッシュ値比較結果が格納される。
また、主制御部４５が、受信した印刷ジョブの処理を開始したときは、各比較結果に「比較未」がセットされて初期化され、検証モードによる正常データとの比較が行われたときに、その比較結果が、「一致」または「不一致」のいずれかで格納される。
【００４１】
ハッシュ用一時保存部５９は、ページ画像中の画像ハッシュ値を算出したい領域のみの画像を生成するためのメモリ領域であり、本実施例ではＲＡＭ９によって構成している。
以下に、本実施例のプリンタ２による通常モードによる印刷処理、制限モードおよび検証モードによる不具合検出処理の処理動作等について説明する。
まず、図１０に示すフローチャートを用い、Ｓで示すステップに従って本実施例のプリンタ２の通常モードによる印刷処理について説明する。
【００４２】
ステップＳ１：プリンタ２の主制御部４５は、表示操作部４７によって、操作パネル５の液晶パネル１２に初期画面としてのオンライン画面（図４参照）を表示して待機しており、印刷データ受信部４８によって、上位装置１のプリンタドライバ１８の印刷データ送信部２２からネットワーク３を介して送信された印刷データを受信したときにステップＳ２へ移行する。
【００４３】
ステップＳ２：印刷データを受信した主制御部４５は、受信した印刷データを印刷データ受信部４８からジョブ制御部４９へ送出し、ジョブ制御部４９は、その動作モード検出部４９ａによって、印刷ジョブ中に動作モードを指定するコマンドを検出して動作モードを確認し、指定されている動作モードを、記憶部４６の動作モード格納部５６へ格納して動作モードを更新する。なお、動作モードを指定するコマンドを検出できない場合は、動作モードを通常モードとして格納する。
【００４４】
ステップＳ３：動作モードを格納した主制御部４５は、記憶部４６の動作モード格納部５６に格納されている動作モードを読出し、その動作モードが通常モードの場合はステップＳ４へ移行する。動作モードが通常モード以外の他の３つの動作モード（制限モード、正常データ登録モード、検証モード、図６参照）の場合はステップＳ７へ移行する。
ステップＳ４：今回受信した印刷データが通常モードで処理される印刷データであると認識した主制御部４５は、通常通りの印刷処理を実行するために、ジョブ制御部４９によって、受信した印刷データをＰＤＬデータ解析部５０へ送出し、ＰＤＬデータ解析部５０は、受取った印刷データを解析し、その解析結果として描画データのディスプレイリストを生成し、これをページ画像生成部５１へ送出する。
【００４５】
ステップＳ５：主制御部４５は、ディスプレイリストを受取ったページ画像生成部５１によって、受取ったディスプレイリストを基にページ画像を生成する。
ステップＳ６：主制御部４５は、ページ画像生成部５１によって、生成したページ画像を印刷制御部５４へ送出し、印刷制御部５４は、受取ったページ画像を印刷部４によって用紙に印刷して排出し、印刷データの全てのページ画像の印刷物の排出を確認して印刷処理を終えた主制御部４５は、ステップＳ１へ戻り、操作パネル５の液晶パネル１２にオンライン画面を表示して待機する。
このようにして、本実施例の通常モードによる印刷処理が実行される。
【００４６】
ステップＳ７、一方、上記ステップＳ３において、動作モードが通常モード以外の他の３つの動作モードであることを認識した主制御部４５は、不具合検出処理を実行するために、動作モード格納部５６から読出した動作モードが、制限モードの場合は、接続子Ａを介して図１１のステップＳＡ１へ移行する。動作モードが他の２つの動作モードの場合はステップＳ８へ移行する。
【００４７】
ステップＳ８：不具合検出処理に係る動作モードが、制限モード以外の他の２つの動作モードであると認識した主制御部４５は、動作モード格納部５６から読出した動作モードが、正常データ登録モードの場合は、接続子Ｂを介して図１２のステップＳＢ１へ移行する。動作モードが、検証モードの場合は、接続子Ｃを介して図１３のステップＳＣ１へ移行する。
【００４８】
以下に、図１１に示すフローチャートを用い、ＳＡで示すステップに従って本実施例のプリンタ２の制限モードによる不具合検出処理について説明する。
ユーザまたはプリンタ２の保守員は、プリンタ２における印刷不具合が発生すると、その不具合原因調査のための動作モードを用いて不具合発生プロセスを検出する。特に問題となる不具合現象が数日間に１回程度しか発生しないような再現困難な場合には、本実施例の正常データ登録モードおよび検証モードを用いて不具合発生プロセスを検出する。
【００４９】
ステップＳＡ１：上記図１０のステップＳ７から接続子Ａを介して移行し、今回受信した印刷データが制限モードで処理される印刷データであると認識した主制御部４５は、記憶部４６の動作モード格納部５６に格納されている動作モードを読出し、表示操作部４７によって、操作パネル５の液晶パネル１２に、動作モードが制限モードである旨および処理中状態である旨を表示した、図１４（ａ）に示すテスト状況画面を表示する。
なお、本モードの場合は、上記図１０のステップＳ２において、動作モード格納部５６には、動作モードとして制限モードが格納されている。
【００５０】
ステップＳＡ２：テスト状況画面を表示した主制御部４５は、ジョブ制御部４９によって、上記図１０のステップＳ１で受信した印刷データの全てを、記憶部４６の印刷データ格納部５５へ格納する。
ステップＳＡ３：印刷データを格納した主制御部４５は、ＰＤＬデータ解析部５０によって、受信した印刷データを解析し、用紙範囲を超えて描画する描画コマンド（異常描画コマンドという。）が、予め設定されて記憶部４６に格納されているはみ出し判定値（本実施例では、標準文字で１０文字の印字に相当する長さ）以上になるか否かを判定する。
【００５１】
例えば、改行コード、復帰コード、座標指定コマンドが現れずに、文字の描画コマンドが連続した場合は、用紙の印刷方向の端面（本実施例では右端）を超えて文字描画を行うような指定であるので、用紙範囲を超えて描画する文字描画であると判定する。
ステップＳＡ４：主制御部４５は、印刷データを解析したＰＤＬデータ解析部５０によって、異常描画コマンドが一定数（本実施例では「１」）以上存在する場合は、異常な印刷データを検出したと判定してステップＳＡ５へ移行する。異常描画コマンドが一定数未満の場合はステップＳＡ７へ移行する。
【００５２】
ステップＳＡ５：主制御部４５は、異常な印刷データを検出したと判定したＰＤＬデータ解析部５０によって、印刷データの解析を中断し、印刷データ受信部４８によるデータ受信を含む現在実行中の処理を中断する。
ステップＳＡ６：実行中の処理を中断した主制御部４５は、表示操作部４７によって、操作パネル５の液晶パネル１２に、異常描画コマンドを含む印刷データを受信したため処理を中断した旨、装置のリセットを促す旨およびその選択表示（はい／いいえ）を表示した、図１４（ｂ）に示す異常印刷データによる処理中断画面を表示してステップＳＡ１２へ移行する。
【００５３】
ステップＳＡ７：印刷データに一定数以上の異常描画コマンドが存在しないことを判定した主制御部４５は、ジョブ制御部４９によって、受信した印刷データをＰＤＬデータ解析部５０へ送出し、ＰＤＬデータ解析部５０は、受取った印刷データを解析し、その解析結果として描画データのディスプレイリストを生成し、これをページ画像生成部５１へ送出する。
ステップＳＡ８：主制御部４５は、ディスプレイリストを受取ったページ画像生成部５１によって、受取ったディスプレイリストを基にページ画像を生成する。
【００５４】
ステップＳＡ９：主制御部４５は、ページ画像を生成したページ画像生成部５１によって、画像生成後のページ画像が白紙ページか否かを判定（ページデータの全てが「０」であれば白紙ページと判定する。）して、判定した白紙ページの枚数を、予め設定されて記憶部４６に格納されている白紙連続判定値（本実施例では３枚）と比較し、連続した白紙ページが白紙連続判定値以上の場合は、白紙ページ数過大と判定してステップＳＡ１０へ移行する。連続した白紙ページが白紙連続判定値未満の場合はステップＳＡ１３へ移行する。
【００５５】
ステップＳＡ１０：主制御部４５は、白紙ページ数過大と判定したページ画像生成部５１によって、ページ画像の形成を中断し、印刷データ受信部４８によるデータ受信を含む現在実行中の処理を中断する。
ステップＳＡ１１：実行中の処理を中断した主制御部４５は、表示操作部４７によって、操作パネル５の液晶パネル１２に、白紙ページの連続を検出したため処理を中断した旨、装置のリセットを促す旨およびその選択表示（はい／いいえ）を表示した、図１４（ｃ）に示す白紙連続による処理中断画面を表示してステップＳＡ１２へ移行する。
【００５６】
ステップＳＡ１２：ステップＳＡ６、ＳＡ１１で処理中断画面を表示した主制御部４５は、表示操作部４７からのリセット選択の指示情報を含む押下信号の出力を待って待機しており、ユーザが、液晶パネル１２を視認しながら上ボタン１３ａ、下ボタン１３ｂによってリセット（はい）を選択し決定ボタン１３ｃを押下することによって指示したリセット選択の指示情報を含む押下信号が出力されたときに、装置のリセットを実行し、接続子Ｚを介して図１０のステップＳ１へ戻り、操作パネル５にオンライン画面を表示して待機する。
【００５７】
ステップＳＡ１３：ステップＳＡ４で印刷データに異常描画コマンドが存在しないことを判定し、ステップＳＡ９で印刷データに白紙連続判定値以上の連続した白紙ページが含まれていないことを判定した主制御部４５は、ページ画像生成部５１によって、上記ステップＳＡ８で生成したページ画像を印刷制御部５４へ送出し、印刷制御部５４は、受取ったページ画像を印刷部４によって用紙に印刷して排出し、印刷データの全てのページ画像の印刷物の排出を確認してステップＳＡ１４へ移行する。
【００５８】
ステップＳＡ１４：制限モードにおける用紙への印刷を終えた主制御部４５は、ジョブ制御部４９によって、印刷データ格納部５５に格納されている今回の印刷データを削除し、接続子Ｚを介して図１０のステップＳ１へ戻り、操作パネル５にオンライン画面を表示して待機する。
このようにして、本実施例の制限モードによる不具合検出処理が実行される。この制限モードによる不具合検出処理は、異常が検出されなかった場合は通常モードと同じように用紙に印刷を行うことができるので、異常を検出した場合は印刷処理を中断させたいが、異常がない場合は、通常通りに印刷を行わたいユーザにとって、特に有用である。
【００５９】
以下に、図１２に示すフローチャートを用い、ＳＢで示すステップに従って本実施例のプリンタ２の正常データ登録モードによる正常データ登録処理について説明する。
ユーザまたはプリンタ２の保守員は、不具合現象が数日間に１回程度しか発生しないような再現困難な場合に、その不具合原因を調査するときは、まず、正常データ登録モードを用いて、調査対象となる印刷データの正常データを、記憶部４６の正常データ格納部５７に格納する。この正常データ登録モードによる正常データ登録処理は、次に説明する検証モードの処理動作において比較対照とする各ハッシュ値の正常値を予め登録するものである。
【００６０】
このため、調査を担当するプリンタ２の保守員等は、上位装置１から、図５の構成要素３２のコマンドを「＠ＰＪＬ  ＨＡＳＨＭＯＤＥ＝ＨＡＳＨＲＥＧＩＳＴ」とし、調査対象とする解析対象領域（構成要素３４）、その解析除外領域（構成要素３５）、調査対象となる描画データの解析指定範囲（構成要素３７、４３）等からなる印刷データをプリンタ２へネットワーク３を介して送信する。
【００６１】
ステップＳＢ１：上記図１０のステップＳ８から接続子Ｂを介して移行し、今回受信した印刷データが正常データ登録モードで処理される印刷データであると認識した主制御部４５は、記憶部４６の動作モード格納部５６に格納されている動作モードを読出し、表示操作部４７によって、操作パネル５の液晶パネル１２に、動作モードが正常データ登録モードである旨および処理中状態である旨を表示した、図１５（ａ）に示すテスト状況画面を表示する。
なお、本モードの場合は、上記図１０のステップＳ２において、動作モード格納部５６には、動作モードとして正常データ登録モードが格納されている。
【００６２】
ステップＳＢ２：テスト状況画面を表示した主制御部４５は、ジョブ制御部４９によって、上記図１０のステップＳ１で受信した印刷データの全てを、記憶部４６の印刷データ格納部５５へ格納する。
ステップＳＢ３：印刷データを格納した主制御部４５は、ジョブ制御部４９によって、記憶部４６の正常データ格納部５７に格納されている正常データ登録テーブル（図８参照）に、同一ジョブ検出部４９ｂが受信した印刷ジョブから検出したジョブ名と同一のジョブ名が登録されているか否かを確認し、同一ジョブ名の正常データが登録済の場合はステップＳＢ４へ移行する。同一ジョブ名の正常データが未登録の場合はステップＳＢ５へ移行する。
【００６３】
ステップＳＢ４：同一ジョブ名の正常データが既に登録済であることを認識した主制御部４５は、表示操作部４７によって、操作パネル５の液晶パネル１２に、同一ジョブ名の正常データが登録済である旨を表示した、図１５（ｂ）に示す登録済画面を表示し、所定の時間の経過後に、接続子Ｚを介して図１０のステップＳ１へ戻り、操作パネル５にオンライン画面を表示して待機する。
【００６４】
ステップＳＢ５：同一ジョブ名の正常データが未登録であることを認識した主制御部４５は、ジョブ制御部４９によって、受信した印刷データをハッシュ値算出部５２へ送出し、ハッシュ値算出部５２は、受取った印刷ジョブの印刷データ全体に対するジョブハッシュ値を算出し、正常データ格納部５７の正常データ登録テーブルに、受信した印刷ジョブのジョブ名に対応させて、そのジョブハッシュ値欄を算出したジョブハッシュ値とし、他の２つのハッシュ値欄は、空欄または「未登録」とし、ページ番号欄を空欄とした新たな行を生成し、算出したジョブハッシュ値を正常データ格納部５７へ格納する。
【００６５】
ステップＳＢ６：算出したジョブハッシュ値を格納した主制御部４５は、画像ハッシュ値を算出するための前処理を実行するために、ジョブ制御部４９によって、受信した印刷データをＰＤＬデータ解析部５０へ送出し、ＰＤＬデータ解析部５０は、受取った印刷データを解析し、その解析結果として調査対象ページの１ページ分の描画データのディスプレイリストを生成する。
【００６６】
ステップＳＢ７：主制御部４５は、ディスプレイリストを生成したＰＤＬデータ解析部５０の解析範囲検出部５０ａによって、印刷データを解析し、解析対象領域とする矩形領域を指定するコマンド（図５の構成要素３４）を検出し、この解析対象領域に対応するディスプレイリストを生成する。具体的には、ステップＳＢ６で生成したディスプレイリスト中に画像ハッシュ値を算出する解析対象領域の座標情報を示すディスプレイリストを追加する。
【００６７】
ステップＳＢ８：主制御部４５は、解析範囲検出部５０ａによって、印刷データを解析し、解析除外領域とする矩形領域を指定するコマンド（図５の構成要素３５）を検出し、この解析除外領域に対応するディスプレイリストを生成する。具体的には、ステップＳＢ６で生成したディスプレイリスト中に画像ハッシュ値の算出対象から除外する解析除外領域の座標情報を示すディスプレイリストを追加する。
【００６８】
ステップＳＢ９：また、主制御部４５は、解析範囲検出部５０ａによって、印刷データを解析し、解析指定範囲の開始を指定するコマンド（図５の構成要素３７）を検出し、対応するディスプレイリストを生成する。すなわち、ディスプレイリスト中に「画像ハッシュ値算出対象のディスプレイリスト開始」を示すマーカー情報としてのディスプレイリストを追加する。具体的には、ディスプレイリスト種別番号を、１番が図形描画、２番が文字描画、３番がイメージ描画であった場合は、４番が「画像ハッシュ値算出対象のディスプレイリスト開始」を意味するようにディスプレイリスト種別番号を定義して構成する。
【００６９】
また、解析範囲検出部５０ａは、印刷データを解析し、解析指定範囲の終了を指定するコマンド（図５の構成要素４３）を検出し、対応するディスプレイリストを生成する。すなわち、ディスプレイリスト中に「画像ハッシュ値算出対象のディスプレイリスト終了」を示すマーカー情報としてのディスプレイリストを追加する。具体的には、５番が「画像ハッシュ値算出対象のディスプレイリスト終了」を意味するようにディスプレイリスト種別番号を定義して構成する。
【００７０】
ステップＳＢ１０：画像ハッシュ値算出の前処理を終えた主制御部４５は、ＰＤＬデータ解析部５０の解析範囲検出部５０ａによって、コマンドハッシュ値の算出対象とする解析指定範囲の開始を指定するコマンド（図５の構成要素３７）と終了を指定するコマンド（図５の構成要素４３）とを検出し、これらの間に挟まれた描画データ（図５の構成要素３８〜構成要素４２）をハッシュ値算出部５２へ送出する。
【００７１】
ステップＳＢ１１：主制御部４５は、解析範囲検出部５０ａから送出された描画データを受取ったハッシュ値算出部５２によって、受取った描画データの全てのコマンドを基に、コマンドハッシュ値を算出し、正常データ格納部５７の正常データ登録テーブルの、受信した印刷ジョブのジョブ名に対応するコマンドハッシュ値欄に算出したコマンドハッシュ値を、ページ番号欄に調査対象としたページのページ番号を書込んで、算出したコマンドハッシュ値を正常データ格納部５７へ格納する。
【００７２】
ステップＳＢ１２：算出したコマンドハッシュ値を格納した主制御部４５は、画像ハッシュ値を算出するために、ＰＤＬデータ解析部５０が、上記ステップＳＢ６〜ＳＢ９で生成したディスプレイリストを、ページ画像生成部５１へ送出し、ページ画像生成部５１は、上記ステップＳＢ６で生成したディスプレイリストに基づいて、調査対象ページのページ画像を生成する。なお、本ステップは、後述するステップＳＢ１７で印刷するページ画像を形成するステップである。
【００７３】
ステップＳＢ１３：主制御部４５は、印刷用のページ画像を生成したページ画像生成部５１によって、ディスプレイリストで指定された解析指定範囲の解析開始指示と、解析終了指示を検出し、解析開始指示から解析終了指示までの間に存在するディスプレイリストを抽出する。
ステップＳＢ１４：主制御部４５は、ページ画像生成部５１によって、抽出された解析指定範囲のディスプレイリストを基に、ハッシュ用一時保存部５９に解析指定範囲の画像を形成する。
【００７４】
ステップＳＢ１５：主制御部４５は、解析指定範囲の画像を形成したページ画像生成部５１によって、ディスプレイリストで指定された解析対象領域とする矩形領域、および、解析除外領域とする矩形領域を検出し、これら解析対象領域とする矩形領域および、解析除外領域とする矩形領域に基づいて、ハッシュ用一時保存部５９に形成した画像領域から画像ハッシュ値の算出対象外となる画像領域をクリアし、ハッシュ値算出部５２へハッシュ用一時保存部５９に画像ハッシュ値算出の対象とする画像形成が完了した旨の画像形成完了通知を送出する。
【００７５】
ステップＳＢ１６：主制御部４５は、画像形成完了通知を受取ったハッシュ値算出部５２によって、ハッシュ用一時保存部５９に形成された画像データを読込んで、画像ハッシュ値を算出し、正常データ格納部５７の正常データ登録テーブルの、受信した印刷ジョブのジョブ名に対応する画像ハッシュ値欄に算出した画像ハッシュ値を書込んで、算出した画像ハッシュ値を正常データ格納部５７へ格納する。
【００７６】
なお、画像ハッシュ値算出の解析対象領域および解析除外領域の座標は、必ずしもバイト単位やワード単位の画像ではない。そのため、ハッシュ値算出部５２は、画像ハッシュ値算出の解析対象領域および解析除外領域にかかる部分の画像データを読出したときには、ビット演算によるマスクを掛けて解析除外領域に対するデータ部分のビットを「０」にしてからハッシュ値算出を行うようにする。
【００７７】
また、ハッシュ用一時保存部５９の解析対象領域とする矩形領域は、解析除外領域とする矩形領域を除いて折返しながら読出すようにする。具体的には、解析対象領域とする矩形領域を（ｘ１，ｙ１）〜（ｘ２，ｙ１）、（ｘ１，ｙ１＋１）〜（ｘ２，ｙ１＋１）・・・（ｘ１，ｙ２）〜（ｘ２，ｙ２）に対応する画像のバイトデータを読出す一方で、対象外の矩形領域（ｘ３，ｙ３）〜（ｘ４，ｙ３）・・・（ｘ３，ｙ４）〜（ｘ４，ｙ４）に対応するバイトデータを、ハッシュ値算出から除外するようにする。
【００７８】
ステップＳＢ１７：画像ハッシュ値を格納した主制御部４５は、ページ画像生成部５１によって、上記ステップＳＢ６で生成したページ画像を印刷制御部５４へ送出し、印刷制御部５４は、受取ったページ画像を印刷部４によって用紙に印刷して排出し、ステップＳＢ１８へ移行する。
ステップＳＢ１８：ページ画像の印刷を終えた主制御部４５は、表示操作部４７によって、操作パネル５の液晶パネル１２に、正常ハッシュ値を登録した旨および印刷結果の確認を促す旨を表示した、図１５（ｃ）に示す登録終了画面を表示し、所定の時間の経過後に、接続子Ｚを介して図１０のステップＳ１へ戻り、操作パネル５にオンライン画面を表示して待機する。
【００７９】
このようにして、正常データ登録モードによる正常データ登録処理が実行される。この場合に、ユーザまたはプリンタ２の保守員は、印刷されたページ画像を視認して、登録された各ハッシュ値が正常データであることを確認する。
以下に、図１３に示すフローチャートを用い、ＳＣで示すステップに従って本実施例のプリンタ２の検証モードによる不具合検出処理について説明する。
ユーザまたはプリンタ２の保守員は、不具合現象が数日間に１回程度しか発生しないような再現困難な印刷データの不具合原因を調査するときは、本実施例の検証モードを用いて不具合発生プロセスを検出する。
【００８０】
このため、調査を担当するプリンタ２の保守員等は、上位装置１から、図５の構成要素３２のコマンドを「＠ＰＪＬ  ＨＡＳＨＭＯＤＥ＝ＨＡＳＨＣＨＥＣＫ」とし、正常データを登録した調査対象の印刷データを、登録時と同じジョブ名、解析対象領域（構成要素３４）、その解析除外領域（構成要素３５）、調査対象となる描画データの解析指定範囲（構成要素３７、４３）等としてプリンタ２へネットワーク３を介して送信する。
【００８１】
ステップＳＣ１：上記図１０のステップＳ８から接続子Ｃを介して移行し、今回受信した印刷データが検証モードで処理される印刷データであると認識した主制御部４５は、記憶部４６の動作モード格納部５６に格納されている動作モードを読出し、表示操作部４７によって、操作パネル５の液晶パネル１２に、動作モードが検証モードである旨および処理中状態である旨を表示した、図１６（ａ）に示すテスト状況画面を表示する。
なお、本モードの場合は、上記図１０のステップＳ２において、動作モード格納部５６には、動作モードとして検証モードが格納されている。
【００８２】
ステップＳＣ２：テスト状況画面を表示した主制御部４５は、ジョブ制御部４９によって、上記図１０のステップＳ１で受信した印刷データの全てを、記憶部４６の印刷データ格納部５５へ格納する。
ステップＳＣ３：印刷データを格納した主制御部４５は、ジョブ制御部４９によって、記憶部４６の正常データ格納部５７に格納されている正常データ登録テーブル（図８参照）に、同一ジョブ検出部４９ｂが受信した印刷ジョブから検出したジョブ名と同一のジョブ名が登録されているか否かを確認し、同一ジョブ名の正常データが登録済の場合はステップＳＣ７へ移行する。同一ジョブ名の正常データが未登録の場合はステップＳＣ４へ移行する。
【００８３】
ステップＳＣ４：同一ジョブ名の正常データが未登録であることを認識した主制御部４５は、正常データが未登録であると判定したジョブ制御部４９の処理を中断し、印刷データ受信部４８によるデータ受信を含む現在実行中の処理を中断する。
ステップＳＣ５：実行中の処理を中断した主制御部４５は、表示操作部４７によって、操作パネル５の液晶パネル１２に、同一ジョブ名の正常データが未登録である旨、装置のリセットを促す旨およびその選択表示（はい／いいえ）を表示した図１６（ｂ）に示す未登録ジョブ受信による中断画面を表示してステップＳＣ６へ移行する。
【００８４】
ステップＳＣ６：中断画面を表示した主制御部４５は、表示操作部４７からのリセット選択の指示情報を含む押下信号の出力を待って待機しており、ユーザが、上記図１１のステップＳＡ１２と同様にして、指示したリセット選択の指示情報を含む押下信号が出力されたときに、装置のリセットを実行し、接続子Ｚを介して図１０のステップＳ１へ戻り、操作パネル５にオンライン画面を表示して待機する。
【００８５】
ステップＳＣ７：同一ジョブ名の正常データが登録済であることを認識した主制御部４５は、ジョブ制御部４９によって、受信した印刷データをハッシュ値算出部５２へ送出し、ハッシュ値算出部５２は、受取った印刷ジョブの印刷データ全体に対するジョブハッシュ値を算出する。
ステップＳＣ８：主制御部４５は、ジョブハッシュ値を算出したハッシュ値算出部５２によって、算出したジョブハッシュ値をハッシュ値比較部５３へ送出し、ハッシュ値比較部５３は、ハッシュ値算出部５２から受取ったジョブハッシュ値と、正常データ格納部５７に同一ジョブ名で登録されている正常ジョブハッシュ値とを比較する。
【００８６】
ステップＳＣ９：主制御部４５は、正常ジョブハッシュ値との比較を終えたハッシュ値比較部５３によって、記憶部４６の比較結果格納部５８の比較結果格納テーブル（図９参照）に受信した印刷ジョブのジョブ名に対応させて、そのジョブハッシュ値比較結果欄を算出したジョブハッシュ値の比較結果（一致／不一致）とし、他の２つのハッシュ値比較欄は、「比較未」とした新たな行を生成し、算出したジョブハッシュ値比較結果を比較結果格納部５８へ格納し、ジョブハッシュ値の比較結果が格納された旨を、ジョブ制御部４９および表示操作部４７に通知し、表示操作部４７は、操作パネル５の液晶パネル１２に、図１６（ｃ）に示すジョブハッシュ値比較結果表示画面を表示する。
【００８７】
ステップＳＣ１０：ジョブハッシュ値比較結果表示画面を表示した主制御部４５は、画像ハッシュ値を算出するための前処理を実行するために、ジョブ制御部４９によって、受信した印刷データをＰＤＬデータ解析部５０へ送出し、ＰＤＬデータ解析部５０は、受取った印刷データを解析し、その解析結果として調査対象ページの１ページ分の描画データのディスプレイリストを生成する。
その後のステップＳＣ１１〜ＳＣ１４の処理動作は、上記正常データ登録モード（図１２）のステップＳＢ７〜ＳＢ１０の処理動作と同様であるので、その説明を省略する。
【００８８】
ステップＳＣ１５：主制御部４５は、解析範囲検出部５０ａから送出された描画データを受取ったハッシュ値算出部５２によって、受取った描画データの全てのコマンドを基に、コマンドハッシュ値を算出する。
ステップＳＣ１６：主制御部４５は、コマンドハッシュ値を算出したハッシュ値算出部５２によって、算出したコマンドハッシュ値をハッシュ値比較部５３へ送出し、ハッシュ値比較部５３は、ハッシュ値算出部５２から受取ったコマンドハッシュ値と、正常データ格納部５７に同一ジョブ名で登録されている正常コマンドハッシュ値とを比較する。
【００８９】
ステップＳＣ１７：主制御部４５は、正常コマンドハッシュ値との比較を終えたハッシュ値比較部５３によって、比較結果格納部５８の比較結果格納テーブルに受信した印刷ジョブのジョブ名に対応するコマンドハッシュ値比較結果欄に算出したコマンドハッシュ値の比較結果（一致／不一致）書込んで、算出したコマンドハッシュ値比較結果を比較結果格納部５８へ格納し、コマンドハッシュ値の比較結果が格納された旨を、ジョブ制御部４９および表示操作部４７に通知し、表示操作部４７は、操作パネル５の液晶パネル１２に、図１６（ｄ）に示すコマンドハッシュ値比較結果表示画面を表示する。
【００９０】
ステップＳＣ１８：コマンドハッシュ値比較結果表示画面を表示した主制御部４５は、画像ハッシュ値を算出するために、ＰＤＬデータ解析部５０が、上記ステップＳＣ１０〜ＳＣ１３で生成したディスプレイリストを、ページ画像生成部５１へ送出し、ページ画像生成部５１は、上記ステップＳＣ１０で生成したディスプレイリストに基づいて、調査対象ページのページ画像を生成する。なお、本ステップは、後述するステップＳＣ２９で印刷するページ画像を形成するステップである。
その後のステップＳＣ１９〜ＳＣ２１の処理動作は、上記正常データ登録モード（図１２）のステップＳＢ１３〜ＳＢ１５の処理動作と同様であるので、その説明を省略する。
【００９１】
ステップＳＣ２２：主制御部４５は、画像形成完了通知を受取ったハッシュ値算出部５２によって、ハッシュ用一時保存部５９に形成された画像データを読込んで、画像ハッシュ値を算出する。
ステップＳＣ２３：主制御部４５は、画像ハッシュ値を算出したハッシュ値算出部５２によって、算出した画像ハッシュ値をハッシュ値比較部５３へ送出し、ハッシュ値比較部５３は、ハッシュ値算出部５２から受取った画像ハッシュ値と、正常データ格納部５７に同一ジョブ名で登録されている正常画像ハッシュ値とを比較する。
【００９２】
ステップＳＣ２４：主制御部４５は、正常画像ハッシュ値との比較を終えたハッシュ値比較部５３によって、比較結果格納部５８の比較結果格納テーブルに受信した印刷ジョブのジョブ名に対応する画像ハッシュ値比較結果欄に算出した画像ハッシュ値の比較結果（一致／不一致）書込んで、算出した画像ハッシュ値比較結果を比較結果格納部５８へ格納し、画像ハッシュ値の比較結果が格納された旨を、ジョブ制御部４９および表示操作部４７に通知し、表示操作部４７は、操作パネル５の液晶パネル１２に、図１６（ｅ）または（ｆ）に示す画像ハッシュ値比較結果表示画面を表示する。
【００９３】
ステップＳＣ２５：画像ハッシュ値比較結果表示画面を表示して各ハッシュ値の比較結果の格納を終えた主制御部４５は、比較結果格納部５８の比較結果格納テーブルを確認して、各ハッシュ値比較結果の中でいずれか一つの比較結果が「不一致」の場合はステップＳＣ２９へ移行する。全ての比較結果が「一致」の場合はステップＳＣ２６へ移行する。
ステップＳＣ２６：全ての比較結果が「一致」と認識した主制御部４５は、ページ画像生成部５１によって、上記ステップＳＣ１０で生成したページ画像を印刷制御部５４へ送出し、印刷制御部５４は、受取ったページ画像を受捨てる。この処理動作は、検証モード中でハッシュ値が正常データと一致した場合は、不具合再現のために無駄な印刷を行わないためである。
【００９４】
ステップＳＣ２７：印刷制御部５４によってページ画像を受捨てた主制御部４５は、表示操作部４７によって、操作パネル５の液晶パネル１２に、各ハッシュ値が一致した旨および用紙への印刷は省略した旨を表示した図１６（ｇ）に示すハッシュ値一致画面を表示する。
ステップＳＣ２８：ハッシュ値一致画面を表示した主制御部４５は、ジョブ制御部４９によって、印刷データ格納部５５に格納されている今回の印刷データを削除し、接続子Ｚを介して図１０のステップＳ１へ戻り、操作パネル５にオンライン画面を表示して待機する。
【００９５】
ステップＳＣ２９：比較結果のいずれか一つが「不一致」と認識した主制御部４５は、ページ画像生成部５１によって、上記ステップステップＳＣ１０で生成したページ画像を印刷制御部５４へ送出し、印刷制御部５４は、受取ったページ画像を印刷部４によって用紙に印刷して排出する。
ステップＳＣ３０：ページ画像の印刷を終えた主制御部４５は、ジョブ制御部４９、ＰＤＬデータ解析部５０、ページ画像生成部５１による処理を中断し、印刷データ受信部４８によるデータ受信を含む現在実行中の処理を中断する。
【００９６】
ステップＳＣ３１：実行中の処理を中断した主制御部４５は、表示操作部４７によって、操作パネル５の液晶パネル１２に、ハッシュ値が不一致である旨、処理が中断中である旨、装置のリセットを促す旨およびその選択表示（はい／いいえ）を表示した図１６（ｈ）に示すハッシュ値不一致による中断画面を表示してステップＳＣ３２へ移行する。
【００９７】
この場合に、ユーザまたはプリンタ２の保守員は、上位装置１上で動作する専用ユーティリティを立上げ、その専用ユーティリティからプリンタ２ヘ当該印刷データの送信を指示する制御コマンドを送信することで、印刷データ格納部５５に格納されている現在処理中の不具合を発生させた印刷データが専用ユーティリティ側へ送信される。具体的には、専用ユーティリティがプリンタ２とネットワーク接続のコネクションを張り、例えば「＠ＰＪＬ  ＲＥＡＤＨＤＤ  ＣＵＲＲＥＮＴＪＯＢ」のような制御コマンドを送信すると、プリンタ２は該制御コマンドを認識し、印刷データ格納部５５に格納されている印刷データを専用ユーティリティ側に送信する。この動作によって、ユーザはハッシュ値の不一致が発生したときの印刷データを取得することができる。
【００９８】
ステップＳＣ３２：中断画面を表示した主制御部４５は、表示操作部４７からのリセット選択の指示情報を含む押下信号の出力を待って待機しており、ユーザが、上記図１１のステップＳＡ１２と同様にして、指示したリセット選択の指示情報を含む押下信号が出力されたときに、装置のリセットを実行し、接続子Ｚを介して図１０のステップＳ１へ戻り、操作パネル５にオンライン画面を表示して待機する。
このようにして、検証モードによる不具合検出処理が実行される。
【００９９】
上記のように、本実施例の制限モードおよび検証モードによる処理動作を行わせることにより、印刷データおよび画像生成後のページ画像のデータの内、全体データまたは特定領域のデータに基づいてハッシュ値を算出し、算出したハッシュ値を正常データと比較することによって、画像処理システム上を流れるデータがいずれのプロセス（印刷データ送信プロセス、コマンド生成プロセス、ディスプレイリスト生成プロセス等）または印刷データ中のいずれの領域における異常であるかを検出することが可能になる。
【０１００】
以上説明したように、本実施例では、数日間に１回程度再現するような不具合現象であっても、ハッシュ値の不一致によって印刷システム全体の処理を中断させることができると共にそのときの印刷データを取得することができ、また、ジョブハッシュ値、コマンドハッシュ値、画像ハッシュ値についての正常データとの比較結果を得ることにより、不具合が発生したプロセスの検出を容易に行うことができ、これらの効果によって、その後の原因調査における不具合解析時間を短縮することができる。
【０１０１】
また、検証モード時には、ハッシュ値が不一致になったページだけが印刷され、ハッシュが一致したページの印刷は行われないので、不具合再現のために用紙とトナーを無駄に消費する必要がなくなり、より安価に再現調査を行うことができる。また、各ハッシュ値が正常データと一致したら記憶部４６の印刷データを削除するので、少ない容量のハードディスク１０等を搭載しても不具合再現のテストが可能になる。
更に、画像ハッシュ値の算出はページ毎に行うので、ユーザはハッシュ値の不一致による異常発生をページ単位で知ることができ、不具合領域の検出精度を向上させることができる。
【０１０２】
更に、ハッシュ値の不一致による異常を検出するとプリンタ２の内部処理を中断するので、プリンタ２が上位装置１から次々と送信される印刷ジョブの処理を継続しなくなり、不具合が発生したその時点の状態をふまえて、不具合の詳細調査に着手することができる。
更に、正常動作のときのジョブハッシュ値とコマンドハッシュ値の正常データは、正常データ登録モードのときにプリンタ内部で生成できるから、上位装置１側でジョブハッシュ値とコマンドハッシュ値の正常データを、わざわざ生成して印刷データ中に含めるような対応が不要になり、不具合原因究明のための上位装置１側の準備の煩わしさを軽減することができる。
【実施例２】
【０１０３】
以下に、図１７ないし図２１を用いて本実施例の画像処理システムおよびプリンタについて説明する。なお上記実施例１と同様の部分は、同一の符号を付してその説明を省略する。
本実施例のプリンタ２においては、上記実施例１の処理動作に加え、コマンドハッシュ値および画像ハッシュ値を、図形、文字、イメージの３種類の描画対象に分類して算出する。
なお、本実施例における動作モード（図６参照）および画像ハッシュ値算出のための解析対象領域と解析除外領域の設定方法（図７参照）は、上記実施例１と同様である。
【０１０４】
本実施例の主制御部４５に形成されたＰＤＬデータ解析部５０には、図１７に示すように、ハッシュ値算出対象制御部５０ｂが追加され、また、記憶部４６のハッシュ用一時保存部５９が、３つのハッシュ用一時保存部である、図形ハッシュ用一時保存部６１、文字ハッシュ用一時保存部６２、イメージハッシュ用一時保存部６３に拡張された形態になっている。
ＰＤＬデータ解析部５０に形成されたハッシュ値算出対象制御部５０ｂは、コマンドハッシュ値を算出する際に、描画対象毎（図形、文字、イメージの３種類の描画対象）に分けて、コマンドハッシュ値を算出するように制御を行う機能を有している。
【０１０５】
本実施例の上位装置１は、上記実施例１で説明した内部構成と同様であるが、その解析範囲指定部２１は、プリンタドライバ１８の画面中の設定項目の切替えによって、ハッシュ値を検証したい描画対象（イメージ、図形、文字）を指定できるように構成される。
また、プリンタドライバ１８が出力する印刷データは、図１８に示すように、実施例１の印刷データ（図５参照）に対して、前記したドライバ画面中の設定項目によって選択したハッシュ値を検証したい描画対象の種別情報が伝わるように「＠ＰＪＬ」から始まる制御情報に構成要素６５が追加されており、「＠ＰＪＬ  ＨＡＳＨＴＡＲＧＥＴ＝ＩＭＡＧＥ＋ＦＩＧＵＲＥ＋ＣＨＡＲ」のような制御コマンドが付加されている。なお、前記の例では３種とも指定しているが、例えば「ＦＩＧＵＲＥ」を指定しなければ、図形に対するハッシュ値算出は行われない。
【０１０６】
本実施例の記憶部４６の図形ハッシュ用一時保存部６１は、図形データに関するディスプレイリストに対して画像生成した画像データを格納するためのメモリ領域である。
文字ハッシュ用一時保存部６２は、文字データに関するディスプレイリストに対して画像生成した画像データを格納するためのメモリ領域である。
イメージハッシュ用一時保存部６３は、イメージデータに関するディスプレイリストに対して画像生成した画像データを格納するためのメモリ領域である。
【０１０７】
また、本実施例の記憶部４６の正常データ格納部５７に格納される比較結果格納テーブルは、図１９に示すように、各１行に一つの印刷ジョブのジョブ名、そのページ番号、正常データのジョブハッシュ値と、一つの描画対象別（例えば、図形）のコマンドハッシュ値、画像ハッシュ値が登録され、一つの印刷ジョブの正常データは描画対象毎に３行で登録される。このような格納形式にすることで、同一ジョブの同一ページに対して、３つの描画対別に算出したコマンドハッシュ値を、正常データ格納部５７に格納することができる。
【０１０８】
また、記憶部４６の比較結果格納部５８に格納される比較結果格納テーブルは、図２０に示すように、各１行に現在処理中の印刷データに対応するジョブ名、ジョブハッシュ値比較結果、コマンドハッシュ値比較結果、画像ハッシュ値比較結果が格納され、コマンドハッシュ値比較結果および画像ハッシュ値比較結果は、それそれ３つの描画対象（図形、文字、イメージ）に分けて格納される。このように格納することで、描画対象別にハッシュ値の比較結果を格納できるようになる。なお、同一ページ内中には複数のイメージ、図形、文字が存在することになるが、同一ページ内の同種の描画対象別にハッシュ値を加算してハッシュ値を算出するようにする。
【０１０９】
以下に、上記の構成のプリンタ２による各動作モードにおける処理動作について説明する。
本実施例の通常モードによる印刷処理の処理動作および制限モードによる不具合検出処理の処理動作は、上記実施例１で図１０、図１１を用いて説明した処理動作と同様であるので、その説明を省略する。
【０１１０】
また、本実施例の正常データ登録モードによる正常データ登録処理の処理動作および検証モードによる不具合検出処理の処理動作は、上記実施例１で図１２、図１３を用いて説明した処理動作と基本的には同様であるが、コマンドハッシュ値を描画対象毎（イメージ、図形、文字の３種類）に算出すること、および、画像ハッシュ値を描画対象毎（イメージ、図形、文字の３種類）に生成するところが相違する。以下、その相違部分について説明する。
【０１１１】
本実施例において、コマンドハッシュ値を算出する場合は、上記した図１２のステップＳＢ１０、または図１３のステップＳＣ１４において、主制御部４５は、ＰＤＬデータ解析部５０の解析範囲検出部５０ａによって、コマンドハッシュ値の算出対象とする解析指定範囲の開始を指定するコマンド（図５の構成要素３７）と終了を指定するコマンド（図５の構成要素４３）とを検出し、これらの間に挟まれた描画データ（図５の構成要素３８〜構成要素４２）をハッシュ値算出部５２へ送出するときに、ハッシュ値算出対象制御部５０ｂが解析指定範囲の描画データを３つの描画対象毎に分けて、ハッシュ値算出部５２に送出する。このため、ハッシュ値算出部５２は、３つの描画対象毎にハッシュ値算出ができるように、内部処理状態を３つの描画対象用に別々に持たせて構成されており、図１２のステップＳＢ１１、または図１３のステップＳＣ１５において、主制御部４５は、解析範囲検出部５０ａから送出された描画データを受取ったハッシュ値算出部５２によって、受取った描画データのコマンドを基に、コマンドハッシュ値を算出するときに、受取った３つの描画対象毎の描画データのコマンドを基に、各描画対象別にコマンドハッシュ値を算出する。
【０１１２】
また、図１２のステップＳＢ１１において、ハッシュ値算出部５２によって、正常データ格納部５７の正常データ登録テーブルの、受信した印刷ジョブのジョブ名に対応するコマンドハッシュ値欄に算出したコマンドハッシュ値を書込むときに、ハッシュ値算出部５２によって、本実施例の正常データ登録テーブル（図１９参照）に描画対象別に設けられている３行のコマンドハッシュ値欄に、描画対象別に算出したコマンドハッシュ値をそれぞれ書込む。
【０１１３】
更に、図１３のステップＳＣ１６において、主制御部４５は、ハッシュ値比較部５３によって、ハッシュ値算出部５２から受取ったコマンドハッシュ値と、正常データ格納部５７に同一ジョブ名で登録されている正常コマンドハッシュ値とを比較するときに、ハッシュ値比較部５３によって、ハッシュ値算出部５２から受取った３つの描画対象別のコマンドハッシュ値と、前記で正常データ格納部５７に同一ジョブ名で登録されている３つの描画対象別の正常コマンドハッシュ値とを比較し、ステップＳＣ１７において、ハッシュ値比較部５３によって、比較結果格納部５８の比較結果格納テーブルに受信した印刷ジョブのジョブ名に対応するコマンドハッシュ値比較結果欄に算出したコマンドハッシュ値の比較結果（一致／不一致）書込むときに、ハッシュ値比較部５３によって、本実施例の比較結果格納テーブル（図２０参照）のコマンドハッシュ値比較結果欄に設けられている３つの描画対象別のコマンドハッシュ値比較結果欄に、描画対象別に算出したコマンドハッシュ値の比較結果（一致／不一致）をそれぞれ書込む。
【０１１４】
また、ステップＳＣ１７において、比較結果が不一致になったときの表示操作部４７による表示方法は、図２１（ａ）に示すように、コマンドハッシュ値の不一致の表示だけでなく、コマンドハッシュ値の不一致が発生した描画対象名を合わせて表示する。
次に、本実施例において、画像ハッシュ値を算出する場合の処理動作について説明する。
【０１１５】
図１２のステップＳＢ１３、または図１３のステップＳＣ１９において、主制御部４５は、ページ画像生成部５１によって、ディスプレイリストで指定された解析指定範囲の解析開始指示と、解析終了指示を検出し、解析開始指示から解析終了指示までの間に存在するディスプレイリストを抽出するときに、解析指定範囲のディスプレイリストを３つの描画対象毎に分類して、図形、文字、イメージに対応するディスプレイリストを抽出し、ステップＳＢ１４、または図１３のステップＳＣ２０において、ページ画像生成部５１によって、抽出された解析指定範囲のディスプレイリストを基に、ハッシュ用一時保存部５９に解析指定範囲の画像を形成するときに、ページ画像生成部５１によって、抽出された図形、文字、イメージに対応するディスプレイリストを基に、それぞれ図形ハッシュ用一時保存部６１、文字ハッシュ用一時保存部６２、イメージハッシュ用一時保存部６３に、それぞれの描画対象の画像を形成する。
【０１１６】
また、図１２のステップＳＢ１５、または図１３のステップＳＣ２１において、主制御部４５は、ページ画像生成部５１によって、ハッシュ用一時保存部５９に形成した画像領域から画像ハッシュ値の算出対象外となる画像領域をクリアするときに、３つの図形ハッシュ用一時保存部６１、文字ハッシュ用一時保存部６２、イメージハッシュ用一時保存部６３にそれぞれ形成した画像領域から画像ハッシュ値の算出対象外となる画像領域をクリアする。
【０１１７】
更に、図１２のステップＳＢ１６、または図１３のステップＳＣ２２において、主制御部４５は、ハッシュ値算出部５２によって、ハッシュ用一時保存部５９に形成された画像データを読込んで画像ハッシュ値を算出するときに、ハッシュ値算出部５２によって、３つの図形ハッシュ用一時保存部６１、文字ハッシュ用一時保存部６２、イメージハッシュ用一時保存部６３にそれぞれ形成された画像データを読込んで、各描画対象別に画像ハッシュ値を算出する。
なお、図１２のステップＳＢ１６においては、上記描画対象別のコマンドハッシュ値の場合と同様に、ハッシュ値算出部５２によって、本実施例の正常データ登録テーブル（図１９参照）に描画対象別に設けられている３行の画像ハッシュ値欄に、描画対象別に算出した画像ハッシュ値をそれぞれ書込む。
【０１１８】
図１３のステップＳＣ２３においては、上記描画対象別のコマンドハッシュ値の場合と同様に、ハッシュ値比較部５３によって、ハッシュ値算出部５２から受取った３つの描画対象別の画像ハッシュ値と、前記で正常データ格納部５７に同一ジョブ名で登録されている３つの描画対象別の正常画像ハッシュ値とを比較し、ステップＳＣ２４においては、ハッシュ値比較部５３によって、本実施例の比較結果格納テーブル（図２０参照）の画像ハッシュ値比較結果欄に設けられている３つの描画対象別の画像ハッシュ値比較結果欄に、描画対象別に算出した画像ハッシュ値の比較結果（一致／不一致）をそれぞれ書込む。
【０１１９】
また、ステップＳＣ２３において、比較結果が不一致になったときの表示操作部４７による表示方法は、図２１（ｂ）に示すように、コマンドハッシュ値の不一致の表示だけでなく、画像ハッシュ値の不一致が発生した描画対象名を合わせて表示する。
また、ステップＳＣ３１において、比較結果が不一致になったときの表示操作部４７による表示方法は、図２１（ｃ）に示すように、画像ハッシュ値の不一致の表示だけでなく、画像ハッシュ値の不一致が発生した描画対象名を合わせて表示した、ハッシュ値不一致による中断画面を表示する。
【０１２０】
なお、本実施例では、３種類の描画対象毎にコマンドハッシュ値および画像ハッシュ値を算出するとして説明したが、ＰＤＬのコマンド体系によっては、描画対象の種別を更に増加させてもよい。
また、本実施例では、３種類の描画対象毎にコマンドハッシュ値および画像ハッシュ値を算出するとして説明したが、ユーザからの指示によって、特定の描画対象のみについてハッシュ値を算出するようにしてもよく、画像ハッシュ値の算出を省略するようにしてもよい。このようにすれば、ユーザが検出したい不具合の発生原因をユーザの状況に応じて、必要最小限の処理時間で行うことができる。
【０１２１】
以上説明したように、本実施例では、上記実施例１と同様の効果に加えて、図形、文字、イメージの３種類の描画対象毎にコマンドハッシュ値と画像ハッシュ値を算出するので、印刷不具合が発生した場合に、描画対象種別の内の図形、文字、イメージのどこに不具合発生原因があるかまで検出することができ、その後の原因調査における不具合解析時間を更に短縮することができる。
なお、上記各実施例においては、解析対象領域等の座標値の単位は、ＰＤＬによって定義される単位系であるとして説明したが、解析対象領域等の座標値の単位は、ｍｍ単位系や、印刷解像度のドット数に基づいた単位系等であってもよい。
【０１２２】
また、上記各実施例においては、ハッシュ値算出用のアルゴリズムは、ＭＤ５方式を用いるとして説明したが、比較的容易にハッシュ値を算出することができるチェックサム方式を用いるようにしてもよい。
更に、上記各実施例においては、制限モードでは、改行なしや白紙連続による異常を検出したら処理を中断し異常を検出しない場合は用紙に印刷を行うとして説明したが、制限モード中であっても、検証モードとして説明した各ハッシュ値を正常データと比較するようにして異常を検出するようにしてもよい。その場合は、異常を検出しない場合には用紙に印刷を行うので、ユーザはこの状態で不具合現象が発生するかどうかを、しばらく監視することができ、かつ異常が発生した場合は、異常を検出したときの印刷データを取得できるため、印刷システムにおける不具合の発生原因の調査を、通常の運用形態において同時に並行して行うことができる。
【符号の説明】
【０１２３】
１    上位装置
２    プリンタ
３    ネットワーク
４    印刷部
５    操作パネル
６    給紙トレイ
７    バス
８    ＣＰＵ
９    ＲＡＭ
１０  ハードディスク
１１  ネットワークインタフェース
１２  液晶パネル
１３  操作ボタン
１３ａ  上ボタン
１３ｂ  下ボタン
１３ｃ  決定ボタン
１３ｄ  戻るボタン
１３ｅ  オンラインボタン
１３ｆ  キャンセルボタン
１５  制御部
１６、４６  記憶部
１７  中間データ格納部
１８  プリンタドライバ
１９  印刷ジョブ名指定部
２０  動作モード指定部
２１  解析範囲指定部
２２  印刷データ送信部
３１〜４４、６５  構成要素
４５  主制御部
４７  表示操作部
４８  印刷データ受信部
４９  ジョブ制御部
４９ａ  動作モード検出部
４９ｂ  同一ジョブ検出部
５０  ＰＤＬデータ解析部
５０ａ  解析範囲検出部
５０ｂ  ハッシュ値算出対象制御部
５１  ページ画像生成部
５２  ハッシュ値算出部
５３  ハッシュ値比較部
５４  印刷制御部
５５  印刷データ格納部
５６  動作モード格納部
５７  正常データ格納部
５８  比較結果格納部
５９  ハッシュ用一時保存部
６１  図形ハッシュ用一時保存部
６２  文字ハッシュ用一時保存部
６３  イメージハッシュ用一時保存部
【図１】
2014037068.tif 000003
【図２】
2014037068.tif 000004
【図３】
2014037068.tif 000005
【図４】
2014037068.tif 000006
【図５】
2014037068.tif 000007
【図６】
2014037068.tif 000008
【図７】
2014037068.tif 000009
【図８】
2014037068.tif 000010
【図９】
2014037068.tif 000011
【図１０】
2014037068.tif 000012
【図１１】
2014037068.tif 000013
【図１２】
2014037068.tif 000014
【図１３】
2014037068.tif 000015
【図１４】
2014037068.tif 000016
【図１５】
2014037068.tif 000017
【図１６】
2014037068.tif 000018
【図１７】
2014037068.tif 000019
【図１８】
2014037068.tif 000020
【図１９】
2014037068.tif 000021
【図２０】
2014037068.tif 000022
【図２１】
2014037068.tif 000023