説明

記録制御装置、記録システム、記録制御方法、及び、プログラム

【課題】記録装置が内蔵するフォントデータに適合した文字コードを記録装置に与えることで、必要な文字を確実に記録させる。
【解決手段】複数の文字コードセットの文字コードに対応するフォントデータを使用して文字を記録する記録装置を制御するホストコンピューター10は、記録対象データに対応する汎用文字コードセットの文字コードを、所定の文字コードセットの文字コードに変換し、変換された文字コードがプリンター20によって対応可能か否かを判定し、対応可能でないと判定した場合に、プリンター20が対応する文字コードセットの文字コードに変換し、変換した文字コードを含む記録対象データをプリンター20に出力する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、記録媒体に文字を記録する記録装置を制御する記録制御装置、当該記録装置を有する記録システム、記録制御方法、及び、プログラムに関する。
【背景技術】
【0002】
従来、文字の記録に使用するためのフォントデータをROM等の記憶媒体に記憶(内蔵)し、記憶したフォントデータに基づいて文字の記録を行う記録装置が知られている(例えば、特許文献1参照)。この種の記録装置は、通常、複数の言語に対応できるように言語毎に複数の文字コードセット(文字コード体系、キャラクターセット)に対応している。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平6−183071号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
記録装置に接続される記録制御装置を構成するコンピューターシステムは、近年、Unicode等の汎用文字コードセットを使用することが多くなっているが、記録装置は依然として従来の文字コードセットを採用することが多い。この場合、記録装置を制御するコンピューター側で、記録する文字コードを、記録装置が用いる文字コードセットの文字コードに変換して記録装置に出力することになる。しかしながら、一つの文字コードセットの文字コードに対応する全てのフォントデータを収容するには記憶容量の大きいメモリーが必要となるため、記録装置が文字コードセットの全てのフォントデータを有しているとは限らない。また、異なる文字コードセット間も含め、全ての文字コードがフォントデータに対し1対1で対応しているとは限らない。このため、記録制御装置が生成した文字コードに対応するフォントデータを記録装置が内蔵していないために、当該文字コードの文字を記録できない可能性があった。
本発明は、上述した事情に鑑みてなされたものであり、記録装置が内蔵するフォントデータに適合した文字コードを記録装置に与えることで、必要な文字を確実に記録させることが可能な記録制御装置、記録システム、記録装置の制御方法、及び、プログラムを提供することを目的とする。
【課題を解決するための手段】
【0005】
上記目的を達成するために、本発明は、複数の文字コードセットの文字コードに対応するフォントデータを記憶し、前記フォントデータを使用して文字を記録する記録装置を制御する記録制御装置であって、記録対象データに対応する汎用文字コードセットの文字コードを、所定の文字コードセットの文字コードに変換する第1のコード変換手段と、前記汎用文字コードセットの文字コード、または前記所定の文字コードセットの文字コードを、前記記録装置が対応する文字コードセットの文字コードに変換する第2のコード変換手段と、前記第1のコード変換手段により変換された文字コードが前記記録装置によって対応可能か否かを判定し、対応可能でないと判定した場合に前記第2のコード変換手段により前記記録装置が対応する文字コードセットの文字コードに変換し、変換した前記文字コードを前記記録装置に出力する制御手段とを備えることを特徴とする。
本発明によれば、記録制御装置が所定の文字コードセットの文字コードに変換し、この文字コードに該当するフォントデータがない、または文字コードに対応していないなどで記録装置が記録を行えない場合に、記録装置が対応している別の文字コードセットの文字コードに変換して記録装置に出力するので、記録装置が内蔵するフォントデータに適した文字コードを用いて、記録対象データの文字を確実に記録できる。
【0006】
また、本発明は、上記記録制御装置において、前記制御手段は、前記記録装置が対応する文字コードにおいて、前記第1のコード変換手段により変換された文字コードに対応するものの有無を判定し、前記第1のコード変換手段により変換された文字コードに対応するものがない場合には、前記第2のコード変換手段により前記記録装置が対応する文字コードに変換することを特徴とする。
本発明によれば、記録制御装置が所定の文字コードセットの文字コードを生成し、この文字コードに対応する文字コードを記録装置が持っていない場合に、別の文字コードセットの文字コードに変換して記録装置に出力するので、記録装置が内蔵するフォントデータに適した文字コードを用いて、記録対象データの文字を確実に記録できる。
【0007】
また、本発明は、上記記録制御装置において、前記第1のコード変換手段が変換する前記所定の文字コードセットの文字コードのうち、前記記録装置が対応していない文字コードとの関係を示す設定データを記憶する記憶手段を備え、前記制御手段は、前記記憶手段に記憶された設定データに基づいて、前記第1のコード変換手段により変換された文字コードに対応する前記記録装置の文字コードの有無を判定することを特徴とする。
本発明によれば、第1のコード変換手段が変換した文字コードに記録装置が対応しているか否かを、より速やかに判定できる。
【0008】
また、本発明は、上記記録制御装置において、前記制御手段は、前記記録対象データに対応する汎用文字コードセットの文字コードに前記第1のコード変換手段が対応していない文字コードであり、前記記録装置が対応している文字コードセットの文字コードである場合、前記第2のコード変換手段により前記記録装置が対応する文字コードに変換することを特徴とする。
本発明によれば、汎用文字コードセットの更新などにより文字数が増えたのも拘わらず第1のコード変換手段が対応していない場合、増えた文字の文字コードを、前記第2のコード変換手段により前記記録装置が対応する文字コードに変換することができる。
第1のコード変換手段がオペレーションシステムなどの機能を使っている場合、バージョンアップしていなく、汎用文字コードセットの更新に対応できていない場合がる。このような場合、第2のコード変換手段がプリンタードライバーであれば、プリンタードライバー側で汎用文字コードセットの更新に対応するようにバージョンアップすればよい。
【0009】
また、本発明は、上記記録制御装置において、前記記録装置は、1バイトコードセットに対応するフォントデータと、マルチバイトコードセットに対応するフォントデータとを記憶し、前記第1のコード変換手段は、前記汎用文字コードを前記マルチバイトコードセットの文字コードに変換し、前記制御手段は、前記記録装置の前記マルチバイトコードセットの文字コードにおいて、前記第1のコード変換手段が変換した文字コードに該当するものの有無を判定し、前記第2のコード変換手段は、前記制御手段によって前記記録装置の前記マルチバイトコードセットに対応する前記フォントデータに該当する文字コードがないと判定された場合に、当該文字コードを前記1バイトコードセットの文字コードに変換することを特徴とする。
本発明によれば、マルチバイトコードセットの文字コードを記録装置が持たない場合に、第2のコード変換手段により1バイトコードセットで同じ文字を示す文字コードに変換して記録装置に出力するので、記録装置が、マルチバイトコードの一部の文字コードを他の文字コードセットの文字により置き換えている場合に、この記録装置に適合する文字コードを出力して記録を実行させることができる。
【0010】
また、上記目的を達成するために、本発明は、複数の文字コードセットの文字コードに対応するフォントデータを記憶し、前記フォントデータを使用して文字を記録する記録装置と、前記記録装置を制御する記録制御装置とを備えた記録システムであって、前記記録制御装置は、記録対象データに対応する汎用文字コードセットの文字コードを、所定の文字コードセットの文字コードに変換する第1のコード変換手段と、前記汎用文字コードセットの文字コードを、前記記録装置が対応する文字コードセットの文字コードに変換する第2のコード変換手段と、前記第1のコード変換手段により変換された前記文字コードが前記記録装置によって対応可能か否かを判定し、対応可能でないと判定した場合に前記第2のコード変換手段により前記記録装置が対応する文字コードセットの文字コードに変換し、変換した前記文字コードを前記記録装置に出力する制御手段とを備えることを特徴とする。
本発明によれば、記録制御装置が所定の文字コードセットの文字コードを生成し、この文字コードに該当するフォントデータがない、または文字コードに対応していないなどで記録装置が記録を行えない場合に、記録装置が対応している別の文字コードセットの文字コードに変換して記録装置に出力するので、記録装置が内蔵するフォントデータに適した文字コードを用いて、記録対象データの文字を確実に記録できる。
【0011】
また、上記目的を達成するために、本発明は、複数の文字コードセットの文字コードに対応するフォントデータを記憶し、前記フォントデータを使用して文字を記録する記録装置を制御する記録制御方法であって、記録対象データに対応する汎用文字コードセットの文字コードを、所定の文字コードセットの文字コードに変換し、変換された前記文字コードが前記記録装置によって対応可能か否かを判定し、対応可能でないと判定した場合に、前記文字コードを、前記記録装置が対応する文字コードセットの文字コードにさらに変換し、変換した前記文字コードを前記記録装置に出力することを特徴とする。
本発明の記録制御方法を実行することにより、記録制御装置が所定の文字コードセットの文字コードを生成し、この文字コードに該当するフォントデータがない、または文字コードに対応していないなどで記録装置が記録を行えない場合に、記録装置が対応している別の文字コードセットの文字コードに変換して記録装置に出力するので、記録装置が内蔵するフォントデータに適した文字コードを用いて、記録対象データの文字を確実に記録できる。
【0012】
上記目的を達成するために、本発明は、複数の文字コードセットの文字コードに対応するフォントデータを記憶し、前記フォントデータを使用して文字を記録する記録装置の各部を制御する制御部により実行されるプログラムであって、前記制御部を、記録対象データに対応する汎用文字コードセットの文字コードを、所定の文字コードセットの文字コードに変換する第1のコード変換手段と、前記汎用文字コードセットの文字コードを、前記記録装置が対応する文字コードセットの文字コードに変換する第2のコード変換手段と、前記第1のコード変換手段により変換された前記文字コードが前記記録装置によって対応可能か否かを判定し、対応可能でないと判定した場合に前記第2のコード変換手段により前記記録装置が対応する文字コードセットの文字コードに変換し、変換した前記文字コードを前記記録装置に出力する制御手段として機能させることを特徴とする。
本発明のプログラムを制御部が実行することにより、記録制御装置が所定の文字コードセットの文字コードを生成し、この文字コードに該当するフォントデータがない、または文字コードに対応していないなどで記録装置が記録を行えない場合に、記録装置が対応している別の文字コードセットの文字コードに変換して記録装置に出力するので、記録装置が内蔵するフォントデータに適した文字コードを用いて、記録対象データの文字を確実に記録できる。
【0013】
また、本発明は、上記のプログラムをコンピューターにより読み取り可能に記録した情報記録媒体として実現することも可能である。
【発明の効果】
【0014】
本発明によれば、記録装置が内蔵するフォントデータに適した文字コードを用いて、記録対象データを確実に記録できる。
【図面の簡単な説明】
【0015】
【図1】本実施形態に係る記録システムの構成を示すブロック図である。
【図2】ホスト側制御部の機能的構成を示す図である。
【図3】コードページの構成を示す図である。
【図4】ホストコンピューターの動作を示すフローチャートである。
【発明を実施するための形態】
【0016】
以下、図面を参照して本発明の実施形態について説明する。
図1は、本実施形態に係る記録システム1の構成を概略的に示す図である。
記録システム1は、ホストコンピューター10(記録制御装置)と、このホストコンピューター10と通信可能に接続され、ホストコンピューター10によって制御されるプリンター20(記録装置)とを備えている。
ホストコンピューター10は、ホスト側制御部11と、ホスト側表示部12と、ホスト側入力部13と、プリンター20に接続される入出力インターフェイス14と、プログラムや各種データを不揮発的に記憶するホスト側記憶部15(記憶手段)とを備えている。
ホストコンピューター10は、基本制御ソフトウェアとしてのオペレーティングシステムがハードディスク装置などに実装され、このオペレーティングシステムとともに、プリンター20を制御するためのプログラムであるプリンタードライバーが動作可能にインストールされている。ホスト側制御部11は、当該プリンタードライバーを実行することにより、プリンター20を制御する。
【0017】
ホスト側制御部11は、ホストコンピューター10の各部を中枢的に制御するものであり、演算実行部としてのCPUや、このCPUに実行される基本制御プログラムや、この基本制御プログラムに係るデータ等を不揮発的に記憶するROMや、CPUに実行されるプログラムやこのプログラムに係るデータ等を一時的に記憶するRAM、その他の周辺回路等を備えている。
【0018】
ホスト側表示部12は、液晶ディスプレイパネルや、有機ELパネル等の表示パネルを備え、ホスト側制御部11の制御の下、表示パネルに各種情報を表示する。
ホスト側入力部13は、キーボードや、マウス等の入力デバイスに接続され、これら入力デバイスの出力信号をホスト側制御部11に出力する。
入出力インターフェイス14は、USBポートやパラレルプリンターポート等のポートを介してプリンター20に接続され、ホスト側制御部11の制御の下、プリンター20との間で通信規格に準拠した通信を行う。
ホスト側記憶部15は、各種データを書き換え可能に記憶する不揮発性の記憶装置により構成され、具体的にはハードディスク装置や、EEPROM等の半導体記憶装置を備えている。ホスト側記憶部15には、ある文字コードセットから他の文字コードセットなどの異なる文字コードセットの文字コードを変換するための変換テーブル15A、15B、及び、プリンター20が内蔵するフォントデータに関する設定データ19が記憶される。
【0019】
図2は、ホストコンピューター10の機能的構成を示すブロック図である。この図2に示す各機能部は、ホスト側制御部11のCPUがプログラムを実行することにより、ハードウェアとソフトウェアとの協働により実現される。
【0020】
ホスト側制御部11は、オペレーティングシステム10Aによりホストコンピューター10の各部を中枢的に制御するとともに、ホスト側表示部12、ホスト側入力部13及び入出力インターフェイス14によるデータの入出力を実行する。
ホストコンピューター10のオペレーティングシステム10A上で動作するアプリケーションプログラムは、文字コードセットとしてUnicode(汎用文字コードセット)を採用している。このため、オペレーティングシステム10Aの機能を利用して文字を表示したり記録処理する際、日本語や中国語などに対応するために、オペレーティングシステム10Aは、Unicodeを日本語や中国語などの文字コードセットに変換することが行われている。オペレーティングシステム10Aは、このUnicodeの文字コードで規定された文字や文字列を、プリンター20等の他の装置に出力する際に他の文字コードセットの文字コードに変換する文字コード変換部10B(第1のコード変換手段)を備えている。文字コード変換部10Bは、オペレーティングシステム10Aの機能モジュールとして構成され、後述するプリンタードライバー10Dから呼び出して処理を実行させることも可能である。
Unicodeの文字コードで規定された文字を、他の文字コードセットの文字コードに変換する例としては、中国語に対応するGB2312(2バイトコード)やGB18030(4バイトコード)などがある。これらは、オペレーティングシステム10Aに対し予め設定されているので、中国語対応のオペレーティングシステム10Aが立ち上がると、いずれかに変換することが選択される。
また、ホスト側制御部11は、オペレーティングシステム10A上でアプリケーションプログラムを実行するアプリケーション実行部10Cを有する。アプリケーション実行部10Cは、例えば文書作成ソフトウェア、表計算ソフトウェア等のアプリケーションソフトウェアを実行する。これらのアプリケーションソフトウェアを実行中に、記録が指示された場合には、アプリケーション実行部10Cはプリンタードライバー10Dを呼び出して、記録対象データとして指定された文書等と、記録部数や記録媒体として使用する用紙サイズ等の記録制御情報を出力する。
【0021】
プリンタードライバー10Dは、プリンター20の機種のコマンド体系に適合するように構成されたソフトウェアで構成される。プリンタードライバー10Dは、プリンター20による記録動作を制御する記録制御部10E(制御手段)と、オペレーティングシステム10Aから出力される文字コードをプリンター20が対応して記録できるような文字コードセットの文字コードに変換を行う文字コード変換部10F(第2のコード変換手段)とを有する。
プリンタードライバー10Dは、アプリケーション実行部10Cにより呼び出されて動作を開始し、記録制御部10Eの機能により、アプリケーション実行部10Cから出力された記録対象データを取得する。記録制御部10Eは、記録対象データを構成するUnicodeに対応した文字コードを、オペレーティングシステム10Aの機能モジュールである文字コード変換部10B、或いは文字コード変換部10F、或いはその両方によって、プリンター20が搭載する文字コードセットの文字コードに変換し、プリンター20が記録できるようにする。そして、記録制御部10Eは、プリンター20に対して記録実行を指示するコマンドを生成し、このコマンドと、記録対象データを変換した後の文字コードとをプリンター20に送信して、記録を実行させる。
【0022】
また、プリンタードライバー10Dは、プリンター20との間で制御データを送受信し、プリンター20が紙切れや紙詰まりなどによりオフラインとなった場合に、オペレーティングシステム10Aに対してプリンター20のオフラインを通知する機能や、プリンター20が一定時間動作しないためにスリープ状態になった場合に、このスリープ状態から通常動作状態に復帰させる等の機能を有する。
【0023】
図1に示すプリンター20は、プリンター側制御部21と、プリントエンジン22と、プリンター側表示部23と、プリンター側入力部24と、インターフェイス部25と、プリンター側記憶部26と、を備えている。
プリンター側制御部21は、プリンター20の各部を中枢的に制御するものであり、ホスト側制御部11と同様、CPUや、ROM、RAM、その他の周辺回路等を備えている。プリントエンジン22は、プリンター側制御部21の制御の下、記録媒体に対し画像を記録する記録ヘッドや、この記録ヘッドを駆動する記録ヘッド駆動機構、記録媒体を搬送する搬送機構等の、記録媒体に対して画像を記録するための装置や機構等を制御して、記録媒体へ文字や記号あるいは画像等を記録(印刷)する。
【0024】
プリンター側表示部23は、液晶表示パネル等の表示パネルや、LED等を備え、これらを介してプリンター20の状態等の各種情報を報知する。
プリンター側入力部24は、電源スイッチや選択スイッチ等の各種スイッチを備え、これらスイッチに対する操作を検出し、プリンター側制御部21に入力する。
インターフェイス部25は、プリンター側制御部21の制御の下、ホストコンピューター10との間で通信規格に準拠した通信を行う。
【0025】
また、プリンター側記憶部26は、各種データを書き換え可能に記憶する不揮発性の記憶装置により構成され、具体的にはハードディスク装置や、EEPROM等の半導体記憶装置を備えている。
プリンター側記憶部26は、プリンター20が記録媒体に記録する文字の実データであるフォントデータを、該当するコードページCPの該当する文字コードに対応させて記憶している。コードページCPには、含まれる文字コードとそれに対応するフォントデータが複数あり、フォント群として記憶されている。なお、Unicodeは、全ての言語の文字に対応して文字コードが割り当てられているので、コードページに相当するものはない。
【0026】
図3は、コードページCPの構成を模式的に示す図である。
本実施形態では、プリンター20のプリンター側記憶部26は、複数の記憶領域26A、26Bを有し、各記憶領域26A、26Bの各々には、コードページCP0〜コードページCP255の256個のコードページCPが記憶されている。各々のコードページCPには含まれている複数の文字コードに対応するフォントデータが格納される。本実施形態では、各コードページCPが文字コード毎に128個の記憶領域に分割され、128個の格納位置(アドレス)が形成されており、文字コード毎に各格納位置に1つのフォントデータが格納された例について説明する。すなわち、1つのコードページCPには、128個の文字コードのフォントデータが格納可能である。
各格納位置には0番地(80H)〜127番地(FFH)の128個の番地が割り振られており、コードページCPを指定する情報と、コードページCPにおける格納位置を示す情報(文字コード)(50番地(90H))とによって、1つのフォントデータを一意に指定できる。
ここで、フォントデータとは、プリンター20が文字をプリントエンジン22の記録ヘッドなどで記録媒体に印字可能な態様で表現する実データのことであり、ドットマトリックスフォントデータや、ベクトルフォントデータ、アウトラインフォントデータ、ビットマップフォントデータや、スケイラブルフォントデータ等が存在する。
【0027】
記憶領域26A、26Bは、それぞれ異なる文字コードセットに対応するコードページCPを記憶している。本実施形態では、記憶領域26Aに、1バイトコードの文字コードセットに対応するフォントデータを含むコードページCPが格納され、記憶領域26Bには、2バイト、4バイトまたはその他のマルチバイトコードの文字コードセットに対応するコードページCPを格納する。1バイトコードの文字コードセットの例としてはASCIIコード等が、マルチバイトコードとしては、シフトJISやGB2312(2バイトコード)、GB18030(4バイトコード)等が挙げられる。こららは、オペレーティングシステム10Aが立ち上がったとき、いずれかに選択される。
【0028】
このように本実施形態では、プリンター側記憶部26に、全てのフォントデータが格納されたコードページCPが1つ記憶されるのではなく、複数の文字コードの個数(128個)のフォントデータを格納可能なコードページCPが複数(256個)記憶される構成となっている。これにより、日本語や中国語などに対応するフォントデータを格納するコードページCPと、英語などに対応するフォントデータを格納するコードページCPとを個別に記憶することができ、日本語や中国語などに専用的に対応するプリンター20に対しては、日本語や中国語などに対応するフォントデータを格納するコードページCPのみを記憶させたり、英語などに専用的に対応するプリンター20に対しては、英語等に対応するフォントデータを格納するコードページCPのみを記憶させたりすることができる。このため、必要なコードページCPのみをプリンター20のプリンター側記憶部26に記憶させることが可能となり、メモリーの容量の制約があっても記憶領域の効率的利用が実現できると共に、プリンター20を製造する上で仕向け先の国別の製造容易性の向上を図ることができる。
なお、記憶領域26A、26Bの各々に記憶するコードページCPの数(ページ数)は、対応する国や文字等に応じて適宜調整可能である。
【0029】
また、プリンター側記憶部26に複数の記憶領域26A、26Bが設けられ、各記憶領域26A、26Bに異なるコードページCPが格納されるので、例えば、1バイトコードや2バイトコード、4バイトコードなどの複数の言語で使用されるフォントデータにも対応することも可能であるし、また、複数の異なる文字コードセットやコードページCP間で共通するフォントデータを相補的に利用してプリンター側記憶部26の容量を節約するとともに、処理の効率化を図ることができる。
例えば、記憶領域26AにASCIIコードに対応したコードページCPを記憶し、記憶領域26BにGB18030に対応したコードページCPを記憶する。GB18030は4バイトコードであり、半角英数字を含む様々な文字を含んでいるため文字数も膨大である。しかしながら、半角英数字のフォントデータは、記憶領域26Aに格納された1バイトコードであるASCIIのコードページCPにも格納されている。そこで、記憶領域26BのGB18030には、半角英数字のフォントデータは記憶させず、GB18030の半角英数字に該当する文字コードが指定された場合は、常に記憶領域26Aに格納されているASCIIのコードページCPの文字コードに対応するフォントデータが記憶されている記憶領域26Aから読み出して使用することが考えられる。この場合、プリントエンジン22がフォントデータを取得する際の処理対象が記憶領域26Aと記憶領域26Bとの間で変わる他には何ら問題はなく、フォントデータの重複を解消することで、メモリーの容量やフォントデータを取得する処理の効率化を図ることができる。
この場合、オペレーティングシステム10Aの文字コード変換部10Bで、UnicodeからGB18030に変換し、さらに、半角英数字などこのままの文字コードではプリンター20のプリンター側記憶部26で対応できないものは、プリンタードライバー10Dが有する文字コード変換部10Fで、GB18030からASCIIに変換し、プリンター側記憶部26で対応可能なコードページと文字コードにすればよい。
また、GB18030の規格が更新されて対応する文字種が増えた場合、アプリケーション側が更新し追加したGB18030に合致したUnicodeを使って構成したものであっても、オペレーティングシステム10Aの文字コード変換部10Bが更新前のものであった場合、対応できない。この場合も、プリンタードライバー10Dが有する文字コード変換部10Fで、UnicodeからASCIIに変換し、プリンター側記憶部26で対応可能なコードページと文字コードにすればよい。
【0030】
図1に示したように、ホストコンピューター10のホスト側記憶部15には、複数の変換テーブル15A、15Bが格納されている。各変換テーブル15A、15Bは、それぞれ、異なる文字コードセットに対応しており、例えば変換テーブル15Aは、Unicodeの文字コードから、GB18030の2バイトコードや4バイトコードのコードページと文字コードなど他の文字コードセットに変換するためのテーブルである。変換テーブル15Bはこのままの文字コードではプリンター20のプリンター側記憶部26で対応できない場合に対応できるように変換するものであり、Unicodeから、または変換テーブル15Aで2バイトコードや4バイトコードの文字コードセットに変換したものから、1バイトコードのASCIIコードのコードページと文字コードに変換するためのテーブルである。中国語対応のオペレーティングシステム10Aが立ち上がると、まずGB18030用の変換テーブル15Aにより変換される。次に、GB18030で半角英数字などの文字コード場合、さらに、ASCIIコード用の変換テーブル15Bにより変換される。その結果、プリンター20のプリンター側記憶部26で対応できる文字コードページと文字コードが指定され、記録しているフォントデータを使用しての記録が可能となる。
また、GB18030の規格が更新されて対応する文字種が増えた場合、アプリケーション側が更新し追加したGB18030に合致したUnicodeで構成したものであっても、オペレーティングシステム10Aの変換テーブル15A(文字コード変換部10B)が更新前のものであった場合、対応できない。この場合も、プリンタードライバー10Dが有する変換テーブル15B(文字コード変換部10F)で、UnicodeからASCIIに変換し、プリンター側記憶部26で対応可能なコードページと文字コードにすればよい。
なお、ホスト側記憶部15により多数の変換テーブルを格納することも可能である。異なる文字コードセットは、同じ文字があったとしてもそれぞれに異なる文字コードを割り当てている。変換テーブル15Aは、Unicodeにおける文字コードとGB18030のコードページと文字コードとを1対1で対応づけたテーブルである。この変換テーブル15Aを使用すると、Unicodeで表現されたある文字と同じ文字に対応するGB18030の文字コードに変換することができる。変換テーブル15Bも同様であり、UnicodeやGB18030などで表現された文字コードをASCIIコードで表現できる。
ホストコンピューター10は上述したようにUnicodeを使用するアプリケーションが動作する。このため、オペレーティングシステム10A上で動作するアプリケーション実行部10C等は文字コードセットとしてUnicodeを使用し、アプリケーション実行部10Cにより生成される記録対象データが含む文字データは、Unicodeにおける文字コードで構成されている。しかしながら、プリンター20はUnicodeの文字コードに対応していない。このため、プリンター20がフォントデータを記憶領域26A、26Bから取得して記録できるように、ホストコンピューター10側では、記録対象データを構成するUnicodeの文字コードを、プリンター20が対応している文字コードセットのコードページと文字コードに変換する。
【0031】
文字コードの変換処理は、上述した文字コード変換部10B、及び、プリンタードライバー10Dが有する文字コード変換部10Fが実行する。文字コード変換部10Bは、変換テーブル15Aを使用して、UnicodeからGB18030への文字コードの変換を行う。これに対し、文字コード変換部10Fは変換テーブル15Bを使用して、UnicodeやGB18030からASCIIへの変換を行う。
ところで、ほとんどの言語に対応しているUnicodeに含まれる文字数は膨大であり、全ての文字に対応するフォントデータをプリンター20に搭載することは、メモリーの容量も膨大となってしまう。上述したように、プリンター20はプリンター側記憶部26の容量を削減する等の目的で、複数の文字コードに対応するコードページCPや文字コードセットを相補的に利用して、記憶領域26A、26Bのうち一部のフォントデータを共用とし省略している。このため、変換テーブル15Aに基づいてGB18030に変換された文字コードに対応するフォントデータが、GB18030に対応してプリンター20が記憶するコードページCPから省略されている可能性がある。この場合には、該当する文字の文字コードを、ASCIIコードに変換する必要がある。そこで、ホストコンピューター10側では、記録制御部10Eの機能により、文字コードの変換を制御する。この制御は、ホスト側記憶部15に記憶された設定データ19によって行われる。設定データ19は、プリンター20が記憶しているコードページCPにおいてフォントデータが省略されている文字を示す情報であり、例えば、文字コードセットと、当該文字コードのコードページCPにおいて省略された文字の文字コードとを対応づけたテーブル形式のデータである。上述の例では、GB18030における半角英数文字のコードページと文字コードを、ASCIIコードのコードページと文字コードに変換するような対応を示すテーブル形式のデータである。また、設定データ19に、GB18030が更新して追加した文字コードをASCIIコードのコードページと文字コードに変換するような対応を示すテーブル形式のデータを記憶しておく。オペレーティングシステム10A側で、更新したGB18030に対応していなくても、UnicodeからASCIIコード変換してプリンター20で記録可能となる。なお、ASCIIコードにした文字コードは、プリンター20の記憶領域26Aで対応している文字コードと同じものであり、この文字コードに該当するフォントデータにより記録可能なので、そのままプリンター20に送信して記録できる。
【0032】
記録制御部10Eは、まずオペレーティングシステム10Aの文字コード変換部10Bを利用し、アプリケーションから記録対象データのUnicodeの文字コードを、変換テーブル15Aに従ってUnicodeからGB18030に変換させる。ここで、記録制御部10Eは、変換されたGB18030の文字コードを設定データ19において検索し、該当する情報がある場合には、その文字の文字コードを、文字コード変換部10Fの機能によりUnicodeからASCIIに変換する。記録制御部10Eは、この処理を処理対象データの文字に対して1文字ずつ実行する。設定データ19に記録されていないGB18030の文字コードは、プリンター20の記憶領域26Bで対応している文字コードと同じものであり、この文字コードに該当するフォントデータにより記録可能なので、そのままプリンター20に送って記録できる。
これにより、プリンター20が保持していない文字コードを指定してしまうことがなく、全ての文字を確実にプリンター20が記録できる。
【0033】
図4は、ホストコンピューター10の動作を示すフローチャートである。
まず、アプリケーション実行部10Cにより作成されたUnicodeによる記録対象データがプリンタードライバー10Dに入力される(ステップS11)。記録制御部10Eは、オペレーティングシステム10Aが有する文字コード変換部10Bの機能により、UnicodeからGB18030などへ文字コードの変換を実行する(ステップS12)。この変換は、入力された記録対象データの1文字を選択して実行される。
ここで、記録制御部10Eは、変換処理が成功したか否かを判別する(ステップS13)。変換処理に失敗する場合とは、例えば、文字コード変換部10Bが使用する変換テーブル15Aに、該当する文字が定義されていない場合である。すなわち、Unicodeは多言語の多数の文字を含んでいるので、Unicodeから他の文字コードセットへの変換を行う場合、変換先の文字コードセットに該当する文字が割り当てられていないことがある。先に変換テーブル15A、15Bは異なる文字コードセット間の文字コードを1対1で定義すると説明したが、該当する文字が文字コードセットで割り当てられていない(定義されてない)場合は、変換テーブル15A、15Bでは該当するデータなしと定義される。具体的な例としては、GB18030の規格が更新されて対応する文字種が増えた場合、アプリケーション側が更新し追加したGB18030に合致したUnicodeでアプリケーション実行部10Cが生成したものであっても、オペレーティングシステム10Aの変換テーブル15Aが更新前のものであった場合、割り当てられていない。変換処理が成功しなかった場合、オペレーティングシステム10Aは、「?」などの特定のデータを返すので、プリンタードライバー10D側では成功しなかったことがわかる。
【0034】
記録制御部10Eは、処理対象の文字の変換が成功したと判別した場合(ステップS13;Yes)、設定データ19を参照して、変換後の文字コードでプリンター20が記録可能か否かを判別する(ステップS14)。ここで、記録制御部10Eは、変換後の文字コードに対応するフォントデータがプリンター20のコードページCPに格納されているか否かを、設定データ19に基づいて判別する。
【0035】
そして、変換後の文字コードでプリンター20が記録可能な場合(ステップS14;Yes)、記録制御部10Eは、変換後のコードページと文字コードを含むデータをプリンター20に送信して(ステップS15)、記録を実行させる。なお、ステップS15の処理を行う前に、記録対象データの全ての文字についてステップS12〜S16の処理を行うことも勿論可能である。
【0036】
一方、文字コード変換部10Bが文字コードの変換に成功しなかった場合(ステップS13;No)、及び、変換後の文字コードが設定データ19に定義されている場合、すなわちそのままの文字コードではプリンター20が記録できない場合(ステップS14;No)、記録制御部10Eは、プリンタードライバー10Dが備える文字コード変換部10Fの機能により、変換テーブル15Bを参照して文字コードの変換を行う(ステップS16)。つまり、ステップS12とは違う文字コードセットへの変換を実行し、その後、ステップS15に移行する。
文字コード変換部10Bが文字コードの変換に成功しなかった場合(ステップS13;No)、上述のように、オペレーティングシステム10Aの変換テーブル15Aが更新前のものであった場合などである。設定データ19に、GB18030が更新して追加した文字コードをASCIIコードのコードページと文字コードに変換するような対応を示すテーブル形式のデータを記憶しておく。プリンタードライバー10Dが有する文字コード変換部10Fで、Unicodeの文字コードからASCIIコードのコードページと文字コードに変換し、プリンター側記憶部26で対応可能なコードページCPと文字コードにすることができる。
変換後の文字コードが設定データ19に定義されている場合(ステップS14;No)、上述のように、GB18030の半角英数文字の場合などである。設定データ19を参照して、GB18030の半角英数文字に該当するコードページと文字コードが検索できた場合、それに対応するASCIIコードのコードページと文字コードに変換する。この場合も、プリンタードライバー10Dが有する文字コード変換部10Fで、Unicodeの文字コードからASCIIコードのコードページと文字コードに変換し、プリンター側記憶部26に該当する半角英数文字が格納されているコードページCPと文字コードに変換すればよい。
【0037】
以上説明したように、本発明を適用した実施形態に係る記録システム1によれば、複数の文字コードセットに対応する複数のフォントデータを記憶し、これらのフォントデータを使用して文字を記録するプリンター20を制御するホストコンピューター10側では、記録対象データに対応する汎用文字コードセット(Unicode)の文字コードを、所定の文字コードセットの文字コードに変換する文字コード変換部10Bと、汎用文字コードセットの文字コード、または、所定の文字コードセットを、プリンター20が有するいずれかのコードページCPに対応する文字コードセットの文字コードに変換する文字コード変換部10Fと、文字コード変換部10Bにより変換された文字コードがプリンター20によって対応可能か否か、すなわち記録可能か否かを判定し、対応可能でないと判定した場合に文字コード変換部10Fによりプリンター20が対応する文字コードセットの文字コードに変換し、変換した文字コードを含む記録対象データをプリンター20に出力する記録制御部10Eとを備える。これにより、ホストコンピューター10側が変換した文字コードでプリンター20が記録を行えない場合、例えば、この文字コードに該当するフォントデータがない、或いは、プリンター20が上記文字コードに対応していない等の場合に、プリンター20が対応している別の文字コードセットの文字コードに変換してプリンター20に出力するので、プリンター20が内蔵するフォントデータに適した文字コードを用いて、記録対象データの文字を確実に記録できる。
【0038】
また、記録制御部10Eは、プリンター20が内蔵する文字コードのコードページCPにおいて、文字コード変換部10Bが変換した文字コードに割り当てられたフォントデータの有無を判定し、その文字コードでは該当するフォントデータがない場合には文字コード変換部10Fにより文字コードを変換するので、文字コード変換部10Bが変換した文字コードにプリンター20が対応していない場合に、別の文字コードセットの文字コードに変換して、プリンター20が対応する文字コードとして出力する。これにより、プリンター20が内蔵するフォントデータに適した文字コードを用いて、記録対象データの文字を確実に記録できる。
【0039】
また、文字コード変換部10Bが変換する所定の文字コードセットのフォントデータのうち、プリンター20が有していない文字コードに対応するように変換する設定データ19を記憶するホスト側記憶部15を備え、記録制御部10Eは、設定データ19に基づいて、文字コード変換部10Bにより変換された文字コードに割り当てられたフォントデータの有無を判定し、変換するので、文字コード変換部10Bが変換した文字コードをプリンター20が有しているか否かを、より速やかに判定し、変換できる。
【0040】
また、プリンター20は、記憶領域26Aに1バイトコードセットに対応するコードページCPを記憶し、記憶領域26Bにマルチバイトコードセットに対応するコードページCPを記憶しており、文字コード変換部10Bは、所定の汎用文字コードセットによって規定される記録対象データの文字に基づいてマルチバイトコードセットの文字コードを生成し、記録制御部10Eは、マルチバイトコードセットのコードページCPにおいて文字コード変換部10Bが生成した文字コードに該当するものの有無を判定し、文字コード変換部10Fは、記録制御部10Eによってマルチバイトコードセットに対応するコードページCPに該当する文字コードがないと判定された場合に、1バイトフォントの文字コードを生成する。これにより、マルチバイトコードセットの文字コードをプリンター20が持たない場合に、1バイトコードセットで同じ文字を示す文字コードを生成してプリンター20に出力するので、プリンター20が、マルチバイトコードの一部の文字コードを他の文字コードセットの文字により置き換えている場合に、このプリンター20に適合する文字コードを出力して記録を実行させることができる。
【0041】
なお、上記実施形態において、ホストコンピューター10は、プリンター20が有するコードページCPにおいて省略されたフォントデータを示す設定データ19を記憶し、この設定データ19に基づき、変換後の文字コードをプリンター20が記録できるか否かを判定するものとしたが、本発明はこれに限定されるものではなく、例えば、プリンター20がコードページCPに格納している文字コードをホスト側記憶部15に記憶していてもよい。この場合、記録制御部10Eは、変換後の文字コードがホスト側記憶部15に記憶されているか否かに基づいて、プリンター20が記録できるか否かをより正確に判定できる。
また、上述した実施の形態は、あくまでも本発明の一態様を示すものであり、本発明の範囲内で任意に変形および応用が可能である。
例えば、上述した実施形態では、プリンター20は、128個のフォントデータを格納可能なコードページCPを256個記憶していたが、プリンター20が記憶するコードページCPの態様はこれに限らず、ホストコンピューター10がホスト側記憶部15に記憶する変換テーブルの数を含め、記録システム1の細部構成については、ホストコンピューター10及びプリンター20の仕様等に応じて、適宜変更可能である。
【符号の説明】
【0042】
1…記録システム、10…ホストコンピューター(記録制御装置)、10A…オペレーティングシステム、10B…文字コード変換部(第1のコード変換手段)、10C…アプリケーション実行部、10D…プリンタードライバー、10E…記録制御部(制御手段)、10F…文字コード変換部(第2のコード変換手段)、11…ホスト側制御部、15…ホスト側記憶部、15A、15B…変換テーブル、19…設定データ、20…プリンター、21…プリンター側制御部、26…プリンター側記憶部、26A、26B…記憶領域、CP…コードページ。

