(57)【要約】    【課題】  本発明は、通信回線の混雑を回避し、印刷時間を短縮することができる印刷制御プログラムを提供する。    【解決手段】  プリンタドライバ２０３は、アプリケーション２０１から印刷実行が指示されると、ＯＳから描画命令をオブジェクト毎に取得し、オブジェクト毎の印刷可否の設定を示す情報である特定オブジェクト設定情報１１００を取得し、取得した特定オブジェクト情報１１００に基づいて、取得した描画命令から印字するオブジェクトの印刷ジョブデータ（ＰＤＬデータ）を作成し、作成された印刷ジョブデータ（ＰＤＬデータ）をプリンタ１５０に送信する。【選択図】      図１３
2006146363.tif 000002
【特許請求の範囲】
【請求項１】
複数のオブジェクトを含む印刷データの印刷を制御する印刷制御装置で実行される印刷制御プログラムにおいて、
前記複数のオブジェクトの各々に印刷可否設定を行う設定モジュールと、
アプリケーションから前記印刷データを受け付ける受付モジュールと、
前記受け付けた印刷データを中間コードデータに変換する変換モジュールと、
前記変換された中間コードデータを前記オブジェクト毎に蓄積する蓄積モジュールと、
前記蓄積された中間コードデータに基づいて前記印刷許可が設定されたオブジェクトの印刷ジョブデータを生成する生成モジュールと、
前記生成した印刷ジョブデータを印刷装置に送信する送信モジュールとを備えることを特徴とする印刷制御プログラム。
【請求項２】
前記設定モジュールは、予め設定された複数の異なる条件の印刷可否設定から一の印刷可否設定を選択させることを特徴とする請求項１に記載の印刷制御プログラム。
【請求項３】
前記設定モジュールは、前記アプリケーション毎に異なる条件の印刷可否設定を行うことを特徴とする請求項１又は２に記載の印刷制御プログラム。
【請求項４】
前記設定モジュールにより設定された印刷可否設定の確認画面を表示する確認画面表示モジュールを備えることを特徴とする請求項１乃至３のいずれか１項に記載の印刷制御プログラム。
【請求項５】
前記確認画面表示モジュールは、前記設定モジュールにより設定された印刷可否設定で印刷した場合のプレビュー画像を表示することを特徴とする請求項４に記載の印刷制御プログラム。
【請求項６】
前記印刷装置との回線状況の情報を取得する回線状況情報取得モジュールと、
前記取得した回線状況の情報に基づいて、前記複数の異なる条件の印刷可否設定における印刷終了時間を夫々算出する算出モジュールとを備えることを特徴とする請求項２乃至５のいずれか１項に記載の印刷制御プログラム。
【請求項７】
前記算出モジュールにより算出された印刷終了時間を表示する印刷終了時間表示モジュールを備えることを特徴とする請求項６に記載の印刷制御プログラム。
【請求項８】
前記算出モジュールは、全てのオブジェクトの印刷を許可した場合の印刷終了時間を算出し、
前記生成モジュールは、前記全てのオブジェクトの印刷を許可した場合の印刷終了時間が所定値以下であるときは、前記設定された印刷可否設定に拘わらず前記全てのオブジェクトの印刷ジョブデータを生成することを特徴とする請求項６又は７に記載の印刷制御プログラム。
【請求項９】
前記確認画面表示モジュールは、前記全てのオブジェクトの印刷を許可した場合の印刷終了時間が所定値以下であるときは、前記確認画面を表示しないことを特徴とする請求項８に記載の印刷制御プログラム。
【請求項１０】
前記設定モジュールは、前記複数のオブジェクトのうちのイメージオブジェクトの枠線のみを印刷する設定を行うことを特徴とする請求項１乃至９のいずれか１項に記載の印刷制御プログラム。
【請求項１１】
前記生成モジュールは、前記設定モジュールにより前記複数のオブジェクトのうちのテキストオブジェクトのみの印刷が許可されたときは、前記テキストオブジェクトを再配置して印刷ジョブデータを生成することを特徴とする請求項１乃至１０のいずれか１項に記載の印刷制御プログラム。
【請求項１２】
複数のオブジェクトを含む印刷データの印刷を制御する印刷制御装置において、
前記複数のオブジェクトの各々に印刷可否設定を行う設定手段と、
アプリケーションから前記印刷データを受け付ける受付手段と、
前記受け付けた印刷データを中間コードデータに変換する変換手段と、
前記変換された中間コードデータを前記オブジェクト毎に蓄積する蓄積手段と、
前記蓄積された中間コードデータに基づいて前記印刷許可が設定されたオブジェクトの印刷ジョブデータを生成する生成手段と、
前記生成した印刷ジョブデータを印刷装置に送信する送信手段とを備えることを特徴とする印刷制御装置。
【請求項１３】
複数のオブジェクトを含む印刷データの印刷を制御する印刷制御装置の印刷制御方法において、
前記複数のオブジェクトの各々に印刷可否設定を行う設定ステップと、
アプリケーションから前記印刷データを受け付ける受付ステップと、
前記受け付けた印刷データを中間コードデータに変換する変換ステップと、
前記変換された中間コードデータを前記オブジェクト毎に蓄積する蓄積ステップと、
前記蓄積された中間コードデータに基づいて前記印刷許可が設定されたオブジェクトの印刷ジョブデータを生成する生成ステップと、
前記生成した印刷ジョブデータを印刷装置に送信する送信ステップとを備えることを特徴とする印刷制御方法。
【請求項１４】
複数のオブジェクトを含む印刷データの印刷を実行する印刷装置と、前記印刷装置を制御する印刷制御装置とを備える印刷制御システムにおいて、
前記印刷制御装置は、
前記複数のオブジェクトの各々に印刷可否設定を行う設定手段と、
アプリケーションから前記印刷データを受け付ける受付手段と、
前記受け付けた印刷データを中間コードデータに変換する変換手段と、
前記変換された中間コードデータを前記オブジェクト毎に蓄積する蓄積手段と、  
前記蓄積された中間コードデータに基づいて前記印刷許可が設定されたオブジェクトの印刷ジョブデータを生成する生成手段と、
前記生成した印刷ジョブデータを前記印刷装置に送信する送信手段とを備えることを特徴とする印刷制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷制御プログラム、印刷制御装置及び方法、並びに印刷制御システムに関する。
【背景技術】
【０００２】
従来の印刷制御装置は、基本的にユーザからの印刷指示があれば、出力可否に関する情報を何ら参照することなく印刷を実行するので、該印刷制御装置が接続された通信回線の負担が大きくなり、印刷時間が長くなる場合があった。
【０００３】
そこで、印刷時間を短縮するために印刷データ制限を設けるアプローチとして、オペレーションシステムから送られた描画オブジェクトから一部の描画オブジェクトを抽出し、抽出した描画オブジェクトのみを印刷する印刷制御装置が提案されている（例えば、特許文献１参照）。この印刷制御装置によれば、印刷制御プログラム（プリンタドライバソフトウェア）が生成する印刷データからテキストオブジェクトデータのみを抽出して印刷することができるので、通信回線の負担を軽減し、印刷時間を短縮することができる。
【０００４】
また、通信回線の状況に応じて印刷ジョブデータの受信方法及び印刷方法を制御する印刷制御装置が提案されている（例えば、特許文献２参照）。この印刷装置によれば、通信回線が混雑しているときは低解像度の画像データを受信するので、通信回線の負担を軽減し、印刷時間を短縮することができる。
【特許文献１】特開２００２−２７８７２７号公報
【特許文献２】特開平１１−１１０１４８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記特許文献１及び特許文献２に記載されている印刷制御装置は、以下の課題がある。  印刷データ内にイメージオブジェクトデータとテキストオブジェクトデータとが混在している場合、イメージオブジェクトデータのみを出力する印刷制御を実現していない。
【０００６】
印刷データ内にテキストオブジェクトデータが存在しなかった場合、テキストオブジェクトデータのみの印刷を行うと白紙が出力され、ユーザは出力不正かどうか判断することができない。
【０００７】
テキストオブジェクトデータを抽出した結果をプリンタに出力するまで確認できないので、不要なジョブが通信回線を混雑させることがある。回線が細い場合、不要なジョブで回線が圧迫される。
【０００８】
印刷終了時間が分からないという問題もあり、ユーザに不便である。
【０００９】
通信回線の状況に応じて出力結果が変わるので、意図した出力結果にならない場合がある。
【００１０】
本発明の目的は、上記課題に鑑みてなされたものであり、通信回線の混雑を回避し、印刷時間を短縮することができる印刷制御プログラム、印刷制御装置及び方法、並びに印刷制御システムを提供することにある。
【課題を解決するための手段】
【００１１】
上述の目的を達成するために、請求項１記載の印刷制御プログラムは、複数のオブジェクトを含む印刷データの印刷を制御する印刷制御装置で実行される印刷制御プログラムにおいて、前記複数のオブジェクトの各々に印刷可否設定を行う設定モジュールと、アプリケーションから前記印刷データを受け付ける受付モジュールと、 前記受け付けた印刷データを中間コードデータに変換する変換モジュールと、前記変換された中間コードデータを前記オブジェクト毎に蓄積する蓄積モジュールと、前記蓄積された中間コードデータに基づいて前記印刷許可が設定されたオブジェクトの印刷ジョブデータを生成する生成モジュールと、前記生成した印刷ジョブデータを印刷装置に送信する送信モジュールとを備えることを特徴とする。
【００１２】
上述の目的を達成するために、請求項１２記載の印刷制御装置は、複数のオブジェクトを含む印刷データの印刷を制御する印刷制御装置において、前記複数のオブジェクトの各々に印刷可否設定を行う設定手段と、アプリケーションから前記印刷データを受け付ける受付手段と、 前記受け付けた印刷データを中間コードデータに変換する変換手段と、前記変換された中間コードデータを前記オブジェクト毎に蓄積する蓄積手段と、前記蓄積された中間コードデータに基づいて前記印刷許可が設定されたオブジェクトの印刷ジョブデータを生成する生成手段と、前記生成した印刷ジョブデータを印刷装置に送信する送信手段とを備えることを特徴とする。
【００１３】
上述の目的を達成するために、請求項１３記載の印刷制御方法は、複数のオブジェクトを含む印刷データの印刷を制御する印刷制御装置の印刷制御方法において、前記複数のオブジェクトの各々に印刷可否設定を行う設定ステップと、アプリケーションから前記印刷データを受け付ける受付ステップと、 前記受け付けた印刷データを中間コードデータに変換する変換ステップと、前記変換された中間コードデータを前記オブジェクト毎に蓄積する蓄積ステップと、前記蓄積された中間コードデータに基づいて前記印刷許可が設定されたオブジェクトの印刷ジョブデータを生成する生成ステップと、前記生成した印刷ジョブデータを印刷装置に送信する送信ステップとを備えることを特徴とする。
【００１４】
上述の目的を達成するために、請求項１４記載の印刷制御システムは、複数のオブジェクトを含む印刷データの印刷を実行する印刷装置と、前記印刷装置を制御する印刷制御装置とを備える印刷制御システムにおいて、前記印刷制御装置は、前記複数のオブジェクトの各々に印刷可否設定を行う設定手段と、アプリケーションから前記印刷データを受け付ける受付手段と、 前記受け付けた印刷データを中間コードデータに変換する変換手段と、前記変換された中間コードデータを前記オブジェクト毎に蓄積する蓄積手段と、前記蓄積された中間コードデータに基づいて前記印刷許可が設定されたオブジェクトの印刷ジョブデータを生成する生成手段と、前記生成した印刷ジョブデータを前記印刷装置に送信する送信手段とを備えることを特徴とする。
【発明の効果】
【００１５】
本発明によれば、印刷に際して、印刷時間を考慮した形で指定されたオブジェクトのみの印刷をより好適に行うことが可能になる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施の形態を図面を参照しながら詳述する。
【００１７】
図１は、本発明の実施の形態に係る印刷制御装置を有する印刷制御システムの全体構成を示すブロック図である。
【００１８】
図１において、印刷制御システムは、ホストコンピュータ１００（印刷制御装置）と、プリンタ１５０（印刷装置）とを備え、これらはデータ転送経路１２１を介して互いに接続されている。
【００１９】
ホストコンピュータ１００は、ホストコンピュータ１００全体を制御するＣＰＵ１０１と、ＣＰＵ１０１の主メモリ、ワークエリア等として機能するＲＡＭ１０２と、ＣＰＵ１０１が実行する制御プログラム等を記憶するＲＯＭ１０３と、ポインティングデバイスとしてのキーボード（ＫＢ）１０９と、ＫＢ１０９や不図示のマウス等のポインティングデバイスからの入力を制御する入力コントローラ（入力Ｃ）１０５と、表示器としてのＣＲＴディスプレイ（ＣＲＴ）１１０と、ＣＲＴ１１０等の表示器への表示を制御するビデオコントローラ（ＶＣ）１０６と、ＣＰＵ１０１が実行する制御プログラム等を記憶するハードディスク（ＨＤ）、フロッピー（登録商標）ディスク（ＦＤ）等の外部メモリ１１１と、外部メモリ１１１へのアクセスを制御するメモリコントローラ（ＭＣ）１０７と、データ転送経路１２１を介して、外部機器と接続・通信する通信インターフェースコントローラ（通信Ｉ／ＦＣ）１０８とを備える。
【００２０】
ＣＰＵ１０１、ＲＡＭ１０２、ＲＯＭ１０３、入力Ｃ１０５、ＶＣ１０６、ＭＣ１０７、及び通信Ｉ／ＦＣ１０８は、システムバス１０４を介して互いに接続されている。
【００２１】
ＲＯＭ１０３又は外部メモリ１１１には、ＣＰＵ１０１の制御プログラムであるＢＩＯＳ（Basic Input/Output System）、オペレーティングシステムプログラム（以下、単に「ＯＳ」という。）、及び後述する各処理を実行するために必要な各種プログラム等が記憶されている。本実施の形態で使用するＯＳは、例えば、マイクロソフト社製のウィンドウズ（登録商標）ＸＰを想定するが、これに限るものではない。
【００２２】
表示器はＣＲＴ１１０に限られるものではなく、液晶ディスプレイであってもよい。
【００２３】
外部メモリ１１１は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、及び各種データ等を記憶するＨＤ、ＦＤ、又はＰＣＭＣＩＡカードスロットにアダプタを介して接続されるコンパクトフラッシュ（登録商標）メモリ等から構成される。
【００２４】
通信Ｉ／ＦＣ１０８は、例えば、ＴＣＰ／ＩＰを用いたインターネット通信やプリンタ１５０とのデータ送受信等を制御する。
【００２５】
ＣＰＵ１０１は、例えば、ＲＡＭ１０２内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、ＣＲＴ１１０に表示情報を表示する。また、ＣＰＵ１０１は、ＣＲＴ１１０にマウスカーソル等を表示することによりユーザによる指示を可能にする。
【００２６】
プリンタ１５０は、プリンタ１５０全体を制御するＣＰＵ１１２と、ＣＰＵ１１２の主メモリ、ワークエリア等として機能すると共に、出力情報展開領域、環境データ格納領域等に用いられるＲＡＭ１１９と、出力情報を生成する際に使用するフォントデータ等を記憶するフォントＲＯＭ１１３ａと、ＣＰＵ１１２が実行する制御プログラム等を記憶するプログラムＲＯＭ１１３ｂと、ハードディスク等の外部メモリ１１４がないプリンタの場合には、ホストコンピュータ上で利用される情報等が記憶されるデータＲＯＭ１１３ｃと、外部機器と接続・通信する入力部１１８と、印刷を実行する印刷部１１７と、印刷部１１７を制御する印刷部インターフェース（印刷部Ｉ／Ｆ）１１６と、操作のためのスイッチおよびＬＥＤ表示器等が配されている操作パネル等の操作部１２２と、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶するＨＤ、ＩＣカード等の等の外部メモリ１１４と、外部メモリ１１４へのアクセスを制御するメモリコントローラ（ＭＣ）１２０とを備える。
【００２７】
ＣＰＵ１１２、ＲＡＭ１１９、ＲＯＭ１１３、入力部１１８、印刷部Ｉ／Ｆ１１６、操作部１２２と、ＭＣ１２０は、システムバス１１５を介して互いに接続されている。
【００２８】
ＣＰＵ１１２は、プログラムＲＯＭ１１３ｂ又は外部メモリ１１４に記憶された制御プログラム等に基づいて、印刷部１１７に出力情報としての画像信号を出力する。入力部１１８は、データ転送経路１２１を介したホストコンピュータ１００との通信処理を制御する。ＲＡＭ１１９は、不図示の増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。
【００２９】
また、プリンタ１５０の外部メモリ１１４は１個に限るものではなく、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラム等を格納した外部メモリを複数接続できるように構成されていてもよい。更に、不図示のＮＶＲＡＭを有し、操作部１２２からのプリンタモード設定情報を記憶するように構成されてもよい。
【００３０】
本実施の形態において、プリンタ１５０がサポートするページ記述言語（以下、「ＰＤＬ」という。）は、LBP Image Processing System（以下、「ＬＩＰＳ」という。）等の比較的に高度なＰＤＬであると想定しているが、これに限るものではない。
【００３１】
本発明の実施の形態に係る印刷制御プログラムとしてのプリンタドライバ２０３（図２）は外部メモリ１１１に記録されており、必要に応じてＲＡＭ１０２にロードされることによりＣＰＵ１０１によって実行される。また、プリンタドライバが用いる定義ファイル及び各種情報テーブルは外部メモリ１１１に格納されている。
【００３２】
なお、上記印刷制御システムの構成は一例であり、用途や目的に応じて様々な構成例があることは云うまでもない。例えば、本発明は、単体の機器に適用されてもよく、ＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）等のネットワークを介して接続された複数の機器からなるシステムに適用されてもよい。
【００３３】
図２は、図１におけるホストコンピュータ１００のソフトウェア構成を概略的に示すブロック図である。
【００３４】
図２において、ホストコンピュータ１００は、アプリケーションプログラム（以下、「アプリケーション」という。）２０１と、グラフィックスエンジン２０２と、プリンタドライバ２０３と、プリントサブシステム２０４とを備え、これらは、夫々外部メモリ１１１に保存されたファイルとして存在し、ＯＳやそのモジュールを利用するモジュールによる制御に従ってＣＰＵ１０１によってＲＡＭ１０２にロードされて実行されるプログラムモジュールである。
【００３５】
アプリケーション２０１及びプリンタドライバ２０３は、ＦＤ、ＣＤ−ＲＯＭ、又は後述するネットワーク３０１（図３）を介してＨＤに追加される。アプリケーション２０１は、グラフィックスエンジン２０２を利用してプリンタ１５０に印刷ジョブデータを出力することにより、プリンタ１５０に印刷を行わせる。
【００３６】
グラフィックスエンジン２０２は、印刷装置毎に用意されたプリンタドライバ２０３を起動し、プリンタドライバ２０３は、アプリケーション２０１の印刷データをＰＤＬによるプリンタ制御コマンドに変換する。プリンタドライバ２０３により変換されたプリンタ制御コマンドは、プリントサブシステム２０４を経て通信インタフェース２２１経由でプリンタ１５０に出力される。
【００３７】
プリントサブシステム２０４は、ＯＳによって起動され、印刷ジョブのスケジューリング、プリンタ１５０との接続制御、及びプリンタ１５０のステータスの管理を行う。
【００３８】
プリンタドライバ２０３は、アプリケーション２０１から出力された印字や描画命令に対しプリンタ制御コマンドを生成しプリント出力に反映されるようプリンタ１５０に指示する機能だけでなく、プリンタドライバ２０３やプリンタ１５０が有する機能を制御するための設定を行う機能（以下、「ユーザインタフェース（ＵＩ）」という。）、その設定を記憶する機能、プリンタドライバ２０３やプリンタ１５０が有する機能の情報をアプリケーション２０１やＯＳに提供する機能、ユーザインタフェースで設定された機能をプリンタ１５０が有している場合にプリンタ制御命令を生成する機能、及び、ユーザインタフェースで設定された機能がプリンタドライバ２０３独自で行う機能の場合にその機能を実現する機能等を有する。
【００３９】
図３は、図１におけるホストコンピュータ１００及びプリンタ１５０を適用可能な印刷制御システムの一例を示すシステム構成図である。
【００４０】
図３において、印刷システムは、複数のホストコンピュータ１００、複数のプリンタ１５０ａ及び１５０ｂ、及びプリントサーバコンピュータ３００を有し、これらはネットワーク３０１を介して互いに接続されている。
【００４１】
ホストコンピュータ１００がネットワーク３０１に接続される構成の場合、ホストコンピュータ１００の通信Ｉ／Ｆコントローラ１０８はネットワークインタフェースカード（ＮＩＣ）の機能を有するものとする。
【００４２】
プリンタ１５０ａは、ネットワーク３０１に直接接続されている。また、プリンタ１５０ｂは、セントロニクスやＵＳＢ等のローカルインタフェース３０２を介して接続されたプリントサーバコンピュータ３００を介してネットワーク３０１に接続されている。なお、プリンタ１５０ａの入力部１１８は、ネットワークインタフェースカード（ＮＩＣ）の機能を有するものとする。
【００４３】
プリントサーバコンピュータ３００を介してネットワーク３０１に接続されるプリンタ１５０ｂにホストコンピュータ１００のいずれかから印刷ジョブを送信する場合、まずホストコンピュータ１００は、プリントサブシステム２０４を介して、プリントサーバコンピュータ３００へ印刷ジョブを送信する。
【００４４】
プリントサーバコンピュータ３００は、ホストコンピュータ１００から送信されてきた印刷ジョブを、プリントサーバコンピュータ３００が有するプリントサブシステムを介して、プリンタ１５０ｂへ送信する。これにより、ホストコンピュータ１００は、プリントサーバコンピュータ３００を介して印刷ジョブをプリンタ１５０ｂへ送信することができる。
【００４５】
また、ネットワーク３０１に直接接続されるプリンタ１５０ａにホストコンピュータ１００のいずれかから印刷ジョブを送信する場合、ホストコンピュータ１００は、プリントサブシステム２０４を介してプリンタ１５０ａに直接印刷ジョブを送信する。
【００４６】
図４は、図２のホストコンピュータ１００のＣＰＵ１０１によって実行される、印刷制御処理の基本的な流れを示す図である。ここでは、図２にあるモジュール感の連携についての説明を行う。この説明では、動作主体をアプリケーション２０１、グラフィックスエンジン２０２、及びプリンタドライバ２０３を動作主体として説明しているが、この図に記載されている各処理は、それらモジュールの制御に基づいてＣＰＵ１０１によって行われるものである。
【００４７】
図４において、アプリケーション２０１は、プリンタドライバ２０３と直接やり取りを行うのではなく、ＯＳが有するグラフィックスエンジン２０２を介してプリンタドライバ２０３とやり取りを行う。グラフィックスエンジン２０２はアプリケーション２０１から指示を受け、プリンタドライバ２０３に対して指示を行う。
【００４８】
まず、アプリケーション２０１は、片面／両面設定や部数設定などの印刷設定をＲＡＭ１０２に確保されたメモリを介してグラフィックスエンジン２０２に通知し（ステップＳ４０１）、グラフィックスエンジン２０２は、通知された印刷設定と、該印刷設定を基にプリンタドライバ２０３が印刷処理を行う上で必要なプリンタドライバ情報を格納する新たにＲＡＭ１０２上に確保されたメモリ領域の初期化要求をプリンタドライバ２０３に送信する（ステップＳ４０２）。これにより、プリンタドライバ２０３は、そのプリンタドライバ２０３が印刷処理を行うために必要なプリンタドライバ情報を保持するメモリ領域を確保し、印刷設定に従ってそのメモリ領域を初期化する。
【００４９】
次に、プリンタドライバ２０３は、ステップＳ４０２で受信した印刷設定に応じたプリンタドライバ２０３の印刷能力をグラフィックスエンジン２０２に通知する（ステップＳ４０３）。グラフィックスエンジン２０２は、最終的にプリンタ１５０に送信される印刷ジョブと該印刷ジョブに反映する印刷設定とを関連付けるために必要なハンドル値をアプリケーション２０１に送信する（ステップＳ４０４）。
【００５０】
次に、アプリケーション２０１は、印刷の開始要求をグラフィックスエンジン２０２に行い（ステップＳ４０５）、グラフィックスエンジン２０２は、プリンタドライバ２０３に印刷開始要求を行う（ステップＳ４０６）。これにより、プリンタドライバ２０３は、ＰＤＬの生成処理を開始し、プリンタ１５０が印刷開始に必要なプリンタ命令を生成する。なお、プリンタ命令を生成する処理は、最初のページ（１ページ目）の印刷処理が開始された時点（アプリケーションからの最初のページの描画指示を受信した時点）で行ってもよい。
【００５１】
次に、アプリケーション２０１は、グラフィックスエンジン２０２に対して文字やイメージ等の描画オブジェクトの描画指示を行い（ステップＳ４０７）、グラフィックスエンジン２０２は、プリンタドライバ２０３に描画オブジェクトの描画指示を行う（ステップＳ４０８）。これにより、プリンタドライバ２０３は、指定された描画オブジェクトや改ページ、更には印刷設定を途中で変更するための要求などをプリンタ１５０からの出力結果に反映させるためのプリンタ制御命令を適宜生成する。なお、印刷するページ数はアプリケーション２０１からの指定による。
【００５２】
次に、アプリケーション２０１は、印刷終了要求をグラフィックスエンジン２０２に行い（ステップＳ４０９）、グラフィックスエンジン２０２は、プリンタドライバ２０３に印刷終了要求を行う（ステップＳ４１０）。これにより、プリンタドライバ２０３は、プリンタ１５０が印刷終了に必要なプリンタ命令を生成し、ＰＤＬの生成処理を終了する。
【００５３】
次に、アプリケーション２０１は、ステップＳ４０２で取得したハンドル値の破棄要求をグラフィックスエンジン２０２に通知し（ステップＳ４１１）、グラフィックスエンジン２０２は、プリンタドライバ２０３に、プリンタドライバ情報の破棄要求を送信する（ステップＳ４１２）。これにより、プリンタドライバ２０３は、プリンタドライバ情報の破棄処理を行う。
【００５４】
上記ステップＳ４０５〜ステップＳ４１０の処理により、プリンタ１５０へ送信する印刷ジョブデータが生成される。
【００５５】
図５は、図２のホストコンピュータ１００のソフトウェア構成の詳細を示すブロック図である。
【００５６】
図５において、グラフィックスエンジン２０２からプリンタドライバ２０３へ印刷命令を送る際に、アプリケーション２０１からの印刷データを一旦中間コードからなるスプールファイル５０４を生成する。これにより、一旦スプールした中間コードデータの内容に対して、拡大縮小や、複数ページを１ページに縮小して印刷する等の加工を行うことにより、アプリケーションが有していない機能を実現することができる。
【００５７】
なお、印刷データの加工を行うためには、通常プリンタドライバ２０３が提供するウィンドウから設定を行い、プリンタドライバ２０３がその設定内容をＲＡＭ１０２上あるいは外部メモリ１１１上に保管する。
【００５８】
グラフィックスエンジン２０２からの印刷命令であるＤＤＩ関数をディスパッチャ５０１が受け取る。ディスパッチャ５０１がグラフィックスエンジン２０２から受け取った印刷命令（ＤＤＩ関数）が、アプリケーション２０１からグラフィックスエンジン２０２へ発行された印刷命令（ＧＤＩ関数）に基づくものである場合には、ディスパッチャ５０１による制御に基づいてＣＰＵ１０１は、外部メモリ１１１に格納されている内部スプール処理モジュールであるスプーラ５０３をＲＡＭ１０２にロードし、通常の印字データ作成処理部５０７ではなくスプーラ５０３へ印刷命令（ＤＤＩ関数）を送付する。
【００５９】
スプーラ５０３は受け取った印刷命令を解析し、ページ単位に中間コードに変換してスプールファイル５０４に出力する。このページ単位に格納されている中間コードのスプールファイルをページ描画ファイル（ＰＤＦ：Page Description File）と呼ぶ。また、スプーラ５０３は、プリンタドライバ２０３に対して設定されている印刷データに関する加工設定（製本印刷、Ｎｕｐ、両面、ステイプル、カラー／モノクロ指定等）をプリンタドライバ２０３から取得してジョブ単位のファイルとしてスプールファイル５０４に保存する。
【００６０】
このとき、ジョブ単位に格納されている設定ファイルをジョブ設定ファイル（ＳＤＦ:Spool Description File）と呼ぶ。なお、スプールファイル５０４は外部メモリ１１１上にファイルとして生成されるが、ＲＡＭ１０２上に生成されても構わない。更に、スプーラ５０３による制御に基づいてＣＰＵ１０１は、外部メモリ１１１に格納されているスプールファイルマネージャ５０５をＲＡＭ１０２にロードし、スプールファイルマネージャ５０５に対してスプールファイル５０４の生成状況を通知する。そしてスプールファイルマネージャ５０５による制御に基づいてＣＰＵ１０１は、スプールファイル５０４に保存された印刷データに関する加工設定の内容に従って印刷を行えるか否かを判断する。
【００６１】
ＣＰＵ１０１がグラフィックスエンジン２０２を利用して印刷を行えると判断した場合には、外部メモリ１１１に格納されているデスプーラ５０６をＲＡＭ１０２にロードし、デスプーラ５０６に対して、スプールファイル５０４に記述された中間コードのページ描画ファイルの印刷処理を行うように指示する。
【００６２】
デスプーラ５０６による制御に基づいてＣＰＵ１０１は、スプールファイル５０４に含まれる中間コードのページ描画ファイルをスプールファイル５０４に含まれる加工設定情報を含むジョブ設定ファイルに従って加工し、ＧＤＩ関数を再生成し、再度グラフィックスエンジン２０２経由でＧＤＩ関数を出力する。
【００６３】
プレビューア５０８は、スプールファイル５０４保存された中間コードや加工設定に基づいてＣＲＴ１１０への表示情報を作成し、所定のＵＩ上に表示するよう制御を行う。
【００６４】
ディスパッチャ５０１がグラフィックスエンジン２０２から受け取った印刷命令（ＤＤＩ関数）がデスプーラ５０６からグラフィックスエンジン２０２へ発行された印刷命令（ＧＤＩ関数）に基づいたものである場合には、ディスパッチャ５０１による制御に基づいてＣＰＵ１０１はスプーラ５０３ではなく、プリンタドライバの通常の印字データ作成処理部５０７に印刷命令を送る。プリンタドライバ２０３による制御に基づいてＣＰＵ１０１は、グラフィックエンジン２０２から取得したＤＤＩ関数に基づいてＰＤＬ等からなるプリンタ制御コマンドを生成し、プリントサブシステム２０４経由でプリンタ１５０に出力する。
【００６５】
本実施の形態において、描画属性をテキスト、イメージ、グラフィックスの３種類に大別し、夫々をテキストオブジェクト、イメージオブジェクト、グラフィックスオブジェクトという。簡単に分類すると文字データはテキストオブジェクト、画像データはイメージオブジェクト、ベクトル（図形）データはグラフィックスオブジェクトとなる。
【００６６】
本発明では、図６〜図１０のＵＩでそれぞれのオブジェクトの印刷の可否を登録し、登録内容に基づいて印刷を実行することで特定オブジェクト印刷を実現する。
【００６７】
以下、特定オブジェクトの印刷制約条件設定登録について説明する。
【００６８】
図６は、特定オブジェクト登録ＵＩ６００の一例を示す図である。
【００６９】
図６において、設定一覧６０１は、既に登録されている印刷制約条件設定の一覧である。設定一覧６０１には印刷時に選択可能な印刷設定「設定Ａ」、「設定Ｂ」、及び「設定Ｃ」と、それらのファイル名が表示される。「設定Ａ」で選択された登録内容においては左側に「設定Ａ」と表示される。
【００７０】
設定一覧６０１に新たに印刷設定を登録する場合は、ファイル名入力欄６０４にファイル名を入力し、全般設定の色設定６０５、印刷品質設定６０６を選択し、特定オブジェクト選択のイメージ設定６０７、図形設定６０８、及び文字設定６０９を印刷するか否かを夫々選択し、新規追加ボタン６０２を押下して登録する。設定が新規登録されると、ファイル名が設定一覧６０１に追加されると共に、後述する図１１の特定オブジェクト設定情報１１００が外部メモリ１１１に保存される。
【００７１】
この特定オブジェクト登録ＵＩ６００で印刷設定を行うことにより、コマンドサイズを小さくすることが可能になる。よって通信回線の混雑を回避し、印刷時間を短縮することができる。また、ユーザは、任意のオブジェクトを選択して印刷することができるので、ユーザの利便性が高い。
【００７２】
設定一覧６０１から印刷設定を削除したい場合は、設定一覧６０１の中から削除したい印刷設定を選択し、削除ボタン６０３を押下する。
【００７３】
ＯＫボタン６１１が押下されると設定を終了し、新規追加ボタン６０２を押下する前にキャンセルボタン６１２が押下された場合は、設定は登録されない。
【００７４】
また、特定オブジェクト登録ＵＩ６００で登録された印刷設定又は登録途中の印刷設定のプレビュー画像はサンプルデータ６１３で確認することができる。例えば、イメージを「枠線」で印刷、図形を「印刷する」、文字を「印刷しない」、色は「モノクロ」、印刷品質は「はやい」を選択した場合は、設定内容と同じようにプレビュー画像が表示される。プレビュー画像は外部メモリ１１１に記憶されており、特定オブジェクト登録ＵＩ６００で指定された条件に基づいて、ＣＰＵ１０１は適切なプレビュー画像を外部メモリ１１１から呼び出し、サンプルデータ６１３に表示させる。
【００７５】
このようなプレビュー画像が表示されるので、プレビュー画像を確認して印刷設定を選択することができる。
【００７６】
イメージ設定６０７で「印刷する」が選択された場合には、イメージ設定ボタン６１０を押下することが可能になり、イメージ設定ボタン６１０が押下されると図７のイメージ設定ＵＩ７００が表示される。このイメージ設定ＵＩ７００では、イメージオブジェクトの印刷の詳細設定を行うことができる。
【００７７】
図７において、イメージ設定ＵＩ７００では、イメージデータを加工することができ、加工内容として「通常印刷」、「粗い」（解像度を落とす）、又は「枠線」を選択することができる。イメージデータを加工せずに印刷ジョブデータにすると、コマンドサイズが大きくなり、回線を圧迫する原因となる。イメージ設定ＵＩ７００で「通常印刷」より「粗い」、「粗い」より「枠線」を選択することにより、相対的にコマンドサイズを減らし、もって印刷終了時間の短縮や、回線の混雑回避を図ることができる。
【００７８】
図８は、アプリケーション登録ＵＩ８００の一例を示す図である。
【００７９】
アプリケーション登録は、基本的には特定オブジェクト登録と同じであるが、アプリケーション別に設定登録が可能である点で特定オブジェクト登録と異なる。
【００８０】
図８において、設定一覧８０１には、ビジネスシーンでよく使用されるアプリケーションが予め登録されている。左側に「●」があるものが予め登録されているアプリケーションである。予め登録されているアプリケーションもユーザにより設定内容を変更することができる。また、予め登録されていないアプリケーションは、ファイル名８０３と拡張子８０４を設定し、新規追加ボタン８０２を押下することにより登録することができる。アプリケーション登録で登録された内容は拡張子で管理しているため、同じアプリケーションの設定は複数できるが、同一拡張子の設定は一つしか登録できない。勿論、拡張子で管理を行わず、アプリケーションごとに設定を管理する手法を採用しても構わない。
【００８１】
アプリケーションは夫々特徴をもったデータを作成するので、アプリケーション登録ＵＩ８００でアプリケーション登録を行うことにより、アプリケーションの特徴別に設定内容を登録し、もってユーザの利便性を向上させることができる。
【００８２】
図９は、特定オブジェクト設定ＵＩ９００の一例を示す図である。
【００８３】
図９において、設定Ａ、設定Ｂ、及び設定Ｃのコンボボックス９０１を用いて、特定オブジェクト登録ＵＩ６００で登録された印刷制約条件設定を選択する。図６の設定一覧６０１には、ここで設定されたものが表示される。共通設定９０３では、現在設定されている後述する図１２の共通設定情報１２００が表示される。設定変更ボタン９０４が押下されると、図１０の共通設定ＵＩが表示され、共通設定９０３の設定内容を変更することができる。
【００８４】
図１０は、共通設定ＵＩ１０００の一例を示すである。
【００８５】
図１０において、時間設定１００１では、印刷を終了するまでの時間として許容できる時間を設定する。デフォルト設定１００２では、印刷実行時にどの印刷設定をデフォルトの設定として使用するかを設定する。印刷設定ダイアログ表示設定１００３では、印刷実行時に後述する図２３の印刷設定確認ＵＩ２３００を表示するか否かの設定ができる。印刷設定ダイアログ表示設定１００３で「表示する」が選択されている場合、チェックボックス１００４にチェックを入れることができる。チェックボックス１００４にチェックが入っている場合、通常印刷の印字終了予定時間と時間設定１００１で設定した時間を比較して、通常印刷が設定時間内に終了するときには、通常印刷で出力し、印刷設定確認ＵＩ２３００は表示しない。
【００８６】
ＯＫボタン１００５が押下されると、共通設定ＵＩ１０００で設定された内容は後述する図１２の共通設定情報１２００として外部メモリ１１１に記憶される。
【００８７】
図１１は、外部メモリ１１１に保持される特定オブジェクト設定情報１１００の一例を示す図である。
【００８８】
図１１において、特定オブジェクト設定情報１１００は、オブジェクト毎の印刷可否の設定を示す情報である。オブジェクト情報１１０１の設定情報１１０２には、図６の設定一覧６０１に表示されている印刷時に選択可能な設定の情報が保存されている。例えば、設定情報１１０２の右辺には、設定Ａの場合には「Ａ」、設定Ｂの場合には「Ｂ」、設定Ｃの場合には「Ｃ」と、設定されてない場合は「Ｄ」が保存される。通常印刷の場合は、ユーザからは変更ができないが、設定１１０２の右辺には「Ｘ」が保存され、図８でアプリケーション別で登録した場合は、「Ｙ」が保存される。ここでは、設定Ａを示す「Ａ」が保存されている。
【００８９】
また、ファイル名情報１１０３の右辺には、図６の設定一覧６０１に入力されたファイル名が、「（ファイル名）.soj」というように保存される。
【００９０】
色情報１１０５の右辺には、図６の全般設定の色設定６０５で選択された色情報を示す値、例えば、色設定６０５で「カラー」が選択された場合は「０」、モノクロが選択された場合は「１」が保存される。
【００９１】
印刷品質情報１１０６の右辺には、図６の全般設定の印刷品質設定６０６で選択された印刷品質情報を示す値、例えば、印刷品質設定６０６で「きれい」が選択された場合は右辺に「０」、「はやい」が選択された場合は「１」が保存される。
【００９２】
イメージ情報１１０７の右辺には、図６のイメージ設定６０７で選択された情報を示す値、例えば、「印刷しない」が選択された場合は「０」、「印刷する」が選択された場合は「１」が保存される。同様に、グラフィックス情報１１０８、テキスト情報１１０９の右辺にも、グラフィックス設定６０８、テキスト設定６０９で選択された情報を示す値が夫々保存される。
【００９３】
イメージ設定情報１１１０には図７のイメージ設定画面７００で選択された情報を示す値、例えば、「通常印刷」が選択された場合は「０」、「粗い」が選択された場合は「１」、「枠線」が選択された場合は「２」が保存される。
【００９４】
図１２は、外部メモリ１１１に保持される共通設定情報１２００の一例を示す図である。
【００９５】
図１２において、オブジェクト情報１２０１のＡ〜Ｃには、図９のコンボボックス９０１で設定された設定Ａ〜Ｃのファイル名が夫々保存されている。共通設定情報１２０２には、共通設定ＵＩ１０００で設定された設定内容が保存される。即ち、時間設定１００１、デフォルト設定１００２、印刷設定ダイアログ表示設定１００３で設定された設定内容は、時間情報１２０３、デフォルト情報１２０４、印刷設定ダイアログ表示情報１２０５に夫々保存される。
【００９６】
デフォルト設定１２０４には、通常印刷の場合には「０」、アプリケーションの場合には「１」、設定Ａの場合には「２」、設定Ｂの場合には「３」、設定Ｃの場合には「４」が保持される。印刷設定ダイアログ表示設定情報１２０５には、印刷設定ダイアログ表示設定１００３で「表示する」が選択された場合には「０」、「表示しない」が選択された場合には「１」、チェックボックス１００４にチェックが入っている場合には「３」が保存される。
【００９７】
以上のようにして、特定オブジェクト設定情報１１００及び共通設定情報１２００が登録済み状態で印刷を実行した場合の流れを以下に説明する。
【００９８】
図１３は、図１におけるホストコンピュータ１００のＣＰＵ１０１によって実行される印刷制御処理のフローチャートである。
【００９９】
図１３において、プリンタドライバ２０３による制御に基づいてＣＰＵ１０１は、アプリケーション２０１から印刷実行が指示されると、外部メモリ１１１から共通設定情報１２００を取得し（ステップＳ１３０１）、どのアプリケーションから印刷実行が指示されているかを示すアプリケーション情報を取得し（ステップＳ１３０２）、後述する図１４の描画命令取得処理を実行して、ＯＳから描画命令をオブジェクト毎に取得し、取得した描画命令から印刷すべきデータの大きさやどのような描画がなされているかを示す情報を取得する（ステップＳ１３０３）。
【０１００】
次に、ステップＳ１３０１で取得した共通設定情報１２００の印刷設定ダイアログ表示設定１２０５に基づいて印刷設定確認ＵＩ２３００を表示するか否かを判別し（ステップＳ１３０４）、印刷設定確認ＵＩ２３００を表示するときは、後述する図１５の回線状況情報取得処理を実行して、通信回線の現在のネットワーク速度を計算し（ステップＳ１３０５）、外部メモリ１１１から特定オブジェクト設定情報１１００を取得し（ステップＳ１３０６）、後述する図１６の印字終了時間計算処理を実行して、夫々の設定における印字終了予定時間を計算する（ステップＳ１３０７）。
【０１０１】
次に、ステップＳ１３０１で取得した共通設定情報１２００の印刷設定ダイアログ表示設定１２０５が「３」の場合、即ち、共通設定ＵＩ１０００の印刷設定ダイアログ表示設定１００３で「表示する」が選択され、「通常印刷が設定時間内に終了するとき、通常印刷で出力する」のチェックボックス１００４にチェックがされた場合は、ステップＳ１３０７で算出した通常印刷モードの印刷終了予定時間と、共通設定情報１２００の時間設定１２０３とを比較して、時間設定１２０３の時間内に通常印刷が終了できるか否かを判別する（ステップＳ１３０８）。
【０１０２】
ステップＳ１３０８の判別の結果、ダイアログ情報１２０５が「３」でないか、又は設定時間１２０３内に通常印刷が終了できないときは、後述する図２２の印刷設定確認ＵＩ表示処理を実行して、図２３の印刷設定確認ＵＩ２３００を表示する（ステップＳ１３０９）。一方、ダイアログ情報１２０５が「３」の場合において、設定時間１２０３内に通常印刷が終了できるときは、印刷設定確認ＵＩ表示処理を実行することなくステップＳ１３１０に進むので、ユーザの利便性を向上させることができる。
【０１０３】
図２３は、印刷設定確認ＵＩ２３００の一例を示す図である。
【０１０４】
図２３において、印刷設定確認ＵＩ２３００は、アプリケーション２０１で選択されたプリンタ名２３０１と、印刷するデータの１ページ目を各設定で印刷した場合のプレビュー２３０４と、印刷プレビューボタン２３０７と、印刷するデータを現在の回線状況で印刷する場合の印刷終了予定時間２３０３と、設定変更ボタン２３０５と、印刷ボタン２３１０と、タイマー印刷ボタン２３１１と、キャンセルボタン２３１２とを有する。
【０１０５】
通常印刷、アプリケーション、設定Ａ、設定Ｂ、及び設定Ｃのプレビューに対して、夫々１〜５のウィンドウ番号２３０８が付されている。表示２３０２は、図１０のデフォルト設定１００２で選択されている設定（ここでは設定Ａ）を示している。
【０１０６】
設定変更ボタン２３０５が押下されると、登録ファイル名にフォーカスがあたった状態で図６の特定オブジェクト登録ＵＩ６００が表示され、設定変更が可能である。これにより、複数の異なる条件の印刷可否設定のうち一の印刷可否設定を選択するので、ユーザの利便性を向上させることができる。また、出力結果を比較できるユーザインタフェースを提供し、出力前にデータを比較して確認させることで、印刷ミスが防止され、回線の混雑を軽減することができる。
【０１０７】
また、印刷するデータを現在の回線状況で印刷する場合の印刷終了予定時間２３０３が表示されるので、印刷終了時間を参照して印刷設定を選択することができる。
【０１０８】
表示２３０６は、印刷しようとしているアプリケーション２０１が、アプリケーション登録で登録されている場合に表示される。印刷プレビューボタン２３０７が押下されると、選択されている設定の全ページのプレビューが表示される。これにより、設定された印刷可否設定で印刷した場合のプレビュー画像を表示するので、プレビュー画像を確認して印刷設定を選択することができる。
【０１０９】
印刷ボタン２３１０又はタイマー印刷ボタン２３１１が押されると、プリンタドライバ２０３は、印刷ジョブデータを作成する。タイマー印刷ボタン２３１１が押下されると、図２５のタイマー印刷ダイアログ２５００が表示される。
【０１１０】
図２５において、タイマー印刷ダイアログ２５００では、ファイル出力又はタイマー印刷を選択することができる。また、タイマー印刷の場合は、出力時間を設定することができる。設定後は印刷処理の系に流れるが、プリンタ１５０に出力ファイルを出力せず、ホストコンピュータ１００に出力ファイルを保存し、設定時刻になったら、プリンタ１５０に出力ファイルを出力する。
【０１１１】
なお、プレビュー２３０４は、図５のプレビューア５０８による制御に従ってＣＰＵ１０１によって作成される。プレビュー表示する頁は、必ずしも１ページ目が適切であるとは限らないので、変更できるように構成することも勿論可能である。
【０１１２】
図１３に戻り、印刷設定確認ＵＩ２３００において、図２３のキャンセルボタン２３１２が押下されて印刷処理がキャンセルされたか否かを判別し（ステップＳ１３１０）、印刷処理がキャンセルされたときは、不図示の印刷終了ダイアログを表示して（ステップＳ１３１６）、本処理を終了する。ステップＳ１３０４でＮＯと判定された場合、及びステップＳ１３０８でＹＥＳと判定された場合には、印刷設定確認ＵＩ２３００が表示されないので、印刷処理のキャンセルを行うことはできない。よって、ステップＳ１３１０の判別ではＮＯと判別されることになる。
【０１１３】
ステップＳ１３１０の判別の結果、印刷処理がキャンセルされず、印刷設定確認ＵＩ２３００で印刷ボタン２３１０又はタイマー印刷ボタン２３１１が押下されて印刷が指示されたときは、特定オブジェクト設定情報１１００を取得し（ステップＳ１３１１）、後述する図２４のＰＤＬデータ作成処理を実行して、ステップＳ１３１１で取得した特定オブジェクト情報１１００に基づいて、ステップＳ１３０３で取得した描画命令から印字するオブジェクトの印刷ジョブデータ（ＰＤＬデータ）を作成する（ステップＳ１３１２）。
【０１１４】
次に、印刷設定確認ＵＩ２３００でタイマー印刷が選択されたか否かを判別し（ステップＳ１３１３）、タイマー印刷が選択されたときは、ステップＳ１３１２で作成されたＰＤＬデータをファイルとして外部メモリ１１１に保存し（ステップＳ１３１５）、本処理を終了する。この場合、印刷終了前にホストコンピュータ１００がシャットダウンされるときは、警告メッセージをＣＲＴ１１０に表示するように構成してもよい。
【０１１５】
ステップＳ１３１３の判別の結果、タイマー印刷選択されなかったときは、ステップＳ１３１２で作成された印刷ジョブデータ（ＰＤＬデータ）をプリンタ１５０に送信し（ステップＳ１３１３）、本処理を終了する。なお、印刷設定確認ＵＩ２３００が表示されない場合にはタイマー印刷を選択することができないので、ステップＳ１３１３の判別はＮＯとなる。
【０１１６】
図１４は、図１３のステップＳ１３０３の画像データ取得処理のフローチャートである。
【０１１７】
図１４において、ＯＳからオブジェクトの描画命令を受け付けると（ステップＳ１４０１）、夫々の描画命令に対応する順番情報を設定する（ステップＳ１４０２）。この順番情報は、各オブジェクトを描画する順番を示すものであり、実際に印刷ジョブデータを作成する際に適切な印刷ジョブデータを作成するために設定される。その後、スプーラ５０３は、描画命令を受け付けたオブジェクトの描画属性を判別する（ステップＳ１４０３）。
【０１１８】
描画属性を判別したあと、描画属性毎に論理的に区分した形でスプールファイル５０４（図５）に描画命令をスプールしていく。即ち、ステップＳ１４０３の判別の結果、描画命令がテキストオブジェクトの場合は、テキスト描画命令を取得し（ステップＳ１４０４）、スプールファイル５０４にテキスト描画命令を追加し（ステップＳ１４０５）、取得したテキストオブジェクトの数を示すテキストオブジェクト数をカウントアップ（ステップＳ１４０６）する。
【０１１９】
イメージオブジェクト、及びグラフィックスオブジェクトに関しても同様に描画命令を取得し（ステップＳ１４１４、ステップＳ１４２４）、スプールファイル５０４に描画命令を追加し（ステップＳ１４１５、ステップＳ１４２５）、オブジェクト数をカウントアップする（ステップＳ１４１６、ステップＳ１４２６）。
【０１２０】
次に、ＯＳから描画終了命令が発行されたか否かを判別し（ステップＳ１４０７）、描画終了命令が発行されていないときは、ステップＳ１４０２に戻り、ＯＳから受け付けた次の描画命令について上記処理を行い、描画終了命令が発行されたときは、本処理を終了する。
【０１２１】
図１５は、図１３のステップＳ１３０５の回線状況情報取得処理のフローチャートである。
【０１２２】
図１５において、ホストコンピュータ１００のＣＰＵ１０１は、予め用意しておいたｘ［ｂｙｔｅ］のダミーパケットを通信Ｉ／ＦＣ１０８を介してプリンタ１５０に送信する（ステップＳ１５０１）。ダミーパケットを受信したプリンタ１５０のＣＰＵ１１２は、リターンパケットを入力部１１８を介してホストコンピュータ１００に送信し、ホストコンピュータ１００のＣＰＵ１０１は、プリンタ１５０からのリターンパケットサイズｙ［ｂｙｔｅ］を取得する（ステップＳ１５０２）。
【０１２３】
次いで、ホストコンピュータ１００のＣＰＵ１０１は、次いでネットワーク速度を計算する（ステップＳ１５０３）。ネットワーク速度の計算は、以下のように行う。パケットを送信してからリターンパケット受けるまでの時間をＺ［ｍｓ］とする。プリンタ１５０側でパケットを受け取ってから返すまでのプリンタ側の応答時間α［ｍｓ］はプリンタドライバ２０３のプリンタ能力データファイルに機種毎に保持されている。全パケットサイズはｘ＋ｙ［ｂｙｔｅ］であり、回線時間はＺ−α［ｍｓ］であるので、回線速度β＝（ｘ＋ｙ）／（Ｚ−α）［ｂｙｔｅ／ｍｓ］が求まる。
【０１２４】
図１６は、図１３のステップＳ１３０７の印字終了予定時間計算処理のフローチャートである。
【０１２５】
図１６において、テキストオブジェクト印字終了予定時間計算処理（図１７）を実行し（ステップＳ１６０１）し、イメージオブジェクト印字終了予定時間計算処理（図１８）を実行し（ステップＳ１６０２）、グラフィックスオブジェクト印字終了予定時間計算処理（図１９）を実行する（ステップＳ１６０３）。
【０１２６】
次に、ステップＳ１６０１〜Ｓ１６０３で計算した各オブジェクトの印字終了予定時間に基づいて、設定毎の印字終了予定時間算出処理（図２０）を実行する（ステップＳ１６０４）。本処理により、印刷終了時間を把握することができる。
【０１２７】
図１７は、図１６のステップＳ１６０１のテキストオブジェクト印字終了予定時間計算処理のフローチャートである。
【０１２８】
図１７において、図１４のステップＳ１４０６でカウントアップしたテキストのオブジェクト数ｔ０１［ｏｂｊ］を取得し（ステップＳ１７０１）、取得したテキストオブジェクト数ｔ０１と図２１のオブジェクトサイズ計算用係数Γ１［ｂｙｔｅ／ｏｂｊ］を乗算してオブジェクトサイズｔ０２［ｂｙｔｅ］を計算する（ステップＳ１７０２）。この係数Γは予め計算用係数として外部メモリ１１１に保持されている。これ以降に出てくる計算用係数は理論値として予めプリンタ毎に保持してある。
【０１２９】
次に、オブジェクトサイズｔ０２と図１５の回線状況情報取得処理で計算したβ［ｂｙｔｅ／ｍｓ］とに基づいて、ネットワークの処理時間ｔ０３［ｍｓ］を計算し（ステップＳ１７０３）、テキストのオブジェクト数ｔ０１とプリンタドライバ処理時間計算用係数Γ２［ｍｓ／ｏｂｊ］を乗算し、プリンタドライバの処理時間ｔ０４［ｍｓ］を計算する（ステップＳ１７０４）。
【０１３０】
次に、テキストのオブジェクト数ｔ０１とデバイスの処理時間計算用係数Γ３［ｍｓ／ｏｂｊ］を乗算し、デバイス処理時間ｔ０５［ｍｓ］を計算し（ステップＳ１７０５）、ｔ０３、ｔ０４とｔ０５を足し合わせた時間を、テキストオブジェクトの印刷終了予定時間ｔ０６として算出する（ステップＳ１７０６）。
【０１３１】
図１８は、図１６のステップＳ１６０２のイメージオブジェクト印字終了予定時間計算処理のフローチャートである。
【０１３２】
本処理は、図１７の処理と基本的に同様の処理であり、図１７と異なる部分のみ説明する。本処理は、図７のイメージ設定画面７００で設定されたイメージオブジェクトの印刷設定によって、計算に使用する係数が異なる点が図１７の処理と異なる。ステップＳ１８０２〜Ｓ１８０５では、「通常印刷」の場合は図２１のイメージオブジェクト１、「粗い」の場合はイメージオブジェクト２、「枠線」の場合はグラフィクスの係数を使用して計算する。ステップＳ１８０６では、イメージオブジェクトの印字終了予定時間は、夫々「通常印刷」はｔ１６、「粗い」の場合はｔ１７、「枠線」の場合はｔ１８として算出される。
【０１３３】
図１９は、図１６のステップＳ１６０３のグラフィックスオブジェクト印字終了計算処理のフローチャートである。
【０１３４】
図１９の処理も、図１７の処理と基本的に同様の処理であり、図１７と異なる部分のみ説明する。ステップＳ１９０２〜Ｓ１９０５では、図２１のグラフィクスの係数を使用して計算する。ステップＳ１９０６では、グラフィックスオブジェクトの印字終了予定時間は、ｔ２６として算出される。
【０１３５】
図２０は、図１６のステップＳ１６０４の設定毎の印字終了予定時間算出処理のフローチャートである。
【０１３６】
図２０において、外部メモリ１１１から特定オブジェクト設定情報１１００を取得し（ステップＳ２００１）、取得した特定オブジェクト設定情報１１００に基づいてテキストオブジェクトを印字するか否かを判別し（ステップＳ２００２）、テキストオブジェクトを印字するときは、テキストオブジェクト印刷終了予定時間を加算し（ステップＳ２００３）、テキストオブジェクトを印字しないときは、テキストオブジェクト印刷終了予定時間を加算することなくステップＳ２００４に進む。
【０１３７】
次に、取得した特定オブジェクト設定情報１１００に基づいてイメージオブジェクトを印字するか否かを判別し（ステップＳ２００４）、イメージオブジェクトを印字しないときは、ステップＳ２００７に進み、イメージオブジェクトを印字するときは、イメージをどの設定で印字するかを判別する（ステップＳ２００５）。
【０１３８】
ステップＳ２００５の判別の結果、「枠線」設定のときは、「枠線」設定の終了予定時間を加算し（ステップＳ２００６）、「通常印刷」設定のときは、「通常印刷」設定の終了予定時間を加算し（ステップＳ２０１６）、「粗い」設定のときは、「粗い」設定の終了予定時間を加算し（ステップＳ２０２６）、ステップＳ２００７に進む。
【０１３９】
次に、取得した特定オブジェクト設定情報１１００に基づいてグラフィックスオブジェクトを印字するか否かを判別し（ステップＳ２００７）、グラフィックスオブジェクトを印字するときは、グラフィックスオブジェクト印刷終了予定時間を加算し（ステップＳ２００８）、テキストオブジェクトを印字しないときは、グラフィックスオブジェクト印刷終了予定時間を加算することなくステップＳ２００９に進む。
【０１４０】
次いで、共通設定ＵＩ１０００のチェックボックス１００４がチェックされているか否かを判別し（ステップＳ２００９）、チェックボックス１００４がチェックされているときは、通常印刷にかかる印字終了予定時間と、時間設定１００１で設定した時間を比較する（ステップＳ２０１０）。
【０１４１】
次に、設定毎の印字終了予定時間の計算を終了するか否かを判別し（ステップＳ２０１１）、印字終了予定時間の計算を終了しないときは、ステップＳ２００１に戻り、印字終了予定時間の計算を終了するときは、本処理を終了する。
【０１４２】
ここで、図１０の「通常印刷が設定時間以内に終了するとき、通常印刷で出力する」チェックボックス１００４にチェックが入っている場合において、ステップＳ２０１０の比較の結果、通常印刷にかかる印字終了予定時間より、時間設定１００１で設定した時間の方が大きかった場合は、その後のアプリケーション登録、設定Ａ、設定Ｂ、及び設定Ｃの印字終了予定時間の計算はしない。それ以外の場合には、アプリケーション登録、設定Ａ、設定Ｂ、及び設定Ｃの順番で計算を行っていく。
【０１４３】
即ち、ステップＳ２０１１の判別は、ステップＳ２０１０の比較の結果、図１０の「通常印刷が設定時間以内に終了するとき、通常印刷で出力する」チェックボックス１００４にチェックが入っている時に通常印刷にかかる印字終了予定時間より、時間設定１００１で設定した時間の方が大きかったか、又はアプリケーション登録、設定Ａ、設定Ｂ、及び設定Ｃの全ての設定の印字終了予定時間の計算が終了したか否かを判別することにより行う。
【０１４４】
印刷終了予定時間の他の計算方法として、描画属性別に係数を有し、文字数や描画データサイズを取得して計算することも可能である。
【０１４５】
図２２は、図１３のステップＳ１３０９の印刷設定確認ＵＩ表示処理のフローチャートである。本処理は、図２３の印刷設定確認ＵＩ２３００をＣＲＴ１１０に表示する処理である。
【０１４６】
図２２において、まず、外部メモリ１１１から特定オブジェクト設定情報１１００を取得し（ステップＳ２２０１）、取得した特定オブジェクト設定情報１１００に基づいてテキストオブジェクトを印字するか否かを判別し（ステップＳ２２０２）、テキストオブジェクトを印字するときは、ステップＳ１４０４で取得したテキストオブジェクト描画命令を取得し（ステップＳ２２０３）、テキストオブジェクトを印字しないときは、テキストオブジェクト描画命令を取得することなく、ステップＳ２２０４に進む。
【０１４７】
次に、取得した特定オブジェクト設定情報１１００に基づいてイメージオブジェクトを印字するか否かを判別し（ステップＳ２２０４）、イメージオブジェクトを印字するときは、イメージ設定ＵＩ７００でどの設定が選択されているかに応じてステップＳ１４１４で取得したイメージオブジェクト描画命令を取得し（ステップＳ２２０５）、イメージオブジェクトを印字しないときは、イメージオブジェクト描画命令を取得することなく、ステップＳ２２０６に進む。
【０１４８】
次に、取得した特定オブジェクト設定情報１１００に基づいてグラフィックスオブジェクトを印字するか否かを判別し（ステップＳ２２０６）、グラフィックスオブジェクトを印字するときは、ステップＳ１４２４で取得したグラフィックスオブジェクト描画命令を取得し（ステップＳ２２０７）、グラフィックスオブジェクトを印字しないときは、グラフィックスオブジェクト描画命令を取得することなく、ステップＳ２２０８に進む。
【０１４９】
次に、ステップＳ１４０２（図１４）で設定した順番情報の順に描画処理を行い（ステップＳ２２０８）、全ての描画情報の収集を終了したか否かを判別し、全ての描画情報の収集を終了していないときは、ステップＳ２２０１に戻り、全ての描画情報の収集を終了したときは、収集した情報に基づいて印刷設定確認ＵＩ２３００を表示し（ステップＳ２２１０）、本処理を終了する。
【０１５０】
図２４は、図１３のステップＳ１３１２のＰＤＬデータ作成処理のフローチャートである。
【０１５１】
図２４において、プリンタドライバ２０３による制御に基づきＣＰＵ１０１は、外部メモリ１１１から特定オブジェクト設定情報１１００を取得し（ステップＳ２４０１）、印刷品質１１０６及び色１１０５をプリンタドライバ２０３の設定に反映させる。
【０１５２】
次に、取得した特定オブジェクト設定情報１１００に基づいてテキストオブジェクトを印字するか否かを判別し（ステップＳ２４０３）、テキストオブジェクトを印字するときは、テキストオブジェクトを印字するときは、ステップＳ１４０４で取得したテキストオブジェクト描画命令を取得し（ステップＳ２４０４）、テキストオブジェクトを印字しないときは、テキストオブジェクト描画命令を取得することなく、ステップＳ２４０５に進む。
【０１５３】
次に、取得した特定オブジェクト設定情報１１００に基づいてイメージオブジェクトを印字するか否かを判別し（ステップＳ２４０５）、イメージオブジェクトを印字するときは、イメージ設定ＵＩ７００でどの設定が選択されているかに応じてステップＳ１４１４で取得したイメージオブジェクト描画命令を取得し（ステップＳ２４０６）、イメージオブジェクトを印字しないときは、イメージオブジェクト描画命令を取得することなく、ステップＳ２４０７に進む。
【０１５４】
次に、取得した特定オブジェクト設定情報１１００に基づいてグラフィックスオブジェクトを印字するか否かを判別し（ステップＳ２４０７）、グラフィックスオブジェクトを印字するときは、ステップＳ１４２４で取得したグラフィックスオブジェクト描画命令を取得し（ステップＳ２４０８）、グラフィックスオブジェクトを印字しないときは、グラフィックスオブジェクト描画命令を取得することなく、ステップＳ２４０９に進む。
【０１５５】
次に、特定オブジェクト設定情報１１００に基づいてテキストオブジェクトのみの印刷であるか否かを判別し（ステップＳ２４１０）、テキストオブジェクトのみの印刷であるときは、テキストを再配置して描画命令を発行することにより描画処理を行う（ステップＳ２４１１）。テキストの再配置をすることによって、テキストを連続的に印刷し、用紙を節約することができる。
【０１５６】
ステップＳ２４１０の判別の結果、テキストオブジェクトのみの印刷でないときは、設定されている順番情報の順にオブジェクトの描画命令を発行して描画処理を行う（ステップＳ２４１２）。
【０１５７】
本実施の形態において、特定オブジェクト設定１１００の内容が、例えば、イメージを「枠線」で印刷、図形を「印刷する」、文字を「印刷する」、色は「モノクロ」、印刷品質は「はやい」となっている場合、図２６の印刷データを印刷すると、図２７の出力結果が出力される。
【０１５８】
該印刷データを通常印刷で印刷した場合のコマンドは、図２８のように発行される。また、該印刷データを特定オブジェクト印刷で印刷した場合のコマンドは、図２９のように発行される。通常印刷のコマンドサイズは「１９２６０バイト」であり、特定オブジェクト印刷のコマンドサイズは「５８０８バイト」になる。この例で、通常印刷した場合のイメージデータのコマンドサイズは約１２７００バイトであるが、特定オブジェクト印刷を行うことで約１００００バイトのコマンドサイズを近く削減することができる。また、カラーをモノクロにすることで、更にコマンドサイズを削減することができる。
【０１５９】
本実施の形態によれば、プリンタドライバ２０３は、アプリケーション２０１から印刷実行が指示されると、ＯＳから描画命令をオブジェクト毎に取得し、オブジェクト毎の印刷可否の設定を示す情報である特定オブジェクト設定情報１１００を取得し、印字するオブジェクトの印刷ジョブデータ（ＰＤＬデータ）を作成し、作成された印刷ジョブデータ（ＰＤＬデータ）をプリンタ１５０に送信するので、一部のオブジェクト印刷を単純に行うのではなく、全てのオブジェクトを抽出した上でコマンドサイズを小さくし、もってユーザの利便性を損なうことなく通信回線の混雑を回避し、印刷時間を短縮することができる。
【０１６０】
また、本発明の目的は、上記実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム又は装置に供給し、そのシステム又は装置のコンピュータ（又はＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出して実行することによっても達成されることは云うまでもない。
【０１６１】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、プログラムコード、及びそのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１６２】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(ＯＳ)などが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれることは云うまでもない。
【０１６３】
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれることは云うまでもない。
【０１６４】
また、上記プログラムは、上述した実施の形態の機能をコンピュータで実現することができればよく、その形態は、オブジェクトコード、インタプリタにより実行されるプログラムコード、ＯＳに供給されるスクリプトデータ等の形態を有するものでもよい。
【０１６５】
プログラムを供給する記録媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、磁気テープ、不揮発性のメモリカード、他のＲＯＭ等を用いることができる。又は、上記プログラムは、インターネット、商用ネットワーク、若しくはローカルエリアネットワーク等に接続される不図示の他のコンピュータやデータベース等からダウンロードすることにより供給される。
【図面の簡単な説明】
【０１６６】
【図１】本発明の実施の形態に係る印刷制御装置を有する印刷制御システムの構成を示すブロック図である。
【図２】図１におけるホストコンピュータのソフトウェア構成を概略的に示すブロック図である。
【図３】図１におけるホストコンピュータ及びプリンタを適用可能な印刷制御システムの一例を示すシステム構成図である。
【図４】図２のホストコンピュータによって実行される印刷制御処理の基本的な流れを示す図である。
【図５】図２のホストコンピュータのソフトウェア構成の詳細を示すブロック図である。
【図６】特定オブジェクト登録ＵＩの一例を示す図である。
【図７】イメージ設定ＵＩの一例を示す図である。
【図８】アプリケーション登録ＵＩの一例を示す図である。
【図９】特定オブジェクト設定ＵＩの一例を示す図である。
【図１０】共通設定ＵＩの一例を示す図である。
【図１１】特定オブジェクト設定情報の一例を示す図である。
【図１２】共通設定情報の一例を示す図である。
【図１３】図１におけるホストコンピュータのＣＰＵによって実行される印刷制御処理のフローチャートである。
【図１４】図１３のステップＳ１３０３の画像データ取得処理のフローチャートである。
【図１５】図１３のステップＳ１３０５の回線状況情報取得処理のフローチャートである。
【図１６】図１３のステップＳ１３０７の印字終了予定時間計算処理のフローチャートである。
【図１７】図１６のステップＳ１６０１のテキストオブジェクト印字終了予定時間計算処理のフローチャートである。
【図１８】図１６のステップＳ１６０２のイメージオブジェクト印字終了予定時間計算処理のフローチャートである。
【図１９】図１６のステップＳ１６０３のグラフィックスオブジェクト印字終了計算処理のフローチャートである。
【図２０】図１６のステップＳ１６０４の設定毎の印字終了予定時間算出処理のフローチャートである。
【図２１】印字終了時間計算用係数を示す表である。
【図２２】図１３のステップＳ１３０９の印刷設定確認ＵＩ表示処理のフローチャートである。
【図２３】印刷設定確認ＵＩの一例を示す図である。
【図２４】図１３のステップＳ１３１２のＰＤＬデータ作成処理のフローチャートである。
【図２５】タイマー印刷ＵＩの一例を示す図である。
【図２６】印刷データの一例を示す図である。
【図２７】図２６の印刷データを特定オブジェクト印刷を適用して印刷した印刷結果の一例を示す図である。
【図２８】通常印刷時のコマンドの一例を示す図である。
【図２９】特定オブジェクト印刷を適用して印刷したときのコマンドの一例を示す図である。
【符号の説明】
【０１６７】
１００  ホストコンピュータ
１５０  プリンタ
１１１  外部メモリ（ＨＤ、ＦＤ）
２０１  アプリケーション
２０２  グラフィックスエンジン
２０３  プリンタドライバ
２０４  プリントサブシステム
【図１】
2006146363.tif 000003
【図２】
2006146363.tif 000004
【図３】
2006146363.tif 000005
【図４】
2006146363.tif 000006
【図５】
2006146363.tif 000007
【図６】
2006146363.tif 000008
【図７】
2006146363.tif 000009
【図８】
2006146363.tif 000010
【図９】
2006146363.tif 000011
【図１０】
2006146363.tif 000012
【図１１】
2006146363.tif 000013
【図１２】
2006146363.tif 000014
【図１３】
2006146363.tif 000015
【図１４】
2006146363.tif 000016
【図１５】
2006146363.tif 000017
【図１６】
2006146363.tif 000018
【図１７】
2006146363.tif 000019
【図１８】
2006146363.tif 000020
【図１９】
2006146363.tif 000021
【図２０】
2006146363.tif 000022
【図２１】
2006146363.tif 000023
【図２２】
2006146363.tif 000024
【図２３】
2006146363.tif 000025
【図２４】
2006146363.tif 000026
【図２５】
2006146363.tif 000027
【図２６】
2006146363.tif 000028
【図２７】
2006146363.tif 000029
【図２８】
2006146363.tif 000030
【図２９】
2006146363.tif 000031