(57)【要約】【課題】コンピューターや記録装置が負荷の軽い処理により速やかに文字コードを変換できるようにする。【解決手段】プリンター２０は、ホストコンピューター１０から入力される印刷データに含まれる文字の文字コードとプリンター２０が印刷可能な文字コードとの対応を定めた変換テーブル３３を記憶した記憶部３１と、印刷データに含まれるＧＢ１８０３０の文字コードの値を演算してハッシュキーを求め、求めたハッシュキーに基づき変換テーブル３３を検索して対応する文字コードを取得する文字コード変換部２３と、を備える。【選択図】図１
2014013485.tif 000002
【特許請求の範囲】
【請求項１】
入力データに基づいて、記録装置が記録可能な記録データを出力するデータ処理装置であって、
前記入力データに含まれる文字の文字コードと、前記記録装置が記録可能な文字コードとの対応を定めたテーブルを記憶した記憶手段と、
前記入力データに含まれる文字コードの値を演算して検索キーを求め、求めた検索キーに基づき前記テーブルを検索して対応する文字コードを取得する変換手段と、
を備えたことを特徴とするデータ処理装置。
【請求項２】
請求項１記載のデータ処理装置であって、
前記記憶手段が記憶するテーブルは、前記入力データに含まれる１文字分の文字コードの値の和から求められるハッシュ値を添え字として、前記入力データに含まれる文字コードと前記記録装置が記録可能な文字コードとの対応を示すレコードを配列したハッシュテーブルであることを特徴とするデータ処理装置。
【請求項３】
請求項２記載のデータ処理装置であって、
前記変換手段は、前記入力データに含まれる文字コードを１文字分ずつ取得して前記記憶手段に記憶されたテーブルを検索し、対応する１文字分文字コードを取得することを特徴とするデータ処理装置。
【請求項４】
請求項１から３のいずれかに記載のデータ処理装置であって、
前記記憶手段が記憶するテーブルは、第１の文字コードセットに含まれる文字コードと、これらの文字コードと同じ文字を示す第２の文字コードセットにおける文字コードとを対応づけるレコードを含むことを特徴とするデータ処理装置。
【請求項５】
入力データに基づいて記録を行う記録装置であって、
記録手段と、
文字コードに対応づけてフォントデータを記憶したフォント記憶手段と、
前記入力データに含まれる文字の文字コードと、前記フォント記憶手段に記憶されたフォントの文字コードとの対応を定めるテーブルを記憶したテーブル記憶手段と、
前記入力データに含まれる文字コードの値を演算して検索キーを求め、求めた検索キーに基づき前記テーブル記憶手段のテーブルを検索して対応する文字コードを取得する変換手段と、
前記変換手段により取得された文字コードに基づいて前記フォント記憶手段からフォントデータを取得して前記記録手段に記録させる記録制御手段と、
を備えたことを特徴とする記録装置。
【請求項６】
入力データに基づいて、記録装置が記録可能な記録データを出力するデータ処理方法であって、
前記入力データに含まれる文字コードの値を演算して検索キーを求め、
求めた検索キーに基づいて、前記入力データに含まれる文字の文字コードから求められるハッシュ値と前記記録装置が記録可能な文字コードとを配列したハッシュテーブルを検索し、対応する文字コードを取得すること、
を特徴とするデータ処理方法。
【請求項７】
コンピューターにより実行可能なプログラムであって、
前記コンピューターを、
入力データに含まれる文字コードの値を演算して検索キーを求める手段と、
求めた検索キーに基づいて、前記入力データに含まれる文字の文字コードから求められるハッシュ値と記録装置が記録可能な文字コードとを配列したハッシュテーブルを検索し、対応する文字コードを取得する手段と、
取得された前記文字コードに基づいて前記記録装置が記録可能な記録データを出力する手段と、
して機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記録装置により記録されるデータを処理するデータ処理装置、記録装置、データ処理方法、及び、プログラムに関する。
【背景技術】
【０００２】
従来、文字の記録に使用するためのフォントデータをＲＯＭ等の記憶媒体に記憶（内蔵）し、記憶したフォントデータに基づいて文字の記録を行う記録装置が知られている（例えば、特許文献１参照）。この種の記録装置は、通常、複数の言語に対応できるように言語毎に複数の文字コードセット（文字コード体系、キャラクターセット）に対応している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平６−１８３０７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
近年、コンピューターや、コンピューターに接続される記録装置において、Ｕｎｉｃｏｄｅ等の汎用文字コードセットを使用する例が多くなっている。その一方で、汎用文字コードセット以外の、旧来の文字コードを使用するコンピューターシステムや記録装置も多数使用されている。このため、コンピューターが使用する文字コードと、コンピューターに接続された記録装置が使用する文字コードが、異なる文字コードセットである場合がある。このような場合、コンピューターまたは記録装置側で文字コードの変換を行うことになるが、文字コードセットに含まれる文字数は膨大であり、文字コードを変換する処理の負荷は大きく、処理に長い時間を要するという問題があった。
本発明は、上述した事情に鑑みてなされたものであり、コンピューターや記録装置が負荷の軽い処理により速やかに文字コードを変換できるようにすることを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するために、本発明は、入力データに基づいて、記録装置が記録可能な記録データを出力するデータ処理装置であって、前記入力データに含まれる文字の文字コードと、前記記録装置が記録可能な文字コードとの対応を定めたテーブルを記憶した記憶手段と、前記入力データに含まれる文字コードの値を演算して検索キーを求め、求めた検索キーに基づき前記テーブルを検索して対応する文字コードを取得する変換手段と、を備えたことを特徴とする。
本発明によれば、入力データに含まれる文字コードの値を演算することによってテーブルを検索する検索キーを求めることができ、この検索キーに基づいてテーブルを参照すれば、速やかに、記録装置が記録可能な文字コードを得ることができる。このため、例えば膨大な文字コードを順次参照して該当する文字コードを検出する処理に比べて、高速かつ軽負荷の処理により該当する文字コードを得られる。これにより、例えばある文字コードセットの文字コードを他の文字コードセットの文字コードに変換する場合など、入力データの文字コードを、負荷の軽い処理によって速やかに、記録装置が記録可能な文字コードに変換できる。
【０００６】
本発明は、上記データ処理装置であって、前記記憶手段が記憶するテーブルは、前記入力データに含まれる１文字分の文字コードの値の和から求められるハッシュ値を添え字として、前記入力データに含まれる文字コードと前記記録装置が記録可能な文字コードとの対応を示すレコードを配列したハッシュテーブルであることを特徴とする。
本発明によれば、入力データに含まれる１文字分の文字コードの値の和を算出して、検索キーとなるハッシュ値を求め、ハッシュテーブルを検索するという負荷の軽い処理によって、記録装置が記録可能な文字コードを得ることができる。これにより、膨大な文字数を有する文字コードセットを対象として文字コードを変換する場合であっても、速やかに、目的とする文字コードを得ることができる。また、文字コードセットの中には文字が割り当てられていない空きコードが存在することがあり、文字コードを順次参照する方法では空きコードを参照する処理は無駄になってしまうが、１文字分の文字コードの値の和から得られるハッシュ値を添え字とするハッシュテーブルを用いれば、このような無駄な処理を回避できる。従って、ハッシュテーブルを用いることでより一層の処理の効率化を図ることができ、より速やかに目的の文字コードを得ることができる。
【０００７】
また、本発明は、上記データ処理装置であって、前記変換手段は、前記入力データに含まれる文字コードを１文字分ずつ取得して前記記憶手段に記憶されたテーブルを検索し、対応する１文字分の文字コードを取得することを特徴とする。
本発明によれば、文字コードを１文字分ずつ演算して検索キーを求め、テーブルを参照して目的の文字コードに変換するので、負荷の軽い処理によって文字コードを変換できる。
【０００８】
また、本発明は、上記データ処理装置であって、前記記憶手段が記憶するテーブルは、第１の文字コードセットに含まれる文字コードと、これらの文字コードと同じ文字を示す第２の文字コードセットにおける文字コードとを対応づけるレコードを含むことを特徴とする。
本発明によれば、負荷の軽い処理によって、異なる文字コードセットの間で文字コードを速やかに変換できる。
【０００９】
また、上記目的を達成するために、本発明は、入力データに基づいて記録を行う記録装置であって、記録手段と、文字コードに対応づけてフォントデータを記憶したフォント記憶手段と、前記入力データに含まれる文字の文字コードと、前記フォント記憶手段に記憶されたフォントの文字コードとの対応を定めるテーブルを記憶したテーブル記憶手段と、前記入力データに含まれる文字コードの値を演算して検索キーを求め、求めた検索キーに基づき前記テーブル記憶手段のテーブルを検索して対応する文字コードを取得する変換手段と、前記変換手段により取得された文字コードに基づいて前記フォント記憶手段からフォントデータを取得して前記記録手段に記録させる記録制御手段と、を備えたことを特徴とする。
本発明によれば、入力データに含まれる文字コードの値を演算することによってテーブルを検索する検索キーを求めることができ、この検索キーに基づいてテーブルを参照すれば、速やかに、記憶しているフォントの文字コードを得ることができ、この文字コードに基づいてフォントデータを読み出し、記録することができる。この処理において、例えば膨大な文字コードを順次参照して該当する文字コードを検出する処理に比べて、高速かつ軽負荷の処理により該当する文字コードを得られる。
これにより、記録可能な文字コード以外の文字コードが入力データに含まれている場合であっても、この入力データの文字コードを、負荷の軽い処理によって速やかに、記録可能な文字コードに変換して記録を行うことができる。
【００１０】
また、上記目的を達成するために、本発明は、入力データに基づいて、記録装置が記録可能な記録データを出力するデータ処理方法であって、前記入力データに含まれる文字コードの値を演算して検索キーを求め、求めた検索キーに基づいて、前記入力データに含まれる文字の文字コードから求められるハッシュ値と前記記録装置が記録可能な文字コードとを配列したハッシュテーブルを検索し、対応する文字コードを取得すること、を特徴とする。
本発明のデータ処理方法を実行することにより、入力データに含まれる文字コードの値を演算することによって検索キーを求め、テーブルを参照することによって、例えば膨大な文字コードを順次参照して該当する文字コードを検出する処理に比べて、高速かつ軽負荷の処理により、記録装置が記録可能な文字コードを得ることができる。
【００１１】
また、上記目的を達成するために、本発明は、コンピューターにより実行可能なプログラムであって、前記コンピューターを、入力データに含まれる文字コードの値を演算して検索キーを求める手段と、求めた検索キーに基づいて、前記入力データに含まれる文字の文字コードから求められるハッシュ値と記録装置が記録可能な文字コードとを配列したハッシュテーブルを検索し、対応する文字コードを取得する手段と、取得された前記文字コードに基づいて前記記録装置が記録可能な記録データを出力する手段と、して機能させることを特徴とする。
本発明のプログラムをコンピューターによって実行することにより、入力データに含まれる文字コードの値を演算することによって検索キーを求め、テーブルを参照することによって、例えば膨大な文字コードを順次参照して該当する文字コードを検出する処理に比べて、高速かつ軽負荷の処理により、記録装置が記録可能な文字コードを得ることができる。
【発明の効果】
【００１２】
本発明によれば、入力データに含まれる文字コードを、高速かつ軽負荷の処理により、記録装置が記録可能な文字コードに変換できる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態に係る印刷システムの構成を示すブロック図である。
【図２】変換テーブルの構成を模式的に示す図である。
【図３】文字コードを変換する処理の説明図である。
【図４】印刷システムの動作を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、図面を参照して本発明の実施形態について説明する。
図１は、本発明を適用した実施形態に係る印刷システム１の構成を示すブロック図である。
図１に示す印刷システム１は、ホストコンピューター１０とプリンター２０（記録装置、データ処理装置）とを相互に通信可能に接続し、ホストコンピューター１０が出力するデータに基づいてプリンター２０により印刷物を出力するシステムである。
ホストコンピューター１０は、図示しないＣＰＵ、ＲＯＭ、ＲＡＭ等を備えて構成され、プログラムを実行してホストコンピューター１０の各部を中枢的に制御する制御部１１を備えている。制御部１１は、オペレーティングシステム１２を実行し、ホストコンピューター１０の各部及びプリンター２０を制御し、オペレーティングシステム１２上でアプリケーションプログラム１４を実行することにより、文書作成や印刷データの管理等の機能を実現する。アプリケーションプログラム１４は、プリンター２０により印刷する印刷ジョブを生成する。この印刷ジョブは、印刷される文字、画像等のデータと、文字や画像のサイズ及びレイアウト（文字間マージン、改行量、改行位置等を含む）、印刷物の上下左右の端に設けられるマージン量等を指定する各種のデータと、印刷実行を指示するデータとを含む。
【００１５】
オペレーティングシステム１２は、ホストコンピューター１０に接続されたプリンターを制御するプリンタードライバー１３を有する。プリンタードライバー１３は、ホストコンピューター１０に組み込まれたプログラムであり、アプリケーションプログラム１４が出力した印刷ジョブに含まれるデータを解析し、プリンターが解釈可能な各種のコマンドと、印刷される文字の文字コードや画像データ等の印刷データ（記録データ）を生成して、プリンターに出力する。プリンタードライバー１３は、プリンター２０の仕様に合わせて用意されたものであってもよいし、様々なプリンターに共通して使用される汎用のデバイスドライバープログラムであってもよい。
一方、プリンター２０は、後述するように印刷する文字のフォントデータを内蔵しており、プリンタードライバー１３が出力する印刷データに含まれる文字コードに対応するフォントデータを読み出して、印刷する。
【００１６】
本実施形態では、ホストコンピューター１０のオペレーティングシステム１２、プリンタードライバー１３及びアプリケーションプログラム１４の全て、または少なくともプリンタードライバー１３が使用する文字コードセットの少なくとも一部が、プリンター２０が使用する文字コードセットと異なっている場合を例に挙げて説明する。より具体的な例として、オペレーティングシステム１２、プリンタードライバー１３及びアプリケーションプログラム１４が、半角英数字についてはＡＳＣＩＩコードを使用し、漢字（簡体字）についてはＧＢ１８０３０規格の文字コードセットを使用し、プリンター２０はＵｎｉｃｏｄｅ（ＵＴＦ−１６）を使用する場合について説明する。この場合、ＧＢ１８０３０は第１の文字コードセットに対応し、ＵＴＦ−１６は第２の文字コードセットに対応する。
【００１７】
ホストコンピューター１０は、プリンター２０等の外部の機器が接続されるインターフェイス１５と、アプリケーションプログラム１４により作成されたデータ等を表示画面に表示する表示制御部１６と、オペレーターが操作するキーボードやマウス等の入力デバイスの操作を検出する入力検出部１７とを備えている。インターフェイス１５は、ＵＳＢ、ＲＳ−２３２Ｃ、Ｅｔｈｅｒｎｅｔ（登録商標）などの各種規格に準拠したコネクター及びインターフェイス回路を備え、ケーブルを介してプリンター２０等の機器に接続される。一方、プリンター２０は、ケーブルを介してホストコンピューター１０に接続されるインターフェイス２７を備えている。インターフェイス２７は、ＵＳＢ、ＲＳ−２３２Ｃ、Ｅｔｈｅｒｎｅｔ（登録商標）などの各種規格に準拠したコネクター及びインターフェイス回路を備えて構成される。なお、インターフェイス１５及びインターフェイス２７を、アンテナやＲＦ回路を有する無線通信インターフェイスとして構成してもよく、この場合、ホストコンピューター１０とプリンター２０とは無線通信回線により接続される。
本実施形態では、ホストコンピューター１０とプリンター２０とが１対１で接続される構成を例に挙げて説明するが、一つのホストコンピューター１０に対して複数のプリンター２０を接続することも、プリンター２０に複数のホストコンピューター１０を接続することも可能である。
【００１８】
また、プリンター２０は、図示しないＣＰＵ、ＲＯＭ、ＲＡＭ等を備え、プログラムを実行してプリンター２０の各部を中枢的に制御する制御部２１を備えている。
制御部２１は、インターフェイス２７を介してホストコンピューター１０が送信する印刷コマンド、印刷データ、及び、その他の制御コマンド等を受信して取得するデータ取得部２２と、データ取得部２２が取得した印刷データに含まれる文字コードを変換する文字コード変換部２３（変換手段）と、データ取得部２２が取得した印刷コマンド及び印刷データに基づき印刷を実行する印刷制御部２４（記録制御手段）とを備えている。ここで、データ取得部２２が取得する印刷コマンド及び印刷データが、本願発明の入力データに相当する。
また、プリンター２０は、印刷制御部２４の制御により印刷を実行する印刷ユニット４１（記録手段）を備えている。印刷ユニット４１は、記録媒体としての紙やシートを搬送する搬送モーター４２と、搬送モーター４２により搬送される記録媒体に文字や画像を印刷する印刷ヘッド４３と、印刷ヘッド４３により印刷された記録媒体を切断するカッターユニット４４とを備えている。本実施形態では、一例として、プリンター２０の筐体の内部または外部に感熱ロール紙をセット可能であり、印刷ヘッド４３が、感熱ロール紙に熱を与えて印刷を行うサーマルヘッドである場合について説明する。
【００１９】
また、プリンター２０は、各種データやプログラムを不揮発的に記憶する記憶部３１を備えている。記憶部３１は、制御部２１が実行する制御プログラム３２、文字コード変換部２３が文字コードを変換する際に参照する変換テーブル３３、印刷制御部２４が文字コードに基づいてフォントデータが格納されたアドレスを取得するためのコードページ３４、及び、プリンター２０が印刷可能な各文字のフォントデータ３５を記憶している。制御部２１は、制御プログラム３２を実行することにより、データ取得部２２、文字コード変換部２３及び印刷制御部２４として機能する。記憶部３１は、変換テーブル３３を記憶することにより記憶手段及びテーブル記憶手段に相当し、フォントデータ３５を記憶することでフォント記憶手段に対応する。
記憶部３１が記憶しているコードページ３４及びフォントデータ３５はＵＴＦ−１６に対応している。印刷制御部２４は、印刷ユニット４１により印刷させる文字について、ＵＴＦ−１６の文字コードを取得し、この文字コードをキーとしてコードページ３４を検索する。そして、印刷制御部２４は、コードページ３４から該当する文字のフォントデータ３５が記憶されているアドレスを取得し、取得したアドレスに従ってフォントデータ３５を読み出して、ＲＡＭ（図示略）に印刷イメージを展開し、この印刷イメージを印刷ユニット４１により印刷させる。
【００２０】
これに対し、ホストコンピューター１０は、上述したようにＡＳＣＩＩ及びＧＢ１８０３０の文字コードを含む印刷データを出力する。そこで、プリンター２０は、文字コード変換部２３の機能により、ＡＳＣＩＩからＵＴＦ−１６への変換、及び、ＧＢ１８０３０からＵＴＦ−１６への変換を実行する。このうちＡＳＣＩＩからＵＴＦ−１６への文字コードの変換は、文字コード変換部２３が、周知の方法により実行する。
また、文字コード変換部２３は、ＧＢ１８０３０からＵＴＦ−１６への変換を、変換テーブル３３を参照して実行する。すなわち、文字コード変換部２３は、データ取得部２２が取得した印刷データに含まれる文字コードを検出して、１文字分ずつ取得し、この１文字分のＧＢ１８０３０の文字コードに対応するＵＴＦ−１６の文字コードを、変換テーブル３３から取得する。
【００２１】
図２は、変換テーブル３３の構成を模式的に示す図である。
変換テーブル３３は、１つの文字を表すＧＢ１８０３０の文字コードとＵＴＦ−１６の文字コードとを対応づける情報であるバケット３３ｂ（レコード）を配列したハッシュテーブルである。各々のバケット３３ｂは、Ｎ個のハッシュキー３３ａのいずれかに対応づけられている。図２には、ハッシュキー３３ａを１２８個（０〜１２７）とした例を示す。ハッシュキー３３ａは、ＧＢ１８０３０の文字コードの値の和から求められるハッシュ値である。
【００２２】
ＧＢ１８０３０の文字コードからハッシュ値すなわちハッシュキー３３ａを求める方法は次の通りである。
ＧＢ１８０３０の文字コードは１バイト、２バイトまたは４バイトである。文字コード変換部２３は、変換対象のＧＢ１８０３０の文字コードを１バイト単位に分離し、１バイトの値の和を算出する。そして、算出した和をハッシュキーの数すなわちハッシュテーブルのサイズで除算し、余り（余剰演算子）をハッシュキーとする。これを式で表すと下記式（１）の通りである。
ハッシュキー＝文字コードの総和％Ｎ  …（１）
但し、％：余剰演算子、Ｎ：ハッシュテーブルのサイズである。
【００２３】
より具体的な例について図３を参照して説明する。
図３は、文字コードを変換する処理の説明図であり、図３（Ａ）は文字「阿」の文字コードを変換する例を示し、図３（Ｂ）は文字「水」を変換する例を示す。
図３（Ａ）に示すように、文字「阿」を示す文字コードは、変換前のＧＢ１８０３０の文字コードでは０ｘＢ０Ａ２である。文字コード変換部２３は、０ｘＢ０Ａ２を１バイトずつ、「Ｂ０」と「Ａ２」に分け、その総和を算出する。
Ｂ０＋Ａ２＝１５２  …（２）
式（２）により算出された和「１５２」は１６進数であり、１０進数に換算すれば「３３８」である。本実施形態ではハッシュテーブルのサイズは１２８であるから、文字コード変換部２３は、下記式（３）の演算を行って余を求める。
３３８÷１２８＝２  余り８２  …（３）
これにより、文字コード「０ｘＢ０Ａ２」のハッシュキーは「８２」と求められる。
【００２４】
図２に示す変換テーブル３３において、文字「阿」に対応するバケット３３ｂは、ハッシュキー３３ａ「８２」に対応づけられている。
文字コード変換部２３は、図３（Ａ）に示すように、印刷データに含まれる「阿」の文字コード「０ｘＢ０Ａ２」を取得し、上記式（１）〜（３）の演算を行ってハッシュキー「８２」を算出する。そして、図２の変換テーブル３３においてハッシュキー３３ａの値「８２」に対応づけられているバケット３３ｂを順次検索し、文字コード「０ｘＢ０Ａ２」を含むバケット３３ｂを特定する。そして、文字コード変換部２３は、特定したバケット３３ｂに含まれているＵＴＦ−１６の文字コード「０ｘ９６３Ｆ」を取得する。これにより、「阿」のＧＢ１８０３０の文字コード「０ｘＢ０Ａ２」は、ＵＴＦ−１６の文字コード「０ｘ９６３Ｆ」に変換される。
【００２５】
同様に、文字コード変換部２３は、印刷データから文字「水」のＧＢ１８０３０の文字コード「０ｘＣＢＡＥ」を取得すると、ハッシュキー「１２１」を求め、図２の変換テーブル３３を参照して、ハッシュキー３３ａの値「１２１」に対応づけられているバケット３３ｂを検索する。この処理により、文字コード変換部２３は、「水」のＵＴＦ−１６の文字コード「０ｘ６Ｃ３４」を得ることができる。
なお、本実施形態の印刷システム１では、ホストコンピューター１０は１バイト文字をＡＳＣＩＩの文字コードで出力するので、文字コード変換部２３が処理するＧＢ１８０３０の文字コードは２バイトか４バイトに限られる。従って、文字コード変換部２３は、印刷データに含まれるＧＢ１８０３０の文字コードを速やかに１文字分ずつ検出し、取得できる。
【００２６】
図４は、印刷システム１の動作を示すフローチャートであり、（Ａ）はホストコンピューター１０の動作を示し、（Ｂ）はプリンター２０の動作を示す。
ホストコンピューター１０の制御部１１は、アプリケーションプログラム１４の機能により印刷ジョブを生成して出力し（ステップＳ１１）、プリンタードライバー１３の機能により、印刷ジョブの内容に基づく印刷コマンド及び印刷データを生成する（ステップＳ１２）。制御部１１は、アプリケーションプログラム１４が出力した印刷ジョブに文字が含まれている場合、ＧＢ１８０３０の文字コードを含む印刷データを生成する。制御部１１は、プリンタードライバー１３が生成した印刷コマンドと印刷データを、インターフェイス１５を介してプリンター２０に送信する（ステップＳ１３）。
【００２７】
プリンター２０の制御部２１が備えるデータ取得部２２は、ホストコンピューター１０から送信された印刷コマンド及び印刷データを、インターフェイス２７を介して受信する（ステップＳ２１）。文字コード変換部２３は、データ取得部２２が受信した印刷データから文字コード列を抽出する（ステップＳ２２）。ここで、文字コード変換部２３は、抽出した文字コード列から１文字分の文字コードを取得し（ステップＳ２３）、上記の処理を実行する。すなわち、文字コード変換部２３は、取得した文字コードを１バイト単位に分けて、各バイトの総和を算出し、算出した総和と変換テーブル３３のサイズに基づき、ハッシュキーの値を算出する（ステップＳ２４）。次いで、文字コード変換部２３は、変換テーブル３３を参照し、算出したハッシュキーと一致するハッシュキー３３ａに対応づけられたバケット３３ｂを参照して、ＵＴＦ−１６の文字コードを取得し、ＲＡＭ（図示略）に一時的に記憶する（ステップＳ２５）。
【００２８】
文字コード変換部２３は、ステップＳ２２で抽出した全てのＧＢ１８０３０の文字コードについて、ＵＴＦ−１６への変換が完了したか否かを判別し（ステップＳ２６）、完了していなければ（ステップＳ２６；Ｎｏ）、ステップＳ２３に戻って次の１文字分の文字コードを取得して処理を継続する。
一方、全ての文字コードについて処理が完了した場合（ステップＳ２６；Ｙｅｓ）、文字コード変換部２３は、ＲＡＭに記憶したＵＴＦ−１６の文字コードを、文字コード列以外の印刷データと合成して、変換後の印刷データを生成する（ステップＳ２７）。続いて、印刷制御部２４は、印刷コマンドと変換された印刷データとに基づいて印刷イメージをＲＡＭに展開し、この印刷イメージに従って印刷ユニット４１を制御して、印刷を行う（ステップＳ２８）。
【００２９】
以上説明したように、本発明を適用した実施形態に係る印刷システム１によれば、プリンター２０は、ホストコンピューター１０から入力される印刷データに基づいて、印刷可能な印刷データを出力するデータ処理装置として機能し、印刷データに含まれる文字の文字コードと、プリンター２０が印刷可能な文字コードとの対応を定めた変換テーブル３３を記憶した記憶部３１と、印刷データに含まれるＧＢ１８０３０の文字コードの値を演算してハッシュキーを求め、求めたハッシュキーに基づき変換テーブル３３を検索して対応する文字コードを取得する文字コード変換部２３と、を備えている。
これにより、印刷データに含まれる文字コードの値を演算することによってハッシュキーを求め、このハッシュキーに基づいて変換テーブル３３を参照すれば、速やかに、プリンター２０が印刷可能な文字コード、すなわちＵＴＦ−１６の文字コードを得ることができる。このため、例えば膨大な文字コードを順次参照して該当する文字コードを検出する処理に比べて、高速かつ軽負荷の処理により該当する文字コードを得られる。本実施形態で例示したＧＢ１８０３０は多数の文字を含んでいる。このため、例えばＧＢ１８０３０の全ての文字コードにＵＴＦ−１６の文字コードを対応づけて、ＧＢ１８０３０の文字コードの順に並べたデータを用い、これらのデータを一つずつ参照して該当する文字コードを特定する処理を行うと、１文字の文字コードを変換するために多数の処理が必要になる。これに対し、本実施形態では文字コードの値そのものを演算することで、変換テーブル３３を検索する検索キーとしてのハッシュキーを速やかに得ることができる。変換テーブル３３において一つのハッシュキー３３ａに対応するバケット３３ｂは、ＧＢ１８０３０の文字数に比べて小さいため、上記の例よりも高速に、対応する文字コードを取得できる。従って、印刷データに含まれる文字コードを、負荷の軽い処理によって速やかに、他の文字コードセットの文字コードに変換し、印刷することができる。
【００３０】
そして、ＧＢ１８０３０の文字コードセットを使用するホストコンピューター１０のソフトウェア仕様等を変更することなく、ＵＴＦ−１６の文字コードセットを使用して印刷を行うプリンター２０をホストコンピューター１０に接続して、印刷を実行させることができる。このため、印刷システム１においてホストコンピューター１０に接続されたプリンターを、別の機種のプリンターに容易に置き換えることができる。
【００３１】
また、本願発明はＧＢ１８０３０に限らず、多数の文字を含む文字コードに適用した場合により一層顕著な効果を奏するものであり、特に２バイト文字や４バイト文字を含む文字コードを他の文字コードセットの文字コードに変換する場合に有用である。さらに、文字コードセットの中には文字が割り当てられていない空きコードが存在することが少なくない。このような文字コードセットについて、上記のように文字コードを順次参照する処理を行うと、空きコードを参照する処理が無駄になってしまう。しかしながら、本実施形態のように１文字分の文字コードの値の和から得られるハッシュキー３３ａを添え字とするハッシュテーブルである変換テーブル３３を用いれば、このような無駄な処理を回避できる。従って、より一層の処理の効率化を図ることができる。
また、文字コード変換部２３は、印刷データに含まれる文字コードを１文字分ずつ取得して変換テーブル３３を検索するので、より負荷の軽い処理によって文字コードを変換できる。
【００３２】
なお、上記実施形態は本発明を適用した一態様を示すものであって、本発明を限定するものではない。すなわち、上記実施形態においては、プリンター２０がデータ処理装置として機能し、ホストコンピューター１０が出力した印刷データを、プリンター２０が備える文字コード変換部２３が、プリンター２０が備える記憶部３１に記憶した変換テーブル３３を参照して変換する構成を例に挙げて説明したが、本発明はこれに限定されるものではなく、例えば、プリンタードライバー１３が出力した印刷データを変換するプログラムとして、ホストコンピューター１０に実装することも可能である。この場合、ホストコンピューター１０が備えるハードディスクドライブや半導体メモリー等の記憶装置（図示略）に変換テーブル３３を格納することで、制御部１１が、文字コードの変換を行い、変換後の印刷データをインターフェイス１５から出力できる。この構成は、具体的には、プリンタードライバー１３の機能を補完する、本発明のプログラムに相当するドライバープログラムをホストコンピューター１０にインストールすることで実現できる。さらに、ホストコンピューター１０とプリンター２０との間に介在して、ホストコンピューター１０が送信する印刷データを中継するデータ処理装置を設け、このデータ処理装置が変換テーブル３３を記憶し、文字コード変換部２３と同様の処理を行って、変換後の印刷データをプリンター２０に送信する構成とすることも可能である。この場合、ホストコンピューター１０及びプリンター２０のソフトウェア構成を何ら変更することなく実現可能である。
また、例えば、上述した実施形態ではサーマルヘッドにより感熱ロール紙に印刷する印刷ユニット４１を備えた構成を例に挙げて説明したが、本発明はこれに限定されるものではなく、印刷ユニット４１は、インクジェット式のプリンターであってもよいし、ドットインパクト式プリンター、レーザープリンター、その他の各種プリンターとしてもよい。さらに、図１に示す各機能ブロックはハードウェアとソフトウェアの協働により任意に実現可能であり、特定のハードウェア構成を示唆するものではない。さらに、制御部１１及び制御部２１は、外部接続される記憶媒体に記憶させたプログラムを実行することにより、図４のフローチャートに係る動作を含む各種動作を実行する構成としてもよい。
【符号の説明】
【００３３】
１…印刷システム、１０…ホストコンピューター、１１…制御部、１３…プリンタードライバー、１４…アプリケーションプログラム、２０…プリンター（データ処理装置、記録装置）、２１…制御部、２２…データ取得部、２３…文字コード変換部（変換手段）、２４…印刷制御部（記録制御手段）、３１…記憶部（記憶手段、フォント記憶手段、テーブル記憶手段）、３２…制御プログラム（プログラム）、３３…変換テーブル（テーブル）、３３ａ…ハッシュキー（ハッシュ値）、３３ｂ…バケット（レコード）、４１…印刷ユニット（記録手段）。
【図１】
2014013485.tif 000003
【図２】
2014013485.tif 000004
【図３】
2014013485.tif 000005
【図４】
2014013485.tif 000006