説明

印刷制御装置、印刷装置、印刷制御装置の制御方法および制御プログラム

【課題】アプリケーションプログラムのバーコード生成コードの解釈の違いに起因するバーコード印刷結果の差異を吸収してユーザが所望するバーコードを印刷する。
【解決手段】ホストコンピュータ11のプリンタ用デバイスドライバ32は、入力された複数のバーコード生成用データに含まれるキャラクタデータを抽出し、抽出した複数のキャラクタデータを連結してキャラクタデータ列を生成し、生成したキャラクタデータ列に基づいてプリンタ12に一のバーコード生成コマンドCMBを生成し、出力する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、印刷制御装置、印刷装置、印刷制御装置の制御方法および制御プログラムに係り、特にアプリケーションプログラムから入力された印字データに基づいてバーコードを印刷するための印刷制御装置、印刷装置、印刷制御装置の制御方法および制御プログラムに関する。
【背景技術】
【0002】
従来、商品あるいは製品を識別するために、いわゆるバーコードが用いられている。
バーコードは、商品あるいは製品の包装に印字され、あるいは、商品あるいは製品の包装にシールなどとして貼付され、バーコードリーダと呼ばれる光学的読取装置により読み取って、販売管理や在庫管理を行うために用いられていた(例えば、特許文献1参照)。
【0003】
ここで、従来のバーコード印刷システムについて説明する。
バーコード印刷システムにおいては、パーソナルコンピュータやワークステーションのようなホストコンピュータに、プリンタが接続されており、バーコード印刷を行う場合には、ホストコンピュータが直接プリンタに対してバーコード印刷用の画像データを送信し、あるいは、専用のアプリケーションプログラムを介して印刷が行われていた。
【特許文献1】特開2008−040541号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
したがって、上記従来のバーコード印刷システムにおいては、それ自身でバーコード印刷用の画像データを生成することができないワードプロセッサなどの汎用プログラムにおいては、バーコードを印刷することができないという問題点があった。
【0005】
一方、上述した問題点を解決するため、例えばワードプロセッサのようなアプリケーションプログラムにおいて、バーコード印刷を行うために、バーコードフォントを用いる方法が提案されている。バーコードフォントは、汎用のアプリケーションプログラムにおいて、バーコードを通常のフォントと同様に扱えるようにするものであり、プリンタ用デバイスドライバに対してバーコードフォントのフォント名で文字列が引き渡されると、プリンタ用デバイスドライバは、文字ではなくバーコードの画像を生成する処理を行っていた。
より具体的には、アプリケーションプログラム上で、ユーザが印字を行いたい一または複数のバーコードに対応する文字列(キャラクタデータ:商品番号、製造番号など)を入力し、印刷フォントとして、所望のバーコード規格に対応するバーコードフォントを指定するとともに、その印字位置、サイズなどの印刷書式を指定し、印刷を指示すると、アプリケーションプログラムは、プリンタ用デバイスドライバを呼び出して印刷を指示する。
これにより、プリンタ用デバイスドライバは、アプリケーションから指示されたバーコードフォント、キャラクタデータ及び印字間隔やサイズなどの印刷書式に基づいて、そのバーコードフォントに対応する画像データを印字データとして作成し、これをプリンタへ転送する。
そして、プリンタは、他の印刷処理と同様に、プリンタ用デバイスドライバからの印字データに基づいて、指定された印字書式で指定されたバーコードを印刷していた。
【0006】
ところで、桁数を変更可能なバーコード(例えば、ITF[Interleaved Two of Five]やCODE128等)においては、所定のバーコードリーダで読取可能な範囲内で、ユーザが複数の文字(例えば、英数字)を含む文字列を一つのバーコードとして生成しようとする場合がある。このような場合に、アプリケーションプログラムによっては、文字列を構成する文字毎に分割してプリンタ用デバイスドライバにデータを渡す場合があり、その場合は、1文字毎にバーコードが印刷されてしまう。
具体的には、ユーザが「A12345」というキャラクタデータ(=文字列)に対応する一つのバーコードを生成しようとした場合に、アプリケーションソフトが「A」、「1」、「2」、「3」、「4」、「5」の6個の文字に分割してプリンタ用デバイスドライバに渡す場合があり、このような場合には、ユーザが所望したバーコードとは全く異なるバーコードが印刷され、あるいは、複数のバーコードが重なって印刷されて、バーコードの読み取りが行えなくなってしまう可能性があった。
【0007】
そこで、本発明の目的は、アプリケーションプログラムが文字列をどのようにプリンタ用デバイスドライバに渡しているか、の違いに起因するバーコード印刷結果の差異を吸収してユーザが所望するバーコードを印刷することが可能なバーコード印刷技術を提供することにある。
【課題を解決するための手段】
【0008】
上記課題を解決するため、本発明の第1態様は、入力された複数のバーコード生成用データに含まれるキャラクタデータを抽出し、抽出した複数のキャラクタデータを連結してキャラクタデータ列を生成するデータ列生成部と、前記データ列生成部により生成した前記キャラクタデータ列に基づいて外部の印刷装置に出力する一のバーコード生成コマンドを生成するコマンド生成部と、を備えたことを特徴としている。
上記構成によれば、データ列生成部は、入力された複数のバーコード生成用データに含まれるキャラクタデータを抽出し、抽出した複数のキャラクタデータを連結してキャラクタデータ列を生成する。
これによりコマンド生成部は、データ列生成部により生成したキャラクタデータ列に基づいて外部の印刷装置に出力する一のバーコード生成コマンドを生成する。
したがって、本来一つのバーコードを生成すべきキャラクタデータが複数のバーコードに分割されて生成されるのを防止することができ、所望のバーコードを印刷させることができる。
ここで、コマンド生成部から出力されるバーコード生成コマンドとしては、外部の印刷装置に画像としてのバーコードを生成させるために、当該印刷装置にバーコードの画像を生成させるための命令として入力される場合と、印刷装置は画像を印刷する機能のみを提供し、コマンド生成部がバーコード画像として変換し、このバーコード画像を印刷装置に印刷させるための画像印刷コマンドとして入力される場合と、を含むものとする。
【0009】
本発明の第2の態様は、第1の態様において、前記データ列生成部は、抽出した前記キャラクタデータが所定のデータ区切りデータである場合に、当該データ区切りデータの直前のキャラクタデータまでを連結して前記キャラクタデータ列を生成する、ことを特徴としている。
上記構成によれば、データ列生成部は、抽出したキャラクタデータが所定のデータ区切りデータである場合に、当該データ区切りデータの直前のキャラクタデータまでを連結してキャラクタデータ列を生成するので、確実にユーザが所望するキャラクタデータを含むバーコードを生成させることができる。
【0010】
本発明の第3の態様は、第1の態様または第2の態様において、前記バーコード生成用データは、印字位置を指定するための印字位置指定データを含み、前記データ列生成部は、前記印字位置指定データに基づいて、入力されたバーコード生成用データの前記印字位置が、当該入力されたバーコード生成用データの直前に入力されたバーコード生成用データの前記印字位置に対応する所定印字領域内に位置する場合に、両バーコード生成用データに含まれるキャラクタデータを同一の前記キャラクタデータ列を生成するキャラクタデータとすることを特徴としている。
上記構成によれば、本来同一のバーコードを構成すべきキャラクタデータを容易に判別して、正しいバーコードを生成することが可能となる。
【0011】
本発明の第4の態様によれば、第3の態様において、前記データ列生成部は、生成中の前記キャラクタデータ列に基づいて前記バーコード生成コマンドを生成してバーコードを印字したと仮定した場合に、当該バーコードの印字領域内に、入力されたバーコード生成用データの前記印字位置指定データに対応する印字位置が含まれる場合に、当該入力されたバーコード生成用データに含まれるキャラクタデータを生成中の前記キャラクタデータ列に含めることを特徴としている。
上記構成によれば、本来同一のバーコードを構成すべきキャラクタデータを容易に判別して、正しいバーコードを生成することが可能となる。
【0012】
本発明の第5の態様は、入力された複数のバーコード生成用データに含まれるキャラクタデータを抽出し、抽出した複数のキャラクタデータを連結してキャラクタデータ列を生成するデータ列生成部と、前記データ列生成部により生成した前記キャラクタデータ列に基づいて一のバーコード生成コマンドを生成するコマンド生成部と、前記コマンド生成部により生成されたバーコード生成コマンドに基づいてバーコード印刷を行う印刷部と、を備えたことを特徴としている。
上記構成によれば、印刷装置のデータ列生成部は、入力された複数のバーコード生成用データに含まれるキャラクタデータを抽出し、抽出した複数のキャラクタデータを連結してキャラクタデータ列を生成する。
これによりコマンド生成部は、データ列生成部により生成したキャラクタデータ列に基づいて一のバーコード生成コマンドを生成し、印刷部は、コマンド生成部により生成されたバーコード生成コマンドに基づいてバーコード印刷を行う。
したがって、本来一つのバーコードを生成すべきキャラクタデータが複数のバーコードに分割されて生成されるのを防止することができ、所望のバーコードを印刷させることができる。
【0013】
本発明の第6の態様は、入力された複数のバーコード生成用データに含まれるキャラクタデータを抽出し、抽出した複数のキャラクタデータを連結してキャラクタデータ列を生成するデータ列生成過程と、前記データ列生成過程において生成した前記キャラクタデータ列に基づいて外部の印刷装置に出力する一のバーコード生成コマンドを生成するコマンド生成過程と、を備えたことを特徴としている。
上記構成によれば、本来一つのバーコードを生成すべきキャラクタデータが複数のバーコードに分割されて生成されるのを防止することができ、所望のバーコードを印刷させることができる。
【0014】
また、印刷装置の制御方法は、入力された複数のバーコード生成用データに含まれるキャラクタデータを抽出し、抽出した複数のキャラクタデータを連結してキャラクタデータ列を生成するデータ列生成過程と、前記データ列生成過程において生成した前記キャラクタデータ列に基づいて一のバーコード生成コマンドを生成するコマンド生成過程と、前記コマンド生成過程において生成されたバーコード生成コマンドに基づいてバーコード印刷を行う印刷過程と、を備えるようにしてもよい。
上記構成によっても、本来一つのバーコードを生成すべきキャラクタデータが複数のバーコードに分割されて生成されるのを防止することができ、所望のバーコードを印刷させることができる。
【0015】
本発明の第7の態様は、印刷制御装置をコンピュータにより制御するための制御プログラムであって、入力された複数のバーコード生成用データに含まれるキャラクタデータを抽出し、抽出した複数のキャラクタデータを連結してキャラクタデータ列を生成するデータ列生成機能と、前記データ列生成過程において生成した前記キャラクタデータ列に基づいて外部の印刷装置に出力する一のバーコード生成コマンドを生成するコマンド生成機能と、を前記コンピュータに実現させることを特徴としている。
上記構成によれば、印刷制御装置は、本来一つのバーコードを生成すべきキャラクタデータが複数のバーコードに分割されて生成されるのを防止することができ、所望のバーコードを印刷させることができる。
【0016】
また、印刷装置をコンピュータにより制御するための制御プログラムであって、入力された複数のバーコード生成用データに含まれるキャラクタデータを抽出し、抽出した複数のキャラクタデータを連結してキャラクタデータ列を生成するデータ列生成機能と、前記データ列生成機能により生成された前記キャラクタデータ列に基づいて一のバーコード生成コマンドを生成するコマンド生成機能と、前記コマンド生成機能により生成されたバーコード生成コマンドに基づいてバーコード印刷を行う印刷機能と、を備えるようにしてもよい。
上記構成によれば、印刷装置は、本来一つのバーコードを生成すべきキャラクタデータが複数のバーコードに分割されて生成されるのを防止することができ、所望のバーコードを印刷させることができる。
【発明の効果】
【0017】
本発明によれば、ユーザの負担を増加させることなく、バーコードリーダにより確実に読み込むことが可能なバーコードを、ユーザが所望するフォーマットで印刷させることができる。
【発明を実施するための最良の形態】
【0018】
次に本発明の好適な実施の形態について図面を参照して説明する。
図1は、実施形態のバーコード印刷システムの概要構成ブロック図である。
バーコード印刷システム10は、ホストコンピュータ11と、ホストコンピュータ11の制御下でバーコード印刷を行うプリンタ12と、を備えている。
ホストコンピュータ11は、ホストコンピュータ11全体を制御するMPU13と、各種制御プログラムなどを記憶するROM14と、各種データを一時的に記憶するワークエリアとして機能するRAM15と、ハードディスク装置などとして構成された外部記憶装置16と、各種情報を表示するLCDなどで構成された表示装置17と、キーボード、マウスなどの入力装置を備えた入力操作装置18と、パラレルプリンタインタフェースあるいはシリアルプリンタインタフェースを含み外部とのインタフェース動作を行うインタフェース部19と、を備えている。
プリンタ12は、図示しないMPU、ROM、RAMなどを有し、プリンタ12全体を制御するコントローラ21と、外部とのインタフェース動作を行うインタフェース部22と、コントローラ21の制御下で実際の印刷を行うプリントエンジン23と、を備えている。
【0019】
ここで、アプリケーションソフトウェアからプリンタ用デバイスドライバに出力される印刷データに含まれるバーコード生成用データのデータフォーマットの一例について説明する。
図2は、バーコード印刷システムのソフトウェア構成の説明図である。
ホストコンピュータ11上では、ワードプロセッサや在庫管理システム等の一または複数のアプリケーションプログラム31が動作しており、これらのアプリケーションプログラム31からバーコードを含む各種印刷を行うための印刷データDPRがプリンタ用デバイスドライバ32に入力される。
これによりプリンタ用デバイスドライバ32は、印刷データDPRを解析し、バーコード生成コマンドCMBを含む印刷コマンドCMDを生成し、プリンタ12上で動作しているプリンタファームウェア33に送信する。
この結果、プリンタファームウェア33は、入力された印刷コマンドCMD、ひいては、バーコード生成コマンドCMBに基づいてバーコード印刷を行うこととなる。
【0020】
図3は、バーコード生成用データの概要説明図である。
以下の説明においては、バーコードとして、いわゆる一次元バーコードについて説明するが、スタック式あるいはマトリックス式の二次元バーコード(二次元コード)についても同様に適用が可能である。
バーコード生成用データ40は、バーコード印字位置を指定するための印字位置データ41と、生成するバーコードのフォント種別を指定するフォント種別データ42と、バーコードの内容を表すキャラクタデータ43と、を備えている。
印字位置データ41は、基準位置(例えば、記録用紙の印字領域の左上端位置を(X=0,Y=0)とする)に対する座標データが格納される。
フォント種別データ42は、バーコードの生成に用いるフォントデータの種別に関する情報が格納されており、例えば、JAN、code39、NW−7などを指定するためのフォント種別指定コードが格納される。また、印字サイズなどの情報もここに含まれる。
キャラクタデータ43は、バーコードとして印字すべき内容を表すものであり、国コード(データ)、メーカーコード(データ)、商品アイテムコード(データ)、任意文字列データなどが含まれる。
【0021】
ここで、プリンタ用デバイスドライバ32の概要処理について説明する。
図4は、プリンタ用デバイスドライバの処理フローチャートである。
プリンタ用デバイスドライバ32は、1頁分の印刷データDPRがアプリケーションプログラム31から入力されると(ステップS11)、入力された1頁分の印刷データDPRに含まれるバーコード生成用データ40部分を抽出する(ステップS12)。
【0022】
次にプリンタ用デバイスドライバ32は、抽出したバーコードフォント部分に複数のバーコード生成用データ40が含まれているか否かを判別する(ステップS13)。
ステップS13の判別において、複数のバーコード生成用データ40が含まれていない場合、すなわち、一つのバーコード生成用データ40のみが含まれている場合には(ステップS13;No)、当該バーコード生成用データ40に基づいてバーコード生成コマンドCMBを生成し、他の印刷用コマンドとともに、プリンタ12に出力する(ステップS15)。この場合において、バーコード生成コマンドCMBとしては、プリンタ用デバイスドライバ32が生成したバーコードの画像を印刷させるための画像印刷コマンド(例えば、画像データとしてのビットマップデータを含む)がプリンタ12に出力されることとなる。なお、プリンタ12側でバーコード画像を生成する構成を採る場合には、単に画像データを含まないコマンドのみを送信するようにすればよい。
これによりプリンタは、バーコード生成コマンドCMBを含む入力された印刷コマンドCMDに基づいてバーコードを所定指示位置に印刷しつつ、印刷を行うこととなる(ステップS16)。
【0023】
ステップS13の判別において、複数のバーコード生成用データ40が含まれている場合には(ステップS13;Yes)、プリンタ用デバイスドライバ32は、複数のバーコード生成用データ40を合成する設定となっているか否かを判別する(ステップS14)。
ここで、複数のバーコード生成用データ40を合成するとは、入力された複数のバーコード生成用データ40に含まれるキャラクタデータ43を結合して一のキャラクタデータ列を生成し、生成したキャラクタデータ列に等しいキャラクタデータが含まれている一のバーコード生成用データ40が入力されたものとして取り扱うことをいう。この結果、アプリケーションプログラムによって、一体として取り扱うべきキャラクタデータが、当該アプリケーションプログラムにより複数のキャラクタデータに分割されて複数のバーコード生成用データとして入力された場合に対応できることとなる。
【0024】
ステップS14の判別において、複数のバーコード生成用データ40を合成する設定となっていない場合には(ステップS14;No)、プリンタ用デバイスドライバ32は、複数の当該バーコード生成用データ40に基づいて複数のバーコード生成コマンドCMBを生成し、他の印刷コマンドCMDとともに、プリンタ12のプリンタファームウェア33に出力する(ステップS15)。
これによりプリンタ12のプリンタファームウェア33は、複数のバーコード生成コマンドCMBを含む入力された印刷コマンドCMDに基づいてバーコードを所定指示位置に印刷しつつ、印刷を行うこととなる(ステップS16)。
ステップS14の判別において、複数のバーコード生成用データ40を合成する設定となっている場合には(ステップS14;Yes)、プリンタ用デバイスドライバ32は、複数のバーコード生成用データ40を合成すべきか否かを判別するために、入力された順序にしたがって、二つのバーコード生成用データ40の印字位置データ41を参照し、二つのバーコード生成用データ40のそれぞれに含まれるキャラクタデータが一体として取り扱うべきキャラクタデータであるか否かを判別する(ステップS17)。
【0025】
この場合に、一体として取り扱うべきキャラクタデータか否かの判別については、バーコード生成用データ40に含まれる印字位置データ41に基づき、
(1) 判別対象である入力されたバーコード生成用データに対応するバーコードの印字位置が、当該入力されたバーコード生成用データの直前に入力されたバーコード生成用データに対応するバーコードの印字位置に基づく所定印字領域以内に位置する場合。
(2) 生成中のキャラクタデータ列に基づいてバーコード生成コマンドを生成してバーコードを印字したと仮定した場合に、当該バーコードの印字領域内に、判別対象である入力されたバーコード生成用データに対応するバーコードの印字位置が含まれる場合。
(3) 判別対象である入力されたバーコード生成用データに対応するバーコードの印字位置と、当該入力されたバーコード生成用データの直前に入力されたバーコード生成用データに対応するバーコードの印字位置との距離が所定の設定値より近い場合であって、入力されたバーコード生成用データに対応するキャラクタデータが所定の区切り文字ではない場合。
のいずれかに該当する場合を一体として取り扱うべきキャラクタデータとして判別している。すなわち、別々のバーコードとして印刷を行った場合には、互いの印刷領域が重なる場合や、非常に近接してバーコードが配置されてしまう場合には、一体として取り扱うべきキャラクタデータとして判別している。
【0026】
ステップS17の判別において、二つのバーコード生成用データ40のそれぞれに含まれるキャラクタデータが一体として取り扱うべきキャラクタデータではない場合には(ステップS17;No)、プリンタ用デバイスドライバ32は、処理をステップS15に移行し、入力されたバーコード生成用データの直前に入力されたバーコード生成用データ40を単独で、あるいは、入力されたバーコード生成用データの直前に入力されたバーコード生成用データ40に含まれるキャラクタデータ43までを一体として取り扱うキャラクタデータ43であるとしてバーコード生成コマンドCMBを生成し、他の印刷用コマンドとともに、プリンタ12のプリンタファームウェア33に出力し(ステップS15)、プリンタ12のプリンタファームウェア33は、入力されたバーコード生成コマンドCMBを含む印刷コマンドCMDに基づいてバーコードを所定指示位置に印刷しつつ、印刷を行うこととなる(ステップS16)。
【0027】
一方、ステップS17の判別において、二つのバーコード生成用データ40のそれぞれに含まれるキャラクタデータが一体として取り扱うべきキャラクタデータである場合には(ステップS17;Yes)、MPU13は、判別対象である入力されたバーコード生成用データ40に含まれるキャラクタデータ43を読み込む(ステップS18)。
次にMPU13は、読み込んだキャラクタデータ43が所定の区切り文字(データ)であるか否かを判別する(ステップS19)。ここで、区切り文字(データ)とは、連続的に入力された複数のバーコード生成用データ40のキャラクタデータ43を強制的に複数のキャラクタデータ列に分離するためにユーザにより挿入される文字(データ)であり、この区切り文字(データ)の前後で別のバーコードを構成するキャラクタデータであることを示すものである。したがって、区切り文字(データ)は、一のバーコードに対応する最後のキャラクタデータ43を含むバーコード生成用データ40の直後のバーコード生成用データ40、あるいは、一のバーコードに対応する最初のキャラクタデータ43を含むバーコード生成用データ40の直前のバーコード生成用データ40に含めることとなる。
【0028】
ステップS19の判別において、読み込んだキャラクタデータ43が所定の区切り文字(データ)ではない場合には(ステップS19;No)、MPU13は、読み込んだキャラクタデータ43をキャラクタデータ列として構成するために一時的にRAM15に格納し(ステップS20)、再び処理をステップS18に移行する。
一方、ステップS19の判別において、読み込んだキャラクタデータ43が所定の区切り文字(データ)である場合には(ステップS19;Yes)、既にRAM15に格納されたキャラクタデータ43を連結して、一つのキャラクタデータ列とし、当該キャラクタデータ列をキャラクタデータ43としてバーコード生成コマンドを生成し(ステップS21)、他の印刷用コマンドとともに、プリンタ12に出力し(ステップS15)、プリンタ12のプリンタファームウェア33は、入力された印刷コマンドCMDに基づいてバーコードを所定指示位置に印刷しつつ、1頁分の印刷を行うこととなる(ステップS16)。
【0029】
以上の説明のように、本実施形態によれば、バーコード合成を行う設定とされている場合には、複数のバーコード生成用データ40に含まれるキャラクタデータ43を読み出して一のキャラクタデータ列とし、当該一のキャラクタデータ列を新たなキャラクタデータ43としてバーコード生成コマンドCMBを生成し、プリンタ12にバーコード生成コマンドCMBを含む印刷コマンドCMDを出力することとなるので、アプリケーションプログラム31により不必要にキャラクタデータが区切られることに起因するユーザの所望するバーコードの印刷結果と実際の印刷結果との違いをプリンタ用デバイスドライバ32により吸収して、ユーザの所望するバーコード印刷結果を容易に得ることが可能となる。
【0030】
次に具体例について説明する。
図5は、アプリケーションプログラムから入力されるバーコード生成用データの一例の説明図である。
また、図6は、図5に対応するプリンタ用デバイスドライバの動作説明図である。
図5(A)は、一のアプリケーションプログラムから出力されるバーコード生成用データ40Aの一例であり、バーコード生成用データ40Aは、印字位置データ41A=(x1,y1)、フォント種別データ42A=「code39」、キャラクタデータ43A=“12345”となっている。
この結果、図6(A)に示すように、マージン部およびシンボル部を含むバーコードの印字領域の左上端部の座標=(x1,y1)となる位置に、キャラクタデータとして「12345」を含むバーコードBCD1が所定のフォーマット(本実施形態の場合、code39のフォーマット)で印字されることとなる。
【0031】
一方、図5(B)は、他のアプリケーションプログラムから出力されるバーコード生成用データの一例であり、このようなアプリケーションプログラムに対しては、複数のバーコード生成用データ40を合成する設定としておき、プリンタ用デバイスドライバ32には、バーコード生成用データとして五つのバーコード生成用データ40B1〜40B5が入力されることとなる。
具体的には、バーコード生成用データ40B1は、印字位置データ41B1=(x1,y1)、フォント種別データ42B1=「code39」、キャラクタデータ43B1=“1”となり、バーコード生成用データ40B2は、印字位置データ41B2=(x2,y2)、フォント種別データ42B2=「code39」、キャラクタデータ43B2=“2”となり、バーコード生成用データ40B3は、印字位置データ41B3=(x3,y3)、フォント種別データ42B3=「code39」、キャラクタデータ43B3=“3”となり、バーコード生成用データ40B4は、印字位置データ41B4=(x4,y4)、フォント種別データ42B4=「code39」、キャラクタデータ43B4=“4”となり、バーコード生成用データ40B5は、印字位置データ41B5=(x5,y5)、フォント種別データ42B5=「code39」、キャラクタデータ43B5=“5”となっている。
【0032】
この結果、図6(B)に示すように、マージン部およびシンボル部を含むバーコードの印字領域の左上端部の座標=(x1,y1)、(x2,y2)、(x3,y3)、(x4,y4)、(x4,y4)となる位置に、キャラクタデータとしてそれぞれ「1」、「2」、「3」、「4」、「5」を含むバーコードBCD21〜BCD25が印字されることとなり、このままの状態では、ユーザの所望する印字状態、すなわち図6(A)とは異なってしまう。
さらに、バーコード生成用データ40B1〜40B5は、もともと同一のバーコードに対応するデータであるため、y1=y2=y3=y4=y5となっており、従来方法では、図6(C)に示すように、五つのバーコードBCD21〜バーコードBCD25が一部重なった状態で印字され、実際には全てのバーコードが読めなくなってしまうこととなる。
【0033】
これに対し、本実施形態によれば、図5(B)に示すような状態で、五つのバーコード生成用データ40B1〜40B5が入力された場合でも、上述したステップS17〜ステップS22の処理により、五つのバーコード生成用データ40B1〜40B5からキャラクタデータ43B1〜43B5、すなわち、「1」〜「5」を読み出して、一のキャラクタデータ列=「12345」とし、当該一のキャラクタデータ列を新たなキャラクタデータ43としてバーコード生成コマンドCMBを生成し、プリンタ12にバーコード生成コマンドCMBを含む印刷コマンドCMDを出力することとなるので、実際には、図6(A)で示した状態、すなわち、ユーザの所望するキャラクタデータとして「12345」を含む一のバーコードBCD1を印刷することが可能となっている。
【0034】
図7は、アプリケーションプログラムから入力されるバーコード生成用データの他の一例の説明図である。
また、図8は、図7に対応するプリンタ用デバイスドライバの動作説明図である。
図7(A)は、一のアプリケーションプログラムから出力される二つのバーコード生成用データ、具体的には、バーコード生成用データ40C1、40C2の一例であり、バーコード生成用データ40C1は、印字位置データ41C1=(x1,y1)、フォント種別データ42C1=「code39」、キャラクタデータ43C1=“123”となっており、バーコード生成用データ40C2は、印字位置データ41C2=(x3,y3)、フォント種別データ42C2=「code39」、キャラクタデータ43C2=“45”となっている。
この結果、図8(A)に示すように、マージン部およびシンボル部を含むバーコードの印字領域の左上端部の座標=(x1,y1)となる位置に、キャラクタデータとして「123」を含むバーコードBCD11およびマージン部およびシンボル部を含むバーコードの印字領域の左上端部の座標=(x3,y3)となる位置に、キャラクタデータとして「45」を含むバーコードBCD12が印字されることとなる。
【0035】
一方、図7(B)は、他のアプリケーションプログラムから出力されるバーコード生成用データの一例であり、このようなアプリケーションプログラムに対しては、複数のバーコード生成用データ40を合成する設定としておき、プリンタ用デバイスドライバ32には、バーコード生成用データとして五つのバーコード生成用データ40D1〜40D5が入力されることとなる。
具体的には、バーコード生成用データ40D1は、印字位置データ41D1=(x1,y1)、フォント種別データ42D1=「code39」、キャラクタデータ43D1=“1”となり、バーコード生成用データ40D2は、印字位置データ41D2=(x2,y2)、フォント種別データ42D2=「code39」、キャラクタデータ43D2=“2”となり、バーコード生成用データ40D3は、印字位置データ41D3=(x3,y3)、フォント種別データ42D3=「code39」、キャラクタデータ43D3=“3”となり、バーコード生成用データ40D4は、印字位置データ41D4=(x4,y4)、フォント種別データ42D4=「code39」、キャラクタデータ43D4=“4”となり、バーコード生成用データ40D5は、印字位置データ41D5=(x5,y5)、フォント種別データ42D5=「code39」、キャラクタデータ43D5=“5”となっている。
【0036】
この結果、図8(B)に示すように、マージン部およびシンボル部を含むバーコードの印字領域の左上端部の座標=(x1,y1)、(x2,y2)、(x3,y3)、(x4,y4)、(x5,y5)となる位置に、キャラクタデータとしてそれぞれ「1」、「2」、「3」、「4」、「5」を含むバーコードBCD31〜バーコードBCD35が印字されることとなり、このままの状態では、ユーザの所望する印字状態、すなわち図7(A)とは異なってしまう。
さらに、バーコード生成用データ40D1〜40D5は、もともと同一の高さ位置(=同一のy軸方向位置)に配置されたバーコードに対応するデータであるため、y1=y2=y3=y4=y5となっており、従来方法では、図8(C)に示すように、三つのバーコードBCD31〜BCD33が一部重なった状態およびこの三つのバーコードBCD31〜BCD33とは離れた位置に二つのバーコードBCD34〜BCD35が一部重なった状態で印字され、実際には全てのバーコードBCD31〜バーコードBCD35が読めなくなってしまうこととなる。
【0037】
これに対し、本実施形態によれば、図7(B)に示すような状態で、五つのバーコード生成用データ40D1〜40D5が入力された場合でも、
(1) 判別対象である入力されたバーコード生成用データに対応するバーコードの印字位置が、当該入力されたバーコード生成用データの直前に入力されたバーコード生成用データに対応するバーコードの印字位置に基づく所定印字領域以内に位置する場合。
(2) 生成中のキャラクタデータ列に基づいてバーコード生成コマンドを生成してバーコードを印字したと仮定した場合に、当該バーコードの印字領域内に、判別対象である入力されたバーコード生成用データに対応するバーコードの印字位置が含まれる場合。
のうち、いずれかが満たされていれば、上述したステップS17〜ステップS22の処理により、まず、三つのバーコード生成用データ40D1〜40D3からキャラクタデータ43D1〜43D3、すなわち、「1」〜「3」を読み出して、一のキャラクタデータ列=「123」とし、当該一のキャラクタデータ列を新たなキャラクタデータ43としてバーコード生成コマンドCMBを生成し、さらに二つのバーコード生成用データ40D4、40D5からキャラクタデータ43D4、43D5、すなわち、「4」、「5」を読み出して、一のキャラクタデータ列=「45」とし、当該一のキャラクタデータ列を新たなキャラクタデータ43としてバーコード生成コマンドCMBを生成してプリンタ12にバーコード生成コマンドCMBを含む印刷コマンドCMDを出力することとなるので、実際には、図8(A)で示した状態、すなわち、ユーザの所望するキャラクタデータとして「123」あるいはキャラクタデータとして「45」を含む二つのバーコードBCD11、バーコードBCD12を印刷することが可能となっている。
【0038】
図9は、アプリケーションプログラムから入力されるバーコード生成用データのさらに他の一例の説明図である。本例は、キャラクタデータに区切り文字(データ)を含める場合のものである。
また、図10は、図9に対応するプリンタ用デバイスドライバの動作説明図である。
図9に示すように、アプリケーションプログラムから出力されるバーコード生成用データの一例であり、このようなアプリケーションプログラムに対しては、複数のバーコード生成用データを合成する設定としておき、プリンタ用デバイスドライバ32には、バーコード生成用データとして区切り文字に対応するバーコード生成用データを含む六つのバーコード生成用データ40E1〜40E6が入力されることとなる。
【0039】
具体的には、バーコード生成用データ40E1は、印字位置データ41E1=(x1,y1)、フォント種別データ42E1=「code39」、キャラクタデータ43E1=“1”となり、バーコード生成用データ40E2は、印字位置データ41E2=(x2,y2)、フォント種別データ42E2=「code39」、キャラクタデータ43E2=“2”となり、バーコード生成用データ40E3は、印字位置データ41E3=(x3,y3)、フォント種別データ42E3=「code39」、キャラクタデータ43E3=“3”となり、バーコード生成用データ40E4は、印字位置データ41E4はダミーデータである(xd,yd)、フォント種別データ42E4=「code39」、キャラクタデータ43E4は区切り文字である=“¥”となり、バーコード生成用データ40E5は、印字位置データ41E5=(x4,y4)、フォント種別データ42E5=「code39」、キャラクタデータ43E5=“4”となり、バーコード生成用データ40E6は、印字位置データ41E6=(x5,y5)、フォント種別データ42E6=「code39」、キャラクタデータ43E6=“5”となっている。
以上の説明では、区切り文字として“¥”を用いていたが、制御コードなどとして予め指定(予約)されている文字あるいは文字列以外であれば、任意の文字あるいは文字列を区切り文字として用いることが可能である。
【0040】
この結果、マージン部およびシンボル部を含むバーコードの印字領域の左上端部の座標=(x1,y1)、(x2,y2)、(x3,y3)、(x4,y4)、(x5,y5)となる位置に、キャラクタデータとしてそれぞれ「1」、「2」、「3」、「4」、「5」を含むバーコードBCD41〜BCD45が印字されることとなる。
しかしながら、バーコード生成用データ40E1〜40E3、40E5〜40E6は、もともと同一の高さ位置(=同一のy軸方向位置)に配置されたバーコードに対応するデータであるため、y1=y2=y3=y4=y5となっており、従来方法では、区切り文字に対応するバーコード生成用データを送信しないので、これを含めずに送信したとしても、図10(A)に示すように、五つのバーコードBCD41〜BCD45が一部重なった状態で印字され、実際には全てのバーコードBCD41〜BCD45が読めなくなってしまうこととなる。また、従来方法で、区切り文字に対応するバーコード生成用データも含めて送信した場合には、キャラクタデータとしてそれぞれ「1」、「2」、「3」、「¥」、「4」、「5」を含む六つのバーコードが一部重なった状態で印字され、区切り文字に対応するよけいなバーコードが印字されるとともに、全てのバーコードが読めなくなってしまうこととなる。
【0041】
これに対し、本実施形態によれば、図9に示すような状態で、五つのバーコード生成用データ40E1〜40E3、40E5、40E6が入力された場合には、対象である入力されたバーコード生成用データに対応するバーコードの印字位置と、当該入力されたバーコード生成用データの直前に入力されたバーコード生成用データに対応するバーコードの印字位置との距離が所定の設定値より近い場合であって、入力されたバーコード生成用データに対応するキャラクタデータが所定の区切り文字であるので、上述したステップS17〜ステップS22の処理により、まず、三つのバーコード生成用データ40E1〜40E3からキャラクタデータ43E1〜43E3、すなわち、「1」〜「3」を読み出して、一のキャラクタデータ列=「123」とし、当該一のキャラクタデータ列を新たなキャラクタデータ43としてバーコード生成コマンドCMBを生成し、さらに区切り文字を含むバーコード性生成用データを除く、二つのバーコード生成用データ40E5、40E6からキャラクタデータ43E5、43E6、すなわち、「4」、「5」を読み出して、一のキャラクタデータ列=「45」とし、当該一のキャラクタデータ列を新たなキャラクタデータ43としてバーコード生成コマンドCMBを生成してプリンタ12にバーコード生成コマンドCMBを含む印刷コマンドCMDを出力することとなるので、実際には、図10(B)で示した状態、すなわち、ユーザの所望するキャラクタデータとして「123」あるいはキャラクタデータとして「45」を含む二つのバーコードBCD11、バーコードBCD12を印刷することが可能となっている。
【0042】
以上の説明のように、本実施形態によれば、アプリケーションプログラム31の挙動に応じて、バーコードの合成を行うか否かを予めユーザが設定することにより、様々なアプリケーションプログラム31によりユーザの所望するフォーマットでバーコード印刷が可能となる。
【0043】
以上の説明においては、プリンタ用デバイスドライバが、コマンドを生成する場合であったが、プリンタ用デバイスドライバは、アプリケーションプログラムからデータをプリンタに引き渡すだけの機能とし、プリンタのファームウェアにより上述のプリンタ用デバイスドライバの機能、すなわち、入力された複数のバーコード生成用データに含まれるキャラクタデータを抽出し、抽出した複数のキャラクタデータを連結してキャラクタデータ列を生成するデータ列生成機能と、前記データ列生成機能により生成された前記キャラクタデータ列に基づいて一のバーコード生成コマンドを生成するコマンド生成機能と、を実現し、本来の印刷機能により、コマンド生成機能により生成されたバーコード生成コマンドに基づいてバーコード印刷を行うようにしてもよい。
本構成によれば、プリンタ用デバイスドライバに変更を加える必要がないので、様々なホストコンピュータに容易に対応することが可能となる。
【図面の簡単な説明】
【0044】
【図1】実施形態のバーコード印刷システムの概要構成ブロック図である。
【図2】バーコード印刷システムのソフトウェア構成の説明図である。
【図3】バーコード生成用データの概要説明図である。
【図4】プリンタ用デバイスドライバの処理フローチャートである。
【図5】アプリケーションプログラムから入力されるバーコード生成用データの一例の説明図である。
【図6】図5に対応するプリンタ用デバイスドライバの動作説明図である。
【図7】アプリケーションプログラムから入力されるバーコード生成用データの他の一例の説明図である。
【図8】図7に対応するプリンタ用デバイスドライバの動作説明図である。
【図9】アプリケーションプログラムから入力されるバーコード生成用データのさらに他の一例の説明図である。
【図10】図9に対応するプリンタ用デバイスドライバの動作説明図である。
【符号の説明】
【0045】
10…バーコード印刷システム、11…ホストコンピュータ(データ列生成部、コマンド生成部)、12…プリンタ、31…アプリケーションプログラム、32…プリンタ用デバイスドライバ(データ列生成部、コマンド生成部)、33…プリンタファームウェア(データ列生成部、コマンド生成部)、40…バーコード生成用データ、41…印字位置データ、42…フォント種別データ、43…キャラクタデータ、CMB…バーコード生成コマンド、CMD…印刷コマンド、DPR…印刷データ。

