(57)【要約】【課題】ページ記述言語が指定されていない印刷データを受信した場合に、適切な言語のコマンド体系に従う解釈が可能な印刷装置、および印刷装置の印刷データ処理方法を提供すること。【解決手段】プリンタ１は、ページ記述言語で記述された印刷データＰＤを受信する通信Ｉ／Ｆ１１、ネットワークＩ／Ｆ１２と、互いに異なるページ記述言語の記述を解釈可能な複数の言語解釈部１４ａ〜ｃと、受信した印刷データＰＤの言語に対応する言語解釈部１４を選択して、印刷データＰＤのコードを解釈させるジョブ制御部１５と、印刷データＰＤの解釈結果に基づく印刷を行う印刷エンジン２０と、を備えている。ジョブ制御部１５は、選択された言語解釈部１４による解釈において、他の言語解釈部１４が対応する言語に特有のコマンドが検出された場合、特有のコマンドの言語に対応する言語解釈部１４を主体とした言語解釈に切り替える。【選択図】図１
2009132040.tif 000002
【特許請求の範囲】
【請求項１】
ページ記述言語で記述された印刷データを受信する受信手段と、
互いに異なるページ記述言語の記述を解釈可能な複数の解釈手段と、
前記受信した印刷データのページ記述言語に対応する前記解釈手段を選択して、前記選択した解釈手段に前記印刷データの記述を解釈させる制御手段と、
前記印刷データの解釈結果に基づいた印刷を行う印刷手段と、を備え、
前記制御手段は、
前記選択された解釈手段による言語解釈において、他の前記解釈手段が対応するページ記述言語に特有の記述が検出された場合、前記選択された解釈手段に代えて、前記特有の記述に用いられているページ記述言語に対応する解釈手段に前記印刷データを解釈させることを特徴とする印刷装置。
【請求項２】
請求項１に記載の印刷装置において、
前記受信した印刷データを記憶し、前記印刷データの記述のうち少なくとも解釈前の記述については記憶を維持する第１の記憶手段と、
前記選択された解釈手段によって解釈済の記述を記憶する第２の記憶手段と、をさらに備え、
前記選択された解釈手段による解釈において、他の前記解釈手段が対応するページ記述言語に特有の記述が検出された場合、前記特有の記述に用いられているページ記述言語に対応する解釈手段は、前記第２の記憶手段に記憶された記述を解釈してから、前記第１の記憶手段に記憶された前記特有の記述以降の記述を解釈することを特徴とする印刷装置。
【請求項３】
請求項１または２に記載の印刷装置において、
前記印刷データは、印刷環境を設定するための設定コマンドを含み、
前記選択された解釈手段が前記設定コマンドを解釈することによって取得された印刷環境の設定情報を記憶する第３の記憶手段、をさらに備え、
前記選択された解釈手段による言語解釈において、他の前記解釈手段が対応するページ記述言語に特有の記述が検出された場合に、前記特有の記述に用いられているページ記述言語に対応する解釈手段は、前記第３の記憶手段に記憶された設定情報に基づく印刷環境を設定してから、前記特有の記述以降の記述を解釈することを特徴とする印刷装置。
【請求項４】
請求項１ないし３のいずれか一項に記載の印刷装置において、
前記制御手段は、
前記受信した印刷データに、ページ記述言語を指定するコマンドが含まれる場合、指定されたページ記述言語に対応する前記解釈手段を選択して、前記選択した解釈手段に前記印刷データを解釈させ、
前記受信した印刷データに、ページ記述言語を指定するコマンドが含まれていない場合、前記受信した印刷データに用いられているページ記述言語を判定し、判定したページ記述言語に対応する前記解釈手段を選択して、前記選択した解釈手段に前記印刷データを解釈させることを特徴とする印刷装置。
【請求項５】
請求項１ないし４のいずれか一項に記載の印刷装置において、
前記制御手段は、
前記選択された解釈手段が、解釈できない記述を検出した場合に、前記解釈できない記述が、他の前記解釈手段が対応するページ記述言語に特有の記述であれば、前記選択された解釈手段に代わって、前記特有の記述に用いられているページ記述言語に対応する解釈手段に解釈させ、
前記解釈できない記述が、他の前記解釈手段が対応するページ記述言語に特有の記述でなければ、前記受信した印刷データの印刷を中止することを特徴とする印刷装置。
【請求項６】
ページ記述言語で記述された印刷データを受信する受信手段と、
互いに異なるページ記述言語の記述を解釈可能な複数の解釈手段と、
前記印刷データの解釈結果に基づいた印刷を行う印刷手段と、を備えた印刷装置の印刷データ処理方法であって、
前記受信した印刷データのページ記述言語に対応する前記解釈手段を選択して、前記選択した解釈手段に前記印刷データの記述を解釈させ、
前記選択された解釈手段による言語解釈において、他の前記解釈手段が対応するページ記述言語に特有の記述が検出された場合、前記選択された解釈手段に代わって、前記特有の記述に用いられているページ記述言語に対応する解釈手段に前記印刷データを解釈させることを特徴とする印刷装置の印刷データ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
ページ記述言語で記述された印刷データを解釈して、解釈結果に基づく印刷を行う印刷装置、および印刷装置の印刷データ処理方法に関する。
【背景技術】
【０００２】
従来、印刷データに用いられているページ記述言語を判定して、判定したページ記述言語に従う言語解釈を行うことにより、ページ記述言語が指定されていない印刷データに対する処理を可能としたプリンタが知られている。
【０００３】
例えば、特許文献１には、印刷データの先頭から所定のデータサイズに含まれるコマンドに応じて、ページ記述言語のコマンド体系の候補を絞り込み、絞り込まれた候補のうちから各コマンド体系に特徴的なコマンドによって印刷データのコマンド体系を確定することにより、印刷データに用いられている言語を判定する技術が開示されている。
【０００４】
また、特許文献２には、言語指定コマンドを含まない印刷データの先頭から所定サイズのデータに含まれる各コマンドについて、複数のページ記述言語との構文一致度を算出し、算出した上位２つの構文一致度の差が所定値以上であった場合に、構文一致度が最も大きい言語を、受信した印刷データの言語と判定する技術が開示されている。なお、算出した上位２つの構文一致度の差が所定値未満であった場合に、印刷データの先頭から所定サイズのデータの後に続くデータをさらに用いて判定することにより判定精度をさらに高めるようにしている。
【０００５】
【特許文献１】特開平８−２０６７号公報
【特許文献２】特開２００７−２４１７５８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１，２の技術では、判定に用いられるデータサイズが所定サイズとなっているので、例えば、類似したコマンド体系をもつ言語間では、印刷データに用いられている言語の種類を誤判定してしまう可能性があった。判定に用いるデータサイズを大きくすると判定精度を高めることができるが、処理時間が長くなるため不都合であり、データサイズを大きくして判定精度を高めたとしても、誤判定の可能性をなくすることは困難である。このように、従来の技術では、印刷データに用いられている言語の種類を誤判定してしまうことがあり、誤判定した場合、誤った解釈結果に基づく不適切な印刷結果が得られ、無駄な印刷になってしまうという課題があった。
【課題を解決するための手段】
【０００７】
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態または適用例として実現することが可能である。
【０００８】
［適用例１］ページ記述言語で記述された印刷データを受信する受信手段と、互いに異なるページ記述言語の記述を解釈可能な複数の解釈手段と、前記受信した印刷データのページ記述言語に対応する前記解釈手段を選択して、前記選択した解釈手段に前記印刷データの記述を解釈させる制御手段と、前記印刷データの解釈結果に基づいた印刷を行う印刷手段と、を備え、前記制御手段は、前記選択された解釈手段による言語解釈において、他の前記解釈手段が対応するページ記述言語に特有の記述が検出された場合、前記選択された解釈手段に代えて、前記特有の記述に用いられているページ記述言語に対応する解釈手段に前記印刷データを解釈させることを特徴とする印刷装置。
【０００９】
この構成によれば、選択された解釈手段による印刷データの解釈中に、他の解釈手段が対応するページ記述言語に特有の記述が検出されると、特有の記述に用いられているページ記述言語に対応する解釈手段による言語解釈に切り替わるので、受信した印刷データが適切な解釈手段によって解釈されるようになる。したがって、制御手段により選択された解釈手段が、印刷データに用いられている言語に対応しないものであっても、印刷データに対する適切な解釈結果に基づく適切な印刷結果を得て、無駄な印刷を防ぐことができる。
【００１０】
［適用例２］上記印刷装置において、前記受信した印刷データを記憶し、前記印刷データの記述のうち少なくとも解釈前の記述については記憶を維持する第１の記憶手段と、前記選択された解釈手段によって解釈済の記述を記憶する第２の記憶手段と、をさらに備え、前記選択された解釈手段による解釈において、他の前記解釈手段が対応するページ記述言語に特有の記述が検出された場合、前記特有の記述に用いられているページ記述言語に対応する解釈手段は、前記第２の記憶手段に記憶された記述を解釈してから、前記第１の記憶手段に記憶された前記特有の記述以降の記述を解釈することを特徴とする印刷装置。
【００１１】
この構成によれば、解釈済の記述は第２の記憶手段に記憶されるので、特有の記述に用いられている言語に対応する解釈手段が、第２の記憶手段に記憶された解釈済の記述を解釈してから、第１の記憶手段に記憶された特有の記述以降の記述を解釈することにより、受信した印刷データのうちページ記述言語で記述された全記述が、特有の記述に用いられている言語に対応する言語解釈手段によって解釈されることになる。したがって、第１の記憶手段に解釈済の記述が残されていない場合であっても、特有の記述に用いられているページ記述言語に対応する適切な解釈手段によって、特有の記述を含む印刷データの記述を解釈し直し、適切な印刷結果を得ることができる。
【００１２】
［適用例３］上記印刷装置において、前記印刷データは、印刷環境を設定するための設定コマンドを含み、前記選択された解釈手段が前記設定コマンドを解釈することによって取得された印刷環境の設定情報を記憶する第３の記憶手段、をさらに備え、前記選択された解釈手段による言語解釈において、他の前記解釈手段が対応するページ記述言語に特有の記述が検出された場合に、前記特有の記述に用いられているページ記述言語に対応する解釈手段は、前記第３の記憶手段に記憶された設定情報に基づく印刷環境を設定してから、前記特有の記述以降の記述を解釈することを特徴とする印刷装置。
【００１３】
この構成によれば、印刷環境の設定情報は第３の記憶手段に記憶されているので、解釈する解釈手段が代わった場合であっても、第３の記憶手段に記憶された設定情報に基づいて印刷環境を設定し直すことができる。したがって、解釈を行う言語解釈手段が切り替わったときに、印刷環境を設定するための記述の記憶が第１の記憶手段に残っていなくとも、第３の記憶手段に記憶された設定情報に基づいて印刷環境を設定し直し、指定された適切な印刷環境による印刷を行うことができる。なお、印刷環境の例としては、給排紙装置の指定、印刷部数の指定、印刷モードの指定などが挙げられる。
【００１４】
［適用例４］上記印刷装置において、前記制御手段は、前記受信した印刷データに、ページ記述言語を指定するコマンドが含まれる場合、指定されたページ記述言語に対応する前記解釈手段を選択して、前記選択した解釈手段に前記印刷データを解釈させ、前記受信した印刷データに、ページ記述言語を指定するコマンドが含まれていない場合、前記受信した印刷データに用いられているページ記述言語を判定し、判定したページ記述言語に対応する前記解釈手段を選択して、前記選択した解釈手段に前記印刷データを解釈させることを特徴とする印刷装置。
【００１５】
この構成によれば、受信した印刷データにページ記述言語を指定するコマンドが含まれている場合、ページ記述言語を指定するコマンドが含まれていない場合のいずれの場合であっても、適切な印刷結果を得ることができる。
【００１６】
［適用例５］上記印刷装置において、前記制御手段は、前記選択された解釈手段が、解釈できない記述を検出した場合に、前記解釈できない記述が、他の前記解釈手段が対応するページ記述言語に特有の記述であれば、前記選択された解釈手段に代わって、前記特有の記述に用いられているページ記述言語に対応する解釈手段に解釈させ、前記解釈できない記述が、他の前記解釈手段が対応するページ記述言語に特有の記述でなければ、前記受信した印刷データの印刷を中止することを特徴とする印刷装置。
【００１７】
この構成によれば、複数の解釈手段のいずれの手段も対応しない言語のコマンドを含む印刷データについて、印刷が中止されるようになるので、印刷データに用いられている言語に対応しない不適切な解釈手段による解釈結果に基づいて無駄な印刷を行ってしまうことを防ぐことができる。
【００１８】
［適用例６］ページ記述言語で記述された印刷データを受信する受信手段と、互いに異なるページ記述言語の記述を解釈可能な複数の解釈手段と、前記印刷データの解釈結果に基づいた印刷を行う印刷手段と、を備えた印刷装置の印刷データ処理方法であって、前記受信した印刷データのページ記述言語に対応する前記解釈手段を選択して、前記選択した解釈手段に前記印刷データの記述を解釈させ、前記選択された解釈手段による言語解釈において、他の前記解釈手段が対応するページ記述言語に特有の記述が検出された場合、前記選択された解釈手段に代わって、前記特有の記述に用いられているページ記述言語に対応する解釈手段に前記印刷データを解釈させることを特徴とする印刷装置の印刷データ処理方法。
【００１９】
このようにすれば、受信した印刷データの記述が、特有の記述に対応する適切な解釈手段によって解釈されるようになるので、印刷データに対して適切な印刷結果を得ることができる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明に係る実施の形態について実施例に基づいて説明する。
【００２１】
（第１の実施例）
図１は、第１の実施例に係るプリンタの構成を示した図である。図１に示すように、プリンタ（印刷装置）１は、ＣＰＵ、ＲＯＭ、ＲＡＭ、各種インターフェイスなどから構成されるコントローラ１０と、コントローラ１０からの制御を受けて電子写真方式の印刷を行う印刷エンジン（印刷手段）２０と、を備えている。なお、プリンタ１は、ケーブルなどにより直接接続されたパーソナルコンピュータや、ネットワークを経由して接続されたパーソナルコンピュータとデータ通信可能になっており、パーソナルコンピュータから送信された印刷データＰＤは、その内容に関わらずに受信される。このため、プリンタ１は、処理可能であるか否かに関わらずに様々なページ記述言語（以下、「言語」ともいう）のコマンド体系に従うコードが記述された印刷データＰＤを受信する可能性がある。また、受信する印刷データＰＤは、言語の種類を示す言語指定コマンドを含む場合や、言語の種類が明示的に示されていない場合もある。本プリンタ１は、以上に述べた様々な印刷データＰＤに応じて印刷を行うものである。以下、プリンタ１の各構成について説明する。
【００２２】
プリンタ１のコントローラ１０は、通信Ｉ／Ｆ（受信手段）１１と、ネットワークＩ／Ｆ（受信手段）１２と、受信バッファ（第１の記憶手段）１３と、第１言語解釈部１４ａと、第２言語解釈部１４ｂと、第３言語解釈部１４ｃと、ジョブ制御部（制御手段）１５と、描画処理部１６と、ページメモリ１７と、エンジン制御部１８と、設定情報バッファ１９と、決定表Ｔとを有している。
【００２３】
通信Ｉ／Ｆ１１は、ケーブルなどを介してパーソナルコンピュータとデータ通信可能に接続されるインターフェイスである。ネットワークＩ／Ｆ１２はネットワークに対するインターフェイスであり、ネットワークを経由してパーソナルコンピュータとデータ通信可能になっている。通信Ｉ／Ｆ１１やネットワークＩ／Ｆ１２によってパーソナルコンピュータから受信した印刷データＰＤは、受信バッファ１３に格納される。なお、受信バッファ１３は、受信した印刷データＰＤを一時的に記憶する領域であり、受信バッファ１３に書き込まれた印刷データＰＤのうち未解釈のコードについては記憶を維持するとともに、解釈済のコードについては、後に受信したデータによる上書きが可能にデータ管理されている。
【００２４】
第１言語解釈部１４ａ、第２言語解釈部１４ｂ、第３言語解釈部１４ｃは、それぞれ異なるページ記述言語に対応する言語解釈部（解釈手段）１４であり、第１言語解釈部１４ａは第１ページ記述言語を解釈可能であり、第２言語解釈部１４ｂは第２ページ記述言語を解釈可能であり、第３言語解釈部１４ｃは第３ページ記述言語を解釈可能である。すなわち、プリンタ１は、第１ページ記述言語、第２ページ記述言語、第３ページ記述言語の３種類の言語に対応した構成となっている。もっとも、プリンタ１がサポートする言語の種類は、これに限られることなく、２種類の言語または４種類以上の言語に対応する構成としてもよい。
【００２５】
ジョブ制御部１５は、受信した印刷データＰＤのジョブを制御する部分であり、特に、受信した印刷データＰＤに用いられている言語に対応する言語解釈部１４を選択して起動させる制御を行う。なお、第１言語解釈部１４ａ、第２言語解釈部１４ｂ、第３言語解釈部１４ｃ、ジョブ制御部１５は、ＣＰＵがそれぞれに対応するプログラムを実行することによって機能するものである。ＣＰＵが、選択した言語解釈部１４に対応するプログラムをＲＯＭから読み出してそのプログラムを実行することにより言語解釈部１４が起動して、言語解釈部１４が言語解釈を実行可能な状態となる。
【００２６】
ここで、プリンタ１が受信する印刷データＰＤについて説明する。図２は、印刷データＰＤのデータ構造を示した図である。図２に示すように、印刷データＰＤは、先頭にジョブ記述部ＰＤａがある。ジョブ記述部ＰＤａは、ジョブ全体の印刷設定をするコマンド群からなり、給排紙装置、印刷部数、印刷モードなどの印刷環境を設定する環境設定コマンドや、印刷データＰＤの言語種類を指定する言語指定コマンドなどが所定の言語で記述されている。
【００２７】
ジョブ記述部ＰＤａの次には、ページ記述言語で記述されたページ記述部ＰＤｂがある。ページ記述部ＰＤｂは、その先頭に、環境設定コマンドを持つ。ページ記述部ＰＤｂの環境設定コマンドは、後述するエンジン制御部１８の色変換処理やスクリーン処理で参照される色変換テーブルやスクリーンテーブルを指定するコマンド、給排紙装置を指定するコマンドなどがある。なお、ページ記述部ＰＤｂに記述された環境設定コマンドは、ジョブ記述部ＰＤａ中の環境設定コマンドと重複する項目も含むときもある。この場合、ページ記述部ＰＤｂの解釈を開始した言語解釈部１４によって、後から設定されたコマンドが優先されて印刷設定される。さらに、ページ記述部ＰＤｂは、環境設定コマンドに続いて、描画コマンド、改ページコマンドなどのページごとの印刷内容が記述される。
【００２８】
ジョブ制御部１５は、上述の構成をもつ印刷データＰＤのジョブ記述部ＰＤａに記述されたコードを先頭から順次解釈し、ジョブ全体の印刷設定に関する設定情報を設定情報バッファ１９に格納する。そして、解釈した言語指定コマンドに対応する言語解釈部１４を起動することにより、起動した言語解釈部１４にページ記述部ＰＤｂのコードを解釈させる制御を行う。
【００２９】
なお、上述したように、ページ記述言語が明示的に示されていない、すなわちジョブ記述部ＰＤａに言語指定コマンドが含まれていない印刷データＰＤをプリンタ１が受信する場合もある。この場合、ジョブ制御部１５は、起動させる言語解釈部１４を言語指定コマンドに従って選択できないため、言語指定コマンドが記述されていない印刷データＰＤに対応する言語の種類を所定の手法により判定し、判定した言語に対応する言語解釈部１４を選択して起動する。
【００３０】
さらに、言語指定コマンドが記述されていない印刷データＰＤについて判定された言語が、必ずしも印刷データＰＤに適切に対応する言語であるとは限らない。このため、ジョブ制御部１５は、起動した言語解釈部１４による解釈中に、解釈中の言語解釈部１４が対応しない言語のコマンドが検出された場合、検出されたコマンドの言語に対応する言語解釈部１４を新たに起動して、言語解釈の主体となる言語解釈部１４の切り替え制御を行う。
【００３１】
ジョブ制御部１５は、これらの制御を行うことにより、ページ記述言語が明示的に示されていない印刷データＰＤに対する言語解釈を可能としている。そして、描画処理部１６は、描画コマンドの解釈結果に基づくビットマップ画像をページメモリ１７に展開する描画処理を行い、エンジン制御部１８は、描画処理によってページメモリ１７上に生成されたページデータを印刷エンジン２０が処理可能な形式のデータに変換する処理を行う。具体的には、エンジン制御部１８は、ＲＧＢ階調値のビットマップ画像のページデータをプリンタ対応色のビットマップ画像のページデータ（例えば、ＣＭＹＫ階調値のビットマップ画像データ）に変換する色変換処理、スクリーン処理、パルス幅変調などの処理を行って、パルス幅変調後のデータを印刷エンジン２０に出力することにより、印刷エンジン２０による印刷を制御する。コントローラ１０は、ユーザが指定可能な解像度を優先する印刷、階調を優先する印刷、あるいは、印刷媒体（印刷用紙）種類に合わせ、各種の色変換テーブル、スクリーン変換テーブルを持ち、エンジン制御部は、色変換処理、スクリーン処理において、印刷ジョブ全体、各印刷ページ、もしくは各描画コマンドごとに適したテーブルを選択して色変換処理、スクリーン処理を実行する。
【００３２】
次に、上述したプリンタ１において行われる印刷制御処理について、図３，４のフローチャートに従って詳細に説明する。
【００３３】
例えば、パーソナルコンピュータのいずれかから、通信Ｉ／Ｆ１１またはネットワークＩ／Ｆ１２を介して印刷データＰＤを受信すると、受信した印刷データＰＤが受信バッファ１３に記憶された状態となって、図３の処理が開始される。処理が開始されると、まず、コントローラ１０のジョブ制御部１５は、印刷データＰＤのジョブ記述部ＰＤａのコードを解釈する（ステップＳ１００）。このとき、印刷環境の環境設定コマンドの設定内容については、設定内容を示す設定情報を設定情報バッファ１９に格納することにより、以降の処理において設定情報バッファ１９の設定情報に従う印刷環境下で処理が行われるようにセットされる。
【００３４】
次に、ジョブ制御部１５は、受信した印刷データＰＤに言語指定があるか否かを判断する（ステップＳ１０５）。ここでは、印刷データＰＤのうちジョブ記述部ＰＤａのコードを解釈して、言語指定コマンドを検出できたか否かにより判断する。言語指定がなされていれば（ステップＳ１０５：Ｙｅｓ）、次に、指定された言語にプリンタ１が対応しているか、すなわち、指定された言語が、第１ページ記述言語、第２ページ記述言語、第３ページ記述言語のいずれかであるか否かを判断する（ステップＳ１１０）。
【００３５】
指定された言語に対応していた場合（ステップＳ１１０：Ｙｅｓ）、ジョブ制御部１５は、指定されたページ記述言語に対応する言語解釈部１４を起動して（ステップＳ１１５）、起動した言語解釈部１４に印刷データＰＤのページ記述部ＰＤｂのコードを解釈させる（ステップＳ１２０）。このとき、起動した言語解釈部１４によって解釈されたコードが描画コマンドであれば、描画処理部１６によって描画コマンドに従うオブジェクトの画像がページメモリ１７に展開される。
【００３６】
次に、言語解釈部１４は、解釈されたコードが改ページコマンドであるか否かを判断する（ステップＳ１２５）。改ページコマンドでなければ（ステップＳ１２５：Ｎｏ）、ステップＳ１２０に戻って、印刷データＰＤに含まれるコードのうち未処理のコードを解釈する。そして、改ページコマンドが検出されるまで、ステップＳ１２０，Ｓ１２５の処理を繰り返し行い、解釈により改ページコマンドが検出されると（ステップＳ１２５：Ｙｅｓ）、ページメモリ１７に展開された１ページ分のページデータをエンジン制御部１８に出力する（ステップＳ１３０）。このとき、エンジン制御部１８が、ページデータに対して色変換処理、スクリーン処理、パルス幅変調処理を行い、処理後のデータを印刷エンジン２０に出力することにより、１ページ分の印刷が行われる。
【００３７】
次に、言語解釈部１４は、全ページの処理が終了したか否かを判断する（ステップＳ１３５）。全ページの処理が終了していなければ（ステップＳ１３５：Ｎｏ）、ステップＳ１２０に戻って、次ページについての処理を繰り返す。ステップＳ１２０〜Ｓ１３５の処理を繰り返し行うことにより、全ページの処理が終了していれば（ステップＳ１３５：Ｙｅｓ）、受信した印刷データＰＤに対する処理が終了したと判断して、図３，４の処理を終了する。このように、ステップＳ１１５〜Ｓ１３５では、受信した印刷データＰＤのコードを、言語指定コマンドで指定されたページ記述言語のコマンド体系に従って解釈することによって印刷が行われる。
【００３８】
一方、受信した印刷データＰＤに言語指定がなかった場合（ステップＳ１０５：Ｎｏ）、および指定された言語にプリンタ１が対応していない場合（ステップＳ１１０：Ｎｏ）、ジョブ制御部１５は、印刷データＰＤに用いられたページ記述言語の種類を判定する（ステップＳ１４０）。言語種類の判定は、第１ページ記述言語、第２ページ記述言語、第３ページ記述言語を含む複数の言語の各言語について特有のコマンドの種類を予め示した決定表Ｔを参照して行う。決定表Ｔは、言語の種類を判定するためのテーブルであり、各言語とその言語に特有のコマンドを対応付けたものである。特有のコマンドとしては、例えば、モノクロ印刷専用の言語であれば、それ特有の色変換テーブルを指定するコマンド、カラー印刷用の言語であれば、その言語特有の色変換テーブルを指定するコマンドなどが挙げられる。なお、決定表Ｔにおける特有のコマンドとしては、ページ記述部の最初に設定されるようなコマンドであることが望ましい。ジョブ制御部１５は、この決定表Ｔを参照することにより、印刷データＰＤのページ記述部ＰＤｂ先頭から所定サイズのデータに含まれる特有のコマンドに基づき、印刷データＰＤに用いられている言語を特定する。
【００３９】
もっとも、言語種類の判定方法としては、これに限られることなく、例えば、特許文献１または特許文献２に記載の技術を用いて判定するようにしてもよい。また、ここでの判定が誤っていても、以降の処理において適切な言語の言語解釈部１４による解釈処理に切り替える処理が行われるため、ここでは、最も汎用的に用いられる所定の言語に仮判定しておくことにより、判定処理を簡略化し、処理の高速化を図るようにしてもよい。
【００４０】
次に、ジョブ制御部１５は、ステップＳ１４０において判定した言語に対応する言語解釈部１４を選択して起動し（ステップＳ１４５）、起動した言語解釈部１４は、印刷データＰＤのうち未処理のコードを解釈する（ステップＳ１５０）。このとき、解釈されたコードが描画コマンドであれば、描画処理部１６により描画コマンドに従うオブジェクト画像がページメモリ１７に展開される。
【００４１】
次に、言語解釈部１４は、解釈したコードが、他の言語に特有のコマンドであるか否かを判断する（ステップＳ１５５）。ここでは、ステップＳ１５０において解釈しようとしたが、起動している言語解釈部１４、すなわち解釈中の言語解釈部１４では解釈できなかったコードについて、決定表Ｔを参照することにより、起動している言語解釈部１４が対応する言語とは他の言語に特有のコマンドであるか否かを判断する。
【００４２】
解釈したコマンドが、他の言語に特有のコマンドでないと判断すると（ステップＳ１５５：Ｎｏ）、言語解釈部１４は、コードを解釈して得られたコマンドが、改ページコマンドであるか否かを判断する（ステップＳ１６０）。改ページコマンドでなければ（ステップＳ１６０：Ｎｏ）、ステップＳ１５０に戻って未処理のコードについて処理を継続する。改ページコマンドであれば（ステップＳ１６０：Ｙｅｓ）、エンジン制御部１８が、ページメモリ１７に展開されたページデータを印刷エンジン２０が処理可能なデータに変換して、印刷エンジン２０に出力することにより、１ページ分の印刷を行う（ステップＳ１６５）。そして、全ページの処理が終了したか否かを判断し（ステップＳ１７０）、次ページが残っていれば（ステップＳ１７０：Ｎｏ）、ステップＳ１５０に戻って次のコードについて処理を繰り返す。
【００４３】
以上のように、ステップＳ１５０〜Ｓ１７０の処理を繰り返し行うことにより、ステップＳ１４５において起動された言語解釈部１４によって、印刷データＰＤのコードが次々に解釈され、改ページコマンドを区切りとしてページごとの印刷が行われる。そして、次ページのコードがなくなり、全ページについて処理を終えると（ステップＳ１７０：Ｙｅｓ）、図３，４の処理を終了する。
【００４４】
ここで、ステップＳ１４５において第１言語解釈部１４ａが起動された場合の処理例を図５に示す。図５（ａ）に示すように、起動した第１言語解釈部１４ａは、ステップＳ１４５〜Ｓ１６５の処理を繰り返すことにより受信バッファ１３に記憶された印刷データＰＤ（ページ記述部ＰＤｂ）のコードを先頭から順次解釈する。なお、図５では、解釈済のコードは、解釈中の印刷データより後のデータ受信状況によっては記憶が残されていない可能性があるので、破線で示すようにしている。
【００４５】
そして、受信バッファ１３に記憶された印刷データＰＤに、第２ページ記述言語に特有のコマンドＰＣが含まれていた場合、図５（ｂ）に示すように第１言語解釈部１４ａが順次解釈を進めると、いずれ、第２ページ記述言語に特有のコマンドＰＣのコードを検出して解釈しようとするが、第１言語解釈部１４ａでは特有のコマンドＰＣのコードを解釈することができない。このとき、第１言語解釈部１４ａは、起動している言語解釈部１４により解釈できなかったコードが、他のページ記述言語に特有のコマンドであると判断して（ステップＳ１５５：Ｙｅｓ）、ステップＳ１７５に進む。
【００４６】
ステップＳ１７５に処理が進むと、ジョブ制御部１５は、ステップＳ１５０において解釈できなかった特有のコマンドに対応する言語について、プリンタ１の言語サポートがあるか否かを判断する。本実施例では、プリンタ１が対応している言語は、第１ページ記述言語、第２ページ記述言語、第３ページ記述言語の３種類であるので、ここでは、特有のコマンドに対応する言語が、第１ページ記述言語、第２ページ記述言語、第３ページ記述言語のいずれかであるか否かを判断する。特有のコマンドの言語が、サポートされた言語であった場合（ステップＳ１７５：Ｙｅｓ）、特有のコマンドの言語を次回に使用する言語に指定して（ステップＳ１８０）、ステップＳ１０５に進む。
【００４７】
このように、ステップＳ１８０において次回に使用する言語が指定された状態で、ステップＳ１０５に進んだ場合、図５（ｂ）に示すように、受信バッファ１３上に残された未処理のコードに対してステップＳ１０５以降の処理が行われる。この場合、ステップＳ１８０において言語指定がなされているので、ジョブ制御部１５は、言語が指定されていると判断してから（ステップＳ１０５：Ｙｅｓ）、対応する言語であると判断し（ステップＳ１１０：Ｙｅｓ）、ステップＳ１８０において指定された言語に対応する言語解釈部１４が起動される（ステップＳ１１５）。したがって、図５（ｃ）の例に示すように、第２ページ記述言語に特有のコマンドＰＣ以降のコードは、新たに起動した第２言語解釈部１４ｂによって解釈されるようになる。
【００４８】
一方、特有のコマンドに対応する言語が、プリンタ１によりサポートされた言語でなかった場合（ステップＳ１７５：Ｎｏ）、このコマンドを正確に解釈できる手段がないため、ジョブ制御部１５は、ページメモリ１７上に作成中のページデータおよび受信バッファ１３に残された印刷データＰＤを破棄することにより（ステップＳ１８５）、受信した印刷データＰＤの印刷を中止して、図３，４の処理を終了する。
【００４９】
以上に説明したように、第１の実施例では、起動した言語解釈部１４が、印刷データＰＤのコードを次々に処理する途中に、解釈できないコマンドのコードが検出され、そのコマンドが他の言語解釈部１４が対応する言語に特有のコマンドである場合に、その特有のコマンドの言語に対応する言語解釈部１４が新たに起動される。そして、受信バッファ１３に残されたコードに対して言語解釈を行う主体が、新たに起動した言語解釈部１４に切り替わるようになっている。
【００５０】
第１の実施例によれば、以下の効果を得ることができる。
【００５１】
（１）ステップＳ１４０の判定処理において、受信した印刷データＰＤに用いられている言語の種類を正しく判定できなかった場合であっても、判定した言語に対応する言語解釈部１４の解釈中に、判定した言語とは他の言語に特有のコマンドが検出されると、その特有のコマンドの言語に対応する言語解釈部１４による言語解釈に切り替わる。したがって、受信した印刷データＰＤに用いられている言語のコマンド体系に従って印刷データＰＤのコードを解釈することができ、適切な解釈結果に基づく適切な印刷結果を得ることができる。また、誤判定された言語のコマンド体系に従って解釈してしまうことによる無駄な印刷を防ぐことができる。
【００５２】
例えば、第１のページ記述言語がカラー印刷用の言語であり、第２のページ記述言語がモノクロ印刷用の言語であり、色指定に関するコマンドを除いて、互い類似したコマンド体系をもつ場合、ステップＳ１４０の判定処理において第１のページ記述言語と第２のページ記述言語とが互いに誤判定され易くなるが、類似したコマンド体系をもつ言語についても適切に処理することができる。互いに類似したコマンド体系をもつ言語の具体例としては、第１ページ記述言語がＥＳＣ／Ｃ、第２ページ記述言語がＥＳＣ／Ｐである場合が挙げられる。ＥＳＣ／ＣはＥＳＣ／Ｐを拡張した印刷制御コマンドであるので類似したコマンド体系である。この場合、決定表ＴにＥＳＣ／Ｃ特有の色変換テーブルを指定するコマンドを対応つけておけばよい。さらに、このような環境設定コマンドはページ記述部の描画コマンドの前にあるので、無駄に解釈を進めることなく、より早い段階で適切な言語解釈部１４に変更することが可能である。
【００５３】
（２）ステップＳ１４０の判定処理の処理内容を変えることなく、解釈中に言語を切り替えることにより、適切な印刷結果を得るようにしているので、判定処理に要する処理時間がより長くなることがない。したがって、印刷データＰＤを受信してから印刷を開始するまでの時間を延ばすことなく、より適切な印刷結果を得ることができる。
【００５４】
（３）他の言語に特有のコマンドの言語が、プリンタがサポートしている言語でない場合、すなわち言語解釈部１４ａ〜ｃのいずれもが特有のコマンドの言語に対応しない場合、ステップＳ１８５において、ページメモリ１７に作成中のページデータおよび受信バッファ１３に残された印刷データＰＤが破棄され、受信した印刷データＰＤに対する処理が中止される。これにより、プリンタ１が対処できない言語で記述された印刷データＰＤを、誤った言語のコマンド体系に従って無理に解釈することによる無駄な印刷を防ぐことができる。
【００５５】
（第２の実施例）
次に、第２の実施例について説明する。第１の実施例では、いったん解釈済になったコードは、受信バッファ１３に記憶されている保証がないため、切り替えられた言語解釈部１４は、切り替え前の言語解釈部１４によって解釈済のコードを解釈することはできなかった。このため、図５の処理例であれば、第２ページ記述言語に特有のコマンドＰＣより前に描画コマンドが記述されていた場合に、一部のオブジェクトについては、適切な言語解釈部１４の解釈結果に基づき適切に印刷できない可能性があった。そこで、第２の実施例に係るプリンタ１００は、図６に示すように、第１の実施例の構成に加えて、さらにコードバッファ３０を備え、各言語解釈部１４は解釈済のコードをコードバッファ３０に格納する。言語解釈部１４の切り替えがあった場合、切り替えられた言語解釈部１４は、コードバッファ３０を参照することにより、解釈済のコードを解釈し直す。なお、以下では、第１の実施例と同様の構成については、同じ符号を付与し、詳細な説明を省略する。
【００５６】
第２の実施例に係る印刷制御処理の手順について、図７，８のフローチャートに従って説明する。印刷制御処理を開始するとステップＳ２００から処理が開始される。ステップＳ２００〜Ｓ２１５は、ステップＳ１００〜Ｓ１１５と同様である。ステップＳ２００においてジョブ記述部ＰＤａのコードを解釈してから、言語指定がない（ステップＳ２０５：Ｎｏ）、または、指定された言語が対応する言語でないと判断されると（ステップＳ２１０：Ｎｏ）、ジョブ制御部１５は、ページ記述言語を判定し（ステップＳ２４０）、判定した言語に対応する言語解釈部１４を起動する（ステップＳ２４５）。
【００５７】
次に、起動した言語解釈部１４は、印刷データＰＤのうち未処理のコードを解釈するとともに、解釈済のコードをコードバッファ３０に格納する（ステップＳ２５０）。以降のステップＳ２５５〜Ｓ２８５の処理については、第１の実施例におけるステップＳ１５５〜Ｓ１８５と同様である。ステップＳ２５０〜Ｓ２７０の処理を繰り返すことにより、第１言語解釈部１４ａによって先頭からの言語解釈を開始した場合、図９（ａ）に示すように、解釈済のコードがコードバッファ３０に次々に格納され、先頭から第２ページ記述言語に特有のコマンドＰＣに至るまでの記述がコードバッファ３０に記憶される。そして、他の言語解釈部１４の言語に特有のコマンドＰＣと判定され（ステップＳ２５５：Ｙｅｓ）、特有のコマンドＰＣがサポートする言語であれば（ステップＳ２７５：Ｙｅｓ）、特有のコマンドＰＣの言語を次回に使用する言語に指定して（ステップＳ２８０）、ステップＳ２０５に進む。
【００５８】
ステップＳ２８０において言語が指定された状態で、ステップＳ２０５に進んだ場合、受信バッファ１３上に残された未処理のコードに対してステップＳ２０５以降の処理が行われる。この場合、ステップＳ２８０において使用する言語が指定されているので、ジョブ制御部１５は、言語が指定されていると判断してから（ステップＳ２０５：Ｙｅｓ）、対応した言語である（ステップＳ２１０：Ｙｅｓ）と判断し、ステップＳ２８０において指定された言語に対応する言語解釈部１４を起動する（ステップＳ２１５）。次に、ジョブ制御部１５は、コードバッファ３０にデータが格納されているか否かを判断し（ステップＳ２１７）、格納されていれば（ステップＳ２１７：Ｙｅｓ）、ステップＳ２１５にて起動した言語解釈部１４がコードバッファ３０に格納されたコードを解釈してから（ステップＳ２１９）、ステップＳ２２０に進む。図９の例では、第１言語解釈部１４ａは第２ページ記述言語に特有のコマンドＰＣを解釈できないために第２言語解釈部１４ｂが起動され、新たに起動した第２言語解釈部１４ｂは、コードバッファ３０に記憶されたコードを第２ページ記述言語のコマンド体系に従って言語解釈を行う（図９（ｂ）参照）。
【００５９】
なお、受信した印刷データＰＤが、対応する言語に言語指定されていた場合は、図７の処理を開始してから、ステップＳ２００〜Ｓ２１７の処理を順番に進んでから、コードバッファ３０にデータが格納されていないと判断されて（ステップＳ２１７：Ｎｏ）、コードバッファ３０に格納されたコードを解釈することなく、ステップＳ２２０に進む。
【００６０】
ステップＳ２２０以降の処理については、第１の実施例に係るステップＳ１２０〜１３５の処理と同様に、未処理の先頭から順番に解釈して、ページごとに印刷が行われる。図９の例では、図９（ｃ）に示すように、新たに起動した第２言語解釈部１４ｂが、受信バッファ１３に記憶された未処理のコードを次々に解釈する。これにより、受信した印刷データＰＤのページ記述部ＰＤｂの全コードが第２言語解釈部１４ｂによって解釈されたことになる。印刷データＰＤの全ページについて印刷を終えると図７，８の処理を終了する。
【００６１】
第２の実施例によれば、第１の実施例の効果（１）〜（３）に加えてさらに、以下の効果を得ることができる。
【００６２】
（４）言語解釈の主体となる言語解釈部１４が切り替わった後の処理において、切り替え前の言語解釈によって解釈済のコードは受信バッファ１３に残っている保証がないが、コードバッファ３０を参照することにより、切り替わった言語解釈部１４が解釈済のコードを解釈し直すことができる。したがって、適切な言語解釈部１４によってページ記述部ＰＤｂの全コードを解釈し直して、印刷データＰＤの印刷すべき内容を正確に印刷することができる。
【００６３】
（第３の実施例）
次に、第３の実施例について説明する。第１の実施例では、いったん解釈済になったコードが、受信バッファ１３に残っている保証がないため、言語解釈部１４を切り替え後の処理において、印刷データＰＤのうちページ記述部ＰＤｂのコードを解釈し直すことができない。このため、印刷環境を設定する環境設定コマンドがページ記述部ＰＤｂに含まれていた場合に、言語解釈部１４を切り替えた後の処理において、印刷環境の設定を必ずしも正しく反映することができなかった。そこで、図１０に示すように、第３の実施例に係るプリンタ２００は、第１の実施例の構成に加えて、さらに言語解釈部用の設定情報バッファ（第３の記憶手段、以下「第２設定情報バッファ４０」という）を備え、環境設定コマンドの設定情報を第２設定情報バッファ４０に格納する。言語解釈部１４の切り替えがあった場合、切り替えられた言語解釈部１４は、第２設定情報バッファ４０を参照することにより、印刷環境の設定を行う。なお、第３の実施例においては、ジョブ制御部１５が用いる設定情報バッファ１９を「第１設定情報バッファ１９」ということとする。
【００６４】
次に、第３の実施例に係る印刷制御処理の手順について、図１１，１２のフローチャートに従って説明する。
【００６５】
印刷制御処理を開始するとステップＳ３００から順に処理が開始される。ステップＳ３００〜Ｓ３１５は、第１の実施例におけるステップＳ１００〜Ｓ１１５と同様である。まず、ステップＳ３００において、ジョブ制御部１５は、受信バッファ１３に記憶されたジョブ記述部ＰＤａのコードを解釈して、環境設定コマンドおよび言語指定コマンドを取得し、環境設定コマンドについての設定情報を第１設定情報バッファ１９に格納することにより、印刷環境を設定する。第１言語解釈部１４ａによる言語解釈を開始した場合の処理例を示す図１３の処理例では、図１３（ａ）に示すように、ジョブ記述部ＰＤａに記述された環境設定コマンドＳＣ１が解釈されて、環境設定コマンドＳＣ１により規定される設定情報を第１設定情報バッファ１９に格納することにより、印刷環境が設定される。
【００６６】
次に、言語指定コマンドによる言語指定がない（ステップＳ３０５：Ｎｏ）、または、指定された言語が対応する言語でないと判断されると（ステップＳ３１０：Ｎｏ）、ジョブ制御部１５は、ページ記述言語を判定し（ステップＳ３４０）、判定した言語に対応する言語解釈部１４を起動する（ステップＳ３４５）。
【００６７】
次に、起動した言語解釈部１４は、ページ記述部ＰＤｂの未処理のコードを解釈し（ステップＳ３５０）、言語解釈により取得したコマンドが他言語に特有のコマンドであるか否かを判断する（ステップＳ３５５）。他言語に特有のコマンドでなければ（ステップＳ３５５：Ｎｏ）、次に、解釈により取得したコマンドが環境設定コマンドであるか否かを判断する（ステップＳ３５６）。環境設定コマンドであれば（ステップＳ３５６：Ｙｅｓ）、起動した言語解釈部１４は、取得した環境設定コマンドにより規定される印刷環境を設定するとともに印刷環境の設定情報を第２設定情報バッファ４０に格納してから（ステップＳ３５８）、ステップＳ３６０に進む。これにより、図１３（ｂ）に示すように、ページ記述部ＰＤｂの先頭から第２ページ記述言語に特有のコマンドＰＣに至るまでのコードに、印刷環境の設定コマンドＳＣ２が含まれている場合、印刷環境の設定情報が第２設定情報バッファ４０に格納される。また、環境設定コマンドでない場合についても（ステップＳ３５６：Ｎｏ）、ステップＳ３６０に進む。
【００６８】
以降のステップＳ３６０〜Ｓ３８５の処理については、第１の実施例におけるステップＳ１６０〜Ｓ１８５と同様であり、ステップＳ３５０〜Ｓ３７０の処理を繰り返すことにより、第１言語解釈部１４ａによって第２ページ記述言語に特有のコマンドに至るまでのコードが解釈される。そして解釈中に検出されたコードが他の言語に特有のコマンドであり（ステップＳ３５５：Ｙｅｓ）、且つ特有のコマンドがサポートする言語であれば（ステップＳ３７５：Ｙｅｓ）、特有のコマンドの言語を次回に使用する言語に指定してから（ステップＳ３８０）、ステップＳ３０５に進む。
【００６９】
このように、ステップＳ３８０において使用する言語が指定された状態で、ステップＳ３０５に処理が進むと、受信バッファ１３上に残された未処理のコードに対してステップＳ３０５以降の処理が開始される。この場合、ステップＳ３８０において使用する言語が指定されているので、ジョブ制御部１５は、言語指定あり（ステップＳ３０５：Ｙｅｓ）、対応した言語である（ステップＳ３１０：Ｙｅｓ）と判断し、ジョブ制御部１５は、指定された言語に対応する言語解釈部１４を起動する（ステップＳ３１５）。そして、起動した言語解釈部１４は、第２設定情報バッファ４０に設定情報が格納されているか否かを判断し（ステップＳ３１６）、格納されていれば（ステップＳ３１６：Ｙｅｓ）、第２設定情報バッファ４０に格納された設定情報に従う印刷環境を設定して（ステップＳ３１８）、ステップＳ３２０に進む。これにより、図１３（ｃ）に示すように、第１言語解釈部１４ａでは第２ページ記述言語に特有のコマンドＰＣが解釈不可能であるために第２言語解釈部１４ｂが起動され、第２言語解釈部１４ｂは第２設定情報バッファ４０に格納された設定情報を読み出して、環境設定コマンドＳＣ２の設定内容に従う印刷環境を設定する。
【００７０】
なお、ステップＳ３８０の言語指定ではなく、言語指定コマンドによって、プリンタ２００が対応する言語に言語指定されている印刷データの場合は、図１１の処理を開始して、ステップＳ３００〜Ｓ３１５の処理を順番に進んでから、第２設定情報バッファ４０に設定情報が格納されていないと判断され（ステップＳ３１６：Ｎｏ）、ステップＳ３２０に進む。
【００７１】
ステップＳ３２０以降の処理については、第１の実施例に係るステップＳ１２０〜１３５の処理と同様に、起動した言語解釈部１４が、未処理のコードの先頭から順番に解釈を行うことにより、ページごとの印刷が行われる。これにより、図１３（ｃ）に示すように、特有のコマンドＰＣ以降のコードが第２言語解釈部１４ｂによって解釈される。印刷データＰＤの全ページについて印刷を終えると図１１，１２の処理を終了する。
【００７２】
第３の実施例によれば、第１の実施例の効果（１）〜（３）に加えてさらに、以下の効果を得ることができる。
【００７３】
（５）印刷データＰＤを主体となって解釈する言語解釈部１４が切り替わった後の処理においても、ページ記述部ＰＤｂに記述された印刷環境の設定（図１３の例では、環境設定コマンドＳＣ２の設定内容）を、切り替え前の処理から引き継いで反映させることができる。したがって、環境設定コマンドが受信バッファ１３に残っている保証がなくとも、言語解釈部１４の切り替え後に、印刷データＰＤに指定された印刷環境に従う印刷を行い、印刷データＰＤの内容を正確に印刷することができる。
【００７４】
以上、第１の実施例ないし第３の実施例について説明したが、これらの態様に限られることなく、以下の変形例としてもよい。
【００７５】
（変形例１）上記第２の実施例では、解釈済のコードをコードバッファ３０に格納することにより、切り替えられた言語解釈部１４が解釈済のコードを解釈し直すことができ、第３の実施例では、印刷環境の設定情報を第２設定情報バッファ４０に格納することにより、印刷環境の設定情報を、切り替え後の言語解釈に引き継ぐことができた。変形例１として、第２の実施例の特徴と第３の実施例の特徴とを併せもつ構成としてもよい。すなわち、解釈済のコードの一部をコードバッファ３０に格納するとともに、環境設定コマンドの設定情報を第２設定情報バッファ４０に格納しておき、言語解釈部１４の切り替え後に、言語解釈部１４が、第２設定情報バッファ４０の設定情報を参照して印刷環境を設定してから、コードバッファ３０に記憶された解釈済のコードの再解釈を行うようにしてもよい。
【００７６】
（変形例２）ステップＳ１５５における特有のコマンドの判定を行う範囲を限定するようにしてもよい。例えば、印刷データＰＤに含まれる印刷ページのうち最初の１ページ目についてのみステップＳ１５５の判定を行い、２ページ目以降についてはステップＳ１５５の判定を行わないようにしてもよい。また、先頭から所定サイズのデータについてのみ、ステップＳ１５０の判定を行うようにしてもよい。
【００７７】
（変形例３）上記実施例では、言語指定コマンドに従う言語に対応する言語解釈部１４を起動した後の処理（第１の実施例ではステップＳ１２０〜Ｓ１３５）において、他の言語に特有のコマンドであるかの判定を行わないようにした。変形例３として、言語指定コマンドに従う言語に対応する言語解釈部１４を起動した後であっても、解釈できなかった言語があれば、他の言語に特有のコマンドであるか否かを判定し、他の言語に特有のコマンドであれば、言語解釈部１４を切り替えるようにしてもよい。このようにすれば、例えば、言語指定コマンドによって指定された言語と、実際に用いられている言語とが相違している場合、すなわち、言語指定コマンドによる言語指定が誤っている場合に、誤って指定された言語に対応する言語解釈部１４に代わって、適切な言語に対応する言語解釈部１４によって印刷データを解釈し、適切な印刷結果を得ることができる。
【００７８】
（変形例４）上記実施例のプリンタ１は、電子写真方式のページプリンタであったが、印刷装置としてはこれに限られることなく、ページ記述言語を解釈して印刷を行うことができる装置であれば、複写機やファックスなどでもよい。
【図面の簡単な説明】
【００７９】
【図１】第１の実施例に係るプリンタのハードウェア構成を示した図。
【図２】印刷データのデータ構造を示した図。
【図３】印刷制御処理の手順を示したフローチャート。
【図４】印刷制御処理の手順を示したフローチャート。
【図５】印刷制御処理を説明するための図であり、（ａ）〜（ｃ）は受信バッファの状態を示した図。
【図６】第２の実施例に係るプリンタのハードウェア構成を示した図。
【図７】印刷制御処理の手順を示したフローチャート。
【図８】印刷制御処理の手順を示したフローチャート。
【図９】印刷制御処理を説明するための図であり、（ａ）〜（ｃ）は受信バッファおよびコードバッファの状態を示した図。
【図１０】第３の実施例に係るプリンタのハードウェア構成を示した図。
【図１１】印刷制御処理の手順を示したフローチャート。
【図１２】印刷制御処理の手順を示したフローチャート。
【図１３】印刷制御処理を説明するための図であり、（ａ）〜（ｃ）は受信バッファおよび設定情報バッファの状態を示した図。
【符号の説明】
【００８０】
１…第１の実施例に係る印刷装置としてのプリンタ、１０…コントローラ、１１…受信手段としての通信Ｉ／Ｆ、１２…受信手段としてのネットワークＩ／Ｆ、１３…第１の記憶手段としての受信バッファ、１４…解釈手段としての言語解釈部、１４ａ…第１言語解釈部、１４ｂ…第２言語解釈部、１４ｃ…第３言語解釈部、１５…制御手段としてのジョブ制御部、１６…描画処理部、１７…ページメモリ、１８…エンジン制御部、２０…印刷手段としての印刷エンジン、３０…第２の記憶手段としてのコードバッファ、４０…第３の記憶手段としての設定情報バッファ、１００…第２の実施例に係る印刷装置としてのプリンタ、２００…第３の実施例に係る印刷装置としてのプリンタ、ＰＤ…印刷データ、Ｔ…決定表。
【図１】
2009132040.tif 000003
【図２】
2009132040.tif 000004
【図３】
2009132040.tif 000005
【図４】
2009132040.tif 000006
【図５】
2009132040.tif 000007
【図６】
2009132040.tif 000008
【図７】
2009132040.tif 000009
【図８】
2009132040.tif 000010
【図９】
2009132040.tif 000011
【図１０】
2009132040.tif 000012
【図１１】
2009132040.tif 000013
【図１２】
2009132040.tif 000014
【図１３】
2009132040.tif 000015