(57)【要約】【課題】バーコード印刷とバーコード以外のデータの印刷が混在した場合でも、バーコードの読み取り精度を低下させることなく、かつバーコード以外の表や罫線の印刷も良好に行うことが可能な印刷システムを提供する。【解決手段】ホストＰＣ２のアプリケーション４でバーコードを含む印刷データを生成し、印刷指示を行う場合、生成された印刷データがバーコードのデータであるか否かをプリンタドライバ６で判定し、バーコードのデータがあると判定した場合には輪郭線を太くする補正を行わずに印刷を行い、バーコード以外の印刷データである場合には輪郭線を太くする補正を行うようにした。【選択図】  図２
2008003994.tif 000002
【特許請求の範囲】
【請求項１】
印刷データを生成するアプリケーションを有する上位装置と、該上位装置から供給される印刷データを受信して印刷処理を行う印刷装置とから構成され、前記アプリケーションで生成された管理コードのデータを前記印刷装置で印刷する印刷システムにおいて、
前記上位装置に設けられ、前記アプリケーションで生成された印刷データが前記管理コードのデータであるか管理コード以外のデータであるかを判定する判定手段と、
前記上位装置に設けられ、前記アプリケーションで生成された印刷データに対して輪郭線を補正する輪郭線補正手段とを具備し、
前記判定手段により前記管理コード以外の印刷データと判定された場合、該印刷データに対して前記輪郭線補正手段により輪郭線を補正し、前記判定手段により前記管理コードの印刷データであると判定された場合、該印刷データに対しては前記輪郭線補正手段により輪郭線を補正しないで前記印刷装置で印刷処理を行うことを特徴とする印刷システム。
【請求項２】
前記判定手段は、前記アプリケーションで生成された印刷データの所定形状の塗り潰し部とその輪郭線の位置が隣接しているか否かにより該印刷データが前記管理コードの印刷データか否かを判定する請求項１記載の印刷システム。
【請求項３】
前記判定手段は、前記アプリケーションで生成された印刷データの所定形状の塗り潰し部の色情報と隣接した線の色情報が同じであるか否かにより該印刷データが前記管理コードの印刷データか否かを判定する請求項２記載の印刷システム。
【請求項４】
印刷データを生成するアプリケーションを有する上位装置と、該上位装置から供給される印刷データを受信して印刷処理を行う印刷装置とから構成され、前記アプリケーションで生成された管理コードのデータを前記印刷装置で印刷する印刷システムにおいて、
前記上位装置に設けられ、前記アプリケーションで生成された印刷データが前記管理コードのデータであるか管理コード以外のデータであるかを判定する判定手段と、
前記上位装置に設けられ、前記アプリケーションで生成された印刷データに対して輪郭線を補正する輪郭線補正手段と、
前記上位装置に設けられ、用紙の向きを検出する向き検出手段と、
前記上位装置に設けられ、前記向き検出手段の検出結果に応じて前記管理コードの印刷データの輪郭線の座標を補正する座標補正手段とを具備し、
前記判定手段により前記管理コード以外の印刷データと判定された場合、該印刷データに対して前記輪郭線補正手段により輪郭線を補正し、前記判定手段により前記管理コードの印刷データであると判定された場合、該印刷データに対しては前記輪郭線補正手段により輪郭線を補正しないで印刷データを生成し、その後前記向き検出手段の検出結果に応じて前記座標補正手段により前記管理コードの印刷データの輪郭線の座標を補正することを特徴とする印刷システム。
【請求項５】
前記上位装置に設けられ、用紙上における印刷レイアウトに応じて前記管理コードの印刷データの輪郭線の座標を補正する第２の座標補正手段を具備する請求項４記載の印刷システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、上位装置のアプリケーションで生成した管理コードの印刷データを印刷装置で印刷する印刷システムに関する。
【背景技術】
【０００２】
従来、バーコード印刷を行う印刷システムにおいては、上位装置のアプリケーションで生成したバーコードの印刷データをプリンタで印刷処理するものがある。このようなシステムでは、アプリケーションで生成した印刷データをＯＳを介してプリンタドライバに供給し、さらにプリンタドライバからプリンタに印刷データを出力してバーコードを印刷するようにしたものがある。この例として、例えば、特開平１１−２２１９４６号公報に開示されるものがある。
【０００３】
アプリケーションで生成したバーコードの印刷データを印刷する場合、次の二通りの方法でプリンタドライバに供給される。即ち、図２２に示すように、矩形の塗り潰し４１でバーコードの各バーを描画指定する方法と、図２３に示すように、（矩形の塗り潰し４１＋輪郭線４２）により各バーを描画指定する方法である。
【０００４】
プリンタドライバやプリンタは、輪郭線として極細線が指定された場合、この極細線に対して太くする補正を行っている。例えば、極細線の太さが１ドット（１／３００インチ、１／６００インチまたは１／１２００インチ）である場合、印刷された線がはっきりしないので、プリンタドライバまたはプリンタで２ドットまたは３ドットの太さに補正している。
【０００５】
輪郭線の太さを補正して印刷した状態を図２４に示す。図２４に示すように、輪郭線４２を太くして印刷した場合（４３）、バー自体の太さが輪郭線を太くしない場合（４４）に較べて太くなり、その結果バーコードの読み取り精度が低下する。そこで従来、極細線を補正するか、または補正しないかをユーザが設定可能にし、バーコードを印刷する場合には極細線を補正しない設定にするようにしていた。
【特許文献１】特開平１１−２２１９４６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら上記従来のバーコード印刷方法においては、ユーザが極細線を補正するか補正しないかを設定することには次のような問題がある。即ち、バーコードのみを印刷する場合には極細線を補正しない設定で問題が無いが、表や罫線等のバーコード以外の印刷データを同時に印刷する場合、極細線の補正をしない設定にすると、バーコード以外の印刷データについても極細線が補正されないので、表や罫線が見難くなる可能性がある。またバーコードのみを印刷する場合でも、極細線を補正しない設定をユーザが忘れる場合がある。
【０００７】
またバーコードとして所謂２次元バーコードが使用されている。２次元バーコードは、１次元バーコードに較べて精密である。ところが、図２３に示すような矩形の塗り潰し４１と輪郭線４２の描画指定の場合、後述する理由により矩形の塗り潰しと輪郭線の描画位置が１ドット（１／１２００インチ）ずれる可能性があり、このように矩形の塗り潰しと輪郭線の位置がずれると、２次元バーコードの場合は読み取り精度が低下する場合がある。とくにプリンタのトナーが薄くなった場合にはさらに読み取り精度が低下することが考えられる。
【０００８】
したがって本発明は、バーコード印刷とバーコード以外のデータの印刷が混在した場合でも、バーコードの読み取り精度を低下させることなく、かつバーコード以外の表や罫線の印刷も良好に行うことが可能な印刷システムを提供することを目的とする。
【０００９】
本発明の他の目的は、矩形の塗り潰しと輪郭線の描画指定の場合、矩形の塗り潰しと輪郭線の位置ずれを防止することにより、読み取り精度の低下しないバーコードの印刷を可能とする印刷システムを提供することにある。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明は、印刷データを生成するアプリケーションを有する上位装置と、該上位装置から供給される印刷データを受信して印刷処理を行う印刷装置とから構成され、前記アプリケーションで生成された管理コードのデータを前記印刷装置で印刷する印刷システムにおいて、前記上位装置に設けられ、前記アプリケーションで生成された印刷データが前記管理コードのデータであるか管理コード以外のデータであるかを判定する判定手段と、前記上位装置に設けられ、前記アプリケーションで生成された印刷データに対して輪郭線を補正する輪郭線補正手段とを具備し、前記判定手段により前記管理コード以外の印刷データと判定された場合、該印刷データに対して前記輪郭線補正手段により輪郭線を補正し、前記判定手段により前記管理コードの印刷データであると判定された場合、該印刷データに対しては前記輪郭線補正手段により輪郭線を補正しないで前記印刷装置で印刷処理を行うことを特徴とする。
【００１１】
また第２の発明は、印刷データを生成するアプリケーションを有する上位装置と、該上位装置から供給される印刷データを受信して印刷処理を行う印刷装置とから構成され、前記アプリケーションで生成された管理コードのデータを前記印刷装置で印刷する印刷システムにおいて、前記上位装置に設けられ、前記アプリケーションで生成された印刷データが前記管理コードのデータであるか管理コード以外のデータであるかを判定する判定手段と、前記上位装置に設けられ、前記アプリケーションで生成された印刷データに対して輪郭線を補正する輪郭線補正手段と、前記上位装置に設けられ、用紙の向きを検出する向き検出手段と、前記上位装置に設けられ、前記向き検出手段の検出結果に応じて前記管理コードの印刷データの輪郭線の座標を補正する座標補正手段とを具備し、前記判定手段により前記管理コード以外の印刷データと判定された場合、該印刷データに対して前記輪郭線補正手段により輪郭線を補正し、前記判定手段により前記管理コードの印刷データであると判定された場合、該印刷データに対しては前記輪郭線補正手段により輪郭線を補正しないで印刷データを生成し、その後前記向き検出手段の検出結果に応じて前記座標補正手段により前記管理コードの印刷データの輪郭線の座標を補正することを特徴とする。
【発明の効果】
【００１２】
上記構成を有する本発明によれば、判定手段により管理コード以外の印刷データと判定された場合には、該印刷データに対して輪郭線補正手段により輪郭線を補正して印刷するようにしたので、表や罫線の良好な印刷を行うことができる。また判定手段により管理コードの印刷データであると判定された場合には、該印刷データに対しては輪郭線補正手段により輪郭線を補正しないで印刷装置で印刷処理を行うようにしたので、管理コードの読み取り精度を低下させることはない。
【００１３】
また第２の発明によれば、用紙の向きを検出する向き検出手段と、向き検出手段の検出結果に応じて管理コードの印刷データの輪郭線の座標を補正する座標補正手段とをさらに具備するようにしたので、塗り潰しと輪郭線の位置ずれを防止することが可能となり、読み取り精度の低下しない管理コードの印刷が可能となる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明を実施するための形態を図面に従って説明する。なお各図面に共通する要素には同一の符号を付す。図１は本発明の第１の実施の形態の印刷システムを示す制御ブロック図である。図１において、第１の実施の形態の印刷システム１は、上位装置としてのホストコンピュータ（ＰＣ）２とプリンタ３とから構成される。ホストＰＣ２には、アプリケーション（ＡＰ）４、ＧＤＩ（グラフィックディバイスインタフェース）５およびプリンタドライバ６が具備されている。
【００１５】
アプリケーション４は予めホストＰＣ２にインストールされ、アプリケーション４からバーコードを含んだ印刷データを印刷する場合、アプリケーション４の印刷設定部４ａで印刷を行うプリンタを指定し、印刷データ生成部４ｂで印刷データを生成する。アプリケーション４は、プリンタ３の装置情報や解像度、印刷レイアウトなどの情報をプリンタドライバ６から取得し、印刷データを生成する。アプリケーション４で生成された印刷データや印刷設定情報は、ＧＤＩ５の関数であるＡＰＩ（アプリケーションプログラミングインタフェース）５ａを介してプリンタドライバ６と印刷情報や印刷データをやり取りすることにより作成される。
【００１６】
ＧＤＩ５は、アプリケーション４が描画する場合やプリンタなどのデバイス情報を取得する場合に呼び出すＤＤＬ（ダイナミックリンクライブラリ）モジュールである。ＡＰＩ５ａはＧＤＩ５が持っている関数で、ホストＰＣ２のオペレーションシステム（ＯＳ）が公開している。このＡＰＩ５ａを介してアプリケーション４とＯＳが情報のやり取りを行う。
【００１７】
印刷を行うためにアプリケーション４がＧＤＩ５を介してプリンタドライバ６から受け取ったＤｅｖｍｏｄｅ構造体の情報を元にアプリケーション４で作成された印刷データや印刷設定情報は、ＧＤＩ５を介してプリンタドライバ６に渡される。Ｄｅｖｍｏｄｅ構造体とは、プリンタまたはディスプレイディバイスの初期設定や環境についての情報を収めるもので、プリンタドライバ６はプリンタ３が印刷可能なデータおよびページレイアウトや解像度などの情報をドライバ設定部６ａから取得し、またアプリケーション４からＧＤＩ５を介して渡された情報をもとにして、ドライバ設定部６ａで作成される。
【００１８】
プリンタドライバ６にはドライバＵＩ（ユーザインタフェース）表示部６ｂが具備され、ドライバＵＩ表示部６ｂは印刷設定を表示変更することができる。バーコードの輪郭線（極細線）を補正する場合もこのドライバＵＩ表示部６ｂで設定できる。しかしながら本実施の形態では、通常、極細線の補正は行わない設定としておく。
【００１９】
プリンタドライバ６の描画データ解析部６ｃは、ＧＤＩ５を介してアプリケーション４から渡された印刷データおよび印刷設定情報に基づいて印刷データの解析を行う。印刷データがバーコードのデータであるか、あるいはバーコード以外の印刷データであるかの判断をこの描画データ解析部６ｃで行う。
【００２０】
描画データ生成部６ｄは、プリンタ３で印刷できる形式に印刷データを生成するもので、描画データ出力部６ｅは、描画データ生成部６ｄで生成された印刷データをプリントスプーラ７に出力する。プリントスプーラ７は、複数の印刷要求を受け付けることが可能で、印刷データをプリンタ３へ送る前に一時的に貯めておき、順次印刷データをプリンタ３へ送る。
【００２１】
プリンタ３にはデータ受信部３ａ、データ展開部３ｂおよび印刷部３ｃが設けられている。データ受信部３ａはプリントスプーラ７から送られてくる印刷データを受信するもので、受信された印刷データはデータ展開部３ｂで展開され、さらに印刷部３ｃで印刷される。
【００２２】
次に第１の実施の形態の動作を図２に示すフローチャートにしたがって説明する。図２は第１の実施の形態の動作を示すフローチャートである。ここではバーコードを含むデータを印刷する動作を説明する。
【００２３】
オペレータの操作により印刷を行う場合、まずアプリケーション４の印刷が選択される（ステップ１）。つぎにアプリケーション４の印刷画面からプリンタドライバ６が指定される（ステップ２）。次にアプリケーション４の印刷が実行されると（ステップ３）、印刷実行の指示がアプリケーション４からＯＳのＧＤＩ５を介して印刷データとともにプリンタドライバ６へ送られる（ステップ４）。
【００２４】
プリンタドライバ６は、受け取った印刷データがバーコードのデータであるかどうか判断し（ステップ５）、バーコードのデータであると判定した場合、細線補正なしで印刷データを生成し（ステップ６）、バーコードのデータではないと判定した場合、細線補正をして印刷データを生成する（ステップ７）。印刷データが生成されると、生成された印刷データがプリンタ３へ送られて印刷が行われる（ステップ８）。指示されたすべての印刷が実行されるまで、ステップ５乃至ステップ８の動作が繰り返される（ステップ９）。
【００２５】
従来の方法では印刷データにバーコードのデータが含まれている場合、プリンタドライブ６の設定における「極細線を補正する」の設定を、オペレータが補正しないに設定して印刷を行っていたが、本実施の形態では「極細線を補正する」の設定がどのようになっていても、バーコードのデータについては極細線を補正しないで印刷データが生成されるので、バーコード読み取り時の精度の高いバーコード印刷が可能になる。
【００２６】
次に図３にしたがって本実施の形態において印刷データがバーコードのデータがそれ以外のデータかを判断する動作を説明する。図３は第１の実施の形態のバーコード判定動作を示すフローチャートである。これは、アプリケーション４からＧＤＩ５を介して印刷実行の指示がプリンタドライバ６に送られてきた場合に、プリンタドライバ６が行う動作である。
【００２７】
バーコード印刷データかどうかの判定はプリンタドライバ６の描画データ解析部６ｃで行う。バーコード印刷かどうかの判定方法を簡単に説明すると、図４に示すように、プリンタドライブ６に送られてくるバーコードデータの矩形塗り潰し描画１１と輪郭線の描画１２が隣接しており、かつ矩形塗り潰し１１の色情報と矩形塗り潰し１１に隣接する輪郭線１２の色情報が同じである場合に、描画データ解析部６ｃはバーコードデータであると看做す。矩形塗り潰し１１と輪郭線１２が隣接しているかどうかは、アプリケーション４により印刷位置が座標として指定されるので、その座標から判定できる。またそれぞれの色情報についても、アプリケーション４から送られる印刷設定情報の一部に色情報が含まれているので、同一かどうかの判定が可能である。なお図４はバーコードデータ判定の仕方を示す説明図である。
【００２８】
実際の判定動作を図３に従って説明する。プリンタドライバ６は、アプリケーション４から印刷実行指示が来ると（ステップ１１）、同時に送られてくる印刷データを取得する。印刷データの中に矩形塗り潰し描画があるかどうか判定する（ステップ１２）。矩形塗り潰し描画が存在する場合、その矩形塗り潰し描画の座標を保存する（ステップ１３）。また印刷データの中に線描画があるかどうか判定し（ステップ１４）、線描画がある場合はその線描画の座標を保存する（ステップ１５）。矩形塗り潰し描画と線描画の両方が存在した場合、次に保存したそれぞれの座標を比較し、矩形と線が隣接しているかどうかを判定する（ステップ１６）。
【００２９】
具体的に図４で説明すると、矩形塗り潰し１１の頂点１１ａと頂点１１ｂとを結んだ線１１ｅの座標と、輪郭線１２の頂点１２ａと頂点１２ｂとを結んだ線１２ｅの座標が同一で、矩形塗り潰し１１の頂点１１ｂと頂点１１ｃとを結んだ線１１ｆの座標と、輪郭線１２の頂点１２ｂと頂点１２ｃとを結んだ線１２ｆの座標が同一で、同様に、頂点１１ｃと頂点１１ｄとを結んだ線１１ｇの座標と、頂点１２ｃと頂点１２ｄとを結んだ線１２ｇの座標が同一で、かつ頂点１１ｄと頂点１１ａとを結んだ線１１ｈの座標と、頂点１２ｄと頂点１２ａとを結んだ線１２ｈの座標が同一である場合に、矩形と線が隣接していると判定する。
【００３０】
また本実施の形態では、矩形塗り潰し１１の頂点を結んでできる各線１１ｅ、１１ｆ、１１ｇ、１１ｈの座標に対して、輪郭線１２の各頂点を結んでできる各線１２ｅ、１２ｆ、１２ｇ、１２ｈの座標が１ドットだけ外側にずれている場合も隣接しているものと判定する。
【００３１】
隣接していると判定した場合は、図２に示すステップ６へ移行し、細線を補正することなく印刷データを生成する。また隣接していないと判定した場合は、バーコードデータではないとされ、図２に示すステップ７へ移行し、細線を補正して印刷データを生成する処理に移行する。バーコードデータであるかないかの判定はすべての印刷データについて行う。
【００３２】
以上のように第１の実施の形態によれば、ユーザが細線の補正をするしないの設定をする必要がなく、バーコードデータとそれ以外のデータが混在している場合でも、バーコード以外の印刷品位を落とすことなく、バーコードデータについて読み取り精度の高い印刷を行うことが可能となる。
【００３３】
次に第２の実施の形態の印刷システムを説明する。図５は第２の実施の形態の印刷システムを示す制御ブロック図である。図５において、第２の実施の形態の印刷システム２１は、第１の実施の形態と同様に、ホストＰＣ２とプリンタ３から構成され、ホストＰＣ２にはアプリケーション４、ＧＤＩ５およびプリンタドライバ６が具備されている。
【００３４】
プリンタドライバ６には第１の実施の形態で述べたドライバ設定部６ａ、ドライバＵＩ表示部６ｂ、描画データ解析部６ｃ、描画データ生成部６ｄおよび描画データ出力部６ｅのほかに、用紙方向補正解析部６ｆが設けられている。用紙方向補正解析部６ｆは、ドライバ設定部６ａから用紙に関する情報、特に用紙の方向についての情報や印刷データの情報を取得し、バーコード印刷時の補正方法を解析するものである。その他の構成は第１の実施の形態と同様である。
【００３５】
次に第２の実施の形態の動作を説明する。図６は第２の実施の形態の動作を示すフローチャートである。ここではバーコードを含むデータを印刷する動作を説明する。
【００３６】
第１の実施の形態と同様に、オペレータの操作により印刷を行う場合、まずアプリケーション４の印刷が選択される（ステップ２１）。つぎにアプリケーション４の印刷画面からプリンタドライバ６が指定される（ステップ２２）。次にアプリケーション４の印刷が実行されると（ステップ２３）、印刷実行の指示がアプリケーション４からＯＳのＧＤＩ５を介して印刷データとともにプリンタドライバ６へ送られる（ステップ２４）。
【００３７】
プリンタドライバ６は、受け取った印刷データがバーコードのデータであるかどうか判断し（ステップ２５）、バーコードのデータであると判定した場合、細線補正なしで印刷データを生成し（ステップ２６）、バーコードのデータではないと判定し場合、細線補正をして印刷データを生成する（ステップ２７）。バーコードデータであるか否かの判定は、図３に示す第１の実施の形態の判定と同様である。
【００３８】
ここでバーコードの矩形塗り潰しの座標と輪郭線の座標との誤差について図７に従って説明する。図７は塗り潰しの座標と輪郭線の座標との誤差を説明するための説明図である。２次元バーコードの矩形印刷では、図７に示すような描画する塗り潰し３１の座標と輪郭線３２の座標がホストＰＣ２のＯＳから指定される。
【００３９】
図７に示す例では、図７（ａ）に示すように、矩形塗り潰し３１の座標は、左上座標（２，２）、右下座標（５，５）の矩形座標が指定され、輪郭線３２については、左上座標（１，１）、右上座標（５，１）、左下座標（１，５）、右下座標（５，５）の座標が指定される。輪郭線３２の幅は最小ドット幅である１ドットで指定される。プリンタドライバ６はプリンタ３に対して矩形塗り潰し３１の描画を指定する。プリンタ３は、図７（ｂ）に示すように、左上座標（２，２）、右下座標（５，５）の矩形内部を塗り潰す。
【００４０】
次にプリンタドライバ６は、輪郭線３２の描画をプリンタ３に対して指定する。プリンタ３は、左上座標（１，１）、右上座標（５，１）、左下座標（１，５）、右下座標（５，５）の各座標を結んだ線を印刷する前に、図７（ｃ）に示すように、輪郭の座標に幅付けを行う。輪郭線３２は１ドット幅であるので、図７（ｃ）に示す外側の点線３２ａと内側の点線３２ｂで示されているように、左上座標（１，１）、右上座標（５，１）、左下座標（１，５）、右下座標（５，５）の各座標を結んだ線の両側に０．５ドットずつの幅付けを行うが、実際には０．５ドット単位の座標には印刷できないので、座標位置を補正する。
【００４１】
補正の方法は用紙の原点（左上）方向にずらすように補正する。実際には左側に０．５ドット、上側に０．５ドットずらす。補正した印刷位置を図７（ｄ）に示す。プリンタ３は輪郭線３２の座標を補正し、図７（ｅ）に示すように線の印刷を行う。この結果、図７（ｅ）に示すように、矩形塗り潰し３１と輪郭線３２の間に１ドットの隙間３３が空くことになる。
【００４２】
隙間３３の大きさはプリンタ３の解像度にもよるが、例えば、１／６００インチまたは１／１２００インチである。したがって通常の印刷では肉眼では識別できない程度の大きさであるが、精密さが要求される２次元バーコードの印刷の場合、読み取り精度が低下する可能性がある。特にトナーが薄くなった場合は読み取り精度が低下すると考えられる。
【００４３】
また印刷する用紙をプリンタ３にセットする場合、用紙を縦置きにセットする場合と横置きにセットする場合の２通りがある。用紙を縦置きにセットした場合と横置きにセットした場合とで用紙の座標原点が変わるので、矩形塗り潰し３１と輪郭線３２を印刷した場合の隙間の位置も変わる。これについて図８を用いて説明する。図８は用紙の向きにより隙間の位置が異なることを示す説明図である。
【００４４】
図８（ａ）は用紙を縦置きにセットした場合で、座標の原点は左上であり、隙間３３の空く位置は矩形塗り潰し３１の上側と左側である。図８（ｂ）は用紙を横置きにセットした場合で、座標の原点は左下となり、隙間３３の空く位置は矩形塗り潰し３１の左側となる。
【００４５】
図６のフローチャートに戻る。バーコードデータがあると判定し、輪郭線の補正なしで印刷データを生成した後、ステップ２８において、これから印刷を行う用紙の向きが縦置きか横置きかを判定する。用紙が縦置きである場合、図８（ａ）に示す隙間３３が空かないように輪郭線３２の座標を補正する（ステップ２９）。この場合、プリンタドライバ６は、図９に示す座標補正テーブルを参照して補正を行う。図９は座標補正テーブルを示す説明図である。
【００４６】
即ち、用紙が縦置きである場合、隙間３３の空く位置は矩形塗り潰し３１の左側と上側であるので、輪郭線３２の座標を右側に１ドット、下側に１ドットずらす（ｘ＝ｘ＋１、ｙ＝ｙ＋１）。これにより、図１０（ｂ）に示すように、矩形塗り潰し３１と輪郭線３２の間に隙間が発生しないように輪郭線３２の印刷位置が補正される。
【００４７】
また用紙が横向きである場合、図８（ｂ）に示す隙間３３が空かないように輪郭線３２の座標を補正する（ステップ３０）。この場合もプリンタドライバ６は、図９に示す座標補正テーブルを参照して補正を行う。
【００４８】
即ち、用紙が横置きである場合、隙間３３の空く位置は矩形塗り潰し３１の左側であるので、輪郭線３２の座標を右側に１ドットずらす（ｘ＝ｘ＋１、ｙ＝ｙ＋０）。これにより、図１１（ｂ）に示すように、矩形塗り潰し３１と輪郭線３２の間に隙間が発生しないように輪郭線３２の印刷位置が補正される。
【００４９】
印刷データが生成されると、生成された印刷データがプリンタ３へ送られて印刷が行われる（ステップ３１）。指示されたすべての印刷が実行されるまで、ステップ２４乃至ステップ３１の動作が繰り返される（ステップ３２）。
【００５０】
以上のように第２の実施の形態では、バーコードの印刷において矩形塗り潰し３１と輪郭線３２の間に隙間が生じないように印刷するので、２次元バーコードのように精密な黒バーと白バーの幅が要求されるような場合においても正確な幅のバーが印刷されるので、読み取り時の精度を低下させることがない。
【００５１】
次に第３の実施の形態を説明する。図１２は第３の実施の形態の印刷システムを示す制御ブロック図である。図１２において、第３の実施の形態の印刷システム２１は、第１の実施の形態と同様に、ホストＰＣ２とプリンタ３から構成され、ホストＰＣ２にはアプリケーション４、ＧＤＩ５およびプリンタドライバ６が具備されている。
【００５２】
プリンタドライバ６には第２の実施の形態で述べたドライバ設定部６ａ、ドライバＵＩ表示部６ｂ、描画データ解析部６ｃ、描画データ生成部６ｄ、描画データ出力部６ｅおよび用紙方向補正解析部６ｆのほかに、用紙回転補正解析部６ｇが設けられている。用紙回転補正解析部６ｇは、印刷する用紙のドライバ設定部６ａから用紙に関する情報、特に用紙の回転についての情報や印刷データの情報を取得し、バーコード印刷時の補正方法を解析するものである。その他の構成は第２の実施の形態と同様である。
【００５３】
次に第３の実施の形態の動作を説明する。図１３は第３の実施の形態の動作を示すフローチャートである。ここではバーコードを含むデータを印刷する動作を説明する。
【００５４】
第１の実施の形態と同様に、オペレータの操作により印刷を行う場合、まずアプリケーション４の印刷が選択される（ステップ４１）。つぎにアプリケーション４の印刷画面からプリンタドライバ６が指定される（ステップ４２）。次にアプリケーション４の印刷が実行されると（ステップ４３）、印刷実行の指示がアプリケーション４からＯＳのＧＤＩ５を介して印刷データとともにプリンタドライバ６へ送られる（ステップ４４）。
【００５５】
プリンタドライバ６は、受け取った印刷データがバーコードのデータであるかどうか判断し（ステップ４５）、バーコードのデータであると判定した場合、細線補正なしで印刷データを生成し（ステップ４６）、バーコードのデータではないと判定した場合、細線補正をして印刷データを生成する（ステップ４７）。バーコードデータであるか否かの判定は、図３に示す第１の実施の形態の判定と同様である。
【００５６】
印刷のレイアウトをプリンタドライバ６で指定した場合、描画データが回転する設定もあり、用紙の原点が変わる場合がある。また１ページの用紙に２ページ分あるいは４ページ分のデータを印刷する機能がある場合、用紙に対するそれぞれのページ毎に用紙の原点が変わるので、用紙の向きだけを考慮した補正ではバーコードの印刷に隙間が発生する場合がある。そのため本実施の形態では用紙の向きと同時に用紙回転補正解析部６ｇで用紙の回転に関する情報を取得して隙間が空かないように補正をかける。
【００５７】
バーコードの矩形塗り潰しの座標と輪郭線の座標との誤差については図７ですでに説明した。ここでは、用紙レイアウトを変更して用紙の向きを１８０度回転指定される場合や、１枚の用紙に複数の印刷ページを縮小して印刷指定する場合（マルチページ指定）に、用紙の原点が変わることについて説明する。
【００５８】
用紙の向き、１８０度回転指定、マルチページの指定により用紙の原点はそれぞれ変わる。用紙の置き方、１８０度回転、マルチページの指定により、用紙原点は、用紙縦置き（回転指定なし）、用紙横置き（回転指定なし）、用紙縦置き（１８０度回転指定）、用紙横置き（１８０度回転指定）の４パターンに分けられる。
【００５９】
マルチページで用紙の向きが変わる場合、反時計回り方向に９０度回転させている。例えば図１４に示すように、２ページ分の印刷データを１ページの用紙に印刷する場合、マルチページ指定することにより、１ページに印刷できる。この場合、第１ページと第２ページの印刷データを反時計回り方向に９０度回転させている。図１４は印刷データの回転を示す説明図である。
【００６０】
図１５は用紙の向きの変化のパターンを示す説明図で、用紙の縦置き、横置き、１８０度回転指定、マルチページ指定により用紙の向きが変わる場合のすべてのパターンを示す。図１５に示すように、用紙の原点位置が切り替わるパターンは４通りである。４通りのパターンによる隙間の空き方を図１６に示す。
【００６１】
図１６（ａ）は用紙縦置きの場合で、矩形塗り潰し３１の左側と上側に隙間３３ができる。図１６（ｂ）は用紙横置きの場合で、矩形塗り潰し３２１の左側に隙間３３ができる。図１６（ｃ）は用紙縦置きで１８０度回転した場合で、この場合は隙間はできない。図１６（ｄ）は用紙横置きで１８０度回転した場合で、矩形塗り潰し３１の上側に隙間３３ができる。
【００６２】
以上のように用紙の印刷レイアウトにより、矩形塗り潰し３１と輪郭線３２の間にできる隙間３３の位置が異なるので、プリンタドライバ６では用紙の向きの情報に基づいて、図１７に示す座標補正テーブルを参照して輪郭線３１の座標の補正を行う。
【００６３】
図１３に戻って説明すると、ステップ４８で、これから印刷を行う用紙の向きが縦置きか横置きかを判定する。用紙が縦置きである場合、次に１８０度回転指定があるか否かを判定する（ステップ４９）。１８０度回転指定がない場合、図１８（ａ）に示す隙間３３がなくなるように輪郭線３２の座標を右側に１ドット、下側に１ドットずらす補正を行う（ｘ＝ｘ＋１、ｙ＝ｙ＋１）（ステップ５０）。これにより、図１８（ｂ）に示すように、矩形塗り潰し３１と輪郭線３２の間に隙間が発生しないように輪郭線３２の印刷位置が補正される。
【００６４】
また１８０度回転指定がある場合は、図１９（ａ）に示すように隙間が存在しないので、輪郭線３１の座標を補正しないで（換言すれば、ｘ＝ｘ＋０、ｙ＝ｙ＋０の補正を行って）印刷データを生成する（ステップ５１）。即ち、図１９（ｂ）に示す補正後の印刷データは補正前のデータと同じである。
【００６５】
ステップ４８で用紙が横置きであると判定された場合、次に１８０度回転指定があるか否かを判定する（ステップ５２）。１８０度回転指定がない場合、図２０（ａ）に示す隙間３３がなくなるように輪郭線３２の座標を右側に１ドットずらす補正を行う（ｘ＝ｘ＋１、ｙ＝ｙ＋０）（ステップ５３）。これにより、図２０（ｂ）に示すように、矩形塗り潰し３１と輪郭線３２の間に隙間がなくなるように輪郭線３２の印刷位置が補正される。
【００６６】
また用紙が１８０度回転指定されている場合、図２１（ａ）に示す隙間３３がなくなるように輪郭線３２の座標を下側に１ドットずらす補正を行う（ｘ＝ｘ＋０、ｙ＝ｙ＋１）（ステップ５４）。これにより、図２１（ｂ）に示すように、矩形塗り潰し３１と輪郭線３２の間に隙間がなくなるように輪郭線３２の印刷位置が補正される。
【００６７】
印刷データが生成されると、生成された印刷データがプリンタ３へ送られて印刷が行われる（ステップ５５）。指示されたすべての印刷が実行されるまで、ステップ４５乃至ステップ５５の動作が繰り返される（ステップ５６）。
【００６８】
以上のように第３の実施の形態では、マルチページで用紙の向きが変わる場合やマルチページで１８０度回転した場合でも、バーコードの印刷において矩形塗り潰し３１と輪郭線３２の間に隙間が生じないように印刷するので、２次元バーコードのように精密な黒バーと白バーの幅が要求されるような場合においても正確な幅のバーが印刷されるので、読み取り時の精度を低下させることがない効果が得られる。
【図面の簡単な説明】
【００６９】
【図１】第１の実施の形態の印刷システムを示す制御ブロック図である。
【図２】第１の実施の形態の動作を示すフローチャートである。
【図３】第１の実施の形態のバーコード判定動作を示すフローチャートである。
【図４】バーコードデータ判定の仕方を示す説明図である。
【図５】第２の実施の形態の印刷システムを示す制御ブロック図である。
【図６】第２の実施の形態の動作を示すフローチャートである。
【図７】塗り潰しの座標と輪郭線の座標との誤差を説明するための説明図である。
【図８】用紙の向きにより隙間の位置が異なることを示す説明図である。
【図９】座標補正テーブルを示す説明図である。
【図１０】用紙縦置きの場合の補正後の印刷結果を示す説明図である。
【図１１】用紙横置きの場合の補正後の印刷結果を示す説明図である。
【図１２】第３の実施の形態の印刷システムを示す制御ブロック図である。
【図１３】第３の実施の形態の動作を示すフローチャートである。
【図１４】印刷データの回転を示す説明図である。
【図１５】用紙の向きの変化のパターンを示す説明図である。
【図１６】用紙の向きにより隙間のでき方を示す説明図である。
【図１７】座標補正テーブルを示す説明図である。
【図１８】用紙縦置きの場合の補正後の印刷結果を示す説明図である。
【図１９】用紙縦置きの場合の補正後の印刷結果を示す説明図である。
【図２０】用紙横置きの場合の補正後の印刷結果を示す説明図である。
【図２１】用紙横置きの場合の補正後の印刷結果を示す説明図である。
【図２２】矩形の塗り潰しでバーコードの各バーを描画指定する方法を示す説明図である。
【図２３】（矩形の塗り潰し＋輪郭線）により各バーを描画指定する方法を示す説明図である。
【図２４】輪郭線の極細線の補正を示す説明図である。
【符号の説明】
【００７０】
１  印刷システム
２  ホストＰＣ
３  プリンタ
４  アプリケーション
６  プリンタドライバ
６ｃ  描画データ解析部
６ｆ  用紙方向補正解析部
６ｇ  用紙回転補正解析部
１１、３１  矩形塗り潰し
１２、３２  輪郭線
３３  隙間
【図１】
2008003994.tif 000003
【図２】
2008003994.tif 000004
【図３】
2008003994.tif 000005
【図４】
2008003994.tif 000006
【図５】
2008003994.tif 000007
【図６】
2008003994.tif 000008
【図７】
2008003994.tif 000009
【図８】
2008003994.tif 000010
【図９】
2008003994.tif 000011
【図１０】
2008003994.tif 000012
【図１１】
2008003994.tif 000013
【図１２】
2008003994.tif 000014
【図１３】
2008003994.tif 000015
【図１４】
2008003994.tif 000016
【図１５】
2008003994.tif 000017
【図１６】
2008003994.tif 000018
【図１７】
2008003994.tif 000019
【図１８】
2008003994.tif 000020
【図１９】
2008003994.tif 000021
【図２０】
2008003994.tif 000022
【図２１】
2008003994.tif 000023
【図２２】
2008003994.tif 000024
【図２３】
2008003994.tif 000025
【図２４】
2008003994.tif 000026