印刷制御装置、印刷制御方法、及びプログラム
【課題】 割り込みのない印刷を実行するためにホストコンピュータにおいて複数ジョブを結合して印刷要求を行う際にも、ユーザ所望の印刷属性で印刷出力が行える印刷制御手法を提供することを目的としている。
【解決手段】 本発明の印刷制御装置は、所定の保持部に保持されたジョブに設定されるジョブ属性に応じて、当該ジョブに含まれる各ページのページ属性の値を付与し、前記保持されたジョブの両面属性の値が異なる複数のジョブを1つの結合ジョブにする結合指示がなされた場合に、ジョブの両面属性として前記付与されたページ属性の値に基づく印刷出力が行われる特定の値が設定された結合ジョブを生成することを特徴とする。
【解決手段】 本発明の印刷制御装置は、所定の保持部に保持されたジョブに設定されるジョブ属性に応じて、当該ジョブに含まれる各ページのページ属性の値を付与し、前記保持されたジョブの両面属性の値が異なる複数のジョブを1つの結合ジョブにする結合指示がなされた場合に、ジョブの両面属性として前記付与されたページ属性の値に基づく印刷出力が行われる特定の値が設定された結合ジョブを生成することを特徴とする。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数のジョブを印刷する際に、他のジョブからの印刷を割り込ませることなく連続した印刷を行うよう制御する手法に関するものである。
【背景技術】
【0002】
複数のジョブを共有プリンタに印刷する際に、他人のジョブが紛れ込むことによる取り違えや面倒な仕分け作業を軽減・防止するグループ印刷技術がある。
【0003】
特許文献1によると、グループ印刷したい印刷ジョブにはグループに固有のグループ識別子、そのグループのジョブ数、グループ内での順序を示す値を持たせておく。プリンタはそのグループの全ジョブが揃うまでプリンタ内に印刷データを保持し、揃った時に一気に印刷することで、グループ以外のジョブの混入を防いでいる。また、ジョブの受信順序が変わった場合でもグループ内で指定された順で印刷を行っている。
【0004】
また特許文献2によると、設定した時間以内の同一ユーザからの印刷要求に関しては、他のユーザからのジョブの印刷を保留するといった技術の開示がある。
【0005】
特許文献3によると、複数の印刷ジョブをいったんプリントサーバに溜めておき、プリンタの前でカードをかざすなどしてプルプリントを行うことで、印刷時に出力先を指定しなくても任意のプリンタでまとめて印刷を行うことができる、という技術の開示がある。そして、プルプリント中は優先的にそれらジョブを処理することで、他ジョブの混入を防いでいる。
【0006】
上述した従来技術に関しては、プリンタ側でジョブに付加されたグループ識別子やユーザ情報を識別し、それに基づきジョブの割り込み制限などの特別な処理を行う必要があった。さらに、特許文献3に開示された技術では、プリントサーバ、カードリーダ、及びカード認証システムなどが必要となり、システムを導入するためのコストが高いといったことを考えると、より良い提案が望まれている。
【0007】
一方、これら技術に対して、ホスト側で複数のジョブを1つのジョブに結合することで、プリンタに特別な機能がなくても、複数のジョブを割り込まれること無く連続して印刷する技術がある。例えば、特許文献4によると、印刷ジョブをホスト上でいったん中間ファイルに保存し、それら複数ジョブの結合している。このジョブ結合により想定外の他ジョブの混入を防ぐことができる。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2006−192804号公報
【特許文献2】特開2005−149159号公報
【特許文献3】特開2005−202723号公報
【特許文献4】特開2001−134394号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
プリンタ側の特別な制御を強いることなく、ユーザ所望の複数のジョブを、他のジョブに割り込まれること無く連続して印刷する特許文献4の技術は、ユーザにとって有益な技術といえる。
【0010】
しかしながら、この技術においても既存の印刷システムの制限により、1つ印刷ジョブに対しては1つの設定しか行えない印刷属性などがあり、ジョブ結合の際して、各ジョブにおいて印刷属性の設定が変わってしまう場合があった。
【0011】
そこで、本発明においては、複数のジョブを結合して結合ジョブを生成する際にも、各ジョブの印刷属性などを考慮して、ユーザ所望の印刷出力を得るといった手法を提供することを目的とする。
【課題を解決するための手段】
【0012】
上記課題を解決するために、たとえば、印刷装置で印刷されるべき印刷データを処理する本発明における印刷制御装置は、アプリケーションにより生成された印刷すべきデータから変換されたジョブと、ジョブに設定されるジョブ属性とが関連付けて所定の保持部に一時的に保持されている際に、前記保持されたジョブに設定されるジョブ属性に応じて、当該ジョブに含まれる各ページのページ属性の値を付与する付与手段と、前記保持された複数のジョブを1つの結合ジョブにする結合指示を行う結合指示手段と、1つのジョブに対して1つの値しか付与できないジョブの両面属性の値が片面であるジョブと両面であるジョブとを含む複数のジョブを前記結合指示手段により1つの結合ジョブにする結合指示がなされた場合に、ジョブの両面属性として前記付与手段によって付与されたページ属性の値に基づく印刷出力が行われる特定の値が設定された結合ジョブを生成する生成手段とを備え、前記生成手段により生成されたジョブの両面属性に前記特定の値が設定された結合ジョブは、前記印刷装置において前記ページ属性の値に基づく印刷出力が行われることを特徴とする。
【発明の効果】
【0013】
本発明によれば、複数のジョブを結合して結合ジョブを生成する際にも、各ジョブの印刷属性などを考慮して、ユーザ所望の印刷出力を得るといった手法を提供することができる。
【0014】
とくに、本発明のように印刷制御装置において結合ジョブを生成することで、印刷装置において特に特殊な設計を行わなくても、ユーザの意図しないジョブの割り込み印刷などを防ぐことが可能となる。
【図面の簡単な説明】
【0015】
【図1】本発明の一実施例を示す画像処理装置の構成を説明するブロック図である。
【図2】通常印刷を行う印刷パスを説明するための図である。
【図3】本実施形態における拡張印刷を行う印刷パスを説明するための図である。
【図4】スプール印刷モードに応じた処理を説明するためのフローチャートである。
【図5】スプーラ302における処理を説明するためのフローチャートである。
【図6】スプールファイルマネージャ304における処理を説明するためのフローチャートである。
【図7】デスプーラ305における処理を説明するためのフローチャートである。
【図8】スプーラ302内でのカラー処理を説明するためのフローチャートである。
【図9】スプールファイルマネージャ304内でのカラー処理を説明するためのフローチャートである。
【図10】デスプーラ305内でのカラー処理を説明するためのフローチャートである。
【図11】スプーラ302内でのカラー処理(自動カラー判定を加味)を説明するためのフローチャートである。
【図12】デスプーラ305内での両面処理を説明するためのフローチャートである。
【図13】アプリケーションや印刷内容に応じて自動でカラー属性を決める処理を説明するためのフローチャートである。
【図14】スプール印刷モードを切り替えるUI例を示す。
【図15】スプールファイルマネージャのUI例を示す。
【図16】スプールファイルを管理するデータ構造の一例を示す。
【図17】グループ印刷による出力例を示す。
【図18】ジョブ結合する際に、統一が必要な属性と不要な属性の分類の一例を示す。
【図19】カラー/モノクロジョブが混載する際の印刷時の既存の動作例を示す。
【図20】カラー/モノクロジョブが混載する際の印刷時の本発明での動作例を示す。
【図21】カラー属性に関する属性ファイルの例を示す。
【図22】カラー属性に関する属性ファイル(自動カラー判定を加味)の例を示す。
【図23】片面/両面ジョブが混載する際の印刷時の既存の動作例を示す。
【図24】片面/両面ジョブが混載する際の印刷時の本発明での動作例を示す。
【図25】両面属性に関する属性ファイルの例を示す。
【図26】カラー判定の条件一覧の例を示す。
【図27】カラー判定の条件ファイルの例を示す。
【図28】入力データの例を示す。
【図29】アプリケーションに応じたカラー判定に関する本発明での動作例を示す。
【図30】スプールファイルマネージャ304で、ジョブを結合しない例外処理を説明するためのフローチャートである。
【図31】特別な出力設定がされている場合の例外処理を説明するためのフローチャートである。
【図32】実施例を適用した場合の動作例を示す。
【図33】部門管理設定がされている場合の例外処理を説明するためのフローチャートである。
【図34】特別なフィニッシング設定がされている場合の例外処理を説明するためのフローチャートである。
【図35】複数の出力ジョブを一括して送信する処理を説明するためのフローチャートである。
【発明を実施するための形態】
【0016】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【0017】
[第1実施形態]
図1は本発明における印刷システムに含まれるホストコンピュータ及びプリンタの構成を説明するブロック図である。なお、後述するような本発明の機能が実行されるのであれば、特にシステム構成はこれに限定されない。
【0018】
同図において、印刷制御装置としてのホストコンピュータ3000に関して説明する。ホストコンピュータ3000はCPU1を備え、ROM3のプログラム用ROMあるいは外部メモリ11に記憶された、例えば文書処理プログラム等に基づいて文書や画像の処理を実現する。また、CPU1は、システムバス4に接続される各構成を総括的に制御する。
【0019】
また、このROM3のプログラム用ROMあるいは外部メモリ11には、CPU1の制御プログラムであるオペレーティングシステム(以下OS)等を記憶している。また、ROM3のフォント用ROMあるいは外部メモリ11には、上述した文書処理の際などに使用するフォントデータ等を記憶し、データ用ROMあるいは外部メモリ11には各種処理等を行う際に使用する情報を記憶する。RAM2は、CPU1の主メモリ、ワークエリア等として機能する。
【0020】
キーボードコントローラ(KBC)5は、キーボード9や不図示のポインティングデバイスからのキー入力を制御する。CRTコントローラ(CRTC)6は、CRTディスプレイ(CRT)10の表示を制御する。ディスクコントローラ(DKC)7は、ブートプログラム、各種のアプリケーション、フォントデータ、及びプリンタ制御コマンド生成プログラム(以下プリンタドライバ)等を記憶する外部メモリ11とのアクセス制御を行う。また、外部メモリ11は、HDDやフロッピー(登録商標)ディスク(FD)等が含まれる。
【0021】
プリンタコントローラ(PRTC)8は、双方向性インターフェイス21を介してプリンタ1500に接続されて、プリンタ1500との通信制御処理を実行する。
【0022】
なお、CPU1は、例えばRAM2上に設定された表示情報メモリへのアウトラインフォントの展開(ラスタライズ)処理を実行し、CRT10上でのWYSIWYGを可能としている。また、CPU1は、CRT10上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウインドウを開き、種々のデータ処理を実現する。具体的には、ユーザは印刷を実行する際、印刷の設定に関するウインドウを開き、プリンタの設定や、印刷モードの選択を含むプリンタドライバに対する印刷要求の設定を行える。
【0023】
プリンタ1500に含まれる各構成は、CPU12により制御される。CPU12は、ROM13のプログラム用ROMに記憶された制御プログラム等、あるいは外部メモリ14に記憶された制御プログラム等に基づいて動作し、各種処理を実現する。
【0024】
CPU12は、印刷部I/F16を介してシステムバス15に接続される印刷部(プリンタエンジン)17に出力情報としての画像信号を出力する。また、このROM13のプログラムROMには、CPU12の制御プログラム等を記憶する。ROM13のフォント用ROMには上記出力情報を生成する際に使用するフォントデータ等が記憶されている。また、データ用ROMには、印刷処理を含む、各種処理等を行う際に使用する情報を記憶する。
【0025】
CPU12は入力部18を介してホストコンピュータとの通信処理が可能となっており、プリンタ内の情報等をホストコンピュータ3000に通知できる。RAM19は、CPU12の主メモリや、ワークエリア等として機能するRAMで、図示しない増設ポートに接続されるオプションRAMによりメモリ容量を拡張することができるように構成されている。なお、RAM19は、出力情報展開領域、環境データ格納領域、NVRAM等に用いられる。前述したハードディスク(HDD)、ICカード等の外部メモリ14は、メモリコントローラ(MC)20によりアクセスを制御される。外部メモリ14は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。また、入力部18は前述した操作パネルで操作のためのスイッチおよびLED表示器等が配されている。
【0026】
また、前述した外部メモリ14は複数個備えることが可能となっている。これにより、内蔵フォントに加えてオプションカード、言語系の異なるページ記述言語を解釈するプログラムを格納した外部メモリを複数接続して構成することができる。更に、図示しないNVRAMを有し、操作パネル1501からのプリンタモード設定情報を記憶するようにしてもよい。
【0027】
図2は、プリンタが所定の回線(LAN)などを用いて接続されているホストコンピュータにおける典型的な印刷処理を行うモジュールの構成図である。
【0028】
アプリケーション201、グラフィックエンジン202、プリンタドライバ203、およびシステムスプーラ204は、外部メモリ11に保存されたファイルとして存在する。そして、OSやそのモジュールを利用するモジュールによってRAM2にロードされ、実行される。また、アプリケーション201およびプリンタドライバ203は、外部メモリ11のFDや不図示のCDROM、あるいは不図示のネットワークを経由して外部ディスク11のHDDに追加することが可能となっている。
【0029】
アプリケーション201はRAM2にロードされて実行され、プリンタ1500に対して印刷を行う際には、同様にRAM2にロードされているグラフィックエンジン202を利用して出力(描画)を行う。
【0030】
グラフィックエンジン202は、印刷装置ごとに用意されたプリンタドライバ203を同様に外部メモリ11からRAM2にロードし、アプリケーション201の出力をプリンタドライバ203に設定する。そして、アプリケーション201から受け取るGDI(Graphic Device Interface)関数からDDI(Device Driver Interface)関数に変換して、プリンタドライバ203へDDI関数を出力する。プリンタドライバがDDIを通して受信した一連のデータを印刷ジョブ、または単にジョブと呼ぶ。1件の印刷要求に対してひとつの印刷ジョブができる。
【0031】
プリンタドライバ203は、グラフィックエンジン202から受け取ったDDI関数に基づいて、プリンタが認識可能な制御コマンド、例えばPDL(Page Description Language)に変換する。ここでは、ひとつの印刷要求から生成されたひとつの制御コマンドセットを印刷ジョブと呼ぶ。生成された印刷ジョブは、OSによってRAM2にロードされたシステムスプーラ204を経てインターフェイス21経由でプリンタ1500へ印刷データとして出力される仕組みとなっている。
【0032】
本実施形態においては、図2で示すプリンタとホストコンピュータからなる印刷環境に加えて、更に図3に示すように、アプリケーションからの印刷データを一旦中間コードデータでスプールする構成を有する。
【0033】
図3は、図2のホストコンピュータにおけるモジュール構成を拡張したもので、グラフィックエンジン202からプリンタドライバ203へ印刷命令を送る際に、一旦中間コードからなるスプールファイル303を生成する構成をとる。ひとつの印刷ジョブから変換された一連の中間コードを、ここでは中間ジョブと呼ぶ。
【0034】
図3では、スプールファイル303としての中間ジョブの加工や並べ替え、中間ジョブ同士の結合などができる。なお、印刷データに対する印刷属性などの設定を行うためには、通常プリンタドライバ203が提供するウインドウから設定を行い、プリンタドライバ203がその設定内容をRAM2上あるいは外部メモリ11上に保管している。
【0035】
図3に示す通り、この拡張された制御方式では、グラフィックエンジン202からの印刷命令であるDDI関数をディスパッチャ301が受け取る。ディスパッチャ301が受け取った印刷命令(DDI関数)が、アプリケーション201からの印刷命令(GDI関数)に基づいたものである場合、ディスパッチャ301はスプーラ302を起動し、スプーラ302へ印刷命令(DDI関数)を送付する。
【0036】
スプーラ302は受け取った印刷命令を解析し、ページ単位に中間コードに変換してスプールファイル303に出力する。このページ単位に格納されている中間コードのスプールファイルをページ描画ファイルと呼ぶ。また、スプーラ302は、印刷データに設定された印刷属性(Nup、両面、ステイプル、カラー/モノクロ指定等)をプリンタドライバ203から取得し、ジョブ単位の印刷属性ファイルとしてスプールファイル303に保存する。このジョブ単位の印刷属性をジョブ属性と呼び、後述するページ属性と区別する。
【0037】
なお、スプールファイル303は外部メモリ11上にファイルとして生成するが、RAM2上に生成されても構わない。
【0038】
更にスプーラ302は、外部メモリ11に格納されているスプールファイルマネージャ304をRAM2にロードし、スプールファイルマネージャ304に対してスプールファイル303の生成を通知する。スプールファイルマネージャ304はジョブ管理リストをRAM2上に生成し、受け取った通知を元にスプールファイル303(中間ジョブ)の管理を行う。
【0039】
ユーザの指示に基づき、スプールファイルマネージャ304から印刷を行う場合は、デスプーラ305に対して、スプールファイル303に記述された中間コードのページ描画ファイルの印刷処理を行うように指示する。
【0040】
デスプーラ305は、スプールファイル303に含まれる中間コードのページ描画ファイルを、印刷属性に従って加工し、GDI関数を再生成し、もう一度グラフィックエンジン202経由でGDI関数を出力する。
【0041】
ディスパッチャ301がグラフィックエンジン202から受け取った印刷命令(DDI関数)が、デスプーラ305からの印刷命令(GDI関数)に基づいたものである場合、ディスパッチャ301はプリンタドライバ203に印刷命令(DDI関数)を送る。
【0042】
プリンタドライバ203はグラフィックエンジン202から取得したDDI関数に基づいてページ記述言語等からなるプリンタ制御コマンドを生成し、システムスプーラ204経由でプリンタ1500に出力する。
【0043】
スプールファイルマネージャ304では、更に中間ジョブ同士の結合印刷を指示することができる。なお、印刷属性の中にはジョブに対してひとつしか設定できない属性があるため、結合時に元ジョブの属性を継承できるものと、結合ジョブ全体でひとつに統合する必要がある属性が存在する。
【0044】
図18では、ジョブ結合時に統一する必要がある印刷属性と、ジョブ内で異なる設定値が設定可能な(混在可能な)印刷属性の例を挙げている。
【0045】
更に図3では、これまで説明した拡張構成に加えて、スプールファイルのプレビューを行うプレビューア306、設定変更を可能にする設定変更エディタ307を備える。
【0046】
図4ではホストコンピュータにおけるアプリケーションからの印刷時、スプール印刷モードに応じたディスパッチャ301の動作の一部を説明したものである。スプール印刷モードとは、図3に示した拡張印刷を行うための制御するモードを示す。
【0047】
ステップ401で印刷要求(DDI関数)を受け取ると、ステップ402でスプール印刷モードがONであるかどうか判断する。ONだった場合はステップ403にてスプーラ302を起動してスプーラ302にDDI関数を流し、OFFだった場合はステップ404にてプリンタドライバ203にそのままDDI関数を送る。
【0048】
図14はスプール印刷モードを切り替えるUIの一例で、タスクトレイ上のボタンでON/OFFを切り替えることができる。この設定情報はレジストリ等のメモリ上に保持され、ステップ402ではその情報を参照してスプール印刷モードを判断する。
【0049】
図15はスプールファイルマネージャ304のユーザインターフェース(UI)の例であり、ここではアプリケーションから受け取った3つのジョブがスプールされ、一覧を表示されている画面の様子を示している。ユーザはこのUIを介して、一括印刷(ジョブ結合)などの指示を行うことが可能となる。
【0050】
図5は、スプーラ302にて、印刷要求(DDI関数)を受け取った時にスプールファイルを生成する処理を説明するためのフローチャートである。
【0051】
まずステップ501では、スプーラ302は、アプリケーションからグラフィックエンジン202を介して印刷要求を受け付ける。印刷要求の中には印刷対象のデータに関する各種情報があり、ジョブの開始や終了、改ページなどの制御コマンド、および描画データが含まれる。
【0052】
スプーラ302は、ステップ501で受け取った要求がステップ502にてジョブ終了コマンドであるか、ステップ503にてジョブ開始コマンドであるか、ステップ504にて改ページコマンドであるか、それぞれ判断する。
【0053】
ステップ502でジョブ終了コマンドではないと判断され、ステップ503でジョブ開始コマンドと判断された場合、ステップ505にてスプールファイル303の作成を行い、ジョブの情報のための領域を確保する。ここで、プリンタドライバ203から取得したジョブ属性データを属性ファイルに保存する。
【0054】
ステップ503でジョブ開始コマンドではないと判断され、ステップ504で改ページコマンドと判断された場合、ステップ506にて次のページ描画ファイルを生成する。これはページ単位で中間データを扱うため、ページ毎に描画ファイルを持つこととしている。次にステップ507にてページ単位の印刷属性を保持するページ属性データを生成し、前述した属性ファイルに該当ページに対応付けて追加する。
【0055】
ステップ504で改ページコマンドではないと判断された場合、印刷要求はいずれの制御コマンドでもないことから描画データとなる。ステップ508にてスプーラ302は、印刷要求(描画データ)をスプールファイル303へ格納するため、印刷要求のDDI関数の中間コードへの変換処理を行う。そして、ステップ509にて、この中間コードをスプールファイル303へ書き込む。
【0056】
以上、ステップ501からステップ509の一連の処理をジョブ終了コマンドを受け取る(ステップ502でジョブ終了コマンドと判断される)まで行う。
【0057】
ステップ502でジョブ終了コマンドと判断された場合、スプーラ302は、ステップ510にてスプールファイルをクローズし、ステップ511にてスプールファイルマネージャ304にスプール完了を通知し、本処理を終了する。
【0058】
図6は、スプールファイルマネージャ304にて実行される、ジョブ管理プロセスとユーザの指示に基づく印刷制御の詳細を説明するためのフローチャートである。スプールファイルマネージャ304では、スプーラ302がスプールしたスプールファイル303を管理し、またUI上に一覧表示し、ユーザの指示に従って中間ジョブの印刷や削除などを行う。
【0059】
ステップ601にて通知入力を受信すると、ステップ602にてスプーラ302からのジョブ追加通知であるか、またはステップ603にてユーザによる操作であるか、判断する。
【0060】
ステップ602にてスプーラ302からのジョブ追加通知であると判断された場合、ステップ609にて、図16に例示するようなジョブ管理リストに新しいジョブを追加する。
【0061】
図16に示すジョブ管理リストは、図の左側リストに示すようにストア中のジョブ数、およびジョブIDを保持する。ジョブIDは、それぞれ中間ジョブファイル(スプールファイル303)と対応付けられている。中間ジョブファイルは、ジョブごとにひとつの属性ファイルと、ページごとにひとつのページ描画ファイルを持つ。属性ファイルには、ジョブ属性と各ページのページ属性を持つ。
【0062】
次に、ステップ610にてUI(図15)表示を更新し、中間ジョブの追加処理を終了する。図15はUIの一例であり、スプールされているジョブの一覧を表示する。ジョブが追加するとそれに応じてUIも更新される。
【0063】
ステップ603にてユーザ操作であると判断された場合は次の判断を行う。ここでは、スプールファイルマネージャ304はステップ604〜608にて、ユーザ操作が終了要求であるか、一括印刷要求であるか、一括ステイプル要求であるか、一括オプション変更要求であるか、ジョブ削除要求であるか、をそれぞれ判断する。
【0064】
ステップ604にてユーザ操作が終了要求ではないと判断され、ステップ605にて一括印刷要求と判断した場合、すなわちユーザが図15に例示する「一括印刷」ボタンを押下するなどした場合、ステップ611に遷移する。スプールファイルマネージャ304はステップ611にて、現在スプールされている全中間ジョブファイルを結合できるかどうか印刷属性を解析して判断する。可能である場合は、ステップ612にて各中間ジョブファイルの持つジョブ属性をひとつに統一し、またページ属性を結合する。つぎにステップ630にて、ひとつの結合ジョブを生成し、新たにスプールファイル303に追加する。つぎに、ステップ613にて、後述する一括オプション620にて設定がある場合はそれを適用し、ステップ614に遷移する。
【0065】
ステップ604にてユーザ操作が一括印刷要求ではないと判断され、ステップ606にて一括ステイプル要求と判断された場合、ステップ617、618、631では、前述のステップ611、612、630と同様の処理を行う。その後、ステップ619にてステイプル属性にONをセットし、ステップ614に遷移する。ここでは、結合ジョブ全体に対してステイプルを実行するような印刷要求が行われる。
【0066】
ステップ614にて、スプールファイルマネージャ304はデスプーラ305に印刷指示を行う。デスプーラで印刷を行うとステップ615にてすべての中間ジョブと結合ジョブを消去した上でジョブ管理リストをクリアし、ステップ616にてUIを閉じて終了する。
【0067】
図17(a)は、3つの独立したジョブをいったんスプールし、一括印刷した例である。それぞれ設定通りに印刷されている様子を示している。
【0068】
図17(b)は、4つの依存したジョブをいったんスプールし、一括ステイプル印刷で2部印刷した例である。アプリケーションからはここに印刷したジョブでも、ひとまとめにしてステイプルしたり、複数部数印刷することができる様子を示している。
【0069】
ステップ606にて一括ステイプル要求ではないと判断され、ステップ607にて一括オプション変更要求と判断された場合、ステップ620にてUI(不図示)を表示する。ここでは、UIを介してユーザに結合ジョブ全体に適用可能なオプション属性を指定させる。たとえば製本を指定されれば、結合ジョブ全体をひとつのジョブとみなして所定の面つけ処理を行い、製本印刷が行われるよう制御する。ユーザには、他にもモノクロ印刷、パンチ、部数設定、ソートなどの設定を行わせることができる。ここでの設定は、前述したジョブ属性として追加される。
【0070】
なお、このステップ620にステイプル設定を入れ、ステップ605などの一括印刷でステイプル印刷を実現することも、もちろん可能である。ステップ606及びステップ617から619の処理は、操作ステップ数を減らすために一連の作業をひとつの要求で行った例であることから、いずれかの方法のみで実現してもよい。
【0071】
図15のUI上で1つ以上の中間ジョブファイルを選択している状態で、ステップ608にてジョブ削除要求と判断された場合、ステップ621にて選択中の中間ジョブをスプーラ302から削除し、またジョブ管理リストからも削除する。
【0072】
図7は、デスプーラ305における、印刷データの生成プロセスの詳細を説明するためのフローチャートである。
【0073】
デスプーラ305では、スプールファイルマネージャ304からの印刷要求に応じて指示された中間ジョブや結合ジョブの印刷を行う。その際、結合ジョブには元の中間ジョブ毎に異なる設定がなされている場合があるため、ジョブ属性およびページ属性を見ながらページ描画データの加工を行い、属性に指定された通りの出力を行う。
【0074】
ステップ701にて通知入力を受信すると、デスプーラ305はステップ702にてスプールファイルマネージャ304からの印刷要求であるか判断する。ステップ702にてNoである判断された場合、通知に基づく他の所定の処理を行い、次の通知が入力されるまで待機する。
【0075】
ステップ702にてYesである判断された場合、ステップ703にて印刷対象ジョブのジョブ属性を取得する。
【0076】
ステップ704にて、デスプーラ305は取得したジョブ属性がオート属性(AUTOCOLORやAUTODUPLEX)か否かを判断する。ジョブ属性がオート属性であると判断された場合、以降ジョブに含まれるページ毎に処理(ステップ705〜709)を行うことになる。
【0077】
ステップ705にて処理対象のページのページ描画データ、およびステップ706にてページ属性を取得し、ステップ707にて取得した属性に応じたページ加工を行う。ステップ708にて、対象ページについてページ描画データの印刷命令の再生成を行う。
【0078】
なお、図では省略しているが、ステップ704の判定、およびステップ705から710の処理はそれぞれの属性ごとに行うものとする。この一連の処理は、カラー/モノクロ混合ジョブ、および片面/両面混合ジョブを例に、詳しく後述する。
【0079】
ステップ705からステップ708をページ毎に繰り返し、ステップ709で最終ページの処理が終わったと判断したら、本処理を終了する。
【0080】
ステップ704にてジョブ属性がオート属性ではないと判断された場合、ジョブ全体をひとつの設定(カラー、モノクロ、片面、両面、など)で印刷することを意味する。よって、ステップ710にて特別な加工を行わずに、中間ジョブに含まれるページ描画データの印刷命令の再生成を行う。
【0081】
以下に、カラー属性に関して、カラー印刷指定されたジョブとモノクロ印刷指定されたジョブが結合される場合を例に説明する。
【0082】
図19(a)では、2つの中間ジョブ(Job1、Job2)があり、Job1をジョブ属性がカラー指定、Job2をジョブ属性がモノクロ指定で印刷したときの様子を示している。なお、Job1、Job2共に、1ページ目がカラーページ(カラーオブジェクトを含むページ)、2ページ目がモノクロページ(モノクロオブジェクトのみで構成されるページ)である。Job1はジョブ属性がカラー指定なので、カラーページはカラーで印刷され、1ページ目はカラー、2ページ目はモノクロで印刷される。Job2はジョブ属性がモノクロ指定なので、1ページ目も2ページ目もモノクロで印刷される。
【0083】
これらの中間ジョブを結合する場合、結合後のジョブに対してひとつのカラー属性を割り当て直すことになる。
【0084】
ここで図19(b)に示すように、もし結合後のジョブのジョブ属性をカラー指定すると、もともとカラーページであったJob2の1ページ目もカラー印刷されることになり、1ページ目と3ページ目がカラー印刷となる。
【0085】
また、もし結合後のジョブのジョブ属性をモノクロ指定すれば、全ページがモノクロ印刷となる。いずれも単独で印刷した場合(図19(a))との出力結果が異なる。
【0086】
この出力結果の不一致を解決する方法を図8から図10での処理と対応させて説明する。
【0087】
図8は、カラー/モノクロジョブの処理に関して、図5のステップ507、すなわちページ属性データの生成について詳細を説明するためのフローチャートである。
【0088】
アプリケーションから渡されるジョブのカラー属性は、図21(a)に示すように、COLORとMONOがある。
【0089】
ステップ801にて、入力されたジョブのカラー属性がMONOだと判断した場合、ステップ803にてジョブ中の各ページのページカラー属性にMONOをセットする。
【0090】
またステップ801にてジョブカラー属性がCOLORだと判断した場合は、ステップ802にて各ページのページカラー属性にはCOLORをセットする。図19(a)の2つのジョブを例にとれば、図21(b)の属性データができる。
【0091】
図9は、カラー/モノクロジョブの処理に関して、図6のステップ612、すなわちジョブ結合時の属性の統合についての詳細を説明するためのフローチャートである。
【0092】
ステップ901にて、結合対象のジョブそれぞれのジョブカラー属性をチェックし、ステップ902にて全ジョブのカラー属性がCOLORか否かを判断する。ステップ902にて全ジョブのカラー属性がCOLORと判断された場合には、ステップ906にて結合後のジョブのカラー属性にCOLORを設定する。
【0093】
ステップ902にて全ジョブのカラー属性がCOLORではないと判断された場合、ステップ903にて全ジョブのカラー属性がMONOか否かを判断する。全ジョブのカラー属性がMONOだと判断した場合には、ステップ905にて結合後のジョブカラー属性にMONOを設定する。
【0094】
ステップ903にて全ジョブのカラー属性がMONOでないと判断された場合、複数の中間ジョブは同一のカラー属性ではないことを意味する。この場合は結合後のジョブのカラー属性にAUTOCOLORを設定する。最後にステップ907にて各中間ジョブのページのカラー属性を統合する。
【0095】
先述の図21(b)に示す2つのジョブを結合する場合を例にとると、ステップ904、ステップ907を経て、図21(c)に示す属性データが生成される。
【0096】
ジョブのカラー属性がAUTOCOLORの場合、図7のステップ704の判断にてステップ707へ遷移する。図10は、カラー/モノクロ属性の混在するジョブの処理に関して、図7のステップ707、すなわちページ属性に応じたページ描画データの加工についての処理の詳細を説明したフローチャートである。
【0097】
ステップ1001にて、ページのカラー属性がMONOであると判断した場合は、ステップ1003にて処理対象ページをモノクロページとして印刷命令の再生成処理を行う。また、ステップ1001にてCOLORであると判断した場合は、ステップ1002にて処理対象ページをカラーページとして印刷命令の再生成処理を行う。
【0098】
ここではコマンドによるカラー/モノクロ指定が一般的であるが、モノクロ印刷を行う場合に、カラーオブジェクトをモノクロオブジェクトに変換する方法をとっても良いことは言うまでもない。
【0099】
以上の処理により、図20に示すように異なるカラー指定がなされたジョブをジョブ結合によりグループ印刷した場合でも、それぞれの設定通りに出力されることになる。
【0100】
図11は、図8において、プリンタなどにおける課金処理などを考慮し、カラー判定を加えた場合の処理の詳細を説明するためのフローチャートである。たとえジョブのカラー属性でカラー指定した場合でも、モノクロページであればモノクロで課金がなされるよう、ページ単位でページのカラー属性を設定する。
【0101】
ステップ1101にて、ジョブカラー属性がMONOだと判断された場合は、ステップ1106にて全ページのページカラー属性にMONOをセット(設定)する。
【0102】
ステップ1101にてジョブカラー属性がMONOではないと判断された場合は、ステップ1102にてページ毎にカラーオブジェクトを含むかどうか解析する。
【0103】
ステップ1103にてページにカラーオブジェクトが存在すると判断された場合は、ステップ1104にて対象ページのページカラー属性にCOLORをセット(設定)する。ステップ1103にてページにカラーオブジェクトが存在しないと判断された場合は、ステップ1105にて対象ページのページカラー属性にMONOをセット(設定)する。
【0104】
ステップ1102〜1105までの処理を、ジョブ中のすべてのページに対して行い、ステップ1107にて最終ページの処理が終わったと判断したら本処理を終了する。
【0105】
図19(a)を例にとると、図22(a)に示すカラー属性データが生成され、その後のスプールファイルマネージャ304の結合処理で図22(b)に示すカラー属性データが作られる。
【0106】
以下に、ジョブの両面属性に関して、片面指定と両面指定がそれぞれ設定されたジョブが結合される場合を例に説明する。
【0107】
図23に示すように、片面指定のジョブ(Job1)と両面指定のジョブ(Job2)を結合する場合を例にとる。ジョブには両面属性についても1つの設定しかできないので、結合後に片面指定及び両面指定の何れかを設定することになり、図23のようなジョブを結合する場合、各ジョブの当初の設定通りのユーザが意図する出力が行われない。ここではその解決方法を示す。
【0108】
図25(a)は、図23で示すそれぞれのジョブで設定されているジョブの両面属性である。図に示すように、設定値はSIMPLEX(片面)とDUPLEX(両面)がある。
【0109】
まず、スプーラ302では、図5に示す処理により図25(b)に示す両面属性データが作られる。次に、スプールファイルマネージャ304では、図6に示す処理により図25(c)に示す両面属性データが生成される。
【0110】
ジョブの両面属性がAUTODUPLEXの場合、図7のステップ704の判断を経てステップ707が実行される。
【0111】
図12は、片面/両面ジョブの処理に関して、図7のステップ707、すなわちページ属性に応じたページ描画データの加工について詳細を説明したフローチャートである。なお、結合後は、プリンタにおいてジョブ全体に対して両面印刷が行われる。
【0112】
ステップ1201にて、まず処理中のページに関して印刷命令を再生成する。
【0113】
ステップ1202にてデスプーラ305は、ページ両面属性がDUPLEXであるかどうか判断する。ここでNoの場合はステップ1203にて白紙ページを挿入し、ステップ1204にて当該白紙ページの出力に対して課金されないよう、白紙ページに対応付けて白紙非課金コマンドを発行する。
【0114】
ステップ1202にてDUPLEXだった場合は、従来通り印刷データを送ればよいので何もせずに終了する。
【0115】
以上の処理により、図24に示すように属性が片面指定と両面指定のジョブを、ジョブ結合により印刷した場合でも、それぞれの設定通りに出力されることになる。また挿入した白紙ページに関しても非課金で印刷される。
【0116】
[属性の設定手法の拡張について]
なお、ここまでの例では各ジョブの設定はユーザが行うことを想定していたが、続けて、アプリケーション名や印刷内容に応じて自動的に属性が決まる制御方法と連携させる処理に関して説明する。
【0117】
例えば、図26に示す条件に従ってジョブのカラー属性が決まる場合を考える。前提として、文書作成用アプリケーションであるアプリケーション名“文書”、表計算用アプリケーションであるアプリケーション名“表計算”、及びブラウザアプリケーションであるアプリケーション名“ブラウズ”などのアプリケーションがあるとする。
【0118】
図26では、アプリケーション名が“表計算”ならば属性はモノクロ(#1)、“ブラウズ”ならば属性はカラー(#2)となる。また、アプリケーション名が“文書”ならば通常、属性はモノクロだが(#3)、印刷対象の文書中に「見積書」というキーワードが含まれる場合(#4)、またはジョブ名が「Spec Document」の場合(#5)には属性がカラーとなる。
【0119】
図27は図26の条件が記述されたファイルの例である。アプリケーション名(AppName)、ジョブ名(JobName)、及びキーワード(KeyWord)の条件を記述すると、合致する条件のカラーモード(ColorMode)がジョブの属性に設定される。
【0120】
なお、アプリケーション名により属性を設定する例を説明するが、アプリケーションの目的(文書作成や表計算)などによって同様な処理を行うとしてもよい。
【0121】
図13は、上記の属性の設定処理の詳細を説明するためのフローチャートであり、図5のステップ505での処理の一部として実現される。
【0122】
まずステップ1301にて、図27に例示したような条件ファイルを読み込む。
【0123】
次にステップ1302にて、受信したジョブのアプリケーション名およびジョブ名を取得し、条件ファイルと比較する。アプリケーション名とジョブ名は、スプール開始時点で知ることができる。アプリケーション名は実行モジュール名で判断することができる。ジョブ名はアプリケーションが自由に生成できるが、ファイル名などがよく使われる。ここで、ジョブ名の検索は完全一致だけでなく、部分一致、前方一致、後方一致などが適用できることは言うまでもない。
【0124】
ステップ1303にて、ジョブに含まれる情報が条件ファイル中のいずれかの条件にヒットするか判定し、いずれにもヒットしなければジョブの属性の変更をせず(ステップ1310)、アプリケーションやプリンタドライバで設定された属性値がジョブの属性として使われる。
【0125】
ステップ1303にて、いずれかの条件にヒットした場合、ステップ1304にてさらに同条件の中にキーワードオプションが指定されている条件があるか確認する。図26を例にとると、#3と#4がその関係にある。すなわち、アプリケーション名が“文書”、かつジョブ名が“Spec Document”、以外であるようなジョブでも、#4にはキーワードオプションが存在するため、本判定ではYesと判定される。
【0126】
ステップ1304にてキーワードオプションがないと判断された場合、これ以上ほかにヒットする条件は存在しない。このときは、ステップ1305にてアプリケーション名/ジョブ名の条件でヒットした条件に割り当てられている出力設定を取得し、ステップ1306にて取得した出力設定を用いて本ジョブのジョブ属性をリセットする。
【0127】
ステップ1304にてキーワードオプションが存在すると判断された場合、ステップ1307にてページ描画データの内容を解析する。その後、ステップ1308にて指定されたキーワードが存在するか否かを判断する。ステップ1308にて、指定されたキーワードが存在すると判断した場合、ステップ1309にて、該当する条件に割り当てられている出力設定(属性値)を取得し、ステップ1306で、取得した出力設定で本ジョブのジョブ属性を再設定する。
【0128】
ステップ1308にて指定するキーワードが存在しないと判断された場合は、キーワードオプションのない条件にヒットしたことに相当するので、ステップ1305へ進む。
【0129】
たとえば、図28に示す3つのジョブをそれぞれ受信した場合を例にとって説明する。
1.受信時は、ステップ1303にて図26条件#1にヒットし、ステップ1304ではキーワードオプションは存在しないため、ステップ1305にてジョブカラー属性には「モノクロ」がセットされる。
2.受信時は、同様に条件#5にヒットしてジョブカラー属性には「カラー」がセットされる。
3.受信時はステップ1304、ステップ1308を経て条件#4にヒットし、ステップ1309にてジョブカラー属性には「カラー」がセットされる。
【0130】
図29は、図28に示す3つのジョブを本処理方法で一時スプールし、一括印刷した場合の概要を示した図である。それぞれのジョブはスプーラ302でジョブ属性が決定し、スプールファイルマネージャ304で結合され、デスプーラ305で設定通りに印刷される。ここでは、属性の設定手法の拡張として、アプリケーション名などによりジョブのカラー属性が決定される点が見てとれる。
【0131】
[第2実施形態]
以下、第2実施形態について説明する。第2実施形態は全体の構成は第1実施形態と同じであり、各々図1から図7にて示される。
【0132】
第1実施形態との相違点は、スプールされたすべてのジョブを一律結合するのではなく、出力設定に応じて適宜結合すべきジョブを選んで結合し、複数の結合ジョブをデスプーラ305に対して印刷要求を行う点である。
【0133】
ここで、特別な設定をしたジョブに関して、本実施例において考慮する。たとえば、プリンタのボックスに保存を行う指示を含むジョブは、実際に印刷出力するのではなくプリンタのHDD等に保存されることになる。このジョブを、印刷出力を伴うジョブを含めて、一律ひとまとめに結合すると、ユーザの意図に反する出力が行われる。
【0134】
そこで第2の実施例では、出力方法が異なるジョブをユーザが区別せずに一括印刷要求しても、後述する制御手法による適切に仕分けを行い、通常印刷するものは結合して印刷し、その他の特別な出力設定をしたものはその設定通りに出力する方法を示す。
【0135】
図30は、本制御手法の主体として動作するスプールファイルマネージャ304の処理の詳細を説明するフローチャートを示す。前述した図6と同様な処理に関しては、同一の符号を付してあり、ここでは図6で説明した処理との差異を説明する。
【0136】
ステップ605にて一括印刷要求と判断した場合、ステップ3011にてジョブの出力設定をチェックし、独立して出力すべきジョブが混在していると判断した場合は、通常印刷すべきジョブだけを選んで結合する。他のジョブは結合処理をスキップする、あるいは、それぞれの出力設定毎にグループ化して各グループでジョブ結合する、などのグルーピングを行う。
【0137】
ステップ3014にて、結合処理後に存在するひとつ以上のジョブについて、それぞれデスプーラ305に対して印刷要求を行う。なお、出力設定に応じた処理の例は、後述する。
【0138】
ステップ3100のその他の処理とは、すでに説明した処理と変わらないことを意味する。すなわち、図6のステップ606からステップ608の判断に応じた処理は、図30でも適用されるものとする。
【0139】
特別な出力設定の一例として、ボックス保存やセキュアプリント、追い越し印刷などがある。ボックス保存はプリンタ本体のHDDに印刷ジョブ(もしくは印刷対象のデータ)を保存する。セキュアプリントは、プリンタで受信したジョブについて、ユーザによりプリンタのパネルなどでパスワードを入力されるまで印刷を止めておく。追い越し印刷は、そのジョブが優先的に印刷される。よって、これらのジョブは通常の印刷出力を行うジョブとの結合は適さない。これらの特別な出力設定のジョブは結合対象とせず、通常の印刷出力のものだけを対象に前述したような結合処理を行うこととする。
【0140】
図31は、図30のステップ3011における処理の詳細を説明するためのフローチャートである。
【0141】
ステップ3101にて、ジョブの出力設定をチェックする。
【0142】
ステップ3102にて、上述の特別な出力設定だと判断された場合は、ステップ3104にて、独立ジョブとして結合をスキップする。ステップ3102にて一般出力設定だと判断した場合には、ステップ3103にて結合処理を行い、中間ジョブファイルや属性データの結合処理や、ジョブ管理リストの更新を行う。
【0143】
以上、ステップ3101〜3104までの処理をスプールされているすべての中間ジョブファイルに対して行い、ステップ3105にて最後のジョブの処理が完了したと判断したら終了する。尚、本処理では特別な出力設定以外の中間ジョブを次々に結合処理していくが、全ジョブを解析した後に結合されるべき中間ジョブファイルをまとめて結合してもよい。
【0144】
図32は、本実施例を適用して印刷を行った例である。J1からJ5までの5つの印刷要求があり、J2にはセキュアプリント、J5にはボックス保存の指定があった場合、J2とJ5はステップ3104の処理が、残りのジョブはステップ3103の処理が適用され、最終的には3ジョブが出力される。
【0145】
[他の特別な出力設定1]
特別な出力設定の別の例として、部門管理情報(ビリングコード)が設定されたジョブがある。プリンタで印刷処理などの実績を正しく集計するため、異なるビリングコードが設定されているジョブを結合することは好ましくない。この部門管理の設定がなされたジョブはビリングコードに応じた結合処理を行う必要がある。
【0146】
なお、本処理では、ジョブの出力順序が重要でない場合(特に、事前にユーザが設定していない場合など)は、ジョブを並べ替えて同じビリングコードを持つグループに対してジョブの結合処理を行う。出力順序が重要な場合は、前後のジョブ間でビリングコードをチェックして、同じなら結合処理を行う。以上の制御を行うことで、トータルジョブ数を減り、ジョブ間に想定しない他のジョブが割り込むの可能性を減らすことができる。
【0147】
図33は、図30のステップ3011における本処理に特有の処理の詳細を説明するためのフローチャートである。
【0148】
ステップ3301にて、ジョブの出力設定をチェックする。
【0149】
ステップ3302で本印刷システムがビリングコードを含む設定または環境であるかチェックし、ビリングコードが含まないならば、ステップ3309にて全中間ジョブファイルを結合する。例えば、部門管理を行っていない印刷環境などでは当然ビリングコードはジョブに設定されない。
【0150】
ステップ3302にてビリングコードが含むと判断された場合、さらにステップ3303で出力順序を優先するかを判断する。なお、通常はユーザが印刷要求を発行した順に出力されるが、出力順序を優先しない場合はより多くのジョブを可能な限り結合するよう結合処理を優先することができる。これは、あらかじめUI等(不図示)でユーザが印刷要求の順序で出力することを設定する。
【0151】
ステップ3303で出力順序優先と判断された場合、2番目の中間ジョブファイル以降であればステップ3304にてビリングコードが前の中間ジョブファイルと同じかチェックし、同じ場合はステップ3305にて前の中間ジョブファイルとの結合処理を行う。ステップ3304にてビリングコードが前の中間ジョブファイルと同じでなかったと判断された場合は、結合処理は行わない。
【0152】
以上、ステップ3304〜3305までの処理をスプールされているすべての中間ジョブファイルに対して行い、ステップ3306にて最後のジョブの処理が完了したと判断した場合に本処理を終了する。
【0153】
ステップ3303にて出力順序優先していないと判断された場合、ステップ3307にて中間ジョブファイルに設定されたビリングコード毎にグループ化し、ステップ3308にてそれぞれのビリングコードのグループ毎にジョブの結合処理を行う。
【0154】
尚、本処理における中間ジョブファイルの結合処理に関しては、前述の実施形態と同様の処理を行うことになる。
【0155】
[他の特別な出力設定2]
この他、別の出力設定の例として、ステイプルやパンチなどのフィニッシング機能がある。プリンタ側に、ジョブの一部のページのみにこれらフィニッシング設定を適用する機能がない場合は、ひとつのジョブに対してまとめて処理を行うことになるため、そのような設定がない印刷ジョブとの結合処理は適さない。本処理では、これらの特別なフィニッシング設定のジョブは結合対象とせず、それ以外の出力設定の印刷出力のものだけを対象に結合処理を行う。
【0156】
図34は、図30のステップ3011における本処理に特有の処理の詳細を説明するためのフローチャートである。
【0157】
ステップ3401にて、ジョブの出力設定をチェックする。
【0158】
ステップ3402にて、ステイプルやパンチなどのフィニッシング設定がされていると判断された場合は、ステップ3404にて、独立ジョブとして結合処理をスキップする。
【0159】
ステップ3402にて、ステイプルやパンチなどのフィニッシング設定がされていないと判断された場合は、ステップ3403にて該当する中間ジョブファイルの結合処理を行う。ここでは、前述のように属性データ等も含む結合処理や、ジョブ管理リストの更新などが行われる。
【0160】
以上、ステップ3401〜3404までの処理をスプールされているすべての中間ジョブに対して行い、ステップ3405にて最後のジョブの処理が完了したと判断された場合に、本処理を終了する。
【0161】
[複数ジョブの送信手法の拡張について]
図31〜34で示したフローチャートでは、ジョブが複数存在するため割り込み印刷がなされる可能性がある。ここでは、中間ジョブファイルの結合処理による印刷を行わないものに対しても極力割り込みを避ける手法を説明する。
【0162】
ここでは、システムスプーラ204を一時停止し、その間に全中間ジョブファイルに関するプリンタドライバ203での処理を行う。プリンタドライバ203によって生成された出力データはシステムスプーラで留め置きされ、一時停止の解除によって、ほぼまとめて次々にプリンタに送信されることになる。
【0163】
プリンタドライバ203での処理には時間を要するため、プリンタドライバ203での処理をしながらシステムスプーラを介してプリンタへの送信を行うと、プリンタドライバ203での処理をすべて完了してから送信するよりも総処理時間が短縮される。
【0164】
しかしながら、プリンタドライバ203での処理をすべて完了してから送信したほうが各ジョブの送信の間隔を短縮でき、それにより例えば他のクライアントからのジョブとバッティングする確率は下がり、それらジョブが割り込む可能性は低減する。またバイナリレベルでの送信が連続するため、プリンタのネットワーク接続処理方法によっては、連続ジョブと判断されるといったメリットもある。
【0165】
以上の処理は、デスプーラ305がシステムスプーラ204を一時停止/解除を行うことで実現する。
【0166】
さらに割り込み確率を下げるために、サイズの小さなジョブから送るようスケジューリングを行うといった処理を行う。これは、2つのジョブを送る場合、1ジョブ目のサイズが小さければすぐに2ジョブ目の受信が始まり、プリンタが2ジョブ目の受信を始めれば割り込みはなくなるからである。
【0167】
図35は、図30のステップ3014における本処理に特有の処理の詳細を説明するためのフローチャートである。
【0168】
ステップ3501にて印刷すべき結合ジョブを含むジョブが複数あるかチェックし、ひとつしかない場合(No)は、ステップ3506にてデスプーラ305に印刷要求を行い、本処理を終了する。複数の印刷すべきジョブがあると判断された場合(ステップ3501−Yes)は、ステップ3502にてOS(オペレーティングシステム)への要求を通してシステムスプーラ204を一時停止する。
【0169】
ステップ3503にてデスプーラ305に印刷要求をすると、プリンタドライバ203がレンダリングを実行し、レンダリング実施済の出力ジョブ(プリンタ制御コマンド)はシステムスプーラ204に送られる。ここで、システムスプーラ204が一時停止状態のため、出力ジョブは一時的に蓄積される。
【0170】
ステップ3503の処理を印刷出力すべきジョブの数だけ実施し、ステップ3504にて最後のジョブの処理が完了したと判断したら、ステップ3505にてシステムスプーラ204の一時停止を解除する。この解除により、システムスプーラ204に溜められていた複数の出力ジョブは、まとめてプリンタに送信される。
【0171】
第2実施形態によれば、ユーザは特別な出力設定を持つ複数の印刷ジョブでも気にせずスプールし、「一括印刷」を指示すれば、本制御手法によって自動でプリンタにおける割り込みを極力抑えるよう、適宜結合処理され、プリンタにジョブが出力される。これによりユーザが自らジョブの設定を意識して一括印刷すべきジョブを選択してスプールする手間が省ける。また、複数ジョブがひとつに結合されない場合であっても、上述した出力方法を取ることで極力割り込みが起こらないように、ひとまとめにプリンタへ出力することができる。
【0172】
以上説明したように、本発明によれば、ユーザ所望の印刷順序を保持し、また他のジョブが割り込むことを防止するために、印刷装置に送信する前に複数のジョブをひとつに結合する手法をとり、さらに以下のような柔軟な構成を提供した。
【0173】
具体的には、結合したジョブに対して1つしか設定することが出来ないジョブの属性(印刷設定)であっても、結合後のジョブの属性と各ページの属性の設定を工夫することで、ユーザが望むであろう結合前の各ジョブの属性に従う印刷出力を可能とした。
【0174】
ここで、ジョブに対して1つしか設定することが出来ない属性とは、カラー属性や両面属性などがある。また、本発明においては、ステイプル指定や製本印刷指定などの後処理、部門管理設定やセキュアプリントなど、様々な印刷設定においてもユーザの望む出力を維持しつつ、ジョブ結合処理を利用した印刷制御をおこなっている。
【0175】
また、ホストコンピュータ側でジョブ結合を行うことで、割り込み防止処理などのプリンタ側の設計変更を必要としないので、上述した構成を鑑みると、非常に低コストで柔軟な印刷制御が実現することができるといえる。
【技術分野】
【0001】
本発明は、複数のジョブを印刷する際に、他のジョブからの印刷を割り込ませることなく連続した印刷を行うよう制御する手法に関するものである。
【背景技術】
【0002】
複数のジョブを共有プリンタに印刷する際に、他人のジョブが紛れ込むことによる取り違えや面倒な仕分け作業を軽減・防止するグループ印刷技術がある。
【0003】
特許文献1によると、グループ印刷したい印刷ジョブにはグループに固有のグループ識別子、そのグループのジョブ数、グループ内での順序を示す値を持たせておく。プリンタはそのグループの全ジョブが揃うまでプリンタ内に印刷データを保持し、揃った時に一気に印刷することで、グループ以外のジョブの混入を防いでいる。また、ジョブの受信順序が変わった場合でもグループ内で指定された順で印刷を行っている。
【0004】
また特許文献2によると、設定した時間以内の同一ユーザからの印刷要求に関しては、他のユーザからのジョブの印刷を保留するといった技術の開示がある。
【0005】
特許文献3によると、複数の印刷ジョブをいったんプリントサーバに溜めておき、プリンタの前でカードをかざすなどしてプルプリントを行うことで、印刷時に出力先を指定しなくても任意のプリンタでまとめて印刷を行うことができる、という技術の開示がある。そして、プルプリント中は優先的にそれらジョブを処理することで、他ジョブの混入を防いでいる。
【0006】
上述した従来技術に関しては、プリンタ側でジョブに付加されたグループ識別子やユーザ情報を識別し、それに基づきジョブの割り込み制限などの特別な処理を行う必要があった。さらに、特許文献3に開示された技術では、プリントサーバ、カードリーダ、及びカード認証システムなどが必要となり、システムを導入するためのコストが高いといったことを考えると、より良い提案が望まれている。
【0007】
一方、これら技術に対して、ホスト側で複数のジョブを1つのジョブに結合することで、プリンタに特別な機能がなくても、複数のジョブを割り込まれること無く連続して印刷する技術がある。例えば、特許文献4によると、印刷ジョブをホスト上でいったん中間ファイルに保存し、それら複数ジョブの結合している。このジョブ結合により想定外の他ジョブの混入を防ぐことができる。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2006−192804号公報
【特許文献2】特開2005−149159号公報
【特許文献3】特開2005−202723号公報
【特許文献4】特開2001−134394号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
プリンタ側の特別な制御を強いることなく、ユーザ所望の複数のジョブを、他のジョブに割り込まれること無く連続して印刷する特許文献4の技術は、ユーザにとって有益な技術といえる。
【0010】
しかしながら、この技術においても既存の印刷システムの制限により、1つ印刷ジョブに対しては1つの設定しか行えない印刷属性などがあり、ジョブ結合の際して、各ジョブにおいて印刷属性の設定が変わってしまう場合があった。
【0011】
そこで、本発明においては、複数のジョブを結合して結合ジョブを生成する際にも、各ジョブの印刷属性などを考慮して、ユーザ所望の印刷出力を得るといった手法を提供することを目的とする。
【課題を解決するための手段】
【0012】
上記課題を解決するために、たとえば、印刷装置で印刷されるべき印刷データを処理する本発明における印刷制御装置は、アプリケーションにより生成された印刷すべきデータから変換されたジョブと、ジョブに設定されるジョブ属性とが関連付けて所定の保持部に一時的に保持されている際に、前記保持されたジョブに設定されるジョブ属性に応じて、当該ジョブに含まれる各ページのページ属性の値を付与する付与手段と、前記保持された複数のジョブを1つの結合ジョブにする結合指示を行う結合指示手段と、1つのジョブに対して1つの値しか付与できないジョブの両面属性の値が片面であるジョブと両面であるジョブとを含む複数のジョブを前記結合指示手段により1つの結合ジョブにする結合指示がなされた場合に、ジョブの両面属性として前記付与手段によって付与されたページ属性の値に基づく印刷出力が行われる特定の値が設定された結合ジョブを生成する生成手段とを備え、前記生成手段により生成されたジョブの両面属性に前記特定の値が設定された結合ジョブは、前記印刷装置において前記ページ属性の値に基づく印刷出力が行われることを特徴とする。
【発明の効果】
【0013】
本発明によれば、複数のジョブを結合して結合ジョブを生成する際にも、各ジョブの印刷属性などを考慮して、ユーザ所望の印刷出力を得るといった手法を提供することができる。
【0014】
とくに、本発明のように印刷制御装置において結合ジョブを生成することで、印刷装置において特に特殊な設計を行わなくても、ユーザの意図しないジョブの割り込み印刷などを防ぐことが可能となる。
【図面の簡単な説明】
【0015】
【図1】本発明の一実施例を示す画像処理装置の構成を説明するブロック図である。
【図2】通常印刷を行う印刷パスを説明するための図である。
【図3】本実施形態における拡張印刷を行う印刷パスを説明するための図である。
【図4】スプール印刷モードに応じた処理を説明するためのフローチャートである。
【図5】スプーラ302における処理を説明するためのフローチャートである。
【図6】スプールファイルマネージャ304における処理を説明するためのフローチャートである。
【図7】デスプーラ305における処理を説明するためのフローチャートである。
【図8】スプーラ302内でのカラー処理を説明するためのフローチャートである。
【図9】スプールファイルマネージャ304内でのカラー処理を説明するためのフローチャートである。
【図10】デスプーラ305内でのカラー処理を説明するためのフローチャートである。
【図11】スプーラ302内でのカラー処理(自動カラー判定を加味)を説明するためのフローチャートである。
【図12】デスプーラ305内での両面処理を説明するためのフローチャートである。
【図13】アプリケーションや印刷内容に応じて自動でカラー属性を決める処理を説明するためのフローチャートである。
【図14】スプール印刷モードを切り替えるUI例を示す。
【図15】スプールファイルマネージャのUI例を示す。
【図16】スプールファイルを管理するデータ構造の一例を示す。
【図17】グループ印刷による出力例を示す。
【図18】ジョブ結合する際に、統一が必要な属性と不要な属性の分類の一例を示す。
【図19】カラー/モノクロジョブが混載する際の印刷時の既存の動作例を示す。
【図20】カラー/モノクロジョブが混載する際の印刷時の本発明での動作例を示す。
【図21】カラー属性に関する属性ファイルの例を示す。
【図22】カラー属性に関する属性ファイル(自動カラー判定を加味)の例を示す。
【図23】片面/両面ジョブが混載する際の印刷時の既存の動作例を示す。
【図24】片面/両面ジョブが混載する際の印刷時の本発明での動作例を示す。
【図25】両面属性に関する属性ファイルの例を示す。
【図26】カラー判定の条件一覧の例を示す。
【図27】カラー判定の条件ファイルの例を示す。
【図28】入力データの例を示す。
【図29】アプリケーションに応じたカラー判定に関する本発明での動作例を示す。
【図30】スプールファイルマネージャ304で、ジョブを結合しない例外処理を説明するためのフローチャートである。
【図31】特別な出力設定がされている場合の例外処理を説明するためのフローチャートである。
【図32】実施例を適用した場合の動作例を示す。
【図33】部門管理設定がされている場合の例外処理を説明するためのフローチャートである。
【図34】特別なフィニッシング設定がされている場合の例外処理を説明するためのフローチャートである。
【図35】複数の出力ジョブを一括して送信する処理を説明するためのフローチャートである。
【発明を実施するための形態】
【0016】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【0017】
[第1実施形態]
図1は本発明における印刷システムに含まれるホストコンピュータ及びプリンタの構成を説明するブロック図である。なお、後述するような本発明の機能が実行されるのであれば、特にシステム構成はこれに限定されない。
【0018】
同図において、印刷制御装置としてのホストコンピュータ3000に関して説明する。ホストコンピュータ3000はCPU1を備え、ROM3のプログラム用ROMあるいは外部メモリ11に記憶された、例えば文書処理プログラム等に基づいて文書や画像の処理を実現する。また、CPU1は、システムバス4に接続される各構成を総括的に制御する。
【0019】
また、このROM3のプログラム用ROMあるいは外部メモリ11には、CPU1の制御プログラムであるオペレーティングシステム(以下OS)等を記憶している。また、ROM3のフォント用ROMあるいは外部メモリ11には、上述した文書処理の際などに使用するフォントデータ等を記憶し、データ用ROMあるいは外部メモリ11には各種処理等を行う際に使用する情報を記憶する。RAM2は、CPU1の主メモリ、ワークエリア等として機能する。
【0020】
キーボードコントローラ(KBC)5は、キーボード9や不図示のポインティングデバイスからのキー入力を制御する。CRTコントローラ(CRTC)6は、CRTディスプレイ(CRT)10の表示を制御する。ディスクコントローラ(DKC)7は、ブートプログラム、各種のアプリケーション、フォントデータ、及びプリンタ制御コマンド生成プログラム(以下プリンタドライバ)等を記憶する外部メモリ11とのアクセス制御を行う。また、外部メモリ11は、HDDやフロッピー(登録商標)ディスク(FD)等が含まれる。
【0021】
プリンタコントローラ(PRTC)8は、双方向性インターフェイス21を介してプリンタ1500に接続されて、プリンタ1500との通信制御処理を実行する。
【0022】
なお、CPU1は、例えばRAM2上に設定された表示情報メモリへのアウトラインフォントの展開(ラスタライズ)処理を実行し、CRT10上でのWYSIWYGを可能としている。また、CPU1は、CRT10上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウインドウを開き、種々のデータ処理を実現する。具体的には、ユーザは印刷を実行する際、印刷の設定に関するウインドウを開き、プリンタの設定や、印刷モードの選択を含むプリンタドライバに対する印刷要求の設定を行える。
【0023】
プリンタ1500に含まれる各構成は、CPU12により制御される。CPU12は、ROM13のプログラム用ROMに記憶された制御プログラム等、あるいは外部メモリ14に記憶された制御プログラム等に基づいて動作し、各種処理を実現する。
【0024】
CPU12は、印刷部I/F16を介してシステムバス15に接続される印刷部(プリンタエンジン)17に出力情報としての画像信号を出力する。また、このROM13のプログラムROMには、CPU12の制御プログラム等を記憶する。ROM13のフォント用ROMには上記出力情報を生成する際に使用するフォントデータ等が記憶されている。また、データ用ROMには、印刷処理を含む、各種処理等を行う際に使用する情報を記憶する。
【0025】
CPU12は入力部18を介してホストコンピュータとの通信処理が可能となっており、プリンタ内の情報等をホストコンピュータ3000に通知できる。RAM19は、CPU12の主メモリや、ワークエリア等として機能するRAMで、図示しない増設ポートに接続されるオプションRAMによりメモリ容量を拡張することができるように構成されている。なお、RAM19は、出力情報展開領域、環境データ格納領域、NVRAM等に用いられる。前述したハードディスク(HDD)、ICカード等の外部メモリ14は、メモリコントローラ(MC)20によりアクセスを制御される。外部メモリ14は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。また、入力部18は前述した操作パネルで操作のためのスイッチおよびLED表示器等が配されている。
【0026】
また、前述した外部メモリ14は複数個備えることが可能となっている。これにより、内蔵フォントに加えてオプションカード、言語系の異なるページ記述言語を解釈するプログラムを格納した外部メモリを複数接続して構成することができる。更に、図示しないNVRAMを有し、操作パネル1501からのプリンタモード設定情報を記憶するようにしてもよい。
【0027】
図2は、プリンタが所定の回線(LAN)などを用いて接続されているホストコンピュータにおける典型的な印刷処理を行うモジュールの構成図である。
【0028】
アプリケーション201、グラフィックエンジン202、プリンタドライバ203、およびシステムスプーラ204は、外部メモリ11に保存されたファイルとして存在する。そして、OSやそのモジュールを利用するモジュールによってRAM2にロードされ、実行される。また、アプリケーション201およびプリンタドライバ203は、外部メモリ11のFDや不図示のCDROM、あるいは不図示のネットワークを経由して外部ディスク11のHDDに追加することが可能となっている。
【0029】
アプリケーション201はRAM2にロードされて実行され、プリンタ1500に対して印刷を行う際には、同様にRAM2にロードされているグラフィックエンジン202を利用して出力(描画)を行う。
【0030】
グラフィックエンジン202は、印刷装置ごとに用意されたプリンタドライバ203を同様に外部メモリ11からRAM2にロードし、アプリケーション201の出力をプリンタドライバ203に設定する。そして、アプリケーション201から受け取るGDI(Graphic Device Interface)関数からDDI(Device Driver Interface)関数に変換して、プリンタドライバ203へDDI関数を出力する。プリンタドライバがDDIを通して受信した一連のデータを印刷ジョブ、または単にジョブと呼ぶ。1件の印刷要求に対してひとつの印刷ジョブができる。
【0031】
プリンタドライバ203は、グラフィックエンジン202から受け取ったDDI関数に基づいて、プリンタが認識可能な制御コマンド、例えばPDL(Page Description Language)に変換する。ここでは、ひとつの印刷要求から生成されたひとつの制御コマンドセットを印刷ジョブと呼ぶ。生成された印刷ジョブは、OSによってRAM2にロードされたシステムスプーラ204を経てインターフェイス21経由でプリンタ1500へ印刷データとして出力される仕組みとなっている。
【0032】
本実施形態においては、図2で示すプリンタとホストコンピュータからなる印刷環境に加えて、更に図3に示すように、アプリケーションからの印刷データを一旦中間コードデータでスプールする構成を有する。
【0033】
図3は、図2のホストコンピュータにおけるモジュール構成を拡張したもので、グラフィックエンジン202からプリンタドライバ203へ印刷命令を送る際に、一旦中間コードからなるスプールファイル303を生成する構成をとる。ひとつの印刷ジョブから変換された一連の中間コードを、ここでは中間ジョブと呼ぶ。
【0034】
図3では、スプールファイル303としての中間ジョブの加工や並べ替え、中間ジョブ同士の結合などができる。なお、印刷データに対する印刷属性などの設定を行うためには、通常プリンタドライバ203が提供するウインドウから設定を行い、プリンタドライバ203がその設定内容をRAM2上あるいは外部メモリ11上に保管している。
【0035】
図3に示す通り、この拡張された制御方式では、グラフィックエンジン202からの印刷命令であるDDI関数をディスパッチャ301が受け取る。ディスパッチャ301が受け取った印刷命令(DDI関数)が、アプリケーション201からの印刷命令(GDI関数)に基づいたものである場合、ディスパッチャ301はスプーラ302を起動し、スプーラ302へ印刷命令(DDI関数)を送付する。
【0036】
スプーラ302は受け取った印刷命令を解析し、ページ単位に中間コードに変換してスプールファイル303に出力する。このページ単位に格納されている中間コードのスプールファイルをページ描画ファイルと呼ぶ。また、スプーラ302は、印刷データに設定された印刷属性(Nup、両面、ステイプル、カラー/モノクロ指定等)をプリンタドライバ203から取得し、ジョブ単位の印刷属性ファイルとしてスプールファイル303に保存する。このジョブ単位の印刷属性をジョブ属性と呼び、後述するページ属性と区別する。
【0037】
なお、スプールファイル303は外部メモリ11上にファイルとして生成するが、RAM2上に生成されても構わない。
【0038】
更にスプーラ302は、外部メモリ11に格納されているスプールファイルマネージャ304をRAM2にロードし、スプールファイルマネージャ304に対してスプールファイル303の生成を通知する。スプールファイルマネージャ304はジョブ管理リストをRAM2上に生成し、受け取った通知を元にスプールファイル303(中間ジョブ)の管理を行う。
【0039】
ユーザの指示に基づき、スプールファイルマネージャ304から印刷を行う場合は、デスプーラ305に対して、スプールファイル303に記述された中間コードのページ描画ファイルの印刷処理を行うように指示する。
【0040】
デスプーラ305は、スプールファイル303に含まれる中間コードのページ描画ファイルを、印刷属性に従って加工し、GDI関数を再生成し、もう一度グラフィックエンジン202経由でGDI関数を出力する。
【0041】
ディスパッチャ301がグラフィックエンジン202から受け取った印刷命令(DDI関数)が、デスプーラ305からの印刷命令(GDI関数)に基づいたものである場合、ディスパッチャ301はプリンタドライバ203に印刷命令(DDI関数)を送る。
【0042】
プリンタドライバ203はグラフィックエンジン202から取得したDDI関数に基づいてページ記述言語等からなるプリンタ制御コマンドを生成し、システムスプーラ204経由でプリンタ1500に出力する。
【0043】
スプールファイルマネージャ304では、更に中間ジョブ同士の結合印刷を指示することができる。なお、印刷属性の中にはジョブに対してひとつしか設定できない属性があるため、結合時に元ジョブの属性を継承できるものと、結合ジョブ全体でひとつに統合する必要がある属性が存在する。
【0044】
図18では、ジョブ結合時に統一する必要がある印刷属性と、ジョブ内で異なる設定値が設定可能な(混在可能な)印刷属性の例を挙げている。
【0045】
更に図3では、これまで説明した拡張構成に加えて、スプールファイルのプレビューを行うプレビューア306、設定変更を可能にする設定変更エディタ307を備える。
【0046】
図4ではホストコンピュータにおけるアプリケーションからの印刷時、スプール印刷モードに応じたディスパッチャ301の動作の一部を説明したものである。スプール印刷モードとは、図3に示した拡張印刷を行うための制御するモードを示す。
【0047】
ステップ401で印刷要求(DDI関数)を受け取ると、ステップ402でスプール印刷モードがONであるかどうか判断する。ONだった場合はステップ403にてスプーラ302を起動してスプーラ302にDDI関数を流し、OFFだった場合はステップ404にてプリンタドライバ203にそのままDDI関数を送る。
【0048】
図14はスプール印刷モードを切り替えるUIの一例で、タスクトレイ上のボタンでON/OFFを切り替えることができる。この設定情報はレジストリ等のメモリ上に保持され、ステップ402ではその情報を参照してスプール印刷モードを判断する。
【0049】
図15はスプールファイルマネージャ304のユーザインターフェース(UI)の例であり、ここではアプリケーションから受け取った3つのジョブがスプールされ、一覧を表示されている画面の様子を示している。ユーザはこのUIを介して、一括印刷(ジョブ結合)などの指示を行うことが可能となる。
【0050】
図5は、スプーラ302にて、印刷要求(DDI関数)を受け取った時にスプールファイルを生成する処理を説明するためのフローチャートである。
【0051】
まずステップ501では、スプーラ302は、アプリケーションからグラフィックエンジン202を介して印刷要求を受け付ける。印刷要求の中には印刷対象のデータに関する各種情報があり、ジョブの開始や終了、改ページなどの制御コマンド、および描画データが含まれる。
【0052】
スプーラ302は、ステップ501で受け取った要求がステップ502にてジョブ終了コマンドであるか、ステップ503にてジョブ開始コマンドであるか、ステップ504にて改ページコマンドであるか、それぞれ判断する。
【0053】
ステップ502でジョブ終了コマンドではないと判断され、ステップ503でジョブ開始コマンドと判断された場合、ステップ505にてスプールファイル303の作成を行い、ジョブの情報のための領域を確保する。ここで、プリンタドライバ203から取得したジョブ属性データを属性ファイルに保存する。
【0054】
ステップ503でジョブ開始コマンドではないと判断され、ステップ504で改ページコマンドと判断された場合、ステップ506にて次のページ描画ファイルを生成する。これはページ単位で中間データを扱うため、ページ毎に描画ファイルを持つこととしている。次にステップ507にてページ単位の印刷属性を保持するページ属性データを生成し、前述した属性ファイルに該当ページに対応付けて追加する。
【0055】
ステップ504で改ページコマンドではないと判断された場合、印刷要求はいずれの制御コマンドでもないことから描画データとなる。ステップ508にてスプーラ302は、印刷要求(描画データ)をスプールファイル303へ格納するため、印刷要求のDDI関数の中間コードへの変換処理を行う。そして、ステップ509にて、この中間コードをスプールファイル303へ書き込む。
【0056】
以上、ステップ501からステップ509の一連の処理をジョブ終了コマンドを受け取る(ステップ502でジョブ終了コマンドと判断される)まで行う。
【0057】
ステップ502でジョブ終了コマンドと判断された場合、スプーラ302は、ステップ510にてスプールファイルをクローズし、ステップ511にてスプールファイルマネージャ304にスプール完了を通知し、本処理を終了する。
【0058】
図6は、スプールファイルマネージャ304にて実行される、ジョブ管理プロセスとユーザの指示に基づく印刷制御の詳細を説明するためのフローチャートである。スプールファイルマネージャ304では、スプーラ302がスプールしたスプールファイル303を管理し、またUI上に一覧表示し、ユーザの指示に従って中間ジョブの印刷や削除などを行う。
【0059】
ステップ601にて通知入力を受信すると、ステップ602にてスプーラ302からのジョブ追加通知であるか、またはステップ603にてユーザによる操作であるか、判断する。
【0060】
ステップ602にてスプーラ302からのジョブ追加通知であると判断された場合、ステップ609にて、図16に例示するようなジョブ管理リストに新しいジョブを追加する。
【0061】
図16に示すジョブ管理リストは、図の左側リストに示すようにストア中のジョブ数、およびジョブIDを保持する。ジョブIDは、それぞれ中間ジョブファイル(スプールファイル303)と対応付けられている。中間ジョブファイルは、ジョブごとにひとつの属性ファイルと、ページごとにひとつのページ描画ファイルを持つ。属性ファイルには、ジョブ属性と各ページのページ属性を持つ。
【0062】
次に、ステップ610にてUI(図15)表示を更新し、中間ジョブの追加処理を終了する。図15はUIの一例であり、スプールされているジョブの一覧を表示する。ジョブが追加するとそれに応じてUIも更新される。
【0063】
ステップ603にてユーザ操作であると判断された場合は次の判断を行う。ここでは、スプールファイルマネージャ304はステップ604〜608にて、ユーザ操作が終了要求であるか、一括印刷要求であるか、一括ステイプル要求であるか、一括オプション変更要求であるか、ジョブ削除要求であるか、をそれぞれ判断する。
【0064】
ステップ604にてユーザ操作が終了要求ではないと判断され、ステップ605にて一括印刷要求と判断した場合、すなわちユーザが図15に例示する「一括印刷」ボタンを押下するなどした場合、ステップ611に遷移する。スプールファイルマネージャ304はステップ611にて、現在スプールされている全中間ジョブファイルを結合できるかどうか印刷属性を解析して判断する。可能である場合は、ステップ612にて各中間ジョブファイルの持つジョブ属性をひとつに統一し、またページ属性を結合する。つぎにステップ630にて、ひとつの結合ジョブを生成し、新たにスプールファイル303に追加する。つぎに、ステップ613にて、後述する一括オプション620にて設定がある場合はそれを適用し、ステップ614に遷移する。
【0065】
ステップ604にてユーザ操作が一括印刷要求ではないと判断され、ステップ606にて一括ステイプル要求と判断された場合、ステップ617、618、631では、前述のステップ611、612、630と同様の処理を行う。その後、ステップ619にてステイプル属性にONをセットし、ステップ614に遷移する。ここでは、結合ジョブ全体に対してステイプルを実行するような印刷要求が行われる。
【0066】
ステップ614にて、スプールファイルマネージャ304はデスプーラ305に印刷指示を行う。デスプーラで印刷を行うとステップ615にてすべての中間ジョブと結合ジョブを消去した上でジョブ管理リストをクリアし、ステップ616にてUIを閉じて終了する。
【0067】
図17(a)は、3つの独立したジョブをいったんスプールし、一括印刷した例である。それぞれ設定通りに印刷されている様子を示している。
【0068】
図17(b)は、4つの依存したジョブをいったんスプールし、一括ステイプル印刷で2部印刷した例である。アプリケーションからはここに印刷したジョブでも、ひとまとめにしてステイプルしたり、複数部数印刷することができる様子を示している。
【0069】
ステップ606にて一括ステイプル要求ではないと判断され、ステップ607にて一括オプション変更要求と判断された場合、ステップ620にてUI(不図示)を表示する。ここでは、UIを介してユーザに結合ジョブ全体に適用可能なオプション属性を指定させる。たとえば製本を指定されれば、結合ジョブ全体をひとつのジョブとみなして所定の面つけ処理を行い、製本印刷が行われるよう制御する。ユーザには、他にもモノクロ印刷、パンチ、部数設定、ソートなどの設定を行わせることができる。ここでの設定は、前述したジョブ属性として追加される。
【0070】
なお、このステップ620にステイプル設定を入れ、ステップ605などの一括印刷でステイプル印刷を実現することも、もちろん可能である。ステップ606及びステップ617から619の処理は、操作ステップ数を減らすために一連の作業をひとつの要求で行った例であることから、いずれかの方法のみで実現してもよい。
【0071】
図15のUI上で1つ以上の中間ジョブファイルを選択している状態で、ステップ608にてジョブ削除要求と判断された場合、ステップ621にて選択中の中間ジョブをスプーラ302から削除し、またジョブ管理リストからも削除する。
【0072】
図7は、デスプーラ305における、印刷データの生成プロセスの詳細を説明するためのフローチャートである。
【0073】
デスプーラ305では、スプールファイルマネージャ304からの印刷要求に応じて指示された中間ジョブや結合ジョブの印刷を行う。その際、結合ジョブには元の中間ジョブ毎に異なる設定がなされている場合があるため、ジョブ属性およびページ属性を見ながらページ描画データの加工を行い、属性に指定された通りの出力を行う。
【0074】
ステップ701にて通知入力を受信すると、デスプーラ305はステップ702にてスプールファイルマネージャ304からの印刷要求であるか判断する。ステップ702にてNoである判断された場合、通知に基づく他の所定の処理を行い、次の通知が入力されるまで待機する。
【0075】
ステップ702にてYesである判断された場合、ステップ703にて印刷対象ジョブのジョブ属性を取得する。
【0076】
ステップ704にて、デスプーラ305は取得したジョブ属性がオート属性(AUTOCOLORやAUTODUPLEX)か否かを判断する。ジョブ属性がオート属性であると判断された場合、以降ジョブに含まれるページ毎に処理(ステップ705〜709)を行うことになる。
【0077】
ステップ705にて処理対象のページのページ描画データ、およびステップ706にてページ属性を取得し、ステップ707にて取得した属性に応じたページ加工を行う。ステップ708にて、対象ページについてページ描画データの印刷命令の再生成を行う。
【0078】
なお、図では省略しているが、ステップ704の判定、およびステップ705から710の処理はそれぞれの属性ごとに行うものとする。この一連の処理は、カラー/モノクロ混合ジョブ、および片面/両面混合ジョブを例に、詳しく後述する。
【0079】
ステップ705からステップ708をページ毎に繰り返し、ステップ709で最終ページの処理が終わったと判断したら、本処理を終了する。
【0080】
ステップ704にてジョブ属性がオート属性ではないと判断された場合、ジョブ全体をひとつの設定(カラー、モノクロ、片面、両面、など)で印刷することを意味する。よって、ステップ710にて特別な加工を行わずに、中間ジョブに含まれるページ描画データの印刷命令の再生成を行う。
【0081】
以下に、カラー属性に関して、カラー印刷指定されたジョブとモノクロ印刷指定されたジョブが結合される場合を例に説明する。
【0082】
図19(a)では、2つの中間ジョブ(Job1、Job2)があり、Job1をジョブ属性がカラー指定、Job2をジョブ属性がモノクロ指定で印刷したときの様子を示している。なお、Job1、Job2共に、1ページ目がカラーページ(カラーオブジェクトを含むページ)、2ページ目がモノクロページ(モノクロオブジェクトのみで構成されるページ)である。Job1はジョブ属性がカラー指定なので、カラーページはカラーで印刷され、1ページ目はカラー、2ページ目はモノクロで印刷される。Job2はジョブ属性がモノクロ指定なので、1ページ目も2ページ目もモノクロで印刷される。
【0083】
これらの中間ジョブを結合する場合、結合後のジョブに対してひとつのカラー属性を割り当て直すことになる。
【0084】
ここで図19(b)に示すように、もし結合後のジョブのジョブ属性をカラー指定すると、もともとカラーページであったJob2の1ページ目もカラー印刷されることになり、1ページ目と3ページ目がカラー印刷となる。
【0085】
また、もし結合後のジョブのジョブ属性をモノクロ指定すれば、全ページがモノクロ印刷となる。いずれも単独で印刷した場合(図19(a))との出力結果が異なる。
【0086】
この出力結果の不一致を解決する方法を図8から図10での処理と対応させて説明する。
【0087】
図8は、カラー/モノクロジョブの処理に関して、図5のステップ507、すなわちページ属性データの生成について詳細を説明するためのフローチャートである。
【0088】
アプリケーションから渡されるジョブのカラー属性は、図21(a)に示すように、COLORとMONOがある。
【0089】
ステップ801にて、入力されたジョブのカラー属性がMONOだと判断した場合、ステップ803にてジョブ中の各ページのページカラー属性にMONOをセットする。
【0090】
またステップ801にてジョブカラー属性がCOLORだと判断した場合は、ステップ802にて各ページのページカラー属性にはCOLORをセットする。図19(a)の2つのジョブを例にとれば、図21(b)の属性データができる。
【0091】
図9は、カラー/モノクロジョブの処理に関して、図6のステップ612、すなわちジョブ結合時の属性の統合についての詳細を説明するためのフローチャートである。
【0092】
ステップ901にて、結合対象のジョブそれぞれのジョブカラー属性をチェックし、ステップ902にて全ジョブのカラー属性がCOLORか否かを判断する。ステップ902にて全ジョブのカラー属性がCOLORと判断された場合には、ステップ906にて結合後のジョブのカラー属性にCOLORを設定する。
【0093】
ステップ902にて全ジョブのカラー属性がCOLORではないと判断された場合、ステップ903にて全ジョブのカラー属性がMONOか否かを判断する。全ジョブのカラー属性がMONOだと判断した場合には、ステップ905にて結合後のジョブカラー属性にMONOを設定する。
【0094】
ステップ903にて全ジョブのカラー属性がMONOでないと判断された場合、複数の中間ジョブは同一のカラー属性ではないことを意味する。この場合は結合後のジョブのカラー属性にAUTOCOLORを設定する。最後にステップ907にて各中間ジョブのページのカラー属性を統合する。
【0095】
先述の図21(b)に示す2つのジョブを結合する場合を例にとると、ステップ904、ステップ907を経て、図21(c)に示す属性データが生成される。
【0096】
ジョブのカラー属性がAUTOCOLORの場合、図7のステップ704の判断にてステップ707へ遷移する。図10は、カラー/モノクロ属性の混在するジョブの処理に関して、図7のステップ707、すなわちページ属性に応じたページ描画データの加工についての処理の詳細を説明したフローチャートである。
【0097】
ステップ1001にて、ページのカラー属性がMONOであると判断した場合は、ステップ1003にて処理対象ページをモノクロページとして印刷命令の再生成処理を行う。また、ステップ1001にてCOLORであると判断した場合は、ステップ1002にて処理対象ページをカラーページとして印刷命令の再生成処理を行う。
【0098】
ここではコマンドによるカラー/モノクロ指定が一般的であるが、モノクロ印刷を行う場合に、カラーオブジェクトをモノクロオブジェクトに変換する方法をとっても良いことは言うまでもない。
【0099】
以上の処理により、図20に示すように異なるカラー指定がなされたジョブをジョブ結合によりグループ印刷した場合でも、それぞれの設定通りに出力されることになる。
【0100】
図11は、図8において、プリンタなどにおける課金処理などを考慮し、カラー判定を加えた場合の処理の詳細を説明するためのフローチャートである。たとえジョブのカラー属性でカラー指定した場合でも、モノクロページであればモノクロで課金がなされるよう、ページ単位でページのカラー属性を設定する。
【0101】
ステップ1101にて、ジョブカラー属性がMONOだと判断された場合は、ステップ1106にて全ページのページカラー属性にMONOをセット(設定)する。
【0102】
ステップ1101にてジョブカラー属性がMONOではないと判断された場合は、ステップ1102にてページ毎にカラーオブジェクトを含むかどうか解析する。
【0103】
ステップ1103にてページにカラーオブジェクトが存在すると判断された場合は、ステップ1104にて対象ページのページカラー属性にCOLORをセット(設定)する。ステップ1103にてページにカラーオブジェクトが存在しないと判断された場合は、ステップ1105にて対象ページのページカラー属性にMONOをセット(設定)する。
【0104】
ステップ1102〜1105までの処理を、ジョブ中のすべてのページに対して行い、ステップ1107にて最終ページの処理が終わったと判断したら本処理を終了する。
【0105】
図19(a)を例にとると、図22(a)に示すカラー属性データが生成され、その後のスプールファイルマネージャ304の結合処理で図22(b)に示すカラー属性データが作られる。
【0106】
以下に、ジョブの両面属性に関して、片面指定と両面指定がそれぞれ設定されたジョブが結合される場合を例に説明する。
【0107】
図23に示すように、片面指定のジョブ(Job1)と両面指定のジョブ(Job2)を結合する場合を例にとる。ジョブには両面属性についても1つの設定しかできないので、結合後に片面指定及び両面指定の何れかを設定することになり、図23のようなジョブを結合する場合、各ジョブの当初の設定通りのユーザが意図する出力が行われない。ここではその解決方法を示す。
【0108】
図25(a)は、図23で示すそれぞれのジョブで設定されているジョブの両面属性である。図に示すように、設定値はSIMPLEX(片面)とDUPLEX(両面)がある。
【0109】
まず、スプーラ302では、図5に示す処理により図25(b)に示す両面属性データが作られる。次に、スプールファイルマネージャ304では、図6に示す処理により図25(c)に示す両面属性データが生成される。
【0110】
ジョブの両面属性がAUTODUPLEXの場合、図7のステップ704の判断を経てステップ707が実行される。
【0111】
図12は、片面/両面ジョブの処理に関して、図7のステップ707、すなわちページ属性に応じたページ描画データの加工について詳細を説明したフローチャートである。なお、結合後は、プリンタにおいてジョブ全体に対して両面印刷が行われる。
【0112】
ステップ1201にて、まず処理中のページに関して印刷命令を再生成する。
【0113】
ステップ1202にてデスプーラ305は、ページ両面属性がDUPLEXであるかどうか判断する。ここでNoの場合はステップ1203にて白紙ページを挿入し、ステップ1204にて当該白紙ページの出力に対して課金されないよう、白紙ページに対応付けて白紙非課金コマンドを発行する。
【0114】
ステップ1202にてDUPLEXだった場合は、従来通り印刷データを送ればよいので何もせずに終了する。
【0115】
以上の処理により、図24に示すように属性が片面指定と両面指定のジョブを、ジョブ結合により印刷した場合でも、それぞれの設定通りに出力されることになる。また挿入した白紙ページに関しても非課金で印刷される。
【0116】
[属性の設定手法の拡張について]
なお、ここまでの例では各ジョブの設定はユーザが行うことを想定していたが、続けて、アプリケーション名や印刷内容に応じて自動的に属性が決まる制御方法と連携させる処理に関して説明する。
【0117】
例えば、図26に示す条件に従ってジョブのカラー属性が決まる場合を考える。前提として、文書作成用アプリケーションであるアプリケーション名“文書”、表計算用アプリケーションであるアプリケーション名“表計算”、及びブラウザアプリケーションであるアプリケーション名“ブラウズ”などのアプリケーションがあるとする。
【0118】
図26では、アプリケーション名が“表計算”ならば属性はモノクロ(#1)、“ブラウズ”ならば属性はカラー(#2)となる。また、アプリケーション名が“文書”ならば通常、属性はモノクロだが(#3)、印刷対象の文書中に「見積書」というキーワードが含まれる場合(#4)、またはジョブ名が「Spec Document」の場合(#5)には属性がカラーとなる。
【0119】
図27は図26の条件が記述されたファイルの例である。アプリケーション名(AppName)、ジョブ名(JobName)、及びキーワード(KeyWord)の条件を記述すると、合致する条件のカラーモード(ColorMode)がジョブの属性に設定される。
【0120】
なお、アプリケーション名により属性を設定する例を説明するが、アプリケーションの目的(文書作成や表計算)などによって同様な処理を行うとしてもよい。
【0121】
図13は、上記の属性の設定処理の詳細を説明するためのフローチャートであり、図5のステップ505での処理の一部として実現される。
【0122】
まずステップ1301にて、図27に例示したような条件ファイルを読み込む。
【0123】
次にステップ1302にて、受信したジョブのアプリケーション名およびジョブ名を取得し、条件ファイルと比較する。アプリケーション名とジョブ名は、スプール開始時点で知ることができる。アプリケーション名は実行モジュール名で判断することができる。ジョブ名はアプリケーションが自由に生成できるが、ファイル名などがよく使われる。ここで、ジョブ名の検索は完全一致だけでなく、部分一致、前方一致、後方一致などが適用できることは言うまでもない。
【0124】
ステップ1303にて、ジョブに含まれる情報が条件ファイル中のいずれかの条件にヒットするか判定し、いずれにもヒットしなければジョブの属性の変更をせず(ステップ1310)、アプリケーションやプリンタドライバで設定された属性値がジョブの属性として使われる。
【0125】
ステップ1303にて、いずれかの条件にヒットした場合、ステップ1304にてさらに同条件の中にキーワードオプションが指定されている条件があるか確認する。図26を例にとると、#3と#4がその関係にある。すなわち、アプリケーション名が“文書”、かつジョブ名が“Spec Document”、以外であるようなジョブでも、#4にはキーワードオプションが存在するため、本判定ではYesと判定される。
【0126】
ステップ1304にてキーワードオプションがないと判断された場合、これ以上ほかにヒットする条件は存在しない。このときは、ステップ1305にてアプリケーション名/ジョブ名の条件でヒットした条件に割り当てられている出力設定を取得し、ステップ1306にて取得した出力設定を用いて本ジョブのジョブ属性をリセットする。
【0127】
ステップ1304にてキーワードオプションが存在すると判断された場合、ステップ1307にてページ描画データの内容を解析する。その後、ステップ1308にて指定されたキーワードが存在するか否かを判断する。ステップ1308にて、指定されたキーワードが存在すると判断した場合、ステップ1309にて、該当する条件に割り当てられている出力設定(属性値)を取得し、ステップ1306で、取得した出力設定で本ジョブのジョブ属性を再設定する。
【0128】
ステップ1308にて指定するキーワードが存在しないと判断された場合は、キーワードオプションのない条件にヒットしたことに相当するので、ステップ1305へ進む。
【0129】
たとえば、図28に示す3つのジョブをそれぞれ受信した場合を例にとって説明する。
1.受信時は、ステップ1303にて図26条件#1にヒットし、ステップ1304ではキーワードオプションは存在しないため、ステップ1305にてジョブカラー属性には「モノクロ」がセットされる。
2.受信時は、同様に条件#5にヒットしてジョブカラー属性には「カラー」がセットされる。
3.受信時はステップ1304、ステップ1308を経て条件#4にヒットし、ステップ1309にてジョブカラー属性には「カラー」がセットされる。
【0130】
図29は、図28に示す3つのジョブを本処理方法で一時スプールし、一括印刷した場合の概要を示した図である。それぞれのジョブはスプーラ302でジョブ属性が決定し、スプールファイルマネージャ304で結合され、デスプーラ305で設定通りに印刷される。ここでは、属性の設定手法の拡張として、アプリケーション名などによりジョブのカラー属性が決定される点が見てとれる。
【0131】
[第2実施形態]
以下、第2実施形態について説明する。第2実施形態は全体の構成は第1実施形態と同じであり、各々図1から図7にて示される。
【0132】
第1実施形態との相違点は、スプールされたすべてのジョブを一律結合するのではなく、出力設定に応じて適宜結合すべきジョブを選んで結合し、複数の結合ジョブをデスプーラ305に対して印刷要求を行う点である。
【0133】
ここで、特別な設定をしたジョブに関して、本実施例において考慮する。たとえば、プリンタのボックスに保存を行う指示を含むジョブは、実際に印刷出力するのではなくプリンタのHDD等に保存されることになる。このジョブを、印刷出力を伴うジョブを含めて、一律ひとまとめに結合すると、ユーザの意図に反する出力が行われる。
【0134】
そこで第2の実施例では、出力方法が異なるジョブをユーザが区別せずに一括印刷要求しても、後述する制御手法による適切に仕分けを行い、通常印刷するものは結合して印刷し、その他の特別な出力設定をしたものはその設定通りに出力する方法を示す。
【0135】
図30は、本制御手法の主体として動作するスプールファイルマネージャ304の処理の詳細を説明するフローチャートを示す。前述した図6と同様な処理に関しては、同一の符号を付してあり、ここでは図6で説明した処理との差異を説明する。
【0136】
ステップ605にて一括印刷要求と判断した場合、ステップ3011にてジョブの出力設定をチェックし、独立して出力すべきジョブが混在していると判断した場合は、通常印刷すべきジョブだけを選んで結合する。他のジョブは結合処理をスキップする、あるいは、それぞれの出力設定毎にグループ化して各グループでジョブ結合する、などのグルーピングを行う。
【0137】
ステップ3014にて、結合処理後に存在するひとつ以上のジョブについて、それぞれデスプーラ305に対して印刷要求を行う。なお、出力設定に応じた処理の例は、後述する。
【0138】
ステップ3100のその他の処理とは、すでに説明した処理と変わらないことを意味する。すなわち、図6のステップ606からステップ608の判断に応じた処理は、図30でも適用されるものとする。
【0139】
特別な出力設定の一例として、ボックス保存やセキュアプリント、追い越し印刷などがある。ボックス保存はプリンタ本体のHDDに印刷ジョブ(もしくは印刷対象のデータ)を保存する。セキュアプリントは、プリンタで受信したジョブについて、ユーザによりプリンタのパネルなどでパスワードを入力されるまで印刷を止めておく。追い越し印刷は、そのジョブが優先的に印刷される。よって、これらのジョブは通常の印刷出力を行うジョブとの結合は適さない。これらの特別な出力設定のジョブは結合対象とせず、通常の印刷出力のものだけを対象に前述したような結合処理を行うこととする。
【0140】
図31は、図30のステップ3011における処理の詳細を説明するためのフローチャートである。
【0141】
ステップ3101にて、ジョブの出力設定をチェックする。
【0142】
ステップ3102にて、上述の特別な出力設定だと判断された場合は、ステップ3104にて、独立ジョブとして結合をスキップする。ステップ3102にて一般出力設定だと判断した場合には、ステップ3103にて結合処理を行い、中間ジョブファイルや属性データの結合処理や、ジョブ管理リストの更新を行う。
【0143】
以上、ステップ3101〜3104までの処理をスプールされているすべての中間ジョブファイルに対して行い、ステップ3105にて最後のジョブの処理が完了したと判断したら終了する。尚、本処理では特別な出力設定以外の中間ジョブを次々に結合処理していくが、全ジョブを解析した後に結合されるべき中間ジョブファイルをまとめて結合してもよい。
【0144】
図32は、本実施例を適用して印刷を行った例である。J1からJ5までの5つの印刷要求があり、J2にはセキュアプリント、J5にはボックス保存の指定があった場合、J2とJ5はステップ3104の処理が、残りのジョブはステップ3103の処理が適用され、最終的には3ジョブが出力される。
【0145】
[他の特別な出力設定1]
特別な出力設定の別の例として、部門管理情報(ビリングコード)が設定されたジョブがある。プリンタで印刷処理などの実績を正しく集計するため、異なるビリングコードが設定されているジョブを結合することは好ましくない。この部門管理の設定がなされたジョブはビリングコードに応じた結合処理を行う必要がある。
【0146】
なお、本処理では、ジョブの出力順序が重要でない場合(特に、事前にユーザが設定していない場合など)は、ジョブを並べ替えて同じビリングコードを持つグループに対してジョブの結合処理を行う。出力順序が重要な場合は、前後のジョブ間でビリングコードをチェックして、同じなら結合処理を行う。以上の制御を行うことで、トータルジョブ数を減り、ジョブ間に想定しない他のジョブが割り込むの可能性を減らすことができる。
【0147】
図33は、図30のステップ3011における本処理に特有の処理の詳細を説明するためのフローチャートである。
【0148】
ステップ3301にて、ジョブの出力設定をチェックする。
【0149】
ステップ3302で本印刷システムがビリングコードを含む設定または環境であるかチェックし、ビリングコードが含まないならば、ステップ3309にて全中間ジョブファイルを結合する。例えば、部門管理を行っていない印刷環境などでは当然ビリングコードはジョブに設定されない。
【0150】
ステップ3302にてビリングコードが含むと判断された場合、さらにステップ3303で出力順序を優先するかを判断する。なお、通常はユーザが印刷要求を発行した順に出力されるが、出力順序を優先しない場合はより多くのジョブを可能な限り結合するよう結合処理を優先することができる。これは、あらかじめUI等(不図示)でユーザが印刷要求の順序で出力することを設定する。
【0151】
ステップ3303で出力順序優先と判断された場合、2番目の中間ジョブファイル以降であればステップ3304にてビリングコードが前の中間ジョブファイルと同じかチェックし、同じ場合はステップ3305にて前の中間ジョブファイルとの結合処理を行う。ステップ3304にてビリングコードが前の中間ジョブファイルと同じでなかったと判断された場合は、結合処理は行わない。
【0152】
以上、ステップ3304〜3305までの処理をスプールされているすべての中間ジョブファイルに対して行い、ステップ3306にて最後のジョブの処理が完了したと判断した場合に本処理を終了する。
【0153】
ステップ3303にて出力順序優先していないと判断された場合、ステップ3307にて中間ジョブファイルに設定されたビリングコード毎にグループ化し、ステップ3308にてそれぞれのビリングコードのグループ毎にジョブの結合処理を行う。
【0154】
尚、本処理における中間ジョブファイルの結合処理に関しては、前述の実施形態と同様の処理を行うことになる。
【0155】
[他の特別な出力設定2]
この他、別の出力設定の例として、ステイプルやパンチなどのフィニッシング機能がある。プリンタ側に、ジョブの一部のページのみにこれらフィニッシング設定を適用する機能がない場合は、ひとつのジョブに対してまとめて処理を行うことになるため、そのような設定がない印刷ジョブとの結合処理は適さない。本処理では、これらの特別なフィニッシング設定のジョブは結合対象とせず、それ以外の出力設定の印刷出力のものだけを対象に結合処理を行う。
【0156】
図34は、図30のステップ3011における本処理に特有の処理の詳細を説明するためのフローチャートである。
【0157】
ステップ3401にて、ジョブの出力設定をチェックする。
【0158】
ステップ3402にて、ステイプルやパンチなどのフィニッシング設定がされていると判断された場合は、ステップ3404にて、独立ジョブとして結合処理をスキップする。
【0159】
ステップ3402にて、ステイプルやパンチなどのフィニッシング設定がされていないと判断された場合は、ステップ3403にて該当する中間ジョブファイルの結合処理を行う。ここでは、前述のように属性データ等も含む結合処理や、ジョブ管理リストの更新などが行われる。
【0160】
以上、ステップ3401〜3404までの処理をスプールされているすべての中間ジョブに対して行い、ステップ3405にて最後のジョブの処理が完了したと判断された場合に、本処理を終了する。
【0161】
[複数ジョブの送信手法の拡張について]
図31〜34で示したフローチャートでは、ジョブが複数存在するため割り込み印刷がなされる可能性がある。ここでは、中間ジョブファイルの結合処理による印刷を行わないものに対しても極力割り込みを避ける手法を説明する。
【0162】
ここでは、システムスプーラ204を一時停止し、その間に全中間ジョブファイルに関するプリンタドライバ203での処理を行う。プリンタドライバ203によって生成された出力データはシステムスプーラで留め置きされ、一時停止の解除によって、ほぼまとめて次々にプリンタに送信されることになる。
【0163】
プリンタドライバ203での処理には時間を要するため、プリンタドライバ203での処理をしながらシステムスプーラを介してプリンタへの送信を行うと、プリンタドライバ203での処理をすべて完了してから送信するよりも総処理時間が短縮される。
【0164】
しかしながら、プリンタドライバ203での処理をすべて完了してから送信したほうが各ジョブの送信の間隔を短縮でき、それにより例えば他のクライアントからのジョブとバッティングする確率は下がり、それらジョブが割り込む可能性は低減する。またバイナリレベルでの送信が連続するため、プリンタのネットワーク接続処理方法によっては、連続ジョブと判断されるといったメリットもある。
【0165】
以上の処理は、デスプーラ305がシステムスプーラ204を一時停止/解除を行うことで実現する。
【0166】
さらに割り込み確率を下げるために、サイズの小さなジョブから送るようスケジューリングを行うといった処理を行う。これは、2つのジョブを送る場合、1ジョブ目のサイズが小さければすぐに2ジョブ目の受信が始まり、プリンタが2ジョブ目の受信を始めれば割り込みはなくなるからである。
【0167】
図35は、図30のステップ3014における本処理に特有の処理の詳細を説明するためのフローチャートである。
【0168】
ステップ3501にて印刷すべき結合ジョブを含むジョブが複数あるかチェックし、ひとつしかない場合(No)は、ステップ3506にてデスプーラ305に印刷要求を行い、本処理を終了する。複数の印刷すべきジョブがあると判断された場合(ステップ3501−Yes)は、ステップ3502にてOS(オペレーティングシステム)への要求を通してシステムスプーラ204を一時停止する。
【0169】
ステップ3503にてデスプーラ305に印刷要求をすると、プリンタドライバ203がレンダリングを実行し、レンダリング実施済の出力ジョブ(プリンタ制御コマンド)はシステムスプーラ204に送られる。ここで、システムスプーラ204が一時停止状態のため、出力ジョブは一時的に蓄積される。
【0170】
ステップ3503の処理を印刷出力すべきジョブの数だけ実施し、ステップ3504にて最後のジョブの処理が完了したと判断したら、ステップ3505にてシステムスプーラ204の一時停止を解除する。この解除により、システムスプーラ204に溜められていた複数の出力ジョブは、まとめてプリンタに送信される。
【0171】
第2実施形態によれば、ユーザは特別な出力設定を持つ複数の印刷ジョブでも気にせずスプールし、「一括印刷」を指示すれば、本制御手法によって自動でプリンタにおける割り込みを極力抑えるよう、適宜結合処理され、プリンタにジョブが出力される。これによりユーザが自らジョブの設定を意識して一括印刷すべきジョブを選択してスプールする手間が省ける。また、複数ジョブがひとつに結合されない場合であっても、上述した出力方法を取ることで極力割り込みが起こらないように、ひとまとめにプリンタへ出力することができる。
【0172】
以上説明したように、本発明によれば、ユーザ所望の印刷順序を保持し、また他のジョブが割り込むことを防止するために、印刷装置に送信する前に複数のジョブをひとつに結合する手法をとり、さらに以下のような柔軟な構成を提供した。
【0173】
具体的には、結合したジョブに対して1つしか設定することが出来ないジョブの属性(印刷設定)であっても、結合後のジョブの属性と各ページの属性の設定を工夫することで、ユーザが望むであろう結合前の各ジョブの属性に従う印刷出力を可能とした。
【0174】
ここで、ジョブに対して1つしか設定することが出来ない属性とは、カラー属性や両面属性などがある。また、本発明においては、ステイプル指定や製本印刷指定などの後処理、部門管理設定やセキュアプリントなど、様々な印刷設定においてもユーザの望む出力を維持しつつ、ジョブ結合処理を利用した印刷制御をおこなっている。
【0175】
また、ホストコンピュータ側でジョブ結合を行うことで、割り込み防止処理などのプリンタ側の設計変更を必要としないので、上述した構成を鑑みると、非常に低コストで柔軟な印刷制御が実現することができるといえる。
【特許請求の範囲】
【請求項1】
印刷装置で印刷されるべき印刷データを処理する印刷制御装置であって、
アプリケーションにより生成された印刷すべきデータから変換されたジョブと、ジョブに設定されるジョブ属性とが関連付けて所定の保持部に一時的に保持されている際に、
前記保持されたジョブに設定されるジョブ属性に応じて、当該ジョブに含まれる各ページのページ属性の値を付与する付与手段と、
前記保持された複数のジョブを1つの結合ジョブにする結合指示を行う結合指示手段と、
1つのジョブに対して1つの値しか付与できないジョブの両面属性の値が片面であるジョブと両面であるジョブとを含む複数のジョブを前記結合指示手段により1つの結合ジョブにする結合指示がなされた場合に、ジョブの両面属性として前記付与手段によって付与されたページ属性の値に基づく印刷出力が行われる特定の値が設定された結合ジョブを生成する生成手段とを備え、
前記生成手段により生成されたジョブの両面属性に前記特定の値が設定された結合ジョブは、前記印刷装置において前記ページ属性の値に基づく印刷出力が行われることを特徴とする印刷制御装置。
【請求項2】
前記付与手段は、前記ジョブに設定される両面属性が片面であった場合には当該ジョブに含まれる各ページのページ両面属性の値として片面設定を付与し、前記ジョブに設定される両面属性が両面であった場合には当該ジョブに含まれる各ページのページ両面属性の値として両面設定を付与することを特徴とする請求項1に記載の印刷制御装置。
【請求項3】
前記結合印刷指示手段による結合指示に基づく結合の際に、結合の対象となる複数のジョブの出力設定を解析し、結合できるかどうか判断する判断手段と、
前記判断手段により結合できると判断された場合に、前記生成手段により結合ジョブを生成することを特徴とする請求項1または2に記載の印刷制御装置。
【請求項4】
印刷装置で印刷されるべき印刷データを処理する印刷制御装置であって、
アプリケーションにより生成された印刷すべきデータから変換されたジョブと、ジョブに設定されるジョブ属性とが関連付けて所定の保持部に一時的に保持されている際に、
前記保持されたジョブに設定されるジョブ属性に応じて、当該ジョブに含まれる各ページのページ属性の値を付与する付与手段と、
前記保持された複数のジョブを1つの結合ジョブにする結合指示を行う結合指示手段と、
1つのジョブに対して1つの値しか付与できないジョブの属性の値が異なる複数のジョブを前記結合指示手段により1つの結合ジョブにする結合指示がなされた場合に、ジョブの属性として前記付与手段によって付与されたページ属性の値に基づく印刷出力が行われる特定の値が設定された結合ジョブを生成し、ジョブの属性の値が同じである複数のジョブを前記結合指示手段により1つの結合ジョブにする結合指示がなされた場合に、ジョブの属性として該同じ値が設定された結合ジョブを生成する生成手段と、
前記生成手段により生成されたジョブの属性に前記特定の値が設定された結合ジョブは、前記印刷装置において前記ページ属性の値に基づく印刷出力が行われることを特徴とする印刷制御装置。
【請求項5】
前記1つのジョブに対して1つの値しか付与できないジョブの属性は、カラー属性または両面属性であることを特徴とする請求項4に記載の印刷制御装置。
【請求項6】
印刷装置で印刷されるべき印刷データを処理するための印刷制御方法であって、
アプリケーションにより生成された印刷すべきデータから変換されたジョブと、ジョブに設定されるジョブ属性とが関連付けて所定の保持部に一時的に保持されている際に、
前記保持されたジョブに設定されるジョブ属性に応じて、当該ジョブに含まれる各ページのページ属性の値を付与する付与工程と、
前記保持された複数のジョブを1つの結合ジョブにする結合指示を行う結合指示工程と、
1つのジョブに対して1つの値しか付与できないジョブの両面属性の値が片面であるジョブと両面であるジョブとを含む複数のジョブを前記結合指示工程で1つの結合ジョブにする結合指示がなされた場合に、ジョブの両面属性として前記付与工程で付与されたページ属性の値に基づく印刷出力が行われる特定の値が設定された結合ジョブを生成する生成工程とを備え、
前記生成工程で生成されたジョブの両面属性に前記特定の値が設定された結合ジョブは、前記印刷装置において前記ページ属性の値に基づく印刷出力が行われることを特徴とする印刷制御方法。
【請求項7】
印刷装置で印刷されるべき印刷データを処理するための印刷制御方法であって、
アプリケーションにより生成された印刷すべきデータから変換されたジョブと、ジョブに設定されるジョブ属性とが関連付けて所定の保持部に一時的に保持されている際に、
前記保持されたジョブに設定されるジョブ属性に応じて、当該ジョブに含まれる各ページのページ属性の値を付与する付与工程と、
前記保持された複数のジョブを1つの結合ジョブにする結合指示を行う結合指示工程と、
1つのジョブに対して1つの値しか付与できないジョブの属性の値が異なる複数のジョブを前記結合指示工程で1つの結合ジョブにする結合指示がなされた場合に、ジョブの属性として前記付与工程で付与されたページ属性の値に基づく印刷出力が行われる特定の値が設定された結合ジョブを生成し、ジョブの属性の値が同じである複数のジョブを前記結合指示工程で1つの結合ジョブにする結合指示がなされた場合に、ジョブの属性として該同じ値が設定された結合ジョブを生成する生成工程と、
前記生成工程で生成されたジョブの属性に前記特定の値が設定された結合ジョブは、前記印刷装置において前記ページ属性の値に基づく印刷出力が行われることを特徴とする印刷制御方法。
【請求項8】
印刷装置で印刷されるべき印刷データを処理するためのプログラムであって、
アプリケーションにより生成された印刷すべきデータから変換されたジョブと、ジョブに設定されるジョブ属性とが関連付けて所定の保持部に一時的に保持されている際に、
前記保持されたジョブに設定されるジョブ属性に応じて、当該ジョブに含まれる各ページのページ属性の値を付与する付与手段と、
前記保持された複数のジョブを1つの結合ジョブにする結合指示を行う結合指示手段と、
1つのジョブに対して1つの値しか付与できないジョブの両面属性の値が片面であるジョブと両面であるジョブとを含む複数のジョブを前記結合指示手段により1つの結合ジョブにする結合指示がなされた場合に、ジョブの両面属性として前記付与手段によって付与されたページ属性の値に基づく印刷出力が行われる特定の値が設定された結合ジョブを生成する生成手段としてコンピュータを機能させ、
前記生成手段により生成されたジョブの両面属性に前記特定の値が設定された結合ジョブは、前記印刷装置において前記ページ属性の値に基づく印刷出力が行われることを特徴とするプログラム。
【請求項9】
前記付与手段は、前記ジョブに設定される両面属性が片面であった場合には当該ジョブに含まれる各ページのページ両面属性の値として片面設定を付与し、前記ジョブに設定される両面属性が両面であった場合には当該ジョブに含まれる各ページのページ両面属性の値として両面設定を付与することを特徴とする請求項8に記載のプログラム。
【請求項10】
前記結合印刷指示手段による結合指示に基づく結合の際に、結合の対象となる複数のジョブの出力設定を解析し、結合できるかどうか判断する判断手段としてコンピュータを機能させ、
前記判断手段により結合できると判断された場合に、前記生成手段により結合ジョブを生成することを特徴とする請求項8または9に記載のプログラム。
【請求項11】
印刷装置で印刷されるべき印刷データを処理するためのプログラムであって、
アプリケーションにより生成された印刷すべきデータから変換されたジョブと、ジョブに設定されるジョブ属性とが関連付けて所定の保持部に一時的に保持されている際に、
前記保持されたジョブに設定されるジョブ属性に応じて、当該ジョブに含まれる各ページのページ属性の値を付与する付与手段と、
前記保持された複数のジョブを1つの結合ジョブにする結合指示を行う結合指示手段と、
1つのジョブに対して1つの値しか付与できないジョブの属性の値が異なる複数のジョブを前記結合指示手段により1つの結合ジョブにする結合指示がなされた場合に、ジョブの属性として前記付与手段によって付与されたページ属性の値に基づく印刷出力が行われる特定の値が設定された結合ジョブを生成し、ジョブの属性の値が同じである複数のジョブを前記結合指示手段により1つの結合ジョブにする結合指示がなされた場合に、ジョブの属性として該同じ値が設定された結合ジョブを生成する生成手段としてコンピュータを機能させ、
前記生成手段により生成されたジョブの属性に前記特定の値が設定された結合ジョブは、前記印刷装置において前記ページ属性の値に基づく印刷出力が行われることを特徴とするプログラム。
【請求項1】
印刷装置で印刷されるべき印刷データを処理する印刷制御装置であって、
アプリケーションにより生成された印刷すべきデータから変換されたジョブと、ジョブに設定されるジョブ属性とが関連付けて所定の保持部に一時的に保持されている際に、
前記保持されたジョブに設定されるジョブ属性に応じて、当該ジョブに含まれる各ページのページ属性の値を付与する付与手段と、
前記保持された複数のジョブを1つの結合ジョブにする結合指示を行う結合指示手段と、
1つのジョブに対して1つの値しか付与できないジョブの両面属性の値が片面であるジョブと両面であるジョブとを含む複数のジョブを前記結合指示手段により1つの結合ジョブにする結合指示がなされた場合に、ジョブの両面属性として前記付与手段によって付与されたページ属性の値に基づく印刷出力が行われる特定の値が設定された結合ジョブを生成する生成手段とを備え、
前記生成手段により生成されたジョブの両面属性に前記特定の値が設定された結合ジョブは、前記印刷装置において前記ページ属性の値に基づく印刷出力が行われることを特徴とする印刷制御装置。
【請求項2】
前記付与手段は、前記ジョブに設定される両面属性が片面であった場合には当該ジョブに含まれる各ページのページ両面属性の値として片面設定を付与し、前記ジョブに設定される両面属性が両面であった場合には当該ジョブに含まれる各ページのページ両面属性の値として両面設定を付与することを特徴とする請求項1に記載の印刷制御装置。
【請求項3】
前記結合印刷指示手段による結合指示に基づく結合の際に、結合の対象となる複数のジョブの出力設定を解析し、結合できるかどうか判断する判断手段と、
前記判断手段により結合できると判断された場合に、前記生成手段により結合ジョブを生成することを特徴とする請求項1または2に記載の印刷制御装置。
【請求項4】
印刷装置で印刷されるべき印刷データを処理する印刷制御装置であって、
アプリケーションにより生成された印刷すべきデータから変換されたジョブと、ジョブに設定されるジョブ属性とが関連付けて所定の保持部に一時的に保持されている際に、
前記保持されたジョブに設定されるジョブ属性に応じて、当該ジョブに含まれる各ページのページ属性の値を付与する付与手段と、
前記保持された複数のジョブを1つの結合ジョブにする結合指示を行う結合指示手段と、
1つのジョブに対して1つの値しか付与できないジョブの属性の値が異なる複数のジョブを前記結合指示手段により1つの結合ジョブにする結合指示がなされた場合に、ジョブの属性として前記付与手段によって付与されたページ属性の値に基づく印刷出力が行われる特定の値が設定された結合ジョブを生成し、ジョブの属性の値が同じである複数のジョブを前記結合指示手段により1つの結合ジョブにする結合指示がなされた場合に、ジョブの属性として該同じ値が設定された結合ジョブを生成する生成手段と、
前記生成手段により生成されたジョブの属性に前記特定の値が設定された結合ジョブは、前記印刷装置において前記ページ属性の値に基づく印刷出力が行われることを特徴とする印刷制御装置。
【請求項5】
前記1つのジョブに対して1つの値しか付与できないジョブの属性は、カラー属性または両面属性であることを特徴とする請求項4に記載の印刷制御装置。
【請求項6】
印刷装置で印刷されるべき印刷データを処理するための印刷制御方法であって、
アプリケーションにより生成された印刷すべきデータから変換されたジョブと、ジョブに設定されるジョブ属性とが関連付けて所定の保持部に一時的に保持されている際に、
前記保持されたジョブに設定されるジョブ属性に応じて、当該ジョブに含まれる各ページのページ属性の値を付与する付与工程と、
前記保持された複数のジョブを1つの結合ジョブにする結合指示を行う結合指示工程と、
1つのジョブに対して1つの値しか付与できないジョブの両面属性の値が片面であるジョブと両面であるジョブとを含む複数のジョブを前記結合指示工程で1つの結合ジョブにする結合指示がなされた場合に、ジョブの両面属性として前記付与工程で付与されたページ属性の値に基づく印刷出力が行われる特定の値が設定された結合ジョブを生成する生成工程とを備え、
前記生成工程で生成されたジョブの両面属性に前記特定の値が設定された結合ジョブは、前記印刷装置において前記ページ属性の値に基づく印刷出力が行われることを特徴とする印刷制御方法。
【請求項7】
印刷装置で印刷されるべき印刷データを処理するための印刷制御方法であって、
アプリケーションにより生成された印刷すべきデータから変換されたジョブと、ジョブに設定されるジョブ属性とが関連付けて所定の保持部に一時的に保持されている際に、
前記保持されたジョブに設定されるジョブ属性に応じて、当該ジョブに含まれる各ページのページ属性の値を付与する付与工程と、
前記保持された複数のジョブを1つの結合ジョブにする結合指示を行う結合指示工程と、
1つのジョブに対して1つの値しか付与できないジョブの属性の値が異なる複数のジョブを前記結合指示工程で1つの結合ジョブにする結合指示がなされた場合に、ジョブの属性として前記付与工程で付与されたページ属性の値に基づく印刷出力が行われる特定の値が設定された結合ジョブを生成し、ジョブの属性の値が同じである複数のジョブを前記結合指示工程で1つの結合ジョブにする結合指示がなされた場合に、ジョブの属性として該同じ値が設定された結合ジョブを生成する生成工程と、
前記生成工程で生成されたジョブの属性に前記特定の値が設定された結合ジョブは、前記印刷装置において前記ページ属性の値に基づく印刷出力が行われることを特徴とする印刷制御方法。
【請求項8】
印刷装置で印刷されるべき印刷データを処理するためのプログラムであって、
アプリケーションにより生成された印刷すべきデータから変換されたジョブと、ジョブに設定されるジョブ属性とが関連付けて所定の保持部に一時的に保持されている際に、
前記保持されたジョブに設定されるジョブ属性に応じて、当該ジョブに含まれる各ページのページ属性の値を付与する付与手段と、
前記保持された複数のジョブを1つの結合ジョブにする結合指示を行う結合指示手段と、
1つのジョブに対して1つの値しか付与できないジョブの両面属性の値が片面であるジョブと両面であるジョブとを含む複数のジョブを前記結合指示手段により1つの結合ジョブにする結合指示がなされた場合に、ジョブの両面属性として前記付与手段によって付与されたページ属性の値に基づく印刷出力が行われる特定の値が設定された結合ジョブを生成する生成手段としてコンピュータを機能させ、
前記生成手段により生成されたジョブの両面属性に前記特定の値が設定された結合ジョブは、前記印刷装置において前記ページ属性の値に基づく印刷出力が行われることを特徴とするプログラム。
【請求項9】
前記付与手段は、前記ジョブに設定される両面属性が片面であった場合には当該ジョブに含まれる各ページのページ両面属性の値として片面設定を付与し、前記ジョブに設定される両面属性が両面であった場合には当該ジョブに含まれる各ページのページ両面属性の値として両面設定を付与することを特徴とする請求項8に記載のプログラム。
【請求項10】
前記結合印刷指示手段による結合指示に基づく結合の際に、結合の対象となる複数のジョブの出力設定を解析し、結合できるかどうか判断する判断手段としてコンピュータを機能させ、
前記判断手段により結合できると判断された場合に、前記生成手段により結合ジョブを生成することを特徴とする請求項8または9に記載のプログラム。
【請求項11】
印刷装置で印刷されるべき印刷データを処理するためのプログラムであって、
アプリケーションにより生成された印刷すべきデータから変換されたジョブと、ジョブに設定されるジョブ属性とが関連付けて所定の保持部に一時的に保持されている際に、
前記保持されたジョブに設定されるジョブ属性に応じて、当該ジョブに含まれる各ページのページ属性の値を付与する付与手段と、
前記保持された複数のジョブを1つの結合ジョブにする結合指示を行う結合指示手段と、
1つのジョブに対して1つの値しか付与できないジョブの属性の値が異なる複数のジョブを前記結合指示手段により1つの結合ジョブにする結合指示がなされた場合に、ジョブの属性として前記付与手段によって付与されたページ属性の値に基づく印刷出力が行われる特定の値が設定された結合ジョブを生成し、ジョブの属性の値が同じである複数のジョブを前記結合指示手段により1つの結合ジョブにする結合指示がなされた場合に、ジョブの属性として該同じ値が設定された結合ジョブを生成する生成手段としてコンピュータを機能させ、
前記生成手段により生成されたジョブの属性に前記特定の値が設定された結合ジョブは、前記印刷装置において前記ページ属性の値に基づく印刷出力が行われることを特徴とするプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【公開番号】特開2011−108260(P2011−108260A)
【公開日】平成23年6月2日(2011.6.2)
【国際特許分類】
【出願番号】特願2011−6125(P2011−6125)
【出願日】平成23年1月14日(2011.1.14)
【分割の表示】特願2008−296701(P2008−296701)の分割
【原出願日】平成20年11月20日(2008.11.20)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成23年6月2日(2011.6.2)
【国際特許分類】
【出願日】平成23年1月14日(2011.1.14)
【分割の表示】特願2008−296701(P2008−296701)の分割
【原出願日】平成20年11月20日(2008.11.20)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]