(57)【特許請求の範囲】
【請求項１】
出力用フォント情報を記憶する出力装置と、
第１の文字コードセットの第１の文字コードを含むデータを出力するアプリケーションプログラム、前記アプリケーションプログラムが出力した前記データに基づいて前記出力装置を制御するコマンドと前記文字コードを含む出力データとを出力する制御手段、前記制御手段で出力された前記出力データに含まれる前記第１の文字コードを第２の文字コードセットの第２の文字コードに変換して出力する文字コード変換手段、及び前記文字コード変換手段で変換された前記第２の文字コードを前記出力用フォント情報から抽出する情報を生成して前記出力装置に出力する文字データ生成手段を有する出力制御装置と、を備え、
前記出力制御装置は、オペレーティングシステムを備え、
前記文字データ生成手段は、前記オペレーティングシステムで設定された言語に基づき、前記第１の文字コードを、前記言語に対応した文字コードセットの文字コードに変換する変換部を有し、
前記文字コード変換手段は、前記第２の文字コードを前記変換部に渡す場合は、前記変換部で変換されない形式のデータにして渡し、前記文字データ生成手段で前記第２の文字コードに復元する処理をすること、
を特徴とする出力制御システム。
【請求項２】
前記出力装置はプリンターであり、
前記プリンターに記憶される出力用フォント情報は、コードページの中の文字コードが指定されて記録ヘッドで印刷するフォントデータで構成され、
前記文字データ生成手段は、前記第２の文字コードに従って、前記コードページを指定するコマンドと前記コードページの文字を指定する情報を生成し、前記プリンターへ出力する請求項１記載の出力制御システム。
【請求項３】
第１の文字コードセットの第１の文字コードを含むデータをアプリケーションプログラムで出力した時、前記データに基づいて出力装置を制御するコマンドと前記文字コードを含む出力データとを出力し、
出力された前記出力データに含まれる前記第１の文字コードを第２の文字コードセットの第２の文字コードに変換して出力し、
前記第２の文字コードを前記出力装置に記憶される出力用フォント情報から抽出する情報を生成する処理を実行し、
前記情報を前記出力装置に出力し、
前記処理で、オペレーティングシステムで設定された言語に基づき前記第１の文字コードを前記言語に対応した文字コードセットの文字コードに変換する変換部に対し、前記第２の文字コードを渡す場合は、前記変換部で変換されない形式のデータにして渡し、前記第２の文字コードに復元すること、
を特徴とする制御方法。
【請求項４】
前記出力装置はプリンターであり、
前記プリンターに記憶される出力用フォント情報は、コードページの中の文字コードが指定されて記録ヘッドで印刷するフォントデータで構成され、
前記情報は、前記第２の文字コードに従って、前記コードページを指定するコマンドと前記コードページの文字を指定する情報である請求項３記載の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、出力装置を制御する出力制御システム、及び、制御方法に関する。
【背景技術】
【０００２】
一般に、ホストコンピューター等の出力制御装置に接続されたプリンター等の出力装置は、出力時に記録ヘッドで記録するために使用する複数のフォントパターン情報（フォントデータ）をメモリーなどに内蔵しており、ホストコンピューターから入力された所定の文字コードセットにおいて文字を特定するデータ（文字コード）に従って、メモリーの中から該当するフォントパターン情報を検索して取得し、ヘッドを駆動して文字を記録媒体へ出力する。近年、ホストコンピューターのオペレーティングシステムにおいて、Ｕｎｉｃｏｄｅのように多言語に渡る複数の文字コードを単一の文字コード体系に包括した汎用文字コードセットが使用されるようになり、ホストコンピューターで実行されるアプリケーションプログラムにおいても、言語の制約を受けずに様々な文字が使用できるようになっている。これに伴い、従来、ホストコンピューターにおいて、汎用文字コードセットにおける文字コードと出力装置が内蔵するフォントパターン情報との対応付けを、マップファイルを用いて文字毎個々に行う手法が提案された（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−８６６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、出力装置の中には、一部の言語の文字についてのみフォントパターン情報を内蔵したものが数多くある。これらの出力装置を制御するためには、ホストコンピューターが実行するデバイスドライバー等のプログラムにより、アプリケーションプログラムが出力したＵｎｉｃｏｄｅのような所定の文字コードセットにおける文字コードを、出力装置が対応可能な文字コードセットの文字コードに変換する必要がある。通常、この変換処理はデバイスドライバーが行うことが多かったが、この場合、デバイスドライバーが対応する言語に基づいて行われるため、デバイスドライバーが対応する言語と出力装置が対応する言語とを揃える必要があり、デバイスドライバーおよび出力装置の対応言語に関する管理が煩雑であり、異なる言語に対応するデバイスドライバーおよび出力装置の組合せが生じると正常に出力できない可能性があった。
本発明は、上述した事情に鑑みてなされたものであり、アプリケーションプログラムが出力したデータを出力装置により正確に出力できるようにし、かつ、出力装置およびこれを制御する手段の管理負担を軽減することを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するために、本発明の出力制御システムは、出力用フォント情報を記憶する出力装置と、第１の文字コードセットの第１の文字コードを含むデータを出力するアプリケーションプログラム、前記アプリケーションプログラムが出力した前記データに基づいて前記出力装置を制御するコマンドと前記文字コードを含む出力データとを出力する制御手段、前記制御手段で出力された前記出力データに含まれる前記第１の文字コードを第２の文字コードセットの第２の文字コードに変換して出力する文字コード変換手段、及び前記文字コード変換手段で変換された前記第２の文字コードを前記出力用フォント情報から抽出する情報を生成して前記出力装置に出力する文字データ生成手段を有する出力制御装置と、を備えることを特徴とする。
また、本発明の出力制御システムにおいて、前記出力装置はプリンターであり、前記プリンターに記憶される出力用フォント情報は、コードページの中の文字コードが指定されて記録ヘッドで印刷するフォントデータで構成され、前記文字データ生成手段は、前記第２の文字コードに従って、前記コードページを指定するコマンドと前記コードページの文字を指定する情報を生成し、前記プリンターへ出力する。
また、本発明の出力制御システムにおいて、前記出力制御装置は、オペレーティングシステムを備え、前記文字データ生成手段は、前記オペレーティングシステムで設定された言語に基づき、前記第１の文字コードを、前記言語に対応した文字コードセットの文字コードに変換する変換部を有する。
また、本発明の出力制御システムにおいて、前記文字コード変換手段は、前記第２の文字コードを前記変換部に渡す場合は、前記変換部で変換されない形式のデータにして渡し、前記文字データ生成手段で前記第２の文字コードに復元する処理をする。
また、上記目的を達成するために、本発明の制御方法は、第１の文字コードセットの第１の文字コードを含むデータをアプリケーションプログラムで出力した時、前記データに基づいて出力装置を制御するコマンドと前記文字コードを含む出力データとを出力し、出力された前記出力データに含まれる前記第１の文字コードを第２の文字コードセットの第２の文字コードに変換して出力し、前記第２の文字コードを前記出力装置に記憶される出力用フォント情報から抽出する情報を生成し、前記情報を前記出力装置に出力することを特徴とする。
また、本発明の制御方法において、前記出力装置はプリンターであり、前記プリンターに記憶される出力用フォント情報は、コードページの中の文字コードが指定されて記録ヘッドで印刷するフォントデータで構成され、前記情報は、前記第２の文字コードに従って、前記コードページを指定するコマンドと前記コードページの文字を指定する情報である。
上記目的を達成するために、本発明は、アプリケーションプログラムが出力したデータに基づいて出力装置を制御する出力制御装置であって、前記アプリケーションプログラムが出力したデータをもとに、複数種類の前記出力装置に共通する出力用データを出力する汎用制御手段と、前記出力用データに含まれる所定の文字コードセットの文字コードに基づき、前記出力装置が内蔵する文字セットの文字データを生成する文字データ生成手段と、前記出力装置が内蔵する文字セットが前記所定の文字コードセットと異なる他の文字コードセットに対応している場合、前記汎用制御手段と前記文字データ生成手段との間に介在して、前記出力用データに含まれる前記所定の文字コードセットの文字コードを、前記他の文字コードセットの文字コードに変換し、前記文字データ生成手段に出力する文字コード変換手段と、を備えたことを特徴とする。
本発明によれば、アプリケーションプログラムが出力したデータを複数種類の出力装置に共通する出力用データにした上で、この出力用データに含まれる所定の文字コードセットの文字コードに基づき、出力装置が内蔵する文字セットの文字データを生成する場合に、出力装置が内蔵する文字セットが所定の文字コードセットと異なる他の文字コードセットに対応している際、この処理の間に介在する別の処理によって、出力用データに含まれる所定の文字コードセットの文字コードを、他の文字コードセットの文字コードに変換することが可能である。このため、出力装置を制御する手段の一部が、出力装置が内蔵する文字セットとは異なる言語あるいは異なる文字コードセットに対応している場合に、当該装置に手を加えることなく、出力装置に対して正しい文字データを出力できる。これにより、出力装置を制御する手段や出力装置の対応文字コードセットに関する管理の手間を省き、かつ、アプリケーションプログラムが出力したデータを出力装置により正確に出力できる。さらに、出力装置を制御する手段の汎用性を損なうことがない。また、文字コードの変換のみを行う手段を設ける場合、出力装置を制御する手段や出力装置そのものの対応文字コードセットを増やす場合に比べて、必要なデータ量が少なくて済むので、容易に実現可能である。
【０００６】
また、本発明は、上記出力制御装置において、前記出力装置はプリンターであり、前記プリンターが内蔵する文字セットは、複数のコードページの中の文字コードで指定されるもので、記録ヘッドで印刷するためのフォントデータで構成され、前記文字データ生成手段は、前記所定の文字コードセットの文字コード、または前記他の文字コードセットの文字コードに従って、該当するコードページを指定するコマンドと該当する文字コードを含む文字コードを生成し、前記プリンターへ出力することを特徴とする。
本発明によれば、プリンターが内蔵する複数のコードページの中の文字コードからなる文字セットに対応した文字コードセットと文字コードが生成して送られ、該当するフォントデータにより記録ヘッドで記録することができる。
【０００７】
また、本発明は、上記出力制御装置において、オペレーティングシステムを備え、前記文字データ生成手段は、前記オペレーティングシステムにおいて設定された言語に基づき、前記出力用データに含まれる前記所定の文字コードセットの文字コードを、前記言語に対応した文字コードセットの文字コードに変換する変換部を有することを特徴とする。
オペレーティングシステムにおいて設定された言語と出力装置の文字セットに関する言語が同じ場合、アプリケーションに基づく出力データを変換部で容易に当該言語に対応する文字コードセットに変換すれば簡便に済む。
また、本発明は、上記出力制御装置において、前記文字コード変換手段は、前記他の文字コードセットの文字コードを前記変換部に渡す場合は、前記変換部で変換されない形式のデータにして渡し、前記文字データ生成手段で前記他の文字コードセットの文字コードに復元する処理をすることを特徴とする。
上述の変換部を備えた場合であって、出力装置が内蔵する文字セットが所定の文字コードセットと異なる他の文字コードセットに対応している際、変換部により誤変換されないようにすることができる。
【０００８】
また、本発明は、上記出力制御装置において、前記汎用制御手段は、前記アプリケーションプログラムの呼び出しに応じて、前記アプリケーションプログラムから出力されるデータを処理し、複数の機器に共通して使用可能な出力コマンドと汎用文字コードセットにおける文字コードとを含むデータを生成する上位ドライバーであり、前記文字データ生成手段は、前記上位ドライバーが生成したデータに含まれる前記所定の文字コードセットの文字コードに基づき、前記出力装置が内蔵する文字セットの文字データを生成する下位ドライバーであることを特徴とする。
本発明によれば、アプリケーションプログラムにより呼び出される上位ドライバーと、上位ドライバーが処理したデータに基づいて出力装置を制御する下位ドライバーとの間に介在する手段によって、上位ドライバーの汎用性を損なうことなく、また、出力装置ごとに対応する下位ドライバーに手を加えることなく、出力装置に対して正しい文字データを出力できる。
【０００９】
また、上記課題を解決するため、本発明は、アプリケーションプログラムが出力したデータに基づいて出力装置を制御する出力装置の制御方法であって、前記アプリケーションプログラムが出力したデータをもとに、複数種類の前記出力装置に共通する出力用データを出力する汎用制御工程と、前記出力用データに含まれる所定の文字コードセットの文字コードに基づき、前記出力装置が内蔵する文字セットの文字データを生成する文字データ生成工程と、前記出力装置が内蔵する文字セットが前記所定の文字コードセットと異なる他の文字コードセットに対応している場合、前記汎用制御工程と前記文字データ生成工程との間に介在して、前記出力用データに含まれる前記所定の文字コードセットの文字コードを、前記他の文字コードセットの文字コードに変換する文字コード変換工程と、を備えたことを特徴とする。
本発明の出力装置の制御方法によれば、アプリケーションプログラムが出力したデータを出力用データにした上で、この出力用データに含まれる所定の文字コードセットの文字コードに基づき、出力装置が内蔵する文字セットの文字データを生成する場合に、出力装置が内蔵する文字セットが所定の文字コードセットと異なる他の文字コードセットに対応している際、出力用データに含まれる所定の文字コードセットの文字コードを、他の文字コードセットの文字コードに変換することが可能である。このため、出力装置を制御する手段の一部が、出力装置が内蔵する文字セットとは異なる言語あるいは異なる文字コードセットに対応している場合に、当該装置に手を加えることなく、出力装置に対して正しい文字データを出力できる。これにより、出力装置を制御する手段や出力装置の対応文字コードセットに関する管理の手間を省き、かつ、アプリケーションプログラムが出力したデータを出力装置により正確に出力できる。さらに、出力装置を制御する手段の汎用性を損なうことがない。また、文字コードの変換のみを行う手段を設ける場合、出力装置を制御する手段や出力装置そのものの対応文字コードセットを増やす場合に比べて、必要なデータ量が少なくて済むので、容易に実現可能である。
【００１０】
また、上記課題を解決するため、本発明は、アプリケーションプログラムが出力したデータに基づいて出力装置を制御する制御部が実行するプログラムであって、前記制御部を、前記アプリケーションプログラムが出力したデータをもとに、複数種類の前記出力装置に共通する出力用データを出力する汎用制御手段と、前記出力用データに含まれる所定の文字コードセットの文字コードに基づき、前記出力装置が内蔵する文字セットの文字データを生成する文字データ生成手段と、前記出力装置が内蔵する文字セットが前記所定の文字コードセットと異なる他の文字コードセットに対応している場合、前記汎用制御手段と前記文字データ生成手段との間に介在して、前記出力用データに含まれる前記所定の文字コードセットの文字コードを、前記他の文字コードセットの文字コードに変換し、前記文字データ生成手段に出力する文字コード変換手段と、して機能させることを特徴とする。
本発明のプログラムを実行することにより、アプリケーションプログラムが出力したデータを出力用データにした上で、この出力用データに含まれる所定の文字コードセットの文字コードに基づき、出力装置が内蔵する文字セットの文字データを生成する場合に、出力装置が内蔵する文字セットが所定の文字コードセットと異なる他の文字コードセットに対応している際、出力用データに含まれる所定の文字コードセットの文字コードを、他の文字コードセットの文字コードに変換することが可能である。このため、出力装置を制御する手段の一部が、出力装置が内蔵する文字セットとは異なる言語あるいは異なる文字コードセットに対応している場合に、当該装置に手を加えることなく、出力装置に対して正しい文字データを出力できる。これにより、出力装置を制御する手段や出力装置の対応文字コードセットに関する管理の手間を省き、かつ、アプリケーションプログラムが出力したデータを出力装置により正確に出力できる。さらに、出力装置を制御する手段の汎用性を損なうことがない。また、文字コードの変換のみを行う手段を設ける場合、出力装置を制御する手段や出力装置そのものの対応文字コードセットを増やす場合に比べて、必要なデータ量が少なくて済むので、容易に実現可能である。
また、本発明は、上記プログラムを記憶した記憶媒体として実現してもよい。
【発明の効果】
【００１１】
本発明によれば、出力装置を制御する手段や出力装置の対応文字コードセットに関する管理の手間を省き、かつ、アプリケーションプログラムが出力したデータを出力装置により正確に出力できる。
【図面の簡単な説明】
【００１２】
【図１】実施形態に係るＰＯＳシステムの機能的構成を示すブロック図である。
【図２】ホストコンピューターの詳細構成を示すブロック図である。
【図３】ホストコンピューターの動作を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下、図面を参照して本発明の実施形態について説明する。
図１は、本発明を適用した実施形態に係るＰＯＳシステム１の機能的構成を示すブロック図である。
図１に示すＰＯＳシステム１は、ＰＯＳサーバー２０に通信回線を介して接続されたホストコンピューター３０（出力制御装置）を備え、このホストコンピューター３０にプリンター１０（出力装置）を接続して構成される。
ホストコンピューター３０は、プリンター１０とともにスーパーやコンビニエンス・ストア等の店舗にて利用され、オペレーターによって入力された商品販売に関する入力情報に基づいてレシートを発行する。プリンター１０は、ホストコンピューター３０が生成した印刷データを受信してレシートＲ上に印刷するものである。
【００１４】
ホストコンピューター３０は、プリンター１０とインターフェースを介して有線又は無線で接続される。本実施形態ではコネクターを介して有線接続された例を示す。ホストコンピューター３０は、商品情報を入力する入力デバイスとしてキーボード３４およびバーコードリーダー３５を備え、キーボード３４による入力またはバーコードリーダー３５によるバーコードの読み取りによって商品に関する入力情報を取得する。また、ホストコンピューター３０はカード型記録媒体に記録された磁気情報を読み取るカードリーダー３６を有し、このカードリーダー３６によって顧客のクレジットカードや会員カードを読み取り、クレジット清算に関する情報や会員番号等の会員に関する情報を取得する。さらに、ホストコンピューター３０は、後述するＰＯＳサーバー２０から送信された商品データを元に生成した商品情報を表示するディスプレイ３３を有し、このディスプレイ３３における表示によって、顧客に対して購入商品の金額等を掲示する。
【００１５】
ＰＯＳサーバー２０は、ＣＰＵ、ＲＯＭおよびＲＡＭ等からなる制御部を有する。ＰＯＳサーバー２０は、ＲＯＭ内に記憶された制御プログラムをＣＰＵが実行することにより、ＲＡＭ内に設けられるバッファーに記憶された情報の処理を行い、ホストコンピューター３０が送信する入力情報に基づいて、商品マスタから商品コード、商品名、金額に関する情報を抽出し、レシートＲへの印刷およびホストコンピューター３０のディスプレイ３３の表示に用いる商品データを生成する。
【００１６】
ホストコンピューター３０は、ＣＰＵ、ＲＯＭおよびＲＡＭ等からなる制御部４０を有し、制御部４０が、ウィンドウズ（登録商標）等のオペレーティングシステム（ＯＳ）４１上で稼動するプリンタードライバーOLE for Retail POS（以下ＯＰＯＳという）によりプリンター１０を制御する。ＯＰＯＳは、オペレーティングシステム４１上で稼動するＰＯＳアプリケーション４２に対して、プリンター１０やバーコードリーダー３５等の周辺デバイスとの機種依存性のないインターフェースを提供するものであり、デバイスのカテゴリー毎に対応したコントロールオブジェクト（ＣＯ）４４とデバイスの機種毎に対応したサービスオブジェクト（ＳＯ）４５とによって構成されている。
制御部４０は、オペレーティングシステム４１を実行し、このオペレーティングシステム４１上で動作するＰＯＳアプリケーション４２の機能と、オペレーティングシステム４１上で動作するプリンタードライバー４３の機能により、上述した商品登録、金額表示、プリンター１０によるレシートＲの出力等を実行する。
【００１７】
ＰＯＳアプリケーション４２（アプリケーションプログラム）は、ＰＯＳサーバー２０から送信される商品データや入力情報に基づいてレシート上に印刷するための文字コードを含むデータを生成するが、このデータは、オペレーティングシステム４１を介して印刷装置用のコントロールオブジェクト４４に引き渡され、さらにコントロールオブジェクト４４からプリンター１０の機種に対応したサービスオブジェクト４５に引き渡される。サービスオブジェクト４５は、このデータを加工してプリンター１０のコマンド仕様に応じたコマンドと文字データを含む印刷データを生成し、プリンター１０へ送信する。なお、上記したＯＰＯＳは、コントロールオブジェクト４４とサービスオブジェクト４５とをコンバインした形態で、プリンタードライバー４３としてユーザーに提供される。
【００１８】
プリンター１０は、サーマルヘッド方式のレシートプリンターであり、ホストコンピューター３０から各種コマンドや印刷データを受信するデータ受信部１１の他、ＣＰＵ、ＲＯＭ、ＲＡＭ等を有して構成され、プリンター１０の各部を制御する制御部１２、制御部１２が実行するプログラムや処理されるデータ等を記憶するメモリー１３、制御部１２の制御に従って、搬送モーター１５、記録ヘッド１６、およびカッターユニット１７を駆動する記録制御部１４等を備えている。
【００１９】
プリンター１０は、データ受信部１１によりホストコンピューター３０からコマンドと印刷データとを受信し、受信したコマンドと印刷データをデータ受信部１１が備える受信バッファー（図示略）内に一時的に格納する。制御部１２は、受信バッファー内のコマンドと印刷データを読み出して解析し、印刷データに従って、予めメモリー１３に格納している出力用フォント情報１３Ａ（文字セット）を参照し、印刷データに含まれる文字コードに従って、該当する文字のフォントデータ（フォントパターン情報）を取得する。そして、制御部１２は印刷するレシートＲを構成する文字および画像をレイアウトして、フォントデータを含む印刷用のレシートＲのイメージデータを生成しＲＡＭ等に一時記憶し、記録制御部１４に対して出力する。
【００２０】
記録制御部１４は、ＲＡＭ等に記憶したイメージデータに基づいて、搬送モーター１５を制御して、レシートＲ用の感熱ロール紙を搬送させながら、イメージデータを順次、記録ヘッド１６へ送り通電制御を行って駆動し、感熱ロール紙へ発色させて印刷を行わせる。１ページ分のレシートＲの印刷が完了すると、記録制御部１４はカッターユニット１７を駆動して感熱ロール紙をカットし、レシートＲを排出する。
【００２１】
図２は、ホストコンピューター３０の詳細構成を示すブロック図であり、制御部４０のソフトウェア構成を特に示している。
図２に示すように、ホストコンピューター３０を制御する制御部４０は、オペレーティングシステム４１を実行するとともに、このオペレーティングシステム４１上で動作するＰＯＳアプリケーション４２、オペレーティングシステム４１の一部として機能するプリンタードライバー４３、および、ラッパーサービスオブジェクト（ＳＯ）４６を実行する。
【００２２】
本実施形態では、オペレーティングシステム４１は多言語に対応するため、汎用的な文字コードセットであるＵｎｉｃｏｄｅを使用する。Ｕｎｉｃｏｄｅは多言語に渡る複数の文字コードセットを包括した巨大な単一のコード体系となっており、Ｕｎｉｃｏｄｅを用いて作成された文字コード（例えば、Ｕｎｉｃｏｄｅのラテン語（Basic Latin）と、日本語のカタカナ（Katakana）を混在させたような文字コード）を出力することも可能となっている。ＰＯＳアプリケーション４２は、オペレーティングシステム４１に準拠する仕様となっているため、Ｕｎｉｃｏｄｅの文字コード体系に準拠している。従って、オペレーティングシステム４１およびＰＯＳアプリケーション４２が入出力する文字のデータは、Ｕｎｉｃｏｄｅの文字コードセットにおける文字コードとして出力される。
【００２３】
これに対し、プリンタードライバー４３は、いくつかの言語または単一の言語に対応する文字コードセットを使用するものであって、少なくとも、Ｕｎｉｃｏｄｅに包含される言語よりは少数の言語の文字コードセットにしか対応しない。通常、プリンタードライバー４３で使用される言語は、プリンター１０の仕様に合わせて構成されており、そのままプリンター１０で使用されることが多いため、Ｕｎｉｃｏｄｅほど多数の言語に対応していなくても、ユーザーは使用する言語等に合わせてプリンター１０の仕様を選んで購入するため使用する言語の範囲は限られている。プリンター１０は、プリンタードライバー４３と同様に、Ｕｎｉｃｏｄｅに比べると少ない数の言語または一つの言語に対応する文字コードセットを使用する。
【００２４】
プリンタードライバー４３は、プリンター１０の機種毎に用意され、通信ネットワーク経由またはCDROM等の記録媒体に記録した形態でユーザーに提供される。複数種類の機種のプリンターに対応するプリンタードライバー４３を構成することも可能であり、例えば、メカ仕様が共通で対応言語が異なる複数のプリンター１０を、言語に対応する部分のみを切り換えるようにすることで、一つのプリンタードライバー４３で制御することも可能となっている。
【００２５】
本実施形態では、オペレーティングシステム４１においてユーザーが使用する言語は日本語に設定され、ＰＯＳアプリケーション４２も日本語のユーザーインターフェースを介して動作する例を説明する。この場合、プリンタードライバー４３は、日本語に対応したデバイスドライバープログラムとして提供されたものである。これに対し、本実施形態で例示するプリンター１０は、中国語に対応したものとし、中国語（簡体字）の文字を印刷できる仕様となっている。
【００２６】
プリンタードライバー４３は、コントロールオブジェクト４４とサービスオブジェクト４５で構成されている。
コントロールオブジェクト４４（汎用制御手段、上位ドライバー）は、ＰＯＳアプリケーション４２によってプリンタードライバー４３が呼び出された場合に、ＰＯＳアプリケーション４２が出力するデータを処理する。コントロールオブジェクト４４はＯＰＯＳの仕様に準拠しているため、Ｕｎｉｃｏｄｅに対応している。コントロールオブジェクト４４は、ＰＯＳアプリケーション４２が出力するレシートＲ印刷用のデータを取得し、出力装置を制御するためのコマンドと、出力用のデータとを生成する。コントロールオブジェクト４４が生成するコマンドおよびデータは、ＯＰＯＳの仕様に従って、プリンター１０を含む複数の印刷装置または他の出力デバイスに共通するものである。
【００２７】
ＰＯＳアプリケーション４２が印刷実行を指示し、プリンタードライバー４３を呼び出した場合、コントロールオブジェクト４４が生成するデータには、ＰＯＳアプリケーション４２が出力したレシートＲ中の文字を印刷するための文字コードが含まれている。この文字コードは、Ｕｎｉｃｏｄｅにおいて特定のブロックの特定の文字を指定するものである。図２に示す例では、ＰＯＳアプリケーション４２が出力したデータ４０１は、漢字「水」の文字コード「2F54（16進数）」を含んでおり、コントロールオブジェクト４４は、このデータ４０１に基づいて、Ｕｎｉｃｏｄｅの文字コード「2F54（16進数）」を含む出力用データ４０２を生成する。
【００２８】
サービスオブジェクト４５（文字データ生成手段、下位ドライバー）は、プリンター１０またはプリンター１０を含む複数のプリンターに適合させて作成されたものである。サービスオブジェクト４５は、コントロールオブジェクト４４が生成したデータに基づいて、プリンター１０に適合した印刷用のコマンドおよび印刷データを含む印刷用データを生成し、プリンター１０に出力する。サービスオブジェクト４５は、コントロールオブジェクト４４が出力した出力用データ４０２を変換する変換部４７を備えている。変換部４７としては、例えば、Microsoft（登録商標）社製のMFC（Microsoft Foundation Class）が該当する。本実施形態の構成において変換部４７の機能は、出力用データ４０２に含まれる文字コードを、サービスオブジェクト４５が対応する文字コードに変換する機能である。サービスオブジェクト４５は、上記の理由によってＵｎｉｃｏｄｅに比べると少ない数の言語または一つの言語に対応する文字コードセットを使用する。つまり、プリンタードライバー４３は、ＯＰＯＳの仕様に準拠しＵｎｉｃｏｄｅに対応する汎用性を有するコントロールオブジェクト４４を有する一方で、プリンター１０を含む複数のプリンターに対応する少ない数の言語または一つの言語に対応する文字コードセットなどに特化して作成されたサービスオブジェクト４５を備えている。このため、プリンタードライバー４３全体としては、ＰＯＳアプリケーション４２のＵｎｉｃｏｄｅに対応しつつ、Ｕｎｉｃｏｄｅに適合していないプリンター１０に対応するように特化したものということができる。
【００２９】
本実施形態のサービスオブジェクト４５は、オペレーティングシステム４１の使用言語として設定された日本語に対応するものとなっており、例えば、シフトＪＩＳ等の文字コードを使用する。このため、変換部４７は、Ｕｎｉｃｏｄｅに従って記述された文字コード（図２の例では「2F54（16進数）」）を、シフトＪＩＳにおいて同じ文字を指す文字コードに変換する処理を行う。
【００３０】
さらに、サービスオブジェクト４５は、変換部４７により変換されたシフトＪＩＳの文字コードに基づき、プリンター１０が有する出力用フォント情報１３Ａに対応する文字データ４０４に変換する。
仮に、プリンター１０が日本語仕様であり、内蔵する出力用フォント情報１３ＡがシフトＪＩＳに従ったものであれば、正しい文字が印刷できる。問題となるのは、プリンター１０が日本語以外の仕様の場合であり、プリンター１０が対応していない文字データを受信するため、印刷できないか、或いは誤った文字を印刷してしまう。違う表現をすると、オペレーティングシステム４１で設定された使用言語と、プリンター１０の使用言語が異なる場合が問題となる。
【００３１】
プリンター１０が内蔵する出力用フォント情報１３Ａは、複数種類のフォント群を含んで構成される。１つの「フォント群」は、例えば「アスキーコード」のような文字のセットである。メモリー１３（図１）には、このフォント群を格納するためのコードページ１３Ｂという領域を複数（例えば、１〜２５５までの２５５）備えている。各コードページ１３Ｂには、複数のフォントが格納されていて、ここでいう「フォント」は、文字を記録制御部１４へ出力し、記録ヘッドで記録する際の文字の形を表すデータ（フォントデータ、フォントパターン情報）である。プリンター１０に対して、出力用フォント情報１３Ａを構成するコードページ１３Ｂのうち、いずれか一つのコードページ１３Ｂの番号をコマンドで指定し、そのコードページ１３Ｂの一つの文字を指定するデータ（文字コード）を与えることで、制御部１２は一つのフォントを抽出する。このフォントが、実際にレシートＲに印刷される文字となる。
サービスオブジェクト４５は、変換部４７が変換した文字コードで表される文字を、出力用フォント情報１３Ａから抽出するため、コードページ１３Ｂを指定する情報（例えば、コードページ１３Ｂの番号を指定するコマンド）と、当該コードページ１３Ｂ内における文字を指定する情報（文字コード）とを含む文字データ４０４を生成して、プリンター１０に出力する。同じコードページ１３Ｂの番号の中の文字を続けて指定する場合、コードページ１３Ｂを指定する情報の送信は省略ができる。
【００３２】
本実施形態のプリンター１０は中国語（簡体字）に対応し、具体的にはＧＢ１８０３０の文字コードセットに対応するフォント群を出力用フォント情報１３Ａとして記憶している。従って、サービスオブジェクト４５は、コントロールオブジェクト４４が生成した出力用データ４０２中のＵｎｉｃｏｄｅの文字コード「2F54（16進数）」を、ＧＢ１８０３０に対応する文字コードに変換する必要がある。ところが、変換部４７はシフトＪＩＳへの変換を行うものであるため、サービスオブジェクト４５は、このままではＧＢ１８０３０における文字コードへの変換を実行できない。
【００３３】
そこで制御部４０は、コントロールオブジェクト４４が出力した出力用データ４０２に含まれるＵｎｉｃｏｄｅの文字コードを、プリンター１０が備える出力用フォント情報１３Ａに対応したＧＢ１８０３０の文字コードセットにおける文字コードに変換するために、ラッパーＳＯ４６を使用する。この場合、「ＧＢ１８０３０」の文字コードセットにおける文字コード「CBAE（16進数）」とする出力用データ４０３に変換される。ラッパーＳＯ４６は、コントロールオブジェクト４４とサービスオブジェクト４５との間に介在して、コントロールオブジェクト４４に対してはサービスオブジェクト４５のように動作し、サービスオブジェクト４５に対してはコントロールオブジェクト４４のように動作する。従って、ラッパーＳＯ４６をそれらの間に介在させて使用する場合に、コントロールオブジェクト４４およびサービスオブジェクト４５の大幅な構成変更を要しない。
この場合、コントロールオブジェクト４４が生成した出力用データ４０２は、ラッパーＳＯ４６を経由して、変換部４７を経由せずサービスオブジェクト４５へ渡される。コントロールオブジェクト４４から、直接、サービスオブジェクト４５へ渡す経路は禁止され、遮断される（図２中に×で示す）。
変換部４７とサービスオブジェクト４５が一体で実装される構成である場合であって、変換部４７を経由する構成となっている場合には、変換部４７で影響を受けない変換を伴う。具体的には、ラッパーＳＯ４６で文字コード「CBAE（16進数）」をビット単位で前処理を行い変換部４７で影響を受けない形式のデータとし、変換部４７では何の変換も受けずに通過し、サービスオブジェクト４５で文字コード「CBAE（16進数）」に戻す処理であるバイナリー変換を行えばよい。
【００３４】
ラッパーＳＯ４６（文字コード変換手段）は、内部にＵｎｉｃｏｄｅの文字コードセット４７Ａと、他の複数の文字コードセット４８Ａ、４８Ｂ…との対応関係を定義した変換用データ４６Ａを備えている。変換用データ４６Ａは、必ずしも文字そのもののデータを含むことを要しない。この変換用データ４６Ａは、文字コードセット４７Ａの各文字コードで指定された文字を、他の文字コードセット４８Ａ、４８Ｂ…における同じ文字の文字コードに変換することができる。例えば、ラッパーＳＯ４６は、変換用データ４６Ａに従って、Ｕｎｉｃｏｄｅにおける「水」の文字コード「2F54（16進数）」を、文字コードセット４８Ａ（ＧＢ１８０３０）における「水」に該当する文字コード「CBAE（16進数）」に変換する。ラッパーＳＯ４６が対応する文字コードセット４７Ａおよび文字コードセット４８Ａ、４８Ｂ…の種類や数は任意であり、多数の文字コード間の対応関係を定義した変換用データ４６Ａを備えた構成とすることもできる。
変換元と変換先の文字コードセットの組合せは、変換用データ４６Ａは、プリンタードライバー４３の各種設定を行うＵＩ（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）により、設定することもできる。
【００３５】
このため、サービスオブジェクト４５は、プリンター１０が使用する文字コードセット（ＧＢ１８０３０）に対応する正しい文字を特定できる。そして、対応する文字のフォント（フォントデータ）を含むコードページ１３Ｂと、コードページ１３Ｂ中の文字を指定する文字コードを含む文字データ４０４を生成し、送信することができる。
【００３６】
この構成により、制御部４０は、プリンタードライバー４３を大幅に改変することなく、サービスオブジェクト４５が未対応の文字コードセットを使用するプリンター１０に対応し、プリンター１０で対応可能な文字データ４０４に変換することができる。このように、ＰＯＳアプリケーション４２が出力したＵｎｉｃｏｄｅの文字を、Ｕｎｉｃｏｄｅに対応していないプリンター１０により印刷させることができる。
【００３７】
図３には、上記のホストコンピューター３０の動作をフローチャートとして示す。
まず、ＰＯＳアプリケーション４２がプリンタードライバー４３へＵｎｉｃｏｄｅの文字コードを含むデータを出力すると（ステップＳ１１）、このデータに基づいてコントロールオブジェクト４４が、Ｕｎｉｃｏｄｅの文字コードを含む出力用データを生成する（ステップＳ１２）。
ここで、ラッパーＳＯ４６が、コントロールオブジェクト４４が生成した出力用データに含まれるＵｎｉｃｏｄｅの文字コードをプリンター１０に適合した文字コードセットの文字コードへ変換を行い（ステップＳ１３）、変換後の文字コードを含む出力用データに基づいて、サービスオブジェクト４５が、プリンター１０が内蔵する出力用フォント情報１３Ａに対応するコードページ１３Ｂと文字コードを指定する情報を含む文字データ４０４を生成し（ステップＳ１４）、プリンター１０に出力して、プリンター１０が指定されたコードページ１３Ｂと文字コードに該当するフォントデータを読み出して、印刷を実行する（ステップＳ１５）。
【００３８】
以上のように、本発明を適用した実施形態に係るＰＯＳシステム１は、ＰＯＳアプリケーション４２が出力したデータに基づいてプリンター１０を制御するホストコンピューター３０が、ＰＯＳアプリケーション４２が出力したＵｎｉｃｏｄｅの文字コードを含むデータをもとに、複数種類のプリンター１０に共通する出力用データを出力するコントロールオブジェクト４４と、出力用データに含まれるＵｎｉｃｏｄｅの文字コードに基づき、プリンター１０が内蔵する出力用フォント情報１３Ａの文字データを生成するサービスオブジェクト４５と、プリンター１０が内蔵する出力用フォント情報１３ＡがＵｎｉｃｏｄｅと異なる文字コードセットに対応している場合、コントロールオブジェクト４４とサービスオブジェクト４５との間に介在して、出力用データに含まれるＵｎｉｃｏｄｅの文字コードを、プリンター１０が内蔵する出力用フォント情報１３Ａに対応する文字コードセットの文字コードに変換し、サービスオブジェクト４５に出力するラッパーＳＯ４６とを備え、出力用データに含まれるＵｎｉｃｏｄｅの文字コードを、ラッパーＳＯ４６によって、プリンター１０が対応する文字コードセットの文字コードに変換することが可能である。このため、プリンタードライバー４３を構成するサービスオブジェクト４５が対応していない文字コードセットのデータに関しても、プリンタードライバー４３に大幅に手を加えることなく、ラッパーＳＯ４６により、プリンター１０に対応する正しい文字データを出力できる。これにより、プリンタードライバー４３やプリンター１０の対応するそれぞれの文字コードセットに関する管理の手間を省き、かつ、ＰＯＳアプリケーション４２が出力したＵｎｉｃｏｄｅを含むデータをＵｎｉｃｏｄｅに対応していない別の文字コードセットのプリンター１０により正確に出力できる。さらに、プリンター１０を制御する手段の汎用性を損なうことがない。また、文字コードの変換のみを行う手段を設ける場合、プリンター１０を制御する手段やプリンター１０そのものの対応文字コードセットを増やす場合に比べて、必要なデータ量が少なくて済むので、容易に実現可能である。
【００３９】
また、プリンター１０が内蔵する文字セットとしての出力用フォント情報１３Ａは、複数のコードページの中の文字コードで指定されるもので、記録ヘッド１６で印刷するためのフォントデータで構成され、サービスオブジェクト４５は、Ｕｎｉｃｏｄｅの文字コード、または出力用フォント情報１３Ａが対応する文字コードセットの文字コードに従って、該当するコードページを指定するコマンドと該当する文字コードを含む文字コードを生成し、プリンター１０へ出力するので、プリンター１０が内蔵する複数のコードページの中の文字コードからなる文字セットに対応した文字コードセットと文字コードが生成して送られ、該当するフォントデータにより記録ヘッド１６で記録することができる。
【００４０】
また、ホストコンピューター３０はオペレーティングシステム４１を備え、サービスオブジェクト４５は、オペレーティングシステム４１において設定された言語に基づき、出力用データに含まれるＵｎｉｃｏｄｅの文字コードを、上記言語に対応した文字コードセットの文字コードに変換する変換部４７を有し、これによりオペレーティングシステム４１において設定された言語とプリンター１０の文字セットに関する言語が同じ場合には、ＰＯＳアプリケーション４２に基づく出力データを変換部４７で容易に当該言語に対応する文字コードセットに変換すれば、簡便な処理で済む。
また、ラッパーＳＯ４６は、出力用フォント情報１３Ａが対応する文字コードセットの文字コードを変換部４７に渡す場合は、変換部４７で変換されない形式のデータにして渡し、サービスオブジェクト４５で出力用フォント情報１３Ａが対応する文字コードセットの文字コードに復元する処理をするので、変換部４７を備えた場合であって、プリンター１０が内蔵する出力用フォント情報１３Ａが所定の文字コードセットと異なる他の文字コードセットに対応している際、変換部４７により誤変換されないようにすることができる。
【００４１】
また、サービスオブジェクト４５は、オペレーティングシステム４１の使用言語として設定された言語に対応するものとなっており、出力用データに含まれる文字コードに従って所定の文字コードセットに含まれる文字コードを特定し、この文字コードを含むプリンター１０制御用データを生成するので、サービスオブジェクト４５が使用する所定の文字コードセット（上記の日本語の例ではシフトＪＩＳ）がプリンター１０に内蔵された出力用フォント情報１３Ａと対応していない場合であっても、ラッパーＳＯ４６により文字コードセットと該当する文字コードに変換し、プリンター１０に対応する正しい文字データを出力できる。
【００４２】
ＰＯＳアプリケーション４２により呼び出される上位ドライバーとしてのコントロールオブジェクト４４と、コントロールオブジェクト４４が処理したＵｎｉｃｏｄｅを含むデータに基づいて、プリンター１０を制御する下位ドライバーとしてのサービスオブジェクト４５との間に介在するラッパーＳＯ４６によって、コントロールオブジェクト４４の汎用性を損なうことなく、また、プリンター１０ごとに対応するサービスオブジェクト４５に手を加えることなく、プリンター１０に対応する正しい文字データを出力できる。
【００４３】
なお、上記各実施形態は本発明を適用した一具体例を示すものであり、本発明はこれに限定されるものではない。例えば、ＰＯＳシステム１が備える出力装置はプリンター１０に限定されず、表示装置等の他の出力デバイスを使用することが可能である。また、上記実施形態で例示した文字コードセットおよび言語はあくまで一例であって、Ｕｎｉｃｏｄｅに限らず他の文字コードセット、文字コード体系に対応した動作を実現することももちろん可能である。さらに、上記実施形態では、ＰＯＳアプリケーションを実行するＰＯＳシステムにおいて本発明を適用した例を説明したが、ホストコンピューター３０が実行するアプリケーションプログラムはＰＯＳアプリケーションに限定されないし、他の用途に使用されるアプリケーションプログラムを実行し、出力装置を制御する場合に、本発明を適用することもできる。
【００４４】
また、図１、２のブロック図に示した各機能部は機能的構成を示すものであって、各機能部を独立したハードウェアにより構成する必要はなく、ソフトウェアとハードウェアとの協働により、複数の機能部の機能を１つのハードウェアに集約して実現することも、一つの機能部を複数のハードウェアにより実現することも勿論可能である。
また、上述の動作を行うホストコンピューター３０が実行するプログラムは、ホストコンピューター３０の制御部４０を構成するＲＯＭが記憶する構成に限らず、可搬型の記録媒体に記憶されている構成であってもよいし、或いは、通信回線を介して接続された他の装置にダウンロード可能に記憶され、これらの装置からホストコンピューター３０が上記プログラムをダウンロードして実行してもよく、その他の構成についても任意に変更可能である。
【符号の説明】
【００４５】
１…ＰＯＳシステム、１０…プリンター（出力装置）、１３Ａ…出力用フォント情報（文字セット）、１３Ｂ…コードページ、１４…記録制御部、２０…ＰＯＳサーバー、３０…ホストコンピューター（出力制御装置）、４０…制御部、４１…オペレーティングシステム、４２…ＰＯＳアプリケーション（アプリケーションプログラム）、４３…プリンタードライバー、４４…コントロールオブジェクト（汎用制御手段、上位ドライバー）、４５…サービスオブジェクト（文字データ生成手段、下位ドライバー）、４６Ａ…変換用データ、４７…変換部、４７Ａ…文字コードセット（Ｕｎｉｃｏｄｅ）、４８Ａ…文字コードセット（ＧＢ１８０３０）、４６…ラッパーＳＯ（文字コード変換手段）、４０１…データ、４０２、４０３…出力用データ、４０４…文字データ。
【図１】
0005790267.tif 000002
【図２】
0005790267.tif 000003
【図３】
0005790267.tif 000004