説明

プリンタドライバ及び画像形成装置

【課題】印刷エラーに応じた再処理を行なうためのプリントプロセッサを別途設けることなく、画像形成装置に印刷データを出力した後に発生するようなエラーにも対応させて、印刷データが出力できない不具合に陥る頻度を減少させることが可能なプリンタドライバを提供する。
【解決手段】プリンタドライバ13bは、アプリケーションデータから、設定された印刷パラメータに基づいて印刷データを生成する生成ステップと、それを一時保存する一時保存ステップと、一時保存された印刷データをプリンタ20に送信する送信ステップと、プリンタ20での印刷データの処理結果の通知を受信する受信ステップと、受信した処理結果に応じて印刷パラメータを変更して、一時保存ステップで一時保存された印刷データを生成し直す変更ステップと、変更された印刷データをプリンタ20に送信する再送信ステップと、を実行させるためのプログラムとする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ユーザからの印刷指示によりアプリケーションプログラムから呼び出されて動作するプリンタドライバ、及びそのプリンタドライバにより利用可能な画像形成装置に関する。
【背景技術】
【0002】
従来のプリンタドライバは、ユーザが使用しているアプリケーションプログラムに対して印刷指示することにより呼び出され、アプリケーションプログラムからのデータを処理して、プリンタに送信していた。
【0003】
しかし、プリンタドライバの印刷データを受信する画像形成装置のシステム資源などの条件により、複雑な印刷データについては印刷できないケースが存在した。このような場合、ユーザは限られたシステム資源内で印字が可能なように、例えば解像度を低下させてデータ量を削減して、再度印刷を実行することを余儀なくされていた。
【0004】
このような問題を解消するための技術として、特許文献1に記載の画像形成制御装置や特許文献2に記載の画像形成支援装置などが提案されている。
【0005】
特許文献1に記載の画像形成制御装置は、アプリケーションプログラムにより作成された描画データをスプールする際、その描画データの解像度を低下させるか否かを決定し、低下させると決定されると、スプールする描画データの解像度を低下させたプリンタ情報をGDI(Graphics Device Interface)に返し、GDIはその低下させた解像度でスプールする。そして、この画像形成制御装置では、印刷が指示されると、スプールされた描画データを画像形成デバイスの解像度に合せた解像度でラスタイメージに展開し、このラスタイメージをプリンタに出力して画像形成させるように制御する。
【0006】
特許文献2に記載の画像形成支援装置は、PDL(Page Description Language)データから正常に作成した各ページのラスターデータ、及びRIP(Raster Image Process)処理時にエラーが発生して正常にラスターデータが作成できなかったときのエラー内容を示す情報とエラーとなったページを示すページ識別子を含むエラーシートを送信するDFE(Digital Front End Processor)装置と、ラスターデータに基づいて画像を記録媒体に記録する画像記録装置と、の間に設置される。この画像形成支援装置は、エラーシートを受信したときに、受信したエラーシートに示されるエラー内容を示す情報に基づいて、エラー対応可能な他のDFE装置にPDLデータを送信する送信指示情報を、エラー発生したDFE装置に送信する。他のDFE装置では、受信したPDLデータをRIP処理してラスターデータを生成して、この画像形成支援装置に送信する。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2005−148954号公報
【特許文献2】特開2005−269421号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、特許文献1に記載の技術では、プリンタに出力するまでの段階でリトライ動作を行なうため、印刷データをプリンタに出力した後に発生するエラーには対応できない。また、特許文献2に記載の技術では、印刷エラーに応じた再処理を行なうための別のプリントプロセッサが必要となる。
【0009】
本発明は、上述のような実状に鑑みてなされたものであり、その目的は、印刷エラーに応じた再処理を行なうためのプリントプロセッサを別途設けることなく、画像形成装置に印刷データを出力した後に発生するようなエラーにも対応させて、印刷データが出力できない不具合に陥る頻度を減少させることが可能なプリンタドライバ、及びその画像形成装置を提供することにある。
【課題を解決するための手段】
【0010】
上記課題を解決するために、本発明の第1の技術手段は、画像形成装置をコンピュータから利用するために、該コンピュータに実行可能に組み込むプリンタドライバであって、前記コンピュータに、アプリケーションプログラムのデータであるアプリケーションデータから、設定された印刷パラメータに基づいて印刷データを生成する生成ステップと、該生成ステップで生成された前記印刷データを一時保存する一時保存ステップと、該一時保存ステップで一時保存された印刷データを前記画像形成装置に送信する送信ステップと、前記画像形成装置での前記印刷データの処理結果の通知を、前記画像形成装置から受信する受信ステップと、該受信ステップで受信した前記処理結果に応じて前記印刷パラメータを変更して、前記一時保存ステップで一時保存された前記印刷データを生成し直す変更ステップと、該変更ステップで変更された前記印刷データを前記画像形成装置に送信する再送信ステップと、を実行させるためのプログラムであることを特徴としたものである。
【0011】
第2の技術手段は、第1の技術手段において、前記コンピュータに、前記送信ステップにおける前記アプリケーションデータに関する印刷データの初回の送信前に、前記画像形成装置に搭載されているメモリの容量と、前記プリンタドライバ自身が前記生成ステップで前記アプリケーションデータから生成した印刷データの容量と、を比較する比較ステップと、該比較ステップでの比較の結果、前記メモリの容量が不足することが予想される場合のみ、前記印刷パラメータを変更して前記生成ステップに渡す事前変更ステップと、を実行させるためのプログラムを含むことを特徴としたものである。
【0012】
第3の技術手段は、第1又は第2の技術手段において、前記生成ステップは、ユーザからの印刷指示によることなく、前記アプリケーションデータから前記印刷データを生成して前記一時保存ステップに渡すことを特徴としたものである。
【0013】
第4の技術手段は、第1〜第3のいずれかの技術手段におけるプリンタドライバで利用可能な画像形成装置であって、前記プリンタドライバから受信した前記印刷データに対して印刷実行前に最後までレンダリング処理を施し、該レンダリング処理時にエラーが発生しないことを確認した後に印刷処理を施し、前記レンダリング処理時にエラーが発生した場合には、前記プリンタドライバに該エラーを通知することを特徴としたものである。
【発明の効果】
【0014】
本発明によれば、印刷エラーに応じた再処理を行なうためのプリントプロセッサを別途設けることなく、画像形成装置に印刷データを出力した後に発生するようなエラーにも対応させて、印刷データが出力できない不具合に陥る頻度を減少させることが可能になる。
【図面の簡単な説明】
【0015】
【図1】本発明に係るプリンタドライバを組み込んだパーソナルコンピュータとそのプリンタドライバにより利用できるプリンタとで構成される印刷システムの構成例を示すブロック図である。
【図2】プリンタドライバでの設定項目の一例を示すための図で、プリンタドライバのUI画面の一例を示す図である。
【図3】プリンタドライバでの設定項目の一例を示すための図で、図2のUI画面において互換性の設定キーが選択されたときに表示されるUI画面の一例を示す図である。
【図4】図1の印刷システムにおける印刷処理の一例を説明するためのフロー図である。
【図5】図4の印刷処理における印刷パラメータの変更余地があるか否かの判定処理及びその判定に基づく変更処理(印刷データ再生成処理)の具体例を説明するためのフロー図である。
【図6】図1の印刷システムにおける印刷処理の他の例を説明するためのフロー図である。
【発明を実施するための形態】
【0016】
以下、本発明に係るプリンタドライバについて、パーソナルコンピュータ(PC)に組み込んだ例を挙げ、そのプリンタドライバで利用可能になる画像形成装置としてプリンタを例に挙げて説明するが、本発明は以下の例に限定されるものではない。例えば組み込み先はサーバコンピュータ、携帯情報端末、携帯電話機などであってもよいし、画像形成装置としては印刷機能以外の機能を複合的に備えた複合機などであってもよい。
【0017】
図1は、本発明に係るプリンタドライバを組み込んだパーソナルコンピュータ(PC)とそのプリンタドライバにより利用できるプリンタとで構成される印刷システムの構成例を示すブロック図である。この印刷システムは、PC10とプリンタ20とがネットワーク経由で接続されてなる。
【0018】
PC10は、制御部11、操作部12、記憶部13、表示部14、及びネットワーク接続部15を備え、プリンタ20は、システムコントローラ21、エンジンコントローラ22、プリントエンジン23、及びネットワーク接続部24を備える。
【0019】
まず、PC10の構成について説明する。制御部11は、CPU(Central Processing Unit)等の演算部、RAM(Random Access Memory)等の作業領域、オペレーションシステム等のプログラムを記録したROM(Read Only Memory)等のプログラム格納領域で構成され、プリンタドライバのユーザインターフェース(UI)の表示処理や表示中の操作部12による操作を受け付ける処理をはじめ、PC10の全体を制御する。操作部12は、マウス、キーボードなどで構成され、これらから入力されたユーザ操作を制御部11に伝送する。
【0020】
記憶部13は、EEPROM(Electrically Erasable and Programmable ROM)等の不揮発性メモリやハードディスクなどで構成され、各種情報を記憶する。記憶部13は、アプリケーションプログラム(アプリケーションソフトウェア)13aや本発明に係るプリンタドライバ13bなどのプログラムを、上記CPUで実行可能に格納するプログラム格納領域としても機能する。なお、プリンタドライバ13bは、CD(Compact Disc)やDVD(Digital Versatile Disc)等の可搬記録媒体に記録して流通させてもよいし、インターネット上のサーバ装置に記録しておき公開するなどして流通させてもよく、それをPC10にインストールすればよい。また、記憶部13は、アプリケーションプログラム13aで生成されるデータ(文書等のアプリケーションデータ)やプリンタドライバ13bでの設定情報(印刷条件等)も記憶する。このように、PC10に実行可能に組み込んだプリンタドライバ13bにより、プリンタ20をPC10から利用することができる。
【0021】
表示部14は、LCD(Liquid Crystal Display)や有機EL(Electroluminescence)ディスプレイ等のディスプレイで構成され、各種情報を表示する。ネットワーク接続部15は、LAN(Local Area Network)等のネットワークに接続するためのインターフェースであり、これによりプリンタ20との接続が可能になる。印刷データも、制御部11からの制御によりネットワーク接続部15から指定のプリンタ20に送信される。
【0022】
次に、プリンタ20の構成について説明する。システムコントローラ21は、CPU等の演算部、RAM21a等の作業領域、制御プログラムを記録したROM等のプログラム格納領域で構成され、プリンタ20の全体を制御する。ネットワーク接続部24は、LAN等のネットワークに接続するためのインターフェースであり、これによりPC10のネットワーク接続部15との接続が可能になる。PC10から送信された印刷データ(印刷ジョブ)もこのネットワーク接続部24が受け取り、システムコントローラ21に渡す。システムコントローラ21は、受け取った印刷データを解釈してレンダリング処理を施してプリントエンジン23での印刷が可能なビットマップデータを生成し、RAM21aに格納する。
【0023】
エンジンコントローラ22は、プリントエンジン23の駆動を制御して印刷処理を実行させる。プリントエンジン23は、印刷用紙上に画像を形成、つまり印刷を行うエンジンである。システムコントローラ21は、PC10から受信した印刷データが印刷指示を含むものである場合には、格納されたビットマップデータを逐次、エンジンコントローラ22に渡して印刷処理を実行させる。一方、システムコントローラ21は、PC10から受信した印刷データがレンダリング指示のみを含むものである場合には、エンジンコントローラ22にビットマップデータを渡さず、印刷指示を待つ。
【0024】
また、プリントエンジン23は、用紙トレイの状態やカバーの状態などのステータス情報の収集も行うセンサを有する。ステータス情報は、ネットワーク接続部24で受信したステータス問い合わせに応じて、システムコントローラ21がエンジンコントローラ22を介してプリントエンジン23により取得され、その問い合わせを行ったPC10へネットワーク接続部24を介して返信される。
【0025】
図2及び図3は、プリンタドライバでの設定項目の一例を示すための図で、図2は、プリンタドライバのUI画面の一例を示す図、図3は、図2のUI画面において互換性の設定キーが選択されたときに表示されるUI画面の一例を示す図である。なお、図2、図3で例示するUI画面31、UI画面32は、プリンタドライバ13bに限らず、従来のプリンタドライバでも採用できる画面である。
【0026】
図2のUI画面31は、プリンタA(プリンタ20の名称とする)用のプリンタドライバにおける印刷条件の設定画面であって、「メイン」、「用紙」、「高度な設定」などで印刷条件を種類分けした設定タブが、ユーザ選択可能となっている。ある設定タブをユーザが選択すると、その設定タブ名に関連する様々な印刷条件が設定可能なように画面が切り替わる。
【0027】
UI画面31は、このうち「高度な設定」のタブが選択された場合に表示された画面である。UI画面31に含まれる設定項目には、プリントモード、グラフィックスモード、及びビットマップ圧縮などの項目を含んでいる。プリントモードとは、画質と速度とのいずれを優先させてプリントするかを設定できる項目であり、例えば、画質を優先するための「最高品質」、速度を優先するための「ノーマル(速度優先)」、それらの中間の「高品質」の中からユーザ選択可能にしておけばよい。グラフィックスモードとは、画像をベクター形式で表現するのか、ビットマップ形式で表現するのかを設定できる項目である。ビットマップ圧縮とは、印刷時の圧縮率を設定できる項目であり、例えば、非圧縮、最高品質(圧縮率C0で圧縮)、高品質(圧縮率C0より高い圧縮率C1で圧縮)、標準(通常)品質(圧縮率C1より高い圧縮率C2で圧縮)の中からユーザ選択可能にしておけばよい。
【0028】
また、UI画面31には互換性の設定キーがユーザ選択可能に表示されており、この設定キーの選択により、図3のUI画面32が表示されるようになっている。このUI画面32には、入力解像度やスプール形式などが設定可能となっている。入力解像度とは、印刷対象の画像の入力解像度を指し、300dpi、600dpi、1200dpiなどの所定値の解像度がユーザ選択可能になっている。スプール形式とは、プリンタ20に印刷データを送信する際にプリンタドライバ13bで一旦データを蓄積するが、その蓄積するデータ(スプールデータ)の形式を指す。WINDOWS(登録商標)の環境での最も単純な例を挙げると、RAW形式、EMF(Enhanced Metafile Format)形式の中からユーザ選択可能にしておけばよい。
【0029】
このような印刷条件の設定項目のうち、プリントモード、グラフィックスモード、ビットマップ圧縮、入力解像度、スプール形式といった項目は、データサイズやデータの処理方法に関連する項目のため、プリンタ20側の印刷処理の成否に関わることが多い。一方、これらの項目は、詳細な画質面には影響するものの、一見した画質には影響しないことも多い。
【0030】
従って、何らかの原因(プリンタ20の搭載メモリの容量など)により、印刷処理が不首尾に終わった場合、従来では、ユーザがこれらの項目(印刷条件)を変更して不具合回避することが行なわれている。しかしながら、これらの印刷条件は他の項目の印刷条件に比べて意味するところがユーザに対して難解であることが多く、従来、ユーザを困惑させることがしばしばあった。
【0031】
ユーザの主たる目的は、印刷物をエラーなく出力することであるので、本発明では、これらの項目を自動的に最適に設定し、それによりユーザの利便性を向上させる。このような印刷条件の自動的な最適化のために、本発明では、エラーが発生した印刷データを、プリンタドライバ13bが自動的にパラメータ変更(印刷条件を変更)してプリンタ20に再送信する。
【0032】
そのため、本発明に係るプリンタドライバ13bは、PC10に、以下に説明する生成ステップ、一時保存ステップ、送信ステップ、受信ステップ、変更ステップ、及び再送信ステップを実行させるためのプログラムとして構築する。
【0033】
生成ステップは、アプリケーションプログラムからの生成指示等により、アプリケーションデータから、デフォルト又はユーザ設定された印刷条件(印刷パラメータ)に基づき印刷データを生成する。一時保存ステップは、生成ステップで生成された印刷データ(つまりアプリケーションプログラムからの印刷データ)を一時保存する。送信ステップは、一時保存ステップで一時保存された印刷データをプリンタ20に送信する。このように、印刷データの送信は、印刷データを一時保存した上で実行する。
【0034】
プリンタ20では、プリンタドライバ13bから受信した印刷データに対して印刷実行前に最後までレンダリング処理を施し、レンダリング処理時にエラーが発生しないことを確認した後に印刷処理を施し、レンダリング処理時にエラーが発生した場合には、プリンタドライバ13bにそのエラーを通知することが好ましい。勿論、プリンタ20では、受信した印刷データに対して、上述のように全データのレンダリング処理を施すだけでなく印刷処理まで施し、その結果、エラーの場合にエラー通知を行うように構成しておいてもよい。いずれの方法の場合でも、成功した場合には成功通知をプリンタドライバ13bに行うことが好ましい。
【0035】
受信ステップは、プリンタ20でのその印刷データの処理結果の通知を、プリンタ20から受信する。ここで処理結果とは、レンダリング処理のみで成否を判定する場合にはレンダリング処理結果が該当し、印刷処理も含めて成否を判定する場合には印刷処理結果が該当する。
【0036】
変更ステップは、受信ステップで受信した処理結果に応じて印刷パラメータを変更して、一時保存ステップで一時保存された印刷データを生成し直す。処理結果に応じて生成し直すとは、処理結果が成功の場合には当然生成し直す必要がなく、処理結果が失敗の場合のみ生成し直すことを指す。特に、解像度や圧縮、カラー階調などの一見した画質には影響が比較的少ないが展開処理の可否に大きな影響を及ぼす印刷パラメータを、変更の対象とすることが好ましい。このように、上記一時保存ステップは、プリンタ20での処理結果として成功通知を受け取るまで、或いはエラー通知を受け取っても変更を行うまでは、印刷データを保持しておく。そして、再送信ステップは、変更ステップで変更された印刷データをプリンタ20に送信する。
【0037】
上述のように、本発明では、プリンタ20で印刷エラーが生じた際に自動的にプリンタ20に対して印刷パラメータを変化(自動調整)させた印刷データを再送信する、つまり、プリンタドライバ13bによって印刷が完了可能な印刷パラメータを探索するように自動的に再送信を繰り返す。従って、印刷エラーに応じた再処理を行なうためのプリントプロセッサを別途設けることなく、つまり既存のシステムに特にエラー回避のための要素を追加することなく、プリンタ20に印刷データを出力した後に発生するようなエラーにも事前に対応させて、印刷データが出力できない不具合に陥る頻度を従来に比べて減少させ、プリンタ20でのエラー発生をユーザに対して顕在化させる機会を最小化することができる。
【0038】
図4を参照して、本発明における印刷処理について具体的に説明する。図4は、図1の印刷システムにおける印刷処理の一例を説明するためのフロー図である。まず、PC10において、アプリケーションデータをアプリケーションプログラム13aで開いた状態で、ユーザがデフォルト設定のまま印刷指示の操作を行うか、或いはプリンタドライバ13bの設定画面を呼び出して印刷設定を行った後に印刷指示の操作を行う。このような印刷指示のユーザ操作を受け付けたアプリケーションプログラム13aは、プリンタドライバ13bに印刷データの生成指示を行う。
【0039】
プリンタドライバ13bは、これに応答してそのアプリケーションデータの印刷データを印刷設定(印刷条件の設定)に基づき生成する(ステップS1)。プリンタドライバ13bは、生成した印刷データを制御部11内のRAM(又は記憶部13の仮想RAM領域、以下同様)にプールする(ステップS2)と共に、プールした印刷指示付きの印刷データをプリンタ20に出力することで、プリンタ20に対して印刷指示を行う(ステップS3)。
【0040】
この印刷指示を受けたプリンタ20のシステムコントローラ21は、レンダリング処理及び印刷処理を実行する(ステップS4)。この実行の結果、システムコントローラ21はプリントが成功したか否かを判定し(ステップS5)、成功した場合には成功通知をPC10のプリンタドライバ13bに送信する(ステップS6)。なお、ネットワーク上での通信エラーのようなものの判定及びその対処は、基本的に本発明とは関係なく、別の判定手段及び対処手段を設けて対応すればよい。
【0041】
成功通知を受信したプリンタドライバ13bは、プールしておいた印刷データを削除する(ステップS7)。なお、プリンタ20が成功通知を送信しない構成を採用してもよく、その構成の場合、プリンタドライバ13b側で、印刷データの送信を終了してから所定期間経過するまでにエラー通知を受けなかったときに、成功であると判断すればよい。
【0042】
ステップS5でNOの場合、つまり印刷に失敗した場合には、システムコントローラ21はプリンタドライバ13bにエラー通知を送信する(ステップS8)。エラー通知を受信したプリンタドライバ13bは、プールしておいた印刷データに印刷パラメータの変更余地があるか否かを判定する(ステップS9)。
【0043】
ステップS9でNOの場合、プリンタドライバ13bは、プールしておいた印刷データを削除し(ステップS11)、エラーページの印刷をプリンタ20に指示する(ステップS12)。この指示に応答して、プリンタ20はエラーページの印刷を実行する(ステップS13)。なお、ステップS12の代わりに、又はステップS12の処理と併せて、エラーであった旨の警告文を表示部14に表示させてもよい。
【0044】
一方、ステップS9でYESの場合、印刷パラメータを変更して、印刷データを再生成する(ステップS10)。変更対象の印刷パラメータは上述した通りであるが、どの印刷パラメータをどのように変更するかの具体例については図5を参照しながら後述する。ステップS10では、印刷データのうちの印刷パラメータの記述部分を変更するだけで、印刷データの変更を行える場合もある。また、生成し直された印刷データは一時保存された状態とする。印刷パラメータは、プリンタ20の内蔵メモリ(RAM21a)の使用量を減らす方向、システムコントローラ21の処理の負荷を減らす方向に変更する。
【0045】
ステップS10の処理後は、ステップS2へ戻る。つまり、再生成した印刷データが元の印刷データに置き換わってプールされ、再生成された印刷データに基づきステップS3(印刷データ送信処理)以降の処理が繰り返されることになる。このように、プリンタ20で受信データの展開処理が何らかの障害によりエラー終了した場合には、その旨をクライアントであるPC10に通知し、エラー終了の通知されたPC10は、特に、解像度や圧縮、カラー階調などの一見した画質には影響が比較的少ないが展開処理の可否に大きな影響を及ぼす印刷パラメータを自動的に調整して再度データ送信を試みる。
【0046】
図4で説明したように、プリンタドライバ13bは、予めアプリケーションプログラムからのデータを印刷データに変換し、プールした上でプリンタ20にデータを送信する。送信された印刷データは、プリンタ20でレンダリングされ、印字出力され、その結果正常に印字できた場合、プリンタドライバ13bはその旨の通知をプリンタ20から受け、プールしたデータを削除して終了する。一方、プリンタ20で正常にレンダリング及び印字ができなかった場合、プリンタ20はエラーをプリンタドライバ13bに通知する。プリンタドライバ13bはその旨を通知されると調整可能な印刷パラメータを変更して再度印刷データを作成し、送信を実行する。以下、通知結果に応じて変化させることのできる印刷パラメータを順次変化、再印刷していく。最終的にリトライの余地がなくなれば、プリンタ20はエラーページを出力することによりユーザにエラーを通知し、同時にプリンタドライバ13bはプールしておいたデータを削除して処理を終了する。
【0047】
なお、図4の処理例のように用紙への印刷処理及びその処理結果の成否により印刷パラメータの変更の実行/不実行を決めてもよいが、レンダリング処理及びその処理結果の成否により印刷パラメータの変更を行ってもよい。その場合、プリンタ20は、レンダリング成功時には引き続き印刷処理も施せばよい。
【0048】
次に、図4のステップS9,S10における判定処理及び印刷データ再生成処理、すなわち再送信時の変更対象パラメータの具体例について、図2及び図3の印刷パラメータの例に基づき図5を参照して説明する。図5は、図4の印刷処理における印刷パラメータの変更余地があるか否かの判定処理及びその判定に基づく変更処理(印刷データ再生成処理)の具体例を説明するためのフロー図である。
【0049】
プリンタドライバ13bは、プリンタ20から印刷処理のエラー通知を受け取ると、これをプリンタドライバ13b側への再出力の依頼通知と解釈して、当該印刷データのスプール形式、ビットマップ圧縮設定、プリントモード、グラフィックスモード、入力解像度の設定値をそれぞれ確認し、順次印刷が容易になるように再設定、再印刷を繰り返す。
【0050】
具体的には、まずスプール形式がEMF形式か否かを判定し(ステップS21)、NOであった場合、EMF形式に変更し(ステップS31)、その変更した印刷条件で印刷データを再生成する(ステップS44)。なお、ステップS44の後、図4のステップS2へ進む。
【0051】
一方、ステップS21でYESの場合には、ビットマップ圧縮の設定が標準品質であるか否かを判定する(ステップS22)。ステップS22でNOであった場合、高品質の設定であるかの判定(ステップS32)、最高品質の設定であるかの判定(ステップS33)を行う。ステップS32,S33の判定により、非圧縮であった場合(ステップS33でNOの場合)には最高品質に設定し(ステップS34)、最高品質であった場合(ステップS33でYESの場合)には高品質に設定し(ステップS35)、高品質の設定であった場合(ステップS32でYESの場合)には標準品質に設定する(ステップS36)。ステップS34,S35,S36の処理後は、ステップS44へ進み、変更した印刷条件で印刷データを再生成する。
【0052】
ステップS22でYESの場合には、プリントモードがノーマルであるか否かを判定する(ステップS23)。ステップS23でNOであった場合には、プリントモードが高品質か否かを判定し(ステップS37)、NOの場合(最高品質の場合)にはプリントモードを高品質に変更し(ステップS38)、YESの場合(高品質の場合)にはプリントモードをノーマルに変更する(ステップS39)。ステップS38,S39の処理後は、ステップS44へ進み、変更した印刷条件で印刷データを再生成する。ステップS23でNOの場合には、グラフィックスモードがラスター形式(ビットマップ形式)か否かを判定し(ステップS24)、NOの場合にはラスター形式に変更し(ステップS40)、ステップS44にてラスター形式で印刷データを再生成する。
【0053】
入力解像度が300dpi、600dpi、1200dpiの中から選択可能な場合を想定して説明すると、ステップS24でYESの場合には、入力解像度が300dpiか否かを判定し(ステップS25)、NOの場合には600dpiか否かを判定する(ステップS41)。ステップS41でNOの場合(つまり1200dpiの場合)には600dpiに変更し(ステップS42)、ステップS41でYESの場合には300dpiに変更する(ステップS43)。ステップS42,S43の処理後は、ステップS44へ進み、変更した印刷条件で印刷データを再生成する。
【0054】
ステップS25でYESの場合、すなわち最終的に印刷が容易になるような再設定及び再印刷ができなくなれば(つまりリトライの余地が無くなれば)、印刷パラメータ変更余地無しと判定する(ステップS26)。ステップS26の判定は図4のステップS9でNOと判定されたことを意味し、その後は、プリンタ20はエラーページを出力すること(図4のステップS13)によりユーザにエラーを通知し、同時にプリンタドライバ13bはプールしておいたデータを削除して(図4のステップS11)、処理を終了する。
【0055】
図5で説明した制御の例においては、可能か限り画質を保ちながら出力可能な設定を探すため、画像に影響の少ない印刷パラメータから順次設定を変更するような流れ、すなわち試行回数が多くなることを許容する方法を採用したが、出力不可能状態の回避を最優先に考えるのであれば、1回の設定変更で全ての印刷パラメータをプリンタ20での印刷処理に有利な方向へ変化させる方法も採用できる。
【0056】
次に、図6を参照し、ユーザによる印刷指示がなくても、印刷が成功するように自動的に印刷パラメータを調整することが可能な処理例を説明する。図6は、図1の印刷システムにおける印刷処理の他の例を説明するためのフロー図である。
【0057】
まず、PC10において、アプリケーションデータをアプリケーションプログラム13aで開いた状態で、ユーザがデフォルト設定のままプレビュー指示の操作を行うか、或いはプリンタドライバ13bの設定画面を呼び出して印刷設定を行った後にプレビュー指示の操作を行う。このようなプレビュー指示のユーザ操作を受け付けたアプリケーションプログラム13aは、プリンタドライバ13bに印刷データの生成指示を行う。
【0058】
プリンタドライバ13bは、これに応答してそのアプリケーションデータの印刷データを印刷設定に基づき生成する(ステップS51)。プリンタドライバ13bは、生成した印刷データを制御部11内のRAMにプールする(ステップS52)と共に、プールしたレンダリング指示付きの印刷データをプリンタ20に出力することで、プリンタ20に対してレンダリング指示を行う(ステップS53)。なお、プリンタドライバ13bは、生成した印刷データをビットマップデータに変換して表示部14にプレビュー表示させる処理も実行する。
【0059】
このレンダリング指示を受けたプリンタ20のシステムコントローラ21は、全データのレンダリング処理のみを実行する(ステップS54)。この実行の結果、システムコントローラ21はレンダリングが成功したか否かを判定し(ステップS55)、成功した場合には成功通知をPC10のプリンタドライバ13bに送信する(ステップS56)。
【0060】
ステップS55でNOの場合、つまりレンダリングに失敗した場合には、システムコントローラ21はプリンタドライバ13bにエラー通知を送信する(ステップS57)。エラー通知を受信したプリンタドライバ13bは、プールしておいた印刷データに印刷パラメータの変更余地があるか否かを判定する(ステップS58)。
【0061】
ステップS58でYESの場合、図4のステップS10と同様に、印刷パラメータを変更して、印刷データを再生成する(ステップS59)。ステップS59の処理後は、ステップS52へ戻る。つまり、再生成した印刷データが元の印刷データに置き換わってプールされ、再生成された印刷データに基づきステップS53以降の処理が繰り返されることになる。なお、図6のステップS58,S59についても図5で説明した具体例が適用できる。
【0062】
プリンタドライバ13bは、ステップS56での成功通知を受信した場合や印刷パラメータの変更余地が無くなった場合(ステップS58でNOの場合)、ユーザからの印刷指示を待ち(ステップS60)、印刷指示があった段階で、ステップS57でのエラー通知を受け取った場合のみその旨の警告を表示部14に表示し(ステップS61)、プールしておいた印刷データをプリンタ20に出力して印刷指示を行う(ステップS62)。この印刷指示後、プールしておいた印刷データは削除すればよい。
【0063】
この印刷指示に応答して、プリンタ20は、印刷処理を実行する(ステップS63)。図示しないが、システムコントローラ21は、この印刷処理の結果、印刷に成功した場合には成功通知を失敗した場合(ステップS58でNOとなった場合には通常、ここでは失敗となる)にはエラー通知を、プリンタドライバ13bに送信する。プールしておいた印刷データはこの成功通知又はエラー通知を受け取った段階で削除すればよい。また、プリンタドライバ13bが、エラー通知の受信時に、エラーページの印刷をプリンタ20に指示することで、プリンタ20がエラーページの印刷を実行する。若しくは、エラー通知の送信と共に、プリンタ20が自身でエラーページを印刷してもよい。
【0064】
このように、図6の例では、プリンタドライバ13bは、ユーザによって印刷を指示する操作がなされる前に、現行の印刷設定で印刷データを作成し、印刷指示の操作の前にプリンタ20に送信し、プリンタ20でレンダリング処理を行い、その処理結果により、ユーザによる印刷の指示がなされる前に最適な印刷パラメータを決定する。つまり、上述の生成ステップは、ユーザからの印刷指示によることなく、アプリケーションデータから印刷データを生成して一時保存ステップに渡すようにしている。
【0065】
勿論、この例でも、プリンタドライバ13bはステップS53で印刷指示を行い、プリンタ20が印刷処理まで実行してもよい。しかし、プリンタ20が印刷指示を受けてもレンダリング処理だけを行って判定するように構成することで、上述したようにステップS53でレンダリング指示を行う場合と同様に無駄な(ユーザの印刷指示のない)印刷物が生成されてしまうことがないため、好ましい。
【0066】
また、図6の例では、ユーザによるプレビュー表示指示に応じてステップS51〜S59の処理を実行するように説明したが、これに限ったものではなく、ユーザによる印刷指示でなければよい。例えば、ユーザがアプリケーションデータを開いてから所定期間毎に、或いはユーザによるアプリケーションデータの上書き保存操作時などに、ステップS51〜S59の処理を実行するようにしておいてもよい。
【0067】
次に、図4や図6の処理例に適用可能な処理例について説明する。ここで説明する処理例は、図4や図6で説明したプリンタドライバ13bが、PC10に次の比較ステップ及び事前変更ステップを実行させるためのプログラムを含むように構成したものである。
【0068】
上記比較ステップは、送信ステップにおけるアプリケーションデータに関する印刷データの初回の(1回目の)送信前に、プリンタ20に搭載されているメモリの容量(RAM21aの使用可能容量)と、プリンタドライバ13b自身が生成ステップでアプリケーションデータから生成した印刷データの容量と、を比較する。メモリの容量は、上述したステータス情報の一部としてプリンタドライバ13bがプリンタ20から受信すればよい。
【0069】
また、上記事前変更ステップは、比較の結果、メモリの容量が不足することが予想される場合のみ、予め印刷パラメータを変更してから生成ステップに渡す。つまり、メモリ容量が不足しそうな場合には、印刷パラメータを事前に変更してアプリケーションデータから印刷データを生成し直す。
【0070】
これら比較ステップ及び事前変更ステップは、図4の処理において、ステップS2の処理後に実行すればよく、これにより、ステップS8のエラー通知が発せられる頻度が少なくなる。また、これら比較ステップ及び事前変更ステップは、図6の処理において、ステップS52の処理後に実行すればよく、これにより、ステップS57のエラー通知が発せられる頻度が少なくなる。
【0071】
なお、以上の各処理例では、プリンタ20側でレンダリングすることを前提に説明したが、プリンタドライバ13bでレンダリング処理まで行ったものを印刷データとしてプリンタ20に出力する場合にも適用可能である。そのような場合、図4のステップS5や図6のステップS55では、受信中の印刷データ(レンダリング処理後のビットマップデータ)がRAM21aに収まったか否かを判定することになる。実際、事前にプリンタドライバ13b側で把握できるプリンタ20のメモリ容量の精度については何MBのメモリが装着されているかという程度であり、プリンタ20の処理状況に応じてその時々のフリーエリアの容量までは把握できない。従って、この例でのようにレンダリング処理後のデータをプリンタ20に送信した場合にも、RAM21a内に収まったか否かを判定することは有益である。
【符号の説明】
【0072】
10…PC、11…制御部、12…操作部、13…記憶部、13a…アプリケーションプログラム、13b…プリンタドライバ、14…表示部、15…PC側のネットワーク接続部、20…プリンタ、21…システムコントローラ、21a…RAM、22…エンジンコントローラ、23…プリントエンジン、24…プリンタ側のネットワーク接続部、31,32…UI画面。

