(57)【特許請求の範囲】
【請求項１】
ホスト装置で稼動するアプリケーションプログラムと、前記ホスト装置に接続されたプリンタとの間に位置し、前記アプリケーションプログラムからの要求に基づいて前記プリンタを制御するプリンタドライバにおいて、
２次元のバーコードまたはマトリクスからなるマークであるシンボルとして表示されるＡＳＣＩＩコードの表示データ及びコマンドを前記アプリケーションプログラムから受信する受信ステップと、
前記表示データから、所定の桁数と所定の段数により前記シンボルを構成するもので、データ圧縮とエラー訂正コードを含む所定のフォーマットを作成し、当該フォーマットを前記シンボルを表すビットパターン情報に変換するシンボルイメージ作成ステップと、
前記シンボルを表すビットパターン情報と前記プリンタドライバが有する前記プリンタの解像度から前記シンボルの縦方向及び横方向の大きさのサイズ情報を算出する演算ステップと、
前記演算ステップにより算出した前記サイズ情報を、前記プリンタまたは前記プリンタドライバに備えられたウインドーサイズ記憶手段に記憶された前記シンボルを印刷するための印刷範囲指定領域と比較する比較ステップと、
前記コマンドをデータ解析手段で解析し、サイズ情報要求コマンドであった場合は、  算出した前記サイズ情報を前記シンボルの前記サイズ情報として前記アプリケーションプログラムに送信するとともに、
前記コマンドをデータ解析手段で解析し、シンボル印刷コマンドであった場合で、前記比較ステップにより前記シンボルが前記印刷範囲指定領域を越えると判断された場合は、その旨を前記アプリケーションプログラムに通知するサイズ情報送信ステップと、
前記比較ステップにより前記シンボルが前記印刷範囲指定領域に収まると判断された場合は、前記ビットパターン情報を前記プリンタに送信して印刷させる印刷データ送信印刷ステップとを有することを特徴とするプリンタドライバ。
【請求項２】
前記プリンタドライバは、前記アプリケーションプログラムに対してインターフェースを提供する第１のオブジェクトと、前記第１のオブジェクトに対して前記プリンタのインターフェースを提供する第２のオブジェクトとからなるＯＰＯＳオブジェクトであることを特徴とする請求項１記載のプリンタドライバ。
【請求項３】
前記第１のオブジェクトは、前記受信ステップと、前記サイズ情報送信ステップとを有して構成され、
前記第２のオブジェクトは、前記シンボルイメージ作成ステップと、前記演算ステップと、前記比較ステップと、前記印刷データ送信印刷ステップとを有して構成されることを特徴とする請求項２記載のプリンタドライバ。
【請求項４】
請求項１から３のいずれか１項に記載のプリンタドライバの各ステップを有するプログラムを記録したコンピュータにより読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
本発明は、情報を化体したシンボルを印刷することのできるプリンタドライバに関する。このようなシンボルとしては、例えば１次元のバーコード、または２次元コード等がある。２次元コードには、バーコードを縦に積み上げた形のスタック型２次元コードと、バーコードとは全く別の発想によるものでマトリクスの交点が黒か白によってコード化したマトリクス型２次元コードとがある。本発明は特に２次元のコードを印刷するプリンタドライバに関するものである。
【０００２】
尚、本明細書では、上述のような最終的に印刷される１次元バーコード又は２次元コードをシンボルと称する。また、これらのシンボルにより表示される情報（内容）を表示データと称する。
【０００３】
【従来の技術】
現在最も普及しているシンボルは、商品に付されており商品番号その他の情報を化体する１次元バーコードであるが、最近、表示できる情報量が飛躍的に向上する２次元コードが注目され、使用され始めている。１次元バーコードは、バーコードが縦または横に１列に表示されているものであるが、２次元コードには、前述の通り、このような１次元バーコードを複数段に積み重ねたスタック型２次元コードと呼ばれているものと、マトリクスの交点が黒か白かによりコード化したマトリクス型２次元コードとがある。
【０００４】
スタック型２次元コードの例として、コード４９、コード１６Ｋ、ＰＤＦ４１７、スーパーコード、及びウルトラコード等がある。マトリクス型２次元コードとして、ベリコード、データマトリクス（ＥＣＣ０００−１４０、ＥＣＣ２００など）、ＣＰコード、マキシコード、コード１、ＱＲコード、ＱＲコードモデル２、アズテックコード等がある。２次元バーコードの特徴は、(1)１次元バーコードに比較してはるかに多くの情報を表示でき、(2)読み取り方向の制限をなくし、(3)バイナリ情報表示も可能であり、(4)読み取り精度を上げるとともにセキュリティを向上した（データ誤り検出と訂正）ところにある。
【０００５】
バーコードは、バーとスペース（バーとバーの間隔）の組み合せにより、所定の情報（表示データ）を表示したものであり、バーコードスキャナにより読み取ることにより、情報に復元される。したがって、バーコードを印刷する際には、表示したい情報をバーコードに変換してそのバーコードパターンを印刷しなければならない。マトリクスによるシンボルも同様で、マトリクスの白黒の組み合わせにより、所定の情報を表示するため、表示したい情報（表示データ）をマトリクスのコードパターンに変換して、印刷しなければならない。
【０００６】
シンボルに情報を化体させて印刷するためには、表示したいデータをシンボル固有の規約（プロトコル）に従って、所定のコードに変換した後、プリンタで印刷する。これらシンボルへの変換には、単なるコード変換だけでなく、表示データの前後にスタートコード、ストップコード等を加えたり、エラー訂正コードを付加したり、データの圧縮を行ったりする等、そのシンボルに固有のプロトコルに従った一連の処理が必要となる。特に２次元コードの場合には、表示できる情報量が多いだけでなく、圧縮、エラー訂正コード作成のために複雑な処理が必要になる。
【０００７】
【発明が解決しようとする課題】
従来、これらのシンボルを印刷する場合には、ホスト装置で稼動するアプリケーションにおいて表示データからシンボルのビットパターンへの変換処理を行い、変換後のビットパターンを印刷データとしてプリンタに送信して、シンボル印刷を行っていた。この場合、プリンタ側は、通常の印刷と同じ手順で、受信したビットパターンデータをそのまま印刷するだけで、シンボルの印刷が可能となる。
【０００８】
上述のとおり、表示データから実際に印刷されるシンボルへの変換処理は、単に表示データを変換するだけでなく、幾つかの処理を選択付加して変換する必要がある。例えば、２次元コードのＰＤＦ４１７では、データの圧縮及び、エラー訂正コードを付与することができる。データ圧縮には３種類の圧縮モードがあり、エラー訂正レベルも０〜８までの９種類を有している。
【０００９】
このように、複数の圧縮モード及び９段階のエラー訂正レベルを有していることから、印刷されるシンボルの大きさ（縦横の長さ）は、シンボル表示されるデータの内容及び量によって変化する。そのため、最終的なシンボルの大きさ（印刷した場合のシンボルの大きさ）は、実際にビットパターンに変換してみなければわからない。
【００１０】
シンボルに限らず印刷データは、通常、指定された印刷範囲枠内に印刷されなければならないが、前述のとおり２次元コードの場合には、印刷されるシンボルのサイズは実際のビットパターンにまで変換してみなければそのサイズがわからないため、シンボルの印刷実行前に印刷範囲枠内に印刷可能かどうかの確認をしたいという要望があった。さらに、実際に印刷した結果のサイズは、同じビットパターンデータであっても、プリンタの解像度によって異なる。
【００１１】
そこで、本発明は、シンボルの印刷前に、表示したいデータをシンボルとして印字範囲設定枠内に印刷できるかどうかを確認することのできるプリンタドライバ及びプリンタドライバの各ステップを有するプログラムを記録したコンピュータにより読み取り可能な記録媒体を提供することを目的とする。
【００１２】
【課題を解決するための手段】
本発明は、以下の手段により上記課題を解決する。
【００２８】
本発明のプリンタドライバは、ホスト装置で稼動するアプリケーションプログラムと、前記ホスト装置に接続されたプリンタとの間に位置し、前記アプリケーションプログラムからの要求に基づいて前記プリンタを制御するプリンタドライバにおいて、
２次元のバーコードまたはマトリクスからなるマークであるシンボルとして表示されるＡＳＣＩＩコードの表示データ及びコマンドを前記アプリケーションプログラムから受信する受信ステップと、
前記表示データから、所定の桁数と所定の段数により前記シンボルを構成するもので、データ圧縮とエラー訂正コードを含む所定のフォーマットを作成し、当該フォーマットを前記シンボルを表すビットパターン情報に変換するシンボルイメージ作成ステップと、
前記シンボルを表すビットパターン情報と前記プリンタドライバが有する前記プリンタの解像度から前記シンボルの縦方向及び横方向の大きさのサイズ情報を算出する演算ステップと、
前記演算ステップにより算出した前記サイズ情報を、前記プリンタまたは前記プリンタドライバに備えられたウインドーサイズ記憶手段に記憶された前記シンボルを印刷するための印刷範囲指定領域と比較する比較ステップと、
前記コマンドをデータ解析手段で解析し、サイズ情報要求コマンドであった場合は、  算出した前記サイズ情報を前記シンボルの前記サイズ情報として前記アプリケーションプログラムに送信するとともに、
前記コマンドをデータ解析手段で解析し、シンボル印刷コマンドであった場合で、前記比較ステップにより前記シンボルが前記印刷範囲指定領域を越えると判断された場合は、その旨を前記アプリケーションプログラムに通知するサイズ情報送信ステップと、
前記比較ステップにより前記シンボルが前記印刷範囲指定領域に収まると判断された場合は、前記ビットパターン情報を前記プリンタに送信して印刷させる印刷データ送信印刷ステップとを有することを特徴とする。
【００２９】
この場合において、プリンタドライバは、アプリケーションプログラムに対してインターフェースを提供する第１のオブジェクト（ＣＯ）と、第１のオブジェクトに対してプリンタのインターフェースを提供する第２のオブジェクト（ＳＯ）とからなるＯＰＯＳオブジェクトであることを特徴とする。
【００３０】
そして、前記第１のオブジェクトは、前記受信ステップと、前記サイズ情報送信ステップとを有して構成され、前記第２のオブジェクトは、前記シンボルイメージ作成ステップと、前記演算ステップと、前記比較ステップと、前記印刷データ送信印刷ステップとを有して構成することができる。
【００３１】
また、プリンタドライバの各手段を有するプログラムをコンピュータ読み取り可能な記録媒体に記録して提供することができる。
【００３２】
【発明の実施の形態】
以下に本発明の一実施形態を説明する。なお、以下に説明する実施形態は説明のためのものであり、本発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であり、これらの実施形態も本発明の範囲に含まれる。
【００３３】
本発明は、あらゆるシンボルの印刷に適用可能であるが、ここでは、説明を具体的にするため、２次元コードとして普及し始めているＰＤＦ４１７を用いて説明する。
【００３４】
ＰＤＦ４１７はスタック型２次元コードである。図１１（ａ）に、ＰＤＦ４１７シンボルの外観とその構成を示す。この図に示すＰＤＦ４１７シンボルは、３段のバーコードから構成されている。ＰＤＦ４１７は３段から９０段まで自由に選択でき、１シンボル当たり、最大１８５０個のテキストキャラクタ、２７１０桁の数字又は１１０８バイトのバイナリデータを表示できる。
【００３５】
実施例の動作の説明の理解を容易にするため、ＰＤＦ４１７の構成部分の名称を説明する。まずシンボルには左右上下に空白部、いわゆるクワイエットゾーンが設けられている。シンボルは、スタート／ストップパターン、インジケータ、データ等の各種シンボルキャラクタ（コードワードと称する）から構成されている。図１１（ａ）に示すように、左からスタートパターン、左段インジケータ、データ領域、右段インジケータ、ストップパターンと配列されている。このＰＤＦ４１７のシンボルのデータ領域で表されているコードワード値を図１１（ｂ）に示してある。すなわち１段目が「００５  ８１０  ０３２」、２段目が「０９４  １７９  ８８０」、３段目が５６３  ７８１  ９０４」である。
【００３６】
このようにＰＤＦ４１７は、シンボル表示したいデータ（表示データ）を圧縮したり、エラー訂正用コードワードを付加したり、フォーマット用のコードワード（スタート／ストップパターン等）を付加する等の処理をすることにより、ＰＤＦ４１７の規則（プロトコル）に従ったコードワードに変換されて、全体として１つのシンボルとなる。
【００３７】
図１２にコードワードの構成例を示す。コードワードは４個の黒バーと４個のスペースの配列により構成される。使用される黒バー及びスペースはそれぞれ１個から６個のモジュールを含み、４個の黒バーと４個のスペースは原則として、合計で１７個のモジュールで構成される。モジュールとは、コードワードを構成する最小単位であり、その幅は自由に決定することができる。従って、そのモジュールの幅を変化させることにより、シンボル全体の大きさを調整することも可能である。
【００３８】
ＰＤＦ４１７では、横方向のコードワード数は１〜３０個まで可変であり、その積み重ね段数は上述の通り３〜９０段まで可変である。従って、印刷範囲の形状に合わせて同じ内容のシンボルを横長に印刷したり、縦長に印刷する等の変形が可能となる。
【００３９】
ＰＤＦ４１７では、データの圧縮及び、エラー訂正コードを付与することができる。データ圧縮には、テキスト圧縮モード、バイト圧縮モード、数字圧縮モードの３種類があり、エラー訂正レベルも安全性に応じて０〜８までの９種類を有している。
【００４０】
従って、表示データを実際に印刷するシンボルにまで変換するには複雑な処理が必要となる。
【００４１】
図１に、本発明のプリンタの第１の実施例にかかる機能ブロック構成図を示す。プリンタ１は、ホスト装置９０とインタフェース２を介して接続されている。ホスト装置９０から送信されたデータはインタフェース２を介して受信部３で受信され、受信バッファ４に記憶される。受信バッファ４に記憶された受信データは、データ解析手段５により受信した順番に解析される。
【００４２】
受信したデータが、シンボルとして印刷する表示データであった場合には、表示データ保存手段６に格納される。表示データ保存手段６に格納されたデータは、次にシンボルイメージ作成手段９によりシンボルイメージのビットパターンに変換される。シンボルイメージ作成手段９はコード変換処理手段７及びパターンジェネレータ８により構成されている。
【００４３】
表示データはまずコード変換処理手段７により、表示しようとするシンボルのプロトコルに従い、コード変換される。このコードパターンへの変換は、単に表示データをコードワードに１対１で変換するだけでなく、データの圧縮、エラー訂正コードワードの付加を行い、さらに、スタート／ストップパターン、左右インジケータ等のコードワードを含む所定のフォーマットとして出力される。
【００４４】
所定のフォーマット構成のコードワードに変換されたシンボルデータは、パターンジェネレータ８により、実際に印刷されるシンボルイメージのビットパターンに変換される。ビットパターンに変換されたシンボルは、プリントバッファ１０に格納される。プリントバッファ１０に格納されたシンボルは、プリンタ機構１１により印刷される。
【００４５】
このようなシンボルの印刷はホスト装置からのコマンドにより制御することが可能である。上述の説明ではシンボルの表示データと印刷とがリンクされており、表示データが送信されるとそのままシンボルが印刷される構成として説明した。しかし、表示データを送信するコマンド、送信した表示データのシンボルサイズをホスト装置に通知することを要求をするコマンド、又は既に送信した表示データを印刷させるコマンド等の各種のコマンドを設けることができる。
【００４６】
今、ホスト装置からシンボルのサイズを報告するよう要求してきたとする。ホスト装置９０から送信されたコマンドは、データ解析手段５により解析される。解析の結果、サイズの報告要求であることが判明すると、データ解析手段５は、表示データ保存手段に記憶しているデータをシンボルイメージ作成手段９に出力するよう制御する。同時に、サイズ情報送信手段１２をアクティブにする。これにより、サイズ情報送信手段１２は、シンボルイメージ作成手段９により作成されたシンボルのイメージ情報からそのサイズ情報を取得し、送信部１３及びインタフェース２を介して、ホスト９０にサイズデータを送信する。
【００４７】
図２は、本発明の第２の実施例にかかるプリンタを説明する機能ブロック図である。第１の実施例との違いは、ウインドーサイズ記憶手段１５及び制御手段１４が設けられている点である。本実施例も第１の実施例と同様の処理を行うものであるが、より多くの機能を実行可能である。
【００４８】
制御手段１４は、プリンタ全体の制御を行うとともに、各種コマンドに応じた処理を各部の有機的連携により実行するよう制御する手段である。ウインドーサイズ記憶手段１５は、シンボルを印刷するための印刷範囲枠を記憶する手段である。ホスト装置９０において印刷範囲枠を設定し、それをプリンタ１に送信すると、ウインドーサイズ記憶手段１５にそのサイズが記憶される。このようなホスト装置からの設定がなされない場合には、プリセット値として、所定のサイズが自動設定されるように構成してもよい。
【００４９】
シンボルは、所定の印刷範囲枠内に印刷されなければならないが、前述したとおり、２次元コードの場合には、データの圧縮、エラー訂正コードの付加などが行われるため、印刷されるシンボルのサイズは実際のビットパターンまで変換してみなければそのサイズがわからない。そのため、シンボルの印刷の前に印刷範囲枠内に印刷可能かどうかの確認が必要となる場合も生じる。このような場合には、確認コマンドにより、その確認が可能となる。確認コマンドを受信すると、データ解析手段５により解析され、そのコマンドが確認コマンドであることがわかると、サイズ情報送信手段１２に通知される。
【００５０】
サイズ情報送信手段１２は、ウィンドーサイズ記憶手段１５から印刷範囲枠の情報を所得し、パターンジェネレータ８からのサイズ情報と比較して、シンボルを印刷範囲枠内に印刷可能か否かを確認し、その比較結果の情報をホスト装置９０に送信する。これにより、ホスト装置９０は、シンボルを印刷範囲枠内に印刷可能かどうかを知ることができる。もし、印刷範囲枠内に印刷できない場合には、シンボルの縦と横の長さを変えたり、モジュールの幅を変えて印刷することもできる。
【００５１】
図３にホスト装置から送信可能なシンボル印刷用の制御コマンドを例示する。この図に示すコマンドの機能及び、コマンドコード、パラメータの指定方法は例示であり、これら以外の機能及び各種コード、パラメータ等を使用することができる。また、１つのコマンドに複数の機能を持たせることもできる。これらのコマンドは、データ解析手段５で解析されて、そのコマンドに対応する処理は、制御手段１４の制御の下で各部がそれぞれ協働することにより実行される。以下、各コマンドの詳細について説明する。
【００５２】
(a)「ＸＸＸ１」は、ＰＤＦ４１７シンボルの横方向の桁数を指定する。ＰＤＦ４１７では、横方向の長さは最大３０であるので、後続するパラメータa1a2により、その桁数を指定する。この場合、データ領域７３の横の長さは、１コードワードの幅×指定された桁数となる。１コードワードの幅は現在のモジュール幅から計算される。
(b)「ＸＸＸ２」は、シンボルの段数を指定する。ＰＤＦ４１７では、３〜９０までの段数が指定可能であるので、パラメータb1b2によりシンボルの段数を指定する。この場合、データ領域７３の縦の長さは、段の高さ×段数となる。
【００５３】
また、データ桁数×段数が、データ領域７３の総コードワード数となる。
(c)「ＸＸＸ３」は、パラメータc1c2によりモジュール幅を指定する。モジュール幅は、例えば、プリンタの解像度（ドット）を単位として設定される。
(d)「ＸＸＸ４」は、各コードワードの高さをパラメータd1d2で指定する。例えば、モジュール幅を基準とし、モジュール幅の[d1d2]倍に設定する。
(e)「ＸＸＸ５」は、パラメータｅにより０〜８までのエラー訂正レベルを指定する。エラー訂正レベルは、エラー訂正コードワード数の違いによって９段階に分類されている（２の累乗）。例えば、エラー訂正レベル０ではエラー訂正コードワード数２（２の１乗）、エラー訂正レベル８ではエラー訂正コードワード数５１２（２の９乗）である。
(f)「ＸＸＸ６」は、パラメータｆにより、ＰＤＦ４１７のオプションを指定するものである。オプションとして、例えば、簡易ＰＤＦ４１７を指定する。簡易ＰＤＦ４１７とは、図１１（ａ）で説明したシンボル構成から、右段インジケータ７４とストップビットパターン７５を省いてコードワード数を減らしたものである。ただし、この場合、読取方向は一方向に限られ、読取方向の自由度が犠牲になる。
(g)「ＸＸＸ７」は、パラメータｇ1〜ｇｎで指定される表示データを、表示データ保存手段６に保存する。
(h)「ＸＸＸ８」は、表示データ保存手段６に保存した表示データをシンボルとして印刷する（すなわち、保存されている表示データをエンコードしてから印刷を実行する）。なお、シンボルサイズが印刷範囲枠を越える場合には印刷は行わない。
(i)「ＸＸＸ９」は、表示データ保存手段に記憶されている表示データをシンボルとして表示した場合のサイズ情報をホスト装置９０に送信する（すなわち、保存されている表示データをエンコードして得られたサイズ情報を送信する）。サイズ情報には、シンボルの横サイズ、縦サイズ、さらに印刷範囲枠内に収まるか否かの情報が含まれる。横／縦サイズは、例えば、ドット単位（プリンタ機構１１の最小ピッチ）、メートル単位、あるいは他の測量単位を用いて表現することがきる。
【００５４】
なお、シンボルの桁数と段数は、シンボルサイズが印刷範囲枠内に収まるようにプリンタ１側で自動処理するよう設定することも可能である。例えば、上記コマンド「ＸＸＸＸ１」と「ＸＸＸＸ２」のそれぞれのパラメータa1a2とb1b2が「０」のときは自動処理を行うこととする。
【００５５】
図４と図５を用いて、図１１に示すようなＰＤＦ４１７のシンボル７０を印刷する場合の処理の流れを説明する。図４は、シンボルを印刷する場合に、表示データからシンボルイメージまでの変換の流れを示す図、図５は印刷処理の流れを示すフローチャートである。
【００５６】
まず、プリンタ１は、データ解析手段５により、受信バッファ４に格納されているデータをFIFO（First-In First-Out）順に読み出して解析する（ステップＳ５０１）。
【００５７】
受信データが、シンボル７０の基本構成（シンボルの桁数、段数、モジュール幅、段の高さ、エラー訂正レベル、オプション）を設定する基本構成設定コマンド（「ＸＸＸ１〜６」）である場合（ステップＳ５０２；基本構成設定コマンド）、当該コマンドに応じて基本構成を設定する（ステップＳ５０３）。これらの基本構成の設定内容は、プリンタ１内の図示しない所定の記憶部、例えば制御手段１４内又はコード変換処理手段７内等に記憶される。これらの設定は、１度設定したら、変更されない限り、次回以降のシンボル印刷でも同様の設定が維持されるように構成することができる。また、これらの基本構成の設定がホスト装置９０から指示されない場合には、所定のプリセット値が使用されるように構成することもできる。この例では、印刷されるシンボルの桁数は３桁、段数は３段、モジュール幅は所定の規定値に設定されるものとする。
【００５８】
シンボルの基本構成についての設定が終わると、次に、シンボル７０の表示データがホスト装置９０から送信される。この例では、ホスト装置９０からプリンタ１に、コマンド「ＸＸＸ７」と共に表示データ「ＡＢＣＤＥＦ（ＡＳＣＩＩコード）」が送信されるものとする。この表示データを受信したプリンタ１は、データ解析手段５により「ＸＸＸ７」であることを認識すると（ステップＳ５０２；表示データ送信コマンド）、当該コマンドに続くデータを表示データとして、表示データ保存手段６に記憶する（ステップＳ５０４）。表示データは、ホスト装置９０からＡＳＣＩＩコードで送信するように構成しても、プリンタでＡＳＣＩＩコードに変換するよう構成してもよい。
【００５９】
図４は、表示データ保存手段６に記憶されたＡＳＣＩＩコードの表示データがコードワード値８０に変換され、その後、コードワード値からビットパターンイメージ（シンボルイメージ）７０に変換されるまでのデータの変換の流れを示している。
【００６０】
次に、ホスト装置９０から、コマンド「ＸＸＸ９」によりシンボルのサイズ情報の送信が要求されると（ステップＳ５０２；サイズ情報要求コマンド）、プリンタ１は、表示データが表示データ保存手段に格納されているかを調べ、保存されている場合には（ステップＳ５０５；ＹＥＳ）、コード変換処理手段７により、表示データの圧縮とエラー訂正コードの生成により表示データをコードワードに変換し、さらに、スタート／ストップパターン、インジケータを付加して完全なコードワード値８０が作成される。そして、パターンジェネレータ８により、コードワード値８０を、印刷されるＰＤＦ４１７シンボル７０のビットパターンイメージに変換する（ステップＳ５０６）。
【００６１】
図４ではコードワード値８０の内容として、ＡＳＣＩＩコード「ＡＢＣＤＥＦ」のみをテキスト圧縮モードで変換したコードワード値「００１、０６３、１２５」のみを示し、スタートパターン、ストップパターン、インジケータなどのコードワードは記載していない。ＡＳＣＩＩコードからＰＤＦ４１７コードのコードワード値への変換は、ＰＤＦ４１７の規約に従って変換されるが、ここではその変換規約は重要ではないので、変換されたコードワード値を表示するにとどめる。
【００６２】
この例では、コードワード値が「００１、０６３、１２５」と３個に過ぎないにも拘わらず、最終のビットパターンイメージは横３桁で高さが３段となっている。その理由は、ＰＤＦ４１７コードワードでは最小段数が３段であることに加え、この例ではシンボルのサイズを横３桁に指定しているために、表示データのコードワード値に対応するコードワードだけでなく、縦及び横の訂正コードワード及びダミーのコードワードが挿入されているからである。
【００６３】
シンボル７０の横サイズｘと縦サイズｙは、サイズ情報送信手段１２により、ウインドーサイズ記憶手段１５の印刷範囲指定領域（ウインドー）と比較され、その比較結果と、横サイズｘ、縦サイズｙが、ホスト装置９０に送信される（ステップＳ５０７）。
【００６４】
次に、ホスト装置９０から、コマンド「ＸＸＸ８」によりシンボルの印刷が要求されると（ステップＳ５０２；シンボル印刷コマンド）、プリンタ１は、前記同様に、表示データが表示データ保存手段に格納されているかを調べ、保存されている場合には（ステップＳ５０８；ＹＥＳ）、表示データをビットパターンイメージに変換する（ステップＳ５０９）。そして、シンボル７０のサイズを印刷範囲指定領域と比較して、印刷範囲指定領域内に収まる場合には（ステップＳ５１０；ＹＥＳ）、シンボルの印刷を実行する（ステップＳ５１１）。
【００６５】
また、受信データが、その他のコマンドである場合には（ステップＳ５０２；その他のコマンド）、当該コマンドに応じた処理を行う（ステップＳ５１２）。
【００６６】
なお、ステップＳ５０５、Ｓ５０８において表示データが表示データ保存手段に格納されていない場合、及び、ステップＳ５１０においてシンボルサイズが印刷範囲指定領域を越える場合には、その旨のエラー通知をホスト装置に送信してもよい。
【００６７】
図６及び図７に印刷範囲とシンボルのサイズの関係を示す。図６は、用紙２０上の左上段部に印刷範囲枠２１が設定された場合を示している。仮に、印刷しようとするシンボルが横方向に長過ぎた場合には、図６のシンボル外形２２として示されるように、印刷範囲枠２１の右側の文字にシンボル外形２２の右端がかかってしまう。このような場合には、シンボルの読み取りが困難となるばかりでなく、右側の文字も読めなくなってしまう。
【００６８】
また、シンボル外形２３は、印刷範囲枠２１に対してシンボルが縦方向に長すぎる場合を示している。この場合には、印刷範囲枠２１の下側の文字にシンボル２３の下端がかかってしまう。この場合にも、シンボルの読み取りが困難となるという問題及び、下側の文字が読めなくなるという問題が生じることとなる。
【００６９】
このようにシンボルの縦、又は横の一方が、印刷範囲枠２１からはみ出てしまう場合であって、他方にスペースがある場合には、シンボルの形を変形させて印刷すれば良い。すなわち、シンボル外形２２の場合には横方向の桁数を減らして、その分の段数を増やして縦方向に長いシンボルに変形すればよい。他方シンボル外形２３のような場合には、段数を減らして、桁数を増やすとよい。
【００７０】
もし、縦又は横方向にシンボルを変形しても、印刷範囲枠内にシンボルを印刷できない場合には、シンボルのコードワードを構成する最小単位であるモジュールを小さくすることにより、シンボル全体を縮小することも可能である。
【００７１】
このように、シンボルの印刷前にシンボルを印刷範囲枠内に印刷可能かどうかがわかれば、シンボルの形体を変更することにより、印刷範囲枠内に印刷することができる。そのためには、印刷前に印刷されるシンボルの形状を知ることが必要である。コマンド「ＸＸＸ９」によりプリンタ１からサイズ情報を取得する。取得した情報は、ホスト装置内のアプリケーションプログラム（図示せず）により、シンボルサイズのチェックが行われ、必要に応じて印刷範囲枠内に入るように変形させるか又は表示データを変更するための調整が行われる。シンボルサイズの変更は、コマンド「ＸＸＸ１〜６」を使用して、プリンタ１のシンボルサイズの印刷設定の変更を行うことにより行われる。また、アプリケーションプログラムは、シンボルサイズを変更する変わりに、印刷範囲枠を変形して設定しなおすことも可能である。
【００７２】
図７は、ラベル２６にバーコードのようなシンボルを印刷する場合について説明する図である。通常ラベル用紙２５上には、複数のラベル２６が貼付されている。ラベル２６の裏面には糊が塗布されており、シンボルが印刷された後でラベル用紙２５からラベル２６がはがされて、商品などに貼付される。この場合には、シンボルを所定のラベル２６に正確に印刷することが特に重要である。
【００７３】
図８は、図１または図２に示す各制御部及び記憶手段を、中央制御装置（ＣＰＵ）６０及びＲＡＭ６１、ＲＯＭ６２により実現する場合の概略構成を示す機能ブロック図である。
【００７４】
印字ヘッド３１、モータ類３２及びプランジャ類３３並びにこれらを駆動する印字機構駆動回路３４は、印字用紙の搬送、印字、切断等の物理的動作を伴なうプリンタ機構１１を構成している。ＣＰＵ３０には、カッタエラー、紙ジャム等のエラー状態、カバーオープン、インク残量、用紙位置等を検出を行うための各種検出装置３５が接続されている。検出結果はＣＰＵに入力される。
【００７５】
ＲＯＭ３６，ＲＡＭ３７には既に説明した表示データの格納、シンボルへの変換処理、シンボルサイズ情報の送信等の各種各機能を実現するためのプログラムを含むソフトウェア（ファームウェアを含む）及びデータを記憶しており、ＣＰＵ３０がこれを読み出し実行することにより、前述の各種機能を実現する。これらの処理を実行するソフトウェアをコンピュータで読み取り可能な記録媒体に記録し、コンピュータで読み取らせてそのソフトウェアによりプリンタを制御させることにより、本発明のプリンタ及び方法を実施することも可能である。
【００７６】
このようなＣＰＵとメモリー及び印刷機構を用いて本発明を実施する場合には、各種シンボルの変換処理も容易であり、各種シンボルの中から希望のシンボルを選択して印刷することができるように構成することも可能である。
【００７７】
また、本発明は、プリンタを制御するドライバに適用することができる。以下では、プリンタドライバの一例としてＯＰＯＳ（ＯＬＥ  ｆｏｒ  ＲｅｔａｉｌＰＯＳ）を用いて説明する。ＯＰＯＳは、世界標準の規格（仕様）であり、ＰＯＳシステムを構成するデバイス（例えば、プリンタやディスプレイ）に関わるインタフェースの標準化を定義している。ＯＰＯＳ準拠のオブジェクト（ドライバ）は、ＰＯＳシステムのホスト装置のＷｉｎｄｏｗｓ（商標である。）ＯＳ上でサポートされるＯＬＥ（Ｏｂｊｅｃｔ  Ｌｉｎｋｉｎｇ  ａｎｄ  Ｅｍｂｅｄｄｉｎｇ）Ｃｏｎｔｒｏｌを使用して、アプリケーションプログラムを容易に開発するためのＡＰＩ関数をアプリケーション開発者に提供している。以下、ＯＰＯＳ準拠のオブジェクトを単にＯＰＯＳという。
【００７８】
図９は、ＰＯＳシステムにおけるＯＰＯＳの役割（位置付け）を示す図である。図９に示すように、ＯＰＯＳは、ＰＯＳシステムを構成するデバイスの制御を実行させるアプリケーションプログラムとＯＳとの間に位置し、ホスト装置（ＰＣ）とデバイスとのインタフェースを所定の仕様に基づいて標準化させるためのソフトウェアである。
【００７９】
ＯＰＯＳは、ＣＯ（Ｃｏｎｔｒｏｌ  Ｏｂｊｅｃｔ）とＳＯ（ＳｅｒｖｉｃｅＯｂｊｅｃｔ）の２階層から構成されている。ＣＯは、プリンタ、ディスプレイ等のデバイスクラス毎に提供されるオブジェクトであり、アプリケーションプログラムとのインタフェースを司っている。ＳＯは、プリンタの機種等のデバイス毎に提供されるオブジェクトであり、ＯＳを介して各デバイスの制御を実行する。したがって、ＳＯは、デバイスに固有の情報、例えばプリンタにおいては、解像度や搭載フォント、印字桁数等の情報を有している。あるいは、必要に応じて、固有情報をデバイスから読み出すことが可能である。
【００８０】
アプリケーションプログラムは、メソッド（Ｍｅｔｈｏｄ）及びプロパティ（Ｐｒｏｐｅｒｔｙ）によって制御対象となるデバイスに所望の制御を実行させ、イベント（Ｅｖｅｎｔ）及びプロパティによってデバイスに制御を実行させた結果を受け取る。
【００８１】
ＯＰＯＳは、アプリケーションプログラムからデバイスへの処理要求をデバイスがサポートしているコマンドに変換して送信し、デバイスの処理結果をステータスとして受信する。
【００８２】
図１０を用いて、ＰＤＦ４１７のシンボルを印刷する場合の処理の流れを説明する。アプリケーションプログラムからは、シンボル印刷コマンドと共に表示データが送信されるものとする。また、基本構成情報は、既に設定されているものとする。
【００８３】
アプリケーションプログラムからシンボル印刷コマンド及び表示データを受信すると（ステップＳ１００１）、ＯＰＯＳは、表示データをビットパターンデータに変換する（ステップＳ１００２）。この変換処理で必要な基本構成情報は、ＯＰＯＳのＳＯ側で格納するよう構成してもよいし、プリンタに格納し適宜読み出して使用するよう構成してもよい。
【００８４】
次に、ビットパターンイメージに変換されたシンボルのサイズと印刷範囲指定領域とを比較して、シンボルを印刷範囲指定領域に印刷可能か判断する（ステップＳ１００３）。この印刷範囲指定領域は、基本構成情報と同様に、ＯＰＯＳのＳＯ側で格納するよう構成してもよいし、プリンタに格納し適宜読み出して使用するよう構成してもよい。
【００８５】
印刷可能であれば（ステップＳ１００４；ＹＥＳ）、シンボルのビットパターンイメージをプリンタに送信して印刷を行わせる（ステップＳ１００５）。また、シンボルのサイズが印刷範囲指定領域を越える場合は（ステップＳ１００４；ＮＯ）、その旨をアプリケーションプログラムに通知して（ステップＳ１００６）、処理を終える。
【００８６】
また、アプリケーションプログラムからサイズ情報要求コマンドと共に表示データが送信された場合にも同様にして処理することが可能である。
【００８７】
このようにホスト装置側のドライバで、表示したい情報をビットパターンに変換する処理を行うことにより、アプリケーション開発の負荷を低減させることができる。また、ホスト装置の高い処理能力を有効に活用して、処理時間を低減させることができる。さらに、プリンタの負荷を低減させることができる。
【００８８】
【発明の効果】
以上説明したように、本発明によると、ホスト装置で稼動するアプリケ-ションプログラムからの要求に応じて、プリンタまたはプリンタドライバは、シンボルのサイズ情報を返送可能であるので、アプリケーションプログラム自身でシンボル変換処理を行わなくとも、シンボルサイズの確認が可能となった。
【図面の簡単な説明】
【図１】本発明のプリンタの第１の実施例にかかる機能ブロック構成図である。
【図２】本発明のプリンタの第２の実施例にかかる機能ブロック構成図である。
【図３】ホスト装置から送信可能なシンボル印刷用の制御コマンドと、その制御内容を例示する図である。
【図４】シンボルを印刷する場合に、表示データからシンボルイメージまでの変換の流れを示す図である。
【図５】本発明のプリンタにおけるシンボル印刷処理の流れを示すフローチャートである。
【図６】用紙２０上の左上段部に印刷範囲枠２１が設定された場合にシンボルを印刷する場合に、シンボルサイズが印刷範囲枠をはみ出す場合を説明する図である。
【図７】ラベル上にバーコードのようなシンボルを印刷する場合について説明する図である。
【図８】図１または図２に示す各制御部及び記憶手段を、中央制御装置（ＣＰＵ）及びＲＡＭ、ＲＯＭにより実現する場合の概略構成を示す機能ブロック図である。
【図９】ＰＯＳシステムにおけるＯＰＯＳの位置付けを示す図である。
【図１０】本発明のプリンタドライバにおけるシンボル印刷処理の流れを示すフローチャートである。
【図１１】（ａ）は、ＰＤＦ４１７シンボルとその構成を示す図であり（ｂ）は（ａ）のデータ領域の表示データを１０進数表示したものである。
【図１２】ＰＤＦ４１７のコードワードの構成を説明するための図である。
【符号の説明】
１  プリンタ
２  インタフェース
３  受信部
４  受信バッファ
５  データ解析手段
６  表示データ保存手段
７  コード変換処理手段
８  パターンジェネレータ
９  シンボルイメージ作成手段
１０  プリントバッファ
１１  プリンタ機構
１２  サイズ情報送信手段
１３  送信部
１４  主制御手段
１５  ウインドーサイズ記憶手段
２０  印刷用紙
２１  印刷範囲設定枠
２２  イメージ外形（横方向はみだし）
２３  イメージ外形（縦方向はみだし）
２５  ラベル用紙
２６  ラベル
２７  ラベル印刷イメージ（横方向はみだし）
３０  ＣＰＵ
３１  印刷ヘッド
３２  モータ
３３  プランジャ
３４  印字機構駆動回路
３５  各種検出装置
３６  ＲＯＭ
３７  ＲＡＭ
７０  ＰＤＦ４１７シンボルの表示例
７１  スタートパターン
７２  左側インジケータ
７３  データ領域
７４  右側インジケータ
７５  ストップパターン
７６  コードワード
７７  モジュール
７８  黒バー
７９  スペースバー
【図１】
0004792646.tif 000002
【図２】
0004792646.tif 000003
【図３】
0004792646.tif 000004
【図４】
0004792646.tif 000005
【図５】
0004792646.tif 000006
【図６】
0004792646.tif 000007
【図７】
0004792646.tif 000008
【図８】
0004792646.tif 000009
【図９】
0004792646.tif 000010
【図１０】
0004792646.tif 000011
【図１１】
0004792646.tif 000012
【図１２】
0004792646.tif 000013