(57)【特許請求の範囲】
【請求項１】
印刷制御手段を備えるプリンタ装置と、前記プリンタ装置とデータを送受信可能な少なくとも一つのデータ処理装置とを組み合わせたプリンタシステムであって、
前記データ処理装置は、印刷データを言語解析して対応する中間コードを生成し、前記印刷制御手段に前記生成した中間コードの識別情報を出力する中間コード生成手段と、前記生成した中間コードを印刷イメージ情報に展開する中間コード展開手段を備え、
前記印刷制御手段は、中間コード生成手段から入力される中間コード識別情報に基づいて中間コード展開手段を選択し、前記選択した中間コード展開手段により展開された印刷イメージ情報が、該プリンタ装置が有する所定の記憶領域に記憶されるように制御し、前記記憶された印刷イメージ情報に基づいて印刷を行うように制御することを特徴とするプリンタシステム。
【請求項２】
前記プリンタ装置は、印刷データを言語解析して対応する中間コードを生成する第２の中間コード生成手段と、前記生成した中間コードを印刷イメージ情報に展開する第２の中間コード展開手段とを備えており、
前記データ処理装置が備える中間コード生成手段は、前記プリンタ装置が備える第２の中間コード生成手段が対応していない言語で記述された印刷データに対し、解析可能に構成されていることを特徴とする請求項１記載のプリンタシステム。
【請求項３】
前記プリンタ装置は、更に、入力される印刷データの言語の種類を判別し、その判別結果に基づいて中間コード生成手段を選択し、前記選択した中間コード生成手段に前記印刷データを渡す判別手段を備えることを特徴とする請求項２記載のプリンタシステム。
【請求項４】
前記印刷制御手段は、中間コード識別情報と中間コード展開手段との対応関係を記憶しており、かかる対応関係を参照することにより中間コード展開手段を選択することを特徴とする請求項１乃至３のいずれか１項に記載のプリンタシステム。
【請求項５】
前記中間コード識別情報に、対応する中間コード展開手段をコールするためのアドレス情報が含まれていることを特徴とする請求項１乃至３のいずれか１項に記載のプリンタシステム。
【請求項６】
中間コード生成手段は、更に、中間コード（又は言語）に応じたバンド幅及びバンド高さ情報を前記プリンタ装置に出力し、
前記印刷制御手段は、中間コード生成手段から入力されるバンド幅及びバンド高さ情報に基づいて前記所定の記憶領域を再構成し、前記展開された印刷イメージ情報がバンド単位で前記再構成した所定の記憶領域に記憶されるように制御することを特徴とする請求項１乃至５のいずれか一項に記載のプリンタシステム。
【請求項７】
入力される印刷データの言語の種類を判別し、その判別結果に基づいて中間コード生成手段を選択し、前記選択した中間コード生成手段に前記印刷データを渡す判別手段と、
前記選択した中間コード生成手段から入力される中間コード識別情報に基づいて中間コード展開手段を選択し、前記選択した中間コード展開手段により展開された印刷イメージ情報が、該プリンタ装置が有する所定の記憶領域に記憶されるように制御し、前記記憶された印刷イメージ情報に基づいて印刷を行うように制御する印刷制御手段を備えることを特徴とするプリンタ装置。
【請求項８】
前記印刷制御手段は、中間コード識別情報と中間コード展開手段との対応関係を記憶しており、かかる対応関係を参照することにより中間コード展開手段を選択することを特徴とする請求項７記載のプリンタ装置。
【請求項９】
前記中間コード識別情報に、対応する中間コード展開手段をコールするためのアドレス情報が含まれていることを特徴とする請求項７記載のプリンタ装置。
【請求項１０】
前記印刷手段は、中間コード（又は言語）ごとに異なるバンド幅及びバンド高さ情報に基づいて前記所定の記憶領域を再構成し、前記展開された印刷イメージ情報がバンド単位で前記再構成した所定の記憶領域に記憶されるように制御することを特徴とする請求項７乃至９のいずれか一項に記載のプリンタ装置。
【請求項１１】
印刷制御手段を備えるプリンタ装置とデータを送受信可能なデータ処理装置であって、
前記データ処理装置は、印刷データを言語解析して対応する中間コードを生成し、前記印刷制御手段に前記生成した中間コードの識別情報を出力する中間コード生成手段と、前記生成した中間コードを印刷イメージ情報に展開する中間コード展開手段を備えており、
前記印刷制御手段は、中間コード生成手段から入力される中間コード識別情報に基づいて中間コード展開手段を選択し、前記選択した中間コード展開手段により展開された印刷イメージ情報が、該プリンタ装置が有する所定の記憶領域に記憶されるように制御し、前記記憶された印刷イメージ情報に基づいて印刷を行うように制御する機能を備えており、
前記データ処理装置が備える中間コード生成手段は、前記プリンタ装置単独では対応していない言語で記述された印刷データに対し、解析可能に構成されていることを特徴とするデータ処理装置。
【請求項１２】
前記中間コード識別情報に、対応する中間コード展開手段をコールするためのアドレス情報が含まれていることを特徴とする請求項１１記載のデータ処理装置。
【請求項１３】
前記データ処理装置が備える中間コード生成手段は、更に、中間コード（又は言語）に応じたバンド幅及びバンド高さ情報を前記プリンタ装置に出力することを特徴とする請求項１１又は１２記載のデータ処理装置。
【請求項１４】
印刷制御手段を備えるプリンタ装置と、前記プリンタ装置とデータを送受信可能な少なくとも一つのデータ処理装置とを組み合わせたプリンタシステムに用いる印刷方法であって、
前記プリンタ装置が、入力される印刷データの言語の種類を判別し、その判別結果に基づいて前記プリンタ装置が備える中間コード生成手段又は前記データ処理装置が備える中間コード生成手段を選択し、前記選択した中間コード生成手段に前記印刷データを渡す判別ステップと、
前記プリンタ装置が備える中間コード生成手段又は前記データ処理装置が備える中間コード生成手段が、印刷データを言語解析して対応する中間コードを生成し、前記印刷制御手段に前記生成した中間コードの識別情報を出力する中間コード生成ステップと、
前記プリンタ装置が、中間コード生成手段から入力される中間コード識別情報に基づいて中間コード展開手段を選択し、前記選択した中間コード展開手段により展開された印刷イメージ情報が、該プリンタ装置が有する所定の記憶領域に記憶されるように制御し、前記記憶された印刷イメージ情報に基づいて印刷を行う印刷制御ステップと、を備えることを特徴とする印刷方法。
【請求項１５】
前記データ処理装置として、前記プリンタ装置が備える中間コード生成手段が対応していない言語で記述された印刷データに対し、解析可能に構成されている中間コード生成手段を備えたデータ処理装置を用いることを特徴とする請求項１４記載の印刷方法。
【請求項１６】
前記印刷制御ステップは、中間コード識別情報と中間コード展開手段との対応関係を参照することにより中間コード展開手段を選択することを特徴とする請求項１４又は１５記載の印刷方法。
【請求項１７】
請求項１４乃至１６のいずれか一項に記載の印刷方法をコンピュータで実行させるためのプログラムを格納したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プリンタ装置、印刷データのデータ処理装置、およびそれらを含んだプリンタシステムに関する。
【０００２】
【従来の技術】
典型的なプリンタシステムでは、ホストコンピュータにプリンタ装置が接続され、ホストコンピュータには、プリンタを動作させるプリンタドライバと呼ばれるプログラムがインストールされている。
【０００３】
ホストコンピュータ内のプリンタドライバは、印刷対象データをプリンタが理解できる形式、すなわち、プリンタが解釈可能な言語（プリンタ制御言語）により記述された印刷データに変換し、この印刷データをオペレーティングシステムがプリンタへ送る。かかるプリンタ制御言語は、それぞれプリンタメーカ等により独自に開発が行われてきており、ＥＳＣ／Ｐａｇｅ、Ｐｏｓｔ Ｓｃｒｉｐｔ等幾つかの種類が存在している。
【０００４】
プリンタ装置は、プリンタ制御言語で記述された印刷データを受信し、印刷データについて言語解析を行い、プリンタ内での処理に適合した中間コードに変換する（中間コード生成）。そして、中間コードからビットイメージへ展開し（中間コード展開）、印刷を行う。
【０００５】
ここで、ビットイメージを１ページ分全部記憶しておこうとすると、大変多くの記憶領域が必要となりメモリ効率が悪い。
【０００６】
そこで、通常は１ページを複数のバンドに分割し、かかるバンド単位で中間コードの生成及びビットイメージへの展開を行う。そして、印刷が終了したビットイメージについては順次記憶領域を解放し、かかる解放された記憶領域に次のバンドのビットイメージを記憶していくように制御する（印刷制御）。かかる構成では、数バンド分についての記憶領域のみ確保しておけば良いため、メモリ効率を改善することができる。このような数バンド分についての記憶領域はバンドバッファと呼ばれている。
【０００７】
【発明が解決しようとする課題】
現在、プリンタ制御言語には幾つかの種類が存在し、今後も新しいプリンタ制御言語が開発されていくことが予想される。
【０００８】
しかし、一つのプリンタ装置が一つのプリンタ制御言語にしか対応できないのでは、ユーザは言語ごとにプリンタ装置を購入しなければならず、非常に不便であり負担も大きい。そこで、複数のプリンタ制御言語に対応可能なプリンタ装置の実現が望まれる。
【０００９】
ここで、中間コードはプリンタ制御言語に基づいて生成されるため、中間コードの体系はプリンタ制御言語の体系に大きく依存する。従って、複数のプリンタ制御言語に対応できるように構成するためには、中間コードをどのように処理するかが大きな問題となる。
【００１０】
第一の考えは、プリンタ装置の内部に、各言語に対応した中間コードの生成及び展開モジュールをもつ方法である。
【００１１】
しかし、プリンタ制御言語の体系は開発した企業のトップシークレットであるため、各言語に対応した中間コードの生成モジュールや展開モジュールを、予め自社のプリンタ装置の内部に固定的に装備することは、必ずしも容易ではない。また、仮に装備できたとしても、予め内部に装備しておくことはコストの上昇を招くことになり、その言語を使用しないユーザに不要な負担を強いることになる。更に、かかる方法では、新たに開発された言語に対しては対応することができない。
【００１２】
第二の考えは、プリンタ装置の外部に、各言語に対応した中間コードの生成及び展開モジュールを持つ方法である。実際に、Ｐｏｓｔ Ｓｃｒｉｐｔについては、図６に示すようなオプションボードとして提供されている。
【００１３】
しかし、かかるオプションボードは印刷制御モジュールも含んで構成されているため、汎用性が低いという問題がある。印刷制御モジュールは印刷エンジンに直接アクセスするモジュールであることから、印刷エンジンに大きく依存する。そのため、印刷制御モジュールを含むオプションボード自体も印刷エンジンに大きく依存することとなり、複数の印刷エンジンに対応したオプションボードを開発することが非常に困難となるという問題が生じる。
【００１４】
第三の考えは、複数の言語に共通の中間コードの体系を構築する、もしくは、他社の言語を自社の言語に翻訳する方法である。かかる方法であれば、中間コードの生成及び展開モジュールは、一の中間コードに対応するものだけ備えていれば足りる。
【００１５】
しかし、共通の中間コードの体系を構築する場合であっても、他社の言語を翻訳する場合であっても、どちらの場合も各言語の体系を把握しなければ実現することはできない。先に述べたようにプリンタ制御言語の情報は開発メーカのトップシークレットであるため、各言語の体系を把握することは容易でない。また、仮に把握できたとしても、共通する体系の構築や言語の翻訳には、非常に多くの労力が必要となる。更に、新しい言語に対応するためには、また共通の体系の構築等を一からやり直さなければならず、柔軟性に大きく欠けるという問題もある。
【００１６】
そこで、本発明は、多言語・新言語に柔軟に対応できるプリンタ装置及びプリンタシステムを提供することを目的とする。
【００１７】
また、本発明は、中間コード生成及び展開に関し、複数の印刷エンジンに対応できる汎用性の高いデータ処理装置を提供することを目的とする。
【００１８】
【課題を解決するための手段】
本発明の印刷方法は、プリンタ装置とのデータ処理装置を組み合わせたプリンタシステムに用いる印刷方法であって、前記プリンタ装置において、入力される印刷データの言語の種類を判別し、その判別結果に基づいて中間コード生成手段を選択し、前記選択した中間コード生成手段に前記印刷データを渡す判別ステップと、前記プリンタ装置が備える中間コード生成手段又は前記データ処理装置が備える中間コード生成手段において、印刷データを言語解析して対応する中間コードを生成し、かかる中間コードの識別情報を出力する中間コード生成ステップと、前記プリンタ装置において、中間コード生成手段から入力される中間コード識別情報に基づいて中間コード展開手段を選択し、前記選択した中間コード展開手段により展開された印刷イメージ情報が、該プリンタ装置が有する所定の記憶領域に記憶されるように制御し、前記記憶された印刷イメージ情報に基づいて印刷を行う印刷制御ステップと、を備えることを特徴とする。
【００１９】
前記データ処理装置として、前記プリンタ装置が備える中間コード生成手段が対応していない言語で記述された印刷データに対し、解析可能に構成されている中間コード生成手段を備えたデータ処理装置を用いることが好ましい。
【００２０】
前記印刷制御ステップは、中間コード識別情報と中間コード展開手段との対応関係を参照することにより中間コード展開手段を選択することが好ましい。
【００２１】
なお、本発明の印刷方法はコンピュータにより実施することができるが、そのためのコンピュータプログラムは、ＣＤ−ＲＯＭ、磁気ディスク、半導体メモリ及び通信ネットワークなどの各種の媒体を通じてコンピュータにインストールまたはロードすることができる。
【００２２】
本発明のプリンタシステムは、プリンタ装置と少なくとも一つのデータ処理装置を組み合わせたプリンタシステムであって、前記データ処理装置は、印刷データを言語解析して対応する中間コードを生成する中間コード生成手段と、前記生成した中間コードを印刷イメージ情報に展開する中間コード展開手段を備え、前記プリンタ装置は、中間コード展開手段により展開された印刷イメージ情報が、該プリンタ装置が有する所定の記憶領域に記憶されるように制御し、前記記憶された印刷イメージ情報に基づいて印刷を行う印刷手段を備えることを特徴とする。
【００２３】
好適には、前記プリンタ装置は、印刷データを言語解析して対応する中間コードを生成する中間コード生成手段と、前記生成した中間コードを印刷イメージ情報に展開する中間コード展開手段を備えており、前記データ処理装置が備える中間コード生成手段は、前記プリンタ装置が備える中間コード生成手段が対応していない言語で記述された印刷データに対し、解析可能に構成されていることが好ましい。
【００２４】
前記プリンタ装置は、更に、入力される印刷データの言語の種類を判別し、その判別結果に基づいて中間コード生成手段を選択し、前記選択した中間コード生成手段に前記印刷データを渡す判別手段を備えることが好ましい。
【００２５】
前記データ処理装置が備える中間コード生成手段は、中間コードを生成するとともに、かかる中間コードの識別情報を前記印刷手段に出力し、前記印刷手段は、中間コード生成手段から入力される中間コード識別情報に基づいて中間コード展開手段を選択し、前記選択した中間コード展開手段により展開された印刷イメージ情報が、該プリンタ装置が有する所定の記憶領域に記憶されるように制御することが好ましい。
【００２６】
前記印刷手段は、中間コード識別情報と中間コード展開手段との対応関係を記憶しており、かかる対応関係を参照することにより中間コード展開手段を選択することが好ましい。または、前記中間コード識別情報に、対応する中間コード展開手段をコールするためのアドレス情報が含まれていることが好ましい。
【００２７】
中間コード生成手段は、更に、中間コード（又は言語）に応じたバンド幅及びバンド高さ情報を前記プリンタ装置に出力し、前記印刷制御手段は、中間コード生成手段から入力されるバンド幅及びバンド高さ情報に基づいて前記所定の記憶領域を再構成し、前記展開された印刷イメージ情報がバンド単位で前記再構成した所定の記憶領域に記憶されるように制御することが好ましい。
【００２８】
本発明のプリンタ装置は、入力される印刷データの言語の種類を判別し、その判別結果に基づいて中間コード生成手段を選択し、前記選択した中間コード生成手段に前記印刷データを渡す判別手段と、中間コード展開手段により展開された印刷イメージ情報が、該プリンタ装置が有する所定の記憶領域に記憶されるように制御し、前記記憶された印刷イメージ情報に基づいて印刷を行う印刷手段を備えることを特徴とする。
【００２９】
前記印刷手段は、前記選択した中間コード生成手段から入力される中間コード識別情報に基づいて中間コード展開手段を選択することが好ましい。
【００３０】
前記印刷手段は、中間コード識別情報と中間コード展開手段との対応関係を記憶しており、かかる対応関係を参照することにより中間コード展開手段を選択することが好ましい。または、前記中間コード識別情報に、対応する中間コード展開手段をコールするためのアドレス情報が含まれていることが好ましい。
【００３１】
前記印刷手段は、中間コード（又は言語）ごとに異なるバンド幅及びバンド高さ情報に基づいて前記所定の記憶領域を再構成し、前記展開された印刷イメージ情報がバンド単位で前記再構成した所定の記憶領域に記憶されるように制御することが好ましい。
【００３２】
本発明のデータ処理装置は、プリンタ装置と組み合わせて用いるデータ処理装置であって、前記データ処理装置は、印刷データを言語解析して対応する中間コードを生成する中間コード生成手段と、前記生成した中間コードを印刷イメージ情報に展開する中間コード展開手段を備えており、前記データ処理装置が備える中間コード生成手段は、前記プリンタ装置単独では対応していない言語で記述された印刷データに対し、解析可能に構成されていることを特徴とする。
【００３３】
前記データ処理装置が備える中間コード生成手段は、中間コードを生成するとともに、かかる中間コードの識別情報を前記プリンタ装置に出力することが好ましい。
【００３４】
前記中間コード識別情報に、対応する中間コード展開手段をコールするためのアドレス情報が含まれていることが好ましい。
【００３５】
前記データ処理装置が備える中間コード生成手段は、更に、中間コード（又は言語）に応じたバンド幅及びバンド高さ情報を前記プリンタ装置に出力することが好ましい。
【００３６】
【発明の実施の形態】
（第１の実施形態）
図１を参照して本発明の第１の実施の形態を説明する。本発明の第１の実施の形態であるプリンタシステム１は、プリンタ装置２、データ処理装置３１〜３Ｎを備えて構成される。Ｎはプリンタシステム１が備えるデータ処理装置数であり、Ｎ≧１である。各データ処理装置はそれぞれ１種類のプリンタ制御言語、すなわち１種類の中間コードに対応しており、Ｎ種類のプリンタ制御言語に対応できるプリンタシステムは、Ｎ個のデータ処理装置を含むことになる。
【００３７】
ここで、プリンタ装置２とデータ処理装置３１〜３Ｎは必ずしも物理的に分離している必要はなく、例えば一つのプリンタ筐体にセッティングされていてもよい。また、データ処理装置は、プリンタ用カードやプリンタ用オプションボードとして実現される場合を含む。
【００３８】
プリンタ装置２は印刷手段を備えており、かかる印刷手段は、印刷制御手段２０、バンドバッファ２１、ビットイメージを用紙に印刷出力する印刷エンジン２２を含んで構成される。
【００３９】
データ処理装置３１〜３Ｎは、それぞれ中間コード生成手段３０１〜３０Ｎ、中間コード記憶手段３１１〜３１Ｎ、中間コード展開手段３２１〜３２Ｎを含んで構成される。
【００４０】
プリンタ装置２、データ処理装置３１〜３Ｎは上記の各手段を備えていれば足り、物理的にはプリンタ制御やデータ処理に専用化したシステム、あるいは汎用の情報処理装置のいずれによって実現してもよい。例えば、演算手段と記憶手段とを備えた一般的な構成の情報処理装置において、前記印刷制御手段、前記中間コード生成手段、前記中間コード展開手段の各動作を規定したソフトウェアを起動することにより、各手段をコンピュータ上のタスクとして生成することができる。
（第一実施例）
以下、第１の実施の形態の第一実施例を説明する。まず、データ処理装置の構成・動作についてデータ処理装置３１を例に説明する。
【００４１】
中間コード生成手段３０１は、当該中間コード生成手段３０１に対応するプリンタ制御言語で記述された印刷データを受け取り、その内容を解析して中間コードを生成し、中間コード記憶手段３１１に記憶する。ここで、中間コード展開手段３２１により参照可能であれば、中間コードをデータ処理装置３１の外部に記憶するように構成してもよく、例えばプリンタ装置２が備える記憶手段（図示せず）に記憶するようにしてもよい。
【００４２】
中間コード生成手段３０１は、１ページ分の印刷データについて中間コードの生成が終了した時点で、印刷制御手段２０に印刷要求情報を送信する。かかる印刷要求情報には、当該データ処理装置で生成される中間コードの識別情報が含まれる。
【００４３】
前記識別情報は各中間コードに固有の情報であればどのようなものであってもよく、例えば、予め中間コードごとに識別番号を定めておき、かかる識別番号を用いるようにしてもよい。また、中間コード展開手段３２１〜３２Nはそれぞれ１種類の中間コードに対応しているため、中間コード展開手段３２１〜３２Nの識別子（例えば呼び出しアドレス）を中間コード識別情報として用いることもできる。
【００４４】
中間コード記憶手段３１１は、バンド番号（バンド位置）と中間コードを対応づけて記憶しており、例えば図２に示すように、バンド番号と中間コードの記憶場所（ポインタ）を対応づけたテーブル４００、及び実際に中間コードを記憶する中間コードバッファ４０１を備えて構成される。
【００４５】
中間コード展開手段３２１は、印刷制御手段２０よりアドレス情報を受け取り、前記中間コード記憶手段３１１を参照して、所定の順番（例えばバンド番号順）で１バンド分の中間コードを読み出す。そして、かかる１バンド分の中間コードをビットイメージに展開し、前記アドレス情報に基づいて格納する。
【００４６】
かかるデータ処理装置においては、各中間コード展開手段によって展開されたビットイメージは、データ処理装置の外部にある印刷制御手段２０の制御により印刷される構成となっている。すなわち、データ処理装置の内部に印刷エンジンに依存する部分を含まないため、複数の印刷エンジンに対応可能な汎用性の高い構成となっている。
【００４７】
次にプリンタ装置２の構成・動作について説明する。
【００４８】
バンドバッファ２１は、複数のバンド単位バッファ２１１〜２１Ｍから構成されており、各バンド単位バッファはバンド単位のビットイメージを記憶できるように構成されている。Ｍはバンド単位バッファ数であり、例えばＭ＝３となるような構成が考えられる。
【００４９】
印刷エンジン２２は、所定の複数バンド分のビットイメージの展開処理が終わった段階で印刷制御手段２０により起動され、以後一定速度でバンドバッファ２１内の前記バンド単位バッファ２１１〜２１Mからビットイメージを順番に読み出し、印刷を行う。印刷エンジン２２は、印刷が終了した前記バンド単位バッファについて、印刷制御手段２０に印刷が終了したことを通知する。
【００５０】
ここで、所定の複数バンド分のビットイメージの展開処理が終わった段階で起動するように構成した理由は、印刷エンジン２２の印刷速度に対してバンドバッファへのビットイメージの展開処理が間に合わない状態（オーバーランエラー）を防止するためである。従って、ビットイメージの展開処理の処理速度が十分に速い場合は、最初の１バンドのイメージ展開が完了したところで印刷エンジン２２を起動するようにしてもよい。
印刷制御手段２０は、印刷エンジン２２を起動する機能、中間コード展開手段３２１〜３２Nを選択する機能、バンドバッファ２１へのビットイメージの展開を制御する機能を有する。
【００５１】
印刷制御手段２０は、中間コード生成手段３０１〜３０Nのいずれかより印刷要求情報を受け取り、かかる印刷要求情報より中間コードの識別情報を抽出し、前記識別情報に基づいて中間コード展開手段３２１〜３２Nのうち一つを選択する。図１は、中間コード生成手段３０１より印刷要求情報を受け取り、中間コード展開手段３２１を選択している状態を示している。
【００５２】
ここで、識別情報としては、例えば、予め中間コードごとに定められた識別番号を用いることができる。この場合、図３に示すようなテーブルを記憶しておくことにより、かかるテーブルを参照して中間コード展開手段を選択することができる。
【００５３】
また、識別情報として、中間コード展開手段３２１〜３２Nの各呼び出しアドレスをそのまま用いることもできる。この場合、印刷制御手段２０は抽出した前記呼び出しアドレスを直接コールすることにより、中間コード展開手段３２１〜３２Nのうち一つを選択して呼び出すことができる。かかる方法では予めテーブルを記憶しておく必要がないため、新しい中間コードに対しても構成を変えることなく対応できる。
【００５４】
印刷制御手段２０は、前記選択した中間コード展開手段に対して、使用可能なバンド単位バッファの先頭アドレスをアドレス情報として渡して呼び出す。この結果、前記選択した中間コード展開手段によって、前記先頭アドレスに対応するバンド単位バッファに、１バンド分のビットイメージが展開されることになる。
【００５５】
印刷制御手段２０は、所定数のバンド単位バッファへのビットイメージの展開が終わった段階で印刷エンジン２２を起動する。この結果、印刷エンジン２２による印刷が開始される。
【００５６】
印刷制御手段２０は、印刷が終了したビットイメージが格納されるバンド単位バッファについて、印刷エンジン２２より通知を受け取り、かかるバンド単位バッファを解放して使用可能とする。
【００５７】
図４は、印刷制御手段２０の動作の一例を説明するためのフローチャートである。かかる例では、識別情報として中間コード展開手段３２１〜３２Nの各呼び出しアドレスを用いている。
【００５８】
ステップS６００では、バンド単位バッファを全て解放して使用可能とし、初期化を行う。ステップS６０１では、使用可能なバンド単位バッファがあるかどうかを判断し、ある場合はステップS６０２に進み、ない場合はステップS６０３に進む。ステップS６０２では、使用可能なバンド単位バッファの先頭アドレス情報を引数として、識別情報に基づいて中間コード展開手段３２１〜３２Nのうちの一つを呼び出す。ステップS６０３では、ビットイメージへの展開が終了したバンド単位バッファが所定数分あるかどうかを判断し、ある場合はステップS６０４に進み、ない場合はステップS６０５に進む。ステップS６０４では、印刷エンジン２２が起動されていなければこれを起動する。ステップS６０５では、印刷が終了したバンド単位バッファがあるかどうかを判断し、ある場合はステップS６０６に進み、ない場合はステップS６０７に進む。ステップS６０６では、印刷が終了したバンド単位バッファを解放して使用可能とする。ステップS６０７では、１ページ分について全て展開したかどうかを判断し、展開していない場合はステップS６０１に進み、そうでない場合は終了する。
【００５９】
かかるプリンタ装置２においては、識別情報に基づいて中間コード展開手段を選択して呼び出す構成となっているため、複数の中間コードに対応可能な構成となっている。また、プリンタ装置内部に中間コード生成及び展開手段を備えることを必ずしも必要としないため、他の言語体系を把握することなく、多言語・新言語に対応することができる。
（第二実施例）
次に、第１の実施の形態の第二実施例を説明する。本実施例は、プリンタ装置２、データ処理装置３１〜３Nを含んで構成される点では第一実施例と同様であるが、中間コード生成手段３０１〜３０Nが識別情報だけでなく、バンド幅、バンド高さ情報も出力する点、及び印刷制御手段２０がバンドバッファ２１を動的に再構成する点で第一実施例と異なる。
【００６０】
以下、データ処理装置の構成・動作についてデータ処理装置３１を例に説明する。
【００６１】
中間コード生成手段３０１は、当該中間コード生成手段３０１に対応するプリンタ制御言語で記述された印刷データを受け取り、その内容を解析して中間コードを生成し、中間コード記憶手段３１１に記憶する。
【００６２】
そして、１ページ分の印刷データについて中間コードの生成が終了した時点で、印刷制御手段２０に印刷要求情報を送信する。かかる印刷要求情報には、当該データ処理装置で生成される中間コードの識別情報及びバンド幅、バンド高さ情報が含まれる。
【００６３】
識別情報は、第一実施例と同様に定めることができる。
【００６４】
バンド幅、バンド高さ情報は、バンド単位バッファの幅及び高さを指定する情報であり、バンド単位バッファが各中間コードに適した大きさ（幅、高さ）となるように中間コード（又は言語）ごとに定められ、中間コード生成手段３００〜３０Nにそれぞれ記憶されている。
【００６５】
中間コード記憶手段３１１、中間コード展開手段３２１は、第一実施例の構成・動作と同様であるので説明を省略する。
【００６６】
次にプリンタ装置２の構成・動作について説明する。
【００６７】
印刷制御手段２０は、バンドバッファ２１を再構成する機能、印刷エンジン２２を起動する機能、中間コード展開手段３２１〜３２Nを選択する機能、バンドバッファ２１へのビットイメージの展開を制御する機能を有する。
【００６８】
印刷エンジン２２を起動する機能、中間コード展開手段３２１〜３２Nを選択する機能、バンドバッファ２１へのビットイメージの展開を制御する機能については第一実施例と同様であるため説明を省略し、以下、バンドバッファ２１を再構成する機能について説明する。
【００６９】
印刷制御手段２０は、中間コード生成手段３０１〜３０Nのいずれかより印刷要求情報を受け取り、かかる印刷要求情報よりバンド幅、バンド高さ情報を抽出する。そして、かかる情報に基づいてバンドバッファ２１を再構成する。ここで、再構成とはバンド単位バッファの先頭アドレスをバンドの大きさにあわせて変更することを指す。具体的には、バンド幅、バンド高さをそれぞれａ、ｂとすると、一つ目のバンド単位バッファの先頭アドレスをバンドバッファ２１の先頭アドレスとし、二つ目以降のバンド単位バッファの先頭アドレスをバンドバッファ２１の先頭アドレスからａ×ｂ間隔で設定していくことにより再構成を行うことができる。
【００７０】
バンドバッファ２１は、印刷制御手段２０により再構成された結果、複数のバンド単位バッファ５１１〜５１Ｍ’から構成されることになる。Ｍ’は（バンドバッファ２１の記憶容量）ｍｏｄ（ａ×ｂ）で与えられる。
【００７１】
一般に、バンド単位バッファの大きさ（幅、高さ）は、中間コードの展開速度との関係で、オーバランエラーの発生に密接に関わっている。本実施例の構成によれば、中間コード（又は言語）ごと、すなわち中間コード展開手段ごとに、バンド単位バッファの幅及び高さを適切に設定することができるため、オーバランエラーの発生を防止することができる。
（その他の変形例）
第一実施例、第二実施例の変形例として、プリンタ装置２が印刷手段に加えて判別手段２３を備える構成も考えられる（図７参照）。
【００７２】
判別手段２３は、外部からプリンタ装置２に入力される印刷データの言語の種類を判別し、その判別結果に基づいて言語の種類に対応する中間コード生成手段を選択し、前記選択した中間コード生成手段に前記印刷データを渡す。
【００７３】
更に、図７に示すように、プリンタ装置２が中間コード生成手段２４１〜２４Ｐ、中間コード記憶手段２５１〜２５Ｐ、中間コード展開手段２６１〜２６Ｐを備える構成も考えられる。図に示す例ではＰ＝２としている。
【００７４】
各中間コード生成手段、中間コード展開手段はそれぞれ１種類のプリンタ制御言語、すなわち１種類の中間コードに対応しており、Ｐはプリンタ装置が単独で対応可能な言語数に相当する。各中間コード生成手段、中間コード記憶手段、中間コード展開手段は、原則としてデータ処理装置が備える各手段と同様の構成・動作となる。
【００７５】
この場合、判別手段２３によって選択される中間コード生成手段は、プリンタ装置２が備える中間コード生成手段２４１〜２４Ｐ、各データ処理装置が備える中間コード生成手段３０１〜３０Ｎのいずれかとなる。
【００７６】
例えば、特定のプリンタ制御言語に対応する中間コードについては、プリンタ装置２の内部に備えた中間コード生成手段、中間コード記憶手段、中間コード展開手段により対応し、それ以外のプリンタ制御言語に対応する中間コードについては、データ処理装置により対応する。
【００７７】
本変形例では、前記特定のプリンタ制御言語で記述された印刷データに対しては、データ処理装置を必要とせずに印刷することができる。
【００７８】
また、プリンタ装置単独では対応していない言語で記述された印刷データが判別手段に入力された場合であっても、かかる言語に対応する中間コード生成手段及び展開手段を備えたデータ処理装置をプリンタ装置に組み合わせることにより、かかる言語で記述された印刷データについても印刷することが可能となる。
（第２の実施形態）
次に、本発明の第２の実施の形態について説明する。第２の実施の形態は、印刷プログラムを記録した記録媒体を備える。この記録媒体はＣＤ−ＲＯＭ、磁気ディスク、半導体メモリその他の記録媒体であってよく、ネットワークを介して流通する場合も含む。また、プリンタ用カードやプリンタ用オプションボードとして流通する場合も含む。
【００７９】
第一の印刷プログラムは記録媒体から情報処理装置に読み込まれ、情報処理装置の動作を制御する。情報処理装置は第一の印刷プログラムの制御により、印刷制御タスクを一つ生成する。かかる印刷制御タスクは、中間コード識別情報に基づいて複数の中間コード展開タスクのうちの一つを選択して呼び出し、前記呼び出した中間コード展開タスクにより展開された印刷イメージ情報が所定の記憶領域に記憶されるように制御する。
【００８０】
前記印刷制御タスクは、中間コード生成タスクが出力するバンド幅及びバンド高さ情報に基づいて前記所定の記憶領域を再構成し、前記展開された印刷イメージ情報がバンド単位で前記バンドバッファに記憶されるように制御するように構成してもよい。
【００８１】
すなわち、情報処理装置は第一の印刷プログラムの制御により、図１又は図５における、印刷制御手段２０による処理と同一の処理を実行する。
【００８２】
第二の印刷プログラムは記録媒体からデータ処理装置に読み込まれ、データ処理装置の動作を制御する。データ処理装置は第二の印刷プログラムの制御により、印刷データに基づいて中間コードの生成及び識別情報の出力を行う中間コード生成タスクと、中間コードをビットイメージに展開する中間コード展開タスクを生成する。
【００８３】
前記中間コード生成タスクは、更にバンド幅及びバンド高さ情報を出力するように構成してもよい。
【００８４】
すなわち、データ処理装置は第二の印刷プログラムの制御により、図１又は図５における、中間コード生成手段、中間コード展開手段による処理と同一の処理を実行する。
【００８５】
なお、本発明は上記各実施の形態に限定されることなく、種々に変形して適用することが可能である。
【００８６】
例えば、本発明のプリンタ装置を、中間コード識別情報に基づいて中間コード展開手段を選択し、前記選択した中間コード展開手段により展開された印刷イメージ情報が所定の記憶領域に記憶されるように制御する印刷制御手段と、前記印刷イメージ情報に基づいて印刷を行う印刷エンジンとを備えるように構成することができる。
【００８７】
前記印刷制御手段は、中間コード識別情報と中間コード展開手段との対応関係を記憶しており、かかる対応関係を参照することにより中間コード展開手段を選択するように構成してもよい。
【００８８】
前記中間コード識別情報に、対応する中間コード展開手段をコールするためのアドレス情報が含まれるように構成してもよい。
【００８９】
前記印刷制御手段は、バンド幅及びバンド高さ情報に基づいて前記所定の記憶領域を再構成し、前記展開された印刷イメージ情報がバンド単位で前記再構成した所定の記憶領域に記憶されるように制御するように構成してもよい。
【００９０】
例えば、本発明のデータ処理装置を、印刷データに基づいて中間コードを生成し、かかる中間コードの識別情報を出力する中間コード生成手段と、中間コードを印刷イメージ情報に展開する中間コード展開手段とを備えたデータ処理装置であって、前記展開された印刷イメージ情報に基づいて印刷を行うための制御が、当該データ処理装置の外部にある印刷制御手段により行われるように構成してもよい。
【００９１】
前記中間コード生成手段が、更にバンド幅及びバンド高さ情報を出力するように構成してもよい。
【００９２】
本発明のプリンタシステムは、本発明のプリンタ装置と、本発明のデータ処理装置を備えるように構成することができる。
【００９３】
例えば、本発明の印刷方法は、印刷制御タスクが、複数の中間コード展開タスクのうちの一つを中間コード識別情報に基づいて呼び出し、かかる中間コード展開タスクにより展開される印刷イメージ情報が所定の記憶領域に格納されるように制御することを特徴とする。
【００９４】
例えば、本発明の印刷方法は、印刷データに基づいて中間コードを生成し、かかる中間コードの識別情報を出力する中間コード生成タスク、中間コードを印刷イメージ情報に展開する中間コード展開タスク、及び印刷制御タスクに関し、中間コード生成タスク及び中間コード展開タスクは中間コードの種類ごとに生成され、印刷制御タスクは複数の中間コードに共通して一つ生成されるプリンタ制御方法であって、印刷データを記述しているプリンタ制御言語に対応する中間コード生成タスクを起動するステップと、印刷制御タスクが、前記起動された中間コード生成タスクからの印刷要求に応じて、前記起動された中間コード生成タスクが出力する中間コード識別情報に対応した中間コード展開タスクを呼び出すステップと、印刷制御タスクが、前記呼び出した中間コード展開タスクにより展開された印刷イメージ情報が所定の記憶領域に格納されるように制御するステップを含むことを特徴とする。
【００９５】
前記中間コード生成タスクが、更にバンド幅及びバンド高さ情報を出力し、前記印刷制御タスクは、前記バンド幅及びバンド高さ情報に基づいて前記所定の記憶領域を再構成し、前記展開された印刷イメージ情報がバンド単位で前記再構成した所定の記憶領域に格納されるように制御するように構成してもよい。
【００９６】
前記印刷制御タスクは、記憶手段に記憶された中間コード識別情報と中間コード展開タスクとの対応関係を参照することにより、複数の中間コード展開タスクのうちの一つを呼び出すように構成してもよい。
【００９７】
前記中間コード識別情報に、対応する中間コード展開タスクをコールするためのアドレス情報が含まれるように構成してもよい。
【００９８】
例えば、本発明の記録媒体は、印刷データに基づいて中間コードを生成して記憶し、かかる中間コードの識別情報を出力する中間コード生成タスクと、中間コードを印刷イメージ情報に展開する中間コード展開タスクとを実行させるためのプログラムを格納したコンピュータ読み取り可能な記録媒体であって、前記展開された印刷イメージ情報に基づいて印刷を行うための印刷制御タスクを実行させるためのプログラムは、当該記録媒体とは異なる記憶手段に格納されていることを特徴とする。
【００９９】
前記中間コード生成タスクが、更にバンド幅及びバンド高さ情報を出力するように構成してもよい。
【０１００】
【発明の効果】
本発明は、識別情報に基づいて中間コード展開手段を選択して呼び出す構成となっているため、複数の中間コードに対応することができる。また、プリンタ装置内部に中間コード生成及び展開手段を備えることを必ずしも必要としないため、言語体系を把握せずとも、多言語・新言語に対応することができる。
【０１０１】
また、本発明は、中間コード展開手段によって展開されたビットイメージが、外部にある印刷制御手段の制御により印刷される構成となっており、データ処理装置の内部に印刷エンジンに依存する部分を含まない構成となっているため、複数の印刷エンジンに対応することができる汎用性の高いデータ処理装置を実現することができる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態の第一実施例の構成を示すブロック図である。
【図２】第１の実施形態における中間コード記憶手段を説明するための模式図である。
【図３】識別番号と中間コード展開手段との対応関係を示すテーブルである。
【図４】印刷制御手段の動作を表わすフローチャートである。
【図５】本発明の第１の実施形態の第二実施例の構成を示すブロック図である。
【図６】従来技術の構成を示すブロック図である。
【図７】本発明の第１の実施形態の変形例の構成を示すブロック図である。
【符号の説明】
１  プリンタシステム
２  プリンタ装置
２０  印刷制御手段
２１  バンドバッファ
２２  印刷エンジン
２３  判別手段
３１〜３Ｎ  データ処理装置
２１１〜２１Ｍ、５１１〜５１Ｍ’  バンド単位バッファ
３０１〜３０Ｎ、２４１〜２４Ｐ  中間コード生成手段
３１１〜３１Ｎ、２５１〜２５Ｐ  中間コード記憶手段
３２１〜３２Ｎ、２６１〜２６Ｐ  中間コード展開手段
４００  バンド番号と中間コードの記憶場所を対応づけたテーブル
４０１  中間コードバッファ
【図１】
0003763343.tif 000002
【図２】
0003763343.tif 000003
【図３】
0003763343.tif 000004
【図４】
0003763343.tif 000005
【図５】
0003763343.tif 000006
【図６】
0003763343.tif 000007
【図７】
0003763343.tif 000008