【特許請求の範囲】
【請求項1】
画像形成装置をコンピュータから利用するために、該コンピュータに実行可能に組み込むプリンタドライバであって、
前記コンピュータに、
アプリケーションプログラムのデータであるアプリケーションデータから、設定された印刷パラメータに基づいて印刷データを生成する生成ステップと、
該生成ステップで生成された前記印刷データを一時保存する一時保存ステップと、
該一時保存ステップで一時保存された印刷データを前記画像形成装置に送信する送信ステップと、
前記画像形成装置での前記印刷データの処理結果の通知を、前記画像形成装置から受信する受信ステップと、
該受信ステップで受信した前記処理結果に応じて前記印刷パラメータを変更して、前記一時保存ステップで一時保存された前記印刷データを生成し直す変更ステップと、
該変更ステップで変更された前記印刷データを前記画像形成装置に送信する再送信ステップと、
を実行させるためのプログラムであることを特徴とするプリンタドライバ。
【請求項2】
請求項1に記載のプリンタドライバであって、
前記コンピュータに、
前記送信ステップにおける前記アプリケーションデータに関する印刷データの初回の送信前に、前記画像形成装置に搭載されているメモリの容量と、前記プリンタドライバ自身が前記生成ステップで前記アプリケーションデータから生成した印刷データの容量と、を比較する比較ステップと、
該比較ステップでの比較の結果、前記メモリの容量が不足することが予想される場合のみ、前記印刷パラメータを変更して前記生成ステップに渡す事前変更ステップと、
を実行させるためのプログラムを含むことを特徴とするプリンタドライバ。
【請求項3】
請求項1又は2に記載のプリンタドライバであって、
前記生成ステップは、ユーザからの印刷指示によることなく、前記アプリケーションデータから前記印刷データを生成して前記一時保存ステップに渡すことを特徴とするプリンタドライバ。
【請求項4】
請求項1〜3のいずれか1項に記載のプリンタドライバで利用可能な画像形成装置であって、
前記プリンタドライバから受信した前記印刷データに対して印刷実行前に最後までレンダリング処理を施し、該レンダリング処理時にエラーが発生しないことを確認した後に印刷処理を施し、前記レンダリング処理時にエラーが発生した場合には、前記プリンタドライバに該エラーを通知することを特徴とする画像形成装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2010−218499(P2010−218499A)
【公開日】平成22年9月30日(2010.9.30)
【国際特許分類】
【出願番号】特願2009−67496(P2009−67496)
【出願日】平成21年3月19日(2009.3.19)
【出願人】(000005049)シャープ株式会社 (33,933)
【Fターム(参考)】