(57)【特許請求の範囲】
【請求項１】
複数のプリンタと、前記プリンタを制御するプリントサーバと、前記プリントサーバに対し前記プリンタによる文書データの印刷を要求する端末装置とを含んで構成される印刷システムにおいて、
前記端末装置は、前記プリンタにより印刷される文書を作成する応用プログラムと、該応用プログラムが発行した印刷要求を受け、前記応用プログラムが作成した文書に基づき前記プリンタの機種に依存しないシステム内で共通の標準文書形式の第１の印刷ジョブを生成するジョブ作成手段と、該ジョブ作成手段により作成された前記第１の印刷ジョブを前記プリントサーバに転送するジョブ送信手段と、を有しており、
前記プリントサーバは、前記端末装置のジョブ送信手段から転送される前記第１の印刷ジョブを受信する転送ジョブ受信手段と、前記第１の印刷ジョブを一時的に保持する印刷ジョブプールと、該転送ジョブ受信手段が受信した前記第１の印刷ジョブを前記文書の印刷を行うべきプリンタに対応した形式の第２の印刷ジョブに変換するジョブ変換手段と、該ジョブ変換手段が出力する前記第２の印刷ジョブにしたがって前記文書の印刷を行うプリンタ制御手段と、を有し、
前記ジョブ変換手段は、前記第２の印刷ジョブを前記プリンタ制御手段に出力するに先だって前記第１の印刷ジョブを前記印刷ジョブプールに保存し、
さらに、前記プリントサーバは、前記プリンタにおける印刷障害を検出する障害検出手段と、該検出手段が検出した印刷障害を前記端末装置に通知する障害通知手段と、前記印刷ジョブプールに保存された前記第１の印刷ジョブを読み出して前記文書の再印刷を制御する再印刷手段と、を有し、
前記端末装置は、前記障害報告手段から前記印刷障害の通知を受け取り、前記印刷障害をユーザに報告する障害報告手段と、ユーザからの障害回復指示を受け、前記プリントサーバに前記障害の回復を要求する印刷回復手段と、を有し、
前記プリントサーバは、前記印刷回復手段からの障害回復要求を受け、前記障害が発生した印刷ジョブに対応する前記印刷ジョブプールに保存された前記第１の印刷ジョブを読み出して、前記文書の再印刷をおこなう
ことを特徴とする印刷システム。
【請求項２】
請求の範囲第１項記載の印刷システムにおいて、
前記印刷ジョブプールは、少なくとも前記文書の印刷が終了するまで前記第１の印刷ジョブを保持することを特徴とする印刷システム。
【請求項３】
請求の範囲第１項記載の印刷システムにおいて、
前記第１の印刷ジョブには、個々の印刷ジョブを識別するための識別子が与えられており、前記障害が発生した印刷ジョブの識別が前記識別子に基づいて行われることを特徴とする印刷システム。
【請求項４】
請求の範囲第１項記載の印刷システムにおいて、
前記障害検出手段は、前記障害の発生した印刷ジョブの障害発生ページを取得する手段を有し、
前記障害通知手段は、前記障害発生ページについての情報を含む前記通知を行い、
前記障害報告手段は、前記障害発生ページを前記ユーザに報告することを特徴とする印刷システム。
【請求項５】
請求の範囲第１項記載の印刷システムにおいて、
前記障害回復要求は、前記ユーザにより与えられる再印刷すべき文書の範囲の指定を含み、
前記再印刷手段は、前記印刷ジョブプールから読み出した前記第１の印刷ジョブから前記文書の範囲の指定により指定された範囲の文書を切り出し、当該切り出された文書からなる前記標準文書ファイル形式の第３の印刷ジョブを生成して前記ジョブ変換手段に出力する手段を含み、
前記ジョブ変換手段は、前記再印刷手段より受け取った前記第３の印刷ジョブを前記プリンタに対応した形式の印刷ジョブに変換して前記プリンタ制御手段に出力し、前記プリンタ制御手段の制御により前記再印刷を行うことを特徴とする印刷システム。
【請求項６】
請求の範囲第４項記載の印刷システムにおいて、
前記障害回復要求は、前記ユーザにより与えられる再印刷すべき文書の範囲の指定を含み、
前記ジョブ変換手段が、前記再印刷手段により読み出された前記第１の印刷ジョブを受け取り、受け取った前記第１の印刷ジョブから、前記範囲の指定で指定された範囲の文書からなる前記標準文書形式の印刷ジョブにページ切り出しし、該ページ切り出しされた印刷ジョブを前記プリンタ制御手段に出力し、前記プリンタ制御手段の制御により前記再印刷を行うことを特徴とする印刷システム。
【請求項７】
請求の範囲第１項記載の印刷システムにおいて、
前記障害回復要求は、前記ユーザより与えられ、前記障害が発生したプリンタとは異なる第２のプリンタの指定を含み、前記ジョブ変換手段により前記再印刷手段により読み出された前記第１の印刷ジョブから、前記第２のプリンタに対応した形式の印刷ジョブに変換して前記プリンタ制御手段に出力し、前記プリンタ制御手段の制御により前記再印刷を行うことを特徴とする印刷システム。
【請求項８】
複数のプリンタを制御することが可能なプリンタ制御装置であって、
プリンタの機種に依存しない標準的な形式の印刷ジョブを記憶しておく記憶手段と、
第１のプリンタで印刷障害が発生した場合、前記印刷障害に対応する第１の印刷ジョブを前記記憶手段から取り出し、前記取り出した第１の印刷ジョブを再印刷開始頁以降のページに対応する第２の印刷ジョブを再構成し、前記第１のプリンタとは別のプリンタである第２のプリンタに、再構成された第２の印刷ジョブに応じた印刷をさせる印刷回復手段を有することを特徴とするプリンタ制御装置。
【請求項９】
請求項８に記載のプリンタ制御装置において、
前記印刷回復手段は、前記第２のプリンタでの印刷媒体上のうち、前記第１のプリンタの印刷媒体と共通する物理的印刷可能領域に印刷させることを特徴とするプリンタ制御装置。
【請求項１０】
複数のプリンタを制御することが可能なプリント制御装置であって、
プリンタの機種に依存しない標準的な形式の印刷ジョブを記憶しておく記憶手段と、
第１のプリンタで印刷障害が発生した場合、前記第１のプリンタで印刷回復を行うか、前記第１のプリンタとは別の第２のプリンタで印刷回復を行うかを判定し、前記印刷障害に対応する第１の印刷ジョブを前記記憶手段から取り出し、前記取り出した第１の印刷ジョブを再印刷開始ページ以降のページに対応する第２の印刷ジョブを再構成し、印刷回復を行うと判定されたプリンタに、再構成された第２の印刷ジョブに応じた印刷をさせる印刷回復手段を有することを特徴とするプリンタ制御装置。
【請求項１１】
請求項10に記載のプリンタ制御装置において、
前記印刷回復手段は、前記第２のプリンタに印刷させる際には、前記第２のプリンタでの印刷媒体上のうち、前記第１のプリンタの印刷媒体と共通する物理的印刷可能領域に印刷させることを特徴とするプリンタ制御装置。
【請求項１２】
プリンタ制御装置からの指示に基づいて印刷をするプリンタであって、
前記プリンタとは別のプリンタで印刷障害が発生した場合、前記プリンタ制御装置から、前記印刷障害に対応しプリンタの機種に依存しない標準的な形式の第１の印刷ジョブから再構成した再印刷開始ページ以降のページに対応するプリンタの機種に依存しない標準的な形式の第２の印刷ジョブを受信し、受信した第２の印刷ジョブに基づいた印刷を行うことを特徴とするプリンタ
【請求項１３】
請求項12に記載のプリンタにおいて、
受信した第２の印刷ジョブを前記プリンタに特有な形式に変更することを特徴とするプリンタ。
【請求項１４】
請求項12に記載のプリンタにおいて、
前記プリンタでの印刷媒体上のうち、前記別のプリンタの印刷媒体と共通の物理的印刷可能領域に印刷することを特徴とするプリンタ。
【発明の詳細な説明】
技術分野
この発明は、複数のワークステーションやパーソナルコンピュータなどの情報処理機器がネットワークを介して接続され、これら複数の情報処理機器によりプリンタを共有することのできる印刷システムに関する。
背景技術
近年、ワークステーションやパーソナルコンピュータの分野において、ローカルエリアネットワーク（Local Area Network:LAN）やワイドエリアネットワーク（Wide Area Network:WAN）が普及しつつある。これらの普及につれて、複数のワークステーション、パーソナルコンピュータ、あるいはワードプロセッサ（以下、これらをクライアント、又は端末装置と総称する）がプリンタを共用することのできるプリントサーバが、導入コストと設置面積を低減するため、重要になりつつある。
従来の印刷システムは、例えば、第34図に示されるように、クライアント11′、12′、13′により共用可能なプリンタ17′、19′をそれぞれ制御するためのプリントサーバA15′、16′とで構成される。このような構成において、例えば、プリンタ17′で印刷を行うには、以下の手順により印刷処理が進められる。
まず最初に、クライアント11′〜13′が、プリントサーバ15′に印刷を依頼するため、ネットワーク10′を介して文書の印刷内容を表す文書データをプリントサーバ15′へ送信する。ここで、文書データは、文書の各ページについて、文字、図形、イメージの印刷内容を記述するための印刷コマンド列からなっている。この印刷コマンド列は、PDL（Page Description Language、ページ記述言語）とも呼ばれる。
クライアント11′〜13′から文書データを受信したプリントサーバ15′は、以下の処理を行う。まず、文書データをプリントサーバ15′内のスプールと呼ぶファイルに一旦格納する。続いて、格納した文書データを読み出し、プリンタ17′へ送信して印刷を指示する。そして、プリンタ17′が、受信した文書データを処理して用紙への印刷を行う。
このような印刷制御の技術については、例えば、特開平４−227524号公報に記載されている。また、このようなシステムにおいて、プリンタで紙ジャム等の障害が発生した場合のプリントサーバにおける再印刷の方法に関する技術として、例えば、特開平３−155974号公報、特開平３−224778号公報に記載されるものが知られている。
しかし上記従来技術では、プリンタ障害が発生した場合の障害処理について、以下の課題があった。
障害発生プリンタを用いた印刷回復の場合には、障害発生ページ以後からの印刷回復は、特願平３−155974号公報、あるいは特開平３−224778号公報に示される方法により行うことができる。つまり、プリントサーバ又はプリンタが、元のPDL文書を障害発生ページ以後のPDL文書に編集し（以後、この編集処理をページ切り出し処理、又は単にページ切り出しと呼ぶ）、この編集後の文書を再印刷することにより、印刷回復が行われる。しかし、オープン環境下での印刷では、様々なPDLの種別ごとに別々のページ切り出し処理が必要となり、この処理のための開発工数が多く、実現が困難である。
また、障害発生プリンタとは別の代替プリンタを用いた印刷回復の場合には、初めに印刷を指示した元のプリンタと、印刷回復で使う代替プリンタのPDL種別が異なると、代替プリンタでの印刷結果がでたらめになり、印刷回復できないという問題があった。
また、上記従来技術で、プリントサーバのスプールに格納した文書に対し、ジョブの表示・編集や、仕分・配布を行いたいというニーズがある。ここで、ジョブ表示・編集とは、スプールに格納した文書をクライアントに表示（スクロール、ページ指定表示、レイアウト表示、文字列等による検索表示を含む）したり、編集（メモ書き、チェックマーク付け等）する機能である。またジョブ仕分・配布とは、スプールに格納した文書をその内容や用紙サイズに応じて、仕分けたり、配布先を変える機能である。しかし、ジョブの表示・編集や、仕分・配布を行おうとする時、上記従来技術では様々なPDL種別ごとに別々にジョブの表示・編集処理や、仕分・配布処理が必要となる。したがって、これらの処理の開発工数が多く、実現が困難であるという問題がある。
発明の開示
本発明の目的は、上記従来技術の問題点に鑑み、印刷障害時の回復処理を任意のシステム内の任意のプリンタにより容易に行うことが可能な印刷システムを実現することにある。また、本発明の目的は、他の観点に立てば、ジョブの表示・編集処理や、仕分・配布処理を実現するための機能の開発工数を低減することの可能な印刷システムを実現することにある。
本発明によれば、上記目的を達成するために、少なくとも１つ以上のプリンタと、プリンタを制御するプリントサーバと、プリントサーバに対し前記プリンタによる文書データの印刷を要求する端末装置とを含んで構成される印刷システムが提供される。端末装置は、プリンタにより印刷される文書を作成する応用プログラム、応用プログラムが発行した印刷要求を受け、応用プログラムが作成した文書に基づきプリンタの機種に依存しないシステム内で共通の標準文書形式の第１の印刷ジョブを生成するジョブ作成手段、及びジョブ作成手段により作成された第１の印刷ジョブをプリントサーバに転送するジョブ送信手段とを有する。また、プリントサーバは、端末装置のジョブ送信手段により転送される第１の印刷ジョブを受信する転送ジョブ受信手段、転送ジョブ受信手段が受信した第１の印刷ジョブを文書の印刷を行うべきプリンタに対応した形式の第２の印刷ジョブに変換するジョブ変換手段、及びジョブ変換手段が出力する第２の印刷ジョブにしたがって文書の印刷を行うプリンタ制御手段を有する。
より好ましい態様において、プリントサーバは、第１の印刷ジョブを、当該第１の印刷ジョブによる文書の印刷が終了するまで第１の印刷ジョブを一時的に保持する印刷ジョブプールを備える。そして、プリンタ障害が発生した場合には、印刷ジョブプールに保持している第１の印刷ジョブを読み出して再印刷を実行する。具体的には、プリントサーバは、印刷ジョブプールから読み出した第１の印刷ジョブから、障害の発生したページ以降の文書からなる標準文書形式の印刷ジョブに再構成する。再構成された印刷ジョブは、通常の印刷ジョブと同様の手順により実行される。
また、他の態様において、プリントサーバは、第１の印刷ジョブに基づく印刷の実行中に、他の標準文書形式の第３の印刷ジョブを端末装置から受け付け、印刷中の第１の印刷ジョブの実行を中断し、第３の印刷ジョブに基づく印刷を実行する割込印刷実行手段を有する。割込印刷実行手段は、第３の印刷ジョブに基づく印刷の終了を検出すると、第１の印刷ジョブに基づく印刷を再開する。好ましい態様においては、割込印刷実行手段は、第１の印刷ジョブの再開にあたって、第１の印刷ジョブから未印刷のページからなる文書を切り出して、未印刷のページデータからなる印刷ジョブを生成し、生成した未印刷のページデータからなる印刷ジョブに基づく印刷を実行する。
本発明のさらに別の態様においては、端末装置に、ユーザからの指示にしたがって第１の印刷ジョブを複数の分割ジョブに分割し、分割した分割ジョブのそれぞれに、その分割ジョブの印刷を行うべきプリンタを割り当てて、対応するプリンタを管理するプリントサーバに分配するジョブ仕分・配布手段が設けられる。あるいはまた、プリントサーバに、１つの文書を複数の部分に分割するための基準、及び分割された個々の部分とその部分の印刷を行うプリンタとを対応づけるための情報とを定義した定義ファイルと、端末装置から転送された印刷ジョブを定義ファイルの定義にしたがって複数の部分ジョブに分割し、分割した部分ジョブのそれぞれと印刷すべきプリンタとを対応づけ、各部分ジョブをそれぞれの部分ジョブに基づき印刷を行うべきプリンタを管理するプリントサーバに再分配するジョブ仕分実行手段を設ける。各部分ジョブが配布されたプリントサーバでは、それぞれ配布された部分ジョブを並行して実行し、印刷を行う。
さらに、本発明の他の態様によれば、プリントサーバに転送された印刷ジョブは、文書ファイルキューに順次蓄積される。端末装置は、ユーザからの指示に基づいて、文書ファイルキューに蓄積された印刷ジョブの検索要求をプリントサーバに要求するジョブ検索要求手段を有する。また、プリントサーバは、検索要求に基づき、文書ファイルキューから要求された印刷ジョブを検索して端末に転送するジョブ検索送信手段を有する。端末装置は、さらに、ジョブ表示編集手段により、プリントサーバから転送された印刷ジョブを表示し、ユーザからの指示にしたがって印刷ジョブの編集を行い、編集ジョブ転送手段を用いて編集された印刷ジョブをプリントサーバに再転送する。プリントサーバでは、再転送された印刷ジョブを通常の印刷ジョブと同様にして実行する。
【図面の簡単な説明】
第１図は、本発明が適用される印刷システムの構成を示すシステム構成図、第２図は、クライアント、プリントサーバ、及び分散印刷管理サーバとして用いられる情報処理機器の構成の一例を示すブロック図、第３図は、プリンタのハードウェア構成の一例を示すブロック図、第４図は、第１の実施形態におけるクライアントの機能構成を示す機能ブロック図、第５図は、第１の実施形態におけるプリントサーバの機能構成を示す機能ブロック図、第６図は、印刷ジョブのファイル構成を示すファイル構成図、第７図は、印刷ジョブ内のデバイス情報の構成を示すデータ構造図、第８図は、データファイルとなるタイプ２の標準文書ファイルのデータ構造図、第９図は、ページデータの構成を示すデータ構造図、第10図は、ページ内容データの構成を示すデータ構造図、第11図は、プリントサーバでの印刷処理の流れを示すフローチャート、第12図は、第１変換部における処理の流れを示すフローチャート、第13図は、スプーラ機能拡張サービスの印刷回復サービスによる処理の手順を示すフローチャート、第14図は、本発明の第２の実施形態におけるクライアントの機能構成を示す機能ブロック図、第15図は、第２の実施形態におけるプリントサーバの機能構成を示す機能ブロック図、第16図は、第２の実施形態でのプリントサーバによる印刷処理のフローチャート、第17図は、第２の実施形態における第１変換部による処理の流れを示すフローチャート、第18図は、印刷回復サービスによる印刷回復処理の手順を示すフローチャート、第19図は、第２の実施形態におけるプリントサーバの他の機能構成を示す機能ブロック図、第20図は、第19図に示すプリントサーバにおける印刷処理のフローチャート、第21図は、クライアントとプリントサーバの間での障害報告の様子を表す模式図、第22図は、同一プリンタを用いた印刷回復の手順を示す模式図、第23図は、代替プリンタを用いた印刷回復の手順を示す模式図、第24図は、必要とする仕様に適合したプリンタ、又は代替プリンタの検索のためのユーザインタフェースを説明するための説明図、第25図は、プリンタ検索結果の表示例を示す説明図、第26図は、プリンタ障害発生時にクライアントのユーザ又はシステム管理者に通知されるプリンタ障害情報の表示例を示す説明図、第27図は、ユーザからの回復指示を受け付けるためのユーザインタフェースの説明図、第28図は、プリンタ−プリントサーバ間が片方向インタフェースで接続される場合の障害情報の内容の説明図、第29図は、プリンタ−プリントサーバ間が双方向インタフェースで接続される場合の障害情報の内容の説明図、第30図は、障害回復の処置内容として通知される情報の内容の説明図、第32図は、ユーザによる印刷回復条件を受け付けるためのインターフェースの説明図、第32図は、再印刷プリンタの候補一覧の表示方法の説明図、第33図は、印刷ジョブの内容表示画面の一例を示す説明図、第34図は、従来の印刷システムの構成を示すシステム構成図である。
発明を実施するための最良の形態
第１図は、本発明が適用される印刷システムの構成図である。印刷システムは、文書等を作成し、印刷を要求するクライアントとなる端末装置11、12、13（以下、これら端末装置を単にクライアントと呼ぶ）、クライアント11、12、13により共用される複数のプリンタ17、18a、18b、19、これらのプリンタによる印刷を制御するためのプリントサーバ15、16、及び分散印刷管理サーバ14、これらを接続するLAN、WAN等のネットワーク10を含む。分散印刷管理サーバ14は、ネットワーク10上のすべてのプリントサーバとプリンタを一元管理する。プリントサーバ15、16には、文書データを一時的に格納するためのスプーラ20、21がそれぞれ接続されている。
システムへのプリンタの接続の形態としては、プリンタ18a、18b、19のように、プリントサーバのローカルバスに接続されても、プリンタ17のように、ネットワーク10に直接接続されてもよい。本明細書では、プリンタ18a、18b、19のようにプリントサーバに直接接続されたプリンタをサーバ直結プリンタ、プリンタ17のようにネットワークに接続されたプリンタをネットワークプリンタと呼ぶ。各プリンタは、プリントサーバ15又は16により制御される。第１図の印刷システムにおける印刷手順そのものについては、従来の印刷システムと特に変わるものではない。
クライアント11、12、13、プリントサーバ15、16、及び分散印刷管理サーバ14としては、実際には、パーソナルコンピュータ、ワークステーション等の情報処理機器が利用される。第２図は、クライアント、プリントサーバ、及び分散印刷管理サーバとして用いられる情報処理機器の構成の一例を示すブロック図である。
本印刷システムで用いられる情報処理機器は、図に示すように、MPU200、システムバス201、ROM210、RAM211、キーボード221、ディスクコントローラ231、表示コントローラ241、ネットワークコントローラ250、プリンタアダプタ260を有している。これらの各構成要素は、システムバス201により相互に接続されている。
キーボード221は複数の入力用キーからなる入力装置であり、ポインティングデバイスの一種であるマウス222が接続されている。ディスクコントローラ331には、二次記憶装置232が接続され、また、表示コントローラには、ディスプレイ242が接続される。ネットワークコントローラ250は、ネットワーク10に接続され、ネットワーク10に接続される他の機器との間での通信を行う。
なお、第２図に示す情報処理機器をプリントサーバ15、16、あるいは分散印刷管理サーバ14のように、ユーザとの間のインタラクティブな入出力を行う機会の少ない装置として利用する場合は、キーボード221、マウス222、ディスプレイ242を簡単化し、ユーザ操作パネルとすることもできる。この場合、マンマシンインターフェースの機能は低下するが、コストを下げることができる。また、クライアント11〜13、分散印刷管理サーバとして用いる場合であって、特にローカルにプリンタを持つ必要がない場合には、プリンタアダプタ260を省略することも可能である。
第３図は、プリンタ17、18a、18b、19のハードウェア構成の一例を示すブロック図である。プリンタは、プリントサーバ15、16の指示にしたがって印刷制御を行うプリンタコントローラ40、及び実際に紙面への印刷を行うプリンタエンジン部41からなる。プリンタコントローラ40とプリンタエンジン部41は、プリンタエンジンインターフェースと呼ぶインタフェースにしたがって通信を行う。
プリンタコントローラ40は、さらに、MPUバス301、サーバインタフェース部（以降、サーバI/F部と呼ぶ）302、MPU303、ROMメモリ304、二次記憶装置305、ユーザ操作パネル307、サブMPU306、プリンタメモリコントローラ309、及びRAM310からなる。
サーバI/F部302は、上位装置であるプリンタサーバと、サーバインターフェースと呼ぶインターフェースにしたがって通信を行うためのコントローラである。具体的には、例えば、プリンタ18a、18b、19のようにプリントサーバのローカルバスに接続する場合には、SCSI（Small Computer System Interface）、RS232C、RS422、GP−IB（General Purpose Interface Bus）、セントロニクスなどのインタフェースが用いられる。また、プリンタ17のようにネットワーク10に直接接続するプリンタの場合は、HDLC（High−Level Data Link Control）、Token−Ring、FDDI（Fiber Distributed Data Interfere,）、ISDN（Integrated Services Digital Network）などのインターフェースを用いる。使用するインターフェースの種類に応じてサーバI/F部302のハードウェア論理として適切なものを実装する。
ROM304には、プリンタコントローラ40の初期化立上げプログラム（IPL）と文字フォントの一部が格納される。RAM310には制御プログラム、文字フォントの残り、ページバッファ管理テーブル、プリンタ管理テーブル等の各種管理テーブルなどが格納される。また、RAM310は、コマンドバッファ部、ページバッファ部としても利用される。これらのうち、制御プログラムと文字フォントの残りは前記IPLプログラムによりいずれかのプリントサーバからダウンロードすることにより格納される。なお、制御プログラムと文字フォントの残りは、RAM310に格納せず、ROM304に予め格納しておいてもよい。また逆に、文字フォントについては、そのすべてをRAM310に格納するようにしてもよい。
サブMPU306は、MPU303の指示に従い、ユーザ操作パネル307やプリンタエンジン部308との間で入出力処理を行う。サブMPU306は、プリンタがシャトルプリンタの場合には、プリンタエンジン部41からページ先頭位置を示すための信号等の受信を行う。また、レーザプリンタの場合には、プリンタエンジン部41に対し、問い合わせや指示、あるいは、ページバッファ部の内容のプリンタエンジン部への読み出し手順の制御を行う。
プリンタメモリコントローラ309はRAM410の内容（通常ページバッファ部の内容）のプリンタエンジン部41への読み出し処理、及びRAMメモリ310がDRAMで構成される場合、DRAMメモリのリフレッシュ等の制御を行う。プリンタメモリコントローラ309は、RAM410からのデータの読み出し処理をMPU303を介さずに実行するためにDMA（Direct Memory Access）機能を備える。なお、プリンタがシャトルプリンタの場合には、ページバッファ部の内容を形式変換した後、プリンタエンジン部41へのデータの転送が行われる。レーザプリンタの場合には、パラレルシリアル変換されたデータが、プリンタエンジン部41へ転送される。また、プリンタメモリコントローラ309は、印刷処理時に、紙面一ページ分のデータのページバッファ部からの読み出しが終了すると、MPU303に対し割込み信号をアサートし、MPU302によるページバッファ読出し終了割込み処理を起動する。
以下、本発明の実施の形態について、いくつかの例に基づいて具体的に説明する。
第４図は、第１の実施形態におけるクライアント11の機能構成を示す構成図である。ここでは、クライアント11について説明するが、他のクライアントについても同様の機能を有する。なお、以下に説明する第１の実施形態では、分散印刷管理サーバ14を用いない実施形態について説明する。
クライアント11は、応用プログラム400、セットアップツール410、プリントマネージャ420、グラフィクス処理部401、標準文書ファイルキュー402、一般プリンタ論理ドライバ403、ジョブ転送サービスライブラリ430、障害処理サービス440を有している。
応用プログラム400は、例えば、ワードプロセッサ、表計算、図形作成等のプログラムであり、文書や図形等（以下、単に文書という）の作成と作成した文書の印刷指示を行う。セットアップツール410は、プログラムのインストールやアンインストール、各種サービスの登録、削除を行うためのインストール部411と、ネットワークや各種パラメータの設定を行う環境設定部412を備える。
応用プログラム400は、グラフィクス処理部401に対し、GI（Graphical Interface）と呼ぶAPI（Application Program Interface）で印刷を要求する。グラフィクス処理部401は、応用プログラムの作成したGIインターフェースでの文書データを順次受信し、受信した文書データをタイプ１の標準文書ファイルと呼ぶ形式（以後、fos_1と略記する。なお、ここで、fosはfile of standard format for devicesの略である）の文書データに変換した後、標準文書ファイルキュー402に順次格納する。標準文書ファイル形式とは、プリンタの種類によらない統一した標準のファイル形式を意味する。標準文書ファイルは、ページ単位でのジョブの処理（ページ切り出しを含むプリンタ障害処理、ジョブ表示・編集、ジョブ仕分・配布、後で説明する自動仕分、分割・並行印刷、割込み印刷等）を容易に行うことができるという特徴を持つ。詳細については、後述する。
プリントマネージャ420は、ユーザやシステム管理者がプリンタやプリントサーバや印刷ジョブについての各種制御を行うためのGUI（Graphical User Interface）部分である。具体的には、プリンタの本印刷システムへの登録と削除を行うプリンタ登録／削除部421、登録したプリンタの制御をするためのプリンタ制御部422、登録したプリンタの情報を得るためのプリンタ情報部423、印刷ジョブを制御するための印刷ジョブ制御部424、スプーラを制御するためのスプーラ制御部425を備える。
一般プリンタ論理ドライバ403は、タイプ１の標準文書ファイルを入力とし、各プリンタ対応のPDL文書を生成し、プリンタ物理ドライバへ送信するための機能要素である。クライアント11においては第６図に示すように、一般プリンタ論理ドライバ403がグラフィクス処理部401に、実際に印刷しようとしているプリンタの物理的情報として、例えば、用紙の上下左右余白、プリンタ実装フォントの仕様、及び後述するプリンタデバイス情報などのプリンタ物理情報を提供する（図中、点線450）。グラフィクス処理部401はプリンタ物理情報を用いてタイプ１の標準文書ファイルを生成する。
ジョブ転送サービスライブラリ430は、クライアント内の各処理が、後述するプリントサーバ上の標準文書ファイルキュー内の各標準文書にアクセスするための機能を提供する。具体的には、ジョブ送信機能431、ジョブ要求・受信機能432、ジョブ編集後のジョブ送信機能433、ジョブ検索要求機能434等の機能を提供する。ジョブ転送サービスライブラリ430によるクライアントからの各要求に対し、後述するプリントサーバ上のジョブ転送サービスが、標準文書ファイルキュー内の各標準文書に対する実際のアクセスサービスを実行する。
なお、ジョブとは応用プログラム400がプリントサービスに対して印刷を要求した１単位の文書のことであり、本実施例では、標準文書ファイルがその具体的表現となる。本実施例においては、グラフィクス処理部401が作成するタイプ１の標準文書ファイルと、ジョブ送信機能433が、プリントサーバ内の標準文書ファイルキューに保存するためのタイプ２の標準文書ファイル（fos_2）の２つの形式の標準文書ファイルを用いている。例えば、タイプ１の標準文書ファイルは、グラフィクス処理部が作りやすいように、印刷ジョブの各ページを別のファイルで表現する。また、タイプ２の標準文書ファイルは、標準文書ファイルキューへのアクセスが容易にできるように、印刷ジョブ全体を１ファイルで表現する。ジョブ送信機能431は、標準文書ファイルキュー402から読み出したタイプ１の標準文書ファイルをプリントサーバに転送するにあたり、タイプ２の標準文書ファイルに形式変換を行う変換機能437を有する。
障害処理サービス機能440は、クライアント11上でユーザやシステム管理者が、プリンタ、プリントサーバ、あるいは印刷ジョブについての障害処理を行うためのGUI部分である。名称にサービスと付けたのは、プリントサーバが各種障害を検出した時に、後述するプリントサーバ上のスプーラ機能拡張サービス機能が、この障害処理サービス機能440を用いて、ユーザによる障害処理への対応を要求するからである。障害処理サービス440は、プリントサーバ上のスプーラ機能拡張サービスとスプーラ拡張サービスプロトコル405を介して通信を行う。
障害処理サービス機能440は、障害通知部441、印刷回復部442を備える。障害通知部441は、プリントサーバ内のスプーラ機能拡張サービスから障害報告を受信し、画面にその内容を表示してユーザに通知する。印刷回復部442は、障害プリンタの状態表示、再印刷、テスト印刷、印刷ジョブキャンセル等の処理を行う。再印刷処理では、同一プリンタを用いた再印刷と代替プリンタを用いた再印刷のいずれかを、ユーザが指示することができる。テスト印刷は、再印刷する前に試し印刷をする機能である。また印刷ジョブキャンセルは、障害の発生したジョブを、プリントサーバから削除し、印刷を打ち切るための機能である。
なお、第４図中、プリントマネージャ420が備える分割・並行印刷機能426、割り込み印刷機能427、構成管理機能428、障害処理サービス440が備える構成管理機能443、ジョブ表示・編集機能407、ジョブ仕分け・配布機能408、並びに構成管理プロトコル406については、他の実施の形態において用いられるものであり、ここで説明する実施の形態では特に用いられない。
第５図は、第１の実施形態におけるプリントサーバ15の機能構成を示す構成図である。ここでは、プリントサーバ15について説明するが他のプリントサーバについても同様の機能を有する。
プリントサーバ15は、応用プログラム500、グラフィクス処理部501、ジョブ転送サービス510、スプーラ51、標準文書ファイルキュー502、スプーラ52、第１変換部503、第２変換部504、一般プリンタ論理ドライバ505、スプーラ53、プリンタ制御フィルタ520、ネットワークプリンタ制御フィルタ530、プリンタ物理ドライバ506、ネットワークプリンタ制御ドライバ507、通信プロトコル508、スプーラ機能拡張サービス540、印刷ジョブプール54、印刷ジョブプール管理ライブラリ509、ジョブ転送サービスライブラリ562を備える。
応用プログラム500とグラフィクス処理部501の機能は、クライアント11内の応用プログラム400及びグラフィクス処理部401と同等である。応用プログラム500、グラフィクス処理部501は、それらが実装されているのと同じ計算機上にあるプリントサーバの機能に対し、印刷を指示する。このような同一計算機上の応用プログラムからの印刷指示をローカル印刷と呼ぶ。一方、クライアント11上の応用プログラム400のように、ネットワークで接続された他の計算機上の応用プログラムからプリントサーバ15に対する印刷指示をリモート印刷と呼ぶ。
ジョブ転送サービス510は、クライアント内のジョブ転送サービスライブラリ430から標準文書ファイルキュー502へのアクセス要求に対し、実際のアクセスサービスを提供する。具体的には、クライアントのジョブ転送サービスライブラリ430からのジョブ送信、ジョブ要求・受信、ジョブ編集後のジョブ送信、ジョブ検索要求の各要求に応答して、ジョブ受信・登録処理511、要求ジョブ検索・送信512、編集ジョブの受信・更新513、ジョブ検索実行514の各処理を実行する。
スプーラ51は、標準文書ファイルキュー502に対する入出力を、グラフィクス処理部501、ジョブ転送サービス510、及ぶクライアント内のプリントマネージャ420に対して実行する。プリントマネージャ420とスプーラ51とのやりとりは、直接行っても、クライアント内の中継機能部（図示せず）を用いて行ってもよい。
標準文書ファイルキュー502は、プリントサーバにおいてプリンタ出力を行う前の部分に設けたジョブ格納用のキューであり、クライアント、プリントサーバの両者が発行したすべての印刷ジョブを印刷要求の発生順に、順次格納する。
スプーラ52は、標準文書ファイルキュー502からジョブを順次読み出し、第１変換部503に送信する。第１変換部503は、入力されたジョブの形式がタイプ１の標準文書ファイル（fos_1）ならば、変換機能により入力されたタイプ１の標準文書ファイルをタイプ２の標準文書ファイルに変換し、標準文書ファイルキュー502に入れ直す。入力したジョブの形式が、タイプ２の標準文書ファイル（fos_2）であれば、第１変換部503は、それを第２変換部504に出力する。
第２変換部504は受信したタイプ２の標準文書ファイルの印刷ジョブを、タイプ１の標準文書ファイルに変換し、一般プリンタ論理ドライバ505に送信する。一般プリンタドライバ505は、受信したタイプ１の標準文書ファイルを出力プリンタのPDL形式に変換してスプーラ53に出力する。
スプーラ53は、出力プリンタがサーバ直結プリンタの場合には、受信したPDL形式の文書を、プリンタ制御フィルタ520に送り、プリンタ物理ドライバ506を介してプリンタでの印刷を実行する。出力プリンタがネットワークプリンタの場合、ネットワークプリンタ制御フィルタ530に受信したPDL形式の文書を送り、ネットワークプリンタ制御ドライバ507、通信プロトコル508を介してネットワークプリンタでの印刷を実行する。
ここで、プリンタ物理ドライバ506は、サーバ直結プリンタに対する入出力を行うためのデバイスドライバであり、本機能を用いて、プリンタへの片面／両面印刷モード、ドット密度、用紙サイズ、給紙部、排紙部等の各種パラメータの設定、PDL形式の文書のプリンタへの出力、プリンタ状態（障害状態等）の読み出し等を実行する。また、ネットワークプリンタ制御ドライバ507は、ネットワークプリンタに対し、プリンタ物理ドライバ506と同等の機能を提供する。
プリンタ制御フィルタ520は、プリンタ物理ドライバ506し、ドライバのオープン、クローズ、書き込み、読み出し等を行う入出力部521、入出力部521を用いたプリンタの制御を行うプリンタ制御部522、及び入出力部521を用いた障害検出と障害報告を行う障害検出・報告部523を備える。ネットワークプリンタ制御フィルタ530は、ネットワークプリンタに対し、プリンタ制御フィルタ520と同等の機能を提供する。プリンタ制御フィルタ520、ネットワークプリンタ制御フィルタ530の機能を、プリントサーバ内の他の機能部分に実装し、プリンタ制御フィルタ520、ネットワークプリンタ制御フィルタ530を省くこともできる。
通信プロトコル508は、TCP/IP、SPX/IPX等の通信プロトコルを制御する機能である。ネットワークプリンタ制御ドライバ530は、通信プロトコル507を制御することで、ネットワークプリンタとの間の通信処理を実行する。
スプーラ機能拡張サービス540は、プリントサーバ11における印刷ジョブ制御の基本機能への拡張機能を提供する。そのため、スプーラ機能拡張サービス540は、クライアント内の障害処理サービス440に障害を報告するための障害報告部541、プリンタ障害発生時に印刷ジョブの印刷を回復するための印刷回復サービス部542、プリンタ制御フィルタ520の制御によりスプーラ機能を拡張するためのフィルタ制御部543とを備える。
次に、印刷ジョブプール54と印刷ジョブプール管理ライブラリ509について説明する。第１変換部503以降の処理では、印刷ジョブを標準文書ファイル形式とは別のPDL形式に変換して処理が行われる。PDL形式のファイルは、プリンタの機種に依存するファイル形式であり、これにより、障害からの回復の際に行われるページ単位での再処理を行うことは困難である。印刷ジョブプール54は、再処理が容易な標準文書ファイル形式で印刷ジョブを保存するためのジョブ格納場所として用いられる。
印刷ジョブプール管理ライブラリ509は、印刷ジョブプール54の作成、削除と、印刷ジョブプール54に対するジョブの登録、取り出し、削除を行うためのインタフェースライブラリを提供する。印刷ジョブプール54は、標準文書ファイルキュー502に１対１に対応し、プリンタの印刷システムへの登録時にプリントマネージャ420内のプリンタ登録／削除機能421により作成される。また、印刷システムからのプリンタの削除時に、プリンタ登録／削除機能421により削除される。印刷ジョブプール54に格納された印刷ジョブは、標準文書ファイルキュー内の印刷ジョブに１対１に対応する。第１変換部503は、標準文書ファイルキュー502から取り出した印刷ジョブを、印刷ジョブプール管理ライブラリ509を利用して印刷ジョブプール54に格納する。各印刷ジョブは、タイプ２の標準文書ファイルの形式で印刷ジョブプールに保持される。なお、各印刷ジョブについての標準文書ファイルキュー502内の印刷ジョブを、プリンタへの出力が終了した後も印刷が正常終了するまで保存することにより、印刷ジョブプール54、印刷ジョブプール管理ライブラリ509を備えることなく同様のプリンタ障害処理機能を実現することができる。
ジョブ転送サービスライブラリ562は、クライアントのジョブ転送サービスライブラリ430に相当するものであり、ジョブ転送サービスライブラリ430と同様の機能を備えている。
なお、第５図中、スプーラ機能拡張サービス540の備える分割・並行印刷実行部544、及び割込印刷実行部542、構成管理エージェント550、構成管理プロトコル552、並びに、自動仕分け実行部560については、他の実施の形態において用いられるものであり、ここで説明する実施の形態では特に用いられない。
第６図は、印刷ジョブのデータ構造図である。各印刷ジョブは制御情報を記述するためのコントロールファイル600と印刷内容を記述するためのデータファイル620とからなる。コントロールファイル600とデータファイル620はそれぞれ、例えば、“￥スプール￥プリンタａ￥cf0001"、“￥スプール￥プリンタａ￥df0001"等の名称を持つ。ここで、“プリンタa"はプリンタの名称であり、“￥スプール￥プリンタa"は、“￥スプール￥プリンタa"と呼ぶ名称の、プリンタａ用の標準文書ファイルキューを表す。また、“￥スプール￥プリンタａ￥cf0001"は、本標準文書ファイルキュー内の第0001番目のコントロールファイル、“￥スプール￥プリンタａ￥df0001"は、標準文書ファイルキュー“￥スプール￥プリンタa"内の第0001番目のデータファイルを表す。なお、“0001"がジョブIDに相当する。
コントロールファイル600は、ジョブの属性情報として、ジョブの通し番号を示すジョブID601（上述の“0001"に相当）、印刷ジョブプール内の対応する印刷ジョブのジョブ番号を示す印刷ジョブプール用ジョブID602、ジョブの印刷対象であるプリンタ名603、本印刷ジョブを発行した計算機のホスト名604、本印刷ジョブを発行したユーザ名605、プリントマネージャから見る時に利用されるジョブ名称であるジョブ名606、本印刷ジョブについてのプリンタ障害情報の通知先607、印刷ジョブを構成するデータファイルのデータ形式607（タイプ１の標準文書ファイルfos_1、タイプ２の標準文書ファイルfos_2、デバイス対応文書ファイルfcd、ページ記述言語PDLのいずれか）、プリンタ名603で識別されるプリンタ用の一般プリンタ論理ドライバ名609、プリンタデバイスに関する情報を記述するためのデバイス情報610、印刷ジョブの各種状態（表示状態を含む）を記述するための印刷ジョブ状態611、複数の印刷キュー間のジョブ優先度612、各印刷キュー内のジョブ順序613、印刷ジョブの総ページ数614、ジョブの登録時刻615、登録後の印刷経過時間616、印刷済みページ数617、対応するデータファイル名618を記述する。データファイル名618には、前述のように“￥スプール￥プリンタａ￥df0001"等のデータファイル名を記入する。
ここで、印刷ジョブプール54に保持される情報は、コントロールファイル600に対応するコントロールファイル対応情報と、データファイル620に対応するデータファイル対応情報で構成される。例えば、印刷ジョブがそのコントロールファイル“￥スプール￥プリンタａ￥cf0001"とデータファイル“￥スプール￥プリンタａ￥df0001"とから構成されている時、印刷ジョブプール54には、ファイル名を“￥ジョブプール￥プリンタａ￥cf0001"とするコントロールファイル対応情報と、ファイル名を“￥ジョブプール￥プリンタａ￥df0001"とするデータファイル対応情報が保持される。コントロールファイル対応情報は、コントロールファイル600が保持するジョブID601から印刷済みページ数617の各情報を含んでいる。
デバイス情報610は、第７図に示すように、印刷ジョブが利用するプリンタデバイス名701（メーカ名とプリンタ型番の組等からなる）、ポートレート／ランドスケープの区別を示すための印刷方向702、用紙サイズを示すための用紙サイズ703、拡大・縮小率を示すための拡大・縮小率704、本印刷ジョブでの印刷部数を示す印刷部数705、本印刷ジョブのカラー印刷仕様を示すためのカラー印刷仕様706、本印刷ジョブが片面印刷か両面印刷かを示すための片面／両面印刷707、印刷ジョブにおける要求ドット密度を示すためのドット密度708、再印刷開始ページ709、再印刷終了ページ710とからなる。ここで、再印刷開始ページ709には、（ａ）障害発生時に同一プリンタ又は代替プリンタを用いて再印刷を行う際の印刷開始ページ、（ｂ）印刷ジョブの正常終了後再印刷する場合の印刷開始ページ、（ｃ）印刷開始前に印刷ジョブを別プリンタ用の印刷キューに移して印刷する際の印刷開始ページ等が記入される。
第８図は、データファイル620となるタイプ２の標準文書ファイルのデータ構造図である。タイプ１の標準文書ファイルの場合も、同様の考え方で記述することができる。データファイル620、つまり標準文書ファイルは、図に示すように、本ファイル全体に関するヘッダ情報801、文書属性情報802、ファイルを構成する各ページデータ803−１（１ページ目）、803−ｉ（ｉページ目）、803−ｎ（最終ページ）、文書全体についての文書付加情報804、805、ジョブ終了レコード806を含んで構成される。
ヘッダ情報801には、本印刷システム用プリントサーバソフトウェア名称、印刷ジョブ名称、本印刷ジョブ全体としての用紙印刷可能領域（例えば、0.01mmを単位とする）が記述される。文書属性情報802は、第６図に示すコントロールファイル600のジョブID601から印刷済みページ数617に示したような文書属性を記述するための領域である。ジョブ終了レコード806は、本データファイルによる印刷ジョブの終わりを明示的に示すためのレコードである。
第９図は、ｉページ目のページデータ803−ｉの構成を示す構成図である。ｉページ目のページデータ803−ｉは、図に示すように、このページに関するページヘッダ情報901、ページ属性情報902、ページ内容データ903、１番目の編集レコード904−１、２番目の編集レコード904−２、ｎ番目の編集レコード904−ｎ、及びページ終了レコード905を含んで構成される。
ページヘッダ情報901には、本印刷システム用プリントサーバソフトウェア名称、印刷ジョブ名称、本ページの通し番号、本ページの用紙印刷可能領域（例えば、0.01mm単位とする）を記述する。
ページ属性情報902は、本ページ用のページ属性情報を記述するためのエリアであり、第７図にデバイス情報610として示したプリンタデバイス名701から際印刷終了ページ710の各情報のようなプリンタデバイス属性を記述する。
各編集レコード904には、後述する、他の実施形態において、ジョブ表示・編集部407が、プリントサーバ内の標準文書ファイルキュー502から印刷ジョブである標準文書ファイルを読み出し、編集処理を行う時に用いる。この編集処理において、ユーザが、各ページについてメモ書き、マーク付け、しおり記入等を行うと、それらに関する情報が順次編集レコード904に記入される。編集結果は、編集後のジョブ送信機能433等を用いて、プリントサーバに送信される。
ページ終了レコード907は、各ページデータ803（803−１、803−ｉ、803−ｎ）間のページ区切りを明示的に示すためのレコードである。ページ終了レコード907を利用することにより、前述のページ切り出し、後で説明する分割・並行印刷、割込み印刷、ジョブ表示・編集、ジョブ仕分け・配布、自動仕分け等の各処理がジョブ内のページ区切りを、各ページ内容データ903を解析することなく検出することができる。
第10図には、ページ内容データ903の構成を示す。ページ内容データ903は、図に示したように、描画属性パラメータ設定部と描画内容設定部とで構成される。描画属性パラメータ設定部は、各ページ先頭における各種描画属性パラメータの値を設定する。描画内容設定部は、各ページにおける文字、線図形、面図形、イメージ等の描画内容を指定する。
描画属性パラメータ設定部は、具体的には、フォントの種類とサイズ等を設定するための文字描画パラメータ設定コマンド1001、線の種類、太さ等を設定するための線描画パラメータ設定コマンド1002、塗潰しパターンの選択等を行うための面塗潰しパラメータ設定コマンド1003、カラー情報等のイメージ描画パラメータを設定するためのイメージ描画パラメータ設定コマンド1004、カラーパレット情報を設定するためのカラーパレット情報設定コマンド1005、透過／不透過等を設定するための背景モード設定コマンド1006等を含む。
描画内容設定部は、具体的には、文字描画パラメータ設定コマンド1010、文字列描画コマンド1011、線描画パラメータ設定コマンド1020、直線描画コマンド1021、面塗潰しパラメータ設定コマンド1030、四角形描画コマンド1031、文字描画パラメータ設定コマンド1040、文字列描画コマンド1041、イメージ描画パラメータ設定コマンド1050、イメージ描画コマンド1051、文字描画パラメータ設定コマンド1060と文字列描画コマンド1061等を含んでいる。
なお、ページ内容データ903の構成を、以下の３通りのいずれかにしても同様に実現することができる。
（１）各ページ先頭における描画属性パラメータ設定部を取り除き、代わりにすべての描画属性パラメータを初期化するためのリセットコマンドを設ける。
（２）各ページ先頭における描画属性パラメータ設定部を取り除く。そのため、描画内容設定部において、必ず、各描画コマンドの前に必ず描画属性パラメータ設定用のコマンドを対にして入れる。
（３）文字、線、面等の各描画について、すべての描画属性パラメータ設定コマンドをなくす。描画内容設定コマンドを使う度に、その入力引数として、描画属性パラメータを毎回指定するようにする。
第11図は、プリントサーバでの印刷処理の流れを示すフローチャートである。ここでは、クライアント11内の応用プログラム400が作成した文書とプリントサーバ15内の応用プログラム500が作成した文書の両方を、印刷ジョブとしてプリントサーバ15に登録し、印刷を実現する。
プリントサーバは、まず、標準文書ファイルキュー502に、印刷ジョブを登録する（ステップ1101）。ここでは、クライアント11の応用プログラム400が作成した文書は、タイプ２の標準文書ファイルとして登録され、プリントサーバ15の応用プログラム500が作成した文書は、タイプ１の標準文書ファイルとして登録される。
標準文書ファイルキュー502内の各印刷ジョブは、スプーラ53が読み出し、第１変換部503へ出力する（ステップ1102）。
第１変換部503は、入力された印刷ジョブを順次処理する（ステップ1103）。第１変換部503は、第12図に示すように、印刷ジョブの文書形式を判定する（ステップ1201）。
文書形式がタイプ２の標準文書形式であれば、第１変換部503は、印刷ジョブプール54に印刷ジョブを保存する。この時印刷ジョブプール管理ライブラリ509の機能を利用する（ステップ1202）。そして、印刷ジョブを第２変換部504に出力する（ステップ1203）。
一方、文書形式がタイプ１の標準文書形式であれば、第１変換部503は、その印刷ジョブをタイプ１の標準文書ファイル形式からタイプ２の標準文書ファイル形式へ変換する（ステップ1204）。そして、変換したタイプ２の標準文書ファイル形式の印刷ジョブを、標準文書ファイルキュー502に、再入力する（ステップ1205）。
再び第11図に戻り、ステップ1104では、第２変換部504が、印刷ジョブの形式をタイプ２の標準文書ファイル形式からタイプ１の標準文書ファイル形式へ変換した後、その印刷ジョブを一般プリンタ論理ドライバ505へ出力する。
一般プリンタ論理ドライバ505は、受け取った印刷ジョブの形式を実際に印刷を行う各プリンタに対応した印刷指示内容であるPDL形式に変換した後、プリンタ制御フィルタ520、又は、ネットワークプリンタ制御フィルタ530へ出力する（ステップ1105）。
プリンタ制御フィルタ520、又は、ネットワークプリンタ制御フィルタ530は、プリンタ物理ドライバ506、又は、ネットワークプリンタ制御ドライバ507を用いて、プリンタへ印刷ジョブを出力する（ステップ1106）。
その後、プリンタ制御フィルタ520、又は、ネットワークプリンタ制御フィルタ530は、プリンタドライバから印刷ジョブの印刷結果を受信し、印刷結果が正常であったか否かを判断する（ステップ1107）。
印刷結果が正常であれば、印刷ジョブを削除する（ステップ1108）。具体的には、印刷ジョブプール管理ライブラリ509の機能を利用して、印刷ジョブプール54から印刷ジョブを削除する（ステップ1108）。
印刷結果が異常であれば、まず、プリンタの詳細な障害状態等を含むプリンタ詳細状態を検出する（ステップ1109）。次に、プリンタ詳細状態を反映し、ジョブ状態を更新する（ステップ1110）。本実施例では、ジョブ状態として、“保留”、“エラー”、“削除中”、“スプール中”、“印刷中”、“オフライン”、“紙切れ”、“印刷済み”、“編集中”、“移動中”、“障害回復中”、“印刷待ち”の状態がある。ここで、“保留”は、その印刷ジョブが標準文書ファイルキュー502内で処理すべき順になっても処理せず次の印刷ジョブを処理するような状態である。ユーザ、又はシステム管理者の指示により保留が解除されると、そのジョブが再び処理の対象となる。この状態は、後述する他の実施形態におけるジョブ表示・編集、ジョブ仕分・配布、ジョブ自動仕分の各処理を行うために設けられる。これら各処理の完了後、保留状態を解除する。“エラー”は、そのジョブついての印刷中にプリンタで障害が発生した状態である。“削除中”は、標準文書ファイルキューからその印刷ジョブを削除中の状態である。“スプール中”は、前記標準文書ファイルキューにその印刷ジョブを登録中の状態である。“印刷中”は、その印刷ジョブをプリンタで印刷中の状態である。“オフライン”は、その印刷ジョブがプリンタへ送信されているが、プリンタがオフライン状態であることを表す。“紙切れ”は、その印刷ジョブがプリンタへ送信されているが、プリンタに用紙がない状態であることを表す。“印刷済み”は、その印刷ジョブがプリンタへ送信され、印刷が完了していることを表す。“編集中”は、ジョブ表示・編集機能407、ジョブ仕分・配布機能408、又はジョブ自動仕分実行部560が、標準文書ファイルキュー502内のその印刷ジョブを処理中であることを示す（これらの処理については、他の実施形態として後述する）。“移動中”は、標準文書ファイルキュー502内のその印刷ジョブを、別のプリンタ用の対応する標準文書ファイルキューに移動中であることを表す。“障害回復中”は、標準文書ファイルキュー502内のその印刷ジョブを、プリンタ障害状態から回復し再印刷しつつあることを表す。“印刷待ち”は、標準文書ファイルキュー502にその印刷ジョブが登録済みであり、処理待ち状態にあることを表わす。
ステップ1110において、ジョブ状態の更新を行った後、スプーラ機能拡張サービス540の障害報告機能541を用いたクライアントへの障害報告と、印刷回復サービス542を用いた印刷回復を実行する。印刷回復では、同一又は代替のプリンタを用いて再印刷を実行する（ステップ1112）。
第13図は、スプーラ機能拡張サービス540の印刷回復サービス542の処理手順を示すフローチャートである。
印刷回復サービス542は、プリントサーバの印刷処理において、印刷結果が異常（印刷ジョブ状態が“エラー”となった）の場合、ユーザ、又はシステム管理者からの印刷回復指示を待つため、印刷回復指示待ち状態となる（ステップ1301）。なお、印刷回復指示は、クライアント内の印刷回復442が印刷回復サービス542に対して行う。
印刷回復サービス542は、クライアントからの印刷回復指示を受信すると、同一プリンタを用いた印刷回復か、代替プリンタを用いた印刷回復か判定する（ステップ1302）。
前者である場合は、印刷ジョブプール54から保存していた印刷ジョブを取り出す（ステップ1303）。この時、障害発生印刷ジョブのジョブIDに基づき、印刷ジョブプール内の対応する印刷ジョブを検索して、対応するものを取り出す。次に、取り出した印刷ジョブを、再印刷開始ページ以後のページのみからなる印刷ジョブに加工する（ステップ1304）。この加工処理をページ切り出しと呼ぶ。ページ切り出し後、その印刷ジョブを第２変換部504へ出力する（ステップ1305）。
代替プリンタを用いた印刷回復の場合、印刷回復サービス542は、まず、印刷ジョブプール54から保存していた印刷ジョブを取り出す（ステップ1306）。印刷ジョブの取り出しは、障害発生印刷ジョブのジョブIDに基づき、印刷ジョブプール内の対応する印刷ジョブを検索することにより行われる。次に、取り出した印刷ジョブを、再印刷開始ページ以後のページのみからなる印刷ジョブにページ切り出しを行う（ステップ1307）。ページ切り出しを行った後、その印刷ジョブを代替プリンタ用の標準文書ファイルキューへ出力する（ステップ1308）。この代替プリンタ用の標準文書ファイルキューは、必ずしも処理を行っているプリントサーバと同じ計算機上にあるとは限らず、別の計算機上のプリントサーバに実装されていることもある。
以上の処理により、障害発生プリンタと同一プリンタを用いた障害発生ページ以後からの印刷回復、及び障害発生プリンタとは別の代替プリンタを用いた印刷回復を、オープン環境下の印刷で実現することができる。また、様々なPDL種別によらず統一した標準文書ファイルをベースとしてプリンタ障害処理を行うため、従来、各PDL対応に用意していたページ切り出し処理を、標準文書ファイル形式に対してのみ用意すればすむ。これにより、ページ切り出し処理の開発工数を減じることができる。さらに、従来、代替プリンタは、障害発生プリンタと同じ機種か、少なくとも同じPDLをサポートしていることが必要であり、代替プリンタとして使えるものは限定されていた。しかし、上述した実施例では、もともと印刷を行っていたプリンタとは別の機種で、しかも別のPDLしかサポートしていないプリンタでも、代替プリンタとして利用できる。これにより、代替プリンタを用いた障害回復の適用範囲を大幅に広げることが可能となる。
なお、ある障害発生プリンタ（プリンタ１と呼ぶ）から別の代替プリンタ（プリンタ２と呼ぶ）に印刷ジョブを移す時、以下の点に注意する。すなわち、プリンタの物理的印刷可能領域として、プリンタ１とプリンタ２の共通部分を用いて印刷するようにする。これは、プリンタ１の物理的印刷可能領域よりプリンタ２の物理的印刷可能領域が狭い場合、プリンタ２で代替印刷すると、印刷結果が欠けてしまうのを防ぐためである。ユーザに対してこのようなことを支援するためには、後述するように構成管理機能を用いて、各プリンタの物理的印刷可能領域を、各プリンタの印刷仕様の一部として管理すればよい。
なお、本実施例では、タイプ１とタイプ２の二つの標準文書ファイルを設けているが、これらをどちらか一方に統一し、それを用いるようにしてもよい。この場合ジョブ送信431内の変換機能437、第１変換部503、第２変換部504を省き、処理速度を改善することが可能となる。
第14図は、本発明の第２の実施形態におけるクライアントの機能構成図である。第14図において、先に説明した第４図に示すクライアントの機能部分と同一の機能を達成する部分については、第４図と同一の参照番号が付与されている。以下、第４図に示すクライアントの機能構成と異なる部分を主として説明を行う。なお、本実施形態においても、第１図における分散印刷管理サーバ14は用いていない。
第14図に示すクライアントの機能構成が第４図に示すクライアントの機能構成と異なる点は、標準文書ファイルキュー402に代えて標準文書作成用プリンタ論理ドライバを有する点にある。これに伴い、グラフィックス処理部1401、一般プリンタ論理ドライバ1403、ジョブ転送サービスライブラリ1430のジョブ送信機能1431の各機能が、第４図において対応する機能と多少異なる機能を有する。
グラフィクス処理部1401は、応用プログラム400の作成したGIインターフェースの文書を順次受信し、DI（Device Interface）と呼ぶAPIに変換した後、標準文書作成用プリンタ論理ドライバ1402に順次入力する。
標準文書作成用プリンタ論理ドライバ1402は、DIインターフェースでグラフィックス処理部1401から受け取った文書の内容を、標準文書ファイル形式（以下、単にfosと呼ぶこともある）の文書に変換し、ジョブ転送サービスライブラリ1430のジョブ送信機能1431を用いて、プリントサーバ内の標準文書ファイルキュー502に格納する。ここでも、標準文書ファイル形式は第１実施例の場合と同様、プリンタの種類によらない統一した標準形式を意味する。なお、ここで用いる標準文書ファイルの形式は、先に説明したタイプ２の標準文書ファイルの形式に準じるものとする。
一般プリンタ論理ドライバ1403は、DIインターフェースで記述された文書の内容から、各プリンタ対応のPDL文書を生成し、プリンタ物理ドライバへ送信するための機能要素である。一般プリンタ論理ドライバ1403は、グラフィクス処理部1401に、実際に印刷しようとしているプリンタの物理的情報、例えば、上下左右余白、プリンタ実装フォントの仕様、及び第９図に相当するプリンタデバイス情報（第９図により説明したプリンタデバイス情報に相当）など、を提供する。グラフィクス処理部1401は、これら物理的情報を用いて応用プログラム400から受け取った文書からDIインターフェースの文書を生成する。
ジョブ転送サービスライブラリ1430は、ジョブ送信機能1431が、標準文書の形式変換機能（第４図における変換機能437）を持たない点で、第４図に示すジョブ転送サービスライブラリ430と異なり、他については、第４図のジョブ転送サービスライブラリ430と同様の機能を備える。
なお、第14図に示される各機能要素のうち、プリントマネージャ420が備える分割・並行印刷機能426、割込み印刷機能427、及び構成管理機能428、障害処理サービス440が備える構成管理機能443、ジョブ表示・編集機能407、ジョブ仕分け・配布機能408、並びに構成管理プロトコル406については、本実施形態においても特に用いない。
第15図は、第２の実施形態におけるプリントサーバの機能構成図である。第15図において、先に説明した第５図に示すプリントサーバの機能部分と同一の機能を達成する部分については、第５図と同一の参照番号が付与されている。以下、第５図に示すプリントサーバの機能構成と異なる部分を主として説明を行う。
本実施形態では、プリントサーバ内における印刷ジョブの形式として、後述するように、一部、第５図に示すプリントサーバと異なる形式の文書ファイル形式を用いている。これに伴い、グラフィックス処理部1501、第１変換部1503、第２変換部1504、一般プリンタ論理ドライバ1505の機能が第５図において対応する機能部分と異なる機能を持つ。また、新たに、標準文書作成用プリンタ論理ドライバ1510、デバイス対応文書キュー1520、スプーラ57、及び自動印刷ジョブ削除サービス1530を備える。また、ジョブ転送サービスライブラリ562は、クライアントの持つジョブ転送サービスライブラリ1430に相当するものである。
本実施形態におけるグラフィクス処理部1501は、応用プログラム500からGIインターフェースにより受け取った文書の内容を、標準文書ファイル形式ではなく、デバイス対応文書ファイル形式（以下、fcd（file corresponding to device）とも呼ぶ）の文書に変換し、標準文書ファイルキュー502に格納する。デバイス対応文書ファイル形式は、プリンタ機種に依存して記述される文書ファイル形式であり、ページ区切りは明示されているが、ページ単位での再処理は困難な文書ファイル形式である。
第１変換部1503は、入力された印刷ジョブの形式に応じて次の処理を行う。まず、入力された印刷ジョブの形式が標準文書ファイル形式であれば、その印刷ジョブをデバイス対応文書ファイル形式に変換してデバイス対応文書キュー1520に格納する。このとき、第１変換部1503は、印刷ジョブプール管理ライブラリ509を利用して、印刷ジョブを標準文書ファイル形式で印刷ジョブプール54に保存する。一方、入力された印刷ジョブの形式がデバイス対応文書ファイル形式出あれば、その印刷ジョブをDIインターフェースの文書表現に変換し、標準文書作成用プリンタ論理ドライバ1510に出力する。
標準文書作成用プリンタ論理ドライバ1510は、入力されたDIインターフェースの文書内容を、GIインターフェースの文書に変換する。GIインターフェースに変換された文書は、さらに、標準文書ファイル形式に変換されて標準文書ファイルキュー502に出力される。GIインターフェースから標準文書ファイル形式への変換は、ジョブ転送サービスライブラリ562を持つジョブ送信機能を利用して行われる。この結果、応用プログラム500がローカルに作成した印刷ジョブも、標準文書ファイル形式として標準文書ファイルキュー502に格納することができる。
スプーラ57は、デバイス対応文書キュー1520から、デバイス対応文書ファイル形式の印刷ジョブを順次取出し、第２変換部1504に出力する。
第２変換部1504は、受け取った印刷ジョブを、DIインターフェースの文書表現に変換し、一般プリンタ論理ドライバ1505に出力する。一般プリンタ論理ドライバ1505は、DIインターフェースの文書を出力プリンタのPDL形式に変換しスプーラ53に出力する。
本印刷システムでは、各印刷ジョブについて、デバイス対応文書キューブ1520内の印刷ジョブを、印刷後も削除せず、システム管理者が設定した一定時間だけ保存する。保存された印刷ジョブの削除は、自動印刷ジョブ削除サービス1530により行われる。自動印刷ジョブ削除サービス1530は、定期的に起動され、デバイス対応文書キュー内の印刷ジョブのうち、印刷が正常終了してからの経過時間が設定された保存時間を超えた印刷ジョブを削除する。プリンタに障害が発生した場合には、障害発生時間だけ、保存時間を延長する。また、印刷ジョブプール54内の印刷ジョブに関し、対応する印刷ジョブがデバイス対応文書キュー1520にないとき、その印刷ジョブプール内の印刷ジョブを削除する。同様に、デバイス対応文書キュー1520に格納されている印刷済みの印刷ジョブに対応する印刷ジョブが印刷ジョブプール内にないときには、その印刷ジョブを削除する。
第15図において、スプーラ機能拡張サービス540が備える分割・並行印刷実行部544、及び割込み印刷実行部542、構成管理エージェント550、構成管理プロトコル552、自動仕分け実行部560は、ここで説明する実施の形態では特に用いられない。
印刷ジョブに関するデータ構造は、第１の実施形態において第６図〜第10図により説明したものと同様である。ただし、コントロールファイル600のデータ形式608に設定される値は、データファイルの形式に対応して変えられている。コントロールファイル600の内容は、標準文書ファイルキュー502に格納される場合、デバイス対応文書キュー1529に格納される場合ともに、基本的に同じである。また、データファイル620については、標準文書ファイルキュー502に格納される場合と、デバイス対応文書キュー1520に格納される場合とで、その内容は異なる。具体的には、ページ内容データ903が異なる。例えば、標準文書ファイルキュー502に格納されるデータファイルのページ内容データは、ローカル印刷、リモート印刷の両ケース共に、標準文書作成用プリンタ論理ドライバでの変換が済んだ後は、標準文書ファイル形式である。一方、デバイス対応文書キュー1520に格納されるデータファイルのページ内容データは、デバイス対応文書ファイル形式となる。
第16図は、第２の実施形態でのプリントサーバによる印刷処理のフローチャートである。
プリントサーバは、まず、標準文書ファイルキュー502に、印刷ジョブを登録する（ステップ1601）。ここでは、クライアント内の応用プログラム400が作成した文書は、標準文書ファイルとして登録する。また、プリントサーバ内の応用プログラム500が作成した文書は、デバイス対応文書ファイルとして登録する。
標準文書ファイルキュー502に登録された印刷ジョブは、スプーラ52により読み出され、第１変換部1503に渡される（ステップ1602）。第１変換部1503は、受け取った印刷ジョブを順次処理する（2003）。ここで第１変換部1503により行われる処理の流れを第17図に示す。第１変換部1503は、図に示すように、まず、受け取った印刷ジョブの文書形式を判定する（ステップ1701）。印刷ジョブの文書形式が標準文書ファイル形式（fos）であれば、印刷ジョブの文書形式を、標準文書ファイル形式からデバイス対応文書ファイル形式へ変換する（ステップ1702）。そして、変換したデバイス対応文書ファイル形式の印刷ジョブを、デバイス対応文書キュー1520に出力する（ステップ1703）。
一方、印刷ジョブの文書形式がデバイス対応文書ファイル形式（fcd）であれば、印刷ジョブの文書形式を、デバイス対応文書ファイル形式からDIインターフェース文書へ変換する（ステップ1704）。そして、変換したDIインターフェースの文書を、標準文書作成用プリンタ論理ドライバ11510に出力する（ステップ1705）。
第１変換部1503での処理に続いて、ステップ1604でプリントサーバ15は、標準文書作成用プリンタ論理ドライバ1510により、第１変換部1503が出力したDIインターフェースの文書をGIインターフェースの文書に変換する。その後、ジョブ転送サービスライブラリ562が持つジョブ送信機能を利用して標準文書ファイル形式の印刷ジョブとして標準文書ファイルキュー502に再入力する（ステップ1604）。標準文書ファイルキュー502に入力された標準文書ファイル形式の印刷ジョブは、スプーラ52により第１変換部1503に再度入力され、再び第１変換部1503で処理され、デバイス対応文書キュー1520に出力される。
デバイス対応文書キュー1520に格納された印刷ジョブは、スプーラ57により順次読み出され、第２変換部1504に出力される（ステップ1605）。第２変換部1504は、印刷ジョブの形式をデバイス対応文書ファイル形式からDIインターフェースの文書へ変換した後、一般プリンタ論理ドライバ1505へ出力する（ステップ1606）。
一般プリンタ論理ドライバ1505は、第２変換部1504から受け取った印刷ジョブの形式を各プリンタ対応の印刷指示内容であるPDL形式に変換して、プリンタ制御フィルタ（プリンタ制御フィルタ520又はネットワークプリンタ制御フィルタ530）へ出力する（ステップ1607）。プリンタ制御フィルタは、プリンタ物理ドライバ（プリンタ制御フィルタ520は、プリンタ物理ドライバ506、ネットワークプリンタ制御フィルタ530はネットワークプリンタ制御フィルタ507）を用いて、プリンタへ印刷ジョブを出力する（ステップ1608）。その後、プリンタ制御フィルタは、プリンタドライバによる印刷ジョブの印刷結果を受信し、印刷結果が正常かどうか判定する（ステップ1609）。
印刷結果が正常であれば、印刷ジョブプール管理ライブラリ509の機能を利用して印刷ジョブプール54から印刷ジョブを削除する（ステップ1610）。一方、印刷結果が異常であった場合にはプリンタの詳細な障害状態等を含むプリンタ詳細状態を検出する（ステップ1611）。次に、プリンタ詳細状態を反映し、ジョブ状態を更新する（ステップ1612）。ジョブ状態には、第１の実施形態と同様、“保留”、“エラー”、“削除中”、“スプール中”、“印刷中”、“オフライン”、“紙切れ”、“印刷済み”、“編集中”、“移動中”、“障害回復中”、“印刷待ち”が含まれる。その後、スプーラ機能拡張サービス540の障害報告機能541を用いてクライアントへの障害報告を行い、印刷回復サービス542を利用して、同一プリンタ、又は代替プリンタを用いた印刷回復処理を実行する（ステップ1613）。
第18図は、印刷回復サービス542による印刷回復処理の手順を示すフローチャートである。ここで行われる印刷回復処理も、第13図に示す第１の実施形態での印刷回復処理と基本的には同様に進められる。したがって、第18図では、第13図に示す処理と同じ処理が行われる処理ステップに対しては、第13図の対応する処理のステップ番号が付されている。第18図に示す処理が、第13図に示す処理と異なる点は次の通りである。すなわち、同一プリンタ、及び代替プリンタへの印刷回復処理における、ページ切り出し後の印刷ジョブの出力先が、それぞれ、第２変換部（第13図、ステップ1305）からデバイス対応文書キュー1520（ステップ1805）、あるいは、代替プリンタ用の標準文書ファイルキュー（第13図、ステップ1308）から代替プリンタ用のデバイス対応文書キュー（ステップ1808）に変更になっている点である。その他の処理については、第１の実施形態で説明した処理と実質的に同一の処理が行われる。
第19図は、第15図における標準文書作成用プリンタ論理ドライバ1510の位置を変えた場合のプリントサーバの機能構成を示す構成図である。第19図に示すプリントサーバでは、標準文書作成用プリンタ論理ドライバをグラフィックス処理部とスプーラ51の間に配置している。これに伴い、グラフィックス処理部、第１変換部の機能が、第15図におけるグラフィックス処理部1501、第１変換部1503の機能と一部異なっている。このような機能構成においても、上述したものと同様の印刷サービスを実現することができる。なお、第19図において、第15図に示す各機能要素と同一の機能を実現する機能要素については、第15図と同一の参照番号が付されている。
グラフィクス処理部1901は、応用プログラム500が作成したGIインターフェースの文書を順次受信し、DIインタフェースのAPIに変換して、標準文書作成用プリンタ論理ドライバ1910に対し順次出力する。
標準文書作成用プリンタ論理ドライバ1910は、文書の内容を、DIインターフェースの文書に変換し、ジョブ転送サービスライブラリ1920に出力する。ジョブ転送サービスライブラリ1920は、ジョブ送信機能を利用して、受信したGIインターフェースの文書を標準文書ファイル（fos）形式に変換し、標準文書ファイルキュー502に格納する。この結果、第19図に示すプリントサーバでは、クライアントからのリモート印刷ジョブも、プリントサーバ内のローカル印刷ジョブも、はじめから標準文書ファイル形式で標準文書ファイルキュー502に格納されることになる。なお、第19図においては、別途、ジョブ転送サービスライブラリ562が図示されているが、これらは、別々に設ける必要はなく、同一の機能要素をジョブ転送サービスライブラリ1920、ジョブ転送サービスライブラリ562の両者に併用してもかまわない。
第１変換部1903は、スプーラ52により標準文書ファイルキュー502から読み出された印刷ジョブを順次受け取り、受け取った標準文書ファイル形式の印刷ジョブをデバイス対応文書ファイル（fcd）形式に変換し、デバイス対応文書キュー11520に格納する。
第20図は、第19図に示すプリントサーバの印刷処理のフローチャートである。第20図において、第１変換部1903で行われるステップ2000の処理が、第16図におけるステップ1603、1604の処理に置き換わっている他は、第16図と同様の処理が行われる。したがって、第20図においては、ステップ2000以外の処理ステップについては、第16図において対応する処理ステップに付されているステップ番号と同一のステップ番号が付されている。
ステップ2000では、まず、第１変換部1901により、標準文書ファイルキュー502から読み出された印刷ジョブの文書形式を、標準文書ファイル形式からデバイス対応文書ファイル形式へ変換する。そして、デバイス対応文書ファイル形式に変換した印刷ジョブをデバイス対応文書キュー1520に格納する。その後、デバイス対応文書キューに格納された印刷ジョブは、ステップ1605〜1613の処理により処理されて、プリンタによる印刷が実行される。
次に、以上説明した実施の形態において、プリンタ障害時に行われる処理の詳細について説明する。
プリンタ障害は、プリンタ制御フィルタ520（又は、ネットワークプリンタ制御フィルタ533、以下、両者を一括して単にプリンタ制御フィルタという）が、プリンタ物理ドライバ506（又はネットワークプリンタ制御ドライバ507、以下、両者を一括して単にプリンタ制御フィルタという）の機能を用いて検出する。ある印刷ジョブについて、プリンタ障害をプリンタ制御フィルタが検出すると、プリンタ制御フィルタは、当該印刷ジョブについて、削除、又は印刷回復がなされた時点でスプーラ53等に対し、印刷ジョブが正常に行われた旨を連絡する。また、障害報告は、クライアントの印刷ジョブを発行したユーザ、システム管理者の登録があれば、そのシステム管理者のいずれかに対して行う。システム管理者としては、例えば、プリンタのシステム管理者、プリントサーバのシステム管理者、印刷システム全体のシステム管理者のいずれかを障害報告用システム管理者として予め登録しておく。なお、システム管理者の登録は、本発明において必須のものではない。
第21図は、一例として、第１図におけるクライアント11とプリントサーバ15の間での障害報告の様子を表した模式図である。以下の説明では、プリントサーバ15に直接接続されたプリンタの障害を例に説明するが、ネットワークプリンタの場合においても、同様に処理が行われる。
プリンタ制御フィルタ520は、障害検出・報告機能523により、プリンタ障害を検知すると（矢印2100）、スプーラ機能拡張サービス540の障害報告部541に障害の発生を通知する（矢印2110）。これとともに、プリンタ制御フィルタ520は、デバイス対応文書キュー1520の先頭の印刷ジョブの状態をエラー状態に設定する（矢印23−３）。スプーラ機能拡張サービス540の障害報告部541は、ジョブ発行ユーザの利用している計算機であるクライアント11の障害処理サービス440に、プリンタ障害情報を報告する（矢印2130）。この報告には、プリンタ状態、プリンタ名、文書名、ユーザ名を含む。但し、プリンタとの物理インターフェースが片方向であり、プリンタからの戻り情報が不十分な場合は、プリンタ状態としてプリンタ障害が発生したというマクロな情報のみを報告し、詳細な障害情報（用紙なし、不足用紙サイズ、紙ジャム発生、紙ジャム発生ページ数、プリンタカバーオープン等のプリンタエンジンやプリンタコントローラに関する障害情報）は報告できない。片方向インターフェースの場合、プリンタ状態以外には、文書名とユーザ名を報告する。障害報告用システム管理者への報告方法としては、次の（ａ）、（ｂ）いずれかのモードを選択可能としている。
（ａ）登録されているすべての障害報告用システム管理者に報告する。
（ｂ）システム管理者を、（ｉ）プリンタのシステム管理者のグループ、（ii）プリントサーバのシステム管理者のグループ、（iii）印刷システム全体についてのシステム管理者のグループに分け、障害報告を（ｉ）、（ii）、（iii）の優先順位で行う。つまり、プリンタのシステム管理者が存在すればその管理者に報告し、プリントサーバのシステム管理者、及び印刷システム全体についてのシステム管理者には報告しない。プリンタのシステム管理が存在せず、プリントサーバのシステム管理者が存在すれば、その管理者に報告し、印刷システム全体についてのシステム管理者には報告しない。プリンタのシステム管理者、及びプリントサーバのシステム管理者が存在せず、印刷システム全体についてのシステム管理者が存在すれば、その管理者に報告する。上述したシステム管理者がいずれも存在しなければ、システム管理者への報告は行わない。
なお、印刷ジョブ発行ユーザへの報告は、システム管理者への報告とは独立としたものとなっている。また、印刷ジョブ発行ユーザへ報告したが、ユーザから印刷回復のための指示が一定時間待ってもない時に限り、システム管理者へ報告するようにしてもよい。
第22図は、同一プリンタを用いた印刷回復の手順を示す模式図である。同一プリンタを用いた印刷回復では、初めに、クライアント11の障害処理サービス440内にある印刷回復機能442から、同一プリンタを用いた印刷回復の指示を、スプーラ機能拡張サービス540の印刷回復サービス部542に要求する（矢印2200）。回復指示のための引数は、“障害発生プリンタ名（又は、障害プリンタ名とも呼ぶ）”、“ジョブID"、“再印刷プリンタ名”、“再印刷開始ページ”、“再印刷終了ページ”を含む。引数の“再印刷プリンタ名”に“障害発生プリンタ名”と同じ名前が指定された場合に、ここで説明する同一プリンタによる回復処理手順が適用される。別のプリンタ名が指定された場合は、後述する代替プリンタによる回復処理手順が適用される。
印刷回復サービス440は、“ジョブID"を検索キーとして、スプーラ55を介し、デバイス対応文書キュー1520内の印刷ジョブを検索する。具体的には、指定されたジョブIDと同一のジョブIDをコントロールファイルのジョブID601（第６図）に持つものを求める。そして、そのコントロールファイルの印刷ジョブプール用ジョブID602を、この印刷ジョブの印刷ジョブプール用ジョブIDとして得る（矢印2205、2210、2215、2220）。次に、その印刷ジョブプール用ジョブIDを持つ印刷ジョブプール54中の印刷ジョブ、具体的には、コントロールファイルの内容とデータファイルの名称を得る（矢印2225、2230）。印刷ジョブプール54へのアクセスは、印刷ジョブプール管理ライブラリ509を介して行われる。
ここで得たデータファイルについて、印刷回復サービス542は、先に説明したページ切り出し処理を行う。具体的には、印刷ジョブプールに保存しておいた標準文書ファイル形式の印刷ジョブを、再印刷開始ページで始まり再印刷終了ページで終わる印刷ジョブに加工する。その後、印刷回復サービス542は、ページ切り出しされた印刷ジョブを、デバイス対応文書ファイル（fcd）形式に変換し、デバイス対応文書キュー1520の先頭に格納する。そして、デバイス対応文書キュー1520から元の印刷ジョブを削除する（矢印2235）。さらに、プリントサーバ15は、新たに格納した印刷回復用の印刷ジョブに対し、新しいジョブIDを割当て、その新しいジョブIDをクライアント11の印刷回復機能442に送信する（矢印2240）。プリントサーバ15は、以後、デバイス対応文書キュー1520に格納された新しい印刷ジョブに対し、正常時と同様に印刷処理を実行し、再印刷開始ページから再印刷終了ページまでの印刷を行う。
なお、プリンタには紙ジャム等の再印刷の必要なエラー発生時にジャム紙取り除き等によりエラー要因を除去したとき、障害発生ページからの再印刷をしないプリンタ（タイプＡのプリンタと呼ぶ）と、エラー要因を除去すると、障害発生ページから自動的に再印刷するプリンタ（タイプＢのプリンタと呼ぶ）とがある。ここで説明した印刷回復処理は、Ａ、Ｂいずれのタイプのプリンタに対しても適用できるが、タイプＡのプリンタに対し特に有用である。なお、タイプＢのプリンタは、各ページの印刷が正常終了するまで展開イメージデータを保持するプリンタが多く、タイプＡのプリンタに比べ印刷スループットが遅くなる。
第23図は、代替プリンタを用いた印刷回復の手順を示す模式図である。第23図は、第１図におけるプリントサーバ15が印刷サービスを行うプリンタで行う予定の印刷ジョブをプリントサーバ16が印刷サービスを行うプリンタにより代替する場合の印刷回復手順を示している。代替プリンタで印刷する際のポイントとなる、印刷ジョブの代替プリンタ用のキューへの移動は、スプーラ機能拡張サービス540の印刷回復サービス部により行われる。
代替プリンタを用いた印刷回復手順では、初めに、クライアント11の障害処理サービス440の印刷回復機能により、印刷回復の指示の要求がスプーラ機能拡張サービス540の印刷回復サービス部に送られる（矢印2300）。回復指示に含まれる引数には、前述の同一プリンタを用いた印刷回復の場合と同様に、“障害発生プリンタ名”、“ジョブID"、“再印刷プリンタ名”、“再印刷開始ページ”、“再印刷終了ページ”がある。引数の再印刷プリンタ名に障害発生プリンタとは別のプリンタの名前が指定された場合、指定された“再印刷プリンタ名”を持つプリンタを代替プリンタとして以下の回復処理が行われる。
印刷回復サービス440−１は、ジョブIDに基づいて、先に説明した、同一プリンタへの印刷回復処理の場合と同様に、印刷回復を行う印刷ジョブのコントロールファイルの内容、及びデータファイルの名称を得る（矢印2305、2310、2315、2320、2325）。次に、ここで得た印刷ジョブを代替プリンタ用の標準文書ファイルキュー502−２に移動する。具体的には、取り出した標準文書ファイル形式の印刷ジョブのコントロールファイルに、再印刷開始ページと再印刷終了ページを設定し、代替プリンタ用の標準文書ファイルキュー502−２へ格納する。ここでの標準文書ファイルキューへの印刷ジョブの格納は、プリントサーバ15のジョブ転送サービスライブラリ562−１が持つジョブ送信機能と、プリントサーバ16のジョブ転送サービス510−２のジョブ受信・登録機能を用いて行われる（矢印2330、2335、2340）。なお、代替プリンタとして、障害が発生したプリンタと同一のプリントサーバが管理するプリンタを用いる場合には、そのプリントサーバ内のジョブ送信機能とジョブ受信・登録機能との間で、印刷ジョブの転送が行われる。この後、デバイス対応文書キュー1520−１から、障害の発生していた元の印刷ジョブが削除される。
プリントサーバは、代替プリンタ用の標準文書ファイルキューへ格納した印刷回復用の印刷ジョブに対し新しいジョブIDを割当て、その新しいジョブIDをクライアント11の障害処理サービス440の印刷回復部に送信する（矢印2345）。また、印刷回復サービス542は、印刷ジョブの移動を、イベントログファイル56に登録する。再印刷を行うプリントサーバは、印刷ジョブに関するデバイス情報（第７図）のうち、移動元で設定された再印刷開始ページと再印刷終了ページ以外の情報について、その設定を行う。デバイス情報のうち、プリンタデバイス名には代替プリンタの名前を設定する。その他の印刷仕様に関する情報（以下、印刷仕様情報と呼ぶ）は、自動設定モードと対話型設定モードのいずれかで設定される。
自動設定モードでは、移動先のプリンタが移動元プリンタの印刷仕様情報をサポートしている場合は、その値をそのまま設定する。移動先のプリンタが移動元プリンタの印刷仕様情報をサポートしていない場合は、移動先のプリンタの印刷仕様情報のデフォルト値に設定する。なお、この場合、印刷結果は保証されない。一方、対話型設定モードでは、印刷ジョブの移動時に、移動先のプリンタに対応する一般プリンタ論理ドライバを用いて、ユーザが望む印刷仕様情報を選ばせ、それをデバイス情報に設定する。ページごとに用紙サイズが異なるような文書は、自動変更モードの方がユーザの設定の手間が少ないため望ましい。なお、印刷仕様情報は、第１変換部1503（1903）が、標準文書ファイル形式（fos）からデバイス対応文書形式（fcd）に文書を変更する際に利用される。
代替プリンタ用の標準文書ファイルキューへ移動した印刷ジョブは、スプーラ52により順次取り出され、第１変換部以降の機能により正常印刷の場合と同様に処理され、代替プリンタにより、再印刷開始ページから再印刷終了ページまでの印刷が行われる。なお、ページ切り出しによる、標準文書ファイル形式の印刷ジョブの再印刷開始ページで始まり再印刷終了ページで終わる印刷ジョブへの加工は、第１変換部1503（1903）が、デバイス情報に設定された再印刷開始ページと再印刷終了ページに基づいて実行する。ページ切り出しの実際の処理の内容は、同一プリンタによる再印刷の場合と同様である。
なお、ここでは、障害が発生したプリンタを管理するプリントマネージャと代替プリンタを管理するプリントマネージャが異なる場合を主体に説明したが、障害が発生したプリンタと、代替プリンタが同一のプリントマネージャによって管理される場合も、同様にして回復処理を実現することができる。また、以上説明したプリンタ障害処理方式は、同様の考え方で第１の実施形態においても適用することができる。
以上説明した第２の実施形態においても、第１の実施形態と同様、障害発生プリンタと同一プリンタを用いた障害発生ページ以後からの印刷回復、及び障害発生プリンタとは別の代替プリンタを用いた印刷回復を、オープン環境下の印刷で実現できる。様々なPDL種別によらず統一した標準文書ファイルをベースとするプリンタ障害処理をサポートしたため、従来、各PDL対応に用意していたページ切り出し処理を、標準文書ファイル形式に対してのみ用意すればすむ。これにより、ページ切り出し処理の開発工数を減じることができる。また、従来、代替プリンタは、障害発生プリンタと同じ機種か、少なくとも同じPDLをサポートしていることが必要だったため、代替プリンタとして使えるものは、限定されていた。しかし、上述した実施形態では、もともと印刷を行っていたプリンタとは別の機種で、しかも別のPDLしかサポートしていないプリンタでも、代替プリンタとして利用できる。これにより、代替プリンタを用いた障害回復の適用範囲を広げることが可能となる。
なお、これまで説明した第１、及び第２の実施形態では、プリンタ障害の発生した印刷ジョブを、別の代替プリンタ用の印刷キューに移動し、代替プリンタでの印刷について説明したが、障害発生前の印刷ジョブを、それが格納されていた印刷キュー（標準文書ファイルキュー、あるいはデバイス対応文書キュー）から、別のプリンタ用の印刷キューに移動して印刷することも可能である。
次に、上述した第１、第２の実施形態において、１つの印刷ジョブを複数個の印刷ジョブに分割し、分割した各々の印刷ジョブを複数の別々のプリンタで並行して印刷する分割・並行印刷機能、及び、ある印刷ジョブを実行中に、他の印刷ジョブによる印刷を割り込んで行う割込印刷について、第３の実施形態として説明する。これらの機能、処理は、第４図、第14図に示すクライアントの分割・並行印刷機能426、割込印刷機能428、第５図、第15図、及び第19図に示すプリントサーバが持つ分割・並行印刷実行部544、及び割込印刷実行部542により実現される。以下の説明では、第４図、第５図に示すクライアント、印刷サーバを用いた場合について説明するが、第14図に示すクライアント、あるいは、第15図、第19図に示すプリントサーバを用いた第２の実施形態においても同様にして適用することができる。
分割・並行印刷を行う場合、まず、クライアントのユーザが分割・並行印刷機能426を用いて、分割・並行印刷のための事前準備と、分割・並行印刷の指示を行う。分割・並行印刷のための事前準備では、並行印刷に利用するプリンタの集合をプリンタ群として定義する。例えば、プリンタ群ＡをプリンタA1、プリンタA2、・・・、プリンタAmの集合として定義し、プリンタ群ＢをプリンタB1、プリンタB2、・・・、プリンタBnの集合として定義する。分割・並行印刷の指示を行うにあたっては、応用プログラム400が、あるプリンタ群（例えばプリンタ群Ａ）を選び、選択したプリンタ群に対し、あたかも一つのプリンタに対するのと同様に印刷を指示する。なお、プリンタ群の定義を事前準備としてではなく、印刷指示の段階で定義するようにしてもよい。
プリントサーバでは、クライアントから標準文書ファイルキュー502に転送された印刷ジョブを第１変換部503へ読み出す。第１変換部503は、初めに、読み出された印刷ジョブが通常の単一プリンタに対する印刷ジョブかプリンタ群に対する印刷ジョブであるか判定する。通常の単一プリンタに対する印刷ジョブの場合、第１、及び第２の実施形態として説明した手順にしたがい印刷処理を実行する。読み出された印刷ジョブが、プリンタ群に対する印刷ジョブの場合、第１変換部503は印刷ジョブを分割・並行印刷実行部542に出力する。
分割・並行印刷実行部542は、入力された印刷ジョブを、出力プリンタとして指定されたプリンタ群Ａを構成する各プリンタA1、プリンタA2、・・・、プリンタAmに対応する複数の印刷ジョブに分割する。以降、分割した各ジョブを、部分ジョブ１、部分ジョブ２、・・・、部分ジョブｍと呼ぶ。分割された部分ジョブは、それぞれ通常の印刷ジョブと同じ形式を持つ。分割・並行印刷実行部542は、部分ジョブ１、部分ジョブ２、・・・、部分ジョブｍの各々を、プリンタA1、プリンタA2、・・・、プリンタAm用の標準文書ファイルキューに格納する。より具体的には、ジョブ転送サービスライブラリ562の送信機能を利用してジョブ転送サービス510に対し、各プリンタ用の標準文書ファイルキューへの部分ジョブの格納を要求する。ジョブ転送サービスでは、この要求に応じてジョブ受信・登録機能511により各部分ジョブをそれぞれの標準文書ファイルキューに格納する。なお、ある部分ジョブにより印刷を行うプリンタが、他のプリントサーバにより管理されるものである場合には、その部分ジョブは、該当するプリントサーバの標準文書ファイルキューに転送される。これ以後、各部分ジョブごとに通常の印刷ジョブの場合と同様に処理が進められ、プリンタ群による印刷が行われる。
以上のようにして、分割・並行印刷を行うことにより、高価格の高性能プリンタを用意しないでも、低速で安価なプリンタを複数用意するだけで、印刷スループットを向上させることができる。また、部分ジョブの文書形式として標準文書ファイル形式を採用することで、各PDL対応に分割・並行印刷の機能を開発する必要がなくなり、分割・並行印刷実現のための開発コストを低減することができる。さらに、標準文書ファイル形式を採用することにより、分割・並行印刷に用いるプリンタ群を、複数の機種が異なるプリンタで構成することが容易になり、ユーザが利用している複数のプリンタを任意に組み合わせてプリンタ群を構成することができる。
割込み印刷は、次のように進められる。ユーザが利用しようとするプリンタが他の印刷ジョブを処理中である場合、ユーザは、割込印刷機能427を利用してそのプリンタによる割込印刷を指示する。プリンタが使用中であることは、例えば、クライアントを介してプリントサーバに印刷状況の問い合わせを行うことにより知ることができる。なお、ここでは、割込印刷を利用できるユーザは、すでに処理が行われている（割込印刷により処理が中断される）印刷ジョブを発行したユーザ、及び、システム管理者に制限されるものとする。また、以下の説明では、割込印刷により処理が中断される印刷ジョブを印刷ジョブＡ、割込印刷により処理される印刷ジョブを印刷ジョブＢとする。
割込印刷機能427は、スプーラ拡張サービスプロトコル404を用いてプリントサーバに割込印刷を要求する。プリントサーバの割込印刷実行部542は、この要求をスープラ拡張機能サービスプロトコル547を介して受け付け、実行中の印刷ジョブＡの処理を中断する。このとき、プリンタが印刷ジョブＡを処理中であれば、プリンタ物理ドライバ506が持つキャンセル機能を利用してプリンタＡの印刷処理を打ち切る。次に、割込印刷実行部542は、プリンタ物理ドライバ506からプリンタによる印刷ジョブＡの印刷終了ページを得る。
印刷ジョブＡの処理を中断した後、印刷ジョブＢの処理を行う。印刷ジョブＢの印刷は、これまで説明してきた印刷処理の手順にしたがって実施される。
割込印刷実行部542は、プリンタによる印刷ジョブＢの印刷完了を、プリンタ物理ドライバ506の印刷完了監視機能を用いて検出する。本印刷システムでは、プリントサーバに、マルチタスク制御オペレーティングシステムを搭載し、この確認は割込み印刷実行部544の印刷完了待ち状態からの解除として検出している。印刷ジョブＢの印刷完了を検出すると、割込印刷実行部542は、処理を中断していた印刷ジョブＡに対しページ切り出し処理を行うことで、先に得ている印刷終了ページの次のページから始まる文書データを作成し、プリンタへの出力を再開する。
なお、プリンタが複数個の排紙部を有する場合、印刷ジョブＡと印刷ジョブＢの排紙部（ビン、トレイ、デッキとも呼ぶ）を別にすることにより、印刷ジョブＡと印刷ジョブＢの出力用紙が混在しないようにできる。また、プリンタＡの排紙部の数に余裕がある場合、割込み印刷用に排紙部を一つから数個割当てるようにもできる。
以上のようにして、割込み印刷を行うことにより、例えば、先行している印刷ジョブで大量の印刷を行っている時に、少量の印刷ジョブを割込んで実施することができ、ユーザの使い勝手を大幅に向上することが可能となる。また、割込印刷機能のない、従来システムのように、後発の印刷ジョブのために余分なプリンタを用意する必要がないので、システムコストを低減することができる。
次に、ネットワーク内のすべてのプリンタやプリントサーバの仕様と状態を一元管理する機能（以下、単に構成管理機能とも呼ぶ）を設け、プリントサーバによる印刷サービス機能を高度化するための方法について、第４の実施形態として説明する。ここで説明する機能は、第１図に示される分散印刷管理サーバ14、第４図、第14図に示すクライアントの持つ構成管理428、443、及び構成管理プロトコル406、並びに第５図、第15図、第19図に示すプリントサーバの持つ構成管理エージェント550、及び構成管理プロトコル552を用いて実現される。なお、ここでは、分散印刷管理サーバ14をクライアント11〜13、プリントサーバ15、16とは別の計算機に実装しているが、分散印刷管理サーバをクライアント又はプリントサーバのいずれかに設けるようにしてもよい。ただし、分散印刷管理サーバも印刷サービスを提供するサーバの一種であることから、プリントサーバへの実装がより望ましい。
これらの構成要素により、これまで説明してきた実施形態の印刷システムにおいて、（ａ）プリンタ構成の表示機能、（ｂ）ユーザの提示した印刷仕様に適合するプリンタの検索機能、（ｃ）障害の発生した印刷ジョブの印刷を代わりに行うことのできる代替プリンタの、障害発生ジョブの印刷仕様に基づく検索機能、及び（ｄ）各プリンタの仕様と状態の表示機能が実現される。これら（ａ）〜（ｄ）の機能の具体的な実現方法については、本願発明者等による特開平７−230372号公報、あるいは、特開平７−306764号公報に開示されている。なお、本実施形態では、プリンタの登録、削除時に分散印刷管理サーバとプリントサーバを立ち下げることなく自動的にプリンタ構成情報を変更して処理を続行できるようにすることで、プリンタの登録、削除時に、印刷システムを停止しないですむようにしている。また、各プリントサーバが分散印刷管理サーバの立上がり状況を検出し、立上がっていない場合、構成管理機能なしのままで印刷サービスを実行しする。そして、分散印刷管理サーバの立上がりを検出すると、構成管理機能を含めたすべての印刷サービスをサポートするようにすることで、分散印刷管理サーバ停止時においてもシステムが移動できるようにしている。
以下、上述した各機能により提供されるユーザとの間のインタフェースに関して説明する。
第24図は、必要とする仕様に適合したプリンタ、又は代替プリンタの検索のために構成管理機能により提供されるユーザインターフェースとしてのダイアログボックスの一例である。クライアントは、ユーザからの要求等、必要に応じて、プリントマネージャ420の構成管理機能428を用いて、図示するような［仕様適合プリンタの検索］ダイアログボックスを表示する。ユーザは［仕様適合プリンタの検索］ダイアログボックスを用いて、プリンタ名又はプリンタ仕様をキーにして、そのキーに適合する仕様のプリンタの検索を行うことができる。プリンタ名で検索する場合には、ダイアログボックス中のプリンタ名で検索2400を選択して、プリンタ名を指定、あるいは、プリンタ一覧からプリンタを選択する。構成管理機能により、指定又は選択されたプリンタの仕様に適合したプリンタが検索され、その一覧が第25図のように表示される。ユーザは、表示された仕様適合プリンタの一覧を見れば、プリンタごとに使用可能（接続状態）か使用不能（未接続状態）かを判別できる。ここで、指定プリンタに対応する検索条件は、各プリンタをプリンタ登録／削除部421により登録する際に設定しておいた検索条件とする。
プリンタ仕様で検索する場合には、ダイアログボックスのプリンタ仕様で検索2410を選択し、以下の該当する条件に関する情報を設定する。
・［用紙サイズ］チェックボックス
用紙サイズを検索キーワードとするか否かを指定する。検索キーワードとした場合、検索したい用紙サイズを選択する。用紙サイズを検索キーワードとすると、指定した用紙サイズをサポートするプリンタを検索する。
・［ドット密度］チェックボックス
ドット密度を検索キーワードとするか否かを指定する。検索キーワードとした場合、検索したいドット密度を選択する。さらに、印刷ジョブのドット密度との比較種別として印刷ジョブのドット密度より小さいドット密度のプリンタ（［小さい］ラジオボックス）印刷ジョブのドット密度と等しいドット密度のプリンタ（［等しい］ラジオボックス）印刷ジョブのドット密度より大きいドット密度のプリンタ（［大きい］ラジオボックス）のいずれを検索するか指定する。
・［両面印刷］チェックボックス
両面印刷を検索キーワードとするか否かを指定する。検索キーワードとした場合、両面印刷のできるプリンタを検索する。
・［拡大・縮小印刷］チェックボックス
拡大・縮小印刷を検索キーワードとするか否かを指定する。検索キーワードとした場合、拡大・縮小印刷のできるプリンタを検索する。
・［カラー］チェックボックス
カラー印刷を検索キーワードとするか否かを指定する。検索キーワードとした場合、カラー印刷のできるプリンタを検索する。
・［コピー］チェックボックス
コピー機能を検索キーワードとするか否かを指定する。検索キーワードとした場合、各ページを複数部数印刷することのできるコピー機能を持つプリンタを検索する。
・［オフセットスタック］チェックボックス
オフセットスタック印刷を検索キーワードとするか否かを指定する。ここで、オフセットスタックとは複数個からなる排紙部のことである。
・［ページ丁合い］チェックボックス
ページ丁合い印刷を検索キーワードとするか否かを指定する。
これらのプリンタ仕様のうち、設定されたプリンタ仕様だけが検索キーワードとなり、設定された検索キーワードをすべて満たすプリンタが仕様適合プリンタとして検索される。実際に検索を行うには、ユーザは、これらの情報を設定した後、［検索］ボタンを指定する。クライアントは、構成管理機能を利用して、設定された情報に適合する仕様を持つプリンタを検索する。検索結果は、第25図に示すように、プリンタ名と設置場所の一覧として表示される。設置場所としてはプリントマネージャ420のプリンタ登録／削除機能421による、印刷システムへのプリンタの登録時に、設置場所として予め登録され内容を表示する。
以下では、プリンタ障害処理時のユーザインタフェースに関して説明する。
第26図は、プリンタ障害が発生したとき、クライアントのユーザ又はシステム管理者に通知されるプリンタ障害情報の表示例である。障害通知では、障害情報2600として、発生した障害の内容が表示される。但し、障害通知先として定義されたユーザがクライアント計算機にログオンしていない場合、障害情報の通知は行われない。
障害情報の通知を受けたユーザ又はシステム管理者は、第27図にその表示例が示される［回復指示］ダイアログボックスより印刷回復の指示を行う。なお、［回復指示］ダイアログボックスを表示せずに、あらかじめ設定しておいた印刷回復方法に従って自動回復を行うようにしてもよい。また、印刷回復では、同一プリンタ（障害から回復後のプリンタ）又は代替プリンタを用いて、任意のページからのテスト印刷と再印刷を指示することができる。
［回復指示］ダイアログボックスには、障害情報2700、及び障害回復後の処置情報2710が表示される。障害情報2700は、障害通知において、表示される障害情報2600と同様に、発生した障害の内容が表示される。なお、障害情報の内容は、プリンタとプリントサーバとの間のインターフェースが、片方向インターフェースであるか、双方向インターフェースであるかにより異なる。インターフェースが片方向インターフェースである場合は、第28図に示すように、全ての障害について、同一の情報が用いられる。一方、双方向インターフェースを用いている場合は、第29図に示すように、プリンタ障害の内容（カラム2900）に対応した障害情報（カラム2910）が用いられる。
また、障害回復後の処置情報2710として提供される情報は、第30図に示すように、プリンタの設定（カラム3000）が回復機能を備えたプリンタとして設定されているか、回復機能を持たないプリンタとして設定されているかに応じて、カラム3010に示されるようにその内容が異なる。［回復指示］ダイアログにおいて、［続行］を選ぶと、印刷サービスによる印刷回復を行わず、プリンタに内蔵されている回復機能を用いて障害発生箇所より印刷を続行する。一方、ユーザが［印刷回復」を選ぶと、第31図に示す［印刷回復］ダイアログボックスが表示される。
［印刷回復］ダイアログボックスには、障害の発生した印刷ジョブの名称（［印刷ジョブ名］）、障害の発生したプリンタの名称（［障害プリンタ］）が表示される。ユーザは、［再印刷プリンタ］3100により、再印刷を行うプリンタ名を指定する。［再印刷プリンタ］3100には、デフォルトとして、障害が発生したプリンタの名称が設定される。再印刷プリンタの設定の方法としてユーザは、再印刷プリンタボタンを選択して代替候補（仕様適合）プリンタの一覧を表示し、その中から再印刷プリンタを選択する方法、［検索］ボタン、又は［ネットワーク］ボタンを選択して、印刷システムの構成管理機能を利用して代替プリンタの候補を検索し、その中から再印刷プリンタを選択する方法のいずれかを採ることができる。いずれの方法においても、代替プリンタの候補は、第32図に示される形で表示される。［検索］ボタンを選択した場合、先に説明した［仕様適合プリンタの検索］ダイアログボックス（第24図）が表示される。ユーザは、［仕様適合プリンタの検索］ダイアログボックスを使用して、所望の仕様を有するプリンタを検索して代替プリンタの候補を表示させ、再印刷プリンタを選択する。また、［ネットワーク］ボタンを選択した場合には、未接続状態の代替候補プリンタ、あるいは、仕様適合プリンタ以外のプリンタにより再印刷を行うこともできる。但し、仕様適合プリンタ以外のプリンタでテスト印刷や再印刷を行った場合、正しく印刷されないことがある。プリンタ仕様情報3110には、再印刷プリンタとして選択されたプリンタの仕様に関する情報が表示される。
再印刷ページ3120には再印刷又はテスト印刷を開始するページ（再印刷開始ページ）が、絶対ページ又は相対ページで指定される。［絶対ページ］にはデフォルトとして、障害が発生したページが絶対ページで表示される。ユーザは、ここに、再印刷を行いたい最初のページを文書内の絶対ページで指定することで、指定したページからの再印刷を行うことができる。また、［相対ページ］には、デフォルトとして障害が発生したページを基点とする０が表示される。印刷開始ページの指定を相対ページ行うことで、障害が発生したページを基準とし、その前又は後何ページ目から印刷を開始するかを指定できる。
テスト印刷3130にある［ページ数］ボタンには、テスト印刷時に印刷するページ数が指定される。印刷回復機能442は、ここで指定されたページ数を再印刷開始ページに加算し、それから１を引いた値を再印刷終了ページとしてデバイス情報に設定する。［テスト印刷］ボタンを指定すると、再印刷ページに対応するページから指定されたページ数だけテスト印刷が行われる。
［再印刷］ボタンが指定されると、再印刷ページ3120で指定されたページからその文書の最終ページまでの再印刷が実行される。再印刷が正常終了した時点で、［印刷回復］ダイアログは終了する。
［印刷ジョブキャンセル］ボタンは、印刷回復を打切る時に選択する。ユーザがこのボタンを選択することにより、再印刷ジョブはキャンセルされる。キャンセル処理が完了した時点で、［印刷回復］ダイアログは終了する。
［続行］ボタンが指定されると、障害処理サービス440による印刷回復処理は行われず、プリンタに内蔵されている回復機能を用いた障害発生箇所からの印刷が続行される。
［印刷ジョブ表示］ボタンが指定されると、第33図に示される［印刷ジョブ表示］ウインドウにより、再印刷ページ（再印刷開始ページ）に対応するページが表示される。［印刷ジョブ表示］ウインドウでは、ユーザは、以下の操作ができる。ユーザは、再印刷ページ3300に、表示したいページを絶対ページ又は相対ページで指定する。［絶対ページ］にはデフォルトとして、障害が発生してページが絶対ページで表示される。また、［相対ページ］には、デフォルトとして０が表示される。ここで、［相対ページ］の起点となるのは、障害が発生したページである。［印刷ジョブ表示］ウインドウの領域3310には、再印刷ページに対応するページが表示される。ユーザが［OK］ボタンを選択すると、再印刷ページ3300で指定されたページを記憶して、「回復指示」ダイアログに戻る。このとき、再印刷ページ3300で指定されたページが、再印刷ページ3120に反映される。［キャンセル］ボタンは、ユーザが［印刷ジョブ表示］ウインドウで行った再印刷ページの指定を破棄して、「回復指示」ダイアログに戻るときに選択される。したがって、この場合、再印刷ページ3300で指定されたページは、再印刷ページ3120には反映されない。
ユーザは、［印刷ジョブ表示］ウインドウで［高機能表示］ボタンを選択することにより、印刷システムが備えるジョブ表示・編集機能を起動、ジョブ表示・編集機能により提供される機能のうち、ジョブ表示機能を利用することができる。ジョブ表示・編集機能で表示されるページは、［高機能表示］ボタンが選択された時に表示されていたページとなる。
［回復指示］ダイアログボックスに対するユーザからの応答が、あらかじめ登録された一定時間（監視時間と呼ぶ）を越えた場合、障害処理サービス443は、自動回復として定義された処置を行う。自動回復処理では、プリンタが回復機能を持つ場合には、その回復機能を用いて障害発生箇所より印刷を続行する。あるいは、プリンタを一時停止した後、印刷ジョブをキャンセルして回復処理を終える。
このように、ネットワーク内のすべてのプリンタやプリントサーバの仕様と状態を一元管理する構成管理機能を提供することにより、ユーザやシステム管理者による印刷システムの構成管理、障害処理を容易にすることができる。
次に、印刷システムが持つ、標準ファイル形式の印刷ジョブに対するジョブ表示・編集機能、ジョブ仕分・配布機能、及び自動仕分機能について第５の実施形態として説明する。これらの機能、処理は、第４図、第14図に示すクライアントのジョブ表示・編集機能407、ジョブ仕分・配布機能408、及び、第５図、第15図、及び第19図に示すプリントサーバが持つ自動仕分実行部560により実現される。
ジョブ表示・編集部407は、ジョブの表示・編集を以下の手順で行う。まず、ユーザからの指示に基づいて、標準文書ファイルキュー502に格納されている印刷ジョブ（標準文書ファイル形式の文書）を、ジョブ転送サービスライブラリ430のジョブ要求・受信機能432を用いて取り出す。この時、ジョブ要求・受信機能432は、印刷ジョブをプリントサーバ名、プリンタ名、ジョブIDの組で指定する。なお、印刷ジョブを指定できる情報であれば、これらの情報の任意の他の組合せ、あるいは、これら以外の情報を用いるようにしてもよい。ジョブ表示・編集部407は、取り出したジョブのうち、ユーザの指定したページを、クライアントの画面に表示する。この後、ジョブ表示・編集部407は、ユーザが、取り出した印刷ジョブに対して行うメモ書き、チェックマーク付け等の編集作業の処理を行い、その結果を標準文書ファイル形式の印刷ジョブとして更新する。印刷ジョブの更新は、ページデータ内の編集レコードを用いてい行われる。更新された印刷ジョブは、編集後のジョブ送信機能433により、プリントサーバの標準文書ファイルキュー502に書き込まれる。
以上の処理では、ある印刷ジョブを単位として、取り出し、表示、編集、編集後の標準文書ファイルキューへの書き込みを行っているが、一つの印刷ジョブの中のあるページに対し、ページ単位で取り出し、表示、編集、編集後の標準文書ファイルキューへの書き込み（書き込みとしては挿入と置換の二通りがある）も、同様にして実現することができる。なお、印刷ジョブの取り出しやページの取り出しに先んじて、ジョブ検索要求機能434を利用して、ユーザが希望する印刷ジョブやページを検索するようにすることもできる。ジョブ単位での検索は、標準文書ファイルキュー502内のすべての印刷ジョブを対象とし、ページ単位での検索は、標準文書ファイルキュー502内の指定された特定の印刷ジョブを対象として実行すればよい。例えば、ページ単位の検索を行う場合、ジョブ検索実行部514は、指定された文字列と一致する文字列を含むページ、あるいは、指定文字列の値が与えられた条件式を満たすページを指定された印刷ジョブの検索開始ページから検索終了ページまでの間で探索し、該当ページのページ番号をジョブ検索要求機能434に返す。
以上のジョブ表示・編集機能により、ユーザは、印刷ジョブによる実際の印刷を行わずに、その印刷ジョブの内容を表示し、編集することができる。
ジョブ仕分・配布機能408は、次の手順によりジョブの仕分・配布を行う。まず、ユーザからの指示にしたがい、標準文書ファイルキュー502内の印刷ジョブ（標準文書ファイル形式の文書）を、ジョブ転送サービスライブラリ430のジョブ要求・受信機能432を用いて取り出す。この時、ジョブ要求・受信機能432は、印刷ジョブを、ジョブの表示・編集の場合と同様に、プリントサーバ名、プリンタ名、ジョブIDの組で指定する。そして、取り出した印刷ジョブのすべてのベージについて順次画面に表示し、ユーザから各ページについて、その出力先プリンタ名の指定を受け付ける。ジョブ仕分・配布機能408は、出力先プリンタ名の指定された各ページ対応の文書データを、出力プリンタごとに連結し、各出力プリンタ先ごとに部分ジョブとして定義する。この処理を仕分と呼ぶ。本実施形態では、印刷ジョブがプリンタ機種とは独立な標準文書ファイル形式で記述されているため、その内容の解析をプリンタとは独立な処理系で行うことが可能である。また、先に説明したように、印刷ジョブ内のページ区切りをページ終了レコードで明示的に示しているので（第９図参照）、印刷ジョブのページ単位への分割とそれらの部分ジョブへの連結のためのページ区切りの検出を、ページ内容データを解析することなく、ページ終了レコードの探索だけで行うことができる。
ジョブ仕分・配布機能408は、仕分が済むと、各部分ジョブをそれぞれ印刷を行うプリンタ用の標準文書ファイルキュー502に格納する。ここでは、仕分された各部分ジョブが別々の場所にあるプリンタに送信される。そこで、この処理を配布とも呼ぶ。これ以後、第１又は第２の実施形態において説明した手順で、各プリントサーバによる部分ジョブの印刷が行われる。
このように印刷ジョブの仕分・配布を行うことにより、従来、印刷後人手で行っていた仕分と配布を、印刷システムが備えるジョブ仕分・配布機能により自動的に行うことができ、人手の削減と処理時間の短縮を計ることができる。
以上のジョブ仕分・配布では、印刷ジョブの仕分を、ユーザが各ページを表示しながら、ユーザが対話的に仕分を行っている。本明細書では、このようなジョブ仕分を、以下に説明する自動仕分と区別する上で対話型仕分けと呼ぶ。
プリントサーバのジョブ自動仕分実行部560は、以上説明した印刷ジョブの仕分・配布処理を自動的に行う自動仕分を以下の手順で実現している。自動仕分を行うために、あらかじめユーザにより定義された自動仕分定義ファイル561を持つ。自動仕分定義ファイル561は、例えば、プリントサーバ名、プリンタ名、ジョブIDの組で指定される印刷ジョブに対し、その仕分け方法を定義した定義情報を保持する。ここで、仕分方法とは、印刷ジョブを構成する各ページを用紙サイズ、文字列の値等に基づいて分け（これを仕分けと呼ぶ）、分けられた各ページに対して、そのページを印刷するプリンタに対応付けする方法のことである。
自動仕分を行うには、クライアントのユーザが、応用プログラム400から自動仕分モードでの印刷を指示する。クライアントでの具体的な処理は、応用プログラムからの印刷指示において、出力先プリンタの指定に代えて、自動仕分け定義ファイル561の名称が指定される点が通常の印刷処理とは異なっているが、その他の処理は、通常の印刷時と同様に行われる。プリントサーバでは、第１変換部503による標準文書ファイルキュー502からの印刷ジョブの読み出し時に、読み出した印刷ジョブが自動仕分定義ファイル561を指定した印刷ジョブである場合、その印刷ジョブは、自動仕分実行部560に出力される。
自動仕分実行部560は、入力された標準文書ファイル形式の印刷ジョブを、ページ終了レコードに基づき各ページに分ける。さらに、自動仕分実行部560は、各ページごとに分けられたページ内容データを、自動仕分け定義ファイル561の定義内容に従って処理し、各ページごとにそのページの内容を印刷するプリンタに対応付ける。プリンタとの対応付けがなされた各ページ対応の文書データは、出力先のプリンタごとに連結され、部分ジョブとして定義される。このようにして定義された部分ジョブは、自動仕分実行部560によりそれぞれの部分ジョブについて印刷を行うべきプリンタ用の標準文書ファイルキュー502に格納される。これ以後、各部分ジョブごとに、通常の印刷処理と同様に印刷が行われる。
このような、自動仕分実行部による自動仕分を、先に説明した対話型仕分けと以下に述べるように併用することができる。まず、対話型仕分けを行い、その仕分け結果に基づき上記自動仕分け定義ファイル560を作成する。そして、以後、対話型仕分けに基づいて作成した自動仕分け定義ファイル561に基づいて自動仕分けを実行し、処理を自動化する。
以上説明したジョブ表示・編集機能、ジョブ仕分・配布機能、及び自動仕分機能についても、その対象とする印刷ジョブの形式をプリンタ機種に依存しない標準文書ファイル形式としているので、従来、各PDL対応に必要であったこれらの機能の開発が、標準文書ファイル形式のみの開発、サポートで済むようになり、機能実現のための開発コストを低減することができる。
産業上の利用可能性
以上説明したように、本発明によれば、印刷処理時、あるいは、障害発生時における再印刷処理を、システム内にある任意のプリンタを用いて行うことが容易になる。特に、プリンタの機種ごとに異なるようなPDLによらず統一した標準文書ファイルをベースとする印刷処理、プリンタ障害処理を行うので、ページ切り出し処理など、印刷処理に関する各種の処理を実現するための機能を、標準文書ファイル形式に対してのみ用意すればよくなる。これにより、PDLの種別ごとに必要であった処理機能の開発、サポートを一本化することができ、処理の開発工数を低減することができる。
【図１】
0003573466.tif 000002
【図２】
0003573466.tif 000003
【図２８】
0003573466.tif 000004
【図３】
0003573466.tif 000005
【図６】
0003573466.tif 000006
【図４】
0003573466.tif 000007
【図２１】
0003573466.tif 000008
【図５】
0003573466.tif 000009
【図７】
0003573466.tif 000010
【図８】
0003573466.tif 000011
【図９】
0003573466.tif 000012
【図１０】
0003573466.tif 000013
【図２２】
0003573466.tif 000014
【図１１】
0003573466.tif 000015
【図２５】
0003573466.tif 000016
【図１２】
0003573466.tif 000017
【図１３】
0003573466.tif 000018
【図１４】
0003573466.tif 000019
【図３０】
0003573466.tif 000020
【図１５】
0003573466.tif 000021
【図１６】
0003573466.tif 000022
【図１７】
0003573466.tif 000023
【図１８】
0003573466.tif 000024
【図１９】
0003573466.tif 000025
【図２０】
0003573466.tif 000026
【図３２】
0003573466.tif 000027
【図２３】
0003573466.tif 000028
【図２６】
0003573466.tif 000029
【図２４】
0003573466.tif 000030
【図２７】
0003573466.tif 000031
【図２９】
0003573466.tif 000032
【図３１】
0003573466.tif 000033
【図３３】
0003573466.tif 000034
【図３４】
0003573466.tif 000035