(57)【要約】【課題】印刷の不具合を素早く且つ正確に検出することが可能な印刷システムを提供する。【解決手段】印刷システムは、印刷装置（プリンタ２で例示）とプリンタ２に対し印刷指示を行うコンピュータ（ＰＣ１で例示）とが接続されてなる。ＰＣ１は、アプリケーションから受信した文書データから印刷制御データを生成するプリントデータ生成部１１ｂと、生成された印刷制御データを用いてビットマップデータを生成するビットマップデータ生成部１１ｃとを有する。プリンタ２は、ＰＣ１から受け取った印刷制御データからビットマップデータを生成するビットマップデータ生成部２１ｂを有する。プリンタ２（又はＰＣ１）は、ビットマップデータ生成部１１ｃで生成されたビットマップデータと、ビットマップデータ生成部２１ｂで生成されたビットマップデータとを比較するマッチング部２１ｃを有する。【選択図】図１
2008257615.tif 000002
【特許請求の範囲】
【請求項１】
印刷装置と、該印刷装置に対し印刷指示を行うコンピュータとが接続された印刷システムであって、
前記コンピュータは、アプリケーションから受信した文書データから印刷制御データを生成する印刷制御データ生成手段と、該生成された印刷制御データを用いてビットマップデータを生成するビットマップ生成手段とを有し、
前記印刷装置は、前記印刷制御データ生成手段で生成された印刷制御データからビットマップデータを生成する印刷装置側ビットマップ生成手段を有し、
前記コンピュータ又は前記印刷装置は、前記ビットマップ生成手段で生成されたビットマップデータと、前記印刷装置側ビットマップ生成手段で生成されたビットマップデータとを比較する比較手段を有することを特徴とする印刷システム。
【請求項２】
前記コンピュータ又は前記印刷装置は、前記比較手段による比較結果に基づいて印刷実行の可否を決定する印刷可否決定手段を有することを特徴とする請求項１に記載の印刷システム。
【請求項３】
前記ビットマップ生成手段は、前記印刷制御データ生成手段で生成された印刷制御データの一部のみからビットマップデータを生成することを特徴とする請求項１又は２に記載の印刷システム。
【請求項４】
前記ビットマップ生成手段は、前記印刷制御データ生成手段で生成された印刷制御データの一部として、該印刷制御データ中にある開始コマンドから所定位置のコマンドまでから、ビットマップデータを生成することを特徴とする請求項３に記載の印刷システム。
【請求項５】
前記ビットマップ生成手段は、前記印刷制御データ生成手段で生成された印刷制御データの一部として、該印刷制御データ中に含まれる所定画像から、ビットマップデータを生成することを特徴とする請求項３に記載の印刷システム。
【請求項６】
前記比較手段は、前記ビットマップ生成手段で生成されたビットマップデータの位置情報に基づいて、前記比較を実行することを特徴とする請求項３乃至５のいずれか１項に記載の印刷システム。
【請求項７】
前記印刷装置側ビットマップ生成手段は、前記ビットマップ生成手段で生成されたビットマップデータの位置情報に基づいて、ビットマップデータの生成を実行し、前記比較手段は、前記印刷装置側ビットマップ生成手段で前記位置情報に基づいて生成されたビットマップデータと、前記ビットマップ生成手段で生成されたビットマップデータとを比較することを特徴とする請求項３乃至５のいずれか１項に記載の印刷システム。
【請求項８】
前記コンピュータ又は前記印刷装置は、前記位置情報をユーザに指定させるユーザ指定手段を有し、前記ビットマップ生成手段は、前記印刷制御データ生成手段で生成された印刷制御データのうち、前記ユーザ指定手段で指定された位置情報が示すデータのみから、ビットマップを生成することを特徴とする請求項６又は７に記載の印刷システム。
【請求項９】
印刷指示を行うコンピュータが接続される印刷装置であって、前記コンピュータで生成された印刷制御データ及び該印刷制御データから生成されたビットマップデータを受信するデータ受信手段と、該受信した印刷制御データからビットマップデータを生成する印刷装置側ビットマップ生成手段と、前記データ受信手段で受信したビットマップデータと、前記印刷装置側ビットマップ生成手段で生成されたビットマップデータとを比較する比較手段とを有することを特徴とする印刷装置。
【請求項１０】
印刷指示を行うコンピュータが接続される印刷装置であって、前記コンピュータで生成された印刷制御データを受信するデータ受信手段と、該受信した印刷制御データからビットマップデータを生成する印刷装置側ビットマップ生成手段と、該生成されたビットマップデータを、前記コンピュータで前記印刷制御データから生成したビットマップデータと該コンピュータ内で比較するために、該コンピュータに返信するビットマップ返信手段とを有することを特徴とする印刷装置。
【請求項１１】
印刷指示を行う対象となる印刷装置が接続されるコンピュータであって、アプリケーションから受信した文書データから印刷制御データを生成する印刷制御データ生成手段と、該生成された印刷制御データを用いてビットマップデータを生成するビットマップ生成手段と、前記印刷制御データ生成手段で生成された印刷制御データと、前記ビットマップ生成手段で生成されたビットマップデータとを前記印刷装置に送信するデータ送信手段とを有することを特徴とするコンピュータ。
【請求項１２】
印刷指示を行う対象となる印刷装置が接続されるコンピュータであって、アプリケーションから受信した文書データから印刷制御データを生成する印刷制御データ生成手段と、該生成された印刷制御データを用いてビットマップデータを生成するビットマップ生成手段と、前記印刷制御データ生成手段で生成された印刷制御データを前記印刷装置に送信するデータ送信手段と、前記印刷装置で前記印刷制御データから生成されたビットマップデータを、該印刷装置から受信するビットマップ受信手段と、該受信したビットマップデータと、前記ビットマップ生成手段で生成されたビットマップデータとを比較する比較手段とを有することを特徴とするコンピュータ。
【請求項１３】
印刷装置の制御部に組み込み、該制御部を、請求項１乃至８のいずれか１項に記載の印刷システムにおける印刷装置の各手段として機能させるための印刷プログラム。
【請求項１４】
コンピュータを、請求項１乃至８のいずれか１項に記載の印刷システムにおけるコンピュータの各手段として機能させるための印刷プログラム。
【請求項１５】
印刷装置と、該印刷装置に対し印刷指示を行うコンピュータとが接続された印刷システムにおける印刷プログラム検証方法であって、前記コンピュータで、アプリケーションから受信した文書データから印刷制御データを生成するステップと、前記コンピュータで、該生成された印刷制御データを用いてビットマップデータを生成するビットマップ生成ステップと、前記印刷装置で、前記生成された印刷制御データからビットマップデータを生成する印刷装置側ビットマップ生成ステップと、前記コンピュータ又は前記印刷装置のいずれかで、前記ビットマップ生成ステップで生成されたビットマップデータと、前記印刷装置側ビットマップ生成ステップで生成されたビットマップデータとを比較する比較ステップとを含むことを特徴とする印刷プログラム検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷装置とコンピュータとが接続された印刷システム、その印刷装置、そのコンピュータ、それらに組み込むための印刷プログラム、及びその印刷システムにおける印刷プログラム検証方法に関する。
【背景技術】
【０００２】
従来から、印刷装置とパーソナルコンピュータ（ＰＣ）の端末とが接続され、端末から印刷装置にＰＳ（PostScript）やＰＣＬ（Printer Control Language）等のプリンタ言語（ページ記述言語）により記述された印刷制御データで印刷指示を行い、印刷装置で印刷させる印刷システムが知られている。印刷装置では、受信した画像データをプリンタコントローラでビットマップ形式に変換して印刷を実行する。しかし、このような変換が正常に実行できず、無意味な文字列が羅列した印字紙や白紙が出力される、といった不具合が生ずる場合がある。
【０００３】
これに対し、特許文献１には、文字化け等により端末から印刷指示された画像データと異なるデータが印刷され始めたときに、当該印刷処理を自動的に停止し、記録紙の節約を行う画像形成装置が開示されている。この画像形成装置では、端末から送出された第１の画像形式を有する画像データを、ビットマップ展開部において第２の画像形式に変換し、比較部で、この第２の画像形式の画像データと、当該画像形成処理が指示された画像データとが一致するか否かを判定することで、不具合を検出している。
【０００４】
実際、第１の画像形式の画像データと第２の画像形式の画像データとの直接比較は困難であるため、次のような方法で不具合の検出を行っている。（１）第２の画像形式の画像データに、例えば意味不明な文字列がないか、複数部数の画像形成が指示されていないのに同じ内容が印刷された記録紙が複数出力されていないか等を判定手段が検知することにより文字化け等が発生しているか否かを判定する。（２）第２の画像形式の画像データ（画像形成装置でレンダリングしたビットマップデータ）と、レンダリング後に印刷した用紙からスキャンしたビットマップデータとの比較により、印刷不具合を検出している。
【特許文献１】特開２００６−１８５３８８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記（１）の不具合検出方法では、意味不明な文字列を検出する場合には検出精度や処理速度の点で難があり、また部数で判定する場合には２ページ分以上の画像データを受信しない限り不具合の検出ができないため処理速度が遅い。さらに、上記（１）の不具合検出方法では、文字化けには対応できるが、原画像がそのまま印刷されているか否かの判定ができない。
【０００６】
また、上記（２）の不具合検出方法では、スキャナの解像度や位置ずれにより、印刷用紙を正確にスキャンできず、結果として正しく不具合を検出できないケースが生じるだけでなく、不具合検出を行なうためのテスト印刷を行う手間がかかり処理が遅い上に、テスト印刷用紙を無駄に使ってしまうといった問題がある。
【０００７】
本発明は、上述のごとき実情に鑑みてなされたものであり、印刷の不具合を素早く且つ正確に検出することが可能な印刷システム、そのシステムにおける印刷装置、そのシステムにおけるコンピュータ、その印刷装置やコンピュータに組み込む印刷プログラム、並びに、その印刷システムにおける印刷プログラム検証方法の提供を、その目的とする。
【課題を解決するための手段】
【０００８】
上記の課題を解決するために、本発明に係る印刷システムは、印刷装置と、該印刷装置に対し印刷指示を行うコンピュータとが接続された印刷システムであって、前記コンピュータは、アプリケーションから受信した文書データから印刷制御データを生成する印刷制御データ生成手段と、該生成された印刷制御データを用いてビットマップデータを生成するビットマップ生成手段とを有し、前記印刷装置は、前記印刷制御データ生成手段で生成された印刷制御データからビットマップデータを生成する印刷装置側ビットマップ生成手段を有し、前記コンピュータ又は前記印刷装置は、前記ビットマップ生成手段で生成されたビットマップデータと、前記印刷装置側ビットマップ生成手段で生成されたビットマップデータとを比較する比較手段を有することを特徴としたものである。
【０００９】
また、本発明に係る印刷装置は、上述の印刷システムにおける印刷装置であり、本発明に係るコンピュータは、上述の印刷システムにおけるコンピュータである。
【００１０】
また、本発明に係る印刷装置側の印刷プログラムは、印刷装置の制御部に組み込み、該制御部を、上述の印刷システムにおける印刷装置の各手段として機能させることを特徴としたものであり、本発明に係るコンピュータ側の印刷プログラムは、コンピュータを、上述の印刷システムにおけるコンピュータの各手段として機能させることを特徴としたものである。
【００１１】
さらに、本発明に係る印刷プログラム検証方法は、印刷装置と、該印刷装置に対し印刷指示を行うコンピュータとが接続された印刷システムにおける印刷プログラム検証方法であって、前記コンピュータで、アプリケーションから受信した文書データから印刷制御データを生成するステップと、前記コンピュータで、該生成された印刷制御データを用いてビットマップデータを生成するビットマップ生成ステップと、前記印刷装置で、前記生成された印刷制御データからビットマップデータを生成する印刷装置側ビットマップ生成ステップと、前記コンピュータ又は前記印刷装置のいずれかで、前記ビットマップ生成ステップで生成されたビットマップデータと、前記印刷装置側ビットマップ生成ステップで生成されたビットマップデータとを比較する比較ステップとを含むことを特徴としたものである。
【発明の効果】
【００１２】
本発明によれば、コンピュータと印刷装置とが接続された印刷システムにおいて、印刷の不具合を素早く且つ正確に検出することが可能となる。
【発明を実施するための最良の形態】
【００１３】
本発明に係る印刷システムは、印刷指示を行う対象となる印刷装置と、その印刷装置に対し印刷指示を行うコンピュータとが接続されたシステムであり、印刷装置側の印刷プログラム又はコンピュータ側の印刷プログラム（通常、プリンタドライバという）の不具合を検証するものである。以下、コンピュータの一例としてＰＣを挙げて説明するが、印刷装置に対し印刷指示を行う印刷制御装置として機能するものであれば適用可能である。また、印刷装置の一例としてのプリンタを挙げて説明するが、カラー機／モノクロ機のいずれでも適用できることは言及するまでもなく、またプリンタ機能以外の機能（ＦＡＸ機能、ファイリング機能、スキャン機能等）をもった複合機などの他の装置も適用可能である。
【００１４】
図１は、本発明の一実施形態に係る印刷システムの構成例を示すブロック図で、図中、１はＰＣ、２はプリンタである。ＰＣ１は、全体を制御する制御部１１、表示パネル等の表示部１２、キーボードやポインティングデバイス等の操作部１３、及び外部との通信を行うネットワークＩ／Ｆ１４を備える。一方、プリンタ２は、全体を制御する制御部２１、画像形成部（プリンタエンジン）２２、タッチパネル等の表示操作部２３、及び外部との通信を行うネットワークＩ／Ｆ２４を備える。
【００１５】
ＰＣ１側の制御部１１は、文書データ受信部１１ａ、プリントデータ生成部１１ｂ、ビットマップデータ生成部１１ｃ、データ送信部１１ｄ、及び印刷条件設定部１１ｅを備える。例えば、制御部１１は、ＣＰＵ、プログラム格納領域としてのＲＯＭ、作業領域としてのＲＡＭ等のハードウェアを備え、ＲＯＭやハードディスクに所定の制御プログラムを格納しておくとよい。これにより、ＣＰＵがＲＯＭ等に格納された所定の制御プログラムをＲＡＭ上に読み出して実行し、各部１１ａ〜１１ｅの機能を含め制御部１１の機能を実現することができる。この所定の制御プログラムは、一般的にビットマップデータ生成部１１ｃを除いた部分でプリンタドライバと呼ばれる。
【００１６】
プリンタ２側の制御部２１は、データ受信部２１ａ、ビットマップデータ生成部２１ｂ、マッチング部２１ｃ、及び印刷キャンセル指示部２１ｄを備える。例えば、制御部２１も制御部１１と同様に、ＣＰＵ、ＲＯＭ、ＲＡＭ等のハードウェアを備え、ＲＯＭに所定の制御プログラム（ファームウェア）を格納しておくことで、各部２１ａ〜２１ｄの機能を含め制御部２１の機能を実現することができる。ビットマップデータ生成部２１ｂ（及び印刷キャンセル指示部２１ｄ）等は、所謂プリンタコントローラと呼ばれる部位である。
【００１７】
上述のごとき構成の印刷システムにおける各部の詳細並びにその動作について、図２乃至図５を参照しながら説明する。図２は、図１の印刷システムにおけるＰＣ側の処理例を説明するためのフロー図、図３は、図２の処理のうちビットマップ生成処理の一例を説明するためのフロー図、図４は、図１の印刷システムにおけるプリンタ側の処理例を説明するためのフロー図である。図５は、図２乃至図４の説明で用いる具体的なデータ群の一例を示す概略図で、図５（Ａ）はＰＣ側の処理で生じる印刷制御データ、ビットマップデータ、及び位置情報の一例を、図５（Ｂ）はプリンタ側のマッチング処理で用いる２つのビットマップデータの一例を示している。
【００１８】
文書データ受信部１１ａは、印刷指示により、ＰＣ１の内部に実行可能に組み込まれたアプリケーションから文書データを受信する（ステップＳ１）。ＰＣ１は、アプリケーションから受信した文書データから印刷制御データを生成する印刷制御データ生成手段を備える。プリントデータ生成部１１ｂは、その一例であり、ステップＳ１で受信した文書データ（例えば図５（Ａ）の文書データ３０）を基に、プリンタ２で解析可能な印刷制御データ（以下、プリントデータという）３２を生成する（ステップＳ２）。
【００１９】
印刷条件設定部１１ｅは、表示部１２及び操作部１３でなるユーザＩ／Ｆでのユーザ操作に基づき、印刷部数や印刷解像度等の印刷条件を設定する。ステップＳ２においてプリントデータ生成部１１ｂは、ここで設定された印刷条件に基づいてプリントデータを生成することとなる。
【００２０】
また、ＰＣ１は、生成されたプリントデータを用いてビットマップデータを生成するビットマップ生成手段を備える。ビットマップデータ生成部１１ｃは、その一例であり、ステップＳ２で生成されたプリントデータ３２を基にビットマップデータ３１を生成する（ステップＳ３）。
【００２１】
ステップＳ３において、ビットマップデータ生成部１１ｃは、全てのプリントデータをビットマップデータに変換してもよいし、一部のプリントデータをビットマップデータに変換してもよい。すなわち、ビットマップデータ生成部１１ｃは、ステップＳ２で生成されたプリントデータの全部又は一部をレンダリングしてビットマップデータに展開する。図５（Ａ）の例では、文書データ３０における上から１／３の部分が、ビットマップデータ３１として生成されている。
【００２２】
ビットマップデータ生成部１１ｃで一部のプリントデータからビットマップデータを生成した場合、そのビットマップデータの位置情報３３を抽出又は作成する。例えば、図３のビットマップ生成処理Ａのように、プリントデータ３２の一部として、開始コマンドから所定位置までのプリントデータから、すなわちプリントデータ３２中にある開始コマンドから所定位置のコマンドまでから、ビットマップデータ３１を生成してもよい（ステップＳ１１）。ステップＳ１１のような生成処理を行った場合、ビットマップデータ生成部１１ｃが、その所定位置を位置情報３３とするとよい（ステップＳ１２）。
【００２３】
ＰＣ１は、生成されたプリントデータ及びビットマップデータと位置情報をプリンタ２に送信するデータ送信手段を有する。データ送信部１１ｄは、その一例であり、プリンタ２に対して、ステップＳ２で生成されたプリントデータ３２、ステップＳ３で生成されたビットマップデータ３１、及びステップＳ３（Ｓ１２）で得たビットマップデータの位置情報（座標等）３３の送信を開始する（ステップＳ４）。ここで送信されるデータの具体的な例については図８及び図９を参照して後述する。
【００２４】
また、制御部１１は図示しないデータ受信部を設けるなどにより、データ送信開始後、後述するプリンタ２からの印刷キャンセル指示（実際には送信中止指示）を受信することが可能となっている。データ送信部１１ｄは、この印刷キャンセル指示を受信した場合（ステップＳ５でＹＥＳ）、データ送信を中止し（ステップＳ６）、ユーザに印刷キャンセルを表示部１２で通知して（ステップＳ７）、ＰＣ１側の処理を終了する。一方、ステップＳ５でＮＯの場合にはデータ送信が完了となったことを意味し、ＰＣ１側の処理をそのまま終了する。
【００２５】
一方、プリンタ２側の処理は、図４に示すようにまずデータ送信部１１ｄで送信されたデータを受信することから開始され、この処理はプリンタ２にデータ受信手段を備えることで実現できる。データ受信部２１ａ及びネットワークＩ／Ｆ２４は、そのデータ受信手段の一例であり、ＰＣ１で生成されたプリントデータ３２、そのプリントデータ３２から生成されたビットマップデータ３１、及び位置情報３３を受信する（ステップＳ２１）。
【００２６】
プリンタ２は、ＰＣ１から受け取ったプリントデータからビットマップデータを生成するプリンタ側ビットマップ生成手段を備える。ビットマップデータ生成部２１ｂは、その一例であり、データ受信部２１ａで受信したプリントデータ３２から、図５（Ｂ）で例示のごときビットマップデータ４０を生成を開始する（ステップＳ２２）。
【００２７】
ビットマップデータ生成部２１ｂは、プリントデータをレンダリングしていきビットマップデータに展開していくが、受信した位置情報３３が示す位置までのビットマップデータ４１を生成したか否かを判定し（ステップＳ２３）、生成が完了した段階で次のステップＳ２４へ進む。
【００２８】
このように、プリンタ側ビットマップ生成手段は、ＰＣ１側で生成されたビットマップデータの位置情報３３に基づいて、ビットマップデータの生成を実行することが好ましい。位置情報３３に基づく生成とは、その位置情報３３が示す位置までのビットマップデータ４１をまず生成し、（１）そのまま処理を終了すること、或いは（２）後述の比較により正常と判定された場合のみ他の部分のプリントデータも展開して全てのビットマップデータ４０を得ることなどが挙げられる。ここでは上記（２）を採用して説明している。
【００２９】
プリンタ２は、プリンタ２側で生成されたビットマップデータと、ＰＣ１側で生成されたビットマップデータとを比較する比較手段を備える。マッチング部２１ｃは、その比較手段の一例であり、ビットマップデータ生成部２１ｂで生成したビットマップデータ４１と、ＰＣ１側で生成されデータ受信部２１ａで受信したビットマップデータ３１とをマッチングする（ステップＳ２４）。ビットマップデータ同士のマッチングは公知の方法を用いればよく、どの程度の合致を同一のデータとみなすかも適宜決めておけばよい。
【００３０】
そして、マッチング部２１ｃは、ステップＳ２４でマッチング（比較）した結果を判定し（ステップＳ２５）、同一である場合には、ビットマップデータ生成部２１ｂに残りのビットマップデータを生成させ、画像形成部２２に対して印刷実行を指示し、印刷を行わせる（ステップＳ２６）。但し、ステップＳ２６の処理は必須ではない。
【００３１】
一方、ステップＳ２５でマッチング結果が同一でなかった場合（不一致の場合）には、ビットマップデータ生成部１１ｃ又はビットマップデータ生成部２１ｂのビットマップ生成処理に不具合が生じている可能性がある。従って、印刷キャンセル指示部２１ｄが、ＰＣ１に対してネットワークＩ／Ｆ２４を介して印刷キャンセルを指示する（ステップＳ２７）。ステップＳ２７の指示により、図２のステップＳ５の判定結果がＹＥＳとなり、送信途中のデータの送信が中止され、ユーザに印刷キャンセルが通知される（ステップＳ６，Ｓ７）。なお、ここで送信途中のデータとは、検証後の時点であるためプリントデータの残りを指す。
【００３２】
さらに、印刷キャンセル指示部２１ｄは、ステップＳ２７の前後で、ビットマップデータ生成部２１ｂに対し残りのビットマップデータの生成を中止する指示を送って中止させる（ステップＳ２８）。ステップＳ２８では、同時に、印刷キャンセル指示部２１ｄが画像形成部２２に対して印刷キャンセルを指示するようにしてもよい。そのため、プリンタ２は比較結果に基づいて印刷実行の可否を決定する印刷可否決定手段を備えるとよい。ここで印刷実行が否の場合には当然残りのレンダリングも中止することを意味する。なお、ＰＣ１側に印刷可否決定手段を設けてもよく、その場合には決定した結果をプリンタ２側に送信して残りのレンダリングや印刷を停止させるとよい。但し、不一致の結果を確認するために印刷を実行するようにしてもよい。
【００３３】
また、ステップＳ２４のマッチング結果はユーザに提示するだけでもよい。提示方法としては、例えば同一でなかった場合のみ、プリンタ２側に警告表示したり、ＰＣ１側に警告表示や実際の２つのビットマップデータ生成結果を並べて表示してもよい。ＰＣ１側での表示は、プリンタ２からマッチング結果或いは警告情報やプリンタ２で生成されたビットマップデータ４１（又はビットマップデータ４０）を送信することで実現できる。
【００３４】
また、文書データ受信部１１ａで受信した文書データが複数ページにわたる場合には、最初のページ又は最初のページの一部だけ検証してもよいし、各ページに対し同じ所定位置のビットマップデータでページ毎に検証してもよい。
【００３５】
また、他の形態として、位置情報３３は元々ユーザ指定により決定されるものとしてもよい。そのため、位置情報３３をユーザに指定させるユーザ指定手段をＰＣ１又はプリンタ２に設けるとよく、例えば表示部１２及び操作部１３又は表示操作部２３で指定可能としておけばよい。そして、ＰＣ１側のビットマップデータ生成部１１ｃでは、生成されたプリントデータのうち、ユーザ指定手段で指定された位置情報が示すデータのみから、ビットマップを生成しておく。プリンタ２側のビットマップデータ生成部２１ｂにおいても、ＰＣ１から受信した位置情報に基づいて、或いはプリンタ２側でユーザ指定された場合にはその位置情報に基づいて、ビットマップデータの生成を実行し、両者を比較すればよい。なお、プリンタ２側にユーザ指定手段を設ける場合には、指定された位置情報をＰＣ１側に一度送る必要がある。
【００３６】
また、他の形態として、プリンタ側ビットマップ生成手段がＰＣ１側で生成されたビットマップデータの位置情報３３に基づいてビットマップデータの生成を実行する代わりに、比較手段が、この位置情報３３に基づいて比較を実行するように構成してもよい。例えば、図５（Ｂ）で示すように全てのビットマップデータ４０を生成してから、位置情報３３を参照してビットマップデータ４１を抽出し、それとビットマップデータ３１とを比較するとよい。
【００３７】
また、このような位置情報に基づく比較を実行する形態にあっても、上述のユーザ指定手段を設けてもよく、その場合、ＰＣ１側のビットマップ生成手段がプリントデータのうちユーザ指定手段で指定された位置情報が示すデータのみからビットマップを生成するとよい。
【００３８】
なお、ステップＳ４において、喩えビットマップデータ生成部１１ｃで一部のプリントデータからビットマップデータを生成した場合であっても、位置情報３３は送信しなくてもよく、従って抽出も実行しなくてもよい。但し、位置情報を、比較に用いる形態やプリンタ側のビットマップデータ生成部２１ｂで用いる形態においては、当然送信は必要である。位置情報３３の送信を行わない場合、プリントデータ３２全てからビットマップデータ３１を生成しているときには比較はそのまま容易に実行でき、またプリントデータ３２の一部からビットマップデータ３１を生成しているときにも、多少の速度低下を容認するのであれば合致する画像範囲を検索しながらマッチングすればよい。また、ステップＳ４では、プリンタ２の販売前の検証時には特に、位置情報３３を送信せずに、最初からプリントデータの一部のみ（但しレンダリング可能なように）を送信するような形態も採用できる。
【００３９】
以上、本発明によれば、ＰＣ１とプリンタ２とが接続された印刷システムにおいて、ＰＣ１でレンダリングしたビットマップデータをプリンタ２に送り、プリンタ２で生成したビットマップデータと比較することで、比較の際の位置ずれを生じることなく、正確に不具合検出を行うことができる。すなわち、本発明によれば、プリンタ２側の印刷プログラム（ファームウェア）とＰＣ１側の印刷プログラム（プリンタドライバ）のいずれかが誤っていることが検証できる。プリンタドライバを最初に正しくプログラミングした場合（正しいものとして取り扱った場合）にはファームウェアの検証が可能となり、逆にファームウェアを最初に正しくプログラミングした場合にはプリンタドライバの検証が可能となる。
【００４０】
このような印刷プログラムの検証はプリンタ２の販売前に基本的になされれば済む。しかし、プリンタ２を購入者（ユーザ）が使用している時にも検証を実行するようにしておき、マッチング結果が同一でなかった場合、印刷をキャンセルすると共にファームウェア又はプリンタドライバが最新に更新されているかの確認を促すような警告を提示するか、或いはこのような警告と共にこのまま印刷を実行するか否かを問い合わせてもよい。
【００４１】
また、本発明によれば、プリントデータの一部を用いる場合には特に素早い検出が可能となり、プリントデータ全部を用いた場合にも、印刷を実行する必要がないため、従来より素早い検出が可能となる。このように、本発明ではレンダリング結果を検証するだけで、検証には印刷実行を必要としないので画像形成部２２が関与しないため、ハードウェアの不具合とは別に検証できる。
【００４２】
図６は、図２の処理のうちビットマップ生成処理の他の例を説明するためのフロー図である。また、図７は、図６の処理で用いる具体的なデータ群の一例を示す概略図で、図７（Ａ）はＰＣ側の処理で生じるプリントデータ、ビットマップデータ、及び位置情報の他の例を、図７（Ｂ）はプリンタ側のマッチング処理で用いる２つのビットマップデータの他の例を示している。
【００４３】
図２のビットマップデータ生成処理（ステップＳ３）の他の例として、図６のビットマップ生成処理Ｂのように、プリントデータ中に含まれる画像のみをビットマップデータに生成するようにしてもよい。すなわち、ＰＣ１側のビットマップ生成手段は、プリントデータの一部として、そのプリントデータ中に含まれる所定画像から、ビットマップデータを生成するようにしてもよい。
【００４４】
具体的に説明すると、まず、ビットマップデータ生成部１１ｃが、プリントデータ中に含まれる画像領域（画像エリア）を抽出する（ステップＳ３１）。文書データに含まれるグラフィックスデータは、プリントデータに変換した後でも、プリントデータの一部（所定のイメージ部分）として抽出することは可能であり、またテキスト部分の抽出も可能である。
【００４５】
ビットマップデータ生成部１１ｃは、その抽出された画像領域がビットマップデータであるか否かを判定し（ステップＳ３２）、ＹＥＳの場合には抽出された画像領域をビットマップデータの位置情報とする（ステップＳ３３）。図７（Ａ）の例では、文書データ５０においてデータ５１がビットマップデータであった場合、そのデータ５１が送信対象のビットマップデータとして抽出され、ステップＳ３３でその位置情報５３がプリンタ２への送信対象の位置情報とされる。この例での位置情報５３は、プリントデータ５２中のどの位置にあるデータかを示す情報とすればよい。
【００４６】
一方、ステップＳ３２でＮＯの場合、例えば他の形式の画像データ（ＪＰＥＧデータ等のグラフィックスデータ）であった場合、ビットマップデータ生成部１１ｃは、抽出された画像領域からビットマップデータを生成し（ステップＳ３４）、抽出された画像領域をビットマップデータの位置情報とする（ステップＳ３５）。図７（Ａ）の例では、文書データ５０においてデータ５１がビットマップデータでなかった場合、そのデータ５１から送信対象のビットマップデータ５１を生成し、その位置情報５３がプリンタ２への送信対象の位置情報とされる。この例での位置情報５３は、プリントデータ５２をビットマップデータに展開したときの座標を示す情報とすればよい。
【００４７】
ステップＳ３３又はステップＳ３５の後、位置情報５３、そのビットマップデータ５１、及びプリントデータ５２が送信される。プリンタ２側では、プリントデータ５２中の位置情報５３が示す位置のデータを読み出してビットマップデータ６１のみをまず生成して、それをビットマップデータ５１と比較して検証を実行する。一方、位置情報５３として座標情報を採用している場合には、プリンタ２側では、プリントデータ５２全部から生成されたビットマップデータ６０から位置情報（座標情報）５３が示す画像領域（ビットマップデータ６１）と、ビットマップデータ５１と比較して検証を実行する。
【００４８】
このような処理はデフォルトの処理として実行できる以外に、上述したユーザ指定手段において、例えば「プリントデータ中のイメージ部分の１又は複数を自動的に検索して指定」することで実行できる。勿論、ユーザ指定手段では、逆に「文字部分の一部又は全部を自動的に検索して指定」することも可能にしておくとよい。
【００４９】
例えば、実際に印刷してみた結果、検査者が見てＰＣ１の画面上で表示された文書データと比べて記録紙上では線が薄いとかが分かったとする。その場合、検査者は画像形成部２２に問題があるのか、ファームウェア（ビットマップデータ生成部２１ｂ）に問題があるのかなどを見極める必要がある。そのような見極めを行いたい場合でも、検査者が位置情報（領域）を指定すればその領域でのマッチング結果が出るため、ユーザ指定手段を設けることは非常に有用である。このようなシーンに限らず、全ての文書データをチェックせずに済むためユーザ指定手段を設けることは有用である。
【００５０】
また、文書データ受信部１１ａで受信した文書データが複数ページにわたる場合には、最初に出てくるグラフィックスデータだけ検証するような設定でもよいし、全て或いは一部のグラフィックスデータに対し検証するような設定でもよい。
【００５１】
図８及び図９は、図２におけるデータ送信処理並びに図４におけるマッチング処理の詳細を説明するための図で、図８は元の文書データの一例を、図９は図８の文書データから生成された送信データの一例を示している。
【００５２】
図９（Ａ）で例示する送信データ８０は、図８の文書データ７０中のグラフィックスデータ７２を判定（検証）用のビットマップデータとして用いた場合の印刷ジョブである。なお、ここでは印刷ジョブと呼んでいるが、文書データから生成したプリントデータに、検証用ビットマップデータとその位置情報とを組み込んだものを例示している。但し、これらは別々のデータとして送信しても、それらがジョブ名などで関連付けられていればよく、また組み込む場合にもその形式は特に問わない。
【００５３】
より具体的に説明すると、図２、図３、及び図６のステップＳ３、Ｓ１１、及びＳ３４などで生成されたビットマップデータが、送信データ（印刷ジョブ）８０の判定用ビットマップデータ部分８１に記述されている。判定用のデータであることはコマンドによってプリンタ２で解析できる。この例では、＜ＥＳＣ＞％ｊ１Ｘが判定用ビットマップデータの開始コマンド、＜ＥＳＣ＞％ｊ０Ｘがその終了コマンドであり、その中には、＜ＥＳＣ＞＆ｕ６００Ｄ（描画用コマンド）、＜ＥＳＣ＞＊ｔ６００Ｒ（データの解像度を示すコマンド）、＜ＥＳＣ＞＊ｐ２０００ｘ１８００Ｙ（判定用の開始位置）と共に、実際のビットマップデータが＊ｂ１０００Ｗ（１ラインのデータサイズを示すコマンド）に続いて一ライン毎に記述されている。
【００５４】
また、印刷ジョブ８０には、通常の印刷に用いるプリントデータ部分８２も記述されている。さらに、判定用ビットマップデータ部分８１には上述のごとく判定用の開始位置が記述されており、この開始位置で既定された部分をプリンタ２側のビットマップデータ生成部２１ｂがプリントデータ部分８２のうち判定に用いる一部として抽出でき、図４のステップＳ２２のビットマップデータ生成処理が可能となる。
【００５５】
この例では、プリントデータ部分８２中に、＜ＥＳＣ＞＊ｐ２０００ｘ１８００Ｙ（描画開始位置）＜ＥＳＣ＞＊ｃ２３００ａ８００Ｂ（描画サイズ）＜ＥＳＣ＞：ｃ２５ｇ２Ｐ（２５％のグレースケールでその描画サイズの図形を塗りつぶす）といったコマンド８３がある。従って、上述の判定用の開始位置から描画開始位置が検索でき、そこで既定されたコマンド８３からビットマップデータ生成部２１ｂがビットマップデータを生成できる。
【００５６】
そして、マッチング部２１ｃでは、ここで生成されたビットマップデータとＰＣ１から受信した判定用ビットマップデータ部分８１とをマッチングする。
【００５７】
また、図９（Ｂ）で例示する送信データ９０は、図８の文書データ７０中の文字データ７１を判定（検証）用のビットマップデータに変換して用いた場合の印刷ジョブである。この送信データ（印刷ジョブ）９０も、判定用ビットマップデータ部分９１とプリントデータ部分９２とを含む。判定用ビットマップデータ部分９１には判定用の開始位置（ここでは＜ＥＳＣ＞＊ｐ０ｘ１００Ｙ）が含まれ、プリントデータ部分９２には「ＡＢＣＤＥＦＧＨＩＪＫＬＭＮＯＰＱＲＳＴＵ」とその描画用コマンド、データの解像度を示すコマンド、及び描画開始位置でなるコマンド９３が含まれる。
【００５８】
従って、判定用ビットマップデータ部分９１に含まれる判定用の開始位置から、描画開始位置が検索でき、そこで既定されたコマンド９３からビットマップデータ生成部２１ｂがビットマップデータを生成できる。そして、マッチング部２１ｃでは、ここで生成されたビットマップデータとＰＣ１から受信した判定用ビットマップデータ部分９１とをマッチングする。
【００５９】
このように、プリントデータのコマンドの中で文字のコマンドとイメージのコマンドとは区別でき、イメージだけのエラー検出であれば図８及び図９（Ａ）で示したようにイメージの部分だけを抽出して検証すればよく、文字だけのエラー検出であれば図８及び図９（Ｂ）で示したように文字の部分だけを抽出して検証すればよい。
【００６０】
以上、比較手段の一例としてのマッチング部２１ｃをプリンタ２側に設けた実施形態を説明したが、比較手段はＰＣ１側に設けてもよく、図１０乃至図１２を参照して、そのような形態について上述の実施形態と異なる部分のみ簡単に説明する。
【００６１】
図１０は、本発明の他の実施形態に係る印刷システムの構成例を示すブロック図、図１１は、図１０の印刷システムにおけるＰＣ側の処理例を説明するためのフロー図、図１２は、図１０の印刷システムにおけるプリンタ側の処理例を説明するためのフロー図である。
【００６２】
図１０で例示するＰＣ１側の制御部１１は、文書データ受信部１１ａ、プリントデータ生成部１１ｂ、ビットマップデータ生成部１１ｃ、データ送信部１１ｄ、及び印刷条件設定部１１ｅに加え、データ受信部１１ｆ、マッチング部１１ｇ、及び印刷キャンセル指示部１１ｈが具備されている。一方、プリンタ２側の制御部２１は、データ受信部２１ａ、ビットマップデータ生成部２１ｂ、及び印刷キャンセル指示部２１ｄに加え、データ送信部２１ｅが具備されている。
【００６３】
ここで、データ送信部１１ｄは、ビットマップデータを送信する必要はない。データ送信部２１ｅは、ビットマップデータ生成部２１ｂで生成されたビットマップデータをＰＣ１に送信する。また、マッチング部１１ｇは図１のマッチング部２１ｃと同様の処理を行い、データ受信部１１ｆはプリンタ２からビットマップデータを受信する。印刷キャンセル指示部１１ｈは、マッチング結果が不一致であった場合に、データ送信部１１ｄでの送信を中止する指示を行うと共に、プリンタ２に対して印刷実行を中止する指示を送る。プリンタ２では、この指示に基づき印刷キャンセル指示部２１ｄが画像形成部２２での印刷を実行しないようにする。
【００６４】
上述のごとき構成の印刷システムにおいて、まずＰＣ１側では、図２のステップＳ１〜Ｓ３と同様の処理を行う（ステップＳ４１〜Ｓ４３）。続いて、データ送信部１１ｄが、位置情報とプリントデータとをプリンタ２に送信開始する（ステップＳ４４）。ここでは、プリントデータの全部をプリンタ２へ全部送信しなくてよい。プリンタ２からのビットマップデータを受信を待ち（ステップＳ４５）、データ受信部１１ｆがプリンタ２からビットマップデータを受信した時点（ステップＳ４５でＹＥＳになった時点）で、マッチング部１１ｇがステップＳ４３で生成したビットマップデータとデータ受信部１１ｆで受信したビットマップデータとをマッチングする（ステップＳ４６）。続いてマッチング部１１ｇが、このマッチング結果が同一か否かを判定する（ステップＳ４７）。
【００６５】
ステップＳ４７の判定の結果、同一であった場合、プリンタ２に対し印刷続行指示を送る（ステップＳ４８）。ここでは、ステップＳ４４でプリントデータを全て送信していない場合には残りのプリントデータも送信する必要がある。一方、ステップＳ４７の判定の結果、不一致であった場合、プリンタ２に対し印刷キャンセル指示を送る（ステップＳ４９）。
【００６６】
一方、プリンタ２側では、データ受信部２１ａがＰＣ１から位置情報及びプリントデータを受信し（ステップＳ５１）、これにより処理が開始される。続いて、このプリントデータに基づきビットマップデータ生成部２１ｂがレンダリングを開始し（ステップＳ５２）、受信した位置情報までビットマップデータが生成完了するまで（ステップＳ５３でＹＥＳとなるまで）、レンダリングを続行する。続いて、データ送信部２１ｅが、生成したビットマップデータをＰＣ１に返信し（ステップＳ５４）、データ受信部２１ａがマッチング結果の受信を待つ（ステップＳ５５）。
【００６７】
マッチング結果を受信すると、印刷キャンセル指示部２１ｄが印刷続行指示であるか印刷キャンセル指示であるかを判定する（ステップＳ５６）。印刷続行指示であった場合、ビットマップデータ生成部２１ｂが残りのプリントデータからビットマップデータを生成し、画像形成部２２が印刷を実行する（ステップＳ５７）。一方、印刷キャンセル指示であった場合、印刷キャンセル指示部２１ｄが、残りのプリントデータがあればビットマップデータ生成部２１ｂに対しレンダリングの中止を指示すると共に、画像形成部２２に対し印刷中止を指示する（ステップＳ５８）。
【００６８】
なお、図１乃至図１２を参照しながら、本発明の印刷システムがＰＣ１とプリンタ２で構成される各実施形態を説明してきたが、ＰＣ１とプリンタ２との間にプリントサーバを設けたシステム構成においても、通常の使用法と同様にプリントサーバが単純にデータ（但し本発明での処理に必要なデータも含む）のやり取りを行うだけでもよい。
【００６９】
但し、本発明では、図１や図１０で説明したＰＣ１の代わりに、ＰＣとプリントサーバとを備え、それらで処理を分散させたシステム構成を採用することもできる。そのようなシステム構成では、ＰＣが、文書データ受信部１１ａで受け取った文書データから印刷条件に基づきプリントデータを生成してプリントサーバにネットワーク経由で送信し、プリントサーバが、受信したプリントデータからビットマップデータを生成するなど他の処理を実行するとよい。
【００７０】
以上、図１乃至図１２を参照しながら、本発明の印刷システムについて各実施形態を説明してきたが、本発明はＰＣ１等のコンピュータやプリンタ２等の印刷装置としての形態も採り得る。また、その処理の流れを説明したように、本発明はＰＣ１等のコンピュータ及びプリンタ２等の印刷装置を備える印刷システムにおける印刷プログラム検証方法としての形態も採り得る。
【００７１】
また、本発明は、コンピュータに組み込むプログラムや印刷装置に組み込むプログラムとしての形態も採り得る。これらプログラムは、制御部１１内の制御プログラム（プリンタドライバ）や制御部２１内の制御プログラム（ファームウェア）として例示したものである。すなわち、プリンタドライバは、コンピュータを上述したＰＣ１に具備の各手段として機能させるための印刷プログラムであり、ファームウェアは、印刷装置の制御部に組み込み、その制御部を、上述したプリンタ２に具備の各手段として機能させるための印刷プログラムである。
【００７２】
そして、このようなプログラムは、それを記録したコンピュータ読み取り可能な記録媒体としての配布することやネットワーク経由で配信することができ、コンピュータや印刷装置に実行可能に組み込むことができる。
【図面の簡単な説明】
【００７３】
【図１】本発明の一実施形態に係る印刷システムの構成例を示すブロック図である。
【図２】図１の印刷システムにおけるＰＣ側の処理例を説明するためのフロー図である。
【図３】図２の処理のうちビットマップ生成処理の一例を説明するためのフロー図である。
【図４】図１の印刷システムにおけるプリンタ側の処理例を説明するためのフロー図である。
【図５】図２乃至図４の説明で用いる具体的なデータ群の一例を示す概略図である。
【図６】図２の処理のうちビットマップ生成処理の他の例を説明するためのフロー図である。
【図７】図６の処理で用いる具体的なデータ群の一例を示す概略図である。
【図８】図２におけるデータ送信処理並びに図４におけるマッチング処理の詳細を説明するための図で、元の文書データの一例を示す図である。
【図９】図８の文書データから生成された送信データの一例を示す図である。
【図１０】本発明の他の実施形態に係る印刷システムの構成例を示すブロック図である。
【図１１】図１０の印刷システムにおけるＰＣ側の処理例を説明するためのフロー図である。
【図１２】図１０の印刷システムにおけるプリンタ側の処理例を説明するためのフロー図である。
【符号の説明】
【００７４】
１…ＰＣ、２…プリンタ、１１…ＰＣ側の制御部、１１ａ…文書データ受信部、１１ｂ…プリントデータ生成部、１１ｃ…ビットマップデータ生成部、１１ｄ…データ送信部、１１ｅ…印刷条件設定部、１２…表示部、１３…操作部、１４…ＰＣ側のネットワークＩ／Ｆ、２１…プリンタ側の制御部、２１ａ…データ受信部、２１ｂ…ビットマップデータ生成部、２１ｃ…マッチング部、２１ｄ…印刷キャンセル指示部、２２…画像形成部（プリンタエンジン）、２３…表示操作部、２４…プリンタ側のネットワークＩ／Ｆ。
【図１】
2008257615.tif 000003
【図２】
2008257615.tif 000004
【図３】
2008257615.tif 000005
【図４】
2008257615.tif 000006
【図５】
2008257615.tif 000007
【図６】
2008257615.tif 000008
【図７】
2008257615.tif 000009
【図８】
2008257615.tif 000010
【図９】
2008257615.tif 000011
【図１０】
2008257615.tif 000012
【図１１】
2008257615.tif 000013
【図１２】
2008257615.tif 000014