(57)【要約】    【課題】  印刷すべき文字のカラーモノクロ判定の精度の向上を図ることができる印刷制御装置、印刷制御方法及び印刷制御用プログラムを提供する。    【解決手段】  ホストコンピュータ３００１のＣＰＵ１の制御の下で、プリンタドライバ２００３が、描画命令に含まれる印字すべき文字が空白文字であるか否かを判別し、描画命令に含まれるカラー情報に基づき、上記印刷すべき文字のカラーモノクロ判定を実行し、上記描画命令に基づいて、プリンタ制御コマンド又は中間データを生成し、上記描画命令に含まれる印字すべき文字が空白文字でない場合に、上記生成されたプリンタ制御コマンド又は中間データに、上記カラーモノクロ判定による判定結果を付加する。【選択図】      図４
2006309427.tif 000002
【特許請求の範囲】
【請求項１】
描画命令に含まれる印字すべき文字が空白文字であるか否かを判別する空白文字判別手段と、
前記描画命令に含まれるカラー情報に基づき、前記印刷すべき文字のカラーモノクロ判定を実行する判定手段と、
前記描画命令に基づいて、プリンタ制御コマンド又は中間データを生成する生成手段と、
前記空白文字判別手段により前記描画命令に含まれる印字すべき文字が空白文字でない場合に、前記生成手段により生成されたプリンタ制御コマンド又は中間データに、前記判定手段による判定結果を付加する付加手段と
を備えることを特徴とする印刷制御装置。
【請求項２】
前記空白判別手段により空白文字と判別されたときに、前記カラーモノクロ判定手段による前記印字すべき文字のカラーモノクロ判定を実行しないことを特徴とする請求項１記載の印刷制御装置。
【請求項３】
前記空白判別手段による空白判別結果を記録する記録手段を備え、
前記記録手段に記録されている空白判別結果が前記印字すべき文字が空白文字であることを示す場合に、前記判定手段による前記印字すべき文字のカラーモノクロ判定を実行しないことを特徴とする請求項１又は２記載の印刷制御装置。
【請求項４】
前記空白判別手段により前記印字すべき文字が空白文字でないと判別されたとき、前記印刷すべき文字を前記印刷制御装置に接続可能な印刷装置に登録するためのコマンド及び前記印刷装置に登録された文字のプリントコマンドを生成するコマンド生成手段とを備えることを特徴とする請求項１乃至３のいずれか１項記載の印刷制御装置。
【請求項５】
前記空白判別手段は、前記印刷すべき文字に含まれるビットマップデータをスキャンし、当該ビットマップデータにオンビットがない場合に、前記印字すべき文字が空白文字であると判別することを特徴とする請求項１乃至４のいずれか１項記載の印刷制御装置。
【請求項６】
前記生成手段は、前記描画命令に基づいて、１ページ分のプリンタ制御コマンド又は中間データを生成し、
前記付加手段は、前記空白文字判別手段により前記描画命令に含まれる印字すべき文字が空白文字でない場合に、前記生成手段により生成された１ページ分のプリンタ制御コマンド又は中間データの先頭に、前記判定手段による判定結果を付加することを特徴とする請求項１乃至５のいずれか１項記載の印刷制御装置。
【請求項７】
前記記録手段は、空白未判定、空白及び非空白の情報が文字毎に割り当てられた記憶テーブルを備えることを特徴とする請求項３記載の印刷制御装置。
【請求項８】
描画命令に含まれる印字すべき文字が空白文字であるか否かを判別する空白文字判別工程と、
前記描画命令に含まれるカラー情報に基づき、前記印刷すべき文字のカラーモノクロ判定を実行する判定工程と、
前記描画命令に基づいて、プリンタ制御コマンド又は中間データを生成する生成工程と、
前記空白文字判別手段により前記描画命令に含まれる印字すべき文字が空白文字でない場合に、前記生成工程により生成されたプリンタ制御コマンド又は中間データに、前記判定工程による判定結果を付加する付加工程と
を備えることを特徴とする印刷制御方法。
【請求項９】
コンピュータに実行させる印刷制御用プログラムにおいて、
描画命令に含まれる印字すべき文字が空白文字であるか否かを判別する空白文字判別モジュールと、
前記描画命令に含まれるカラー情報に基づき、前記印刷すべき文字のカラーモノクロ判定を実行する判定モジュールと、
前記描画命令に基づいて、プリンタ制御コマンド又は中間データを生成する生成モジュールと、
前記空白文字判別モジュールにより前記描画命令に含まれる印字すべき文字が空白文字でない場合に、前記生成モジュールにより生成されたプリンタ制御コマンド又は中間データに、前記判定モジュールによる判定結果を付加する付加モジュールと
を備えることを特徴とする印刷制御用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
印刷装置に接続可能な印刷制御装置、印刷制御方法及び印刷制御用プログラムに関し、特に、カラーモノクロ判定を行う印刷制御装置、印刷制御方法及び印刷制御用プログラムに関する。
【背景技術】
【０００２】
コンピュータとプリンタとを備えるプリントシステムにおいて、プリンタドライバを使用してプリントデータがカラーか又はモノクロかを判定するカラーモノクロ判定は、従来より知られている（例えば、特許文献１参照）。そして、このカラーモノクロ判定の技術は、既に製品に利用されている技術である。
【０００３】
また、コンピュータからプリンタに一度転送した文字のフォントデータをプリンタ内に登録することで同一文字を何度もコンピュータからプリンタに送らない技術が知られている（例えば、特許文献２参照）。
【特許文献１】特開平１０−２８５４２１号公報
【特許文献２】特許第３５０７３８７号公報（従来技術）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載されているような、従来のプリンタドライバにおけるカラー／モノクロ判定処理は、文字コードについては、その文字の色属性を判定しているだけである。
【０００５】
しかしながら、文字には、数字・記号・漢字など実際に描画される文字もあれば、スペース文字のように描画するものがなくとも文字コードとして入力されるため、文字として扱われるものが存在する。
【０００６】
従って、上述した従来技術における印字の対象となる文字のうち、こういった描画のない文字について色情報が設定されている場合、印刷後の見た目がモノクロのデータであっても従来のプリンタドライバでは文字属性がカラーであると認識するため、このページの色処理モードが「カラー」と判断されてしまうという問題があった。
【０００７】
例えば、文字列「あい  う」であるが「い」と「う」の間のスペース文字の色設定が赤の色属性が指定された描画文字としてアプリケーションから出力されてくると、プリンタドライバでは、この文字データは「カラー」と判断される。空白文字とは、印字する対象のない文字であり、アスキーコード表の０ｘ００２０の文字やユーザに外字登録された印字する対象のない文字のことである。
【０００８】
また、フェイス名から文字コードの描画対象が判断できないシンボルフォントの文字が印字の対象となっている場合、文字コードによって描画のない文字であるか否かの判断はできないという問題もあった。
【０００９】
また、上記特許文献２の技術のようにプリンタ内に文字を登録するシステムにおいて、プリンタドライバでカラーモノクロ判断する場合、プリンタ内に登録された文字のフォントデータに対しては、プリンタドライバ側では、正確なカラーモノクロ判定をすることができないという問題もある。
【００１０】
本発明の目的は、上記課題に鑑みてなされたもので、印刷すべき文字のカラーモノクロ判定の精度の向上を図ることができる印刷制御装置、印刷制御方法及び印刷制御用プログラムを提供することにある。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、請求項１の印刷制御装置は、描画命令に含まれる印字すべき文字が空白文字であるか否かを判別する空白文字判別手段と、前記描画命令に含まれるカラー情報に基づき、前記印刷すべき文字のカラーモノクロ判定を実行する判定手段と、前記描画命令に基づいて、プリンタ制御コマンド又は中間データを生成する生成手段と、前記空白文字判別手段により前記描画命令に含まれる印字すべき文字が空白文字でない場合に、前記生成手段により生成されたプリンタ制御コマンド又は中間データに、前記判定手段による判定結果を付加する付加手段とを備えることを特徴とする。
【００１２】
請求項８の印刷制御方法は、描画命令に含まれる印字すべき文字が空白文字であるか否かを判別する空白文字判別工程と、前記描画命令に含まれるカラー情報に基づき、前記印刷すべき文字のカラーモノクロ判定を実行する判定工程と、前記描画命令に基づいて、プリンタ制御コマンド又は中間データを生成する生成工程と、前記空白文字判別手段により前記描画命令に含まれる印字すべき文字が空白文字でない場合に、前記生成工程により生成されたプリンタ制御コマンド又は中間データに、前記判定工程による判定結果を付加する付加工程とを備えることを特徴とする。
【００１３】
請求項９の印刷制御用プログラムは、コンピュータに実行させる印刷制御用プログラムにおいて、描画命令に含まれる印字すべき文字が空白文字であるか否かを判別する空白文字判別モジュールと、前記描画命令に含まれるカラー情報に基づき、前記印刷すべき文字のカラーモノクロ判定を実行する判定モジュールと、前記描画命令に基づいて、プリンタ制御コマンド又は中間データを生成する生成モジュールと、前記空白文字判別モジュールにより前記描画命令に含まれる印字すべき文字が空白文字でない場合に、前記生成モジュールにより生成されたプリンタ制御コマンド又は中間データに、前記判定モジュールによる判定結果を付加する付加モジュールとを備えることを特徴とする。
【発明の効果】
【００１４】
本発明によれば、描画命令に含まれる印字すべき文字が空白文字でない場合に、生成されたプリンタ制御コマンド又は中間データに、印刷すべき文字のカラーモノクロ判定による判定結果が付加される。従って、印刷すべき文字のカラーモノクロ判定の精度の向上を図ることができる。また、本発明によれば、印刷装置側に文字のフォントデータを登録する場合にも、プリンタドライバを備えるホストコンピュータとしての印刷制御装置側で空白文字の登録を防止することができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
【００１６】
図１は、本発明の実施の形態に係る印刷制御装置を含む印刷システムの構成を示すブロック図である。
【００１７】
同図において、印刷システムは、ホストコンピュータ３０００及びプリンタ１５００を備えている。
【００１８】
ホストコンピュータ３０００は、システムバス４に接続されたＲＡＭ２、ＲＯＭ３、キーボードコントローラ（ＫＢＣ）５、ＣＲＴコントローラ（ＣＲＴＣ）６、ディスクコントローラ（ＤＫＣ）７及びプリンタコントローラ（ＰＲＴＣ）８を総括的に制御するＣＰＵ１を備えている。キーボードコントローラ（ＫＢＣ）５はキーボード（ＫＢ）９と、ＣＲＴコントローラ（ＣＲＴＣ）６はＣＲＴディスプレイ（ＣＲＴ）１０と、ディスクコントローラ（ＤＫＣ）７はハードディスク（ＨＤ）やフロッピー（登録商標）ディスク（ＦＤ）などの外部メモリ１１とそれぞれ接続されている。
【００１９】
ＲＯＭ３のプログラム用ＲＯＭ又は外部メモリ１１は、ＣＰＵ１の制御プログラムであるオペレーティングシステム（以下、「ＯＳ」という）などを記憶する。ＲＯＭ３のフォント用ＲＯＭ又は外部メモリ１１は文書処理の際に使用するフォントデータなどを記憶する。ＲＯＭ３のデータ用ＲＯＭは文書処理等を行う際に使用する各種データを記憶する。
【００２０】
ＣＰＵ１は、ＲＯＭ３のプログラム用ＲＯＭ又は外部メモリ１１に記憶された文書処理プログラムなどに基づいて、図形、イメージ、文字、表（表計算等を含む）などが混在した文書処理を実行する。
【００２１】
ＲＡＭ２はＣＰＵ１の主メモリ又はワークエリアなどとして機能する。キーボードコントローラ（ＫＢＣ）５はキーボード（ＫＢ）９や不図示のポインティングデバイスからのキー入力を制御する。ＣＲＴコントローラ（ＣＲＴＣ）６はＣＲＴディスプレイ（ＣＲＴ）１０の表示を制御する。
【００２２】
ディスクコントローラ（ＤＫＣ）７は、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、文字イメージデータ生成プログラム（フォントラスタライザ）、プリンタ制御コマンド生成プログラム（プリンタドライバ）などを記憶する外部メモリ１１とのアクセスを制御する。
【００２３】
プリンタコントローラ（ＰＲＴＣ）８は、所定の双方向性インターフェース（インターフェース）２１を介してプリンタ１５００に接続され、プリンタ１５００との通信制御を実行する。
【００２４】
尚、ＣＰＵ１は、例えばＲＡＭ２に設定された表示情報領域へのアウトラインフォントの展開（ラスタライズ）処理を実行し、ＣＲＴ１０のＷＹＳＩＷＹＧ（What You See Is What You Get）を可能にしている。
【００２５】
また、ＣＰＵ１は、ＣＲＴ１０に表示されたマウスカーソルなどで指示されたコマンドに基づいて登録された種々のウィンドウを開き、種々のデータ処理を実行する。
【００２６】
プリンタ１５００は、システムバス１５に接続されたＲＯＭ１３、印刷部Ｉ／Ｆ１６、入力部１８、ＲＡＭ１９、メモリコントローラ（ＭＣ）２０及び操作部１５０１を総括的に制御するＣＰＵ１２を備えている。印刷部Ｉ／Ｆ１６は印刷部１７と、メモリコントローラ（ＭＣ）２０はハードディスク（ＨＤ）又はＩＣカードなどで構成される外部メモリ１４とそれぞれ接続されている。
【００２７】
ＣＰＵ１２は、ＲＯＭ１３のプログラム用ＲＯＭに記憶された制御プログラム又は外部メモリ１４に記憶された制御プログラム等に基づいて、印刷部Ｉ／Ｆ１６を介してシステムバス１５に接続された印刷部（プリンタエンジン）１７に出力情報としての画像信号を出力する。
【００２８】
また、ＲＯＭ１３のプログラムＲＯＭには、ＣＰＵ１２の制御プログラム等が記憶される。ＲＯＭ１３のフォント用ＲＯＭには、ハードディスクなどの外部メモリ１４がないプリンタの場合に、ホストコンピュータ３０００で利用される情報などを記憶する。
【００２９】
ＣＰＵ１２は、入力部１８を介してホストコンピュータ３０００との通信処理が可能であり、プリンタ１５００内の情報などをホストコンピュータ３０００に通知する。
【００３０】
ＲＡＭ１９はＣＰＵ１２の主メモリ、ワークエリア等として機能し、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張できる。尚、ＲＡＭ１９は出力情報展開領域、環境データ格納領域、ＮＶＲＡＭなどに用いられる。
【００３１】
外部メモリ１４へのアクセスは、メモリコントローラ（ＭＣ）２０により制御される。外部メモリ１４は、オプションとしてプリンタ１５００に接続され、フォントデータ、エミュレーションプログラム、フォームデータなどが記憶される。
【００３２】
操作部１５０１は操作パネルに設けられており、操作パネルにはスイッチ及びＬＥＤ表示器などが配されている。
【００３３】
また、外部メモリ１４は１個に限らず、内蔵フォントに加えてオプションフォントカードや言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数個接続できる。
【００３４】
さらに、ＲＡＭ１９がＮＶＲＡＭを有し、操作パネルに設けられた操作部１５０１からのプリンタモード設定情報を記憶するようにしてもよい。
【００３５】
図２は、ホストコンピュータ３０００内のプリンタドライバにおいて、カラーモノクロ判定処理の実施するための構成図である。
【００３６】
アプリケーション２００１は描画関数（例えば、ＧＤＩ関数：Graphic Device Interface）をグラフィックエンジン２００２に出力し、グラフィックエンジン２００２はプリンタドライバが解釈可能な描画命令（例えば、ＤＤＩ関数：Device Driver Interface）に変換してプリンタドライバ２００３に出力する。
【００３７】
プリンタドライバ２００３は、グラフィックスエンジン２００２から受け取った描画命令を解析し、プリンタ制御コマンド又は中間データを生成し、ＲＡＭ２又は外部メモリ１１にスプールデータ２００４として１ページ分のプリンタ制御コマンド又は中間データを保存する。また、この仕組みを使って、プリンタドライバ２００３は、プリンタ制御コマンド又は中間データの生成時に、グラフィックスエンジン２００２から受け取った描画命令中に存在するカラー情報を確認することが可能である。ここで、描画命令には、例えば、文字描画、図形描画、画像描画、描画対象に対する画像処理が含まれる。
【００３８】
描画命令の色属性であるカラー情報中に有彩色値が存在したときは、プリンタドライバ２００３は、スプールデータ２００４として保存されているプリンタ制御コマンドのページの先頭部にカラーデータがあることを示すコマンドを付加して、システムスプーラ２００５に出力する。このカラーモノクロ判定は、印刷ページ単位で行うことが可能である。
【００３９】
システムスプーラ２００５は、カラーデータがあることを示すコマンドが付加されたプリンタ制御コマンドを所定のタイミングでプリンタ１５００に送出する。これにより、プリンタ制御コマンドを受け取ったプリンタ１５００はページ単位にカラー処理を切り替えることが可能となり、プリンタ側での印刷処理の高速化が図れ、また、モノクロページはモノクロ印刷処理されるため、モノクロ課金によりユーザの費用負担も減る。
【００４０】
図３は、プリンタ制御コマンド又は中間データを生成する処理のルーチンを示すフローチャートである。本処理はＣＰＵ１の制御の下で、プリンタドライバ２００３が実行するものであり、アプリケーション２００１からグラフィックエンジン２００２を介して印刷命令（印刷開始命令と描画命令）を受け取った場合に処理が開始される。
【００４１】
まず、ページ初期化時にプリンタドライバ２００３内で保持するカラー判定フラグをモノクロに初期化する（ステップＳ３０１）。
【００４２】
ホストコンピュータ３０００のオペレーティングシステム（ＯＳ）又はアプリケーション２００１から描画命令を受け取る（ステップＳ３０２）。
【００４３】
ステップＳ３０２で描画命令を受け取り、プリンタ制御コマンド又は中間データを生成する際に、描画命令中に存在するカラー情報（カラー属性）を確認し、印刷すべき文字のカラーモノクロ判定を実施する（ステップＳ３０３）。
【００４４】
次いで、１ページ分の描画命令の処理が終了したか否かを判別する（ステップＳ３０４）。
【００４５】
ステップＳ３０４で、１ページ分の描画命令の処理が終了した場合には、１ページ分のプリンタ制御コマンド又は中間データが生成されるので、ステップＳ３０３のカラーモノクロ判定の判定結果を先頭に付けたプリンタ制御コマンド又は中間データを作成して、プリンタ１５００に送出する（ステップＳ３０５）。このステップＳ３０３のカラーモノクロ判定の判定結果が印刷すべき文字がカラーであることを示す場合には、印刷すべき文字がカラーであることを示す判定結果がプリンタ制御コマンド又は中間データに付加される。
【００４６】
ステップＳ３０４で、１ページ分の描画命令の処理が終了していない場合、即ち、まだ描画命令がある場合は、ステップＳ３０２に戻る。
【００４７】
図４は、図３のステップＳ３０３の処理の具体的なルーチンを示すフローチャートであり、具体的にはプリンタ制御コマンド又は中間データを生成し、かつ文字のカラーモノクロ判定を実行する処理のルーチンを示すフローチャートである。本処理はＣＰＵ１の制御の下で、プリンタドライバ２００３が実行する。
【００４８】
プリンタドライバ２００３は、ホストコンピュータ３０００のオペレーティングシステム（ＯＳ）又はアプリケーション２００１から受け取った描画命令から文字印字データを取得する（ステップＳ４０１）。
【００４９】
ここで、文字印字データは、印字する文字のフォントデータと印字する文字の位置データを備えている。また、印字する文字のフォントデータには、フォント種類を示すフェイス名、文字コード及びフォントの特徴（最大幅、種類、データサイズなど）がいくつかのパラメータやデータで格納されている。また、ステップＳ４０１では、印字する文字のフォントデータからＲＡＭ２上に展開されたビットマップデータも取得する。
【００５０】
印字対象の文字のビットマップデータが既に空白判定済であるか否かを判別する（ステップＳ４０２）。印字対象の文字のビットマップデータの空白判定とは、印字対象の文字が空白文字であるか否かの判定であり、空白文字とは、印字する対象のない文字であり、アスキーコード表の０ｘ００２０の文字やユーザに外字登録された印字する対象のない文字のことである。またフェイス名毎にスペース等の文字コードは決められている。
【００５１】
ステップＳ４０２の判別の結果、空白判定済みと判別された場合は、印字対象の文字の空白フラグがオンであるか否かを判別する（ステップＳ４０３）。
【００５２】
ステップＳ４０３の判別の結果、印字対象の文字の空白フラグがオンである場合、即ち印字対象の文字が空白文字である場合は、当該描画文字に対してカラー判定を行わずに本処理を終了する。
【００５３】
一方、ステップＳ４０３の判別の結果、印字対象の文字の空白フラグがオンでない場合は、後述するステップＳ４０９に進む。
【００５４】
ステップＳ４０２の判別の結果、空白判定が未実施と判別された場合は、印字する文字のフォントデータを取得し（ステップＳ４０４）、そのフォントデータから取得したフェイス名と文字コードに基づく描画対象文字のビットマップデータが空白であるか否かを判別する（ステップＳ４０５）。この判定は、予めプリンタドライバに登録されているフェイス名と文字コードからスペース文字のように描画対象のない文字コードであるか判定してもよいし、また、フェイス名と文字コードから判定できない場合には、その対象文字について実際にビットマップデータを生成してビットマップデータが空白であるかを判別する。この空白判別処理については、図５以降で後述する。
【００５５】
ステップＳ４０５の判別の結果、ビットマップデータが空白である場合は、判別した文字に一意に割り当てられた空白フラグをオンにセットし（ステップＳ４１１）、本処理を終了する。
【００５６】
ステップＳ４０５の判別の結果、ビットマップデータが空白でない場合、すなわち描画対象が存在すると判断された場合は、判別した文字に一意に割り当てられた空白フラグをオフにセットし（ステップＳ４０６）、当該描画文字から生成されたビットマップデータを圧縮し（ステップＳ４０７）、判別した文字に一意に割り当てられたＩＤ番号を使って文字登録コマンドを生成する（ステップＳ４０８）。文字登録コマンドとは、ステップＳ４０７で圧縮されたビットマップデータをプリンタ１５００に登録するためのコマンドである。
【００５７】
ステップＳ４０８の処理後、判別した文字に一意に割り当てられたＩＤ番号を使って登録文字印字コマンドを生成する（ステップＳ４０９）。登録文字印字コマンドとはプリンタ１５００に登録された文字のプリント命令である。
【００５８】
最後に、印字する文字のカラー属性値を確認し、カラー判定処理を行い（ステップＳ４１０）、本処理を終了する。
【００５９】
このように、空白フラグがオンにセットされている場合、即ち、印字対象の文字が空白文字である場合には（ステップＳ４０３でＹＥＳ、ステップＳ４１１）、文字登録コマンドを生成せずに、処理を終了するので、プリンタドライバの文字登録において、空白文字の登録を防止することができる。また、印字する文字の空白判定の後に、カラー判定が行われるので、空白文字にカラー属性が付いていてもカラーと判定することを防止することができる。
【００６０】
以下、図４のカラーモノクロ判定の処理をより詳細に説明する。
【００６１】
ステップＳ４０１における印字データの取得は、プリンタドライバを制御するＯＳやアプリケーションとのインターフェースがどのように実現されているか否かに依存し、例えば、ＯＳから以下のような印字データを取得する。
【００６２】
印字データ：Code FaceName Point Style Pitch x,y …（データ１）
（Code：文字コード、FaceName：フォントフェイス名、Point：文字サイズ、Style：文字修飾データ、Pitch：可変ピッチフラグ、x,y：印字位置、brush：文字の塗りつぶし情報）
図５は、図４のステップＳ４０２の印字対象の文字のビットマップデータが既に空白判定済であるか否かを判別する処理（以下、「空白判別処理」という）のルーチンを示すフローチャートである。
【００６３】
この空白判別処理では、プリンタドライバによって管理される文字登録管理テーブルを使用する。文字登録管理テーブルは、各文字が既に空白判定済みか、判定した結果が空白か否かを記録可能である。例えば、「０」を未判定、「BLANK（＝１）」を空白、「NOTBLANK（＝２）」を非空白として表現し、総ての文字コードに対して「０」〜「２」の数値を付与する。
【００６４】
初期化時には、総ての文字コードに「０」をセットしておき、文字の空白判定時に文字登録管理テーブル中の該当する文字を示す位置に判定結果をセットする。ここでは、Code、FaceName、Style、Pointによって文字が確定するようなフォント環境を想定しているが、フォント環境がこれと異なる場合であっても、文字登録管理テーブル中に文字を特定するのに十分なデータが含まれていればよい。
【００６５】
ここでは、FaceName、Style、Pointの総てが一致するものを１つの文字セットとして管理し、同一の文字セットに属する文字に対しては１つの文字登録管理テーブルを使用する。１つの文字登録管理テーブルには以下に示す内容が含まれる。
【００６６】
文字登録管理テーブル：FaceName Point Style BlankTable …（データ２）
（FaceName：フォントフェイス名、Point：文字サイズ、Style：文字修飾データ、BlankTable：空白管理テーブル）
空白判別処理では、まず使用する変数ｉの初期化（ｉ←０）を行う（ステップＳ５０１）。続いて、変数ｉが文字登録管理テーブルの数Ｎより小さいか否かを判別する（ステップＳ５０２）。この判別は、空白判別処理を最後の文字登録管理テーブルまで実行したか否かを調べている。変数ｉが文字登録管理テーブルの数Ｎより小さい場合には、空白判別処理を最後の文字登録管理テーブルまで実行していないことを示し、変数ｉが文字登録管理テーブルの数Ｎより大きい場合には、空白判別処理を最後の文字登録管理テーブルまで実行していることを示す。
【００６７】
ステップＳ５０２の判別の結果、変数ｉが文字登録管理テーブルの数Ｎより小さい場合は、文字登録管理テーブルTable[i]のFaceName、Style、PointがすべてステップＳ４０１で取得した印字データのFaceName、Style、Pointと一致するか否かを判別し（ステップＳ５０３）、一致する場合にはそのTable[i]のＣｏｄｅの文字が登録済であるか否かを示すフラグBlankTable[Code]の値が０であるか否かを判別する（ステップＳ５０４）。
【００６８】
ステップＳ５０４の判別の結果、BlankTable[Code]がBLANK（空白）又はNOTBLANK（非空白）である場合には、空白判定済であると判定して（ステップＳ５０７）、本ルーチンを終了する。BlankTable[Code]が「０」である場合には、未登録であると判定して、本ルーチンを終了する（ステップＳ５０６）。
【００６９】
ステップＳ５０３で、文字登録管理テーブルTable[i]の各データが印字データの各データと異なる場合には、変数ｉを１インクリメントして（ステップＳ５０５）、ステップＳ５０２に戻り、次の文字登録管理テーブルの処理に移行する。
【００７０】
最後の文字登録管理テーブルＮまで印字データの各データに一致するものが存在しなかった場合、即ち、変数ｉが文字登録管理テーブルの数Ｎより大きい場合は（ステップＳ５０２でＮＯ）、未登録と判定して（ステップＳ５０６）、本ルーチンを終了する。
【００７１】
図４のステップＳ４０５の処理では、ステップＳ４０１で取得した印字データに基づいて、フォトラスタライザから印字に使用するビットマップデータを取得し、そのビットマップデータが空白であるか否かの空白判定を行う。
【００７２】
フォントラスタライザはアウトラインフォントなどのスケーラブルなフォントのビットマップデータを作成するプログラムであり、図１のＲＯＭ３のプログラムＲＯＭ又は外部メモリ１１に格納され、ＲＡＭ２にロードされて実行される。ビットマップデータを取得するために必要なデータは、フォントラスタライザを管理するＯＳなどの仕様に依存するが、ここでは、前記印字データに必要なデータがすべて含まれているものとし、以下に示すデータをフォントラスタライザに渡すこととする。
【００７３】
ビットマップデータの取得のために必要なデータ：Code FaceName Point Style …（データ３）
（Code：文字コード、FaceName：フォントフェイス名、Point：文字サイズ、Style：文字修飾データ）
このようなデータをフォントラスタライザに渡すことにより、ビットマップデータと共に、以下のようなデータを取得できる。
【００７４】
フォントラスタライザからの取得データ：ix iy DataSize ImageData …（データ４）
（ix,iy：ビットマップデータの縦、横のサイズ、DataSize：ビットマップデータのサイズ（データ量）、ImageData：ビットマップデータ）
空白判定は、フォントラスタライザから取得したビットマップデータをスキャンすることにより実現する。ビットマップデータ内にオンピクセルがあるか否かを確認することで、空白かどうかの判定は可能である。
【００７５】
図６は、図４のステップＳ４０６、ステップＳ４１１で示される空白判定結果を文字のフラグにセットする処理のルーチンを示すフローチャートである。
【００７６】
まず、この処理のルーチンで使用する変数ｉの初期化（ｉ←０）を行う（ステップＳ６０１）。次いで、変数ｉが文字登録管理テーブルの数Ｎより小さいか否かを判別して（ステップＳ６０２）、本処理が最後の文字登録管理テーブルまで実行されたか否かを調べる。変数ｉが文字登録管理テーブルの数Ｎより小さい場合には、本処理が最後の文字登録管理テーブルまで実行されていないことを示し、変数ｉが文字登録管理テーブルの数Ｎより大きい場合には、本処理が最後の文字登録管理テーブルまで実行されたことを示す。
【００７７】
文字登録管理テーブルTable[i]のFaceName、Style、Pointが全てステップＳ４０１で取得した印字データのFaceName、Style、Pointと一致するか否かを判別する（ステップＳ６０３）。
【００７８】
ステップＳ６０３の判別の結果、文字登録管理テーブルTable[i]のFaceName、Style、Pointが全てステップＳ４０１で取得した印字データのFaceName、Style、Pointと一致する場合には、そのTable[i]のCodeで表されるBlankTable[Code]に、図４のステップＳ４０４で空白判定した結果（BLANK or NOTBLANK）をセットして（ステップＳ６０４）、本ルーチンを終了する。
【００７９】
一方、ステップＳ６０３の判別の結果、文字登録管理テーブルTable[i]のFaceName、Style、Pointが全てステップＳ４０１で取得した印字データのFaceName、Style、Pointと一致しない場合には、変数ｉを１インクリメントして（ステップＳ６０５）、ステップＳ６０２に戻り、次の文字登録管理テーブルに関する処理に移行する。
【００８０】
最後の文字登録管理テーブルまで文字登録管理テーブルTable[i]のFaceName、Style、Pointが全てステップＳ４０１で取得した印字データのFaceName、Style、Pointと一致しない場合、即ち、変数ｉが文字登録管理テーブルの数Ｎより大きい場合（ステップＳ６０２でＮＯ）には、新たに文字登録管理テーブルを作成し（ステップＳ６０６）、その文字登録管理テーブルのCodeで表される文字の登録フラグBlankTable[Code]をオンにセットして（ステップＳ６０７）、本ルーチンを終了する。
【００８１】
図４のステップＳ４０７では、文字のフォントデータから取得したビットマップデータの圧縮を行う。ここでは、様々な圧縮方法を使用することが可能である。但し、元のビットマップデータが文字のビットマップデータに限定されるので、例えば２次元ランレングス、ＭＲ、ＭＭＲ他、文字の圧縮に効果的な圧縮方法を採用することが望ましい。
【００８２】
図４のステップＳ４０８では、圧縮したビットマップデータをプリンタに登録するプリンタコマンドを作成する。コマンドの例を以下に示す。
【００８３】
ビットマップデータ登録命令：RC CharSetID Code ix iy size END data …（コマンド１）
（RC：ビットマップデータ登録命令を意味するコマンド、CharSetID：文字セットＩＤ、Code：登録する文字の文字コード、ix,iy：ビットマップデータの縦、横のサイズ、size：圧縮されたビットマップデータのサイズ（データ量）、END：コマンド終端符号、data：圧縮されたビットマップデータ）
図４のステップＳ４０９では、登録文字印字コマンドを生成する。このコマンドの例を以下に示す。
【００８４】
登録文字印字命令：DC CharSetID Code x y …（コマンド２）
（DC：登録文字印字命令を意味するコマンド、CharSetID：文字セットＩＤ、Code：印字する文字の文字コード、x,y：印字装置）
図４のステップＳ４１０では、文字に付加されていたカラー属性値に基づいてカラー判定する。ここでは、ステップＳ４０１で取得した文字印字データ中のブラシカラー（文字の塗りつぶし情報）を確認する方法を採用する。
【００８５】
カラー判定方法は、Windows（登録商標）2000等のRGB値でカラー値を表現するＯＳにおいては、Red値，Blue値，Green値を比較し、これらが互いに同値であればモノクロと判定するのが一般的であるが、人の視覚特性に応じた揺らぎを考慮した判定ロジックを使ってもよい。
【００８６】
Windows（登録商標）系のＯＳから渡される文字の描画命令は、塗り領域を指定するフォントビットマップと、塗りつぶす領域を何で塗りつぶすかを指示するブラシによって構成される。ブラシは、ビットマップブラシと、ソリッドブラシに大別されるが、ビットマップブラシは、用意されたビットマップで文字ビットマップ中のオンピクセル部分を塗りつぶすことを意味する。そこで、カラーの判定はビットマップブラシ中のカラー情報の確認をするのが有効である。例えば、RGB24bit/pixelのイメージブラシの場合、イメージデータ中の全ピクセルのカラー判定を行う必要がある。
【００８７】
次に、ソリッドブラシは、一つの色情報しか持たないブラシのことを示している。例えばソリッドブラシ情報として(R,G,B)=(127,239,222)のようなカラー情報が渡されてくるので、このカラー値に対してカラー判定すればよい。
【００８８】
以上詳細に説明したように、本実施の形態によれば、描画命令に含まれる印字すべき文字のフォントデータが空白でない場合、即ち印字すべき文字が空白文字でない場合に、生成されたプリンタ制御コマンド又は中間データに、印刷すべき文字のカラーモノクロ判定による判定結果が付加されるので（ステップＳ４１０）、印刷すべき文字のカラーモノクロ判定の精度の向上を図ることができる。
【００８９】
また、空白判別処理や空白判定結果を文字のフラグにセットする処理では、プリンタドライバによって管理される文字登録管理テーブルを使用するので、印字する文字の空白判定を繰り返し行うことを防止できる。
【００９０】
また、本発明の目的は、実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出して実行することによっても達成される。
【００９１】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００９２】
又、プログラムコードを供給するための記憶媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。または、プログラムコードをネットワークを介してダウンロードしてもよい。
【００９３】
また、コンピュータが読み出したプログラムコードを実行することにより、上記実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【００９４】
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【図面の簡単な説明】
【００９５】
【図１】本発明の実施の形態に係る印刷制御装置を含む印刷システムの構成を示すブロック図である。
【図２】ホストコンピュータ３０００内のプリンタドライバにおいて、カラーモノクロ判定処理の実施するための構成図である。
【図３】プリンタ制御コマンド又は中間データを生成する処理のルーチンを示すフローチャートである。
【図４】図３のステップＳ３０３の処理の具体的なルーチンを示すフローチャートである。
【図５】図４のステップＳ４０２の印字対象の文字のビットマップデータが既に空白判定済であるか否かを判別する処理（空白判別処理）のルーチンを示すフローチャートである。
【図６】図４のステップＳ４０６、ステップＳ４１１で示される空白判定結果を文字のフラグにセットする処理のルーチンを示すフローチャートである。
【符号の説明】
【００９６】
１  ＣＰＵ
２  ＲＡＭ
３  ＲＯＭ
４  システムバス
５  キーボードコントローラ（ＫＢＣ）
６  ＣＲＴコントローラ（ＣＲＴＣ）
７  ディスクコントローラ（ＤＫＣ）
８  プリンタコントローラ（ＰＲＴＣ）
１１  外部メモリ
１５００  プリンタ
３０００  ホストコンピュータ
【図１】
2006309427.tif 000003
【図２】
2006309427.tif 000004
【図３】
2006309427.tif 000005
【図４】
2006309427.tif 000006
【図５】
2006309427.tif 000007
【図６】
2006309427.tif 000008