(57)【要約】【課題】印刷エラーに応じた再処理を行なうためのプリントプロセッサを別途設けることなく、画像形成装置に印刷データを出力した後に発生するようなエラーにも対応させて、印刷データが出力できない不具合に陥る頻度を減少させることが可能なプリンタドライバを提供する。【解決手段】プリンタドライバ１３ｂは、アプリケーションデータから、設定された印刷パラメータに基づいて印刷データを生成する生成ステップと、それを一時保存する一時保存ステップと、一時保存された印刷データをプリンタ２０に送信する送信ステップと、プリンタ２０での印刷データの処理結果の通知を受信する受信ステップと、受信した処理結果に応じて印刷パラメータを変更して、一時保存ステップで一時保存された印刷データを生成し直す変更ステップと、変更された印刷データをプリンタ２０に送信する再送信ステップと、を実行させるためのプログラムとする。【選択図】図１
2010218499.tif 000002
【特許請求の範囲】
【請求項１】
画像形成装置をコンピュータから利用するために、該コンピュータに実行可能に組み込むプリンタドライバであって、
前記コンピュータに、
アプリケーションプログラムのデータであるアプリケーションデータから、設定された印刷パラメータに基づいて印刷データを生成する生成ステップと、
該生成ステップで生成された前記印刷データを一時保存する一時保存ステップと、
該一時保存ステップで一時保存された印刷データを前記画像形成装置に送信する送信ステップと、
前記画像形成装置での前記印刷データの処理結果の通知を、前記画像形成装置から受信する受信ステップと、
該受信ステップで受信した前記処理結果に応じて前記印刷パラメータを変更して、前記一時保存ステップで一時保存された前記印刷データを生成し直す変更ステップと、
該変更ステップで変更された前記印刷データを前記画像形成装置に送信する再送信ステップと、
を実行させるためのプログラムであることを特徴とするプリンタドライバ。
【請求項２】
請求項１に記載のプリンタドライバであって、
前記コンピュータに、
前記送信ステップにおける前記アプリケーションデータに関する印刷データの初回の送信前に、前記画像形成装置に搭載されているメモリの容量と、前記プリンタドライバ自身が前記生成ステップで前記アプリケーションデータから生成した印刷データの容量と、を比較する比較ステップと、
該比較ステップでの比較の結果、前記メモリの容量が不足することが予想される場合のみ、前記印刷パラメータを変更して前記生成ステップに渡す事前変更ステップと、
を実行させるためのプログラムを含むことを特徴とするプリンタドライバ。
【請求項３】
請求項１又は２に記載のプリンタドライバであって、
前記生成ステップは、ユーザからの印刷指示によることなく、前記アプリケーションデータから前記印刷データを生成して前記一時保存ステップに渡すことを特徴とするプリンタドライバ。
【請求項４】
請求項１〜３のいずれか１項に記載のプリンタドライバで利用可能な画像形成装置であって、
前記プリンタドライバから受信した前記印刷データに対して印刷実行前に最後までレンダリング処理を施し、該レンダリング処理時にエラーが発生しないことを確認した後に印刷処理を施し、前記レンダリング処理時にエラーが発生した場合には、前記プリンタドライバに該エラーを通知することを特徴とする画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザからの印刷指示によりアプリケーションプログラムから呼び出されて動作するプリンタドライバ、及びそのプリンタドライバにより利用可能な画像形成装置に関する。
【背景技術】
【０００２】
従来のプリンタドライバは、ユーザが使用しているアプリケーションプログラムに対して印刷指示することにより呼び出され、アプリケーションプログラムからのデータを処理して、プリンタに送信していた。
【０００３】
しかし、プリンタドライバの印刷データを受信する画像形成装置のシステム資源などの条件により、複雑な印刷データについては印刷できないケースが存在した。このような場合、ユーザは限られたシステム資源内で印字が可能なように、例えば解像度を低下させてデータ量を削減して、再度印刷を実行することを余儀なくされていた。
【０００４】
このような問題を解消するための技術として、特許文献１に記載の画像形成制御装置や特許文献２に記載の画像形成支援装置などが提案されている。
【０００５】
特許文献１に記載の画像形成制御装置は、アプリケーションプログラムにより作成された描画データをスプールする際、その描画データの解像度を低下させるか否かを決定し、低下させると決定されると、スプールする描画データの解像度を低下させたプリンタ情報をＧＤＩ（Graphics Device Interface）に返し、ＧＤＩはその低下させた解像度でスプールする。そして、この画像形成制御装置では、印刷が指示されると、スプールされた描画データを画像形成デバイスの解像度に合せた解像度でラスタイメージに展開し、このラスタイメージをプリンタに出力して画像形成させるように制御する。
【０００６】
特許文献２に記載の画像形成支援装置は、ＰＤＬ（Page Description Language）データから正常に作成した各ページのラスターデータ、及びＲＩＰ（Raster Image Process）処理時にエラーが発生して正常にラスターデータが作成できなかったときのエラー内容を示す情報とエラーとなったページを示すページ識別子を含むエラーシートを送信するＤＦＥ（Digital Front End Processor）装置と、ラスターデータに基づいて画像を記録媒体に記録する画像記録装置と、の間に設置される。この画像形成支援装置は、エラーシートを受信したときに、受信したエラーシートに示されるエラー内容を示す情報に基づいて、エラー対応可能な他のＤＦＥ装置にＰＤＬデータを送信する送信指示情報を、エラー発生したＤＦＥ装置に送信する。他のＤＦＥ装置では、受信したＰＤＬデータをＲＩＰ処理してラスターデータを生成して、この画像形成支援装置に送信する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００５−１４８９５４号公報
【特許文献２】特開２００５−２６９４２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１に記載の技術では、プリンタに出力するまでの段階でリトライ動作を行なうため、印刷データをプリンタに出力した後に発生するエラーには対応できない。また、特許文献２に記載の技術では、印刷エラーに応じた再処理を行なうための別のプリントプロセッサが必要となる。
【０００９】
本発明は、上述のような実状に鑑みてなされたものであり、その目的は、印刷エラーに応じた再処理を行なうためのプリントプロセッサを別途設けることなく、画像形成装置に印刷データを出力した後に発生するようなエラーにも対応させて、印刷データが出力できない不具合に陥る頻度を減少させることが可能なプリンタドライバ、及びその画像形成装置を提供することにある。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明の第１の技術手段は、画像形成装置をコンピュータから利用するために、該コンピュータに実行可能に組み込むプリンタドライバであって、前記コンピュータに、アプリケーションプログラムのデータであるアプリケーションデータから、設定された印刷パラメータに基づいて印刷データを生成する生成ステップと、該生成ステップで生成された前記印刷データを一時保存する一時保存ステップと、該一時保存ステップで一時保存された印刷データを前記画像形成装置に送信する送信ステップと、前記画像形成装置での前記印刷データの処理結果の通知を、前記画像形成装置から受信する受信ステップと、該受信ステップで受信した前記処理結果に応じて前記印刷パラメータを変更して、前記一時保存ステップで一時保存された前記印刷データを生成し直す変更ステップと、該変更ステップで変更された前記印刷データを前記画像形成装置に送信する再送信ステップと、を実行させるためのプログラムであることを特徴としたものである。
【００１１】
第２の技術手段は、第１の技術手段において、前記コンピュータに、前記送信ステップにおける前記アプリケーションデータに関する印刷データの初回の送信前に、前記画像形成装置に搭載されているメモリの容量と、前記プリンタドライバ自身が前記生成ステップで前記アプリケーションデータから生成した印刷データの容量と、を比較する比較ステップと、該比較ステップでの比較の結果、前記メモリの容量が不足することが予想される場合のみ、前記印刷パラメータを変更して前記生成ステップに渡す事前変更ステップと、を実行させるためのプログラムを含むことを特徴としたものである。
【００１２】
第３の技術手段は、第１又は第２の技術手段において、前記生成ステップは、ユーザからの印刷指示によることなく、前記アプリケーションデータから前記印刷データを生成して前記一時保存ステップに渡すことを特徴としたものである。
【００１３】
第４の技術手段は、第１〜第３のいずれかの技術手段におけるプリンタドライバで利用可能な画像形成装置であって、前記プリンタドライバから受信した前記印刷データに対して印刷実行前に最後までレンダリング処理を施し、該レンダリング処理時にエラーが発生しないことを確認した後に印刷処理を施し、前記レンダリング処理時にエラーが発生した場合には、前記プリンタドライバに該エラーを通知することを特徴としたものである。
【発明の効果】
【００１４】
本発明によれば、印刷エラーに応じた再処理を行なうためのプリントプロセッサを別途設けることなく、画像形成装置に印刷データを出力した後に発生するようなエラーにも対応させて、印刷データが出力できない不具合に陥る頻度を減少させることが可能になる。
【図面の簡単な説明】
【００１５】
【図１】本発明に係るプリンタドライバを組み込んだパーソナルコンピュータとそのプリンタドライバにより利用できるプリンタとで構成される印刷システムの構成例を示すブロック図である。
【図２】プリンタドライバでの設定項目の一例を示すための図で、プリンタドライバのＵＩ画面の一例を示す図である。
【図３】プリンタドライバでの設定項目の一例を示すための図で、図２のＵＩ画面において互換性の設定キーが選択されたときに表示されるＵＩ画面の一例を示す図である。
【図４】図１の印刷システムにおける印刷処理の一例を説明するためのフロー図である。
【図５】図４の印刷処理における印刷パラメータの変更余地があるか否かの判定処理及びその判定に基づく変更処理（印刷データ再生成処理）の具体例を説明するためのフロー図である。
【図６】図１の印刷システムにおける印刷処理の他の例を説明するためのフロー図である。
【発明を実施するための形態】
【００１６】
以下、本発明に係るプリンタドライバについて、パーソナルコンピュータ（ＰＣ）に組み込んだ例を挙げ、そのプリンタドライバで利用可能になる画像形成装置としてプリンタを例に挙げて説明するが、本発明は以下の例に限定されるものではない。例えば組み込み先はサーバコンピュータ、携帯情報端末、携帯電話機などであってもよいし、画像形成装置としては印刷機能以外の機能を複合的に備えた複合機などであってもよい。
【００１７】
図１は、本発明に係るプリンタドライバを組み込んだパーソナルコンピュータ（ＰＣ）とそのプリンタドライバにより利用できるプリンタとで構成される印刷システムの構成例を示すブロック図である。この印刷システムは、ＰＣ１０とプリンタ２０とがネットワーク経由で接続されてなる。
【００１８】
ＰＣ１０は、制御部１１、操作部１２、記憶部１３、表示部１４、及びネットワーク接続部１５を備え、プリンタ２０は、システムコントローラ２１、エンジンコントローラ２２、プリントエンジン２３、及びネットワーク接続部２４を備える。
【００１９】
まず、ＰＣ１０の構成について説明する。制御部１１は、ＣＰＵ（Central Processing Unit）等の演算部、ＲＡＭ（Random Access Memory）等の作業領域、オペレーションシステム等のプログラムを記録したＲＯＭ（Read Only Memory）等のプログラム格納領域で構成され、プリンタドライバのユーザインターフェース（ＵＩ）の表示処理や表示中の操作部１２による操作を受け付ける処理をはじめ、ＰＣ１０の全体を制御する。操作部１２は、マウス、キーボードなどで構成され、これらから入力されたユーザ操作を制御部１１に伝送する。
【００２０】
記憶部１３は、ＥＥＰＲＯＭ（Electrically Erasable and Programmable ROM）等の不揮発性メモリやハードディスクなどで構成され、各種情報を記憶する。記憶部１３は、アプリケーションプログラム（アプリケーションソフトウェア）１３ａや本発明に係るプリンタドライバ１３ｂなどのプログラムを、上記ＣＰＵで実行可能に格納するプログラム格納領域としても機能する。なお、プリンタドライバ１３ｂは、ＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disc）等の可搬記録媒体に記録して流通させてもよいし、インターネット上のサーバ装置に記録しておき公開するなどして流通させてもよく、それをＰＣ１０にインストールすればよい。また、記憶部１３は、アプリケーションプログラム１３ａで生成されるデータ（文書等のアプリケーションデータ）やプリンタドライバ１３ｂでの設定情報（印刷条件等）も記憶する。このように、ＰＣ１０に実行可能に組み込んだプリンタドライバ１３ｂにより、プリンタ２０をＰＣ１０から利用することができる。
【００２１】
表示部１４は、ＬＣＤ（Liquid Crystal Display）や有機ＥＬ（Electroluminescence）ディスプレイ等のディスプレイで構成され、各種情報を表示する。ネットワーク接続部１５は、ＬＡＮ（Local Area Network）等のネットワークに接続するためのインターフェースであり、これによりプリンタ２０との接続が可能になる。印刷データも、制御部１１からの制御によりネットワーク接続部１５から指定のプリンタ２０に送信される。
【００２２】
次に、プリンタ２０の構成について説明する。システムコントローラ２１は、ＣＰＵ等の演算部、ＲＡＭ２１ａ等の作業領域、制御プログラムを記録したＲＯＭ等のプログラム格納領域で構成され、プリンタ２０の全体を制御する。ネットワーク接続部２４は、ＬＡＮ等のネットワークに接続するためのインターフェースであり、これによりＰＣ１０のネットワーク接続部１５との接続が可能になる。ＰＣ１０から送信された印刷データ（印刷ジョブ）もこのネットワーク接続部２４が受け取り、システムコントローラ２１に渡す。システムコントローラ２１は、受け取った印刷データを解釈してレンダリング処理を施してプリントエンジン２３での印刷が可能なビットマップデータを生成し、ＲＡＭ２１ａに格納する。
【００２３】
エンジンコントローラ２２は、プリントエンジン２３の駆動を制御して印刷処理を実行させる。プリントエンジン２３は、印刷用紙上に画像を形成、つまり印刷を行うエンジンである。システムコントローラ２１は、ＰＣ１０から受信した印刷データが印刷指示を含むものである場合には、格納されたビットマップデータを逐次、エンジンコントローラ２２に渡して印刷処理を実行させる。一方、システムコントローラ２１は、ＰＣ１０から受信した印刷データがレンダリング指示のみを含むものである場合には、エンジンコントローラ２２にビットマップデータを渡さず、印刷指示を待つ。
【００２４】
また、プリントエンジン２３は、用紙トレイの状態やカバーの状態などのステータス情報の収集も行うセンサを有する。ステータス情報は、ネットワーク接続部２４で受信したステータス問い合わせに応じて、システムコントローラ２１がエンジンコントローラ２２を介してプリントエンジン２３により取得され、その問い合わせを行ったＰＣ１０へネットワーク接続部２４を介して返信される。
【００２５】
図２及び図３は、プリンタドライバでの設定項目の一例を示すための図で、図２は、プリンタドライバのＵＩ画面の一例を示す図、図３は、図２のＵＩ画面において互換性の設定キーが選択されたときに表示されるＵＩ画面の一例を示す図である。なお、図２、図３で例示するＵＩ画面３１、ＵＩ画面３２は、プリンタドライバ１３ｂに限らず、従来のプリンタドライバでも採用できる画面である。
【００２６】
図２のＵＩ画面３１は、プリンタＡ（プリンタ２０の名称とする）用のプリンタドライバにおける印刷条件の設定画面であって、「メイン」、「用紙」、「高度な設定」などで印刷条件を種類分けした設定タブが、ユーザ選択可能となっている。ある設定タブをユーザが選択すると、その設定タブ名に関連する様々な印刷条件が設定可能なように画面が切り替わる。
【００２７】
ＵＩ画面３１は、このうち「高度な設定」のタブが選択された場合に表示された画面である。ＵＩ画面３１に含まれる設定項目には、プリントモード、グラフィックスモード、及びビットマップ圧縮などの項目を含んでいる。プリントモードとは、画質と速度とのいずれを優先させてプリントするかを設定できる項目であり、例えば、画質を優先するための「最高品質」、速度を優先するための「ノーマル（速度優先）」、それらの中間の「高品質」の中からユーザ選択可能にしておけばよい。グラフィックスモードとは、画像をベクター形式で表現するのか、ビットマップ形式で表現するのかを設定できる項目である。ビットマップ圧縮とは、印刷時の圧縮率を設定できる項目であり、例えば、非圧縮、最高品質（圧縮率Ｃ０で圧縮）、高品質（圧縮率Ｃ０より高い圧縮率Ｃ１で圧縮）、標準（通常）品質（圧縮率Ｃ１より高い圧縮率Ｃ２で圧縮）の中からユーザ選択可能にしておけばよい。
【００２８】
また、ＵＩ画面３１には互換性の設定キーがユーザ選択可能に表示されており、この設定キーの選択により、図３のＵＩ画面３２が表示されるようになっている。このＵＩ画面３２には、入力解像度やスプール形式などが設定可能となっている。入力解像度とは、印刷対象の画像の入力解像度を指し、３００ｄｐｉ、６００ｄｐｉ、１２００ｄｐｉなどの所定値の解像度がユーザ選択可能になっている。スプール形式とは、プリンタ２０に印刷データを送信する際にプリンタドライバ１３ｂで一旦データを蓄積するが、その蓄積するデータ（スプールデータ）の形式を指す。ＷＩＮＤＯＷＳ（登録商標）の環境での最も単純な例を挙げると、ＲＡＷ形式、ＥＭＦ（Enhanced Metafile Format）形式の中からユーザ選択可能にしておけばよい。
【００２９】
このような印刷条件の設定項目のうち、プリントモード、グラフィックスモード、ビットマップ圧縮、入力解像度、スプール形式といった項目は、データサイズやデータの処理方法に関連する項目のため、プリンタ２０側の印刷処理の成否に関わることが多い。一方、これらの項目は、詳細な画質面には影響するものの、一見した画質には影響しないことも多い。
【００３０】
従って、何らかの原因（プリンタ２０の搭載メモリの容量など）により、印刷処理が不首尾に終わった場合、従来では、ユーザがこれらの項目（印刷条件）を変更して不具合回避することが行なわれている。しかしながら、これらの印刷条件は他の項目の印刷条件に比べて意味するところがユーザに対して難解であることが多く、従来、ユーザを困惑させることがしばしばあった。
【００３１】
ユーザの主たる目的は、印刷物をエラーなく出力することであるので、本発明では、これらの項目を自動的に最適に設定し、それによりユーザの利便性を向上させる。このような印刷条件の自動的な最適化のために、本発明では、エラーが発生した印刷データを、プリンタドライバ１３ｂが自動的にパラメータ変更（印刷条件を変更）してプリンタ２０に再送信する。
【００３２】
そのため、本発明に係るプリンタドライバ１３ｂは、ＰＣ１０に、以下に説明する生成ステップ、一時保存ステップ、送信ステップ、受信ステップ、変更ステップ、及び再送信ステップを実行させるためのプログラムとして構築する。
【００３３】
生成ステップは、アプリケーションプログラムからの生成指示等により、アプリケーションデータから、デフォルト又はユーザ設定された印刷条件（印刷パラメータ）に基づき印刷データを生成する。一時保存ステップは、生成ステップで生成された印刷データ（つまりアプリケーションプログラムからの印刷データ）を一時保存する。送信ステップは、一時保存ステップで一時保存された印刷データをプリンタ２０に送信する。このように、印刷データの送信は、印刷データを一時保存した上で実行する。
【００３４】
プリンタ２０では、プリンタドライバ１３ｂから受信した印刷データに対して印刷実行前に最後までレンダリング処理を施し、レンダリング処理時にエラーが発生しないことを確認した後に印刷処理を施し、レンダリング処理時にエラーが発生した場合には、プリンタドライバ１３ｂにそのエラーを通知することが好ましい。勿論、プリンタ２０では、受信した印刷データに対して、上述のように全データのレンダリング処理を施すだけでなく印刷処理まで施し、その結果、エラーの場合にエラー通知を行うように構成しておいてもよい。いずれの方法の場合でも、成功した場合には成功通知をプリンタドライバ１３ｂに行うことが好ましい。
【００３５】
受信ステップは、プリンタ２０でのその印刷データの処理結果の通知を、プリンタ２０から受信する。ここで処理結果とは、レンダリング処理のみで成否を判定する場合にはレンダリング処理結果が該当し、印刷処理も含めて成否を判定する場合には印刷処理結果が該当する。
【００３６】
変更ステップは、受信ステップで受信した処理結果に応じて印刷パラメータを変更して、一時保存ステップで一時保存された印刷データを生成し直す。処理結果に応じて生成し直すとは、処理結果が成功の場合には当然生成し直す必要がなく、処理結果が失敗の場合のみ生成し直すことを指す。特に、解像度や圧縮、カラー階調などの一見した画質には影響が比較的少ないが展開処理の可否に大きな影響を及ぼす印刷パラメータを、変更の対象とすることが好ましい。このように、上記一時保存ステップは、プリンタ２０での処理結果として成功通知を受け取るまで、或いはエラー通知を受け取っても変更を行うまでは、印刷データを保持しておく。そして、再送信ステップは、変更ステップで変更された印刷データをプリンタ２０に送信する。
【００３７】
上述のように、本発明では、プリンタ２０で印刷エラーが生じた際に自動的にプリンタ２０に対して印刷パラメータを変化（自動調整）させた印刷データを再送信する、つまり、プリンタドライバ１３ｂによって印刷が完了可能な印刷パラメータを探索するように自動的に再送信を繰り返す。従って、印刷エラーに応じた再処理を行なうためのプリントプロセッサを別途設けることなく、つまり既存のシステムに特にエラー回避のための要素を追加することなく、プリンタ２０に印刷データを出力した後に発生するようなエラーにも事前に対応させて、印刷データが出力できない不具合に陥る頻度を従来に比べて減少させ、プリンタ２０でのエラー発生をユーザに対して顕在化させる機会を最小化することができる。
【００３８】
図４を参照して、本発明における印刷処理について具体的に説明する。図４は、図１の印刷システムにおける印刷処理の一例を説明するためのフロー図である。まず、ＰＣ１０において、アプリケーションデータをアプリケーションプログラム１３ａで開いた状態で、ユーザがデフォルト設定のまま印刷指示の操作を行うか、或いはプリンタドライバ１３ｂの設定画面を呼び出して印刷設定を行った後に印刷指示の操作を行う。このような印刷指示のユーザ操作を受け付けたアプリケーションプログラム１３ａは、プリンタドライバ１３ｂに印刷データの生成指示を行う。
【００３９】
プリンタドライバ１３ｂは、これに応答してそのアプリケーションデータの印刷データを印刷設定（印刷条件の設定）に基づき生成する（ステップＳ１）。プリンタドライバ１３ｂは、生成した印刷データを制御部１１内のＲＡＭ（又は記憶部１３の仮想ＲＡＭ領域、以下同様）にプールする（ステップＳ２）と共に、プールした印刷指示付きの印刷データをプリンタ２０に出力することで、プリンタ２０に対して印刷指示を行う（ステップＳ３）。
【００４０】
この印刷指示を受けたプリンタ２０のシステムコントローラ２１は、レンダリング処理及び印刷処理を実行する（ステップＳ４）。この実行の結果、システムコントローラ２１はプリントが成功したか否かを判定し（ステップＳ５）、成功した場合には成功通知をＰＣ１０のプリンタドライバ１３ｂに送信する（ステップＳ６）。なお、ネットワーク上での通信エラーのようなものの判定及びその対処は、基本的に本発明とは関係なく、別の判定手段及び対処手段を設けて対応すればよい。
【００４１】
成功通知を受信したプリンタドライバ１３ｂは、プールしておいた印刷データを削除する（ステップＳ７）。なお、プリンタ２０が成功通知を送信しない構成を採用してもよく、その構成の場合、プリンタドライバ１３ｂ側で、印刷データの送信を終了してから所定期間経過するまでにエラー通知を受けなかったときに、成功であると判断すればよい。
【００４２】
ステップＳ５でＮＯの場合、つまり印刷に失敗した場合には、システムコントローラ２１はプリンタドライバ１３ｂにエラー通知を送信する（ステップＳ８）。エラー通知を受信したプリンタドライバ１３ｂは、プールしておいた印刷データに印刷パラメータの変更余地があるか否かを判定する（ステップＳ９）。
【００４３】
ステップＳ９でＮＯの場合、プリンタドライバ１３ｂは、プールしておいた印刷データを削除し（ステップＳ１１）、エラーページの印刷をプリンタ２０に指示する（ステップＳ１２）。この指示に応答して、プリンタ２０はエラーページの印刷を実行する（ステップＳ１３）。なお、ステップＳ１２の代わりに、又はステップＳ１２の処理と併せて、エラーであった旨の警告文を表示部１４に表示させてもよい。
【００４４】
一方、ステップＳ９でＹＥＳの場合、印刷パラメータを変更して、印刷データを再生成する（ステップＳ１０）。変更対象の印刷パラメータは上述した通りであるが、どの印刷パラメータをどのように変更するかの具体例については図５を参照しながら後述する。ステップＳ１０では、印刷データのうちの印刷パラメータの記述部分を変更するだけで、印刷データの変更を行える場合もある。また、生成し直された印刷データは一時保存された状態とする。印刷パラメータは、プリンタ２０の内蔵メモリ（ＲＡＭ２１ａ）の使用量を減らす方向、システムコントローラ２１の処理の負荷を減らす方向に変更する。
【００４５】
ステップＳ１０の処理後は、ステップＳ２へ戻る。つまり、再生成した印刷データが元の印刷データに置き換わってプールされ、再生成された印刷データに基づきステップＳ３（印刷データ送信処理）以降の処理が繰り返されることになる。このように、プリンタ２０で受信データの展開処理が何らかの障害によりエラー終了した場合には、その旨をクライアントであるＰＣ１０に通知し、エラー終了の通知されたＰＣ１０は、特に、解像度や圧縮、カラー階調などの一見した画質には影響が比較的少ないが展開処理の可否に大きな影響を及ぼす印刷パラメータを自動的に調整して再度データ送信を試みる。
【００４６】
図４で説明したように、プリンタドライバ１３ｂは、予めアプリケーションプログラムからのデータを印刷データに変換し、プールした上でプリンタ２０にデータを送信する。送信された印刷データは、プリンタ２０でレンダリングされ、印字出力され、その結果正常に印字できた場合、プリンタドライバ１３ｂはその旨の通知をプリンタ２０から受け、プールしたデータを削除して終了する。一方、プリンタ２０で正常にレンダリング及び印字ができなかった場合、プリンタ２０はエラーをプリンタドライバ１３ｂに通知する。プリンタドライバ１３ｂはその旨を通知されると調整可能な印刷パラメータを変更して再度印刷データを作成し、送信を実行する。以下、通知結果に応じて変化させることのできる印刷パラメータを順次変化、再印刷していく。最終的にリトライの余地がなくなれば、プリンタ２０はエラーページを出力することによりユーザにエラーを通知し、同時にプリンタドライバ１３ｂはプールしておいたデータを削除して処理を終了する。
【００４７】
なお、図４の処理例のように用紙への印刷処理及びその処理結果の成否により印刷パラメータの変更の実行／不実行を決めてもよいが、レンダリング処理及びその処理結果の成否により印刷パラメータの変更を行ってもよい。その場合、プリンタ２０は、レンダリング成功時には引き続き印刷処理も施せばよい。
【００４８】
次に、図４のステップＳ９，Ｓ１０における判定処理及び印刷データ再生成処理、すなわち再送信時の変更対象パラメータの具体例について、図２及び図３の印刷パラメータの例に基づき図５を参照して説明する。図５は、図４の印刷処理における印刷パラメータの変更余地があるか否かの判定処理及びその判定に基づく変更処理（印刷データ再生成処理）の具体例を説明するためのフロー図である。
【００４９】
プリンタドライバ１３ｂは、プリンタ２０から印刷処理のエラー通知を受け取ると、これをプリンタドライバ１３ｂ側への再出力の依頼通知と解釈して、当該印刷データのスプール形式、ビットマップ圧縮設定、プリントモード、グラフィックスモード、入力解像度の設定値をそれぞれ確認し、順次印刷が容易になるように再設定、再印刷を繰り返す。
【００５０】
具体的には、まずスプール形式がＥＭＦ形式か否かを判定し（ステップＳ２１）、ＮＯであった場合、ＥＭＦ形式に変更し（ステップＳ３１）、その変更した印刷条件で印刷データを再生成する（ステップＳ４４）。なお、ステップＳ４４の後、図４のステップＳ２へ進む。
【００５１】
一方、ステップＳ２１でＹＥＳの場合には、ビットマップ圧縮の設定が標準品質であるか否かを判定する（ステップＳ２２）。ステップＳ２２でＮＯであった場合、高品質の設定であるかの判定（ステップＳ３２）、最高品質の設定であるかの判定（ステップＳ３３）を行う。ステップＳ３２，Ｓ３３の判定により、非圧縮であった場合（ステップＳ３３でＮＯの場合）には最高品質に設定し（ステップＳ３４）、最高品質であった場合（ステップＳ３３でＹＥＳの場合）には高品質に設定し（ステップＳ３５）、高品質の設定であった場合（ステップＳ３２でＹＥＳの場合）には標準品質に設定する（ステップＳ３６）。ステップＳ３４，Ｓ３５，Ｓ３６の処理後は、ステップＳ４４へ進み、変更した印刷条件で印刷データを再生成する。
【００５２】
ステップＳ２２でＹＥＳの場合には、プリントモードがノーマルであるか否かを判定する（ステップＳ２３）。ステップＳ２３でＮＯであった場合には、プリントモードが高品質か否かを判定し（ステップＳ３７）、ＮＯの場合（最高品質の場合）にはプリントモードを高品質に変更し（ステップＳ３８）、ＹＥＳの場合（高品質の場合）にはプリントモードをノーマルに変更する（ステップＳ３９）。ステップＳ３８，Ｓ３９の処理後は、ステップＳ４４へ進み、変更した印刷条件で印刷データを再生成する。ステップＳ２３でＮＯの場合には、グラフィックスモードがラスター形式（ビットマップ形式）か否かを判定し（ステップＳ２４）、ＮＯの場合にはラスター形式に変更し（ステップＳ４０）、ステップＳ４４にてラスター形式で印刷データを再生成する。
【００５３】
入力解像度が３００ｄｐｉ、６００ｄｐｉ、１２００ｄｐｉの中から選択可能な場合を想定して説明すると、ステップＳ２４でＹＥＳの場合には、入力解像度が３００ｄｐｉか否かを判定し（ステップＳ２５）、ＮＯの場合には６００ｄｐｉか否かを判定する（ステップＳ４１）。ステップＳ４１でＮＯの場合（つまり１２００ｄｐｉの場合）には６００ｄｐｉに変更し（ステップＳ４２）、ステップＳ４１でＹＥＳの場合には３００ｄｐｉに変更する（ステップＳ４３）。ステップＳ４２，Ｓ４３の処理後は、ステップＳ４４へ進み、変更した印刷条件で印刷データを再生成する。
【００５４】
ステップＳ２５でＹＥＳの場合、すなわち最終的に印刷が容易になるような再設定及び再印刷ができなくなれば（つまりリトライの余地が無くなれば）、印刷パラメータ変更余地無しと判定する（ステップＳ２６）。ステップＳ２６の判定は図４のステップＳ９でＮＯと判定されたことを意味し、その後は、プリンタ２０はエラーページを出力すること（図４のステップＳ１３）によりユーザにエラーを通知し、同時にプリンタドライバ１３ｂはプールしておいたデータを削除して（図４のステップＳ１１）、処理を終了する。
【００５５】
図５で説明した制御の例においては、可能か限り画質を保ちながら出力可能な設定を探すため、画像に影響の少ない印刷パラメータから順次設定を変更するような流れ、すなわち試行回数が多くなることを許容する方法を採用したが、出力不可能状態の回避を最優先に考えるのであれば、１回の設定変更で全ての印刷パラメータをプリンタ２０での印刷処理に有利な方向へ変化させる方法も採用できる。
【００５６】
次に、図６を参照し、ユーザによる印刷指示がなくても、印刷が成功するように自動的に印刷パラメータを調整することが可能な処理例を説明する。図６は、図１の印刷システムにおける印刷処理の他の例を説明するためのフロー図である。
【００５７】
まず、ＰＣ１０において、アプリケーションデータをアプリケーションプログラム１３ａで開いた状態で、ユーザがデフォルト設定のままプレビュー指示の操作を行うか、或いはプリンタドライバ１３ｂの設定画面を呼び出して印刷設定を行った後にプレビュー指示の操作を行う。このようなプレビュー指示のユーザ操作を受け付けたアプリケーションプログラム１３ａは、プリンタドライバ１３ｂに印刷データの生成指示を行う。
【００５８】
プリンタドライバ１３ｂは、これに応答してそのアプリケーションデータの印刷データを印刷設定に基づき生成する（ステップＳ５１）。プリンタドライバ１３ｂは、生成した印刷データを制御部１１内のＲＡＭにプールする（ステップＳ５２）と共に、プールしたレンダリング指示付きの印刷データをプリンタ２０に出力することで、プリンタ２０に対してレンダリング指示を行う（ステップＳ５３）。なお、プリンタドライバ１３ｂは、生成した印刷データをビットマップデータに変換して表示部１４にプレビュー表示させる処理も実行する。
【００５９】
このレンダリング指示を受けたプリンタ２０のシステムコントローラ２１は、全データのレンダリング処理のみを実行する（ステップＳ５４）。この実行の結果、システムコントローラ２１はレンダリングが成功したか否かを判定し（ステップＳ５５）、成功した場合には成功通知をＰＣ１０のプリンタドライバ１３ｂに送信する（ステップＳ５６）。
【００６０】
ステップＳ５５でＮＯの場合、つまりレンダリングに失敗した場合には、システムコントローラ２１はプリンタドライバ１３ｂにエラー通知を送信する（ステップＳ５７）。エラー通知を受信したプリンタドライバ１３ｂは、プールしておいた印刷データに印刷パラメータの変更余地があるか否かを判定する（ステップＳ５８）。
【００６１】
ステップＳ５８でＹＥＳの場合、図４のステップＳ１０と同様に、印刷パラメータを変更して、印刷データを再生成する（ステップＳ５９）。ステップＳ５９の処理後は、ステップＳ５２へ戻る。つまり、再生成した印刷データが元の印刷データに置き換わってプールされ、再生成された印刷データに基づきステップＳ５３以降の処理が繰り返されることになる。なお、図６のステップＳ５８，Ｓ５９についても図５で説明した具体例が適用できる。
【００６２】
プリンタドライバ１３ｂは、ステップＳ５６での成功通知を受信した場合や印刷パラメータの変更余地が無くなった場合（ステップＳ５８でＮＯの場合）、ユーザからの印刷指示を待ち（ステップＳ６０）、印刷指示があった段階で、ステップＳ５７でのエラー通知を受け取った場合のみその旨の警告を表示部１４に表示し（ステップＳ６１）、プールしておいた印刷データをプリンタ２０に出力して印刷指示を行う（ステップＳ６２）。この印刷指示後、プールしておいた印刷データは削除すればよい。
【００６３】
この印刷指示に応答して、プリンタ２０は、印刷処理を実行する（ステップＳ６３）。図示しないが、システムコントローラ２１は、この印刷処理の結果、印刷に成功した場合には成功通知を失敗した場合（ステップＳ５８でＮＯとなった場合には通常、ここでは失敗となる）にはエラー通知を、プリンタドライバ１３ｂに送信する。プールしておいた印刷データはこの成功通知又はエラー通知を受け取った段階で削除すればよい。また、プリンタドライバ１３ｂが、エラー通知の受信時に、エラーページの印刷をプリンタ２０に指示することで、プリンタ２０がエラーページの印刷を実行する。若しくは、エラー通知の送信と共に、プリンタ２０が自身でエラーページを印刷してもよい。
【００６４】
このように、図６の例では、プリンタドライバ１３ｂは、ユーザによって印刷を指示する操作がなされる前に、現行の印刷設定で印刷データを作成し、印刷指示の操作の前にプリンタ２０に送信し、プリンタ２０でレンダリング処理を行い、その処理結果により、ユーザによる印刷の指示がなされる前に最適な印刷パラメータを決定する。つまり、上述の生成ステップは、ユーザからの印刷指示によることなく、アプリケーションデータから印刷データを生成して一時保存ステップに渡すようにしている。
【００６５】
勿論、この例でも、プリンタドライバ１３ｂはステップＳ５３で印刷指示を行い、プリンタ２０が印刷処理まで実行してもよい。しかし、プリンタ２０が印刷指示を受けてもレンダリング処理だけを行って判定するように構成することで、上述したようにステップＳ５３でレンダリング指示を行う場合と同様に無駄な（ユーザの印刷指示のない）印刷物が生成されてしまうことがないため、好ましい。
【００６６】
また、図６の例では、ユーザによるプレビュー表示指示に応じてステップＳ５１〜Ｓ５９の処理を実行するように説明したが、これに限ったものではなく、ユーザによる印刷指示でなければよい。例えば、ユーザがアプリケーションデータを開いてから所定期間毎に、或いはユーザによるアプリケーションデータの上書き保存操作時などに、ステップＳ５１〜Ｓ５９の処理を実行するようにしておいてもよい。
【００６７】
次に、図４や図６の処理例に適用可能な処理例について説明する。ここで説明する処理例は、図４や図６で説明したプリンタドライバ１３ｂが、ＰＣ１０に次の比較ステップ及び事前変更ステップを実行させるためのプログラムを含むように構成したものである。
【００６８】
上記比較ステップは、送信ステップにおけるアプリケーションデータに関する印刷データの初回の（１回目の）送信前に、プリンタ２０に搭載されているメモリの容量（ＲＡＭ２１ａの使用可能容量）と、プリンタドライバ１３ｂ自身が生成ステップでアプリケーションデータから生成した印刷データの容量と、を比較する。メモリの容量は、上述したステータス情報の一部としてプリンタドライバ１３ｂがプリンタ２０から受信すればよい。
【００６９】
また、上記事前変更ステップは、比較の結果、メモリの容量が不足することが予想される場合のみ、予め印刷パラメータを変更してから生成ステップに渡す。つまり、メモリ容量が不足しそうな場合には、印刷パラメータを事前に変更してアプリケーションデータから印刷データを生成し直す。
【００７０】
これら比較ステップ及び事前変更ステップは、図４の処理において、ステップＳ２の処理後に実行すればよく、これにより、ステップＳ８のエラー通知が発せられる頻度が少なくなる。また、これら比較ステップ及び事前変更ステップは、図６の処理において、ステップＳ５２の処理後に実行すればよく、これにより、ステップＳ５７のエラー通知が発せられる頻度が少なくなる。
【００７１】
なお、以上の各処理例では、プリンタ２０側でレンダリングすることを前提に説明したが、プリンタドライバ１３ｂでレンダリング処理まで行ったものを印刷データとしてプリンタ２０に出力する場合にも適用可能である。そのような場合、図４のステップＳ５や図６のステップＳ５５では、受信中の印刷データ（レンダリング処理後のビットマップデータ）がＲＡＭ２１ａに収まったか否かを判定することになる。実際、事前にプリンタドライバ１３ｂ側で把握できるプリンタ２０のメモリ容量の精度については何ＭＢのメモリが装着されているかという程度であり、プリンタ２０の処理状況に応じてその時々のフリーエリアの容量までは把握できない。従って、この例でのようにレンダリング処理後のデータをプリンタ２０に送信した場合にも、ＲＡＭ２１ａ内に収まったか否かを判定することは有益である。
【符号の説明】
【００７２】
１０…ＰＣ、１１…制御部、１２…操作部、１３…記憶部、１３ａ…アプリケーションプログラム、１３ｂ…プリンタドライバ、１４…表示部、１５…ＰＣ側のネットワーク接続部、２０…プリンタ、２１…システムコントローラ、２１ａ…ＲＡＭ、２２…エンジンコントローラ、２３…プリントエンジン、２４…プリンタ側のネットワーク接続部、３１，３２…ＵＩ画面。
【図１】
2010218499.tif 000003
【図２】
2010218499.tif 000004
【図３】
2010218499.tif 000005
【図４】
2010218499.tif 000006
【図５】
2010218499.tif 000007
【図６】
2010218499.tif 000008