(57)【要約】【課題】第１スプールファイルに連動した第２スプールファイルのスプール及びデバイスへの送信を効率よく行うこと。【解決手段】オペレーションシステムによってスプールファイルとしてスプールされ、一旦デスプールされた印刷データを、更にジョブファイルとして再スプールし（Ｓ１４０９）、かつ、その再スプール中に、ジョブファイルとして再スプールされた印刷データの一部を読出し、デバイスに送信する（Ｓ１４０６）。【選択図】  図１４
2004246513.tif 000002
【特許請求の範囲】
【請求項１】
画像形成装置に対して印刷データを送信して画像を記録させる情報処理装置において実行される印刷制御プログラムであって、
前記情報処理装置に、
オペレーションシステムによって第１スプールファイルとしてスプールされ、一旦デスプールされた印刷データを、更に第２スプールファイルとして再スプールするスプールステップと、
前記スプールステップにおける再スプール中に、前記第２スプールファイルとして再スプールされた印刷データの一部を読出し、前記画像形成装置に送信する送信ステップと、
を実行させることを特徴とする印刷制御プログラム。
【請求項２】
前記情報処理装置に、更に、
前記印刷データに対応して発行される第１ジョブ識別子とは異なる第２ジョブ識別子を、前記スプールステップにおいて再スプールされる印刷データに関連づけるステップと、
前記第２ジョブ識別子に基づくジョブ管理を行う管理ステップと、
を実行させることを特徴とする請求項１に記載の印刷制御プログラム。
【請求項３】
前記第１ジョブ識別子は前記オペレーションシステムを介して発行される識別子であることを特徴とする請求項２に記載の印刷制御プログラム。
【請求項４】
前記送信ステップは、
前記第２スプールファイル中における印刷データを、前記画像形成装置に対して分割して送信する分割送信ステップを含むことを特徴とする請求項１乃至３のいずれかに記載の印刷制御プログラム。
【請求項５】
前記送信ステップは、前記スプールステップにおいて前記第２スプールファイルのスプールの終了を検知する書込終了検知ステップを含み、
前記分割送信ステップは、前記書込終了検知ステップによってスプールファイルの書込終了が検知されていない場合に、前記第２スプールファイル中における印刷データを、前記画像形成装置に対して分割して送信することを特徴とする請求項４に記載の印刷制御プログラム。
【請求項６】
前記分割送信ステップは、
前記第２スプールファイルにおいて、前記画像形成装置に対して未送信のデータ量を検知するデータ量検知ステップと
前記データ量検知ステップで検知されたデータ量が所定の閾値以下か否かを判定する判定ステップと、
前記判定ステップで前記データ量が前記閾値以下と判定された場合に、前記閾値の整数分の１のデータ量のみを前記画像形成装置に送信するデータ送信ステップと、
を含むことを特徴とする請求項４または５に記載の印刷制御プログラム。
【請求項７】
前記分割送信ステップは、
前記判定ステップで前記データ量が前記閾値より多いと判定するまで、前記画像形成装置におけるインタフェースタイムアウトが発生する時間未満の間隔で、前記データ送信ステップを繰り返し実行することを特徴とする請求項６に記載の印刷制御プログラム。
【請求項８】
前記情報処理装置に、
前記スプールステップにおいて第２スプールファイルとして再スプールされた前記印刷データの前記画像形成装置への送信が滞った場合に、前記スプールステップの再スプールが完了していなくても、前記印刷データの再送信を行う再送信ステップを更に実行させることを特徴とする請求項１乃至７のいずれかに記載の印刷制御プログラム。
【請求項９】
前記再送信ステップは、
前記スプールステップにおいて第２スプールファイルとして再スプールされた印刷データの状態を表示する表示ステップと、
前記表示ステップにおいて、エラーによって前記画像形成装置への送信が中断している印刷データが表示された場合に、該印刷データの再送信指示を受け付けるステップと、
を含むことを特徴とする請求項８に記載の印刷制御プログラム。
【請求項１０】
前記再送信ステップは、
再送信すべき印刷データを前記第２ジョブ識別子によって特定する特定ステップを含むことを特徴とする請求項９に記載の印刷制御プログラム。
【請求項１１】
請求項１から１０の何れかに記載の印刷制御プログラムを記憶することを特徴とするコンピュータ読み取り可能な記憶媒体。
【請求項１２】
画像形成装置に対して印刷データを送信して画像を記録させる情報処理装置であって、
オペレーションシステムによって第１スプールファイルとしてスプールされ、一旦デスプールされた印刷データを、更に第２スプールファイルとして再スプールするスプール手段と、
前記スプール手段による再スプール中に、前記第２スプールファイルとして再スプールされた印刷データの一部を読出し、前記画像形成装置に送信する送信手段と、
を有することを特徴とする情報処理装置。
【請求項１３】
更に、
前記印刷データに対応して発行される第１ジョブ識別子とは異なる第２ジョブ識別子を、前記スプール手段によって再スプールされる印刷データに関連づける手段と、
前記第２ジョブ識別子に基づくジョブ管理を行う管理手段と、
を有することを特徴とする請求項１２に記載の情報処理装置。
【請求項１４】
前記第１ジョブ識別子は前記オペレーションシステムを介して発行される識別子であることを特徴とする請求項１３に記載の情報処理装置。
【請求項１５】
前記送信手段は、
前記第２スプールファイル中における印刷データを、前記画像形成装置に対して分割して送信する分割送信手段を含むことを特徴とする請求項１２乃至１４のいずれかに記載の情報処理装置。
【請求項１６】
前記送信手段は、前記スプール手段による前記第２スプールファイルのスプールの終了を検知する書込終了検知手段を更に含み、
前記分割送信手段は、前記書込終了検知手段によってスプールファイルの書込終了が検知されていない場合に、前記第２スプールファイル中における印刷データを、前記画像形成装置に対して分割して送信することを特徴とする請求項１５に記載の情報処理装置。
【請求項１７】
前記分割送信手段は、
前記第２スプールファイルにおいて、前記画像形成装置に対して未送信のデータ量を検知するデータ量検知手段と
前記データ量検知手段で検知されたデータ量が所定の閾値以下か否かを判定する判定手段と、
前記判定手段で前記データ量が前記閾値以下と判定された場合に、前記閾値の整数分の１のデータ量のみを前記画像形成装置に送信するデータ送信手段と、
を含むことを特徴とする請求項１５または１６に記載の情報処理装置。
【請求項１８】
前記分割送信手段は、
前記判定手段で前記データ量が前記閾値より多いと判定するまで、前記画像形成装置におけるインタフェースタイムアウトが発生する時間未満の間隔で、前記データ送信手段によるデータ送信を繰り返し実行することを特徴とする請求項１７に記載の情報処理装置。
【請求項１９】
前記第２スプールファイルとして再スプールされた前記印刷データの前記画像形成装置への送信が滞った場合に、前記スプール手段による再スプールが完了していなくても、前記印刷データの再送信を行う再送信手段を更に有することを特徴とする請求項１２乃至１８のいずれかに記載の情報処理装置。
【請求項２０】
前記再送信手段は、
前記第２スプールファイルとして再スプールされた印刷データの状態を表示する表示手段と、
前記表示手段において、エラーによって前記画像形成装置への送信が中断している印刷データが表示された場合に、該印刷データの再送信指示を受け付ける手段と、
を含むことを特徴とする請求項１９に記載の情報処理装置。
【請求項２１】
前記再送信手段は、
再送信すべき印刷データを前記第２ジョブ識別子によって特定する特定手段を含むことを特徴とする請求項２０に記載の情報処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像形成装置に対して印刷データを送信する技術に関する。
【０００２】
【従来の技術】
従来から、Ｗｉｎｄｏｗｓ（登録商標）等のオペレーションシステム（ＯＳ）を介してスプールファイルとして書込まれたデータを、スプールの完了を待つことなく、逐次画像形成装置に転送する転送技術が知られている。
【０００３】
また、Ｗｉｎｄｏｗｓ（登録商標）等のＯＳの仕組みにおいて作成される印刷用のスプールファイルとは別に、印刷制御独自スプールファイルを作成し、再印刷が必要となった際に、その独自スプールファイルを利用する技術が知られている。
【０００４】
例えば、特許文献１には、印刷装置に転送した印刷データを、転送終了後も保持し、保持された印刷データを再度印刷装置に転送する再転送の技術が開示されている。
【０００５】
【特許文献１】
特開２００２−１９６９１６号公報
【０００６】
【発明が解決しようとする課題】
しかしながら、従来の技術においては、アプリケーションの印刷処理（ＯＳへのスプール処理）が完了する前に画像形成装置へ転送を開始するため、アプリケーション或いはプリンタドライバにおける印刷データ生成処理が滞ると、ＯＳへのスプール処理が待機状態となり、ウェイトタイムが長時間に及ぶ場合には、インタフェースタイムアウトにより印刷が完遂されない場合があった。
【０００７】
また、なんらかのエラー発生に際してジョブの再転送を行うことを可能とした従来のシステムにおいては、再転送を行うにあたって、印刷データが再度読み込み可能であって、かつ、既にスプールが終了している状態であることが前提であった。つまり、印刷データのスプールが行われている最中に、エラーが発生すると、再転送を行うにあたり、スプール終了を待つ必要があった。したがって、他の画像形成装置などにスプールファイルの再転送を行うまで長時間を要するという問題があった。
【０００８】
本発明は上記の課題に鑑みてなされたものであり、独自のスプールファイルを利用することにより印刷データの再転送を行うような仕組みにおいて、インタフェースタイムアウトエラーの発生を防止すること、及びエラー発生時に再転送をより高速に行うことができる印刷制御の仕組みを提供することを目的とする。
【０００９】
【課題を解決するための手段】
上記目的を達成するため、本発明に係るプログラムは、画像形成装置に対して印刷データを送信して画像を記録させる情報処理装置において実行される印刷制御プログラムであって、
前記情報処理装置に、
オペレーションシステムによって第１スプールファイルとしてスプールされ、一旦デスプールされた印刷データを、更に第２スプールファイルとして再スプールするスプールステップと、
前記スプールステップにおける再スプール中に、前記第２スプールファイルとして再スプールされた印刷データの一部を読出し、前記画像形成装置に送信する送信ステップと、を実行させることを特徴とする。
【００１０】
前記情報処理装置に、更に、
前記印刷データに対応して発行される第１ジョブ識別子とは異なる第２ジョブ識別子を、前記スプールステップにおいて再スプールされる印刷データに関連づけるステップと、
前記第２ジョブ識別子に基づくジョブ管理を行う管理ステップと、を実行させることを特徴とする。
【００１１】
前記第１ジョブ識別子は前記オペレーションシステムを介して発行される識別子であることを特徴とする。
【００１２】
前記送信ステップは、前記第２スプールファイル中における印刷データを、前記画像形成装置に対して分割して送信する分割送信ステップを含むことを特徴とする。
【００１３】
前記送信ステップは、前記スプールステップにおいて前記第２スプールファイルのスプールの終了を検知する書込終了検知ステップを含み、
前記分割送信ステップは、前記書込終了検知ステップによってスプールファイルの書込終了が検知されていない場合に、前記第２スプールファイル中における印刷データを、前記画像形成装置に対して分割して送信することを特徴とする。
【００１４】
前記分割送信ステップは、
前記第２スプールファイルにおいて、前記画像形成装置に対して未送信のデータ量を検知するデータ量検知ステップと
前記データ量検知ステップで検知されたデータ量が所定の閾値以下か否かを判定する判定ステップと、
前記判定ステップで前記データ量が前記閾値以下と判定された場合に、前記閾値の整数分の１のデータ量のみを前記画像形成装置に送信するデータ送信ステップと、を含むことを特徴とする。
【００１５】
前記分割送信ステップは、前記判定ステップで前記データ量が前記閾値より多いと判定するまで、前記画像形成装置におけるインタフェースタイムアウトが発生する時間未満の間隔で、前記データ送信ステップを繰り返し実行することを特徴とする。
【００１６】
前記情報処理装置に、前記スプールステップにおいて第２スプールファイルとして再スプールされた前記印刷データの前記画像形成装置への送信が滞った場合に、前記スプールステップの再スプールが完了していなくても、前記印刷データの再送信を行う再送信ステップを更に実行させることを特徴とする。
【００１７】
前記再送信ステップは、
前記スプールステップにおいて第２スプールファイルとして再スプールされた印刷データの状態を表示する表示ステップと、
前記表示ステップにおいて、エラーによって前記画像形成装置への送信が中断している印刷データが表示された場合に、該印刷データの再送信指示を受け付けるステップと、を含むことを特徴とする。
【００１８】
前記再送信ステップは、
再送信すべき印刷データを前記第２ジョブ識別子によって特定する特定ステップを含むことを特徴とする。
【００１９】
上記目的を達成するため、本発明に係る記憶媒体は、上記印刷制御プログラムを記憶することを特徴とする。
【００２０】
上記目的を達成するため、本発明に係る装置は、画像形成装置に対して印刷データを送信して画像を記録させる情報処理装置であって、
オペレーションシステムによって第１スプールファイルとしてスプールされ、一旦デスプールされた印刷データを、更に第２スプールファイルとして再スプールするスプール手段と、
前記スプール手段による再スプール中に、前記第２スプールファイルとして再スプールされた印刷データの一部を読出し、前記画像形成装置に送信する送信手段と、を有することを特徴とする。
【００２１】
【発明の実施の形態】
以下に、図面を参照して、この発明の好適な実施の形態を例示的に詳しく説明する。ただし、この実施の形態に記載されている構成要素の相対配置、表示画面等は、特に特定的な記載がない限りは、この発明の範囲をそれらのみに限定する趣旨のものではない。
【００２２】
（第１実施形態）
＜システム構成＞
図１は、本発明の実施形態としての印刷制御プログラムを適用可能な情報処理システムの構成を説明するブロック図である。
【００２３】
図１において、１０２〜１０４はクライアントコンピュータ（以下、クライアントと称する）としての情報処理装置であり、イーサネット（登録商標）などのネットワークケーブルによって、ネットワーク１０６に接続される。クライアント１０２〜１０４の各々は、アプリケーションプログラム等の各種のプログラムを実行可能であり、印刷データをプリンタ言語に変換する機能を有するプリンタドライバを搭載している。ここで、各クライアント１０２〜１０４はプリンタドライバを複数登録可能である。なお、図１では例示的に３台のクライアントコンピュータを示しているが、ネットワーク１０６に接続されているクライアントコンピュータは１台でも、または４台以上でもよい。
【００２４】
１０１はプリントサーバ（図中ではサーバと記している）としての情報処理装置であり、ネットワークケーブルによって、ネットワーク１０６に接続される。プリントサーバ１０１は、ネットワークで使用されるファイルを蓄積したり、ネットワーク１０６の使用状態を監視したりする。また、プリントサーバ１０１は、ネットワーク１０６に接続されている複数のプリンタを管理している。
【００２５】
なお、クライアント１０２〜１０４とプリントサーバ１０１は、一般的な情報処理装置（いわゆるパーソナルコンピュータなど）に、それぞれ異なる制御を行う印刷制御プログラム（ネットワークプリンタ制御プログラム）を実行可能に格納することで構成することができる。また、プリントサーバ１０１は、クライアントコンピュータとしての機能を同時に有することもできる。
【００２６】
ここで、印刷制御プログラムは、クライアント１０２〜１０４において印刷ジョブの印刷先の変更を指示したり、印刷順序の変更を指示するための制御を行うプログラムを含む。また、印刷制御プログラムは、プリントサーバ１０１において、印刷ジョブの順序制御を行ったり、印刷ジョブの印刷終了や印刷先変更要求などを通知するためのプログラムを含んでいる。ここで印刷制御プログラムは、クライアント１０２〜１０４にインストールされるモジュールと、プリントサーバ１０１にインストールされるモジュールとを別々に含み、情報処理装置の種類に応じていずれかのモジュールをインストールする。しかし、本発明の印刷制御プログラムはこれに限定されるものではなく、一つの印刷制御プログラムが、実行される環境によりクライアント用として機能したり、またはプリントサーバ用として機能するようにしてもよい。あるいは一台のコンピュータに、クライアント用の機能を持つモジュールと、プリントサーバ用として機能するモジュールをともにインストールし、同時に、あるいは時分割で擬似的に並列動作させる構成をとることも可能である。
【００２７】
プリントサーバ１０１は、クライアント１０２〜１０４から描画データを含む印刷ジョブを受信してプリンタに印刷させる機能を有する。また、プリントサーバ１０１は、クライアント１０２〜１０４から描画データを含まない印刷ジョブを受け取り、クライアント１０２〜１０４の印刷順序を管理し、それぞれのクライアントに対して描画データを含む印刷ジョブの送信許可を順番に通知する機能を有する。更に、プリントサーバ１０１は、ネットワークプリンタ１０５のステータスや印刷ジョブの各種情報を取得し、クライアント１０２〜１０４に通知する機能を有する。
【００２８】
画像形成装置としてのネットワークプリンタ１０５は、ネットワークインタフェースを介してネットワーク１０６と接続されている。ネットワークプリンタ１０５は、クライアントコンピュータ１０２〜１０４から送信された、描画データを含む印刷ジョブを解析して１ページずつドットイメージに変換し、１ページ毎に印刷する。
【００２９】
また、ネットワークプリンタ１０５としては、電子写真方式のレーザービームプリンタや複写機やデジタル複合機やファクシミリや、インクジェット方式のプリンタやデジタル複合機など様々な記録方式の画像形成装置を適用できる。
【００３０】
プリントサーバ１０１及びクライント１０２〜１０４は同様のハードウェア構成を有した情報処理装置によって実現可能である。図２は、プリントサーバ１０１またはクライアント１０２〜１０５として利用可能な情報処理装置の構成を示すブロック図である。
【００３１】
図２において、情報処理装置の制御手段であるＣＰＵ２００は、ハードディスク（ＨＤ）２０５に格納されているアプリケーションプログラム、プリンタドライバプログラム、ＯＳや印刷制御プログラム等を実行し、ＲＡＭ２０２に、プログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。
【００３２】
ＲＯＭ２０１は、その内部に、基本Ｉ／Ｏプログラム等のプログラム、文書処理の際に使用するフォントデータ、テンプレート用データ等の各種データを記憶する。一時記憶手段としてのＲＡＭ２０２は、上述したようにＣＰＵ２００の主メモリ、ワークエリア等として機能する。
【００３３】
フレキシブルディスク（ＦＤ）ドライブ２０３は、記憶媒体としてのＦＤ２０４に記憶されたプログラム等を本コンピュータシステムにロードすることができる。なお、記憶媒体としてのフレキシブルディスク（ＦＤ）２０４は、コンピュータが読み取り可能なプログラムが格納された記憶媒体である。ここで、記憶媒体としては、ＦＤに限らず、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＰＣカード、ＤＶＤ、ＩＣメモリカード、ＭＯ、メモリスティック等、任意の媒体を利用できる。ＦＤ以外の記憶媒体を利用する場合には、その記憶媒体に適したドライブをＦＤドライブ２０３の代わりに、或いはＦＤドライブ２０３と共に設ければよい。
【００３４】
外部記憶装置の一つであり、大容量メモリとして機能するＨＤ（ハードディスク）２０５には、上述したようにアプリケーションプログラム、プリンタドライバプログラム、ＯＳ、印刷制御プログラム、関連プログラム等が格納されている。また、スプール手段であるスプーラもこのＨＤ２０５に確保される。なお、ここでスプーラとは、クライアント１０２〜１０４ではクライアントスプーラのことであり、プリントサーバ１０１ではサーバスプーラのことである。また、プリントサーバ１０１では、クライアント１０２〜１０４から受けたジョブ情報を格納し、順序制御を行うためのテーブルもこのＨＤ２０５に生成されて格納される。
【００３５】
キーボード２０６は、ユーザがクライアントコンピュータに対して、或いは、オペレータや管理者がプリントサーバに対して、制御コマンド等を入力するためのものである。なお、指示を入力するために更にポインティングデバイス（不図示）を備えてもよい。
【００３６】
ディスプレイ２０７は、キーボード２０６から入力したコマンドや、プリンタの状態等を表示する。システムバス２０８は、情報処理装置内のデータの流れを司る。また、情報処理装置はインタフェース２０９を介してネットワーク１０６と接続され、外部装置とのデータのやり取りを行うことが可能となる。
【００３７】
図３は、図２に示したＲＡＭ２０２のメモリマップの一例を示す図である。図４は、図２に示したＦＤ２０４のメモリマップの一例を示す図である。
【００３８】
図３において、３０１は基本Ｉ／Ｏプログラムであり、本制御装置の電源がＯＮされたときに、ＨＤ２０５からＯＳがＲＡＭ２０２に読み込まれ、ＯＳの動作を開始させるＩＰＬ（イニシャルプログラムローデイング）機能などを有しているプログラムが入っている領域である。３０２はオペレーティングシステム（ＯＳ）、３０３は印刷制御プログラムであり、それぞれＲＡＭ２０２上に確保された領域に記憶される。３０４は関連データで、ＲＡＭ２０２上に確保される領域に記憶される。３０５はワークエリアで、ＣＰＵ２００が本実施形態のプリンタ制御プログラム（３０３）等を実行する際に利用される作業領域が確保されている。
【００３９】
図４において、４０１はデータの情報を示すボリューム情報であり、４０２はディレクトリ情報、４０３は印刷制御プログラム、４０４はその関連データである。印刷制御プログラム４０３は、本実施形態では、クライアント用、サーバ用共に、同様の構成をとっているものとする。
【００４０】
図５は、図２に示したＦＤドライブ２０３に対して挿入されるＦＤ２０４との関係を示す図である。例えば、印刷制御プログラムがＦＤ２０４に格納されている場合には、図５のように、ＦＤ２０４内の印刷制御プログラムがＦＤドライブ２０３によって読みとられ、図３のようにＲＡＭ２０２にロードされ、実行可能な状態となる。
【００４１】
なお、ＦＤ２０４から印刷制御プログラムおよび関連データを直接ＲＡＭ２０２にロードして実行させる以外にも、予めＨＤ２０５に印刷制御プログラムをインストールしておき、必要な時にＨＤ２０５からＲＡＭ２０２にロードするようにしてもよい。また、本印刷制御プログラムを記憶する媒体は、ＦＤ以外にＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＰＣカード、ＤＶＤ、ＩＣメモリカード等であってもよい。さらに、本印刷制御プログラムをＲＯＭ２０１に記憶しておき、これをメモリマップの一部となすように構成し、直接ＣＰＵ２００で実行することも可能である。また、以上の各装置と同等の機能を実現するソフトウェアをもって、ハードウェア装置の代替として構成することもできる。
【００４２】
＜印刷制御処理＞
図６は本実施形態における印刷システムの機能的構成を示すブロック図である。
【００４３】
本印刷システムは、プリンタドライバ６０１、スプーラ６０２、ＬＰＲポート６０４といった、従来の印刷制御用のモジュールに加えて、新たに、ジョブ制御サービスポートモニタ６０５、ジョブ制御プリントサービス６１０、及びプリントマネージャ６１１を備えたものである。これらのジョブ制御サービスポートモニタ６０５、ジョブ制御プリントサービス６１０、及びプリントマネージャ６１１といった機能は、上述してきた印刷制御プログラムを実行することによって実現される。
【００４４】
逆に言えば、本実施形態に係る印刷制御プログラムには、ジョブ制御サービスポートモニタ６０５、ジョブ制御プリントサービス６１０、及びプリントマネージャ６１１といった各機能が含まれる。
【００４５】
次に、本印刷システムで行われる印刷処理について説明する。
【００４６】
プリンタドライバ６０１は、ＯＳ６０６（及びアプリケーション６０７）を介してクライアント１０２〜１０４のディスプレイ２０７にユーザインタフェース６０８を表示し、ユーザからの印刷設定を受け付ける。そして６０８を介しての印刷設定が確定すると、この確定した印刷設定に従うアプリケーションからの印刷指示を受け付ける。
【００４７】
図８は、クライアント１０２〜１０４のディスプレイ２０７に表示されるユーザインタフェース（印刷設定画面）の一例を示す。８０１は、クライアント１０２〜１０４が選択可能な複数のプリンタリストを示すものであり、図８の状態ではプリンタリスト８０１から「プリンタＥ」が選択されるところである。
【００４８】
なお、ここでプリンタリストに表示されるのは、画像形成装置としてのプリンタデバイスそのものを表す名称ではなく、どのようにその印刷ジョブを処理するかを示す各種の処理方法である。従って、プリンタリスト８０１において、例えば、「プリンタＣ」はＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ）（登録商標）ライターを示す場合がある。また、「自動代行」、「同報」は複数のプリンタ（メンバプリンタ）を対象とした印刷を行う為の仮想プリンタを示す。「自動代行」や、「同報」の対象となるメンバプリンタとしては、例えば、プリンタＢ及びプリンタＤを予め登録しておくことができる。
【００４９】
図９は、図８において、「プリンタＥ」の選択が確定した状態でのユーザインタフェースを示す。９０１は、選択したプリンタに対応するポート名を示す欄である。「プリンタＥ」のポート名が、Ｐｒｏｘｙ  Ｏｕｔｐｕｔ  ＰｏｒｔＥ（以下、ポートＥと称する）であることを示している。尚、ＨＤ２０５には、図８のプリンタリスト８０１に示される各プリンタと、ポート名とを関連づけるテーブルが格納されており、複数のプリンタから何れかのプリンタが選択されると、図９の９０１の表示は各々のポートに対応したものとなる。
【００５０】
図９に対しユーザからの印刷指示（ＯＫボタンの押下）がキーボード２０６または不図示のポインティングデバイスから入力されると、図６に戻って、ＯＳ６０６がこれを解釈して描画命令（ＤＤＩ）としてプリンタドライバ６０１に送る。プリンタドライバ６０１はＯＳを介して供給される描画命令（ＤＤＩ）に基づき頁記述言語（ＰＤＬ）で記述された印刷データを生成する。この印刷データにはアプリケーションプログラムが描画した描画データとジョブ制御データの双方が含まれる。
【００５１】
生成された印刷データは、ＯＳのスプーラ６０２によって、スプールファイル（第１スプールファイル）として、スプールファイル記憶エリア６０３に記憶される。図９で選択されたプリンタに関連付けられたポートがＬＰＲポート６０４の場合は、ＬＰＲ（ラインプリンタデーモンプロトコル）を用いてスプーラ６０２から転送されてきた印刷データが画像形成装置としてのデバイス６１４に送られる。ＬＰＲポート６０４から転送される印刷データは転送後消去され、再印刷／代行印刷などに利用でいないようになっている。
【００５２】
ここで、デバイス６１４は、図１のネットワークプリンタ１０５に対応するものであり、上述したとおり、電子写真方式のレーザービームプリンタ／複写機／デジタル複合機／ファクシミリや、インクジェット方式のプリンタ／デジタル複合機など様々な記録方式の画像形成装置が適用できる。
【００５３】
一方、プリンタに関連付けられたポートがジョブ制御サービスポートモニタ６０５を利用するものである場合には、デスプール処理として、ジョブ転送開始通知及び描画データがスプーラ６０２からジョブ制御サービスポートモニタ６０５に送られる。そして、ジョブ制御サービスポートモニタ６０５に送られた描画データはジョブファイル（第２スプールファイル）として、ジョブファイル記憶エリア６０９に再度スプールされる。
【００５４】
なお、ジョブ制御サービスポートモニタ６０５は、ポート毎に用意されており、それぞれジョブファイル記憶エリア６０９にジョブファイルを格納する際のデータフォーマットなどの設定を保有している。従って、スプーラ６０２は、そのジョブがどのポートに対応するものかを判断して、ジョブに応じたジョブ制御サービスポートモニタ６０５にデスプールする。
【００５５】
図７は、スプーラ６０２からジョブ制御サービスポートモニタ６０５に送られるジョブ転送開始通知の内容を示す図である。
【００５６】
図７において、７０１はジョブ転送の開始を示し、７０２はプリンタ名を示す。プリンタ名７０２は、図８、図９のユーザインタフェースにおいてプリンタリスト８０１から選択されたプリンタの識別名称に対応する。
【００５７】
７０３は、プリンタリスト８０１から選択されたプリンタ名に対応するポート名であり、図９の９０１に示されるポート名と同じ内容となる。
【００５８】
７０４は、印刷指示に応じてＯＳの仕組みを介して発行されたジョブ識別子としてのＩＤ（以下、第１ジョブＩＤと称する）である。第１ジョブＩＤ７０４はＯＳを介して発行された印刷指示を識別する為のＩＤそのものである必要はなく、そのＩＤに関連付けられていれば良い。
【００５９】
ジョブ制御サービスポートモニタ６０５は、ジョブ制御プリントサービス６１０に対し、ジョブ開始通知として、受信した図７の情報を通知する。この通知には少なくとも第１ジョブＩＤ７０４が含まれていればよい。第１ジョブＩＤ７０４に関連する他の情報はジョブ制御プリントサービス６１０が第１ジョブＩＤ７０４をキーに特定できれば良い。
【００６０】
これに応じて、ジョブ制御プリントサービス６１０は、ジョブ制御サービス内部で印刷要求を識別するジョブ識別子としてのＩＤ（以下、第２ジョブＩＤと称する）を生成し、ジョブ制御サービスポートモニタ６０５に送信する。また、ジョブ制御プリントサービス６１０は、第２ジョブＩＤと同時に、ジョブファイル記憶エリア６０９に描画データを格納する際のファイル名を生成し、ジョブ制御サービスポートモニタ６０５に送信する。
【００６１】
ここで、第１ジョブＩＤとは別に第２ジョブＩＤを生成するのは、以下の理由による。
【００６２】
ＯＳに管理された第１ジョブＩＤは、原則的に印刷が終了した時点で開放され、新たに発生した他のジョブに全く同じ第１ジョブＩＤが付される可能性がある。一方、ジョブ制御プリントサービス６１０を含む印刷制御プログラムは、一旦終了したジョブのジョブ情報及び描画データを保存しておいて再印刷時に有効に利用しようとするものである。従って、第１ジョブＩＤだけで管理すると、再印刷時に、同じ第１ジョブＩＤが付された２つのジョブを区別することができない。そこで、ジョブ制御プリントサービス６１０は、管理するジョブごとに新たにオリジナルの第２ジョブＩＤを付して、上記のような問題が生じないようにしている。
【００６３】
ジョブ制御プリントサービスポートモニタ６０５は、スプーラ６０２から渡された描画データを、順次、ジョブ制御プリントサービス６１０から指示されたファイル名に関連づけてジョブファイル記憶エリア６０９に書込む。そして、ジョブ制御プリントサービス６１０に対し、描画データの書き込み開始を通知する。
【００６４】
ジョブ制御プリントサービス６１０はジョブファイル記憶エリア６０９への書き込み開始通知を受けると、ジョブファイル記憶エリア６０９に書込まれた描画データを順次読込み、複数のデバイス６１４の中で対応するデバイスに送信する。
【００６５】
一方、プリントマネージャ６１１は、一種のアプリケーションであり、ＡＰＩ（アプリケーションプログラムインタフェース）６１２を介してジョブ制御プリントサービス６１０と各種情報の送受信を行う。この各種情報の送受信には図１３中のジョブ識別子が関連付けられているものとする。例えば、プリントマネージャ６１１は、ジョブ制御プリントサービス６１０が監視するデバイス６１４の状態やジョブの状態を反映したユーザインタフェースを作成したり、各種印刷指示の入力画面を提供する。
【００６６】
図１１は、プリントマネージャ６１１が表示可能なジョブ一覧画面の一例である。図１１の表示には１つのジョブしか示されていないが複数のジョブが表示される場合もある。その場合各々のジョブにはジョブ識別子が関連付けられている。
【００６７】
プリントマネージャ６１１は、ジョブ制御プリントサービス６１０からプリントジョブの一覧を取得し、図１１のようなジョブ一覧画面を、ディスプレイ２０７に表示することができる。ジョブ一覧画面には、ジョブのプリンタ名（プリンタＥ）、接続先のポート（Ｐｒｏｘｙ  Ｏｕｔｐｕｔ  ＰｏｒｔＥ）、デバイスの状態等を含むステータス１１０１を表示する。図においては、「Ｐｒｉｎｔｅｒ  Ｔｅｓｔ  Ｐａｇｅ」というジョブが選択状態にある。
【００６８】
また、各ジョブがどのような状態にあるかを、リスト１１０２にして示す。そして、リスト中のいずれかのジョブを選択して、ポップアップメニュー１１０３を表示させることにより、そのジョブのキャンセル、停止、再開、再印刷等の指示を行うことができる。ポップアップメニュー１１０３によるこれらの指示は、選択されたジョブの第２ジョブＩＤと共にジョブ制御プリントサービス６１０に送られる。
【００６９】
つまり、ジョブ一覧画面に表示された各ジョブは第２ジョブＩＤと関連づけられているため、一覧画面の中からジョブが選択され、指示が入力されると、そのジョブの第２ジョブＩＤがプリントマネージャ６１１からジョブ制御プリントサービス６１０に送られる。そして、ジョブ制御プリントサービス６１０は、受け取った第２ジョブＩＤによってジョブを特定し、再送信や削除などの処理を行う。
【００７０】
プリントマネージャ６１１は、基本的には、このジョブ一覧画面をユーザからの指示に応じて表示するが、ジョブ制御プリントサービス６１０において認識された画像形成装置への送信が滞るようなエラー発生情報が送られてきたことに応じて、自動的に表示してもよい。
【００７１】
図１０は、図６のジョブ制御プリントサービス６１０の詳細を示すブロック図である。
【００７２】
ジョブ出力モジュール１００１はジョブ情報をリストにして管理し、印刷データのデバイス６１４への送信を制御する。
【００７３】
デバイス監視モジュール１００３はネットワークケーブルなどの通信回線を介してデバイスの状態情報を監視する機能を備える。デバイス監視モジュール１００３はデバイスに問合せを行ったり、デバイスから自発的に通知されてくる状態情報を受信する機能を備える。
【００７４】
状態情報としては、デバイス６１４における紙／トナーなどの消耗品無し、ジャム、ドアオープン、等のエラー情報や、デバイス６１４におけるジョブの予約数などデバイスの負荷情報などを含む。
【００７５】
ジョブ管理モジュール１００２はデバイス監視モジュール１００３とジョブ出力モジュール１００１との情報の送受信を仲介する機能を備える。またジョブ制御プリントサービスが、前述のサーバ１０１上でサーバプログラムとして動作している場合、及び／又は、同一デバイスへ出力される複数のジョブ（ジョブ情報及びジョブファイル）がジョブ出力モジュール中に存在した場合には、それぞれのジョブの送信順序を制御する機能も備える。図１０中の双方向矢印１００４はスケジュール（出力順序制御）の依頼と、スケジュールアップ（出力開始指示）とを示す。
【００７６】
図１２はジョブ出力モジュール１００１の更に詳細な機能構成を示すブロック図である。図１２に示すように、ジョブ出力モジュール１００１は、ＯＳのスプーラに登録されているプリンタ及びポート単位でジョブ情報リスト１２０１を管理するため、各プリンタ及びポートに対応するオブジェクト１２０８，１２０９を含んでいる。図１２では、それらのオブジェクトの例として、プリンタＥ、ポートＥを示しており、ポートＥに対応するデバイスとしてプリンタデバイスＥを示している。
【００７７】
また、上述したようにジョブ制御サービスポートモニタ６０５もポート毎に用意されている。このため、スプーラ６０２からデスプールされたジョブ情報は、そこで指定されているポートに応じて各ジョブ制御サービスポートモニタに振り分けられ、各ジョブ制御サービスポートモニタは、対応するプリンタオブジェクト及びポートオブジェクトとの間で処理を行う。
【００７８】
各プリンタオブジェクト１２０８は、ジョブ情報リスト１２０１から、ジョブ情報を検索したり、ポートオブジェクト１２０９にジョブファイルの送信を指示したりする機能を有する。また、各プリンタオブジェクトは、ジョブ制御プリントサービス内部で制御を行う為に必要な拡張情報を保持しており、更にその設定を行うためのユーザインタフェースを表示する機能を有している。図１６は、そのような拡張情報を設定するための画面の一例を示す図である。図１６に示すように、プリンタオブジェクト１２０８に設定可能な拡張情報としてはジョブの優先度や代行発生条件がある。
【００７９】
一方、各ポートオブジェクト１２０９は、プリンタオブジェクト１２０８から送信指示されたジョブの第２ジョブＩＤを送信待ちジョブのキュー１２１０へ登録する機能を有する。そして、キュー１２１０において、最先に登録された第２ジョブＩＤに対応するジョブファイルをジョブファイル記憶エリア６０９から読出し、所定のデバイスに送信する機能を有する。
【００８０】
ジョブ制御サービスポートモニタ６０５は、図１７に示すユーザインタフェースをディスプレイ２０７に表示することができ、デバイスのアドレスやモデル名を表示するほか、送信プロトコル、ポート番号、デバイスへの転送方法の設定を受け付けることができる。そして、これらの設定内容のコピーが、ポートオブジェクト１２０９に予め送られる。
【００８１】
従って、図１７の「ジョブのデバイスへの転送」チェックボックスにおいて、「スプールしながら転送する」が選択されている場合には、ジョブ制御サービスポートモニタ６０５によるジョブファイル記憶エリア６０９へのスプール動作に並行して、ポートオブジェクト１２０９によるデバイスへの送信処理が行われる。一方、「スプール後に転送する」が選択されている場合は、従来通り、ジョブ制御サービスポートモニタ６０５がジョブファイル記憶エリア６０９にジョブに対応する全ての描画データをスプールした後に、デバイスへの転送を開始する。すなわち、印刷制御プログラムは、スプール処理の動作とポートオブジェクトにおける送信処理とを並行動作するか否かを排他的に選択可能である。
【００８２】
図１７で「スプールしながら転送する」と設定された場合、オペレーションシステムによってスプールファイルとしてスプールされ、一旦デスプールされた印刷データを、更にジョブファイルとして再スプールし、かつ、その再スプール中に、ジョブファイルとして再スプールされた印刷データの一部を読出し、デバイスに送信することになる。
【００８３】
なお、１つのデバイスに出力することを目的としたポートオブジェクト１２０９が複数存在した場合、プリンタオブジェクト１２０８で受け付けたジョブ情報は、複数のポートオブジェクト１２０９間において順序制御され順次デバイスへ転送される。
【００８４】
なお、ジョブ情報リスト１２０１に格納される各ジョブ情報の詳細は図１３に示されている。ジョブ情報には、第１ジョブＩＤと第２ジョブＩＤの対応のほか、ジョブファイルの名称、プリンタ名、ポート名、ジョブの状態、受け付け時刻等が含まれる。ジョブ情報は第２ジョブＩＤ、或いはプリンタ名と第１ジョブＩＤの組み合わせによって検索可能である。ジョブ情報リスト１２０１は、ＡＰＩ６１２や不図示の内部インタフェースによって、プリンタオブジェクト１２０８、ポートオブジェクト１２０９等からアクセス可能に構成されている。なお、ジョブ情報リスト１２０１はＲＡＭ２０２上に保存され、高速にアクセス可能な構成となっているが、そのコピーはファイルとしてＨＤ２０５上に保存され、ジョブファイルと共に、装置の電源が切断されても再度利用可能な構成となっている。
【００８５】
次に、ジョブ制御サービスポートモニタ６０５とプリンタオブジェクト１２０８及びポートオブジェクト１２０９との間での処理について、図１４を用いて詳細に説明する。
【００８６】
ユーザインタフェースを介してプリンタＥによる印刷指示が入力されると、プリンタＥ（すなわちポートＥ）に対応するジョブ制御サービスポートモニタ６０５は、ＯＳからの印刷開始イベントを認識する（Ｓ１４０１）。
【００８７】
次に、ジョブ制御サービスポートモニタ６０５は、図７に示される情報を含んだジョブ開始要求を、対応するプリンタオブジェクト１２０８に通知する（Ｓ１４０２）。
【００８８】
プリンタオブジェクト１２０８は、そのジョブ開始要求によって新規にジョブが発行されたことを検知し、ジョブ情報リストから、未使用の第２ジョブＩＤ及びジョブファイル記憶エリア６０９に描画データを記憶する際のファイル名を選択／生成する。そして更に、それらの第２ジョブＩＤ及びファイル名を、ＯＳから取得したジョブの属性及び第１ジョブＩＤと共にジョブ情報リストに登録する。
【００８９】
また、ジョブ制御ポートモニタ６０５は、更新されたジョブ情報リスト１２０１の中からプリンタ名及び第１ジョブＩＤをキーとしてジョブ情報を特定し、そのジョブ情報に含まれる第２ジョブＩＤ及びファイル名をステップＳ１４０２の応答として受け取る（Ｓ１４０３）。
【００９０】
次に、ジョブ制御サービスポートモニタ６０５は、スプーラ６０２からデスプールされた描画データを、ステップＳ１４０３において受信したファイル名を付して、順次、ジョブファイル記憶エリア６０９へ書き込む（Ｓ１４０９）。そして、第２ジョブＩＤとジョブファイルの書き込み開始とをプリンタオブジェクト１２０８へ通知する（Ｓ１４０４）。
【００９１】
ステップＳ１４０４の通知を受けたプリンタオブジェクト１２０８は、ステップＳ１４０５において、ポートオブジェクト１２０９に対して第２ジョブＩＤに対応するジョブの送信予約／登録を行う。これに応じ、ポートオブジェクト１２０９は、プリンタオブジェクト１２０８から送信指示されたジョブの第２ジョブＩＤを送信待ちジョブのキュー１２１０へ登録する。
【００９２】
ポートオブジェクト１２０９において、「スプールしながら転送する」が設定されている場合、ポートオブジェクト１２０９は、送信指示を受けたジョブを、ジョブファイルの書込終了シグナルを待たずに、デバイスへの転送候補としてピックアップする。転送候補としてマークされたジョブは、そのジョブに対応するジョブ情報に含まれた優先順位、受付時刻等が参照され、送信順序が決定される。
【００９３】
送信待ちジョブのキュー１２１０に登録されたジョブが送信順序に達すると、ポートオブジェクト１２０９は、ジョブファイル記憶エリア６０９から、そのジョブに対応するジョブファイルを読込み、デバイスに送信する（Ｓ１４０６）。ジョブファイルを受信したプリントデバイスでは、受信したジョブファイルに基づいて記録材へのプリントを実行する。
【００９４】
ところが、デバイスに対するジョブファイルの送信がエラーによって終了すると、ステップＳ１４０７からステップＳ１４０８に進み、再送信の指示を待つ。プリンタオブジェクト１２０８では、再送を指示されると、ステップＳ１４０５に戻り、ポートオブジェクト１２０９に対し、第２ジョブＩＤに対応するジョブの送信予約を再度行う。そしてステップＳ１４０６に進み、更に、ジョブファイル６０９の読み込み・送信処理が行われる。
【００９５】
一方、ジョブ制御サービスポートモニタ６０５によりジョブファイル６０９の書き込みが終了した場合には、プリンタオブジェクト１２０８にジョブファイルの書込終了の同期シグナルが通知される（Ｓ１４１０）。プリンタオブジェクト１２０８は、書込終了シグナルを受け取ると、確定されたジョブの属性情報（用紙サイズ、用紙枚数等）を元にジョブ情報リスト１２０１を更新する。
【００９６】
書込終了シグナルは、ジョブ制御サービスポートモニタ６０５からプリンタオブジェクト１２０８に直接通知しても良いし、セマフォ等を用いて（ｓｅｍａｐｈｏｒｅ：並行して動作しているプロセス間で同期を取ったり割り込み処理の制御を行なう機構。また、そのためにプロセス間で交換される信号）通知しても良い。
【００９７】
また、エラー終了することなく書込終了シグナルを検知したプリンタオブジェクト１２０８及びポートオブジェクト１２０９は、ジョブの送信処理を正常終了する。
【００９８】
デバイスでの印刷完了がデバイス監視モジュール１００３によって検知され、ジョブ管理モジュール１００２を経由してジョブ出力モジュール１００１へ通知されると、ジョブ情報リスト１２０１からジョブ情報が削除され、ジョブファイル記憶エリア６０９からジョブファイルが削除され、印刷処理が完了する。
【００９９】
＜データ転送処理＞
図１５は、図１４のステップＳ１４０６におけるジョブデータ送信処理の詳細を示すフローチャートである。このフローチャートに示される各処理はポートオブジェクト１２０９によって実行される。
【０１００】
まず、ステップＳ１５０１では、ジョブファイル記憶エリア６０９において、第２ジョブＩＤに対応したジョブファイルをオープンする。
【０１０１】
続いて、ステップＳ１５０２において、ＲＡＭ２０２上の送信バッファにジョブファイルのデータを記憶する。続いてステップＳ１５０３においてジョブファイルの書込終了シグナルがセットされているかを確認する。
【０１０２】
ステップＳ１５０４の判定において、書込終了シグナルがセットされたと判定された場合には、ステップＳ１５０５で送信バッファ中のデータが全て転送され、ステップＳ１５０６でファイルをクローズして送信処理は終了する。
【０１０３】
一方、ステップＳ１５０４の判定において、書き込みスプール終了シグナルがセットされておらず、まだスプール中であると判定された場合には、ステップＳ１５０７に進み、送信バッファに残っている未送信のデータ量を判定する。送信バッファに閾値よりも多くのデータが入っていると判定された場合、ステップＳ１５０８において、閾値分のデータだけ送信バッファに残るようにデータを転送する。例えば、閾値が１０２４バイトで、送信バッファに１１２４バイトのデータが記憶されている場合には、１１２４−１０２４＝１００バイトだけステップＳ１５０８で送信される。
【０１０４】
ステップＳ１５０８の送信処理において、デバイスがデータを受け付けないことが分かった場合には、エラーが発生したと判定し、ステップＳ１５０９からステップＳ１５０６に進んで、ファイルをクローズし送信処理は終了する。
【０１０５】
ステップＳ１５０９の判定で送信が成功した場合には、ステップＳ１５０２に戻り、次のデータを送信バッファに読み込み、送信処理を継続する。
【０１０６】
一方、ステップＳ１５０７におけるデータ量の判定において閾値以下かつ１バイト以上のデータが存在する判定された場合には、ステップＳ１５１０において、１バイトのデータのみをデバイス６１４へ転送する。
【０１０７】
ステップＳ１５１１において送信エラーの発生を判定し、エラーが発生していた場合には、ステップＳ１５０６に進み、ファイルをクローズして送信処理を終了する。
【０１０８】
一方、ステップＳ１５１１の判定で送信処理が成功と判定された場合には、ステップＳ１５１２において一定時間書込終了シグナルがセットされるのを待つ。ステップＳ１５１２はタイムアウトが発生するか、書込終了シグナルがセットされると終了し、
また、ステップＳ１５０７の判定でデータが無いと判定された場合には、そのままステップＳ１５０２のデータの読み込み処理に戻る。また、別の形態として、ステップＳ１５０７の判定でデータが無いと判定された場合には、ステップＳ１５１２の処理に移行するようにしても良い。
【０１０９】
以上の処理によれば、ジョブファイル中における印刷データを、デバイスに対して分割して送信することになるので、再スプールされたジョブファイルを送信するような形態においてインタフェースタイムアウトの発生を回避できることになる。
【０１１０】
また、ジョブファイルのスプールの終了を監視し、スプールファイルの書込終了が検知されていない場合に、印刷データをデバイスに対して分割して送信するようにし、書込終了が検知された場合に送信バッファ中のデータを全て転送するようにするので、ジョブ制御サービスポートモニタ６０５を介してのジョブファイルのスプールが滞っている可能性のケースに対応して効率よくインタフェースタイムアウトの発生を回避できできることになる。
【０１１１】
また、ジョブファイルにおいて、デバイスに対して未送信のデータ量を検知し、検知された未送信データ量が所定の閾値以下か否かを判定し、未送信データ量が前記閾値以下と判定された場合に、閾値の整数分の１のデータ量のみをデバイスに送信することになる。また、データ量が閾値より多いと判定するまで、デバイスにおけるインタフェースタイムアウトが発生する時間未満の間隔で、分割送信を繰り返し実行することになる。
【０１１２】
なお、ステップＳ１５０７の判定に利用する閾値及びステップＳ１５１２におけるシグナル待ち時間は、予め設定されたインタフェースタイムアウト防止時間及びデバイス６１４のインタフェースタイムアウト時間によって決定される。例えば、デバイスにおいて１分間のインタフェースタイムアウト時間が設定されている場合、ステップＳ１５１２において書込終了イベントを待つ時間は、デバイスのインタフェースタイムアウト時間以下の値（例えば４０秒）に設定される。この書込終了イベント待ち時間は、デバイスのインタフェースタイムアウト時間よりも十分に少ない時間であることが望ましい。
【０１１３】
例えば、ステップＳ１５１２における書込終了イベントの待ち時間が３０秒で、インタフェースタイムアウトを１０分（６００秒）間防止したい場合には、閾値として６００÷３０＝２０バイトを設定すればよいことになる。これらの値は本印刷システムがサポートする全デバイスの特性を考慮してシステム全体で一意に決定し、ＲＯＭ２０１に保持しても良いし、デバイス毎に個別の設定をＲＯＭ２０１或いはＨＤ２０５等に保持しても良い。またタイムアウト設定画面を表示し、閾値や書込終了シグナル待ち時間などについてユーザの任意の設定を受け付けるタイムアウト設定手段を設けてもよい。その場合、デバイス毎或いはシステムで一意のタイムアウト設定は、ＨＤ２０５等の不揮発性メモリに保存することが望ましい。
【０１１４】
また、前述の説明においてステップＳ１５１０ではタイムアウト防止用に１バイトのデータを分割送信したが、本発明はこれに限定されるものではなく、他の所定量のデータ（例えば、閾値の整数分の１のデータ）に分割して送信してもよい。例えば、１回の分割送信のバイト数を１６バイトとした場合には、閾値を３２０バイトとすれば、送信バッファ内のデータが閾値以下になってから全くジョブファイルにデータが記憶されなくても、３２０÷１６＝２０回、ステップＳ１５１２の待機処理が行われる。これによって１回の書込終了イベントの待ち時間が３０秒であれば、３０×２０＝６００秒、つまり１０分間のインタフェースタイムアウト時間が保証される。
【０１１５】
なお、ここでは閾値を１つにして、閾値以下の場合に１バイトずつ送信するアルゴリズムとしたが、本発明はこれに限定されるものではなく、複数の閾値を設け、データサイズに応じて様々なデータ量に分割するアルゴリズムでもかまわない。
【０１１６】
ステップＳ１５１２の待機処理が繰り返されても、スプーラ６０２からジョブ制御ポートモニタ６０５への描画データの転送が滞った場合には、デバイスとのインタフェースにおいてインタフェースタイムアウトが発生する。このような場合や、デバイスの電源断等が発生しデバイスがデータを受け付けない場合には、ステップＳ１５０９またはステップＳ１５１１においてエラーと判定し、送信処理が終了する。
【０１１７】
なお、本実施形態においては、印刷データの再送を、図１１に示したジョブ一覧画面におけるユーザからの指示によって実施することとしたが、本発明はこれに限定されるものではなく、例えばプリントマネージャ６１１等のジョブ制御プリントサービス６１０を監視するプログラムが、ジョブの状態を常時監視し、ジョブエラーの発生後、自動的に再送指示を行ってもよい。このポートオブジェクト１２０９に対する再送指示は、ジョブエラー発生の一定時間後であってもよいし、エラーとなったジョブのジョブファイル生成が完了した時点であってもよい。
【０１１８】
（他の実施形態）
以上、本発明の実施形態について詳述したが、本発明は、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０１１９】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム（上記実施形態では図１４や図１５に示すフローチャートに対応したプログラム）を、システム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。その場合、プログラムの機能を有していれば、形態は、プログラムである必要はない。
【０１２０】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明のクレームでは、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【０１２１】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【０１２２】
プログラムを供給するための記録媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などがある。
【０１２３】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明のクレームに含まれるものである。
【０１２４】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０１２５】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
【０１２６】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現される。
【０１２７】
【発明の効果】
以上説明したように、本発明によれば、印刷データのスプールステップと該印刷データのデバイスへの転送ステップを並行に動作している場合に、印刷データのスプールステップが滞った場合にもデバイスへの転送ステップにおけるインタフェースタイムアウトエラーの発生を最小限に抑えることが可能となる。
【０１２８】
またインタフェースタイムアウトが発生した場合においても速やかに再送をおこなうことが可能となる。
【図面の簡単な説明】
【図１】本発明の実施形態に係る印刷処理システムの構成を示す図である。
【図２】本発明の実施形態に係る印刷処理システムにおける情報処理装置の構成を示すブロック図である。
【図３】本発明の実施形態に係る情報処理装置のＲＡＭのメモリマップの一例を示す図である。
【図４】本発明の実施形態に係るＦＤのメモリマップの一例を示す図である。
【図５】本発明の実施形態に係る情報処理装置のＦＤドライブに挿入されるＦＤとの関係を示す図である。
【図６】本発明の実施形態に係る情報処理装置の印刷制御機能の概略を示す図である。
【図７】本発明の実施形態に係る通知情報の一例を示す図である。
【図８】本発明の実施形態に係る印刷設定画面の一例を示す図である。
【図９】本発明の実施形態に係る印刷設定画面の一例を示す図である。
【図１０】本発明の実施形態に係る情報処理装置の印刷制御機能の詳細を示す図である。
【図１１】本発明の実施形態に係る印刷設定画面の一例を示す図である。
【図１２】本発明の実施形態に係る情報処理装置の印刷制御機能の詳細を示す図である。
【図１３】本発明の実施形態に係るジョブ情報の一例を示す図である。
【図１４】本発明の実施形態に係る印刷制御処理を示すフローチャートである。
【図１５】本発明の実施形態に係る印刷制御処理を示すフローチャートである。
【図１６】本発明の実施形態に係る印刷設定画面の一例を示す図である。
【図１７】本発明の実施形態に係る印刷設定画面の一例を示す図である。
【図１】
2004246513.tif 000003
【図２】
2004246513.tif 000004
【図３】
2004246513.tif 000005
【図４】
2004246513.tif 000006
【図５】
2004246513.tif 000007
【図６】
2004246513.tif 000008
【図７】
2004246513.tif 000009
【図８】
2004246513.tif 000010
【図９】
2004246513.tif 000011
【図１０】
2004246513.tif 000012
【図１１】
2004246513.tif 000013
【図１２】
2004246513.tif 000014
【図１３】
2004246513.tif 000015
【図１４】
2004246513.tif 000016
【図１５】
2004246513.tif 000017
【図１６】
2004246513.tif 000018
【図１７】
2004246513.tif 000019