【特許請求の範囲】
【請求項1】
入力された複数のバーコード生成用データに含まれるキャラクタデータを抽出し、抽出した複数のキャラクタデータを連結してキャラクタデータ列を生成するデータ列生成部と、
前記データ列生成部により生成した前記キャラクタデータ列に基づいて外部の印刷装置に出力する一のバーコード生成コマンドを生成するコマンド生成部と、
を備えたことを特徴とする印刷制御装置。
【請求項2】
請求項1記載の印刷制御装置において、
前記データ列生成部は、抽出した前記キャラクタデータが所定のデータ区切りデータである場合に、当該データ区切りデータの直前のキャラクタデータまでを連結して前記キャラクタデータ列を生成する、
ことを特徴とする印刷制御装置。
【請求項3】
請求項1または請求項2記載の印刷制御装置において、
前記バーコード生成用データは、印字位置を指定するための印字位置指定データを含み、
前記データ列生成部は、前記印字位置指定データに基づいて、入力されたバーコード生成用データの前記印字位置が、当該入力されたバーコード生成用データの直前に入力されたバーコード生成用データの前記印字位置に対応する所定印字領域内に位置する場合に、両バーコード生成用データに含まれるキャラクタデータを同一の前記キャラクタデータ列を生成するキャラクタデータとすることを特徴とする印刷制御装置。
【請求項4】
請求項3記載の印刷制御装置において、
前記データ列生成部は、
生成中の前記キャラクタデータ列に基づいて前記バーコード生成コマンドを生成してバーコードを印字したと仮定した場合に、当該バーコードの印字領域内に、入力されたバーコード生成用データの前記印字位置指定データに対応する印字位置が含まれる場合に、当該入力されたバーコード生成用データに含まれるキャラクタデータを生成中の前記キャラクタデータ列に含めることを特徴とする印刷制御装置。
【請求項5】
入力された複数のバーコード生成用データに含まれるキャラクタデータを抽出し、抽出した複数のキャラクタデータを連結してキャラクタデータ列を生成するデータ列生成部と、
前記データ列生成部により生成した前記キャラクタデータ列に基づいて一のバーコード生成コマンドを生成するコマンド生成部と、
前記コマンド生成部により生成されたバーコード生成コマンドに基づいてバーコード印刷を行う印刷部と、
を備えたことを特徴とする印刷装置。
【請求項6】
入力された複数のバーコード生成用データに含まれるキャラクタデータを抽出し、抽出した複数のキャラクタデータを連結してキャラクタデータ列を生成するデータ列生成過程と、
前記データ列生成過程において生成した前記キャラクタデータ列に基づいて外部の印刷装置に出力する一のバーコード生成コマンドを生成するコマンド生成過程と、
を備えたことを特徴とする印刷制御装置の制御方法。
【請求項7】
印刷制御装置をコンピュータにより制御するための制御プログラムであって、
入力された複数のバーコード生成用データに含まれるキャラクタデータを抽出し、抽出した複数のキャラクタデータを連結してキャラクタデータ列を生成するデータ列生成機能と、
前記データ列生成過程において生成した前記キャラクタデータ列に基づいて外部の印刷装置に出力する一のバーコード生成コマンドを生成するコマンド生成機能と、
を前記コンピュータに実現させることを特徴とする制御プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2010−15387(P2010−15387A)
【公開日】平成22年1月21日(2010.1.21)
【国際特許分類】
【出願番号】特願2008−174748(P2008−174748)
【出願日】平成20年7月3日(2008.7.3)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】