(57)【特許請求の範囲】
【請求項１】
印刷モードに１対１に対応し、印刷装置が印刷可能な印刷データを生成可能な複数の印刷データ生成手段と、
基本ソフトウェアより渡される描画命令を前記複数の処理手段で処理可能な形式のデータに変換するスプールドライバ手段と、
前記描画命令を分析し、印刷モード判定情報を生成する印刷モード判定手段と、
前記スプールドライバ手段によって生成されたデータを保持する記憶手段と、
前記印刷モード判定手段によって生成された印刷モード判定情報を保持する印刷モード判定記憶手段と、
前記印刷モード判定情報を用いて印刷モードをページごとに決定し、前記複数の印刷データ生成手段のうち、前記決定された印刷モードに対応する印刷データ生成手段に前記スプールドライバ手段によって生成されたデータをページごとに供給するデスプーラ手段とを有する情報処理装置において、
前記スプールドライバ手段は、前記記憶手段に記憶されたデータにより指定されているフォントが前記情報処理装置に存在する場合には記指定されているフォントを前記デスプーラ手段に通知し、前記指定されているフォントが前記情報処理装置に存在しない場合には前記情報処理装置に存在する予め定められたフォントをデスプーラ手段に通知し、
前記デスプーラ手段は、前記スプールドライバ手段により通知されたフォントを、前記決定された印刷モードに対応する前記印刷データ生成手段に論理フォントとして登録し、
前記決定された印刷モードに対応する印刷データ生成手段の各々は、前記デスプーラ手段によりページごとに供給されるデータと前記デスプーラ手段により登録された前記論理フォントを用いて、前記印刷データを生成することを特徴とする情報処理装置。
【請求項２】
基本ソフトウェアから受け渡される描画命令に基づき、印刷装置で印刷可能な形式の印刷データを生成、出力する情報処理装置であって、
描画命令から、互いに異なるデータ形式の印刷データを生成する複数の印刷データ生成手段と、
前記印刷装置におけるページ単位に対応する描画命令群に基づき、前記複数の印刷データ生成手段のうち１つを前記ページ単位で選択する選択手段と、
前記描画命令群に含まれるフォント属性から、前記情報処理装置に存在するフォントのフォント属性が検出された場合には、前記描画命令群に含まれるフォント属性を通知し、前記情報処理装置に存在しないフォントのフォント属性が検出された場合には、前記情報処理装置に存在する予め定められたフォントのフォント属性を通知する置き換えフォント決定手段と、
前記選択手段が選択した印刷データ生成手段に対し、供給された描画命令群中に前記情報処理装置に存在しないフォントのフォント属性が検出された場合には、前記置き換えフォント決定手段により通知されたフォント属性に対応する、前記情報処理装置に存在する予め定められたフォントを用いて印刷データ生成処理を行うよう指示する指示手段と、
前記ページ単位に対応する描画命令群を前記選択手段が選択した印刷データ生成手段に供給する供給手段とを有することを特徴とする情報処理装置。
【請求項３】
基本ソフトから渡されるデータを複数の印刷データ生成手段で処理可能な形式でスプールするスプールドライバ手段と、
前記スプールされたデータに基づきページごとに印刷モードを判定する印刷モード判定手段と、
前記複数の印刷データ生成手段のうち、前記判定手段により判定された印刷モードに対応する印刷データ生成手段に、前記スプールされたデータをページごとに供給するデスプーラ手段とを有する情報処理装置において、
前記スプールドライバ手段は、前記スプールされたデータ中のフォント情報から、前記情報処理装置に存在しないフォントのフォント情報を検出した場合には、前記情報処理装置に存在する予め定められたフォントのフォント情報を前記デスプーラ手段に通知し、前記スプールされたデータ中のフォント情報から、前記情報処理装置に存在するフォントのフォント情報を検出した場合には、前記スプールされたデータ中のフォント情報をデスプーラ手段に通知し、
前記デスプーラ手段は、前記スプールドライバ手段により通知されたフォント情報を前記判定された印刷モードに対応する印刷データ生成手段に登録し、
前記判定された印刷モードに対応する印刷データ生成手段の各々は、前記デスプーラ手段によりページごとに供給されるデータと、前記デスプーラ手段に登録されたフォント情報とを用いて印刷データを生成することを特徴とする情報処理装置。
【請求項４】
基本ソフトから渡されるデータを複数の印刷データ生成手段で処理可能な形式でスプールするスプールドライバ手段と、
前記スプールされたデータに基づきページごとに印刷モードを判定する印刷モード判定手段と、
前記複数の印刷データ生成手段のうち、前記判定手段により判定された印刷モードに対応する印刷データ生成手段に、前記スプールされたデータをページごとに供給するデスプーラ手段とを有する情報処理装置における情報処理方法において、
前記スプールドライバ手段が、前記スプールされたデータ中のフォント情報から、前記情報処理装置に存在しないフォントのフォント情報を検出した場合には、前記情報処理装置に存在する予め定められたフォントのフォント情報を前記デスプーラ手段に通知し、前記スプールされたデータ中のフォント情報から、前記情報処理装置に存在するフォントのフォント情報を検出した場合には、前記スプールされたデータ中のフォント情報をデスプーラ手段に通知する通知工程と、
前記デスプーラ手段が、前記スプールドライバ手段により通知されたフォント情報を前記判定された印刷モードに対応する印刷データ生成手段に登録する登録工程と、
前記判定された印刷モードに対応する印刷データ生成手段の各々が、前記デスプーラ手段によりページごとに供給されるデータと、前記デスプーラ手段に登録されたフォント情報とを用いて印刷データを生成する生成工程とを有することを特徴とする情報処理方法。
【請求項５】
情報処理装置であって、
アプリケーションからのデータに基づきプリンタで処理する印刷データを作成する複数の印刷データ作成手段と、
アプリケーションからのデータを解析し、当該解析の結果に基づいて、前記データをページごとに前記複数の印刷データ作成手段の１つに供給する供給手段と、
前記アプリケーションからのデータにより指定されているフォントが前記情報処理装置に存在すれば、前記指定されているフォントを論理フォントとして、前記データの供給先である前記印刷データ作成手段に登録し、前記アプリケーションからのデータにより指定されているフォントが前記情報処理装置に存在しなければ、前記情報処理装置に存在する予め定められたフォントを論理フォントとして前記データの供給先である前記印刷データ作成手段に登録する登録手段とを有し、
前記データの供給先である前記印刷データ生成手段の各々は、前記供給手段により供給されたデータと、前記登録手段により登録された論理フォントとを用いて、印刷データを生成することを特徴とする情報処理装置。
【請求項６】
前記印刷データは、イメージデータと、プリンタでイメージデータを作成するための制御コマンドを含むことを特徴とする請求項５記載の情報処理装置。
【請求項７】
前記印刷データ作成手段は、前記印刷データとしてイメージデータを作成するイメージデータ第１作成手段と、前記印刷データとしてイメージデータを作成する第２作成手段とを含むことを特徴とする請求項５記載の情報処理装置。
【請求項８】
前記印刷データ作成手段は、前記印刷データとしてイメージデータを作成するイメージデータ第１作成手段と、前記印刷データとしてプリンタでイメージデータを作成するためのデータを作成する第２作成手段とを含むことを特徴とする請求項５記載の情報処理装置。
【請求項９】
アプリケーションからのデータに基づきプリンタで処理する印刷データを作成する複数の印刷データ作成手段を利用する情報処理装置における情報処理方法であって、
供給手段が、アプリケーションからのデータを解析し、当該解析の結果に基づいて、前記データをページごとに前記複数の印刷データ作成手段の１つに供給する供給工程と、
登録手段が、前記アプリケーションからのデータにより指定されているフォントが前記情報処理装置に存在すれば、前記指定されているフォントを論理フォントとして、前記データの供給先である前記印刷データ作成手段に登録し、前記アプリケーションからのデータにより指定されているフォントが前記情報処理装置に存在しなければ、前記情報処理装置に存在する予め定められたフォントを論理フォントとして前記データの供給先である前記印刷データ作成手段に登録する登録工程と、
前記データの供給先である前記印刷データ生成手段の各々が、前記供給手段により供給されたデータと、前記登録手段により登録された論理フォントとを用いて、印刷データを生成する生成工程とを有することを特徴とする情報処理方法。
【請求項１０】
前記印刷データは、イメージデータと、プリンタでイメージデータを作成するための制御コマンドとを含むことを特徴とする請求項９記載の情報処理方法。
【請求項１１】
前記印刷データ作成手段は、前記印刷データとしてイメージデータを作成するイメージデータ第１作成手段と、前記印刷データとしてイメージデータを作成するデータを作成する第２作成手段とを含むことを特徴とする請求項９記載の情報処理方法。
【請求項１２】
前記印刷データ作成手段は、前記印刷データとしてイメージデータを作成するイメージデータ第１作成手段と、前記印刷データとしてプリンタでイメージデータを作成する第２作成手段とを含むことを特徴とする請求項９記載の情報処理方法。
【請求項１３】
コンピュータを、
アプリケーションからのデータに基づきプリンタで処理する印刷データを作成する複数の印刷データ作成手段と、
アプリケーションからのデータを解析し、当該解析の結果に基づいて、前記データをページごとに前記複数の印刷データ作成手段の１つに供給する供給手段と、
前記アプリケーションからのデータにより指定されているフォントが前記コンピュータに存在すれば、前記指定されているフォントを論理フォントとして、前記データの供給先である前記印刷データ作成手段に登録し、前記アプリケーションからのデータにより指定されているフォントが前記コンピュータに存在しなければ、前記コンピュータに存在する予め定められたフォントを論理フォントとして前記データの供給先である前記印刷データ作成手段に登録する登録手段として機能させるためのプリンタドライバプログラムであって、
前記データの供給先である前記印刷データ生成手段の各々は、前記供給手段により供給されたデータと、前記登録手段により登録された論理フォントとを用いて、印刷データを生成することを特徴とするプリンタドライバプログラム。
【請求項１４】
前記印刷データは、イメージデータとプリンタでイメージデータを作成するための制御コマンドとを含むことを特徴とする請求項１３記載のプリンタドライバプログラム。
【請求項１５】
前記印刷データ作成手段は、前記印刷データとしてイメージデータを作成するイメージデータ第１作成手段と、前記印刷データとしてイメージデータを作成する第２作成手段として機能することを特徴とする請求項１３記載のプリンタドライバプログラム。
【請求項１６】
前記印刷データ作成手段は、前記印刷データとしてイメージデータを作成するイメージデータ第１作成手段と、前記印刷データとしてプリンタでイメージデータを作成するためのデータを作成する第２作成手段として機能することを特徴とする請求項１３記載のプリンタドライバプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、アプリケーションソフトウェア等の印刷指示により、プリンタ等の画像形成装置に対する印刷データを生成する情報処理装置、情報処理方法及びプリンタドライバプログラムに関する。
【０００２】
【従来の技術】
図９は、画像形成装置としてのプリンタ及びその制御を行う情報処理装置としてのホストコンピュータで構成された、従来の印刷システムの例を示す図である。
【０００３】
図に示すように、ホストコンピュータ２００は、セントロニクスインターフェース、ＩＥＥＥ１２８４といったパラレルインタフェース、ＵＳＢ、ＩＥＥＥ１３９４等のシリアルインタフェース、１０／１００ＢＡＳＥ−Ｔ等のネットワークインタフェース６００を介してプリンタ１００と接続されている。ホストコンピュータ２００には、ＣＲＴ、ＬＣＤ等のディスプレイモニタ３００及び入力デバイスとしてのキーボード４００及びマウス５００が接続されている。
【０００４】
ホストコンピュータ２００では、Windows（米国Microsoft社の登録商標）のようないわゆる基本ソフト（ＯＳ）の上でワードプロセッサや表計算のような、プリンタ１００を利用可能なアプリケーションソフトウェア２０１（以下アプリケーションと略称）が動作している。これらアプリケーションのユーザが印刷を指示した場合、そのアプリケーションは、基本ソフトが提供するいくつかのサブシステムの内、グラフィックサブシステム２０２の機能を用いて印刷を行う。
【０００５】
このグラフィックサブシステムは、例えば基本ソフトがWindowsの場合、ＧＤＩ(Graphic  Device  Interface)２０３と呼ばれており、ディスプレイやプリンタに対する描画処理を司っている。このＧＤＩ（２０３）は、ディスプレイやプリンタといったデバイス毎の依存性を吸収するために、アプリケーションから指定された出力デバイスに対応する、デバイスドライバと呼ばれるモジュールを動的にリンクし、それぞれのデバイスに対する出力処理を行う。
【０００６】
プリンタに対するデバイスドライバはプリンタドライバと呼ばれる。プリンタドライバ２０４は、対応するプリンタの能力や機能などに応じて、あらかじめデバイスドライバに実装することが決められているＤＤＩ(Device  Driver  Interface)と呼ばれる関数群を有しており、ＧＤＩ（２０３）がこのＤＤＩを用いることによって印刷処理が行われる。
【０００７】
すなわち、図９の例において、アプリケーションから印刷指示（ＧＤＩ（２０３）へのＡＰＩ(Application  Programming  Interface)コール）があると、ＧＤＩ（２０３）はプリンタ１００に対応するプリンタドライバ２０４を動的にリンクするとともに、アプリケーションからのＡＰＩコールをプリンタドライバ２０４が有するＤＤＩ関数群を用いた形式に変換する。そして、ＧＤＩ（２０３）からＤＤＩ関数群がコールされることによって所定の印刷処理が実行される。このように、ＧＤＩ（２０３）では、プリンタドライバ２０４を用いてアプリケーションからの印刷要求をシーケンシャルに処理している。
【０００８】
プリンタドライバ２０４は、ＤＤＩを介してＧＤＩ（２０３）から受け渡しされるデータから、プリンタ１００が印刷可能な形式のデータを生成、出力する。この際、プリンタ１００に能力、機能に対応した複数の印刷データ生成部を用いて印刷データを生成し、スプールサブシステム２１０を介してプリンタ１００へ出力する。
【０００９】
プリンタ１００へ出力する、印刷データ形式としては、ページ記述言語（ＰＤＬ：Page Description Language)等のプリンタ言語と呼ばれる制御コマンド及びイメージデータ（ビットマップ）の２種類に大別される。そして、プリンタドライバ２０４に含まれるデスプーラ２５０は、それぞれが所定形式のデータを出力する複数の印刷データ生成部（２０５〜２０８）の中から、１つを選択して印刷処理を実行する。
【００１０】
図９において、印刷データ生成部（２０５〜２０８）は、ＰＤＬを出力する（以下、ＰＤＬタイプという）第１の印刷データ生成部２０５と、イメージデータを出力する（以下、イメージタイプという）第２〜第４の印刷データ生成部（２０６〜２０８）から構成されている。また、イメージデータを出力する第２〜第４の印刷データ生成部（２０６〜２０８）のうち、第２のイメージデータ生成部２０６はモノクロ(mono 1BPP:1 bit per pixel)イメージデータを、第３のイメージデータ生成部２０７は各色１ビットのＹＭＣＫ(YMCK 4BPP)カラーイメージデータを、第４のイメージデータ生成部２０８は、各色８ビットのＲＧＢ(RGB 24BPP)イメージデータをそれぞれ出力する。
【００１１】
第１の印刷データ生成部２０５は、プリンタ１００がＰＤＬを処理可能なコントローラを搭載する場合に使用可能であり、第１の印刷データ生成部２０５を用いる場合、デスプーラ２５０はＧＤＩ（２０３）からＤＤＩを介して受け取ったデータを第１の印刷データ生成部２０５へ受け渡し、ＰＤＬのコマンドに変換し次第、スプールサブシステム２１０を介してプリンタ１００に送出する。この場合、デスプーラ２５０の処理はＤＤＩを介して受け取ったデータを第１の印刷データ生成部２０５に受け渡してＰＤＬコマンドを生成するだけなので、軽い処理といえる。
【００１２】
ＰＤＬタイプの印刷データ生成部を用いる場合、ＧＤＩ（２０３）から抽象度の高いデータを受け取り、ＰＤＬコマンドの形式で送出できるので、通常のページ印刷においては転送する印刷データサイズを小さくすることが可能である。
【００１３】
一方、イメージタイプの印刷データ生成部（２０６〜２０８）は、プリンタ１００では高度な描画処理を行わずにすむよう、プリンタドライバ２０４がホストコンピュータ２００で確保したメモリ空間上に印刷イメージの展開を行い、それをプリンタ１００で直接印刷できるイメージデータ形式に変換してから、プリンタ１００に転送する。
【００１４】
具体的には、ＰＤＬタイプの印刷データ生成部と同様に、ＧＤＩ（２０３）からＤＤＩを介して渡されたデータをプリンタドライバ２０４に含まれるデスプーラ２５０がイメージタイプの印刷データ生成部（２０６〜２０８）の１つに受け渡す。そして、印刷データ生成部は受け渡しされたデータに基づいてバンドメモリ２０９に描画処理を行い、１バンド分の描画処理が終了すると、スプールサブシステム２１０を介してプリンタ１００にビットマップデータを送出する。プリンタ１００は、受信したビットマップデータを直接出力する。
【００１５】
イメージタイプの印刷データ生成部を用いる場合はホストコンピュータ２００において、ＰＤＬタイプの印刷データ生成部を用いる場合はプリンタ１００において、描画処理を行う必要がある。描画処理を行うには、メモリ空間を確保する必要があるが、ＲＧＢ各色８ビットで６００ＤＰＩ(dot per inch),Ａ４フルページ分の描画処理を行うために必要なメモリ空間は９６ＭＢｙｔｅ必要であり、現状ではホストコンピュータ２００、プリンタ１００のどちらでも確保することは困難である。
【００１６】
そこで、一般には、特にデータ量が多くなるカラープリンタの描画処理には、１ページを水平方向に複数に分割したバンド単位で描画処理が行われ、この描画処理に用いるメモリをバンドメモリと呼ぶ。
【００１７】
また、プリンタ１００に最終的に転送するデータ形式は、ディスプレイ装置で用いられるようなＲＧＢ（輝度）形式ではなく、プリンタ１００が用いるトナーの濃度を表すＹＭＣＫ形式であり、またＹＭＣＫ形式では各色１ビット、２ビット（又は４ビット）であることが多いため、各色８ビットのＲＧＢ形式よりもデータ量が小さくなるという理由から、プリンタドライバ２０４以降の処理においてはＹＭＣＫ形式でデータを取り扱うのが一般的である。そして、イメージタイプの印刷データ生成部のなかには、ＹＭＣＫ各色１ビット、２ビットもしくは４ビットのデータをプリンタ１００に転送することで、転送データサイズを小さく抑え、プリンタ１００の負荷を軽くするものがある。
【００１８】
例えば、多角形図形の印字処理を行う場合、ＰＤＬタイプの印刷データ生成部は、多角形の頂点座標と線幅、線の色情報、図形内の塗り色情報等がコマンドとして転送され、プリンタ内部でこのコマンドを解析し、プリンタ内部に設けられた、ＹＭＣＫ各色１ビット、２ビットまたは４ビットのデータに対する１バンド分のメモリ空間を用いて描画処理を行い、出力形態のビットマップデータに展開する。
【００１９】
ＰＤＬタイプの印刷データ生成部を用いる場合、プリンタに転送されるデータはＰＤＬコマンドであり、一般にはイメージタイプの印刷データ生成部が生成するデータよりもサイズが小さくなる。しかし、１ページあたりのＰＤＬコマンド数には制限が無く、理論上はイメージタイプの印刷データ生成部よりも転送データが大きくなる可能性がある。また、ＰＤＬタイプの印刷データ生成部を用いた場合、プリンタ側で描画処理を行う必要があるが、バンドメモリに対する描画処理であっても、１ページ分のＰＤＬコマンドをすべて受信してからでないと描画処理が開始できない。近年、アプリケーションが出力する印刷命令は増加の一途をたどっており、１ページを構成するＰＤＬコマンドも増加しているため、メモリ量の少ないプリンタでは処理速度低下の要因になっている。
【００２０】
このような場合、プリンタに比べてメモリ容量に余裕のあるホストコンピュータ２００上で動くプリンタドライバ２０４においてバンド単位もしくはフルページ分の描画メモリを確保し、イメージタイプの印刷データ生成部を使用して描画処理を行い、ビットマップデータをプリンタに転送した方が印刷処理全体のスループットは向上する。図９の例では、バンドメモリ２０９を用いている。
【００２１】
前述したように、印刷データ生成部は、ＰＤＬタイプ、イメージタイプ共に省メモリのためにＹＭＣＫ各色１，２，４ビットという出力装置依存の色空間上で描画処理を行っているが、ＧＤＩ（２０３）が論理演算描画処理時にＤＤＩ関数群をコールする場合、用いられる色形式はＹＭＣＫ形式でなくＲＧＢ形式であるため、描画不正が発生することがある。このため、描画不正回避のために、論理演算処理が発生した場合、プリンタドライバ２０４においてＹＭＣＫ形式に変換されているデータをＲＧＢ値に戻し（逆UCR(Under  Color  Remove)処理）、それから論理演算処理することで対応しているが、完全な描画処理を保証しないばかりか、処理速度低下の原因になっている。
【００２２】
このように、印刷しようとする内容、プリンタドライバ２０４で用いる印刷データ生成部の種類、プリンタ側のハードウェア資源等、多くの要因によって印刷処理全体に要する時間は変動する。
【００２３】
しかし、このような要因を考慮して適切な処理方法を自動選択する方法は現時点で実現されていない。そこで、アプリケーションのユーザは、通常は高速に処理がなされる可能性の高いＰＤＬタイプの印刷データ生成部を選択して（実際にはアプリケーションもしくはプリンタドライバ２０４が提供するＧＵＩなどで、「速度優先」、「高速印刷」等の印刷モードを選択することにより、デスプーラ２５０がＰＤＬタイプである第１の印刷データ生成部２０５を選択して処理する）印刷を指示し、出力に時間が掛かりすぎる場合は、同様に高速イメージモード（デスプーラ２５０がＹＭＣＫ各色１ビットのイメージデータを出力する第２の印刷データ生成部を選択）に切り替えて出力しなおす。また、不正出力結果が出た場合は、同様に「画質優先」「高精細」等の印刷モードを選択（デスプーラ２５０がＲＧＢ各色８ビットのイメージデータを出力する第３の印刷データ生成部を選択）して出力し直さなければならない。
【００２４】
つまり、現状においては、プリンタドライバ２０４が使用する印刷データ生成部の選択が、アプリケーションのユーザに任されており、また、ユーザは自分が印刷しようとしている文書等に最適な印刷モードを決定する術を持たないため、全てのモードで実際に印刷し、出力物もしくは出力時間等を比較しないと最適なモードが解らない。また、複数ページを有する文書等を印刷する場合、ＰＤＬタイプが適したページとイメージタイプが適したページなど、タイプの異なるページが同一文書中に含まれている場合がある。このような文書を印刷する場合、全ページを同一の印刷モード（印刷データ生成部）で処理すると、出力時間が掛かる、または不正出力ページが混じる、といった問題も発生しうる。
【００２５】
こういった問題を解決するために、図６に示すような、プリンタドライバ２０４が利用可能な各印刷データ生成部の長所、短所に応じて、各印刷データ生成部の長所のみを用いて印刷処理を行うことが可能なような、印刷モード（印刷データ生成部）の自動切り替え技術が求められている。
【００２６】
印刷モード自動切り替えを実現可能なプリンタドライバには、最低限以下の機能が必要である。
１）スプールドライバ機能
印刷モードの自動切り替えを実現するためには、１ページ分の描画情報を知った上で、最適な処理モードを決定しその後デスプール処理を実行する必要がある。そのためデスプーラが保持するどの印刷データ生成部でも処理可能なデータ形式で１ページ分のＤＤＩ関数コール情報をスプールする機能。
【００２７】
２）印刷モード判定機能
１ページ分のＤＤＩ関数コールをチェックし、デスプーラが保持するどの印刷データ生成部で印刷データの生成を行うのが最適を判定する機能。
３）デスプーラ機能
スプールドライバ機能によってスプールされた１ページ分の描画情報を、印刷モード判定機能によって判定した最適な印刷データ生成部を用いて処理する機能。
【００２８】
この様な機能を有するプリンタドライバを有するホストコンピュータ２００の構成例を、図５に示す。図５において、スプールドライバ２１１、印刷モード判定部２１２及びデスプーラ２１５がそれぞれ上述の１）〜３）の機能を実現する。また、ＰＤＦ記憶部２１３はスプールドライバ２１１が１ページ分の描画情報をスプールする領域であり、ＰＣＦ記憶部２１４は印刷モード判定部２１２が１ページ分のＤＤＩ関数コールを一時記憶する領域である。
【００２９】
【発明が解決しようとする課題】
図５に示すような構成を有するプリンタドライバ２６０を用いることによって、複数の印刷データ生成部を自動切り替えして印刷処理を行うことができるが、複数の印刷データ生成部を切り替えて１つの印刷処理を実施した場合、文字描画に関して新たな問題が発生する。
【００３０】
すなわち、印刷処理における文字描画命令は主に、
１．文字列情報
文字描画が表現しようとしている文書の文字コード
２．フォント属性
文字コードに対応するビットパターンやパスで表す文字グリフの情報
３．描画情報
文字描画の開始位置、文字幅等の位置情報、文字の色
の３つの属性によって構成されるが、この中でフォント属性は著作権等の関係上、ホスト外に持ち出すことが出来ない場合がある。
【００３１】
そのため、文書を作成した環境と印刷する環境が異なる場合、印刷動作を行うホストコンピュータに存在しないフォント属性を含む文字描画処理を行う必要が発生する。
【００３２】
そのような場合の解決方法として、ホストコンピュータに存在するフォント属性で、存在しないフォント属性を置き換える機能が、スプールドライバ２１１を含む各印刷データ生成部に備えられている（以下、このような、印刷処理実行環境にないフォント属性の置き換え処理を、"フォント置き換え"と呼ぶ）。また、置き換えられる前と後のフォントを区別するために、置き換え前（置き換え対象）のフォントを論理フォント、置き換え後（置き換えに用いる）フォントを物理フォントと呼ぶことにする。本実施形態において、論理フォントが印刷を実行するホスト上に存在する場合は、フォント置き換え処理は行わないものとする。
【００３３】
上述の通り、フォント置き換え処理は各印刷データ生成部毎に設けられた機能であり、また印刷データ生成部は個々の処理に最適なフォント置き換え処理を行うため、例えば高速化のためにプリンタが内蔵しているフォントに優先的に置き換える等の印刷モードの仕様により、各印刷データ生成部によって物理フォントが異なることがある。そのため以下のような課題が存在する。
【００３４】
１．ページ毎に印刷データ生成部の自動切り替えを行うため、ページ毎に異なる物理フォントに置き換えられる可能性があり、このような場合には、印刷結果において違和感を与える可能性がある。
２．アプリケーションがプリンタドライバからの文字範囲の取得により判断し付加してくるアンダーラインや枠線等の文字関連付加描画について、スプールドライバにおける文字グリフ範囲情報と、各印刷データ生成部で置き換えた物理フォントの文字グリフ範囲情報とが一致せず、文字関連付加描画との描画の整合性がとれない可能性がある。
【００３５】
図５に示すプリンタドライバ２６０において、印刷データ生成部毎に置き換えに用いる物理フォントが異なる場合の動作概要を、図３に示すブロック図を用いて説明する。
例として  "行書体Ａ"という論理フォント属性を含む文書描画が含まれる文書の印刷を想定する。そして、このプリンタドライバ２０４が動作するホストコンピュータ２００に"行書体Ａ"というフォントは存在しないとする。
【００３６】
アプリケーションから、"行書体Ａ"を用いた文書等の印刷指示がなされると、その論理フォント情報"行書体Ａ"はスプールドライバ２１１によってＰＤＦ記憶部２１３にスプールされる。
印刷モード判定部２１２はスプールドライバ２１１がＰＤＦ記憶部にスプールするデータから、１ページ分のスプールデータに含まれる描画命令の種類、数等をチェックし、ＰＣＦ記憶部２１４に記憶する。
【００３７】
そして、デスプーラ２１５は、印刷モード判定部２１２が格納した１ページ分の全命令についての解析を行い、上述の図６に示した各印刷データ生成部の特徴をふまえて定めた条件に基づき、そのページについて最適と判断される印刷データ生成部を判定し、判定した印刷データ生成部に、ＰＤＦ記憶部２１３にスプールされたデータを引き渡す。
【００３８】
この際、従来は、図４のフローチャートに示すように、デスプーラ２１５が、印刷モード判定部が判定した印刷データ生成部に直接論理フォント（"行書体Ａ"）を登録し（ステップＳ２１）、それを受けた印刷データ生成部は、ホストコンピュータ２００に存在しないフォントである"行書体Ａ"を、予め設定されたフォント置き換えルールに従って決定された物理フォントに置き換えて文字描画処理を行っていた（ステップＳ２２）。
【００３９】
そのため、図３に示すように印刷データ生成部毎のルールに従って物理フォントが設定され、例えばＰＤＬを出力する第１の印刷データ生成部２０５が用いられたページに含まれる、"行書体Ａ"が用いられた部分はは"明朝"に置き換えられ、また第２の印刷データ生成部２０５が用いられたページにおいては"ＭＰ明朝"に置き換えられるといったように、ページ毎に異なるフォントに置き換えられる可能性があった。
【００４０】
本発明はこのような従来技術の問題点に鑑みなされたものであり、その目的は、フォント置き換え機能を有する複数の印刷データ生成部をページ毎に切り替えて使用して印刷データを出力するプリンタドライバにおいて、フォント置き換えに用いる物理フォントを全印刷データ生成部で統一可能なプリンタドライバを提供することにある。
【００４１】
【課題を解決するための手段】
すなわち、本発明の要旨は、印刷モードに１対１に対応し、印刷装置が印刷可能な印刷データを生成可能な複数の印刷データ生成手段と、基本ソフトウェアより渡される描画命令を複数の処理手段で処理可能な形式のデータに変換するスプールドライバ手段と、描画命令を分析し、印刷モード判定情報を生成する印刷モード判定手段と、スプールドライバ手段によって生成されたデータを保持する記憶手段と、印刷モード判定手段によって生成された印刷モード判定情報を保持する印刷モード判定記憶手段と、印刷モード判定情報を用いて印刷モードをページごとに決定し、複数の印刷データ生成手段のうち、決定された印刷モードに対応する印刷データ生成手段にスプールドライバ手段によって生成されたデータをページごとに供給するデスプーラ手段とを有する情報処理装置において、スプールドライバ手段は、記憶手段に記憶されたデータにより指定されているフォントが情報処理装置に存在する場合には記指定されているフォントをデスプーラ手段に通知し、指定されているフォントが情報処理装置に存在しない場合には情報処理装置に存在する予め定められたフォントをデスプーラ手段に通知し、デスプーラ手段は、スプールドライバ手段により通知されたフォントを、決定された印刷モードに対応する印刷データ生成手段に論理フォントとして登録し、決定された印刷モードに対応する印刷データ生成手段の各々は、デスプーラ手段によりページごとに供給されるデータとデスプーラ手段により登録された論理フォントを用いて、印刷データを生成することを特徴とする情報処理装置に存在する。
【００４２】
また、本発明の別の要旨は、基本ソフトウェアから受け渡される描画命令に基づき、印刷装置で印刷可能な形式の印刷データを生成、出力する情報処理装置であって、描画命令から、互いに異なるデータ形式の印刷データを生成する複数の印刷データ生成手段と、印刷装置におけるページ単位に対応する描画命令群に基づき、複数の印刷データ生成手段のうち１つをページ単位で選択する選択手段と、描画命令群に含まれるフォント属性から、情報処理装置に存在するフォントのフォント属性が検出された場合には、描画命令群に含まれるフォント属性を通知し、情報処理装置に存在しないフォントのフォント属性が検出された場合には、情報処理装置に存在する予め定められたフォントのフォント属性を通知する置き換えフォント決定手段と、選択手段が選択した印刷データ生成手段に対し、供給された描画命令群中に情報処理装置に存在しないフォントのフォント属性が検出された場合には、置き換えフォント決定手段により通知されたフォント属性に対応する、情報処理装置に存在する予め定められたフォントを用いて印刷データ生成処理を行うよう指示する指示手段と、ページ単位に対応する描画命令群を選択手段が選択した印刷データ生成手段に供給する供給手段とを有することを特徴とする情報処理装置に存在する。
【００４３】
また、本発明の別の要旨は、基本ソフトから渡されるデータを複数の印刷データ生成手段で処理可能な形式でスプールするスプールドライバ手段と、スプールされたデータに基づきページごとに印刷モードを判定する印刷モード判定手段と、複数の印刷データ生成手段のうち、判定手段により判定された印刷モードに対応する印刷データ生成手段に、スプールされたデータをページごとに供給するデスプーラ手段とを有する情報処理装置において、スプールドライバ手段は、スプールされたデータ中のフォント情報から、情報処理装置に存在しないフォントのフォント情報を検出した場合には、情報処理装置に存在する予め定められたフォントのフォント情報をデスプーラ手段に通知し、スプールされたデータ中のフォント情報から、情報処理装置に存在するフォントのフォント情報を検出した場合には、スプールされたデータ中のフォント情報をデスプーラ手段に通知し、デスプーラ手段は、スプールドライバ手段により通知されたフォント情報を前記判定された印刷モードに対応する印刷データ生成手段に登録し、判定された印刷モードに対応する印刷データ生成手段の各々は、デスプーラ手段によりページごとに供給されるデータと、デスプーラ手段に登録されたフォント情報とを用いて印刷データを生成することを特徴とする情報処理装置に存在する。
【００４４】
また、本発明の別の要旨は、基本ソフトから渡されるデータを複数の印刷データ生成手段で処理可能な形式でスプールするスプールドライバ手段と、スプールされたデータに基づきページごとに印刷モードを判定する印刷モード判定手段と、複数の印刷データ生成手段のうち、判定手段により判定された印刷モードに対応する印刷データ生成手段に、スプールされたデータをページごとに供給するデスプーラ手段とを有する情報処理装置における情報処理方法において、スプールドライバ手段が、スプールされたデータ中のフォント情報から、情報処理装置に存在しないフォントのフォント情報を検出した場合には、情報処理装置に存在する予め定められたフォントのフォント情報をデスプーラ手段に通知し、スプールされたデータ中のフォント情報から、情報処理装置に存在するフォントのフォント情報を検出した場合には、スプールされたデータ中のフォント情報をデスプーラ手段に通知する通知工程と、デスプーラ手段が、スプールドライバ手段により通知されたフォント情報を前記判定された印刷モードに対応する印刷データ生成手段に登録する登録工程と、判定された印刷モードに対応する印刷データ生成手段の各々が、デスプーラ手段によりページごとに供給されるデータと、デスプーラ手段に登録されたフォント情報とを用いて印刷データを生成する生成工程とを有することを特徴とする情報処理方法に存在する。
【００４５】
また、本発明の別の要旨は、情報処理装置であって、アプリケーションからのデータに基づきプリンタで処理する印刷データを作成する複数の印刷データ作成手段と、アプリケーションからのデータを解析し、当該解析の結果に基づいて、データをページごとに複数の印刷データ作成手段の１つに供給する供給手段と、アプリケーションからのデータにより指定されているフォントが情報処理装置に存在すれば、指定されているフォントを論理フォントとして、データの供給先である印刷データ作成手段に登録し、アプリケーションからのデータにより指定されているフォントが情報処理装置に存在しなければ、情報処理装置に存在する予め定められたフォントを論理フォントとしてデータの供給先である印刷データ作成手段に登録する登録手段とを有し、データの供給先である印刷データ生成手段の各々は、供給手段により供給されたデータと、登録手段により登録された論理フォントとを用いて、印刷データを生成することを特徴とする情報処理装置に存在する。
【００４６】
また、本発明の別の要旨は、アプリケーションからのデータに基づきプリンタで処理する印刷データを作成する複数の印刷データ作成手段を利用する情報処理装置における情報処理方法であって、供給手段が、アプリケーションからのデータを解析し、当該解析の結果に基づいて、データをページごとに複数の印刷データ作成手段の１つに供給する供給工程と、登録手段が、アプリケーションからのデータにより指定されているフォントが情報処理装置に存在すれば、指定されているフォントを論理フォントとして、データの供給先である印刷データ作成手段に登録し、アプリケーションからのデータにより指定されているフォントが情報処理装置に存在しなければ、情報処理装置に存在する予め定められたフォントを論理フォントとしてデータの供給先である印刷データ作成手段に登録する登録工程と、データの供給先である印刷データ生成手段の各々が、供給手段により供給されたデータと、登録手段により登録された論理フォントとを用いて、印刷データを生成する生成工程とを有することを特徴とする情報処理方法に存在する。
【００４７】
また、本発明の別の要旨は、コンピュータを、アプリケーションからのデータに基づきプリンタで処理する印刷データを作成する複数の印刷データ作成手段と、アプリケーションからのデータを解析し、当該解析の結果に基づいて、データをページごとに複数の印刷データ作成手段の１つに供給する供給手段と、アプリケーションからのデータにより指定されているフォントがコンピュータに存在すれば、指定されているフォントを論理フォントとして、データの供給先である印刷データ作成手段に登録し、アプリケーションからのデータにより指定されているフォントがコンピュータに存在しなければ、コンピュータに存在する予め定められたフォントを論理フォントとしてデータの供給先である印刷データ作成手段に登録する登録手段として機能させるためのプリンタドライバプログラムであって、データの供給先である印刷データ生成手段の各々は、供給手段により供給されたデータと、登録手段により登録された論理フォントとを用いて、印刷データを生成することを特徴とするプリンタドライバプログラムに存在する。
【００４８】
【発明の実施の形態】
以下、図面を参照して本発明をその好適な実施形態に基づき説明する。
図５は、本発明に係るプリンタドライバを適用可能なプリントシステムの構成例を示すブロック図である。上述の通り、図５のプリンタシステムはホストコンピュータ２００及びプリンタ１００から構成され、両者は互いに通信可能に接続されている。
【００４９】
本実施形態に係るプリンタドライバ２６０は、基本ソフトが提供する、各印刷装置製造ベンダが開発可能なサブシステムであるグラフィクスサブシステム２０２とスプールサブシステム２１０にまたがって形成され、以下のような印刷モード自動切り替えのための要素を有している。
○グラフィクスサブシステム２０２内：
スプールドライバ２１１
印刷モード判定部２１２
○スプールサブシステム２１０内：
デスプーラ２１５
印刷データ生成部２０５〜２０８
【００５０】
次に、本発明の背景となる印刷モード自動切り替えを実現するために必要なそれぞれの手段について説明していく。
１）スプールドライバ２１１
印刷モード自動切り替えを実現するためには、１ページ分の描画情報を知った上で、最適な処理モードを決定し、その後デスプール処理を実行する必要がある。そのためには、ＤＤＩ関数に渡されるデータをデスプール時にどの印刷データ生成部が用いられても処理可能なデータ形式で１ページ分以上、かつページ単位でスプールしなくてはならない。
【００５１】
そこで、本実施形態においては、スプール時のデータ形式として、図７に示す形式（ＰＤＦ形式と呼ぶ）を用いた。ＰＤＦ形式のスプールデータ９００は、ページを特定するためのpageID（９０１）に続いて、ページのサイズや、データサイズ、格納したオブジェクト数等を保持するPageInfor（９０２）をヘッダとして持つ。
【００５２】
そして、ヘッダに続くフィールド９０３には、ＤＤＩ関数でコールされた描画関数を示す情報が格納される。図７では単純ビットマップコピーを行う描画関数CopyBitsの名前が格納されている。
【００５３】
また、datasize（９０４）は９０３に格納されたCopyBitsのスプールにかかったサイズ、BoundRect（９０５）はCopyBitsに渡される描画先のサーフェイス情報を示す転送先のサーフェイス情報を、SoSrc（９０６）はCopyBitsに渡される転送元サーフェイス情報を示す転送元イメージ情報をそれぞれ格納する。
【００５４】
転送元イメージデータ９０７は転送元イメージデータのビット列である。co（９０８）はCopyBitsに渡される描画先のクリップ情報を格納。またクリップデータが複数個存在する場合は、その後ろにクリップデータ９０９を格納する。xlo（９１０）は転送元と転送先のサーフェイス間の色変換情報を、rclDest（９１１）描画先のサーフェイス上の矩形範囲を示す情報を、ptlSrc（９１３）は転送元サーフェイス上の転送元原点情報をそれぞれ格納する。
【００５５】
以降、描画関数毎に必要なデータがのスプールが１ページ分格納される。
デスプール時には、デスプーラ２１５が、ＤＤＩ関数の状態に戻してから印刷モード判定手段で判定された印刷データ生成部に受け渡しする。それによって、印刷データ生成部は従来通りＤＤＩ関数を受け取り印刷データを生成する仕様のままでよい。
【００５６】
２）印刷モード判定部２１２
印刷モード判定部２１２は、スプールドライバ２１１がＰＤＦ記憶部２１３にスプールする、ＧＤＩ（２０３）から受け渡された描画命令（描画関数）をチェックし、１ページ分のデータ内容から複数の印刷データ生成部のうち最適なものを判定する。
【００５７】
具体的には、この判定は、スプールドライバ２１１がＰＤＦ記憶部２１３にスプールするデータを監視し、１ページ分のデータ内に含まれる描画関数の種類及び頻度等の判定用情報を格納し、その結果に基づいてなされる。
【００５８】
本実施形態において、印刷モード判定部２１２は判定用情報をＰＣＦ（プレチェックファイル）記憶部２１４に格納する。この際、図８に示すようなデータ構造体として格納を行う。
【００５９】
図８において、ＰＣＦ１０００は、そのファイルが属するジョブナンバー(JobID)１００１、ページナンバー(PageNo)１００２で始まる構造体で、この二つの値により、対応するページを特定可能である。
【００６０】
そして、ページをＹ軸方向に分割したバンドの大きさを表すVbandSize（１００４）、ＰＣＦ１０００に格納されるバンド情報BandInfoの数を格納するbandCnt（１００５）に続き、各バンド内の判定用情報を格納するBandinfo[0](1006)〜BandInfo[n]が格納される。各BandInfoは構造体１０３０で示すような構成を有している。すなわち、ＰＣＦ１０００は、VbandSize（１００４）に示されたサイズの仮想バンドが、pageSize（１００３）の中に、bandCnt（１００５）分敷きつめられた領域を仮想的に定義したものである。
【００６１】
BandInfoは、その仮想バンドの領域を矩形情報で保持するBandRectL（１０１０）で始まる構造体であるが、この構造体１０３０は、BandRectL（１０１０）で表されるの領域内に関連する描画処理情報を記録するために用いられる。
構造体１０３０の詳細は以下のとおりである。
【００６２】
仮想バンド内に描かれる描画処理の最大外接矩形領域DrawRectL１０１１、バンド内に描かれる描画領域の中の有彩色領域ColorRectL１０１２、ＹＭＣＫ印字では不正印字が発生する領域ROPRectL１０１３、イメージ系関数による描画処理領域ImgRectL１０１４、グラフィックス系関数による描画領域GraphicRectL１０１４、文字系描画領域TextRectL１０１６。
BandInfo構造体１０３０は、これら以外に、ＤＤＩ関数毎の情報もフィールド１０１７〜１０２０に収集する。
【００６３】
ビットマップの拡縮指定可能なＤＤＩ関数であるStretchBlt（１０１９）の情報を例に説明する。StretchBlt（１０１９）は、複数のフィールド１０１９１〜１０１９６から構成される。すなわち、当該仮想バンド領域内に関係するStretchBlt関数のコール回数を格納するcallcnt１０１９１、１ＢＰＰ(1bit per pixel)イメージの個数を格納する1BPPCnt１０１９２、１ＢＰＰイメージの総データサイズを格納する1BPPTotalSize１０１９３をはじめ、４ＢＰＰ、２４ＢＰＰイメージについても同様な情報を格納可能である。その他のＤＤＩ関数についても、StretchBlt関数と同様、それぞれの関数I/Fに渡される情報を保持するようなデータ構造体で構成される。
【００６４】
３）デスプーラ２１５
図６に示す各印刷データ生成部の特徴をふまえて、印刷モード判定部２１２がＰＣＦ記憶部２１４格納したＰＣＦを解析し、最適と考えられる印刷モードを決定する。そして、決定した印刷モードに対応する各印刷データ生成部２０５〜２０７を用いて、ページ記述記憶手段２１３の内容を印刷再生していく。具体的には、命令絶対数が少ない場合にはＰＤＬモード（第１の印刷データ生成部２０５）を、命令数が多いモノクロ画像であればモノクロイメージモード（第２の印刷データ生成部２０６）を、命令数が多くカラー画像であればデバイスカラーモード（第３の印刷データ生成部２０７）を、命令数が多く、かつＹＭＣＫ形式では描画不正が発生する場合であればＲＧＢカラーモード（第４の印刷データ生成部２０８）を選択する等が可能である。
【００６５】
スプールドライバ２１１がＰＤＦ記憶部２１３にスプールしたデータは、ＤＤＩ関数に可逆なＰＤＦ形式を有するため、デスプーラ２１５は図９に示した従来の印刷データ生成部と同一の印刷データ生成部２０５〜２０８を利用することが出来る。
【００６６】
次に、本実施形態に係るプリンタドライバ２６０におけるフォント置き換え処理について図１を用いて説明する。以下の説明においても、図３を用いて説明した従来例と同様、このプリンタドライバ２６０が動作するホストコンピュータ２００に存在しない"行書体Ａ"という論理フォント属性を含む文書描画が含まれる文書の印刷を想定する。
【００６７】
図１において、図３に示した従来の構成（及び動作）と異なるのは、デスプーラ２１５で印刷データ生成部２０５〜２０８に論理フォントを登録する前に、一旦スプールドライバ２１１に論理フォント"行書体Ａ"を登録し、スプールドライバ２１１での物理フォント（"ＭＰ明朝"とする）を得て、その物理フォント"ＭＰ明朝"を各印刷データ生成部２０５〜２０７に渡す論理フォントとして登録する点である。
【００６８】
すなわち、スプールドライバ２１１が有するフォント置き換え機能を利用し、予めホストコンピュータ２００に存在する物理フォントを得、その物理フォントを印刷データ生成部に登録する論理フォントとして用いることにより、印刷データ生成部でのフォント置き換え処理が発生しなくなる。従って、ページ毎に使用する印刷データ生成部を変化させたとしても、印刷データ生成部が出力するフォントは共通の物理フォントとなる。
【００６９】
図２に示すフローチャートを用いて、上述した本発明のプリンタドライバにおける全体処理について説明する。
まず、ＧＤＩ（２０３）からＤＤＩ関数のコールを受けると、スプールドライバ２１１はその内容をＰＤＦ形式に変換し、ＰＤＦ記憶部２１３にスプールする（ステップＳ１００）。一方、印刷モード判定部２１２は、スプールドライバ２１１がＰＤＦ記憶部２１３にスプールするデータを監視し、ＰＣＦをＰＣＦ記憶部２１４に格納する（ステップＳ１１０）。ＰＤＦのスプール処理及びＰＣＦの格納処理は少なくとも印刷対象書類の１ページ分の処理が終了するまで継続して行う（ステップＳ１２０）。
【００７０】
１ページ分のＰＤＦ、ＰＣＦの格納が終了すると、デスプーラ２１５はＰＣＦ記憶部２１４に格納されたＰＣＦを参照し、当該ページの印刷処理に最適な印刷モードを決定する（ステップＳ１３０）。次に、デスプーラ２１５は、ＰＤＦ記憶部２１３にスプールされたデータ中に含まれる論理フォント属性（"行書体Ａ"とする）を取得し、スプールドライバ２１１に登録する（ステップＳ１４０）。
【００７１】
スプールドライバ２１１にはフォント置き換え機能が設けられているため、スプールドライバ２１１は登録された論理フォントが物理フォントであるか（ホストコンピュータ２００に存在するフォントか）を調べ、物理フォントであればデスプーラ２１５が登録した論理フォント属性をそのまま、物理フォントでなければ予め定められた物理フォント属性を、それぞれデスプーラ２１５へ通知する（ステップＳ１５０）。すなわち、この例においては、"行書体Ａ"が物理フォントでないため、置き換えフォント（"ＭＰ明朝"とする）の属性を通知する。
【００７２】
デスプーラ２１５は、スプールドライバ２１１から受け取った物理フォント"ＭＰ明朝"属性より、各印刷データ生成部２０５〜２０８に登録する論理フォント属性"ＭＰ明朝"を作成し、デスプーラ２１５がステップＳ１３０で決定した最適な印刷モードに該当する印刷データ生成部に登録する（ステップＳ１６０）。
【００７３】
そして、ＰＤＦ記憶部２１３にスプールされたＰＤＦ形式のデータを、ＤＤＩ関数の形に戻して、印刷データ生成部に引き渡す（ステップＳ１７０）。印刷データ生成部では、受け渡されたＤＤＩ関数及びステップＳ１６０で登録された論理フォントを用いて、ＰＤＬもしくはイメージデータである印刷データを生成する（ステップＳ１８０）。生成された印刷データは、イメージデータであればバンドメモリ２０９を介してバンド単位に、ＰＤＬ命令であればバンドメモリ２０９を介さずに、それぞれスプールサブシステム２１０のインタフェース６００を介してプリンタ１００へ転送される。
【００７４】
なお、第１の印刷データ生成部２０５は、プリンタにＭＰ明朝のフォントが存在する場合、ＭＰ明朝を指定するコマンドと文字コードとを含むＰＤＬをプリンタに送信する。プリンタにＭＰ明朝のフォントが存在しない場合、ホストでＭＰ明朝の文字パターンを生成し、プリンタに生成した文字パターンをダウンロードし、ダウンロードした文字パターンを指定するための文字コードを含むＰＤＬをプリンタに送信する。また、プリンタに生成した文字パターンをダウンロードできない場合は、生成した文字パターンと印刷位置情報とを含むＰＤＬをプリンタに送信する。
【００７５】
また、第２から４の印刷データ生成部２０６から２０８は、ホストでＭＰ明朝の文字パターンを生成し、生成した文字パターンを含む所定領域（バンド）単位のイメージデータをプリンタに送信する。
【００７６】
なお、図２のフローチャートにおいては、理解を容易にするため、１ページ分の処理について時系列的に記載したが、ステップＳ１００〜Ｓ１２０のスプール（格納）処理と、ステップＳ１３０以降の判定、印刷処理とは独立して行うことが可能である。すなわち、スプールドライバ２１１によるＰＤＦデータのスプール及び印刷モード判定部２１２によるＰＣＦデータの格納は、ステップＳ１３０以降の処理とは関係なく印刷対象文書全ページについての処理が終了するまで連続して行われ、一方ステップＳ１３０以降の処理は、１ページ分の処理が終了した時点で次ページに対応するＰＣＦを参照し、印刷モード判定以降の処理を繰り返し行うことができる。
【００７７】
【その他の実施形態】
上述の実施形態においては、プリンタドライバが動作する基本ソフトとして、MS-Windows(Microsoftの登録商標)を用いた場合を例にして説明した。そのため、当該基本ソフトが有するグラフィクスサブシステムの制限のためにスプールドライバ上でのフォント属性変更処理を行うことができず、デスプーラがフォント属性の変更処理を行っていた。しかしながら、スプールドライバがフォント属性の変更を行うことのできる環境で本発明によるプリンタドライバが動作する場合には、ＰＤＦ形式でスプールする時点で当該環境に存在しないフォント属性を当該環境に存在する物理フォントへ変更することによっても同様の効果を実現することが可能である。
【００７８】
この場合、図２のステップＳ１００において、ＰＤＦ形式でのスプール前にＤＤＩ関数中のフォント属性をチェックし、ホストコンピュータ２００に存在しないフォント属性についてはホストコンピュータ２００の物理フォントへ属性を変更した後にスプールを行うことになる。そして、図２におけるステップＳ１４０及びステップＳ１５０が不要となり、ステップＳ１６０で登録する論理フォントは、ＰＤＦ形式からＤＤＩ関数に戻されたデータ中のフォント属性をそのまま用いて行えばよい。
【００７９】
また、上述の実施形態においては、プリンタドライバが印刷データ生成部を有する構成の場合を示したが、本発明のプリンタドライバには印刷データ生成部が必須という訳ではない。すなわち、本発明の本質は複数の印刷データ生成部を切り替えて使用する際に、プリンタドライバが存在するホストコンピュータ上に存在しない論理フォントを印刷データ生成部に登録するのではなく、予めホストコンピュータ上に存在する物理フォントを論理フォントとして印刷データ生成部に登録することによって、印刷データ生成部が有するフォント置き換え機能を用いずに印刷処理を実現することにあり、使用する印刷データ生成部自体は発明の本質とは無関係である。
【００８０】
なお、本発明は、複数の機器(例えばホストコンピュータ、インターフェース機器、リーダ、プリンタなど)から構成されるシステムに適用しても、１つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用しても良い。
【００８１】
また、本発明の目的は、前述した実施形態の機能を実現するプリンタドライバと呼ばれるソフトウエアプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。
【００８２】
この場合、記憶媒体から読み出されたプログラムコード事態が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００８３】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピーディスク、ハードディスク、光ディスク、光磁気ディスク、CD-ROM,CD-R,磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。
【００８４】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００８５】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることはいうまでもない。
【００８６】
本発明を記憶媒体に適応する場合、その記憶媒体には、先に説明したフローチャートに対応するプログラムコードを格納することになる。
【００８７】
【発明の効果】
以上説明したように本発明によれば、フォント置き換え機能を有する複数の印刷データ生成部をページ毎に切り替えて使用して印刷データを出力するプリンタドライバにおいて、フォント置き換えに用いる物理フォントを全印刷データ生成部で統一可能なプリンタドライバが実現できる。
【図面の簡単な説明】
【図１】本発明の実施形態に係るプリンタドライバの構成概要及び論理フォント置き換え時の動作を説明する図である。
【図２】本発明のプリンタドライバの動作を説明するフローチャートである。
【図３】従来のプリンタドライバの構成概要及び論理フォント置き換え時の動作を説明する図である。
【図４】従来のデスプーラによる論理フォント置き換え処理を説明するフローチャートである。
【図５】本発明によるプリンタドライバを適用可能な印刷システムの構成例を示すブロック図である。
【図６】印刷モード毎の特徴を比較した図である。
【図７】本発明の実施形態において用いるＰＤＦ形式のデータ構造を示す模式図である。
【図８】本発明の実施形態において用いるＰＣＦ形式のデータ構造を示す模式図である。
【図９】従来の、印刷モード固定の印刷システムの構成例を示す図である。
【符号の説明】
１００      プリンタ
２００      ホストコンピュータ
２０１      アプリケーションソフトウェア
２０２      グラフィックサブシステム
２０３      ＧＤＩ
２６０      プリンタドライバ
２０５      第１の印刷データ生成部（ＰＤＬタイプ）
２０６      第１の印刷データ生成部（モノクロ1BPPイメージタイプ）
２０７      第１の印刷データ生成部（ＹＭＣＫ4BPPイメージタイプ）
２０８      第１の印刷データ生成部（ＲＧＢ２４ＢＰＰイメージタイプ）
２０９      バンドメモリ
２１０      スプールサブシステム
２１１      スプールドライバ
２１２      印刷モード判断部
２１３      ＰＤＦ記憶部
２１４      ＰＣＦ記憶部
２１５      デスプーラ
３００      ディスプレイモニタ
４００      キーボード
５００      マウス
６００      外部インターフェース
【図１】
0004522006.tif 000002
【図２】
0004522006.tif 000003
【図３】
0004522006.tif 000004
【図４】
0004522006.tif 000005
【図５】
0004522006.tif 000006
【図６】
0004522006.tif 000007
【図７】
0004522006.tif 000008
【図８】
0004522006.tif 000009
【図９】
0004522006.tif 000010