説明

印刷制御プログラム

【課題】高品質なバーコードを印刷すること。
【解決手段】コンピュータ10を、画像データの描画領域中に、バーコードに関する情報が記載されたバーコード制御領域が存在するか否かを判定する判定手段41と、バーコード制御領域が存在する場合に、バーコード制御領域から、バーコードに関する情報を取得する取得手段42と、バーコードに関する情報に基づいて、プリンタにバーコードの印刷を行わせるためのコマンドを生成する生成手段44と、として機能させるための印刷制御プログラム。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、バーコード印刷のための印刷制御プログラムに関する。
【背景技術】
【0002】
コンピュータにプリンタが接続された印刷システムが知られている。コンピュータには、アプリケーション及びプリンタドライバ(プリンタ制御プログラム)がインストールされている。アプリケーションは、プリンタドライバの設定情報に基づき、メモリ上にデバイスコンテキスト(描画領域)を作成した後、当該領域に文字、図形、その他のイメージ等を描画する。プリンタドライバは、アプリケーションにより描画された画像データを、プリンタにて印刷可能な形式に変換(ラスタライズ)して、プリンタに送信する。
【0003】
ここで、バーコードの印刷を行う場合には、第1の方法として、印刷アプリケーション上でバーコードのイメージデータを作成する方法が知られている。また、第2の方法として、バーコードを印刷するための専用のフォント(バーコードフォント)を予め用意し、アプリケーションが当該バーコードフォントを画像データ中に埋め込む方法が知られている。第2の方法では、プリンタドライバまたはプリンタがバーコードフォントを解析し、当該解析結果に基づいてバーコードを生成する(例えば、特許文献1を参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】2002−211053号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
上記第1の方法では、アプリケーションにて描画されたバーコードのイメージデータが、プリンタドライバにおいて変換(ラスタライズ)されるため、印刷結果がアプリケーション上の描画と一致しない場合がある。また、上記第2の方法では、プリンタドライバにおける変換途中に文字用の画像補正が行われた場合に、同様に印刷結果が意図したものとならない場合がある。すなわち、従来の方法では、データの変換過程においてバーコードの品質劣化が生じ、高品質なバーコードを印刷することが難しかった。
【0006】
本発明は、上記課題に鑑みなされたものであり、高品質なバーコードを印刷することのできる印刷制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明は、コンピュータを、画像データの描画領域中に、バーコードに関する情報が記載されたバーコード制御領域が存在するか否かを判定する判定手段と、前記バーコード制御領域が存在する場合に、前記バーコード制御領域から、前記バーコードに関する情報を取得する取得手段と、前記バーコードに関する情報に基づいて、プリンタにバーコードの印刷を行わせるためのコマンドを生成する生成手段と、として機能させるための印刷制御プログラムである。
【0008】
上記構成において、前記バーコード制御領域は、前記画像データの最初に設けられている構成とすることができる。
【0009】
上記構成において、前記バーコードに関する情報は、バーコードの種類、バーコードの印刷位置、バーコードのサイズ、バーコードのバイト数、及びバーコードデータを含む構成とすることができる。
【0010】
上記構成において、前記バーコードに関する情報の最初には、前記バーコード制御領域の大きさが記載されている構成とすることができる。
【0011】
上記構成において、前記取得手段は、前記バーコード制御領域の大きさが所定の値より小さい場合に、前記バーコードに関する情報の取得を行わない構成とすることができる。
【0012】
上記構成において、前記バーコード制御領域の大きさは、バーコードの種類に基づいて変更可能である構成とすることができる。
【0013】
上記構成において、コンピュータを、前記画像データから、前記バーコード制御領域を除いた印刷領域中の画像データを、プリンタにて印刷可能なデータ形式に変換する変換手段と、前記印刷データ変換手段により変換された画像データを、前記コマンド生成手段により生成されたバーコード印刷コマンドと共にプリンタに送信する送信手段と、としてさらに機能させる構成とすることができる。
【発明の効果】
【0014】
本発明によれば、高品質なバーコードを印刷することのできる印刷制御プログラムを提供することができる。
【図面の簡単な説明】
【0015】
【図1】図1は、印刷システムのハードウェア構成を示す図である。
【図2】図2は、印刷システムの機能ブロック図である。
【図3】図3は、デバイスコンテキストの構成を示す図である。
【図4】図4は、デバイスコンテキストのパラメータ値を示す図である。
【図5】図5は、バーコード制御領域が保持するデータを示す図である。
【図6】図6は、アプリケーションにより描画された画像のイメージを示す図である。
【図7】図7は、アプリケーションの動作を示すフローチャートである。
【図8】図8は、プリンタドライバの動作を示すフローチャートである。
【図9】図9は、プリンタの動作を示すフローチャートである。
【図10】図10は、プリンタにより生成される画像のイメージを示す図である。
【発明を実施するための形態】
【0016】
以下、本発明の実施例について図面を参照し説明する。
【実施例1】
【0017】
図1は、印刷システムのハードウェア構成を示す図である。実施例1に係る印刷システムは、互いに接続されたコンピュータ10及びプリンタ20を含む。コンピュータ10は、互いにデータバスにより接続されたCPU(Central Processing Unit)12、メモリ14、及び入出力インターフェース16を含む。メモリ14には、例えばRAM(Random Access Memory)及びROM(Read Only Memory)を用いることができる。
【0018】
プリンタ20は、互いにデータバスにより接続されたCPU22、メモリ24、入出力インターフェース26、及び印刷部28を含む。メモリ24には、例えばRAM及びROMを用いることができる。印刷部28には、周知の印刷機構を用いることができ、印刷方式としては、例えばインクジェット方式、レーザ方式等を採用することができる。コンピュータ10及びプリンタ20は、それぞれの入出力インターフェース(16、26)を介して互いに接続されている。
【0019】
図2は、印刷システムの機能ブロック図である。コンピュータ10及びプリンタ20は互いに接続され、コンピュータ10には、印刷用のアプリケーション30と、印刷制御プログラムの一例であるプリンタドライバ40がインストールされている。
【0020】
アプリケーション30は、デバイスコンテキスト生成手段32、印刷データ描画手段34、バーコード制御領域描画手段36、及び印刷実行手段38を含む。これらの手段は、例えば図1のCPU12に所定のプログラムを実行させることにより実現することができ、当該所定のプログラムは、例えばメモリ14に記憶させることができる。デバイスコンテキスト生成手段32は、プリンタドライバ40の設定に基づいて、画像データの描画領域であるデバイスコンテキストを生成する。
【0021】
図3は、デバイスコンテキストの構成を示す図である。図示するように、デバイスコンテキスト60の大きさは、用紙サイズのW×L[pixel]と同じW×L[pixel]である。デバイスコンテキスト60は、印刷画像が描画される印刷領域62(W×L[pixel])と、バーコードに関する情報が描画されるバーコード制御領域64(W×LBC[pixel])とに分かれている。本実施例では、バーコード制御領域64がデバイスコンテキストの先頭部分に位置する構成となっているが、これ以外の部分にバーコード制御領域64を設けてもよい。
【0022】
図4は、デバイスコンテキストに関するパラメータの例を示す表である。本実施例では、用紙横サイズ(W)を640[pixel]、用紙縦サイズ(L)を2000+LBC[pixel]としている。また、バーコード制御領域64の長さ(LBC)をLBC=1〜k[pixel](kは2以上の整数)としている。すなわち、バーコード制御領域64の長さは、バーコードの種類等に基づいて1〜kの範囲で変更可能となっている。また、本実施例では、デバイスコンテキスト60(描画可能領域)の大きさは640×(2000+LBC)[pixel]、印刷領域62の大きさは640×2000[pixel]となっている。
【0023】
再び図2に戻り、印刷データ描画手段34は、生成されたデバイスコンテキスト60上に印刷対象となるデータ(例えば、文字、図形、写真等)を描画する。バーコード制御領域描画手段36は、バーコード制御領域64上にバーコードに関する情報を描画する。ここで、バーコードに関する情報には、バーコードの種類、バーコードの印刷位置、バーコードのサイズ、バーコードのバイト数、及びバーコードデータが含まれる。また、上記バーコードに関する情報の最初には、後述するように、バーコード制御領域64の大きさが記載されている。
【0024】
図5は、バーコード制御領域64に描画されたバーコードに関する情報の例を示す表である。ここで、「1pixel目」とは、バーコード制御領域64における最初の1行目のpixelに記載されたビットデータを示すものとする(2pixel目以降も同様)。図示するように、本実施例では、1pixel目にバーコード制御領域64の大きさを示す値(LBC)が記載されている。以下同様に、2pixel目にはバーコードの種類が、3pixel目にはバーコードの印刷位置及びバーコードのサイズが、4pixel目にはバーコードのデータ数及びバーコードデータが、それぞれ記載されている。本実施例では、バーコードデータをBinary値、その他のデータをWORD値で与える構成としたが、データの形式はこれに限られるものではない。
【0025】
図6は、アプリケーション30により描画された画像データのイメージを示す図である。デバイスコンテキスト60は、縦横方向に等間隔のセルへと分割されている。バーコード制御領域64の長さが記載される1行目は、左から6番目のセルが黒く塗りつぶされており、その他のセルは白紙となっている。これは、1行目のデータの並びが、左から順に「0000 0100 0000 0000」となっていることを示す。この値を16進数のWORD値(リトルエンディアン)に変換すると、0x0004となり、情報をプリンタドライバ40へ通知することが可能となる。2行目以降においても、1行目と同様にビットを描画することにより、プリンタドライバ40に通知する様々なパラメータを任意に設定することができる。
【0026】
再び図2に戻り、印刷実行手段38は、印刷実行時にプリンタドライバ40を呼び出す。また、印刷実行手段38は、印刷データ描画手段34及びバーコード制御領域描画手段36により生成された画像データ(例えば、ビットイメージデータ)を、プリンタドライバ40へと送信する。
【0027】
図7は、アプリケーション30の動作を示すフローチャートである。最初に、デバイスコンテキスト生成手段32がデバイスコンテキスト60の生成を行う(ステップS10)。次に、印刷データ描画手段34が、印刷領域62に印刷データの描画を行い(ステップS12)、バーコード制御領域描画手段36が、バーコード制御領域64にバーコードに関する情報の描画を行う(ステップS14)。これらのステップ(S12及びS14)は順番が逆であってもよい。最後に、印刷実行手段38が、プリンタドライバ40を呼び出し、デバイスコンテキスト60上に描画された画像データをプリンタドライバ40へと送信する。
【0028】
再び図2に戻り、プリンタドライバ40は、判定手段41、取得手段42、生成手段44、送信手段46、及び変換手段48を含む。これらの手段は、例えば図1のCPU12に所定のプログラムを実行させることにより実現することができ、当該所定のプログラムは、例えばメモリ14に記憶させることができる。判定手段41は、アプリケーション30から受信した画像データ(デバイスコンテキスト60)の中に、バーコード制御領域64が存在するか否かを判定する。取得手段42は、バーコード制御領域64が存在する場合に、当該領域からバーコードに関する情報を取得する。生成手段44は、取得されたバーコードに関する情報に基づいて、プリンタ20にバーコードの印刷を行わせるためのバーコード印刷コマンドを生成する。
【0029】
変換手段48は、画像データのうち印刷領域62中の画像データを、プリンタ20にて印刷可能なデータ形式に変換する。送信手段46は、生成手段44により生成されたバーコード印刷コマンドと、変換手段48により変換された印刷領域62の画像データとを、プリンタ20へと送信する。
【0030】
図8は、プリンタドライバ40の動作を示すフローチャートである。最初に、プリンタドライバ40がアプリケーション30から画像データを受信する(ステップS20)。受信された画像データは、判定手段41及び変換手段48へと入力される。続いて、判定手段41は、バーコード制御領域長LBCを取得し(ステップS22)、その値に基づいてバーコード制御領域が存在するか否かの判定を行う(ステップS24)。上記判定は、バーコード制御領域長LBCを所定の閾値(本実施例では4とする)と比較することにより行われる。判定手段41は、LBCが4以上であれば、バーコード制御領域64が存在すると判定し、LBCが4未満であれば、バーコード制御領域64が存在しないと判定する。
【0031】
ステップS24においてバーコード制御領域長LBCが4以上である場合、取得手段42は、バーコード制御領域64の中から、バーコードに関する残りの情報(位置、サイズ、データ等)を取得する(ステップS26)。ここで取得された情報は、コンピュータ10内の記憶装置(例えば、RAM:Random Access Memory)に一時的に記憶される。ステップS24においてバーコード制御領域長LBCが4未満の場合、取得手段42はバーコードに関する情報の取得を行わない。
【0032】
続いて、変換手段48は、デバイスコンテキスト60のうちバーコード制御領域64を削除する(ステップS28)。続いて、変換手段48は、画像データのうち残りの印刷領域62にあるデータを、プリンタ30にて印刷可能なデータ形式に変換(ラスタライズ)する(ステップS30)。
【0033】
続いて、生成手段44は、ステップS26で取得されたバーコード情報が正常であるか否かを判定する(ステップS32)。ここでは、バーコードの種類、バーコードの位置、バーコードのサイズ、及びバーコードデータのそれぞれについて、正常であるか否かの判定が行われる。これらのパラメータが全て正常である場合、生成手段44は、バーコード印刷コマンドを生成し、プリンタ20への送信データに追加する(ステップS34)。ここで、バーコード印刷コマンドには、バーコードの位置、サイズ、データ内容等をそれぞれ指定するコマンドが含まれる。ステップS32においてパラメータが正常でないと判断された場合、バーコード印刷コマンドを追加する処理(S34)は行われない。
【0034】
続いて、生成手段44は、印刷開始コマンド及びプリンタ制御コマンドを生成し、プリンタ20への送信データに追加する(ステップS38、S40)。ここで、印刷開始コマンドとは、プリンタ20に印刷を開始させるためのコマンドであり、プリンタ制御コマンドとは、プリンタ20の印刷動作を制御するためのコマンドである。最後に、送信手段46は、変換手段48により変換された画像データを、生成手段44により生成されたコマンド(バーコード印刷コマンド、印刷開始コマンド、及びプリンタ制御コマンド)と共に、プリンタ20へと送信する(ステップS42)。
【0035】
再び図2に戻り、プリンタ20は、バーコードデータ処理手段52、画像データ処理手段54、コマンド処理手段56、合成手段58、及び印刷手段59を含む。これらの手段のうち、バーコードデータ処理手段52、画像データ処理手段54、コマンド処理手段56、及び合成手段58は、例えば図1のCPU22に所定のプログラムを実行させることにより実現することができ、当該所定のプログラムは、例えばメモリ24に記憶させることができる。また、印刷手段59は、例えば図1の印刷部28により実現することができる。
【0036】
バーコードデータ処理手段52は、プリンタドライバ40から送信されたデータの中から、バーコード印刷コマンドを取得し、当該コマンドに基づいて、印刷されるバーコードのイメージデータを生成する。画像データ処理手段54は、プリンタドライバ40から送信されたデータの中から、印刷領域62の画像データを取得し、印刷される画像のイメージデータを形成する。
【0037】
合成手段58は、バーコードデータ処理手段52により生成されたバーコードのイメージデータと、画像データ処理手段54により生成された画像データのイメージデータとの合成を行う。コマンド処理手段56は、プリンタドライバ40から送信されたデータのうち、バーコードに関するコマンド以外のコマンド(例えば、印刷開始コマンド、プリンタ制御コマンド等)を処理する。印刷手段59は、合成手段58により合成された最終的な印刷データに基づき、印刷を実行する。
【0038】
図9は、プリンタの動作を示すフローチャートである。最初に、プリンタ20は、プリンタドライバ40から画像データ及び各種コマンドを受信する(ステップS60)。ここで受信される画像データは、デバイスコンテキスト60からバーコード制御領域64を除いた印刷領域62の画像データであり、バーコード制御領域に記載された情報は、バーコード印刷コマンドとして、当該画像データとは別に受信される。受信されたデータのうち、バーコード印刷コマンドはバーコードデータ処理手段52へ、画像データ(ビットイメージデータ)は画像データ処理手段54へ、その他のコマンドはコマンド処理手段56へとそれぞれ入力される。
【0039】
続いて、画像データ処理手段54は、プリンタドライバ40により変換された画像データであるビットイメージデータの処理を行い(ステップS62)、当該イメージデータを図1のメモリ24へと展開する(ステップS64)。続いて、バーコードデータ処理手段52は、バーコード印刷コマンドの処理を行い(ステップS66)、当該コマンドに基づいてバーコードのイメージデータ(バーコードイメージ)を作成し(ステップS68)、生成されたバーコードイメージをメモリ24へと展開する(ステップS70)。以上の処理により、画像及びバーコードのそれぞれのイメージデータがメモリ24上へと展開され、メモリ24上(合成手段58)にて画像のイメージデータ及びバーコードイメージの合成が行われる。合成されたイメージデータは、印刷手段59へと送信される。
【0040】
続いて、コマンド処理手段56が、印刷開始コマンドを受信したか否かを判定する(ステップS72)。印刷開始コマンドが受信された場合、コマンド処理手段56は、印刷手段59に印刷命令を与え、印刷を実行させることにより印刷を開始する(ステップS74)。
【0041】
図10は、プリンタ20により生成される画像のイメージを示す図である。符号の70は、画像データ処理手段54により生成されたイメージデータを示し、符号の80は、バーコードデータ処理手段52により生成されたバーコードイメージを示す。符号の90は、上記2つのイメージデータが合成された状態(最終的な印刷画像)を示す。
【0042】
本実施例では、印刷画像の例として領収書を用いている。領収書70には、物品名、金額、顧客へのメッセージ等が記載されている。領収書70のうち領域72は空白となっており、当該領域にバーコードイメージ80が貼り付けられることにより、バーコード付きの領収書90のイメージデータが完成する。当該イメージデータに基づいて印刷を実行することにより、バーコード付きの領収書を印刷することができる。
【0043】
実施例1に係るプリンタシステムによれば、アプリケーション30が生成するデバイスコンテキスト60が、印刷画像が描画される印刷領域62とは別に、バーコード制御領域64を含む。そして、プリンタ制御プログラム(プリンタドライバ40)が、バーコード制御領域64からバーコードに関する情報を取得し、バーコードの印刷コマンドを生成する。バーコードのイメージデータは、当該バーコードの印刷コマンドに基づき、プリンタ20にて生成される。従って、アプリケーション30にてバーコードイメージを生成する場合に比べ、プリンタドライバ40による変換処理の影響を受けず、且つプリンタ20の仕様に適合したバーコードイメージを生成することができる。その結果、高品質なバーコードを印刷することができる。また、デバイスコンテキスト60を従来に比べて拡張し、当該拡張した領域(バーコード制御領域64)にバーコードに関する情報を描画することで、例えば特殊フォントを用いる場合等に比べ、バーコードに関する情報を簡易かつ正確に、プリンタドライバ40に伝達することができる。
【0044】
本実施例では、バーコード制御領域64をデバイスコンテキスト60の最初に設けているが、バーコード制御領域64はその他の領域と識別できる形態であれば、他の領域に設けられていてもよい。ただし、バーコード制御領域64をデータの先頭に設けることで、プリンタドライバ40がバーコード印刷を行うか否かの判定を、より早い段階で行うことができる。なお、バーコード制御領域64に記載されるデータ量は、印刷されるバーコードの種類ごとに異なる場合があるため、バーコード制御領域64の大きさは、バーコードの種類に応じて変更可能とすることが好ましい。
【0045】
また、本実施例では、バーコード制御領域64に記載されたバーコードに関する情報の最初に、バーコード制御領域64の大きさ(LBC)を記載する構成としたが、LBCをこれ以外の領域に記載してもよい。ただし、LBCをバーコード制御領域64の最初に記載することで、プリンタドライバ40の判定手段41が、バーコード制御領域64が存在するか否かの判定をより早い段階で行うことができる。なお、本実施例では、バーコード制御領域64の大きさ(LBC)が所定の閾値より小さい場合に、バーコード制御領域64が存在しないと判定したが、バーコード制御領域64が存在するか否かの判定は、これ以外の方法で行ってもよい。
【0046】
また、本実施例では、1次元のバーコードを例に説明を行ったが、本発明はこれ以外の形態のバーコード(例えば、2次元バーコード(QRコード))に対しても適用することができる。
【0047】
以上、本発明の実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【0048】
10 コンピュータ
20 プリンタ
30 アプリケーション
32 デバイスコンテキスト生成手段
34 印刷データ描画手段
36 バーコード制御領域描画手段
38 印刷実行手段
40 プリンタドライバ
41 判定手段
42 取得手段
44 生成手段
46 変換手段
48 送信手段
52 バーコードデータ処理手段
54 イメージデータ処理手段
56 コマンド処理手段
58 合成手段
59 印刷手段
60 デバイスコンテキスト

【特許請求の範囲】
【請求項1】
コンピュータを、
画像データの描画領域中に、バーコードに関する情報が記載されたバーコード制御領域が存在するか否かを判定する判定手段と、
前記バーコード制御領域が存在する場合に、前記バーコード制御領域から、前記バーコードに関する情報を取得する取得手段と、
前記バーコードに関する情報に基づいて、プリンタにバーコードの印刷を行わせるためのコマンドを生成する生成手段と、
として機能させるための印刷制御プログラム。
【請求項2】
前記バーコード制御領域は、前記画像データの最初に設けられていることを特徴とする請求項1に記載の印刷制御プログラム。
【請求項3】
前記バーコードに関する情報は、バーコードの種類、バーコードの印刷位置、バーコードのサイズ、バーコードのバイト数、及びバーコードデータを含むことを特徴とする請求項1または2に記載の印刷制御プログラム。
【請求項4】
前記バーコードに関する情報の最初には、前記バーコード制御領域の大きさが記載されていることを特徴とする請求項1〜3のいずれか1項に記載の印刷制御プログラム。
【請求項5】
前記取得手段は、前記バーコード制御領域の大きさが所定の値より小さい場合に、前記バーコードに関する情報の取得を行わないことを特徴とする請求項4に記載の印刷制御プログラム。
【請求項6】
前記バーコード制御領域の大きさは、バーコードの種類に基づいて変更可能であることを特徴とする請求項1〜5のいずれか1項に記載の印刷制御プログラム。
【請求項7】
コンピュータを、
前記画像データから、前記バーコード制御領域を除いた印刷領域中の画像データを、プリンタにて印刷可能なデータ形式に変換する変換手段と、
前記印刷データ変換手段により変換された画像データを、前記コマンド生成手段により生成されたバーコード印刷コマンドと共にプリンタに送信する送信手段と、
としてさらに機能させるための請求項1〜6のいずれか1項に記載の印刷制御プログラム。

【図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


【公開番号】特開2012−194688(P2012−194688A)
【公開日】平成24年10月11日(2012.10.11)
【国際特許分類】
【出願番号】特願2011−56989(P2011−56989)
【出願日】平成23年3月15日(2011.3.15)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.QRコード
【出願人】(501398606)富士通コンポーネント株式会社 (848)
【Fターム(参考)】