(57)【要約】【課題】  ＯＳ標準の汎用印刷プログラムが組み込まれた情報処理装置において、バーコードを印刷する際の精度を向上させる技術を提供すること。【解決手段】  編集アプリ４３から汎用印刷プログラム４１に印刷指示があり（矢印Ａ）、その印刷指示に付された画像データがバーコードを示すバーコード情報を含む場合（矢印Ｋ）、印刷を実行するプリンタ２に対応する補助プログラム４２が、汎用印刷プログラム４１によって生成された印刷データのうち、バーコードを示すバーコード画像データを改良することにより（矢印Ｌ）、汎用印刷プログラム４１によって生成されるバーコードの画像に代替する代替画像を生成する。【選択図】図２
2020166363.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置のコンピュータによって実行可能であり、前記情報処理装置と接続するプリンタに対応するサポートプログラムであって、
前記コンピュータに、
画像の印刷を前記プリンタに行わせる印刷指示が前記情報処理装置のオペレーティングシステムにあらかじめ組み込まれた汎用印刷プログラムに対してなされた場合に、前記印刷指示による印刷対象となった画像を示す画像データにバーコードを示す情報が含まれるか否かを判断する判断処理と、
前記判断処理にて前記バーコードを示す情報が含まれると判断した場合に、前記汎用印刷プログラムにより生成可能な前記バーコードの画像に代替する前記バーコードの代替画像を前記プリンタに印刷させるための特定データを生成する生成処理と、
を実行させる、
ことを特徴とするサポートプログラム。
【請求項２】
請求項１に記載するサポートプログラムにおいて、
前記コンピュータに、
前記画像データに基づいて前記汎用印刷プログラムが生成したラスタ画像データを取得する取得処理を実行させ、
前記判断処理では、
前記取得処理にて取得した前記ラスタ画像データのうちから前記バーコードの画像を示すバーコード画像データの検出を試み、前記バーコード画像データが検出された場合に、前記バーコードを示す情報が含まれると判断し、
前記生成処理では、
前記判断処理にて前記バーコードを示す情報が含まれると判断した場合、検出された前記バーコード画像データの改良を行ったバーコード画像データを含むラスタ画像データを、前記特定データとして生成する、
ことを特徴とするサポートプログラム。
【請求項３】
請求項２に記載するサポートプログラムにおいて、
前記生成処理では、
検出された前記バーコード画像データのうちグレースケールを示す画像データに対して二値化する前記改良を行ったラスタ画像データを、前記特定データとして生成する、
ことを特徴とするサポートプログラム。
【請求項４】
請求項２に記載するサポートプログラムにおいて、
前記生成処理では、
前記バーコードの画像に隣接する領域として、所定サイズ以上のクワイエットゾーンを設ける前記改良を行ったラスタ画像データを、前記特定データとして生成する、
ことを特徴とするサポートプログラム。
【請求項５】
請求項２に記載するサポートプログラムにおいて、
前記生成処理では、
用紙種に応じて、前記バーコードを構成するバーコードシンボルを最適化する前記改良を行ったラスタ画像データを、前記特定データとして生成する、
ことを特徴とするサポートプログラム。
【請求項６】
請求項２に記載するサポートプログラムにおいて、
前記生成処理では、
前記プリンタのモデルに応じて、前記バーコードを構成するバーコードシンボルを最適化する前記改良を行ったラスタ画像データを、前記特定データとして生成する、
ことを特徴とするサポートプログラム。
【請求項７】
請求項１に記載するサポートプログラムにおいて、
前記画像データには、描画対象となるオブジェクトを示すオブジェクト情報が１ないし複数記憶され、
前記判断処理では、
前記汎用印刷プログラムから前記画像データを含む印刷ジョブデータを取得し、取得した前記印刷ジョブデータの前記画像データの中に前記バーコードを示す前記オブジェクト情報がある場合に、前記バーコードを示す情報が含まれると判断し、
さらに前記コンピュータに、
前記判断処理にて前記バーコードを示す情報が含まれると判断した場合、前記バーコードを示す前記オブジェクト情報に対応するバーコードオブジェクトデータを、前記画像データを記憶する態様とは異なる態様で前記印刷ジョブデータに記憶させるバーコード記憶処理を実行させ、
前記生成処理では、
前記汎用印刷プログラムが前記印刷ジョブデータの前記画像データに含まれる前記オブジェクト情報に基づいて生成したラスタ画像データによって示される画像に、前記バーコードオブジェクトデータによって示される画像を組み合わせた画像を、前記プリンタに印刷させるための前記特定データを、前記バーコードオブジェクトデータに基づいて生成する、
ことを特徴とするサポートプログラム。
【請求項８】
請求項７に記載するサポートプログラムにおいて、
前記バーコード記憶処理では、
前記バーコードオブジェクトデータを、前記画像データを記憶する態様とは異なる態様で前記印刷ジョブデータに記憶させた後に前記画像データから削除する、
ことを特徴とするサポートプログラム。
【請求項９】
請求項８に記載するサポートプログラムにおいて、
前記バーコード記憶処理では、
前記画像データの全てのオブジェクト情報を、前記バーコードオブジェクトデータとする、
ことを特徴とするサポートプログラム。
【請求項１０】
請求項７から請求項９のいずれか１つに記載するサポートプログラムにおいて、
前記コンピュータに、
前記バーコードオブジェクトデータに基づいて、前記バーコードのラスタ画像データを生成するラスタ処理を実行させ、
前記生成処理では、
前記汎用印刷プログラムが前記印刷ジョブデータの前記画像データに含まれる前記オブジェクト情報に基づいて生成したラスタ画像データに、前記ラスタ処理によって生成された前記ラスタ画像データを合成したラスタ画像データを、前記特定データとして生成する、
ことを特徴とするサポートプログラム。
【請求項１１】
請求項７から請求項９のいずれか１つに記載するサポートプログラムにおいて、
前記生成処理では、
前記バーコードオブジェクトデータに含まれる前記オブジェクト情報に示される画像を前記プリンタに描画させるコマンドを生成し、さらに前記汎用印刷プログラムによって生成された前記ラスタ画像データに前記コマンドを付加したデータを、前記特定データとして生成し、前記汎用印刷プログラムは、前記生成処理によって生成された前記特定データを前記プリンタに送信し、前記プリンタは、前記コマンドに基づいて、画像を描画する機能を有している、
ことを特徴とするサポートプログラム。
【請求項１２】
請求項１に記載するサポートプログラムにおいて、
前記画像データには、描画対象となるオブジェクトを示すオブジェクト情報が１ないし複数記憶され、
前記判断処理では、
前記汎用印刷プログラムから前記画像データを含む印刷ジョブデータを取得し、取得した前記印刷ジョブデータの前記画像データの中に前記バーコードを示す前記オブジェクト情報がある場合に、前記バーコードを示す情報が含まれると判断し、
前記コンピュータに、
前記判断処理にて前記バーコードを示す情報が含まれると判断した場合、前記汎用印刷プログラムによる前記画像データに対する処理をキャンセルするキャンセル処理を実行させ、
前記生成処理では、
前記印刷ジョブデータの前記画像データに含まれる前記オブジェクト情報に基づいて、前記特定データを生成する、
ことを特徴とするサポートプログラム。
【請求項１３】
請求項１２に記載するサポートプログラムにおいて、
前記生成処理では、
前記印刷ジョブデータの前記画像データに含まれる前記オブジェクト情報に基づいて、前記バーコードの画像を含むラスタ画像データを前記特定データとして生成し、
さらに前記コンピュータに、
前記生成処理にて生成された前記特定データを、前記プリンタに送信する送信処理を実行させる、
ことを特徴とするサポートプログラム。
【請求項１４】
請求項１に記載するサポートプログラムにおいて、
前記生成処理では、
前記汎用印刷プログラムから前記画像データを含む印刷ジョブデータを取得し、取得した前記印刷ジョブデータの前記画像データに含まれるオブジェクト情報に基づいて、前記オブジェクト情報に対応する画像を前記プリンタに描画させるコマンドを前記特定データとして生成し、
さらに前記コンピュータに、
前記生成処理にて生成された前記特定データを、前記プリンタに送信する送信処理を実行させ、前記プリンタは、前記コマンドに基づいて、前記画像を描画する機能を有している、
ことを特徴とするサポートプログラム。
【請求項１５】
コンピュータを備える情報処理装置であって、
前記情報処理装置のオペレーティングシステムは、あらかじめ組み込まれたプログラムである汎用印刷プログラムを有しており、
前記情報処理装置には、前記情報処理装置と接続するプリンタに対応するサポートプログラムが組み込まれており、
前記コンピュータは、
画像の印刷を前記プリンタに行わせる印刷指示が前記汎用印刷プログラムに対してなされた場合に、前記印刷指示による印刷対象となった画像を示す画像データにバーコードを示す情報が含まれるか否かを判断する判断処理と、
前記判断処理にて前記バーコードを示す情報が含まれると判断した場合に、前記汎用印刷プログラムにより生成可能な前記バーコードの画像に代替する前記バーコードの代替画像を前記プリンタに印刷させるための特定データを生成する生成処理と、
を実行する、
ことを特徴とする情報処理装置。
【請求項１６】
情報処理装置にプリンタが接続され、
前記情報処理装置のオペレーティングシステムは、あらかじめ組み込まれたプログラムである汎用印刷プログラムを有しており、
前記情報処理装置には、前記情報処理装置と接続するプリンタに対応するサポートプログラムが組み込まれており、
前記情報処理装置で生成された印刷データに基づく印刷を、前記プリンタに実行させる印刷方法において、
画像の印刷を前記プリンタに行わせる印刷指示が前記汎用印刷プログラムに対してなされた場合に、前記サポートプログラムによって、前記印刷指示による印刷対象となった画像を示す画像データにバーコードを示す情報が含まれるか否かを判断する判断ステップと、
前記判断ステップにて前記バーコードを示す情報が含まれると判断した場合に、前記サポートプログラムによって、前記汎用印刷プログラムにより生成可能な前記バーコードの画像に代替する前記バーコードの代替画像を前記プリンタに印刷させるための特定データを生成する生成ステップと、
を含む、
ことを特徴とする印刷方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書に開示される技術分野は、プリンタの制御をサポートするサポートプログラム、情報処理装置、および印刷方法に関する。
【背景技術】
【０００２】
パーソナルコンピュータ等の情報処理装置からプリンタを制御する技術として、情報処理装置にプリンタドライバをインストールし、プリンタドライバによって印刷データを生成し、その印刷データをプリンタに送信する構成が広く知られている（例えば、特許文献１）。プリンタドライバは、プリンタのメーカから提供され、そのプリンタが有する各種の機能に対応しており、そのプリンタを十分に利用することができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−１３４７１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
近年、前述したプリンタドライバを利用せず、オペレーティングシステム（ＯＳ）に標準に組み込まれている汎用印刷プログラムによってプリンタを制御する技術が実用化されている。この技術では、ＯＳがプリンタを検知するとＯＳ標準の汎用印刷プログラムとの関連付けを行い、以後、そのプリンタに対する印刷指示を受け付けた場合に、プリンタドライバを用いずに、ＯＳ標準の汎用印刷プログラムによる印刷が可能になる。
【０００５】
しなしながら、前述したＯＳ標準の汎用印刷プログラムと、プリンタメーカから提供されるプリンタドライバとでは、印刷データを生成する際のアルゴリズムが異なる。そのため、プリンタドライバによる印刷ではバーコードを含む画像を印刷できるが、汎用印刷プログラムによる印刷ではそのバーコードの画像を印刷できない、あるいはそのバーコードの画像を印刷できたとしてもリーダで読み取り可能な品質にならない、といった可能性が生じる。
【０００６】
本明細書は、ＯＳ標準の汎用印刷プログラムが組み込まれた情報処理装置において、バーコードを印刷する際の精度を向上させる技術を開示する。
【課題を解決するための手段】
【０００７】
上述した課題の解決を目的としてなされたサポートプログラムは、情報処理装置のコンピュータによって実行可能であり、前記情報処理装置と接続するプリンタに対応するサポートプログラムであって、前記コンピュータに、画像の印刷を前記プリンタに行わせる印刷指示が前記情報処理装置のオペレーティングシステムにあらかじめ組み込まれた汎用印刷プログラムに対してなされた場合に、前記印刷指示による印刷対象となった画像を示す画像データにバーコードを示す情報が含まれるか否かを判断する判断処理と、前記判断処理にて前記バーコードを示す情報が含まれると判断した場合に、前記汎用印刷プログラムにより生成可能な前記バーコードの画像に代替する前記バーコードの代替画像を前記プリンタに印刷させるための特定データを生成する生成処理と、を実行させる、ことを特徴とする。
【０００８】
上記構成によれば、印刷対象の画像にバーコードを示す情報が含まれる場合、当該画像を印刷するプリンタに対応するサポートプログラムが、そのバーコードの画像を印刷するための固有の特定データを生成する。そのため、汎用印刷プログラムによってそのバーコードの画像をそのまま印刷する場合と比較して、描画精度の向上が期待できる。
【０００９】
上記装置の機能を実現するための制御方法、コンピュータプログラム、および当該コンピュータプログラムを格納するコンピュータにて読取可能な記憶媒体も、新規で有用である。
【発明の効果】
【００１０】
本明細書に開示される技術によれば、ＯＳ標準の汎用印刷プログラムが組み込まれた情報処理装置において、バーコードを印刷する際の精度を向上させる技術が実現される。
【図面の簡単な説明】
【００１１】
【図１】第１実施形態の印刷システムの電気的構成を示すブロック図である。
【図２】各プログラムによる動作の順序の例を示すシーケンス図である。
【図３】補助プログラムによる印刷データの改良を説明するイメージ図である。
【図４】第２実施形態を示すシーケンス図である。
【図５】印刷ジョブデータのデータ構造を説明する図である。
【図６】合成画像データの生成手順を説明するイメージ図である。
【図７】第３実施形態を示すシーケンス図である。
【図８】第４実施形態を示すシーケンス図である。
【発明を実施するための形態】
【００１２】
（第１実施形態）
以下、第１実施の形態のプログラムを利用する印刷システムについて、添付図面を参照しつつ詳細に説明する。本形態は、パーソナルコンピュータ（以下、「ＰＣ」とする）とプリンタとを含む印刷システムを具体化した実施の形態を開示するものである。本形態の印刷システムは、例えば、バーコードの印刷に用いられる。
【００１３】
第１形態のプログラムが実行される印刷システムの構成の例を、図１に示す。図１に示すシステムには、ＰＣ１と、プリンタ２と、プリンタ３と、が含まれる。ＰＣ１は、情報処理装置の一例である。プリンタ２およびプリンタ３は、印刷機能を有する装置であり、ローカル通信またはネットワーク通信を介して、ＰＣ１と通信可能である。なお、ＰＣ１には、複数のプリンタ２が接続されてもよい。
【００１４】
ＰＣ１は、例えば、図１に示すように、コントローラ１０と、ユーザインタフェース（以下、「ＵＩ」とする）２０と、通信インタフェース（以下、「通信ＩＦ」とする）３０と、を備えている。ＵＩ２０及び通信ＩＦ３０は、コントローラ１０に電気的に接続されている。
【００１５】
ＵＩ２０は、各種の表示を行い、ユーザの指示入力を受け付けるハードウェアを含む。ＵＩ２０は、表示機能と入力受付機能との両方の機能を有するタッチパネルであっても良いし、表示機能を有するディスプレイと入力受付機能を有するキーボードやマウス等との組合せであっても良い。
【００１６】
通信ＩＦ３０は、プリンタ２やプリンタ３との通信を行うためのハードウェアや、インターネットへのアクセスを行うためのハードウェアを含む。通信ＩＦ３０は、通信方式の異なる複数のインタフェースを含んでいても良い。通信方式としては、例えば、ネットワーク通信、ＵＳＢ通信がある。また、有線通信であっても無線通信であってもよい。
【００１７】
コントローラ１０は、ＣＰＵ１１と、メモリ１２と、を含む。ＣＰＵ１１は、コンピュータの一例である。メモリ１２は、ＲＯＭと、ＲＡＭと、不揮発性メモリと、ＣＰＵ１１のバッファと、を含み、各種のアプリケーションプログラム（以下、「アプリ」とする）などのプログラムや各種のデータなどを記憶する。なお、本明細書では、メモリの詳細を区別しない。ＣＰＵ１１は、メモリ１２から読み出したプログラムに従って、また、ユーザの指示に基づいて、各種の処理を実行する。なお、図１中のコントローラ１０は、ＰＣ１の制御に利用されるハードウェアやソフトウェアを纏めた総称であって、実際にＰＣ１に存在する単一のハードウェアを表すとは限らない。
【００１８】
メモリ１２の一例は、コンピュータが読み取り可能なストレージ媒体であってもよい。コンピュータが読み取り可能なストレージ媒体とは、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体である。ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体には、上記の例の他に、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等の記録媒体も含まれる。また、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体は、ｔａｎｇｉｂｌｅな媒体でもある。一方、インターネット上のサーバなどからダウンロードされるプログラムを搬送する電気信号は、コンピュータが読み取り可能な媒体の一種であるコンピュータが読み取り可能な信号媒体であるが、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙなコンピュータが読み取り可能なストレージ媒体には含まれない。
【００１９】
メモリ１２には、例えば、図１に示すように、汎用印刷プログラム４１を含むオペレーティングシステム（以下、「ＯＳ」とする）２１と、補助プログラム４２と、編集アプリ４３と、が記憶されている。補助プログラム４２は、サポートプログラムの一例である。補助プログラム４２は、例えば、マイクロソフト社が公開した仕様に基づいてプリンタベンダによって作成された、ハードウェアサポートアプリ（略称、ＨＳＡ）である。ＯＳ２１は、例えば、マイクロソフトウィンドウズ（登録商標）、ＭａｃＯＳ（登録商標）、Ｌｉｎｕｘ（登録商標）である。なお、メモリ１２には、図示したもの以外にも、接続されているプリンタの情報を含む各種のデータや、ブラウザ等の各種のプログラムが記憶されている。また、メモリ１２には、最適化テーブル２２など、各種情報が記憶されている。
【００２０】
汎用印刷プログラム４１は、ＰＣ１からプリンタ２等の各種のプリンタで印刷を実行させるためのアプリであり、ＯＳ２１にあらかじめ組み込まれているＯＳ標準の印刷プログラムである。本形態の汎用印刷プログラム４１は、印刷対象の画像データに基づいて、プリンタが対応可能な印刷データを生成するプログラムである。
【００２１】
汎用印刷プログラム４１は、各プリンタのベンダによって提供される複数種類のモデルのプリンタに適用可能な汎用のアプリであり、各モデルに共通する動作を各プリンタに行わせるプログラムである。あるいは、汎用印刷プログラム４１は、ＯＳ２１にあらかじめ組み込むために、各プリンタのベンダによってＯＳ２１のベンダに提供されるプログラム、例えば、ＯＳ２１にあらかじめ組み込むために提供されるプリンタドライバの一種であっても良い。
【００２２】
補助プログラム４２は、汎用印刷プログラム４１の起動に付随してＯＳ２１からの指示に基づいて処理を実行するプログラムであり、対象のハードウェア、例えばプリンタ２等の制御をサポートするアプリである。補助プログラム４２は、例えば、汎用印刷プログラム４１から起動される。補助プログラム４２は、プリンタ２等のベンダによってプリンタのタイプごとに用意されるプログラムである。例えば、インクジェットプリンタ用の補助プログラム４２やレーザプリンタ用の補助プログラム４２が用意される。プリンタのタイプごとに限らず、プリンタのモデルごとやプリンタのモデルのシリーズごとに用意される補助プログラム４２が有っても良い。
【００２３】
プリンタのベンダは、ＯＳ２１のベンダが指定する手順に従って、補助プログラム４２をＯＳ２１のベンダが提供するプラットフォームに登録する。ＯＳ２１は、ＰＣ１に新たにプリンタ２が接続され、そのプリンタ２に  対応する補助プログラム４２がプラットフォームに登録されている場合には、当該補助プログラム４２を補助プログラム４２が格納されているサーバからダウンロードしてＰＣ１に組み込む。
【００２４】
そして、ＯＳ２１は、組み込んだ補助プログラム４２の識別情報を新たに接続されたプリンタのプリンタ情報に対応付けて、メモリ１２に記憶させる。複数のモデルのプリンタが接続されているＰＣ１では、各モデルのタイプに対応するそれぞれの補助プログラムが組み込まれ、各プリンタと各補助プログラムとを対応付ける情報がメモリ１２に記憶される。つまり、メモリ１２には、ＰＣ１に接続されている各プリンタのプリンタ情報として、当該プリンタのモデル情報やアクセス情報とともに、対応する補助プログラム４２の情報が記憶される。
【００２５】
編集アプリ４３は、例えば、画像データや文書データの作成や編集を行うためのアプリである。編集アプリ４３は、例えば、マイクロソフト  ワード（登録商標）、パワーポイント（登録商標）である。また、プリンタ２やプリンタ３のベンダから提供されるアプリであってもよい。編集アプリ４３は、プリンタ２に所定の動作を行わせる指示を含むユーザ操作を受け付ける。具体的には、編集アプリ４３は、ＵＩ２０を介して、例えば、印刷対象となる画像の選択、印刷パラメータの設定、プリンタ２に印刷を実行させる印刷指示を受け付ける。編集アプリ４３は、印刷対象として、例えば、バーコードと文字を含む画像を有する画像を編集する編集操作を受け付けることができる。また、編集アプリ４３は、バーコードのバーコードフォントを含む画像を編集する編集操作を受け付けてもよい。
【００２６】
バーコードは、バーコードシンボルと、クワイエットゾーンとを有する。バーコードシンボルは、バーとスペースにより情報を表示する。クワイエットゾーンは、バーコードシンボルの左右上下に所定サイズ以上設けられる。バーコードリーダは、バーコードの反射率に基づいてバーコードを読み取る。バーコードシンボルのスペースやクワイエットゾーンは、白色のベタ領域であってもよいし、バーコードの検出に影響がない程度の工学的反射率を持つ薄い背景色の領域であってもよい。
【００２７】
汎用印刷プログラム４１は、例えば、バーコードと文字を含む画像の画像データを付した印刷指示を編集アプリ４３から受け付けた場合、当該画像データを加工して印刷データを生成する。しかし、例えば、汎用印刷プログラム４１が、バーコードシンボルを示す画像（以下「バーコード画像」とする）のバー部分を、グレースケールで示すことがある。また、汎用印刷プログラム４１は、バーコードシンボルのスペース部分やクワイエットゾーンに余分な黒点を描画する印刷データを生成することがある。
【００２８】
さらに、汎用印刷プログラム４１が、バーコードの印刷データを正確に生成しても、プリンタや用紙の特性によって、バーコードの画質が悪くなる恐れがある。例えば、インクジェット式のプリンタは、熱転写式のプリンタより滲みを生じやすく、用紙にバーコードのバーを印刷した場合に、滲みによって、バーの太さが印刷データの設定値より太くなることがある。また、普通紙は、光沢紙より滲みを生じやすく、用紙にバーコードを印刷した場合に、滲みによって、バーの太さが印刷データの設定値より太くなることがある。
【００２９】
そこで、補助プログラム４２は、汎用印刷プログラム４１が生成したバーコードの印刷データを、バーコードが読み取ることができるように改良することにより、バーコードを示すバーコード画像データの画質を最適化する。補助プログラム４２は、例えば、メモリ１２に設けられた最適化テーブル２２を用いて、印刷データを改良する。最適化テーブル２２は、印刷データを最適化する場合の補正値を記憶するものである。例えば、最適化テーブル２２は、モデル情報と用紙種情報と太さ情報とを関連付けて記憶している。
【００３０】
太さ情報は、バーコードシンボルを構成するバーの太さを補正する際の補正値を示す情報である。太さ情報の補正値が小さいほど、バーの太さが細くされる。モデル情報は、プリンタのモデルを示す情報である。例えば、モデルＡのプリンタが熱転写式のプリンタであり、モデルＢのプリンタがインクジェット式のプリンタである場合、モデルＢの太さ情報は、モデルＡの太さ情報より、補正値が小さくされている。例えば、モデルＡの太さ情報が「±０」である場合、モデルＢの太さ情報は「−１」とされる。つまり、同じバーコードを同じ種の用紙に印刷する場合でも、モデルＢは、モデルＡより、バーを細く描画する。
【００３１】
用紙種情報は、用紙の種類を示す情報である。例えば、同じモデルＢでも、普通紙の太さ情報は、光沢紙の太さ情報より、補正値が小さくされている。例えば、モデルＢの光沢紙に対する太さ情報が「−１」である場合、モデルＢの普通紙に対する太さ情報は「−２」とされる。つまり、同じモデルのプリンタに同じバーコードを印刷させる場合でも、普通紙は、光沢紙より、バーを細く描画される。
【００３２】
なお、実施の形態における処理およびシーケンス図の各処理ステップは、基本的に、補助プログラム４２などのプログラムに記述された命令に従ったＣＰＵ１１の処理を示す。すなわち、以下の説明における「判断」、「抽出」、「選択」、「算出」、「決定」、「特定」、「取得」、「受付」、「制御」等の処理は、ＣＰＵ１１の処理を表している。ＣＰＵ１１による処理は、ＯＳ２１のＡＰＩを用いたハードウェア制御も含む。本明細書では、ＯＳ２１の詳細な記載を省略して各プログラムの動作を説明する。すなわち、以下の説明において、「プログラムＢがハードウェアＣを制御する」という趣旨の記載は、「プログラムＢがＯＳ２１のＡＰＩを用いてハードウェアＣを制御する」ことを指してもよい。また、プログラムに記述された命令に従ったＣＰＵ１１の処理を、省略した文言で記載することがある。例えば、「ＣＰＵ１１が行う」のようにプログラムを省略して記載することがある。また、プログラムに記述された命令に従ったＣＰＵ１１の処理を、「プログラムＡが行う」のようにＣＰＵを省略した文言で記載することがある。
【００３３】
なお、「取得」は要求を必須とはしない概念で用いる。すなわち、ＣＰＵ１１が要求することなくデータを受信するという処理も、「ＣＰＵ１１がデータを取得する」という概念に含まれる。また、本明細書中の「データ」とは、コンピュータに読取可能なビット列で表される。そして、実質的な意味内容が同じでフォーマットが異なるデータは、同一のデータとして扱われるものとする。本明細書中の「情報」についても同様である。また、「要求する」、「指示する」とは、要求していることを示す情報や、指示していることを示す情報を相手に出力することを示す概念である。また、要求していることを示す情報や指示していることを示す情報のことを、単に、「要求」、「指示」とも記載する。
【００３４】
また、ＣＰＵ１１による、情報Ａは事柄Ｂであることを示しているか否かを判断する処理を、「情報Ａから、事柄Ｂであるか否かを判断する」のように概念的に記載することがある。ＣＰＵ１１による、情報Ａが事柄Ｂであることを示しているか、事柄Ｃであることを示しているか、を判断する処理を、「情報Ａから、事柄Ｂであるか事柄Ｃであるかを判断する」のように概念的に記載することがある。
【００３５】
次に、本形態の補助プログラム４２の動作を含む印刷手順の一例について、図２のシーケンス図を参照して説明する。補助プログラム４２は、編集アプリ４３等を介して、補助プログラム４２に対応するプリンタが指定された状態で汎用印刷プログラム４１を使用して印刷する印刷指示を受け付けた場合に、汎用印刷プログラム４１から実行指示されるプログラムである。以下では、ＰＣ１がＵＩ２０を介して、例えば、編集アプリ４３にて、印刷対象の画像データが指定された状態で、汎用印刷プログラム４１を介してのプリンタ２での印刷実行の指示を受け付けた場合であって、プリンタ２のモデルのタイプに対応する補助プログラム４２がＰＣ１に組み込まれている場合について説明する。
【００３６】
まず、編集アプリ４３は、ＵＩ２０を介して、印刷対象の画像の指定と、印刷実行の指示入力を受け付ける（矢印Ａ）。画像の編集を編集アプリ４３に指示する編集処理は、印刷対象の画像の指定の例である。編集操作に従って編集アプリ４３が編集した画像は、印刷対象の画像の例である。編集アプリ４３は、例えば、バーコードと文字を含む画像を印刷対象として指定した印刷指示を受け付ける。なお、編集アプリ４３は、バーコードを示すバーコード情報を、画像として受け付けてもよいし、バーコードフォントにより受け付けてもよい。印刷指示を受け付けた編集アプリ４３は、受け付けた印刷指示の内容を示す印刷実行通知をＯＳ２１に渡す。なお、図２では、ＯＳ２１の動作を省略して示している。
【００３７】
ＯＳ２１は、汎用印刷プログラム４１を使用する印刷実行通知を受け付けた場合、汎用印刷プログラム４１を実行させ、汎用印刷プログラム４１に印刷実行通知を渡す（矢印Ｂ）。汎用印刷プログラム４１は、印刷実行通知にて、印刷指示に含まれる各種の情報、例えば、印刷させるプリンタを示す情報、アプリにて設定された印刷パラメータを示す情報、印刷対象となる画像データを示す情報、印刷を指示したユーザを識別する情報を、取得できる。なお、後述するように、これらの情報は、補助プログラム４２でも使用可能とされる。
【００３８】
汎用印刷プログラム４１は、印刷実行通知に含まれる画像データの形式を中間画像データの形式に変換することで中間画像データを生成し、中間画像データを含む印刷ジョブデータを生成する（矢印Ｃ）。例えば、汎用印刷プログラム４１は、印刷実行通知に含まれるバーコードの画像又はバーコードフォントを含む画像データを中間画像データに加工する。編集アプリ４３に含まれる画像データは種々のタイプのものであり、汎用印刷プログラム４１は、受け取った画像データを、印刷データの生成に適した中間画像データに変換する。なお、印刷実行通知に含まれる画像データが印刷データの生成に適したデータであれば、中間画像データの生成を省略し、そのまま中間画像データとしても良い。中間画像データは、例えば、ＸＰＳデータである。
【００３９】
そして、汎用印刷プログラム４１は、中間画像データに基づいて印刷データを生成する（矢印Ｄ）。印刷データは、画像データに基づいて汎用印刷プログラム４１が生成したラスタ画像データの一例である。汎用印刷プログラム４１は、印刷パラメータのうちの汎用パラメータを用いて印刷データを生成する。汎用印刷プログラム４１によって生成される印刷データは、各種のプリンタにて印刷に使用できる形式の印刷データである。印刷データは、例えば、ＰＷＧＲａｓｔｅｒデータ、または、ＰＤＦデータである。
【００４０】
汎用印刷プログラム４１は、印刷指示にて指定されたプリンタであるプリンタ２に対応する補助プログラム４２がメモリ１２に記憶されていることから、補助プログラム４２の処理の実行命令を出力し、補助プログラム４２を動作させる（矢印Ｅ）。汎用印刷プログラム４１は、例えば、プリンタ２が指定されている場合、メモリ１２に記憶されているプリンタ情報に含まれるプリンタのモデル情報に基づいて、プリンタ２のモデルを特定し、モデルのタイプに対応する補助プログラム４２を起動させる。矢印Ｅの実行命令には、印刷パラメータと印刷データとが付される。
【００４１】
補助プログラム４２は、汎用印刷プログラム４１からの実行命令を受け付けることにより、印刷データを取得する（矢印Ｆ）。矢印Ｆは、取得処理の一例である。補助プログラム４２は、印刷データを解析し、バーコード画像を示すバーコード画像データを検索する（矢印Ｇ）。つまり、印刷ジョブデータにバーコードとしての特徴を持つ画像データが含まれているか否かを判断する。例えば、印刷データが、バーコードシンボルのように太さが異なる線を組み合わせた画像の画像データを含む場合、補助プログラム４２は、その画像データをバーコード画像データとして検出する（矢印Ｈ）。そして、補助プログラム４２は、検出したバーコード画像データを改良する（矢印Ｉ）。矢印Ｇ，Ｈは、判断処理の一例であり、矢印Ｉは、生成処理の一例である。
【００４２】
補助プログラム４２は、矢印Ｉにて、例えば、バーコード画像データがグレースケールを示す画像データを含むか否か、つまり、グレースケールの領域があるか否かを判断し、グレースケールを示す画像データを含む場合、グレースケールを示す画像データ、つまり、グレースケールの領域を、二値化することにより、バーコード画像データを改良してもよい。
【００４３】
例えば、図３（ａ）に示すように、汎用印刷プログラム４１が生成した印刷データ３００に、バーコード画像データ３０１がある場合、バーコード画像データ３０１の階調が白又は黒か否かを判断する。バーコード画像データ３０１のバーの領域３０２がグレースケールで示されている場合、補助プログラム４２は、グレースケールで示されている領域３０２を二値化することにより、バーコード画像データ３０１を改良する。図３（ｂ）に示す印刷データ４００のように、改良されたバーコード画像データ４０１は、グレースケールの領域３０２が黒色に変更され、汎用印刷プログラム４１のみでバーコード画像データを生成する場合より、バーコードの白の領域と黒の領域がはっきり区別される。よって、プリンタ２は、バーコードのバー部分を明瞭に描画し、バーコードリーダによって読み取り可能なバーコードを出力することが、期待される。
【００４４】
また、補助プログラム４２は、矢印Ｉにて、例えば、バーコード画像に隣接する領域に、所定サイズ以上のクワイエットゾーンを設けるように、印刷データを改良してよい。
【００４５】
例えば図３（ａ）に示すように、補助プログラム４２は、汎用印刷プログラム４１によって生成された印刷データ３００において、バーコード画像に隣接する領域に所定サイズ以上の白色領域３０５があるか否かを判断する。例えば、バーコード画像の左側にある白色領域３０５に汚点３０３がある場合、図３（ｂ）のに示すように、補助プログラム４２は、その汚点３０３を白色で塗り潰し、バーコード画像の左側に所定サイズ以上の白色領域３０５を確保する。なお、塗り潰す色は、白に限らず、バーコードの検出に影響しない程度の光学的反射率を持つ薄い色であってもよい。
【００４６】
また、例えば図３（ｃ）に示すように、汎用印刷プログラム４１によって生成された印刷データ５００において、バーコード画像に隣接する白色領域３０５が所定サイズ以上でない場合、バーコード画像データ５０１を縮小することによって、バーコード画像データ５０１の左右上下に設けられる白色領域３０５を所定サイズ以上に拡げる。この場合、補助プログラム４２は、バーコードリーダがバーとスペースを区別できるように、バーコードアルゴリズムに基づいて縮小率を決定する。このような塗り潰し処理や縮小処理により、所定サイズ以上のクワイエットゾーンがバーコードシンボルの左右上下に確保され、バーコードリーダがバーコードを認識する可能性が高くなる。
【００４７】
また、補助プログラム４２は、矢印Ｉにて、例えば、最適化テーブル２２に基づいて、バーコードシンボルをバーコードの読み取りに適した画像に加工することにより、バーコード画像データを改良してもよい。なお、バーコードシンボルをバーコードの読み取りに適した画像に加工することは、バーコードシンボルを最適化する改良を行うことの一例である。
【００４８】
例えば、プリンタ２のモデルが「モデルＢ」であって、印刷パラメータの用紙種が「普通紙」である場合、補助プログラム４２は、最適化テーブル２２から、「モデルＢ」と「普通紙」に関連付けられた太さ情報「−２」を読み出す。例えば、補助プログラム４２は、図３（ａ）に示すバーの太さ３０４を、読み出した太さ情報に応じて細くする加工を行う。これにより、バー部分の画像データは、滲みを反映したものとなるので、プリンタ２は、普通紙にバーコードを印刷した際に、バーの太さが印刷データによって指定される太さと同程度になり、バーコードの描画品質が向上することが期待される。
【００４９】
なお、ここでは、モデルと用紙種に基づいて太さ情報を特定したが、モデルと用紙種の何れか一方に基づいて太さ情報を特定してもよい。また、本形態では、バーの太さ、つまり、バーの幅を細くする加工を行うことによって、バーコードシンボルをバーコードの読み取りに適した画像に加工したが、白色等の反射率が高い領域のサイズを広くすることによりバーコードシンボルをバーコードの読み取りに適した画像に加工してもよい。なお、改良されたバーコード画像データは、代替画像の一例であり、改良されたバーコード画像データを含む印刷データは、特定データの一例である。また、矢印Ｉにおいて、上記の各種改良を全て行ってもよいし、ユーザが改良内容を選択できるようにして、選択に応じて改良を行ってもよい。
【００５０】
補助プログラム４２は、バーコード画像データを改良した後、バーコード画像データ以外について、印刷パラメータに基づいて印刷データを編集する（矢印Ｊ）。例えば、補助プログラム４２は、矢印Ｊにて、プリンタ２に特有な機能を実行させるためのコマンドを印刷データに付加する。なお、補助プログラム４２は、バーコード画像データを改良する部分を検出できない場合や、バーコード画像データが印刷データに含まれていない場合には、矢印Ｉを行わずに、矢印Ｊの処理を行ってもよい。なお、改良されたバーコード画像データを含む加工済みの印刷データは、特定データの一例である。
【００５１】
そして、補助プログラム４２は、処理後の印刷データを印刷ジョブに反映し、処理の終了を示す終了通知を汎用印刷プログラム４１に返して処理を終了する（矢印Ｋ）。補助プログラム４２は、処理後の印刷データを汎用印刷プログラム４１に提供することで、汎用印刷プログラム４１を介して、処理後の印刷データを印刷ジョブに反映しても良い。
【００５２】
汎用印刷プログラム４１は、補助プログラム４２から終了通知を受け取ったことに応じて、プリンタ２に対して印刷命令を送信する（矢印Ｌ）。これにより、印刷命令を受信したプリンタ２では、印刷命令に付された印刷データに従って、印刷データの画像の印刷が実行される。プリンタ２は、コマンドが付加された印刷データを受信した場合、印刷の実行に際して、コマンドによって示される動作を行う。なお、補助プログラム４２は、汎用印刷プログラム４１を介さずに通信ＩＦ３０を介して、印刷命令をプリンタ２に送信してもよい。その場合、補助プログラム４２は、前述したデータ形式とは異なるデータ形式に印刷データを変換して送信してもよい。
【００５３】
以上説明したように、印刷対象の画像にバーコードのバーコード画像が含まれる場合、プリンタメーカによって提供される補助プログラム４２が、バーコードの画像を印刷するために汎用印刷プログラム４１が生成した印刷データを、必要に応じて改良する。そのため、汎用印刷プログラム４１によってバーコードの画像をそのまま印刷する場合と比較して、バーコードの描画精度が高い印刷データを、プリンタ２に出力できる。つまり、汎用印刷プログラム４１によってバーコードの画像をそのまま印刷する場合と比較して、プリンタ２がバーコードリーダによって読み取り可能な描画精度でバーコードを印刷することが期待できる。
【００５４】
（第２実施形態）
続いて、第２実施形態のプログラムを利用する印刷システムについて、図面を参照しながら説明する。なお、以下の説明において、第１実施形態と共通する構成及び処理には、第１実施形態と同じ符号を図面に付し、説明を適宜省略する。
【００５５】
編集アプリ４３は、バーコードを含む画像データでなく、バーコードのバーコードフォントを印刷実行通知に付して汎用印刷プログラム４１に渡すことがある。バーコードの印刷は特殊な機能であるため、汎用印刷プログラム４１が、バーコードフォントを解析して中間画像データや印刷データを生成できない場合がある。そこで、本形態では、プリンタ２に対応する補助プログラム４２が、バーコードのバーコードフォントに基づいてバーコードのラスタ画像データを生成する機能を有する。
【００５６】
本形態の補助プログラム４２の動作を含む印刷手順の一例について、図４のシーケンス図を参照して説明する。なお、図４も、ＯＳ２１の動作を省略して示している。ここでは、編集アプリ４３が、バーコードと文字を含む画像を指定して、汎用印刷プログラム４１を介してプリンタ２に印刷を行わせる場合を例に挙げて説明する。
【００５７】
まず、編集アプリ４３は、ＵＩ２０を介して、印刷対象の画像の指定と、印刷実行の指示入力を受け付け（矢印Ａ）、印刷実行通知を出力する（矢印Ｂ）。例えば、編集アプリ４３は、バーコードフォントを含む画像を印刷対象として受け付けた場合、バーコードフォントを含む画像データを、印刷実行通知に付加する。
【００５８】
汎用印刷プログラム４１は、印刷実行通知に含まれる画像データの形式を中間画像データの形式に変換することで中間画像データを生成し、中間画像データを含む印刷ジョブデータを生成する（矢印Ｃ）。
【００５９】
例えば、汎用印刷プログラム４１は、図５（ａ）に示す印刷ジョブデータ２００を生成する。印刷ジョブデータ２００は、ヘッダ領域２０１と、オブジェクト領域２０２と、バッファ領域２０３などの各種記憶領域を備える。
【００６０】
ヘッダ領域２０１は、編集アプリ４３にて受け付けた設定を記憶する領域である。ヘッダ領域２０１には、例えば、プリンタ識別情報やモデルなどのプリンタ情報が記憶される。プリンタ情報は、汎用印刷プログラム４１が印刷実行通知に含まれる情報に基づいて、印刷を実行させる装置として指定されているプリンタを特定し、その特定したプリンタの情報が記憶される。汎用印刷プログラム４１は、例えば、プリンタ２が指定されている場合、メモリ１２に記憶されているプリンタ情報に含まれるプリンタのモデル情報に基づいて、プリンタ２のモデルを特定し、ヘッダ領域２０１に記憶する。また、ヘッダ領域２０１には、印刷実行命令に付された用紙サイズや用紙種、カラー／モノクロ、画質などの印刷パラメータが記憶される。
【００６１】
オブジェクト領域２０２は、描画対象となるオブジェクトを示すオブジェクト情報を記憶する領域である。つまり、オブジェクト領域２０２には、汎用印刷プログラム４１が生成した中間画像データがＸＰＳ形式で記憶される。例えば、バーコードフォントと文字列を含む画像を印刷対象として選択したユーザ操作が行われた場合、オブジェクト領域２０２には、文字列「あいうえお」のテキスト情報、つまり、テキスト内容、テキストフォント、サイズ、位置が記憶される。また、オブジェクト領域２０２には、バーコードのバーコード情報、つまり、バーコードフォント「１２３４５」、種類、サイズ、位置が記憶される。バッファ領域２０３は、各種処理を実行するための一時的な記憶領域である。
【００６２】
汎用印刷プログラム４１は、印刷ジョブデータ２００を生成した後、実行命令を出力する（矢印Ｏ）。つまり、汎用印刷プログラム４１は、印刷実行通知を検知したことを契機に、印刷データを生成する前に、補助プログラム４２へ実行命令を出力する。この実行命令には、印刷パラメータと、バーコードフォントを含む中間画像データとが付される。汎用印刷プログラム４１からの実行命令を受け付けた補助プログラム４２は、中間画像データからバーコード情報を検索する（矢印Ｐ）。例えば、補助プログラム４２は、印刷ジョブデータのオブジェクト領域２０２に、バーコードフォントがあるか否か判断する。
【００６３】
例えば、補助プログラム４２は、図５（ａ）に示す印刷ジョブデータを受け付けた場合、バーコードフォント「１２３４５」を検出する（矢印Ｑ）。つまり、中間画像データがバーコードを示すバーコード情報が含まれると判断する。矢印Ｐ，Ｑは判断処理の一例であり、バーコード情報を検出した場合は、印刷ジョブデータの画像データの中にバーコードを示すオブジェクト情報がある場合の一例である。
【００６４】
この場合、補助プログラム４２は、図５（ｂ）に示すように、バーコード情報をオブジェクト領域２０２からバッファ領域２０３に移動させる（矢印Ｒ）。つまり、補助プログラム４２は、検出したバーコード情報をバッファ領域２０３に上書きし、オブジェクト領域２０２からバーコード情報を削除する。なお、矢印Ｒは、バーコード記憶処理の一例であり、バッファ領域２０３に記憶されるバーコード情報は、バーコードオブジェクトデータの一例である。これにより、印刷ジョブデータの態様が変更される。
【００６５】
その後、補助プログラム４２は、図４に示すように、処理の終了を示す終了通知を汎用印刷プログラム４１に返して処理を終了する（矢印Ｓ）。
【００６６】
汎用印刷プログラム４１は、終了通知に応じて、オブジェクト領域２０２に記憶される中間画像データに基づいて印刷データを生成する（矢印Ｄ）。つまり、バーコードの画像を抜いた状態の中間画像データをラスタライズし、印刷データを生成する。汎用印刷プログラム４１は、印刷パラメータのうちの汎用パラメータを用いて印刷データを生成する。具体的に例えば、汎用印刷プログラム４１は、図６（ａ）に示すように、文字を示す画像のデータをラスタライズしてラスタ画像データ３１０を生成する。なお、汎用印刷プログラム４１が生成するラスタ画像データ３１０は、汎用印刷プログラムが印刷ジョブデータに含まれる画像データに含まれるオブジェクト情報に基づいて生成したラスタ画像データの一例である。
【００６７】
図４に示すように、印刷データの生成の終了後、汎用印刷プログラム４１は、補助プログラム４２の処理を実行させる実行命令を出力する（矢印Ｅ）。補助プログラム４２は、汎用印刷プログラム４１からの実行命令を受け付けることにより、印刷データを取得する（矢印Ｆ）。矢印Ｆは取得処理の一例である。補助プログラム４２は、バッファ領域２０３に記憶されるバーコード情報に基づいてラスタライズを行い、バーコードのラスタ画像データを生成する（矢印Ｔ）。
【００６８】
具体的に例えば、補助プログラム４２は、図６（ｂ）に示すように、バーコードを示すバーコード画像のラスタ画像データ３２０を生成する。ラスタ画像データ３２０は、汎用印刷プログラム４１から取得した印刷データと同じデータ形式で生成される。矢印Ｔは、ラスタ処理の一例である。
【００６９】
補助プログラム４２は、汎用印刷プログラム４１がオブジェクト領域２０２に記憶される中間画像データに基づいて生成した印刷データに、矢印Ｔによって生成したバーコードのラスタ画像データを合成し、合成画像データを生成する（矢印Ｕ）。具体的に例えば、補助プログラム４２は、図６（ａ）に示すラスタ画像データ３１０と、図６（ｂ）に示すラスタ画像データ３２０とを合成し、図６（ｃ）に示す合成画像データ３３０を生成する。矢印Ｕは、生成処理の一例であり、合成画像データ３３０は特定データの一例である。
【００７０】
その後、補助プログラム４２は、終了通知を汎用印刷プログラム４１に返して処理を終了する（矢印Ｋ）。汎用印刷プログラム４１は、補助プログラム４２から終了通知を受け取ったことに応じて、プリンタ２に対して印刷命令を送信する（矢印Ｌ）。このとき、印刷命令には、合成画像データ３３０が付される。プリンタ２は、印刷命令に従って、合成画像データ３３０を描画し、バーコードと文字を含む画像を用紙に印刷する。
【００７１】
なお、矢印Ｑにて、バーコードフォントを検出できない場合、補助プログラム４２が上記矢印Ｒ、Ｔ、Ｕの処理を実行しない状態で、印刷処理が行われる。
【００７２】
以上説明したように、印刷対象の画像にバーコードを示すバーコードフォントが含まれる場合、補助プログラム４２が、バッファ領域２０３に記憶されるバーコードフォント「１２３４５」から、バーコードを示すバーコード画像のラスタ画像データ３２０を生成する（矢印Ｔ、図６（ｂ））。補助プログラム４２は、汎用印刷プログラム４１が生成したラスタ画像データ３１０（図６（ａ））に、補助プログラム４２が生成したラスタ画像データ３２０（図６（ｂ））を組み合わせることにより、合成画像データ３３０を生成する（矢印Ｕ、図６（ｃ））。よって、汎用印刷プログラム４１がバーコードフォントからバーコードのラスタ画像データを生成できない場合でも、プリンタ２はバーコードの画像を描画することが可能になる。特に、プリンタ２に対応する補助プログラム４２が合成画像データ３３０を生成するので、バーコードの描画精度の向上が期待できる。
【００７３】
また、補助プログラム４２は、矢印Ｒにて、バーコード情報をオブジェクト領域２０２からバッファ領域２０３に移動させ、オブジェクト領域２０２に記憶されているオブジェクト情報の量を減らしている。そのため、汎用印刷プログラム４１が、矢印Ｄにてラスタライズする処理量を減らすことができる。
【００７４】
なお、オブジェクト領域２０２に記憶されるオブジェクト情報は、バッファ領域２０３に全て移動させてもよい。この場合、補助プログラム４２は、矢印Ｔにて、例えば、文字とバーコードを含む画像全体をラスタライズすることになる。これによれば、オブジェクト領域２０２にオブジェクト情報がないので、矢印Ｄにて、汎用印刷プログラム４１がラスタライズする処理量を減らすことができる。
【００７５】
また、矢印Ｒにて、オブジェクト領域２０２からバーコード情報を削除しなくてもよい。この場合、矢印Ｕにて生成したラスタ画像データを、オブジェクト領域２０２に記憶されるデータに上書きすることにより、印刷ジョブデータの態様を変更してもよい。
【００７６】
（第３実施形態）
続いて、第３実施形態のプログラムを利用する印刷システムについて、図面を参照しながら説明する。なお、以下の説明において、第１実施形態と共通する構成及び処理には、第１実施形態と同じ符号を図面に付し、説明を適宜省略する。
【００７７】
本形態は、編集アプリ４３から汎用印刷プログラム４１に印刷指示があった場合に、補助プログラム４２が、その印刷指示に付された画像データをラスタライズして印刷データを生成し、プリンタ２に送信する点、つまり、汎用印刷プログラム４１が印刷データの生成と送信を行わない点が、上記第１実施形態と相違している。
【００７８】
本形態の補助プログラム４２の動作を含む印刷手順の一例について、図７のシーケンス図を参照して説明する。なお、図７も、ＯＳ２１の動作を省略して示している。ここでは、編集アプリ４３が、バーコードと文字を含む画像を指定して、汎用印刷プログラム４１を介してプリンタ２に印刷を行わせる場合を例に挙げて説明する。
【００７９】
補助プログラム４２は、汎用印刷プログラム４１から出力された実行命令を受け付け、印刷ジョブデータを取得すると（矢印ａ）、バーコード情報を検索する（矢印ｂ）。つまり、印刷ジョブデータに記憶される中間画像データに、バーコード情報が含まれるか否かを判断する。中間画像データは、オブジェクト情報の一例である。バーコード情報は、バーコード画像でも、バーコードフォントでもよい。
【００８０】
補助プログラム４２は、バーコード情報を検出すると（矢印ｃ）、汎用印刷プログラム４１にキャンセル通知を出力する（矢印ｄ）。キャンセル通知を受け付けた汎用印刷プログラム４１は、それ以降、当該印刷ジョブの処理に関与しなくなる。なお、矢印ｂ，ｃは、判断処理の一例であり、矢印ｄは、キャンセル処理の一例である。
【００８１】
キャンセル通知を出力した補助プログラム４２は、中間画像データの編集を行い（矢印ｅ）、その加工済みの中間画像データをラスタライズすることにより、印刷データを生成する（矢印ｆ）。なお、矢印ｅを行っていない場合、汎用印刷プログラム４１から取得した中間画像データをラスタライズして印刷データを生成する。つまり、バーコードのバーコード画像を含む画像全体のラスタ画像データを生成する。矢印ｆは、生成処理の一例であり、印刷データは、特定データの一例である。
【００８２】
そして、補助プログラム４２は、通信ＩＦ３０を用いて、矢印ｆにて生成した印刷データをプリンタ２に送信する（矢印ｇ）。矢印ｇは、送信処理の一例である。プリンタ２は、印刷データに従って、バーコードを含む画像の印刷を実行する。
【００８３】
なお、バーコード情報が中間画像データに含まれず、バーコード情報を検出できない場合（矢印ｃ）、補助プログラム４２は、矢印ｄのキャンセル通知の出力を行わなくても良い。この場合、汎用印刷プログラム４１は、中間画像データに基づく印刷データを生成し、生成した印刷データをプリンタ２に送信する。つまり、補助プログラム４２は、矢印ｆ、ｇを実行しなくてもよい。
【００８４】
以上説明したように、汎用印刷プログラム４１が生成した中間画像データがバーコード情報を含む場合、プリンタ２に対応する補助プログラム４２が、バーコードを含む画像全体のラスタ画像データを生成して（矢印ｆ）、その印刷データをプリンタ２に送信する（矢印ｇ）。すなわち、汎用印刷プログラム４１が印刷データの生成および送信に関与しない。そのため、補助プログラム４２は、汎用印刷プログラム４１がバーコードの画像を含む印刷データを生成する場合より、バーコードの描画精度が高い印刷データを生成して、プリンタ２に出力できる。つまり、バーコードリーダが読み取り可能なバーコードをプリンタ２に印刷させることができる。
【００８５】
（第４実施形態）
続いて、第４実施形態のプログラムを利用する印刷システムについて、図面を参照しながら説明する。なお、以下の説明において、第３実施形態と共通する構成及び処理には、第３実施形態と同じ符号を図面に付し、説明を適宜省略する。本形態は、プリンタ２が特有の機能として、バーコードを生成する機能を有し、補助プログラム４２が印刷データの生成に代えてコマンドを生成し、プリンタ２に送信する点が、第３実施形態と相違する。
【００８６】
図８のシーケンス図に示すように、補助プログラム４２は、バーコード情報を検出した場合（矢印ｃ）、つまり、汎用印刷プログラム４１が生成した中間画像データが、バーコード情報を含むと判断した場合、中間画像データにフラグを設定する（矢印ｈ）。そして、補助プログラム４２は、キャンセル通知を出力し（矢印ｄ）、中間画像データ編集処理を行う（矢印ｅ）。なお、矢印ｈ、ｄの処理は順序が逆でもよい。
【００８７】
補助プログラム４２は、矢印ｅにて加工した中間画像データにフラグが設定されているか否かを判断し（矢印ｉ）、フラグが設定されている場合には、中間画像データと印刷パラメータに基づいてコマンドを生成する（矢印ｊ）。そして、補助プログラム４２は、生成したコマンドを、通信ＩＦ３０を用いてプリンタ２に送信する（矢印ｋ）。プリンタ２は、コマンドに従って、バーコードと文字を含む印刷対象の画像を描画する。
【００８８】
なお、バーコード情報が中間画像データに含まれず、バーコード情報を検出できない場合（矢印ｂ）、補助プログラム４２は、矢印ｄのキャンセル通知の出力を行わず、汎用印刷プログラム４１に中間画像データに基づく印刷データの生成を行わせ、その印刷データを送信させてもよい。つまり、補助プログラム４２は、矢印ｈ、ｉ〜ｋを実行しなくてもよい。
【００８９】
以上説明したように、汎用印刷プログラム４１が生成した中間画像データがバーコード情報を含む場合、プリンタ２に対応する補助プログラム４２が、バーコードを含む画像全体をラスタライズするためのコマンドを生成して（矢印ｊ）、そのコマンドをプリンタ２に送信する（矢印ｋ）。すなわち、汎用印刷プログラム４１が印刷データの生成および送信に関与しない。プリンタ２が、プリンタ２に対応する補助プログラム４２が生成したコマンドに従って、バーコードと文字を含む印刷対象となる画像の描画を行うので、汎用印刷プログラム４１から印刷命令を受けて印刷する場合より、バーコードの描画精度が高くなる。つまり、バーコードリーダが読み取り可能なバーコードをプリンタ２に印刷させることができる。
【００９０】
なお、本実施の形態は単なる例示にすぎず、本発明を何ら限定するものではない。したがって本発明は当然に、その要旨を逸脱しない範囲内で種々の改良、変形が可能である。例えば、ＰＣ１に接続される装置は、プリンタに限らず、複合機、複写機、ＦＡＸ装置、等印刷機能を有する装置であればよい。また、ＰＣ１に接続されるプリンタは、図示の例に限らず、１台でも良いし、３台以上でもよい。また、オブジェクト情報に記憶する情報は、１つでもよいし、３つ以上であってもよい。
【００９１】
図４の矢印Ｔは、バッファ領域２０３に記憶されるバーコード情報に基づいて、バーコードを含む画像をラスタライズするコマンドを生成する処理であってもよい。この場合、矢印Ｕでは、汎用印刷プログラム４１が生成した印刷データにコマンドを付加するとよい。汎用印刷プログラム４１は、このコマンドを付加した印刷データをプリンタ２に送信し、プリンタ２は、コマンドに基づいてバーコードの画像を生成し、描画を行う。これによれば、プリンタ２にバーコードを描画させるので、描画精度が高いバーコード画像をプリンタ２に出力させることができる。
【００９２】
図２及び図４では、補助プログラム４２によるバーコードの改良を説明したが、補助プログラム４２は、バーコードの改良以外の中間画像データの編集や印刷データの編集などの処理を行ってもよい。
【００９３】
また、実施の形態に開示されている任意のシーケンス図において、任意の複数のステップにおける複数の処理は、処理内容に矛盾が生じない範囲で、任意に実行順序を変更できる、または並列に実行できる。
【００９４】
また、実施の形態に開示されている処理は、単一のＣＰＵ、複数のＣＰＵ、ＡＳＩＣなどのハードウェア、またはそれらの組み合わせで実行されてもよい。また、実施の形態に開示されている処理は、その処理を実行するためのプログラムを記録した記録媒体、または方法等の種々の態様で実現することができる。
【符号の説明】
【００９５】
１  ＰＣ
２  プリンタ
１１  ＣＰＵ
２０  ＵＩ
２１  ＯＳ
３０  通信ＩＦ
４１  汎用印刷プログラム
４２  補助プログラム
【図１】
2020166363.tif 000003
【図２】
2020166363.tif 000004
【図３】
2020166363.tif 000005
【図４】
2020166363.tif 000006
【図５】
2020166363.tif 000007
【図６】
2020166363.tif 000008
【図７】
2020166363.tif 000009
【図８】
2020166363.tif 000010