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