以下、本発明の実施形態について図面を参照して詳細に説明する。以下の説明においては、インクジェット方式を用いた印刷装置を例に挙げて説明する。印刷装置としては、例えば、印刷機能のみを有するシングルファンクションプリンタであっても良いし、また、例えば、印刷機能、FAX機能、スキャナ機能等の複数の機能を有するマルチファンクションプリンタであっても良い。また、例えば、カラーフィルタ、電子デバイス、光学デバイス、微小構造物等を所定の記録方式で製造するための製造装置であっても良い。
(実施形態1)
図1は、本発明の一実施の形態に係わる印刷装置100の構成の一例を示す図である。
印刷装置100は、記録媒体(例えば、ロール紙など)上に印刷を行なう。なお、ここでは、ロール紙を例に挙げて説明するが、必ずしもロール紙である必要はない。
ここで、印刷装置100は、ロール紙ユニット101と、搬送ユニット102と、搬送用エンコーダ103と、回転ローラ104と、ヘッドユニット105と、印刷ヘッド106と、スキャナユニット107と、制御ユニット108とが設けられる。その他、インクタンク109、カッタユニット110、裏面印刷ユニット111、乾燥ユニット112、シート巻取りユニット113、仕分けユニット114、操作ユニット115も設けられる。
制御ユニット108は、コントローラやユーザインターフェース、各種I/Oインターフェースを備え、印刷装置100における制御を司る。
ロール紙ユニット101には、上段カセット101aと下段カセット101bとが設けられる。オペレータは、ロール紙(以下、シートと呼ぶ場合もある)をマガジンに装着する。上段カセット101aから給紙されたシートは、図中a方向に搬送され、下段カセット101bから給紙されたシートは、図中b方向に搬送される。その後、いずれのカセットユニットからのシートも図中c方向に搬送され、搬送ユニット102に到達する。搬送ユニット102は、複数の回転ローラ104を用いて、ヘッドユニット105により印刷されるシートを図中d方向(水平方向)に搬送する。
搬送ユニット102の上方には、ヘッドユニット105が対向して配置されている。ヘッドユニット105では複数色(本実施形態においては、7色)分の独立した印刷ヘッド106がシートの搬送方向に沿って設けられる。印刷装置100は、搬送ユニット102によるシートの搬送に同期して、印刷ヘッド106からインクを吐出させる。これにより、シート上に画像が形成され、印刷が行なわれる。これら搬送ユニット102、ヘッドユニット105、印刷ヘッド106により印刷ユニットが構成される。
インクタンク109は、各色のインクを独立して貯蔵する。インクタンク109からは、チューブによって各色に対応して設けられたサブタンクまでインクが供給される。また、サブタンクから印刷ヘッド106までは、チューブによってインクが供給される。
印刷ヘッド106は、d方向に沿って各色(実施例では7色)設けられる。なお、印刷ヘッド106の構成は、特に問わず、単一のチップが配されて構成されていても良いし、また、複数のチップが千鳥状又は一列に配されて構成されていても良い。すなわち、使用するシートの印刷幅をカバーするべく、搬送方向と直交する方向に沿ってノズルが並んでいれば良い(フルラインヘッド)。また、インクの吐出方式も、特に問わず、例えば、発熱素子を用いた方式、ピエゾ素子を用いた方式、静電素子を用いた方式、MEMS素子を用いた方式等のいずれを採用しても良い。
各ヘッドのノズルからは、インクが吐出される。インクの吐出タイミングは、搬送用エンコーダ103の出力信号に基づいて決められる。
シートに印刷が行なわれた後、当該シートは、搬送ユニット102からスキャナユニット107まで搬送される。スキャナユニット107は、シート上に印刷された画像や特殊パターンを読み取って印刷画像に問題がないか否かの確認や、装置の状態確認を行なう。画像の確認方法としては、例えば、ヘッドの状態を確認するパターンを読み込む方法や、元画像との比較を行なう方法等が挙げられる。
スキャナユニット107から搬送されたシートは、e方向に搬送され、カッタユニット110により所定単位の長さに切断される。カッタユニット110から搬送されたシートは、f方向に搬送され、裏面印刷ユニット111に搬送される。裏面印刷ユニット111は、画像毎の情報(例えば、オーダー管理用番号等)をシートの裏面に印刷する。
その後、乾燥ユニット112において、図中g方向に通過するシートが温風で加熱される。所定単位の長さに切断されたシートは、1枚ずつ乾燥ユニット112内を通過してh方向に搬送され、仕分けユニット114に搬送される。
仕分けユニット114では、ユニット内を図中i方向に通過するシートを、センサで確認しながら画像毎に設定されたトレー番号に積載していく。仕分けユニット114では、複数のトレーを保持しており、シートの長さに応じて積載するトレーを分別する。また、積載中や積載完了等の状態表示を行なう(例えば、LEDで表示)。
なお、両面印刷を行なう場合には、まず、表面シートに印刷を行なった後、シートを切断せず、j方向に通過するシートをシート巻取りユニット113で巻き取る。全ての表面画像の印刷が終了した後、一度だけシートを切断し、その後、巻き取ったシートをk方向に搬送して裏面画像の印刷を行なう。
操作ユニット115は、オペレータが操作を行なったり、装置の状態を確認したりするためのユーザインターフェース(オペレータパネル)である。オペレータは、操作ユニット115を介して、例えば、ヘッドクリーニング等の装置メンテナンスを指示する。また、オペレータは、操作ユニット115を介して、例えば、指定のオーダー画像がどこのトレーに積載されているか等の装置の状態の確認を行なう。
以上が印刷装置100についての説明である。なお、本実施形態においては、印刷装置の印刷方式としてインクジェット方式が採用されている場合を例に挙げて説明するが、これに限られない。例えば、サーマルプリンタ(昇華型、熱転写型など)、ドットインパクトプリンタ、LEDプリンタ、レーザープリンタなど何でも良い。
次に、図2を用いて、図1に示す制御ユニット108におけるハードウェア構成の一例について説明する。
制御ユニット108には、CPU201と、ROM202と、RAM203と、HDD204と、外部I/F205と、画像処理部206と、エンジン制御部207と、スキャナ制御部208とが具備される。
CPU(Central Processing Unit)201は、制御ユニット108における処理を統括制御する。ROM(Read Only Memory)202は、制御プログラムや各種データを格納する。RAM(Random Access Memory)203は、印刷ジョブのリストや作業用データを格納する。HDD(Hard Disk Drive)204は、印刷ジョブに基づき展開されたイメージデータ等を一時的に格納する。外部I/F(Interface)205は、ホスト装置20から印刷ジョブ等を受信する。例えば、ホスト装置20から送信された印刷ジョブは、外部I/F205を介して受信される。また、当該印刷ジョブの情報は、RAM203上の印刷ジョブリストに格納され、印刷ジョブに基づいて展開されたイメージデータは、HDD204に格納される。
画像処理部206は、印刷ジョブに基づいてレンダリング処理(RIP(Raster Image Processing))を実施する。これにより、ページ単位にイメージデータが生成される。画像処理部206においては、例えば、色空間の変換、有効な画素数への解像度変換、画像解析、画像補正等、様々な画像処理が必要に応じて施される。画像処理部206による画像処理によって得られたイメージデータ(RIP済みデータ)は、例えば、HDD204等に格納される。
エンジン制御部207は、イメージデータデータに基づいて上述した印刷ユニットを制御して、シート上へ印刷を行なう。エンジン制御部207は、例えば、各色の印刷ヘッド106へのインク吐出指示や、シート上でのドット位置を調整するための吐出タイミング設定、ヘッド駆動状態取得等を行なう。イメージデータに応じて印刷ヘッド106を駆動制御し、印刷ヘッド106からインクを吐出させる。これにより、シート上に印刷が行なわれる。その他、エンジン制御部207は、各種ローラ(例えば、給紙ローラ、搬送ローラ等)の駆動を制御し、シートを適切な速度で搬送及び停止させる。
スキャナ制御部208は、イメージセンサー(例えば、CCD、CIS等)を制御し、シート上の画像を読み取る。スキャナ制御部208は、画像の読み取り値として、赤(R)、緑(G)及び青(B)色のアナログ輝度データを取得する。その他、スキャナ制御部208は、イメージセンサーから取得した輝度データを解析し、不吐ノズルやシートの切断位置の検出等も行なう。
ホスト装置20は、印刷装置100の外部に設けられ、印刷ジョブの供給源として機能する。ホスト装置20は、印刷に係わる画像等のデータの作成等を行なうコンピュータでもあっても良いし、画像読取用のリーダ等であっても良い。
外部I/F205は、印刷ジョブやその他のコマンド、ステータス信号等をホスト装置20等との間で送受信する。
次に、図3を用いて、図1に示す印刷装置100における処理の流れの一例について簡単に説明する。ここでは、両面印刷を行なう際の処理の流れについて説明する。
この処理は、印刷装置100が外部I/F205において、ホスト装置20から印刷ジョブを受信すると開始する(S101)。この処理が開始すると、印刷装置100は、画像処理部206において、当該受信した印刷ジョブをRIPする(S102)。RIPの順番は、優先度(通常、割込)、用紙の綴じ方、装置に搭載されている用紙サイズ、ソータトレイにまとめる単位などに基づいて決められる。RIPされたデータは、RIP済みデータとしてHDD204に格納される。
印刷装置100は、エンジン制御部207において、表面用のRIP済みデータに基づいてシート表面の印刷を開始する。具体的には、ロール紙ユニット101からシートを給紙し、搬送ユニット102によってシートをヘッドユニット105に搬送する。印刷装置100は、ヘッドユニット105まで搬送されたシートの表面に画像を印刷し(S103)、当該印刷後のシートをスキャナユニット107まで搬送する。印刷装置100は、スキャナユニット107において、印刷された画像を確認した後、当該印刷がなされたシートをカッタユニット110まで搬送する。
ここで、印刷装置100は、カッタユニット110でシートの切断を行なわず、連続シートのまま、乾燥ユニット112を通過させる。そして、印刷された画像を乾燥させた後、シート巻取りユニット113で当該連続シートを巻き取る。印刷装置100は、上記動作を表面に印刷指示のあったRIP済みデータ全ての印刷が終了するまで行ない、最後に切断を行なう(S104)。
表面の印刷が終了すると、印刷装置100は、エンジン制御部207において、裏面用のRIP済みデータに基づいてシート裏面の印刷を開始する。具体的には、シート巻取りユニット113に巻き取られた表面印刷済みシートを反転後、搬送ユニット102により、ヘッドユニット105に搬送する。印刷装置100は、ヘッドユニット105まで搬送されたシートの裏面に印刷指示のあった画像を対応する表面の裏に印刷し、スキャナユニット107まで搬送する。
印刷装置100は、スキャナユニット107において、印刷された画像を確認した後、当該印刷がなされたシートをカッタユニット110まで搬送する。印刷装置100は、カッタユニット110において、当該シートを印刷単位の長さ毎に切断する(S105)。乾燥ユニット112を通過させ乾燥させた後、仕分けユニット114に搬送し、画像毎に指定されたトレーに搬送を行なう(S106)。
ここで、図4を用いて、図1に示す制御ユニット108により実現される機能的な構成の一例について説明する。ここでは、RIPに係わる機能的な構成を例に挙げて説明する。
制御ユニット108には、その機能的な構成として、インプットスプーラ401と、印刷ジョブ受信部402と、ジョブ制御部403と、アウトプットスプーラ404と、画像処理送受信部405と、UI制御部407とが具備される。インプットスプーラ401及びアウトプットスプーラ404以外の構成は、例えば、CPU201が、ROM202やHDD204等に格納されたプログラムを実行することにより実現される。なお、インプットスプーラ401及びアウトプットスプーラ404は、例えば、HDD204等により実現される。
印刷ジョブ受信部402は、ホスト装置20から送られてきた印刷ジョブを受信する。
インプットスプーラ401は、印刷ジョブ受信部402により受信された印刷ジョブを格納する。印刷ジョブは、例えば、インプットスプーラ401に投入された順などを示すパラメータ情報と対応付けて一時的にインプットスプーラ401に格納される。
ジョブ制御部403は、印刷ジョブに係わる処理を統括制御する。ジョブ制御部403には、機能的な構成として、ジョブ解析部411と、ページ分割部412と、実行制御部413とが設けられる。ジョブ解析部411は、インプットスプーラ401に格納された印刷ジョブを解析し、ジョブの優先度や使用する紙サイズ、紙種、片面/両面印刷などを判定する。ページ分割部412は、印刷ジョブをページ単位に分割する。実行制御部413は、例えば、印刷ジョブの最適なRIP順を決定する。
画像処理送受信部405は、ジョブ制御部403からの指示に基づいて、RIP順に従って画像処理部206へ印刷ジョブを送信する。また、画像処理送受信部405は、画像処理部206により展開処理されたRIP済みデータをアウトプットスプーラ404に格納する。その他、画像処理送受信部405は、印刷ジョブの印刷が正常に終了した場合やキャンセルが指示された場合に、RIP済みデータをアウトプットスプーラ404から削除する。
アウトプットスプーラ404は、RIP済みデータを格納する。ここでは、説明を分かり易くするため、インプットスプーラ401とアウトプットスプーラ404とを別々の構成として示しているが、これら構成は、一つの構成として実現されても良い。
エンジン送信部406は、ジョブ制御部403からの指示に基づいて、RIP済みデータをエンジン制御部207へ送信する。なお、全てのページが正常に印刷されると、ジョブ制御部403は、インプットスプーラ401から該当の印刷ジョブを削除する。
UI制御部407は、操作ユニット115を介したユーザからの指示を装置内に入力したり、操作ユニット115への各種情報の表示等を制御する。オペレータからの指示としては、例えば、通常よりも早く印刷を行ないたい場合に、印刷ジョブの優先度を変更したり、投入した印刷ジョブをキャンセルしたりする指示が挙げられる。
次に、図5(a)及び図5(b)を用いて、図4に示すジョブ制御部403における印刷ジョブの制御方法の一例について説明する。
図5(a)においては、複数の印刷ジョブがインプットスプーラ401に投入された後、当該ジョブがRIPされてアウトプットスプーラ404にRIP済みデータとして格納されている。
ここで、印刷ジョブ501〜503は、符号501、符号502、符号503の順番でインプットスプーラ401に投入されている。印刷ジョブ501及び503は、同じサイズ及び紙種が用いられるジョブである。そのため、印刷ジョブ501及び503に基づく印刷は、連続して同じシートに行なえる。印刷ジョブ502は、印刷ジョブ501及び503とは異なるサイズ及び紙種が指定されている。そのため、印刷ジョブ502は、印刷ジョブ501及び503とは、同じシートに印刷不可能なジョブである。
RIP済みデータ504〜506は、印刷ジョブ501〜503がそれぞれRIPされたことにより生成される。なお、空き領域507は、アウトプットスプーラ404の空き領域を示しており、RIP済みデータ格納するための領域に未だ余裕がある旨示されている。
ここで、このようなRIP済みデータ504〜506に基づいて印刷が行なわれたとする。この場合、図5(b)のシート510及びシート520に示す出力結果が得られる。
RIP済みデータ504及び506に基づく印刷は、同じロール紙(シート510)に連続して行なわれる。また、RIP済みデータ505に基づく印刷は、RIP済みデータ504及び506に基づく印刷の後にシート交換が行なわれ、別のシート(シート520)に行なわれる。
ここでは、トータルでのスループットを向上させるため、連続して同じシートを使用した印刷が続けられるように印刷ジョブの実行順序を変更した場合を示している。仮に、印刷ジョブの実行順序を変更しない、すなわち、印刷ジョブ501、502、503の順で印刷を行なうと、印刷ジョブ501に基づく印刷を行なった後、シートを交換し、別のシートで印刷ジョブ502に基づく印刷を行なう。その後、更にシートを交換し、印刷ジョブ503に基づく印刷を行なうことになる。
図5(b)に示すように、印刷ジョブ501と同じシートを使用する印刷ジョブ503に基づく印刷を、印刷ジョブ502よりも先に行なうと、シート交換が1回で済む。それに対して、インプットスプーラ401への印刷ジョブの投入順に印刷を行なった場合には、シート交換が2回必要となり、シート交換に要する時間の分だけオーバーヘッドが発生し、トータルでのスループットが低下してしまう。このようにロール紙に印刷する場合には、同じシートを連続して使用できるように、印刷ジョブの実行順序を変更するのが好ましい場合がある。
次に、図6を用いて、印刷ジョブ501〜503に対する処理の流れの一例について説明する。なお、縦軸は、時間軸を示している。
まず、印刷ジョブ受信部402における処理について説明する。印刷装置100は、印刷ジョブ受信部402において、印刷ジョブ501〜503を順番に受信するとともに、インプットスプーラ401にそれを格納する(S101〜S103)。
続いて、画像処理送受信部405における処理について説明する。印刷装置100は、画像処理送受信部405において、インプットスプーラ401に投入された印刷ジョブ501を当該ジョブの投入とともに、画像処理部206に送信する。これにより、印刷ジョブ501が展開(RIP)され、RIP済みデータが生成される。この後、印刷装置100は、画像処理送受信部405において、当該RIP済みのデータをアウトプットスプーラ404に格納する(S104)。印刷ジョブ502は、印刷ジョブ501に対するRIPの終了とともに、RIPされ(S105)、印刷ジョブ503は、印刷ジョブ502に対するRIPの終了とともに、RIPされる(S106)。この場合にも、展開対象となる印刷ジョブ502及び503に基づくRIP済みデータがアウトプットスプーラ404に格納される。
この他、画像処理送受信部405は、印刷ジョブ501に基づく印刷が完了すると、アウトプットスプーラ404から該当のRIP済みデータを削除する(S107)。すなわち、印刷ジョブ501から生成されたRIP済みデータに基づく印刷の完了とともに、当該展開元となる印刷ジョブ501に対応するRIP済みデータが削除される。この処理は、印刷ジョブ502や印刷ジョブ503に基づく印刷が完了した場合にも同様に行なわれる(S108、S109)
続いて、ジョブ制御部403における処理について説明する。各印刷ジョブに対するRIPが済むと、印刷装置100は、ジョブ制御部403において、RIP済みデータ504がアウトプットスプーラ404に格納されたタイミングで印刷を開始するか否かを判定する(S110)。このとき、印刷ジョブ501の他、印刷ジョブ502及び503がインプットスプーラ401に投入されており、これら印刷ジョブに基づく印刷を連続で行なえる可能性がある。そのため、ジョブ制御部403は、印刷ジョブ503がRIP済みになるまで印刷の開始を待機する旨の判定を行なう。
また、RIP済みデータ505がアウトプットスプーラ404に格納されたタイミングにおいても、上記同様の判定が行なわれるが、この場合にも、印刷ジョブ503がRIP済みになるまで印刷の開始を待機する旨の判定が行なわれる(S111)。
ここで、RIP済みデータ506がアウトプットスプーラ404に格納されたタイミングにおいても上記同様の判定が行なわれる(S112)。この場合、新たな印刷ジョブが投入されておらず、これ以上待機したとしても連続して印刷できる印刷ジョブが増えないため、ジョブ制御部403は、印刷を開始すると判定し、エンジン送信部406に向けて印刷の開始を指示する。このとき、ジョブ制御部403は、印刷ジョブ501及び503は同じシートに印刷できるため、印刷ジョブ501及び503に基づく印刷を指示する。
また、ジョブ制御部403は、印刷ジョブ501及び503に基づく印刷が完了したタイミングで印刷ジョブ502に基づく印刷を開始するか否かを判定する(S113)。この場合、新たな印刷ジョブが投入されておらず、これ以上待機したとしても連続して印刷できる印刷ジョブが増えないため、ジョブ制御部403は、印刷を開始すると判定し、エンジン送信部406に向けて印刷の開始を指示する。
続いて、エンジン送信部406における処理について説明する。ジョブ制御部403からの印刷指示を受けたエンジン送信部406は、印刷ジョブ501に対応するRIP済みデータ504をエンジン制御部207に向けて送信する(S114)。また、RIP済みデータ504の送信が済むと、エンジン送信部406は、印刷ジョブ503に対応するRIP済みデータ506をエンジン制御部207に向けて続けて送信する(S115)。なお、印刷ジョブ502に対応するRIP済みデータ505は、印刷ジョブ503に基づく印刷が完了したタイミングでエンジン制御部207に向けて送信される(S116)。
続いて、エンジン制御部207における処理について説明する。RIP済みデータ504を受信したエンジン制御部207は、当該RIP済みデータ504に基づく印刷を開始する(S117)。当該RIP済みデータ504に基づく印刷が完了すると、エンジン制御部207は、当該RIP済みデータ506に基づく印刷を開始する(S118)。RIP済みデータ504及び506に基づく印刷が完了すると、エンジン制御部207は、エンジン送信部406を介してジョブ制御部403へ印刷完了を通知する。
その後、エンジン制御部207は、シート交換を実施する(S119)。シート交換が済むと、エンジン制御部207は、RIP済みデータ505に基づく印刷を開始する(S120)。RIP済みデータ505に基づく印刷が完了すると、エンジン制御部207は、エンジン送信部406を介してジョブ制御部403へ印刷完了を通知する。
このようにジョブ制御部403においては、トータルでのスループットを向上させるため、印刷ジョブを受信した順番とは異なる順番で印刷を制御する場合もある。
次に、図7を用いて、印刷ジョブ501〜503が投入された後、当該印刷ジョブの処理中に追加の印刷ジョブが投入された場合について説明する。ここでは、印刷ジョブ502と同じシートを使用する印刷ジョブ(以下、通常ジョブ)612と、印刷ジョブ501及び503と同じシートを使用する優先度の高い印刷ジョブ(以下、割込ジョブ)611が追加投入された場合について説明する。
ここで、シート601及びシート602には、シート上に印刷される印刷イメージが示されている。なお、シート601及びシート602は、少なくともサイズが異なる。
シート601には、印刷ジョブ501及び503に基づく画像の後に、割込ジョブ611に基づく画像が印刷されている。また、シート602には、印刷ジョブ502に基づく画像の後に、通常ジョブ612に基づく画像が印刷されている。なお、この場合、印刷ジョブ501及び503が投入された後、当該ジョブに基づく印刷と同じシート上に割込ジョブ611に基づく画像が印刷されている。その結果、シート交換を行なうオーバーヘッドを減らせることができ、トータルでのスループットを落とさずに優先度の高い印刷ジョブに基づく印刷を行なえることになる。
ここで、図8を用いて、印刷ジョブ501〜503が投入された後、当該印刷ジョブの処理中に追加の印刷ジョブ(611、612)が投入された場合について説明する。なお、縦軸は、時間軸を示している。
まず、印刷ジョブ受信部402における処理について説明する。印刷装置100は、印刷ジョブ受信部402において、印刷ジョブ501〜503及び印刷ジョブ611を順番に受信するとともに、インプットスプーラ401にそれを格納する(S201〜S204)。また、印刷装置100は、印刷ジョブ受信部402において、印刷ジョブ612を割込ジョブとして受信し、インプットスプーラ401にそれを格納する(S205)。
続いて、画像処理送受信部405における処理について説明する。印刷装置100は、画像処理送受信部405において、インプットスプーラ401に投入された印刷ジョブ501を当該ジョブの投入とともに、画像処理部206に送信する。これにより、印刷ジョブ501は、RIPされ、画像処理送受信部405により当該RIP済みのデータがアウトプットスプーラ404に格納される(S206)。印刷ジョブ502は、印刷ジョブ501に対するRIPの終了とともに、RIPされ(S207)、また、印刷ジョブ503は、印刷ジョブ502に対するRIPの終了とともに、RIPされている(S208)。
印刷ジョブ503に対するRIPが終了すると、印刷ジョブ612に対してRIPが実施される。ここで、印刷ジョブ612のRIP済みデータ622をアウトプットスプーラ404に格納する際に、空き領域が不足したとする(S209)。すると、画像処理送受信部405は、空き領域の不足をジョブ制御部403へ通知する。
また、印刷ジョブ611に対するRIP時にも、上記同様にアウトプットスプーラ404の空き領域が不足している。そのため、画像処理送受信部405は、空き領域の不足をジョブ制御部403へ通知する。このとき、画像処理送受信部405は、ジョブ制御部403からRIP済みデータ622の削除指示を受信する。そのため、画像処理送受信部405は、RIP済みデータ622をアウトプットスプーラ404から削除する(S210)。
また、画像処理送受信部405は、印刷ジョブ501に基づく印刷が完了すると、アウトプットスプーラ404から該当のRIP済みデータを削除する(S211)。ここで、アウトプットスプーラ404に空き領域ができたので、画像処理送受信部405は、一度削除した印刷ジョブ612を再度、画像処理部206に送信する。これにより、印刷ジョブ612に基づくRIP済みデータ622がアウトプットスプーラ404に格納される(S212)。上記S211の処理と同様に、アウトプットスプーラ404に格納されたRIP済みデータは、印刷の完了とともに削除される(S213〜S216)。
続いて、ジョブ制御部403における処理について説明する。印刷装置100は、ジョブ制御部403において、RIP済みデータ504がアウトプットスプーラ404に格納されたタイミングで印刷を開始するか否かを判定する(S215)。
このとき、印刷ジョブ501の他、印刷ジョブ502及び503がインプットスプーラ401に投入されており、上述した図6の説明と同様に、印刷ジョブ503がRIP済みになるまで印刷の開始を待機する旨の判定を行なう。また、RIP済みデータ505がアウトプットスプーラ404に格納されたタイミングにおいても、上記同様の判定が行なわれるが、この場合にも、印刷ジョブ503がRIP済みになるまで印刷の開始を待機する旨の判定が行なわれる(S216)。
ここで、RIP済みデータ506がアウトプットスプーラ404に格納されたタイミングにおいても上記同様の判定が行なわれる(S217)。この場合、新たに同じシードで印刷が行なえる印刷ジョブが投入されておらず、これ以上待機したとしても連続して印刷できる印刷ジョブが増えないため、ジョブ制御部403は、印刷を開始すると判定し、エンジン送信部406に向けて印刷の開始を指示する。このとき、ジョブ制御部403は、印刷ジョブ501及び503は同じシートに印刷できるため、印刷ジョブ501及び503に基づく印刷を指示する。
また、ジョブ制御部403は、通常ジョブ612のRIP中(レンダリング処理中)に空き領域が不足したことを受け、RIPをキャンセルするか否かの判定を行なう。ここでは、通常ジョブ612は、通常の優先度を有する印刷ジョブであるため、ジョブ制御部403は、特に処理を行なわない(S218)。
また更に、ジョブ制御部403は、割込ジョブ611のRIP中に空き領域が不足したことを受けた場合にも、上記同様にRIPをキャンセルするか否かの判定を行なう。ここでは、ジョブ制御部403は、割込ジョブ611をRIPするのに必要な空き領域をアウトプットスプーラ404に確保するため、通常ジョブ612のRIP済みデータ622の削除を画像処理送受信部405に指示する(S219)。その後、ジョブ制御部403は、画像処理送受信部405から空き領域ができた旨の通知を受信すると、当該削除した印刷ジョブ612のRIPを画像処理送受信部405に再度指示する。すなわち、画像処理部206に印刷ジョブ612のRIPを再実行させる。
ここで、ジョブ制御部403は、割込ジョブ611のRIP済みデータ621がアウトプットスプーラ404に格納されたタイミングで印刷を開始するか否かを判定する(S220)。このとき、ジョブ制御部403は、現在印刷中のシートに続けて当該割込ジョブ611に基づく印刷を実行できるため、割込ジョブ611に基づく印刷の開始を指示する。
また、ジョブ制御部403は、印刷ジョブ501、503及び611に基づく印刷が完了したタイミングで印刷を開始するか否かの判定を行なう(S221)。このとき、ジョブ制御部403は、印刷ジョブ502及び通常ジョブ612がRIP済みとなっており、また、新たな印刷ジョブも投入されていないため、エンジン送信部406に向けて印刷ジョブ502及び通常ジョブ612に基づく印刷の開始を指示する。
続いて、エンジン送信部406における処理について説明する。ジョブ制御部403からの印刷指示を受けたエンジン送信部406は、印刷ジョブ501に対応するRIP済みデータ504をエンジン制御部207に向けて送信する(S222)。また、RIP済みデータ504の送信が済むと、エンジン送信部406は、印刷ジョブ503に対応するRIP済みデータ506をエンジン制御部207に向けて続けて送信する(S223)。エンジン送信部406は、ジョブ制御部403からの印刷指示に基づいて、他のRIP済みデータについても上記同様の処理を行なう(S224〜S226)。
続いて、エンジン制御部207における処理について説明する。RIP済みデータ504を受信したエンジン制御部207は、当該RIP済みデータ504に基づく印刷を開始する(S227)。当該RIP済みデータ504に基づく印刷が完了すると、エンジン制御部207は、当該RIP済みデータ506及び621に基づく印刷を開始する(S228、S229)。RIP済みデータ504、506及び621に基づく印刷が完了すると、エンジン制御部207は、エンジン送信部406を介してジョブ制御部403へ印刷完了を通知する。
その後、エンジン制御部207は、シート交換を実施する(S230)。シート交換が済むと、エンジン制御部207は、RIP済みデータ505及び622に基づく印刷を開始する(S231)。RIP済みデータ505及び622に基づく印刷が完了すると、エンジン制御部207は、エンジン送信部406を介してジョブ制御部403へ印刷完了を通知する。
このようにジョブ制御部403においては、トータルでのスループットを向上させるため、印刷ジョブを受信した順番とは異なる順番で印刷を制御する場合もある。
次に、図9〜図11を用いて、図1に示す印刷装置100における処理の流れの一例について説明する。ここでは、ジョブ制御部403における処理の流れについて説明する。
まず、図9を用いて、印刷ジョブをRIPする際の処理の流れの一例について説明する。
この処理は、1つでも印刷ジョブが投入されてRIPに必要なデータが揃うと開始される。この処理が開始すると、ジョブ制御部403は、投入された印刷ジョブの全てのページが処理されるまでS301〜S309の処理を繰り返し行なう。
ジョブ制御部403は、まず、投入された印刷ジョブをページ単位で処理できるようにページ単位に分割する(S301)。そして、RIP済みデータを格納するのに必要なアウトプットスプーラ404における空き領域を取得する(S302)。
ここで、空き領域がなければ(S303でNO)、ジョブ制御部403は、詳細については後述するが、空き領域確保処理を実施し(S304)、アウトプットスプーラ404における空き領域を確保する。一方、空き領域があれば(S303でYES)、ジョブ制御部403は、n(初期値=1)ページ目のRIPを画像処理送受信部405に指示する(S305)。これにより、画像処理送受信部405は、画像処理部206に対して画像処理を依頼し、当該依頼に基づく画像処理が終わると、その結果をRIP済みデータとして、アウトプットスプーラ404に格納する。その後、ジョブ制御部403は、nを「1」加算する(S306)。
ここで、ジョブ制御部403は、割込ジョブがインプットスプーラ401に投入されているか否かを判定する。割込ジョブが投入されていれば(S307でYES)、ジョブ制御部403は、RIPを中断し(S308)、この処理に移る。なお、この中断は、処理中の印刷ジョブが割込ジョブであるか、又は通常の優先度の印刷ジョブであるかによって中断するか否かを切り替えるように構成しても良い。
一方、割込ジョブが投入されていなければ(S307でNO)、ジョブ制御部403は、全てのページに対して上述した処理が終了したか否かを判定し、終了していなければ(S309でNO)、上述したS302〜S306の処理を再度行なう。終了していれば(S309でYES)、この処理を終了する。
次に、図10を用いて、図9のS304に示す空き領域確保処理(RIP判定処理)の流れの一例について説明する。すなわち、図8のS218及びS219に対応する処理である。
この処理が開始すると、ジョブ制御部403は、投入された印刷ジョブが割込ジョブであるか否かを判定する。判定の結果、割込ジョブでなければ(S401でNO)、ジョブ制御部403は、アウトプットスプーラ404に空き領域が確保できるまで待機する(S407)。
一方、割込ジョブであれば(S401でYES)、ジョブ制御部403は、印刷が実行中であるか否かを判定する。ここでは、エンジン送信部406にRIP済みデータを送信したタイミングから印刷中とする。
判定の結果、印刷中であれば(S402でYES)、ジョブ制御部403は、印刷中の印刷ジョブと同じシートに割込ジョブが印刷可能であるか否かを判定する(S403)。印刷可であれば(S404でYES)、ジョブ制御部403は、最後に投入された通常ジョブのキャンセルを画像処理送受信部405に指示する(S408)。キャンセルの指示を受けた画像処理送受信部405は、該当の通常ジョブの全てのページのRIP済みデータをアウトプットスプーラ404から削除する。
一方、S403の判定の結果、印刷可であれば(S404でYES)、ジョブ制御部403は、印刷中の印刷ジョブが複数部指定され、且つ未印刷の部数が所定数以上であるか否かを判定する(S405)。ここで、この条件に該当すれば(S406でYES)、ジョブ制御部403は、最後に投入された通常ジョブのキャンセルを画像処理送受信部405に指示する(S408)。一方、S405の条件に該当しなければ(S406でNO)、ジョブ制御部403は、アウトプットスプーラ404に空き領域が確保できるまで待機する(S407)。
また、S402の判定の結果、印刷中でなければ(S402でNO)、ジョブ制御部403は、ロール紙ユニット101に未設定のシートを指定する通常ジョブがRIP済みであるか否かを判定する(S409)。該当の通常ジョブがあれば(S410でYES)、ジョブ制御部403は、該当の(条件が一致した)通常ジョブの中で最後に投入された通常ジョブのキャンセルを画像処理送受信部405に指示する(S413)。キャンセルの指示を受けた画像処理送受信部405は、該当の通常ジョブの全てのページのRIP済みデータをアウトプットスプーラ404から削除する。
一方、S409の判定の結果、該当の通常ジョブがなければ(S410でNO)、ジョブ制御部403は、割込ジョブと異なるサイズのシートを指定する通常ジョブがRIP済みであるか否かを判定する(S411)。該当の通常ジョブがあれば(S412でYES)、ジョブ制御部403は、該当の(条件が一致した)通常ジョブの中で最後に投入された通常ジョブのキャンセルを画像処理送受信部405に指示する(S413)。
また、S411に示す条件に一致する通常ジョブがなければ(S412でNO)、ジョブ制御部403は、最後に投入された通常ジョブのキャンセルを画像処理送受信部405に指示する(S408)。
その後、アウトプットスプーラ404に必要な空き領域が確保されるまで(S414でNO)、ジョブ制御部403は、上述したS401〜S413の処理を繰り返し実施する。必要な空き領域が確保できれば(S414でYES)、この処理は終了する。
以上が、空き領域確保処理についての説明であるが、必ずしも上述した通りの処理を行なう必要はなく、適宜変更しても良い。例えば、上述したS408の処理では、最後に投入された通常ジョブをキャンセルしていたが、何らかの基準(例えば、容量が小さい/大きい等)に従ってジョブを選択してキャンセルしても良い。また、上述したS413の処理においても同様に、該当の(条件が一致した)通常ジョブの中で最後に投入された通常ジョブではなく、該当の通常ジョブのうちのいずれかを何らかの基準に従ってキャンセルしても良い。その他、キャンセルする通常ジョブの数も1つではなく、複数同時にキャンセルしても良い。
次に、図11を用いて、印刷開始処理の流れの一例について説明する。すなわち、図8のS215〜S217、S220及びS221に対応する処理である。この処理は、図10に示す印刷ジョブのRIPが終了したタイミングで開始される。その他、印刷ジョブに基づく印刷が終了したタイミングでも呼び出され実行される(図6のS113や図8のS221に示す処理)。
この処理が開始すると、ジョブ制御部403は、処理済みの割込ジョブがあるか否かの判定を行なう。すなわち、割込ジョブのRIP済みデータがアウトプットスプーラ404に格納されているか否かを判定する。処理済みの割込ジョブがなければ(S501でNO)、ジョブ制御部403は、S506の処理に進み、処理中の割込ジョブがあるか否かの判定を行なう。
一方、処理済みの割込ジョブがあれば(S501でYES)、ジョブ制御部403は、 処理済みの割込ジョブ、すなわち、割込ジョブのRIP済みデータがアウトプットスプーラ404に所定数以上格納されているか否かを判定する。なお、ここでの所定数とは、1以上であれば良く、所定数の値は、画像処理部206やエンジン制御部207のパフォーマンスによって決めれば良い。
判定の結果、所定数以上格納されていれば(S502でYES)、ジョブ制御部403は、割込ジョブのRIP済みデータをエンジン送信部406へ送信するとともに、印刷の開始を指示する(S505)。また、S502の判定の結果、所定数以上格納されていなければ(S502でNO)、ジョブ制御部403は、処理中の割込ジョブがあり、且つ当該割込ジョブが最初に印刷される処理済みの割込ジョブと同じシートに印刷可能であるか否かを判定する(S503)。
ここで、同じシートに印刷可能でなければ(S504でNO)、ジョブ制御部403は、割込ジョブのRIP済みデータをエンジン送信部406へ送信するとともに、印刷の開始を指示する(S505)。一方、同じシートに印刷可能であれば(S504でYES)、ジョブ制御部403は、処理中の割込ジョブがあるか否かの判定を行なう。
判定の結果、処理中の割込ジョブがあれば(S506でYES)、ジョブ制御部403は、当該処理中の割込ジョブを処理する。すなわち、当該割込ジョブに対して、上述した図9に示す処理を実施する。これにより、割込ジョブのRIP済みデータの作成が行なわれる(S507)。その後、この処理を終了する。なお、割込ジョブの処理中に更に割り込みがあった場合には、最後に割り込んだジョブを1つ選択して処理を行なえば良い。但し、複数の割込ジョブをどのような順番で処理するかは、ユーザ設定などにより適宜変更すれば良く、例えば、最初に割り込んだ割込ジョブを選択して処理しても良い。
また、S506における判定の結果、処理中の割込ジョブがなければ(S506でNO)、ジョブ制御部403は、中断又はキャンセルした印刷ジョブが存在するか否かの判定を行なう。該当の印刷ジョブがあれば(S508でYES)、ジョブ制御部403は、当該印刷ジョブを処理する。すなわち、当該印刷ジョブに対して、上述した図9に示す処理を実施する。これにより、印刷ジョブのRIP済みデータの作成が行なわれる(S509)。その後、この処理を終了する。
また、中断又はキャンセルした印刷ジョブがなければ(S508でNO)、ジョブ制御部403は、未処理の印刷ジョブがあるか否かの判定を行なう。すなわち、印刷ジョブがインプットスプーラ401に投入されているか否かを判定する。
判定の結果、未処理の印刷ジョブがなければ(S510でNO)、ジョブ制御部403は、RIP済みデータをエンジン送信部406へ送信するとともに、印刷の開始を指示する(S513)。
一方、未処理の印刷ジョブがあれば(S510でYES)、ジョブ制御部403は、当該未処理の印刷ジョブに対して上述した図9に示す処理を実施する。すなわち、未処理の印刷ジョブのRIP済みデータの作成が行なわれる(S511)。また、ジョブ制御部403は、処理済みの印刷ジョブ、すなわち、RIP済みデータがアウトプットスプーラ404に所定数以上格納されているか否かを判定する。なお、ここでの所定数とは、1以上であれば良く、所定数の値は、画像処理部206やエンジン制御部207のパフォーマンスによって決めれば良い。
判定の結果、処理済みの印刷ジョブが所定数以上格納されていなければ(S512でNO)、ジョブ制御部403は、この処理を終了する。一方、処理済みの印刷ジョブが所定数以上格納されていれば(S512でYES)、ジョブ制御部403は、RIP済みデータをエンジン送信部406へ送信するとともに、印刷の開始を指示する(S513)。その後、この処理を終了する。
以上説明したように本実施形態によれば、通常ジョブの処理中に割込ジョブ(通常ジョブよりも優先度の高いジョブ)が投入された場合にアウトプットスプーラ404に空き領域がなければ、優先度の低い通常ジョブをキャンセルし、割込ジョブを先に印刷する。これにより、割込印刷が要求されたときに空き領域がない場合であっても、当該割込印刷を速やかに処理できる。
また、可能な限り同じシートを用いた印刷が連続して行なわれるように、キャンセルする印刷ジョブを選択するため、トータルでのスループットも低下しない。また更に、印刷開始のタイミングを調整するため、割込ジョブの実行と印刷のスループットとを両立することができる。
(実施形態2)
次に、実施形態2について説明する。実施形態2においては、実施形態1に加えて更に、ページ分割処理によって出力されるデータ(ページデータ)についても、空き領域不足による処理の遅延を考慮した場合について説明する。
ここで、図12を用いて、実施形態2に係わる制御ユニット108により実現される機能的な構成の一例について説明する。ここでは、RIPに係わる機能的な構成を例に挙げて説明する。なお、実施形態1を説明した図4の構成と同様の機能を果たすものには、同一の符号を付し、その説明については省略する場合もある。
制御ユニット108には、実施形態1を説明した図4の構成に加えて、ページスプーラ408が設けられる。
ページスプーラ(ページデータ格納手段)408は、ページ単位に分割されたデータ(ページデータ)を格納する。ここでは、説明を分かり易くするため、インプットスプーラ401、アウトプットスプーラ404、ページスプーラ408を別々の構成として示しているが、これら構成は、一つの構成として実現されても良い。なお、ページスプーラ408は、例えば、HDD204等で実現される。また、画像処理送受信部405は、ジョブ制御部403により指示に基づいて、ページデータを画像処理部206へ送信する。
図13を用いて、実施形態2に係わる印刷装置100における処理の流れの一例について説明する。ここでは、印刷ジョブをページ単位に分割し、RIPする際の処理の流れの一例について説明する。すなわち、この処理は、実施形態1を説明した図9の代わりに行なわれ、この図13に示す処理の終了後、図11で説明した印刷開始判定処理が実施される。
この処理は、1つでも印刷ジョブが投入されてRIPに必要なデータが揃うと開始される。この処理が開始すると、ジョブ制御部403は、投入された印刷ジョブの全てのページが処理されるまでS601〜S611の処理を繰り返し行なう。
ジョブ制御部403は、まず、既にページ分割処理中の他の印刷ジョブが存在するか否かを判定する。ページ分割中の他の印刷ジョブが存在しなければ(S601でNO)、ジョブ制御部403は、S604の処理に進む。一方、ページ分割中の他の印刷ジョブが存在すれば(S601でYES)、ジョブ制御部403は、新たに投入された印刷ジョブが割込ジョブであるか否かを判定する。
判定の結果、割込ジョブでない、すなわち、通常ジョブであれば(S602でNO)、ジョブ制御部403は、ページスプーラ408に空き領域が確保できるまで待機する(S611)。例えば、RIPされてRIP済みデータとしてアウトプットスプーラ404に格納されるか、又はRIPがキャンセルされると、既に作成済みのページデータが削除されるため、ページスプーラ408に空き領域が生じることになる。これにより、空き領域が確保されると、ジョブ制御部403は、中断していたページ分割処理を再開する(S612でNO)。
一方、S602の判定の結果、新たに投入された印刷ジョブが割込ジョブであれば(S602でYES)、ジョブ制御部403は、ページ分割処理中の印刷ジョブに対する処理を中断する(S603)。なお、ページ分割処理中の印刷ジョブを必ずしも中断する必要はなく、処理が終わるのを待機しても良い。
ここで、ジョブ制御部403は、1ページを分割するのに必要な空き領域を取得する(S604)。そして、ページスプーラ408に当該領域に相当する空き領域があれば(S605でYES)、ジョブ制御部403は、新たに投入された印刷ジョブのページ分割処理を実施し、ページデータをページスプーラ408に格納する(S606)。
続いて、ジョブ制御部403は、n(初期値=1)ページ目のページデータをRIPしてアウトプットスプーラ404にRIP済みデータとして格納する(S607)。その後、ジョブ制御部403は、nを「1」加算する(S608)。なお、アウトプットスプーラ404にRIPに必要な空き領域がない場合、ジョブ制御部403は、図11で説明した処理に従って、RIP済みデータをキャンセルしたり、空き領域が確保できるまで待機したりしても良い。
また、S605の判定の結果、空き領域がなければ(S605でNO)、ジョブ制御部403は、新たに投入された印刷ジョブが割込ジョブであるか否かを判定する。割込ジョブであれば(S608でYES)、ジョブ制御部403は、ページスプーラ408に空き領域が確保できるまで待機する(S611)。
一方、割込ジョブでない、すなわち、通常ジョブであれば(S608でNO)、ジョブ制御部403は、RIP済みデータが十分に揃っても印刷が実行できない状態(以下、印刷待機)であるか否かを判定する。印刷待機状態とは、例えば、夜間にRIPだけを済ませておき、シートへの印刷を停止している状態のことを指す。
ここで、印刷待機状態であれば(S609でYES)、ジョブ制御部403は、投入された印刷ジョブ(通常ジョブ)に対するページ分割処理及びRIPをキャンセル(中止)する。より具体的には、ページスプーラ408に途中まで作成されたページデータや、アウトプットスプーラ404に途中まで作成されたRIP済みデータを削除する(S610)。ページスプーラ408においては、RIPされると、該当のページデータが削除されるため、空き領域が生じる。しかし、ページスプーラ408は、アウトプットスプーラ404の空き領域がなくなり、RIPが進まなくなると、アウトプットスプーラ404と同様に空き領域がなくなる。そのため、ジョブ制御部403は、このようなキャンセルを行なうことにより、ページスプーラ408に空き領域を確保し、ページ分割処理を行なう。
また、S609の判定の結果、印刷待機状態でなければ(S609でNO)、ジョブ制御部403は、ページスプーラ408に空き領域が確保できるまで待機する。待機が済むと、ジョブ制御部403は、全てのページに対して上述した処理が終了したか否かを判定し、終了していなければ(S612でNO)、上述したS601〜S611の処理を再度行なう。終了していれば(S612でYES)、この処理は終了する。
以上説明したように実施形態2によれば、ページ分割処理によって生成されるページデータについても、RIPをキャンセルすることで、空き領域不足による割込ジョブの印刷の遅延を防ぐことができる。
以上が本発明の代表的な実施形態の例であるが、本発明は、上記及び図面に示す実施形態に限定することなく、その要旨を変更しない範囲内で適宜変形して実施できるものである。