(57)【要約】【課題】複数の印刷データ生成部をページ毎に切り替えて使用して印刷データを出力するプリンタドライバにおいて、全印刷データ生成部でハッチブラシ、スタイルペンで統一可能なプリンタドライバを提供すること。【解決手段】デスプーラ２１５がイメージタイプの印刷データ生成部にハッチブラシ、スタイルペン等のパターンを表現する描画属性を登録する際、事前にプリンタ１００が内蔵している描画属性を取得し、イメージタイプの印刷データ生成部の描画属性として登録する。これによって、各印刷データ生成部２０５〜２０８で用いられるハッチブラシ、スタイルペンの描画属性が統一され、ページ毎に異なる印刷データ生成部を用いて印刷データを生成しても、全ページで統一のとれた出力結果が得られる。【選択図】        図１
2004192323.tif 000002
【特許請求の範囲】
【請求項１】
所定の通信媒体を介してプリンタと通信可能な情報処理装置とそのプリンタによって構成される印刷処理装置において、
基本ソフトウェアより渡される描画命令を記憶可能な形式のページ記述言語に変換するスプールドライバ手段と、
前記ページ記述言語を分析し、印刷モード判定情報を生成する印刷モード判定手段と、
前記スプールドライバ手段によって生成されたページ記述言語を保持するページ記述記憶手段と、
前記印刷モード判定手段によって生成された印刷モード判定情報を保持する印刷モード判定記憶手段と、
前記印刷モードに１対１に対応し、前記スプールドライバ手段が生成するページ記述言語からプリンタが印刷可能な印刷データを生成可能な複数の印刷データ生成手段と、
前記印刷モード判定情報を用いて印刷モードを決定し、対応する前記印刷データ生成手段に前記ページ記述言語を供給するデスプーラ手段とで構成されるプリンタドライバにおいて、
前記デスプーラ手段が、前記ページ記述言語中の描画情報から前記プリンタに依存する描画属性を検出した際に、前記描画属性として共通の情報を用いて前記印刷データを生成するよう前記印刷データ生成手段を制御することを特徴とするプリンタドライバ及び情報処理装置。
【請求項２】
前記描画属性として共通の管理を行うものとして、パッチブラシパターン、スタイルペンパターンを含むことを特徴とする請求項１記載のプリンタドライバ及び情報処理装置。
【請求項３】
前記描画属性を前記プリンタから通信媒体を介して、前記デスプーラ手段が取得することを特徴とする請求項１および請求項２記載のプリンタドライバ及び情報処理装置。
【請求項４】
前記描画属性を前記プリンタへ通信媒体を介して、前記デスプーラ手段が登録することを特徴とする請求項１および請求項２記載のプリンタドライバ及び情報処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、アプリケーションソフトウェア等の印刷指示により、プリンタ等の画像形成装置に対する印刷データを生成するプリンタドライバ及び情報処理装置に関する。
【０００２】
【従来の技術】
図９は、画像形成装置としてのプリンタ及びその制御を行う情報処理装置としてのホストコンピュータで構成された、従来の印刷システムの例を示す図である。
【０００３】
図に示すように、ホストコンピュータ２００は、セントロニクスインターフェース、ＩＥＥＥ１２８４といったパラレルインタフェース、ＵＳＢ、ＩＥＥＥ１３９４等のシリアルインタフェース、１０／１００ＢＡＳＥ−Ｔ等のネットワークインタフェース６００を介してプリンタ１００と接続されている。ホストコンピュータ２００には、ＣＲＴ、ＬＣＤ等のディスプレイモニタ３００及び入力デバイスとしてのキーボード４００及びマウス５００が接続されている。
【０００４】
ホストコンピュータ２００では、Ｗｉｎｄｏｗｓ（Ｒ）（米国Ｍｉｃｒｏｓｏｆｔ社の登録商標）のようないわゆる基本ソフト（ＯＳ）の上でワードプロセッサや表計算のような、プリンタ１００を利用可能なアプリケーションソフトウェア２０１（以下アプリケーションと略称）が動作している。これらアプリケーションのユーザが印刷を指示した場合、そのアプリケーションは、基本ソフトが提供するいくつかのサブシステムの内、グラフィックサブシステム２０２の機能を用いて印刷を行う。
【０００５】
このグラフィックサブシステムは、例えば基本ソフトがＷｉｎｄｏｗｓ（Ｒ）の場合、ＧＤＩ（Ｇｒａｐｈｉｃ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ）２０３と呼ばれており、ディスプレイやプリンタに対する描画処理を司っている。このＧＤＩ（２０３）は、ディスプレイやプリンタといったデバイス毎の依存性を吸収するために、アプリケーションから指定された出力デバイスに対応する、デバイスドライバと呼ばれるモジュールを動的にリンクし、それぞれのデバイスに対する出力処理を行う。
【０００６】
プリンタに対するデバイスドライバはプリンタドライバと呼ばれる。プリンタドライバ２０４は、対応するプリンタの能力や機能などに応じて、あらかじめデバイスドライバに実装することが決められているＤＤＩ（Ｄｅｖｉｃｅ  Ｄｒｉｖｅｒ  Ｉｎｔｅｒｆａｃｅ）と呼ばれる関数群を有しており、ＧＤＩ（２０３）がこのＤＤＩを用いることによって印刷処理が行われる。
【０００７】
すなわち、図９の例において、アプリケーションから印刷指示（ＧＤＩ（２０３）へのＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）コール）があると、ＧＤＩ（２０３）はプリンタ１００に対応するプリンタドライバ２０４を動的にリンクするとともに、アプリケーションからのＡＰＩコールをプリンタドライバ２０４が有するＤＤＩ関数群を用いた形式に変換する。そして、ＧＤＩ（２０３）からＤＤＩ関数群がコールされることによって所定の印刷処理が実行される。このように、ＧＤＩ（２０３）では、プリンタドライバ２０４を用いてアプリケーションからの印刷要求をシーケンシャルに処理している。
【０００８】
プリンタドライバ２０４は、ＤＤＩを介してＧＤＩ（２０３）から受け渡しされるデータから、プリンタ１００が印刷可能な形式のデータを生成、出力する。この際、プリンタ１００に能力、機能に対応した複数の印刷データ生成部を用いて印刷データを生成し、スプールサブシステム２１０を介してプリンタ１００へ出力する。
【０００９】
プリンタ１００へ出力する、印刷データ形式としては、ＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）と呼ばれる制御コマンド及びイメージデータ（ビットマップ）の２種類に大別される。そして、プリンタドライバ２０４に含まれるデスプーラ２５０は、それぞれが所定形式のデータを出力する複数の印刷データ生成部（２０５〜２０８）の中から、１つを選択して印刷処理を実行する。
【００１０】
図９において、印刷データ生成部（２０５〜２０８）は、ＰＤＬを出力する（以下、ＰＤＬタイプという）第１の印刷データ生成部２０５と、イメージデータを出力する（以下、イメージタイプという）第２〜第４の印刷データ生成部（２０６〜２０８）から構成されている。また、イメージデータを出力する第２〜第４の印刷データ生成部（２０６〜２０８）のうち、第２のイメージデータ生成部２０６はモノクロ（ｍｏｎｏ  １ＢＰＰ：１  ｂｉｔ  ｐｅｒ  ｐｉｘｅｌ）イメージデータを、第３のイメージデータ生成部２０７は各色１ビットのＹＭＣＫ（ＹＭＣＫ  ４ＢＰＰ）カラーイメージデータを、第４のイメージデータ生成部２０８は、各色８ビットのＲＧＢ（ＲＧＢ  ２４ＢＰＰ）イメージデータをそれぞれ出力する。
【００１１】
第１の印刷データ生成部２０５は、プリンタ１００がＰＤＬを処理可能なコントローラを搭載する場合に使用可能であり、第１の印刷データ生成部２０５を用いる場合、デスプーラ２５０はＧＤＩ（２０３）からＤＤＩを介して受け取ったデータを第１の印刷データ生成部２０５へ受け渡し、ＰＤＬのコマンドに変換し次第、スプールサブシステム２１０を介してプリンタ１００に送出する。この場合、デスプーラ２５０の処理はＤＤＩを介して受け取ったデータを第１の印刷データ生成部２０５に受け渡してＰＤＬコマンドを生成するだけなので、軽い処理といえる。
【００１２】
ＰＤＬタイプの印刷データ生成部を用いる場合、ＧＤＩ（２０３）から抽象度の高いデータを受け取り、ＰＤＬコマンドの形式で送出できるので、通常のページ印刷においては転送する印刷データサイズを小さくすることが可能である。
【００１３】
一方、イメージタイプの印刷データ生成部（２０６〜２０８）は、プリンタ１００では高度な描画処理を行わずにすむよう、プリンタドライバ２０４がホストコンピュータ２００で確保したメモリ空間上に印刷イメージの展開を行い、それをプリンタ１００で直接印刷できるイメージデータ形式に変換してから、プリンタ１００に転送する。
【００１４】
具体的には、ＰＤＬタイプの印刷データ生成部と同様に、ＧＤＩ（２０３）からＤＤＩを介して渡されたデータをプリンタドライバ２０４に含まれるデスプーラ２５０がイメージタイプの印刷データ生成部（２０６〜２０８）の１つに受け渡す。そして、印刷データ生成部は受け渡しされたデータに基づいてバンドメモリ２０９に描画処理を行い、１バンド分の描画処理が終了すると、スプールサブシステム２１０を介してプリンタ１００にビットマップデータを送出する。プリンタ１００は、受信したビットマップデータを直接出力する。
【００１５】
イメージタイプの印刷データ生成部を用いる場合はホストコンピュータ２００において、ＰＤＬタイプの印刷データ生成部を用いる場合はプリンタ１００において、描画処理を行う必要がある。描画処理を行うには、メモリ空間を確保する必要があるが、ＲＧＢ各色８ビットで６００ＤＰＩ（ｄｏｔ  ｐｅｒ  ｉｎｃｈ），Ａ４フルページ分の描画処理を行うために必要なメモリ空間は９６ＭＢｙｔｅ必要であり、現状ではホストコンピュータ２００、プリンタ１００のどちらでも確保することは困難である。
【００１６】
そこで、一般には、特にデータ量が多くなるカラープリンタの描画処理には、１ページを水平方向に複数に分割したバンド単位で描画処理が行われ、この描画処理に用いるメモリをバンドメモリと呼ぶ。
【００１７】
また、プリンタ１００に最終的に転送するデータ形式は、ディスプレイ装置で用いられるようなＲＧＢ（輝度）形式ではなく、プリンタ１００が用いるトナーの濃度を表すＹＭＣＫ形式であり、またＹＭＣＫ形式では各色１ビット、２ビット（又は４ビット）であることが多いため、各色８ビットのＲＧＢ形式よりもデータ量が小さくなるという理由から、プリンタドライバ２０４以降の処理においてはＹＭＣＫ形式でデータを取り扱うのが一般的である。そして、イメージタイプの印刷データ生成部のなかには、ＹＭＣＫ各色１ビット、２ビットもしくは４ビットのデータをプリンタ１００に転送することで、転送データサイズを小さく抑え、プリンタ１００の負荷を軽くするものがある。
【００１８】
例えば、多角形図形の印字処理を行う場合、ＰＤＬタイプの印刷データ生成部は、多角形の頂点座標と線幅、線の色情報、図形内の塗り色情報等がコマンドとして転送され、プリンタ内部でこのコマンドを解析し、プリンタ内部に設けられた、ＹＭＣＫ各色１ビット、２ビットまたは４ビットのデータに対する１バンド分のメモリ空間を用いて描画処理を行い、出力形態のビットマップデータに展開する。
【００１９】
ＰＤＬタイプの印刷データ生成部を用いる場合、プリンタに転送されるデータはＰＤＬコマンドであり、一般にはイメージタイプの印刷データ生成部が生成するデータよりもサイズが小さくなる。しかし、１ページあたりのＰＤＬコマンド数には制限が無く、理論上はイメージタイプの印刷データ生成部よりも転送データが大きくなる可能性がある。また、ＰＤＬタイプの印刷データ生成部を用いた場合、プリンタ側で描画処理を行う必要があるが、バンドメモリに対する描画処理であっても、１ページ分のＰＤＬコマンドをすべて受信してからでないと描画処理が開始できない。近年、アプリケーションが出力する印刷命令は増加の一途をたどっており、１ページを構成するＰＤＬコマンドも増加しているため、メモリ量の少ないプリンタでは処理速度低下の要因になっている。
【００２０】
このような場合、プリンタに比べてメモリ容量に余裕のあるホストコンピュータ２００上で動くプリンタドライバ２０４においてバンド単位もしくはフルページ分の描画メモリを確保し、イメージタイプの印刷データ生成部を使用して描画処理を行い、ビットマップデータをプリンタに転送した方が印刷処理全体のスループットは向上する。図９の例では、バンドメモリ２０９を用いている。
【００２１】
前述したように、印刷データ生成部は、ＰＤＬタイプ、イメージタイプ共に省メモリのためにＹＭＣＫ各色１，２，４ビットという出力装置依存の色空間上で描画処理を行っているが、ＧＤＩ（２０３）が論理演算描画処理時にＤＤＩ関数群をコールする場合、用いられる色形式はＹＭＣＫ形式でなくＲＧＢ形式であるため、描画不正が発生することがある。このため、描画不正回避のために、論理演算処理が発生した場合、プリンタドライバ２０４においてＹＭＣＫ形式に変換されているデータをＲＧＢ値に戻し（逆ＵＣＲ（Ｕｎｄｅｒ  Ｃｏｌｏｒ  Ｒｅｍｏｖｅ）処理）、それから論理演算処理することで対応しているが、完全な描画処理を保証しないばかりか、処理速度低下の原因になっている。
【００２２】
このように、印刷しようとする内容、プリンタドライバ２０４で用いる印刷データ生成部の種類、プリンタ側のハードウェア資源等、多くの要因によって印刷処理全体に要する時間は変動する。
【００２３】
しかし、このような要因を考慮して適切な処理方法を自動選択する方法は現時点で実現されていない。そこで、アプリケーションのユーザは、通常は高速に処理がなされる可能性の高いＰＤＬタイプの印刷データ生成部を選択して（実際にはアプリケーションもしくはプリンタドライバ２０４が提供するＧＵＩなどで、「速度優先」、「高速印刷」等の印刷モードを選択することにより、デスプーラ２５０がＰＤＬタイプである第１の印刷データ生成部２０５を選択して処理する）印刷を指示し、出力に時間が掛かりすぎる場合は、同様に高速イメージモード（デスプーラ２５０がＹＭＣＫ各色１ビットのイメージデータを出力する第２の印刷データ生成部を選択）に切り替えて出力しなおす。また、不正出力結果が出た場合は、同様に「画質優先」「高精細」等の印刷モードを選択（デスプーラ２５０がＲＧＢ各色８ビットのイメージデータを出力する第３の印刷データ生成部を選択）して出力し直さなければならない。
【００２４】
つまり、現状においては、プリンタドライバ２０４が使用する印刷データ生成部の選択が、アプリケーションのユーザに任されており、また、ユーザは自分が印刷しようとしている文書等に最適な印刷モードを決定する術を持たないため、全てのモードで実際に印刷し、出力物もしくは出力時間等を比較しないと最適なモードが解らない。また、複数ページを有する文書等を印刷する場合、ＰＤＬタイプが適したページとイメージタイプが適したページなど、タイプの異なるページが同一文書中に含まれている場合がある。このような文書を印刷する場合、全ページを同一の印刷モード（印刷データ生成部）で処理すると、出力時間が掛かる、または不正出力ページが混じる、といった問題も発生しうる。
【００２５】
こういった問題を解決するために、図６に示すような、プリンタドライバ２０４が利用可能な各印刷データ生成部の長所、短所に応じて、各印刷データ生成部の長所のみを用いて印刷処理を行うことが可能なような、印刷モード（印刷データ生成部）の自動切り替え技術が求められている。
【００２６】
印刷モード自動切り替えを実現可能なプリンタドライバには、最低限以下の機能が必要である。
【００２７】
１）スプールドライバ機能
印刷モードの自動切り替えを実現するためには、１ページ分の描画情報を知った上で、最適な処理モードを決定しその後デスプール処理を実行する必要がある。そのためデスプーラが保持するどの印刷データ生成部でも処理可能なデータ形式で１ページ分のＤＤＩ関数コール情報をスプールする機能。
【００２８】
２）印刷モード判定機能
１ページ分のＤＤＩ関数コールをチェックし、デスプーラが保持するどの印刷データ生成部で印刷データの生成を行うのが最適を判定する機能。
【００２９】
３）デスプーラ機能
スプールドライバ機能によってスプールされた１ページ分の描画情報を、印刷モード判定機能によって判定した最適な印刷データ生成部を用いて処理する機能。
【００３０】
この様な機能を有するプリンタドライバを有するホストコンピュータ２００の構成例を、図５に示す。図５において、スプールドライバ２１１、印刷モード判定部２１２及びデスプーラ２１５がそれぞれ上述の１）〜３）の機能を実現する。また、ＰＤＦ記憶部２１３はスプールドライバ２１１が１ページ分の描画情報をスプールする領域であり、ＰＣＦ記憶部２１４は印刷モード判定部２１２が１ページ分のＤＤＩ関数コールの特徴を一時記憶する領域である。
【００３１】
【発明が解決しようとする課題】
図５に示すような構成を有するプリンタドライバ２６０を用いることによって、複数の印刷データ生成部を自動切り替えして印刷処理を行うことができるが、複数の印刷データ生成部を切り替えて１つの印刷処理を実施した場合、描画に関して新たな問題が発生する。図４を用いて新たな問題について説明する。
【００３２】
ハッチブラシ、スタイルペンでの描画を行う際には、特定のスタイルのパターンが基本ＯＳによりあらかじめ定められており、そのパターン種のＩＤを伴って基本ＯＳからからＤＤＩ関数群がコールされる。
【００３３】
以下にＷｉｎｄｏｗｓ（Ｒ）の場合に既に登録されているハッチブラシ、スタイルペンの一覧を以下に示す。
・ハッチブラシ
ＶＥＲＴＩＣＡＬ：  垂直ハッチ
ＨＯＲＩＺＯＮＴＡＬ：  水平ハッチ
ＦＤＩＡＧＯＮＡＬ：  ４５度右上がりのハッチ（右上から左下への対角線）
ＢＤＩＡＧＯＮＡＬ：  ４５度左上がりのハッチ（左上から右下への対角線）
ＣＲＯＳＳ：  水平と垂直のクロスハッチ
ＤＩＡＧＣＲＯＳＳ：  ４５度のクロスハッチ（右上から左下と、左上から右下への対角線）
・スタイルペン
ＤＯＴ：  点線
ＤＡＳＨ：  破線
ＤＡＳＨＤＯＴ：  一点鎖線
ＤＡＳＨＤＯＴＤＯＴ：  二点鎖線
ＰＤＬタイプの印刷コマンド生成装置２０５においては、通常あらかじめプリンタ１００に登録されているハッチブラシパターン、スタイルペンパターン等の描画属性のＩＤを含むコマンドを生成して描画を行う。プリンタ１００に既に登録されている描画属性ＩＤを用いてＰＤＬコマンドを生成することにより、ハッチブラシやスタイルペンを表す実際のパターンデータをコマンドとして転送する必要がないため、ホストコンピュータ２００とプリンタ１００の間の転送ホストコマンドサイズを減少することが可能になる。
【００３４】
しかし上記の基本ＯＳによりあらかじめ定められているのパターンの定義は、あくまでも抽象的な概念であり、垂直ハッチのパターンの幅や破線を構成する実線の間隔等のドット単位等での実際の既定情報は存在しない。
【００３５】
ＰＤＬタイプの印刷データ生成手段２０５ではプリンタ内部で定義されたプリンタの描画属性で描画され、またイメージタイプの印刷データ生成手段（２０６〜２０８）ではプリンタドライバが指定したプリンタドライバの描画属性で描画される。その為、それぞれの印刷データ生成手段（２０５〜２０８）での描画属性の定義が異なると図４に示すように見栄えが著しくことなることがある。ページ毎に切り替えて印刷データ生成手段を使用して印刷データを出力するプリンタドライバにおいて、ページ間の見栄えの差は問題となる。
【００３６】
本発明はこのような従来技術の問題点に鑑みなされたものであり、その目的は、ページ毎に切り替えて印刷データ生成手段を使用して印刷データを出力するプリンタドライバにおいて、ハッチブラシ、スタイルペンの統一可能なプリンタドライバを提供することにある。
【００３７】
【課題を解決するための手段】
本発明の要旨は、所定の通信媒体を介してプリンタと通信可能なデータ処理装置とそのプリンタによって構成される印刷処理装置において、基本ソフトウェアより渡される描画命令を記憶可能な形式のページ記述言語に変換するスプールドライバ手段と、ページ記述言語を分析し、印刷モード判定情報を生成する印刷モード判定手段と、スプールドライバ手段によって生成されたページ記述言語を保持するページ記述記憶手段と、印刷モード判定手段によって生成された印刷モード判定情報を保持する印刷モード判定記憶手段と、印刷モードに１対１に対応し、前記スプールドライバ手段が生成するページ記述言語からプリンタが印刷可能な印刷データを生成可能な複数の印刷データ生成手段と、印刷モード判定情報を用いて印刷モードを決定し、対応する印刷データ生成手段にページ記述言語を供給するデスプーラ手段とで構成されるプリンタドライバにおいて、デスプーラ手段がプリンタに依存する描画属性、すなわちパッチブラシパターン、スタイルペンパターンをプリンタから通信媒体を介して取得管理しており、ページ記述言語中の描画情報からプリンタに依存する描画属性を検出した際に、管理している描画属性を用いて前記印刷データを生成するよう前記印刷データ生成手段を制御することに存在する。
【００３８】
また本発明の要旨は、所定の通信媒体を介してプリンタと通信可能なデータ処理装置とそのプリンタによって構成される印刷処理装置において、基本ソフトウェアより渡される描画命令を記憶可能な形式のページ記述言語に変換するスプールドライバ手段と、ページ記述言語を分析し、印刷モード判定情報を生成する印刷モード判定手段と、スプールドライバ手段によって生成されたページ記述言語を保持するページ記述記憶手段と、印刷モード判定手段によって生成された印刷モード判定情報を保持する印刷モード判定記憶手段と、印刷モードに１対１に対応し、前記スプールドライバ手段が生成するページ記述言語からプリンタが印刷可能な印刷データを生成可能な複数の印刷データ生成手段と、印刷モード判定情報を用いて印刷モードを決定し、対応する印刷データ生成手段にページ記述言語を供給するデスプーラ手段とで構成されるプリンタドライバにおいて、デスプーラ手段がページ記述言語中の描画情報からプリンタに依存する描画属性を検出した際に、通信媒体を介して管理している共通の描画属性をプリンタへ登録することによって印刷データを生成するよう前記印刷データ生成手段を制御することに存在する。
【００３９】
また、本発明の別の要旨は、本発明のプリンタドライバを用いた情報処理装置に存在する。
【００４０】
また、本発明の別の要旨は、本発明のプリンタドライバをコンピュータ装置に実現させるためのコンピュータプログラムに存在する。
【００４１】
【発明の実施の形態】
以下、図面を参照して本発明をその好適な実施形態に基づき説明する。
【００４２】
図５は、本発明に係るプリンタドライバを適用可能なプリントシステムの構成例を示すブロック図である。上述の通り、図５のプリンタシステムはホストコンピュータ２００及びプリンタ１００から構成され、両者は互いに通信可能に接続されている。
【００４３】
本実施形態に係るプリンタドライバ２６０は、基本ソフトが提供する、各印刷装置製造ベンダが開発可能なサブシステムであるグラフィクスサブシステム２０２とスプールサブシステム２１０にまたがって形成され、以下のような印刷モード自動切り替えのための要素を有している。
○グラフィクスサブシステム２０２内：
スプールドライバ２１１
印刷モード判定部２１２
○スプールサブシステム２１０内：
デスプーラ２１５
印刷データ生成部２０５〜２０８
次に、本発明の背景となる印刷モード自動切り替えを実現するために必要なそれぞれの手段について説明していく。
【００４４】
１）スプールドライバ２１１
印刷モード自動切り替えを実現するためには、１ページ分の描画情報を知った上で、最適な処理モードを決定し、その後デスプール処理を実行する必要がある。そのためには、ＤＤＩ関数に渡されるデータをデスプール時にどの印刷データ生成部が用いられても処理可能なデータ形式で１ページ分以上、かつページ単位でスプールしなくてはならない。
【００４５】
そこで、本実施形態においては、スプール時のデータ形式として、図７に示す形式（ＰＤＦ形式と呼ぶ）を用いた。ＰＤＦ形式のスプールデータ９００は、ページを特定するためのｐａｇｅＩＤ（９０１）に続いて、ページのサイズや、データサイズ、格納したオブジェクト数等を保持するＰａｇｅＩｎｆｏｒ（９０２）をヘッダとして持つ。
【００４６】
そして、ヘッダに続くフィールド９０３には、ＤＤＩ関数でコールされた描画関数を示す情報が格納される。図７では単純ビットマップコピーを行う描画関数ＣｏｐｙＢｉｔｓの名前が格納されている。
【００４７】
また、ｄａｔａｓｉｚｅ（９０４）は９０３に格納されたＣｏｐｙＢｉｔｓのスプールにかかったサイズ、ＢｏｕｎｄＲｅｃｔ（９０５）はＣｏｐｙＢｉｔｓに渡される描画先のサーフェイス情報を示す転送先のサーフェイス情報を、ＳｏＳｒｃ（９０６）はＣｏｐｙＢｉｔｓに渡される転送元サーフェイス情報を示す転送元イメージ情報をそれぞれ格納する。
【００４８】
転送元イメージデータ９０７は転送元イメージデータのビット列である。ｃｏ（９０８）はＣｏｐｙＢｉｔｓに渡される描画先のクリップ情報を格納。またクリップデータが複数個存在する場合は、その後ろにクリップデータ９０９を格納する。ｘｌｏ（９１０）は転送元と転送先のサーフェイス間の色変換情報を、ｒｃｌＤｅｓｔ（９１１）描画先のサーフェイス上の矩形範囲を示す情報を、ｐｔｌＳｒｃ（９１３）は転送元サーフェイス上の転送元原点情報をそれぞれ格納する。
【００４９】
以降、描画関数毎に必要なスプールデータが１ページ分格納される。
【００５０】
デスプール時には、デスプーラ２１５が、ＤＤＩ関数の状態に戻してから印刷モード判定手段で判定された印刷データ生成部に受け渡しする。それによって、印刷データ生成部は従来通りＤＤＩ関数を受け取り、印刷データを生成する仕様のままでよい。
【００５１】
２）印刷モード判定部２１２
印刷モード判定部２１２は、スプールドライバ２１１がＰＤＦ記憶部２１３にスプールする、ＧＤＩ（２０３）から受け渡された描画命令（描画関数）をチェックし、１ページ分のデータ内容から複数の印刷データ生成部のうち最適なものを判定する。
【００５２】
具体的には、この判定は、スプールドライバ２１１がＰＤＦ記憶部２１３にスプールするデータを監視し、１ページ分のデータ内に含まれる描画関数の種類及び頻度等の判定用情報を格納し、その結果に基づいてなされる。
【００５３】
本実施形態において、印刷モード判定部２１２は判定用情報をＰＣＦ（プレチェックファイル）記憶部２１４に格納する。この際、図８に示すようなデータ構造体として格納を行う。
【００５４】
図８において、ＰＣＦ１０００は、そのファイルが属するジョブナンバー（ＪｏｂＩＤ）１００１、ページナンバー（ＰａｇｅＮｏ）１００２で始まる構造体で、この二つの値により、対応するページを特定可能である。
【００５５】
そして、ページをＹ軸方向に分割したバンドの大きさを表すＶｂａｎｄＳｉｚｅ（１００４）、ＰＣＦ１０００に格納されるバンド情報ＢａｎｄＩｎｆｏの数を格納するｂａｎｄＣｎｔ（１００５）に続き、各バンド内の判定用情報を格納するＢａｎｄｉｎｆｏ［０］（１００６）〜ＢａｎｄＩｎｆｏ［ｎ］が格納される。各ＢａｎｄＩｎｆｏは構造体１０３０で示すような構成を有している。すなわち、ＰＣＦ１０００は、ＶｂａｎｄＳｉｚｅ（１００４）に示されたサイズの仮想バンドが、ｐａｇｅＳｉｚｅ（１００３）の中に、ｂａｎｄＣｎｔ（１００５）分敷きつめられた領域を仮想的に定義したものである。
【００５６】
ＢａｎｄＩｎｆｏは、その仮想バンドの領域を矩形情報で保持するＢａｎｄＲｅｃｔＬ（１０１０）で始まる構造体であるが、この構造体１０３０は、ＢａｎｄＲｅｃｔＬ（１０１０）で表されるの領域内に関連する描画処理情報を記録するために用いられる。
【００５７】
構造体１０３０の詳細は以下のとおりである。
【００５８】
仮想バンド内に描かれる描画処理の最大概説矩形領域ＤｒａｗＲｅｃｔＬ１０１１、バンド内に描かれる描画領域の中の有彩色領域ＣｏｌｏｒＲｅｃｔＬ１０１２、ＹＭＣＫ印字では不正印字が発生する領域ＲＯＰＲｅｃｔＬ１０１３、イメージ系関数による描画処理領域ＩｍｇＲｅｃｔＬ１０１４、グラフィックス系関数による描画領域ＧｒａｐｈｉｃＲｅｃｔＬ１０１４、文字系描画領域ＴｅｘｔＲｅｃｔＬ１０１６。
【００５９】
ＢａｎｄＩｎｆｏ構造体１０３０は、これら以外に、ＤＤＩ関数毎の情報もフィールド１０１７〜１０２０に収集する。
【００６０】
ビットマップの拡縮指定可能なＤＤＩ関数であるＳｔｒｅｔｃｈＢｌｔ（１０１９）の情報を例に説明する。ＳｔｒｅｔｃｈＢｌｔ（１０１９）は、複数のフィールド１０１９１〜１０１９６から構成される。すなわち、当該仮想バンド領域内に関係するＳｔｒｅｔｃｈＢｌｔ関数のコール回数を格納するｃａｌｌｃｎｔ１０１９１、１ＢＰＰ（１ｂｉｔ  ｐｅｒ  ｐｉｘｅｌ）イメージの個数を格納する１ＢＰＰＣｎｔ１０１９２、１ＢＰＰイメージの総データサイズを格納する１ＢＰＰＴｏｔａｌＳｉｚｅ１０１９３をはじめ、４ＢＰＰ、２４ＢＰＰイメージについても同様な情報を格納可能である。その他のＤＤＩ関数についても、ＳｔｒｅｔｃｈＢｌｔ関数と同様、それぞれの関数Ｉ／Ｆに渡される情報を保持するようなデータ構造体で構成される。
【００６１】
３）デスプーラ２１５
図６に示す各印刷データ生成部の特徴をふまえて、印刷モード判定部２１２がＰＣＦ記憶部２１４格納したＰＣＦを解析し、最適と考えられる印刷モードを決定する。そして、決定した印刷モードに対応する各印刷データ生成部２０５〜２０７を用いて、ページ記述記憶手段２１３の内容を印刷再生していく。具体的には、命令絶対数が少ない場合にはＰＤＬモード（第１の印刷データ生成部２０５）を、命令数が多いモノクロ画像であればモノクロイメージモード（第２の印刷データ生成部２０６）を、命令数が多くカラー画像であればデバイスカラーモード（第３の印刷データ生成部２０７）を、命令数が多く、かつＹＭＣＫ形式では描画不正が発生する場合であればＲＧＢカラーモード（第４の印刷データ生成部２０８）を選択する等が可能である。
【００６２】
スプールドライバ２１１がＰＤＦ記憶部２１３にスプールしたデータは、ＤＤＩ関数に可逆なＰＤＦ形式を有するため、デスプーラ２１５は図９に示した従来の印刷データ生成部と同一の印刷データ生成部２０５〜２０８を利用することが出来る。
【００６３】
次に、本実施形態に係るプリンタドライバ２６０における描画属性を統一する方法について図１を用いて説明する。
【００６４】
図１において、図３に示した従来の構成（及び動作）と異なるのは、デスプーラ２１５が印刷データ生成手段（２０５〜２０８）を用いて印刷データの生成を行う前に、デスプーラ２１５がプリンタ１００へプリンタ内部で保持している描画属性を取得し、イメージタイプの印刷データ生成手段（２０６〜２０８）へプリンタの描画属性情報を登録する点である。
【００６５】
すなわち、プリンタ内部で保持されている描画属性情報をイメージタイプの印刷データ生成手段（２０６〜２０８）で用いることにより、印刷データ生成部間での描画属性情報が統一される。従って、ページ毎に使用する印刷データ生成部を変化させたとしても、印刷データ生成部が出力するハッチブラシ、スタイルペンは共通の見栄えとなる。
【００６６】
図２に示すフローチャートを用いて、上述した本発明のプリンタドライバにおける全体処理について説明する。
【００６７】
ＧＤＩ（２０３）からＤＤＩ関数のコールを受けると、スプールドライバ２１１はその内容をＰＤＦ形式に変換し、ＰＤＦ記憶部２１３にスプールする（ステップＳ１００）。一方、印刷モード判定部２１２は、スプールドライバ２１１がＰＤＦ記憶部２１３にスプールするデータを監視し、ＰＣＦをＰＣＦ記憶部２１４に格納する（ステップＳ１１０）。ＰＤＦのスプール処理及びＰＣＦの格納処理は少なくとも印刷対象書類の１ページ分の処理が終了するまで継続して行う（ステップＳ１２０）。
【００６８】
１ページ分のＰＤＦ、ＰＣＦの格納が終了すると、デスプーラ２１５はプリンタに描画属性の取得要求を行い、プリンタ内に保持している描画属性情報を取得する（ステップＳ１３０）。次にデスプーラ２１５は、イメージタイプの印刷データ生成手段（２０６〜２０８）へ、ステップＳ１３０で取得した描画属性を登録する（ステップＳ１４０）。続いてデスプーラ２１５は、ＰＣＦ記憶部２１４に格納されたＰＣＦを参照し、当該ページの印刷処理に最適な印刷モードを決定する（ステップＳ１５０）。
【００６９】
そして、ＰＤＦ記憶部２１３にスプールされたＰＤＦ形式のデータを、ＤＤＩ関数の形に戻して、印刷データ生成部に引き渡す（ステップＳ１６０）。イメージタイプの印刷データ生成部では、受け渡されたＤＤＩ関数及びステップＳ１４０で登録された描画属性を用いてイメージデータである印刷データを生成し、またＰＤＬタイプの印刷データ生成部では、描画属性を表すＩＤを含む受け渡されたＤＤＩ関数を用いてＰＤＬデータを生成する（ステップＳ１７０）。生成された印刷データは、イメージデータであればバンドメモリ２０９を介してバンド単位に、ＰＤＬ命令であればバンドメモリ２０９を介さずに、それぞれスプールサブシステム２１０のインターフェース６００を介してプリンタ１００へ転送される。
【００７０】
なお、図２のフローチャートにおいては、理解を容易にするため、１ページ分の処理について時系列的に記載したが、ステップＳ１００〜Ｓ１２０のスプール（格納）処理と、ステップＳ１３０以降の判定、印刷処理とは独立して行うことが可能である。すなわち、スプールドライバ２１１によるＰＤＦデータのスプール及び印刷モード判定部２１２によるＰＣＦデータの格納は、ステップＳ１３０以降の処理とは関係なく印刷対象文書全ページについての処理が終了するまで連続して行われ、一方ステップＳ１３０以降の処理は、１ページ分の処理が終了した時点で次ページに対応するＰＣＦを参照し、印刷モード判定以降の処理を繰り返し行うことができる。
【００７１】
（その他の実施形態）
上述の実施形態においては、デスプーラ２１５が通信媒介を用いてプリンタ１００よりハッチブラシパターン、スタイルペンパターンを取得管理し、イメージタイプの印刷データ生成手段（２０６〜２０８）で、描画属性として適用する形態であった。
【００７２】
その他の実施形態として図３に示すように、プリンタ１００が任意のハッチブラシパターン、スタイルペンパターンのプリンタへの描画属性登録コマンドをサポートする場合、デスプーラ２１５が、イメージタイプの印刷データ生成手段（２０６〜２０８）で使用する描画属性を上記描画属性登録命令で登録する第二の実施形態が存在する。
【００７３】
また特に記述しなかったが、複数の描画解像度を有するプリンタにおいては、通常それぞれの解像度に応じたハッチブラシ、スタイルペンの描画属性を管理する必要がある。ハッチブラシ、スタイルペンの描画属性はピクセル単位のＯＮ／ＯＦＦ情報で構成されるため、描画時の解像度により単位ピクセルの実際の大きさは変化するので、解像度毎の見た目を合わせるためには、解像度ごとに管理が必要である。
【００７４】
また上記実施例では、描画属性統一のための処理をデスプーラ２１５が印刷動作を開始する時点としたが、プリンタドライバ２６０のインストール時や、実際の描画属性を伴う描画が発生した場合でもよい。言い換えれば、実際の描画属性を伴うＰＤＦを印刷データ生成手段で処理する前であれば、描画属性統一のための処理を開始する時点については本発明では問題とならない。
【００７５】
なお、本発明は、複数の機器（例えばホストコンピュータ、インターフェース機器、リーダ、プリンタなど）から構成されるシステムに適用しても、１つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用しても良い。
【００７６】
また、本発明の目的は、前述した実施形態の機能を実現するプリンタドライバと呼ばれるソフトウエアプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。
【００７７】
この場合、記憶媒体から読み出されたプログラムコード事態が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００７８】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピー（Ｒ）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【００７９】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００８０】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることはいうまでもない。
【００８１】
本発明を記憶媒体に適応する場合、その記憶媒体には、先に説明したフローチャートに対応するプログラムコードを格納することになる。
【００８２】
【発明の効果】
以上説明したように本発明によれば、複数の印刷データ生成部をページ毎に切り替えて使用して印刷データを出力するプリンタドライバにおいて、ハッチブラシ、スタイルペンを用いた描画について全印刷データ生成部で統一可能なプリンタドライバが実現できる。
【図面の簡単な説明】
【図１】本発明の実施形態に係るプリンタドライバの構成概要及び描画属性取得管理の動作を説明する図である。
【図２】本発明のプリンタドライバの動作を説明するフローチャートである。
【図３】本発明のその他の実施形態に係るプリンタドライバの構成概要及び描画属性取得管理の動作を説明する図である。
【図４】従来のプリンタドライバの構成概要及び印刷タイプごとの描画属性を用いた描画結果を説明する図である。
【図５】本発明によるプリンタドライバを適用可能な印刷システムの構成例を示すブロック図である。
【図６】印刷モード毎の特徴を比較した図である。
【図７】本発明の実施形態において用いるＰＤＦ形式のデータ構造を示す模式図である。
【図８】本発明の実施形態において用いるＰＣＦ形式のデータ構造を示す模式図である。
【図９】従来の、印刷モード固定の印刷システムの構成例を示す図である。
【符号の説明】
１００  プリンタ
２００  ホストコンピュータ
２０１  アプリケーションソフトウェア
２０２  グラフィックサブシステム
２０３  ＧＤＩ
２６０  プリンタドライバ
２０５  第１の印刷データ生成部（ＰＤＬタイプ）
２０６  第１の印刷データ生成部（モノクロ１ＢＰＰイメージタイプ）
２０７  第１の印刷データ生成部（ＹＭＣＫ４ＢＰＰイメージタイプ）
２０８  第１の印刷データ生成部（ＲＧＢ２４ＢＰＰイメージタイプ）
２０９  バンドメモリ
２１０  スプールサブシステム
２１１  スプールドライバ
２１２  印刷モード判断部
２１３  ＰＤＦ記憶部
２１４  ＰＣＦ記憶部
２１５  デスプーラ
３００  ディスプレイモニタ
４００  キーボード
５００  マウス
６００  外部インターフェース
【図１】
2004192323.tif 000003
【図２】
2004192323.tif 000004
【図３】
2004192323.tif 000005
【図４】
2004192323.tif 000006
【図５】
2004192323.tif 000007
【図６】
2004192323.tif 000008
【図７】
2004192323.tif 000009
【図８】
2004192323.tif 000010
【図９】
2004192323.tif 000011