(57)【要約】【課題】記録装置が持つフォントを使用して、レイアウトが乱れないように記録を行い、良好な記録結果を得られるようにする。【解決手段】ＰＯＳアプリケーションが出力した文字列を含むデータに含まれる文字列のフォントを、ＰＯＳアプリケーションが使用するフォントからプリンター１２が内蔵する内蔵フォントに置換する際に、文字列間のずれを補正する補正処理部２１ａと、補正処理部２１ａにより補正されたデータに従って、内蔵フォントによりプリンター１２に記録を実行させるプリンタードライバー実行部２１とを備える。【選択図】図１
2013061835.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションプログラムが出力した文字列と当該文字列の位置情報を含むデータの少なくとも一部を、記録装置が内蔵する内蔵フォントに対応するコードへ置換した後、前記記録装置へ送信して記録させる記録制御装置であって、
前記データに含まれる文字列のフォントを、前記アプリケーションプログラムが使用するフォントから前記記録装置が内蔵する内蔵フォントに対応するコードへ置換する際に、前記位置情報を補正する補正手段と、
前記補正手段により補正された位置情報と、前記内蔵フォントのコードを前記記録装置へ送信することにより前記記録装置に記録を実行させる記録制御手段と、
を備えることを特徴とする記録制御装置。
【請求項２】
前記補正手段は、行方向または桁方向における前記文字列の位置情報を補正することを特徴とする請求項１記載の記録制御装置。
【請求項３】
前記補正手段は、前記データに含まれる複数の前記文字列のうち同じ種類の前記内蔵フォントのコードに置換される複数の前記文字列を、一つの位置情報を有する一つの文字列に統合することを特徴とする請求項１または２記載の記録制御装置。
【請求項４】
前記補正手段は、前記アプリケーションプログラムが出力した前記データに複数の前記文字列と各々の前記文字列の位置情報とが含まれていて、いずれかの前記文字列を前記内蔵フォントのコードと位置情報に基づき置換した後の記録領域の位置に、他の前記文字列に対し前記データで指定された記録領域の位置が重なる場合に、これら重なる前記文字列を、一つの位置情報を有する一つの文字列に統合することを特徴とする請求項１または２記載の記録制御装置。
【請求項５】
前記補正手段は、前記記録装置が内蔵する複数の前記内蔵フォントのサイズを記憶しており、桁方向に隣接する前記文字列が互いに異なる前記内蔵フォントのコードに置換される場合に、少なくとも一方の前記文字列の位置情報を前記内蔵フォントのサイズに基づいて補正することを特徴とする請求項１または２記載の記録制御装置。
【請求項６】
前記補正手段は、前記アプリケーションプログラムが出力した前記データに複数の文字列と各々の前記文字列の位置情報とが含まれていて、いずれかの前記文字列を前記内蔵フォントのコードに置換した後の記録領域の位置に、次行の前記文字列に対し前記データで指定された記録領域の位置が重なる場合に、少なくとも次行の前記文字列の位置情報を前記内蔵フォントのサイズに基づいて補正することを特徴とする請求項１または２記載の記録制御装置。
【請求項７】
アプリケーションプログラムが出力した文字列と当該文字列の位置情報を含むデータの少なくとも一部を、記録装置が内蔵する内蔵フォントに対応するコードへ置換した後、前記記録装置へ送信して記録させる記録装置の制御方法であって、
前記データに含まれる文字列のフォントと当該文字列を記録する際の位置情報を、前記アプリケーションプログラムが使用するフォントから前記記録装置が内蔵する内蔵フォントに対応するコードに置換する際に、前記位置情報を補正し、
補正されたデータに従って、前記内蔵フォントのコードを前記記録装置へ送信することにより前記記録装置に記録を実行させること、
を特徴とする記録装置の制御方法。
【請求項８】
アプリケーションプログラムが出力した文字列と当該文字列の位置情報を含むデータの少なくとも一部を、記録装置が内蔵する内蔵フォントに対応するコードへ置換した後、前記記録装置へ送信して記録させるための記録制御装置の制御部が実行するプログラムであって、
前記制御部を、
前記データに含まれる文字列のフォントと当該文字列を記録する際の位置情報を、前記アプリケーションプログラムが使用するフォントから前記記録装置が内蔵する内蔵フォントのコードに置換する際に、前記位置情報を補正する補正手段と、
前記補正手段により補正されたデータに従って、前記内蔵フォントのコードを前記記録装置へ送信することにより前記記録装置に記録を実行させる記録制御手段と、
して機能させること特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記録装置を制御する記録制御装置、当該記録装置の制御方法、及び、当該記録装置を制御するためのプログラムに関する。
【背景技術】
【０００２】
従来、プリンター等の記録装置において、記録装置自体が搭載するフォントデータを用いて記録を行うものが知られている。この種の記録装置は、ホスト装置が実行するアプリケーションにより生成されたデータに含まれる文字のフォントを、記録装置が搭載するフォントに置き換えて記録を行う（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−３３９１２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、ホスト装置においてアプリケーションがディスプレイ等に使用するフォントと、記録装置が搭載しているフォントとで文字のサイズが異なることがある。このような場合、フォントを置き換えることによって、アプリケーションが作成しディスプレイ等に表示したレイアウトと記録結果とが相違してしまい、例えば分かれて記録されるべき複数の文字列が重なって記録されてしまう等の問題が生じる可能性があった。
本発明は、上述した事情に鑑みてなされたものであり、記録装置が持つフォントを使用して、レイアウトが乱れないように記録を行い、良好な記録結果を得られるようにすることを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するために、本発明は、アプリケーションプログラムが出力した文字列と当該文字列の位置情報を含むデータの少なくとも一部を、記録装置が内蔵する内蔵フォントに対応するコードへ置換した後、前記記録装置へ送信して記録させる記録制御装置であって、前記データに含まれる文字列のフォントを、前記アプリケーションプログラムが使用するフォントから前記記録装置が内蔵する内蔵フォントに対応するコードへ置換する際に、前記位置情報を補正する補正手段と、前記補正手段により補正された位置情報と、前記内蔵フォントのコードを前記記録装置へ送信することにより前記記録装置に記録を実行させる記録制御手段と、を備えることを特徴とする。
本発明によれば、内蔵フォントのコードへ置換する際に位置情報を補正するので、文字列間のずれを補正することができ、内蔵フォントにより文字のサイズや字間が異なっていても、内蔵フォントの置き換えによる文字列の記録位置の乱れを防ぐことができ、良好な記録結果を得ることができる。
【０００６】
また、本発明は、上記記録制御装置において、前記補正手段は、行方向または桁方向における前記文字列の位置情報を補正することを特徴とする。
本発明によれば、文字列の間隔のずれを補正することで文字列のレイアウトの乱れを回避でき、良好な記録結果を得ることができる。
【０００７】
また、本発明は、上記記録制御装置において、前記補正手段は、前記データに含まれる複数の前記文字列のうち同じ種類の前記内蔵フォントのコードに置換される複数の前記文字列を、一つの位置情報を有する一つの文字列に統合することを特徴とする。
本発明によれば、同じ種類の内蔵フォントの複数の文字列を一つの文字列に統合して記録装置により記録させるので、文字列間の間隔が不自然に空いたり、間隔が無く文字列が重なったりする等の不具合を確実に防止できる。また、同じ内蔵フォントに置換される文字列を統合するので、意図しない記録結果になることがない。
【０００８】
また、本発明は、上記記録制御装置において、前記補正手段は、前記アプリケーションプログラムが出力した前記データに複数の前記文字列と各々の前記文字列の位置情報とが含まれていて、いずれかの前記文字列のコードと位置情報に基づき前記内蔵フォントに置換した後の記録領域の位置に、他の前記文字列に対し前記データで指定された記録領域の位置が重なる場合に、これら重なる前記文字列を、一つの位置情報を有する一つの文字列に統合することを特徴とする。
本発明によれば、内蔵フォントに置換することで記録領域における位置が重なる複数の文字列を一つの文字列に統合することで、簡単な処理により、文字列の重複記録を確実に回避でき、良好な記録結果を得ることができる。
【０００９】
また、本発明は、上記記録制御装置において、前記補正手段は、前記記録装置が内蔵する複数の前記内蔵フォントのサイズを記憶しており、桁方向に隣接する前記文字列が互いに異なる前記内蔵フォントのコードに置換される場合に、少なくとも一方の前記文字列の位置情報を前記内蔵フォントのサイズに基づいて補正することを特徴とする。
本発明によれば、桁方向に並ぶ複数の文字列の間隔を適正に補正できるので、文字列の重複や文字列間が離れすぎるなど、内蔵フォントの桁方向のサイズに起因する不具合を回避し、置き換えられる内蔵フォントの種類によらず良好な記録結果を得ることができる。
【００１０】
また、本発明は、上記記録制御装置において、前記補正手段は、前記アプリケーションプログラムが出力した前記データに複数の文字列と各々の前記文字列の位置情報とが含まれていて、いずれかの前記文字列を前記内蔵フォントのコードに置換した後の記録領域の位置に、次行の前記文字列に対し前記データで指定された記録領域の位置が重なる場合に、少なくとも次行の前記文字列の位置情報を前記内蔵フォントのサイズに基づいて補正することを特徴とする。
本発明によれば、複数行の文字列の記録位置が重なってしまう場合に、行方向における文字列の間隔を適正に補正できるので、内蔵フォントの行方向のサイズに起因する不具合を回避し、置き換えられる内蔵フォントの種類によらず良好な記録結果を得ることができる。
【００１１】
また、上記目的を達成するために、本発明は、アプリケーションプログラムが出力した文字列と当該文字列の位置情報を含むデータの少なくとも一部を、記録装置が内蔵する内蔵フォントに対応するコードへ置換した後、前記記録装置へ送信して記録させる記録装置の制御方法であって、前記データに含まれる文字列のフォントと当該文字列を記録する際の位置情報を、前記アプリケーションプログラムが使用するフォントから前記記録装置が内蔵する内蔵フォントに対応するコードに置換する際に、前記位置情報を補正し、補正されたデータに従って、前記内蔵フォントのコードを前記記録装置へ送信することにより前記記録装置に記録を実行させること、を特徴とする。
本発明の記録装置の制御方法によれば、内蔵フォントを記録装置の内蔵フォントに置換する際に位置情報を補正するので、文字列間のずれを補正でき、内蔵フォントにより文字のサイズや字間が異なっていても、内蔵フォントの置き換えによる文字列の記録位置の乱れを防ぐことができ、良好な記録結果を得ることができる。
【００１２】
また、上記目的を達成するために、本発明は、アプリケーションプログラムが出力した文字列と当該文字列の位置情報を含むデータの少なくとも一部を、記録装置が内蔵する内蔵フォントに対応するコードへ置換した後、前記記録装置へ送信して記録させるための記録制御装置の制御部が実行するプログラムであって、前記制御部を、前記データに含まれる文字列のフォントと当該文字列を記録する際の位置情報を、前記アプリケーションプログラムが使用するフォントから前記記録装置が内蔵する内蔵フォントに置換する際に、前記位置情報を補正する補正手段と、前記補正手段により補正されたデータに従って、前記内蔵フォントのコードを前記記録装置へ送信することにより前記記録装置に記録を実行させる記録制御手段と、して機能させること特徴とする。
本発明のプログラムを制御部が実行することにより、内蔵フォントを記録装置の内蔵フォントに置換する際に位置情報を補正するので、文字列間のずれを補正でき、内蔵フォントにより文字のサイズや字間が異なっていても、内蔵フォントの置き換えによる文字列の記録位置の乱れを防ぐことができ、良好な記録結果を得ることができる。
【発明の効果】
【００１３】
本発明によれば、フォントの置き換えによる文字列の記録位置の乱れを防ぐことができ、良好な記録結果を得ることができる。
【図面の簡単な説明】
【００１４】
【図１】本実施形態に係る記録システムの機能的構成を示すブロック図である。
【図２】プリンタードライバーによる補正処理の一例を示す説明図である。
【図３】プリンタードライバーによる補正処理の別の例を示す説明図である。
【図４】プリンタードライバーによる補正処理のさらに別の例を示す説明図である。
【図５】プリンタードライバーによる補正処理のさらに異なる例を示す説明図である。
【図６】ホストコンピューターの動作を示すフローチャートである。
【図７】ホストコンピューターの動作を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下、図面を参照して本発明の実施形態について説明する。
図１は、本発明を適用した実施形態に係る記録システム１の構成を示すブロック図である。
この図１に示すように、記録システム１は、ホストコンピューター１１（記録制御装置）と、ホストコンピューター１１に対して通信可能に接続されたプリンター１２（記録装置）とを、を備えている。
ホストコンピューター１１は、例えば、小売店等の店頭に設置され、売上登録処理及び精算処理を行う販売時点管理システム（ＰＯＳシステム）を搭載したＰＯＳ端末装置であり、取引毎にプリンター１２によってレシート（図示略）を発行する。プリンター１２は、記録媒体としての感熱ロール紙に文字や画像を印刷（記録）してカットする機能を備えている。ホストコンピューター１１は、プリンター１２を制御して、取引における商品の購入に関する情報や、店舗のロゴ等を含む所定の画像を感熱ロール紙に記録させ、感熱ロール紙を切断させて１つの紙片であるレシートを発行する。
【００１６】
図１に示すように、ホストコンピューター１１は、制御部１３と、入力部１４と、表示部１５と、インターフェイス部１６と、記憶部１７と、を備えている。
制御部１３は、ホストコンピューター１１を中枢的に制御するものであり、各種プログラムを実行するＣＰＵ、ＣＰＵにより実行される基本制御プログラム等を記憶するＲＯＭ、ＣＰＵが実行するプログラムや処理対象のデータ等を一時的に記憶するワークエリアを形成するＲＡＭ、その他周辺回路等を備えている。制御部１３は、ＰＯＳアプリケーション実行部２０と、プリンタードライバー実行部２１と、を備えているが、これらについては、後述する。
入力部１４は、オペレーターに操作される売上登録キー等の各種キーを備えたキーボードや、マウス、バーコードスキャナー、カードリーダー等の入力デバイスが接続され、入力デバイスに対する操作を検出し、操作信号として制御部１３に出力する。
表示部１５は、液晶ディスプレイ等の表示パネル１５ａを備え、制御部１３の制御の下、売上登録処理及び精算処理の処理内容等の各種情報を表示パネル１５ａに表示する。
インターフェイス部１６は、制御部１３の制御の下、プリンター１２との間で通信規格に準拠した通信を行う。
記憶部１７は、ハードディスクや、フラッシュメモリー等の不揮発性メモリーを備えて構成され、各種データを書き換え可能に記憶する。記憶部１７に記憶される各データについては、後述する。
【００１７】
また、プリンター１２（記録装置）は、ホストコンピューター１１の制御に従って、ロール状に巻かれた感熱ロール紙（記録媒体）を、搬送機構（不図示）により搬送しつつ、この感熱ロール紙の記録面にラインサーマルヘッド（不図示）によって熱を与えることにより文字や画像を記録し、切断機構（不図示）により所定の位置で感熱ロール紙を切断することによってレシートを発行するサーマルラインプリンターである。
図１に示すように、プリンター１２は、プリンター側制御部３０と、インターフェイス部３１と、プリントエンジン３２と、プリンター側記憶部３３と、を備えている。
プリンター側制御部３０は、プリンター１２の各部を中枢的に制御するものであり、上述した制御部１３と同様、ＣＰＵや、ＲＯＭ、ＲＡＭその他の周辺回路を備えている。
インターフェイス部３１は、プリンター側制御部３０の制御の下、ホストコンピューター１１との間で、通信規格に準拠した通信を行う。
プリントエンジン３２は、プリンター側制御部３０の制御の下、用紙端センサーや用紙残量センサー等の各種センサーの検出値を監視しながら、上述したラインサーマルヘッドのほか、感熱ロール紙を搬送するプラテンローラーを駆動するための搬送モーターや、上述した切断機構が備えるカッターを駆動するためのカッター駆動モーターを動作させて、感熱ロール紙に画像を記録し、画像を記録した感熱ロール紙を切断することによりレシートを発行する。
プリンター側記憶部３３は、ハードディスクや、フラッシュメモリー等の不揮発性メモリーを備え、各種データを書き換え可能に記憶する。記憶部１７に記憶される各データについては、後述する。
【００１８】
次いで、ＰＯＳアプリケーション実行部２０、及び、プリンタードライバー実行部２１の説明を通して、１つのレシートを発行する際の記録システム１の基本的な動作について説明する。
ＰＯＳアプリケーション実行部２０は、ホストコンピューター１１に予めインストールされたＰＯＳアプリケーションを実行することにより、取引毎に、例えば所定のサーバーにアクセスする等して、取引において購入された商品を示す情報や、商品の単価を示す情報、購入金額を示す情報等のレシートに記載すべき情報を取得し、取得した情報に基づいてレシートに記録すべき画像に係る印刷データを生成し、プリンタードライバー実行部２１に出力する。
本実施形態では、ＰＯＳアプリケーション実行部２０が生成する印刷データは、印刷する文字を指定するキャラクターデータ、印刷に用いるフォントの種別、印刷位置等を示すデータを含んでいる。キャラクターデータは、制御部１３がアプリケーションを実行するプラットホームとしてのＯＳ（オペレーティングシステム）で使用される文字コード（例えば、Ｕｎｉｃｏｄｅ）や、その他の文字コードで表現される。また、ＰＯＳアプリケーション実行部２０が生成する印刷データは、１枚のレシートを構成する１または複数行の文字を含んでおり、これらの文字は、任意の数の文字で構成される文字列を構成している。換言すれば、印刷データは複数の文字列からなる１ページ分のデータである。
【００１９】
プリンタードライバー実行部２１（記録制御手段）は、ホストコンピューター１１に予めインストールされたプリンタードライバーを実行することにより、ＰＯＳアプリケーション実行部２０から入力された印刷データに基づいて、プリンター１２のコマンド仕様に対応した制御コマンドを生成し、プリンター１２に出力する。この制御コマンドには、搬送機構に感熱ロール紙を搬送させるコマンドや、内蔵フォントの種類を指定するコマンド、ラインサーマルヘッドを駆動させて画像を記録させるコマンド、切断機構に感熱ロール紙を切断させるコマンド等が含まれている。また、プリンタードライバー実行部２１は、ＯＳで使用される文字コードを、アスキーコードなどプリンター１２の内蔵フォントの文字コードに変換する。
制御コマンドが入力されたプリンター側制御部３０は、制御コマンドに従って、プリントエンジン３２を制御して、レシートの発行に係る各種動作を実行する。
【００２０】
プリンター１２は、いわゆる内蔵フォントとしてフォントＡ、Ｂ、Ｃの３種類のフォントを搭載しており、これらフォントＡ、Ｂ、Ｃのうち指定されたフォントを利用して感熱ロール紙に印刷する。そして、プリンター１２のプリンター側記憶部３３には、フォントＡに係るフォントデータ（以下、「フォントＡデータ」という）を集合して記憶するテーブルであるフォントＡテーブル４０と、フォントＢに係るフォントデータ（以下、「フォントＢデータ」という）を集合して記憶するテーブルであるフォントＢテーブル４１と、フォントＣに係るフォントデータ（以下、「フォントＣデータ」という）を集合して記憶するテーブルであるフォントＣテーブル４２と、が記憶されている。
【００２１】
フォントデータとは、文字を記録媒体に記録可能な態様で表現する実データのことであり、本実施形態では、ビットマップフォントデータであるものとする。フォントデータとしては、ビットマップフォントデータのほか、スケイラブルフォントデータや、ベクトルフォントデータ、アウトラインフォントデータ等がある。また、本実施形態では、文字とは、言語で使用される、意味を持った文字や、何らかの意味を有する記号だけを指すのではなく、プリンター側記憶部３３に記憶されたフォントデータを利用して記録媒体に記録される「形状」の全てを指す広い概念である。
【００２２】
フォントＡデータは、サイズが横１２ドット×縦２４ドット、字体がゴシック体のフォントデータである。フォントＡデータを構成する各画素は、フォントＡデータに基づいて感熱ロール紙に実際に記録される文字に係る画像を構成する各画素と対応しており、１のフォントＡデータに基づいて感熱ロール紙に記録される文字は、感熱ロール紙において横１２ドット×縦２４ドットの画素から構成される画像となる。このことは、フォントＢデータ、フォントＣデータについても同様である。フォントＢデータは、サイズが横９ドット×縦１７ドット、字体が明朝体のフォントデータであり、フォントＣデータはサイズが横１２ドット×縦２４ドット、字体がイタリック体のフォントデータである。
【００２３】
フォントＡテーブル４０、フォントＢテーブル４１及びフォントＣテーブル４２は、フォントデータを格納したテーブルであり、それぞれ文字数に対応した格納領域を有し、各々の格納領域にフォントデータを１つ格納している。このため、フォントＡテーブル４０、フォントＢテーブル４１及びフォントＣテーブル４２のいずれかを指定する情報と、フォントテーブルにおいてフォントデータが格納された番地を示す情報とによって、１つのフォントデータを一意に指定可能である。プリンター側制御部３０は、フォントＡ、Ｂ、Ｃのうちホストコンピューター１１から入力される制御コマンドにより指定されたフォントのフォントテーブルを参照し、指定された文字のフォントデータを読み出して配置し、感熱ロール紙に印刷する。
【００２４】
また、ホストコンピューター１１は、プリンター１２の内蔵フォントであるフォントＡ、Ｂ、Ｃに対応して、フォントＡ置換情報４５、フォントＢ置換情報４６及びフォントＣ置換情報４７を記憶部１７に記憶している。記憶部１７には、それぞれのフォント（フォントＡ、Ｂ、Ｃ）のサイズ情報も記憶している。
上述のように、ＰＯＳアプリケーション実行部２０は、アプリケーションを実行するプラットホーム（ＯＳ）で使用されるシステムフォントを用いて印刷データを生成するが、実際にプリンター１２が印刷に使用するのはプリンター１２の内蔵フォントである。このため、プリンタードライバー実行部２１の機能により、ＰＯＳアプリケーション実行部２０が出力した印刷データに含まれるフォントをプリンター１２の内蔵フォントの文字コードに置き換える処理が行われる。
【００２５】
ＰＯＳアプリケーション実行部２０が文字をレイアウトしてレシートの印刷データを作成する際に、ＰＯＳアプリケーション実行部２０が認識している文字の大きさや字間は、ＰＯＳアプリケーション実行部２０のプラットホームで使用される既定のシステムフォント、或いは、プラットホームで使用可能な複数のフォントから選択されたフォントである。
ところで、ＰＯＳアプリケーション実行部２０が使用するシステムフォントとプリンター１２の内蔵フォントとは完全に一致することが保証されるものではなく、外観やサイズが顕著に異なるフォントへの置き換えが行われることもある。この場合、ＰＯＳアプリケーション実行部２０が作成したレイアウトの通りに印刷されないことがあり得る。
【００２６】
例えば、ＰＯＳアプリケーション実行部２０が出力する印刷データが特殊なサイズ或いは形状のフォントを使用している場合、プリンター１２の内蔵フォントの中に似たサイズのフォントが無ければ、プリンター１２が印刷を実行することを優先して、プリンター１２の内蔵フォントのいずれかに置き換えて印刷される。レシート等の重要度の高い帳票を印刷する場合、印刷データが入力されたのに印刷を行わないことは考えにくく、一般的には印刷を実行することが優先される。
【００２７】
ＰＯＳアプリケーション実行部２０が認識しているフォントのサイズと、プリンター１２が使用する内蔵フォントのサイズとが異なっている場合、例えば、並べて印刷されるべき文字が互いに重なり合ってしまう、極端に字間が大きくなってしまう、行間が狭くなってしまう、上下に並ぶ文字が重なってしまう等の不具合が懸念される。
そこで、ホストコンピューター１１は、プリンタードライバー実行部２１が備える補正処理部２１ａによって、フォントを置き換える際にレイアウトの乱れを招かないように、データを補正する機能を有する。
【００２８】
記憶部１７には、フォントＡ置換情報４５、フォントＢ置換情報４６、及びフォントＣ置換情報４７が格納されている。フォントＡ置換情報４５は、プリンター１２の内蔵フォントであるフォントＡについて、縦横の文字サイズ等の情報を含んでいる。同様に、フォントＢ置換情報４６は、プリンター１２の内蔵フォントＢのサイズに関する情報を含み、フォントＣ置換情報４７はプリンター１２の内蔵フォントＣのサイズに関する情報を含んでいる。ここで、内蔵フォントＡ、Ｂ、Ｃのいずれかがプロポーショナルフォントである場合、文字毎に横方向のサイズが異なるので、フォントＡ置換情報４５、フォントＢ置換情報４６、及びフォントＣ置換情報４７のうち対応する置換情報には、文字毎のサイズに関する情報が含まれる。内蔵フォントの文字サイズが当該フォント種別の全ての文字で一定の場合、フォントＡ置換情報４５、フォントＢ置換情報４６及びフォントＣ置換情報４７に含まれるサイズに関する情報は一つで良い。
【００２９】
プリンタードライバー実行部２１は、ＰＯＳアプリケーション実行部２０が作成した印刷データに、文字列の印刷位置を指定する情報（位置情報）と、この文字列のフォントを指定する情報と、文字列を構成する文字のデータとが含まれている場合に、指定されたフォントをプリンター１２の内蔵フォントに置き換える処理を行う。指定されたフォントと置き換え先のフォントの関係は、予め設定され、設定ファイル４９として記憶部１７に記憶されている。プリンター１２の内蔵フォントの数は限られているため、ＰＯＳアプリケーション実行部２０が指定する複数のフォントを一つの内蔵フォントに対応させることもできる。また、ＰＯＳアプリケーション実行部２０が出力した印刷データにおいてフォントを指定する情報が含まれていない場合には、予めデフォルトで設定されたフォントが指定されたものとして、プリンタードライバー実行部２１はフォントの置き換えを行う。プリンタードライバー実行部２１は、置き換え後のフォントに基づいて、感熱ロール紙を搬送させるコマンドや、文字を印刷させるコマンドを含む制御コマンドを生成する。
【００３０】
フォントの置き換えの際、補正処理部２１ａ（補正手段）は、置き換え後のフォントのサイズ、文字列を構成する文字数、及び、印刷データで指定された文字列の印刷位置に基づいて、当該文字列の印刷終了位置を求める。そして、補正処理部２１ａは、印刷データに含まれる文字列どうしが重なって印刷される等の不具合が発生しないように、制御コマンドを補正する。
【００３１】
図２〜図５は、プリンタードライバー実行部２１の補正処理部２１ａが実行する補正処理の一例を示す説明図である。各図の（Ａ）はＰＯＳアプリケーション実行部２０が出力する印刷データに含まれるデータの例を示し、（Ｂ）はプリンタードライバー実行部２１が生成する制御コマンドに含まれるデータの例を示し、（Ｃ）はＰＯＳアプリケーション実行部２０により作成された印刷レイアウトのイメージを示し、（Ｄ）は実際にプリンター１２が印刷する印刷結果のイメージを示し、（Ｅ）は補正処理部２１ａによる補正後の制御コマンドに含まれるデータの例を示し、（Ｆ）は補正後の制御コマンドに従ってプリンター１２が印刷する印刷結果のイメージを示す。
【００３２】
（Ｃａｓｅ．１）
まず、ＰＯＳアプリケーション実行部２０が使用したフォントにおける幅方向の文字サイズが、置換後の内蔵フォントの幅方向の文字サイズより大きい場合について、Ｃａｓｅ．１として図２を参照して説明する。すなわち、「置換前の文字幅＞置換後の文字幅」の場合である。
図２（Ａ）に示す例では、ＰＯＳアプリケーション実行部２０が生成した印刷データに、２つの文字列に関するデータ１０１、１０２が含まれている。データ１０１は、印刷開始位置（Ｘ１，Ｙ１）から、フォント種別「明朝」で文字列「１２３」を印刷するよう指示するデータであり、データ１０２は、印刷開始位置（Ｘ２，Ｙ１）から、フォント種別「明朝」で文字列「ａｂ」を印刷するよう指示するデータである。
プリンタードライバー実行部２１は、データ１０１、１０２のフォント種別「明朝」を内蔵フォントＢに置き換え、印刷開始位置をプリンター１２における座標に変換して、データ１０３、１０４を生成する。座標で示されるものが位置情報であり、座標で規定可能な範囲が記録領域である。データ１０３、１０４は、プリンター１２に送信される制御コマンドに含まれるデータであり、具体的なデータ形式等は任意である。データ１０３は、データ１０１に基づき生成されたデータであり、印刷開始位置を「左端からｘ１、紙送り方向ｙ１」とし、フォントを内蔵フォントＢとし、印刷するデータを「１２３」と指定する。「１２３」の指定は、アスキーコードなど、内蔵フォントを指定する文字コードに変換して送る。データ１０４はデータ１０２に基づき生成され、印刷開始位置を「左端からｘ２、紙送り方向ｙ１」とし、フォントを内蔵フォントＢとし、印刷するデータを「ａｂ」と指定する。「ａｂ」の指定は、アスキーコードなど、内蔵フォントを指定する文字コードに変換して送る。プリンター１２はラインサーマルプリンターであり、文字の印刷位置は、桁方向においては左端を原点（基準位置）としており、行方向においては感熱ロール紙の搬送方向（紙送り方向）における初期位置を基準位置とする。従って、データ１０３では、印刷開始位置を左端と紙送り方向とを基準に規定している。データ１０４も同様である。
【００３３】
ＰＯＳアプリケーション実行部２０がデータ１０１、１０２を作成した際のレイアウトは、図２（Ｃ）に示すように、感熱ロール紙１０に、２つの文字列２０１、２０２が桁方向に並んで配置されている。文字列２０１はデータ１０１に対応する文字列であり、文字列２０２はデータ１０２に対応する。文字列２０１と文字列２０２との間は文字間程度の間隔となっている。ここで、座標Ｘ１、Ｘ２、Ｙ１はＰＯＳアプリケーション実行部２０が実行するＰＯＳアプリケーション上で定義された座標である。
【００３４】
一方、プリンタードライバー実行部２１が生成したデータ１０３、１０４に基づく実際の印刷イメージは、図２（Ｄ）に示すようになる。ここで、座標ｘ１、ｘ２、ｙ１はプリンター１２が印刷位置を決定する際ために定義された座標である。
プリンター１２が使用する内蔵フォントＢはＰＯＳアプリケーションで使用されたフォントより文字幅が小さいため、図２（Ｄ）に示すように、実際に印刷される文字列２０１と文字列２０２との間に不要な間隔が空いてしまっている。
【００３５】
そこで、補正処理部２１ａは、２つの文字列に関するデータ１０１、１０２がいずれも同じフォントを指定していることを条件に、これら２つの文字列を１つの文字列に統合する処理を行い、制御コマンドを補正する。図２（Ｅ）に示す補正後の制御コマンドに含まれるデータ１０５には、２つの文字列の文字「１２３」と「ａｂ」との両方が、各文字列の印刷順に含まれている。
補正後のデータ１０５に基づいてプリンター１２が印刷を行うと、図２（Ｆ）に示すように、文字「１２３」と文字「ａｂ」を含む文字列２０３が、開始位置（ｘ１，ｙ１）から印刷される。図２（Ｆ）のイメージは、ＰＯＳアプリケーションで作成された図２（Ｃ）のイメージと同様、文字列の間に不要な間隔が空いておらず、ユーザーが意図した配置となっている。
【００３６】
（Ｃａｓｅ．２）
次に、ＰＯＳアプリケーション実行部２０が使用したフォントにおける幅方向の文字サイズよりも、置換後の内蔵フォントの幅方向の文字サイズが大きい場合について、Ｃａｓｅ．２として説明する。すなわち、「置換前の文字幅＜置換後の文字幅」の場合である。なお、以下のＣａｓｅ．２及びＣａｓｅ．３において、Ｃａｓｅ．１と同様の処理については説明を省略する。
Ｃａｓｅ．２は、さらに２通りに分けられる。一つは隣接する２つの文字列のフォントが一致する場合であり、この場合をＣａｓｅ．２−１として、図３を参照して説明する。もう一つは隣接する２つの文字列のフォントが一致しない場合であり、この場合をＣａｓｅ．２−２として図４を参照して説明する。
【００３７】
（Ｃａｓｅ．２−１）
この例では、ＰＯＳアプリケーション実行部２０が生成した印刷データに含まれるデータ１１１、１１２（図３（Ａ））を例示する。データ１１１は、印刷開始位置（Ｘ１，Ｙ１）、フォント種別「ゴシック」、文字列「１２３」を指定し、データ１１２は、印刷開始位置（Ｘ２，Ｙ１）、フォント種別「ゴシック」、文字列「ａｂ」を指定する。
プリンタードライバー実行部２１は、データ１１１、１１２のフォント種別「ゴシック」を内蔵フォントＡに置き換え、印刷開始位置の座標を変換して、データ１１３、１１４（図３（Ｂ））を生成する。データ１１３はデータ１１１に基づき生成され、データ１１４はデータ１１２に基づき生成される。
【００３８】
ＰＯＳアプリケーション実行部２０がデータ１１１、１１２を作成した際のレイアウトは、図３（Ｃ）に示すように、データ１１１に対応する文字列２１１と、データ１１２に対応する文字列２１２とが桁方向に並んで配置されている。
一方、プリンタードライバー実行部２１が生成したデータ１１３、１１４に基づく実際の印刷イメージでは、図３（Ｄ）に示すように、実際に印刷される文字列２１１と文字列２１２とが重なる。ＰＯＳアプリケーションで使用されたフォントの文字幅よりも内蔵フォントＡの文字幅が大きいので、文字列２１１の終端の位置が、文字列２１２の印刷開始位置より後ろに達したためである。
【００３９】
この場合、補正処理部２１ａは、２つの文字列を１つの文字列に統合する処理を行い、制御コマンドを補正する。図３（Ｅ）に示す補正後の制御コマンドに含まれるデータ１１５には、２つの文字列の文字「１２３」と「ａｂ」との両方が、各文字列の印刷順に含まれている。補正後のデータ１０５に基づいてプリンター１２が印刷を行うと、図３（Ｆ）に示すように、文字「１２３」と文字「ａｂ」を含む文字列２１３が、開始位置（ｘ１，ｙ１）から印刷される。図３（Ｆ）のイメージでは文字列が重なっておらず、ＰＯＳアプリケーションで作成された図３（Ｃ）のイメージを反映して、ユーザーが意図した配置となっている。
【００４０】
（Ｃａｓｅ．２−２）
これに対し、２つの文字列のフォントが異なっている場合、一つの文字列として扱うことができない。これは、プリンタードライバー実行部２１及びプリンター１２が、文字列毎にフォントを指定する仕様となっているためである。換言すれば、フォントが異なる文字は、制御コマンドによって個別に印刷開始位置及びフォントを指定することが求められる。
Ｃａｓｅ．２−２では、ＰＯＳアプリケーション実行部２０が生成した印刷データに含まれるデータ１２１、１２２（図４（Ａ））を例示する。データ１２１は印刷開始位置（Ｘ１，Ｙ１）、フォント種別「ゴシック」、文字列「１２３」を指定し、データ１２２は印刷開始位置（Ｘ２，Ｙ１）、フォント種別「イタリック」、文字列「ａｂ」を指定する。プリンタードライバー実行部２１は、データ１２１、１２２についてフォントを内蔵フォントに置き換え、印刷開始位置の座標を変換して、データ１２３、１２４（図４（Ｂ））を生成する。
【００４１】
ＰＯＳアプリケーション実行部２０がデータ１２１、１２２を作成した際のレイアウトは、図４（Ｃ）に示すように、データ１２１に対応する文字列２２１と、データ１２２に対応する文字列２２２とが桁方向に並んで配置されている。一方、プリンタードライバー実行部２１が生成したデータ１２３、１２４に基づく実際の印刷イメージでは、図４（Ｄ）に示すように、実際に印刷される文字列２２１と文字列２２２とが重なっている。これは、図３（Ｄ）を参照して説明したのと同じ理由による。
【００４２】
ここで、フォントが異なるため、データ１２３、１２４を一つの文字列のデータに統合することはできない。補正処理部２１ａは、隣接する文字列のデータ１２３、１２４のうち先に印刷される文字列のデータをそのままとし、後に印刷される側の文字列のデータ１２４の印刷開始位置を補正する。ここで、補正処理部２１ａは、データ１２３に基づいて先に印刷される文字列２２１の印刷終了位置を求め、この印刷終了位置を、後に印刷される文字列２２２の印刷開始位置とする。そして、補正処理部２１ａは、求めた印刷開始位置に基づいて、補正後の制御コマンドに含まれるデータ１２５（図４（Ｅ））を生成する。
データ１２３、及び、補正後のデータ１２５を用いてプリンター１２が印刷を行うと、図４（Ｆ）に示すように、２つの文字列２２１、２２２が重ならずに並べて配置される。
【００４３】
なお、Ｃａｓｅ．１で説明した「置換前の文字幅＞置換後の文字幅」の場合において、２つの文字列のフォントが異なっている場合に、補正処理部２１ａがＣａｓｅ．２−２と同様に補正を行うことも可能である。この場合、後に印刷される側の文字列の印刷開始位置を補正することで、文字列間に不要な間隔が空かないように文字列を配置し、図２（Ｆ）に示したイメージと同様の印刷結果を得ることができる。
また、「置換前の文字幅＝置換後の文字幅」の場合、Ｃａｓｅ．２と同様の処理を行ってもよいが、置換の前後で幅方向の文字サイズが変わらなければ幅方向に関する補正は不要であるため、補正処理部２１ａは補正を行わないものとしてもよい。
【００４４】
（Ｃａｓｅ．３）
次に、ＰＯＳアプリケーション実行部２０が使用したフォントにおける縦方向の文字サイズよりも、置換後の内蔵フォントの縦方向の文字サイズが大きい場合について、Ｃａｓｅ．３として説明する。すなわち、「置換前の文字高さ＜置換後の文字高さ」の場合である。この場合、補正処理部２１ａは、連続する２行に印刷される複数の文字列を処理対象とし、先に印刷される文字列について置換後のフォントの文字サイズが大きい場合に、後に印刷される１または複数の文字列のデータを補正する。
【００４５】
Ｃａｓｅ．３では、ＰＯＳアプリケーション実行部２０が生成した印刷データに含まれるデータ１３１、１３２（図５（Ａ））を例示する。データ１３１は印刷開始位置（Ｘ１，Ｙ１）、フォント種別「ゴシック」、文字列「１２３」を指定し、データ１３２は印刷開始位置（Ｘ２，Ｙ２）、フォント種別「ゴシック」、文字列「ａｂ」を指定する。この例では、２つの文字列のフォントが同一であるが、異なるフォントが指定された場合にも適用できる。プリンタードライバー実行部２１は、データ１３１、１３２についてフォントを内蔵フォントに置き換え、印刷開始位置の座標を変換して、データ１３３、１３４（図５（Ｂ））を生成する。
【００４６】
ＰＯＳアプリケーション実行部２０がデータ１３１、１３２を作成した際のレイアウトは、図５（Ｃ）に示すように、データ１３１に対応する文字列２３１の次の行に、データ１３２に対応する文字列２３２が配置されている。一方、プリンタードライバー実行部２１が生成したデータ１３３、１３４に基づく実際の印刷イメージでは、図５（Ｄ）に示すように、文字列２３２と文字列２３２とが重なっている。ＰＯＳアプリケーションで使用されたフォントの文字高さよりも内蔵フォントＢの文字高さが大きいので、文字列２３１の下端が、文字列２３２の印刷開始位置よりも下に達したためである。
【００４７】
補正処理部２１ａは、連続する２行に印刷される文字列のデータ１３３、１３４のうち先に印刷される文字列のデータをそのままとし、後に印刷される側の文字列のデータ１３４の印刷開始位置を補正する。ここで、補正処理部２１ａは、データ１３３に基づいて先に印刷される文字列２３１の印刷終了位置を求め、この印刷終了位置の高さ方向すなわち紙送り方向の座標を、後に印刷される文字列２３２の印刷開始位置の紙送り方向の座標とする。そして、補正処理部２１ａは、求めた印刷開始位置に基づいて、補正後の制御コマンドに含まれるデータ１３５（図５（Ｅ））を生成する。
データ１３３、及び、補正後のデータ１３５を用いてプリンター１２が印刷を行うと、図５（Ｆ）に示すように、２つの文字列２３１、２３２が重ならずに、２行に配置される。
【００４８】
図６及び図７は、ホストコンピューター１１の動作を示すフローチャートであり、プリンタードライバー実行部２１の動作を特に示す。
プリンタードライバー実行部２１は、ＰＯＳアプリケーション実行部２０が生成した１ページ分の印刷データが入力されると（ステップＳ１１）、プリンター１２を制御する処理を開始する。本実施形態ではプリンター１２が感熱ロール紙に印刷を行うので、１ページ分の印刷データとは、プリンター１２が印刷する１枚の帳票全体の印刷データを指し、具体的には印刷を開始してからカッターで切断するまでの間に印刷される部分の印刷データである。なお、プリンター１２に代えてカット紙に印刷するプリンターを用いる場合には、１枚のカット紙が１ページに相当し、プリンター１２を含む連続紙に印刷するプリンターで１ページの長さが規定されている場合には、この１ページを基準として用いる。
【００４９】
プリンタードライバー実行部２１は、ＰＯＳアプリケーション実行部２０が生成した印刷データから、プリンター１２の内蔵フォントに置換する文字を含むデータを抽出する（ステップＳ１２）。ここで、例えば図２〜図５で図中（Ａ）に示したデータが抽出される。プリンタードライバー実行部２１は、抽出したデータのうち最初の文字列のデータを読み込み（ステップＳ１３）、この文字列のキャラクター列、印刷開始位置の座標、印刷終了位置の座標の計算値、置換後のフォント種別に関するデータを、制御部１３が備えるＲＡＭ（図示略）のワークエリアに格納する（ステップＳ１４）。ＲＡＭにデータを格納した文字列を、文字列Ａとする。
キャラクター列は、当該文字列を構成する個々の文字を指定する文字コード等の情報である。
印刷終了位置は、プリンタードライバー実行部２１が、ｘ座標（桁方向の座標）とｙ座標（紙送り方向の座標）の各々について、置き換え後のフォントのサイズに基づき、例えば下記式（１）、（２）のように算出してＲＡＭに記憶する。
印刷終了位置のｘ座標  ＝  印刷開始位置のｘ座標＋文字数×置換後のフォントの幅サイズ…（１）
印刷終了位置のｙ座標  ＝  印刷開始位置のｙ座標＋置換後のフォントの縦サイズ…（２）
【００５０】
プリンタードライバー実行部２１は、ステップＳ１２で抽出したデータのうち、残っているデータの最初の文字列のデータ（以下、文字列Ｂとする）を読み込む（ステップＳ１５）。プリンタードライバー実行部２１は、ＲＡＭに格納したデータと文字列Ｂの印刷開始位置のｙ座標が一致するか否かを判別し（ステップＳ１６）、一致しない場合は（ステップＳ１６；Ｎｏ）、ｙ補正フラグをＯＮに設定する（ステップＳ１７）。ｙ補正フラグはｙ座標の補正を行うことを示すフラグであって、フラグの値はＲＡＭに記憶される。ｙ補正フラグをＯＮに設定した後、プリンタードライバー実行部２１は、ＲＡＭに格納したキャラクター列、印刷開始位置の座標、印刷終了位置の座標の計算値、及び置換後のフォント種別に関するデータを、プリンター１２に出力する出力用のデータとして取り出す（ステップＳ１８）。
また、ＲＡＭに格納したデータと文字列Ｂの印刷開始位置のｙ座標が一致する場合（ステップＳ１６；Ｙｅｓ）、プリンタードライバー実行部２１は、ＲＡＭに格納したデータと文字列Ｂのフォント種別が一致するか否かを判別する（ステップＳ１９）。フォント種別が一致しない場合（ステップＳ１９；Ｎｏ）、プリンタードライバー実行部２１はｘ補正フラグをＯＮに設定し（ステップＳ２０）、ステップＳ１８に移行する。
【００５１】
一方、ＲＡＭに格納したデータと文字列Ｂのフォント種別が一致する場合（ステップＳ１９；Ｙｅｓ）、プリンタードライバー実行部２１は、ＲＡＭに格納したデータと文字列Ｂを連結し、一つの文字列に統合すべきか否かを判別する（ステップＳ２１）。ステップＳ２１で一つの文字列に統合すべきか否かを判別する条件は、下記の条件１にも２にも該当せず、かつ、条件３に該当する場合である。換言すれば、条件１、２のいずれかの場合、条件１、２に該当しない場合で条件３に該当する場合である。条件１、２、３のいずれにも該当しない場合は、連結しない。
条件１．ＲＡＭに格納したデータの最後の文字（キャラクター）が連結コードである。
条件２．文字列Ｂの最初の文字（キャラクター）が連結コードである。
条件３．ＲＡＭに格納したデータの印刷終了位置のｘ座標が、文字列Ｂの印刷開始位置のｘ座標より大きい。
連結コードとは、スペース、タブ、改行等を示すコードである。これらの連結コードは、文字コードと同様に印刷データに含まれる。
【００５２】
上記の条件１〜３に基づいて、ＲＡＭに格納したデータと文字列Ｂを連結すべきと判別した場合（ステップＳ２１；Ｙｅｓ）、プリンタードライバー実行部２１は、ＲＡＭに格納したデータに文字列Ｂを統合し、キャラクター列と印刷終了位置の座標を更新して（ステップＳ２２）、ステップＳ１５に戻る。このステップＳ１５では残りのデータのうち最初の文字列のデータが文字列Ｂとして読み込まれ、ステップＳ１６〜Ｓ２１で処理される。
これに対し、ＲＡＭに格納したデータと文字列Ｂを連結すべきでないと判別した場合（ステップＳ２１；Ｎｏ）、プリンタードライバー実行部２１は、ステップＳ１８に移行してＲＡＭのデータを取り出し、図７のステップＳ２３に移行する。
【００５３】
ステップＳ２３で、プリンタードライバー実行部２１は、ｘ補正フラグの値を参照し、ｘ補正フラグがＯＮになっている場合は（ステップＳ２３；Ｙｅｓ）、文字列Ｂのｘ座標を補正して（ステップＳ２４）、ステップＳ２５に移行する。また、ｘ補正フラグがＯＮでない場合（ステップＳ２３；Ｎｏ）、そのままステップＳ２５に移行する。
ステップＳ２５で、プリンタードライバー実行部２１はｙ補正フラグの値を参照し、ｙ補正フラグがＯＮになっている場合は（ステップＳ２５；Ｙｅｓ）、文字列Ｂのｙ座標を補正して（ステップＳ２６）、ステップＳ２７に移行する。また、ｘ補正フラグがＯＮでない場合（ステップＳ２５；Ｎｏ）、そのままステップＳ２７に移行する。
【００５４】
ステップＳ２４で、プリンタードライバー実行部２１は、文字列Ｂの印刷開始位置のｘ座標を補正する。例えば、ステップＳ１８で取り出した出力用データの印刷終了位置のｘ座標＞文字列Ｂの印刷開始位置のｘ座標である場合には、文字列Ｂの印刷開始位置のｘ座標を、出力用データの印刷終了位置のｘ座標と同じ値に変更する。出力用データの印刷終了位置のｘ座標≦文字列Ｂの印刷開始位置のｘ座標である場合には補正は必要ない。
また、ステップＳ２６では、プリンタードライバー実行部２１は、文字列Ｂの印刷開始位置のｙ座標を補正する。例えば、ステップＳ１８で取り出した出力用データの印刷終了位置のｙ座標＞文字列Ｂの印刷開始位置のｙ座標である場合には、文字列Ｂの印刷開始位置のｙ座標を、出力用データの印刷終了位置のｙ座標と同じ値に変更する。出力用データの印刷終了位置のｙ座標≦文字列Ｂの印刷開始位置のｙ座標である場合には補正は必要ない。
【００５５】
ステップＳ２７では、文字列Ｂのキャラクター列、印刷開始位置の座標、印刷終了位置の座標の計算値、及び置換後のフォント種別に関するデータに基づいて、ＲＡＭのデータを更新する。ここで、プリンタードライバー実行部２１は、印刷終了位置のｙ座標を除くデータについては、文字列ＢのデータをＲＡＭに格納するが、印刷終了位置のｙ座標のみ、以前のＲＡＭ内のデータを引き継ぐことがある。すなわち、ステップＳ２７の処理前にＲＡＭに格納されていた印刷終了位置のｙ座標≧文字列Ｂの印刷終了位置のｙ座標である場合、プリンタードライバー実行部２１は、ＲＡＭ内の印刷終了位置のｙ座標を更新しない。
これにより、例えば１行に複数の文字列がｘ方向に並んでいる場合に、どの文字列も次の行の文字列に重ならないように処理を行うことができる。
【００５６】
ステップＳ２７の処理後、プリンタードライバー実行部２１は、ステップＳ１８で取り出した出力用データのキャラクター列、印刷開始位置の座標、フォント種別に基づいて、プリンター１２を制御するコマンドを生成し（ステップＳ２８）、生成したコマンドをプリンター１２に出力する（ステップＳ２９）。その後、プリンタードライバー実行部２１は、ステップＳ１１で入力された１ページ分のデータ全体について処理が終了したか否かを判別し（ステップＳ３０）、まだ処理されていないデータがある場合はステップＳ１５に戻る。
【００５７】
本実施形態の別の適用例として、例えば、プリンター１２が１８０ドット×１８０ドットの解像度で印刷可能に構成され、プリンタードライバー実行部２１が、ＰＯＳアプリケーションに対しておいて９ドット×１０ドットのフォントを提供し、ＰＯＳアプリケーションが９ドット×１０ドットのフォントを使用する場合を想定する。この構成において、プリンター１２によって９０ドット×９０ドットの解像度による印刷をサポートする場合には、解像度が半分になるため４．５ドット×５ドットのフォントをＰＯＳアプリケーションが使用することになるが、ＰＯＳアプリケーションの仕様の制限により整数ドット数のフォントしかサポートされなければ、ＰＯＳアプリケーションは、フォントのサイズを４ドット×５ドットまたは５ドット×５ドットと認識して印刷データを作成する。このような場合、ＰＯＳアプリケーションが認識しているフォントサイズと、プリンター１２が印刷するフォントのサイズに誤差が生じるが、本実施形態で説明したように、補正処理部２１ａが補正を行うことで正確に印刷を行える。なお、この場合には、解像度が半分になることでプリンター１２の内蔵フォントのサイズが通常時とは変わることを加味して、上記式（１）に代えて下記式（３）により印刷終了位置のｘ座標を求めることとなる。
印刷終了位置のｘ座標  ＝  印刷開始位置のｘ座標＋文字数×ＰＯＳアプリケーションが認識しているフォントの幅サイズ＋文字数／２…（３）
【００５８】
以上説明したように、本発明を適用した実施形態では、ＰＯＳアプリケーションが出力した文字列と当該文字列の位置情報を含むデータの少なくとも一部を、プリンター１２が内蔵する内蔵フォントに対応するコードへ置換した後、プリンター１２へ送信して記録させるホストコンピューター１１は、ＰＯＳアプリケーションが出力した文字列を含むデータに含まれる文字列のフォントを、ＰＯＳアプリケーションが使用するフォントからプリンター１２が内蔵する内蔵フォントに対応するコードへ置換する際に、補正処理部２１ａによって位置情報を補正し、補正された位置情報と内蔵フォントのコードをプリンター１２へ送信し、プリンター１２に印刷を実行させるので、内蔵フォントのコードへ置換する際に位置情報を補正することで文字列間のずれを補正することができ、フォントにより文字のサイズや字間が異なっていても、プリンター１２の内蔵フォントの置き換えによる文字列の記録位置の乱れを防ぐことができ、良好な記録結果を得ることができる。
【００５９】
また、補正処理部２１ａは、行方向または桁方向における文字列の位置情報を補正することで、文字列の間隔のずれ等を補正し、文字列のレイアウトの乱れを回避でき、良好な記録結果を得ることができる。
また、補正処理部２１ａは、データに含まれる複数の文字列のうち同じ種類の内蔵フォントのコードに置換される複数の文字列を、一つの位置情報を有する一つの文字列に統合してプリンター１２により記録させる。例えば、ＰＯＳアプリケーションが出力したデータに含まれる文字列の印刷位置が重なる場合に、補正処理部２１ａは、これら重なる文字列を一つの文字列に統合する。このため、同じ種類の内蔵フォントの複数の文字列を一つの文字列に統合して記録装置により記録させるので、文字列間の間隔が不自然に空いたり、間隔が無く文字列が重なったりする等の不具合を防止できる。また、同じ種類の内蔵フォントのコードに置換される文字列を統合するので、意図しない記録結果になることがない。
【００６０】
また、補正処理部２１ａは、互いに異なる内蔵フォントに置換される複数の文字列について、少なくとも一方の文字列の印刷開始位置を内蔵フォントのサイズに基づいて補正するので、文字列の重複や文字列間が離れすぎるなど、フォントの桁方向のサイズに起因する不具合を回避し、置き換えられる内蔵フォントの種類によらず良好な記録結果を得ることができる。例えば、補正処理部２１ａは、ＰＯＳアプリケーションが出力したデータに複数の文字列と各々の文字列の位置情報とが含まれていて、いずれかの文字列のコードと位置情報に基づき内蔵フォントに置換した後の記録領域の位置に、他の文字列に対しデータで指定された記録領域の位置が重なる場合に、これら重なる文字列を、一つの位置情報を有する一つの文字列に統合する。これにより、内蔵フォントに置換することで記録領域における位置が重なる複数の文字列を一つの文字列に統合することで、簡単な処理により、文字列の重複記録を確実に回避でき、良好な記録結果を得ることができる。
さらにまた、補正処理部２１ａは、プリンター１２が内蔵する複数の内蔵フォントのサイズを記憶しており、桁方向に隣接する文字列が互いに異なる内蔵フォントのコードに置換される場合に、少なくとも一方の文字列の位置情報を内蔵フォントのサイズに基づいて補正する。これにより、桁方向に並ぶ複数の文字列の間隔を適正に補正できるので、文字列の重複や文字列間が離れすぎるなど、内蔵フォントの桁方向のサイズに起因する不具合を回避し、置き換えられる内蔵フォントの種類によらず良好な記録結果を得ることができる。  さらに、補正処理部２１ａは、ＰＯＳアプリケーションが出力したデータに含まれるいずれかの文字列と、次行の文字列が重なる場合に、少なくとも次行の文字列の印刷開始位置を内蔵フォントのサイズに基づいて補正するので、フォントの縦サイズすなわち行方向のサイズの違いに起因する不具合を回避し、置き換えられる内蔵フォントの種類によらず良好な記録結果を得ることができる。
【００６１】
なお、上記各実施形態は本発明を適用した一具体例を示すものであり、本発明はこれに限定されるものではない。例えば、本実施形態では記録システム１のホストコンピューター１１がＰＯＳアプリケーションを実行してプリンター１２を制御し、レシートを発行するものとして説明したが、本発明は、フォントデータを内蔵し、内蔵したフォントデータに基づいて文字を記録する記録装置を制御する記録制御装置に広く適用可能であって、印刷出力する帳票の種類や目的、使用する記録媒体の種類、印刷データを生成するアプリケーションプログラムの種類、使用する記録媒体の種類等は特に限定されないし、記録装置としては、サーマルプリンターで構成されるプリンター１２に限らず、インクジェットプリンターや、ドットインパクトプリンターを用いることもでき、カッターを備えるか否か等の具体的な細部構成についても任意である。
【００６２】
また、図１に示した各機能部は機能的構成を示すものであって、各機能部を独立したハードウェアにより構成する必要はなく、ソフトウェアとハードウェアとの協働により、複数の機能部の機能を１つのハードウェアに集約して実現することも、一つの機能部を複数のハードウェアにより実現することも勿論可能である。また、上述の動作を行うホストコンピューター１１が実行するプログラムは、ホストコンピューター１１を構成するＲＯＭ等の不揮発性記憶装置が記憶する構成に限らず、可搬型の記録媒体に記憶されている構成であってもよいし、或いは、通信回線を介して接続された他の装置にダウンロード可能に記憶され、これらの装置からホストコンピューター１１が上記プログラムをダウンロードして実行してもよく、その他の構成についても任意に変更可能である。
【符号の説明】
【００６３】
１…記録システム、１０…感熱ロール紙、１１…ホストコンピューター（記録制御装置）、１２…プリンター（記録装置）、１３…制御部、１７…記憶部、２０…ＰＯＳアプリケーション実行部、２１…プリンタードライバー実行部（記録制御手段）、２１ａ…補正処理部（補正手段）、３０…プリンター側制御部、４０…フォントＡテーブル、４１…フォントＢテーブル、４２…フォントＣテーブル、４５…フォントＡ置換情報、４６…フォントＢ置換情報、４７…フォントＣ置換情報、４９…設定ファイル。
【図１】
2013061835.tif 000003
【図２】
2013061835.tif 000004
【図３】
2013061835.tif 000005
【図４】
2013061835.tif 000006
【図５】
2013061835.tif 000007
【図６】
2013061835.tif 000008
【図７】
2013061835.tif 000009