【特許請求の範囲】
【請求項1】
複数の文字コードセットの文字コードに対応するフォントデータを記憶し、前記フォントデータを使用して文字を記録する記録装置を制御する記録制御装置であって、
記録対象データに対応する汎用文字コードセットの文字コードを、所定の文字コードセットの文字コードに変換する第1のコード変換手段と、
前記汎用文字コードセットの文字コードを、前記記録装置が対応する文字コードセットの文字コードに変換する第2のコード変換手段と、
前記第1のコード変換手段により変換された文字コードが前記記録装置によって対応可能か否かを判定し、対応可能でないと判定した場合に前記第2のコード変換手段により前記記録装置が対応する文字コードセットの文字コードに変換し、変換した前記文字コードを前記記録装置に出力する制御手段と、
を備えることを特徴とする記録制御装置。
【請求項2】
前記制御手段は、前記記録装置が対応する文字コードにおいて、前記第1のコード変換手段により変換された文字コードに対応するものの有無を判定し、前記第1のコード変換手段により変換された文字コードに対応するものがない場合には前記第2のコード変換手段により前記記録装置が対応する文字コードに変換すること、を特徴とする請求項1記載の記録制御装置。
【請求項3】
前記第1のコード変換手段が変換する前記所定の文字コードセットの文字コードのうち、前記記録装置が対応していない文字コードとの関係を示す設定データを記憶する記憶手段を備え、
前記制御手段は、前記記憶手段に記憶された設定データに基づいて、前記第1のコード変換手段により変換された文字コード対応する前記記録装置の文字コードの有無を判定することを特徴とする請求項2記載の記録制御装置。
【請求項4】
前記制御手段は、前記記録対象データに対応する汎用文字コードセットの文字コードに前記第1のコード変換手段が対応していない文字コードであり、前記記録装置が対応している文字コードセットの文字コードである場合、前記第2のコード変換手段により前記記録装置が対応する文字コードに変換すること、を特徴とする請求項1記載の記録制御装置。
【請求項5】
前記記録装置は、1バイトコードセットに対応するフォントデータと、マルチバイトコードセットに対応するフォントデータとを記憶し、
前記第1のコード変換手段は、前記汎用文字コードを前記マルチバイトコードセットの文字コードに変換し、
前記制御手段は、前記記録装置の前記マルチバイトコードセットの文字コードにおいて、前記第1のコード変換手段が変換した文字コードに該当するものの有無を判定し、
前記第2のコード変換手段は、前記制御手段によって前記記録装置の前記マルチバイトコードセットに対応する前記フォントデータに該当する文字コードがないと判定された場合に、当該文字コードを前記1バイトフォントの文字コードに変換すること、
を特徴とする請求項1から4のいずれかに記載の記録制御装置。
【請求項6】
複数の文字コードセットの文字コードに対応するフォントデータを記憶し、前記フォントデータを使用して文字を記録する記録装置と、前記記録装置を制御する記録制御装置とを備えた記録システムであって、
前記記録制御装置は、
記録対象データに対応する汎用文字コードセットの文字コードを、所定の文字コードセットの文字コードに変換する第1のコード変換手段と、
前記汎用文字コードセットの文字コードを、前記記録装置が対応する文字コードセットの文字コードに変換する第2のコード変換手段と、
前記第1のコード変換手段により変換された前記文字コードが前記記録装置によって対応可能か否かを判定し、対応可能でないと判定した場合に前記第2のコード変換手段により前記記録装置が対応する文字コードセットの文字コードに変換し、変換した前記文字コードを前記記録装置に出力する制御手段と、
を備えることを特徴とする記録システム。
【請求項7】
複数の文字コードセットの文字コードに対応するフォントデータを記憶し、前記フォントデータを使用して文字を記録する記録装置を制御する記録制御方法であって、
記録対象データに対応する汎用文字コードセットの文字コードを、所定の文字コードセットの文字コードに変換し、
変換された前記文字コードが前記記録装置によって対応可能か否かを判定し、対応可能でないと判定した場合に、前記文字コードを、前記記録装置が対応する文字コードセットの文字コードにさらに変換し、
変換した前記文字コードを前記記録装置に出力すること、
を特徴とする記録制御方法。
【請求項8】
複数の文字コードセットの文字コードに対応するフォントデータを記憶し、前記フォントデータを使用して文字を記録する記録装置の各部を制御する制御部により実行されるプログラムであって、
前記制御部を、
記録対象データに対応する汎用文字コードセットの文字コードを、所定の文字コードセットの文字コードに変換する第1のコード変換手段と、
前記汎用文字コードセットの文字コードを、前記記録装置が対応する文字コードセットの文字コードに変換する第2のコード変換手段と、
前記第1のコード変換手段により変換された前記文字コードが前記記録装置によって対応可能か否かを判定し、対応可能でないと判定した場合に前記第2のコード変換手段により前記記録装置が対応する文字コードセットの文字コードに変換し、変換した前記文字コードを前記記録装置に出力する制御手段として機能させること、
を特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2012−216106(P2012−216106A)
【公開日】平成24年11月8日(2012.11.8)
【国際特許分類】
【出願番号】特願2011−81473(P2011−81473)
【出願日】平成23年4月1日(2011.4.1)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】