(57)【要約】【課題】  印刷ジョブを受信し、該印刷ジョブから印刷データを生成し、該印刷データを印刷する印刷装置１００１において、エラーが発生時における回避方法を楽にすること。【解決手段】  未サポート機能検出部１０６は、上記印刷ジョブから、印刷装置１００１が所持していない未サポート機能の使用を求める指示を検出し、演算部１０７は、未サポート機能検出部１０６が検出する未サポート機能の使用を求める指示の検出回数を演算し、印刷可否判断部１０８は、演算部１０７による上記検出回数の演算結果に基づいて印刷データの印刷可否を判断する。【選択図】  図１
2008299596.tif 000002
【特許請求の範囲】
【請求項１】
印刷ジョブを受信し、該印刷ジョブに基づく印刷を印刷を行う印刷装置であって、
前記印刷ジョブから、前記印刷装置が所持していない未サポート機能の使用を求める指示を検出する未サポート機能検出部と、
前記未サポート機能検出部が検出する前記未サポート機能の使用を求める指示の検出回数を演算する演算部と、
前記演算部による前記検出回数の演算結果に基づいて前記印刷ジョブの印刷可否を判断する印刷可否判断部とを備えることを特徴とする印刷装置。
【請求項２】
前記印刷ジョブを形成するコマンドを解析するコマンド解析部を持ち、
前記未サポート機能検出部は、
前記印刷装置により前記印刷ジョブにおけるコマンドが解析され、該コマンドが構文として問題がなく解釈可能であり、且つ前記印刷装置が所持している機能の範疇を外れる指示を要求しているものであると、前記未サポート機能の使用を求める指示として検出することを特徴とする請求項１に記載の印刷装置。
【請求項３】
前記印刷装置がサポートしている、サポート機能と、
前記サポート機能に関連付けられるコマンドと、
前記未サポート機能検出部による、前記未サポート機能の使用を求める指示の検出を制御するフラグと、
前記未サポート機能検出部により検出される前記未サポート機能の使用を求める指示の回数と、
前記未サポート機能の使用を求める指示の検出回数に関連づけられた印刷可否を制御する閾値とを保持する印刷可否判断情報を備えることを特徴とする請求項１または２に記載の印刷装置。
【請求項４】
前記印刷ジョブに基づく情報を解析し第１の印刷データを生成する第１のデータ変換手段と、
前記印刷ジョブに基づく情報を解析し第１の印刷データと異なる第２の印刷データを生成する第２のデータ変換手段とを更に備え、
前記印刷可否判断情報は、
前記印刷ジョブに前記第１のデータ変換手段を適用して得られる第１の印刷可否判断情報と、前記印刷ジョブに前記第２のデータ変換手段を適用して得られる第２の印刷可否判断情報とを含み、
前記第１の印刷可否判断情報における前記未サポート機能の使用を求める指示の検出回数と前記第２の印刷可否判断情報における前記未サポート機能の使用を求める指示の検出回数とに基づいて前記第１のデータ変換手段及び前記第２のデータ変換手段のどちらで印刷を実施するかを選択する変換手段選択部を更に備えることを特徴とする請求項３に記載の印刷装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷装置に関する。
【背景技術】
【０００２】
従来の印刷装置では、印刷ジョブを解析中にエラーが発生した場合において、そのエラーに対応する複数の回避方法を表示手段に表示し、その中からユーザに１つの回避方法を選択させ、そこで選択された回避方法に基づいてエラーを回避させていた。例えば、印刷ジョブの解析中にコマンドエラーが発生した場合には、コマンドをスキップする第一の回避方法と、印刷ジョブをスキップする第二の回避方法とを表示手段に表示し、ユーザに選択された何れかの回避方法に基づいて印刷処理を実行していた。
【特許文献１】特開平０８−１４７１２２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、エラーが発生する度に、いちいちユーザが回避方法を選択することは、ユーザにとって煩わしく、且つ負担が大きいという解決すべき課題が残されていた。
【課題を解決するための手段】
【０００４】
本発明は、印刷ジョブを受信し、該印刷ジョブに基づく印刷を印刷を行う印刷装置であって、上記印刷ジョブから、上記印刷装置が所持していない未サポート機能の使用を求める指示を検出する未サポート機能検出部と、上記未サポート機能検出部が検出する上記未サポート機能の使用を求める指示の検出回数を演算する演算部と、上記演算部による上記検出回数の演算結果に基づいて上記印刷ジョブの印刷可否を判断する印刷可否判断部とを備えることを主要な特徴とする。
【発明の効果】
【０００５】
印刷装置が所持していない未サポート機能を求める指示を検出する未サポート機能検出部と、未サポート機能検出部が検出する上記未サポート機能を求める指示の検出回数を演算する演算部と、上記検出回数に基づいて印刷データの印刷可否を判断する印刷可否判断部とを備えるので、印刷可否判断の閾値を予め定めて置くことにより検出回数が閾値以上になると自動的に印刷が中止されるのでエラーが発生する度に、いちいちユーザが回避方法を選択する煩わしさがなくなり、ユーザの負担が小さくなるという効果を得る。又、検出回数が閾値未満の場合には、予め、印刷を中止しない対処方法を定めて置くことにより自動的に応急処置が実行されるのでユーザの負担がより一層小さくなるという効果を得る。
【発明を実施するための最良の形態】
【０００６】
以下、本発明の一実施形態を図を用いて詳細に説明する。
【実施例１】
【０００７】
〈構成〉の説明
図１は、実施例１の印刷装置の構成のブロック図である。
図に示すように実施例１の印刷装置１００１は、受信部１０１と、解析部１０２と、展開部１０３と、印刷部１０４と、サポート機能テーブル１０５と、未サポート機能検出部１０６と、演算部１０７と、印刷可否判断部１０８と、表示部１０９と、操作部１１０とを備える。
【０００８】
受信部１０１はＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やＵＳＢケーブルで接続された外部装置１００２から印刷ジョブを受信する部分である。解析部１０２は受信部１０１で受信した印刷ジョブを解析し、中間データを生成する部分である。また解析した印刷ジョブのコマンドが印刷装置１００１のスペック範囲外であった場合の回避方法を有する部分でもある。
【０００９】
以下の記述では、解析部１０２が解析できないコマンドで指示した印刷装置１００１の機能を解析不能な機能と記載し、解析部１０２が解析できるコマンドで指示したが、印刷装置１００１のスペックの範疇を超える機能を未サポート機能と記載することとする。例えば、印刷ジョブが媒体にパンチ穴をあけるつもりで“ＴＲＵＥ  ＳＥＴＰＵＮＣＨ”というコマンドを印刷装置１００１に送信したとする。かかる場合に、ＳＥＴＰＵＮＣＨというコマンドが印刷ジョブのページ記述言語として無い場合、またはＳＥＴＰＵＮＣＨがＴＲＵＥではなく０か１を指定しなければならない構文誤りの場合には、かかる指示は解析不能な機能に該当する。
【００１０】
また、印刷ジョブが媒体にホチキス止めするつもりで“ＴＲＵＥ  ＳＥＴＳＴＡＰＬＥ”というコマンドを印刷装置１００１に送信したとする。ＳＥＴＳＴＡＰＬＥというコマンドが印刷ジョブのページ記述言語として有り、構文も正しいが印刷装置がホチキス止めする機構を持たない場合には、かかる指示は未サポート機能に該当する。
【００１１】
展開部１０３は、解析部１０２が生成した中間データから印刷データを生成する部分である。印刷部１０４は、展開部１０３が生成した印刷データを媒体に印刷する部分である。サポート機能テーブル１０５は「検出」、「サポート機能」、「コマンド」、「閾値」、「回数」の各項目毎に該当する情報を保存するテーブルである。以下に、その内容について図を用いて説明する。
【００１２】
図２は、実施例１のサポート機能テーブルの内容説明図である。
「検出」はＯＮまたはＯＦＦを取り得る。ＯＮは検出すべきサ未ポート機能を示し、ＯＦＦは検出しなくてもよい未サポート機能を示す。表示部１０９の表示内容を見ながら操作部１１０を操作することによりＯＮとＯＦＦの切り換えは可能である。「サポート機能」は解析部１０２が解析可能な機能（ページ記述言語および装置固有の機能も含む）の一覧である。
【００１３】
例えば、印刷装置１００１に両面印刷の機能が固有に存在し（ページ記述言語には存在しない機能と仮定）、ページ記述言語にはフォント、ホチキス、用紙サイズの機能がサポートされているとすると図に示すように４つの機能が記述される。
【００１４】
「閾値」は印刷可否判断部１０８における印刷可否の制御をする値である。未サポート機能検出部１０６（後記）が検出した未サポート機能の検出回数が「閾値」を超えれば印刷可否判断部１０８（後記）により印刷不可と判断される。表示部１０９（後記）の表示内容を見ながら操作部１１０（後記）を操作することにより、この値を０以上の整数値に変更が可能である。「回数」は未サポート機能検出部１０６により未サポート機能が検出された回数を示している。（ａ）、（ｂ）、（ｃ）は、状態を表している。
再度図１に戻って実施例１の印刷装置１００１の構成の説明を継続する。
【００１５】
未サポート機能検出部１０６は、解析部１０２が解析したコマンドが未サポート機能を指定しているものであった場合に、サポート機能テーブル１０５からコマンド毎に対応した「検出」がＯＮであるかを確認するところである。「検出」がＯＮになっていた場合は演算部１０７に未サポート機能のコマンドが検出された旨を通知する。また検出された未サポート機能を演算部１０７に通知する・通知しないを印刷装置１００１として切り替える部分でもある。
【００１６】
例えば、ホチキス止めを指定しようと“ＴＲＵＥ  ＳＥＴＳＴＡＰＬＥ”というコマンドを印刷装置１００１に送信したとする。解析部１０２は、このコマンドを解析できたが、印刷装置１００１にホチキス止めする機構が無かった場合、ＳＥＴＳＴＡＰＬＥは未サポート機能となる。未サポート機能検出部１０６はサポート機能テーブル１０５の、ＳＥＴＳＴＡＰＬＥの「検出」がＯＮになっているので演算部１０７に未サポート機能を検出したことを通知することになる。
【００１７】
演算部１０７は未サポート機能検出部１０６から未サポート機能のコマンドが検出された旨を通知された時に、サポート機能テーブル１０５における該コマンドに対応した「回数」を１加算する部分である。即ち、未サポート機能のコマンドが検出される毎に図２の回数に１加算されることになる。
【００１８】
印刷可否判断部１０８はサポート機能テーブル１０５を参照することで検出すべき未サポート機能が予め設定された閾値以上の回数が検出されているかを確認し、閾値より多くの回数が検出されている場合は印刷不可と判断する部分である。また検出された未サポート機能の一覧を表示部１０９に表示させたり、エラーレポートを印刷させたりして、印刷不可としたことをユーザに通知する部分でもある。また印刷可否判断部１０８はユーザへの通知方法の設定を備えており、通知方法を予めユーザに表示部１０９の表示内容を見ながら操作部１１０を操作してもらい、通知方法の設定として「表示」または「レポート印刷」を選択してもらう部分でもある。
【００１９】
表示部１０９は印刷装置１００１が持つ設定メニューやエラー、ワーニング、印刷中など、印刷装置１００１の状態、ユーザへの指示をテキスト・図形・イメージで表示する部分である。操作部１１０は複数のボタンから構成され、ボタンを押下することにより印刷装置１００１が持つ設定メニューへ移行したり印刷装置１００１の設定値を増減したり、決定やキャンセルなどを指示する部分である。
【００２０】
ユーザインタフェース制御部１１１は操作部１１０でボタンが押下されたことを検出し、それに応じたメッセージやメニューを表示部１０９に表示させる部分である。またサポート機能テーブル１０５にアクセスし、ユーザからの「検出」のＯＮとＯＦＦの変更や「閾値」の変更の指示を実行する部分でもある。
以上説明した実施例１の印刷装置１００１は、以下のように動作する。
【００２１】
（動作）の説明
最初に以下の動作説明の中で用いられる印刷ジョブの内容について説明する。
図３は、実施例１の印刷ジョブの内容説明図である。
図では、（ａ）は第１の例であり（ｂ）は、第２の例である。
（ａ）を一例として説明すると、図に示すように印刷ジョブのラインＬ１００１は用紙サイズをＡ４用紙で指定する。ラインＬ１００２は両面印刷を指定する。ラインＬ１００３はＭｉｎｃｈｏというフォントを指定する。ラインＬ１００４は媒体の左下を原点（０、０）した時に位置（５０、８００）に文字列ＡＢＣの出力を指定する。位置の単位はポイントで、７２ポイントで１インチに相当する。ラインＬ１００５はＧｏｔｈｉｃというフォントを指定する。ラインＬ１００６は位置（５０、７００）に文字列ＤＥＦの出力を指定する。ラインＬ１００７はＧｏｔｈｉｃ−Ｐというフォントを指定する。ラインＬ１００８は位置（５０、６００）に文字列ＧＨＩの出力を指定する。ラインＬ１００９はＧｏｔｈｉｃ−Ｉというフォントを指定する。ラインＬ１０１０は位置（５０、５００）に文字列ＪＫＬの出力を指定する。ラインＬ１１００は前記印刷ジョブの終端を示す。
【００２２】
図４は、実施例１の印刷装置の印刷処理を示すフローチャートである。
このフローチャートは、印刷装置１００１の全体動作の概要を表すフローチャートである。図中のステップＳ１−１からステップＳ１−１１まで、図１を併用しながらステップ順に説明し、その後にフローチャート中で詳細な説明を必要とするステップについて再度、他のフローチャートを用いて詳細に説明する。
【００２３】
ステップＳ１−１
受信部１０１は、まずＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）や、ＵＳＢケーブルで接続された外部装置１００２から印刷ジョブ（図３（ａ））を受信する。
【００２４】
ステップＳ１−２
解析部１０２は未サポート機能検出部１０６に対して、検出された未サポート機能の通知設定を問い合わせ、印刷装置１００１として検出された未サポート機能を演算部１０７に通知する・通知しないかを判断する。未サポート機能検出部１０６に記憶されている検出の設定が「通知する」となっていた場合にはステップＳ１−３へ進み、「通知しない」となっている場合にはステップＳ１−６へ進む。ここで、検出の設定は予めユーザが操作部１１０を操作し、検出の設定を行うメニューへ移行し、表示部１０９に「検出した未サポート機能の通知をする・しない」を表示させ、操作部１１０のボタンを押下して設定を選択する。この選択結果は未サポート機能検出部１０６に記憶されている。
【００２５】
ステップＳ１−３
印刷可否判断部１０８は自己の内部に所持する変数「印刷可否」を印刷可に初期化する。
【００２６】
ステップＳ１−４
未サポート機能検出部１０６は、未サポート機能を検出する。この未サポート機能検出部１０６の動作フローについては後に再度詳細に説明する。
【００２７】
ステップＳ１−５
印刷可否判断部１０８は、印刷可否の判断を行う。この印刷可否判断部１０８の動作フローについては後に再度詳細に説明する。
【００２８】
ステップＳ１−６
印刷可否判断部１０８は自己の内部に所持する変数「印刷可否」を印刷可に初期化する。
【００２９】
ステップＳ１−７
解析部１０２は、印刷ジョブを解析して中間データを生成する。印刷ジョブの終端ラインＬ１１００まで解析を行った後ステップＳ１−８へ進む。ここで、解析中に構文エラーが発生すれば解析は中止される。
【００３０】
ステップＳ１−８
印刷可否判断部１０８は上記変数「印刷可否」を確認するが印刷可のままなのでステップＳ１−９へ進む。但し、ステップＳ１−５で印刷不可と判断されている場合は、ステップＳ１−１１へ進む。
【００３１】
ステップＳ１−９
展開部１０３は解析部１０２が生成した中間データを展開し印刷データを生成する。ステップＳ１−７で構文エラーが発生していた場合は中間データが生成されていないので、展開処理は行わない。
【００３２】
ステップＳ１−１０
印刷部１０４はステップＳ１−９で生成された印刷データを媒体に印刷してフローを終了する。
【００３３】
ステップＳ１−１１
解析部１０２は、ステップＳ１−７で解析中に構文エラーが発生すれば解析は中止した後、エラーレポート印刷または表示部１０９にエラーメッセージを表示しユーザに通知してフローを終了する。このユーザに通知の詳細なフローについても後に再度説明する。
【００３４】
続いて上記フローチャートにおけるステップＳ１−４、ステップＳ１−５、及びステップＳ１−１１について、各ステップ毎に別々のフローチャートを用いて再度詳細に説明する。
【００３５】
図５は、実施例１の未サポート機能の検出フロー（Ｓ１−４）を詳細に説明するフローチャートである。
未サポート機能検出部１０６の動作についてステップＳ１−４−１からステップＳ１−４−１２まで、図１を併用しながらステップ順に詳細に説明する。
【００３６】
ステップＳ１−４−１
解析部１０２は、受信部１０１で受信した印刷ジョブ（図３（ａ））からコマンドまたはコマンドに関連付けられた変数とコマンドを抽出する。
【００３７】
ステップＳ１−４−２
解析部１０２は、ステップＳ１−４−１で抽出したコマンドと変数を解析する。
【００３８】
ステップＳ１−４−３
解析部１０２は、構文のエラーがないかを確認する。構文エラーが発生していない場合にはステップＳ１−４−４へ進み、発生している場合にはステップＳ１−４−１０へ進む。
【００３９】
ステップＳ１−４−４
解析部１０２は、コマンドが印刷装置１００１のスペック範囲内であるか否かを確認する。スペック内（サポート機能）である場合にはステップＳ１−４−９へ進み、スペック外の場合にはステップＳ１−４−５へ進む。
【００４０】
ステップＳ１−４−５
解析部１０２は、コマンドが印刷装置１００１のサポート機能テーブル１０５に存在し、サポート機能テーブル１０５の「コマンド」に関連付けられている「検出」がＯＮになっているか否かを確認する。ＯＮになっている場合にはステップＳ１−４−６へ進み、ＯＦＦになっている場合にはステップＳ１−４−８へ進む。
【００４１】
ステップＳ１−４−６
未サポート機能検出部１０６は演算部１０７に未サポート機能を検出したことを通知する。
【００４２】
ステップＳ１−４−７
演算部１０７はサポート機能テーブル１０５に関連付けられている「回数」を１加算する。
【００４３】
ステップＳ１−４−８
解析部１０２は、予め備えているエラー回避方法によりエラー回避処理を行う。
【００４４】
ステップＳ１−４−９
解析部１０２は、印刷ジョブの終端ラインＬ１１００まで解析が完了したかを確認する。印刷ジョブの終端まで解析部１０２の解析が完了していない場合はステップＳ１−４−１に戻り、印刷ジョブの終端まで解析が完了している場合はフローを終了する。
【００４５】
ステップＳ１−４−１０
上記ステップＳ１−４−３で解析部１０２が印刷ジョブに構文エラーがあると判断した場合は、解析部１０２は解析処理を終了する。
【００４６】
ステップＳ１−４−１１
解析部１０２は、印刷可否判断部１０８に構文エラーが発生したことを通知し、印刷可否判断部１０８は変数「印刷可否」を印刷不可に設定する。
【００４７】
ステップＳ１−４−１２
解析部１０２は、構文エラーを未サポート機能検出部１０６に通知する。未サポート機能検出部１０６は演算部１０７に通知し、演算部１０７はサポート機能テーブル１０５の全て「回数」を０にリセットしてフローを終了する。
【００４８】
ここで、具体例として図３（ａ）の印刷ジョブを受け入れたものとして、図５に適用し、そのフローについて説明する。印刷ジョブ（図３（ａ））のラインＬ１００１で、コマンドＳＥＴＰＡＰＥＲＳＩＺＥとコマンドＳＥＴＰＡＰＥＲＳＩＺＥに関連付けられたＡ４が抽出される（ステップＳ１−４−１）。コマンドＳＥＴＰＡＰＥＲＳＩＺＥがページ記述言語のコマンドとして存在しているか、コマンドＳＥＴＰＡＰＥＲＳＩＺＥが必要とする変数の個数が足りているか、また変数が用紙サイズを示しているかが確認される（ステップＳ１−４−２）。解析部１０２は印刷装置１００１でＡ４という用紙サイズで印刷が可能であり、印刷ジョブでＡ４の用紙サイズが指定されれば、指定された用紙サイズはサポート機能ということになる。以下、印刷ジョブの後に続くコマンドが順次実行される。
【００４９】
ここで印刷装置１００１は、フォントとしてＭｉｎｃｈｏフォントとＭｉｎｃｈｏ−Ｉフォントとを有するものとする。印刷ジョブのラインＬ１００３のコマンド実行で、Ｍｉｎｃｈｏフォントが見つかり、ＳＥＴＦＯＮＴコマンドがサポートできると解析部１０２が判断した場合は、ステップＳ１−４−４からステップＳ１−４−９へ進ことになる。
【００５０】
印刷ジョブのラインＬ１００５のコマンド実行でＧｏｔｈｉｃフォントが見つからず、ＳＥＴＦＯＮＴコマンドがサポートできないと解析部１０２が判断した場合はステップＳ１−４−４からステップＳ１−４−５へ進むことになる。
【００５１】
未サポート機能検出部１０６はサポート機能テーブル１０５の「コマンド」にＳＥＴＦＯＮＴコマンドが存在するか確認する。ＳＥＴＦＯＮＴコマンドが存在するので更にコマンドに関連付けられている「検出」がＯＮになっているかを確認する（ステップＳ１−４−５）。
【００５２】
ステップＳ１−４−５でＳＥＴＦＯＮＴコマンドがサポート機能テーブル１０５の「コマンド」に存在し、且つ「コマンド」に関連付けられた「検出」がＯＮとなっているのでステップＳ１−４−６へ進むことになる。ここで未サポート機能検出部１０６は演算部１０７にＳＥＴＦＯＮＴコマンドを未サポート機能として検出したことを通知することになる（ステップＳ１−４−６）。
【００５３】
演算部１０７はサポート機能テーブル１０５におけるＳＥＴＦＯＮＴコマンドに関連付けられている「回数」を１加算する（ステップＳ１−４−７）。解析部１０２は予め備えているエラー回避方法によりＳＥＴＦＯＮＴコマンドのエラー回避処理を行う（ステップＳ１−４−８）。エラー回避処理としては印刷装置１００１のデフォルトに設定されたフォントに置き換える。ここではＭｉｎｃｈｏのフォントに置き換えることになる。
【００５４】
同様な処理を実行し印刷ジョブ（図３（ａ））をラインＬ１１００まで解析するとサポート機能テーブル１０５は図２（ｂ）となる。ここではフォントが３回、置き換えられている。
【００５５】
図６は、実施例１の印刷可否判断フロー（Ｓ１−５）を詳細に説明するフローチャートである。
印刷可否判断部１０８の動作についてステップＳ１−５−１からステップＳ１−５−６まで、図１を併用しながらステップ順に詳細に説明する。
【００５６】
ステップＳ１−５−１
印刷可否判断部１０８は、内部に有する変数「印刷可否」の値を確認する。変数「印刷可否」が印刷不可であればフローを終了する。変数「印刷可否」が印刷可であればステップＳ１−５−２へ進む。
【００５７】
ステップＳ１−５−２
印刷可否判断部１０８は、サポート機能テーブル１０５における最上段のサポート機能（ここではフォント）を選択する。
【００５８】
ステップＳ１−５−３
印刷可否判断部１０８は、選択した最上段のサポート機能（ここではフォント）に関連付けられたサポート機能テーブル１０５における「回数」を参照する。
【００５９】
ステップＳ１−５−４
印刷可否判断部１０８は、参照した「回数」とフォントに関連付けられたサポート機能テーブル１０５における「閾値」との大小を比較する。「閾値」より「回数」のほうが大きい場合は、ステップＳ１−５−５へ進み、そうでない場合にはステップＳ１−５−６へ進む。
【００６０】
ステップＳ１−５−５
印刷可否判断部１０８は、変数「印刷可否」を印刷不可に設定する。
【００６１】
ステップＳ１−５−６
全てのサポート機能の確認が完了するとフローを終了し、そうでない場合にはステップＳ１−５−２へ戻って、ステップＳ１−５−２〜ステップＳ１−５−６を繰り返し、全てのサポート機能の確認が完了するとフローを終了する。
【００６２】
ここでは具体例としてサポート機能テーブルが図２（ｂ）であったものとして説明する。
ステップＳ１−５−４では、「閾値」が２、「回数」が３なので、ステップＳ１−５−５へ進むことになる。したがって、ステップＳ１−５−５で印刷可否判断部１０８は変数「印刷可否」を印刷不可に設定することになる。
【００６３】
図７は、実施例１のユーザ通知フロー（Ｓ１−１１）を詳細に説明するフローチャートである。
ユーザ通知フロー（Ｓ１−１１）の動作についてステップＳ１−１１−１からステップＳ１−１１−５まで、図１を併用しながらステップ順に詳細に説明する。ここでは具体例としてサポート機能テーブルが図２（ｂ）の場合について説明する。
【００６４】
最初にユーザ通知フロー（Ｓ１−１１）の説明の中で必要になるユーザメッセージの内容について説明する。
図８は、実施例１のユーザへのメッセージの内容説明図である。
図に示すようにユーザへのメッセージには、一例として未サポート機能が検出されたことを通知する内容（ａ）や、構文エラーが検出されたことを通知する内容（ｂ）が含まれている。
図７に戻って、ユーザ通知フロー（Ｓ１−１１）の動作について説明する。
【００６５】
ステップＳ１−１１−１
印刷可否判断部１０８はサポート機能テーブル１０５における「閾値」を超えている「回数」の「サポート機能」を抽出する。但し、ステップＳ１−４−３で構文エラーが発生している場合は「回数」は全て０となるため該当する「サポート機能」はない。
【００６６】
ステップＳ１−１１−２
印刷可否判断部１０８は、ステップＳ１−１１−１で抽出されたサポート機能にメッセージを追加して図８（ａ）のようなテキストデータを生成する。ちなみにステップＳ１−４−３で構文エラーが発生していた場合はステップＳ１−１１−１で何も抽出されないので図８（ｂ）のようなテキストデータを生成する。
【００６７】
ステップＳ１−１１−３
印刷可否判断部１０８は、予め印刷可否判断部１０８に設定されているユーザへの通知方法を確認する。通知方法がレポート印刷の場合にはステップＳ１−１１−５へ進み、表示の場合にはステップＳ１−１１−４へ進む。
【００６８】
ステップＳ１−１１−４
印刷可否判断部１０８は解析部１０２が生成した中間データを削除し、ステップＳ１−１１−２で生成したテキストデータをユーザインタフェース制御部１１１へ引き渡す。ユーザインタフェース制御部１１１はテキストデータを表示部１０９に表示してフローを終了する。
【００６９】
ステップＳ１−１１−５
印刷可否判断部１０８は解析部１０２が生成した中間データを削除し、ステップＳ１−１１−２で生成したテキストデータから図８に示したフォーマットのページを生成し、解析部１０２にページデータを引き渡す。解析部１０２が解析を行い、中間データを生成する。中間データから展開部１０３が印刷データを生成する。印刷部１０４が印刷データを媒体に印刷し、ユーザにエラーレポートとして通知してフローを終了する。
【００７０】
ここでは具体例としてサポート機能テーブルが図２（ｂ）の場合について説明する。図２（ｂ）だとステップＳ１−１１−１でフォントが該当する。その結果図８（ａ）のメッセージがユーザに通知されることになる。
【００７１】
次に、サポート機能テーブル１０５の設定変更の動作について説明する。
図９は、実施例１の表示部及び操作部の説明図である。
図に示すように、操作部１１０のボタン１１５、ボタン１１６、ボタン１１７、ボタン１１８を複数回押下して（ａ）の状態にする。「サポート機能テーブル編集」を選択してボタン１１９を押下し、（ｂ）を表示させる。
【００７２】
ボタン１１５、ボタン１１６、ボタン１１７、ボタン１１８を押下し変更したい項目にカーソルを移動させる。（ｂ）では「サポート機能」フォントの「閾値」に移動されている。ボタン１１９を一度押下し前記「閾値」を選択した状態にしてからボタン１１６、またはボタン１１７を複数回押下し任意の正の整数値にする。ボタン１１９を押下し変更した値を決定する。変更する項目が「検出」の場合はボタン１１６、ボタン１１７によりＯＮ、ＯＦＦが切り替わりどちらかを選択することになる。
【００７３】
（効果）の説明
以上説明したように、本実施例によれば、予め設定した回数を超えてエラーが発生すると、印刷ジョブの処理を中断することで不要な印刷がなくなると共に、予め所定の条件に基づいてエラーが自動的に回避されるのでユーザへの負担が軽くなるという効果を得る。
【実施例２】
【００７４】
図１０は、実施例２の印刷装置の構成のブロック図である。
図に示すように実施例２の印刷装置２００１は、受信部１０１と、第一解析部２０２と、第二解析部２１２と、解析手段選択部２１４と、展開部１０３と、印刷部１０４と、未サポート機能検出部２０５と、演算部２０６と、印刷可否判断部２０７と、第一サポート機能テーブル２０８と、第二サポート機能テーブル２１３と、ユーザインタフェース制御部２１１と、表示部１０９と、操作部１１０とを備える。実施例１と相違する部分のみについて以下に詳細に説明する。実施例１と同様の部分については実施例１と同一の符号を付して説明を省略する。
【００７５】
第一解析部２０２は、受信部１０１で受信した印刷ジョブを解析し、中間データを生成する部分である。また解析した印刷ジョブのコマンドが印刷装置２００１のスペック範囲外であった場合の回避方法を備えている部分でもある。以下の記述では、第一解析部２０２と第二解析部２１２が解析できないコマンドで指示した印刷装置２００１の機能を解析不能な機能、第一解析部２０２と第二解析部２１２が解析できるコマンドで指示した印刷装置２００１のスペックの範疇を超える機能を未サポート機能と記載することとする。
【００７６】
例えば、印刷ジョブが媒体にパンチ穴をあけるつもりで“ＴＲＵＥ  ＳＥＴＰＵＮＣＨ”というコマンドを印刷装置２００１に送信したとする。ＳＥＴＰＵＮＣＨというコマンドが印刷ジョブのページ記述言語として無い場合、またはＳＥＴＰＵＮＣＨがＴＲＵＥではなく０か１を指定しなければならない構文誤りの場合に、パンチ穴をあける機能を解析不能な機能と記載する。
【００７７】
また、印刷ジョブが媒体にホチキス止めするつもりで“ＴＲＵＥ  ＳＥＴＳＴＡＰＬＥ”というコマンドを印刷装置２００１に送信したとする。ＳＥＴＳＴＡＰＬＥというコマンドが印刷ジョブのページ記述言語として有り、構文も正しいが印刷装置がホチキス止めする機構を持たない場合に、ホチキス止めする機能を未サポート機能と記載する。
【００７８】
第二解析部２１２は、上記第一解析部２０２と同様に、受信部１０１で受信した印刷ジョブを解析し、中間データを生成するところである。また解析した印刷ジョブのコマンドが印刷装置２００１のスペック範囲外であった場合の回避方法を備えている。但し、第一解析部２０２と第二解析部２１２とでは、コマンドが印刷装置２００１のスペック範囲外であった場合の回避方法が異なるので、両者によって解析された印刷ジョブから生成される中間データは異なることになる。
【００７９】
解析手段選択部２１４は、印刷ジョブを第一解析部２０２と第二解析部２１２のどちらの解析手段により生成された中間データにより印刷を行うかを選択する部分である。即ち、第一サポート機能テーブル２０８の「回数」と第二サポート機能テーブル２１３の「回数」に基づいて中間データの選択を行う部分である。
【００８０】
第一サポート機能テーブル２０８は、「検出」、「サポート機能」、「コマンド」、「閾値」、「回数」の各項目に該当する第一解析部２０２に関連付けられている情報を保存するテーブルである。同様に第二サポート機能テーブル２１３は、「検出」、「サポート機能」、「コマンド」、「閾値」、「回数」の各項目に該当する第二解析部２１２に関連付けられている情報を保存するテーブルである。以下に、その内容について図を用いて説明する。
【００８１】
図１１は、実施例２の第一サポート機能テーブルの内容説明図である。
図１２は、実施例２の第二サポート機能テーブルの内容説明図である。
第一サポート機能テーブル２０８、及び第二サポート機能テーブル２１３は同一形態なので図１１のみについて以下に説明し、図１２ついては図１１の内容説明を類推適用することとする。
【００８２】
「検出」はＯＮまたはＯＦＦを取り得る。ＯＮは検出すべき未サポート機能を示し、ＯＦＦは検出しなくてもよい未サポート機能を示す。表示部１０９の表示内容を見ながら操作部１１０を操作することによりＯＮとＯＦＦを切り換え可能である。
【００８３】
「サポート機能」は第一解析部２０２が解析可能な機能（ページ記述言語および装置固有の機能も含む）の一覧である。例えば、印刷装置２００１に両面印刷の機能が固有に存在し（ページ記述言語には存在しない機能と仮定）、ページ記述言語にはフォント、ホチキス、用紙サイズの機能がサポートされているとすると図に示すように４つの機能が記述される。
【００８４】
「閾値」は印刷可否判断部２０７における印刷可否の制御をする値である。未サポート機能検出部２０５が検出した未サポート機能の検出回数が「閾値」を超えれば印刷可否判断部２０７により印刷不可と判断される。表示部１０９の表示内容を見ながら操作部１１０を操作することにより値を０以上の整数値に変更することが可能である。「回数」は未サポート機能検出部２０５により未サポート機能が検出された回数を示している。
【００８５】
再度図１０に戻って、印刷装置２００１の構成についての説明を継続する。
未サポート機能検出部２０５は第一解析部２０２が解析したコマンドが未サポート機能を指定しているものであった場合に、第一サポート機能テーブル２０８からコマンドに対応した「検出」がＯＮであるかを確認する部分である。又、「検出」がＯＮになっていた場合は演算部２０６に未サポート機能のコマンドが検出された旨を通知する部分である。又、未サポート機能検出部２０５は第二解析部２１２が解析した未サポート機能から第二サポート機能テーブル２１３で「検出」がＯＮであるサポート機能を検出し、演算部２０６に未サポート機能のコマンドが検出された旨を通知する部分でもある。更に、検出された未サポート機能を演算部２０６に通知する・通知しないを印刷装置２００１として切り替える部分でもある。
【００８６】
例えば、ホチキス止めを指定しようと“ＴＲＵＥ  ＳＥＴＳＴＡＰＬＥ”というコマンドを印刷装置２００１に送信したとする。第一解析部２０２または第二解析部２１２はコマンドを解析できたが、印刷装置２００１にホチキス止めする機構が無かった場合、ＳＥＴＳＴＡＰＬＥは未サポート機能となる。未サポート機能検出部２０５は第一サポート機能テーブル２０８または第二サポート機能テーブル２１３の、ＳＥＴＳＴＡＰＬＥの「検出」がＯＮになっているので演算部２０６に未サポート機能を検出したことを通知する。
【００８７】
演算部２０６は未サポート機能検出部２０５から未サポート機能のコマンドが検出された旨を通知された時に、第一サポート機能テーブル２０８または第二サポート機能テーブル２１３における該コマンドに対応した「回数」を１加算する部分である。
【００８８】
印刷可否判断部２０７は第一サポート機能テーブル２０８または第二サポート機能テーブル２１３を参照することで検出すべき未サポート機能が予め設定された閾値以上の回数が実行されているかを確認し、閾値より多くの回数が実行されている場合は印刷不可と判断する部分である。また検出された未サポート機能の一覧を表示部１０９に表示させたり、エラーレポートを印刷させたりして、印刷不可としたことをユーザに通知する部分である。更に、ユーザへの通知方法の設定を備えており、通知方法は予めユーザに表示部１０９の表示内容を見ながら操作部１１０を操作してもらい、通知方法の設定として「表示」または「レポート印刷」を選択してもらう。
【００８９】
ユーザインタフェース制御部２１１は操作部１１０でボタンが押下されたことを検出し、それに応じたメッセージやメニューを表示部１０９に表示するように通知する部分である。また第一サポート機能テーブル２０８及び第二サポート機能テーブル２１３にアクセスし、ユーザからの「検出」のＯＮとＯＦＦの変更や「閾値」の変更の指示を実行する部分でもある。
以上説明した実施例２の印刷装置２００１は、以下のように動作する。
【００９０】
（動作）の説明
最初に以下の動作説明の中で用いられる印刷ジョブの内容について説明する。
図１３は、実施例２の印刷ジョブの内容説明図（その１）である。
図１４は、実施例２の印刷ジョブの内容説明図（その２）である。
【００９１】
図１３（ａ）において、印刷ジョブのラインＬ２００１は用紙サイズをＡ４用紙で指定する。ラインＬ２００２は両面印刷を指定する。ラインＬ２００３はＭｉｎｃｈｏというフォントを指定する。ラインＬ２００４は媒体の左下を原点（０、０）した時に位置（５０、８００）に文字列ＡＢＣの出力を指定する。位置の単位はポイントで、７２ポイントで１インチに相当する。ラインＬ２００５はＧｏｔｈｉｃというフォントを指定する。ラインＬ２００６は位置（５０、７００）に文字列ＤＥＦの出力を指定する。ラインＬ２００７はＧｏｔｈｉｃ−Ｐというフォントを指定する。ラインＬ２００８は位置（５０、６００）に文字列ＧＨＩの出力を指定する。ラインＬ２００９はＧｏｔｈｉｃ−Ｉというフォントを指定する。ラインＬ２００８は位置（５０、５００）に文字列ＪＫＬの出力を指定する。ラインＬ２１００は前記印刷ジョブの終端を示す。
【００９２】
図１５は、実施例２の印刷装置の印刷処理を示すフローチャートである。
このフローチャートは、印刷装置２００１の全体動作の概要を表すフローチャートである。図中のステップＳ２−１からステップＳ２−１４まで、図１０を併用しながらステップ順に説明し、その後にフローチャート中で詳細な説明を必要とするステップについて再度、他のフローチャートを用いて詳細に説明する。
【００９３】
ステップＳ２−１
受信部１０１は、まずＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）や、ＵＳＢケーブルで接続された外部装置１００２から印刷ジョブ（図１３（ａ））を受信する。
【００９４】
ステップＳ２−２
第一解析部２０２（後述、再度フローを繰り返すときは第二解析部２１２）は未サポート機能検出部２０５に対して、検出された未サポート機能の通知設定を問い合わせ、印刷装置２００１として検出された未サポート機能を演算部２０６に通知する・通知しないかを判断する。未サポート機能検出部２０５に記憶されている検出の設定が「通知する」となっていた場合にはステップＳ２−３へ進み、「通知しない」となっている場合にはステップＳ２−６へ進む。ここで、検出の設定は予めユーザが操作部１１０を操作し、検出の設定を行うメニューへ移行し、表示部１０９に「検出した未サポート機能の通知をする・しない」を表示させ、操作部１１０のボタンを押下して設定を選択する。この選択結果は未サポート機能検出部２０５に記憶されている。
【００９５】
ステップＳ２−３
印刷可否判断部２０７は自己の内部に所持する変数「第一印刷可否」（後述、再度フローを繰り返すときは「第二印刷可否」）を印刷可に初期化する。
【００９６】
ステップＳ２−４
未サポート機能検出部２０５は、未サポート機能を検出する。ここで第一解析部２０２はＭｉｎｃｈｏフォントとＭｉｎｃｈｏ−Ｉフォントの利用が可能であり、第二解析部２１２はＭｉｎｃｈｏフォントとＧｏｔｈｉｃフォントとＭｉｎｃｈｏ−Ｉフォントの利用が可能であるものとする。この未サポート機能検出部２０５の動作フローについては後に再度詳細に説明する。
【００９７】
ステップＳ２−５
印刷可否判断部２０７は、印刷可否の判断を行う。この印刷可否判断部２０７の動作フローについては後に再度詳細に説明する。
【００９８】
ステップＳ２−６
印刷可否判断部２０７は自己の内部に所持する変数「第一印刷可否」と「第二印刷可否」を印刷可に初期化する。
【００９９】
ステップＳ２−７
第一解析部２０２は、印刷ジョブを解析して中間データを生成する。印刷ジョブの終端ラインＬ２１００まで解析を行った後ステップＳ２−９へ進む。ここで、解析中に構文エラーが発生すれば解析は中止される。
【０１００】
ステップＳ２−８
解析手段選択部２１４は、他の解析手段が存在するか否かを確認し、存在しない場合にはステップＳ２−９へ進み、存在すれはステップＳ２−２へ戻って、ステップＳ２−２〜ステップＳ２−８を上記フロー説明中の、（後述、再度フローを繰り返すときは）に応じて繰り返す。他の解析手段が存在しなくなるとステップＳ２−９へ抜ける。本実施例では、第二解析部２１２が存在するのでステップＳ２−２へ戻り、ステップＳ２−２〜ステップＳ２−８を、（後述、再度フローを繰り返すときは）に応じて繰り返すことになる。
【０１０１】
ステップＳ２−９
解析手段選択部２１４は、印刷ジョブ（図１３（ａ））をどの解析手段で展開するか選択する。この解析手段選択部２１４の動作フローについては後に再度詳細に説明する。
【０１０２】
ステップＳ２−１０
解決手段が選択できた場合にはステップＳ２−１１へ進み、選択できなかった場合にはステップＳ２−１３へ進む。
【０１０３】
ステップＳ２−１１
展開部１０３は選択された解析手段（ここでは、第一解析部２０２または第二解析部２１２）が生成した中間データを展開し印刷データを生成する。ステップＳ２−７で構文エラーが発生していた場合は中間データが生成されていないので、展開処理は行わない。
【０１０４】
ステップＳ２−１２
印刷部１０４はステップＳ２−１１で生成された印刷データを媒体に印刷してフローを終了する。
【０１０５】
ステップＳ２−１３
解析手段（ここでは、第一解析部２０２または第二解析部２１２）は、ステップＳ２−７で解析中に構文エラーが発生すれば解析は中止した後、エラーレポート印刷または表示部１０９にエラーメッセージを表示しユーザに通知してステップＳ２−１４へ進む。このユーザに通知の詳細なフローについても後に再度説明する。
【０１０６】
ステップＳ２−１４
印刷可否判断部２０７は、解析手段選択部２１４に他の解析手段があるか否かを問い合わせる。他の解析手段がある場合にはステップＳ２−１３へ戻ってユーザに通知し、残存しなくなるとフローを終了する。
【０１０７】
尚、印刷ジョブがステップＳ２−１２において、第一解析部２０２または第二解析部２１２で処理された場合の印刷結果について追記する。
図１６は、印刷ジョブの印刷結果説明図である。
（ａ）は印刷ジョブ図１３（ａ）が第二解析部２１２で処理された場合の印刷結果である。テキストＡＢＣはＭｉｎｃｈｏフォント、テキストＤＥＦはＧｏｔｈｉｃフォント、テキストＪＫＬはＧｏｔｈｉｃ−Ｉフォントで印刷される。テキストＧＨＩはＧｏｔｈｉｃ−ＰフォントではなくＭｉｎｃｈｏフォントに置き換えられ印刷される。
【０１０８】
（ｂ）は印刷ジョブ図１３（ｂ）が第二解析部２１２で処理された場合の印刷結果である。テキストＡＢＣはＭｉｎｃｈｏフォント、テキストＤＥＦはＭｉｎｃｈｏフォント、テキストＧＨＩはＭｉｎｃｈｏフォント、テキストＪＫＬはＧｏｔｈｉｃ−Ｉフォントで印刷される。
【０１０９】
（ｃ）は印刷ジョブ図１４（ａ）が第一解析部２０２で処理された場合の印刷結果である。テキストＡＢＣはＭｉｎｃｈｏフォント、テキストＤＥＦはＭｉｎｃｈｏ−Ｉフォント、テキストＧＨＩはＭｉｎｃｈｏ−Ｉフォント、テキストＪＫＬはＭｉｎｃｈｏ−Ｉフォントで印刷される。
【０１１０】
図１７は、実施例２の未サポート機能の検出フロー（Ｓ２−４）を詳細に説明するフローチャートである。
未サポート機能検出部２０５の動作についてステップＳ２−４−１からステップＳ２−４−１２まで、図１０を併用しながらステップ順に詳細に説明する。
【０１１１】
ステップＳ２−４−１
解析部（本実施例では第一解析部２０２及び第二解析部２１２）は、受信部１０１で受信した印刷ジョブ（図１３（ａ））からコマンドまたはコマンドに関連付けられた変数とコマンドを抽出する。
【０１１２】
ステップＳ２−４−２
解析部（本実施例では第一解析部２０２及び第二解析部２１２）は、ステップＳ２−４−１で抽出したコマンドと変数を解析する。
【０１１３】
ステップＳ２−４−３
解析部（本実施例では第一解析部２０２及び第二解析部２１２）は、構文のエラーがないかを確認する。構文エラーが発生していない場合にはステップＳ２−４−４へ進み、発生している場合にはステップＳ２−４−１０へ進む。
【０１１４】
ステップＳ２−４−４
解析部（本実施例では第一解析部２０２及び第二解析部２１２）は、コマンドが印刷装置２００１のスペック範囲内であるか否かを確認する。スペック内（サポート機能）である場合にはステップＳ２−４−９へ進み、スペック外の場合にはステップＳ２−４−５へ進む。
【０１１５】
ステップＳ２−４−５
解析部（本実施例では第一解析部２０２及び第二解析部２１２）は、コマンドが印刷装置２００１のサポート機能テーブル（本実施例では第一解析部２０２が第一サポート機能テーブル２０８、第二解析部２１２が第二サポート機能テーブル２１３に対応する）に存在し、「コマンド」に関連付けられている「検出」がＯＮになっているか否かを確認する。ＯＮになっている場合にはステップＳ２−４−６へ進み、ＯＦＦになっている場合にはステップＳ２−４−８へ進む。
【０１１６】
ステップＳ２−４−６
未サポート機能検出部２０５は演算部２０６にＳＥＴＦＯＮＴコマンドを未サポート機能として検出したことを通知する。
【０１１７】
ステップＳ２−４−７
演算部２０６はサポート機能テーブル（本実施例では第一解析部２０２が第一サポート機能テーブル２０８、第二解析部２１２が第二サポート機能テーブル２１３に対応する）におけるＳＥＴＦＯＮＴコマンドに関連付けられている「回数」を１加算する。
【０１１８】
ステップＳ２−４−８
解析部（本実施例では第一解析部２０２及び第二解析部２１２）は、予め備えているエラー回避方法によりエラー回避処理を行う。
【０１１９】
ステップＳ２−４−９
解析部（本実施例では第一解析部２０２及び第二解析部２１２）は、印刷ジョブの終端ラインＬ２１００まで解析が完了したかを確認する。印刷ジョブの終端まで解析が完了していない場合はステップＳ２−４−１に戻り、印刷ジョブの終端まで解析が完了している場合はフローを終了する。
【０１２０】
ステップＳ２−４−１０
上記ステップＳ２−４−３で解析部（本実施例では第一解析部２０２及び第二解析部２１２）が印刷ジョブに構文エラーがあると判断した場合は、解析処理を終了する。
【０１２１】
ステップＳ２−４−１１
解析部（本実施例では第一解析部２０２及び第二解析部２１２）は、印刷可否判断部２０７に構文エラーが発生したことを通知し、印刷可否判断部２０７は変数「印刷可否」を印刷不可に設定する。
【０１２２】
ステップＳ２−４−１２
解析部（本実施例では第一解析部２０２及び第二解析部２１２）は、構文エラーを未サポート機能検出部２０５に通知する。未サポート機能検出部２０５は演算部２０６に通知し、演算部２０６はサポート機能テーブル（本実施例では第一サポート機能テーブル２０８及び第二サポート機能テーブル２１３）の全て「回数」を０にリセットしてフローを終了する。
【０１２３】
ここで、具体例として図１３（ａ）の印刷ジョブを受け入れたものとして、そのフローを説明する。印刷ジョブ（図１３（ａ））のラインＬ２００１で、コマンドＳＥＴＰＡＰＥＲＳＩＺＥとコマンドＳＥＴＰＡＰＥＲＳＩＺＥに関連付けられたＡ４が抽出される（ステップＳ２−４−１）。コマンドＳＥＴＰＡＰＥＲＳＩＺＥがページ記述言語のコマンドとして存在しているか、コマンドＳＥＴＰＡＰＥＲＳＩＺＥが必要とする変数の個数が足りているか、また変数が用紙サイズを示しているかが確認される（ステップＳ２−４−２）。解析部（本実施例では第一解析部２０２及び第二解析部２１２）は印刷装置２００１でＡ４という用紙サイズで印刷が可能であり、印刷ジョブでＡ４の用紙サイズが指定されれば、指定された用紙サイズはサポート機能ということになる。以下、印刷ジョブの後に続くコマンドが順次実行される。
【０１２４】
ここで第一解析部２０２はＭｉｎｃｈｏフォントとＭｉｎｃｈｏ−Ｉフォントの利用が可能であり、第二解析部２１２はＭｉｎｃｈｏフォントとＧｏｔｈｉｃフォントとＭｉｎｃｈｏ−Ｉフォントの利用が可能であるものとする。したがって、印刷ジョブのラインＬ２００３のコマンド実行で、Ｍｉｎｃｈｏフォントが見つかり、ＳＥＴＦＯＮＴコマンドがサポートできると第一解析部２０２が判断した場合は、ステップＳ２−４−４からステップＳ２−４−９へ進むことになる。
【０１２５】
印刷ジョブのラインＬ２００５のコマンド実行でＧｏｔｈｉｃフォントが見つからず、ＳＥＴＦＯＮＴコマンドがサポートできないと第一解析部２０２が判断した場合はステップＳ２−４−４からステップＳ２−４−５へ進むことになる。
【０１２６】
未サポート機能検出部２０５はサポート機能テーブル第一サポート機能テーブル２０８の「コマンド」にＳＥＴＦＯＮＴコマンドが存在するか確認する。ＳＥＴＦＯＮＴコマンドが存在するので更にコマンドに関連付けられている「検出」がＯＮになっているかを確認する（ステップＳ２−４−５）。
【０１２７】
ステップＳ２−４−５でＳＥＴＦＯＮＴコマンドがサポート機能テーブル第一サポート機能テーブル２０８の「コマンド」に存在し、且つ「コマンド」に関連付けられた「検出」がＯＮとなっているのでステップＳ２−４−６へ進むことになる。ここで未サポート機能検出部２０５は演算部２０６にＳＥＴＦＯＮＴコマンドを未サポート機能として検出したことを通知することになる（ステップＳ２−４−６）。
【０１２８】
演算部２０６はサポート機能テーブル第一サポート機能テーブル２０８におけるＳＥＴＦＯＮＴコマンドに関連付けられている「回数」を１加算する（ステップＳ２−４−７）。第一解析部２０２は予め備えているエラー回避方法によりＳＥＴＦＯＮＴコマンドのエラー回避処理を行う（ステップＳ２−４−８）。エラー回避処理としては印刷装置２００１のデフォルトに設定されたフォントに置き換える。ここではＭｉｎｃｈｏのフォントに置き換えることになる。
【０１２９】
同様な処理を実行し印刷ジョブ（図１３（ａ））をラインＬ２１００まで解析すると第一サポート機能テーブル２０８は図１１（ｂ）となる。ここではフォントが３回、置き換えられている。
【０１３０】
図１８は、実施例２の印刷可否判断フロー（Ｓ２−５）を詳細に説明するフローチャートである。
印刷可否判断部２０７の動作についてステップＳ２−５−１からステップＳ２−５−６まで、図１０を併用しながらステップ順に詳細に説明する。
【０１３１】
ステップＳ２−５−１
印刷可否判断部２０７は、内部に有する変数「第一印刷可否」または「第二印刷可否」の値を確認する。変数「第一印刷可否」または「第二印刷可否」が印刷不可であればフローを終了する。変数「「第一印刷可否」または「第二印刷可否」が印刷可であればステップＳ２−５−２へ進む。
【０１３２】
ステップＳ２−５−２
印刷可否判断部２０７は、サポート機能テーブル（本実施例では第一サポート機能テーブル２０８及び第二サポート機能テーブル２１３）における最上段（フォント）を選択する。
【０１３３】
ステップＳ２−５−３
印刷可否判断部２０７は、選択したフォントに関連付けられたサポート機能テーブル（本実施例では第一サポート機能テーブル２０８及び第二サポート機能テーブル２１３）における「回数」を参照する。
【０１３４】
ステップＳ２−５−４
印刷可否判断部２０７は、参照した「回数」とフォントに関連付けられた「閾値」との大小を比較する。「閾値」より「回数」のほうが大きい場合は、ステップＳ２−５−５へ進み、そうでない場合にはステップＳ２−５−６へ進む。
【０１３５】
ステップＳ２−５−５
印刷可否判断部２０７は、変数「第一印刷可否」または「第二印刷可否」を印刷不可に設定する。
【０１３６】
ステップＳ２−５−６
全てのサポート機能の確認が完了するとフローを終了し、そうでない場合にはステップＳ２−５−２へ戻って、ステップＳ２−５−２〜ステップＳ２−５−６を繰り返し、全てのサポート機能の確認が完了するとフローを終了する。
【０１３７】
ここでは具体例として第一サポート機能テーブル２０８は図１１（ｃ）に、第二サポート機能テーブル２１３は図１２（ｃ）なっていたとする。ここではフォントが３回、置き換えられている。「閾値」が２、「回数」が３なので、ステップＳ２−５−５へ進むことになる。したがって、ステップＳ２−５−５で印刷可否判断部２０７は変数「第一印刷可否」または「第二印刷可否」を印刷不可に設定することになる。
【０１３８】
図１９は、実施例２の解析手段選択フロー（Ｓ２−９）を詳細に説明するフローチャートである。
解析手段選択部２１４の動作についてステップＳ２−９−１からステップＳ２−９−７まで、図１０を併用しながらステップ順に詳細に説明する。
【０１３９】
ステップＳ２−９−１
解析手段選択部２１４は、印刷可否判断部２０７の変数「第一印刷可否」を確認する。「印刷不可」の場合はステップＳ２−９−５へ進み、「印刷可」の場合はステップＳ２−９−２へ進む。
【０１４０】
ステップＳ２−９−２
解析手段選択部２１４は、印刷可否判断部２０７の変数「第二印刷可否」を確認する。「印刷不可」の場合はステップＳ２−９−４へ進み、「印刷可」の場合はステップＳ２−９−３へ進む。
【０１４１】
ステップＳ２−９−３
解析手段選択部２１４は、検出された回数が最小である解析部（本実施例では第一解析部２０２及び第二解析部２１２の何れか一方）を選択してフローを終了する。ちなみに双方同回数の場合には第一解析部２０２を選択してフローを終了する。
【０１４２】
ステップＳ２−９−４
解析手段選択部２１４は、第一解析部２０２を選択してフローを終了する。
【０１４３】
ステップＳ２−９−５
解析手段選択部２１４は、印刷可否判断部２０７の変数「第二印刷可否」を確認する。「印刷可」の場合にはステップＳ２−９−６へ進み、「印刷不可」の場合にはステップＳ２−９−７へ進む。
【０１４４】
ステップＳ２−９−６
解析手段選択部２１４は、第二解析部２１２を選択してフローを終了する。
【０１４５】
ステップＳ２−９−７
解析手段選択部２１４は、解析手段なしと判断してフローを終了する。
【０１４６】
具体例として、印刷ジョブが図１３（ｂ）であった場合には第一サポート機能テーブル２０８は図１１（ｃ）となり印刷可否判断部２０７の変数「第一印刷可否」は印刷可となる。第二サポート機能テーブル２１３は図１２（ｂ）となり印刷可否判断部２０７の変数「第二印刷可否」は印刷可となる。
【０１４７】
このとき、解析手段選択部２１４は第一サポート機能テーブル２０８の「回数」の合計と、第二サポート機能テーブル２１３の「回数」の合計を比較する。第一サポート機能テーブル２０８の「回数」はフォントが１、両面印刷が０、ホチキスが０、用紙サイズが０であるので第一サポート機能テーブル２０８の「回数」の合計は１となる。第二サポート機能テーブル２１３の「回数」はフォントが０、両面印刷が０、ホチキスが０、用紙サイズが０であるので第二サポート機能テーブル２１３の「回数」の合計は０となる。したがって「回数」が最小であった解析手段のテーブルつまり第二解析部２１２が選択される。を選択されることになる。仮に「回数」が同値であった場合は第一解析部２０２が選択されることになる。
【０１４８】
また印刷ジョブが図１４（ａ）であった場合は、第一サポート機能テーブル２０８は図１１（ｅ）となり印刷可否判断部２０７の変数「第一印刷可否」は印刷可となる。第二サポート機能テーブル２１３は図１２（ｄ）となり印刷可否判断部２０７の変数「第二印刷可否」は印刷不可となる。この場合には、ステップＳ２−９−１、ステップＳ２−９−２、ステップＳ２−９−４と進み、解析手段選択部２１４は第一解析部２０２を選択することになる。
【０１４９】
また印刷ジョブが図１４（ｂ）であった場合は、第一サポート機能テーブル２０８は図１１（ｄ）となり印刷可否判断部２０７の変数「第一印刷可否」は印刷不可となる。第二サポート機能テーブル２１３は図１２（ｃ）となり印刷可否判断部２０７の変数「第二印刷可否」は印刷不可となる。そうするとステップＳ２−９−１、ステップＳ２−９−５、ステップＳ２−９−７と進み、解析手段選択部２１４は解析手段なしと判断することになる。
【０１５０】
図２０は、実施例２のユーザ通知フロー（Ｓ２−１３）を詳細に説明するフローチャートである。
ユーザ通知フロー（Ｓ２−１３）の動作についてステップＳ２−１３−１からステップＳ２−１３−５まで、図１０を併用しながらステップ順に詳細に説明する。
【０１５１】
最初にユーザ通知フロー（Ｓ２−１３）の説明の中で必要になるユーザメッセージの内容について説明する。
図２１は、実施例２のユーザへのメッセージの内容説明図である。
図に示すようにユーザへのメッセージには、一例として未サポート機能が検出されたことを通知する内容（ａ）や、構文エラーが検出されたことを通知する内容（ｂ）が含まれている。
図２０に戻って、ユーザ通知フロー（Ｓ２−１３）の動作について説明する。
【０１５２】
ステップＳ２−１３−１
印刷可否判断部１０８はサポート機能テーブル（本実施例では第一サポート機能テーブル２０８と第二サポート機能テーブル２１３）における「閾値」を超えている「回数」の「サポート機能」を抽出する。但し、ステップＳ２−４−３で構文エラーが発生している場合は「回数」は全て０となるため該当する「サポート機能」はない。
【０１５３】
ステップＳ２−１３−２
印刷可否判断部２０７は、ステップＳ２−１３−１で抽出されたサポート機能にメッセージを追加して図２１（ａ）のようなテキストデータを生成する。ちなみにステップＳ２−４−３で構文エラーが発生していた場合はステップＳ２−１３−１で何も抽出されないので図２１（ｂ）のようなテキストデータを生成する。
【０１５４】
ステップＳ２−１３−３
印刷可否判断部１０８は、予め印刷可否判断部１０８に設定されているユーザへの通知方法を確認する。通知方法がレポート印刷の場合にはステップＳ２−１３−５へ進み、表示の場合にはステップＳ２−１３−４へ進む。
【０１５５】
ステップＳ２−１３−４
印刷可否判断部２０７は解析部（本実施例では第一解析部２０２、及び第二解析部２１２）が生成した中間データを削除し、ステップＳ２−１３−２で生成したテキストデータをユーザインタフェース制御部１１１へ引き渡す。ユーザインタフェース制御部１１１はテキストデータを表示部１０９に表示してフローを終了する。
【０１５６】
ステップＳ２−１３−５
印刷可否判断部２０７は解析部（本実施例では第一解析部２０２、及び第二解析部２１２）が生成した中間データを削除し、ステップＳ２−１３−２で生成したテキストデータから図２１に示したフォーマットのページを生成し、解析部（本実施例では第一解析部２０２、及び第二解析部２１２）にページデータを引き渡す。解析部（本実施例では第一解析部２０２、及び第二解析部２１２）が解析を行い、中間データを生成する。中間データから展開部１０３が印刷データを生成する。印刷部１０４が印刷データを媒体に印刷し、ユーザにエラーレポートとして通知してフローを終了する。
【０１５７】
次に、第一サポート機能テーブル２０８及び第二サポート機能テーブル２０８の設定変更の動作について説明する。
図２２は、実施例２の表示部及び操作部の説明図である。
図に示すように、操作部１１０のボタン１１５、ボタン１１６、ボタン１１７、ボタン１１８を複数回押下して（ａ）の状態にする。「第一サポート機能テーブル編集」または「第二サポート機能テーブル編集」を選択してボタン１１９を押下し、（ｂ）を表示させる。
【０１５８】
ボタン１１５、ボタン１１６、ボタン１１７、ボタン１１８を押下し変更したい項目にカーソルを移動させる。（ｂ）では「サポート機能」フォントの「閾値」に移動されている。ボタン１１９を一度押下し前記「閾値」を選択した状態にしてからボタン１１６、またはボタン１１７を複数回押下し任意の正の整数値にする。ボタン１１９を押下し変更した値を決定する。変更する項目が「検出」の場合はボタン１１６、ボタン１１７によりＯＮ、ＯＦＦが切り替わりどちらかを選択することになる。
【０１５９】
（効果）の説明
以上説明したように、本実施例の構成によれば、実施例１の効果に加え、印刷ジョブを複数の解析手段で処理し、発生したエラーの回数を解析手段毎に比較しエラーの少ない解析手段を選択することでより良い印刷結果を得ることができるという効果を得る。
【産業上の利用可能性】
【０１６０】
実施例の説明では印刷装置に適用した場合に限定して説明したが、本発明はこの例に限定されるものではない。即ち、複合装置やファクシミリ、複写装置にも利用できる。
【図面の簡単な説明】
【０１６１】
【図１】実施例１の印刷装置の構成のブロック図である。
【図２】実施例１のサポート機能テーブルの内容説明図である。
【図３】実施例１の印刷ジョブの内容説明図である。
【図４】実施例１の印刷装置の印刷処理を示すフローチャートである。
【図５】実施例１の未サポート機能の検出フロー（Ｓ１−４）を詳細に説明するフローチャートである。
【図６】実施例１の印刷可否判断フロー（Ｓ１−５）を詳細に説明するフローチャートである。
【図７】実施例１のユーザ通知フロー（Ｓ１−１１）を詳細に説明するフローチャートである。
【図８】実施例１のユーザへのメッセージの内容説明図である。
【図９】実施例１の表示部及び操作部の説明図である。
【図１０】実施例２の印刷装置の構成のブロック図である。
【図１１】実施例２の第一サポート機能テーブルの内容説明図である。
【図１２】実施例２の第二サポート機能テーブルの内容説明図である。
【図１３】実施例２の印刷ジョブの内容説明図（その１）である。
【図１４】実施例２の印刷ジョブの内容説明図（その２）である。
【図１５】実施例２の印刷装置の印刷処理を示すフローチャートである。
【図１６】印刷ジョブの印刷結果説明図である。
【図１７】実施例２の未サポート機能の検出フロー（Ｓ２−４）を詳細に説明するフローチャートである。
【図１８】実施例２の印刷可否判断フロー（Ｓ２−５）を詳細に説明するフローチャートである。
【図１９】実施例２の解析手段選択フロー（Ｓ２−９）を詳細に説明するフローチャートである。
【図２０】実施例２のユーザ通知フロー（Ｓ２−１３）を詳細に説明するフローチャートである。
【図２１】実施例２のユーザへのメッセージの内容説明図である。
【図２２】実施例２の表示部及び操作部の説明図である。
【符号の説明】
【０１６２】
１０１  受信部
１０２  解析部
１０３  展開部
１０４  印刷部
１０５  サポート機能テーブル
１０６  未サポート機能検出部
１０７  演算部
１０８  印刷可否判断部
１０９  表示部
１１０  操作部
１１１  ユーザインタフェース制御部
１００１  印刷装置
１００２  外部装置
【図１】
2008299596.tif 000003
【図２】
2008299596.tif 000004
【図３】
2008299596.tif 000005
【図４】
2008299596.tif 000006
【図５】
2008299596.tif 000007
【図６】
2008299596.tif 000008
【図７】
2008299596.tif 000009
【図８】
2008299596.tif 000010
【図９】
2008299596.tif 000011
【図１０】
2008299596.tif 000012
【図１１】
2008299596.tif 000013
【図１２】
2008299596.tif 000014
【図１３】
2008299596.tif 000015
【図１４】
2008299596.tif 000016
【図１５】
2008299596.tif 000017
【図１６】
2008299596.tif 000018
【図１７】
2008299596.tif 000019
【図１８】
2008299596.tif 000020
【図１９】
2008299596.tif 000021
【図２０】
2008299596.tif 000022
【図２１】
2008299596.tif 000023
【図２２】
2008299596.tif 000024