(57)【要約】【課題】アプリケーションプログラムのバーコード生成コードの解釈の違いに起因するバーコード印刷結果の差異を吸収してユーザが所望するバーコードを印刷する。【解決手段】ホストコンピュータ１１のプリンタ用デバイスドライバ３２は、入力された複数のバーコード生成用データに含まれるキャラクタデータを抽出し、抽出した複数のキャラクタデータを連結してキャラクタデータ列を生成し、生成したキャラクタデータ列に基づいてプリンタ１２に一のバーコード生成コマンドＣＭＢを生成し、出力する。【選択図】図２
2010015387.tif 000002
【特許請求の範囲】
【請求項１】
入力された複数のバーコード生成用データに含まれるキャラクタデータを抽出し、抽出した複数のキャラクタデータを連結してキャラクタデータ列を生成するデータ列生成部と、
前記データ列生成部により生成した前記キャラクタデータ列に基づいて外部の印刷装置に出力する一のバーコード生成コマンドを生成するコマンド生成部と、
を備えたことを特徴とする印刷制御装置。
【請求項２】
請求項１記載の印刷制御装置において、
前記データ列生成部は、抽出した前記キャラクタデータが所定のデータ区切りデータである場合に、当該データ区切りデータの直前のキャラクタデータまでを連結して前記キャラクタデータ列を生成する、
ことを特徴とする印刷制御装置。
【請求項３】
請求項１または請求項２記載の印刷制御装置において、
前記バーコード生成用データは、印字位置を指定するための印字位置指定データを含み、
前記データ列生成部は、前記印字位置指定データに基づいて、入力されたバーコード生成用データの前記印字位置が、当該入力されたバーコード生成用データの直前に入力されたバーコード生成用データの前記印字位置に対応する所定印字領域内に位置する場合に、両バーコード生成用データに含まれるキャラクタデータを同一の前記キャラクタデータ列を生成するキャラクタデータとすることを特徴とする印刷制御装置。
【請求項４】
請求項３記載の印刷制御装置において、
前記データ列生成部は、
生成中の前記キャラクタデータ列に基づいて前記バーコード生成コマンドを生成してバーコードを印字したと仮定した場合に、当該バーコードの印字領域内に、入力されたバーコード生成用データの前記印字位置指定データに対応する印字位置が含まれる場合に、当該入力されたバーコード生成用データに含まれるキャラクタデータを生成中の前記キャラクタデータ列に含めることを特徴とする印刷制御装置。
【請求項５】
入力された複数のバーコード生成用データに含まれるキャラクタデータを抽出し、抽出した複数のキャラクタデータを連結してキャラクタデータ列を生成するデータ列生成部と、
前記データ列生成部により生成した前記キャラクタデータ列に基づいて一のバーコード生成コマンドを生成するコマンド生成部と、
前記コマンド生成部により生成されたバーコード生成コマンドに基づいてバーコード印刷を行う印刷部と、
を備えたことを特徴とする印刷装置。
【請求項６】
入力された複数のバーコード生成用データに含まれるキャラクタデータを抽出し、抽出した複数のキャラクタデータを連結してキャラクタデータ列を生成するデータ列生成過程と、
前記データ列生成過程において生成した前記キャラクタデータ列に基づいて外部の印刷装置に出力する一のバーコード生成コマンドを生成するコマンド生成過程と、
を備えたことを特徴とする印刷制御装置の制御方法。
【請求項７】
印刷制御装置をコンピュータにより制御するための制御プログラムであって、
入力された複数のバーコード生成用データに含まれるキャラクタデータを抽出し、抽出した複数のキャラクタデータを連結してキャラクタデータ列を生成するデータ列生成機能と、
前記データ列生成過程において生成した前記キャラクタデータ列に基づいて外部の印刷装置に出力する一のバーコード生成コマンドを生成するコマンド生成機能と、
を前記コンピュータに実現させることを特徴とする制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷制御装置、印刷装置、印刷制御装置の制御方法および制御プログラムに係り、特にアプリケーションプログラムから入力された印字データに基づいてバーコードを印刷するための印刷制御装置、印刷装置、印刷制御装置の制御方法および制御プログラムに関する。
【背景技術】
【０００２】
従来、商品あるいは製品を識別するために、いわゆるバーコードが用いられている。
バーコードは、商品あるいは製品の包装に印字され、あるいは、商品あるいは製品の包装にシールなどとして貼付され、バーコードリーダと呼ばれる光学的読取装置により読み取って、販売管理や在庫管理を行うために用いられていた（例えば、特許文献１参照）。
【０００３】
ここで、従来のバーコード印刷システムについて説明する。
バーコード印刷システムにおいては、パーソナルコンピュータやワークステーションのようなホストコンピュータに、プリンタが接続されており、バーコード印刷を行う場合には、ホストコンピュータが直接プリンタに対してバーコード印刷用の画像データを送信し、あるいは、専用のアプリケーションプログラムを介して印刷が行われていた。
【特許文献１】特開２００８−０４０５４１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
したがって、上記従来のバーコード印刷システムにおいては、それ自身でバーコード印刷用の画像データを生成することができないワードプロセッサなどの汎用プログラムにおいては、バーコードを印刷することができないという問題点があった。
【０００５】
一方、上述した問題点を解決するため、例えばワードプロセッサのようなアプリケーションプログラムにおいて、バーコード印刷を行うために、バーコードフォントを用いる方法が提案されている。バーコードフォントは、汎用のアプリケーションプログラムにおいて、バーコードを通常のフォントと同様に扱えるようにするものであり、プリンタ用デバイスドライバに対してバーコードフォントのフォント名で文字列が引き渡されると、プリンタ用デバイスドライバは、文字ではなくバーコードの画像を生成する処理を行っていた。
より具体的には、アプリケーションプログラム上で、ユーザが印字を行いたい一または複数のバーコードに対応する文字列（キャラクタデータ：商品番号、製造番号など）を入力し、印刷フォントとして、所望のバーコード規格に対応するバーコードフォントを指定するとともに、その印字位置、サイズなどの印刷書式を指定し、印刷を指示すると、アプリケーションプログラムは、プリンタ用デバイスドライバを呼び出して印刷を指示する。
これにより、プリンタ用デバイスドライバは、アプリケーションから指示されたバーコードフォント、キャラクタデータ及び印字間隔やサイズなどの印刷書式に基づいて、そのバーコードフォントに対応する画像データを印字データとして作成し、これをプリンタへ転送する。
そして、プリンタは、他の印刷処理と同様に、プリンタ用デバイスドライバからの印字データに基づいて、指定された印字書式で指定されたバーコードを印刷していた。
【０００６】
ところで、桁数を変更可能なバーコード（例えば、ＩＴＦ［Ｉｎｔｅｒｌｅａｖｅｄ  Ｔｗｏ  ｏｆ  Ｆｉｖｅ］やＣＯＤＥ１２８等）においては、所定のバーコードリーダで読取可能な範囲内で、ユーザが複数の文字（例えば、英数字）を含む文字列を一つのバーコードとして生成しようとする場合がある。このような場合に、アプリケーションプログラムによっては、文字列を構成する文字毎に分割してプリンタ用デバイスドライバにデータを渡す場合があり、その場合は、１文字毎にバーコードが印刷されてしまう。
具体的には、ユーザが「Ａ１２３４５」というキャラクタデータ（＝文字列）に対応する一つのバーコードを生成しようとした場合に、アプリケーションソフトが「Ａ」、「１」、「２」、「３」、「４」、「５」の６個の文字に分割してプリンタ用デバイスドライバに渡す場合があり、このような場合には、ユーザが所望したバーコードとは全く異なるバーコードが印刷され、あるいは、複数のバーコードが重なって印刷されて、バーコードの読み取りが行えなくなってしまう可能性があった。
【０００７】
そこで、本発明の目的は、アプリケーションプログラムが文字列をどのようにプリンタ用デバイスドライバに渡しているか、の違いに起因するバーコード印刷結果の差異を吸収してユーザが所望するバーコードを印刷することが可能なバーコード印刷技術を提供することにある。
【課題を解決するための手段】
【０００８】
上記課題を解決するため、本発明の第１態様は、入力された複数のバーコード生成用データに含まれるキャラクタデータを抽出し、抽出した複数のキャラクタデータを連結してキャラクタデータ列を生成するデータ列生成部と、前記データ列生成部により生成した前記キャラクタデータ列に基づいて外部の印刷装置に出力する一のバーコード生成コマンドを生成するコマンド生成部と、を備えたことを特徴としている。
上記構成によれば、データ列生成部は、入力された複数のバーコード生成用データに含まれるキャラクタデータを抽出し、抽出した複数のキャラクタデータを連結してキャラクタデータ列を生成する。
これによりコマンド生成部は、データ列生成部により生成したキャラクタデータ列に基づいて外部の印刷装置に出力する一のバーコード生成コマンドを生成する。
したがって、本来一つのバーコードを生成すべきキャラクタデータが複数のバーコードに分割されて生成されるのを防止することができ、所望のバーコードを印刷させることができる。
ここで、コマンド生成部から出力されるバーコード生成コマンドとしては、外部の印刷装置に画像としてのバーコードを生成させるために、当該印刷装置にバーコードの画像を生成させるための命令として入力される場合と、印刷装置は画像を印刷する機能のみを提供し、コマンド生成部がバーコード画像として変換し、このバーコード画像を印刷装置に印刷させるための画像印刷コマンドとして入力される場合と、を含むものとする。
【０００９】
本発明の第２の態様は、第１の態様において、前記データ列生成部は、抽出した前記キャラクタデータが所定のデータ区切りデータである場合に、当該データ区切りデータの直前のキャラクタデータまでを連結して前記キャラクタデータ列を生成する、ことを特徴としている。
上記構成によれば、データ列生成部は、抽出したキャラクタデータが所定のデータ区切りデータである場合に、当該データ区切りデータの直前のキャラクタデータまでを連結してキャラクタデータ列を生成するので、確実にユーザが所望するキャラクタデータを含むバーコードを生成させることができる。
【００１０】
本発明の第３の態様は、第１の態様または第２の態様において、前記バーコード生成用データは、印字位置を指定するための印字位置指定データを含み、前記データ列生成部は、前記印字位置指定データに基づいて、入力されたバーコード生成用データの前記印字位置が、当該入力されたバーコード生成用データの直前に入力されたバーコード生成用データの前記印字位置に対応する所定印字領域内に位置する場合に、両バーコード生成用データに含まれるキャラクタデータを同一の前記キャラクタデータ列を生成するキャラクタデータとすることを特徴としている。
上記構成によれば、本来同一のバーコードを構成すべきキャラクタデータを容易に判別して、正しいバーコードを生成することが可能となる。
【００１１】
本発明の第４の態様によれば、第３の態様において、前記データ列生成部は、生成中の前記キャラクタデータ列に基づいて前記バーコード生成コマンドを生成してバーコードを印字したと仮定した場合に、当該バーコードの印字領域内に、入力されたバーコード生成用データの前記印字位置指定データに対応する印字位置が含まれる場合に、当該入力されたバーコード生成用データに含まれるキャラクタデータを生成中の前記キャラクタデータ列に含めることを特徴としている。
上記構成によれば、本来同一のバーコードを構成すべきキャラクタデータを容易に判別して、正しいバーコードを生成することが可能となる。
【００１２】
本発明の第５の態様は、入力された複数のバーコード生成用データに含まれるキャラクタデータを抽出し、抽出した複数のキャラクタデータを連結してキャラクタデータ列を生成するデータ列生成部と、前記データ列生成部により生成した前記キャラクタデータ列に基づいて一のバーコード生成コマンドを生成するコマンド生成部と、前記コマンド生成部により生成されたバーコード生成コマンドに基づいてバーコード印刷を行う印刷部と、を備えたことを特徴としている。
上記構成によれば、印刷装置のデータ列生成部は、入力された複数のバーコード生成用データに含まれるキャラクタデータを抽出し、抽出した複数のキャラクタデータを連結してキャラクタデータ列を生成する。
これによりコマンド生成部は、データ列生成部により生成したキャラクタデータ列に基づいて一のバーコード生成コマンドを生成し、印刷部は、コマンド生成部により生成されたバーコード生成コマンドに基づいてバーコード印刷を行う。
したがって、本来一つのバーコードを生成すべきキャラクタデータが複数のバーコードに分割されて生成されるのを防止することができ、所望のバーコードを印刷させることができる。
【００１３】
本発明の第６の態様は、入力された複数のバーコード生成用データに含まれるキャラクタデータを抽出し、抽出した複数のキャラクタデータを連結してキャラクタデータ列を生成するデータ列生成過程と、前記データ列生成過程において生成した前記キャラクタデータ列に基づいて外部の印刷装置に出力する一のバーコード生成コマンドを生成するコマンド生成過程と、を備えたことを特徴としている。
上記構成によれば、本来一つのバーコードを生成すべきキャラクタデータが複数のバーコードに分割されて生成されるのを防止することができ、所望のバーコードを印刷させることができる。
【００１４】
また、印刷装置の制御方法は、入力された複数のバーコード生成用データに含まれるキャラクタデータを抽出し、抽出した複数のキャラクタデータを連結してキャラクタデータ列を生成するデータ列生成過程と、前記データ列生成過程において生成した前記キャラクタデータ列に基づいて一のバーコード生成コマンドを生成するコマンド生成過程と、前記コマンド生成過程において生成されたバーコード生成コマンドに基づいてバーコード印刷を行う印刷過程と、を備えるようにしてもよい。
上記構成によっても、本来一つのバーコードを生成すべきキャラクタデータが複数のバーコードに分割されて生成されるのを防止することができ、所望のバーコードを印刷させることができる。
【００１５】
本発明の第７の態様は、印刷制御装置をコンピュータにより制御するための制御プログラムであって、入力された複数のバーコード生成用データに含まれるキャラクタデータを抽出し、抽出した複数のキャラクタデータを連結してキャラクタデータ列を生成するデータ列生成機能と、前記データ列生成過程において生成した前記キャラクタデータ列に基づいて外部の印刷装置に出力する一のバーコード生成コマンドを生成するコマンド生成機能と、を前記コンピュータに実現させることを特徴としている。
上記構成によれば、印刷制御装置は、本来一つのバーコードを生成すべきキャラクタデータが複数のバーコードに分割されて生成されるのを防止することができ、所望のバーコードを印刷させることができる。
【００１６】
また、印刷装置をコンピュータにより制御するための制御プログラムであって、入力された複数のバーコード生成用データに含まれるキャラクタデータを抽出し、抽出した複数のキャラクタデータを連結してキャラクタデータ列を生成するデータ列生成機能と、前記データ列生成機能により生成された前記キャラクタデータ列に基づいて一のバーコード生成コマンドを生成するコマンド生成機能と、前記コマンド生成機能により生成されたバーコード生成コマンドに基づいてバーコード印刷を行う印刷機能と、を備えるようにしてもよい。
上記構成によれば、印刷装置は、本来一つのバーコードを生成すべきキャラクタデータが複数のバーコードに分割されて生成されるのを防止することができ、所望のバーコードを印刷させることができる。
【発明の効果】
【００１７】
本発明によれば、ユーザの負担を増加させることなく、バーコードリーダにより確実に読み込むことが可能なバーコードを、ユーザが所望するフォーマットで印刷させることができる。
【発明を実施するための最良の形態】
【００１８】
次に本発明の好適な実施の形態について図面を参照して説明する。
図１は、実施形態のバーコード印刷システムの概要構成ブロック図である。
バーコード印刷システム１０は、ホストコンピュータ１１と、ホストコンピュータ１１の制御下でバーコード印刷を行うプリンタ１２と、を備えている。
ホストコンピュータ１１は、ホストコンピュータ１１全体を制御するＭＰＵ１３と、各種制御プログラムなどを記憶するＲＯＭ１４と、各種データを一時的に記憶するワークエリアとして機能するＲＡＭ１５と、ハードディスク装置などとして構成された外部記憶装置１６と、各種情報を表示するＬＣＤなどで構成された表示装置１７と、キーボード、マウスなどの入力装置を備えた入力操作装置１８と、パラレルプリンタインタフェースあるいはシリアルプリンタインタフェースを含み外部とのインタフェース動作を行うインタフェース部１９と、を備えている。
プリンタ１２は、図示しないＭＰＵ、ＲＯＭ、ＲＡＭなどを有し、プリンタ１２全体を制御するコントローラ２１と、外部とのインタフェース動作を行うインタフェース部２２と、コントローラ２１の制御下で実際の印刷を行うプリントエンジン２３と、を備えている。
【００１９】
ここで、アプリケーションソフトウェアからプリンタ用デバイスドライバに出力される印刷データに含まれるバーコード生成用データのデータフォーマットの一例について説明する。
図２は、バーコード印刷システムのソフトウェア構成の説明図である。
ホストコンピュータ１１上では、ワードプロセッサや在庫管理システム等の一または複数のアプリケーションプログラム３１が動作しており、これらのアプリケーションプログラム３１からバーコードを含む各種印刷を行うための印刷データＤＰＲがプリンタ用デバイスドライバ３２に入力される。
これによりプリンタ用デバイスドライバ３２は、印刷データＤＰＲを解析し、バーコード生成コマンドＣＭＢを含む印刷コマンドＣＭＤを生成し、プリンタ１２上で動作しているプリンタファームウェア３３に送信する。
この結果、プリンタファームウェア３３は、入力された印刷コマンドＣＭＤ、ひいては、バーコード生成コマンドＣＭＢに基づいてバーコード印刷を行うこととなる。
【００２０】
図３は、バーコード生成用データの概要説明図である。
以下の説明においては、バーコードとして、いわゆる一次元バーコードについて説明するが、スタック式あるいはマトリックス式の二次元バーコード（二次元コード）についても同様に適用が可能である。
バーコード生成用データ４０は、バーコード印字位置を指定するための印字位置データ４１と、生成するバーコードのフォント種別を指定するフォント種別データ４２と、バーコードの内容を表すキャラクタデータ４３と、を備えている。
印字位置データ４１は、基準位置（例えば、記録用紙の印字領域の左上端位置を（Ｘ＝０，Ｙ＝０）とする）に対する座標データが格納される。
フォント種別データ４２は、バーコードの生成に用いるフォントデータの種別に関する情報が格納されており、例えば、ＪＡＮ、ｃｏｄｅ３９、ＮＷ−７などを指定するためのフォント種別指定コードが格納される。また、印字サイズなどの情報もここに含まれる。
キャラクタデータ４３は、バーコードとして印字すべき内容を表すものであり、国コード（データ）、メーカーコード（データ）、商品アイテムコード（データ）、任意文字列データなどが含まれる。
【００２１】
ここで、プリンタ用デバイスドライバ３２の概要処理について説明する。
図４は、プリンタ用デバイスドライバの処理フローチャートである。
プリンタ用デバイスドライバ３２は、１頁分の印刷データＤＰＲがアプリケーションプログラム３１から入力されると（ステップＳ１１）、入力された１頁分の印刷データＤＰＲに含まれるバーコード生成用データ４０部分を抽出する（ステップＳ１２）。
【００２２】
次にプリンタ用デバイスドライバ３２は、抽出したバーコードフォント部分に複数のバーコード生成用データ４０が含まれているか否かを判別する（ステップＳ１３）。
ステップＳ１３の判別において、複数のバーコード生成用データ４０が含まれていない場合、すなわち、一つのバーコード生成用データ４０のみが含まれている場合には（ステップＳ１３；Ｎｏ）、当該バーコード生成用データ４０に基づいてバーコード生成コマンドＣＭＢを生成し、他の印刷用コマンドとともに、プリンタ１２に出力する（ステップＳ１５）。この場合において、バーコード生成コマンドＣＭＢとしては、プリンタ用デバイスドライバ３２が生成したバーコードの画像を印刷させるための画像印刷コマンド（例えば、画像データとしてのビットマップデータを含む）がプリンタ１２に出力されることとなる。なお、プリンタ１２側でバーコード画像を生成する構成を採る場合には、単に画像データを含まないコマンドのみを送信するようにすればよい。
これによりプリンタは、バーコード生成コマンドＣＭＢを含む入力された印刷コマンドＣＭＤに基づいてバーコードを所定指示位置に印刷しつつ、印刷を行うこととなる（ステップＳ１６）。
【００２３】
ステップＳ１３の判別において、複数のバーコード生成用データ４０が含まれている場合には（ステップＳ１３；Ｙｅｓ）、プリンタ用デバイスドライバ３２は、複数のバーコード生成用データ４０を合成する設定となっているか否かを判別する（ステップＳ１４）。
ここで、複数のバーコード生成用データ４０を合成するとは、入力された複数のバーコード生成用データ４０に含まれるキャラクタデータ４３を結合して一のキャラクタデータ列を生成し、生成したキャラクタデータ列に等しいキャラクタデータが含まれている一のバーコード生成用データ４０が入力されたものとして取り扱うことをいう。この結果、アプリケーションプログラムによって、一体として取り扱うべきキャラクタデータが、当該アプリケーションプログラムにより複数のキャラクタデータに分割されて複数のバーコード生成用データとして入力された場合に対応できることとなる。
【００２４】
ステップＳ１４の判別において、複数のバーコード生成用データ４０を合成する設定となっていない場合には（ステップＳ１４；Ｎｏ）、プリンタ用デバイスドライバ３２は、複数の当該バーコード生成用データ４０に基づいて複数のバーコード生成コマンドＣＭＢを生成し、他の印刷コマンドＣＭＤとともに、プリンタ１２のプリンタファームウェア３３に出力する（ステップＳ１５）。
これによりプリンタ１２のプリンタファームウェア３３は、複数のバーコード生成コマンドＣＭＢを含む入力された印刷コマンドＣＭＤに基づいてバーコードを所定指示位置に印刷しつつ、印刷を行うこととなる（ステップＳ１６）。
ステップＳ１４の判別において、複数のバーコード生成用データ４０を合成する設定となっている場合には（ステップＳ１４；Ｙｅｓ）、プリンタ用デバイスドライバ３２は、複数のバーコード生成用データ４０を合成すべきか否かを判別するために、入力された順序にしたがって、二つのバーコード生成用データ４０の印字位置データ４１を参照し、二つのバーコード生成用データ４０のそれぞれに含まれるキャラクタデータが一体として取り扱うべきキャラクタデータであるか否かを判別する（ステップＳ１７）。
【００２５】
この場合に、一体として取り扱うべきキャラクタデータか否かの判別については、バーコード生成用データ４０に含まれる印字位置データ４１に基づき、
（１）  判別対象である入力されたバーコード生成用データに対応するバーコードの印字位置が、当該入力されたバーコード生成用データの直前に入力されたバーコード生成用データに対応するバーコードの印字位置に基づく所定印字領域以内に位置する場合。
（２）  生成中のキャラクタデータ列に基づいてバーコード生成コマンドを生成してバーコードを印字したと仮定した場合に、当該バーコードの印字領域内に、判別対象である入力されたバーコード生成用データに対応するバーコードの印字位置が含まれる場合。
（３）  判別対象である入力されたバーコード生成用データに対応するバーコードの印字位置と、当該入力されたバーコード生成用データの直前に入力されたバーコード生成用データに対応するバーコードの印字位置との距離が所定の設定値より近い場合であって、入力されたバーコード生成用データに対応するキャラクタデータが所定の区切り文字ではない場合。
のいずれかに該当する場合を一体として取り扱うべきキャラクタデータとして判別している。すなわち、別々のバーコードとして印刷を行った場合には、互いの印刷領域が重なる場合や、非常に近接してバーコードが配置されてしまう場合には、一体として取り扱うべきキャラクタデータとして判別している。
【００２６】
ステップＳ１７の判別において、二つのバーコード生成用データ４０のそれぞれに含まれるキャラクタデータが一体として取り扱うべきキャラクタデータではない場合には（ステップＳ１７；Ｎｏ）、プリンタ用デバイスドライバ３２は、処理をステップＳ１５に移行し、入力されたバーコード生成用データの直前に入力されたバーコード生成用データ４０を単独で、あるいは、入力されたバーコード生成用データの直前に入力されたバーコード生成用データ４０に含まれるキャラクタデータ４３までを一体として取り扱うキャラクタデータ４３であるとしてバーコード生成コマンドＣＭＢを生成し、他の印刷用コマンドとともに、プリンタ１２のプリンタファームウェア３３に出力し（ステップＳ１５）、プリンタ１２のプリンタファームウェア３３は、入力されたバーコード生成コマンドＣＭＢを含む印刷コマンドＣＭＤに基づいてバーコードを所定指示位置に印刷しつつ、印刷を行うこととなる（ステップＳ１６）。
【００２７】
一方、ステップＳ１７の判別において、二つのバーコード生成用データ４０のそれぞれに含まれるキャラクタデータが一体として取り扱うべきキャラクタデータである場合には（ステップＳ１７；Ｙｅｓ）、ＭＰＵ１３は、判別対象である入力されたバーコード生成用データ４０に含まれるキャラクタデータ４３を読み込む（ステップＳ１８）。
次にＭＰＵ１３は、読み込んだキャラクタデータ４３が所定の区切り文字（データ）であるか否かを判別する（ステップＳ１９）。ここで、区切り文字（データ）とは、連続的に入力された複数のバーコード生成用データ４０のキャラクタデータ４３を強制的に複数のキャラクタデータ列に分離するためにユーザにより挿入される文字（データ）であり、この区切り文字（データ）の前後で別のバーコードを構成するキャラクタデータであることを示すものである。したがって、区切り文字（データ）は、一のバーコードに対応する最後のキャラクタデータ４３を含むバーコード生成用データ４０の直後のバーコード生成用データ４０、あるいは、一のバーコードに対応する最初のキャラクタデータ４３を含むバーコード生成用データ４０の直前のバーコード生成用データ４０に含めることとなる。
【００２８】
ステップＳ１９の判別において、読み込んだキャラクタデータ４３が所定の区切り文字（データ）ではない場合には（ステップＳ１９；Ｎｏ）、ＭＰＵ１３は、読み込んだキャラクタデータ４３をキャラクタデータ列として構成するために一時的にＲＡＭ１５に格納し（ステップＳ２０）、再び処理をステップＳ１８に移行する。
一方、ステップＳ１９の判別において、読み込んだキャラクタデータ４３が所定の区切り文字（データ）である場合には（ステップＳ１９；Ｙｅｓ）、既にＲＡＭ１５に格納されたキャラクタデータ４３を連結して、一つのキャラクタデータ列とし、当該キャラクタデータ列をキャラクタデータ４３としてバーコード生成コマンドを生成し（ステップＳ２１）、他の印刷用コマンドとともに、プリンタ１２に出力し（ステップＳ１５）、プリンタ１２のプリンタファームウェア３３は、入力された印刷コマンドＣＭＤに基づいてバーコードを所定指示位置に印刷しつつ、１頁分の印刷を行うこととなる（ステップＳ１６）。
【００２９】
以上の説明のように、本実施形態によれば、バーコード合成を行う設定とされている場合には、複数のバーコード生成用データ４０に含まれるキャラクタデータ４３を読み出して一のキャラクタデータ列とし、当該一のキャラクタデータ列を新たなキャラクタデータ４３としてバーコード生成コマンドＣＭＢを生成し、プリンタ１２にバーコード生成コマンドＣＭＢを含む印刷コマンドＣＭＤを出力することとなるので、アプリケーションプログラム３１により不必要にキャラクタデータが区切られることに起因するユーザの所望するバーコードの印刷結果と実際の印刷結果との違いをプリンタ用デバイスドライバ３２により吸収して、ユーザの所望するバーコード印刷結果を容易に得ることが可能となる。
【００３０】
次に具体例について説明する。
図５は、アプリケーションプログラムから入力されるバーコード生成用データの一例の説明図である。
また、図６は、図５に対応するプリンタ用デバイスドライバの動作説明図である。
図５（Ａ）は、一のアプリケーションプログラムから出力されるバーコード生成用データ４０Ａの一例であり、バーコード生成用データ４０Ａは、印字位置データ４１Ａ＝（ｘ１，ｙ１）、フォント種別データ４２Ａ＝「ｃｏｄｅ３９」、キャラクタデータ４３Ａ＝“１２３４５”となっている。
この結果、図６（Ａ）に示すように、マージン部およびシンボル部を含むバーコードの印字領域の左上端部の座標＝（ｘ１，ｙ１）となる位置に、キャラクタデータとして「１２３４５」を含むバーコードＢＣＤ１が所定のフォーマット（本実施形態の場合、ｃｏｄｅ３９のフォーマット）で印字されることとなる。
【００３１】
一方、図５（Ｂ）は、他のアプリケーションプログラムから出力されるバーコード生成用データの一例であり、このようなアプリケーションプログラムに対しては、複数のバーコード生成用データ４０を合成する設定としておき、プリンタ用デバイスドライバ３２には、バーコード生成用データとして五つのバーコード生成用データ４０Ｂ１〜４０Ｂ５が入力されることとなる。
具体的には、バーコード生成用データ４０Ｂ１は、印字位置データ４１Ｂ１＝（ｘ１，ｙ１）、フォント種別データ４２Ｂ１＝「ｃｏｄｅ３９」、キャラクタデータ４３Ｂ１＝“１”となり、バーコード生成用データ４０Ｂ２は、印字位置データ４１Ｂ２＝（ｘ２，ｙ２）、フォント種別データ４２Ｂ２＝「ｃｏｄｅ３９」、キャラクタデータ４３Ｂ２＝“２”となり、バーコード生成用データ４０Ｂ３は、印字位置データ４１Ｂ３＝（ｘ３，ｙ３）、フォント種別データ４２Ｂ３＝「ｃｏｄｅ３９」、キャラクタデータ４３Ｂ３＝“３”となり、バーコード生成用データ４０Ｂ４は、印字位置データ４１Ｂ４＝（ｘ４，ｙ４）、フォント種別データ４２Ｂ４＝「ｃｏｄｅ３９」、キャラクタデータ４３Ｂ４＝“４”となり、バーコード生成用データ４０Ｂ５は、印字位置データ４１Ｂ５＝（ｘ５，ｙ５）、フォント種別データ４２Ｂ５＝「ｃｏｄｅ３９」、キャラクタデータ４３Ｂ５＝“５”となっている。
【００３２】
この結果、図６（Ｂ）に示すように、マージン部およびシンボル部を含むバーコードの印字領域の左上端部の座標＝（ｘ１，ｙ１）、（ｘ２，ｙ２）、（ｘ３，ｙ３）、（ｘ４，ｙ４）、（ｘ４，ｙ４）となる位置に、キャラクタデータとしてそれぞれ「１」、「２」、「３」、「４」、「５」を含むバーコードＢＣＤ２１〜ＢＣＤ２５が印字されることとなり、このままの状態では、ユーザの所望する印字状態、すなわち図６（Ａ）とは異なってしまう。
さらに、バーコード生成用データ４０Ｂ１〜４０Ｂ５は、もともと同一のバーコードに対応するデータであるため、ｙ１＝ｙ２＝ｙ３＝ｙ４＝ｙ５となっており、従来方法では、図６（Ｃ）に示すように、五つのバーコードＢＣＤ２１〜バーコードＢＣＤ２５が一部重なった状態で印字され、実際には全てのバーコードが読めなくなってしまうこととなる。
【００３３】
これに対し、本実施形態によれば、図５（Ｂ）に示すような状態で、五つのバーコード生成用データ４０Ｂ１〜４０Ｂ５が入力された場合でも、上述したステップＳ１７〜ステップＳ２２の処理により、五つのバーコード生成用データ４０Ｂ１〜４０Ｂ５からキャラクタデータ４３Ｂ１〜４３Ｂ５、すなわち、「１」〜「５」を読み出して、一のキャラクタデータ列＝「１２３４５」とし、当該一のキャラクタデータ列を新たなキャラクタデータ４３としてバーコード生成コマンドＣＭＢを生成し、プリンタ１２にバーコード生成コマンドＣＭＢを含む印刷コマンドＣＭＤを出力することとなるので、実際には、図６（Ａ）で示した状態、すなわち、ユーザの所望するキャラクタデータとして「１２３４５」を含む一のバーコードＢＣＤ１を印刷することが可能となっている。
【００３４】
図７は、アプリケーションプログラムから入力されるバーコード生成用データの他の一例の説明図である。
また、図８は、図７に対応するプリンタ用デバイスドライバの動作説明図である。
図７（Ａ）は、一のアプリケーションプログラムから出力される二つのバーコード生成用データ、具体的には、バーコード生成用データ４０Ｃ１、４０Ｃ２の一例であり、バーコード生成用データ４０Ｃ１は、印字位置データ４１Ｃ１＝（ｘ１，ｙ１）、フォント種別データ４２Ｃ１＝「ｃｏｄｅ３９」、キャラクタデータ４３Ｃ１＝“１２３”となっており、バーコード生成用データ４０Ｃ２は、印字位置データ４１Ｃ２＝（ｘ３，ｙ３）、フォント種別データ４２Ｃ２＝「ｃｏｄｅ３９」、キャラクタデータ４３Ｃ２＝“４５”となっている。
この結果、図８（Ａ）に示すように、マージン部およびシンボル部を含むバーコードの印字領域の左上端部の座標＝（ｘ１，ｙ１）となる位置に、キャラクタデータとして「１２３」を含むバーコードＢＣＤ１１およびマージン部およびシンボル部を含むバーコードの印字領域の左上端部の座標＝（ｘ３，ｙ３）となる位置に、キャラクタデータとして「４５」を含むバーコードＢＣＤ１２が印字されることとなる。
【００３５】
一方、図７（Ｂ）は、他のアプリケーションプログラムから出力されるバーコード生成用データの一例であり、このようなアプリケーションプログラムに対しては、複数のバーコード生成用データ４０を合成する設定としておき、プリンタ用デバイスドライバ３２には、バーコード生成用データとして五つのバーコード生成用データ４０Ｄ１〜４０Ｄ５が入力されることとなる。
具体的には、バーコード生成用データ４０Ｄ１は、印字位置データ４１Ｄ１＝（ｘ１，ｙ１）、フォント種別データ４２Ｄ１＝「ｃｏｄｅ３９」、キャラクタデータ４３Ｄ１＝“１”となり、バーコード生成用データ４０Ｄ２は、印字位置データ４１Ｄ２＝（ｘ２，ｙ２）、フォント種別データ４２Ｄ２＝「ｃｏｄｅ３９」、キャラクタデータ４３Ｄ２＝“２”となり、バーコード生成用データ４０Ｄ３は、印字位置データ４１Ｄ３＝（ｘ３，ｙ３）、フォント種別データ４２Ｄ３＝「ｃｏｄｅ３９」、キャラクタデータ４３Ｄ３＝“３”となり、バーコード生成用データ４０Ｄ４は、印字位置データ４１Ｄ４＝（ｘ４，ｙ４）、フォント種別データ４２Ｄ４＝「ｃｏｄｅ３９」、キャラクタデータ４３Ｄ４＝“４”となり、バーコード生成用データ４０Ｄ５は、印字位置データ４１Ｄ５＝（ｘ５，ｙ５）、フォント種別データ４２Ｄ５＝「ｃｏｄｅ３９」、キャラクタデータ４３Ｄ５＝“５”となっている。
【００３６】
この結果、図８（Ｂ）に示すように、マージン部およびシンボル部を含むバーコードの印字領域の左上端部の座標＝（ｘ１，ｙ１）、（ｘ２，ｙ２）、（ｘ３，ｙ３）、（ｘ４，ｙ４）、（ｘ５，ｙ５）となる位置に、キャラクタデータとしてそれぞれ「１」、「２」、「３」、「４」、「５」を含むバーコードＢＣＤ３１〜バーコードＢＣＤ３５が印字されることとなり、このままの状態では、ユーザの所望する印字状態、すなわち図７（Ａ）とは異なってしまう。
さらに、バーコード生成用データ４０Ｄ１〜４０Ｄ５は、もともと同一の高さ位置（＝同一のｙ軸方向位置）に配置されたバーコードに対応するデータであるため、ｙ１＝ｙ２＝ｙ３＝ｙ４＝ｙ５となっており、従来方法では、図８（Ｃ）に示すように、三つのバーコードＢＣＤ３１〜ＢＣＤ３３が一部重なった状態およびこの三つのバーコードＢＣＤ３１〜ＢＣＤ３３とは離れた位置に二つのバーコードＢＣＤ３４〜ＢＣＤ３５が一部重なった状態で印字され、実際には全てのバーコードＢＣＤ３１〜バーコードＢＣＤ３５が読めなくなってしまうこととなる。
【００３７】
これに対し、本実施形態によれば、図７（Ｂ）に示すような状態で、五つのバーコード生成用データ４０Ｄ１〜４０Ｄ５が入力された場合でも、
（１）  判別対象である入力されたバーコード生成用データに対応するバーコードの印字位置が、当該入力されたバーコード生成用データの直前に入力されたバーコード生成用データに対応するバーコードの印字位置に基づく所定印字領域以内に位置する場合。
（２）  生成中のキャラクタデータ列に基づいてバーコード生成コマンドを生成してバーコードを印字したと仮定した場合に、当該バーコードの印字領域内に、判別対象である入力されたバーコード生成用データに対応するバーコードの印字位置が含まれる場合。
のうち、いずれかが満たされていれば、上述したステップＳ１７〜ステップＳ２２の処理により、まず、三つのバーコード生成用データ４０Ｄ１〜４０Ｄ３からキャラクタデータ４３Ｄ１〜４３Ｄ３、すなわち、「１」〜「３」を読み出して、一のキャラクタデータ列＝「１２３」とし、当該一のキャラクタデータ列を新たなキャラクタデータ４３としてバーコード生成コマンドＣＭＢを生成し、さらに二つのバーコード生成用データ４０Ｄ４、４０Ｄ５からキャラクタデータ４３Ｄ４、４３Ｄ５、すなわち、「４」、「５」を読み出して、一のキャラクタデータ列＝「４５」とし、当該一のキャラクタデータ列を新たなキャラクタデータ４３としてバーコード生成コマンドＣＭＢを生成してプリンタ１２にバーコード生成コマンドＣＭＢを含む印刷コマンドＣＭＤを出力することとなるので、実際には、図８（Ａ）で示した状態、すなわち、ユーザの所望するキャラクタデータとして「１２３」あるいはキャラクタデータとして「４５」を含む二つのバーコードＢＣＤ１１、バーコードＢＣＤ１２を印刷することが可能となっている。
【００３８】
図９は、アプリケーションプログラムから入力されるバーコード生成用データのさらに他の一例の説明図である。本例は、キャラクタデータに区切り文字（データ）を含める場合のものである。
また、図１０は、図９に対応するプリンタ用デバイスドライバの動作説明図である。
図９に示すように、アプリケーションプログラムから出力されるバーコード生成用データの一例であり、このようなアプリケーションプログラムに対しては、複数のバーコード生成用データを合成する設定としておき、プリンタ用デバイスドライバ３２には、バーコード生成用データとして区切り文字に対応するバーコード生成用データを含む六つのバーコード生成用データ４０Ｅ１〜４０Ｅ６が入力されることとなる。
【００３９】
具体的には、バーコード生成用データ４０Ｅ１は、印字位置データ４１Ｅ１＝（ｘ１，ｙ１）、フォント種別データ４２Ｅ１＝「ｃｏｄｅ３９」、キャラクタデータ４３Ｅ１＝“１”となり、バーコード生成用データ４０Ｅ２は、印字位置データ４１Ｅ２＝（ｘ２，ｙ２）、フォント種別データ４２Ｅ２＝「ｃｏｄｅ３９」、キャラクタデータ４３Ｅ２＝“２”となり、バーコード生成用データ４０Ｅ３は、印字位置データ４１Ｅ３＝（ｘ３，ｙ３）、フォント種別データ４２Ｅ３＝「ｃｏｄｅ３９」、キャラクタデータ４３Ｅ３＝“３”となり、バーコード生成用データ４０Ｅ４は、印字位置データ４１Ｅ４はダミーデータである（ｘｄ，ｙｄ）、フォント種別データ４２Ｅ４＝「ｃｏｄｅ３９」、キャラクタデータ４３Ｅ４は区切り文字である＝“￥”となり、バーコード生成用データ４０Ｅ５は、印字位置データ４１Ｅ５＝（ｘ４，ｙ４）、フォント種別データ４２Ｅ５＝「ｃｏｄｅ３９」、キャラクタデータ４３Ｅ５＝“４”となり、バーコード生成用データ４０Ｅ６は、印字位置データ４１Ｅ６＝（ｘ５，ｙ５）、フォント種別データ４２Ｅ６＝「ｃｏｄｅ３９」、キャラクタデータ４３Ｅ６＝“５”となっている。
以上の説明では、区切り文字として“￥”を用いていたが、制御コードなどとして予め指定（予約）されている文字あるいは文字列以外であれば、任意の文字あるいは文字列を区切り文字として用いることが可能である。
【００４０】
この結果、マージン部およびシンボル部を含むバーコードの印字領域の左上端部の座標＝（ｘ１，ｙ１）、（ｘ２，ｙ２）、（ｘ３，ｙ３）、（ｘ４，ｙ４）、（ｘ５，ｙ５）となる位置に、キャラクタデータとしてそれぞれ「１」、「２」、「３」、「４」、「５」を含むバーコードＢＣＤ４１〜ＢＣＤ４５が印字されることとなる。
しかしながら、バーコード生成用データ４０Ｅ１〜４０Ｅ３、４０Ｅ５〜４０Ｅ６は、もともと同一の高さ位置（＝同一のｙ軸方向位置）に配置されたバーコードに対応するデータであるため、ｙ１＝ｙ２＝ｙ３＝ｙ４＝ｙ５となっており、従来方法では、区切り文字に対応するバーコード生成用データを送信しないので、これを含めずに送信したとしても、図１０（Ａ）に示すように、五つのバーコードＢＣＤ４１〜ＢＣＤ４５が一部重なった状態で印字され、実際には全てのバーコードＢＣＤ４１〜ＢＣＤ４５が読めなくなってしまうこととなる。また、従来方法で、区切り文字に対応するバーコード生成用データも含めて送信した場合には、キャラクタデータとしてそれぞれ「１」、「２」、「３」、「￥」、「４」、「５」を含む六つのバーコードが一部重なった状態で印字され、区切り文字に対応するよけいなバーコードが印字されるとともに、全てのバーコードが読めなくなってしまうこととなる。
【００４１】
これに対し、本実施形態によれば、図９に示すような状態で、五つのバーコード生成用データ４０Ｅ１〜４０Ｅ３、４０Ｅ５、４０Ｅ６が入力された場合には、対象である入力されたバーコード生成用データに対応するバーコードの印字位置と、当該入力されたバーコード生成用データの直前に入力されたバーコード生成用データに対応するバーコードの印字位置との距離が所定の設定値より近い場合であって、入力されたバーコード生成用データに対応するキャラクタデータが所定の区切り文字であるので、上述したステップＳ１７〜ステップＳ２２の処理により、まず、三つのバーコード生成用データ４０Ｅ１〜４０Ｅ３からキャラクタデータ４３Ｅ１〜４３Ｅ３、すなわち、「１」〜「３」を読み出して、一のキャラクタデータ列＝「１２３」とし、当該一のキャラクタデータ列を新たなキャラクタデータ４３としてバーコード生成コマンドＣＭＢを生成し、さらに区切り文字を含むバーコード性生成用データを除く、二つのバーコード生成用データ４０Ｅ５、４０Ｅ６からキャラクタデータ４３Ｅ５、４３Ｅ６、すなわち、「４」、「５」を読み出して、一のキャラクタデータ列＝「４５」とし、当該一のキャラクタデータ列を新たなキャラクタデータ４３としてバーコード生成コマンドＣＭＢを生成してプリンタ１２にバーコード生成コマンドＣＭＢを含む印刷コマンドＣＭＤを出力することとなるので、実際には、図１０（Ｂ）で示した状態、すなわち、ユーザの所望するキャラクタデータとして「１２３」あるいはキャラクタデータとして「４５」を含む二つのバーコードＢＣＤ１１、バーコードＢＣＤ１２を印刷することが可能となっている。
【００４２】
以上の説明のように、本実施形態によれば、アプリケーションプログラム３１の挙動に応じて、バーコードの合成を行うか否かを予めユーザが設定することにより、様々なアプリケーションプログラム３１によりユーザの所望するフォーマットでバーコード印刷が可能となる。
【００４３】
以上の説明においては、プリンタ用デバイスドライバが、コマンドを生成する場合であったが、プリンタ用デバイスドライバは、アプリケーションプログラムからデータをプリンタに引き渡すだけの機能とし、プリンタのファームウェアにより上述のプリンタ用デバイスドライバの機能、すなわち、入力された複数のバーコード生成用データに含まれるキャラクタデータを抽出し、抽出した複数のキャラクタデータを連結してキャラクタデータ列を生成するデータ列生成機能と、前記データ列生成機能により生成された前記キャラクタデータ列に基づいて一のバーコード生成コマンドを生成するコマンド生成機能と、を実現し、本来の印刷機能により、コマンド生成機能により生成されたバーコード生成コマンドに基づいてバーコード印刷を行うようにしてもよい。
本構成によれば、プリンタ用デバイスドライバに変更を加える必要がないので、様々なホストコンピュータに容易に対応することが可能となる。
【図面の簡単な説明】
【００４４】
【図１】実施形態のバーコード印刷システムの概要構成ブロック図である。
【図２】バーコード印刷システムのソフトウェア構成の説明図である。
【図３】バーコード生成用データの概要説明図である。
【図４】プリンタ用デバイスドライバの処理フローチャートである。
【図５】アプリケーションプログラムから入力されるバーコード生成用データの一例の説明図である。
【図６】図５に対応するプリンタ用デバイスドライバの動作説明図である。
【図７】アプリケーションプログラムから入力されるバーコード生成用データの他の一例の説明図である。
【図８】図７に対応するプリンタ用デバイスドライバの動作説明図である。
【図９】アプリケーションプログラムから入力されるバーコード生成用データのさらに他の一例の説明図である。
【図１０】図９に対応するプリンタ用デバイスドライバの動作説明図である。
【符号の説明】
【００４５】
１０…バーコード印刷システム、１１…ホストコンピュータ（データ列生成部、コマンド生成部）、１２…プリンタ、３１…アプリケーションプログラム、３２…プリンタ用デバイスドライバ（データ列生成部、コマンド生成部）、３３…プリンタファームウェア（データ列生成部、コマンド生成部）、４０…バーコード生成用データ、４１…印字位置データ、４２…フォント種別データ、４３…キャラクタデータ、ＣＭＢ…バーコード生成コマンド、ＣＭＤ…印刷コマンド、ＤＰＲ…印刷データ。
【図１】
2010015387.tif 000003
【図２】
2010015387.tif 000004
【図３】
2010015387.tif 000005
【図４】
2010015387.tif 000006
【図５】
2010015387.tif 000007
【図６】
2010015387.tif 000008
【図７】
2010015387.tif 000009
【図８】
2010015387.tif 000010
【図９】
2010015387.tif 000011
【図１０】
2010015387.tif 000012