(57)【特許請求の範囲】
【請求項１】
複数の印刷モードで印刷可能な印刷装置で印刷させるべき印刷データを生成する印刷制御装置であって、
印刷設定項目を利用者に設定させるためのユーザインターフェイスを提供するユーザインターフェイス手段と、
前記提供されるユーザインターフェイスを介して設定された項目を読み込み、印刷設定項目の値とその値を満足するための印刷モードとを示す対応表に従って、前記複数の印刷モードのうち一つの印刷モードを決定する第１の決定手段と、
各ページの中間状態の印刷情報を生成して一時記憶手段にスプールし、生成された印刷情報から得られるページ毎の描画内容に関する情報に応じて、ページ毎に前記複数の印刷モードのうちの一つの印刷モードを決定する第２の決定手段と、
前記第１の決定手段または前記第２の決定手段により決定された印刷モードで、前記印刷装置で印刷させるべき印刷データを生成する生成手段とを備え、
前記第１の決定手段により印刷モードが決定されない場合には、前記第２の決定手段により印刷モードを決定するための印刷情報のスプール処理を行い、前記第１の決定手段により印刷モードが決定される場合には、前記第２の決定手段による決定処理のためのスプール処理を行わずに前記生成手段による印刷データの生成を行うことを特徴とする印刷制御装置。
【請求項２】
前記生成手段により生成された印刷データを前記印刷装置に送付する送付手段を更に備えることを特徴とする請求項１に記載の印刷制御装置。
【請求項３】
前記ユーザインターフェース手段は、さらに、前記第１及び第２の決定手段による印刷モードの決定に先立ち、前記複数のうちのひとつの印刷モード、あるいは、前記複数の印刷モードの内からひとつを自動決定する自動モードのいずれかを利用者に選択させ、前記第１及び第２の決定手段は、自動モードが選択されている場合に、印刷モードを決定することを特徴とする請求項１に記載の印刷制御装置。
【請求項４】
前記ユーザインターフェース手段は、さらに、前記第１及び第２の決定手段による印刷モードの決定に先立ち、前記複数のうちのひとつの印刷モード、あるいは、前記複数の印刷モードの内からひとつを自動決定する自動モードのいずれかを利用者に選択させ、前記第１及び第２の決定手段は、自動モードが選択されている場合に、印刷モードを決定することを特徴とする請求項１に記載の印刷制御装置。
【請求項５】
前記ユーザインターフェース手段により設定される項目として、印刷されるべき画像を調整するための項目を含むことを特徴とする請求項１に記載の印刷制御装置。
【請求項６】
前記ユーザインターフェース手段により設定される項目として、印刷されるべき画像を編集するための項目を含むことを特徴とする請求項１に記載の印刷制御装置。
【請求項７】
前記複数の印刷モードには、前記印刷装置にイメージデータを送付して印刷させるイメージモードを含み、ユーザインターフェース手段により画像を調整するための項目が設定された場合には、前記第１の決定手段はイメージモードを印刷モードとして決定することを特徴とする請求項５に記載の印刷制御装置。
【請求項８】
前記複数の印刷モードには、前記印刷装置にページ記述命令を送付してイメージを生成させてから印刷させるＰＤＬモードを含み、ユーザインターフェース手段により画像を編集するための項目が設定された場合には、前記第１の決定手段はＰＤＬモードを印刷モードとして決定することを特徴とする請求項６に記載の印刷制御装置。
【請求項９】
前記第２の決定手段は、イメージモードとＰＤＬモードのそれぞれの印刷モードで前記印刷装置に送付すべき印刷データのデータ量を計算し、データ量が少ない方のモードを印刷モードとして決定することを特徴とする請求項１に記載の印刷制御装置。
【請求項１０】
複数の印刷モードで印刷可能な印刷装置により印刷を行わせるための印刷制御方法であって、
印刷設定項目を利用者に設定させるユーザインターフェース工程と、
前記ユーザインターフェース工程により設定された項目を読み込み、印刷設定項目の値とその値を満足するための印刷モードとを示す対応表に従って、前記複数の印刷モードのうちのひとつの印刷モードを決定する第１の決定工程と、
各ページの中間状態の印刷情報を生成して一時記憶手段にスプールし、生成された印刷情報から得られるページ毎の描画内容に関する情報に応じて、ページ毎に前記複数の印刷モードのうちの一つの印刷モードを決定する第２の決定工程と、
前記第１の決定工程または前記第２の決定工程により決定された印刷モードで、前記印刷装置で印刷させるべき印刷データを生成する生成工程とを備え、
前記第１の決定工程により印刷モードが決定されない場合には、前記第２の決定工程により印刷モードを決定するための印刷情報のスプール処理を行い、前記第１の決定工程により印刷モードが決定される場合には、前記第２の決定工程による決定処理のためのスプール処理を行わずに前記生成工程による印刷データの生成を行うことを特徴とする印刷制御方法。
【請求項１１】
前記ユーザインターフェース工程は、さらに、前記第１及び第２の決定工程による印刷モードの決定に先立ち、前記複数のうちのひとつの印刷モード、あるいは、前記複数の印刷モードの内からひとつを自動決定する自動モードのいずれかを利用者に選択させ、前記第１及び第２の決定工程は、自動モードが選択されている場合に、印刷モードを決定することを特徴とする請求項１０に記載の印刷制御方法。
【請求項１２】
前記ユーザインターフェース工程は、さらに、前記第１及び第２の決定工程による印刷モードの決定に先立ち、前記複数のうちのひとつの印刷モード、あるいは、前記複数の印刷モードの内からひとつを自動決定する自動モードのいずれかを利用者に選択させ、前記第１及び第２の決定工程は、自動モードが選択されている場合に、印刷モードを決定することを特徴とする請求項１０に記載の印刷制御方法。
【請求項１３】
前記ユーザインターフェース工程により設定される項目として、印刷されるべき画像を調整するための項目を含むことを特徴とする請求項１０に記載の印刷制御方法。
【請求項１４】
前記ユーザインターフェース工程により設定される項目として、印刷されるべき画像を編集するための項目を含むことを特徴とする請求項１０に記載の印刷制御方法。
【請求項１５】
前記複数の印刷モードには、前記印刷装置にイメージデータを送付して印刷させるイメージモードを含み、ユーザインターフェース工程により画像を調整するための項目が設定された場合には、前記第１の決定工程はイメージモードを印刷モードとして決定することを特徴とする請求項１３に記載の印刷制御方法。
【請求項１６】
前記複数の印刷モードには、前記印刷装置にページ記述命令を送付してイメージを生成させてから印刷させるＰＤＬモードを含み、ユーザインターフェース工程により画像を編集するための項目が設定された場合には、前記第１の決定工程はＰＤＬモードを印刷モードとして決定することを特徴とする請求項１４に記載の印刷制御方法。
【請求項１７】
前記第２の決定工程は、イメージモードとＰＤＬモードのそれぞれの印刷モードで前記印刷装置に送付すべき印刷データのデータ量を計算し、データ量が少ない方のモードを印刷モードとして決定することを特徴とする請求項１０に記載の印刷制御方法。
【請求項１８】
複数の印刷モードで印刷可能な印刷装置と接続されたコンピュータを、
印刷設定項目を利用者に設定させるためのユーザインターフェイスを提供するユーザインターフェイス手段と、
前記提供されるユーザインターフェイスを介して設定された項目を読み込み、印刷設定項目の値とその値を満足するための印刷モードとを示す対応表に従って、前記複数の印刷モードのうち一つの印刷モードを決定する第１の決定手段と、
各ページの中間状態の印刷情報を生成して一時記憶手段にスプールし、生成された印刷情報から得られるページ毎の描画内容に関する情報に応じて、ページ毎に前記複数の印刷モードのうちの一つの印刷モードを決定する第２の決定手段と、
前記第１の決定手段または前記第２の決定手段により決定された印刷モードで、前記印刷装置で印刷させるべき印刷データを生成する生成手段として機能させ、
前記第１の決定手段により印刷モードが決定されない場合には、前記第２の決定手段により印刷モードを決定するための印刷情報のスプール処理を行い、前記第１の決定手段により印刷モードが決定される場合には、前記第２の決定手段による決定処理のためのスプール処理を行わずに前記生成手段による印刷データの生成を行うためのコンピュータプログラムを格納することを特徴とするコンピュータ可読メモリ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えばアプリケーションからの描画コマンド等に対応して印刷データを生成する印刷制御装置および方法に関するものである。
【０００２】
【従来の技術】
従来、複数の印刷モード、例えばＰＤＬモードとイメージモードを備えたプリンタにより印刷を行わせる印刷処理システムとして、印刷処理（具体的にはプリンタ・ドライバによる処理）に際して、印刷時に使用される印刷モードを自動的に選択する印刷モードの自動選択機能を有するものが提案されている（特開平１１−１２９５８３）。
【０００３】
また、複数の印刷条件、たとえば色階調や解像度といった印刷条件を指定できるプリンタを含む印刷処理システムにおいては、それら条件はユーザにより明示的に指示させるか、または、固定されていた。さらに、２ページ分をまとめて１ページに印刷したり、日付や決まった枠を付け加えて印刷するような、加工印刷する設定についてもユーザが明示的に指定している。
【０００４】
このような印刷モード自動選択機能を有する印刷処理システムにおいては、自動選択機能の印刷条件決定を決定するために、印刷内容を解析して印刷される情報全体がどのような書類であるか分析して、その分析結果から印刷モードや印刷条件を自動設定している。
【０００５】
【発明が解決しようとする課題】
このため、ユーザにより明示的に指定された印刷条件により、自動設定時に設定されるべき印刷モードが決まってしまうような場合であっても、印刷内容を解析して印刷モードを決定していた。そのため、印刷モードの決定に要する時間がかかり、印刷時間全体も、印刷内容の解析と印刷モードの決定のための時間を含むために長時間要していた。
【０００６】
さらに、自動設定の選択肢であるいずれかの印刷モードで実行できない加工印刷機能については、印刷モード自動選択の場合には、ユーザにより選択させることができず、ユーザに対して選択肢を表示することができなかった。
【０００７】
本発明は上記従来例に鑑みてなされたもので、短時間で印刷モードを自動設定することが可能であり、しかも、ユーザによる指定された機能や条件を満足させる印刷モードを優先的に選択して、その印刷モードで印刷処理を行うことが可能な印刷制御装置及び方法を提供することを目的とする。
【０００８】
【課題を解決するための手段】
上記目的を達成するために本発明は次のような構成からなる。すなわち、複数の印刷モードで印刷可能な印刷装置で印刷させるべき印刷データを生成する印刷制御装置であって、印刷設定項目を利用者に設定させるためのユーザインターフェイスを提供するユーザインターフェイス手段と、前記提供されるユーザインターフェイスを介して設定された項目を読み込み、印刷設定項目の値とその値を満足するための印刷モードとを示す対応表に従って、前記複数の印刷モードのうち一つの印刷モードを決定する第１の決定手段と、各ページの中間状態の印刷情報を生成して一時記憶手段にスプールし、生成された印刷情報から得られるページ毎の描画内容に関する情報に応じて、ページ毎に前記複数の印刷モードのうちの一つの印刷モードを決定する第２の決定手段と、前記第１の決定手段または前記第２の決定手段により決定された印刷モードで、前記印刷装置で印刷させるべき印刷データを生成する生成手段とを備え、前記第１の決定手段により印刷モードが決定されない場合には、前記第２の決定手段により印刷モードを決定するための印刷情報のスプール処理を行い、前記第１の決定手段により印刷モードが決定される場合には、前記第２の決定手段による決定処理のためのスプール処理を行わずに前記生成手段による印刷データの生成を行う。
【００１７】
【発明の実施の形態】
以下、本発明を適用するのに好適である実施形態について説明を行う。
【００１８】
図１は、本発明の実施形態を適用可能な印刷データ処理装置を含むホスト側コンピュータの構成を説明するブロック図である。図１において、ＲＯＭ３のプログラム用ＲＯＭあるいは外部メモリ１１に記憶された文書処理プログラム等に基づいて図形、イメージ、文字、表（表計算等を含む）等が混在した文書処理を実行するＣＰＵ１を備え、システムバス４に接続される各デバイスをＣＰＵ１が総括的に制御する。
【００１９】
また、このＲＯＭ３あるいは外部メモリ１１には、ＣＰＵ１の制御プログラムであるオペレーティングシステム（以下、ＯＳ）、上記文書処理の際に使用するフォントデータやその他の各種データ等を記憶する。２はＲＡＭで、ＣＰＵ１の主メモリ、ワークメモリ等として機能する。５はキーボードコントローラ（ＫＢＣ）で、キーボード（ＫＢ）９や不図示のマウス等のポインティングデバイスからの入力を制御する。６はＣＲＴコントローラ（ＣＲＴＣ）で、ＣＲＴディスプレイ（ＣＲＴ）１０の表示を制御する。７はディスクコントローラ（ＤＫＣ）で、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、印刷データ生成処理プログラム（以下、プリンタ・ドライバ）等を記憶するハードディスク（ＨＤ）、フロッピーディスク（ＦＤ）等の外部メモリ１１とのアクセスを制御する。８はプリンタコントローラ（ＰＲＴＣ）で、所定の双方向性インタフェース（インタフェース）２１を介してプリンタ１００に接続され通信制御処理を実行する。なお、ＣＰＵ１は、例えばＲＡＭ２上に設定された表示情報ＲＡＭへのアウトラインフォントの展開（ラスタライズ）処理を実行し、ＣＲＴ１０上でのＷＹＳＩＷＹＧを可能としている。また、ＣＰＵ１は、ＣＲＴ１０上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウインドウを開き、種々のデータ処理を実行する。ユーザは印刷を実行する際、プリンタ・ドライバが提供する印刷の設定に関するウインドウ（ユーザインターフェイス）を開き、プリンタの設定や、印刷モードの選択を含むプリンタ・ドライバに対する印刷処理方法の設定を行う。
【００２０】
図２、図３は、図１に示した印刷データ処理装置の構成における印刷データの流れを説明するブロック図であり、プリンタ等の印刷装置が直接接続されているか、あるいはネットワーク経由で接続されているホストコンピュータまたは専用のプリントサーバーにおける一般的な印刷データ生成処理の構成を示したものである。
【００２１】
図２において、アプリケーション２０１、グラフィック・エンジン２０２、プリンタ・ドライバ２０３、およびシステム・スプーラ２０４は、CD-ＲＯＭやハードディスク等の外部メモリ１１に保存されたファイルとして存在し、実行される場合にＯＳやそのモジュールを利用するモジュールによってＲＡＭ２にロードされ実行されるプログラム・モジュールである。
【００２２】
また、アプリケーション２０１およびプリンタ・ドライバ２０３は、ＦＤやＣＤ−ＲＯＭ、あるいは不図示のネットワークを経由してハードディスク等の外部メモリ１１に追加することが可能となっている。外部メモリ１１に保存されているアプリケーション２０１はＲＡＭ２にロードされて実行されるが、このアプリケーション２０１からプリンタ１００に対して印刷を行う際には、同様にＲＡＭ２にロードされ実行可能となっているグラフィック・エンジン２０２を利用して出力（描画）を行う。
【００２３】
グラフィック・エンジン２０２は印刷装置ごとに用意されたプリンタ・ドライバ２０３を同様に外部メモリからＲＡＭ２にロードし、アプリケーション２０１の出力をプリンタ・ドライバ２０３を用いてプリンタの制御コマンドに変換する。変換されたプリンタ制御コマンドはＯＳによってＲＡＭ２にロードされたシステム・スプーラ２０４を経てインタフェース２１経由でプリンタ１００へ出力される仕組みとなっている。
【００２４】
図３に示す印刷データ処理装置は、図２に示す印刷データ処理装置を拡張したもので、グラフィック・エンジン２０２からプリンタ・ドライバ２０３へ印刷命令を送る際に、一旦中間コードからなるスプール・ファイル３０３を生成する構成をとる。
【００２５】
すなわち、図２に示す印刷データ処理装置では、アプリケーション２０１が印刷処理から開放されるのはプリンタ・ドライバ２０３がグラフィック・エンジン２０２からのすべての印刷命令をプリンタの制御コマンドへ変換し終った時点であるのに対し、図３に示す印刷データ処理装置では、スプーラ３０２がすべての印刷命令を中間コードデータに変換し、スプール・ファイル３０３に出力した時点である。通常、アプリケーションの解放（ＲＴＡ:Return To Application）という観点では、後者の方が短時間で済む。しかしながら、印刷装置からの印刷結果の出力完了までの時間で見ると、スプール・ファイルを生成する時間分後者の方が遅くなる傾向にある。これらの関係を図示したものが図４である。図４は、図２の形式のドライバの動きと図３の形式のドライバの動きを時系列に従い模式的に比べたものである。
【００２６】
図３に示す印刷データ処理装置においては、スプール・ファイル３０３を生成する過程において、ページ内の描画情報の分析を行うことや、生成されたスプール・ファイル３０３の内容に対してデータを加工することが可能であり、これによりアプリケーション２０１からの印刷データに対して、ユーザインターフェイス２０５の設定に沿って最適な動作モードの自動選択や、拡大縮小や、複数ページを１ページに縮小して印刷するいわゆるＮ−ｕｐ印刷等の一般的なアプリケーションが持たない付加的な印刷機能を実現することができる。
【００２７】
これらの目的のために、図２に示す印刷データ処理装置に対し、図３に示す印刷データ処理装置のように中間コードデータでスプールするようシステムの拡張がなされてきている。なお、最適な動作モードの自動選択や印刷データの加工を行うためには、通常のプリンタ・ドライバ２０３が提供するユーザインターフェイス２０５のウインドウから設定を行い、プリンタ・ドライバ２０３がその設定内容をＲＡＭ２上あるいは外部メモリ１１上に保管し、その値をスプール・ファイル・マネージャ３０４やデスプーラ３０５が参照し処理を実現する。
【００２８】
以下、図３の構成についてさらに詳細に説明する。
【００２９】
図３に示す印刷データ処理装置では、グラフィック・エンジン２０２からの印刷命令をディスパッチャ３０１が受け取る。ディスパッチャ３０１がグラフィック・エンジン２０２から受け取った印刷命令がアプリケーション２０１からグラフィック・エンジン２０２へ発行された印刷命令の場合には、ディスパッチャ３０１は外部メモリ１１に格納されているスプーラ３０２をＲＡＭにロードし、プリンタ・ドライバ２０３ではなくスプーラ３０２へ印刷命令を送付する。スプーラ３０２は受け取った印刷命令を中間コードに変換してスプール・ファイル３０３に出力する。スプール・ファイル３０３は一つのファイルで構成されているのでなく、いくつかのファイルの総称である。スプーラ３０２において中間コードに変換する際に、どのような印刷命令か、その印刷命令がプリンタ側でどのような負荷になるのかといった情報を詳細に解析する。この解析処理は、最適な動作モードの自動選択のためになされるものである。そして、その解析処理の結果を別のスプール・ファイルとしてスプール・ファイル３０３に保存する。また、プリンタ・ドライバ２０３に対して設定されている印刷データに関する加工設定情報をスプーラ３０２はプリンタ・ドライバ２０３から取得しスプール・ファイル３０３に保存する。なお、スプール・ファイル３０３は外部メモリ１１上にファイルとして生成するが、ＲＡＭ２上に生成することも可能である。さらにスプーラ３０２は外部メモリ１１に格納されているスプール・ファイルマネージャ３０４をＲＡＭ２にロードし、スプール・ファイルマネージャ３０４に対してスプール・ファイル３０３の生成状況を通知する。その後、スプール・ファイルマネージャ３０４は、スプール・ファイル３０３に保存された印刷データに関する加工設定情報の内容に従い、再度グラフィック・エンジン２０２を利用して印刷を行えると判断した際には、外部メモリ１１に格納されているデスプーラ３０５をＲＡＭ２にロードし、デスプーラ３０５に対して、スプール・ファイル３０３に記述された中間コードの印刷処理を行うように指示する。
【００３０】
デスプーラ３０５は、スプール・ファイル３０３に含まれる中間コードをスプール・ファイル３０３に含まれる最適な動作モードの解析結果の情報や加工設定情報の内容に従って処理し、後述する印刷モードなどに応じてデスプーラ内に持つレンダラ３０６によって中間コードを高速に印刷イメージに展開する。中間コードを印刷イメージに展開するかどうかの判断は、スプーラ３０２において行われた解析処理の結果のファイルをデスプーラ３０５内の最適化判断処理部が読み出し、設定されている加工設定情報などの情報と合わせて総合的に判断する。この判断はページ単位で行われても良いし、各描画オブジェクト単位で行ってもかまわない。いずれにせよ、デスプーラ３０５は、スプール・ファイル３０３から中間コードを読み出し、グラフィック・エンジン２０２のＡＰＩ(Application Programming Interface)に適合するような形に変換し、再度グラフィック・エンジン２０２経由で出力を行う。
【００３１】
ディスパッチャ３０１がグラフィック・エンジン２０２から受け取った印刷命令がデスプーラ３０５からグラフィック・エンジン２０２へ発行された印刷命令の場合には、ディスパッチャ３０１はスプーラ３０２ではなく、プリンタ・ドライバ２０３に処理を切り替え、プリンタ・ドライバ２０３はプリンタ制御コマンドを生成し、システム・スプーラ２０４経由でプリンタ１００に出力がなされる。
【００３２】
図５は、図１に示したホストコンピュータ２００上のＲＡＭ２上のメモリマップの一例を示す図であり、本実施形態における一連の印刷データ生成処理プログラムを含む印刷関連モジュール５０４、アプリケーション５０１、関連データ５０３、ＯＳ５０５、ＢＩＯＳ５０６がホストコンピュータ２００上のＲＡＭ２へロードされ、実行可能となった状態のメモリマップを示している。なお、５０２は空きメモリである。
【００３３】
＜印刷モードの設定項目に基づく決定処理＞
次に最適な動作モードの自動選択処理について説明する。なお、これから説明する動作モードの自動選択処理は、図３の印刷処理システムにより実現される。
【００３４】
アプリケーションソフトウェアからの印刷処理を行う際に、特定のＰＤＬに依存しない中間状態の印刷情報（中間データ）を生成して一時的にスプールファイル３０３に蓄え、その蓄えられた印刷データを解析して最適な動作モードを自動的に決定する。本実施形態では印刷モードとして、たとえばホスト側で印刷イメージのレンダリング処理まで行うイメージモードと、印刷装置側に搭載するＰＤＬ(Printer Description Language)を利用し、印刷装置側でレンダリングを行うＰＤＬモードを持つ。このようなプリンタ・ドライバにおいて、最適な動作モードの自動選択処理は例えば次のように行われている。
【００３５】
図６のような、写真付き文書をカラーＬＢＰに印刷する場合を例に取って説明する。図６の写真部分は非常に高解像度でかつ高階調なイメージデータ（具体的には、６００dpi等倍、ＲＧＢ各色８bit）である。一見単純に見える文書なので、ＰＤＬドライバで処理した方がよいと思われがちであるが、これをＰＤＬコマンドとして変換すると、プリンタが印刷可能な画質に比べ冗長な画像情報がプリンタ・ドライバから送出されるため、じつはイメージドライバで処理した方が高速である。このように一見して、どちらの印刷モードを使う方がよいかわからないのは、事前にプリンタに送るイメージデータ量がわかれば防止できる問題で、本実施形態で述べる図３におけるスプーラでは、アプリケーションソフトウェアからの印刷処理を行う際に、特定のＰＤＬに依存しない中間状態の印刷情報を生成するが、その際に、イメージデータを含む中間状態の印刷情報から、そのイメージデータをＰＤＬコマンドにすると何バイトになるか、ホスト側レンダラにおいてプリンタ側の出力解像度、出力階調に合わせて事前に印刷イメージを展開すると何バイトになるかといった２つの値を予測するための判別情報もスプールしておく。この判別情報を元にデスプーラ３０５により展開後のサイズを予測して予測結果を比較し、値の小さい方の印刷モードで描画することで、高速に印刷処理を行うことが可能である。したがって、本実施形態におけるプリンタ・ドライバでは、図６のような印刷データを処理する場合、最適な動作モードとしてホスト側でイメージ展開処理するような動作を自動的に選択することになる。
【００３６】
以上のような処理によって最適な動作モードの自動選択処理は行われるが、このような自動選択処理を行うこと自体印刷処理とは別の処理であり、単に印刷に必要な時間以外に判定の時間が必要となる。またいずれかの動作モードで印刷できない機能設定は、自動選択処理の場合その機能設定自体を選択できないようにしておく必要がある。
【００３７】
そのために本実施形態では、印刷モードや印刷条件を指定するＵＩにおいて、自動で判定するかしないかも含めて印刷処理方法を指定させる。こうすることで、動作モードの自動選択処理を行うまでもない設定の場合、印刷時間を短縮することができる。またいずれかの動作モードで処理できない設定の場合にも、ＵＩに表示しておくことが可能で、パフォーマンスの劣化無くユーザに操作の手間をかけさせることなく適切な印刷処理を提供することができる。
【００３８】
本実施例の印刷システムによって実現されるユーザインターフェイス２０５について流れ図７を用いて説明する。ユーザやアプリケーションからの要求に従って、プリンタドライバ２０３は、印刷設定を行うためのユーザインターフェイス２０５を提供し、ＯＳ（オペレーションシステム）を介してユーザインターフェイス表示処理が開始されると、まずプリンタドライバ２０３は、現在のユーザインターフェイス２０５の印刷設定が印刷モード自動であるかを判定する（Ｓ７０１）。その結果、あらかじめどの印刷条件を設定可能にするかを記述した表（図８）に従って、プリンタドライバ２０３は、印刷条件設定のための選択肢のユーザインターフェイス２０３を提供し、ＯＳを介して表示させる（Ｓ７０２）（Ｓ７０６）。図８においては、選択された印刷モードにおいて、ユーザに設定させる項目に丸印が付されている。例えば、自動モードあるいはＰＤＬモードが選択されていれば、項目ModeDetailsは選択肢として表示されない。
【００３９】
この画面上で、ステップＳ７０３，Ｓ７０７においてユーザに必要な項目を設定させ、その後、印刷モード自動の場合は、プリンタドライバ２０３はユーザインターフェイス２０５で設定されている印刷設定により印刷処理方法を決定する（Ｓ７０４）。その後、決定された選択値、もしくはユーザによって選択された選択値を、ディスパッチャ３０１に通知する（Ｓ７０５）。その際にＵＩ上の表示は変更しない。なお、通知される選択値としては、本実施形態ではＰＤＬモードやイメージモードや自動モードなどの印刷モードがある。このステップＳ７０４の印刷処理方法の決定は、ユーザインターフェイス２０５に設定されている印刷設定にのみ基づいてプリンタドライバ２０３より決定されるのものであるため、ＰＤＬモードやイメージモードへの決定ができる場合とできない場合があり、できない場合は自動モードとなり、図１３で後述するようにスプーラ処理を用いて印刷命令を解析して印刷モードを決定することになる。
【００４０】
この判定Ｓ７０４における処理の詳細を図１６及び図１７を使って説明する。図１７の表には、ユーザ設定可能な項目及び値を含む印刷条件と、その条件を満足するための印刷モードとが示されている。例えば、項目ModeDetailsの値がHighSpeedあるいはHighQualityに設定された場合には、その条件を満足させる印刷モードはRasterすなわちイメージモードであることが、図１７からわかる。また、項目OverlayPrintが設定されていると、印刷モードはＰＤＬモードでなければならない。このように、印刷モードを決定してしまうような設定項目及び設定値と対応する印刷モードが、あらかじめ判定項目の表として用意されている。このように、本実施形態では、印刷すべき画像の品質などの調整を指定した場合にはイメージモードが、画像の編集などの指定をした場合にはＰＤＬモードが選択されるように、図１７の表は作成されている。
【００４１】
図１６は、前述した図７のステップＳ７０４における印刷処理方法の判定処理について詳細に説明するためのフローチャートであり、プリンタドライバ２０３により実現される。まず、プリンタドライバ２０３は、ユーザインターフェイス２０５にユーザにより設定されている項目（選択肢）を順次読み込み、一つ目の判定項目がユーザによって設定されているかを判定する（Ｓ１６０１）。もし設定されていない場合は、プリンタドライバ２０５は、すべての判定項目について判定したかを判断し（Ｓ１６０２）、残りの判定項目がある場合は、次の項目を読み込み順次判定処理を実行する。また、ステップＳ１６０１において判定項目がユーザによって設定されていると判定された場合は、プリンタドライバ２０３は、表（図１７）に従い印刷モードを決定する（Ｓ１６０３）。そして、表（図１７）のすべての項目についてユーザによって設定されたかのチェックが終えるまで判定を繰り返し、どの印刷モードも設定されなかった場合、もしくは異なる複数の印刷モード（ＰＤＬモードとイメージモード）が複数の判定項目により適すると判断された場合は、印刷モードを「自動」のままとして、後述するスプール処理における判定処理を実行するため、本印刷処理方法判定を終了する。一方、一つの適する印刷モードが決定された場合には、その印刷モードを新たに設定する。印刷モードが設定された場合は、スプール処理における判定処理を実行せずにプリンタドライバ２０３による印刷データの生成処理に進める。このようにスプール処理による自動判定を行わずに、プリンタドライバ２０３が提供するユーザインターフェイス２０５における印刷設定により適する印刷モードを簡易的に決定することにより印刷処理のスループットを向上させることができるという効果が得られる。
【００４２】
本実施形態におけるＵＩの例を、図９を参照して説明する。印刷モード９０１がCPDL（ＰＤＬモード），Raster（イメージモード）と二つある場合にも、そのほかに自動設定を意味するAUTOを設け、それを初期値とする。その際に表示される印刷条件は、自動で設定する項目は、ボックス９０２に示されるように選択できない状態で表示され、ユーザが明示的に設定可能な項目はボックス９０３に示されるように選択可能な状態で表示される。
【００４３】
また、Raster（イメージ）モードでしか処理できない選択肢９０４も選択可能な状態で表示される。この状態からＯＫを押すと、印刷モード９０１はAutoであるから図１６の印刷処理方法決定手順が実行される。図９においては、項目ColorHalftoneがErrorDiffusionに設定されているので、図１７の表から、印刷モードはRaster、すなわちイメージモードに決定される。この決定は、ディスパッチャ３０１に通知される。
動作モードが自動的に決定されない場合は、図１３で後述するようにスプール処理における印刷動作モードの決定処理が行われる。一方、図７のステップＳ７０４によって印刷モードが決定された場合は、Ｓ７０５において通知される印刷モードに従って、ディスパッチャ３０１はプリンタドライバ２０３の処理を開始させる。すなわち、ディスパッチャ３０１は、印刷動作モードが自動モードである場合は印刷命令をスプーラ３０２に渡してスプール処理を行わせ、印刷動作モードが「ＰＤＬモード」もしくは「イメージモード」である場合は印刷命令をプリンタドライバ２０３に渡して印刷データ生成処理を行わせることになる。
【００４４】
＜判別情報＞
動作モードが自動的に決定される場合、すなわち、図７のステップＳ７０４によっても印刷モードが決定されず、ステップＳ７０５において通知される印刷モードが「自動」の場合には、スプーラ３０２によって判別情報が収集される。この場合、スプーラ３０２が各ページの中間状態の印刷情報を生成する際に、図１０に示すような最適な動作モードの決定に必要な判別情報の収集も行い、印刷情報の内容と併せて記録される。図１０に示す判別情報について補足すると、印刷ジョブに関する全般的な情報１００１と、ページ毎の描画内容に関する情報１００２に大別される。前者は、印刷日時、印刷者、印刷すべきファイルのファイル名、そのファイルの作成日および更新日、印刷を行ったアプリケーションソフトの名称およびそのバージョン番号、印刷時のプリンタ・ドライバのＵＩの設定（ドライバ動作状態）、印刷ジョブの総ページ数などを記録する。また、各ページ毎の描画内容に関する情報としては、テキスト、グラフィックス、イメージという３つの大きな描画オブジェクトに分類し、それぞれについて判別に必要とされる情報を収集する。例えば、テキストについては、文字数とそのページ内での文字サイズの最大ポイント数を収集し記録する。またグラフィックについては、そのページ内に存在するグラフィックオブジェクトの総数や、描画時に論理描画の指定（ＲＯＰ）がされているかどうかといった情報を収集する。イメージについても同様で、さらに描画すべきイメージの解像度等も収集する。
【００４５】
図３のデスプーラ３０５においては、スプーラ３０２によって記録されたこれらの判別情報をもとに、ページごとにどのような構成の文書なのかを判別して印刷モードを決定する。具体的には、テキストの情報については、文字の最大ポイントサイズとある閾値の値を比較し、閾値より大きい場合はホスト側でのレンダリング処理すなわちイメージモードが効率的であり、小さい場合はプリンタ側でのレンダリング処理すなわちＰＤＬモードが効率的であると判断する。また、グラフィックスについても、オブジェクト数とある閾値の値を比較し、オブジェクト数が閾値より大きい場合は、ホスト側でのレンダリング処理すなわちイメージモードが効率的であり、小さい場合はプリンタ側でのレンダリング処理すなわちＰＤＬモードが効率的であると判断する。また、イメージについては、解像度、階調、描画領域の情報よりＰＤＬコマンドとしてプリンタに送出されるデータ量を予測し、その値がホスト側でレンダリングしてハーフトーニング処理までした場合のイメージサイズと比べて大きい場合は、ホスト側でのレンダリング処理すなわちイメージモードが効率的であり、小さい場合はプリンタ側でのレンダリング処理すなわちＰＤＬモードが効率的であると判断する。また、ＲＯＰについては、プリンタ側でサポートしていないＲＯＰ番号が指定されていれば、ホスト側でのレンダリング処理すなわちイメージモードが行われるべきであり、そうでない場合はプリンタ側でのレンダリング処理すなわちＰＤＬモードが効率的であると判断する。そして、効率的であると判断されたモードが印刷モードとして選択される。
【００４６】
＜印刷モードの判別情報に基づく決定処理＞
本発明におけるこの一連の過程を図１１のフローチャートを用いて説明する。
【００４７】
図１１のステップＳ１１０１では印刷データ生成処理が行われる。ステップＳ１１０２では、プリンタドライバによってプリンタに対して印刷結果を問い合わせる。図１２，図１３，図１４は、図３の構成における印刷処理である図１１のステップＳ１１０１を説明するためのフローチャートである。図１２の処理フローは、図３におけるスプーラの処理を示し、図１３の処理フローは、図３におけるデスプーラの処理を示し、図１４の処理フローは、図３におけるプリンタ・ドライバの処理を示す。
【００４８】
＜スプール処理＞
図１２のフローチャートにおいて、まず、処理開始において、各種初期化が行われ印刷処理が開始されると、グラフィック・エンジンより印刷情報が渡される。その内容を特定のＰＤＬに依存しない中間的な印刷情報としてファイルとしてスプールする（Ｓ１２０１）。また、印刷モードが未だに決定されておらず「自動」のままであれば、図１０で示した判別情報の収集も併せて行う（Ｓ１２０２）。ステップＳ１２０１，Ｓ１２０２をページ内のデータについてすべて行う（Ｓ１２０３）。１ページ分の処理が完了した時点で、ステップＳ１２０２で収集した判別情報をファイルとしてスプールする（Ｓ１２０４）。これでスプーラがスプールする１ページ分の情報は完了するので、この時点で別プロセスとして動作するデスプーラを起動する（Ｓ１２０５）。またこの時点ですでにデスプーラが起動していたら、ステップＳ１２０５では何もしない。デスプーラは別プロセスとして別の時系列で動作するため、デスプーラの処理については別途図１３を用いて説明する。ステップＳ１２０６においてはすべてのページ分の処理が完了したかどうかをチェックする。完了していない場合は、ステップＳ１２０１からの処理を再び繰り返す。すべてのページの処理が完了すると本処理は終了する。なお、ステップ１２０４においては、印刷モードが既に図７の手順で決定されていれば、印刷ジョブに関する全般的な情報１００１に印刷モードを含めてスプールして良い。この場合には、デスプーラ及びプリンタドライバにおいて、このときスプールされた印刷モードで処理が行われる。
【００４９】
＜デスプール処理及びレンダリング処理＞
次に図１３のフローチャートを用いて、デスプーラの処理の流れを説明する。印刷モードが図７で決定されず「自動」である場合に図１３の処理が起こり、「自動」でない場合は、「ＰＤＬモード」「イメージモード」の決めうちでプリンタドライバが印刷データの生成を行う。まず、処理開始において各種初期化が行われデスプール処理が開始されると、各ページ毎の判別情報を読み出して印刷モードを判定する（Ｓ１３０３）。判別結果に従って、プリンタ側（ＰＤＬ）で処理すべきＰＤＬモードのページあるいはジョブの場合はステップＳ１３０４へ進み、ホスト側で処理すべきイメージモードのページあるいはジョブの場合はステップＳ１３０７の処理へと進む。
【００５０】
ステップＳ１３０４においては、描画データや各種描画属性の内容をスプールしたファイルを開き、先頭から内容を読み出す。スプールされている中間状態の印刷情報の形態から、グラフィック・エンジンが提供しているＡＰＩの形に変換処理を行い、グラフィック・エンジンの機能を使って再度印刷処理を行う（Ｓ１３０５）。１ページ分の印刷情報を再生したかどうかのチェックをステップＳ１３０６で行い、必要に応じてステップＳ１３０４，Ｓ１３０５の処理を繰り返す。一方、ページ毎の判別でホスト側でレンダリングを行った方が良いと判断されたページについては、ステップＳ１３０７に進み、描画データや各種描画属性の内容をスプールしたファイルを開き、先頭から内容を読み出す。スプールされている中間状態の印刷情報の形態から、レンダラが提供しているＡＰＩの形に変換処理を行い、各印刷情報を印刷イメージとなるようにレンダリング処理を行う（Ｓ１３０８）。レンダリング結果はイメージとなるが、このイメージをグラフィック・エンジンが提供しているＡＰＩの形に変換し、グラフィック・エンジンの機能を使って再度印刷処理を行う。１ページ分の情報について処理が完了したかステップＳ１３１０で判定し、完了したら、ステップＳ１３１１において全ページ分の処理が済んだかどうかをチェックし、未処理のページデータがある場合は、ステップＳ１３０３からの処理を再度繰り返す。そして本処理は終了する。
【００５１】
＜描画コマンド生成処理＞
図１３の処理の流れにおいて、グラフィック・エンジンのＡＰＩコールによって描画処理を行っているが、この処理は、また別のプロセスとして処理が実行される。具体的には、グラフィック・エンジンがプリンタ・ドライバを動的にリンクして印刷処理を実行することになる。プリンタ・ドライバの処理フローについて、図１４を用いて説明する。図１４は、本発明に係る印刷制御装置における印刷データ処理手順の一例を示すフローチャートである。
【００５２】
まず、プリンタ・ドライバ２０３はグラフィックエンジン２０２を介したアプリケーション２０１からの描画命令を受け付け（Ｓ１４０１）、各々の描画命令（例えば、線の描画等）に対応したプリンタ制御（描画）コマンドデータを変換生成し（Ｓ１４０２）、ＲＡＭ２または外部メモリ１１等へシステムスプーラ２０４によりスプールされる（Ｓ１４０３）。次に、アプリケーション２０１およびグラフィックエンジン２０２による描画処理が終了したかどうかを判定して（Ｓ１４０４）、ＮｏならばステップＳ１４０１へ戻り、同様の処理を繰り返す。一方、ステップＳ１４０４で描画処理が終了したと判定された場合は、システムスプーラ２０４によりスプールされていたプリンタ制御コマンドデータがプリンタ１００に対して送信され（Ｓ１４０５）、処理を終了する。なお、プリンタ・ドライバ２０３によって実行される本プリンタ制御コマンド生成手法（以下、ベクタグラフィックス印刷モード）の特徴は、線等といったベクタグラフィックスに対応した幾何学的な表現がなされるプリンタ制御（描画）コマンドをプリンタ１００へ送信するので、プリンタ１００内の描画処理系およびプログラムによって、印刷イメージの生成（ラスタライズ）が行われることにある。この場合には、プリンタ１００における印刷処理に要する時間は、オブジェクトの種類とその数量によって決定される。
【００５３】
以上のようにして、本実施形態に係る印刷処理システムでは、印刷モードとして自動設定が指定されている場合でも、ユーザが指定した印刷条件により印刷モードが決定でき、スプール処理を行って印刷命令を解析して印刷モードを決定する手間を省くことが可能となり、印刷処理全体としてスループットを向上させることが可能となる。また、ユーザが指定した印刷条件により印刷モードが決定できない場合にも、スプール処理を行って印刷命令を解析して印刷モードを決定するので、適する印刷モードを確実に決定することが可能となる。
【００５４】
また、異なる実施形態としては、イメージドライバを複数、もしくは異なる種類のＰＤＬドライバを複数、あるいはイメージドライバを複数とＰＤＬドライバを複数混在して持っていてもよい。
【００５５】
図１５は、本発明に係る印刷制御装置を適用可能な印刷システムで読み出し可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【００５６】
なお、特に図示しないが、記憶媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報、作成者等も記憶され、かつ、プログラム読み出し側のＯＳ等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【００５７】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、各種プログラムをコンピュータにインストールするためのプログラムや、インストールするプログラムが圧縮されている場合に、解凍するプログラム等も記憶される場合もある
本実施形態における図７、図１１、図１２、図１３、図１４に示す処理が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、ＣＤ−ＲＯＭやフラッシュメモリやＦＤ等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【００５８】
以上のように、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成される。
【００５９】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。プログラムコードを供給するための記憶媒体としては、例えば、フロッピーディスク、ハードディスク、光ディスク、光磁気ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＥＥＰＲＯＭ等を用いることができる。
【００６０】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【００６１】
【発明の効果】
以上説明したように、本発明によれば、印刷モードや印刷条件を自動設定可能な印刷処理システムにおいて、短時間で印刷モードを自動設定することが可能であり、しかも、ユーザによる指定された機能や条件を満足させる印刷モードを優先的に選択して、その印刷モードで印刷処理を行うことが可能となる。
【図面の簡単な説明】
【図１】本発明の実施形態を示す印刷データ処理装置を適用可能なホストコンピュータ側の基本構成を示すブロック図である。
【図２】印刷データ処理装置における印刷データの流れを説明するブロック図である。
【図３】印刷データ処理装置における印刷データの流れを説明するブロック図である。
【図４】図２の形態のドライバの動きと図３の形態のドライバの動きを時系列に従い模式的に比べた図である。
【図５】図１に示したホストコンピュータ上のＲＡＭ上のメモリマップの一例を示す図である。
【図６】動作モードの設定を間違えやすい印字サンプルの一例を示す図である。
【図７】本発明に係る印刷制御装置における印刷データ処理手順の一例を示すフローチャートである。
【図８】本実施形態のユーザインターフェイスの、表示項目を示す図である。
【図９】本実施形態のユーザへ問い合わせるユーザインターフェース画面の一例を示す図である。
【図１０】本実施形態において収集すべき判別情報の一例を示す図である。
【図１１】本発明に係る印刷制御装置における印刷データ処理手順の一例を示すフローチャートである。
【図１２】本発明に係る印刷制御装置における印刷データ処理手順の一例を示すフローチャートである。
【図１３】本発明に係る印刷制御装置における印刷データ処理手順の一例を示すフローチャートである。
【図１４】本発明に係る印刷制御装置における印刷データ処理手順の一例を示すフローチャートである。
【図１５】本発明に係る印刷制御装置を適用可能な印刷システムで読み出し可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【図１６】本発明に係る印刷制御装置における印刷データ処理手順の一例を示すフローチャートである。
【図１７】本実施形態のユーザインターフェイスの、判定項目と動作モードを示す図である。
【符号の説明】
１００  印刷装置
２００  ホストコンピュータ
２０１  アプリケーション
２０２  グラフィック・エンジン
２０３  プリンタ・ドライバ
２０４  システム・スプーラ
２０５  ユーザ・インターフェース
３０１  ディスパッチャ
３０２  スプーラ
３０３  スプール・ファイル
３０４  スプール・ファイルマネージャ
３０５  デスプーラ
３０６  レンダラ
【図１】
0003854786.tif 000002
【図２】
0003854786.tif 000003
【図３】
0003854786.tif 000004
【図４】
0003854786.tif 000005
【図５】
0003854786.tif 000006
【図６】
0003854786.tif 000007
【図７】
0003854786.tif 000008
【図８】
0003854786.tif 000009
【図９】
0003854786.tif 000010
【図１０】
0003854786.tif 000011
【図１１】
0003854786.tif 000012
【図１２】
0003854786.tif 000013
【図１３】
0003854786.tif 000014
【図１４】
0003854786.tif 000015
【図１５】
0003854786.tif 000016
【図１６】
0003854786.tif 000017
【図１７】
0003854786.tif 000018