(57)【要約】      （修正有）【課題】プリント前動作の実行を適切なタイミングでプリンタに指示可能なプログラムを提供する。【解決手段】ＰＣにインストールされたドライバプログラムは、ＯＳから受け付けたプリント指示情報が示すプリンタが、情報処理装置によって管理される共有プリンタであるか否かを判断する（Ｓ３１）。ドライバプログラムは、共有プリンタでないと判断すると（Ｓ３１：Ｎｏ）、先行コマンドフラグに「ＯＮ」を設定し（Ｓ３２）、先行コマンドをプリンタに送信することに決定する。ドライバプログラムは、共有プリンタであると判断すると（Ｓ３１：Ｙｅｓ）、共有プリンタとＬＡＮ接続されているか否か（Ｓ４５）や、無線ＬＡＮ接続されているか否かなどの判断を行い、当該判断にしたがって、先行コマンドを送信するか否かを決定する。【選択図】図５
2019117621.tif 000002
【特許請求の範囲】
【請求項１】
通信インタフェースを備えるコンピュータによって読み取り可能なドライバプログラムであって、
該ドライバプログラムは、前記コンピュータのＯＳからプリント指示を含むプリント指示情報を受け付けるプリント指示受付処理を前記コンピュータに実行させ、前記プリント指示は、プリンタにプリント動作を実行させる指示がユーザによって入力されたことを示し、
該ドライバプログラムは、前記プリント指示受付処理で前記プリント指示を受け付けたことに応じて、プリント前動作の開始を準備指示情報によって指示するか否かを判断する判断処理を前記コンピュータに実行させ、前記プリント前動作は、前記プリント動作の前に、前記プリンタによって前記プリント動作の準備を行う動作であり、前記準備指示情報は、前記プリント動作の指示に先行して前記プリンタに送信される情報であり、
該ドライバプログラムは、
前記プリント前動作を指示すると前記判断処理で判断したことに応じて、前記通信インタフェースを通じて前記プリンタに前記準備指示情報を送信する準備指示処理と、
前記プリント前動作を指示すると前記判断処理で判断し且つ前記準備指示処理を実行したことに応じて、ユーザによって指定されたコンテンツデータに基づいて、前記プリント動作の対象となるプリントデータを生成する生成処理と、
前記通信インタフェースを通じて前記プリンタにプリント実行情報を送信するプリント実行指示処理とを前記コンピュータに実行させ、前記プリント実行情報は、前記生成処理で生成した前記プリントデータに対する前記プリント動作の実行を指示するための情報であり、
該ドライバプログラムは、前記プリント指示情報に含まれる情報と、前記プリンタとの通信に要する時間を示す参照通信時間との少なくとも一方を用いて、前記プリント前動作の開始を前記準備指示情報によって指示するか否かを判断する前記判断処理を前記コンピュータに実行させるドライバプログラム。
【請求項２】
該ドライバプログラムは、前記プリント指示情報に含まれる情報であって、前記プリンタが情報処理装置を通じて前記プリントデータを受信する共有プリンタであるか否かを示す第１情報に基づいて、前記プリンタが前記共有プリンタでないことに応じて、前記プリント前動作の開始を前記準備指示情報によって指示すると判断し、前記プリンタが前記共有プリンタであることに応じて、前記プリント前動作の開始を指示しないと判断する前記判断処理を前記コンピュータに実行させる請求項１に記載のドライバプログラム。
【請求項３】
該ドライバプログラムは、前記プリント指示情報に含まれる情報であって、前記プリンタと１対１対応でローカル接続されているかネットワークにネットワーク接続されているかを示す第２情報に基づいて、前記プリンタと前記コンピュータとがローカル接続されていると判断したことに応じて、前記プリント前動作の開始を前記準備指示情報によって指示すると判断する前記判断処理を前記コンピュータに実行させる請求項１または２に記載のドライバプログラム。
【請求項４】
該ドライバプログラムは、前記第２情報に基づいて、前記プリンタと前記ネットワークを通じて接続されていると判断したことに応じて、前記第２情報に基づいて、前記プリンタと有線接続されているか無線接続されているかを判断し（Ｓ１１７）、有線接続されていると判断したことに応じて、前記プリント前動作の開始を前記準備指示情報によって指示すると判断し、無線接続されていると判断したことに応じて、前記プリント前動作の開始を指示しないと判断する前記判断処理を前記コンピュータに実行させる請求項３に記載のドライバプログラム。
【請求項５】
該ドライバプログラムは、
前記プリンタが前記プリント前動作を実行して待機状態からプリント実行可能状態に移行した後、前記待機状態に戻るまでの時間を示す復帰時間の送信を要求する第１要求情報を前記プリンタに送信して前記復帰時間を取得する取得処理と、
前記プリント指示受付処理で前記プリント指示情報を受け付けたことに応じて、応答を返信することを要求する第２要求情報を前記プリンタに送信し、前記第２要求情報を送信してから前記応答を受信するまでの時間である前記参照通信時間を計測することを要求する第３情報を生成して前記ＯＳに出力し、
前記第３情報の出力後、前記参照通信時間を前記ＯＳから取得し、
取得した前記参照通信時間に応じた時間が前記取得処理で取得した前記復帰時間未満であるか否かを判断し、
前記参照通信時間に応じた時間が前記復帰時間未満であることに応じて、前記プリント前動作の開始を前記準備指示情報によって指示すると判断し、
前記参照通信時間に応じた時間が前記復帰時間以上であることに応じて、前記プリント前動作の開始を指示しないと判断する前記判断処理を前記コンピュータに実行させる請求項１から４のいずれかに記載のドライバプログラム。
【請求項６】
該ドライバプログラムは、
前記プリント指示情報に含まれる情報であって、前記プリンタが情報処理装置を通じて前記プリントデータを受信する共有プリンタであるか否かを示す第１情報に基づいて、前記プリンタが前記共有プリンタであるか否かを判断し、
前記プリンタが前記共有プリンタであると判断し、かつ、前記プリント前動作を指示すると前記判断処理で判断し、かつ、前記プリンタと１対１対応でローカル接続されていると判断したことに応じて、前記準備指示情報を前記ＯＳに出力し、前記ＯＳを介して、前記プリンタに前記準備指示情報を送信し、
前記プリンタが前記共有プリンタでないと判断し、かつ、前記プリント前動作を指示すると前記判断処理で判断し、かつ、前記プリンタと前記ネットワークにネットワーク接続されていると判断したことに応じて、前記準備指示情報及び前記プリンタの送信アドレスを含む送信情報を生成し、生成した送信情報を前記通信インタフェースを通じて前記プリンタに送信する前記準備指示処理を前記コンピュータに実行させる請求項１から５のいずれかに記載のドライバプログラム。
【請求項７】
該ドライバプログラムは、
前記プリンタと前記コンピュータとがＵＳＢ接続されている場合に前記準備指示情報の送信を実行するか否かの設定を受け付ける第１オブジェクトと、
前記プリンタと前記コンピュータとが有線ＬＡＮ接続されている場合に前記準備指示情報の送信を実行するか否かの設定を受け付ける第２オブジェクトと、
前記プリンタと前記コンピュータとが無線ＬＡＮ接続されている場合に前記準備指示情報の送信を実行するか否かの設定を受け付ける第３オブジェクトと、を含む設定画面を前記コンピュータのディスプレイに表示させる表示処理と、
前記第１オブジェクト、前記第２オブジェクト、及び前記第３オブジェクトを用いたユーザ設定に基づいて、前記判断処理を前記コンピュータに実行させる請求項１から６のいずれかに記載のドライバプログラム。
【請求項８】
通信インタフェース及びコントローラを備えるコンピュータであって、
前記コントローラは、プリンタにプリント動作を実行させる指示がユーザによって入力されたことを示すプリント指示を含むプリント指示情報を生成する第１生成処理と、
前記プリント動作の前に、前記プリンタによって実行される動作であるプリント前動作の開始を、前記プリント動作の指示に先行して前記プリンタに送信される情報である準備指示情報によって指示するか否かを判断する判断処理と、
前記プリント前動作を指示すると前記判断処理で判断したことに応じて、前記通信インタフェースを通じて前記プリンタに前記準備指示情報を送信する準備指示処理と、
前記プリント前動作を指示すると前記判断処理で判断し且つ前記準備指示処理を実行したことに応じて、ユーザによって指定されたコンテンツデータに基づいて、前記プリント動作の対象となるプリントデータを生成する第２生成処理と、
前記通信インタフェースを通じて、前記第２生成処理で生成した前記プリントデータに対する前記プリント動作の実行を指示するための情報であるプリント指示情報を前記プリンタに送信するプリント実行指示処理と、を実行し、
前記コントローラは、前記第１生成処理で生成した前記プリント指示情報に含まれる情報と、前記プリンタとの通信に要する時間を示す参照通信時間との少なくとも一方を用いて、前記プリント前動作の開始を前記準備指示情報によって指示するか否かを判断する前記判断処理を実行するコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリンタにプリント動作を実行させるコンピュータのプログラムに関する。
【背景技術】
【０００２】
従来より、通信ネットワークを通じて接続されたプリンタにプリント動作の実行を指示するのに先立って、当該プリント動作の品質を担保するためのプリント前動作の実行を指示するコンピュータのプログラムが知られている。例えば特許文献１において、ＯＳによって起動されたプログラムは、プリンタの出力ポートがレディ状態であり且つプリンタへの直近のデータ送信からの経過時間が規定時間以上であることに応じて、プリント前動作の実行を指示するオートウェイクアップコマンドをプリンタに送信する。
【０００３】
また、従来より、プリンタにおける印刷枚数を情報管理サーバで管理し、印刷枚数に応じて課金を行うシステムが知られている（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−５３５０号公報
【特許文献２】特開２０１７−４７５９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載のプログラムは、オートウェイクアップコマンドをプリンタが受信してから印刷データを受信するまでの時間に拘わらず、前述の条件を満たしたことに応じてオートウェイクアップコマンドをプリンタに送信する。すなわち、特許文献１に記載のプログラムによれば、オートウェイクアップコマンドをプリンタが受信してから印刷データを受信するまでの時間が長くなるおそれがある。当該時間が長くなると、インクが乾いて印刷品質が低下したり、乾いたインクを排出してインクが無駄に消費されたり、或いは、無駄な電力が消費されるという課題を生じる。
【０００６】
また、特許文献２に記載のシステムに特許文献１に記載のプログラムを用いると、情報管理サーバがオートウェイクアップコマンドを印刷と判断し、印刷枚数が意図せず増加してしまうという課題を生じる。
【０００７】
本発明は、上記の事情に鑑みてなされたものであり、その目的は、プリント前動作の実行を指示するか否かを適切に判断可能なドライバプログラムを提供することにある。
【課題を解決するための手段】
【０００８】
本明細書に記載のドライバプログラムは、通信インタフェースを備えるコンピュータによって読み取り可能である。該ドライバプログラムは、前記コンピュータのＯＳからプリント指示を含むプリント指示情報を受け付けるプリント指示受付処理を前記コンピュータに実行させる。前記プリント指示は、プリンタにプリント動作を実行させる指示がユーザによって入力されたことを示す。該ドライバプログラムは、前記プリント指示受付処理で前記プリント指示を受け付けたことに応じて、プリント前動作の開始を準備指示情報によって指示するか否かを判断する判断処理を前記コンピュータに実行させる。前記プリント前動作は、前記プリント動作の前に、前記プリンタによって前記プリント動作の準備を行う動作である。前記準備指示情報は、前記プリント動作の指示に先行して前記プリンタに送信される情報である。該ドライバプログラムは、前記プリント前動作を指示すると前記判断処理で判断したことに応じて、前記通信インタフェースを通じて前記プリンタに前記準備指示情報を送信する準備指示処理と、前記プリント前動作を指示すると前記判断処理で判断し且つ前記準備指示処理を実行したことに応じて、ユーザによって指定されたコンテンツデータに基づいて、前記プリント動作の対象となるプリントデータを生成する生成処理と、前記通信インタフェースを通じて前記プリンタにプリント実行情報を送信するプリント実行指示処理とを前記コンピュータに実行させる。前記プリント実行情報は、前記生成処理で生成した前記プリントデータに対する前記プリント動作の実行を指示するための情報である。該ドライバプログラムは、前記プリント指示情報に含まれる情報と、前記プリンタとの通信に要する時間を示す参照通信時間との少なくとも一方を用いて、前記プリント前動作の開始を前記準備指示情報によって指示するか否かを判断する前記判断処理を前記コンピュータに実行させる。
【０００９】
上記構成によれば、プリント指示情報に含まれる情報と、プリンタとの通信に要する時間を示す参照通信時間との少なくとも一方を用いて、プリント前動作の開始を準備指示情報によって指示するか否かが判断される。したがって、プリント前動作の開始を指示する準備指示情報を送信するか否かを適切に判断することができる。
【００１０】
本実施形態に係るコンピュータは、通信インタフェース及びコントローラを備える。前記コントローラは、プリンタにプリント動作を実行させる指示がユーザによって入力されたことを示すプリント指示を含むプリント指示情報を生成する第１生成処理と、前記プリント動作の前に、前記プリンタによって実行される動作であるプリント前動作の開始を、前記プリント動作の指示に先行して前記プリンタに送信される情報である準備指示情報によって指示するか否かを判断する判断処理と、前記プリント前動作を指示すると前記判断処理で判断したことに応じて、前記通信インタフェースを通じて前記プリンタに前記準備指示情報を送信する準備指示処理と、前記プリント前動作を指示すると前記判断処理で判断し且つ前記準備指示処理を実行したことに応じて、ユーザによって指定されたコンテンツデータに基づいて、前記プリント動作の対象となるプリントデータを生成する第２生成処理と、前記通信インタフェースを通じて、前記第２生成処理で生成した前記プリントデータに対する前記プリント動作の実行を指示するための情報であるプリント指示情報を前記プリンタに送信するプリント実行指示処理と、を実行する。前記コントローラは、前記第１生成処理で生成した前記プリント指示情報に含まれる情報と、前記プリンタとの通信に要する時間を示す参照通信時間との少なくとも一方を用いて、前記プリント前動作の開始を前記準備指示情報によって指示するか否かを判断する前記判断処理を実行する。
【図面の簡単な説明】
【００１１】
【図１】図１は、プリンタ１０とＰＣ５０との接続手段を示す図である。
【図２】図２（Ａ）は、プリンタ１０の機能ブロック図であり、図２（Ｂ）は、ＰＣ５０の機能ブロック図である。
【図３】図３（Ａ）は、プリント指示情報が記憶されたキュー領域６７Ａを示す図であり、図３（Ｂ）は、先行コマンドが記憶されたキュー領域６７Ａを示す図である。
【図４】図４は、プリント指示処理のフローチャートである。
【図５】図５（Ａ）は、先行コマンド出力判断処理のフローチャートであり、図５（Ｂ）は、共有プリンタの場合の判断処理のフローチャートである。
【図６】図６は、ＬＡＮの場合の判断処理のフローチャートである。
【図７】図７（Ａ）は、ＳｔａｒｔＰａｇｅ処理のフローチャートであり、図７（Ｂ）は、ＳｔａｒｔＤｏｃ処理のフローチャートである。
【図８】図８は、プリント処理のフローチャートである。
【図９】図９は、ポート設定画面を示す図である。
【図１０】図１０は、変形例１における共有プリンタの場合の判断処理のフローチャートである。
【図１１】図１１（Ａ）は、変形例２におけるＳｔａｒｔＤｏｃ処理のフローチャートであり、図１１（Ｂ）は、先行コマンド処理のフローチャートである。
【発明を実施するための形態】
【００１２】
以下、適宜図面を参照して本発明の実施形態について説明する。なお、以下に説明される実施形態は本発明の一例にすぎず、本発明の要旨を変更しない範囲で、本発明の実施形態を適宜変更できる。例えば、後述する各処理の実行順序は、本発明の要旨を変更しない範囲で、適宜変更することができる。
【００１３】
本実施形態では、パーソナルコンピュータ（以下、「ＰＣ」と表記する）５０にインストールされて実行されるドライバプログラム６６（図２（Ｂ））を説明する。
【００１４】
ドライバプログラム６６がインストールされるＰＣ５０は、種々の手段によってプリンタ１０と通信可能にされる。具体的には、ＰＣ５０は、図１（Ａ）に示されるように、ＰＣ７０とともにネットワーク１１に接続されている。また、ＰＣ７０は、ネットワーク１１を介してプリンタ１０と通信可能となっている。なお、ＰＣ７０には、自身に接続されるプリンタ１０をネットワーク１１内で共有し、ＰＣ５０からプリンタ１０を利用可能なプリンタ共有が設定されており、所謂サーバとして機能する。以下では、ＰＣ７０によって管理されるプリンタ１０を共有プリンタ１０と表記する。一方、ＰＣ５０は、ＰＣ７０を介してプリンタ１０と通信可能であり、所謂クライアントとして機能する。
【００１５】
また、ＰＣ５０は、図１（Ｂ）に示されるように、プリンタ１０がケーブル１２を介してローカル接続されたＰＣ７０にネットワーク接続され、ＰＣ７０を通じてプリンタ１０と通信可能に接続される。図１（Ａ）と同様に、図１（Ｂ）においても、ＰＣ７０には、プリンタ共有が設定されており、ＰＣ５０からプリンタ１０を利用可能となっている。
【００１６】
また、ＰＣ５０は、図１（Ｃ）に示されるように、ネットワーク１１やケーブル１２を用いてプリンタ１０と接続され、ネットワーク１１やケーブル１２を通じてプリンタ１０と通信を行う。なお、ケーブル１２は、ＵＳＢケーブルやパラレルケーブルなどである。また、ＰＣ５０は、有線ＬＡＮによってネットワーク接続されていてもよいし、無線ＬＡＮによってネットワーク接続されていてもよい。また、ＰＣ５０は、不図示のアクセスポイントを経由して、Ｗｉ−Ｆｉ（Wi-Fi Allianceの登録商標）などによってネットワーク１１に接続されてもよい。
【００１７】
ＰＣ７０は、例えば、ＰＣ５０から受信した印刷ジョブからプリンタ１０がプリントしたシートの枚数（以下、プリント枚数と表記）を取得し、プリント枚数に応じた使用金額を算出する管理機能を備えている。ＰＣ７０を用いてのプリンタ１０の管理は、例えばメーカが行う。すなわち、メーカが管理するプリンタ１０がユーザに提供される。
【００１８】
メーカは、例えば、プリンタ１０と、ドライバプログラム６６とのセットをユーザに提供する。或いは、メーカは、プリンタ１０と、ドライバプログラム６６と、ＰＣ７０にインストール可能なプログラム（不図示）とのセットをユーザに提供する。ドライバプログラム６６は、例えば、プリンタ１０に同梱されたＣＤ−ＲＯＭ等の形式で提供されてもよいし、メーカのＷＥＢサイトを通じてダウンロード可能にされてもよい。
【００１９】
本実施形態では、プリンタ１０との接続手段や、ＰＣ７０の有無などに応じて、後述の先行コマンドをプリンタ１０に適切に入力可能なドライバプログラム６６を説明する。
【００２０】
プリンタ１０は、図２（Ａ）に示されるように、電源部２６と、動作部２０と、ディスプレイ２３と、入力インタフェース（以下、Ｉ／Ｆと表記する）２４と、通信インタフェース（以下、Ｉ／Ｆと表記する）２５と、制御部３０とを主に備える。プリンタ１０を構成する各構成要素は、不図示の通信バスを通じて相互に接続されている。本実施形態では、インクジェット方式のプリンタ１０を例として説明するが、プリンタ１０は、インクジェット方式に限定されず、電子写真方式などの公知の他の方式であってもよい。
【００２１】
電源部２６は、電源プラグを通じて外部電源から供給された電力を、プリンタ１０の各構成要素に供給する。より詳細には、電源部２６は、外部電源から取得した電力を、動作部２０に駆動電力（例えば、直流２４Ｖ）として出力し、制御部３０に制御電力（例えば、直流５Ｖ）として出力する。また、図示は省略するが、電源部２６は、ディスプレイ２３、入力Ｉ／Ｆ２４、及び通信Ｉ／Ｆ２５にも電力を供給している。電源部２６は、例えば、商用交流電圧を直流電圧に変換するＡＣ／ＤＣコンバータと、ＡＣ／ＤＣコンバータが出力する直流電圧を所定の直流電圧に降圧するスイッチングレギュレータなどのＤＣ／ＤＣコンバータとを有する。
【００２２】
また、電源部２６は、制御部３０から出力される駆動信号に基づいて、駆動状態と休眠状態とに切り替えが可能である。より詳細には、制御部３０は、ＡＣ／ＤＣコンバータやＤＣ／ＤＣコンバータが備えるスイッチング素子を駆動させる駆動信号を出力することによって、休眠状態にある電源部２６を駆動させて駆動状態にする。
【００２３】
駆動状態とは、動作部２０に駆動電力を出力している状態である。換言すれば、駆動状態とは、動作部２０が動作可能な状態である。休眠状態とは、動作部２０に駆動電力を出力していない状態である。換言すれば、休眠状態とは、動作部２０が動作不能な状態である。一方、電源部２６は、駆動状態であるか休眠状態であるかに拘わらず、制御部３０に制御電力を出力している。また、図示は省略するが、入力Ｉ／Ｆ２４は、電源部２６が駆動状態であるか休眠状態であるかに拘わらず、ユーザ操作に応じた操作信号を出力することができる。また、通信Ｉ／Ｆ２５は、電源部２６が駆動状態であるか休眠状態であるかに拘わらず、外部装置から情報を受信することができる。
【００２４】
動作部２０は、制御部３０の指示に従ってプリント動作及びプリント前動作を実行する。プリント動作は、シートに画像をプリントする動作である。プリント前動作は、プリント動作で所定品質の画像をシートにプリントするために、プリント動作に先立って実行される動作である。プリント動作及びプリント前動作の詳細は、後述する。動作部２０は、図１に示されるように、搬送部２１と、吐出部２２とを主に備える。
【００２５】
搬送部２１は、不図示の給送トレイに支持されたシートを搬送方向に搬送する。搬送部２１は、例えば、不図示のモータの駆動力が伝達されて回転する複数のローラによって構成される。モータによって回転されるローラは、給送トレイに支持されたシートを吐出部２２に対面する位置まで搬送し、吐出部２２によって画像がプリントされたシートをプリンタ１０の外部に排出する。プリンタ１０は、複数の給送トレイを備えることができる。
【００２６】
吐出部２２は、搬送部２１によって搬送されたシートに対面し得る位置において、搬送方向と直交する主走査方向に移動する。吐出部２２は、不図示のモータの駆動力が伝達されることによって、主走査方向に移動する。吐出部２２の下面には、複数のノズルが形成されたノズル面が形成されている。吐出部２２は、ノズルからインク滴を吐出する。
【００２７】
吐出部２２が主走査方向に移動する過程で吐出したインクがシートに着弾することによって、シートに画像がプリントされる。吐出部２２が主走査方向の一方から他方に移動する過程において、吐出部２２から吐出されたインクが着弾し得るシート上の領域を「プリント領域」と表記する。シートは、複数のプリント領域に区画される。そして、吐出部２２は、後述するプリント動作において、複数のプリント領域それぞれに対して順番に画像をプリントする。
【００２８】
ディスプレイ２３は、液晶ディスプレイ、有機ＥＬディスプレイ等であり、各種情報を表示する表示面を備える。
【００２９】
入力Ｉ／Ｆ２４は、ユーザによる入力操作を受け付けるユーザインタフェースである。具体的には、入力Ｉ／Ｆ２４はボタンを有しており、押下されたボタンに対応づけられた各種の操作信号をＣＰＵ３１へ出力する。さらに、入力Ｉ／Ｆ２４は、ディスプレイ２３の表示面に重畳された膜状のタッチセンサを有していてもよい。ディスプレイ２３の表示面に表示されたオブジェクトを指定する操作、文字列或いは数字列を入力する操作は、ユーザ操作の一例である。「オブジェクト」とは、例えば、ディスプレイ２３に表示された文字列、アイコン、ボタン、リンク等である。
【００３０】
タッチセンサとして実現される入力Ｉ／Ｆ２４は、ユーザがタッチした表示面上の位置を示す位置情報を出力する。なお、本明細書中における「タッチ」とは、入力媒体を表示面に接触させる操作全般を含む。また、入力媒体が表示面に触れていなくても、表示面との間の距離がごく僅かな位置まで入力媒体を近接させることを、前述の「タッチ」の概念に含めてもよい。さらに入力媒体とは、ユーザの指であってもよいし、タッチペン等であってもよい。ディスプレイ５３に表示されたアイコンの位置のタップするユーザ操作は、当該アイコンを指定する指定操作の一例である。
【００３１】
通信Ｉ／Ｆ２５は、ネットワーク１１やケーブル１２を通じてＰＣ７０やＰＣ５０と通信可能なインタフェースである。すなわち、プリンタ１０は、通信Ｉ／Ｆ２５を通じてＰＣ７０やＰＣ５０に各種情報を送信し、通信Ｉ／Ｆ２５を通じてＰＣ７０やＰＣ５０から各種情報を受信する。通信Ｉ／Ｆ２５は、例えば、Ｗｉ−Ｆｉ（Wi-Fi Allianceの登録商標）に従った通信手順で、ネットワーク１１の不図示のアクセスポイントに無線信号を送信及び受信するものであってもよいし、ＬＡＮケーブルや、ＵＳＢケーブルなどのケーブル１２が接続されるインタフェースであってもよい。
【００３２】
制御部３０は、プリンタ１０の全体動作を制御するものである。制御部３０は、図２（Ａ）に示されるように、ＣＰＵ３１、ＲＯＭ３２、ＲＡＭ３３、ＥＥＰＲＯＭ３４、ＡＳＩＣ３５を主とするマイクロコンピュータである。
【００３３】
ＲＯＭ３２には、ＣＰＵ３１がプリンタ１０の動作を制御するためのプログラムが格納される。ＲＡＭ３３は、ＣＰＵ３１がプログラムを実行する際に用いる各種データを一時的に記録する記憶領域又は作業領域として使用される。ＥＥＰＲＯＭ３４には、電源オフ後も保持すべき設定やフラグ等が格納される。ＣＰＵ３１は、プログラムをＲＯＭ３２から読み出して実行することにより、プリンタ１０の動作を制御する。ＡＳＩＣ３５には、搬送部２１と、吐出部２２と、ディスプレイ２３と、入力Ｉ／Ｆ２４と、通信Ｉ／Ｆ２５とが接続されている。ＡＳＩＣ３５は、ＣＰＵ３１の指示に従ってプリンタ１０の各構成要素を動作させる。
【００３４】
ＲＯＭ３２、ＲＡＭ３３、ＥＥＰＲＯＭ３４は、コンピュータが読み取り可能なストレージ媒体であってもよい。コンピュータが読み取り可能なストレージ媒体とは、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体である。ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体には、上記の例の他に、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等の記録媒体も含まれる。また、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体は、ｔａｎｇｉｂｌｅな媒体でもある。一方、インターネット上のサーバなどからダウンロードされるプログラムを搬送する電気信号は、コンピュータが読み取り可能な媒体の一種であるコンピュータが読み取り可能な信号媒体であるが、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙなコンピュータが読み取り可能なストレージ媒体には含まれない。後述する情報処理端末５０のメモリ６２についても同様である。
【００３５】
ＥＥＰＲＯＭ３４には、プリンタ１０の装置情報が記憶されている。装置情報は、プリンタ１０のモデル名、シリアルナンバー、及びＭＡＣアドレスや、復帰時間情報が記憶されている。
【００３６】
復帰時間情報は、プリンタ１０が待機状態からプリント実行可能状態に移行した後から、プリントデータが入力しなかった場合に待機状態に戻るまでの復帰時間Ｔ１を示す情報であり、ＥＥＰＲＯＭ３４に予め記憶される。プリンタ１０の待機状態とは、電源部２６が休眠状態であり、吐出部２２のノズルが不図示のキャップに覆われた状態である。プリンタ１０のプリント実行可能状態とは、電源部２６が駆動状態であり、吐出部２２のノズルがキャップに覆われていない状態である。
【００３７】
ＡＳＩＣ３５は、モータへ駆動信号を出力する。モータが回転すると、搬送部２１はシートを搬送し、吐出部２２は主走査方向に移動する。ＡＳＩＣ３５は、ピエゾ素子等の駆動素子へ駆動信号を出力する。駆動素子が振動すると、吐出部２２はノズルからインク滴を吐出する。ＡＳＩＣ３５は、ディスプレイ２３へ画像信号を出力し、ディスプレイ２３に画面を表示させる。ＡＳＩＣ３５は、入力Ｉ／Ｆ２４から出力される操作信号を取得する。ＡＳＩＣ３５は、通信Ｉ／Ｆ２５を通じて外部装置から情報を受信し、通信Ｉ／Ｆ２５を通じて外部装置に情報を送信する。
【００３８】
ＰＣ５０は、図２（Ｂ）に示されるように、ディスプレイ５３と、入力Ｉ／Ｆ５４と、通信Ｉ／Ｆ５５と、ＣＰＵ６１と、メモリ６２と、通信バス６３とを主に備える。情報処理端末５０に含まれるディスプレイ５３、入力Ｉ／Ｆ５４、通信Ｉ／Ｆ５５、ＣＰＵ６１は、プリンタ１０に含まれるディスプレイ２３、入力Ｉ／Ｆ２４、通信Ｉ／Ｆ２５、ＣＰＵ３１と同様の構成であるので、説明は省略する。ＣＰＵ６１及びメモリ６２は、コントローラの一例である。
【００３９】
ＰＣ５０は、例えば、携帯電話、スマートフォン、タブレット端末等であってもよい。ＰＣ５０は、コンピュータの一例である。ＰＣ５０の入力Ｉ／Ｆ５４は、例えば、マウス及びキーボードの組み合わせであってもよい。この場合において、ディスプレイ５３に表示されたアイコンなどのオブジェクトの位置にマウスポインタを移動させてクリックするユーザ操作は、当該オブジェクトを指定する指定操作の一例である。
【００４０】
メモリ６２は、例えば、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＨＤＤ、ＰＣ５０に着脱されるＵＳＢメモリ等の可搬記憶媒体、ＣＰＵ６１が備えるバッファ等、或いはそれらの組み合わせによって構成される。メモリ６２は、プログラム記憶領域６２Ａ（以下、「領域６２Ａ」と表記する）と、データ記憶領域６２Ｂ（以下、「領域６２Ｂ」と表記する）とを有する。領域６２Ａには、ＯＳ６４と、ドライバプログラム６６とがインストールされている。領域６２Ａに記憶される各プログラムは、単一のプログラムであってもよいし、複数のプログラムの集合体であってもよい。領域６２Ｂには、各プログラムの実行に必要なデータ或いは情報が記憶される。
【００４１】
本実施形態では、Ｗｉｎｄｏｗｓ（Microsoft Corporationの登録商標）  Ｏｐｅｒａｔｉｎｇ  ＳｙｓｔｅｍをＯＳ６４の具体例として説明するが、ＯＳ６４の具体例はこれに限定されず、例えば、Ａｎｄｒｏｉｄ（Google inc.の登録商標）  ＯＳ、ｉＯＳ（Cisco Systems,Inc.の登録商標）等であってもよい。
【００４２】
ドライバプログラム６６は、ＯＳ６４から受け付けたプリント指示情報に従って、プリンタ１０にプリント処理を実行させるためのプログラムである。ドライバプログラム６６は、単一のモデルのプリンタ１０に対してのみプリント処理を指示可能であってもよいし、複数のモデルのプリンタ１０に対してプリント処理を指示可能であってもよい。
【００４３】
ドライバプログラム６６には、ＯＳ６４によって指定された複数の関数が定義されている。そして、ドライバプログラム６６は、複数の関数がＯＳ６４によって所定の順序で呼び出されることによって、プリンタ１０にプリント動作を実行させることができる。本実施形態に係るプリント指示情報は、例えば、所定の定数を引数として、ドライバプログラム６６に定義された関数がＯＳ６４によって呼び出されたことを指す。
【００４４】
領域６２Ｂは、第１領域６２Ｃと、第２領域６２Ｄとを含む。第１領域６２Ｃは、例えば、ＯＳ６４に関する基本情報、或いはドライバプログラムの設定情報のデータベースである所謂レジストリである。
【００４５】
第１領域６２Ｃは、条件情報を記憶している。条件情報は、プリンタ１０に実行させるプリント動作の実行条件を示すための情報である。条件情報は、セキュアフラグ及び認証情報を含む。
【００４６】
条件情報は、ドライバプログラム６６がインストールされたタイミングで第１領域６２Ｃに記憶される。また、ドライバプログラム６６は、第１領域６２Ｃに記憶された条件情報をユーザの指示に従って変更することができる。より詳細には、ドライバプログラム６６は、ＯＳ６４からの参照指示に従って第１領域６２Ｃから条件情報を読み出し、読み出した条件情報をディスプレイ５３に表示させる。次に、ドライバプログラム６６は、条件情報を変更するユーザ操作を入力Ｉ／Ｆ５４を通じて受け付けたことに応じて、第１領域６２Ｃに記憶された条件情報を変更後の条件情報で上書きする。
【００４７】
セキュアフラグは、所謂セキュアプリントをプリンタ１０に実行させるか否かを示す情報である。セキュアフラグには、セキュアプリントを実行させる指示に対応する「ＯＮ」、或いはセキュアプリントを実行させない指示に対応する「ＯＦＦ」が設定される。認証情報は、ユーザによって指定されたＰＩＮである。認証情報には、セキュアフラグに「ＯＮ」が設定される場合にのみ、有効な値が設定される。
【００４８】
セキュアプリントとは、有効な認証情報の入力をトリガとして開始されるプリント動作を指す。すなわち、プリンタ１０は、セキュアプリントの実行を指示するプリント実行情報を受信したことに応じて直ちにプリント動作を開始せず、入力Ｉ／Ｆ２４を通じて認証情報の入力を受け付けたことに応じてプリント動作を開始する。
【００４９】
また、領域６２Ｂは、１以上のキュー領域を含む。キュー領域は、プリンタ１０に送信すべき情報が記憶されるメモリ領域である。キュー領域は、プリンタ１０を特定する所謂印刷ポートに対応付けられている。ドライバプログラム６６には、例えば、情報を記憶させるべきキュー領域が、関数の引数としてＯＳ６４から指定される。以下、ドライバプログラム６６に対して指定されたキュー領域を、「指定キュー」と表記することがある。
【００５０】
キュー領域には、各種動作の実行をプリンタ１０に指示するための情報が記憶される。より詳細には、キュー領域には、図３（Ａ）に示される先行コマンド、図３（Ｂ）に示されるプリント実行情報、及び不図示のステータス送信指示情報等が記憶される。プリント実行情報は、プリント動作の実行を指示するための情報であって、給送指示情報、頭出し指示情報、搬送指示情報、吐出指示情報、及び排出指示情報等を含む。先行コマンドは、プリント前動作の実行を指示するためのコマンドである。不図示のステータス送信指示情報は、プリンタ１０の状態を示すステータス情報の送信を指示するための情報である。但し、キュー領域に記憶される情報の具体例は、これらに限定されない。
【００５１】
キュー領域は、ＯＳ６４が通信Ｉ／Ｆ５５を通じてプリンタ１０に送信する情報が、送信順を特定して記憶される領域である。換言すれば、ＯＳ６４は、キュー領域に指示情報が記憶されているか否かを所定のタイミングでチェックする。そして、ＯＳ６４は、キュー領域に指示情報が記憶されていると判断したことに応じて、当該指示情報を予め定められた送信順序で、通信Ｉ／Ｆ５５を通じてプリンタ１０に送信し、送信した指示情報をキュー領域から削除する。
【００５２】
より詳細には、キュー領域に記憶される指示情報には、図３（Ａ）及び図３（Ｂ）に示されるように、ジョブＩＤが付加される。ジョブＩＤは、キュー領域内において、連続して送信すべき指示情報を特定するための情報である。すなわち、複数の指示情報に同一のジョブＩＤが付加される場合がある。ＯＳ６４は、同一のジョブＩＤが付加された複数の指示情報を、キュー領域に記憶された順にプリンタ１０に送信する。また、ＯＳ６４は、異なるジョブＩＤが付加された指示情報を、当該ジョブＩＤの生成順にプリンタ１０に送信する。
【００５３】
ＯＳ６４は、例えばキュー領域において、まず、ジョブＩＤ“コンテンツデータＡ”が付加された搬送指示情報、吐出指示情報、及び排出指示情報をこの順に送信する。次に、ＯＳ６４は、ジョブＩＤ“コンテンツデータＢ”が付加された給送指示情報、及び頭出し指示情報をこの順に送信する。このとき、ジョブＩＤ“コンテンツデータＢ”が付加された給送指示情報が、ジョブＩＤ“コンテンツデータＡ”が付加された排出指示情報より先にキュー領域に書き込まれていたとしても、排出指示情報が先に送信される。すなわち、同一のジョブＩＤが付加された複数の指示情報が書き込み順に連続して送信される。
【００５４】
なお、ＰＣ７０は、ＰＣ５０の構成と同様であるので、説明は省略する。
【００５５】
［プリント指示処理］
以下、ドライバプログラム６６が実行するプリント指示処理について、図４を参照して説明する。ドライバプログラム６６は種々の処理を実行するが、以下では、ドライバプログラム６６が先行コマンドを送信するか否かを判断し、当該判断にしたがって、先行コマンドを送信し、或いは先行コマンドを送信せずに、プリントデータを送信するプリント指示処理について説明する。なお、以下の説明では、本発明において特に重要な処理を説明し、それ以外の処理の説明を省略している場合がある。先行コマンドは、準備指示情報の一例である。
【００５６】
本明細書のフローチャートは、基本的に、プログラムに記述された命令に従ったＣＰＵ３１、６１の処理を示す。すなわち、以下の説明における「判断」、「抽出」、「選択」、「制御」等の処理は、ＣＰＵ３１、６１の処理を表している。ＣＰＵ６１による処理は、ＯＳ６４を介したハードウェア制御も含む。また、本明細書中の「データ」とは、コンピュータに読取可能なビット列で表される。そして、実質的な意味内容が同じでフォーマットが異なるデータは、同一のデータとして扱われるものとする。本明細書中の「情報」についても同様である。
【００５７】
ドライバプログラム６６は、ドライバプログラム６６に定義された関数がＯＳ６４によって呼び出されることにより、プリント指示を含むプリント指示情報を受け付ける。ドライバプログラム６６は、プリント指示情報を受け付けたか否かを判断する（Ｓ１１）。ドライバプログラム６６は、プリント指示情報を受け付けていないと判断すると（Ｓ１１：Ｎｏ）、プリント指示処理を終了する。プリント指示を含むプリント指示情報を生成するＯＳ６４の処理は、第１生成処理の一例である。
【００５８】
一方、ドライバプログラム６６は、プリント指示情報を受け付けたと判断すると（Ｓ１１：Ｙｅｓ）、プリント指示情報が示す指定キューに、既にプリントデータがあるか否かを判断する（Ｓ１２）。プリント指示情報を受け付ける処理（Ｓ１２：Ｙｅｓ）は、プリント指示受付処理の一例である。
【００５９】
ドライバプログラム６６は、指定キューにプリントデータがあると判断すると（Ｓ１２：Ｙｅｓ）、ステップＳ１３からＳ１７、Ｓ２１、Ｓ２２の処理をスキップして、プリント指示情報を生成するＳｔａｒｔＰａｇｅ処理を実行する（Ｓ１８）。
【００６０】
[ＳｔａｒｔＰａｇｅ処理]
ＳｔａｒｔＰａｇｅ処理は、指定コンテンツデータに含まれるページデータ毎に実行される。ＳｔａｒｔＰａｇｅ処理の処理対象となるページデータは、例えば、ＯＳ６４によって、関数の引数として指定される。図７（Ａ）を参照して、ＳｔａｒｔＰａｇｅ処理の詳細を説明する。
【００６１】
ＯＳ６４は、ドライバプログラム６６に定義された関数“ＤｒｖＳｔａｒｔＰａｇｅ（）”を呼び出す（Ｓ７１）。ドライバプログラム６６は、関数“ＤｒｖＳｔａｒｔＰａｇｅ（）”が呼び出されたことに応じて、ヘッダ指示情報を生成し、生成したヘッダ指示情報をキュー領域６７Ａに記憶させる（Ｓ７２）。ヘッダ指示情報は、１枚のシートに画像を記録する一連の動作において、シートに画像をプリントする前に実行すべき動作を指示するためのプリント実行情報である。本実施形態に係るヘッダ指示情報は、給送指示情報及び頭出し指示情報である。
【００６２】
そして、ドライバプログラム６６は、関数“ＤｒｖＳｔａｒｔＰａｇｅ（）”を終了する（Ｓ７３）。次に、ＯＳ６４は、ドライバプログラム６６に定義された描画関数を呼び出す。複数の描画関数が所定の順序で実行されることによって、ドライバプログラム６６は、ページデータからプリントデータを生成する（Ｓ７４）。プリントデータは、例えば、ページデータをラスタライズしたラスタデータである。また、ドライバプログラム６６は、プリントデータに対するプリント動作を実行させるためのプリント実行情報を生成し、生成したプリント実行情報をキュー領域６７Ａに記憶させる。ステップＳ７４では、後述するように、吐出指示情報及び搬送指示情報が生成される。ステップＳ７４においてプリントデータを生成する処理は、生成処理及び第２生成処理の一例である。以下、ドライバプログラム６６がプリント実行情報を生成する処理の詳細を説明する。
【００６３】
まず、ドライバプログラム６６は、ラスタライズの対象として受け渡されるデータの単位を示す単位情報を、ＯＳ６４に通知する。単位情報には、例えば、ページデータの単位での受け渡しを指示する“ページ”、或いはバンドデータの単位での受け渡しを指示する“バンド”が設定される。バンドデータは、ページデータの一部のデータである。
【００６４】
単位情報“ページ”を取得したＯＳ６４は、ステップＳ７４において、ページデータを、ドライバプログラム６６に引き渡す。ドライバプログラム６６は、ＯＳ６４から引き渡されたページデータ全体をラスタライズしてラスタデータを生成する。次に、ドライバプログラム６６は、領域６２Ｂに展開されたラスタデータを、領域６２Ｂ内で９０°回転させる。次に、ドライバプログラム６６は、プリント領域の１つに記録する画像を示す複数のパスデータを、９０°回転されたラスタデータから抽出する。そして、ドライバプログラム６６は、抽出したパスデータそれぞれに基づいて吐出指示情報及び搬送指示情報を生成し、生成した吐出指示情報及び搬送指示情報を順番にキュー領域６７Ａに書き込む。ドライバプログラム６６は、パスデータの抽出、吐出指示情報及び搬送指示情報の生成、生成した情報のキュー領域６７Ａへの書き込みを、ページデータに含まれる全てのパスデータに対して連続して実行する。
【００６５】
一方、単位情報“バンド”を取得したＯＳ６４は、ステップＳ７４において、ページデータに含まれる複数のバンドデータのうちの１つを、ドライバプログラム６６に引き渡す。ドライバプログラム６６は、ＯＳ６４から引き渡されたバンドデータ全体をラスタライズしてラスタデータを生成する。次に、ドライバプログラム６６は、ラスタデータに基づいて吐出指示情報及び搬送指示情報を生成し、生成した吐出指示情報及び搬送指示情報をキュー領域６７Ａに書き込む。そして、ページデータを構成する全てのバンドデータに対して、前述の処理が繰り返し実行される。
【００６６】
次に、ＯＳ６４は、ドライバプログラム６６に定義された関数“ＤｒｖＥｎｄＰａｇｅ（）”を呼び出す（Ｓ７５）。ドライバプログラム６６は、関数“ＤｒｖＥｎｄＰａｇｅ（）”が呼び出されたことに応じて、排出指示情報を生成し、生成した排出指示情報をキュー領域６７Ａに記憶させる（Ｓ７６）。
【００６７】
図７（Ａ）に示されるＳｔａｒｔＰａｇｅ処理によってキュー領域６７Ａに書き込まれた複数のプリント実行情報は、ＯＳ６４によって書き込み順にプリンタ１０に送信される。典型的には、ＯＳ６４は、給送指示情報、頭出し指示情報、吐出指示情報、搬送指示情報、吐出指示情報、・・・、排出指示情報を、通信Ｉ／Ｆ５５を通じてプリンタ１０にこの順で送信する。ステップＳ７２の処理、ステップＳ７４でプリント実行情報をキュー領域６７Ａに記憶させる処理、ステップＳ７６の処理は、通信Ｉ／Ｆ５５を通じてプリンタ１０にプリント実行情報を送信するプリント実行指示処理の一例である。
【００６８】
そして、ドライバプログラム６６は、関数“ＤｒｖＥｎｄＰａｇｅ（）”を終了する（Ｓ７７）。これにより、ＳｔａｒｔＰａｇｅ処理が終了する。ＳｔａｒｔＰａｇｅ処理により、プリントデータがＯＳ６４によって印刷ポートからプリンタ１０に送信される。
【００６９】
次に図４に戻って、ドライバプログラム６６は、ステップＳ１２において、指定キューにプリントデータがないと判断すると（Ｓ１２：Ｎｏ）、プリント指示情報が示すセキュアフラグの値が「ＯＮ」であるか否かを判断する。すなわち、ステップＳ１２では、プリント実行情報が示すプリントがセキュアプリントであるか否かが判断される。
【００７０】
ドライバプログラム６６は、セキュアフラグの値が「ＯＮ」であると判断すると（Ｓ１３：Ｙｅｓ）、ステップＳ１４からＳ１７、Ｓ２１、Ｓ２２の処理をスキップして、プリントデータを生成するＳｔａｒｔＰａｇｅ処理を実行する（Ｓ１８）。
【００７１】
一方、ドライバプログラム６６は、セキュアフラグの値が「ＯＦＦ」であると判断すると（Ｓ１３：Ｎｏ）、先行コマンド出力判断処理を実行する（Ｓ１４）。図５（Ａ）を参照して、先行コマンド出力判断処理の詳細について説明する。
【００７２】
ドライバプログラム６６は、プリント指示情報が示す識別フラグの値が「ＯＮ」であるか否かを判断する（Ｓ３１）。識別フラグは、プリント指示情報が示すプリンタ１０が共有プリンタ１０であることに応じて「ＯＮ」が設定され、プリンタ１０が共有プリンタ１０でないことに応じて「ＯＦＦ」が設定されるフラグである。ステップＳ３１の処理は、判断処理の一例である。識別フラグは、第１情報の一例である。
【００７３】
ドライバプログラム６６は、プリント指示情報が示す識別フラグの値が「ＯＮ」でないと判断すると（Ｓ３１：Ｎｏ）、先行コマンドフラグに「ＯＮ」を設定し（Ｓ３２）、先行コマンド出力判断処理を終了する。先行コマンドフラグは、ドライバプログラム６６が先行コマンドを出力するか否かを判断するためのフラグである。詳しくは後述する。
【００７４】
一方、ドライバプログラム６６は、プリント指示情報が示す識別フラグの値が「ＯＮ」であると判断すると（Ｓ３１：Ｙｅｓ）、共有プリンタの場合の判断処理を実行する（Ｓ３３）。図５（Ｂ）を参照して、共有プリンタの場合の判断処理の詳細について説明する。
【００７５】
ドライバプログラム６６は、管理情報及びポート設定情報をメモリから読み出す（Ｓ４１）。管理情報は、ＰＣ５０の管理者によって、「出力」、「出力しない」、「設定に応じて出力」のうちから選択された情報である。
【００７６】
ポート設定情報は、ＰＣ５０のユーザによってＰＣ５０に入力された情報である。詳しく説明すると、ドライバプログラム６６は、図９に示すポート設定情報入力画面をＰＣ５０のディスプレイに５３に表示させる。ポート設定情報入力画面をＰＣ５０のディスプレイ５３に表示させる処理は、表示処理の一例である。
【００７７】
ポート設定情報入力画面は、「ポート設定」の文字と、「共有時でも先行コマンドを出力する印刷ポート情報」の文字とを有する。また、ポート設定情報入力画面は、「ＵＳＢポートの場合には、先行コマンドを送信する」の文字及びチェックボックスを有する。「ＵＳＢポートの場合には、先行コマンドを送信する」の文字及びチェックボックスは、第１オブジェクトの一例である。
【００７８】
また、ポート設定情報入力画面は、「ＬＡＮポートの場合の切り替え条件」の文字及びチェックボックスを有する。また、ポート設定情報入力画面は、「有線／無線の情報で切り替える」の文字及びラジオボタンと、「有線であれば出力する」の文字及びチェックボックスと、「無線であれば出力する」の文字及びチェックボックスと、「プリンタとの通信速度を測定して切り替える」の文字及びラジオボタンとを有する。「ＬＡＮポートの場合の切り替え条件」の文字及びチェックボックスと、「有線／無線の情報で切り替える」の文字及びラジオボタンと、「有線であれば出力する」の文字及びチェックボックスとは、第２オブジェクトの一例である。「ＬＡＮポートの場合の切り替え条件」の文字及びチェックボックスと、「有線／無線の情報で切り替える」の文字及びラジオボタンと、「無線であれば出力する」の文字及びチェックボックスとは、第３オブジェクトの一例である。
【００７９】
ドライバプログラム６６は、入力Ｉ／Ｆ５４を通じたラジオボタンやチェックボックスがユーザ操作を受け付け、受け付けたユーザ操作に応じたポート設定情報をメモリ６２に記憶させる。
【００８０】
図５（Ｂ）に戻って、ドライバプログラム６６は、管理情報が示す情報が「出力」であるか、「出力しない」であるか、「設定に応じて出力」であるかを判断する（Ｓ４２）。ドライバプログラム６６は、管理情報が示す情報が「出力」であると判断すると（Ｓ４２：出力）、先行コマンドフラグに「ＯＮ」を設定し（Ｓ４３）、共有プリンタの場合の判断処理を終了する。ドライバプログラム６６は、管理情報が示す情報が「出力しない」であると判断すると（Ｓ４２：出力しない）、先行コマンドフラグに「ＯＦＦ」を設定し（Ｓ４４）、共有プリンタの場合の判断処理を終了する。
【００８１】
一方、ドライバプログラム６６は、管理情報が示す情報が「設定に応じて出力」であると判断すると（Ｓ４２：設定に応じて出力）、印刷ポートがＵＳＢであるかＬＡＮであるかを判断する（Ｓ４５）。具体的には、ドライバプログラム６６は、印刷ポートのポート名をＯＳから取得する。ここで、プリンタ１０が共有プリンタである場合、ポート名としては、ＰＣ７０に設定されているポート名が取得される。なお、ＯＳがＷｉｎｄｏｗｓ（登録商標）の場合、ポート名と実際にネットワーク上の送信先として指定されるＩＰアドレスやノード名とが分けて設定可能であり、これらの情報はメモリ６２の所定のレジストリに書き込まれている。よって、ドライバプログラム６６は、ポート名を取得すると、レジストリを検索して、ポート名からＩＰアドレスやノード名を取得する。そしてドライバプログラム６６は、印刷ポートのポート名、ＩＰアドレス又はノード名に基づいて、印刷ポートがＵＳＢであるかＬＡＮであるかを判断する。ポート名は、第２情報の一例である。
【００８２】
ドライバプログラム６６は、印刷ポートがＵＳＢであると判断すると（Ｓ４５：ＵＳＢ）、ポート設定情報が「ＵＳＢで出力の設定」であるか否かを判断する（Ｓ４６）。ドライバプログラム６６は、ポート設定情報が「ＵＳＢで出力の設定」でないと判断すると、先行コマンドフラグに「ＯＦＦ」を設定する。一方、ドライバプログラム６６は、ポート設定情報が「ＵＳＢで出力の設定」であると判断すると、先行コマンドフラグに「ＯＮ」を設定する。
【００８３】
ドライバプログラム６６は、印刷ポートがＬＡＮであると判断すると（Ｓ４５：ＬＡＮ）、ＬＡＮの場合の判断処理を実行する（Ｓ４８）。図６を参照して、ＬＡＮの場合の判断処理の詳細について説明する。
【００８４】
まず、ドライバプログラム６６は、ポート設定情報が「有線／無線の情報で切り替える」であるか、「プリンタとの通信速度を測定して切り替える」であるかを判断する（Ｓ５１）。ドライバプログラム６６は、「プリンタとの通信速度を測定して切り替える」であると判断すると（Ｓ５１：通信速度）、プリンタ１０がＥＥＰＲＯＭ３４に記憶する復帰時間Ｔ１をプリンタ１０から取得する（Ｓ５２）。ステップＳ５２の処理は、取得処理の一例である。
【００８５】
具体的には、ドライバプログラム６６は、プリンタ１０に装置情報を返送させるコマンド及びプリンタ１０のアドレス（ＩＰアドレスやＭＡＣアドレス）を含むリクエスト情報を生成し、送信する。リクエスト情報を受信したプリンタ１０は、装置情報をＰＣ５０に返送する。ドライバプログラム６６は、返送に含まれる装置情報から、復帰時間Ｔ１を取得する。リクエスト情報は、第１要求情報の一例である。
【００８６】
次に、ドライバプログラム６６は、参照通信時間Ｔ２を取得する（Ｓ５３）。具体的には、ドライバプログラム６６は、プリンタ１０のアドレスを含むＰＩＮＧコマンドを生成し、ＯＳ６４に受け渡す。ＯＳ６４は、ＰＩＮＧコマンドにしたがって、所定のリクエスト情報をプリンタ１０に送信し、プリンタ１０からの返信を受信する。ＯＳ６４は、リクエスト情報を送信してから返信を受信するまでの時間をカウントする。ＯＳ６４は、カウントした時間を示す結果情報をドライバプログラム６６に引き渡す。ドライバプログラム６６は、結果情報が示す時間を参照通信時間Ｔ２として取得する。ＰＩＮＧコマンドは、第３情報の一例である。ＰＩＮＧコマンドにしたがって生成される所定のリクエスト情報は、第２要求情報の一例である。
【００８７】
ドライバプログラム６６は、参照通信時間Ｔ２と、メモリ６２に予め記憶された所定時間Ｔ３とを和算し、和算の結果得られた時間（Ｔ２＋Ｔ３）がステップＳ５２で取得した復帰時間Ｔ１未満か否かを判断する（Ｓ５４）。所定時間は、先行コマンドを送信してから、ヘッダ指示情報をプリントジョブに追加（Ｓ７２）するまでに要する時間として、メモリ６２に予め記憶される。すなわち、ステップＳ５４では、プリンタ１０が先行コマンドを受信して待機状態からプリント実行可能状態に移行してから、ヘッダ指示情報を受信するまでの時間が、復帰時間Ｔ１より短いか否かが判断される。ステップＳ５４の処理は、判断処理の一例である。和算の結果得られた時間（Ｔ２＋Ｔ３）は、参照通信時間に応じた時間の一例である。
【００８８】
ドライバプログラム６６は、和算の結果得られた時間（Ｔ２＋Ｔ３）が復帰時間Ｔ１未満でないと判断すると（Ｓ５４：Ｎｏ）、先行コマンドフラグに「ＯＦＦ」を設定し（Ｓ５６）、ＬＡＮの場合の判断処理を終了する。一方、ドライバプログラム６６は、和算の結果得られた時間（Ｔ２＋Ｔ３）が復帰時間Ｔ１未満であると判断すると（Ｓ５４：Ｙｅｓ）、先行コマンドフラグに「ＯＮ」を設定し、かつ、直接送信フラグに「ＯＮ」を設定し（Ｓ５５）、ＬＡＮの場合の判断処理を終了する。
【００８９】
直接送信フラグは、プリント実行情報を送信するプリンタ１０が共有プリンタ１０であって、かつ、ネットワーク１１との接続がＬＡＮ接続であって、かつ、先行フラグに「ＯＮ」が設定される場合に、「ＯＮ」に設定されるフラグである。詳しくは後述するが、ドライバプログラム６６は、直接送信フラグに「ＯＮ」が設定されていると判断すると、ステップＳ７４で生成したプリントデータをＯＳ６４に引き渡すことなく、生成したプリントデータを含むプリント実行情報及び共有プリンタ１０のアドレスを有する送信情報を生成し、共有プリンタ１０に送信する。すなわち、プリントデータを含むプリント実行情報は、印刷ポートを介さずに共有プリンタ１０に送信される。印刷ポートを介さないので、プリント実行情報は、ＰＣ７０を介さずに、共有プリンタ１０に直接受信される。
【００９０】
ドライバプログラム６６は、ステップＳ５１において、「有線／無線の情報で切り替える」であると判断すると（Ｓ５１：有線／無線）、印刷ポートが有線であるか無線であるかを判断する（Ｓ５７）。具体的には、ドライバプログラム６６は、印刷ポートのポート名に基づいて、印刷ポートが有線であるか無線であるかを判断する。
【００９１】
ドライバプログラム６６は、印刷ポートが有線であると判断すると、ポート設定情報が「有線であれば出力する」であるか否かを判断する（Ｓ６１）。ドライバプログラム６６は、ポート設定情報が「有線であれば出力する」でないと判断すると、先行コマンドフラグに「ＯＦＦ」を設定し（Ｓ５６）、ＬＡＮの場合の判断処理を終了する。一方、ドライバプログラム６６は、ポート設定情報が「有線であれば出力する」であると判断すると、先行コマンドフラグに「ＯＮ」を設定し（Ｓ６０）、ＬＡＮの場合の判断処理を終了する。
【００９２】
ドライバプログラム６６は、ステップＳ５７において、印刷ポートが無線であると判断すると（Ｓ５７：無線）、ポート設定情報が「無線であれば出力する」であるか否かを判断する（Ｓ５８）。ドライバプログラム６６は、ポート設定情報が「無線であれば出力する」でないと判断すると、先行コマンドフラグに「ＯＦＦ」を設定し（Ｓ５９）、ＬＡＮの場合の判断処理を終了する。一方、ドライバプログラム６６は、ポート設定情報が「無線であれば出力する」であると判断すると、先行コマンドフラグに「ＯＮ」を設定し、かつ、直接送信フラグに「ＯＮ」を設定し（Ｓ６０）、ＬＡＮの場合の判断処理を終了する。
【００９３】
ドライバプログラム６６は、ステップＳ５７において、印刷ポートが有線であるか無線であるか不明であると判断すると（Ｓ５７：不明）、設定情報が「不明であれば出力する」であるか否かを判断する（Ｓ６２）。設定情報は、ポート設定画面によってユーザの入力によって設定されてもよいし、ＰＣ５０の管理者によって設定されてもよい。
【００９４】
ドライバプログラム６６は、設定情報が「不明であれば出力する」でないと判断すると（Ｓ６２：Ｎｏ）、先行コマンドフラグに「ＯＦＦ」を設定し（Ｓ５９）、ＬＡＮの場合の判断処理を終了する。一方、ドライバプログラム６６は、設定情報が「不明であれば出力する」であると判断すると（Ｓ６２：Ｙｅｓ）、先行コマンドフラグに「ＯＮ」を設定し、かつ、直接送信フラグにＯＮを設定し（Ｓ６３）、ＬＡＮの場合の判断処理を終了する。
【００９５】
図４に戻って、ドライバプログラム６６は、先行コマンド出力判断処理（Ｓ１４）が終了すると、先行コマンドフラグの値が「ＯＮ」であるか否かを判断する（Ｓ１５）。ドライバプログラム６６は、先行コマンドフラグの値が「ＯＮ」でないと判断すると（Ｓ１５：Ｎｏ）、ステップＳ１６、Ｓ１７、Ｓ２１、Ｓ２２の処理をスキップし、ステップＳ１８のＳｔａｒｔＰａｇｅ処理を実行する。
【００９６】
一方、ドライバプログラム６６は、先行コマンドフラグの値が「ＯＮ」であると判断すると（Ｓ１５：ＯＮ）、直接送信フラグの値が「ＯＮ」であるか否かを判断する（Ｓ１６）。ドライバプログラム６６は、直接送信フラグの値が「ＯＮ」であると判断すると（Ｓ１６：Ｙｅｓ）、先に取得したポート名、ノード名又はＩＰアドレスから共有プリンタ１０のアドレスを特定し、先行コマンド及び共有プリンタ１０のアドレスを含む先行コマンド送信情報を生成する（Ｓ２１）。そして、ドライバプログラム６６は、生成した先行コマンド送信情報を、印刷ポート及びＰＣ７０を介さずに、共有プリンタ１０に直接送信する（Ｓ２２）。ドライバプログラム６６は、先行コマンド送信処理の実行後、ステップＳ１８のＳｔａｒｔＰａｇｅ処理を実行する。
【００９７】
ドライバプログラム６６は、直接送信フラグの値が「ＯＮ」でないと判断すると（Ｓ１６：Ｎｏ）、ＳｔａｒｔＤｏｃ処理を実行する（Ｓ１７）。図７（Ｂ）を参照して、ＳｔａｒｔＤｏｃ処理の詳細について説明する。
【００９８】
［ＳｔａｒｔＤｏｃ処理］
ＯＳ６４は、ドライバプログラム６６に定義された各種関数を所定の順序で呼び出す。また、ドライバプログラム６６は、ＯＳ６４によって呼び出された関数に定義された処理を実行する。これらの処理の詳細は省略する。
【００９９】
ＯＳ６４は、関数“ＤｒｖＤｏｃｕｍｅｎｔＥｖｅｎｔ（）”を呼び出す（Ｓ８１）。ＯＳ６４は、定数“ＤＯＣＵＭＥＮＴＥＶＥＮＴ＿ＦＩＲＳＴ”を、関数“ＤｒｖＤｏｃｕｍｅｎｔＥｖｅｎｔ（）”の引数として指定する。
【０１００】
次に、ドライバプログラム６６は、第１関数“ＤｒｖＤｏｃｕｍｅｎｔＥｖｅｎｔ（）”が呼び出されたことに応じて、第１領域６２Ｃに記憶された条件情報を読み出し、読み出した条件情報を第２領域６２Ｄに記憶させ（Ｓ８２）、関数“ＤｒｖＤｏｃｕｍｅｎｔＥｖｅｎｔ（）”を終了する（Ｓ８３）。すなわち、ドライバプログラム６６は、ステップＳ８２において、第１領域６２Ｃから読み出された条件情報を第２領域６２Ｄに記憶させる。
【０１０１】
次に、ＯＳ６４は、関数“ＤｒｖＤｏｃｕｍｅｎｔＥｖｅｎｔ（）”を呼び出す（Ｓ８４）。ＯＳ６４は、定数“ＤＯＣＵＭＥＮＴＥＶＥＮＴ＿ＳＴＡＲＴＤＯＣＤＯＣ”を、関数“ＤｒｖＤｏｃｕｍｅｎｔＥｖｅｎｔ（）”の引数として指定する。ステップＳ８４の処理は、ステップＳ８１の処理より後に実行される。次に、関数“ＤｒｖＤｏｃｕｍｅｎｔＥｖｅｎｔ（）”が呼び出されたドライバプログラム６６は、先行コマンドを指定キューに記憶させる（Ｓ８５）。
【０１０２】
次に、ドライバプログラム６６は関数“ＤｒｖＤｏｃｕｍｅｎｔＥｖｅｎｔ（）”を終了する（Ｓ８６）。次に、ＯＳ６４は、関数“ＤｒｖＤｏｃｕｍｅｎｔＥｖｅｎｔ（）”が終了したことに応じて（Ｓ８６）、ドライバプログラム６６に定義された関数“ＤｒｖＳｔａｒｔＤｏｃ（）”を呼び出す（Ｓ８７）。ＯＳ６４は、関数“ＤｒｖＳｔａｒｔＤｏｃ（）”の引数として指定された指定データＩＤ“コンテンツデータＣ”を関数“ＤｒｖＳｔａｒｔＤｏｃ（）”の引数として指定する。
【０１０３】
次に、ドライバプログラム６６は、関数“ＤｒｖＳｔａｒｔＤｏｃ（）”が呼び出されたことに応じて、引数として指定された指定データＩＤ“コンテンツデータＣ”をジョブＩＤとするプリントジョブを、指定キューであるキュー領域６７Ａに生成して（Ｓ８８）、関数“ＤｒｖＳｔａｒｔＤｏｃ（）”を終了する（Ｓ８９）。上述のステップＳ７２、Ｓ７４、Ｓ７６でキュー領域６７Ａに書き込まれる各種実行情報には、ジョブＩＤ“コンテンツデータＣ”が付加される。但し、ジョブＩＤ“コンテンツデータＣ”で識別されるプリントジョブは、この時点では指示情報を含んでいない。
【０１０４】
次に、ＯＳ６４は、関数“ＤｒｖＳｔａｒｔＤｏｃ（）”が終了したことに応じて（Ｓ８９）、関数“ＤｒｖＤｏｃｕｍｅｎｔＥｖｅｎｔ（）”を呼び出す（Ｓ９０）。ＯＳ６４は、定数“ＤＯＣＵＭＥＮＴＥＶＥＮＴ＿ＳＴＡＲＴＤＯＣＰＯＳＴ”を、関数“ＤｒｖＤｏｃｕｍｅｎｔＥｖｅｎｔ（）”の引数として指定する。次に、ドライバプログラム６６は、関数“ＤｒｖＤｏｃｕｍｅｎｔＥｖｅｎｔ（）”が呼び出されたことに応じて、先行コマンドを指定キューから削除する（Ｓ９１）。
【０１０５】
次に、ドライバプログラム６６は、関数“ＤｒｖＤｏｃｕｍｅｎｔＥｖｅｎｔ（）”を終了する（Ｓ９２）。これにより、ＳｔａｒｔＤｏｃ処理が終了される。フローチャートには示されていないが、ＳｔａｒｔＤｏｃ処理の実行により、ＯＳ６４によって、指定キューに記憶された先行コマンドが印刷ポートからプリンタ１０に送信される。ＳｔａｒｔＤｏｃ処理は、準備指示処理の一例である。
【０１０６】
図４に戻って、ドライバプログラム６６は、ＳｔａｒｔＤｏｃ処理の実行後、上述のＳｔａｒｔＰａｇｅ処理を実行する（Ｓ１８）。次に、ドライバプログラム６６は、全てのページに対してＳｔａｒｔＰａｇｅ処理を実行したか否かを判断する（Ｓ１９）。ドライバプログラム６６は、全てのページに対してＳｔａｒｔＰａｇｅ処理を実行していないと判断すると（Ｓ１９：Ｙｅｓ）、次ページに対してＳｔａｒｔＰａｇｅ処理を実行する（Ｓ１８）。一方、ドライバプログラム６６は、全てのページに対してＳｔａｒｔＰａｇｅ処理を実行したと判断すると（Ｓ１９：Ｎｏ）、ＥｎｄＤｏｃ処理を実行する（Ｓ２０）。ＥｎｄＤｏｃ処理は、プリンタ１０にプリント動作を実行させた後の後処理である。ＥｎｄＤｏｃ処理は、周知の処理なので、詳細の説明は省略する。
【０１０７】
ＳｔａｒｔＰａｇｅ処理の実行により、ＯＳ６４によって印刷ポートからプリントデータを含むプリント実行情報がプリンタ１０に送信される。プリント実行情報、或いは、先行コマンド及びプリント実行情報を受信したプリンタ１０は、プリント処理を実行する。図８を参照して、プリント処理の詳細について説明する。
【０１０８】
［プリント処理］
プリンタ１０が実行する以下の各処理は、ＲＯＭ３２に記憶されているプログラムをＣＰＵ３１が読み出して実行してもよいし、制御部３０に搭載されたハードウェア回路によって実現されてもよい。プリント処理は、プリント動作の一例である。
【０１０９】
プリンタ１０の制御部３０は、通信Ｉ／Ｆ２５を通じてＰＣ５０から先行コマンドを受信したか、プリント実行情報を受信したかを判断する（Ｓ１０１）。先行コマンドは、上述のように、ＳｔａｒｔＤｏｃ処理の実行により、ＯＳ６４によってプリンタ１０に送信され、或いは、ステップＳ２２の処理によって、ドライバプログラム６６によってプリンタ１０に送信される。プリント実行情報は、上述のＳｔａｒｔＰａｇｅ処理の実行により、ＯＳ６４によってプリンタ１０に送信される。ステップＳ２２の処理は、準備指示処理の一例である。
【０１１０】
制御部３０は、先行コマンドを受信したことに応じて（Ｓ１０１：先行コマンド）、電源部２６が休眠状態か否かを判断する（Ｓ１０２）。制御部３０は、例えば、電源部２６の現在の状態を示すフラグ情報をＲＡＭ３３或いはＥＥＰＲＯＭ３４に記憶させておき、当該フラグ情報に基づいてステップＳ１０２の判断を行ってもよい。但し、ステップＳ７２の判断の方法は、前述の例に限定されない。
【０１１１】
次に、制御部３０は、電源部２６が休眠状態だと判断したことに応じて（Ｓ１０２：Ｙｅｓ）、電源部２６を休眠状態から駆動状態に切り替える（Ｓ１０３）。より詳細には、制御部３０は、ＨＩＧＨレベルの電源信号を電源部２６に出力する。一方、制御部３０は、電源部２６が駆動状態だと判断したことに応じて（Ｓ１０２：Ｎｏ）、ステップＳ１０３の処理をスキップする。
【０１１２】
次に、制御部３０は、先行コマンドを受信したことをディスプレイ２３を通じて報知する（Ｓ１０４）。制御部３０は、例えば、ディスプレイ２３のバックライトを所定の時間だけ点灯させればよい。
【０１１３】
次に、制御部３０は、動作部２０にプリント前動作を実行させる（Ｓ１０５）。プリント前動作は、プリント動作で所定品質の画像をシートに記録するために、プリンタ１０が実行すべき動作である。プリント前動作は、例えば、ノズル面を覆うキャップを吐出部２２から離間させるアンキャップ処理、シートが通過する領域外において吐出部２２にインクを吐出させるフラッシング処理、電源部２６の電源電圧を目標電圧に昇圧する昇圧処理等のうちの一部又は全部を含む。ステップＳ１０５の処理は、プリント前処理の一例である。
【０１１４】
また、制御部３０は、複数のプリント前動作それぞれに対応するフラグ情報を、ＲＡＭ３３或いはＥＥＰＲＯＭ３４に記憶させておく。全てのフラグ情報には、プリント前処理の開始時点において、プリント前動作が終了していないことに対応する「ＯＦＦ」が設定されている。そして、制御部３０は、プリント前動作の１つが終了したことに応じて、プリント前動作が終了したことに対応する「ＯＮ」を、終了したプリント前動作に対応するフラグ情報に設定する。
【０１１５】
次に、制御部３０は、通信Ｉ／Ｆ２５を通じてＰＣ５０からプリント実行情報を受信する（Ｓ１０１：プリント実行）。すなわち、制御部３０は、給送指示情報、頭出し指示情報、吐出指示情報、搬送指示情報、吐出指示情報、・・・、排出指示情報を、通信Ｉ／Ｆ２５を通じて情報処理端末５０からこの順に受信する。
【０１１６】
給送指示情報は、編集条件情報のトレイ情報で示される給送トレイから搬送部２１にシートを給送させるための情報である。頭出し指示情報は、給送されたシートの最初の記録領域が吐出部２２に対面する位置まで、当該シートを搬送部２１に搬送させるための情報である。吐出指示情報は、吐出部２２に対面されたシートの記録領域に対して画像を記録するために、吐出部２２によるインクの吐出タイミングを示すための情報である。搬送指示情報は、次に画像を記録する記録領域が吐出部２２に対面する位置まで、搬送部２１にシートを搬送させるための情報である。排出指示情報は、画像が記録されたシートを搬送部２１に排出させるための情報である。
【０１１７】
次に、制御部３０は、プリント実行情報に含まれるセキュアフラグの設定値を判断する（Ｓ１０６）。次に、制御部３０は、セキュアフラグに「ＯＦＦ」が設定されていると判断したことに応じて（Ｓ１０６：ＯＦＦ）、プリント前処理が終了したか否かを判断する（Ｓ１０７）。より詳細には、制御部３０は、プリント前動作に対応付けられた全てのフラグ情報に「ＯＮ」が設定されていることに応じて、プリント前処理が終了したと判断する（Ｓ１０７：Ｙｅｓ）。一方、制御部３０は、プリント前動作に対応付けられた少なくとも１つのフラグ情報に「ＯＦＦ」が設定されていることに応じて、プリント前処理が終了していないと判断する（Ｓ１０７：Ｎｏ）。
【０１１８】
先行コマンドとプリント実行情報との受信間隔は、例えば、プリンタデータを生成する（Ｓ７４）のドライバプログラム６６の処理量、ネットワーク１１の状態等によって変動する。すなわち、先行コマンドをトリガにして開始されたプリント前処理は、プリント実行情報を受信した時点で終了していない可能性がある。そこで、制御部３０は、プリント前処理が終了していないと判断したことに応じて（Ｓ１０７：Ｎｏ）、プリント前処理が終了するまで後続の処理の実行を待機する。そして、制御部３０は、プリント前処理が終了したと判断したことに応じて（Ｓ１０７：Ｙｅｓ）、受信したプリント実行情報に従ったプリント動作を動作部２０に実行させる（Ｓ１０８〜Ｓ１１２）。
【０１１９】
まず、制御部３０は、受信した給送指示情報に従った給送処理と、頭出し指示情報に従った頭出し処理とを実行する（Ｓ１０８）。すなわち、制御部３０は、給送指示情報に示される給送トレイに収容されたシートを搬送部２１に給送させる。次に、制御部３０は、給送処理で給送されたシートを、頭出し指示情報に示される位置まで搬送部２１に搬送させる。なお、これらの処理は、プリント前処理で実行されてもよい。
【０１２０】
次に、制御部３０は、受信した吐出指示情報に従った吐出処理を実行する（Ｓ１０９）。すなわち、制御部３０は、主走査方向の一方から他方に吐出部２２を移動させると共に、吐出指示情報に示される吐出タイミングで吐出部２２にインクを吐出させる。次に、制御部３０は、シートの全ての記録領域に画像を記録したか否かを判断する（Ｓ１１０）。換言すれば、制御部３０は、直近のステップＳ１０９で用いた吐出指示情報の次に搬送指示情報及び排出指示情報のどちらを受信したかを判断する。
【０１２１】
次に、制御部３０は、シートの全ての記録領域に画像を記録していないと判断したことに応じて（Ｓ１１０：Ｎｏ）、受信した搬送指示情報に従った搬送処理を実行する（Ｓ１１１）。すなわち、制御部３０は、搬送指示情報に示される搬送量だけ搬送部２１にシートを搬送させる。制御部３０は、シートの全ての記録領域に画像を記録するまで（Ｓ１１０：Ｎｏ）、ステップＳ１０９〜Ｓ１１１の処理を繰り返し実行する。
【０１２２】
そして、制御部３０は、シートの全てのプリント領域に画像をプリントしたと判断したことに応じて（Ｓ１１０：Ｙｅｓ）、受信した排出指示情報に従った排出処理を実行する（Ｓ１１２）。すなわち、制御部３０は、画像がプリントされたシートを搬送部２１にプリンタ１０の外部へ排出させる。なお、指定コンテンツデータに複数のページデータが含まれる場合、ステップＳ１０８〜Ｓ１１２の処理が繰り返し実行される。これにより、ステップＳ７４で生成されたプリントデータで示される画像、換言すれば、指定コンテンツデータで示される画像がシートにプリントされる。
【０１２３】
一方、制御部３０は、セキュアフラグに「ＯＮ」が設定されていると判断したことに応じて（Ｓ１０６：ＯＮ）、認証情報の入力を入力Ｉ／Ｆ２４を通じて受け付ける。そして、制御部３０は、入力Ｉ／Ｆ２４を通じて入力された認証情報と、プリント実行情報に含まれる認証情報とが一致するか否かを判断する（Ｓ１１３）。次に、制御部３０は、２つの認証情報が一致したと判断したことに応じて（Ｓ１１３：Ｙｅｓ）、プリント前処理を実行する（Ｓ１１４）。そして、制御部３０は、プリント前処理が終了したことに応じて、ステップＳ１０８以降の処理を実行する。一方、制御部３０は、２つの認証情報が不一致と判断したことに応じて（Ｓ１１３：Ｎｏ）、ユーザに認証情報を再び入力させる。
【０１２４】
［本実施形態の作用効果］
本実施形態では、プリント指示情報が示すプリンタ１０が共有プリンタであるか否かと、プリンタ１０との通信に要する時間を示す参照通信時間Ｔ２との少なくとも一方を用いて、プリント前動作の開始を先行コマンドによってプリンタ１０に指示するか否かが判断される。したがって、プリント前動作の開始を指示する先行コマンドを送信するか否かを適切に判断することができる。
【０１２５】
また、本実施形態では、プリンタ１０がプリント前処理を行ってからプリント前処理を行う前の状態に戻るまでの復帰時間Ｔ１が、プリントデータの生成及び送信に要する時間よりも長いと推定される場合、先行コマンドは送信されない。したがって、プリンタ１０において、インクが乾いて印刷品質が低下したり、乾いたインクを排出してインクが無駄に消費されたり、或いは、無駄な電力が消費されるということが抑制される。
【０１２６】
また、本実施形態では、プリント指示情報が示すプリンタ１０が共有プリンタ１０である場合、プリントデータが印刷ポート及びＰＣ７０を介さず、共有プリンタ１０に直接送信される。したがって、ＰＣ７０が先行コマンドを誤ってプリントデータと判断してプリント枚数が意図せず増加してしまうことが防止される。
【０１２７】
また、本実施形態では、ユーザの入力を受け付ける第１オブジェクト、第２オブジェクト、及び第３オブジェクトがディスプレイに表示され、ユーザ入力の設定に従って、先行コマンドが送信されるか否かが判断される。したがって、先行コマンドを送信するか否かのユーザの意図が反映されて先行コマンドを送信するか否かが判断される
【０１２８】
［変形例１］
上述の実施形態では、ポート設定画面においてユーザが設定したポート設定情報と、管理者が設定した管理情報とに応じてドライバプログラム６６が先行コマンドフラグに「ＯＮ」を設定するか「ＯＦＦ」を設定するかを判断する例を説明した。本変形例では、ユーザによるポート設定情報の設定及びＰＣ４０の管理者による管理情報の設定を受け付けず、ドライバプログラム６６が先行コマンドを送信するか否かを判断する例を説明する。
【０１２９】
本変形例では、ドライバプログラム６６は、共有プリンタの場合の判断処理（図５（Ａ））に代えて、図１０に示される共有プリンタの場合の判断処理を実行する。その他の処理は、実施形態で説明した処理と同じである。なお、実施形態と同一の処理については、実施形態と同一の符号を付して、一部の説明を省略する。
【０１３０】
図１０に示される共有プリンタの場合の判断処理において、ドライバプログラム６６は、プリント指示情報が示す共有プリンタ１０に設定された印刷ポートが「ＵＳＢ」であるか「ＬＡＮ」であるかを、印刷ポート名から判断する（Ｓ４５）。すなわち、ステップＳ４５では、プリント指示情報が示すプリンタ１０とケーブル１２で接続されているかＬＡＮで接続されているかが判断される。ステップＳ４５の処理は、判断処理の一例である。
【０１３１】
ドライバプログラム６６は、プリント指示情報が示すプリンタ１０に設定された印刷ポートが「ＵＳＢ」であると判断すると（Ｓ４５：ＵＳＢ）、先行コマンドフラグに「ＯＮ」を設定し（Ｓ４３）、共有プリンタの場合の判断処理を終了する。一方、ドライバプログラム６６は、プリント指示情報が示すプリンタ１０に設定された印刷ポートが「ＬＡＮ」であると判断すると（Ｓ４５：「ＬＡＮ」）、プリント指示情報が示すプリンタ１０が有線ＬＡＮによってネットワーク１１に接続されているか、無線ＬＡＮによってネットワーク１１に接続されているかを判断する（Ｓ５７）。ステップＳ５７の処理は、判断処理の一例である。
【０１３２】
ドライバプログラム６６は、プリント指示情報が示すプリンタ１０が有線ＬＡＮによってネットワーク１１に接続されていると判断すると、実施形態と同様に、ステップＳ５２からＳ５４の処理を実行する。ドライバプログラム６６は、ステップＳ５４の処理において、参照通信時間Ｔ２とメモリ６２に記憶された所定の時間Ｔ３とを和算した時間が復帰時間Ｔ１未満でないと判断すると、先行コマンドフラグに「ＯＦＦ」を設定し（Ｓ５９）、共有プリンタの場合の判断処理を終了する。ステップＳ５４の処理は、判断処理の一例である。
【０１３３】
一方、ドライバプログラム６６は、参照通信時間Ｔ２と所定の時間Ｔ３とを和算した時間が復帰時間Ｔ１未満であると判断すると、先行コマンドフラグに「ＯＮ」を設定し、かつ、直接送信フラグに「ＯＮ」を設定し（Ｓ５５）、共有プリンタの場合の判断処理を終了する。
【０１３４】
また、ドライバプログラム６６は、ステップＳ５７の処理において、プリント指示情報が示すプリンタ１０が有線ＬＡＮによってネットワーク１１に接続されているか、無線ＬＡＮによってネットワーク１１に接続されているかが不明であると判断すると（Ｓ５７：不明）、先行コマンドフラグに「ＯＦＦ」を設定し、共有プリンタの場合の判断処理を終了する。
【０１３５】
[変形例１の効果]
本変形例では、ユーザや管理者の設定に拠らず、先行コマンドを出力するか否かをドライバプログラム６６が判断するので、ユーザや管理者が設定条件を入力する手間を低減することができる。
【０１３６】
一般に、無線ＬＡＮ接続では、通信のリトライや再接続が有線ＬＡＮ接続よりも多く発生する。すなわち、無線ＬＡＮ接続は、有線ＬＡＮ接続よりもデータの受け渡しに時間を要することがある。本変形例では、プリンタ１０とＰＣ５０とが有線ＬＡＮ接続されている場合、先行コマンドが送信される。一方、プリンタ１０とＰＣ５０とが無線ＬＡＮ接続されている場合、先行コマンドが送信されない。すなわち、プリンタ１０が先行コマンドを受信してからプリントデータを受信するまでの時間が長くなるおそれがある無線ＬＡＮ接続では、先行コマンドは送信されない。したがって、プリンタ１０において、インクが乾いて印刷品質が低下したり、乾いたインクを排出してインクが無駄に消費されたり、或いは、無駄な電力が消費されるということが抑制される。
【０１３７】
[変形例２]
実施形態で説明した図４に示されるステップＳ１１〜Ｓ１６、ステップＳ２１、Ｓ２２、及び図７（Ｂ）に示されるステップＳ８５の処理は、図７（Ｂ）で説明したＳｔａｒｔＤｏｃ処理の一部（サブルーチン）として実行されてもよい。本変形例では、図１１（Ａ）に示されたＳｔａｒｔＤｏｃ処理を説明する。なお、実施形態と同様の処理については、実施形態と同一の符号を付して、説明を省略する。
【０１３８】
図１１（Ａ）に示されるＳｔａｒｔＤｏｃ処理では、ステップＳ８５（図７（Ｂ））に代えて、図４に示されるステップＳ１１〜Ｓ１６、ステップＳ２１、Ｓ２２、及び図７（Ｂ）に示されるステップＳ８５の処理を実行するサブルーチンであるステップＳ９３の先行コマンド処理が実行される点において、図７（Ｂ）に示されるＳｔａｒｔＤｏｃ処理と相違する。図１１（Ａ）に示されるＳｔａｒｔＤｏｃ処理におけるその他の処理（Ｓ８１〜Ｓ８４、Ｓ８６〜Ｓ９２）は、図７（Ｂ）に示されるＳｔａｒｔＤｏｃ処理と同じである。
【０１３９】
ステップＳ９３の先行コマンド処理について、図１１（Ｂ）を参照して説明する。先行コマンド処理では、ドライバプログラム６６は、実施形態のプリント指示処理（図４）と同様に、ステップＳ１１〜Ｓ１５の処理を実行する。ドライバプログラム６６は、プリント指示を受け付けていないと判断し（Ｓ１１：Ｎｏ）、或いは、プリントデータが存在すると判断し（Ｓ１２：Ｙｅｓ）、或いは、セキュアプリントであると判断し（Ｓ１３：Ｙｅｓ）、或いは、先行コマンドフラグが「ＯＮ」でないと判断すると（Ｓ１５：Ｎｏ）、先行コマンド処理を終了する。
【０１４０】
一方、ドライバプログラム６６は、ステップＳ１５において、先行コマンドフラグが「ＯＮ」であると判断すると（Ｓ１５：Ｙｅｓ）、実施形態と同様に、直接送信フラグが「ＯＮ」であるか否かを判断する（Ｓ１６）。ドライバプログラム６６は、直接送信フラグが「ＯＮ」であると判断すると（Ｓ１６：Ｙｅｓ）、実施形態と同様に、ステップＳ２１、Ｓ２２の処理を実行し、先行コマンド処理を終了する。一方、ドライバプログラム６６は、直接送信フラグが「ＯＮ」でないと判断すると（Ｓ１６：Ｎｏ）、実施形態と同様に、先行コマンドを指定キューに記憶させ（Ｓ８５）、先行コマンド処理を終了する。
【０１４１】
ドライバプログラム６６は、先行コマンド処理の実行後（Ｓ９３）、実施形態と同様に、ステップＳ８６〜Ｓ９２の処理を実行し、ＳｔａｒｔＤｏｃ処理を終了する。ドライバプログラム６６は、ＳｔａｒｔＤｏｃ処理の実行後、実施形態で説明したステップＳ１８〜Ｓ２０の処理を実行する。
【０１４２】
上述したように、本変形例２でドライバプログラム６６が実行する処理の内容は、実施形態と同一であり、ステップＳ１１〜Ｓ１６及びステップＳ２１、Ｓ２２の処理が、ＳｔａｒｔＤｏｃ処理の一部として実行されるか否かが実施形態と相違する。すなわち、プリンタドライバ６６は、先行コマンドを出力するか否かを判断する先行コマンド出力判断処理（Ｓ１４、図５（Ａ））を、適切なタイミングで実行すればよい。すなわち、本変形例２は、プリンタドライバ６６が先行コマンド出力判断処理を実行するタイミングを示す他の例である。
【０１４３】
［その他の変形例］
上述の実施形態や変形例では、プリント指示情報が示すプリンタ１０が共有プリンタ１０であるか否か、及び、参照通信時間Ｔ２と所定の時間Ｔ３とを和算した時間が復帰時間Ｔ１未満か否かによって、先行コマンドフラグの値を設定する例を説明した。しかしながら、プリント指示情報が示すプリンタ１０が共有プリンタ１０であるか否かのみによって、或いは、参照通信時間Ｔ２と所定の時間Ｔ３とを和算した時間が復帰時間Ｔ１未満か否かのみによって、先行コマンドフラグの値が設定されてもよい。
【０１４４】
また、上述の実施形態や変形例では、プリント指示情報が示すプリンタ１０が共有プリンタ１０であって、かつ、先行コマンドフラグに「ＯＮ」を設定して先行コマンドを送信に決定する場合、直接送信フラグに「ＯＮ」を設定して、印刷ポート及びＰＣ７０を介さずにプリント実行情報が共有プリンタ１０に送信される例を説明した。しかしながら、共有プリンタ１０であることに応じて、一律に先行コマンドフラグに「ＯＦＦ」を設定し、先行コマンドを送信しないことに決定してもよい。
【０１４５】
また、上述の実施形態や変形例では、ＰＩＮＧコマンドを用いて通信参照時間を測定する例を説明した。しかしながら、ＰＩＮＧコマンドを用いず、ドライバプログラム６６が、リクエスト情報を共有プリンタ１０のアドレス宛に送信し、共有プリンタ１０からの返送を受信するまでの時間をカウントしてもよい。
【０１４６】
また、上述の実施形態や変形例では、ポート設定情報入力画面が、「ポート設定」の文字と、「共有時でも先行コマンドを出力する印刷ポート情報」の文字と、「ＵＳＢポートの場合には、先行コマンドを送信する」の文字及びチェックボックスと、「ＬＡＮポートの場合の切り替え条件」の文字及びチェックボックスと、「有線／無線の情報で切り替える」の文字及びラジオボタンと、「有線であれば出力する」の文字及びチェックボックスと、「無線であれば出力する」の文字及びチェックボックスと、「プリンタとの通信速度を測定して切り替える」の文字及びラジオボタンとを有する例を説明した。しかしながら、上述の複数のラジオボタン及びチェックボックスの全てがポート設定画面に設けられる必要はなく、いずれかのラジオボタンやチェックボックスがポート設定画面に設けられていてもよい。
【符号の説明】
【０１４７】
１０・・・プリンタ
２３，５３・・・ディスプレイ
２４，５４・・・入力Ｉ／Ｆ
２５，５５・・・通信Ｉ／Ｆ
３０・・・制御部
３１，６１・・・ＣＰＵ
３２・・・ＲＯＭ
５０・・・ＰＣ
６２・・・メモリ
６６・・・ドライバプログラム
７０・・・ＰＣ
【図１】
2019117621.tif 000003
【図２】
2019117621.tif 000004
【図３】
2019117621.tif 000005
【図４】
2019117621.tif 000006
【図５】
2019117621.tif 000007
【図６】
2019117621.tif 000008
【図７】
2019117621.tif 000009
【図８】
2019117621.tif 000010
【図９】
2019117621.tif 000011
【図１０】
2019117621.tif 000012
【図１１】
2019117621.tif 000013