(57)【要約】【課題】  割り込みのない印刷を実行するためにホストコンピュータにおいて複数ジョブを結合して印刷要求を行う際にも、ユーザ所望の印刷属性で印刷出力が行える印刷制御手法を提供することを目的としている。【解決手段】  本発明における印刷制御装置は、アプリケーションにより生成された印刷すべきデータに対応する中間コード形式のジョブに設定されるジョブ属性に応じて、当該ジョブに含まれる各ページのページ属性の値を付与し、１つのジョブに対して１つの値しか付与できない特定のジョブ属性の値が異なる複数のジョブを１つの結合ジョブにする結合指示がなされた場合に、前記付与されたページ属性の値に基づく印刷出力が行われるように中間コード形式のデータを加工し、結合ジョブを生成して、該生成された結合ジョブを印刷データとして印刷装置に送信することを特徴とする。【選択図】  図６
2010122958.tif 000002
【特許請求の範囲】
【請求項１】
印刷装置に送信すべき印刷データを生成する印刷制御装置であって、
アプリケーションにより生成された印刷すべきデータが中間コード形式のジョブに変換され、当該ジョブと前記印刷すべきデータの属性とを関連付けて一時的に保持する保持手段と、
前記印刷すべきデータに対応する中間コード形式のジョブに設定されるジョブ属性に応じて、当該ジョブに含まれる各ページのページ属性の値を付与する付与手段と、
前記保持手段により変換された複数の異なる印刷すべきデータに対応する複数の中間コード形式のジョブを１つの結合ジョブにする結合指示を行う結合指示手段と、
１つのジョブに対して１つの値しか付与できない特定のジョブ属性の値が異なる複数のジョブを前記結合指示手段により１つの結合ジョブにする結合指示がなされた場合に、前記付与手段によって付与されたページ属性の値に基づく印刷出力が行われるように中間コード形式のデータを加工し、結合ジョブを生成する生成手段と、
前記生成手段により生成された結合ジョブを印刷データとして印刷装置に送信する送信手段とを備えることを特徴とする印刷制御装置。
【請求項２】
前記１つのジョブに対して１つの値しか付与できない特定のジョブ属性とは、カラー属性であり、
前記付与手段は、前記印刷すべきデータに対応する中間コード形式のジョブに設定されるカラー属性がモノクロであった場合には当該ジョブに含まれる各ページのページカラー属性をモノクロに設定し、前記印刷すべきデータに対応する中間コード形式のジョブに設定されるカラー属性がカラーであった場合には当該ジョブに含まれる各ページのページカラー属性をカラーに設定することを特徴とする請求項１に記載の印刷制御装置。
【請求項３】
前記付与手段は、前記印刷すべきデータに対応する中間コード形式のジョブに設定されるカラー属性がカラーであった際に、さらに各ページのページカラー属性をページにカラーオブジェクトが含まれている場合にはカラーを、含まれていない場合はモノクロを設定することを特徴とする請求項２に記載の印刷制御装置。
【請求項４】
前記印刷すべきデータを生成したアプリケーションに関する情報、前記印刷すべきデータに含まれるキーワード、及び前記印刷すべきデータに対応する中間コード形式のジョブの名前の少なくとも１つに応じて、前記生成手段により生成される結合ジョブに対して１つの値しか付与できない特定のジョブ属性の値を設定する設定手段を備えることを特徴とする請求項１乃至３のいずれか１項に記載の印刷制御装置。
【請求項５】
前記結合印刷指示手段により結合する際に、結合の対象となる複数の中間コード形式のジョブの出力設定を解析し、結合できるかどうか判断する判断手段と、
前記判断手段により結合できると判断された場合に、前記生成手段により結合ジョブを生成することを特徴とする請求項１乃至４のいずれか１項に記載の印刷制御装置。
【請求項６】
印刷装置に送信すべき印刷データを生成する印刷制御装置における印刷制御方法であって、
アプリケーションにより生成された印刷すべきデータが中間コード形式のジョブに変換され、当該ジョブと前記印刷すべきデータの属性とを関連付けて一時的に保持する保持工程と、
前記印刷すべきデータに対応する中間コード形式のジョブに設定されるジョブ属性に応じて、当該ジョブに含まれる各ページのページ属性の値を付与する付与工程と、
前記保持工程で変換された複数の異なる印刷すべきデータに対応する複数の中間コード形式のジョブを１つの結合ジョブにする結合指示を行う結合指示工程と、
１つのジョブに対して１つの値しか付与できない特定のジョブ属性の値が異なる複数のジョブを前記結合指示工程で１つの結合ジョブにする結合指示がなされた場合に、前記付与工程によって付与されたページ属性の値に基づく印刷出力が行われるように中間コード形式のデータを加工し、結合ジョブを生成する生成工程と、
前記生成工程で生成された結合ジョブを印刷データとして印刷装置に送信する送信工程とを備えることを特徴とする印刷制御方法。
【請求項７】
請求項６に記載の印刷制御方法をコンピュータにより実現するためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のジョブを印刷する際に、他のジョブからの印刷を割り込ませることなく連続した印刷を行うよう制御する手法に関するものである。
【背景技術】
【０００２】
複数のジョブを共有プリンタに印刷する際に、他人のジョブが紛れ込むことによる取り違えや面倒な仕分け作業を軽減・防止するグループ印刷技術がある。
【０００３】
特許文献１によると、グループ印刷したい印刷ジョブにはグループに固有のグループ識別子、そのグループのジョブ数、グループ内での順序を示す値を持たせておく。プリンタはそのグループの全ジョブが揃うまでプリンタ内に印刷データを保持し、揃った時に一気に印刷することで、グループ以外のジョブの混入を防いでいる。また、ジョブの受信順序が変わった場合でもグループ内で指定された順で印刷を行っている。
【０００４】
また特許文献２によると、設定した時間以内の同一ユーザからの印刷要求に関しては、他のユーザからのジョブの印刷を保留するといった技術の開示がある。
【０００５】
特許文献３によると、複数の印刷ジョブをいったんプリントサーバに溜めておき、プリンタの前でカードをかざすなどしてプルプリントを行うことで、印刷時に出力先を指定しなくても任意のプリンタでまとめて印刷を行うことができる、という技術の開示がある。そして、プルプリント中は優先的にそれらジョブを処理することで、他ジョブの混入を防いでいる。
【０００６】
上述した従来技術に関しては、プリンタ側でジョブに付加されたグループ識別子やユーザ情報を識別し、それに基づきジョブの割り込み制限などの特別な処理を行う必要があった。さらに、特許文献３に開示された技術では、プリントサーバ、カードリーダ、及びカード認証システムなどが必要となり、システムを導入するためのコストが高いといったことを考えると、より良い提案が望まれている。
【０００７】
一方、これら技術に対して、ホスト側で複数のジョブを１つのジョブに結合することで、プリンタに特別な機能がなくても、複数のジョブを割り込まれること無く連続して印刷する技術がある。例えば、特許文献４によると、印刷ジョブをホスト上でいったん中間ファイルに保存し、それら複数ジョブの結合している。このジョブ結合により想定外の他ジョブの混入を防ぐことができる。
【特許文献１】特開２００６−１９２８０４号公報
【特許文献２】特開２００５−１４９１５９号公報
【特許文献３】特開２００５−２０２７２３号公報
【特許文献４】特開２００１−１３４３９４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
プリンタ側の特別な制御を強いることなく、ユーザ所望の複数のジョブを、他のジョブに割り込まれること無く連続して印刷する特許文献４の技術は、ユーザにとって有益な技術といえる。
【０００９】
しかしながら、この技術においても既存の印刷システムの制限により、１つ印刷ジョブに対しては１つの設定しか行えない印刷属性などがあり、ジョブ結合の際して、各ジョブにおいて印刷属性の設定が変わってしまう場合があった。
【００１０】
そこで、本発明においては、複数のジョブを結合して結合ジョブを生成する際にも、各ジョブの印刷属性などを考慮して、ユーザ所望の印刷出力を得るといった手法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するために、本発明における印刷制御装置は、アプリケーションにより生成された印刷すべきデータが中間コード形式のジョブに変換され、当該ジョブと前記印刷すべきデータの属性とを関連付けて一時的に保持する保持手段と、前記印刷すべきデータに対応する中間コード形式のジョブに設定されるジョブ属性に応じて、当該ジョブに含まれる各ページのページ属性の値を付与する付与手段と、前記保持手段により変換された複数の異なる印刷すべきデータに対応する複数の中間コード形式のジョブを１つの結合ジョブにする結合指示を行う結合指示手段と、１つのジョブに対して１つの値しか付与できない特定のジョブ属性の値が異なる複数のジョブを前記結合指示手段により１つの結合ジョブにする結合指示がなされた場合に、前記付与手段によって付与されたページ属性の値に基づく印刷出力が行われるように中間コード形式のデータを加工し、結合ジョブを生成する生成手段と、前記生成手段により生成された結合ジョブを印刷データとして印刷装置に送信する送信手段とを備えることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、複数のジョブを結合して結合ジョブを生成する際にも、各ジョブの印刷属性などを考慮して、ユーザ所望の印刷出力を得るといった手法を提供することができる。
【００１３】
とくに、本発明のように印刷制御装置において結合ジョブを生成することで、印刷装置において特に特殊な設計を行わなくても、ユーザの意図しないジョブの割り込み印刷などを防ぐことが可能となる。
【発明を実施するための最良の形態】
【００１４】
以下では、図面を参照して本発明を実施するための最良の形態について説明する。
【００１５】
［第１実施形態］
図１は本発明における印刷システムに含まれるホストコンピュータ及びプリンタの構成を説明するブロック図である。なお、後述するような本発明の機能が実行されるのであれば、特にシステム構成はこれに限定されない。
【００１６】
同図において、印刷制御装置としてのホストコンピュータ３０００に関して説明する。ホストコンピュータ３０００はＣＰＵ１を備え、ＲＯＭ３のプログラム用ＲＯＭあるいは外部メモリ１１に記憶された、例えば文書処理プログラム等に基づいて文書や画像の処理を実現する。また、ＣＰＵ１は、システムバス４に接続される各構成を総括的に制御する。
【００１７】
また、このＲＯＭ３のプログラム用ＲＯＭあるいは外部メモリ１１には、ＣＰＵ１の制御プログラムであるオペレーティングシステム（以下ＯＳ）等を記憶している。また、ＲＯＭ３のフォント用ＲＯＭあるいは外部メモリ１１には、上述した文書処理の際などに使用するフォントデータ等を記憶し、データ用ＲＯＭあるいは外部メモリ１１には各種処理等を行う際に使用する情報を記憶する。ＲＡＭ２は、ＣＰＵ１の主メモリ、ワークエリア等として機能する。
【００１８】
キーボードコントローラ（ＫＢＣ）５は、キーボード９や不図示のポインティングデバイスからのキー入力を制御する。ＣＲＴコントローラ（ＣＲＴＣ）６は、ＣＲＴディスプレイ（ＣＲＴ）１０の表示を制御する。ディスクコントローラ（ＤＫＣ）７は、ブートプログラム、各種のアプリケーション、フォントデータ、及びプリンタ制御コマンド生成プログラム（以下プリンタドライバ）等を記憶する外部メモリ１１とのアクセス制御を行う。また、外部メモリ１１は、ＨＤＤやフロッピー（登録商標）ディスク（ＦＤ）等が含まれる。
【００１９】
プリンタコントローラ（ＰＲＴＣ）８は、双方向性インターフェイス２１を介してプリンタ１５００に接続されて、プリンタ１５００との通信制御処理を実行する。
【００２０】
なお、ＣＰＵ１は、例えばＲＡＭ２上に設定された表示情報メモリへのアウトラインフォントの展開（ラスタライズ）処理を実行し、ＣＲＴ１０上でのＷＹＳＩＷＹＧを可能としている。また、ＣＰＵ１は、ＣＲＴ１０上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウインドウを開き、種々のデータ処理を実現する。具体的には、ユーザは印刷を実行する際、印刷の設定に関するウインドウを開き、プリンタの設定や、印刷モードの選択を含むプリンタドライバに対する印刷要求の設定を行える。
【００２１】
プリンタ１５００に含まれる各構成は、ＣＰＵ１２により制御される。ＣＰＵ１２は、ＲＯＭ１３のプログラム用ＲＯＭに記憶された制御プログラム等、あるいは外部メモリ１４に記憶された制御プログラム等に基づいて動作し、各種処理を実現する。
【００２２】
ＣＰＵ１２は、印刷部Ｉ／Ｆ１６を介してシステムバス１５に接続される印刷部（プリンタエンジン）１７に出力情報としての画像信号を出力する。また、このＲＯＭ１３のプログラムＲＯＭには、ＣＰＵ１２の制御プログラム等を記憶する。ＲＯＭ１３のフォント用ＲＯＭには上記出力情報を生成する際に使用するフォントデータ等が記憶されている。また、データ用ＲＯＭには、印刷処理を含む、各種処理等を行う際に使用する情報を記憶する。
【００２３】
ＣＰＵ１２は入力部１８を介してホストコンピュータとの通信処理が可能となっており、プリンタ内の情報等をホストコンピュータ３０００に通知できる。ＲＡＭ１９は、ＣＰＵ１２の主メモリや、ワークエリア等として機能するＲＡＭで、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。なお、ＲＡＭ１９は、出力情報展開領域、環境データ格納領域、ＮＶＲＡＭ等に用いられる。前述したハードディスク（ＨＤＤ）、ＩＣカード等の外部メモリ１４は、メモリコントローラ（ＭＣ）２０によりアクセスを制御される。外部メモリ１４は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。また、入力部１８は前述した操作パネルで操作のためのスイッチおよびＬＥＤ表示器等が配されている。
【００２４】
また、前述した外部メモリ１４は複数個備えることが可能となっている。これにより、内蔵フォントに加えてオプションカード、言語系の異なるページ記述言語を解釈するプログラムを格納した外部メモリを複数接続して構成することができる。更に、図示しないＮＶＲＡＭを有し、操作パネル１５０１からのプリンタモード設定情報を記憶するようにしてもよい。
【００２５】
図２は、プリンタが所定の回線（ＬＡＮ）などを用いて接続されているホストコンピュータにおける典型的な印刷処理を行うモジュールの構成図である。
【００２６】
アプリケーション２０１、グラフィックエンジン２０２、プリンタドライバ２０３、およびシステムスプーラ２０４は、外部メモリ１１に保存されたファイルとして存在する。そして、ＯＳやそのモジュールを利用するモジュールによってＲＡＭ２にロードされ、実行される。また、アプリケーション２０１およびプリンタドライバ２０３は、外部メモリ１１のＦＤや不図示のＣＤＲＯＭ、あるいは不図示のネットワークを経由して外部ディスク１１のＨＤＤに追加することが可能となっている。
【００２７】
アプリケーション２０１はＲＡＭ２にロードされて実行され、プリンタ１５００に対して印刷を行う際には、同様にＲＡＭ２にロードされているグラフィックエンジン２０２を利用して出力（描画）を行う。
【００２８】
グラフィックエンジン２０２は、印刷装置ごとに用意されたプリンタドライバ２０３を同様に外部メモリ１１からＲＡＭ２にロードし、アプリケーション２０１の出力をプリンタドライバ２０３に設定する。そして、アプリケーション２０１から受け取るＧＤＩ（Ｇｒａｐｈｉｃ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ）関数からＤＤＩ（Ｄｅｖｉｃｅ  Ｄｒｉｖｅｒ  Ｉｎｔｅｒｆａｃｅ）関数に変換して、プリンタドライバ２０３へＤＤＩ関数を出力する。プリンタドライバがＤＤＩを通して受信した一連のデータを印刷ジョブ、または単にジョブと呼ぶ。１件の印刷要求に対してひとつの印刷ジョブができる。
【００２９】
プリンタドライバ２０３は、グラフィックエンジン２０２から受け取ったＤＤＩ関数に基づいて、プリンタが認識可能な制御コマンド、例えばＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）に変換する。ここでは、ひとつの印刷要求から生成されたひとつの制御コマンドセットを印刷ジョブと呼ぶ。生成された印刷ジョブは、ＯＳによってＲＡＭ２にロードされたシステムスプーラ２０４を経てインターフェイス２１経由でプリンタ１５００へ印刷データとして出力される仕組みとなっている。
【００３０】
本実施形態においては、図２で示すプリンタとホストコンピュータからなる印刷環境に加えて、更に図３に示すように、アプリケーションからの印刷データを一旦中間コードデータでスプールする構成を有する。
【００３１】
図３は、図２のホストコンピュータにおけるモジュール構成を拡張したもので、グラフィックエンジン２０２からプリンタドライバ２０３へ印刷命令を送る際に、一旦中間コードからなるスプールファイル３０３を生成する構成をとる。ひとつの印刷ジョブから変換された一連の中間コードを、ここでは中間ジョブと呼ぶ。
【００３２】
図３では、スプールファイル３０３としての中間ジョブの加工や並べ替え、中間ジョブ同士の結合などができる。なお、印刷データに対する印刷属性などの設定を行うためには、通常プリンタドライバ２０３が提供するウインドウから設定を行い、プリンタドライバ２０３がその設定内容をＲＡＭ２上あるいは外部メモリ１１上に保管している。
【００３３】
図３に示す通り、この拡張された制御方式では、グラフィックエンジン２０２からの印刷命令であるＤＤＩ関数をディスパッチャ３０１が受け取る。ディスパッチャ３０１が受け取った印刷命令（ＤＤＩ関数）が、アプリケーション２０１からの印刷命令（ＧＤＩ関数）に基づいたものである場合、ディスパッチャ３０１はスプーラ３０２を起動し、スプーラ３０２へ印刷命令（ＤＤＩ関数）を送付する。
【００３４】
スプーラ３０２は受け取った印刷命令を解析し、ページ単位に中間コードに変換してスプールファイル３０３に出力する。このページ単位に格納されている中間コードのスプールファイルをページ描画ファイルと呼ぶ。また、スプーラ３０２は、印刷データに設定された印刷属性（Ｎｕｐ、両面、ステイプル、カラー／モノクロ指定等）をプリンタドライバ２０３から取得し、ジョブ単位の印刷属性ファイルとしてスプールファイル３０３に保存する。このジョブ単位の印刷属性をジョブ属性と呼び、後述するページ属性と区別する。
【００３５】
なお、スプールファイル３０３は外部メモリ１１上にファイルとして生成するが、ＲＡＭ２上に生成されても構わない。
【００３６】
更にスプーラ３０２は、外部メモリ１１に格納されているスプールファイルマネージャ３０４をＲＡＭ２にロードし、スプールファイルマネージャ３０４に対してスプールファイル３０３の生成を通知する。スプールファイルマネージャ３０４はジョブ管理リストをＲＡＭ２上に生成し、受け取った通知を元にスプールファイル３０３（中間ジョブ）の管理を行う。
【００３７】
ユーザの指示に基づき、スプールファイルマネージャ３０４から印刷を行う場合は、デスプーラ３０５に対して、スプールファイル３０３に記述された中間コードのページ描画ファイルの印刷処理を行うように指示する。
【００３８】
デスプーラ３０５は、スプールファイル３０３に含まれる中間コードのページ描画ファイルを、印刷属性に従って加工し、ＧＤＩ関数を再生成し、もう一度グラフィックエンジン２０２経由でＧＤＩ関数を出力する。
【００３９】
ディスパッチャ３０１がグラフィックエンジン２０２から受け取った印刷命令（ＤＤＩ関数）が、デスプーラ３０５からの印刷命令（ＧＤＩ関数）に基づいたものである場合、ディスパッチャ３０１はプリンタドライバ２０３に印刷命令（ＤＤＩ関数）を送る。
【００４０】
プリンタドライバ２０３はグラフィックエンジン２０２から取得したＤＤＩ関数に基づいてページ記述言語等からなるプリンタ制御コマンドを生成し、システムスプーラ２０４経由でプリンタ１５００に出力する。
【００４１】
スプールファイルマネージャ３０４では、更に中間ジョブ同士の結合印刷を指示することができる。なお、印刷属性の中にはジョブに対してひとつしか設定できない属性があるため、結合時に元ジョブの属性を継承できるものと、結合ジョブ全体でひとつに統合する必要がある属性が存在する。
【００４２】
図１８では、ジョブ結合時に統一する必要がある印刷属性と、ジョブ内で異なる設定値が設定可能な（混在可能な）印刷属性の例を挙げている。
【００４３】
更に図３では、これまで説明した拡張構成に加えて、スプールファイルのプレビューを行うプレビューア３０６、設定変更を可能にする設定変更エディタ３０７を備える。
【００４４】
図４ではホストコンピュータにおけるアプリケーションからの印刷時、スプール印刷モードに応じたディスパッチャ３０１の動作の一部を説明したものである。スプール印刷モードとは、図３に示した拡張印刷を行うための制御するモードを示す。
【００４５】
ステップ４０１で印刷要求（ＤＤＩ関数）を受け取ると、ステップ４０２でスプール印刷モードがＯＮであるかどうか判断する。ＯＮだった場合はステップ４０３にてスプーラ３０２を起動してスプーラ３０２にＤＤＩ関数を流し、ＯＦＦだった場合はステップ４０４にてプリンタドライバ２０３にそのままＤＤＩ関数を送る。
【００４６】
図１４はスプール印刷モードを切り替えるＵＩの一例で、タスクトレイ上のボタンでＯＮ／ＯＦＦを切り替えることができる。この設定情報はレジストリ等のメモリ上に保持され、ステップ４０２ではその情報を参照してスプール印刷モードを判断する。
【００４７】
図１５はスプールファイルマネージャ３０４のユーザインターフェース（ＵＩ）の例であり、ここではアプリケーションから受け取った３つのジョブがスプールされ、一覧を表示されている画面の様子を示している。ユーザはこのＵＩを介して、一括印刷（ジョブ結合）などの指示を行うことが可能となる。
【００４８】
図５は、スプーラ３０２にて、印刷要求（ＤＤＩ関数）を受け取った時にスプールファイルを生成する処理を説明するためのフローチャートである。
【００４９】
まずステップ５０１では、スプーラ３０２は、アプリケーションからグラフィックエンジン２０２を介して印刷要求を受け付ける。印刷要求の中には印刷対象のデータに関する各種情報があり、ジョブの開始や終了、改ページなどの制御コマンド、および描画データが含まれる。
【００５０】
スプーラ３０２は、ステップ５０１で受け取った要求がステップ５０２にてジョブ終了コマンドであるか、ステップ５０３にてジョブ開始コマンドであるか、ステップ５０４にて改ページコマンドであるか、それぞれ判断する。
【００５１】
ステップ５０２でジョブ終了コマンドではないと判断され、ステップ５０３でジョブ開始コマンドと判断された場合、ステップ５０５にてスプールファイル３０３の作成を行い、ジョブの情報のための領域を確保する。ここで、プリンタドライバ２０３から取得したジョブ属性データを属性ファイルに保存する。
【００５２】
ステップ５０３でジョブ開始コマンドではないと判断され、ステップ５０４で改ページコマンドと判断された場合、ステップ５０６にて次のページ描画ファイルを生成する。これはページ単位で中間データを扱うため、ページ毎に描画ファイルを持つこととしている。次にステップ５０７にてページ単位の印刷属性を保持するページ属性データを生成し、前述した属性ファイルに該当ページに対応付けて追加する。
【００５３】
ステップ５０４で改ページコマンドではないと判断された場合、印刷要求はいずれの制御コマンドでもないことから描画データとなる。ステップ５０８にてスプーラ３０２は、印刷要求（描画データ）をスプールファイル３０３へ格納するため、印刷要求のＤＤＩ関数の中間コードへの変換処理を行う。そして、ステップ５０９にて、この中間コードをスプールファイル３０３へ書き込む。
【００５４】
以上、ステップ５０１からステップ５０９の一連の処理をジョブ終了コマンドを受け取る（ステップ５０２でジョブ終了コマンドと判断される）まで行う。
【００５５】
ステップ５０２でジョブ終了コマンドと判断された場合、スプーラ３０２は、ステップ５１０にてスプールファイルをクローズし、ステップ５１１にてスプールファイルマネージャ３０４にスプール完了を通知し、本処理を終了する。
【００５６】
図６は、スプールファイルマネージャ３０４にて実行される、ジョブ管理プロセスとユーザの指示に基づく印刷制御の詳細を説明するためのフローチャートである。スプールファイルマネージャ３０４では、スプーラ３０２がスプールしたスプールファイル３０３を管理し、またＵＩ上に一覧表示し、ユーザの指示に従って中間ジョブの印刷や削除などを行う。
【００５７】
ステップ６０１にて通知入力を受信すると、ステップ６０２にてスプーラ３０２からのジョブ追加通知であるか、またはステップ６０３にてユーザによる操作であるか、判断する。
【００５８】
ステップ６０２にてスプーラ３０２からのジョブ追加通知であると判断された場合、ステップ６０９にて、図１６に例示するようなジョブ管理リストに新しいジョブを追加する。
【００５９】
図１６に示すジョブ管理リストは、図の左側リストに示すようにストア中のジョブ数、およびジョブＩＤを保持する。ジョブＩＤは、それぞれ中間ジョブファイル（スプールファイル３０３）と対応付けられている。中間ジョブファイルは、ジョブごとにひとつの属性ファイルと、ページごとにひとつのページ描画ファイルを持つ。属性ファイルには、ジョブ属性と各ページのページ属性を持つ。
【００６０】
次に、ステップ６１０にてＵＩ（図１５）表示を更新し、中間ジョブの追加処理を終了する。図１５はＵＩの一例であり、スプールされているジョブの一覧を表示する。ジョブが追加するとそれに応じてＵＩも更新される。
【００６１】
ステップ６０３にてユーザ操作であると判断された場合は次の判断を行う。ここでは、スプールファイルマネージャ３０４はステップ６０４〜６０８にて、ユーザ操作が終了要求であるか、一括印刷要求であるか、一括ステイプル要求であるか、一括オプション変更要求であるか、ジョブ削除要求であるか、をそれぞれ判断する。
【００６２】
ステップ６０４にてユーザ操作が終了要求ではないと判断され、ステップ６０５にて一括印刷要求と判断した場合、すなわちユーザが図１５に例示する「一括印刷」ボタンを押下するなどした場合、ステップ６１１に遷移する。スプールファイルマネージャ３０４はステップ６１１にて、現在スプールされている全中間ジョブファイルを結合できるかどうか印刷属性を解析して判断する。可能である場合は、ステップ６１２にて各中間ジョブファイルの持つジョブ属性をひとつに統一し、またページ属性を結合する。つぎにステップ６３０にて、ひとつの結合ジョブを生成し、新たにスプールファイル３０３に追加する。つぎに、ステップ６１３にて、後述する一括オプション６２０にて設定がある場合はそれを適用し、ステップ６１４に遷移する。
【００６３】
ステップ６０４にてユーザ操作が一括印刷要求ではないと判断され、ステップ６０６にて一括ステイプル要求と判断された場合、ステップ６１７、６１８、６３１では、前述のステップ６１１、６１２、６３０と同様の処理を行う。その後、ステップ６１９にてステイプル属性にＯＮをセットし、ステップ６１４に遷移する。ここでは、結合ジョブ全体に対してステイプルを実行するような印刷要求が行われる。
【００６４】
ステップ６１４にて、スプールファイルマネージャ３０４はデスプーラ３０５に印刷指示を行う。デスプーラで印刷を行うとステップ６１５にてすべての中間ジョブと結合ジョブを消去した上でジョブ管理リストをクリアし、ステップ６１６にてＵＩを閉じて終了する。
【００６５】
図１７（ａ）は、３つの独立したジョブをいったんスプールし、一括印刷した例である。それぞれ設定通りに印刷されている様子を示している。
【００６６】
図１７（ｂ）は、４つの依存したジョブをいったんスプールし、一括ステイプル印刷で２部印刷した例である。アプリケーションからはここに印刷したジョブでも、ひとまとめにしてステイプルしたり、複数部数印刷することができる様子を示している。
【００６７】
ステップ６０６にて一括ステイプル要求ではないと判断され、ステップ６０７にて一括オプション変更要求と判断された場合、ステップ６２０にてＵＩ（不図示）を表示する。ここでは、ＵＩを介してユーザに結合ジョブ全体に適用可能なオプション属性を指定させる。たとえば製本を指定されれば、結合ジョブ全体をひとつのジョブとみなして所定の面つけ処理を行い、製本印刷が行われるよう制御する。ユーザには、他にもモノクロ印刷、パンチ、部数設定、ソートなどの設定を行わせることができる。ここでの設定は、前述したジョブ属性として追加される。
【００６８】
なお、このステップ６２０にステイプル設定を入れ、ステップ６０５などの一括印刷でステイプル印刷を実現することも、もちろん可能である。ステップ６０６及びステップ６１７から６１９の処理は、操作ステップ数を減らすために一連の作業をひとつの要求で行った例であることから、いずれかの方法のみで実現してもよい。
【００６９】
図１５のＵＩ上で１つ以上の中間ジョブファイルを選択している状態で、ステップ６０８にてジョブ削除要求と判断された場合、ステップ６２１にて選択中の中間ジョブをスプーラ３０２から削除し、またジョブ管理リストからも削除する。
【００７０】
図７は、デスプーラ３０５における、印刷データの生成プロセスの詳細を説明するためのフローチャートである。
【００７１】
デスプーラ３０５では、スプールファイルマネージャ３０４からの印刷要求に応じて指示された中間ジョブや結合ジョブの印刷を行う。その際、結合ジョブには元の中間ジョブ毎に異なる設定がなされている場合があるため、ジョブ属性およびページ属性を見ながらページ描画データの加工を行い、属性に指定された通りの出力を行う。
【００７２】
ステップ７０１にて通知入力を受信すると、デスプーラ３０５はステップ７０２にてスプールファイルマネージャ３０４からの印刷要求であるか判断する。ステップ７０２にてＮｏである判断された場合、通知に基づく他の所定の処理を行い、次の通知が入力されるまで待機する。
【００７３】
ステップ７０２にてＹｅｓである判断された場合、ステップ７０３にて印刷対象ジョブのジョブ属性を取得する。
【００７４】
ステップ７０４にて、デスプーラ３０５は取得したジョブ属性がオート属性（ＡＵＴＯＣＯＬＯＲやＡＵＴＯＤＵＰＬＥＸ）か否かを判断する。ジョブ属性がオート属性であると判断された場合、以降ジョブに含まれるページ毎に処理（ステップ７０５〜７０９）を行うことになる。
【００７５】
ステップ７０５にて処理対象のページのページ描画データ、およびステップ７０６にてページ属性を取得し、ステップ７０７にて取得した属性に応じたページ加工を行う。ステップ７０８にて、対象ページについてページ描画データの印刷命令の再生成を行う。
【００７６】
なお、図では省略しているが、ステップ７０４の判定、およびステップ７０５から７１０の処理はそれぞれの属性ごとに行うものとする。この一連の処理は、カラー／モノクロ混合ジョブ、および片面／両面混合ジョブを例に、詳しく後述する。
【００７７】
ステップ７０５からステップ７０８をページ毎に繰り返し、ステップ７０９で最終ページの処理が終わったと判断したら、本処理を終了する。
【００７８】
ステップ７０４にてジョブ属性がオート属性ではないと判断された場合、ジョブ全体をひとつの設定（カラー、モノクロ、片面、両面、など）で印刷することを意味する。よって、ステップ７１０にて特別な加工を行わずに、中間ジョブに含まれるページ描画データの印刷命令の再生成を行う。
【００７９】
以下に、カラー属性に関して、カラー印刷指定されたジョブとモノクロ印刷指定されたジョブが結合される場合を例に説明する。
【００８０】
図１９（ａ）では、２つの中間ジョブ（Ｊｏｂ１、Ｊｏｂ２）があり、Ｊｏｂ１をジョブ属性がカラー指定、Ｊｏｂ２をジョブ属性がモノクロ指定で印刷したときの様子を示している。なお、Ｊｏｂ１、Ｊｏｂ２共に、１ページ目がカラーページ（カラーオブジェクトを含むページ）、２ページ目がモノクロページ（モノクロオブジェクトのみで構成されるページ）である。Ｊｏｂ１はジョブ属性がカラー指定なので、カラーページはカラーで印刷され、１ページ目はカラー、２ページ目はモノクロで印刷される。Ｊｏｂ２はジョブ属性がモノクロ指定なので、１ページ目も２ページ目もモノクロで印刷される。
【００８１】
これらの中間ジョブを結合する場合、結合後のジョブに対してひとつのカラー属性を割り当て直すことになる。
【００８２】
ここで図１９（ｂ）に示すように、もし結合後のジョブのジョブ属性をカラー指定すると、もともとカラーページであったＪｏｂ２の１ページ目もカラー印刷されることになり、１ページ目と３ページ目がカラー印刷となる。
【００８３】
また、もし結合後のジョブのジョブ属性をモノクロ指定すれば、全ページがモノクロ印刷となる。いずれも単独で印刷した場合（図１９（ａ））との出力結果が異なる。
【００８４】
この出力結果の不一致を解決する方法を図８から図１０での処理と対応させて説明する。
【００８５】
図８は、カラー／モノクロジョブの処理に関して、図５のステップ５０７、すなわちページ属性データの生成について詳細を説明するためのフローチャートである。
【００８６】
アプリケーションから渡されるジョブのカラー属性は、図２１（ａ）に示すように、ＣＯＬＯＲとＭＯＮＯがある。
【００８７】
ステップ８０１にて、入力されたジョブのカラー属性がＭＯＮＯだと判断した場合、ステップ８０３にてジョブ中の各ページのページカラー属性にＭＯＮＯをセットする。
【００８８】
またステップ８０１にてジョブカラー属性がＣＯＬＯＲだと判断した場合は、ステップ８０２にて各ページのページカラー属性にはＣＯＬＯＲをセットする。図１９（ａ）の２つのジョブを例にとれば、図２１（ｂ）の属性データができる。
【００８９】
図９は、カラー／モノクロジョブの処理に関して、図６のステップ６１２、すなわちジョブ結合時の属性の統合についての詳細を説明するためのフローチャートである。
【００９０】
ステップ９０１にて、結合対象のジョブそれぞれのジョブカラー属性をチェックし、ステップ９０２にて全ジョブのカラー属性がＣＯＬＯＲか否かを判断する。ステップ９０２にて全ジョブのカラー属性がＣＯＬＯＲと判断された場合には、ステップ９０６にて結合後のジョブのカラー属性にＣＯＬＯＲを設定する。
【００９１】
ステップ９０２にて全ジョブのカラー属性がＣＯＬＯＲではないと判断された場合、ステップ９０３にて全ジョブのカラー属性がＭＯＮＯか否かを判断する。全ジョブのカラー属性がＭＯＮＯだと判断した場合には、ステップ９０５にて結合後のジョブカラー属性にＭＯＮＯを設定する。
【００９２】
ステップ９０３にて全ジョブのカラー属性がＭＯＮＯでないと判断された場合、複数の中間ジョブは同一のカラー属性ではないことを意味する。この場合は結合後のジョブのカラー属性にＡＵＴＯＣＯＬＯＲを設定する。最後にステップ９０７にて各中間ジョブのページのカラー属性を統合する。
【００９３】
先述の図２１（ｂ）に示す２つのジョブを結合する場合を例にとると、ステップ９０４、ステップ９０７を経て、図２１（ｃ）に示す属性データが生成される。
【００９４】
ジョブのカラー属性がＡＵＴＯＣＯＬＯＲの場合、図７のステップ７０４の判断にてステップ７０７へ遷移する。図１０は、カラー／モノクロ属性の混在するジョブの処理に関して、図７のステップ７０７、すなわちページ属性に応じたページ描画データの加工についての処理の詳細を説明したフローチャートである。
【００９５】
ステップ１００１にて、ページのカラー属性がＭＯＮＯであると判断した場合は、ステップ１００３にて処理対象ページをモノクロページとして印刷命令の再生成処理を行う。また、ステップ１００１にてＣＯＬＯＲであると判断した場合は、ステップ１００２にて処理対象ページをカラーページとして印刷命令の再生成処理を行う。
【００９６】
ここではコマンドによるカラー／モノクロ指定が一般的であるが、モノクロ印刷を行う場合に、カラーオブジェクトをモノクロオブジェクトに変換する方法をとっても良いことは言うまでもない。
【００９７】
以上の処理により、図２０に示すように異なるカラー指定がなされたジョブをジョブ結合によりグループ印刷した場合でも、それぞれの設定通りに出力されることになる。
【００９８】
図１１は、図８において、プリンタなどにおける課金処理などを考慮し、カラー判定を加えた場合の処理の詳細を説明するためのフローチャートである。たとえジョブのカラー属性でカラー指定した場合でも、モノクロページであればモノクロで課金がなされるよう、ページ単位でページのカラー属性を設定する。
【００９９】
ステップ１１０１にて、ジョブカラー属性がＭＯＮＯだと判断された場合は、ステップ１１０６にて全ページのページカラー属性にＭＯＮＯをセット（設定）する。
【０１００】
ステップ１１０１にてジョブカラー属性がＭＯＮＯではないと判断された場合は、ステップ１１０２にてページ毎にカラーオブジェクトを含むかどうか解析する。
【０１０１】
ステップ１１０３にてページにカラーオブジェクトが存在すると判断された場合は、ステップ１１０４にて対象ページのページカラー属性にＣＯＬＯＲをセット（設定）する。ステップ１１０３にてページにカラーオブジェクトが存在しないと判断された場合は、ステップ１１０５にて対象ページのページカラー属性にＭＯＮＯをセット（設定）する。
【０１０２】
ステップ１１０２〜１１０５までの処理を、ジョブ中のすべてのページに対して行い、ステップ１１０７にて最終ページの処理が終わったと判断したら本処理を終了する。
【０１０３】
図１９（ａ）を例にとると、図２２（ａ）に示すカラー属性データが生成され、その後のスプールファイルマネージャ３０４の結合処理で図２２（ｂ）に示すカラー属性データが作られる。
【０１０４】
以下に、ジョブの両面属性に関して、片面指定と両面指定がそれぞれ設定されたジョブが結合される場合を例に説明する。
【０１０５】
図２３に示すように、片面指定のジョブ（Ｊｏｂ１）と両面指定のジョブ（Ｊｏｂ２）を結合する場合を例にとる。ジョブには両面属性についても１つの設定しかできないので、結合後に片面指定及び両面指定の何れかを設定することになり、図２３のようなジョブを結合する場合、各ジョブの当初の設定通りのユーザが意図する出力が行われない。
【０１０６】
ここではその解決方法を示す。
【０１０７】
図２５（ａ）は、図２３で示すそれぞれのジョブで設定されているジョブの両面属性である。図に示すように、設定値はＳＩＭＰＬＥＸ（片面）とＤＵＰＬＥＸ（両面）がある。
【０１０８】
まず、スプーラ３０２では、図５に示す処理により図２５（ｂ）に示す両面属性データが作られる。次に、スプールファイルマネージャ３０４では、図６に示す処理により図２５（ｃ）に示す両面属性データが生成される。
【０１０９】
ジョブの両面属性がＡＵＴＯＤＵＰＬＥＸの場合、図７のステップ７０４の判断を経てステップ７０７が実行される。
【０１１０】
図１２は、片面／両面ジョブの処理に関して、図７のステップ７０７、すなわちページ属性に応じたページ描画データの加工について詳細を説明したフローチャートである。なお、結合後は、プリンタにおいてジョブ全体に対して両面印刷が行われる。
【０１１１】
ステップ１２０１にて、まず処理中のページに関して印刷命令を再生成する。
【０１１２】
ステップ１２０２にてデスプーラ３０５は、ページ両面属性がＤＵＰＬＥＸであるかどうか判断する。ここでＮｏの場合はステップ１２０３にて白紙ページを挿入し、ステップ１２０４にて当該白紙ページの出力に対して課金されないよう、白紙ページに対応付けて白紙非課金コマンドを発行する。
【０１１３】
ステップ１２０２にてＤＵＰＬＥＸだった場合は、従来通り印刷データを送ればよいので何もせずに終了する。
【０１１４】
以上の処理により、図２４に示すように属性が片面指定と両面指定のジョブを、ジョブ結合により印刷した場合でも、それぞれの設定通りに出力されることになる。また挿入した白紙ページに関しても非課金で印刷される。
【０１１５】
［属性の設定手法の拡張について］
なお、ここまでの例では各ジョブの設定はユーザが行うことを想定していたが、続けて、アプリケーション名や印刷内容に応じて自動的に属性が決まる制御方法と連携させる処理に関して説明する。
【０１１６】
例えば、図２６に示す条件に従ってジョブのカラー属性が決まる場合を考える。前提として、文書作成用アプリケーションであるアプリケーション名“文書”、表計算用アプリケーションであるアプリケーション名“表計算”、及びブラウザアプリケーションであるアプリケーション名“ブラウズ”などのアプリケーションがあるとする。
【０１１７】
図２６では、アプリケーション名が“表計算”ならば属性はモノクロ（＃１）、“ブラウズ”ならば属性はカラー（＃２）となる。また、アプリケーション名が“文書”ならば通常、属性はモノクロだが（＃３）、印刷対象の文書中に「見積書」というキーワードが含まれる場合（＃４）、またはジョブ名が「Ｓｐｅｃ  Ｄｏｃｕｍｅｎｔ」の場合（＃５）には属性がカラーとなる。
【０１１８】
図２７は図２６の条件が記述されたファイルの例である。アプリケーション名（ＡｐｐＮａｍｅ）、ジョブ名（ＪｏｂＮａｍｅ）、及びキーワード（ＫｅｙＷｏｒｄ）の条件を記述すると、合致する条件のカラーモード（ＣｏｌｏｒＭｏｄｅ）がジョブの属性に設定される。
【０１１９】
なお、アプリケーション名により属性を設定する例を説明するが、アプリケーションの目的（文書作成や表計算）などによって同様な処理を行うとしてもよい。
【０１２０】
図１３は、上記の属性の設定処理の詳細を説明するためのフローチャートであり、図５のステップ５０５での処理の一部として実現される。
【０１２１】
まずステップ１３０１にて、図２７に例示したような条件ファイルを読み込む。
【０１２２】
次にステップ１３０２にて、受信したジョブのアプリケーション名およびジョブ名を取得し、条件ファイルと比較する。アプリケーション名とジョブ名は、スプール開始時点で知ることができる。アプリケーション名は実行モジュール名で判断することができる。ジョブ名はアプリケーションが自由に生成できるが、ファイル名などがよく使われる。ここで、ジョブ名の検索は完全一致だけでなく、部分一致、前方一致、後方一致などが適用できることは言うまでもない。
【０１２３】
ステップ１３０３にて、ジョブに含まれる情報が条件ファイル中のいずれかの条件にヒットするか判定し、いずれにもヒットしなければジョブの属性の変更をせず（ステップ１３１０）、アプリケーションやプリンタドライバで設定された属性値がジョブの属性として使われる。
【０１２４】
ステップ１３０３にて、いずれかの条件にヒットした場合、ステップ１３０４にてさらに同条件の中にキーワードオプションが指定されている条件があるか確認する。図２６を例にとると、＃３と＃４がその関係にある。すなわち、アプリケーション名が“文書”、かつジョブ名が“Ｓｐｅｃ  Ｄｏｃｕｍｅｎｔ”、以外であるようなジョブでも、＃４にはキーワードオプションが存在するため、本判定ではＹｅｓと判定される。
【０１２５】
ステップ１３０４にてキーワードオプションがないと判断された場合、これ以上ほかにヒットする条件は存在しない。このときは、ステップ１３０５にてアプリケーション名／ジョブ名の条件でヒットした条件に割り当てられている出力設定を取得し、ステップ１３０６にて取得した出力設定を用いて本ジョブのジョブ属性をリセットする。
【０１２６】
ステップ１３０４にてキーワードオプションが存在すると判断された場合、ステップ１３０７にてページ描画データの内容を解析する。その後、ステップ１３０８にて指定されたキーワードが存在するか否かを判断する。ステップ１３０８にて、指定されたキーワードが存在すると判断した場合、ステップ１３０９にて、該当する条件に割り当てられている出力設定（属性値）を取得し、ステップ１３０６で、取得した出力設定で本ジョブのジョブ属性を再設定する。
【０１２７】
ステップ１３０８にて指定するキーワードが存在しないと判断された場合は、キーワードオプションのない条件にヒットしたことに相当するので、ステップ１３０５へ進む。
【０１２８】
たとえば、図２８に示す３つのジョブをそれぞれ受信した場合を例にとって説明する。
１．受信時は、ステップ１３０３にて図２６条件＃１にヒットし、ステップ１３０４ではキーワードオプションは存在しないため、ステップ１３０５にてジョブカラー属性には「モノクロ」がセットされる。
２．受信時は、同様に条件＃５にヒットしてジョブカラー属性には「カラー」がセットされる。
３．受信時はステップ１３０４、ステップ１３０８を経て条件＃４にヒットし、ステップ１３０９にてジョブカラー属性には「カラー」がセットされる。
【０１２９】
図２９は、図２８に示す３つのジョブを本処理方法で一時スプールし、一括印刷した場合の概要を示した図である。それぞれのジョブはスプーラ３０２でジョブ属性が決定し、スプールファイルマネージャ３０４で結合され、デスプーラ３０５で設定通りに印刷される。ここでは、属性の設定手法の拡張として、アプリケーション名などによりジョブのカラー属性が決定される点が見てとれる。
【０１３０】
［第２実施形態］
以下、第２実施形態について説明する。
【０１３１】
第２実施形態は全体の構成は第１実施形態と同じであり、各々図１から図７にて示される。
【０１３２】
第１実施形態との相違点は、スプールされたすべてのジョブを一律結合するのではなく、出力設定に応じて適宜結合すべきジョブを選んで結合し、複数の結合ジョブをデスプーラ３０５に対して印刷要求を行う点である。
【０１３３】
ここで、特別な設定をしたジョブに関して、本実施例において考慮する。たとえば、プリンタのボックスに保存を行う指示を含むジョブは、実際に印刷出力するのではなくプリンタのＨＤＤ等に保存されることになる。このジョブを、印刷出力を伴うジョブを含めて、一律ひとまとめに結合すると、ユーザの意図に反する出力が行われる。
【０１３４】
そこで第２の実施例では、出力方法が異なるジョブをユーザが区別せずに一括印刷要求しても、後述する制御手法による適切に仕分けを行い、通常印刷するものは結合して印刷し、その他の特別な出力設定をしたものはその設定通りに出力する方法を示す。
【０１３５】
図３０は、本制御手法の主体として動作するスプールファイルマネージャ３０４の処理の詳細を説明するフローチャートを示す。前述した図６と同様な処理に関しては、同一の符号を付してあり、ここでは図６で説明した処理との差異を説明する。
【０１３６】
ステップ６０５にて一括印刷要求と判断した場合、ステップ３０１１にてジョブの出力設定をチェックし、独立して出力すべきジョブが混在していると判断した場合は、通常印刷すべきジョブだけを選んで結合する。他のジョブは結合処理をスキップする、あるいは、それぞれの出力設定毎にグループ化して各グループでジョブ結合する、などのグルーピングを行う。
【０１３７】
ステップ３０１４にて、結合処理後に存在するひとつ以上のジョブについて、それぞれデスプーラ３０５に対して印刷要求を行う。なお、出力設定に応じた処理の例は、後述する。
【０１３８】
ステップ３１００のその他の処理とは、すでに説明した処理と変わらないことを意味する。すなわち、図６のステップ６０６からステップ６０８の判断に応じた処理は、図３０でも適用されるものとする。
【０１３９】
特別な出力設定の一例として、ボックス保存やセキュアプリント、追い越し印刷などがある。ボックス保存はプリンタ本体のＨＤＤに印刷ジョブ（もしくは印刷対象のデータ）を保存する。セキュアプリントは、プリンタで受信したジョブについて、ユーザによりプリンタのパネルなどでパスワードを入力されるまで印刷を止めておく。追い越し印刷は、そのジョブが優先的に印刷される。よって、これらのジョブは通常の印刷出力を行うジョブとの結合は適さない。これらの特別な出力設定のジョブは結合対象とせず、通常の印刷出力のものだけを対象に前述したような結合処理を行うこととする。
【０１４０】
図３１は、図３０のステップ３０１１における処理の詳細を説明するためのフローチャートである。
【０１４１】
ステップ３１０１にて、ジョブの出力設定をチェックする。
【０１４２】
ステップ３１０２にて、上述の特別な出力設定だと判断された場合は、ステップ３１０４にて、独立ジョブとして結合をスキップする。ステップ３１０２にて一般出力設定だと判断した場合には、ステップ３１０３にて結合処理を行い、中間ジョブファイルや属性データの結合処理や、ジョブ管理リストの更新を行う。
【０１４３】
以上、ステップ３１０１〜３１０４までの処理をスプールされているすべての中間ジョブファイルに対して行い、ステップ３１０５にて最後のジョブの処理が完了したと判断したら終了する。尚、本処理では特別な出力設定以外の中間ジョブを次々に結合処理していくが、全ジョブを解析した後に結合されるべき中間ジョブファイルをまとめて結合してもよい。
【０１４４】
図３２は、本実施例を適用して印刷を行った例である。Ｊ１からＪ５までの５つの印刷要求があり、Ｊ２にはセキュアプリント、Ｊ５にはボックス保存の指定があった場合、Ｊ２とＪ５はステップ３１０４の処理が、残りのジョブはステップ３１０３の処理が適用され、最終的には３ジョブが出力される。
【０１４５】
［他の特別な出力設定１］
特別な出力設定の別の例として、部門管理情報（ビリングコード）が設定されたジョブがある。プリンタで印刷処理などの実績を正しく集計するため、異なるビリングコードが設定されているジョブを結合することは好ましくない。この部門管理の設定がなされたジョブはビリングコードに応じた結合処理を行う必要がある。
【０１４６】
なお、本処理では、ジョブの出力順序が重要でない場合（特に、事前にユーザが設定していない場合など）は、ジョブを並べ替えて同じビリングコードを持つグループに対してジョブの結合処理を行う。出力順序が重要な場合は、前後のジョブ間でビリングコードをチェックして、同じなら結合処理を行う。以上の制御を行うことで、トータルジョブ数を減り、ジョブ間に想定しない他のジョブが割り込むの可能性を減らすことができる。
【０１４７】
図３３は、図３０のステップ３０１１における本処理に特有の処理の詳細を説明するためのフローチャートである。
【０１４８】
ステップ３３０１にて、ジョブの出力設定をチェックする。
【０１４９】
ステップ３３０２で本印刷システムがビリングコードを含む設定または環境であるかチェックし、ビリングコードが含まないならば、ステップ３３０９にて全中間ジョブファイルを結合する。例えば、部門管理を行っていない印刷環境などでは当然ビリングコードはジョブに設定されない。
【０１５０】
ステップ３３０２にてビリングコードが含むと判断された場合、さらにステップ３３０３で出力順序を優先するかを判断する。なお、通常はユーザが印刷要求を発行した順に出力されるが、出力順序を優先しない場合はより多くのジョブを可能な限り結合するよう結合処理を優先することができる。これは、あらかじめＵＩ等（不図示）でユーザが印刷要求の順序で出力することを設定する。
【０１５１】
ステップ３３０３で出力順序優先と判断された場合、２番目の中間ジョブファイル以降であればステップ３３０４にてビリングコードが前の中間ジョブファイルと同じかチェックし、同じ場合はステップ３３０５にて前の中間ジョブファイルとの結合処理を行う。ステップ３３０４にてビリングコードが前の中間ジョブファイルと同じでなかったと判断された場合は、結合処理は行わない。
【０１５２】
以上、ステップ３３０４〜３３０５までの処理をスプールされているすべての中間ジョブファイルに対して行い、ステップ３３０６にて最後のジョブの処理が完了したと判断した場合に本処理を終了する。
【０１５３】
ステップ３３０３にて出力順序優先していないと判断された場合、ステップ３３０７にて中間ジョブファイルに設定されたビリングコード毎にグループ化し、ステップ３３０８にてそれぞれのビリングコードのグループ毎にジョブの結合処理を行う。
【０１５４】
尚本処理における中間ジョブファイルの結合処理に関しては、前述の実施形態と同様の処理を行うことになる。
【０１５５】
［他の特別な出力設定２］
この他、別の出力設定の例として、ステイプルやパンチなどのフィニッシング機能がある。プリンタ側に、ジョブの一部のページのみにこれらフィニッシング設定を適用する機能がない場合は、ひとつのジョブに対してまとめて処理を行うことになるため、そのような設定がない印刷ジョブとの結合処理は適さない。本処理では、これらの特別なフィニッシング設定のジョブは結合対象とせず、それ以外の出力設定の印刷出力のものだけを対象に結合処理を行う。
【０１５６】
図３４は、図３０のステップ３０１１における本処理に特有の処理の詳細を説明するためのフローチャートである。
【０１５７】
ステップ３４０１にて、ジョブの出力設定をチェックする。
【０１５８】
ステップ３４０２にて、ステイプルやパンチなどのフィニッシング設定がされていると判断された場合は、ステップ３４０４にて、独立ジョブとして結合処理をスキップする。
【０１５９】
ステップ３４０２にて、ステイプルやパンチなどのフィニッシング設定がされていないと判断された場合は、ステップ３４０３にて該当する中間ジョブファイルの結合処理を行う。ここでは、前述のように属性データ等も含む結合処理や、ジョブ管理リストの更新などが行われる。
【０１６０】
以上、ステップ３４０１〜３４０４までの処理をスプールされているすべての中間ジョブに対して行い、ステップ３４０５にて最後のジョブの処理が完了したと判断された場合に、本処理を終了する。
【０１６１】
［複数ジョブの送信手法の拡張について］
図３１〜３４で示したフローチャートでは、ジョブが複数存在するため割り込み印刷がなされる可能性がある。ここでは、中間ジョブファイルの結合処理による印刷を行わないものに対しても極力割り込みを避ける手法を説明する。
【０１６２】
ここでは、システムスプーラ２０４を一時停止し、その間に全中間ジョブファイルに関するプリンタドライバ２０３での処理を行う。プリンタドライバ２０３によって生成された出力データはシステムスプーラで留め置きされ、一時停止の解除によって、ほぼまとめて次々にプリンタに送信されることになる。
【０１６３】
プリンタドライバ２０３での処理には時間を要するため、プリンタドライバ２０３での処理をしながらシステムスプーラを介してプリンタへの送信を行うと、プリンタドライバ２０３での処理をすべて完了してから送信するよりも総処理時間が短縮される。
【０１６４】
しかしながら、プリンタドライバ２０３での処理をすべて完了してから送信したほうが各ジョブの送信の間隔を短縮でき、それにより例えば他のクライアントからのジョブとバッティングする確率は下がり、それらジョブが割り込む可能性は低減する。またバイナリレベルでの送信が連続するため、プリンタのネットワーク接続処理方法によっては、連続ジョブと判断されるといったメリットもある。
【０１６５】
以上の処理は、デスプーラ３０５がシステムスプーラ２０４を一時停止／解除を行うことで実現する。
【０１６６】
さらに割り込み確率を下げるために、サイズの小さなジョブから送るようスケジューリングを行うといった処理を行う。これは、２つのジョブを送る場合、１ジョブ目のサイズが小さければすぐに２ジョブ目の受信が始まり、プリンタが２ジョブ目の受信を始めれば割り込みはなくなるからである。
【０１６７】
図３５は、図３０のステップ３０１４における本処理に特有の処理の詳細を説明するためのフローチャートである。
【０１６８】
ステップ３５０１にて印刷すべき結合ジョブを含むジョブが複数あるかチェックし、ひとつしかない場合（Ｎｏ）は、ステップ３５０６にてデスプーラ３０５に印刷要求を行い、本処理を終了する。複数の印刷すべきジョブがあると判断された場合（ステップ３５０１−Ｙｅｓ）は、ステップ３５０２にてＯＳ（オペレーティングシステム）への要求を通してシステムスプーラ２０４を一時停止する。
【０１６９】
ステップ３５０３にてデスプーラ３０５に印刷要求をすると、プリンタドライバ２０３がレンダリングを実行し、レンダリング実施済の出力ジョブ（プリンタ制御コマンド）はシステムスプーラ２０４に送られる。ここで、システムスプーラ２０４が一時停止状態のため、出力ジョブは一時的に蓄積される。
【０１７０】
ステップ３５０３の処理を印刷出力すべきジョブの数だけ実施し、ステップ３５０４にて最後のジョブの処理が完了したと判断したら、ステップ３５０５にてシステムスプーラ２０４の一時停止を解除する。この解除により、システムスプーラ２０４に溜められていた複数の出力ジョブは、まとめてプリンタに送信される。
【０１７１】
第２実施形態によれば、ユーザは特別な出力設定を持つ複数の印刷ジョブでも気にせずスプールし、「一括印刷」を指示すれば、本制御手法によって自動でプリンタにおける割り込みを極力抑えるよう、適宜結合処理され、プリンタにジョブが出力される。これによりユーザが自らジョブの設定を意識して一括印刷すべきジョブを選択してスプールする手間が省ける。また、複数ジョブがひとつに結合されない場合であっても、上述した出力方法を取ることで極力割り込みが起こらないように、ひとまとめにプリンタへ出力することができる。
【０１７２】
以上説明したように、本発明によれば、ユーザ所望の印刷順序を保持し、また他のジョブが割り込むことを防止するために、印刷装置に送信する前に複数のジョブをひとつに結合する手法をとり、さらに以下のような柔軟な構成を提供した。
【０１７３】
具体的には、結合したジョブに対して１つしか設定することが出来ないジョブの属性（印刷設定）であっても、結合後のジョブの属性と各ページの属性の設定を工夫することで、ユーザが望むであろう結合前の各ジョブの属性に従う印刷出力を可能とした。
【０１７４】
ここで、ジョブに対して１つしか設定することが出来ない属性とは、カラー属性や両面属性などがある。また、本発明においては、ステイプル指定や製本印刷指定などの後処理、部門管理設定やセキュアプリントなど、様々な印刷設定においてもユーザの望む出力を維持しつつ、ジョブ結合処理を利用した印刷制御をおこなっている。
【０１７５】
また、ホストコンピュータ側でジョブ結合を行うことで、割り込み防止処理などのプリンタ側の設計変更を必要としないので、上述した構成を鑑みると、非常に低コストで柔軟な印刷制御が実現することができるといえる。
【図面の簡単な説明】
【０１７６】
【図１】本発明の一実施例を示す画像処理装置の構成を説明するブロック図である。
【図２】通常印刷を行う印刷パスを説明するための図である。
【図３】本実施形態における拡張印刷を行う印刷パスを説明するための図である。
【図４】スプール印刷モードに応じた処理を説明するためのフローチャートである。
【図５】スプーラ３０２における処理を説明するためのフローチャートである。
【図６】スプールファイルマネージャ３０４における処理を説明するためのフローチャートである。
【図７】デスプーラ３０５における処理を説明するためのフローチャートである。
【図８】スプーラ３０２内でのカラー処理を説明するためのフローチャートである。
【図９】スプールファイルマネージャ３０４内でのカラー処理を説明するためのフローチャートである。
【図１０】デスプーラ３０５内でのカラー処理を説明するためのフローチャートである。
【図１１】スプーラ３０２内でのカラー処理（自動カラー判定を加味）を説明するためのフローチャートである。
【図１２】デスプーラ３０５内での両面処理を説明するためのフローチャートである。
【図１３】アプリケーションや印刷内容に応じて自動でカラー属性を決める処理を説明するためのフローチャートである。
【図１４】スプール印刷モードを切り替えるＵＩ例を示す。
【図１５】スプールファイルマネージャのＵＩ例を示す。
【図１６】スプールファイルを管理するデータ構造の一例を示す。
【図１７】グループ印刷による出力例を示す。
【図１８】ジョブ結合する際に、統一が必要な属性と不要な属性の分類の一例を示す。
【図１９】カラー／モノクロジョブが混載する際の印刷時の既存の動作例を示す。
【図２０】カラー／モノクロジョブが混載する際の印刷時の本発明での動作例を示す。
【図２１】カラー属性に関する属性ファイルの例を示す。
【図２２】カラー属性に関する属性ファイル（自動カラー判定を加味）の例を示す。
【図２３】片面／両面ジョブが混載する際の印刷時の既存の動作例を示す。
【図２４】片面／両面ジョブが混載する際の印刷時の本発明での動作例を示す。
【図２５】両面属性に関する属性ファイルの例を示す。
【図２６】カラー判定の条件一覧の例を示す。
【図２７】カラー判定の条件ファイルの例を示す。
【図２８】入力データの例を示す。
【図２９】アプリケーションに応じたカラー判定に関する本発明での動作例を示す。
【図３０】スプールファイルマネージャ３０４で、ジョブを結合しない例外処理を説明するためのフローチャートである。
【図３１】特別な出力設定がされている場合の例外処理を説明するためのフローチャートである。
【図３２】実施例を適用した場合の動作例を示す。
【図３３】部門管理設定がされている場合の例外処理を説明するためのフローチャートである。
【図３４】特別なフィニッシング設定がされている場合の例外処理を説明するためのフローチャートである。
【図３５】複数の出力ジョブを一括して送信する処理を説明するためのフローチャートである。
【符号の説明】
【０１７７】
１  ＣＰＵ
２  ＲＡＭ
３  ＲＯＭ
４  システムバス
１２  ＣＰＵ
１３  ＲＯＭ
１９  ＲＡＭ
３０００  ホストコンピュータ
１５００  プリンタ
【図１】
2010122958.tif 000003
【図２】
2010122958.tif 000004
【図３】
2010122958.tif 000005
【図４】
2010122958.tif 000006
【図５】
2010122958.tif 000007
【図６】
2010122958.tif 000008
【図７】
2010122958.tif 000009
【図８】
2010122958.tif 000010
【図９】
2010122958.tif 000011
【図１０】
2010122958.tif 000012
【図１１】
2010122958.tif 000013
【図１２】
2010122958.tif 000014
【図１３】
2010122958.tif 000015
【図１４】
2010122958.tif 000016
【図１５】
2010122958.tif 000017
【図１６】
2010122958.tif 000018
【図１７】
2010122958.tif 000019
【図１８】
2010122958.tif 000020
【図１９】
2010122958.tif 000021
【図２０】
2010122958.tif 000022
【図２１】
2010122958.tif 000023
【図２２】
2010122958.tif 000024
【図２３】
2010122958.tif 000025
【図２４】
2010122958.tif 000026
【図２５】
2010122958.tif 000027
【図２６】
2010122958.tif 000028
【図２７】
2010122958.tif 000029
【図２８】
2010122958.tif 000030
【図２９】
2010122958.tif 000031
【図３０】
2010122958.tif 000032
【図３１】
2010122958.tif 000033
【図３２】
2010122958.tif 000034
【図３３】
2010122958.tif 000035
【図３４】
2010122958.tif 000036
【図３５】
2010122958.tif 000037
【手続補正書】
【提出日】平成22年1月26日(2010.1.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
印刷装置に送信すべき印刷データを生成する印刷制御装置であって、
アプリケーションにより生成された印刷すべきデータが中間コード形式のジョブに変換され、当該ジョブとジョブに設定されるジョブ属性とを関連付けて一時的に保持する保持手段と、
前記保持手段により保持された中間コード形式のジョブに設定されるジョブ属性に応じて、当該ジョブに含まれる各ページのページ属性の値を付与する付与手段と、
前記保持手段により保持された複数の中間コード形式のジョブを１つの結合ジョブにする結合指示を行う結合指示手段と、
１つのジョブに対して１つの値しか付与できない特定のジョブ属性の値が異なる複数のジョブを前記結合指示手段により１つの結合ジョブにする結合指示がなされた場合に、前記付与手段によって付与されたページ属性の値に基づく印刷出力が行われる結合ジョブを生成する生成手段と、
前記生成手段により生成された結合ジョブを印刷データとして印刷装置に送信する送信手段とを備えることを特徴とする印刷制御装置。
【請求項２】
前記１つのジョブに対して１つの値しか付与できない特定のジョブ属性とは、カラー属性であり、
前記付与手段は、前記中間コード形式のジョブに設定されるカラー属性がモノクロであった場合には当該ジョブに含まれる各ページのページカラー属性の値としてモノクロ設定を付与し、前記中間コード形式のジョブに設定されるカラー属性がカラーであった場合には当該ジョブに含まれる各ページのページカラー属性の値としてカラー設定を付与することを特徴とする請求項１に記載の印刷制御装置。
【請求項３】
前記付与手段は、前記中間コード形式のジョブに設定されるカラー属性がカラーであった際に、各ページのページカラー属性の値として、ページにカラーオブジェクトが含まれている場合にはカラー設定を、含まれていない場合にはモノクロ設定を付与することを特徴とする請求項２に記載の印刷制御装置。
【請求項４】
前記付与手段は、前記中間コード形式のジョブの各ページのページカラー属性の値を、前記印刷すべきデータを生成したアプリケーションに関する情報、前記印刷すべきデータに含まれるキーワード、及び前記印刷すべきデータに対応する中間コード形式のジョブの名前の少なくとも１つに応じて、付与することを特徴とする請求項１乃至３のいずれか１項に記載の印刷制御装置。
【請求項５】
前記結合印刷指示手段による結合指示に基づく結合の際に、結合の対象となる複数の中間コード形式のジョブの出力設定を解析し、結合できるかどうか判断する判断手段と、
前記判断手段により結合できると判断された場合に、前記生成手段により結合ジョブを生成することを特徴とする請求項１乃至４のいずれか１項に記載の印刷制御装置。
【請求項６】
印刷装置に送信すべき印刷データを生成する印刷制御装置における印刷制御方法であって、
アプリケーションにより生成された印刷すべきデータが中間コード形式のジョブに変換され、当該ジョブとジョブに設定されるジョブ属性とを関連付けて一時的に保持するための保持工程と、
前記保持された中間コード形式のジョブに設定されるジョブ属性に応じて、当該ジョブに含まれる各ページのページ属性の値を付与する付与工程と、
前記保持された複数の中間コード形式のジョブを１つの結合ジョブにする結合指示を行う結合指示工程と、
１つのジョブに対して１つの値しか付与できない特定のジョブ属性の値が異なる複数のジョブを前記結合指示工程で１つの結合ジョブにする結合指示がなされた場合に、前記付与工程で付与されたページ属性の値に基づく印刷出力が行われる結合ジョブを生成する生成工程とを備え、
前記生成された結合ジョブが、印刷データとして印刷装置に送信されることを特徴とする印刷制御方法。
【請求項７】
請求項６に記載の印刷制御方法をコンピュータにより実現するためのプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】変更
【補正の内容】
【００１１】
上記課題を解決するために、本発明における印刷制御装置は、アプリケーションにより生成された印刷すべきデータが中間コード形式のジョブに変換され、当該ジョブとジョブに設定されるジョブ属性とを関連付けて一時的に保持する保持手段と、前記保持手段により保持された中間コード形式のジョブに設定されるジョブ属性に応じて、当該ジョブに含まれる各ページのページ属性の値を付与する付与手段と、前記保持手段により保持された複数の中間コード形式のジョブを１つの結合ジョブにする結合指示を行う結合指示手段と、１つのジョブに対して１つの値しか付与できない特定のジョブ属性の値が異なる複数のジョブを前記結合指示手段により１つの結合ジョブにする結合指示がなされた場合に、前記付与手段によって付与されたページ属性の値に基づく印刷出力が行われる結合ジョブを生成する生成手段と、前記生成手段により生成された結合ジョブを印刷データとして印刷装置に送信する送信手段とを備えることを特徴とする。