(57)【要約】【課題】印刷ジョブの形式を予め設定した従来技術の場合と比較して、印刷の開始から終了までの処理効率が良好となる。【解決手段】プリンタ１６の現在の印刷状況を検出し（１０４）、印刷条件を検出し（１０８及び１１０）、ＣＰＵ１２ｃ及びメモリ（ＲＡＭ１２ｄ）の現在の使用率を検出し（１１２）、ネットワーク１８の現在の帯域使用率を検出し（１２８）、サーバ１４のＣＰＵ１４ｃの現在の使用率を検出して（１３４及び１３６）、検出結果に基づいて、印刷を実行する印刷実行装置に解釈可能なプリンタ言語で記述された印刷ジョブを生成する（１４２）か、前記プリンタ言語で記述された印刷ジョブに変換可能な中間形式の印刷ジョブを生成する（１０６、１１８、１４０）か、または中間形式及びプリンタ言語の記述が混在した印刷ジョブを生成する（１２４）。【選択図】図２
2009020752.tif 000002
【特許請求の範囲】
【請求項１】
印刷対象のデータ及び該印刷対象のデータの印刷を実行する際の印刷条件に基づいて印刷ジョブを生成するジョブ生成手段と、
前記印刷条件、前記印刷ジョブに基づいて印刷を実行する印刷実行装置の制御を行うようにネットワークを介して前記ジョブ生成手段に接続されたサーバに設けられた演算手段の現在の使用率、前記ネットワークの現在の帯域使用率、前記印刷実行装置の現在の印刷状況、並びに前記ジョブ生成手段及び前記ジョブ生成手段によってジョブが生成される際に一時的に使用される記憶手段の現在の使用率の少なくとも１つを検出する検出手段と、
前記検出手段の検出結果に基づいて、前記印刷実行装置に解釈可能なプリンタ言語で記述された印刷ジョブを生成するか、前記プリンタ言語で記述された印刷ジョブに変換可能な中間形式の印刷ジョブを生成するか、または前記中間形式及び前記プリンタ言語の記述が混在した印刷ジョブを生成するように前記ジョブ生成手段を制御する制御手段と、
を含む印刷ジョブ生成装置。
【請求項２】
前記制御手段は、前記検出手段によって前記ジョブ生成手段及び前記記憶手段の現在の使用率が検出された場合には、前記検出手段の検出結果に基づいて、前記プリンタ言語で記述された印刷ジョブを生成するか、前記中間形式の印刷ジョブを生成するか、または前記印刷対象のデータにイメージデータが含まれているときには該イメージデータを中間形式に変換すると共にテキストデータが含まれているときには該テキストデータをプリンタ言語の記述に変換することにより前記中間形式及び前記プリンタ言語の記述が混在した印刷ジョブを生成するように前記ジョブ生成手段を制御する請求項１記載の印刷ジョブ生成装置。
【請求項３】
前記制御手段は、前記検出手段によって前記印刷条件、前記サーバに設けられた演算手段の現在の使用率、前記ネットワークに現在の帯域使用率、前記印刷実行装置の現在の印刷状況の少なくとも１つが検出された場合には、前記検出手段の検出結果に基づいて、前記プリンタ言語で記述された印刷ジョブを生成するか、または前記中間形式の印刷ジョブを生成するように前記ジョブ生成手段を制御する請求項１記載の印刷ジョブ生成装置。
【請求項４】
コンピュータを
印刷対象のデータ及び該印刷対象のデータの印刷を実行する際の印刷条件に基づいて、印刷ジョブを生成するジョブ生成手段及び前記ジョブ生成手段によってジョブが生成される際に一時的に使用される記憶手段の現在の使用率、前記印刷条件、前記印刷ジョブに基づいて印刷を実行する印刷実行装置の制御を行うようにネットワークを介して前記ジョブ生成手段に接続されたサーバに設けられた演算手段の現在の使用率、前記ネットワークの現在の帯域使用率、並びに前記印刷実行装置の現在の印刷状況の少なくとも１つを検出する手段、及び
検出結果に基づいて、前記印刷実行装置に解釈可能なプリンタ言語で記述された印刷ジョブを生成するか、前記プリンタ言語で記述された印刷ジョブに変換可能な中間形式の印刷ジョブを生成するか、または前記中間形式及び前記プリンタ言語の記述が混在した印刷ジョブを生成するように前記ジョブ生成手段を制御する手段
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、印刷ジョブ生成装置、及びプログラムに関する。
【背景技術】
【０００２】
従来、ネットワークにかかる負荷を抑制可能な印刷データ加工システムが知られている（例えば、特許文献１参照）。特許文献１に記載の印刷データ加工システムでは、クライアントからサーバへ送信される印刷データ（印刷ジョブ）として、プリンタが解釈可能でかつＥＭＦ（Enhanced Metafile）形式の印刷データよりもデータ量が少ないＲＡＷ（Ready to Print）データ、またはＲＡＷデータに変換可能な中間形式の印刷データであるＥＭＦ形式の印刷データのいずれか一方が、利用者により送信される印刷データの形式として予め設定されており、利用者からクライアントに印刷の指示が入力されると、クライアントは、予め設定された内容に基づいてＲＡＷデータまたはＥＭＦ形式の印刷データをサーバに出力する。サーバは、入力された印刷データがＲＡＷデータである場合にはＲＡＷデータを未処理のままプリンタに出力し、入力された印刷データがＥＭＦ形式の印刷データである場合にはＲＡＷデータに変換してからプリンタに出力する。これにより、クライアントからサーバへ送信される印刷データとしてＲＡＷデータが送信されるように利用者が予め設定することで、ＥＭＦ形式の印刷データが送信された場合と比較して、ネットワーク上に流れるデータ量が低減され、ネットワークにかかる負荷が抑制される。
【特許文献１】特開２００５−８４８９８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
本発明は、印刷ジョブの形式を予め設定した従来技術の場合と比較して、印刷の開始から終了までの処理効率が良好となる印刷ジョブ生成装置を提供することを目的とする。
【課題を解決するための手段】
【０００４】
上記目的を達成するために、請求項１に記載の発明の印刷ジョブ生成装置は、印刷対象のデータ及び該印刷対象のデータの印刷を実行する際の印刷条件に基づいて印刷ジョブを生成するジョブ生成手段と、前記印刷条件、前記印刷ジョブに基づいて印刷を実行する印刷実行装置の制御を行うようにネットワークを介して前記ジョブ生成手段に接続されたサーバに設けられた演算手段の現在の使用率、前記ネットワークの現在の帯域使用率、前記印刷実行装置の現在の印刷状況、並びに前記ジョブ生成手段及び前記ジョブ生成手段によってジョブが生成される際に一時的に使用される記憶手段の現在の使用率の少なくとも１つを検出する検出手段と、前記検出手段の検出結果に基づいて、前記印刷実行装置に解釈可能なプリンタ言語で記述された印刷ジョブを生成するか、前記プリンタ言語で記述された印刷ジョブに変換可能な中間形式の印刷ジョブを生成するか、または前記中間形式及び前記プリンタ言語の記述が混在した印刷ジョブを生成するように前記ジョブ生成手段を制御する制御手段とを含んで構成されている。
【０００５】
また、請求項２に記載の発明の印刷ジョブ生成装置は、前記制御手段を、前記検出手段によって前記ジョブ生成手段及び前記記憶手段の現在の使用率が検出された場合には、前記検出手段の検出結果に基づいて、前記プリンタ言語で記述された印刷ジョブを生成するか、前記中間形式の印刷ジョブを生成するか、または前記印刷対象のデータにイメージデータが含まれているときに該イメージデータを中間形式に変換すると共にテキストデータが含まれているときに該テキストデータをプリンタ言語の記述に変換することにより前記中間形式及び前記プリンタ言語の記述が混在した印刷ジョブを生成するように前記ジョブ生成手段を制御するようにしたものである。
【０００６】
また、請求項３に記載の発明の印刷ジョブ生成装置は、前記制御手段を、前記検出手段によって前記印刷条件、前記サーバに設けられた演算手段の現在の使用率、前記ネットワークに現在の帯域使用率、前記印刷実行装置の現在の印刷状況の少なくとも１つが検出された場合には、前記検出手段の検出結果に基づいて、前記プリンタ言語で記述された印刷ジョブを生成するか、または前記中間形式の印刷ジョブを生成するように前記ジョブ生成手段を制御するようにしたものである。
【０００７】
また、上記目的を達成するために、請求項４に記載の発明のプログラムは、コンピュータを前記印刷対象のデータ及び該印刷対象のデータの印刷を実行する際の印刷条件に基づいて印刷ジョブを生成するジョブ生成手段及び前記ジョブ生成手段によってジョブが生成される際に一時的に使用される記憶手段の現在の使用率、前記印刷条件、前記印刷ジョブに基づいて印刷を実行する印刷実行装置の制御を行うようにネットワークを介して前記ジョブ生成手段に接続されたサーバに設けられた演算手段の現在の使用率、前記ネットワークの現在の帯域使用率、並びに前記印刷実行装置の現在の印刷状況の少なくとも１つを検出する手段、及び検出結果に基づいて、前記印刷実行装置に解釈可能なプリンタ言語で記述された印刷ジョブを生成するか、前記プリンタ言語で記述された印刷ジョブに変換可能な中間形式の印刷ジョブを生成するか、または前記中間形式及び前記プリンタ言語の記述が混在した印刷ジョブを生成するように前記ジョブ生成手段を制御する手段として機能させる。
【発明の効果】
【０００８】
請求項１に係る発明の印刷ジョブ生成装置によれば、印刷ジョブの形式を予め設定した従来技術の場合と比較して、印刷の開始から終了までの処理効率が良好となる。
【０００９】
請求項２に係る発明の印刷ジョブ生成装置によれば、ジョブ生成手段及び記憶手段の現在の使用率が検出された場合には、検出結果に基づいて、プリンタ言語で記述された印刷ジョブを生成するか、中間形式の印刷ジョブを生成するか、または印刷対象のデータにイメージデータが含まれているときにイメージデータを中間形式に変換すると共にテキストデータが含まれているときにテキストデータをプリンタ言語の記述に変換することにより中間形式及びプリンタ言語の記述が混在した印刷ジョブを生成することができる。
【００１０】
請求項３に係る発明の印刷ジョブ生成装置によれば、印刷条件、サーバに設けられた演算手段の現在の使用率、ネットワークに現在の帯域使用率、印刷実行装置の現在の印刷状況の少なくとも１つが検出された場合には、検出結果に基づいて、プリンタ言語で記述された印刷ジョブを生成するか、または中間形式の印刷ジョブを生成することができる。
【００１１】
請求項４に係る発明のプログラムによれば、印刷ジョブの形式を予め設定した従来技術の場合と比較して、印刷の開始から終了までの処理効率が良好となる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照して、本発明の印刷ジョブ生成装置の実施の形態を詳細に説明する。
【００１３】
図１に示すように、本発明の実施の形態の印刷システム１０は、印刷対象のデータ及びこの印刷対象のデータの印刷を実行する際の印刷条件に基づいて印刷ジョブを生成する印刷ジョブ生成装置としてのクライアント１２、クライアント１２から入力された印刷ジョブに対して処理を施して印刷ジョブを出力するサーバ１４、及びサーバ１４から入力された印刷ジョブに基づいて印刷を実行する印刷実行装置としてのプリンタ１６がネットワーク１８を介して相互に接続されている。
【００１４】
なお、本実施の形態では、クライアント１２及びサーバ１４は、ＯＳとしてＷｉｎｄｏｗｓ（登録商標）が搭載された例について、以下、説明する。
【００１５】
クライアント１２は、ＯＳ等の基本プログラムが記憶された記憶媒体としてのＲＯＭ１２ａ、下記で詳細を説明する印刷ジョブ生成処理ルーチンを実行するためのプログラム及び各種処理ルーチンを実行するためのプログラムが記憶された記憶媒体としてのＨＤＤ（ハード  ディスク  ドライブ）１２ｂ、プログラムをＲＯＭ１２ａ及びＨＤＤ１２ｂから読み出して実行するＣＰＵ１２ｃ、データを一時的に記憶するＲＡＭ１２ｄ、及びＩ／Ｏ（入出力）ポート１２ｅ等を含んで構成されたパーソナルコンピュータで構成されており、これらＲＯＭ１２ａ、ＨＤＤ１２ｂ、ＣＰＵ１２ｃ、ＲＡＭ１２ｄ、及びＩ／Ｏポート１２ｅは互いにバス１２ｆで接続されている。
【００１６】
サーバ１４は、ＯＳ等の基本プログラムが記憶された記憶媒体としてのＲＯＭ１４ａ、下記で詳細を説明するプリンタ１６への印刷ジョブ出力処理ルーチンを実行するためのプログラム及び各種処理ルーチンを実行するためのプログラムが記憶された記憶媒体としてのＨＤＤ（ハード  ディスク  ドライブ）１４ｂ、プログラムをＲＯＭ１４ａ及びＨＤＤ１４ｂから読み出して実行するＣＰＵ１４ｃ、データを一時的に記憶するＲＡＭ１４ｄ、及びＩ／Ｏ（入出力）ポート１４ｅ等を含んで構成されたパーソナルコンピュータで構成されており、これらＲＯＭ１４ａ、ＨＤＤ１４ｂ、ＣＰＵ１４ｃ、ＲＡＭ１４ｄ、及びＩ／Ｏポート１４ｅは互いにバス１４ｆで接続されている。
【００１７】
なお、サーバ１４は、プリンタ１６の印刷状態、例えば、スプールのキューに記憶された印刷待ちジョブの個数（印刷待ちジョブ情報）などを所定時間毎（例えば、５秒毎）に監視してＨＤＤ１４ｂに記憶しており、ＨＤＤ１４ｂに記憶された印刷待ちジョブ情報を所定時間毎（例えば、５秒毎）に更新する。このため、クライアント１２からサーバ１４にプリンタ１６の印刷待ちジョブ情報の送信要求があった場合には、サーバ１４は、ＨＤＤ１４ｂから印刷待ちジョブ情報を読み込んで、読み込んだ印刷待ちジョブ情報をクライアント１２へ送信する。
【００１８】
また、サーバ１４は、サーバ１４のＣＰＵ１４ｃの負荷状態、例えば、ＣＰＵ１４ｃの使用率を所定時間毎（例えば、１秒毎）に、例えばＷｉｎｄｏｗｓ（登録商標）のタスクマネージャのプログラムを実行することにより検出してＨＤＤ１４ｂに記憶しており、ＨＤＤ１４ｂに記憶されたＣＰＵ１４ｃの使用率を所定時間毎（例えば、１秒毎）に更新する。このため、クライアント１２からサーバ１４に、サーバ１４の負荷状態に関する情報（負荷情報）の送信要求があった場合には、サーバ１４は、ＨＤＤ１４ｂからＣＰＵ１４ｃの使用率を読み込んで、読み込んだＣＰＵ１４ｃの使用率をクライアント１２へ送信する。
【００１９】
次に、クライアント１２のＣＰＵ１２ｃが実行する印刷ジョブ生成処理ルーチンについて図２及び図３を用いて説明する。なお、本実施の形態において、この印刷ジョブ生成処理ルーチンは、ユーザの所望の印刷条件で印刷対象のデータに基づいた印刷が実行されるように、クライアント１２の受付手段、例えばキーボード（図示せず）やマウス（図示せず）をユーザが操作することにより入力された印刷の実行の指示をＣＰＵ１２ｃが検出した場合に実行される。なお、上記の印刷条件には、例えば、複数のページ（Ｎページ）の各々を縮小して１つのページに印刷する（例えば、Ｎup）こと、及び印刷の実行先のプリンタに関する情報（例えば、ネットワーク上の位置情報（ＩＰアドレス））などが含まれており、このような印刷条件による印刷はＷｉｎｄｏｗｓ（登録商標）のプリントプロセッサの機能を用いて実現できる。また、上記の印刷対象のデータには、テキストデータ及びイメージデータの少なくとも一方のデータが含まれる。
【００２０】
まず、ステップ１００で、プリンタ１６の印刷待ちジョブ情報の送信要求をサーバ１４に対して行う。
【００２１】
次のステップ１０２で、サーバ１４から印刷待ちジョブ情報を受信した場合には、次のステップ１０４で、印刷待ちジョブ情報から得られる印刷待ちジョブの個数が所定値、例えば１以上であるか否かを判断することにより、印刷待ちジョブがあるか否かを判断する。すなわち、ステップ１０４では、印刷待ちジョブがあると判断された場合には、プリンタ１６の現在の印刷状況が直ちに印刷を実行できる状況でなく、印刷待ちジョブがないと判断された場合には、プリンタ１６の現在の印刷状況が直ちに印刷を実行できる状況である、とプリンタ１６の現在の印刷状況を検出している。
【００２２】
ステップ１０４で、印刷待ちジョブがあったと判断された場合には、次のステップ１０６で、上述した印刷の実行の指示があった印刷対象のデータ及び印刷条件に基づいて、プリンタ１６で解釈可能なプリンタ言語で記述された印刷ジョブに変換可能な中間形式の印刷ジョブを生成する。
【００２３】
すなわち、クライアント１２にプリンタ１６による印刷の実行の指示がユーザにより行われてから、サーバ１４がプリンタ１６へ印刷ジョブを出力してプリンタ１６で印刷が完了するまでの時間は、クライアント１２で中間形式の印刷ジョブを生成した場合のほうが、クライアント１２でプリンタ言語で記述された印刷ジョブを生成した場合と比較して長くなる。これは、クライアント１２で中間形式の印刷ジョブを生成すると、サーバ１４で、中間形式の印刷ジョブをプリンタ１６が解釈可能なプリンタ言語で記述された印刷ジョブに変換する処理を行うため、この処理に時間を要するからである。そこで、ステップ１０４で印刷待ちジョブがあると判断された場合には、クライアント１２から印刷ジョブを出力しても、プリンタ１６で印刷が直ちに実行されないため、クライアント１２では、直ちに印刷ジョブを生成する必要がなく、生成する際に負荷が軽い印刷ジョブを生成するのが好ましい。このような理由から、ステップ１０６では、クライアント１２が、プリンタ１６が解釈可能なプリンタ言語で記述された印刷ジョブを生成した場合と比較して、直ちに生成することはできないが、生成する際にＣＰＵ１２ｃの負荷が軽減される中間形式の印刷ジョブを生成する。
【００２４】
換言すると、ステップ１０６では、ステップ１０６での処理をＣＰＵ１２ｃが実行することにより、プリンタ１６に解釈可能なプリンタ言語で記述された印刷ジョブに変換可能な中間形式の印刷ジョブを生成するようにＣＰＵ１２ｃ自身が制御される、ということになる。
【００２５】
次のステップ１２０では、生成した印刷ジョブをサーバ１４のスプール（ＨＤＤ１４ｂ）に出力し、本印刷ジョブ生成処理ルーチンを終了する。
【００２６】
一方、ステップ１０４で、印刷待ちジョブがなかったと判断された場合には、次のステップ１０８で、印刷条件の中に、生成される印刷ジョブが中間形式の印刷ジョブであることを必須とする印刷条件が含まれているか否かを判断することにより、所定の印刷条件を検出する。このような印刷条件としては、例えば、複数のページ（Ｎページ）の各々を縮小して１つのページに印刷する（例えば、Ｎｕｐ）印刷条件がある。
【００２７】
ステップ１０８で、中間形式の印刷ジョブであることを必須とする印刷条件が含まれていたと判断された場合には、中間形式の印刷ジョブを生成する必要があるので、次のステップ１０６で、中間形式の印刷ジョブを生成する。
【００２８】
一方、ステップ１０８で中間形式の印刷ジョブであることを必須とする印刷条件が含まれていないと判断された場合には、次のステップ１１０で印刷（印刷ジョブを生成することも含む）をフォアグラウンドで行うか否かをＷｉｎｄｏｗｓ（登録商標）から提供される印刷時の設定を判断することにより、印刷時の負荷設定を判断する。すなわち、ステップ１１０では、印刷時の負荷設定を判断することにより、所定の印刷条件を検出する。
【００２９】
ステップ１１０で、否定判断がされた場合、すなわち、印刷をバックグラウンドで行う設定であると判断された場合には、印刷ジョブを生成する際のＣＰＵ１２ｃの負荷をより軽減する必要があるため、次のステップ１０６に進み、中間形式の印刷ジョブを生成する。これは、中間形式の印刷ジョブを生成する場合のほうが、プリンタ言語で記述された印刷ジョブを生成する場合よりもＣＰＵ１２ｃの負荷が軽いためである。
【００３０】
一方、ステップ１１０で、肯定判断がされた場合には、次のステップ１１２で、ＣＰＵ１２ｃ及びメモリ（ＲＡＭ１２ｄ）の現在の使用率を、例えばＷｉｎｄｏｗｓ（登録商標）のタスクマネージャのプログラムを実行することにより検出する。
【００３１】
次のステップ１１４では、ステップ１１２で検出したＣＰＵ１２ｃの現在の使用率が、第１の所定値、例えば３０％以下であるか否かを判断し、肯定判断がされた場合、すなわち３０％以下であると判断された場合には、次のステップ１２６へ進み、否定判断がされた場合、すなわち３０％より大きいと判断された場合には、次のステップ１１６へ進む。
【００３２】
ステップ１１６では、ステップ１１２で検出したＣＰＵ１２ｃの現在の使用率が、ステップ１１４における第１の所定値より大きい第２の所定値、例えば６０％以下であるか否かを判断する。なお、第２の所定値については、例えば、実験的又は統計的に、ＣＰＵ１２ｃが、負荷が軽い中間形式の印刷ジョブを生成することは容易（例えば、所定時間以内に印刷ジョブが生成可能）だが、負荷がかかるプリンタ言語で記述された印刷ジョブを生成することは容易でないときのＣＰＵ１２ｃの使用率を求めておき、この求めたＣＰＵ１２ｃの使用率を第２の所定値として設定しておけばよい。
【００３３】
ステップ１１６で、ステップ１１２で検出したＣＰＵ１２ｃの現在の使用率が、第２の所定値より大きいと判断された場合には、次のステップ１１８で、上述した印刷の実行の指示があった印刷対象のデータ及び印刷条件に基づいて、プリンタ１６で解釈可能なプリンタ言語で記述された印刷ジョブに変換可能な中間形式の印刷ジョブを生成し、次のステップ１２０へ進む。
【００３４】
換言すると、ステップ１１８では、ステップ１１８での処理をＣＰＵ１２ｃが実行することにより、プリンタ１６に解釈可能なプリンタ言語で記述された印刷ジョブに変換可能な中間形式の印刷ジョブを生成するようにＣＰＵ１２ｃ自身が制御される、ということになる。
【００３５】
一方、ステップ１１６で、ステップ１１２で検出したＣＰＵ１２ｃの現在の使用率が、第２の所定値以下であると判断された場合には、次のステップ１２２で、ステップ１１２で検出したメモリ（ＲＡＭ１２ｄ）の現在の使用率が第３の所定値、例えば５０％以下であるか否かを判断する。なお、第３の所定値については、例えば、実験的又は統計的に、印刷対象のデータのうちデータ容量が比較的少ないテキストデータからなるテキスト部に対してはプリンタ言語で印刷ジョブの対応する部分を生成し、データ容量が比較的多いイメージデータからなるイメージ部に対しては中間形式で印刷ジョブの対応する部分を生成することにより印刷ジョブを生成した場合に、ＣＰＵ１２ｃにかかる負荷が低くなりかつメモリが圧迫されないときのメモリの使用率の最大値を求めておき、この求めたメモリの使用率の最大値を第３の所定値として設定しておけばよい。
【００３６】
ステップ１２２で、５０％以下であると判断された場合には、次のステップ１２４で、上述した印刷の実行の指示があった印刷対象のデータ及び印刷条件に基づいて、印刷対象となるデータのうち、テキストデータからなるテキスト部が含まれている場合にはこのテキスト部に対してはプリンタ言語で印刷ジョブの対応する部分を生成し、イメージデータからなるイメージ部が含まれている場合にはこのイメージ部に対しては中間形式で印刷ジョブの対応する部分を生成することにより印刷ジョブを生成し、ステップ１２０へ進む。これにより、中間形式及びプリンタ言語の記述が混在した印刷ジョブが生成される。
【００３７】
すなわち、ステップ１２４では、ステップ１２４での処理をＣＰＵ１２ｃが実行することにより、中間形式のデータ及びプリンタ言語で記述されたデータが混在した印刷ジョブを生成するようにＣＰＵ１２ｃ自身が制御される。
【００３８】
一方、ステップ１２２で、５０％より大きいと判断された場合には、次のステップ１２６で、上述した印刷の実行の指示に含まれている印刷の実行先のプリンタが、ネットワーク接続であるか否かを判断する。例えば、ステップ１２６では、各プリンタ毎に、クライアント１２とネットワークによって接続されているのか、それとも、クライアント１２とダイレクトに接続されているのかを示す情報を予めユーザによってＨＤＤ１２ｂに記憶させておき、この情報をＨＤＤ１２ｂから読み込んで印刷の実行先のプリンタがネットワーク接続であるか否かを判断する。
【００３９】
ステップ１２６で否定判断、すなわち印刷の実行先のプリンタが、クライアント１２とダイレクトに接続されていると判断された場合には、次のステップ１４２で、上述した印刷の実行の指示があった印刷対象のデータ及び印刷条件に基づいて、プリンタ１６で解釈可能なプリンタ言語で記述された印刷ジョブを生成し、ステップ１２０へ進む。
【００４０】
すなわち、ステップ１４２では、ステップ１４２での処理をＣＰＵ１２ｃが実行することにより、プリンタ１６に解釈可能なプリンタ言語で記述された印刷ジョブを生成するようにＣＰＵ１２ｃ自身が制御される。
【００４１】
一方、ステップ１２６で肯定判断、すなわち印刷の実行先のプリンタが、クライアント１２とネットワークによって接続されていると判断された場合には、次のステップ１２８で、クライアント１２とサーバ１４とが接続されているネットワーク１８の現在の帯域使用率を、例えばＷｉｎｄｏｗｓ（登録商標）のネットワークモニタのプログラムを実行することにより検出する。
【００４２】
次のステップ１３０では、ステップ１２８で検出したネットワーク１８の現在の帯域使用率が第４の所定値、例えば３５％以上であるか否かを判断する。なお、第４の所定値については、例えば、実験的又は統計的に、コリジョンの発生が多くなり、遅延や通信エラーが発生し易くなる帯域使用率の最小値を求めておき、この求めた帯域使用率の最小値を第４の所定値として設定しておけばよい。
【００４３】
次のステップ１３２では、プリントサーバとしてのサーバ１４がネットワーク内に存在するか否かを判断する。例えば、ステップ１３２では、プリントサーバが存在する場合にはその存在を示す情報を予めユーザによってＨＤＤ１２ｂに記憶させておき、この情報をＨＤＤ１２ｂから読み込んでプリントサーバがネットワーク内に存在するか否かを判断する。
【００４４】
ステップ１３２で、否定判断、すなわちプリントサーバがネットワーク内に存在しないと判断された場合には、次のステップ１４２へ進み、一方、肯定判断、すなわちプリントサーバがネットワーク内に存在すると判断された場合には、次のステップ１３４で、サーバ１４の負荷情報の送信要求をサーバ１４に対して行う。
【００４５】
次のステップ１３６で、サーバ１４から負荷情報を受信した場合には、次のステップ１３８で、負荷情報から得られるＣＰＵ１４ｃの現在の使用率が第５の所定値、例えば３０％以下であるか否かを判断する。なお、第５の所定値については、例えば、実験的又は統計的に、ＣＰＵ１４ｃが、中間形式の印刷ジョブをプリンタ言語で記述された印刷ジョブに変換することが容易（例えば、所定時間以内に変換可能）であるときのＣＰＵ１４ｃの使用率を求めておき、この求めたＣＰＵ１４ｃの使用率の最大値を所定値として設定しておけばよい。
【００４６】
すなわち、ステップ１３４及びステップ１３６では、サーバ１４のＣＰＵ１４ｃの現在の使用率を検出する。
【００４７】
ステップ１３８で、否定判断がされた場合には、次のステップ１４２へ進み、一方、肯定判断がされた場合には、次のステップ１４０で、上述した印刷の実行の指示があった印刷対象のデータ及び印刷条件に基づいて、プリンタ１６で解釈可能なプリンタ言語で記述された印刷ジョブに変換可能な中間形式の印刷ジョブを生成し、次のステップ１２０へ進む。すなわち、ステップ１４０では、ステップ１４０での処理をＣＰＵ１２ｃが実行することにより、プリンタ１６に解釈可能なプリンタ言語で記述された印刷ジョブに変換可能な中間形式の印刷ジョブを生成するようにＣＰＵ１２ｃ自身が制御される。
【００４８】
次に、サーバ１４のＣＰＵ１４ｃが行うプリンタへの印刷ジョブ出力処理ルーチンについて図４を用いて説明する。なお、本実施の形態において、このプリンタへの印刷ジョブ出力処理ルーチンは、クライアント１２から印刷ジョブが入力されてサーバ１４のＨＤＤ１４ｂのスプールディレクトリに、入力された印刷ジョブが記憶されたことをＣＰＵ１４ｃが検出した場合に実行される。
【００４９】
まず、ステップ２００で、先頭の印刷ジョブ、すなわち、スプールディレクトリに最も早く記憶された印刷ジョブを取り出す。
【００５０】
次のステップ２０２では、取り出した印刷ジョブのテキスト部及びイメージ部が中間形式の印刷ジョブであるか否かを判断する。
【００５１】
ステップ２０２で肯定判断がされた場合には、次のステップ２０４で、取り出した印刷ジョブをプリンタ言語で記述された印刷ジョブに変換し、次のステップ２１０へ進む。
【００５２】
一方、ステップ２０２で否定判断がされた場合には、次のステップ２０６で、取り出した印刷ジョブが、テキスト部が中間形式でかつイメージ部がプリンタ言語で記述された印刷ジョブであるか否かを判断する。
【００５３】
ステップ２０６で、肯定判断がされた場合には、次のステップ２０８で、取り出した印刷ジョブのテキスト部のみをプリンタ言語で記述された印刷ジョブに変換し、次のステップ２１０へ進む。
【００５４】
一方、ステップ２０６で、否定判断がされた場合には、次のステップ２１０で、プリンタ１６に、プリンタ言語で記述された印刷ジョブを出力する。
【００５５】
以上、説明した印刷ジョブ生成処理及びプリンタへの印刷ジョブ出力処理によって、クライアント１２から出力された印刷ジョブに基づいた印刷が、プリンタ１６によって実行される。
【００５６】
なお、本実施の形態において、印刷ジョブ生成処理では、ステップ１０４でプリンタ１６の現在の印刷状況を検出し、ステップ１０８及びステップ１１０で印刷条件を検出し、ステップ１１２でＣＰＵ１２ｃ及びメモリ（ＲＡＭ１２ｄ）の現在の使用率を検出し、ステップ１２８でネットワーク１８の現在の帯域使用率を検出し、ステップ１３４及びステップ１３６でサーバ１４のＣＰＵ１４ｃの現在の使用率を検出して、検出結果に基づいて、ステップ１０６、ステップ１１８、ステップ１２４、ステップ１４０、またはステップ１４２で対応する印刷ジョブを生成する例について説明したが、本発明はこれに限られず、プリンタ１６の現在の印刷状況、印刷条件、クライアント１２のＣＰＵ１２ｃ及びメモリ（ＲＡＭ１２ｄ）の現在の使用率、ネットワーク１８の現在の帯域使用率、及びサーバ１４のＣＰＵ１４ｃの現在の使用率の少なくとも１つを検出して、その検出結果に基づいて、対応する印刷ジョブを生成するようにしてもよい。この場合に、例えば、ステップ１０４で否定判断、ステップ１０８で否定判断、ステップ１１０で肯定判断、ステップ１１４で肯定判断、ステップ１２２で否定判断、及びステップ１３０で肯定判断の少なくとも１つの判断がされた場合には、プリンタ１６で解釈可能なプリンタ言語で記述された印刷ジョブを生成するために、ステップ１４２に進むようにしてもよい。このとき、下記の表１に示すように、プリンタ１６の現在の印刷状況、印刷条件、クライアント１２のＣＰＵ１２ｃ及びメモリ（ＲＡＭ１２ｄ）の現在の使用率、ネットワーク１８の現在の帯域使用率、及びサーバ１４のＣＰＵ１４ｃの現在の使用率の少なくとも１つの検出結果に基づいて、クライアント１２は、中間形式の印刷ジョブを生成するか、プリンタ言語で記述された印刷ジョブを生成するか、または前記中間形式及び前記プリンタ言語の記述が混在した印刷ジョブを生成する。
【００５７】
【表１】
2009020752.tif 000003
【図面の簡単な説明】
【００５８】
【図１】本実施の形態を示す概略図である。
【図２】本実施の形態におけるクライアントのＣＰＵが行う印刷ジョブ生成処理ルーチンのフローチャートを示す図である。
【図３】本実施の形態におけるクライアントのＣＰＵが行う印刷ジョブ生成処理ルーチンのフローチャートを示す図である。
【図４】本実施の形態におけるサーバのＣＰＵが行うプリンタへの印刷ジョブ出力処理ルーチンのフローチャートを示す図である。
【符号の説明】
【００５９】
１０      印刷システム
１２      クライアント
１２ｃ    ＣＰＵ
１４      サーバ
１４ｃ    ＣＰＵ
１６      プリンタ
１８      ネットワーク
【図１】
2009020752.tif 000004
【図２】
2009020752.tif 000005
【図３】
2009020752.tif 000006
【図４】
2009020752.tif 000007