(57)【要約】【課題】  プリンタでエラーが発生していても後続のジョブが印刷可能であれば前の印刷ジョブを自動的に処理する機能と、印刷順を守る機能を併用した場合、どちらか一方の機能が制限されてしまう。【解決手段】  後続の印刷ジョブが自動的に処理される前に、情報処理装置で印刷順を守る必要がある印刷ジョブをまとめて一時停止することにより印刷順が不正になることを防ぐ。【選択図】  図８
2011090599.tif 000002
【特許請求の範囲】
【請求項１】
複数の外部処理装置（５０７）にジョブデータを転送する手段と、複数の前期外部処理装置を監視する手段とを備えた情報処理装置（５０５）において、
前記外部処理装置は、印刷ジョブが実行不能となった場合に、後続で実行可能な印刷ジョブがある場合は先に処理を行う機能を有し、
複数の印刷ジョブをグループとして扱う手段（５０５）と、
グループ内の一つの印刷ジョブが実行不能になった場合に、後続で実行可能な印刷ジョブの処理が行われる前に、グループ内の印刷ジョブを全て一時停止する手段（Ｓ８０６）と、
を有することを特徴とする印刷制御装置。
【請求項２】
前記一時停止された印刷ジョブを実行可能な印刷装置がある場合は、グループ内の全ての印刷ジョブを該印刷装置に代替印刷する手段（Ｓ９０２）を有することを特徴とする請求項１に記載の印刷制御装置。
【請求項３】
前記一時停止された印刷ジョブが印刷装置の操作により実行可能となった場合は、前記一時停止された印刷ジョブをすべて再開する手段（Ｓ９０６）を有することを特徴とする請求項１に記載の印刷制御装置。
【請求項４】
前記一時停止された印刷ジョブを再開する場合に、グループ以外の後続の印刷ジョブが先に印刷されていた場合は、グループ内の最初の印刷ジョブから開始する手段（Ｓ９０５）を有することを特徴とする請求項１に記載の印刷装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷順序を守るために印刷ジョブ制御を行う情報処理装置および情報処理方法に関する。
【背景技術】
【０００２】
一般に印刷装置で印刷中のジョブが用紙なしエラーのため停止した場合、後続の印刷ジョブは用紙が補給されるか、あるいは、用紙なしエラーが発生しているジョブがキャンセルされるまで、印刷処理を待機する必要がある。これを解決するために、文献１では後続の印刷ジョブが印刷可能であれば、先頭で用紙無しエラーが発生している印刷ジョブを一時停止し、先に後続ジョブを印刷可能としている。（以後、この機能を自動プロモート機能と呼ぶ）
一方、文献２において、印刷を制御するアプリケーションでは、ユーザの所望する印刷結果を得るために、複数の印刷ジョブをまとめて処理することで、印刷順を守る機能がある。本機能は印刷順が重要視されるプレプリント紙の印刷時等に多く使用されている。（以後、この機能をグループジョブ機能と呼ぶ）
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−１９５２１４号公報
【特許文献２】特開２００５−１７４１２２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
前述のような、２つの機能が存在する環境では、どちらか一方の機能を優先すると、一方の機能が使用できないといった課題があった。
【０００５】
例えば、自動プロモート機能を優先すると、印刷順が守られなくなり、グループジョブ機能を優先すると、用紙なしエラーが発生した場合に、印刷処理が停止してしまうといった問題が発生する。
【課題を解決するための手段】
【０００６】
複数の外部処理装置にジョブデータを転送する手段と、複数の前期外部処理装置を監視する手段とを備えた情報処理装置において、
前記外部処理装置は、印刷ジョブが実行不能となった場合に、後続で実行可能な印刷ジョブがある場合は先に処理を行う機能を有し、
複数の印刷ジョブをグループとして扱う手段と、
グループ内の一つの印刷ジョブが実行不能になった場合に、後続で実行可能な印刷ジョブの処理が行われる前に、グループ内の印刷ジョブを全て一時停止する手段と、
を有することを特徴とする印刷制御装置。
【発明の効果】
【０００７】
ダウンタイムを軽減するために印刷可能な後続ジョブを優先して印刷する機能と、印刷順を守るために印刷ジョブをグルーピングして扱う機能が併用される環境においても、両者の機能を損なうことなく共存が可能となる。
【図面の簡単な説明】
【０００８】
【図１】本発明の印刷システムの構成を示すブロック図である。
【図２】本発明の情報処理装置の構成を示すブロック図である。
【図３】本発明のＲＡＭのメモリマップの一例を示す図である。
【図４】本発明のＦＤのメモリマップの一例を示す図である。
【図５】本発明の印刷ジョブの処理を示す図である。
【図６】本発明のプリントデバイス情報のメモリマップの一例を示す図である。
【図７】本発明の印刷ジョブ情報のメモリマップの一例を示す図である。
【図８】本発明の自動プロモート設定がされている場合に、印刷ジョブをグループで制御する処理を示すフローチャートである。
【図９】本発明の一時停止した印刷ジョブをプリントデバイスの状態によって制御する処理を示したフローチャートである。
【発明を実施するための形態】
【０００９】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【実施例１】
【００１０】
＜システム構成＞
図１は、本発明の印刷システムの構成を示すブロック図である。なお、本システムにおけるネットワークプリンタは、複数台接続されていることを仮定している。
【００１１】
図１において、１０２、１０３、１０４、１０５は印刷制御装置であるネットワークプリンタであり、図示省略したネットワークインターフェースを介してネットワーク１０６と接続されている。印刷制御装置はサーバコンピュータ１０１から送信される印字データを含む印刷ジョブを解析して１ページずつドットイメージに変換して1ページ毎に印刷する。プリンタ１０２、１０３、１０４、１０５としては、電子写真方式を採用したレーザービームプリンタやインクジェット方式を採用したインクジェットプリンタや熱転写方式を利用したプリンタ等、様々な方式のものに適応できることも無論想定される。
【００１２】
１０１は本実施形態のサーバ（以下、プリントサーバと呼ぶ）としての情報処理装置であり、ネットワークケーブルによって、ネットワーク１０６に接続され、ネットワークで使用されるファイルを蓄積したり、ネットワーク１０６の使用状況を監視したりする。プリントサーバ１０１は、ネットワーク１０６に接続されている複数のプリンタを管理している。構成としては、プリントサーバ１０１は一般的な情報処理装置であり、印刷制御プログラムプログラムが１０４、１０５等と接続している。
【００１３】
＜情報処理装置の構成＞
図２は、図１に示した情報処理装置の構成を説明するブロック図であり、情報処理装置で、サーバ１０１も同様あるいは同等のハードウェア構成とする。よって、サーバの構成を説明するブロック図として説明する。
【００１４】
同図において、２０１は情報処理装置の制御手段であるCPUであり、ハードディスク（HD）２０６に格納されているアプリケーションプログラム、プリンタドライバプログラム、OSや本発明のネットワークプリンタ制御プログラムを実行し、RAM２０５にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行なう。
【００１５】
２０２は記憶手段であるROMであり、内部には、基本I/Oプログラム等のプログラム、文書処理の際に使用するフォントデータ、テンプレート用データ等の各種データを記憶する。
【００１６】
２０３はネットワークインターフェースであり、該インターフェース２０８を介して情報処理装置は外部装置とデータのやり取りを行う。
【００１７】
２０４は指示入力手段であるキーボードでありユーザがプリントサーバ１０１に対して、デバイスの制御コマンド命令等を入力指示するものである。
【００１８】
２０５は一時記憶手段であるRAMであり、CPU２０１の主メモリやワークエリア等として機能する。
【００１９】
２０６は外部記憶手段の一つであり、大容量のメモリとして機能するハードディスク（HD）であり、アプリケーションプログラム、プリンタドライバプログラム、OS、ネットワークプリンタ制御プログラム、および関係プログラムを格納している。さらに、スプール手段であるスプール手段は、プリントサーバ１０１ではサーバスプーラのことである。
【００２０】
２０７は表示手段であるディスプレイであり、キーボード２０４から入力したコマンドや、プリンタ１０２〜１０５の状態等を表示したりするものである。
【００２１】
２０８は記憶媒体読み込み手段としてのフロッピー（登録商標）ディスク（FD）ドライブであり、FDドライブ２０８を通じて記憶媒体としてのFD２０９に記憶されたプログラム等を本コンピュータシステムにロードすることができる。なお、記憶媒体は、FDに限らず、CD-ROM、CD-R、CD-RW、PCカード、DVD、ICメモリカード、MO、メモリスティック等、任意である。
【００２２】
２０９は記憶媒体であるフロッピー（登録商標）ディスク（FD）であり、コンピュータが読み取り可能なプログラムが格納された記憶媒体である。
【００２３】
２１０はシステムバスであり、プリントサーバ１０１であるコンピュータ内のデータの流れを司るものである。
【００２４】
＜メモリマップ等の説明＞
図３は、図２に示したＲＡＭ２０５のメモリマップの一例を示す図であり、ＦＤ２０９からロードされる上記ネットワークプリンタ制御プログラムが、ＲＡＭ２０５にロードされ実行可能となった状態のメモリマップである。
【００２５】
本実施形態では、ＦＤ２０９からネットワークプリンタ制御プログラム及び関係データを直接ＲＡＭ２０５にロードして実行させる例を示すが、これ以外にも、既にネットワークプリンタ制御プログラムがインストールされているＨＤ２０６からＲＡＭ２０５にロードするようにしてもよい。
【００２６】
また、本ネットワークプリンタ制御プログラムを記憶する媒体は、ＦＤ以外にＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＰＣカード、ＤＶＤ、ＩＣメモリカードであってもよい。さらに、本ネットワークプリンタ制御プログラムをＲＯＭ２０２に記憶しておき、これをメモリマップの一部となすように構成し、直接ＣＰＵ２０１で実行することも可能である。また、以上の各装置と同等の機能を実現するソフトウェアをもって、ハードウェア装置の代替として構成することもできる。
【００２７】
また、本ネットワークプリンタ制御プログラムのことを、簡単に印刷制御プログラムと呼ぶこともある。印刷制御プログラムは、プリントサーバ１０１において、印刷ジョブの順序制御を行ったり、印刷ジョブの印刷終了や印刷先変更要求などを通知するためのプログラムを含んでいる。
【００２８】
３０１は基本Ｉ／Ｏプログラムであり、本制御装置の電源がＯＮされたときに、ＨＤ２０６からＯＳがＲＡＭ２０５に読み込まれ、ＯＳの動作を開始させるＩＰＬ（イニシャルプログラムローデイング）機能などを有しているプログラムが入っている領域である。
【００２９】
３０２はオペレーティングシステム（ＯＳ）であり、３０３はネットワークプリンタ制御プログラムで、ＲＡＭ２０５上に確保される領域に記憶される。３０４は関係データで、ＲＡＭ２０５上に確保される領域に記憶される。３０５はワークエリアで、ＣＰＵ２０１が本プリンタ制御プログラムを実行する領域が確保されている。
【００３０】
図４は、図２に示したＦＤ２０９のメモリマップの一例を示す図である。
【００３１】
同図において、４００は前記ＦＤ２０９のデータ内容であり、４０１はデータの情報を示すボリューム情報であり、４０２はディレクトリ情報、４０３は本実施形態で説明する印刷制御プログラムであるネットワークプリンタ制御プログラム、４０４はその関係データである。４０３のネットワークプリンタ制御プログラムは、実施形態で説明するフローチャートに基づいてプログラム化したものであり、本実施形態では、サーバ１０１に同様の構成を採っている。
【００３２】
＜印刷ジョブ制御システム＞
次に、本実施形態における、ジョブを制御し、一時停止や、再開処理、代行処理などを行う印刷ジョブ制御システムについて説明する。なお、この印刷ジョブ制御システムの印刷処理は、上述した印刷制御プログラムで実行される。
【００３３】
＜印刷ジョブの処理＞
図５は、アプリケーションから発行された印刷ジョブの処理を示す図であり、本システムにおいてＭｉｃｒｏＳｏｆｔＷｏｒｄ（登録商標）などの一般的なアプリケーションから発行された印刷ジョブが、印刷ジョブ制御システムにおいてどのように処理されるかを表している。
【００３４】
同図において、５００はサーバで、印刷ジョブ制御システムのモジュールが動作するマシンを指す（サーバ１０１に相当）。
【００３５】
通常、印刷の指示がされるとアプリケーションプログラム５０１はＯＳのグラフィック機能を介して一連の描画命令を生成させ、プリンタドライバを経てＷｉｎｄｏｗＳ（登録商標）スプーラ５０３に渡される。ＷｉｎｄｏｗＳ（登録商標）スプーラ５０３は、ユーザが選択したポートモニタにプリントジョブデータを渡してプリントデバイスに送信させる手順を採る。
【００３６】
本実施形態では、ユーザは予め印刷ジョブ制御システム用のポートモニタ（以下、ジョブ制御ポートモニタと記す）５０４を指定して印刷を指示する。アプリケーションプログラム５０１は一連のＯＳを介して描画命令を生成する。
【００３７】
描画命令を受け取ったPDLプリンタドライバ５０２では、印刷データを生成し、プリントデバイスへプリントジョブデータを送信するポートモニタではなく、ジョブ制御ポートモニタ５０４にプリントジョブデータとして送信する。ジョブ制御ポートモニタ５０４はプリントジョブデータをプリントデバイス５０７に送信するのではなく、印刷ジョブ制御システム用のプリントサービス（以下、ジョブ制御プリントサービスと記す）５０５に送信する。プリントジョブデータは、ジョブ制御プリントサービス５０５がジョブを完了と判断するときまでＨＤ２０５に保持される。
【００３８】
ジョブ制御プリントサービス５０５は、デバイス情報コントロールモジュール５０６を用いて各プリントデバイス５０７と通信を行い、デバイスから通知されるデバイス状態やジョブの状態などの情報を管理したり、また、デバイスに対して所定の命令をする機能を備える。例えば、通信可能な各デバイス（印刷装置）の印刷実行中、電力制御状態、障害情報（紙ジャム）、給紙段の情報等のステータスを取得したり、各プリンタ内の印刷ジョブや動作状態に関する情報を入手したり、印刷ジョブの一時停止、キャンセル等の操作を行ったりする。
【００３９】
また、ジョブ制御プリントサービスは、ＨＤ２０５に保持されているデータを複数のプリントデバイスに送信する機能を有している。例えばエラーが発生した場合などには、プリントデバイス内の印刷ジョブをキャンセルし、印刷設定、印刷開始ページを変更して正常なプリントデバイスへ再送する機能を有している。
【００４０】
なお、本実施例では印刷ジョブをグループとして扱う方法として、特開２００５−１７４１２２のような方法を想定しているが、特にグループとして印刷ジョブを扱う方法については限定しない。
【００４１】
印刷ジョブ制御システム用プリントマネージャ（以下、ジョブ制御プリントマネージャと記す）５０９は、ユーザがジョブ制御プリントサービス５０５内部でプリントジョブがどのような状態にあるかを調べたり、プリントジョブを操作したりするためのユーザインタフェース（ＵＩ）を提供するプログラムである。
【００４２】
ジョブ制御プリントマネージャ５０９はジョブ制御プリントサービス５０５のソフトウェアのインタフェース（ＡＰＩ）を介して、ジョブ制御プリントサービス５０５と情報の送受信を実行し、主に、ジョブ制御プリントサービス５０５が管理する外部のプリントデバイスの状態情報をイベントとして取得する機能を備える。イベントの通知の種別としては、トナー残量が少なくなった警告、クライアントとデバイスとの通信障害、メモリ不足、排紙トレイ満載などのエラー／警告情報の通知や、エラー状態から正常状態に復帰した正常情報の通知などが想定される。
【００４３】
＜印刷アプリケーション５０１からの印刷＞
次に、本実施形態における印刷アプリケーション５０１からの印刷について説明する。
【００４４】
PDLプリンタドライバ５０２はアプリケーションプログラム５０１が生成した一連の描画コマンドをプリントデバイス５０７で解釈可能なＰＤＬファイルにする。
【００４５】
このPDLファイルは前述したようにＷｉｎｄｏｗＳ（登録商標）スプーラ５０３からジョブ制御ポートモニタ５０４を経て、ジョブ制御プリントサービス５０５に導かれる。
【００４６】
ジョブ制御プリントサービス５０５はこのプリントジョブに対してプリントデバイス５０７が送信可能になると送信を行う。
【００４７】
また、一般的なＷｉｎｄｏｗＳ（登録商標）プリントシステムにおいて、PDLプリンタドライバ５０２はアプリケーションプログラム５０１が生成した一連の描画コマンドをプリントデバイス５０７で解釈可能なＰＤＬファイルにする。このPDLファイルは前述したようにＷｉｎｄｏｗＳ（登録商標）スプーラ５０３からＷｉｎｄｏｗＳジョブ制御ポートモニタ５０８を経て、プリントデバイス５０７に転送される。
【００４８】
図６は、本実施例における、印刷管理アプリケーション５０１が管理している、プリントデバイス情報６００のメモリマップを示す図である。
【００４９】
ＩＰアドレス６０１はプリントデバイスに設定されているＩＰアドレスであり、ジョブ制御プリントサービス５０５は該情報をもとに、プリントデバイスを特定し、印刷指示等の通信を行う。
【００５０】
デバイス状態６０２は、プリントデバイス５０７の状態であり、ジョブ制御プリントサービス５０５は、該情報を取得することで、プリントデバイスの状態（正常、用紙なしエラー、ジャム、トナーなし等）を判断する。
【００５１】
自動プロモート設定６０３は、プリントデバイス５０７に設定されている情報で、有効となっている場合、用紙なしエラーが発生した場合に後続ジョブで印刷可能なジョブがあれば用紙なしエラーの印刷ジョブを追い越して印刷が行われていることを示す。
【００５２】
自動プロモート移行時間６０４は、プリントデバイス５０７に設定されている情報で、用紙なしエラー時に、印刷可能な後続のジョブが追い越す処理が開始されるまでの時間を示している。
【００５３】
図７は、本実施例における、印刷管理アプリケーション５０１が管理している、印刷ジョブ情報７００のメモリマップ示す図である。
【００５４】
ジョブＩＤ７０１は、ジョブ制御プリントサービス５０５が管理する印刷ジョブに一意に割り振られるＩＤで、印刷ジョブを特定するために使用される。
【００５５】
ジョブ状態７０２は、ジョブ制御プリントサービス５０５が管理する印刷ジョブの状態を示し、ジョブ制御プリントサービス５０５が更新する。おもなジョブ状態としては、印刷中、印刷待ち、完了、エラーなどがある。
【００５６】
グループＩＤ７０３は、複数の印刷ジョブをグループとして扱う場合にジョブ制御プリントサービス５０５によって割り振られるＩＤである。
【００５７】
印刷済み面数７０４は、プリントデバイス５０７で排紙された用紙を示しており、ジョブ制御プリントサービス５０５がプリントデバイス５０７より取得し、設定する。
【００５８】
図８は、本実施例における、自動プロモート設定がされている場合に、印刷ジョブをグループで制御する処理を示したフローチャートである。
【００５９】
ステップ０Ｓ８０１では、ジョブ制御プリントサービス５０５がデバイス制御コントロールモジュール５０６を使ってプリントデバイス５０７にアクセスし、自動プロモート設定６０３、自動プロモート移行時間６０４を取得する。
【００６０】
ステップＳ８０２では、ジョブ制御プリントサービス５０５はプリントデバイス５０７から、デバイス状態６０２を取得する。
【００６１】
ステップＳ８０３では、ジョブ制御プリントサービス５０５がステップＳ８０２で取得したデバイス状態が用紙なしエラーかどうかを判断し、用紙なしエラーであればステップＳ８０4へ進み、用紙なしエラーでない場合は処理を終了する。
【００６２】
ステップＳ８０４では、ジョブ制御プリントサービス５０５がステップＳ８０１で取得した自動プロモート設定が有効になっているかどうかを判定し、有効になっていればステップＳ８０５へ進み、有効になっていない場合は処理を終了する。
【００６３】
ステップＳ８０５では、自動プロモート移行時間経過するまで待機する。
【００６４】
ステップＳ８０６では、ジョブ制御プリントサービス５０５はプリントデバイス５０７に投入されている印刷ジョブのうち、グループＩＤ７０３が設定されている印刷ジョブを特定し、該印刷ジョブに全てに対して、一時停止命令を行う。
【００６５】
図９は、本実施例における、印刷順番を守るために一時停止した印刷ジョブをプリントデバイスの状態によって制御する処理を示したフローチャートである。
【００６６】
ステップＳ９０１では、ジョブ制御プリントサービス５０５は、管理しているプリントデバイスで印刷可能なものがあるかどうか判断する。
【００６７】
印刷可能なプリントデバイスがあった場合はステップＳ９０2に進む。印刷可能なプリントデバイスがない場合はステップＳ９０3に進む。
【００６８】
ここで、印刷可能かどうかは、プリントデバイスのデバイス状態６０２から判断する。代行するプリントデバイスの候補としては、あらかじめユーザによって設定する方法や、ネットワーク上を検索する方法等があるが、ここでは限定しない。
【００６９】
ステップＳ９０２では、ジョブ制御プリントサービス５０５はステップＳ８０６で一時停止した印刷ジョブ全てを、ステップＳ９０１で特定したプリントデバイスへすべて転送する。
【００７０】
ステップＳ９０３ではジョブ制御プリントサービス５０５はプリントデバイス５０７へアクセスし、用紙が補給されているどうかを判断する。用紙が補給されていることが分かった場合は、ステップＳ９０4へ進み、用紙が補給されない場合は処理を終了する。
【００７１】
ステップＳ９０４では、ジョブ制御プリントサービス５０５は管理している印刷ジョブのうち、グループＩＤが設定されていない印刷ジョブが自動プロモート機能により、印刷がされたかどうかを判断する。印刷されている場合はステップＳ９０５へ進み、そうでない場合は、ステップＳ９０６に進む。この判断は、後続のジョブが印刷されている場合、一時停止した印刷ジョブと、後続ジョブの排紙が混在してしまうことを防止するために行う。
【００７２】
ステップＳ９０５では、ジョブ制御プリントサービス５０５は、一時停止していた印刷ジョブが属するグループの最初の印刷ジョブから印刷をするようにプリントデバイス５０７へ指示を行う。指示ができない場合は、グループの最初の印刷ジョブから投入しなおす。
【００７３】
ステップＳ９０６では、ジョブ制御プリントサービス５０５は、プリントデバイス５０７に対し、ステップＳ８０６で一時停止した印刷ジョブに対し、再開指示を行う。
【図１】
2011090599.tif 000003
【図２】
2011090599.tif 000004
【図３】
2011090599.tif 000005
【図４】
2011090599.tif 000006
【図５】
2011090599.tif 000007
【図６】
2011090599.tif 000008
【図７】
2011090599.tif 000009
【図８】
2011090599.tif 000010
【図９】
2011090599.tif 000011