以下に添付図面を参照して、この発明にかかる情報処理装置、情報処理方法、および、情報処理システムの一実施形態を詳細に説明する。
以下では、ページ記述言語としてPostScriptを適用する例を主に説明するが、適用可能なページ記述言語は、PostScriptに限られない。例えば、先頭ページから処理する必要のある、他のページ記述言語に対しても同様の手法を適用できる。
上記のように、従来技術では、PostScriptファイルで記述された出力順序とは異なる順序で印刷するジョブの処理効率を十分に向上できない場合があった。例えば、ワイヤーバインドジョブ(詳細は後述)では、印刷時にほとんどのシートはページ昇順で印刷され、一部のシート(表紙に対応するシート)はPostScriptファイルで記述されたページの出力順序とは異なる順序で出力される。このようなジョブでは、最初に印刷するシートを除けば、残りのシートは記述された出力順序に従い印刷すればよい。
従って、記述された出力順序と異なる順序で印刷するために、例えばシートごとにPostScriptファイルを先頭ページから処理するように構成(以下、比較例という)したとすると、ごく一部のページ戻りのために、ジョブの大部分の処理効率が損なわれることになる。すなわち、このような構成では、ページ戻りを含むジョブの全シートでPostScriptファイルをオープンし直し、PostScriptファイルの先頭ページから処理を行う必要がある。なおページ戻りとは、あるページを出力した後に、PDLで記述された出力順序がこのページより前となるページを出力することを示す。
一部シートだけページが戻るジョブの他の例として、くるみ製本印刷ジョブ、および、排紙順指定印刷ジョブがある。くるみ製本は、カバーシートで本体シートをくるむように製本する方式である。くるみ製本印刷ジョブでは、カバーシートにPostScript内の最終ページを使用する場合がある。排紙順指定印刷ジョブは、ユーザによりページの排紙順(印刷順)が指定されたジョブである。
そこで本実施形態の情報処理装置は、まず、ジョブの設定などに基づきページの出力順序を判断し、各シートが特殊モードであるか、通常モードであるかを決定する。特殊モードは、ページ戻りの要因となるシートのモード(出力順序と異なる順序で出力するモード)を示す。通常モードは、特殊モード以外のシートのモードを示す。そして本実施形態の情報処理装置は、特殊モード、または、通常モードの最初のシートのみで、PostScriptファイルの先頭ページから処理を行う。これにより、ワイヤーバインドジョブ、くるみ製本印刷ジョブ、および、排紙順指定印刷ジョブのような大部分のシートをページ昇順で出力するPostScriptジョブのオーバーヘッドを減少させ、ユーザの生産性を向上させることが可能となる。
図1は、本実施形態の情報処理システムに含まれる各装置のハードウェア構成図の一例を示す図である。図1に示すように、情報処理システムは、情報処理装置(第1情報処理装置)としての画像形成装置100と、第2情報処理装置としてのホスト装置200と、がネットワーク300で接続された構成となっている。
画像形成装置100は、プリンタコントローラ2、操作表示パネル3、および、プリンタエンジン4等を備えている。画像形成装置100は、LAN(ローカルエリアネットワーク)等のネットワーク300を介してコンピュータ等のホスト装置200に接続されている。
ホスト装置200は、搭載するアプリケーションによって作成されたデータと印刷設定とから印刷ジョブを生成し、生成した印刷ジョブを画像形成装置100に送信する。印刷ジョブは、通常、任意のPDLとJDF(Job Definition Format:ジョブ定義形式)で記述された印刷データを含む。PDLは、ページ画像(ラスタライズされた画像)の描画内容を指示するための言語であり、PDF(Portable Document Format)、および、PostScriptなどがある。JDFは、ジョブチケットまたは作業指示書などとも呼ばれ、製本指示、集約指示、および、部数指示など、印刷の設定を指定するためのフォーマットである。
操作表示パネル3は、画像形成装置100を操作するのに必要な各種キーを備えるとともに、ディスプレイ(例えば、液晶ディスプレイ)およびLED(Light Emitting Diode)等のランプを備えている。操作表示パネル3は、操作キーから、画像形成装置100を利用した各種動作処理に必要な各種操作が行われる。ディスプレイは、操作キーから入力された命令および画像形成装置100からユーザに通知する各種情報を表示する。なお、ディスプレイは、タッチパネルが付加されていてもよく、この場合、ディスプレイ上に機能ボタンを表示して、機能ボタンによる操作入力を可能とする。
プリンタエンジン4は、例えば、電子写真式プリンタ、および、インクジェットプリンタ等のプリンタエンジンが使用される。プリンタエンジン4は、プリンタコントローラ2から渡される描画データ(画像データ)およびジョブ属性(制御信号)に基づいて、給紙部から送られてくる用紙、および、フィルム等の被記録媒体(以下、用紙という)に画像を印刷出力する。プリンタエンジン4は、カット処理(切断処理)、並び替え処理、重ねあわせ処理、ステイプル処理、および、パンチ処理等の後処理を行う後処理装置を備えていてもよい。プリンタエンジン4は、後処理部を備えていないときには、画像を印刷した用紙を排紙トレイ上に順番に重ねて排出する。
プリンタコントローラ2は、CPU(Central Processing Unit)11、ROM(Read Only Memory)12、RAM(Random Access Memory)13、DRAM(Dynamic Random Access Memory)14、ネットワークI/F(インタフェース)15、パネルI/F16およびエンジンI/F17等を備えている。
ネットワークI/F15は、ホスト装置200が接続されるネットワーク300に接続される。ネットワークI/F15は、CPU11の制御下で、ネットワーク300上の機器、例えば、ホスト装置200等との間で信号の授受を行い、ネットワーク300を介した通信を行う。
パネルI/F16は、操作表示パネル3が接続され、プリンタコントローラ2と操作表示パネル3との間で信号の授受を行う。
エンジンI/F17は、プリンタエンジン4に接続され、プリンタコントローラ2からプリンタエンジン4への制御信号および描画データ(画像データ)等のデータの出力、並びに、プリンタエンジン4からプリンタコントローラ2へのステータス信号等の各信号の授受を行う。
ROM12は、画像形成装置100の基本プログラム、本実施形態の画像処理方法(情報処理方法)を実行するプログラム、および、システムデータ等を記憶している。
RAM13は、CPU11のワークメモリとして利用され、各種データをCPU11の制御下で記憶する。
DRAM14は、ホスト装置200から受信した印刷データ、印刷設定情報、および、CPU11によってRIP(Raster Image Processor)処理された用紙1ページ分の画像データ等が展開される。
CPU11は、ROM12のプログラムに基づいて、RAM13をワークメモリとして利用しつつ、画像形成装置100の各部を制御して、画像形成装置100としての基本処理を実行するとともに、本実施形態の画像処理方法を実行する。また、CPU11は、ネットワークI/F15を介してホスト装置200から受信した印刷データおよび印刷設定情報を、DRAM14に保管させる。CPU11は、DRAM14に保管した印刷データに対して、印刷設定情報に基づいてRIP処理を施して、RIP処理結果の描画データ(画像データ)をDRAM14に展開する。RIP処理は、ページ記述言語で記述された印刷データを解析して、プリンタエンジン4が画像を印刷するための形式である画像データを生成する処理である。
図1の例では、画像形成装置100として情報処理装置が構成されているが、情報処理装置の構成方法はこれに限られるものではない。例えば、RIP処理までを実行する機能(プリンタコントローラ2の機能の一部または全部)を備えるDFE(Digital Front End)として情報処理装置を構成してもよい。この場合、DFEから出力される画像データに基づいて、プリンタエンジン4に相当する機能を備える画像形成装置が印刷を実行するように構成することができる。
図2は、本実施形態の画像形成装置100の機能構成の一例を示すブロック図である。図2に示すように、画像形成装置100は、ジョブ受信部101と、システム制御部102と、印刷管理部110と、画像処理部としてのRIP処理部103と、エンジン制御部104と、ジョブ記憶部121と、テーブル記憶部122と、ジョブ記憶部123と、結果記憶部124と、を備えている。
ジョブ受信部101は、ネットワーク300経由で印刷ジョブを受信する。
システム制御部102は、ジョブ受信部101を制御して、受信した印刷ジョブをジョブ記憶部121に記憶させる。また、システム制御部102は、印刷管理部110を制御して、印刷ジョブの印刷およびRIP処理を実行させる。
印刷管理部110は、印刷ジョブの印刷およびRIP処理を管理する。例えば印刷管理部110は、RIP処理部103にRIP処理を実行させる。印刷管理部110は、判定部111と、決定部112と、制御部としてのRIP制御部113と、を備えている。
判定部111は、印刷ジョブの種類を判定する。例えば判定部111は、印刷ジョブが、中綴じ印刷、平綴じ印刷、逆順印刷、ワイヤーバインド印刷、くるみ製本印刷、および、排紙順指定印刷であるか否かを判定する。
決定部112は、受信した印刷ジョブで印刷するシート(記録媒体)ごとに、特殊モードおよび通常モードのいずれかのモードとするかを決定する。決定部112は、例えば、テーブル記憶部122(後述)に記憶されるモード判定テーブルに設定される印刷ジョブの種類、印刷ジョブのページ数、カバー情報、カバーページの位置、および、ユーザが排紙順を指定したページの位置を参照して、各シートのモードを決定する。カバー情報は、カバーシートのいずれの面(表面、裏面、両面など)に印刷するかを表す情報である。カバーページの位置は、カバーシートに印刷するページの位置を表す。例えば決定部112は、複数のシートのうち第1シート(第1記録媒体)に割り当てるページの出力順序が、第1シートの次に印刷する第2シート(第2記録媒体)に割り当てるページの出力順序より後である場合に、第1シートのモードを特殊モードに決定する。言い換えると決定部112は、ページ戻りが生じるシートを特殊モードに決定する。
また、決定部112は、中綴じ印刷およびワイヤーバインドジョブ等のPDLに記述されている出力順序とは異なる順序でページをシートに配置する際に、いずれのシートにいずれのページを配置するかを決定する。
RIP制御部113は、決定されたページ配置に基づいてRIP処理を実行するように、RIP処理部103による各ページのRIP処理を制御する。RIP制御部113は、各シートのモードに応じて、RIP処理部103による少なくとも一部のページに対するRIP処理をスキップするか否かを制御する。本実施形態では、RIP制御部113は、PDLに記述された出力順序に従った順序で出力され、通常モードが決定されたページが割り当てられた複数のシートを単位としてRIP処理を実行するようにRIP処理部103を制御する。
RIP処理部103は、RIP制御部113の制御に従い、RIP処理を実行する。例えばRIP処理部103は、画像形成装置100が備える1個以上のRIP処理モジュールによりRIP処理を実行する。RIP処理モジュールは、例えば、RIP処理を実行する専用のハードウェア回路などにより実現される。RIP処理モジュールは、CPU11などのプロセッサにプログラムを実行させること、すなわちソフトウェアにより実現してもよい。
エンジン制御部104は、プリンタエンジン4を制御し、印刷を実行する。
ジョブ記憶部121は、ジョブ受信部101経由で受信した印刷ジョブを記憶する。
テーブル記憶部122は、決定部112が参照するモード判定テーブルを記憶する。モード判定テーブルは、ジョブ種類ごとに、いずれのシートが特殊モードであり、いずれのシートが通常モードであるかを定義したテーブルである。
図3は、モード判定テーブルのデータ構造の一例を示す図である。図3に示すように、モード判定テーブルは、ジョブの種類と、各シートのモードと、を対応づけて記憶する。
ジョブの種類は、例えば、中綴じ印刷、平綴じ印刷、逆順印刷、ワイヤーバインド印刷、くるみ製本印刷、および、排紙順指定印刷などのページ戻りが生じうる印刷、並びに、それ以外の通常印刷などを含む。モードの「Normal」は、通常モードであることを示す。「Special」は、特殊モードであることを示す。例えばワイヤーバインド印刷では、1シート目のみが「Special」に設定され、残りの2シート目から最終シートまでが「Normal」に設定される。例えばくるみ製本印刷では、カバーシートが「Special」に設定され、その他の本文を印刷するシート(本文シート)が「Normal」に設定される。例えば排紙順指定印刷では、排紙順が指定されたシート(排紙順指定シート)が「Special」に設定され、その他のシートが「Normal」に設定される。
ジョブ記憶部123は、印刷管理部110が印刷ジョブを管理するジョブ管理データベースを記憶する。図4は、ジョブ管理データベースのデータ構造の一例を示す図である。図4に示すように、ジョブ管理データベースは、印刷ジョブの開始および終了となるシート、並びに、各シートに割り当てるページなどを管理する。BOJシートは、印刷ジョブの開始を示すシートのデータである。EOJシートは、印刷ジョブの終了を示すシートのデータである。各データシート(図4の例では、データシート1~5)は、実際に印刷されるシートのデータを示す。各データシートには、割り当てられるページ、および、決定されたモードを示す情報が付与される。
結果記憶部124は、RIP処理部103によるRIP処理の結果(画像データ)を記憶する。
上記各部(ジョブ受信部101、システム制御部102、印刷管理部110、RIP処理部103、および、エンジン制御部104)は、例えば、1または複数のプロセッサにより実現される。例えば上記各部は、CPU11などのプロセッサにプログラムを実行させること、すなわちソフトウェアにより実現してもよい。上記各部は、専用のIC(Integrated Circuit)などのプロセッサ、すなわちハードウェアにより実現してもよい。上記各部は、ソフトウェアおよびハードウェアを併用して実現してもよい。複数のプロセッサを用いる場合、各プロセッサは、各部のうち1つを実現してもよいし、各部のうち2以上を実現してもよい。
各記憶部(ジョブ記憶部121、テーブル記憶部122、ジョブ記憶部123、および、結果記憶部124)は、フラッシュメモリ、メモリカード、RAM、HDD(Hard Disk Drive)、および、光ディスクなどの一般的に利用されているあらゆる記憶媒体により構成することができる。各記憶部は、物理的に異なる記憶媒体としてもよいし、物理的に同一の記憶媒体の異なる記憶領域として実現してもよい。さらに記憶部のそれぞれは、物理的に異なる複数の記憶媒体により実現してもよい。記憶部のそれぞれは、物理的に異なる複数の記憶媒体により実現してもよい。
ここで、PostScriptによるRIP処理の例、および、ページのスキップについて説明する。図5は、各ページに1本の線を引く、4ページのPostScriptファイルの例を示す図である。図5のファイルをPostScriptインタプリタ(RIP)で処理すると、図6に示す4ページのシートが印刷される。
「moveto」は、現在の座標を指定する命令、「lineto」は、現在の座標から指定した座標までパスを構築する命令である。「stroke」は、構築したパスに線を引く命令である。従って、図5の3行目から5行目までの命令は、「(100,200)の点から(300,400)の点まで実線を引く」という命令になる。「showpage」は、それまで記述した内容をページとして描画する命令である。図5は、「showpage」が4回記述されているので、4ページ分の描画を指定していることになる。
PostScriptは、インタプリタ型のプログラミング言語としての側面も持っている。そのため、特定のページだけを抽出して処理するということはできず、先頭ページから対象のページまで順に情報を読み込み、解釈して画像として描画する必要がある。
図5のPostScriptが全部で何ページあるかという情報は、ファイルの先頭から終端まで読み込んで処理していかなければ分からない。また、特定のページの情報がファイルのどこに記述されているかという情報も、ファイル先頭から順に読み込んで処理していかなければ分からない。図5では、3ページ目の情報は13行目から16行目に記述されている。これは6行目と11行目にそれぞれ「showpage」が指定されているということを理解した上で初めて分かる情報である。
このような仕様では、特定のページのみRIPする場合に効率化できないという問題がある。例えばRIP処理時間の効率化のために、2つのPostScriptインタプリタ(以下、PSI-1、PSI-2とする)で1つのPostScriptファイルを処理するように構成したとする。この場合、単一のPostScriptインタプリタを用いる構成と比較して、全ページの処理完了までの時間が短くなることが期待される。
例えば10ページのデータを含むジョブについて、PSI-1は1、3、5、7、9ページを処理し、PSI-2は2、4、6、8、10ページを処理するとする。なお、RIP処理を実行したページから順に印刷することで印刷完了までの時間が短くできるため、特別な理由がなければ印刷順にページがRIP処理できるようスケジューリングする。仮にPSI-1が1~5ページを処理し、PSI-2が6~10ページを処理するとした場合、PSI-1が5ページのRIP処理を完了するまで、PSI-2の結果が印刷できないことになる。
PSI-1は、3ページ目を処理する際に2ページ目も読み込んで処理する必要がある。PSI-2も、2ページ目を処理する際に1ページ目を読み込んで処理する必要がある。以降同様に続き、結局PSI-1は1~9ページ、PSI-2は1~10ページ目を読み込んで処理する必要があり、全ページのRIP処理が完了するまでの時間は単一のPostScriptインタプリタを用いる場合と変わらなくなる。
このような問題を解決するための方法として、上述のようなページスキップの手法が提案されている。この技術では、PostScriptファイルを先頭ページから読み込む必要があるが、印刷するページ(対象ページ)まで画像のレンダリングは行わず、ページ情報の抽出(解釈)のみが行われる。
例えば図5で3ページ目のRIP処理を行う場合、本来は、1ページ目と2ページ目をレンダリングする必要はない。しかし通常の処理方法では、1ページ目と2ページ目をレンダリングし、結果をメモリまたはHDDに出力した後、3ページ目のレンダリングが可能となる。
このような場合にページスキップを適用すると、1ページ目と2ページ目はレンダリングされず、ページ解釈のみが行われる。通常、RIP処理時間のうち多くはレンダリングの時間が占めており、ページ解釈処理はより少ない時間で実行可能である。10ページを2つのPostScriptインタプリタで処理する場合も、各PostScriptインタプリタは半分の5ページはページスキップできる。従って、単一のPostScriptインタプリタで処理する場合と比較して、5ページのレンダリング処理時間の分、効率化が可能となる。
次に、ワイヤーバインド印刷について説明する。ワイヤーバインド印刷は、用紙の束に対してパンチで穴を開け、その穴に金属製のワイヤを歯の形で通して束をまとめる印刷方式である。ワイヤーバインド印刷は、冊子およびカレンダーのような製本物の作成に用いられる。
図7および図8は、それぞれ、ワイヤーバインドにより用紙をまとめた結果の表面、および、裏面を示す図である。図8に示すように、歯の隙間が見えていると、表表紙をめくって裏表紙の後に重ねた場合などに、意図せぬひっかかりが生じる可能性がある。
図9および図10は、ワイヤーバインド印刷における各シートの印刷順について説明する図である。
図9は、図8に示すような隙間を解消するための方法を示す。図9の例では、裏表紙に相当する、PostScriptファイル内の最終ページを含むシートBCが最初に印刷される。その後、表紙に相当するページを含むシートFC、シートS1、シートS2、および、シートS3の順に各シートが出力される。各シートが出力され、金属ワイヤによって各シートがまとめられた後、最初に印刷されたシートBCがめくられて、最後に印刷されたシートS3の後に置かれる。これにより、ワイヤの歯の隙間を裏表紙と本文最終ページの隙間に隠すことができる。
図10は、10ページのデータをワイヤーバインド印刷するときに、各シートに割り当てられるページの例を示している。図10の例では、各シートの両面にページが印刷される。この場合、各シートには、以下のように各ページが配置される。
1シート目:9ページ目、10ページ目
2シート目:1ページ目、2ページ目
3シート目:3ページ目、4ページ目
4シート目:5ページ目、6ページ目
5シート目:7ページ目、8ページ目
PostScriptを処理するときは、通常、画像形成装置100は、最初にPostScriptファイルをオープンし、先頭から順番に読み進めながら印刷を実行していき、全ページおよび全シートの処理が終わったら、PostScriptファイルをクローズして印刷を終了する。
上記の出力順でPostScriptファイルを処理していくと、2シート目に配置される1、2ページ目は、1シート目に配置されている9、10ページ目よりもすべて前のページである。従って、このジョブを処理するためには、一度、全ページのRIP処理を完了してから出力する順序を変更するか、シートごとに「PostScriptファイルのオープン→処理対象ページまでスキップ→処理対象ページのRIP処理→最終ページまでスキップ→PostScriptファイルのクローズ」という処理が必要となる。
次に、くるみ製本印刷について説明する。くるみ製本は、本の中身となる印刷物を大きなカバーシートでくるみ、冊子の背中部分を糊付けして綴じる製本方式のことである。カバーシートは本文シート全体をくるむため、通常そのサイズは本文シートの2倍以上となる。
図11は、くるみ製本印刷の製本手順の例を説明する図である。図11のように、例えばA4サイズの本文シートに対してカバーシートのサイズはA3以上のサイズとなる。くるみ製本を行う後処理装置は、本の背中部分を除く三辺を断裁する機構を有する。この機構は、カバーシートが本文シートの2倍よりも大きい場合はカバーシートで本文シートをくるんだ後に三辺を断裁し、本文シートのサイズに調整する。
くるみ製本では、カバーシートへの画像の印刷もよく行われる。またカバーシートの表面への印刷、カバーシートの裏面への印刷、および、カバーシートの両面への印刷がそれぞれ行われる可能性がある。またカバーシートに印刷する画像についても、カバーシート自体のサイズ(図11の例ではA3)の画像を用意するのか、それとも本文シートのサイズと同じサイズ(図11の例ではA4)の画像を用意するのかといった選択肢がある。
図12は、PDL中でカバーシート画像がどのように置かれるかを表すパターンの例を示す図である。パターンAは、カバーシートの両面に対する画像がカバーシートのサイズで作成され、それらがPDLの1ページ目および2ページ目に配置されることを示す。パターンBは、カバーシートの表面に対する画像がカバーシートのサイズで作成され、それらがPDLの最終ページに配置されることを示す。パターンCは、カバーシートの両面に対する画像が本文シートのサイズで作成され、それらがPDLの1ページ目~4ページ目に配置されることを示す。
くるみ製本を行う後処理装置へ出力可能な印刷システム(情報処理システム)では、ユーザが作成したPDLの中で、どのページをくるみ製本のカバーシートに印刷する画像として使用するかが決められている。例えば「1ページ目がカバーシートの表、2ページ目がカバーシートの裏」などのように、カバーシートに印刷するページ(カバーページ)が決められている。
従って基本的にはユーザはこの印刷システムの仕様を理解してPDLを作成する必要がある。しかし実際の現場では印刷を実施するオペレータがPDLを作成するわけではないので、印刷システムに合わせたPDLが確実に入稿されるかは分からない。従って適切な印刷が行われなかったり、オペレータによるPDL編集が必要(PDL編集が可能な場合)であったりといった問題が発生しうる。この問題を解決するための方法が、例えば特許文献2で述べられている。特許文献2ではユーザが表紙となるページに対して製本表紙の属性を設定できるようにすることで、上記の問題を解決している。
図13は、くるみ製本印刷における各シートの印刷順について説明する図である。図13は、最初にくるみ製本のカバーシートを印刷する印刷システムにおいて、パターンBのPDLを印刷する際に各シートに割り当てられるページの例を示している。この例では、各シートには、以下のように各ページが配置される。
1シート目:9ページ目(カバー表)
2シート目:1ページ目、2ページ目
3シート目:3ページ目、4ページ目
4シート目:5ページ目、6ページ目
5シート目:7ページ目、8ページ目
図10のワイヤーバインド印刷と同様に、2シート目に配置されている1ページ目、2ページ目は1シート目に配置されている9ページ目よりも前のページである。カバーページは特許文献2の方法で決定できるが、この画像がPostScriptで作成されているならば、ワイヤーバインド印刷時と同様に、シートごとに「PostScriptファイルオープン→処理対象ページまでスキップ→処理対象ページのRIP処理→最終ページまでスキップ→PostScriptファイルのクローズ」という処理が必要となる。
次に、本実施形態におけるRIP制御処理について図14~図19を用いて説明する。図14は、RIP制御処理の一例を示すフローチャートである。図15は、10ページのワイヤーバインド印刷を行うPostScriptジョブにおけるページ処理順序の判定方法の例を説明するための図である。図16は、「カバー表面→本文8ページ」というページ順で構成された9ページのくるみ製本印刷を行うPostScriptジョブにおけるページ処理順序の判定方法の例を説明するための図である。図17および図18は、3ページ目と7ページ目を入れ替えるよう指定した10ページの排紙順指定印刷を行うPostScriptジョブにおけるページ処理順序の判定方法の例を説明するための図である。
図14に示すように、判定部111は、受信されたPostScriptデータから、ジョブの種類、および、カバー情報を抽出する(ステップS101)。PostScriptデータは、PostScriptによりジョブの情報が記載されたデータである。
図15に示すようなPostScriptデータ1201を受信した場合、判定部111は、ジョブの種類が「ワイヤーバインド印刷」であると判定する。
図16に示すようなPostScriptデータ1601を受信した場合、判定部111は、ジョブの種類が「くるみ製本印刷」であると判定するとともに、カバーシートの表面のみに印刷するというカバー情報を抽出する。
図17に示すようなPostScriptデータ1701を受信した場合、判定部111は、ジョブの種類が「通常」であると判定する。排紙順指定印刷では、PostScriptデータは通常ジョブと変わらないためである。
ジョブの種類の判定方法の詳細については図20~図26を用いて後述する。
次に、判定部111は、JDFデータから、ジョブの種類、カバー情報、PDL中のカバーページの位置、および、排紙順情報を抽出する(ステップS102)。図15の例では、JDFデータが指定されていないため判定部111は何も行わない。図16の例では、判定部111は、JDFデータ1602から、PDL中のカバーページの位置が最終ページであると判定する。図17の例では、判定部111は、JDFデータ1702から、ジョブの種類が「排紙順指定印刷」であると判定するとともに、3ページ目と7ページ目を入れ替えるという排紙順情報を抽出する。
なお、カバーページの位置および排紙順情報の抽出方法の詳細については、図23および図24を用いて後述する。
決定部112は、判定部111が判定したジョブ種類、カバー情報、カバーページ位置、排紙順情報、および、モード判定テーブルの情報から、各シートに割り当てるページおよび各シートのモードを決定する(ステップS103)。
図15に示すワイヤーバインド印刷では、1シート目に最終2ページが割り当てられ、2シート目に1、2ページ、3シート目に3、4ページ、のように残りのページが順に割り当てられる。決定部112は、例えば図3に示すようなモード判定テーブルを参照し、ワイヤーバインド印刷は1シート目が特殊モードであり、それ以外のシートは通常モードであると決定する。
図16に示すくるみ製本印刷では、決定部112は、判定部111により抽出(判定)された「くるみ製本印刷」、「カバーシート表面印刷」、および、「PDL中で最終ページがカバー」という情報と、モード判定テーブルの情報とから、各シートに割り当てるページおよびシートのモードを決定する。例えば決定部112は、モード判定テーブルから、くるみ製本印刷はカバーシートが特殊モードであり、それ以外のシートは通常モードであると決定する。また決定部112は、JDFデータから抽出した情報より、カバーページの位置が判断できる。図16の例では、決定部112は、1シート目が特殊モードであり、それ以外のシートは通常モードであると決定する。また決定部112は、9ページ目をカバーシートに印刷すると決定する。
図17に示す排紙順指定印刷では、決定部112は、決定部112は、判定部111により抽出(判定)された「排紙順指定印刷」、および、「3ページ目と7ページ目を入れ替え」という情報と、モード判定テーブルの情報とから、各シートに割り当てるページおよびシートのモードを決定する。例えば決定部112は、モード判定テーブルから、排紙順指定印刷は排紙順指定シートが特殊モード、それ以外のシートは通常モードであると決定する。また決定部112は、JDFデータから抽出した情報より、排紙順指定シートが判断できる。図17の例では、決定部112は、2シート目と4シート目が特殊モードであり、それ以外のシートは通常モードであると決定する。
図14に戻り、決定部112は、決定した情報を元に各シートを生成し、ページとモードをそれぞれ割り当てる(ステップS104)。なお図4は、図15に示す例に対して設定されるジョブ管理データベースを示している。図4に示すように、データシート1は特殊モードが設定され、それ以外のデータシートは通常モードが設定される。データシート1には9、10ページが割り当てられ、データシート2~5には、1~8ページのうち2ページずつが順に割り当てられる。
RIP制御部113は、各シートに設定されたページおよびモードに従いRIP処理を実行するようにRIP処理部103を制御する(ステップS105)。RIP制御部113の処理については後述する。
なお、モード判定テーブルは、各シートとモードとを直接対応づけた情報を含む必要はない。例えばモード判定テーブルが、ページ(またはシート)の出力順序のみを定めた情報を含んでもよい。例えばモード判定テーブルは、「ワイヤーバインド印刷=最終2ページを最初のシートとして印刷する。以降先頭ページから昇順に印刷する」などのようにページの出力順序を定める情報を含んでもよい。
この場合、決定部112は、ジョブ種類に対するページの出力順序に応じて、各シートのモードを決定する。例えば決定部112は、上記のような情報および印刷するページ数とから、各シート間でページ戻りが発生するかを判断し、特殊モードか通常モードかを決定する。
このようにページ数を判断の要素に含めることで、柔軟に効率化を行うことができる。例えば、図19に示すような10ページの中綴じ印刷を行う場合、1シート目と2シート目の間でページ戻りが発生しない。従って、これらを通常モードと扱うことで、全シートを特殊モードとして扱うよりも効率を向上させることができる。
次に、ジョブの種類の判定方法の詳細について説明する。図20~図26は、ジョブ種類の判定方法を説明するための図である。図20は、ワイヤーバインド印刷を指定したジョブのJDFの記述例を示す。なお図20は、ワイヤーバインド印刷に関連する要素のみ記述している。
JDFには、印刷ジョブに対する指示内容が記述される。「ResourcePool」は、印刷を実現するための要素の集合を定義する。「LayoutPreparationParams」は、ページの配置に関する要素である。「NumberUp」は、用紙の面に対していくつページを載せるかを指定する。図20では「1-up」を意味する「1 1」が指定されている。「Sides」は、片面印刷か、両面印刷かを指定する。図20では両面印刷が指定されている。「WireCombBindingParams」は、ワイヤーバインドに関連する要素である。「WireCombBindingParams」は、属性として「NoOp」を持っており、この値が「false」であればワイヤーバインド処理が有効となる。
図21は、中綴じ印刷を指定したジョブのJDFの記述例である。図21は、中綴じ印刷に関連する要素のみ記述している。
図21では「NumberUp」に「2-up」を意味する「1 2」が指定されている。「FinishingOrder」は、製本する際に、紙の折りと重ねのどちらを先に行うかを指定する。中綴じ印刷は、紙を重ねてから折る方式であるため、図21の例では「GatherFold」が指定されている。「PageDistributionScheme」は「N-up」のときにどのように各ページを用紙に配置するかを指定する。図21の例では中綴じに対応する「Saddle」が指定されている。「N-up」で用紙の排紙順にページを載せる場合、「Sequential」が指定される。
図22は、平綴じ印刷を指定したジョブのJDFの記述例である。図22は、平綴じ印刷に関連する要素のみ記述している。図21と異なるのは「FinishingOrder」のみである。平綴じ印刷は、紙を折ってから重ねる方式のため、図22の例では「FoldGather」が指定されている。
図23は、くるみ製本印刷を指定したジョブのJDF記述例である。図23は、くるみ製本印刷に関連する要素のみ記述している。
「ResourceLinkPool」は、ページ間などジョブ内の特定の範囲で属性が異なる場合などに、その範囲に対する「ResourcePool」内の共通利用する属性への参照の集合を定義する。「ComponentLink」は、「ResourceLinkPool」内の参照の定義の1つであり、出力物に関わる属性の参照とその情報を指定する。「ComponentLink」が参照するのは「Component」である。指定する「Component」は「rRef」で指定する。図23では「ID」が「C1」である「Component」が指定されている。「ComponentLink」の「CombinedProcessIndex」は「Component」の処理の種類を表している。「CombinedProcessIndex」は、「JDF」の「Types」で羅列した値のインデックスを指定する。インデックスは、例えば、1つ目の「LayoutPreparation」がインデックス=0であり、以降1ずつ可算されたインデックスの値が割り当てられる。図23では「CombinedProcessIndex=9」が指定されているため、1行目の記載内容より「CoverApplication」を指定していることになる。
「ProcessUsage」は、「Component」の使用用途を表す。図23では「Cover」が指定されている。「AmountPool/PartAmount/Part」の「RunIndex」は、「Component」の適用対象ページを示す。例えば、1ページ目=0、2ページ目=1と増えていき、最終ページの1つ前のページ=-2、最終ページ=-1となるように適用対象ページが指定される。図23では最終ページ(-1)が指定されている。以上まとめると、図23の「ComponentLink」は、カバーとして使用される最終ページを示す「Component」への参照を表している。
「CoverApplicationParams」は、くるみ製本印刷に関する要素である。くるみ製本を行う場合、「CoverApplicationParams」の指定は必須だが、カバーシートに画像を印刷しない場合は「ComponentLink/Component」によるカバー情報指定は不要である。
図24は、排紙順指定印刷を指定したジョブのJDF記述例である。図24は、排紙順指定印刷に関連する要素のみ記述している。なお図24は、図18のように3ページ目と7ページ目を入れ替える場合の記述例となっている。
「JDF xmlns="http://www.CIP4.org/JDFSchema_1_1"」は、CIP4(Cooperation for Integration of Processes in Prepress, Press, and Postpress)に準拠するJDFチケットであることを示す。「xmlns:A="www.hhh.com/schema/aaa"」は、CIP4準拠外の各印刷業者/ベンダーが独自に拡張したJDFタグ定義を示す。
図24の例の場合、JDF内の「A:」から始まるタグは、全て拡張タグになる。「A:SpecifiedOrder」は、ユーザが指定したページ排紙順を記載するために仮に定めた要素である。「RunIndex」により、順に各ページの排紙順が指定される。「A:SpecifiedOrder」は、本実施形態で独自に定義した要素である。ページ排紙順の指定方法はこれに限られず、ページの排紙順を指定できれば他の方法で指定してもよい。「RunIndex」は、JDF仕様で定義された要素である。
上述のように、排紙順指定印刷では、モード判定テーブルで排紙順が指定されたシート(排紙順指定シート)が特殊モードとなる。排紙順指定シートは、例えば「RunIndex」での指定が昇順でなくなることから判断できる。なお図18の例では、1ページ~10ページは、それぞれ「RunIndex」=0~9に対応する。「RunIndex="0~1 6 3~5 2 7~9"」の場合、前のページからの昇順となっていない「RunIndex」は"3"と"2"である。従って判定部111は、「RunIndex」=3および2に対応する4ページおよび3ページをそれぞれ含む2シート目および4シート目が、排紙順指定シートと判定できる。
判定部111は、このようなJDFの記述ルールを元に、いずれのジョブ種類が指定されているかを判定する。さらに判定部111は、くるみ製本印刷ではカバーシートの印刷面(カバー情報)、および、カバーページの位置を判定し、排紙順指定印刷では各ページの排紙順を判定する。
印刷ジョブへの指示は、PostScriptでも行うことができる。JDFとPostScriptのそれぞれで関連する要素が指定されていた場合、例えばJDFの指定が優先される。
図25は、10ページのワイヤーバインド印刷を行う印刷ジョブのPostScriptによる記述例を示す図である。
1行目は、本データがPostScript形式であることを示す。2行目から8行目までは、ファイルの情報を記述している。それぞれ文書タイトル、作成者、作成日時、画像サイズ、ページ数、画像方向、および、PostScript言語レベルを記述している。
11行目から13行目がワイヤーバインド印刷に関連する指定である。「/Bind 1」はバインドオプションが有効であることを示す。「/BindDetails << /Type 10 /BindType 2 >>」は、バインドオプションの種類がワイヤーバインドであることを示す。
「BindType」の値を他の値(例えば“1”)に変えれば、くるみ製本印刷など他のバインドオプションになる。くるみ製本印刷の場合、さらに、「BindCover」により、カバーシートの印刷面が指定される。例えば「BindCover」の値が“0”であればカバーシート印刷なし、“1”であれば表面印刷、“2”であれば裏面印刷、および、“3”であれば両面印刷であることを示す。
15行目から24行目は1ページ目に描画する内容を記述している。26行目から35行目は2ページ目に描画する内容を記述している。以降、同様にページ数分の描画内容が記述される。ファイルの最終行には、ファイル終端を示す「EOF」が記述される。
次に、判定部111によるジョブ種類の判定処理の詳細について説明する。図26は、ジョブ種類の判定処理の一例を示すフローチャートである。判定部111は、図20~25で記述したようなJDFまたはPostScriptのフォーマットに従い抽出した情報を元に、最終的なジョブ種類を決定する。
判定部111は、JDFで印刷方法が指定されているか否かを判定する(ステップS201)。JDFで印刷方法が指定されている場合(ステップS201:Yes)、JDFにより指定された印刷方法に従い以下のようにジョブ種類が判定される。例えば判定部111は、JDFでワイヤーバインド印刷が指定されているか否かを判定する(ステップS202)。ワイヤーバインド印刷が指定されている場合(ステップS202:Yes)、判定部111は、ジョブ種類はワイヤーバインド印刷であると決定する(ステップS206)。ワイヤーバインド印刷が指定されていない場合(ステップS202:No)、判定部111は、JDFで中綴じ印刷が指定されているか否かを判定する(ステップS203)。
中綴じ印刷が指定されている場合(ステップS203:Yes)、判定部111は、ジョブ種類は中綴じ印刷であると決定する(ステップS207)。中綴じ印刷が指定されていない場合(ステップS203:No)、判定部111は、JDFで平綴じ印刷が指定されているか否かを判定する(ステップS204)。
平綴じ印刷が指定されている場合(ステップS204:Yes)、判定部111は、ジョブ種類は平綴じ印刷であると決定する(ステップS208)。平綴じ印刷が指定されていない場合(ステップS204:No)、判定部111は、JDFでくるみ製本印刷が指定されているか否かを判定する(ステップS205)。
くるみ製本印刷が指定されている場合(ステップS205:Yes)、判定部111は、ジョブ種類はくるみ製本印刷であると決定する(ステップS209)。くるみ製本印刷が指定されていない場合(ステップS205:No)、判定部111は、ジョブ種類は排紙順指定印刷であると決定する(ステップS210)。
ステップS201で、JDFで印刷方法が指定されていない場合(ステップS201:No)、判定部111は、PostScriptで印刷方法が指定されているか否かを判定する(ステップS211)。PostScriptで印刷方法が指定されている場合(ステップS211:Yes)、PostScriptにより指定された印刷方法に従い以下のようにジョブ種類が判定される。例えば判定部111は、PostScriptでワイヤーバインド印刷が指定されているか否かを判定する(ステップS212)。
ワイヤーバインド印刷が指定されている場合(ステップS212:Yes)、判定部111は、ジョブ種類はワイヤーバインド印刷であると決定する(ステップS217)。ワイヤーバインド印刷が指定されていない場合(ステップS212:No)、判定部111は、PostScriptで中綴じ印刷が指定されているか否かを判定する(ステップS213)。
中綴じ印刷が指定されている場合(ステップS213:Yes)、判定部111は、ジョブ種類は中綴じ印刷であると決定する(ステップS218)。中綴じ印刷が指定されていない場合(ステップS213:No)、判定部111は、PostScriptで平綴じ印刷が指定されているか否かを判定する(ステップS214)。
平綴じ印刷が指定されている場合(ステップS214:Yes)、判定部111は、ジョブ種類は平綴じ印刷であると決定する(ステップS219)。平綴じ印刷が指定されていない場合(ステップS214:No)、判定部111は、PostScriptでくるみ製本印刷が指定されているか否かを判定する(ステップS215)。
くるみ製本印刷が指定されている場合(ステップS215:Yes)、判定部111は、ジョブ種類はくるみ製本印刷であると決定する(ステップS220)。くるみ製本印刷が指定されていない場合(ステップS215:No)、判定部111は、ジョブ種類は排紙順指定印刷であると決定する(ステップS221)。
ステップS211で、PostScriptで印刷方法が指定されていない場合(ステップS211:No)、判定部111は、ジョブ種類は通常印刷であると決定する(ステップS216)。
次に、RIP制御部113によるRIP制御処理について説明する。図27は、RIP制御処理の一例を示すフローチャートである。なお図27は、あるデータシート1枚が印刷される際のフローチャートを表している。実際の印刷では、例えば複数のデータシートに対するRIP処理が並列で実行される。
RIP制御部113は、データシートが特殊モードであるか、または、通常モード群のうち最初のシートであるかを判定する(ステップS301)。データシートが特殊モードでなく、かつ、通常モード群のうち最初のシートでない場合(ステップS301:No)、RIP制御部113は、ステップS306に進む。
データシートが特殊モードであるか、または、通常モード群のうち最初のシートである場合(ステップS301:Yes)、RIP制御部113は、RIP処理モジュールの獲得をRIP処理部103に要求する(ステップS302)。画像形成装置100は、1以上のRIP処理モジュールを持っている。RIP制御部113は、それらのRIP処理モジュールのうち、いずれを使うのかをRIP処理部103に確認する。
RIP制御部113は、:RIP処理部103から、RIP処理モジュールの獲得通知を受信したか否かを判定する(ステップS303)。受信していない場合(ステップS303:No)、受信されるまで待機する。獲得通知を受信した場合(ステップS303:Yes)、RIP制御部113は、PostScriptファイルの処理を開始することを、RIP処理部103に通知する(ステップS304)。RIP制御部113は、PostScriptファイルをRIP処理部103に送信する(ステップS305)。
RIP制御部113は、決定部112により決定された、各データシートに配置するページを示す情報を取得する(ステップS306)。RIP制御部113は、データシートに配置される各ページの情報をRIP処理部103に通知し、ページの処理を依頼する(ステップS307)。データシートには複数ページが配置されうるので、RIP制御部113は、1つのメッセージで全ページ分送ってもよいし、ページの数だけメッセージを送ることで、ページ処理依頼としてもよい。
RIP制御部113は、依頼した全ページに対する処理の完了通知を受信したか否かを判定する(ステップS308)。受信していない場合(ステップS308:No)、RIP制御部113は、受信するまで待機する。受信した場合(ステップS308:Yes)、RIP制御部113は、データシートの印刷要求をエンジン制御部104に出力する(ステップS309)。
RIP制御部113は、データシートが特殊モードであるか、または、通常モード群のうち最後のシートであるか、を判定する(ステップS310)。特殊モードでない、かつ、通常モード群のうち最後のシートでない場合(ステップS310:No)、RIP制御処理を終了する。
特殊モードであるか、または、通常モード群のうち最後のシートである場合(ステップS310:Yes)、RIP制御部113は、PostScriptファイルの処理を終了することを、RIP処理部103に通知する(ステップS311)。RIP制御部113は、RIP処理モジュールの解放をRIP処理部103に通知する(ステップS312)。
このように、本実施形態によれば、ステップS301の判定結果に応じてステップS302~ステップS305の処理を省略でき、ステップS310の判定結果に応じてステップS311~ステップS312の処理を省略できる。これに対して例えば比較例では、データシートごとにこれらの処理を逐一行う必要があった。なお、比較例および本実施形態によるRIP制御処理の相違については、以下の図30-1、図30-2、図31-1および図31-2でさらに説明する。
次に、ワイヤーバインド印刷時のデータシートの扱いの例について説明する。図28は、本実施形態における各ページの処理順序の例について説明する図である。10ページの印刷ジョブを記述したPostScriptファイルを用いてワイヤーバインド印刷した際のそれぞれのデータシートが、比較例と本実施形態とでそれぞれどのように扱われるのかを、図28を用いて説明する。
上記のようにPostScriptは、言語仕様として、PostScriptファイルの先頭ページから順々にしか処理することはできない。各ページに対して「処理する」、または、「スキップする」を選択することは可能であるが、前のページに戻って処理するということは不可能である。比較例では、データシートごとにPostScriptファイルをオープンおよびクローズすることで、印刷するページの順番が先頭ページから順々でない場合でも印刷が可能となる。
10ページのワイヤーバインド印刷を行う例では、図15に示すように、1シート目は特殊モード、2シート目以降は通常モードとなる。
1シート目は特殊モードなので、比較例と本実施形態で処理は変わらない。RIP制御部113は、PostScriptファイルを1シート目専用にオープンする。このシートに配置するページは9ページ目と10ページ目なので、RIP制御部113は、1ページ目から8ページ目までのページをスキップする。RIP制御部113は、続いて9ページ目と10ページ目のRIP処理を行う。
2シート目も通常モードの最初のシートなので、PostScriptファイルの処理は比較例とほぼ同様である。RIP制御部113は、PostScriptファイルをオープンし、先頭から順に1ページ目と2ページ目をRIP処理する。比較例では、2ページ目の処理を終えたらすぐにPostScriptファイルをクローズしてもよいし、10ページ目まで順々にスキップする処理を終えてからクローズしてもよい。
一方、本実施形態では、2ページ目以降を次のシートで使う可能性があるので、RIP制御部113は、通常モードではページスキップを行わない。またRIP制御部113は、PostScriptファイル自体も他の通常モードのシートで続きから処理するのでクローズしない。
3シート目は通常モードの中間シートである。本実施形態では既にPostScriptファイルはオープンされ、2ページ目まで処理完了の状態である。従ってRIP制御部113は、引き続き3ページ目と4ページ目を処理する。比較例ではPostScriptファイルを3シート目専用にオープンし、1ページ目と2ページ目をスキップして、3ページ目と4ページ目を処理する。その後、PostScriptファイルをクローズする。
4シート目も通常モードの中間シートであるため、3シート目と同様である。本実施形態では既にPostScriptファイルはオープンされ、4ページ目まで処理完了の状態である。従ってRIP制御部113は、引き続き5ページ目と6ページ目を処理する。比較例ではPostScriptファイルを4シート目専用にオープンし、1ページ目から4ページ目までをスキップして、5ページ目と6ページ目を処理する。その後、PostScriptファイルをクローズする。
5シート目は最後のシートである。本実施形態では既にPostScriptファイルはオープンされ、6ページ目まで処理完了の状態である。従ってRIP制御部113は、引き続き7ページ目と8ページ目を処理する。ジョブ最後のシートなので、RIP制御部113は、その後PostScriptファイルをクローズする。比較例ではPostScriptファイルを5シート目専用にオープンし、1ページ目から6ページ目までをスキップして、7ページ目と8ページ目を処理する。その後PostScriptファイルをクローズする。
このように、本実施形態では通常モードのシートではPostScriptファイルを前のシートの続きから処理することができ、処理に時間のかかるページスキップは発生しない。なお中綴じ印刷については全シートが特殊モードとなるので、比較例と本実施形態とPostScript処理は変わらない。
図29は、本実施形態におけるRIP処理部103の各ページの処理について説明する図である。図29は、図28と同様に、10ページのワイヤーバインド印刷を実行する際にRIP処理部103が比較例と本実施形態でそれぞれどのように各ページを処理するかを説明する図である。なお、図29の「処理n」(nは1~5)のそれぞれは、例えば、RIP処理部103が獲得したRIP処理モジュールが実行する処理を表す。
比較例は、シートごとに必ずPostScriptを先頭ページから処理する。またシートに含まれるページ以外はすべてスキップされる。RIP処理モジュールは、シートごとにオープンおよびクローズされる必要がある。結果として、計40回のページスキップと、計5回のPostScriptファイルのオープンおよびクローズが発生する。
本実施形態では、特殊モードであるページ9および10の処理は変わらないが、通常モードであるページ1~8はページ戻りが発生せず連続して処理することができる。従ってページスキップは最後のページ9および10のみで発生する。PostScriptファイルのオープンおよびクローズも通常モードの開始前後のみでよい。結果として、計10回のページスキップと、計2回のPostScriptファイルのオープンおよびクローズが発生する。
次に、比較例および本実施形態によるRIP制御処理の具体例について説明する。図30-1、図30-2は、ワイヤーバインド印刷の比較例での実現方法を示すシーケンス図である。なお、本実施形態の印刷管理部110、RIP処理部103、および、エンジン制御部104に相当する比較例の機能部を、それぞれ印刷管理部110b、RIP処理部103b、および、エンジン制御部104bとして説明する。
印刷ジョブの処理が開始されると、印刷管理部110bは、BOJシートBSを作成する(ステップS401)。このシートは、印刷ジョブの開始を伝えるためのシートである。このシートから、印刷ジョブの終了を示すEOJシートまでが、1つの印刷ジョブと見なされる。印刷管理部110bは、BOJシートを削除する(ステップS402)。
印刷管理部110bは、実際に印刷するシートを管理する1シート目のデータシートDS1を作成する(ステップS403)。まず印刷管理部110bは、実際にRIP処理を実行するRIP処理部103bに対して本シート用にRIP処理モジュールの獲得を要求する(ステップS404)。印刷管理部110bは、「RIP処理モジュール獲得要求送信済み」であることを示す情報(フラグなど)を例えばRAM13に記憶しておく。
印刷管理部110bは、要求に対する応答であるRIP処理モジュール獲得通知をRIP処理部103bから受信した後(ステップS405)、「RIP処理モジュール獲得通知受信済み」を示す情報をRAM13に記憶しておく。もし「RIP処理モジュール獲得要求送信済み」が記憶されていないのにRIP処理モジュール獲得通知を受信した場合は、印刷管理部110bは、エラーとして処理を終了する。
「RIP処理モジュール獲得通知受信済み」が記憶されているならば、印刷管理部110bは、次にPostScriptファイル処理開始通知をRIP処理部103bに通知し(ステップS406)、「PostScriptファイル処理開始通知送信済み」を示す情報をRAM13に記憶しておく。「PostScriptファイル処理開始通知送信済み」が記憶されているならば、印刷管理部110bは、PostScriptファイルを送信し(ステップS407)、「PostScriptファイル送信済み」を示す情報をRAM13に記憶する。
さらに印刷管理部110bは、1シート目に配置されるページ9およびページ10の処理を、RIP処理部103bに依頼し(ステップS408)、「各ページ処理依頼済み」を示す情報をRAM13に記憶する。また印刷管理部110bは、それらに対する応答が返ってきた場合には(ステップS409)、「各ページ処理完了通知受信済み」を示す情報をRAM13に記憶しておく。「各ページ処理依頼済み」が記憶されていないにも関わらず応答が返ってきた場合には、印刷管理部110bは、エラーとして処理を終了する。
「各ページ処理完了通知受信済み」が記憶されたならば、印刷管理部110bは、エンジン制御部104bに対して本シートの印刷を要求し(ステップS410)、「印刷要求済み」を示す情報をRAM13に記憶する。「印刷要求済み」が記憶されているならば、印刷管理部110bは、PostScriptファイルの処理終了を通知し(ステップS411)、「PostScriptファイル処理終了通知送信済み」を示す情報をRAM13に記憶する。この情報が記憶されているならば、印刷管理部110bは、RIP処理モジュールの解放通知を送信し(ステップS412)、「RIP処理モジュール解放通知送信済み」を示す情報をRAM13に記憶する。その後、印刷管理部110bは、データシートDS1を削除する(ステップS413)。
次に2シート目のデータシートDS2が作られる(ステップS414~ステップS424)。このシートに対してはページ1およびページ2が配置されることになる。その他の流れは、ステップS403~ステップS413と同様であるため説明を省略する。
同様に3シート目のデータシートDS3に対してはページ3およびページ4が配置される(ステップS425~ステップS426)。4シート目のデータシートDS4に対してはページ5およびページ6が配置される(ステップS427~ステップS428)。5シート目のデータシートDS5に対してはページ7およびページ8が配置される(ステップS429~ステップS430)。
その後、印刷管理部110bは、印刷ジョブの処理を終了することを表すEOJシートESを作成する(ステップS431)。印刷管理部110bは、EOJシートESを削除し(ステップS432)、RIP制御処理を終了する。
以上のように、比較例では、シートごとにRIP処理モジュールの獲得と解放、および、PostScriptファイルの処理開始と終了が行われる。
図31-1、図31-2は、ワイヤーバインド印刷の本実施形態での実現方法を示すシーケンス図である。
印刷ジョブの処理が開始されると、印刷管理部110は、BOJシートBSを作成する(ステップS501)。印刷管理部110は、BOJシートを削除する(ステップS502)。
印刷管理部110は、実際に印刷するシートを管理する1シート目のデータシートDS1を作成する(ステップS503)。このシートは、PostScriptの最終2ページを含んでおり、次のシートはページ1およびページ2を含むため、ページ戻りが発生する。従ってこのシートは特殊モードのシートとなる。
特殊モードであるため、印刷管理部110は、RIP処理部103に対してRIP処理モジュールの獲得を要求し(ステップS504)、「RIP処理モジュール獲得要求送信済み」であることを示す情報(フラグなど)を例えばRAM13に記憶しておく。
以降のステップS505~ステップS513は、図30-1のステップS405~ステップS413と同様であるため説明を省略する。
次に2シート目のデータシートDS2が作られる(ステップS514~ステップS522)。このシートに対してはページ1およびページ2が配置されることになる。このシート以降、ページ戻りは発生しないので、2シート目以降はすべて通常モードとなる。
データシートDS2は通常モードの最初のシートであるため、特殊モードのデータシートDS1と同様に、RIP処理モジュールの獲得(ステップS515、ステップS516)、PostScriptファイル処理開始の通知(ステップS517)、PostScriptファイルの送付(ステップS518)、および、各ページの処理(ステップS519~ステップS521)が実行される。
本実施形態の場合、PostScriptファイルの処理終了通知(ステップS422)、および、RIP処理モジュールの解放通知(ステップS423)に相当する処理は実行されない。その後、印刷管理部110は、データシートDS2を削除する(ステップS522)。
同様に3シート目のデータシートDS3に対してはページ3およびページ4が配置される(ステップS523~ステップS527)。4シート目のデータシートDS4に対してはページ5およびページ6が配置される(ステップS528~ステップS532)。
これらのシートは、通常モード群の中間シートであり、RIP処理モジュールの獲得および解放(ステップS515、ステップS516、ステップS423)、並びに、PostScriptファイルの処理開始通知および終了通知(ステップS517、ステップS518)に相当する処理は実行されない。中間シートでは、配置されたページの処理のみ(ステップS524~ステップS526、ステップS529~ステップS531)が実行される。
5シート目のデータシートDS5に対しては、ページ7およびページ8が配置される(ステップS533~ステップS539)。5シート目は通常モードの最終シートであり、ジョブの最後のデータシートである。印刷管理部110は、ページ7およびページ8の処理完了後(ステップS534~ステップS536)、PostScriptファイル処理終了の通知(ステップS537)、および、RIP処理モジュール解放通知(ステップS538)を実行する。
ステップS540~ステップS541は、図30-2のステップS431~ステップS432と同様であるため説明を省略する。
このように、本実施形態では、RIP処理モジュール獲得解放、および、PostScriptファイル処理開始終了通知の回数が比較例に比べて削減される。通常モードでは各シートでPostScript先頭ページから見る必要がなくなるため、特にシート数が多いジョブに対する処理効率が向上する。
本実施形態にかかる情報処理装置で実行されるプログラムは、ROM12等に予め組み込まれて提供される。
本実施形態にかかる情報処理装置で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD-ROM(Compact Disk Read Only Memory)、フレキシブルディスク(FD)、CD-R(Compact Disk Recordable)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供されるように構成してもよい。
さらに、本実施形態にかかる情報処理装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施形態にかかる情報処理装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
本実施形態にかかる情報処理装置で実行されるプログラムは、コンピュータを上述した情報処理装置の各部として機能させうる。このコンピュータは、CPU11がコンピュータ読取可能な記憶媒体からプログラムを主記憶装置上に読み出して実行することができる。