以下、本発明にかかる印刷システムを具体化した実施の形態について、添付図面を参照しつつ詳細に説明する。本形態は、互いに通信可能な印刷装置と情報処理装置とを含む印刷システムに本発明を適用したものである。
本形態の印刷システム100は、図1に示すように、複数の印刷装置1A、1B、1C、1Dと、情報処理装置2とを有し、互いに通信可能に接続されている。印刷装置1A、1B、1C、1Dは、いずれも、印刷対象の媒体への印刷が可能な装置であり、例えば、ラベルプリンタ、ページプリンタ、コピー機、複合機である。以下では、区別の必要のない場合には、単に印刷装置1とする。
情報処理装置2は、印刷装置1にて印刷させる画像データの生成及び処理、印刷装置1への印刷実行指示の送信等を行う装置であり、例えば、スマートフォン、パーソナルコンピュータ、タブレットコンピュータである。なお、印刷システム100を構成する印刷装置1や情報処理装置2の台数は、図1の例に限らない。
印刷装置1は、図1に印刷装置1Aに代表して示すように、コントローラ11と、画像形成部12と、操作パネル13と、ネットワークインターフェース14とを有している。コントローラ11は、CPUやメモリ等を含み、印刷装置1の各構成要素を制御する。なお、図1中のコントローラ11は、印刷装置1の制御に利用されるハードウェアを纏めた総称であって、実際に印刷装置1に存在する単一のハードウェアを表すとは限らない。
画像形成部12は、印刷対象の媒体に画像を印刷するための構成である。画像形成部12の画像形成方式は、電子写真方式であっても、インクジェット方式であってもよい。また、印刷装置1は、カラー画像を形成可能な装置であってもよいし、モノクロ印刷のみを行う装置であってもよい。操作パネル13は、例えば、タッチパネルであり、ユーザによる入力を受け付けるとともに情報の表示を行う。操作パネル13は、各種の表示ランプやボタン等を含んでもよい。ネットワークインターフェース14は、情報処理装置2と通信を行うためのハードウェアを含む。
情報処理装置2は、図1に示すように、CPU21と、ROM22と、RAM23と、不揮発性メモリ24と、操作表示部26と、ネットワークインターフェース27とを有している。ROM22には、情報処理装置2を起動するための起動プログラム等が記憶されている。RAM23は、各種処理が実行される際に作業領域として、あるいは、データを一時的に記憶する記憶領域として利用される。不揮発性メモリ24は、例えば、HDD、フラッシュメモリであり、各種のプログラムやデータを記憶する。不揮発性メモリ24は、記憶部の一例であり、操作表示部26は、操作部と表示部とを兼ねる構成の一例である。
CPU21は、ROM22や不揮発性メモリ24から読み出したプログラムに従って、各種の処理を実行する。操作表示部26は、例えば、タッチパネルであり、ユーザによる入力を受け付けるとともに情報の表示を行う。操作表示部26は、キーボード、マウス、ディスプレイ等を備えるものであってもよい。ネットワークインターフェース27は、印刷装置1と通信を行うためのハードウェアを含む。ネットワークインターフェース27は、通信インターフェースの一例である。
本形態の印刷システム100では、情報処理装置2と印刷装置1とが、共通のアクセスポイント3を介して、Wi−Fi(登録商標)規格に準拠した無線通信を行う。すなわち、ネットワークインターフェース14および27は、ともに、Wi−Fi(登録商標)規格による無線通信を可能にするインターフェースである。より具体的には、IEEE802.11の規格及びそれに準ずる規格に基づく無線通信を可能にするインターフェースである。なお、本形態の通信態様は一例であり、前述の態様に限らない。例えば、情報処理装置2と印刷装置1とは、アクセスポイント3を介さない直接接続による無線通信にて通信してもよい。
情報処理装置2の不揮発性メモリ24には、図2に示すように、画像編集用のアプリケーションプログラム(画像編集アプリ)41と、画像データ生成プログラム42と、専用印刷制御プログラム43と、オペレーティングシステム(OS)44と、が記憶されている。さらに、情報処理装置2のOS44には、汎用印刷制御プログラム45と、通信プログラム46と、が組み込まれている。以下では、アプリケーションプログラムを「アプリ」と称する。なお、図2では、各種のデータの流れる方向を実線の矢印にて示している。
画像編集アプリ41は、例えば、ユーザの指示を受け付ける機能、画像を表示する機能、画像の編集や保存を行う機能、を有するプログラムである。画像編集アプリ41は、さらに、生成済みの画像ファイルを読み込む機能や、印刷指示を受け付ける機能、印刷時の各種設定を受け付ける機能も有する。また、画像編集アプリ41は、図2中に一点鎖線で示すように、専用印刷制御プログラム43または汎用印刷制御プログラム45を介して、印刷装置1から装置の状態情報を取得する機能も有する。装置の状態情報としては、例えば、印刷完了通知、エラー通知がある。
画像データ生成プログラム42は、印刷用の画像ファイルを生成する機能を有するプログラムである。本形態の情報処理装置2では、画像データ生成プログラム42は、例えば、画像編集アプリ41にて受け付けた編集の指示に基づいて、ラベル画像ファイルを生成する。ラベル画像ファイルは、テープ状のラベル媒体に印刷するためのデータファイルである。
専用印刷制御プログラム43は、例えば、ラベル画像ファイルに含まれる画像データをラスタライズしてラスタライズデータを生成する機能、生成したラスタライズデータを通信プログラム46を制御して印刷装置1に送信する機能、を有するプログラムである。専用印刷制御プログラム43は、特定の機種の印刷装置に対応する専用のプログラムであり、他のメーカの機種など特定の機種以外の印刷装置には対応しない。
汎用印刷制御プログラム45は、所定の印刷規格に基づく印刷用の規格データを生成する機能、生成した規格データを通信プログラム46を制御して印刷装置1に送信する機能、を有するプログラムである。汎用印刷制御プログラム45は、印刷制御機能を実現するために、OS44によって提供される標準のプログラムである。汎用印刷制御プログラム45によって送信される規格データは、印刷装置1の備える汎用のラスタライズ処理に適した規格に則ったデータであり、ラスタライズされていないデータである。
また、汎用印刷制御プログラム45は、所定の印刷規格をサポートする種々の印刷装置に対応する汎用のプログラムである。そのため、汎用印刷制御プログラム45に対応する機能を備えた印刷装置であれば、どのメーカの印刷装置であっても、規格データに基づく印刷を実行できる。汎用印刷制御プログラム45は、複数の機種に対応する汎用のプログラムであることから、受け付け可能な印刷設定が一般的なものに限られる。そのため、汎用印刷制御プログラム45は、印刷装置1にて実行可能な全ての印刷設定を受け付けるとは限らない。汎用印刷制御プログラム45を利用した印刷のシステムとしては、例えば、AirPrint、Mopria(いずれも登録商標)がある。
通信プログラム46は、ネットワークインターフェース27を制御して、通信相手の装置との通信を行う機能を有するプログラムである。例えば、専用印刷制御プログラム43は、生成したラスタライズデータをOS44に渡す。情報処理装置2のOS44は、通信プログラム46により当該ラスタライズデータを、ネットワークインターフェース27を介して印刷装置1に送信する。通信プログラム46も、OS44によって提供される標準のプログラムである。通信プログラム46の一部は、ROM22に記憶されていてもよい。
本形態の印刷システム100は、印刷装置1に印刷を行わせるための、印刷を指示するデータを処理する処理の経路として、図3に示すように、2種類の経路を有する。2種類の経路とは、情報処理装置2がラスタライズ処理を行う第1経路と、印刷装置1がラスタライズ処理を行う第2経路と、である。第1経路は、第1の経路の一例であり、第2経路は、第2の経路の一例である。
第1経路を用いて印刷装置1に印刷を行わせる場合、図3に示すように、情報処理装置2は、ラスタライズ処理を実行して、ラベル画像ファイルに含まれる画像データをラスタライズし、ラスタライズ後のラスタライズデータを印刷装置1に送信する。印刷装置1は、ラスタライズデータを受信して、受信したラスタライズデータに基づいて印刷する。第1経路では、情報処理装置2は、印刷対象の画像データを図2に示した専用印刷制御プログラム43を用いてラスタライズする。情報処理装置2の行うラスタライズ処理は、第1のラスタライズ処理の一例であり、第1経路にて情報処理装置2から印刷装置1へ送信されるラスタライズデータは、第1データの一例である。
第2経路を用いて印刷装置1に印刷を行わせる場合、図3に示すように、情報処理装置2は、規格化処理においてラベル画像ファイルに含まれる画像データの規格化を行い、規格データを印刷装置1に送信する。印刷装置1は、規格データのラスタライズを行う汎用ラスタライズ処理を行い、汎用ラスタライズ処理にてラスタライズされたデータに基づいて印刷する。第2経路では、情報処理装置2は、印刷対象の画像データを図2に示した汎用印刷制御プログラム45にて規格化する。印刷装置1により汎用ラスタライズ処理は、第2のラスタライズ処理の一例であり、汎用ラスタライズ処理にてラスタライズされたデータは、第2データの一例である。
第1経路と第2経路とでは、印刷対象の画像データのラスタライズを行う処理主体が異なる。すなわち、第1経路は、情報処理装置2にラスタライズを行わせる経路であり、第2経路は、印刷装置1にラスタライズを行わせる経路である。
印刷装置1には、第1経路と第2経路とのいずれの経路によって処理されたデータにも対応可能なものと、いずれか一方のみに対応可能なものとがある。情報処理装置2は、印刷装置の機種名、型番、ファームウエアのバージョン等に基づいて、その印刷装置がいずれの経路に対応可能なものであるかを判断できる。なお、情報処理装置2は、第1経路でも第2経路でも、ネットワークインターフェース27による無線通信を利用してデータを送信する。つまり、第1経路でも第2経路でも、通信態様は同じでもよい。
情報処理装置2は、例えば、図4に示すように、各印刷装置と対応可能な経路との関係を示す経路テーブル241を、不揮発性メモリ24に記憶している。本形態の印刷システム100では、例えば、印刷装置1Aは、第1経路のみに対応可能な装置であり、印刷装置1Bは、第2経路のみに対応可能な装置であり、印刷装置1Cと1Dは、第1経路と第2経路との両方に対応可能な装置である。
本形態の専用印刷制御プログラム43は、第1経路での処理を行うための専用のプログラムである。専用印刷制御プログラム43は、第1経路に対応する印刷装置1にて対応可能な形式のラスタライズデータを生成する。専用印刷制御プログラム43は、印刷を実行させる印刷装置の機種ごとに異なるものであってもよいし、複数の機種をサポートするものであってもよい。本形態の情報処理装置2は、印刷装置1Aに対応する専用印刷制御プログラム43と、印刷装置1Cに対応する専用印刷制御プログラム43と、印刷装置1Dに対応する専用印刷制御プログラム43とをともに備え、いずれの装置でも第1経路を使用した印刷を行わせることができる。
なお、専用印刷制御プログラム43は、OS44には含まれない。第1経路による印刷を行う場合、情報処理装置2は、OS44に含まれる印刷制御機能(例えば、汎用印刷制御プログラム45)を使用しない。そして、第1経路は、専用印刷制御プログラム43を使用することから、各印刷装置1にて対応可能な全ての印刷設定に対応している。
第2経路は、OS44に含まれる印刷制御機能である汎用印刷制御プログラム45を使用することから、特定の印刷装置(例えば、印刷装置1C)の備える全ての機能に対応できるとは限らない。汎用印刷制御プログラム45は、多くの機種にて対応可能な印刷設定のみを有効な設定として受け付ける。例えば、汎用印刷制御プログラム45は、特定の機種のみが対応可能な高解像度の印刷設定に対応していない。
第1経路と第2経路とでは、ラスタライズ処理のアルゴリズムが異なり、処理結果も異なる可能性がある。すなわち、第1経路は、詳細な印刷設定にも対応できるラスタライズを行う経路であり、第2経路は、いくつかの印刷設定が制限されるラスタライズを行う経路である。また、第1経路と第2経路とでは、情報処理装置2から印刷装置1へと送信されるデータの種類やデータフォーマットも異なる。この結果、同じラベル画像ファイルに基づく印刷物であっても、第1経路による印刷物と、第2経路による印刷物とでは、印刷結果が異なる可能性がある。
そして、本形態の画像編集アプリ41は、印刷の指示を受け付けた場合、処理の経路を第1経路と第2経路とのいずれか一方に決定する。印刷装置1Aが第1経路のみに対応していることから、画像編集アプリ41は、印刷装置1Aに印刷させる場合、第1経路での処理を行う。つまり、画像編集アプリ41は、印刷指示を受け付けた際に、印刷装置1Aが選択されている場合には、印刷装置1A用の専用印刷制御プログラム43に適したラベル画像ファイルを用いて、専用印刷制御プログラム43にてラスタライズ処理を行わせる。そして、情報処理装置2は、ラスタライズ処理後のデータを印刷装置1Aに出力する。
また、印刷装置1Bが第2経路のみに対応していることから、画像編集アプリ41は、印刷装置1Bに印刷させる場合、第2経路を使用する。つまり、画像編集アプリ41は、印刷指示を受け付けた際に、印刷装置1Bが選択されている場合には、汎用印刷制御プログラム45に適合したラベル画像ファイルを用いて、印刷装置1Bへの印刷の指示を出力する。
一方、印刷装置1Cや1Dは、両方の経路に対応していることから、装置が選択されただけでは、処理の経路は決定されない。画像編集アプリ41は、例えば、第1経路を用いて印刷装置1Cや1Dに印刷させることも、第2経路を用いて印刷装置1Cや1Dに印刷させることも、いずれも可能である。画像編集アプリ41は、例えば、受け付けた指示に基づいて、処理の経路を決定し、決定した処理の経路を用いて印刷を指示するデータを処理する。処理の経路の決定方法については、後述する。
続いて、本形態の印刷システム100による印刷動作について説明する。印刷システム100でラベル画像ファイルに基づく印刷を行わせたいユーザは、情報処理装置2にて画像編集アプリ41を起動させ、印刷する画像データを編集する。
画像編集アプリ41が起動されると、情報処理装置2は、例えば、図5に示すような、編集画面51を表示する。編集画面51には、図5に示すように、例えば、印刷イメージ52、プリンタ選択領域53、印刷ボタン56が含まれる。印刷イメージ52は、出力される印刷物のイメージを示す図である。プリンタ選択領域53は、ユーザによる印刷装置1の選択を受け付ける領域である。印刷ボタン56は、印刷の実行指示を受け付けるボタンである。
本形態の画像編集アプリ41は、プリンタ選択領域53への選択肢の表示の指示を受け付けた場合、例えば、図6に示すように、選択可能な状態である印刷装置1の名称のリストであるプリンタリスト531を表示する。図6の例では、プリンタリスト531には、印刷装置1A〜1Dを示すプリンタ名として、「プリンタA」〜「プリンタD」が表示されている。プリンタ名は、プリンタのノード名や機種名等、個別の印刷装置1を区別できる名称である。
さらに、画像編集アプリ41は、図6に示すように、複数の経路に対応する印刷装置1については、各印刷装置1の名称にアプリを併記して表示する。併記されるアプリは、その印刷装置1にて以前に印刷が指示された際に、その印刷指示を行ったアプリである。ユーザは、プリンタ名に併記されているアプリに基づいて、以前に印刷を実行した際の印刷結果を参考にして、印刷装置1を選択できる。画像編集アプリ41は、プリンタリスト531への選択操作を受け付け、選択された印刷装置を印刷を実行させる装置に決定する。図6の例では、プリンタCが選択されている状態を示している。
そして、アプリが併記されている印刷装置1が選択された場合、画像編集アプリ41は、印刷実行時の処理の経路を、表示されているアプリにて以前に印刷を行った際に使用した経路に決定する。一方、1つの経路にのみ対応する印刷装置1が選択された場合、画像編集アプリ41は、処理の経路をその印刷装置1が対応可能な経路に決定する。
情報処理装置2は、プリンタリスト531の表示を行うために、例えば、図7に示すように、印刷装置1とアプリとを関連付けるアプリテーブル242を、不揮発性メモリ24に記憶している。情報処理装置2は、複数のユーザで共有されることもある。その場合、情報処理装置2は、ユーザのログイン操作を受け付け、受け付けたログイン操作に基づいて、ユーザを特定できる。画像編集アプリ41は、例えば、ログイン中のユーザのカレントディレクトリにそれぞれのユーザのアプリテーブル242を作成する。ユーザのカレントディレクトリは、ユーザごとに設けられる専用の記憶領域のトップであり、複数のアプリからアクセス可能な領域である。つまり、情報処理装置2は、個別のユーザに関連付けて、ユーザごとにアプリテーブル242を記憶する。
アプリテーブル242には、例えば、各ユーザが印刷を行った印刷装置1のプリンタ名と、その印刷装置1のシリアルナンバーと、その印刷装置1にて印刷を行った際に実行されていたアプリのアプリ名と、そのアプリでの印刷時に使用した処理の経路と、印刷実行時の印刷設定とが、互いに関連付けて記憶されている。アプリテーブル242は、関連情報の一例である。印刷装置1のシリアルナンバーは、印刷装置1ごとに異なる符号であり、例えば、印刷装置1の製造時に付けられる製造番号である。シリアルナンバーは、個々のプリンタを識別する識別情報の一例であり、アプリ名は、アプリケーションプログラムの識別情報の一例である。プリンタの識別番号は、シリアルナンバーに限らず、例えば、MACアドレスでもよい。例えば、図7では、プリンタ名が「プリンタC」の印刷装置1Cは、シリアルナンバーは「N003」であることを示している。
そして、プリンタ選択領域53への選択肢の表示の指示を受け付けた場合、情報処理装置2は、ログイン中のユーザのカレントディレクトリに記憶されているアプリテーブル242を参照して、表示するアプリの名称を決定する。図7では、このアプリテーブル242に関連付けられているユーザは、以前に「アプリC」から印刷指示を行って、印刷装置1Cにて印刷を実行させたことがあり、そのとき使用した処理の経路は第1経路であったことが示されている。
画像編集アプリ41は、プリンタリスト531への操作によって、印刷を実行させる印刷装置1の選択を受け付ける。そして、複数の経路に対応する印刷装置1が選択された場合、画像編集アプリ41は、その印刷装置1に関連付けてアプリテーブル242に記憶されている経路を処理の経路に決定する。例えば、図6と図7の例で、「プリンタC」が選択された状態で印刷の指示を受け付けた場合、画像編集アプリ41は、第1経路を用いた処理を実行し、印刷対象の画像データを印刷装置1Cに送信する。
続いて、本形態の印刷システム100において前述した印刷動作を実現するために、情報処理装置2にて実行される画像編集処理の手順について、図8のフローチャートを参照して説明する。この画像編集処理は、画像編集アプリ41が起動されたことを契機に、情報処理装置2のCPU21にて実行される。この画像編集処理や、後述するプリンタ選択処理は、画像編集アプリ41に含まれる処理である。
画像編集処理では、CPU21は、まず、操作表示部26を制御して、図5に示した編集画面51を表示させる(S101)。S101では、CPU21は、編集対象として画像データが指定されていれば、その画像データに基づいた印刷イメージ52を表示させる。また、CPU21は、プリンタ選択領域53には、例えば、デフォルトに設定されているプリンタの名称を表示する。
そして、CPU21は、編集画面51にて各ボタンへの操作を受け付ける。CPU21は、プリンタ選択領域53への選択肢を表示するプリンタ選択ボタンの操作を受け付けたか否かを判断する(S102)。プリンタ選択ボタンの操作を受け付けていないと判断した場合(S102:NO)、CPU21は、印刷ボタン56への操作を受け付けたか否かを判断する(S103)。印刷ボタン56への操作を受け付けていないと判断した場合(S103:NO)、CPU21は、その他のボタンの操作を受け付けたか否かを判断する(S104)。
その他のボタンの操作を受け付けていないと判断した場合(S104:NO)、CPU21は、アプリを終了させる指示を受け付けたか否かを判断する(S105)。アプリを終了させる指示を受け付けていないと判断した場合(S105:NO)、CPU21は、S102に戻り、いずれかの操作を受け付けるまで、S102〜S105の判断を繰り返す。
そして、プリンタ選択ボタンの操作を受け付けたと判断した場合(S102:YES)、CPU21は、プリンタ選択処理を実行する(S106)。プリンタ選択処理の手順について、図9のフローチャートを参照して説明する。
プリンタ選択処理では、CPU21は、使用中のユーザのカレントディレクトリにアプリテーブル242が記憶されているか否かを判断する(S201)。アプリテーブル242が記憶されていると判断した場合(S201:YES)、CPU21は、アプリテーブル242の内容を読み出す(S202)。S202は、読出処理の一例である。ユーザごとにプリンタの使用形態は異なるため、情報処理装置2は、アプリテーブル242をユーザごとに備え、後述する処理の経路の選択はユーザ個別に行う。
さらに、CPU21は、OS44の機能を使用して、プリンタ検索を行う(S203)。S203は、検索処理の一例である。CPU21は、例えば、OS44のデバイス検索機能によって、ネットワークインターフェース27を制御し、情報処理装置2と通信可能な印刷装置1を検索する信号を発信させる。そして、CPU21は、通信可能な印刷装置1であるプリンタが見つかったか否かを判断する(S204)。プリンタが見つかったと判断した場合(S204:YES)、CPU21は、経路テーブル241(図4参照)に基づいて、見つかったプリンタが複数の経路に対応するか否かを判断する(S205)。
複数の経路に対応すると判断した場合(S205:YES)、CPU21は、見つかったプリンタの情報が、S202にて読み出したアプリテーブル242に含まれるか否かを判断する(S206)。アプリテーブル242に含まれると判断した場合(S206:YES)、CPU21は、操作表示部26を制御して、見つかったプリンタのプリンタ名と、そのプリンタに関連付けてアプリテーブル242に記憶されているアプリ名とを、プリンタ選択領域53のプリンタリスト531(図6参照)に表示させる(S207)。S207は、表示処理の一例である。
一方、アプリテーブル242に含まれないと判断した場合(S206:NO)、CPU21は、操作表示部26を制御して、見つかったプリンタのプリンタ名と、「使用なし」を示す文言とを、プリンタ選択領域53のプリンタリスト531に表示させる(S208)。アプリテーブル242に情報が記憶されていないプリンタは、使用中のユーザが印刷を実行させたことがない印刷装置1である。印刷させたことのないプリンタであっても、選択可能に表示することで、プリンタの選択肢が増え、選択の自由度が向上する。
複数の経路に対応しないと判断した場合(S205:NO)、CPU21は、操作表示部26を制御して、見つかったプリンタのプリンタ名を、プリンタ選択領域53のプリンタリスト531に表示させる(S209)。S209では、CPU21は、アプリ名を併記しない。処理の経路の選択が必要な場合は、処理の経路が複数ある場合であり、処理の経路が1つに決まる場合は、アプリ名を表示する必要性が低い。そのため、アプリ名を表示しないことで、表示内容がシンプルになり、ユーザがよりプリンタを選択し易くなる。
そして、S207、S208、S209のいずれかの後、CPU21は、さらに検索を継続する。そして、CPU21は、S204に戻って、次のプリンタが見つかったか否かを判断する。
一方、使用中のユーザのアプリテーブル242が記憶されていないと判断した場合(S201:NO)、CPU21は、プリンタの検索を行う(S210)。S210は、S203と同様の処理である。そして、CPU21は、プリンタが見つかったか否かを判断する(S211)。プリンタが見つかったと判断した場合(S211:YES)、CPU21は、操作表示部26を制御して、見つかったプリンタのプリンタ名を、プリンタ選択領域53のプリンタリスト531に表示させる(S212)。S212では、CPU21は、アプリ名の欄を空欄にして表示する。アプリテーブル242が記憶されていないユーザの場合、全てのプリンタのアプリ名は空欄となる。
そして、接続されている全てのプリンタの検索が終了し、他にプリンタが見つからないと判断した場合(S204:NO、または、S211:NO)、CPU21は、表示したプリンタリスト531への選択操作を受け付ける。さらに、CPU21は、選択操作を受け付けたか否かを判断する(S215)。S215は、選択処理の一例である。
選択操作を受け付けたと判断した場合(S215:YES)、CPU21は、選択されたプリンタの経路を処理の経路として取得する(S216)。選択されたプリンタが第1経路と第2経路とのいずれか一方のみに対応するプリンタであれば、対応する経路を処理の経路として取得する。また、選択されたプリンタに関連付けて、アプリテーブル242に経路の情報が記憶されている場合には、記憶されている経路を処理の経路として取得する。また、複数の経路に対応するプリンタであって、アプリテーブル242に経路の情報が記憶されていない場合には、第1経路を処理の経路とする。なお、複数の経路に対応するプリンタであって、アプリテーブル242に経路の情報が記憶されていない場合には、ユーザに経路を問い合わせてもよい。
さらに、選択されたプリンタが、アプリテーブル242に情報が記憶されているプリンタであれば、CPU21は、選択されたプリンタに関連付けて記憶されている印刷設定を読み出し、印刷設定のデフォルト値を、読み出した印刷設定の値に設定する(S217)。S217は、デフォルト値設定処理の一例である。
情報処理装置2では、後述するように、印刷を実行した後、印刷に使用した印刷設定の設定情報をアプリテーブル242に記憶する。つまり、アプリテーブル242に記憶されている設定情報は、使用中のユーザが、プリンタリスト531に併記されたアプリ名のアプリにて印刷を実行した際に、印刷設定として使用した各設定値である。ユーザは、プリンタリスト531に併記されたアプリ名を参照してプリンタを選択するため、併記されているアプリでの印刷に用いられた印刷設定をそのまま希望する可能性が高い。例えば、印刷の濃度の設定には、ユーザの好みが反映されている可能性が高い。プリンタの選択の際に、記憶している設定情報の値をデフォルト値として設定し、前の印刷にて用いた印刷設定の一部を引き継げることで、ユーザの印刷設定の手間を省くことができる。
なお、アプリテーブル242に記憶する印刷設定は、特定の項目のみとしてもよい。特定の項目は、例えば、ユーザごとの好みが分かれると推定される項目や、同じ設定での印刷を繰り返す可能性が高い項目である。特定の項目としては、例えば、濃度、用紙サイズ、用紙の向き(縦長、横長)、印字品質が該当する。
選択操作を受け付けていないと判断した場合(S215:NO)、CPU21は、プリンタ選択を終了する操作を受け付けたか否かを判断する(S218)。CPU21は、例えば、他の項目を選択する操作を受け付けた場合、プリンタ選択を終了する操作を受け付けたと判断する。
S217の後、または、プリンタ選択を終了する操作を受け付けていないと判断した場合(S218:NO)、CPU21は、S215に戻り、さらに選択操作を受け付けたか否かを判断する。一方、プリンタ選択を終了する操作を受け付けたと判断した場合(S218:YES)、CPU21は、プリンタ選択処理を終了する。CPU21は、プリンタ選択処理を終了する前に、プリンタリスト531の表示を停止させてもよい。
図8の画像編集処理の説明に戻り、S106のプリンタ選択処理を終了した後、S102に戻り、さらに各ボタンの操作を受け付ける。また、印刷ボタン56への操作を受け付けたと判断した場合(S103:YES)、CPU21は、テーブル更新処理を実行する(S107)。テーブル更新処理の手順について、図10のフローチャートを参照して説明する。
テーブル更新処理では、CPU21は、まず、今回の印刷における処理の経路を決定する(S301)。S301は決定処理の一例である。CPU21は、プリンタ選択処理にて最後に選択されたプリンタについて取得した処理の経路を、今回の処理の経路に決定する。さらに、CPU21は、決定した処理の経路に基づいて印刷を指示するデータを生成し、選択されたプリンタに送信する(S302)。S302は、印刷処理及び出力処理の一例である。
なお、印刷指示を含む画像データを受信した印刷装置1は、受信したデータに基づく印刷を実行する。そして、印刷装置1は、印刷を完了した場合に印刷完了の通知を情報処理装置2に送信する。一方、印刷を完了できなかった場合には、印刷装置1は、エラーの通知を情報処理装置2に送信する。
情報処理装置2では、CPU21は、印刷用のデータを送信した送信先のプリンタから、印刷完了の通知を受信したか否かを判断する(S303)。印刷完了の通知を受信していないと判断した場合(S303:NO)、CPU21は、エラーの通知を受信したか否かを判断する(S304)。エラーの通知も受信していないと判断した場合(S304:NO)、CPU21は、S303に戻り、印刷完了の通知かエラーの通知かを受信するまで待機する。
印刷完了の通知を受信したと判断した場合(S303:YES)、CPU21は、今回印刷を実行したユーザのカレントディレクトリにアプリテーブル242が有るか否かを判断する(S305)。使用中のユーザのアプリテーブル242が無いと判断した場合(S305:NO)、CPU21は、使用中のユーザのカレントディレクトリに、新規にアプリテーブル242を作成する(S306)。
そして、使用中のユーザのアプリテーブル242が有ると判断した場合(S305:YES)、または、S306の後、CPU21は、印刷を実行させた印刷装置1のプリンタ名に関連付けて、今回の印刷を行ったアプリ名(この場合、画像編集アプリ41)と、処理の経路とを、アプリテーブル242に記憶する(S307)。S307は、記憶処理の一例である。画像編集アプリ41自身の情報を記憶させることで、プリンタリスト531に自身の名称が表示され、ユーザによるプリンタの選択し易さが向上する。
なお、図7では、印刷を実行したすべての印刷装置1について、アプリの情報を記憶するとしたが、複数の経路に対応する印刷装置1についてのみ記憶するとしてもよい。つまり、一方の経路のみに対応する印刷装置1については、アプリ名及び経路の情報を記憶しなくてもよい。
さらに、CPU21は、今回の印刷にて使用した印刷設定を、印刷を実行させた印刷装置1のプリンタ名に関連付けて、アプリテーブル242に記憶して(S308)、テーブル更新処理を終了する。なお、S308にて記憶するのは、前述した特定の項目のみとすればよい。S308では、印刷設定の項目とその設定値とを関連付けて記憶する。
一方、エラーの通知を受信したと判断した場合(S304:YES)、CPU21は、操作表示部26を制御して、エラーが発生した旨を通知するメッセージを表示させ(S310)、テーブル更新処理を終了する。エラーが発生した場合には、アプリテーブル242を更新しないので、プリンタリスト531には、印刷物が出力されたアプリ名が表示される。
図8の画像編集処理の説明に戻り、S107のテーブル更新処理を終了した後、CPU21は、S102に戻り、さらに各ボタンの操作を受け付ける。また、その他のボタンへの操作を受け付けたと判断した場合(S104:YES)、CPU21は、その他の動作を実行する(S108)。その他の動作として、CPU21は、例えば、選択したプリンタに関連付けて記憶されている処理の経路を変更する指示を受け付ける。変更を受け付けることで、処理の経路を選択したいユーザは、好みの経路を選択することができる。S108の後、CPU21は、S102に戻り、さらに各ボタンの操作を受け付ける。
そして、アプリを終了させる指示を受け付けたと判断した場合(S105:YES)、CPU21は、画像編集処理を終了する。
以上、詳細に説明したように、本形態の印刷システム100によれば、情報処理装置2は、ユーザごとのアプリテーブル242を記憶している。アプリテーブル242には、印刷装置1を識別するプリンタ名と、その印刷装置1にて印刷を行ったアプリのアプリ名と、そのアプリから印刷を行った際の処理の経路と、が互いに関連付けて記憶されている。情報処理装置2は、アプリテーブル242に記憶されている情報を読み出し、ユーザによるプリンタの選択を受け付ける表示画面であるプリンタリスト531に、プリンタ名にアプリ名を併記して表示する。従って、ユーザはそのアプリで印刷を行った際の印刷結果を参考にしつつプリンタを選択できる。さらに、情報処理装置2は、プリンタの選択に伴って、処理の経路を、そのアプリで印刷を行った際の処理の経路に決定する。これにより、ユーザに処理の経路の選択を意識させることなく、簡単なプリンタの選択操作で、処理の経路が、そのユーザに好適な処理の経路に決定される。
なお、本実施の形態は単なる例示にすぎず、本発明を何ら限定するものではない。したがって本発明は当然に、その要旨を逸脱しない範囲内で種々の改良、変形が可能である。例えば、印刷装置1は、操作パネル13を備えなくてもよい。情報処理装置2は、不揮発性メモリ24に限らず、どのような種類の大容量記憶装置を備えていてもよい。
また、印刷装置1と情報処理装置2との通信方式は、Wi−Fi(登録商標)規格に準拠した無線通信に限らない。例えば、LANケーブル、USBケーブル等を用いた有線通信であってもよいし、Bluetooth(登録商標)等の他の規格に基づく無線通信であってもよい。また、複数の通信機能を備えていてもよい。
また、印刷対象の画像ファイルは、ラベルに印刷するためのラベル画像ファイルに限らない。例えば、PDFファイル、JPEG等の圧縮ファイル、ビットマップファイルでもよい。ラベル画像ファイル以外の画像ファイルを対象とする場合、画像編集アプリ41や専用印刷制御プログラム43として、対象の画像ファイルに適合するものを使用すればよい。
また、本形態では、第2経路では印刷装置1にてラスタライズするとしたが、第1経路と異なる経路であればよく、情報処理装置2にてラスタライズする経路であってもよい。例えば、汎用印刷制御プログラム45がラスタライズ機能を有していれば、そのラスタライズ機能によってラスタライズしてもよい。この場合であっても、第1経路と第2経路とではラスタライズ処理のアルゴリズムが異なる。また、この場合であっても、第1経路は、OS44の印刷制御機能を用いない経路であり、第2経路は、OS44の印刷制御機能を用いる経路である。
また、本形態では、印刷システム100にて対応可能な経路として第1経路と第2経路の2種類が有るものとして説明しているが、さらに他の経路があってもよい。他の経路としては、例えば、デバイスに専用のドライバを用いて印刷する経路や、Unix、macOS、Linux(登録商標)の印刷ドライバであるCUPSを用いて印刷する経路がある。デバイス専用のドライバやCUPSは、情報処理装置2のOS44(図2参照)に組み込まれ、画像データのラスタライズを行うプログラムである。また、本発明は、第1経路と第2経路との組み合わせに限らず、第1経路と第2経路と他の経路とのうちの2つ以上の経路を有する印刷システムであれば適用可能である。
また、本形態では、プリンタリスト531にて、複数の経路に対応する印刷装置1についてのみアプリ名を併記するとしたが、印刷を行ったことのある全ての印刷装置1について、併記してもよい。例えば、図7に示したようにアプリテーブル242にプリンタAやプリンタBでの印刷を実行したアプリが記憶されている場合、例えば、図11に示すように、一方の経路にのみ対応するプリンタAとプリンタBにも、アプリ名を併記して表示してもよい。経路に関わらずアプリ名を表示することで、ユーザのプリンタ選択の参考になる。
また、本形態では、アプリテーブル242が作成されていない場合、印刷を完了した後に作成するとしたが、これに限らない。例えば、アプリテーブル242が無いと判断した場合(プリンタ選択処理のS201にてNOと判断した場合)には、すぐに作成してもよい。あるいは、印刷指示を受け付けた場合には、印刷を完了する前に作成するとしてもよい。
また、本形態では、アプリテーブル242には、印刷を実行した印刷装置1の情報のみを記憶するとしたが、印刷の実行の有無に関わらず、接続されている印刷装置1の情報を記憶してもよい。また、アプリテーブル242のプリンタ名によって各印刷装置1を区別できる場合には、シリアルナンバーは無くてもよい。また、アプリテーブル242の保存場所は、カレントディレクトリに限らず、各アプリにてアクセス可能な領域であればよい。
また、本形態では、画像編集アプリ41は画像を編集する機能を有しているが、これに限られない。例えば、画像の編集は他の汎用のアプリにて行い、画像編集アプリ41は、その汎用のアプリで作成されたファイルを印刷する機能を有するものであってもよい。
また、実施の形態に開示されている処理は、単一のCPU、複数のCPU、ASICなどのハードウェア、またはそれらの組み合わせで実行されてもよい。また、実施の形態に開示されている処理は、その処理を実行するためのプログラムを記録した記録媒体、または方法等の種々の態様で実現することができる。