以下、適宜図面を参照して本発明の実施形態について説明する。なお、以下に説明する実施形態は、本発明の一例にすぎず、本発明の要旨を変更しない範囲で、本発明の実施形態を適宜変更できることは言うまでもない。例えば、後述する各処理の実行順序は、本発明の要旨を変更しない範囲で、適宜変更できる。
図1は、本実施形態に係るプリンタシステム1のブロック図である。図1に示すプリンタシステム1は、PC(情報処理装置の一例)10、プリンタ(デバイスの一例)50a〜dを備える。PC10は、CPU(コンピュータの一例)12、メモリ14、LCD(表示インタフェースの一例)16、入力I/F(ユーザインタフェースの一例)18、ネットワークI/F(通信インタフェースの一例)20を主に備えている。これらの構成要素は、バス22を介して互いに通信可能とされている。
PC10及びプリンタ50a〜dは、ネットワークI/F20及びネットワーク52を通じて通信可能となっている。通信の方式としては、例えば、有線LAN、USB、Wi−Fi(登録商標)やBluetooth(登録商標)を採用できる。
プリンタ50a〜dは、例えば、ラベルプリンタであり、PC10との間で各種の情報や指示信号を送受信し、PC10による制御に基づいて、所望のテキストや画像等を印字したラベルを作成する。プリンタ50a〜dは、例えば、ラミネートフィルム等の長尺状のテープにテキスト等を印刷してラベルを作成する。また、プリンタ50a〜cに、バーコードリーダ56a〜cが接続されているが、プリンタ50dにバーコードリーダは接続されていない。なお、プリンタ50a〜dは、パラメータ設定メモリを有しており、そのパラメータ設定メモリに印刷機能に関するパラメータが記憶されている。
CPU12は、メモリ14内の制御プログラム(制御プログラム、及び、第2の制御プログラムの一例)30,画像形成プログラム(第1の制御プログラムの一例)32,プリンタドライバ34a〜d,プリンタ特性提供モジュール(制御プログラム、対応プログラム、及び、第3の制御プログラムの一例)36a〜d,OS37に従って処理を実行する。制御プログラム30は、後に詳しく説明するが、バーコードリーダ56a〜cを利用した印刷処理(以下、「バーコード印刷処理」と記載する)が実行される際の印刷条件等を設定するためのプログラムである。画像形成プログラム32は、画像データを形成するためのプログラムである。画像形成プログラム32は、ラベルプリンタに印刷させるためのラベル画像を示す画像データを作成するアプリケーションである。文書作成アプリケーション、表計算アプリケーション、画像編集アプリケーションなどが画像形成プログラム32の一例であってもよい。各アプリケーションが作成する文書データ、表計算データなどが、画像データの一例であってもよい。プリンタドライバ34a〜dの各々は、プリンタ50a〜dの各々に対応するデバイスドライバであり、例えば、画像形成プログラム32により形成された画像データを、対応するプリンタに対応する形式の印刷データに変換するプログラムである。
プリンタ特性提供モジュール36a〜dの各々は、プリンタドライバ34a〜dの各々に対応し、対応するプリンタドライバがPC10にインストールされる際に、対応するプリンタドライバとともにPC10にインストールされる。なお、各プリンタ特性提供モジュール36a〜dは、対応するプリンタドライバに応じたプリンタのモデル特有の情報を提供するためのプログラムである。
OS37は、制御プログラム30,画像形成プログラム32等に利用される基本的な機能を提供するプログラムである。OS37は、例えば、Windows(登録商標)、MacOS(登録商標)、Linux(登録商標)、Android(登録商標)、iOS(登録商標)等のオペレーティングシステムである。なお、以下の説明では、制御プログラム30等を実行するCPU12のことを、単にプログラム名でも記載する場合がある。例えば、「制御プログラム30が」という記載は、「制御プログラム30を実行するCPU12が」ということを意味する場合がある。
また、メモリ14は、データ記憶領域38を備える。データ記憶領域38は、制御プログラム30等の実行に必要なデータなどを記憶する領域である。なお、メモリ14は、RAM、ROM、フラッシュメモリ、HDD、PC10に着脱されるUSBメモリ等の可搬記憶媒体、CPU12が備えるバッファなどが組み合わされて構成されている。また、メモリ14は、各プリンタドライバ34a〜dの専用のドライバ専用ファイル(記憶領域の一例)40a〜dを記憶している。各ドライバ専用ファイル40a〜dは、対応するプリンタドライバがPC10にインストールされる際に、対応するプリンタドライバとともにPC10にインストールされる。つまり、ドライバ専用ファイル40a〜dとプリンタ特性提供モジュール36a〜dとの各々は、対応するプリンタドライバがPC10にインストールされる際に、対応するプリンタドライバとともにPC10にインストールされ、各プリンタドライバ34a〜dと各プリンタ特性提供モジュール36a〜dと各ドライバ専用ファイル40a〜dとが対応付けられる。
プリンタドライバ34a〜dは、OS37が定義するレジストリにプリンタドライバを示す情報が記憶されることで、OS37に登録されるようになっている。また、OS37に登録されたプリンタドライバ34a〜dは、プリンタ50a〜dを識別するプリンタ識別情報と対応付けられる。画像形成プログラム32は、プリンタ識別情報を選択して、画像データの印刷を指示することができるように構成されている。画像形成プログラム32が印刷を指示すると、OS37はプリンタ識別情報に対応するプリンタドライバ34a〜dに、画像形成プログラム32が作成した画像データに基づいて印刷データを作成するよう指示し、プリンタドライバ34a〜dが作成した印刷データをプリンタ50a〜dに送信することで、プリンタ50a〜dに印刷させる。プリンタドライバ34a〜dが、作成した印刷データをOS37に渡すことを、「プリンタドライバ34a〜dがプリンタ50a〜dに印刷を指示する」と記載してもよい。
プリンタドライバ34a〜dのインストーラは、プリンタドライバ34a〜dをOS37に登録し、プリンタドライバ34a〜dとプリンタ識別情報とを対応付けるときに、プリンタドライバ34a〜dを示す情報と、プリンタ特性提供モジュール36a〜dのファイル名とを対応付けてレジストリに記憶する。これにより、プリンタドライバ34a〜dとプリンタ特性提供モジュール36a〜dとは対応付けられる。プリンタ特性提供モジュール36a〜dはドライバ専用ファイルのファイル名をモジュール内に記憶しているため、プリンタ特性提供モジュール36a〜dとドライバ専用ファイル40a〜dとは、インストールされた時点で対応付けられることになる。
なお、プリンタドライバインストール時において、ドライバ専用ファイル及びプリンタ特性提供モジュールだけでなく、プリンタドライバに対応するドライバ専用のドライバインタフェースもインストールされるが、ドライバインタフェースの図示は省略する。ちなみに、各ドライバ専用ファイル40a〜dには、対応するプリンタドライバに応じたプリンタのモデル特有のモデル情報,対応するプリンタドライバに応じたプリンタで印刷可能な印刷用紙に関する情報等が記憶されている。
なお、メモリ14は、コンピュータが読み取り可能なストレージ媒体であってもよい。コンピュータが読み取り可能なストレージ媒体とは、non−transitoryな媒体である。non−transitoryな媒体には、上記の例の他に、CD−ROM、DVD−ROM等の記録媒体も含まれる。また、non−transitoryな媒体は、tangibleな媒体でもある。一方、インターネット上のサーバなどからダウンロードされるプログラムを搬送する電気信号は、コンピュータが読み取り可能な媒体の一種であるコンピュータが読み取り可能な信号媒体であるが、non−transitoryなコンピュータが読み取り可能なストレージ媒体には含まれない。
また、図2に、制御プログラム30,画像形成プログラム32等の各プログラムとドライバ専用ファイル40a〜dとの関係を概念的に示す。具体的には、画像形成プログラム32は、印刷用の画像データを作成するプログラムであり、ユーザの操作に従って印刷用の画像データを作成することと、作成した印刷用の画像データをプリンタドライバ34a〜dに出力することができる。このとき、ユーザの操作で指定された、印刷に使われるパラメータも画像データに付加することができる。そして、プリンタドライバ34a〜dは、ネットワークI/F20を介して、受け付けた画像データ及び、印刷指示を、対応するプリンタ50a〜dに送信する。プリンタドライバは、画像形成プログラム32が出力したパラメータ、および、プリンタドライバへのユーザ操作で指定されたパラメータに基づいて、印刷データを作成する際に画像データを加工したり、印刷指示に反映したりすることができる。これにより、プリンタ50a〜dにおいて、受信した画像データに基づく、印刷に使われるパラメータに従った印刷処理が実行される。
また、制御プログラム30は、バーコード印刷処理が実行される際の印刷条件等を設定するためのプログラムであり、印刷条件が設定されると、設定された印刷条件を、ネットワークI/F20を介して、プリンタ50a〜dに送信する。そして、プリンタ50a〜dにおいて、受信した印刷条件に従って、バーコード印刷処理が実行される。
また、プリンタ特性提供モジュール36a〜dには、対応するプリンタのモデル特有の情報が含まれており、プリンタ特性提供モジュール36a〜dは、含まれてされている情報を、制御プログラム30及び画像形成プログラム32に提供する。モジュールに情報が含まれていることを「プログラミングされている」とも記載する。また、プリンタ特性提供モジュール36a〜dは、対応するドライバ専用ファイル40a〜dから情報を取得し、取得した情報を、制御プログラム30及び画像形成プログラム32に提供する。
また、LCD16は、PC10の各種情報を表示する。なお、本願のディスプレイは、液晶ディスプレイに限らず、有機ELディスプレイ等の他の表示方式のディスプレイでも良い。入力I/F18は、キーボード、マウス等を含み、ユーザ操作を入力するためのインタフェースである。なお、入力I/F18は、キーボード等に限らず、LCD16の表示画面に重畳された膜状のタッチセンサでも良い。
プリンタシステム1では、PC10のプリンタドライバが作成した印刷データをプリンタに入力することで印刷をする印刷処理(以下、「PC印刷処理」と記載する)と、プリンタのメモリに記憶されている画像データのうちいずれを印刷するかを指定するバーコードを、プリンタに接続されたバーコードリーダでの読み込むことにより実行される、バーコードが指定する画像データを印刷する印刷処理、つまり、バーコード印刷処理とを実行することが可能とされている。バーコード印刷に用いられる画像データを記憶するメモリは、プリンタに装着されたメモリカードであってもよいし、プリンタと通信可能な装置に備えられたハードディスクなどのメモリであってもよい。メモリに記憶された画像データのことをテンプレートデータと記載してもよい。バーコード印刷処理のことをテンプレート印刷処理と記載してもよい。以下に、各印刷処理について具体的に説明する。
なお、本明細書では、基本的に、プログラムに記述された命令に従ったCPU12の処理を示す。すなわち、以下の説明における「判断」、「抽出」、「選択」、「算出」、「決定」、「特定」、「取得」、「受付」、「制御」「設定」等の処理は、CPU12の処理を表している。CPU12による処理は、OS38を介したハードウェア制御も含む。なお、「取得」は要求を必須とはしない概念で用いる。すなわち、CPU12が要求することなくデータを受信するという処理も、「CPU12がデータを取得する」という概念に含まれる。また、本明細書中の「データ」とは、コンピュータに読取可能なビット列で表される。そして、実質的な意味内容が同じでフォーマットが異なるデータは、同一のデータとして扱われるものとする。本明細書中の「情報」についても同様である。また、「命令」「応答」「要求」等の処理は、「命令」「応答」「要求」等を示す情報を通信することにより行われる。また、「命令」「応答」「要求」等の文言を、「命令」「応答」「要求」等を示す情報そのものという意味で記載してもよい。また、CPUによる、情報Aは事柄Bであることを示しているか否かを判断する処理を、「情報Aから、事柄Bであるか否かを判断する」のように概念的に記載することがある。CPUによる、情報Aが事柄Bであることを示しているか、事柄Cであるかを示しているかを判断する処理を、「情報Aから、事柄Bであるか事柄Cであるかを判断する」のように概念的に記載することがある。
まず、PC印刷処理では、画像形成プログラム32が、PC10と通信可能なプリンタ50を識別することが可能なプリンタ識別情報を、OS37から取得する。次に、画像形成プログラム32は、取得したプリンタ識別情報により識別されるプリンタ50のうちの画像形成プログラム32により印刷処理を実行させることが可能なプリンタ50を抽出する。そして、画像形成プログラム32は、抽出されたプリンタ50から任意のプリンタ50を選択するための選択画面(図示省略)をCPU12に表示する。
続いて、選択画面へのユーザ操作によりプリンタ50が選択されると、画像形成プログラム32は、選択されたプリンタ(以下、「選択プリンタ」と記載する)に対応するプリンタ特性提供モジュール36に、そのプリンタ特性提供モジュール36に対応するプリンタ50(すなわち、選択プリンタ)で印刷可能な用紙サイズに関する情報(以下、「用紙情報」と記載する)を要求する(図3参照:S100)。そして、プリンタ特性提供モジュール36は、用紙サイズ情報の要求を受け付けると、対応するドライバ専用ファイル40に用紙情報を要求する(S102)。なお、プリンタ特性提供モジュール36とドライバ専用ファイル40との情報の送受信は、不図示のドライバインタフェースを介して行われる。
ドライバ専用ファイル40は、対応するプリンタ50の用紙情報を記憶しており、対応するプリンタ特性提供モジュール36からの要求によって、用紙情報がプリンタ特性提供モジュール36に取得される(S104)。そして、プリンタ特性提供モジュール36は、取得した用紙情報を画像形成プログラム32に出力する(S106)。また、画像形成プログラム32は、用紙情報を受け付けると、選択プリンタにおいてミラー印刷処理を実行することができるか否かを含む、印刷に用いられるパラメータに関する特性を、選択プリンタに対応するプリンタ特性提供モジュール36に問い合わせる(S106)。すなわち、ミラー印刷処理のパラメータは、印刷に用いられるパラメータである。なお、ミラー印刷処理の実行の可否に関して、プリンタ50のみでミラー印刷処理を実行できる場合と、プリンタ50とプリンタドライバ34とによりミラー印刷処理を実行できる場合と、プリンタドライバ34の有無に関わらずミラー印刷処理を実行できない場合がある。「プロダクトとしてミラー印刷処理を実行できる」とは、プリンタ50のみでミラー印刷処理を実行できる場合と、プリンタ50とプリンタドライバ34とによりミラー印刷処理を実行できる場合の両方を含む概念である。
具体的には、ミラー印刷処理に対応しているプリンタでは、ミラー印刷用の画像データが有れば、そのミラー印刷用の画像データに基づいて、ミラー印刷処理を実行することが可能である。しかしながら、プリンタのモデルに応じて、プリンタがミラー印刷用の画像データを作成することができないが、そのプリンタに対応するプリンタドライバがミラー印刷用の画像データを作成することが可能なプリンタモデルが存在する。このような場合には、プリンタのみでミラー印刷処理を実行できないが、プリンタ50とプリンタドライバ34とによりミラー印刷処理を実行できる。一方、プリンタのモデルに応じて、プリンタがミラー印刷用の画像データを作成することが可能なプリンタモデルが存在する。このような場合には、プリンタのみでミラー印刷処理を実行できる。また、ミラー印刷処理に対応していないプリンタでは、ミラー印刷用の画像データがあっても、ミラー印刷用の画像データに基づいて、ミラー印刷処理を実行することが不能である。このような場合には、プリンタドライバ34の有無に関わらずミラー印刷処理を実行できない。つまり、ミラー印刷処理に対応しているプリンタには、プリンタとプリンタドライバとにより構成されるプロダクトによりミラー印刷処理を実行できるプリンタと、プリンタのみによりミラー印刷処理を実行できるプリンタとがある。
このような前提のもとに、画像形成プログラム32は、用紙情報を受け付けると、選択プリンタはミラー印刷処理に対応しているか否かを、プリンタ特性提供モジュール36に問い合わせる(S106)。つまり、画像形成プログラム32は、選択プリンタが、プリンタとプリンタドライバとにより構成されるプロダクトによりミラー印刷処理を実行できるものか、プリンタのみによりミラー印刷処理を実行できるものかを、プリンタ特性提供モジュール36に問い合わせる。
プリンタ特性提供モジュール36には、対応するプリンタのモデル特有の情報(以下、「プリンタ特性情報」と記載する)(機能情報及び実行機能情報の一例)がプログラミングされている。このプリンタ特性情報には、対応するプリンタがミラー印刷処理に対応しているか否かを示す情報が含まれており、さらに、対応するプリンタがミラー印刷処理に対応している場合に、ミラー印刷用の画像データをプリンタが作成するか、プリンタドライバが作成するかを示す情報も含まれている。そして、プリンタ特性提供モジュール36は、プリンタ特性情報に基づいて、対応するプリンタがミラー印刷処理に対応しているか否かを判断し(S108)、判断結果を画像形成プログラム32に出力する(S110)。
画像形成プログラム32は、判断結果を受け付けると、その受け付けた判断結果、及び、S105で受け付けた用紙情報に基づいて、PC印刷処理の印刷条件を設定するための設定画面を、LCD16に表示する。具体的には、画像形成プログラム32は、判断結果を受け付けると、その判断結果に基づいて、選択プリンタがミラー印刷処理に対応しているか否かを判断する(S112)。つまり、画像形成プログラム32は、選択プリンタが、プリンタとプリンタドライバとにより構成されるプロダクトとして、若しくは、プリンタのみでミラー印刷処理を実行可能であるか否かを判断する。
そして、選択プリンタが、プリンタとプリンタドライバとにより構成されるプロダクトとして、若しくは、プリンタのみでミラー印刷処理を実行可能である場合(S112:YES)に、画像形成プログラム32は、第1設定画面(図示省略)をLCD16に表示する(S114)。第1設定画面には、S105で受け付けた用紙情報に応じた用紙サイズを選択するための用紙サイズ選択ボタン,ミラー印刷処理を設定するためのミラー印刷処理設定ボタンなどが表示される。つまり、第1設定画面には、ミラー印刷処理の設定入力の受付が有効な状態でミラー印刷処理設定ボタンが表示される。
一方、選択プリンタが、プリンタとプリンタドライバとにより構成されるプロダクトとして、若しくは、プリンタのみでミラー印刷処理を実行不能である場合(S112:NO)、つまり、選択プリンタがミラー印刷処理に対応していない場合に、画像形成プログラム32は、第2設定画面(図示省略)をLCD16に表示する(S116)。第2設定画面には、S105で受け付けた用紙情報に応じた用紙サイズを選択するための用紙サイズ選択ボタン等は表示されるが、ミラー印刷処理を設定するためのミラー印刷処理設定ボタンは表示されない。なお、ミラー印刷処理設定ボタンは、第2設定画面に、操作不能な状態、例えば、グレーアウトの状態で表示されてもよい。つまり、第2設定画面には、ミラー印刷処理の設定入力の受付が無効な状態でミラー印刷処理設定ボタンが表示される。
これにより、設定画面において、選択プリンタで印刷可能な用紙サイズを選択するとともに、選択プリンタがミラー印刷処理に対応したプリンタである場合にのみ、ミラー印刷処理を設定することが可能となる。そして、第1設定画面、若しくは、第2設定画面において印刷条件が設定されると、画像形成プログラム32は、印刷対象の画像の画像データ、つまり、画像形成プログラム32により作成された画像データを、設定画面において設定された印刷条件に関する情報(以下、「設定情報」と記載する)とともに、対応するプリンタドライバ34に出力する(S118)。
そして、プリンタドライバ34は、受け付けた画像データと設定情報とを対応するプリンタ50に送信する(S120)。なお、選択プリンタがプロダクトとしてミラー印刷処理に対応しているものの、選択プリンタ自体がミラー印刷用の画像データを作成できない場合には、プリンタドライバ34が、画像形成プログラム32から受け付けた画像データに基づいて、ミラー印刷用の画像データを作成し、そのミラー印刷用の画像データをプリンタ50に送信する。そして、プリンタ50は、受信した画像データに基づくPC印刷処理を、受け付けた設定情報に基づいて実行する(S122)。また、選択プリンタがプロダクトとしてミラー印刷処理に対応しており、選択プリンタ自体がミラー印刷用の画像データを作成できる場合に、プリンタ50は、プリンタドライバ34から受信した画像データに基づいて、ミラー印刷用の画像データを作成し、そのミラー印刷用の画像データに基づいてPC印刷処理を実行する。
次に、バーコード印刷処理について説明する。バーコード印刷処理を実行可能なプリンタには、パラメータ設定メモリに、図4に示す画像データテーブル60が記憶されている。画像データテーブル60は、バーコード印刷に用いる画像データ毎に、画像ナンバーを関連付けたテーブルである。また、画像データの各々に、各画像データに基づく画像の印刷対象の印刷用紙のサイズに関する情報、つまり、用紙情報が関連付けられている。つまり、画像データテーブル60では、画像ナンバー毎に、画像データと用紙情報とが関連付けられている。なお、画像データテーブル60は、ユーザの操作によって、プリンタ50のデータ記憶領域38に記憶されている。例えば、ユーザが画像形成プログラム32を操作して、用紙情報を選択し、その用紙情報が示す用紙に印刷するための画像データの作成を指示すると、画像形成プログラム32は、用紙情報に対応するサイズの画像データを作成し、画像データと用紙情報とを対応付けてデータ記憶領域38に記憶させる。ユーザが、PC10で動作する画像データテーブル転送プログラムを操作して、画像データと、画像データに対応付ける画像ナンバーとを指定し、プリンタへの送信を指示すると、画像データテーブル転送プログラムは、画像データと、用紙情報と、画像ナンバーとを対応付け、プリンタへと送信する。プリンタは、画像データテーブル転送プログラムを介して受信した画像データを、プリンタのメモリに記憶し、画像データに対応する画像データテーブルをパラメータ設定メモリに記憶する。すなわち、画像データテーブルには、画像データの作成時点で必要なパラメータが含まれているが、画像データの作成時点では必要なく、印刷時点で使われるパラメータは含まれていない、とも言える。
そして、ユーザが、プリンタ50に接続されているバーコードリーダ56を用いて、バーコードを読み取ると、バーコードリーダ56に読み取られた情報(以下、「バーコード情報」と記載する)に応じた印刷処理、つまり、バーコード印刷処理が実行される。詳しくは、バーコードには、画像ナンバーを指定する情報(以下、「ナンバー指定情報」と記載する)と、印刷処理の実行を指令する指令情報とが書き込まれている。このため、バーコードリーダ56を用いたバーコードの読取により、プリンタ50は、ナンバー指定情報と指令情報とを含むバーコード情報を取得する。
そして、プリンタ50は、取得したナンバー指定情報により指定される画像ナンバーの画像データと用紙情報とを、画像データテーブル60に基づいて特定する。これにより、プリンタ50において、特定された画像データに基づく画像を、特定された用紙情報に応じたサイズの印刷用紙に印刷するバーコード印刷処理が実行される。なお、バーコード情報に、指令情報は含まれているが、ナンバー指定情報が含まれていない場合がある。このような場合に、プリンタ50は、デフォルト値として設定されている画像ナンバーに応じた画像データと用紙情報とを特定する。そして、プリンタ50において、特定された画像データと用紙情報とに基づいて、バーコード印刷処理が実行される。
ただし、画像データテーブル60には、印刷条件として、印刷用紙の用紙サイズを示す用紙情報しか含まれていない。また、バーコード情報に、印刷条件に関する情報は含まれていない。このため、バーコード印刷処理の印刷条件として、画像データテーブル60およびバーコード情報では、例えば、ミラー印刷処理などのパラメータを設定することができない。そこで、プリンタシステム1では、PC10の制御プログラム30を利用して、バーコード印刷処理の印刷条件として、ミラー印刷処理等の設定が行われる。すなわち、制御プログラム30によって、画像データの作成時には必要ないが、バーコード印刷時には使いたいパラメータを、バーコード印刷処理の印刷条件として設定することができる、とも言える。また、制御プログラム30は、画像形成プログラム32が画像データに対応付けることができるパラメータ以外のパラメータをプリンタに設定することができる、とも言える。また、制御プログラム30は、画像形成プログラム32によって記憶された画像データに対応付いていないパラメータをプリンタに設定することができる、とも言える。
制御プログラム30は、PC10と通信可能なプリンタ50を識別することが可能な情報、つまり、プリンタ識別情報を、OS37から取得する。次に、制御プログラム30は、取得したプリンタ識別情報により識別されるプリンタ50の機種情報を取得して、バーコード印刷処理を実行させることが可能な機種であるプリンタ50を抽出する。ちなみに、プリンタシステム1では、プリンタ50a〜cはバーコード印刷処理を実行することが可能な機種であり、バーコードリーダ56a〜cが接続されている。プリンタ50dは、バーコード印刷処理を実行することができない機種である。
そして、制御プログラム30は、抽出されたプリンタ50から任意のプリンタ50を選択するための選択画面(図示省略)をCPU12に表示する。続いて、選択画面へのユーザ操作によりプリンタ50が選択されると、選択されたプリンタ、つまり、選択プリンタのプリンタ特性情報を取得するべく、制御プログラム30は、画像形成プログラム32と同様に、選択プリンタに対応するプリンタ特性提供モジュール36に、選択プリンタによるミラー印刷処理の実行の可否を問い合わせる。
ただし、制御プログラム30には、画像形成プログラム32と異なり、プリンタ50a〜cの一部のプリンタ特性情報、つまり、プリンタによるミラー印刷処理の実行の可否を示す情報がプログラミングされている。具体的には、制御プログラム30に、プリンタ50aのプリンタ特性情報がプログラミングされているが、プリンタ50b,cのプリンタ特性情報はプログラミングされていない。これは、例えば、制御プログラム30がプログラミングされたタイミングで、プリンタ50aが開発されており、プリンタ50b,cは開発されていないためである。
このため、選択プリンタがプリンタ50aであれば、制御プログラム30は、プリンタ特性提供モジュール36に、選択プリンタによるミラー印刷処理の実行の可否を問い合わせる必要はなく、自身にプログラミングされているプリンタ特性情報を取得すればよい。一方、選択プリンタがプリンタ50b,cであれば、制御プログラム30は、プリンタ特性提供モジュール36に、選択プリンタによるミラー印刷処理の実行の可否を問い合わせ、その問い合わせ結果をプリンタ特性提供モジュール36から取得する必要がある。
そこで、選択画面においてプリンタが選択されると、制御プログラム30は、選択されたプリンタ、つまり、選択プリンタのプリンタ特性情報が自身にプログラミングされているか否かを判断する(図5参照:S200)。そして、選択プリンタのプリンタ特性情報が制御プログラム30にプログラミングされていない場合(S200:NO)に、制御プログラム30は、選択プリンタに対応するプリンタ特性提供モジュール36に、選択プリンタによるミラー印刷処理の実行の可否を問い合わせる。なお、バーコード印刷処理の対象となる画像データは、プリンタ50の画像データテーブル60に記憶されており、プリンタ50において、その画像データに基づいてバーコード印刷処理が実行される。このため、バーコード印刷処理時において、プリンタドライバ34は使用されない。つまり、バーコード印刷処理時において、ミラー印刷用の画像データをプリンタドライバ34により作成することはできず、プリンタ50においてミラー印刷用の画像データを作成する必要がある。
このため、選択プリンタのプリンタ特性情報が制御プログラム30にプログラミングされていない場合(S200:NO)に、制御プログラム30は、選択プリンタがミラー印刷用の画像データを作成し、作成したミラー印刷用の画像データに基づいてミラー印刷処理を実行することができるか否かを、プリンタ特性提供モジュール36に問い合わせる(S202)。つまり、制御プログラム30は、選択プリンタのみでミラー印刷処理を実行することができるか否かを、プリンタ特性提供モジュール36に問い合わせる。そして、プリンタ特性提供モジュール36は、プリンタ特性情報に基づいて、プリンタのみによりミラー印刷処理を実行することができるか否かを判断し(S204)、判断結果を制御プログラム30に出力する(S206)。そして、S208に進む。
また、S200において、選択プリンタのプリンタ特性情報が制御プログラム30にプログラミングされている場合(S200:YES)に、制御プログラム30は、自身にプログラミングされている選択プリンタのプリンタ特性情報を取得する(S207)。そして、S208に進む。
そして、制御プログラム30は、判断結果を受け付けた後、若しくは、自身にプログラミングされているプリンタ特性情報を取得した後に、その受け付けた判断結果、若しくは、取得した判断結果に基づいて、バーコード印刷処理の印刷条件を設定するための設定画面を、LCD16に表示する。具体的には、制御プログラム30は、受け付けた判断結果、若しくは、取得したプリンタ特性情報に基づいて、選択プリンタがミラー印刷処理に対応しているか否かを判断する(S208)。つまり、制御プログラム30は、選択プリンタのみでミラー印刷処理を実行可能であるか否かを判断する。
そして、選択プリンタのみでミラー印刷処理を実行可能である場合(S208:YES)に、画像形成プログラム32は、図6に示す第3設定画面(第1の設定画面の一例)70をLCD16に表示する(S210)。第3設定画面70には、ミラー印刷処理を設定するためのミラー印刷処理設定ボタン72などが表示される。つまり、第3設定画面70には、ミラー印刷処理の設定入力の受付が有効な状態でミラー印刷処理設定ボタン72が表示される。
一方、選択プリンタのみでミラー印刷処理を実行できない場合(S208:NO)、つまり、プリンタとプリンタドライバとにより構成されるプロダクトとしてミラー印刷処理を実行可能である場合、及び、プリンタがミラー印刷処理に対応していない場合に、制御プログラム30は、図7に示す第4設定画面(第2の設定画面の一例)76をLCD16に表示する(S212)。第4設定画面76には、ミラー印刷処理を設定するためのミラー印刷処理設定ボタン72は表示されない。
これにより、設定画面において、選択プリンタのみでミラー印刷処理を実行できる場合にのみ、ミラー印刷処理を設定することが可能となる。続いて、第3設定画面70、若しくは、第4設定画面76において印刷条件が設定されると、制御プログラム30は、図5に示すように、第3設定画面70、若しくは、第4設定画面76において設定された印刷条件に関する情報、つまり、設定情報を選択プリンタに送信する(S214)。そして、選択プリンタは、受信した設定情報をパラメータ設定メモリに記憶する(S216)。
また、選択プリンタにおいて、ユーザがバーコードリーダ56を用いてバーコードを読み取ると、選択プリンタは、バーコード情報を受け付ける(S218)。続いて、選択プリンタは、受け付けたバーコード情報に基づいて、画像データ及び用紙情報を特定する(S220)。そして、選択プリンタは、S220で特定した画像データ及び用紙情報、および、S216で記憶した設定情報に基づいて、バーコード印刷処理を実行する(S222)。つまり、選択プリンタは、設定情報に基づいて、ミラー印刷処理が設定されているか否かを判断する。そして、ミラー印刷処理が設定されている場合に、選択ドライバは、特定した画像データに基づいて、ミラー印刷用の画像データを作成し、その作成したミラー印刷用の画像データに基づく画像を、特定した用紙サイズに応じた印刷用紙に印刷する。また、ミラー印刷処理が設定されていない場合に、選択ドライバは、特定した画像データに基づく画像を、特定した用紙サイズに応じた印刷用紙に印刷する。
このように、制御プログラム30には、バーコード印刷処理を実行することが可能なプリンタ50a〜cのうちの一部のプリンタのプリンタ特性情報しかプログラミングされていない。このため、制御プログラム30は、その一部のプリンタのプリンタ特性情報を外部から取得する必要がなく、自身から取得する。また、制御プログラム30は、自身にプログラミングされていないプリンタのプリンタ特性情報を、外部、つまり、プリンタ特性提供モジュール36から取得する。これにより、新たなプリンタが開発される毎に、制御プログラム30の開発,更新などを抑制することが可能となる。
詳しくは、制御プログラム30は、上述したように、プリンタ50aが開発されてから、プリンタ50b,cが開発される迄のタイミングでプログラミングされている。このため、制御プログラム30には、プリンタ50aのプリンタ特性情報はプログラミングされているが、プリンタ50b,cのプリンタ特性情報はプログラミングされていない。このような制御プログラム30が、プリンタ50b,cのプリンタ特性情報を外部から取得できないように構成されていると、制御プログラム30の更新等を行って、プリンタ50b,cのプリンタ特性情報を制御プログラム30にプログラミングする必要がある。つまり、新たなプリンタが開発される毎に、制御プログラム30を更新する必要があり、開発の負担,更新の負担など、種々の手間が発生する。
このため、制御プログラム30において、プログラミングされていないプリンタ特性情報がプリンタ特性提供モジュール36から取得される。プリンタ特性提供モジュール36は、プリンタドライバとともにデバイスにインストールされるものであり、プリンタ特性提供モジュール36には、対応するプリンタのプリンタ特性情報が記憶されている。このため、新たなプリンタが開発された場合において、制御プログラム30を更新しなくても、制御プログラム30は、その新たに開発されたプリンタのプリンタ特性情報を取得することができる。これにより、新たなプリンタが開発される毎に、制御プログラム30を更新する必要がなくなり、開発の負担,更新の負担など、種々の手間を少なくすることが可能となる。
上記バーコード印刷処理におけるミラー印刷処理の設定は、PC10のCPU12において制御プログラム30が実行されることによって行われる。以下に、図8及び図9を用いて、制御プログラム30のフローが実行される際の処理を説明する。
本フローでは、まず、制御プログラム30が、図8に示すように、PC10と通信可能なプリンタ50のプリンタ識別情報をOS37から取得する(S300)。次に、制御プログラム30は、取得したプリンタ特性情報により識別されるプリンタから、バーコード印刷処理を実行可能なプリンタを抽出し、抽出したプリンタから任意のプリンタを選択するための選択画面をLCD16に表示する(S302)。そして、制御プログラム30は、選択画面においてプリンタが選択されたか否かを判断する(S304)。
この際、選択画面においてプリンタが選択されていない場合(S304:NO)に、S304の処理が繰り返される。一方、選択画面においてプリンタが選択された場合(S304:YES)に、制御プログラム30は、選択プリンタのプリンタ特性情報が自身にプログラミングされているか否かを判断する(S306)。そして、選択プリンタのプリンタ特性情報がプログラミングされていない場合(S306:NO)に、制御プログラム30は、選択プリンタに応じたプリンタ特性提供モジュール36のファイル名をレジストリから取得する(S308)。続いて、制御プログラム30は、取得したファイル名を利用して、プリンタ特性提供モジュール36にアクセスし、選択プリンタのみでミラー印刷処理を実行することが可能であるか否かを問い合わせる(S309)。そして、制御プログラム30は、プリンタ特性提供モジュール36での判断結果を、プリンタ特性提供モジュール36から取得する(S310)。そして、S312に進む。
一方、S306において、選択プリンタのプリンタ特性情報がプログラミングされている場合(S306:YES)に、制御プログラム30は、自身にプログラミングされている選択プリンタのプリンタ特性情報を取得する(S314)。そして、S312に進む。
S312では、制御プログラム30が、図9に示すように、プリンタ特性提供モジュール36から取得した判断結果、若しくは、自身にプログラミングされているプリンタ特性情報に基づいて、選択プリンタのみでミラー印刷処理を印刷できるか否かを判断する(S312)。この際、選択プリンタのみでミラー印刷処理を実行できる場合(S312;YES)に、制御プログラム30は、第3設定画面70をLCD16に表示する(S316)。そして、S320に進む。一方、選択プリンタのみでミラー印刷処理を実行できない場合(S312;NO)に、制御プログラム30は、第4設定画面76をLCD16に表示する(S318)。そして、S320に進む。
S320では、制御プログラム30は、第3設定画面70、若しくは、第4設定画面76において印刷条件が設定されたか否かを判断する(S320)。この際、第3設定画面70、若しくは、第4設定画面76において印刷条件が設定されていない場合(S320:NO)に、S320の処理が繰り返される。一方、第3設定画面70、若しくは、第4設定画面76において印刷条件が設定されている場合(S320:YES)に、制御プログラム30は、第3設定画面70、若しくは、第4設定画面76において設定された印刷条件に関する情報、つまり、設定条件情報を選択プリンタに送信する(S322)。それにより、本フローが終了する。
なお、S300を実行するCPU12は、ドライバ情報取得手段の一例である。S314を実行するCPU12は、機能情報取得手段の一例である。S320を実行するCPU12は、受付手段の一例である。S202,S309を実行するCPU12は、要求手段、及び、第1実行手段の一例である。S210,S316を実行するCPU12は、受付制御手段の一例である。S214,S322を実行するCPU12は、送信手段の一例である。S302を実行するCPU12は、表示制御手段の一例である。S204を実行するCPU12は、第1取得手段の一例である。S104を実行するCPU12は、第2取得手段の一例である。S206を実行するCPU12は、第2実行手段の一例である。S210,S212,S316,S318を実行するCPU12は、第3実行手段の一例である。S106を実行するCPU12は、第4実行手段の一例である。S108を実行するCPU12は、第5実行手段の一例である。S114,S116を実行するCPU12は、第6実行手段の一例である。
<実施例の効果>
上記した実施形態によれば、以下の効果を奏する。
制御プログラム30は、所定のプリンタに対応するプリンタ特性提供モジュール36に、その所定のプリンタによりミラー印刷処理を実行できるか否かを問い合わせる。この際、制御プログラム30が、所定のプリンタがミラー印刷処理を実行できる旨の情報をプリンタ特性提供モジュール36から受け付けた場合に、ミラー印刷処理の設定入力の受付を有効にする。そして、制御プログラム30は、ミラー印刷処理の設定入力を受け付けると、ミラー印刷処理の設定情報をプリンタに送信する。これにより、プリンタがミラー印刷処理を実行可能である場合にのみ、ミラー印刷処理を設定することが可能となる。
制御プログラム30が、所定のプリンタがミラー印刷処理を実行できる旨の情報をプリンタ特性提供モジュール36から受け付けた場合に、ミラー印刷処理設定ボタン72をLCD16に表示することで、ミラー印刷処理の設定入力の受付を有効にする。一方、制御プログラム30が、所定のプリンタがミラー印刷処理を実行できない旨の情報をプリンタ特性提供モジュール36から受け付けた場合に、ミラー印刷処理設定ボタン72をLCD16に表示しないことで、ミラー印刷処理の設定入力の受付を無効にする。これにより、ミラー印刷処理の実行の可否が、ミラー印刷処理設定ボタン72の有無により容易に判別できる。
制御プログラム30は、所定のプリンタに対応するプリンタ特性提供モジュール36に、プリンタドライバを用いることなく、プリンタのみでミラー印刷処理を実行できるか否かを問い合わる。これにより、プリンタがプリンタドライバを経由することなく、画像データを取得した場合であっても、プリンタにおいてミラー印刷処理を実行することができる。
制御プログラム30は、PC10と通信可能なプリンタ50から任意のプリンタを選択するための選択画面をLCD16に表示する。そして、制御プログラム30は、選択画面において選択された選択プリンタに対応するプリンタ特性提供モジュール36に、選択プリンタによりミラー印刷処理を実行できるか否かを問い合わる。これにより、ユーザが選択したプリンタにおいて、好適にミラー印刷処理を実行できる。
制御プログラム30に、プリンタ50aのプリンタ特性情報はプログラミングされているが、プリンタ50b,cのプリンタ特性情報はプログラミングされていない。そして、選択プリンタがプリンタ50aである場合に、制御プログラム30は、プリンタ特性提供モジュール36に問い合わせを行うことなく、自身にプログラミングされているプリンタ特性情報がミラー印刷処理を実行可能であることを示していれば、ミラー印刷処理の設定入力の受付を有効にする。また、選択プリンタがプリンタ50b,cである場合に、制御プログラム30は、プリンタ特性提供モジュール36に問い合わせを行って、その問い合わせにより取得した判断結果がミラー印刷処理を実行可能であることを示していれば、ミラー印刷処理の設定入力の受付を有効にする。これにより、制御プログラム30にプリンタ特性情報がプログラミングされているプリンタと、制御プログラム30にプリンタ特性情報がプログラミングされていないプリンタとの何れにおいても、選択プリンタがミラー印刷処理を実行可能である場合にのみ、ミラー印刷処理を設定することが可能となる。
プリンタ特性提供モジュール36は、プリンタがミラー印刷処理を実行できるか否かの問い合わせを制御プログラム30から受け付けた場合に、プリンタドライバを用いることなく、プリンタがミラー印刷処理を実行できる否かを示すプリンタ特性情報を取得する。そして、プリンタ特性提供モジュール36は、取得したプリンタ特性情報を制御プログラム30に出力する。これにより、例えば、制御プログラム30により、プリンタのみでミラー印刷処理を実行できるプリンタに対してのみ、ミラー印刷処理の設定を行うことが可能となる。
プリンタ特性情報は、プリンタ特性提供モジュール36にプログラミングされている。そして、プリンタ特性提供モジュール36は、制御プログラム30から問い合わせを受け付けた場合に、自身にプログラミングされているプリンタ特性情報を取得し、取得したプリンタ特性情報を制御プログラム30に出力する。これにより、プリンタ特性提供モジュール36は、確実にプリンタ特性情報を取得することができる。
PC10は、プリンタ特性提供モジュール36とともに、インストールされたプリンタドライバ34専用のドライバ専用ファイル40を有しており、プリンタ特性提供モジュール36が、プリンタ特性情報以外の情報、例えば、用紙情報の要求を制御プログラム30若しくは、画像形成プログラム32から受け付けた場合に、ドライバ専用ファイル40から用紙情報を取得し、取得した用紙情報を、制御プログラム30若しくは、画像形成プログラム32に出力する。
プリンタドライバ34は、プリンタ特性情報を利用することなく、ドライバ専用ファイル40に記憶されている情報、例えば、用紙情報を利用して、設定画面などをLCD16に表示する。これにより、プリンタドライバ34に対応するプリンタで印刷可能な用紙サイズを適切にLCD16に表示することができる。
また、本発明は、上記実施形態に限定されるものではなく、当業者の知識に基づいて種々の変更、改良を施した種々の態様で実施することが可能である。具体的には、例えば、上記実施形態では、プリンタ特性情報が、プリンタでミラー印刷処理を実行できるか否かを示す情報とされているが、他の処理を実行できるか否かを示す情報であってもよい。具体的には、例えば、テープ状の印刷用紙のカット位置を任意に設定するための処理,画像品質を向上させるための処理,特殊な印刷用紙を用いた印刷処理,画像を180度回転させた状態での印刷処理など、種々の処理を実行できるか否かを示す情報を、プリンタ特性情報として採用することが可能である。
また、上記実施形態では、用紙情報がドライバ専用ファイル40に記憶されているが、プリンタ特性提供モジュール36にプログラミングされていてもよい。また、上記実施形態では、プリンタ特性情報が、プリンタ特性提供モジュール36にプログラミングされているが、ドライバ専用ファイル40に記憶されていてもよい。つまり、プリンタによる印刷時に必要な印刷条件に関する情報、つまり、印刷条件情報は、プリンタ特性提供モジュール36にプログラミングされていてもよく、ドライバ専用ファイル40に記憶されていてもよい。ただし、理想を言えば、プリンタドライバ34を用いた印刷処理、つまり、PC印刷処理において用いられる印刷条件情報は、ドライバ専用ファイル40に記憶され、PC印刷処理において用いられない印刷条件情報は、プリンタ特性提供モジュール36にプログラミングされることが好ましい。
また、上記実施形態では、ミラー印刷処理設定ボタン72が表示されることで、ユーザ操作の入力が有効とされ、ミラー印刷処理設定ボタン72が表示されないことで、ユーザ操作の入力が無効とされているが、ミラー印刷処理設定ボタン72がグレー表示されることで、ユーザ操作の入力が無効とされてもよい。つまり、入力操作ができるようにすることで、ユーザ操作の入力が有効とされ、入力操作ができないようにすることで、ユーザ操作の入力が無効とされてもよい。また、入力操作ができる状態において、入力操作に従って設定を行うことで、ユーザ操作の入力が有効とされ、入力操作に従って設定を行わないことで、ユーザ操作の入力が無効とされてもよい。
また、上記実施形態では、デバイスとしてプリンタが採用されているが、スキャナ等の他のデバイスが採用されてもよい。つまり、画像形成に関する機能として印刷機能が採用されているが、スキャン機能等の他の画像形成機能が採用されてもよい。
また、上記実施形態では、プリンタドライバ34とプリンタ特性提供モジュール36とが個別のプログラムとされているが、プリンタドライバ34とプリンタ特性提供モジュール36とによって、1つのプログラムが構成されていてもよい。
また、上記実施形態では、CPU12によって図8及び図9に示す処理が実行される例を説明したが、これら処理は、CPU12に限らず、ASICや他の論理集積回路により実行されてもよいし、これら処理が、CPU等やASIC、他の論理集積回路が協働することにより実行されてもよい。