(57)【特許請求の範囲】
【請求項１】
文字を符号化した文字コードを含む印刷データをホストコンピュータから入力し、当該入力した文字コードに基づいて文字列の印刷を実行するＰＯＳ用のプリンタであって、
特定の国または地域に依存する言語を対象とした文字集合であるＣｏｄｅｐａｇｅによる文字コードを含む印刷データまたは世界中の言語を対象とした汎用の文字集合であるＵｎｉｃｏｄｅによる文字コードを含む印刷データを入力する印刷データ入力部と、
上記印刷データ入力部により上記Ｃｏｄｅｐａｇｅによる文字コードを含む印刷データを入力した場合に、上記Ｃｏｄｅｐａｇｅにより表された文字列を上記Ｃｏｄｅｐａｇｅに対応したフォントにて印刷するように制御する第１の印刷制御部と、
上記印刷データ入力部により上記Ｕｎｉｃｏｄｅによる文字コードを含む印刷データを入力した場合に、上記Ｕｎｉｃｏｄｅにより表された文字列を上記Ｃｏｄｅｐａｇｅに対応したフォントにて印刷するように制御する第２の印刷制御部と、
上記印刷データ入力部により入力された印刷データの文字コードに応じて、上記第１の印刷制御部または上記第２の印刷制御部の何れかを処理対象として選択する処理選択部とを備え、
上記第２の印刷制御部は、
上記印刷データ入力部により上記Ｕｎｉｃｏｄｅによる文字コードを含む印刷データを入力した場合に、上記入力された印刷データの上記Ｕｎｉｃｏｄｅを、所定の上記Ｃｏｄｅｐａｇｅに対応したフォントデータに対応付けるフォントデータ対応付け部を備え、
上記印刷データ入力部により入力された上記Ｕｎｉｃｏｄｅによる印刷データの文字列を、上記フォントデータ対応付け部による対応付けに基づいて、上記Ｃｏｄｅｐａｇｅに対応したフォントにて印刷するように制御することを特徴とするプリンタ。
【請求項２】
上記処理選択部は、上記印刷データに基づく印刷の実行に先だって、文字コードの設定情報を退避記憶させ、上記印刷データに基づく印刷が終了した際に、上記退避記憶しておいた設定情報に基づいて、元の文字コードの設定状態に戻すことを特徴とする請求項１に記載のプリンタ。
【請求項３】
上記処理選択部は、上記印刷データ入力部により入力された印刷データの先頭から所定量のデータを参照することにより、上記入力された印刷データが上記Ｃｏｄｅｐａｇｅによるものか上記Ｕｎｉｃｏｄｅによるものかを判別し、その判別結果に応じて、上記第１の印刷制御部または上記第２の印刷制御部の何れかを選択することを特徴とする請求項１または２に記載のプリンタ。
【請求項４】
上記処理選択部は、上記印刷データ入力部により入力された印刷データの先頭に文字コード切替コマンドが付加されているか否かを判別し、その判別結果に応じて、上記第１の印刷制御部または上記第２の印刷制御部の何れかを選択することを特徴とする請求項１または２に記載のプリンタ。
【請求項５】
文字を符号化した文字コードを含む印刷データをホストコンピュータから入力し、当該入力した文字コードに基づいて文字列の印刷を実行するプリンタであって、
特定の国または地域に依存する言語を対象とした文字集合であるＣｏｄｅｐａｇｅによる文字コードを含む印刷データまたは世界中の言語を対象とした汎用の文字集合であるＵｎｉｃｏｄｅによる文字コードを含む印刷データを入力する印刷データ入力部と、
上記印刷データ入力部により上記Ｃｏｄｅｐａｇｅによる文字コードを含む印刷データを入力した場合に、上記Ｃｏｄｅｐａｇｅにより表された文字列を上記Ｃｏｄｅｐａｇｅに対応したフォントにて印刷するように制御する第１の印刷制御部と、
上記印刷データ入力部により上記Ｕｎｉｃｏｄｅによる文字コードを含む印刷データを入力した場合に、上記Ｕｎｉｃｏｄｅにより表された文字列を上記Ｃｏｄｅｐａｇｅに対応したフォントにて印刷するように制御する第２の印刷制御部と、
上記印刷データ入力部により入力された印刷データの文字コードに応じて、上記第１の印刷制御部または上記第２の印刷制御部の何れかを処理対象として選択する処理選択部とを備え、
上記処理選択部は、上記印刷データに基づく印刷の実行に先だって、文字コードの設定情報を退避記憶させ、上記印刷データに基づく印刷が終了した際に、上記退避記憶しておいた設定情報に基づいて、元の文字コードの設定状態に戻すものであり、
上記第２の印刷制御部は、
上記印刷データ入力部により上記Ｕｎｉｃｏｄｅによる文字コードを含む印刷データを入力した場合に、上記入力された印刷データの上記Ｕｎｉｃｏｄｅを、所定の上記Ｃｏｄｅｐａｇｅに対応したフォントデータに対応付けるフォントデータ対応付け部を備え、
上記印刷データ入力部により入力された上記Ｕｎｉｃｏｄｅによる印刷データの文字列を、上記フォントデータ対応付け部による対応付けに基づいて、上記Ｃｏｄｅｐａｇｅに対応したフォントにて印刷するように制御することを特徴とするプリンタ。
【請求項６】
ホストコンピュータと、当該ホストコンピュータから印刷データを入力して印刷を実行するプリンタとを備えた印刷システムであって、
上記ホストコンピュータは、
特定の国または地域に依存する言語を対象とした文字集合であるＣｏｄｅｐａｇｅによる文字コードを含む印刷データまたは世界中の言語を対象とした汎用の文字集合であるＵｎｉｃｏｄｅによる文字コードを含む印刷データを上記プリンタに出力する印刷データ出力部を備え、
上記プリンタは、
上記ホストコンピュータから上記印刷データを入力する印刷データ入力部と、
上記印刷データ入力部により上記Ｃｏｄｅｐａｇｅによる文字コードを含む印刷データを入力した場合に、上記Ｃｏｄｅｐａｇｅにより表された文字列を上記Ｃｏｄｅｐａｇｅに対応したフォントにて印刷するように制御する第１の印刷制御部と、
上記印刷データ入力部により上記Ｕｎｉｃｏｄｅによる文字コードを含む印刷データを入力した場合に、上記Ｕｎｉｃｏｄｅにより表された文字列を上記Ｃｏｄｅｐａｇｅに対応したフォントにて印刷するように制御する第２の印刷制御部と、
上記印刷データ入力部により入力された印刷データの文字コードに応じて、上記第１の印刷制御部または上記第２の印刷制御部の何れかを処理対象として選択する処理選択部とを備え、
上記処理選択部は、上記印刷データに基づく印刷の実行に先だって、文字コードの設定情報を退避記憶させ、上記印刷データに基づく印刷が終了した際に、上記退避記憶しておいた設定情報に基づいて、元の文字コードの設定状態に戻すものであり、
上記第２の印刷制御部は、
上記印刷データ入力部により上記Ｕｎｉｃｏｄｅによる文字コードを含む印刷データを入力した場合に、上記入力された印刷データの上記Ｕｎｉｃｏｄｅを、所定の上記Ｃｏｄｅｐａｇｅに対応したフォントデータに対応付けるフォントデータ対応付け部を備え、
上記印刷データ入力部により入力された上記Ｕｎｉｃｏｄｅによる印刷データの文字列を、上記フォントデータ対応付け部による対応付けに基づいて、上記Ｃｏｄｅｐａｇｅに対応したフォントにて印刷するように制御することを特徴とする印刷システム。
【請求項７】
上記ホストコンピュータの上記印刷データ出力部は、上記Ｃｏｄｅｐａｇｅによる文字コードを含む印刷データまたは上記Ｕｎｉｃｏｄｅによる文字コードを含む印刷データのどちらを出力する場合も、上記処理選択部による選択のための専用情報を付加することなく上記印刷データを出力し、
上記プリンタの上記処理選択部は、上記印刷データ入力部により入力された印刷データの先頭から所定量のデータを参照することにより、上記入力された印刷データが上記Ｃｏｄｅｐａｇｅによるものか上記Ｕｎｉｃｏｄｅによるものかを判別し、その判別結果に応じて、上記第１の印刷制御部または上記第２の印刷制御部の何れかを選択することを特徴とする請求項６に記載の印刷システム。
【請求項８】
上記ホストコンピュータの上記印刷データ出力部は、上記Ｕｎｉｃｏｄｅによる文字コードを含む印刷データを出力する場合は、先頭に文字コード切替コマンドが付加された印刷データを出力し、
上記プリンタの上記処理選択部は、上記印刷データ入力部により入力された印刷データの先頭に上記文字コード切替コマンドが付加されているか否かを判別し、その判別結果に応じて、上記第１の印刷制御部または上記第２の印刷制御部の何れかを選択することを特徴とする請求項６に記載の印刷システム。
【請求項９】
文字を符号化した文字コードを含む印刷データをホストコンピュータからプリンタに入力し、当該入力した文字コードに基づいて文字列の印刷の実行を制御する印刷制御方法であって、
上記プリンタの印刷データ入力部が、特定の国または地域に依存する言語を対象とした文字集合であるＣｏｄｅｐａｇｅによる文字コードを含む印刷データまたは世界中の言語を対象とした汎用の文字集合であるＵｎｉｃｏｄｅによる文字コードを含む印刷データの何れかを入力する第１のステップと、
上記プリンタの第１の印刷制御部が、上記印刷データ入力部により上記Ｃｏｄｅｐａｇｅによる文字コードを含む印刷データを入力した場合に、上記Ｃｏｄｅｐａｇｅにより表された文字列を上記Ｃｏｄｅｐａｇｅに対応したフォントにて印刷するように制御する第２のステップと、
上記プリンタの第２の印刷制御部が、上記印刷データ入力部により上記Ｕｎｉｃｏｄｅによる文字コードを含む印刷データを入力した場合に、当該入力された印刷データの上記Ｕｎｉｃｏｄｅを、所定の上記Ｃｏｄｅｐａｇｅに対応したフォントデータに対応付け、上記印刷データ入力部により入力された上記Ｕｎｉｃｏｄｅによる印刷データの文字列を、上記対応付けに基づいて、上記Ｃｏｄｅｐａｇｅに対応したフォントにて印刷するように制御する第３のステップとを有することを特徴とする印刷制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリンタ、印刷システムおよび印刷制御方法に関し、特に、文字を符号化した文字コードを含む印刷データをホストコンピュータから入力し、当該入力した文字コードに基づいて文字列の印刷を実行するプリンタ、およびこれを用いた印刷システムに用いて好適なものである。
【背景技術】
【０００２】
従来、ホストコンピュータとプリンタとを接続し、ホストコンピュータで作成した文書等の印刷データをプリンタに送信して印刷するようにした印刷システムが広く使われている。この種の印刷システムでは、文字を符号化した文字コードをホストコンピュータからプリンタに出力するともに、使用するフォントを指定して印刷を実行するようになされている。
【０００３】
ところで、近年では、グローバル化に伴って、複数言語の文字を混在して扱うコンピュータが増えてきている。また、スマートフォンやタブレット端末のように、使用される地域が特定の国に限定されず、世界各国に出荷されて使用され得るモバイル端末も多用されている。このような複数言語対応型のコンピュータやモバイル端末では、画面表示の際に用いる文字コードとして、Ｕｎｉｃｏｄｅが使われるケースが多い。特に、モバイル端末では、Ｕｎｉｃｏｄｅを用いることがスタンダードになりつつある。Ｕｎｉｃｏｄｅは、世界中の言語を対象とした１００万超のコードポイントを有している。
【０００４】
しかしながら、従来のプリンタは、特定の国や地域に依存した文字コードであるＣｏｄｅｐａｇｅには対応しているものの、Ｕｎｉｃｏｄｅには対応していないものが殆どである。Ｕｎｉｃｏｄｅに未対応の従来のプリンタは、Ｕｎｉｃｏｄｅが持つ全てのコードポイントに対応したフォントセットを有していない。そのため、ホストコンピュータにおいてＵｎｉｃｏｄｅを用いて作成された文書中には、プリンタで認識できない文字コードや、プリンタで未対応のフォントが含まれることがある。このような場合に、ホストコンピュータからプリンタに印刷データを送信して印刷を実行すると、印刷される文書に文字化けが生じてしまうという問題があった。
【０００５】
これに対して、ホストコンピュータとプリンタとの間に設けた印刷制御装置において、ホストコンピュータから送られてきたＵｎｉｃｏｄｅなどの汎用文字コードを、プリンタ用の文字コード（プリンタに搭載されたフォントデータに対応する文字コード）に変換するようにした技術が提案されている（例えば、特許文献１の段落[００７３]および図１１参照）。この特許文献１には、プリンタ用の文字コードの前に、プリンタの文字コードを言語属性に対応して切り替えるための「文字コード切り替えコマンド」を付加した印刷指示コマンドを生成することが記載されている。
【０００６】
また、文字コード毎にＪＩＳコード、Ｕｎｉｃｏｄｅ、Ｗｉｎｄｏｗｓ（登録商標）に準拠したＧｌｙｐｈ・Ｗｉｄｔｈでそれぞれ用意したフォントセットを作成し、印刷環境に応じて各フォントセットのいずれかを選択することができるようにしたプリンタも提案されている（例えば、特許文献２参照）。この特許文献２には、フォントセットの選択によるＪＩＳコード、Ｕｎｉｃｏｄｅ、Ｇｌｙｐｈ・Ｗｉｄｔｈなどの切り替えをコマンドで行うことにより、ドライバで指定すれば簡単にＪＩＳコード、Ｕｎｉｃｏｄｅ、Ｇｌｙｐｈ・Ｗｉｄｔｈを使った印刷が可能となることが記載されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１３−２１０８８５号公報
【特許文献２】特開２００２−９１４１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記特許文献１に記載の技術では、ホストコンピュータとプリンタとの間に印刷制御装置を設ける必要がある。そのため、導入に多くのコストがかかるという問題があった。
【０００９】
一方、上記特許文献２に記載の技術によれば、印刷制御装置といった特殊な設備を新たに設ける必要はない。しかしながら、特許文献２に記載のプリンタにおいて、ＪＩＳコードのようなＣｏｄｅｐａｇｅ以外にＵｎｉｃｏｄｅにも対応して印刷可能とするためには、Ｃｏｄｅｐａｇｅに対応したフォントセットに加えて、Ｕｎｉｃｏｄｅに対応したフォントセットをプリンタにあらかじめ記憶させておく必要がある。
【００１０】
上述したように、Ｕｎｉｃｏｄｅは世界中の言語を対象とした１００万超の文字コードを有している。さらに、標準の字体と同じ意味・発音を持つが、表記に差異がある文字である異体字を識別するための異体字セレクタを含んだコード表現を加えると、Ｕｎｉｃｏｄｅが有する文字コードの数は更に膨大なものとなる。そのため、この膨大な数の文字コードに対応したフォントセットを記憶するためにプリンタが備えるべきメモリの容量が肥大化してしまうという問題があった。特に、ＰＯＳ（Point of sale system）に接続してレシート等を印字するＰＯＳプリンタでは、比較的小容量のメモリを搭載していることが多く、Ｕｎｉｃｏｄｅに対応した大規模なフォントセットを記憶させることは難しい。
【００１１】
本発明は、このような問題を解決するために成されたものであり、ホストコンピュータとプリンタ以外に新たな設備を導入することなく、プリンタのメモリ容量も肥大化させることなく、ＣｏｄｅｐａｇｅおよびＵｎｉｃｏｄｅのどちらでも印刷できるようにすることを目的とする。
【課題を解決するための手段】
【００１２】
上記した課題を解決するために、本発明では、ホストコンピュータからプリンタに入力される印刷データの文字コードに応じて、第１の印刷制御部または第２の印刷制御部の何れかを処理対象として選択するようにしている。ここで、Ｃｏｄｅｐａｇｅによる文字コードを含む印刷データが入力された場合は、第１の印刷制御部を選択し、Ｃｏｄｅｐａｇｅにより表された文字列をＣｏｄｅｐａｇｅに対応したフォントにて印刷するように制御する。一方、Ｕｎｉｃｏｄｅによる文字コードを含む印刷データが入力された場合は、第２の印刷制御部を選択し、Ｕｎｉｃｏｄｅにより表された文字列をＣｏｄｅｐａｇｅに対応したフォントにて印刷するように制御する。ここで、第２の印刷制御部は、Ｕｎｉｃｏｄｅによる文字コードを含む印刷データがプリンタに入力された場合に、入力された印刷データのＵｎｉｃｏｄｅを、所定のＣｏｄｅｐａｇｅに対応したフォントデータに対応付けて、上記入力されたＵｎｉｃｏｄｅによる印刷データの文字列を、上記対応付けに基づいて、Ｃｏｄｅｐａｇｅに対応したフォントにて印刷するように制御する。
【発明の効果】
【００１３】
上記のように構成した本発明によれば、Ｃｏｄｅｐａｇｅによる文字コードを含む印刷データ、および、Ｕｎｉｃｏｄｅによる文字コードを含む印刷データの何れに関しても、ホストコンピュータからプリンタにそのまま入力し、プリンタの内部処理として、Ｃｏｄｅｐａｇｅに対応したフォントにて文字列が印刷される。そのため、ＵｎｉｃｏｄｅをＣｏｄｅｐａｇｅに変換するための印刷制御装置をホストコンピュータとプリンタとの間に設ける必要がなく、また、Ｕｎｉｃｏｄｅが持つ全ての文字コードに対応したフォントセットをプリンタにあらかじめ記憶させておく必要もない。これにより、ホストコンピュータとプリンタ以外に新たな設備を導入することなく、プリンタのメモリ容量も肥大化させることなく、ＣｏｄｅｐａｇｅおよびＵｎｉｃｏｄｅのどちらでも印刷することができるようになる。
【図面の簡単な説明】
【００１４】
【図１】本実施形態による印刷システムの構成例を示す図である。
【図２】本実施形態による第１のホストコンピュータのハードウェア構成例を示す図である。
【図３】本実施形態による第２のホストコンピュータのハードウェア構成例を示す図である。
【図４】本実施形態によるプリンタのハードウェア構成例を示す図である。
【図５】第１の実施形態によるホストコンピュータおよびプリンタの機能構成例を示す図である。
【図６】本実施形態によるＲＡＭおよび不揮発性メモリの記憶例を示す図である。
【図７】ＵｎｉｃｏｄｅからＣｏｄｅｐａｇｅへの変換テーブル情報の例を示す図である。
【図８】第１の実施形態によるプリンタの動作例を示すフローチャートである。
【図９】第２の実施形態によるホストコンピュータおよびプリンタの機能構成例を示す図である。
【図１０】第２の実施形態による印刷データ出力部が出力する印刷データのフォーマット例を示す図である。
【図１１】第２の実施形態によるプリンタの動作例を示すフローチャートである。
【図１２】第３の実施形態によるホストコンピュータおよびプリンタの機能構成例を示す図である。
【図１３】第３の実施形態によるプリンタの動作例を示すフローチャートである。
【発明を実施するための形態】
【００１５】
（第１の実施形態）
以下、本発明の一実施形態を図面に基づいて説明する。図１は、第１の実施形態による印刷システムの構成例を示す図である。図１に示すように、第１の実施形態による印刷システムは、ホストコンピュータ１０１，１０２と、当該ホストコンピュータ１０１，１０２から印刷データを入力して印刷を実行するプリンタ２００とを備えて構成されている。
【００１６】
第１のホストコンピュータ１０１は、例えば据え置き型のＰＯＳ端末であり、プリンタ２００との間はＵＳＢ（Universal Serial Bus）ケーブル３００により接続されている。また、第２のホストコンピュータ１０２は、例えば携帯型のＰＯＳ端末（スマートフォン、タブレット端末など）であり、プリンタ２００との間は無線ＬＡＮまたはブルートゥース等の無線ネットワーク４００により接続されている。なお、第１のホストコンピュータ１０１とプリンタ２００との間は、有線または無線のＬＡＮにより接続することも可能である。
【００１７】
本実施形態では一例として、第１のホストコンピュータ１０１は、Ｕｎｉｃｏｄｅに未対応のアプリケーションがインストールされた端末であり、当該アプリケーションにおいてＣｏｄｅｐａｇｅによる文字コードを含む印刷データを生成するものとする。一方、第２のホストコンピュータ１０２は、Ｕｎｉｃｏｄｅに対応したアプリケーションがインストールされた端末であり、当該アプリケーションにおいてＵｎｉｃｏｄｅによる文字コードを含む印刷データを生成するものとする。
【００１８】
なお、ここでは２つのホストコンピュータ１０１，１０２においてそれぞれＣｏｄｅｐａｇｅによる印刷データおよびＵｎｉｃｏｄｅによる印刷データを生成する例を示しているが、ＣｏｄｅｐａｇｅおよびＵｎｉｃｏｄｅの両方に対応した１つのホストコンピュータにおいて、Ｃｏｄｅｐａｇｅによる印刷データおよびＵｎｉｃｏｄｅによる印刷データを適宜使い分けるようにしてもよい。
【００１９】
ここで、Ｃｏｄｅｐａｇｅは、日本であれば、例えばＪＩＳ、シフトＪＩＳ、ＥＵＣ（Extended Unix Code）、ＩＳＯ−２０２２−ＪＰなどが該当する。一方、Ｕｎｉｃｏｄｅは、例えばＵＴＦ−８、ＵＴＦ−１６、ＵＴＦ−３２などが該当する。本実施形態では、第１のホストコンピュータ１０１のアプリケーションにおいてＣｏｄｅｐａｇｅによる印刷データを生成する際に、ＪＩＳ、シフトＪＩＳ、ＥＵＣ、ＩＳＯ−２０２２−ＪＰなどの中から何れかを任意に指定できるようになっている。同様に、第２のホストコンピュータ１０２のアプリケーションにおいてＵｎｉｃｏｄｅによる印刷データを生成する際に、ＵＴＦ−８、ＵＴＦ−１６、ＵＴＦ−３２などの中から何れかを任意に指定できるようになっている。
【００２０】
一般的な使い方としては、第１のホストコンピュータ１０１のアプリケーションに対して何れかのＣｏｄｅｐａｇｅをいったん設定すると、ユーザがその設定を変えることは殆どない。また、アプリケーションに初期設定されているＣｏｄｅｐａｇｅをそのまま使い、ユーザが特に設定を変えないことも多い。この場合、第１のホストコンピュータ１０１のアプリケーションにより生成される印刷データは何れも、当該アプリケーションに設定されたＣｏｄｅｐａｇｅに関するものとなる。
【００２１】
同様に、第２のホストコンピュータ１０２のアプリケーションに対して何れかのＵｎｉｃｏｄｅをいったん設定すると、ユーザがその設定を変えることは殆どない。また、アプリケーションに初期設定されているＵｎｉｃｏｄｅをそのまま使い、ユーザが特に設定を変えないことも多い。この場合、第２のホストコンピュータ１０２のアプリケーションにより生成される印刷データは何れも、当該アプリケーションに設定されたＵｎｉｃｏｄｅに関するものとなる。
【００２２】
プリンタ２００は、例えば、ＰＯＳ端末に接続してレシート等を印字するＰＯＳプリンタである。本実施形態のプリンタ２００は、Ｃｏｄｅｐａｇｅに対応するフォントセットのデータ（以下、フォントデータという）は記憶しているが、Ｕｎｉｃｏｄｅが持つ全ての文字コードに対応するフォントデータは記憶していない。
【００２３】
図２は、第１のホストコンピュータ１０１のハードウェア構成例を示す図である。また、図３は、第２のホストコンピュータ１０２のハードウェア構成例を示す図である。図２に示すように、第１のホストコンピュータ１０１は、そのハードウェア構成として、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、フラッシュ等の不揮発性メモリ２４、ＵＳＢ通信部２５、操作部２７、表示部２８およびハードディスク２９を備えている。図３に示すように、第２のホストコンピュータ１０２もほぼ同様のハードウェア構成を有している。ただし、第２のホストコンピュータ１０２は、ＵＳＢ通信部２５の代わりに無線通信部２６を備えている。
【００２４】
ＣＰＵ２１は、ＲＯＭ２２、不揮発性メモリ２４またはハードディスク２９に記憶されたプログラムに従って、ＲＡＭ２３をワークメモリとして用いながら、ホストコンピュータ１０１，１０２の動作を制御する。ＵＳＢ通信部２５は、プリンタ２００との間でＵＳＢケーブル３００を介してデータ通信を行う。例えば、ＵＳＢ通信部２５は、第１のホストコンピュータ１０１で生成された印刷データをプリンタ２００に送信する。
【００２５】
無線通信部２６は、プリンタ２００との間で無線ネットワーク４００を介してデータ通信を行う。例えば、無線通信部２６は、第２のホストコンピュータ１０２で生成された印刷データをプリンタ２００に送信する。操作部２７は、印刷データの生成や印刷指示などに関する操作をユーザが行うためのものであり、キーボードおよびマウス、またはタッチパネル等により構成される。表示部２８は、印刷データに係る文書などを表示するためのものであり、液晶ディスプレイ等により構成される。ハードディスク２９は、各種プログラムおよびデータを記憶する。ハードディスク２９が記憶するデータの中には、印刷データおよびフォントデータも含まれる。
【００２６】
図４は、プリンタ２００のハードウェア構成例を示す図である。図４に示すように、プリンタ２００は、そのハードウェア構成として、ＣＰＵ３１、ＲＯＭ３２、ＲＡＭ３３、フラッシュ等の不揮発性メモリ３４、ＵＳＢ通信部３５、無線通信部３６、操作部３７、表示部３８および印刷部３９を備えている。
【００２７】
ＣＰＵ３１は、ＲＯＭ３２または不揮発性メモリ３４に記憶されたプログラムに従って、ＲＡＭ３３をワークメモリとして用いながら、プリンタ２００の動作を制御する。ここで、プリンタ２００は、Ｃｏｄｅｐａｇｅにより表された文字列をＣｏｄｅｐａｇｅに対応したフォントにて印刷するＣｏｄｅｐａｇｅモードと、Ｕｎｉｃｏｄｅにより表された文字列をＣｏｄｅｐａｇｅに対応したフォントにて印刷するＵｎｉｃｏｄｅモードとを有している。本実施形態では、どの文字コードで印刷するかを示した文字コード設定情報がＲＡＭ３３に格納され、ＣＰＵ３１はこの文字コード設定情報に基づいて何れかのモードに従ってプリンタ２００の動作を制御する。文字コード設定情報は、ＣｏｄｅｐａｇｅであればＪＩＳ、シフトＪＩＳ、ＥＵＣ、ＩＳＯ−２０２２−ＪＰなどのうちどれで印刷するか、ＵｎｉｃｏｄｅであればＵＴＦ−８、ＵＴＦ−１６、ＵＴＦ−３２などのうちどれで印刷するかを示した情報である。
【００２８】
なお、不揮発性メモリ３４には、プリンタ２００の電源をオンとしたときに初期設定される初期文字コード情報が格納されており、この不揮発性メモリ３４の初期文字コード情報がＲＡＭ３３に文字コード設定情報として格納されることにより、Ｃｏｄｅｐａｇｅモードが初期設定されるようになっている。その後、印刷データに基づく印刷の実行時にＲＡＭ３３の文字コード設定情報を書き換えることにより、モードの設定を任意に切り替えることができるようになっている。
【００２９】
ＵＳＢ通信部３５は、第１のホストコンピュータ１０１との間でＵＳＢケーブル３００を介してデータ通信を行う。例えば、ＵＳＢ通信部３５は、第１のホストコンピュータ１０１で生成された印刷データを受信する。無線通信部３６は、第２のホストコンピュータ１０２との間で無線ネットワーク４００を介してデータ通信を行う。例えば、無線通信部３６は、第２のホストコンピュータ１０２で生成された印刷データを受信する。
【００３０】
操作部３７は、印刷データに基づく印刷、モードの初期設定などに関する操作をユーザが行うためのものであり、各種ボタンまたはタッチパネル等により構成される。表示部３８は、プリンタ２００の動作状態などを表示するためのものであり、液晶ディスプレイ等により構成される。印刷部３９は、ＣＰＵ３１から印刷実行の指示を受けて、印刷データに基づく印刷処理を実行する。すなわち、印刷部３９は、ホストコンピュータ１０１，１０２から入力した印刷データの文字コードに基づいて、当該文字コードで表わされる文字列の印刷を実行する。
【００３１】
図５は、第１の実施形態によるホストコンピュータ１０１，１０２およびプリンタ２００の機能構成例を示す図である。図５に示すように、ホストコンピュータ１０１，１０２は、その機能構成として、印刷データ生成部４１および印刷データ出力部４２を備えている。また、プリンタ２００は、その機能構成として、印刷データ入力部５１、処理選択部５２、第１の印刷制御部５３、第２の印刷制御部５４およびフォントデータ記憶部５５を備えている。
【００３２】
ここで、ホストコンピュータ１０１，１０２の印刷データ生成部４１および印刷データ出力部４２は、図２および図３に示したＣＰＵ２１の制御に従って、ＲＯＭ２２、不揮発性メモリ２４またはハードディスク２９に記憶されたプログラムが動作することによって実現される。また、プリンタ２００の印刷データ入力部５１、処理選択部５２、第１の印刷制御部５３および第２の印刷制御部５４は、図４に示したＣＰＵ３１の制御に従って、ＲＯＭ３２または不揮発性メモリ３４に記憶されたプログラムが動作することによって実現される。フォントデータ記憶部５５は、図４のＲＯＭ３２または不揮発性メモリ３４により構成される。あるいは、フォントデータ記憶部５５をハードディスク等の他の記憶媒体により構成してもよい。
【００３３】
ホストコンピュータ１０１，１０２の印刷データ生成部４１は、ユーザが操作部２７に対して行う操作を通じて、任意の文字列を含む印刷データを生成する。第１のホストコンピュータ１０１では、印刷データ生成部４１は、文字列をＣｏｄｅｐａｇｅによる文字コードで表した印刷データを生成する。一方、第２のホストコンピュータ１０２では、印刷データ生成部４１は、文字列をＵｎｉｃｏｄｅによる文字コードで表した印刷データを生成する。この印刷データは、どのフォントで文字列を印刷するかを指定するためのフォント指定情報を含んでいる。フォントの指定は、文字単位で行うことが可能である。
【００３４】
印刷データ出力部４２は、印刷データ生成部４１により生成された印刷データをプリンタ２００に向けて出力する。すなわち、第１のホストコンピュータ１０１では、印刷データ出力部４２は、Ｃｏｄｅｐａｇｅによる文字コードを含む印刷データをプリンタ２００に出力する。一方、第２のホストコンピュータ１０２では、印刷データ出力部４２は、Ｕｎｉｃｏｄｅによる文字コードを含む印刷データをプリンタ２００に出力する。第１の実施形態では、印刷データ出力部４２は、Ｃｏｄｅｐａｇｅによる文字コードを含む印刷データまたはＵｎｉｃｏｄｅによる文字コードを含む印刷データのどちらを出力する場合も、プリンタ２００の処理選択部５２において第１の印刷制御部５３または第２の印刷制御部５４の何れかを選択するための専用情報を付加することなく印刷データを出力する。
【００３５】
プリンタ２００の印刷データ入力部５１は、ホストコンピュータ１０１，１０２から印刷データを入力する。すなわち、印刷データ入力部５１は、Ｃｏｄｅｐａｇｅによる文字コードを含む印刷データを第１のホストコンピュータ１０１から入力する。また、印刷データ入力部５１は、Ｕｎｉｃｏｄｅによる文字コードを含む印刷データを第２のホストコンピュータ１０２から入力する。
【００３６】
処理選択部５２は、印刷データ入力部５１により入力された印刷データの文字コードに応じて、第１の印刷制御部５３または第２の印刷制御部５４の何れかを処理対象として選択する。ここで、印刷データ入力部５１により入力された印刷データの文字コードがＣｏｄｅｐａｇｅである場合、処理選択部５２は第１の印刷制御部５３を処理対象として選択する。一方、印刷データ入力部５１により入力された印刷データの文字コードがＵｎｉｃｏｄｅである場合、処理選択部５２は第２の印刷制御部５４を処理対象として選択する。
【００３７】
処理選択部５２による第１の印刷制御部５３または第２の印刷制御部５４の選択は、上述したＣｏｄｅｐａｇｅモードまたはＵｎｉｃｏｄｅモードの設定と同義である。具体的には、処理選択部５２は、ＲＡＭ３３に文字コード設定情報として記憶される文字コードに応じて、第１の印刷制御部５３または第２の印刷制御部５４の何れかを選択する。
【００３８】
図６は、ＲＡＭ３３および不揮発性メモリ３４の記憶例を示す図である。上述したように、不揮発性メモリ３４は、プリンタ２００の電源をオンとしたときに初期設定される初期文字コード情報３４ａを記憶している。この初期文字コード情報３４ａは、例えばユーザがプリンタ２００の操作部３７を操作することによって任意に設定することが可能である。
【００３９】
具体的には、ユーザが操作部３７を操作して所望の文字コード（各種Ｃｏｄｅｐａｇｅの何れか）を指定すると、指定された文字コードを表す指定文字コード情報３３ｃがＲＡＭ３３にいったん格納され、それが不揮発性メモリ３４に初期文字コード情報３４ａとして記憶される。なお、本実施形態では、ユーザが特に指定しない場合は、所定のＣｏｄｅｐａｇｅを表す初期文字コード情報３４ａが不揮発性メモリ３４にあらかじめ記憶されているものとする。
【００４０】
プリンタ２００の電源がオンにされると、処理選択部５２は、不揮発性メモリ３４に記憶されている初期文字コード情報３４ａを、ＲＡＭ３３に文字コード設定情報３３ａとして格納させる。これにより、Ｃｏｄｅｐａｇｅモードがプリンタ２００に初期設定される。そして、初期設定されたＣｏｄｅｐａｇｅモードに従って、第１の印刷制御部５３が選択されて動作するようになっている。
【００４１】
その後、ホストコンピュータ１０１，１０２から印刷データ入力部５１が印刷データを入力したとき、その印刷データの文字コードが、ＲＡＭ３３に文字コード設定情報３３ａとして記憶されている文字コードと異なる場合には、処理選択部５２がＲＡＭ３３の文字コード設定情報３３ａを印刷データの文字コードに書き換える。このとき処理選択部５２は、印刷データの文字コードに応じて、モードの設定を必要に応じて切り替える。
【００４２】
例えば、文字コード設定情報３３ａとして各種Ｃｏｄｅｐａｇｅの何れかの文字コードが記憶されている場合において、印刷データ入力部５１がＵｎｉｃｏｄｅによる印刷データを入力したとき、処理選択部５２はＲＡＭ３３の文字コード設定情報３３ａを書き換える。このとき、処理選択部５２は、ＣｏｄｅｐａｇｅモードからＵｎｉｃｏｄｅモードに切り替えを行うことにより、第１の印刷制御部５３に代えて第２の印刷制御部５４を動作させる。
【００４３】
なお、文字コード設定情報３３ａとして各種Ｃｏｄｅｐａｇｅのうち何れかの文字コードが記憶されている場合において、印刷データ入力部５１が各種Ｃｏｄｅｐａｇｅのうち別の文字コードによる印刷データを入力したとき、文字コード設定情報３３ａを書き換えても、処理選択部５２はモードの切り替えを行わず、Ｃｏｄｅｐａｇｅモードのままとする。この場合、第１の印刷制御部５３が引き続き動作する。
【００４４】
第１の実施形態では、処理選択部５２は、印刷データ入力部５１により入力された印刷データの先頭から所定量のデータを参照することにより、入力された印刷データがＣｏｄｅｐａｇｅによるものかＵｎｉｃｏｄｅによるものかを判別し、その判別結果に応じて、第１の印刷制御部５３または第２の印刷制御部５４の何れかを選択する。すなわち、Ｕｎｉｃｏｄｅには一定のフォーマットがあり、印刷データの先頭から所定量のデータを解析すれば、それがＵｎｉｃｏｄｅか否かを判別することができる。
【００４５】
処理選択部５２は、印刷データの入力時に、文字コード設定情報３３ａを文字コード退避情報３３ｂとして退避記憶させた上で、新たな文字コードを文字コード設定情報３３ａとして記憶させる。その後、入力された印刷データの印刷が終了した際に、処理選択部５２は、退避記憶しておいた文字コード退避情報３３ｂを文字コード設定情報３３ａとして記憶させることにより、文字コードの設定状態を元に戻すようにする。
【００４６】
このようにすることで、例えば第１のホストコンピュータ１０１のアプリケーションによってＣｏｄｅｐａｇｅの印刷データを印刷した後、第２のホストコンピュータ１０２のアプリケーションによってＵｎｉｃｏｄｅの印刷データを印刷した場合、Ｕｎｉｃｏｄｅの印刷データに基づく印刷が終了した時点で、文字コード設定情報３３ａが元のＣｏｄｅｐａｇｅの情報に戻される。これにより、その後再び第１のホストコンピュータ１０１のアプリケーションによってＣｏｄｅｐａｇｅの印刷データを印刷する際に、文字コード設定情報３３ａを書き換える必要がなく、そのまま使用することができる。
【００４７】
なお、処理選択部５２は、第１の印刷制御部５３を選択している状態から第２の印刷制御部５４を選択する状態に切り替える際にのみ、文字コード設定情報３３ａを文字コード退避情報３３ｂとして退避記憶させ、印刷終了時に第２の印刷制御部５４を選択している状態から第１の印刷制御部５３を選択する状態に戻す際に、文字コード退避情報３３ｂを文字コード設定情報３３ａとして再び記憶させることにより、元のＣｏｄｅｐａｇｅの設定状態に戻すようにしてもよい。
【００４８】
第１の印刷制御部５３は、印刷データ入力部５１によりＣｏｄｅｐａｇｅによる文字コードを含む印刷データを入力した場合に、当該Ｃｏｄｅｐａｇｅにより表された文字列をＣｏｄｅｐａｇｅに対応したフォントにて印刷するように制御する。この制御のために第１の印刷制御部５３は、より具体的な機能構成として、フォントデータ指定部５３ａを備えている。
【００４９】
フォントデータ指定部５３ａは、フォントデータ記憶部５５に記憶されている各種フォントに関するフォントデータの中から、印刷データに含まれているフォント指定情報により指定されるフォントデータを指定して読み出す。第１の印刷制御部５３は、フォントデータ記憶部５５から読み出したフォントデータを用いて、印刷データに含まれる各文字を表す文字コードに基づいて文字列の印刷を実行する。
【００５０】
第２の印刷制御部５４は、印刷データ入力部５１によりＵｎｉｃｏｄｅによる文字コードを含む印刷データを入力した場合に、当該Ｕｎｉｃｏｄｅにより表された文字列をＣｏｄｅｐａｇｅに対応したフォントにて印刷するように制御する。この制御のために第２の印刷制御部５４は、より具体的な機能構成として、文字コード変換部５４ａおよびフォントデータ指定部５４ｂを備えている。
【００５１】
文字コード変換部５４ａは、印刷データ入力部５１により入力された印刷データのＵｎｉｃｏｄｅをＣｏｄｅｐａｇｅに変換する。ここで変換するＣｏｄｅｐａｇｅは、あらかじめ定めた文字コードである。Ｕｎｉｃｏｄｅから所定のＣｏｄｅｐａｇｅへの変換は、例えば図７に例示するコード変換テーブル情報を用いて実行する。図７の例では、Ｕｎｉｃｏｄｅから変換する所定のＣｏｄｅｐａｇｅをＪＩＳコードとしている。
【００５２】
なお、ある文字の文字コードがＵｎｉｃｏｄｅでは存在するが、Ｃｏｄｅｐａｇｅでは存在しないというケースもある。この場合、コード変換テーブル情報には、Ｕｎｉｃｏｄｅに対応する文字コードがＪＩＳコードには存在しないことを示す「□」や「・」などの文字コードを、代替用の文字コードとしてセットしておく。
【００５３】
フォントデータ指定部５４ｂは、文字コード変換部５４ａにより変換されたＣｏｄｅｐａｇｅ（ＪＩＳコード）に対応したフォントデータを指定する。すなわち、フォントデータ指定部５４ｂは、フォントデータ記憶部５５に記憶されている各種フォントに関するフォントデータの中から、印刷データに含まれているフォント指定情報により指定されるフォントで、かつ、文字コード変換部５４ａにより変換されたＣｏｄｅｐａｇｅ（ＪＩＳコード）に対応したフォントデータを指定して読み出す。
【００５４】
第２の印刷制御部５４は、印刷データ入力部５１により入力されたＵｎｉｃｏｄｅによる印刷データの文字列を、文字コード変換後のＣｏｄｅｐａｇｅにより示される各文字を表す文字コードに基づいて印刷する。このとき、第２の印刷制御部５４は、上述のようにフォントデータ記憶部５５から読み出したフォントデータを用いて、文字コード変換後のＣｏｄｅｐａｇｅに対応したフォントにて文字列を印刷するように制御する。
【００５５】
図８は、上記のように構成した第１の実施形態によるプリンタ２００の動作例を示すフローチャートである。図８に示すフローチャートは、プリンタ２００の電源をオンとしたときに開始する。
【００５６】
プリンタ２００の電源がオンにされると、まず、処理選択部５２は、不揮発性メモリ３４に記憶されている初期文字コード情報３４ａを、ＲＡＭ３３に文字コード設定情報３３ａとして記憶させる。そして、処理選択部５２は、ＲＡＭ３３に文字コード設定情報３３ａとして記憶された文字コードに応じて、Ｃｏｄｅｐａｇｅモードをプリンタ２００に初期設定する（ステップＳ１）。
【００５７】
その後、印刷データ入力部５１は、ホストコンピュータ１０１，１０２から印刷データを入力したか否かを判定する（ステップＳ２）。印刷データ入力部５１が印刷データを入力した場合、処理選択部５２は、ＲＡＭ３３に記憶されている文字コード設定情報３３ａを文字コード退避情報３３ｂとして退避記憶させた上で、入力された印刷データの文字コードを文字コード設定情報３３ａとして記憶させる（ステップＳ３）。
【００５８】
さらに、処理選択部５２は、入力された印刷データの先頭から所定量のデータを参照することにより、その印刷データがＣｏｄｅｐａｇｅによるものかＵｎｉｃｏｄｅによるものかを判別する（ステップＳ４）。ここで、印刷データがＵｎｉｃｏｄｅによるものであると判定された場合、処理選択部５２は、Ｕｎｉｃｏｄｅモードを設定して、第２の印刷制御部５４を処理対象として選択する（ステップＳ５）。この場合、ＲＡＭ３３に格納された文字コード設定情報３３ａの内容が、当初のＣｏｄｅｐａｇｅに対応した文字コード（ＪＩＳ、シフトＪＩＳ、ＥＵＣ、ＩＳＯ−２０２２−ＪＰなど）から、Ｕｎｉｃｏｄｅに対応した文字コード（ＵＴＦ−８、ＵＴＦ−１６、ＵＴＦ−３２など）に書き換えられる。
【００５９】
処理対象として選択された第２の印刷制御部５４は、文字コード変換部５４ａにより、印刷データを構成している各文字に対応する各文字コードを順に、ＵｎｉｃｏｄｅからＣｏｄｅｐａｇｅに変換する（ステップＳ６）。また、フォントデータ指定部５４ｂは、印刷データに含まれているフォント指定情報により指定されるフォントで、文字コード変換部５４ａにより変換されたＣｏｄｅｐａｇｅに対応したフォントデータを指定する（ステップＳ７）。そして、第２の印刷制御部５４は、文字コード変換後のＣｏｄｅｐａｇｅにより示される各文字を表す文字コードに基づいて、文字コード変換後のＣｏｄｅｐａｇｅに対応したフォントにて文字列の印刷を実行する（ステップＳ８）。
【００６０】
そして、第２の印刷制御部５４は、印刷が終了したか否かを判定する（ステップＳ９）。まだ印刷が終了していない場合、処理はステップＳ６に戻る。以降、ステップＳ６〜Ｓ９の処理を繰り返し実行する。その後、印刷が終了すると、処理選択部５２は、Ｃｏｄｅｐａｇｅモードを設定して、第１の印刷制御部５３を処理対象として選択する状態に戻す（ステップＳ１０）。また、処理選択部５２は、文字コード退避情報３３ｂとして退避記憶しておいた元の文字コードを文字コード設定情報３３ａとして再び記憶させる（ステップＳ１１）。これにより、図８に示すフローチャートの処理は終了する。
【００６１】
上記ステップＳ４において、印刷データ入力部５１により入力された印刷データがＣｏｄｅｐａｇｅによるものであると判定された場合、処理対象として初期設定されている第１の印刷制御部５３は、フォントデータ指定部５３ａにより、印刷データに含まれているフォント指定情報により指定されるフォントデータを指定する（ステップＳ１２）。そして、第１の印刷制御部５３は、印刷データに含まれる各文字を表す文字コードに基づいて、指定されたフォントデータにて文字列の印刷を実行する（ステップＳ１３）。
【００６２】
そして、第１の印刷制御部５３は、印刷が終了したか否かを判定する（ステップＳ１４）。まだ印刷が終了していない場合、処理はステップＳ１２に戻る。以降、ステップＳ１２〜Ｓ１４の処理を繰り返し実行する。その後、印刷が終了すると、処理選択部５２は、文字コード退避情報３３ｂとして退避記憶しておいた元の文字コードを文字コード設定情報３３ａとして再び記憶させる（ステップＳ１１）。これにより、図８に示すフローチャートの処理は終了する。
【００６３】
なお、上記ステップＳ２において、印刷データ入力部５１が印刷データを入力していないと判定した場合、ＣＰＵ３１は、所望の文字コードを初期文字コード情報３４ａとして不揮発性メモリ３４に記憶させるための操作が行われたか否かを判定する（ステップＳ１５）。そのような操作が行われていない場合、処理はステップＳ２に戻る。一方、そのような操作が行われた場合、当該操作によって指定された文字コードを初期文字コード情報３４ａとして不揮発性メモリ３４に記憶させた後（ステップＳ１６）、処理はステップＳ２に戻る。
【００６４】
以上詳しく説明したように、第１の実施形態では、ホストコンピュータ１０１，１０２からプリンタ２００に入力される印刷データの文字コードに応じて、第１の印刷制御部５３または第２の印刷制御部５４の何れかを処理対象として選択するようにしている。ここで、Ｃｏｄｅｐａｇｅによる文字コードを含む印刷データが入力された場合は、第１の印刷制御部５３を選択し、Ｃｏｄｅｐａｇｅにより表された文字列をＣｏｄｅｐａｇｅに対応したフォントにて印刷するように制御する。一方、Ｕｎｉｃｏｄｅによる文字コードを含む印刷データが入力された場合は、第２の印刷制御部５４を選択し、ＵｎｉｃｏｄｅをＣｏｄｅｐａｇｅに変換した上で、Ｃｏｄｅｐａｇｅに対応したフォントにて文字列を印刷するようにしている。
【００６５】
上記のように構成した第１の実施形態によれば、Ｃｏｄｅｐａｇｅによる文字コードを含む印刷データ、および、Ｕｎｉｃｏｄｅによる文字コードを含む印刷データの何れに関しても、ホストコンピュータ１０１，１０２からプリンタ２００にそのまま入力し、プリンタ２００の内部処理として、Ｃｏｄｅｐａｇｅに対応したフォントにて文字列が印刷される。そのため、ＵｎｉｃｏｄｅをＣｏｄｅｐａｇｅに変換するための印刷制御装置をホストコンピュータ１０１，１０２とプリンタ２００との間に設ける必要がなく、また、Ｕｎｉｃｏｄｅに対応したフォントセットをプリンタ２００にあらかじめ記憶させておく必要もない。これにより、ホストコンピュータ１０１，１０２とプリンタ２００以外に新たな設備を導入することなく、プリンタ２００のメモリ容量も肥大化させることなく、ＣｏｄｅｐａｇｅおよびＵｎｉｃｏｄｅのどちらでも印刷することができるようになる。
【００６６】
（第２の実施形態）
次に、本発明の第２の実施形態を図面に基づいて説明する。第２の実施形態による印刷システムの全体構成、ホストコンピュータ１０１，１０２のハードウェア構成およびプリンタ２００のハードウェア構成は、それぞれ図１〜図４に示したものと同じである。
【００６７】
図９は、第２の実施形態によるホストコンピュータ１０１，１０２およびプリンタ２００の機能構成例を示す図である。なお、図９において、図５に示した符号と同一の符号を付したものは同一の機能を有するものであるので、ここでは重複する説明を省略する。第２の実施形態では、ホストコンピュータ１０１，１０２の印刷データ出力部４２に代えて印刷データ出力部４２’を備えている。また、プリンタ２００の処理選択部５２に代えて処理選択部５２’を備えている。
【００６８】
印刷データ出力部４２’は、Ｕｎｉｃｏｄｅによる文字コードを含む印刷データを出力する場合は、印刷データの先頭に文字コード切替コマンドを付加して印刷データを出力する。この印刷データ出力部４２’の機能は、例えばホストコンピュータ１０１，１０２にインストールされたプリンタドライバにより実現される。
【００６９】
図１０は、印刷データ出力部４２’が出力する印刷データのフォーマット例を示す図である。図１０（ａ）は、Ｃｏｄｅｐａｇｅによる文字コードを含む印刷データを出力する場合のフォーマットを示している。図１０（ｂ）は、Ｕｎｉｃｏｄｅによる文字コードを含む印刷データを出力する場合のフォーマットを示している。
【００７０】
図１０（ａ）のように、Ｃｏｄｅｐａｇｅによる文字コードを含む印刷データを出力する場合は、プリンタ２００の処理選択部５２’において第１の印刷制御部５３または第２の印刷制御部５４の何れかを選択するための専用情報として文字コード切替コマンドを付加することなく印刷データを出力する。
【００７１】
一方、図１０（ｂ）のように、Ｕｎｉｃｏｄｅによる文字コードを含む印刷データを出力する場合、印刷データ出力部４２’は、印刷データの先頭にＵｎｉｃｏｄｅ突入コマンドを付加する。また、図１０（ｂ）の例では、印刷データの末尾にＵｎｉｃｏｄｅ解除コマンドを付加している。この前後のコマンドが文字コード切替コマンドに相当する。すなわち、印刷データ出力部４２’は、印刷データの前後にＵｎｉｃｏｄｅ突入コマンドとＵｎｉｃｏｄｅ解除コマンドとを付加した状態で、印刷データをプリンタ２００に出力する。
【００７２】
なお、印刷データに対する文字コード切替コマンドの付加を印刷データ生成部４１において行い、文字コード切替コマンドが付加された状態の印刷データを印刷データ出力部４２’が印刷データ生成部４１から入力してプリンタ２００に出力するようにしてもよい。この場合、印刷データ生成部４１の機能は、例えばホストコンピュータ１０１，１０２にインストールされたアプリケーションにより実現される。
【００７３】
処理選択部５２’は、印刷データ入力部５１により入力された印刷データの先頭に文字コード切替コマンド（Ｕｎｉｃｏｄｅ突入コマンド）が付加されているか否かを判別し、その判別結果に応じて、第１の印刷制御部５３または第２の印刷制御部５４の何れかを選択する。具体的には、処理選択部５２’は、印刷データの先頭にＵｎｉｃｏｄｅ突入コマンドが付加されていない場合は第１の印刷制御部５３を選択し、Ｕｎｉｃｏｄｅ突入コマンドが付加されている場合は第２の印刷制御部５４を選択する。
【００７４】
また、処理選択部５２’は、Ｕｎｉｃｏｄｅ突入コマンドが付加されている印刷データに関する印刷を第２の印刷制御部５４により実行した後、当該印刷データの末尾に付加されているＵｎｉｃｏｄｅ解除コマンドを検出したときに、第１の印刷制御部５３を選択する状態に戻す。
【００７５】
図１１は、上記のように構成した第２の実施形態によるプリンタ２００の動作例を示すフローチャートである。図１１に示すフローチャートは、プリンタ２００の電源をオンとしたときに開始する。なお、この図１１において、図８に示したステップ番号と同一のステップ番号を付したものは同一の処理内容を示すものであるので、ここでは重複する説明を省略する。図１１において、図８の処理内容と異なるのは、ステップＳ２４およびステップＳ２９である。
【００７６】
ステップＳ２４では、処理選択部５２’は、入力された印刷データの先頭にＵｎｉｃｏｄｅ突入コマンドが付加されているか否かを確認することにより、その印刷データがＣｏｄｅｐａｇｅによるものかＵｎｉｃｏｄｅによるものかを判別する。ステップＳ２９では、印刷データの末尾に付加されているＵｎｉｃｏｄｅ解除コマンドを検出したか否かを確認する。そして、Ｕｎｉｃｏｄｅ解除コマンドが検出された場合、処理選択部５２’は、Ｃｏｄｅｐａｇｅモードを設定して、第１の印刷制御部５３を処理対象として選択する状態に戻す（ステップＳ１０）。
【００７７】
このように構成した第２の実施形態によれば、印刷データの先頭から所定量のデータを参照することによってＵｎｉｃｏｄｅか否かを判定する第１の実施形態に比べて、判定を高速かつ確実に行うことができるというメリットを有する。すなわち、第１の実施形態のように印刷データ自体の内容を確認する場合、確認に使用するデータ量が少ないと、Ｃｏｄｅｐａｇｅによる印刷データの先頭に記述されている文字コードが偶然にもＵｎｉｃｏｄｅのフォーマットと一致してしまうことがある。この場合、本来はＣｏｄｅｐａｇｅであるものをＵｎｉｃｏｄｅと誤判定してしまうことになる。これを避けるためには、判定に使用するデータ量を多くする必要があるため、判定により多くの時間がかかってしまう。
【００７８】
これに対して、第２の実施形態のように、印刷データ自体の内容でＵｎｉｃｏｄｅか否かを判定するのではなく、専用情報として付加したＵｎｉｃｏｄｅ突入コマンドの有無によってＵｎｉｃｏｄｅか否かを判定することにより、第１の実施形態と比べて判定に使用するデータ量を少なくしつつも誤判定を回避することができる。すなわち、Ｕｎｉｃｏｄｅか否かの判定を高速かつ確実に行うことができる。
【００７９】
（第３の実施形態）
次に、本発明の第３の実施形態を図面に基づいて説明する。第３の実施形態による印刷システムの全体構成、ホストコンピュータ１０１，１０２のハードウェア構成およびプリンタ２００のハードウェア構成は、それぞれ図１〜図４に示したものと同じである。
【００８０】
図１２は、第３の実施形態によるホストコンピュータ１０１，１０２およびプリンタ２００の機能構成例を示す図である。なお、図１２において、図５に示した符号と同一の符号を付したものは同一の機能を有するものであるので、ここでは重複する説明を省略する。第３の実施形態では、プリンタ２００の第２の印刷制御部５４に代えて第２の印刷制御部５４’を備えている。
【００８１】
第２の印刷制御部５４’は、具体的な機能構成として、フォントデータ対応付け部５４ｃを備えている。フォントデータ対応付け部５４ｃは、印刷データ入力部５１によりＵｎｉｃｏｄｅによる文字コードを含む印刷データを入力した場合に、入力された印刷データのＵｎｉｃｏｄｅを、所定のＣｏｄｅｐａｇｅ（例えば、ＪＩＳコード）に対応したフォントデータに対応付ける処理を行う。
【００８２】
第３の実施形態では、ＵｎｉｃｏｄｅをＣｏｄｅｐａｇｅに変換する処理は行わず、Ｕｎｉｃｏｄｅによる文字コードのままで、Ｃｏｄｅｐａｇｅに対応したフォントデータを用いて印刷を実行する。例えば、Ｕｎｉｃｏｄｅで「あ」という文字の文字コード“３０４２”が入力された場合、それを図７に示したコード変換テーブル情報に従ってＪＩＳコードの文字コード“２４２２”に変換するのではなく、当該文字コード“２４２２”に対応するＪＩＳコードのフォントを指定して印刷を実行する。そのためにフォントデータ対応付け部５４ｃは、Ｕｎｉｃｏｄｅによる「あ」の文字の文字コード“３０４２”を、ＪＩＳコードに対応したフォントデータのうち「あ」のフォントを示すアドレスに対応付ける。この対応付けは、あらかじめ用意されたアドレス変換テーブルに従って行う。
【００８３】
なお、ある文字の文字コードがＵｎｉｃｏｄｅでは存在するが、Ｃｏｄｅｐａｇｅでは存在しないというケースもある。Ｕｎｉｃｏｄｅに対応するＣｏｄｅｐａｇｅの文字コードが存在しないということは、その文字についてはＣｏｄｅｐａｇｅに対応したフォントも存在しないということである。この場合、アドレス変換テーブルには、対応フォントが存在しないことを示す「□」や「・」などを代替フォントのアドレスとしてセットしておく。
【００８４】
第２の印刷制御部５４’は、印刷データ入力部５１により入力されたＵｎｉｃｏｄｅによる印刷データの文字列を、フォントデータ対応付け部５４ｃによる対応付けに基づいて、Ｃｏｄｅｐａｇｅに対応したフォントにて印刷するように制御する。すなわち、第２の印刷制御部５４’は、フォントデータ対応付け部５４ｃにより対応付けられたアドレスにあるフォントを用いて文字列を印刷する。これにより、Ｕｎｉｃｏｄｅの文字コードに対応するＣｏｄｅｐａｇｅの文字コードが存在すれば、その文字コードで示される文字は正しいフォントで印刷される。なお、Ｕｎｉｃｏｄｅの文字コードに対応するＣｏｄｅｐａｇｅの文字コードが存在しない場合は、「□」や「・」などの代替文字が印刷されることとなる。
【００８５】
図１３は、上記のように構成した第３の実施形態によるプリンタ２００の動作例を示すフローチャートである。図１３に示すフローチャートは、プリンタ２００の電源をオンとしたときに開始する。なお、この図１３において、図８に示したステップ番号と同一のステップ番号を付したものは同一の処理内容を示すものであるので、ここでは重複する説明を省略する。図１３において、図８の処理内容と異なる点は、ステップＳ６の処理を行わない点、ステップＳ７に代えてステップＳ３７の処理を行う点である。
【００８６】
ステップＳ３７では、フォントデータ対応付け部５４ｃが、アドレス変換テーブルを参照することにより、入力された印刷データのＵｎｉｃｏｄｅを、所定のＣｏｄｅｐａｇｅに対応したフォントデータに対応付ける処理を行う。次のステップＳ８では、第２の印刷制御部５４’が、印刷データ入力部５１により入力されたＵｎｉｃｏｄｅによる印刷データの文字列を、フォントデータ対応付け部５４ｃによる対応付けに基づいて、Ｃｏｄｅｐａｇｅに対応したフォントにて印刷する。
【００８７】
このように構成した第３の実施形態によれば、プリンタ２００においてＵｎｉｃｏｄｅをＣｏｄｅｐａｇｅに変換する処理を省略することができるので、印刷速度を向上させることができるというメリットを有する。
【００８８】
なお、上記第１〜第３の実施形態では、プリンタ２００がＰＯＳプリンタである例について説明したが、本発明はこれに限定されない。上述したように、ＰＯＳプリンタでは比較的小容量のメモリを搭載していることが多く、Ｕｎｉｃｏｄｅに対応した大規模なフォントセットを記憶させることは難しいため、第１〜第３の実施形態を適用した場合の効果は大きいが、ＰＯＳプリンタ以外のプリンタに適用した場合も同様の効果を得ることができる。
【００８９】
また、上記第１〜第３の実施形態では、プリンタ２００の操作部３７の操作を通じて、不揮発性メモリ３４の初期文字コード情報３４ａを任意に書き換えることが可能であることを説明したが、ホストコンピュータ１０１，１０２の操作部２７の操作を通じて、不揮発性メモリ３４の初期文字コード情報３４ａを任意に書き換えることができるようにしてもよい。
【００９０】
また、第３の実施形態において第２の実施形態を適用するようにしてもよい。すなわち、図１２に示す機能構成において、ホストコンピュータ１０１，１０２の印刷データ出力部４２に代えて印刷データ出力部４２’を備えるとともに、プリンタ２００の処理選択部５２に代えて処理選択部５２’を備えるようにしてもよい。
【００９１】
また、上記第１〜第３の実施形態では、Ｃｏｄｅｐａｇｅモードを初期設定とし、その後、印刷データに基づく印刷の実行時にＵｎｉｃｏｄｅモードに適宜切り替える例について説明したが、本発明はこれに限定されない。上記実施形態とは逆に、Ｕｎｉｃｏｄｅモードを初期設定とし、印刷データに基づく印刷の実行時にＣｏｄｅｐａｇｅモードに適宜切り替えるようにしてもよい。
【００９２】
また、上記第１〜第３の実施形態では、印刷データの入力時に第１の印刷制御部５３と第２の印刷制御部５４との間で選択を切り替える際に、文字コード設定情報３３ａを文字コード退避情報３３ｂとして退避記憶させる例について説明したが、本発明はこれに限定されない。例えば、プリンタ２００の電源がオンとされたときに、不揮発性メモリ３４に記憶されている初期文字コード情報３４ａをＲＡＭ３３に文字コード設定情報３３ａとして記憶させる際に、文字コード設定情報３３ａと同時に文字コード退避情報３３ｂも記憶させるようにしてもよい。
【００９３】
あるいは、印刷データの入力時に、第１の印刷制御部５３と第２の印刷制御部５４との間で選択を切り替えるか否か（すなわち、ＣｏｄｅｐａｇｅモードとＵｎｉｃｏｄｅモードとの切り替えを行うか否か）に拘わらず、文字コード設定情報３３ａを文字コード退避情報３３ｂとして退避記憶させるようにしてもよい。この場合、初期設定がＣｏｄｅｐａｇｅモードで、初期設定とは異なるＣｏｄｅｐａｇｅの印刷データを入力した場合（例えば、初期設定された文字コードがＪＩＳで、その後に入力された印刷データの文字コードがシフトＪＩＳのような場合）、および、初期設定がＵｎｉｃｏｄｅモードで、初期設定とは異なるＵｎｉｃｏｄｅの印刷データを入力した場合（例えば、初期設定された文字コードがＵＴＦ−８で、その後に入力された印刷データの文字コードがＵＴＦ−１６のような場合）であっても、文字コード設定情報３３ａを文字コード退避情報３３ｂとして退避記憶させることになる。
【００９４】
その他、上記第１〜第３の実施形態は、何れも本発明を実施するにあたっての具体化の一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその要旨、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００９５】
３３  ＲＡＭ
３４  不揮発性メモリ
４２，４２’  印刷データ出力部
５１  印刷データ入力部
５２，５２’  処理選択部
５３  第１の印刷制御部
５３ａ  フォントデータ指定部
５４，５４’  第２の印刷制御部
５４ａ  文字コード変換部
５４ｂ  フォントデータ指定部
５４ｃ  フォントデータ対応付け部
５５  フォントデータ記憶部
１０１，１０２  ホストコンピュータ（ＰＯＳ端末）
２００  プリンタ（ＰＯＳプリンタ）
【図１】
0006340994.tif 000002
【図２】
0006340994.tif 000003
【図３】
0006340994.tif 000004
【図４】
0006340994.tif 000005
【図５】
0006340994.tif 000006
【図６】
0006340994.tif 000007
【図７】
0006340994.tif 000008
【図８】
0006340994.tif 000009
【図９】
0006340994.tif 000010
【図１０】
0006340994.tif 000011
【図１１】
0006340994.tif 000012
【図１２】
0006340994.tif 000013
【図１３】
0006340994.tif 000014