(57)【要約】【課題】構文エラー、文字化け、システムリソース不足によるエラー発生時における無駄な印刷出力を防止することができる。【解決手段】プログラム実行部は、ＲＩＰ処理部の印刷言語解析ステップで検出されたエラーの種類から、記憶部に予め記憶されているエラー対処内容管理テーブルとエラー対処方法設定テーブルとを参照してエラー種別とエラー対処方法を決定し、通知部を介してユーザへエラーがあったことを通知し、ユーザが印刷されなかった印刷ジョブの必要なページを選択して印刷できるようにしたものである。【選択図】      図１
2007080269.tif 000002
【特許請求の範囲】
【請求項１】
印刷するためのデータを入力する入力部と、
この入力部で入力されたデータを解析する解析部と、
この解析部でエラーを検知した際、検知したエラー種別に応じて印刷ジョブの処理を変更する制御を行う制御部と、
を具備することを特徴とする印刷装置。
【請求項２】
上記入力部から入力されるデータは、ページ  ディスクリプション  ランゲージ（ＰＤＲ）であることを特徴とする請求項１に記載の印刷装置。
【請求項３】
上記解析部は、ラスター  イメージ  プロセッサー（ＲＩＰ）処理部であることを特徴とする請求項１に記載の印刷装置。
【請求項４】
上記エラー種別は、文法エラー、文字化け（１バイト文字）、文字化け（２バイト文字）、システムエラー、その他のエラーの内少なくとも２つが含まれることを特徴とする請求項１に記載の印刷装置。
【請求項５】
上記制御部で変更する処理は、印刷ジョブの中止、紙への印刷の中止、ＲＩＰ処理の中止、部数の変更、フィニッシング（ステープル、パンチ等）の変更の全部もしくは一部であることを特徴とする請求項１に記載の印刷装置。
【請求項６】
上記制御部は、上記解析部でエラーを検知した際、印刷ジョブで生成される印刷データを保存し、この保存した印刷データを表示、編集、再印刷可能とする制御を行うことを特徴とする請求項１に記載の印刷装置。
【請求項７】
上記制御部は、上記エラー種別に応じて印刷ジョブの処理を変更した際、印刷ジョブの処理内容を変更したことを表示する制御を行うことを特徴とする請求項１に記載の印刷装置。
【請求項８】
印刷装置の印刷方法において、
印刷するためのデータを入力する入力工程と、
この入力されたデータを解析する解析工程と、
この解析によりエラーを検知した際に、検知したエラー種別に応じて印刷ジョブの処理を変更する変更工程と、
を有する印刷装置の印刷方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、外部からデータを入力して印刷することのできる印刷装置と印刷装置の印刷方法に関する。
【背景技術】
【０００２】
従来、印刷装置において、印刷言語解析中に生じた異常コマンドの発生回数および白紙ページ数が所定の閾値に達した場合に印刷処理を中断し、これを端末に通知し、その指示を待って処理の中止又は再開を行う方法が特許文献１に開示されている。
【０００３】
しかしながら、特許文献１で説明されている異常コマンドは、解析に使用している印刷言語の言語体系に含まれないコマンドだけであり、構文エラー、文字化け等のデータ整合性に異常がある場合や、印刷装置のリソース（例えば、メモリや磁気ディスク）不足に起因する異常に対応できていない。また、白紙ページ数の閾値による異常検知に関しても、ユーザが意図的に入れた白紙や両面印刷時に自動的に挿入される裏面のページが多い場合に誤動作が発生していた。
【０００４】
上述したような文字化け等の異常や誤動作により、無駄に印刷出力してしまうという問題があった。
【特許文献１】特開平８−６３３０９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
この発明は、構文エラー、文字化け、システムリソース不足によるエラー発生時における無駄な印刷出力を防止することのできる印刷装置と印刷装置の印刷方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
この発明の印刷装置は、印刷するためのデータを入力する入力部と、この入力部で入力されたデータを解析する解析部と、この解析部でエラーを検知した際、検知したエラー種別に応じて印刷ジョブの処理を変更する制御を行う制御部とを有する。
【発明の効果】
【０００７】
以上詳述したように、この発明は、構文エラー、文字化け、システムリソース不足によるエラー発生時における無駄な印刷出力を防止することのできる印刷装置と印刷装置の印刷方法を提供できる。
【発明を実施するための最良の形態】
【０００８】
以下、この発明の一実施の形態について図面を参照して説明する。
【０００９】
図１は、この発明に係る印刷装置２０の概略構成を示すものである。この印刷装置２０は、プログラム実行部１、データ入出力部２、通知部３、操作部４、画像処理部５、タイマ６、記憶部７、ＲＩＰ（Raster Image Processor）処理部８、表示部９、及び印刷出力部１０とから構成されている。
【００１０】
プログラム実行部１は、記憶部７に格納されているプログラムを読み出して実行する。
【００１１】
データ入出力部２は、パーソナルコンピュータ等の外部からデータを入力し、また、データを出力するインターフェース部である。
【００１２】
通知部３は、ユーザへ通知メッセージを送出する。
【００１３】
操作部４は、ユーザが印刷装置２０を操作する。
【００１４】
画像処理部５は、ＲＩＰ処理部８が生成した印刷画像を印刷に適した画像に変換し、より綺麗に出力できるように補正する。
【００１５】
タイマ６は、計時手段である。
【００１６】
記憶部７は、プログラムや送られてくるデータ、一時的に保持するデータを記憶するブロックで読み込み、書き込みすることができる。
【００１７】
ＲＩＰ処理部８は、送られてくるＰＤＬ（Page Description Language）を解釈し、印刷画像を形成する。
【００１８】
表示部９は、操作状況や印刷装置２０の状態を表示する。
【００１９】
印刷出力部１０は、印刷画像を紙に印字する。
【００２０】
図２は、印刷装置２０の印刷動作を示すものである。
【００２１】
例えば、パーソナルコンピュータ（ＰＣ）３０上で動作しているアプリケーションから、プリンタドライバ３１を使ってＰＤＬデータが生成され、ＬＡＮ等を経由してＰＤＬデータが印刷装置２０へ送られるものとする。
【００２２】
印刷装置２０において、データ入出力部２を介して送られてきたＰＤＬデータは、記憶部７に一時的に保持され、さらにＲＩＰ処理部８に読み込まれる。ＲＩＰ処理部８において、読み込まれたＰＤＬデータは、印刷言語解析ステップで解釈され、画像処理（前処理）ステップでスケーリング処理や色変換処理され、レンダリングステップで印刷画像データが生成される。
【００２３】
そして生成された印刷画像データは、データ圧縮／伸張ステップ（画像処理部５）で圧縮処理されて記憶部７へ保存される。続いて、記憶部７に保存された圧縮印刷画像データは、読み出されてデータ圧縮／伸張ステップ（画像処理部５）で伸張処理され、画像処理（後処理）ステップ（画像処理部５）で階調補正処理やハーフトーン処理が行われ、印刷エンジン（印刷出力部１０）へ送られる。印刷エンジン（印刷出力部１０）では、送られてきた印刷画像データを紙に印刷して印刷物を生成する。
【００２４】
この印刷動作の過程で、アプリケーション及びプリンタドライバが適切なＰＤＬを生成しないことがある。そのため、稀ではあるがエラーシートが印刷されたり、印字される文字が化けたりすることがある。
【００２５】
図３は、正常時の期待される印刷結果である。
【００２６】
図４は、異常時の印刷結果の例である。これは、アプリケーションやプリンタドライバが生成するＰＤＬデータにバグ等あって間違ったＰＤＬ記述がされた時、あるいは記憶部７に一時的に作成される中間データが複雑な記述のため記憶容量が不足した時などに発生する。
【００２７】
図５は、文字化け時の印刷結果の例である。この文字化け時は、アプリケーションから指定されたフォントが印刷装置２０に存在しない場合に、代わりのフォントで印刷されあたかも正常に印刷されたように動作するが、実際には漢字の部分が英数字に化けたり、印字位置がずれたりしてしまっている。
【００２８】
そこで本発明では、ＲＩＰ処理部８の印刷言語解析ステップで検出されたエラーの種類から、印刷装置２０の処理内容を自動的に変更して無駄な印字を防ぐとともに、ユーザへエラーがあったことを通知し、ユーザが印刷されなかった印刷ジョブの必要なページを選択して印刷できるようにする。それにより、ユーザの利便性の向上を図る。
【００２９】
まず、ＲＩＰ処理部８の印刷言語解析ステップは、エラー検出機能を備えている。
【００３０】
ＲＩＰ処理部８でエラー検出がされた後、プログラム実行部１は、そのエラーの種類を判別し、印刷ジョブの処理内容を自動的に変更する。
【００３１】
図６は、エラー対処内容管理テーブルの例を示すものである。このテーブルは、予めエラーを分類し、それに対して変更処理する内容を定義したものであり、記憶部７に用意されている。この例では、対処方法ＩＤを、「０」、「１」、「２」、「３」と分類している。
【００３２】
図７は、エラー対処方法設定テーブルの例を示すものである。このテーブルも、記憶部７に予め容易されている。例えば、エラー種別が文法エラーの場合、対処方法ＩＤは「２」として、図６に示すエラー対処内容管理テーブルの対処ＩＤ２における対処内容に処理を変更する。すなわち、「文法エラー」の時は、印刷を即時中止して無駄な紙を防止するとともにユーザへエラーを通知し、印刷ジョブを電子データとして保持し、ユーザが必要に応じてページを選択し、印刷再開が可能なように印刷ジョブが自動的に変更される。
【００３３】
また、図７に示すエラー対処方法設定テーブルによって、「フォントエラー（２バイト文字）」や「システムエラー」も同様の制御となる。そして、「フォントエラー（１バイト文字）」の場合、代替として使用されるフォントが同じ英数字ということで印刷の中止はしない。ただし、複数部印刷が設定されていた時は解除し、１部のみの印刷とジョブの設定を変更する。
【００３４】
図８は、印刷ジョブの変更が行われた際に表示部９に表示した画面例を示すものである。
【００３５】
図９は、印刷ジョブが変更された履歴を表示部９に表示した画面例である。
【００３６】
図１０は、再印刷する際に表示部９に表示した選択画面の例である。
【００３７】
上述したように自動的に変更された印刷ジョブは、履歴管理され、ユーザがその変更内容を容易に把握でき、必要に応じて再印刷が可能となっている。
【００３８】
次に、このような構成において印刷処理の動作を図１１〜１９のフローチャートを参照して説明する。
【００３９】
最初に、印刷処理（前処理）ついて図１１のフローチャートを参照して説明する。
【００４０】
まず、印刷装置２０のプログラム実行部１は、ＰＣ３０から送られてくるＰＤＬファイルの有無をチェックし（ＳＴ１）、スプーラに存在していれば印刷処理を開始する。
【００４１】
プログラム実行部１は、そのＰＤＬファイルをオープンし（ＳＴ２）、ＰＤＬデータを読み込む（ＳＴ３）。
【００４２】
続いて、ＲＩＰ処理部８は、読み込んだデータを印刷言語解析処理し（ＳＴ６）、そこでエラーが発生すればエラー処理が行われる（ＳＴ７）。
【００４３】
また、エラーが無い場合、ＲＩＰ処理部８は、画像処理（前処理）を行い（ＳＴ８）、レンダリング処理を行う（ＳＴ９）。
【００４４】
続いて、画像処理部５は、印刷データの圧縮処理を行う（ＳＴ１０）。
【００４５】
そして、プログラム実行部１は、圧縮データを記憶部７に格納する処理を行う（ＳＴ１１）。また、プログラム実行部１は、エラー処理からＲＩＰ処理中止の指示があれば処理を中止し（ＳＴ１２）、なければＰＤＬファイルが終わるまで処理を繰り返す（ＳＴ３〜１２）。
【００４６】
次に、エラー処理を図１２のフローチャートを参照して説明する。
【００４７】
プログラム実行部１は、印刷言語解析処理でエラーを検出した際（ＳＴ７）、記憶部７に記憶されているエラー対処内容管理テーブルとエラー対処方法設定テーブルとを参照し、エラー種別とエラー対処方法を決定する（ＳＴ２１，２２）。
【００４８】
プログラム実行部１は、決定したエラー対処方法の内容により、印刷ジョブ中止の有無（ＳＴ２３，２４）、紙への印刷中止の有無（ＳＴ２５，２６）、ＲＩＰ中止の有無（ＳＴ２７，２８）、部数指定やフィニッシング指定等のジョブパラメータ変更の有無（ＳＴ２９，３０）を決定して必要な処理を行う。
【００４９】
その後、プログラム実行部１は、通知部３を介してユーザへエラーを通知し（ＳＴ３１）、エラー処理履歴をログ（記憶部７）へ記録する（ＳＴ３２）。
【００５０】
次に、印刷処理（後処理）ついて図１３，１４，１５のフローチャートを参照して説明する。
【００５１】
まず、プログラム実行部１は、印刷処理（前処理）によって記憶部７に保存された印刷画像の圧縮データがあれば（ＳＴ４１）、ジョブパラメータをセットする（ＳＴ４２）。
【００５２】
そして、プログラム実行部１は、指定されたページの圧縮データを読み込み（ＳＴ４３）、それを画像処理部５で伸張処理して元の印刷画像に戻すと共に画像処理（後処理）を行う（ＳＴ４４，４５）。
【００５３】
そこで、紙へ印刷する場合（ＳＴ４６）、プログラム実行部１は、印刷出力部（印刷エンジン）１０へ印刷画像データを送出する（ＳＴ４７）。
【００５４】
複数部印刷する場合（ＳＴ４９）は、設定により同じページをまとめて印刷するグループ処理（ＳＴ６１，６２，６３）と、始めから終わりまでを１部とした単位で必要部数印刷するソート処理（ＳＴ７１，７２，７３，７４）とに分けて処理が分岐され、必要な部数が印刷される。
【００５５】
この時、印刷処理（前処理）でエラーが発生した時は、必要に応じて印刷ジョブの中止の有無（ＳＴ４８）、紙への印刷抑制の有無（ＳＴ４６）、印刷画像データ削除の有無（ＳＴ５０，５１）の処理が必要に応じて行われる。
【００５６】
最後に、エラーリカバリー処理について図１６，１７，１８，１９のフローチャートを参照して説明する。
【００５７】
印刷処理（前処理）でエラーが発生した場合、エラー対処内容管理テーブルとエラー対処方法設定テーブルとに定義された内容で印刷ジョブが処理される。
【００５８】
この時、ユーザは、印刷画像データが保存されているので、これを確認して必要なページがあれば、それを再印刷することができる。また、タイマ６を用いて、定期的に画面チェック及び保存期間の過ぎたエラー処理履歴や印刷画像データを削除する。
【００５９】
この時、画面が印刷ステータス画面の場合（ＳＴ８１）、プログラム実行部１は、記憶部７からエラー処理履歴ログを検索し（ＳＴ９１）、エラー処理として登録されていてユーザのリカバリー処理がされていない件数を数え（ＳＴ９２）、エラー処理残件数等をセットする（ＳＴ９３）。そして、プログラム実行部１は、表示部９の印刷ステータス画面の表示を更新する（ＳＴ９４）。
【００６０】
また、印刷エラー履歴画面の場合（ＳＴ８２）、プログラム実行部１は、記憶部７からエラー処理履歴ログを読み込む（ＳＴ１０１）。そして、エラー履歴リストのスクロールが押された際（ＳＴ１０２）、プログラム実行部１は、エラー履歴リストのスクロール処理を行い（ＳＴ１０３）、エラー処理の未処理分を履歴リストにセットし（ＳＴ１０４）、表示部９の表示画面を更新する（ＳＴ１０５）。
【００６１】
「選択」ボタンが押された場合（ＳＴ１０６）、プログラム実行部１は、チェックボックスのチェック状態を反転する（ＳＴ１０７）。例えば、選択状態なら非選択状態へ、非選択状態なら選択状態の様に変更する。
【００６２】
続いて、「再印刷設定」ボタンが押されていれば（ＳＴ１０８）、プログラム実行部１は、表示部９を印刷画像選択画面の表示に切り替える。画像選択リストのスクロールが押さされた際（ＳＴ１１１）、プログラム実行部１は、画像選択リストのスクロール処理を行い（ＳＴ１１２）、保存されている圧縮印刷画像データからサムネイルを作成し（ＳＴ１１３）、印刷画像選択画面の表示を更新する（ＳＴ１１４）。
【００６３】
続いて画像が押された際（ＳＴ１１５）、プログラム実行部１は、押された画像の選択状態を反転する（ＳＴ１１６）。「拡大」ボタンが押された際、プログラム実行部１は、表示部９における拡大表示処理を行う（ＳＴ１１８）。この表示処理では、ポップアップウィンドウ等を表示し、拡大された画像を確認することが可能である。
【００６４】
続いて、「戻る」ボタンが押されたら（ＳＴ１１９）、プログラム実行部１は、選択された画像情報を記憶部７に記憶し（ＳＴ１２０）、表示部９に印刷エラー履歴画面を表示する（ＳＴ１２１）。
【００６５】
そして印刷エラー履歴画面で「再印刷実行」ボタンが押された際（ＳＴ１０９）、プログラム実行部１は、選択された印刷画像を使って再印刷の処理を実行する（ＳＴ１１０）。
【００６６】
以上説明したように上記発明の実施の形態によれば、ＰＤＬの構文エラーや、文字化け、システムリソース不足等によるエラー発生時の無駄な印刷出力を防止することが可能となる。それにより、経費節減や廃棄物の削減になるとともに、正しく出力されている部分だけを選択して印刷可能であることからユーザの利便性も向上させることができる。
【図面の簡単な説明】
【００６７】
【図１】図１は、この発明に係る印刷装置の概略構成を示すブロック図。
【図２】図２は、印刷装置の印刷動作を示す図。
【図３】図３は、正常時の期待される印刷結果を示す図。
【図４】図４は、異常時の印刷結果の例を示す図。
【図５】図５は、文字化け時の印刷結果の例を示す図。
【図６】図６は、エラー対処内容管理テーブルの例を示す図。
【図７】図７は、エラー対処方法設定テーブルの例を示す図。
【図８】図８は、印刷ジョブの変更が行われた際に表示部に表示した画面例を示す図。
【図９】図９は、印刷ジョブが変更された履歴を表示部に表示した画面例を示す図。
【図１０】図１０は、再印刷する際に表示部に表示した選択画面の例を示す図。
【図１１】図１１は、印刷処理（前処理）ついて説明するためのフローチャート。
【図１２】図１２は、エラー処理を説明するためのフローチャート。
【図１３】図１３は、印刷処理（後処理）ついて説明するためのフローチャート。
【図１４】図１４は、印刷処理（後処理）ついて説明するためのフローチャート。
【図１５】図１５は、印刷処理（後処理）ついて説明するためのフローチャート。
【図１６】図１６は、エラーリカバリー処理について説明するためのフローチャート。
【図１７】図１７は、エラーリカバリー処理について説明するためのフローチャート。
【図１８】図１８は、エラーリカバリー処理について説明するためのフローチャート。
【図１９】図１９は、エラーリカバリー処理について説明するためのフローチャート。
【符号の説明】
【００６８】
１…プログラム実行部、２…データ入出力部、３…通知部、４…操作部、５…画像処理部、６…タイマ、７…記憶部、８…ＲＩＰ（Raster Image Processor）処理部、９…表示部、１０…印刷出力部、２０…印刷装置。
【図１】
2007080269.tif 000003
【図２】
2007080269.tif 000004
【図３】
2007080269.tif 000005
【図４】
2007080269.tif 000006
【図５】
2007080269.tif 000007
【図６】
2007080269.tif 000008
【図７】
2007080269.tif 000009
【図８】
2007080269.tif 000010
【図９】
2007080269.tif 000011
【図１０】
2007080269.tif 000012
【図１１】
2007080269.tif 000013
【図１２】
2007080269.tif 000014
【図１３】
2007080269.tif 000015
【図１４】
2007080269.tif 000016
【図１５】
2007080269.tif 000017
【図１６】
2007080269.tif 000018
【図１７】
2007080269.tif 000019
【図１８】
2007080269.tif 000020
【図１９】
2007080269.tif 000021