(57)【要約】【課題】印刷装置が処理すべきパターンビットマップのサイズが印刷装置で処理可能な最大のサイズを超えている場合であっても、歪みやモアレを発生させることなく、ユーザが期待する印刷結果を得ること。【解決手段】プリンタドライバ２０３が、描画要求に基づいてプリンタ１５００が処理可能な印刷データを生成する際、前記描画要求がパターンイメージの描画要求であり、該描画要求されたパターンイメージのサイズがプリンタ１５００が処理可能なパターンイメージサイズを超えている場合、プリンタ１５００が処理可能なパターンイメージサイズを超えないような前記描画要求されたパターンイメージの部分パターンイメージを、該部分パターンイメージを複数羅列することにより前記描画要求されたパターンイメージを構成可能なように作成し、該部分パターンイメージを用いてプリンタ１５００に処理させる印刷データを生成する構成を特徴とする。【選択図】図１
2007011736.tif 000002
【特許請求の範囲】
【請求項１】
描画要求に基づいて印刷装置が処理可能な印刷データを生成する印刷制御装置において、
前記描画要求がパターンイメージの描画要求であり、該描画要求されたパターンイメージのサイズが前記印刷装置が処理可能なパターンイメージサイズを超えている場合、前記印刷装置が処理可能なパターンイメージサイズを超えないような前記描画要求されたパターンイメージの部分パターンイメージを作成する作成手段と、
前記作成手段が作成した前記部分パターンイメージを用いて前記印刷装置に処理させる印刷データを生成する生成手段とを有するものであり、
前記作成手段が作成する前記部分パターンイメージは、該部分パターンイメージを複数羅列することにより前記描画要求されたパターンイメージを構成可能な部分パターンイメージであることを特徴とする印刷制御装置。
【請求項２】
前記作成手段は、所定方向のサイズが、前記描画要求されたパターンイメージの前記所定方向のサイズの約数となる部分パターンイメージを作成するものであり、該作成する前記部分パターンイメージは、該部分パターンイメージを前記所定方向に複数羅列することにより前記描画要求されたパターンイメージの前記所定方向のパターンイメージを構成可能なことを特徴とする請求項１記載の印刷制御装置。
【請求項３】
前記所定方向は、水平方向及び／又は垂直方向であることを特徴とする請求項２記載の印刷制御装置。
【請求項４】
前記作成手段は、前記印刷装置が処理可能なパターンイメージサイズを超えない範囲で前記部分パターンイメージを整数倍して前記部分パターンイメージを再作成することを特徴とする請求項１〜３のいずれかに記載の印刷制御装置。
【請求項５】
前記印刷制御装置は部分パターンイメージを作成する方法を選択的に設定できる設定手段を有し、
前記設定手段において部分パターンを再作成する設定がなされた場合に、前記印刷装置が処理可能なパターンイメージサイズを超えない範囲で前記部分パターンイメージを整数倍して前記部分パターンイメージを再作成することを特徴とする請求項１〜３のいずれかに記載の印刷制御装置。
【請求項６】
前記作成手段は、複数羅列することにより前記描画要求されたパターンイメージを構成可能な部分パターンイメージのうち、最大の部分パターンイメージを作成することを特徴とする請求項１〜５のいずれかに記載の印刷制御装置。
【請求項７】
前記作成手段は、複数羅列することにより前記描画要求されたパターンイメージを構成可能な部分パターンイメージのうち、最小の部分パターンイメージを作成することを特徴とする請求項１〜３のいずれかに記載の印刷制御装置。
【請求項８】
前記作成手段が複数羅列することにより前記描画要求されたパターンイメージを構成可能な部分パターンイメージを作成できないまたは作成しない場合には、前記生成手段は、前記描画要求されたパターンイメージを用いて前記印刷装置に処理させる印刷データを生成することを特徴とする請求項１〜７のいずれかに記載の印刷制御装置。
【請求項９】
描画要求に基づいて印刷装置が処理可能な印刷データを生成する印刷制御方法において、
前記描画要求がパターンイメージの描画要求であり、該描画要求されたパターンイメージのサイズが前記印刷装置が処理可能なパターンイメージサイズを超えている場合、前記印刷装置が処理可能なパターンイメージサイズを超えないような前記描画要求されたパターンイメージの部分パターンイメージを作成する作成ステップと、
該作成された前記部分パターンイメージを用いて前記印刷装置に処理させる印刷データを生成する生成ステップとを有するものであり、
前記作成ステップが作成する前記部分パターンイメージは、該部分パターンイメージを複数羅列することにより前記描画要求されたパターンイメージを構成可能な部分パターンイメージであることを特徴とする印刷制御方法。
【請求項１０】
請求項９に記載された印刷制御方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パーソナルコンピュータ等の情報処理装置とプリンタなどの出力装置からなるシステムにおける印刷制御装置および印刷制御方法およびプログラムに関するものである。
【背景技術】
【０００２】
矩形や円などの図形の内部をパターンで塗りつぶしたデータを印刷する際、アプリケーションから図形情報とそのパターンを有するビットマップが印刷制御装置に渡され、渡された図形情報を基に印刷装置により図形の形状を描画し、その内部を渡されたビットマップで塗りつぶすといった描画が行われる。以降、このパターンを有するビットマップを「パターンビットマップ」と呼ぶ。
【０００３】
しかし、画像表示装置と印刷装置との解像度の差異や、情報処理装置や印刷装置の仕様や制限などにより、このパターンに歪みやモアレが発生し、ユーザが期待するものとは異なる印刷結果となることがある。
【０００４】
特許文献１（特開２０００−２２２１５２号公報）では、画像表示装置と印刷装置の解像度の差異や情報処理装置による拡大縮小処理によって歪みやモアレが発生する場合に、パターンの各要素を適切なサイズに拡大することで、ユーザが期待する印刷結果を得ることが可能となるような技術が開示されている。
【特許文献１】特開２０００−２２２１５２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ここで、印刷装置の多くは、装置の物理的な制限等により、一度に処理可能なパターンビットマップの最大のサイズが決められている。そして、このような印刷装置を用いて印刷処理を行う場合、アプリケーションから渡されたパターンビットマップのサイズが、印刷装置で処理可能な最大のサイズを超えている場合、このパターンビットマップをそのまま印刷装置で処理しようとすると、適切に処理できず、印刷結果が不正となってしまうことや、印刷自体が行われないことがある。
【０００６】
この現象を回避するため、印刷制御装置や印刷装置にて、アプリケーションから渡されたパターンビットマップから印刷装置で処理可能な最大サイズに納まる部分を単純に切り出し、パターンビットマップのサイズに縮小するといった技術が公知となっている。しかし、この技術を適用した結果、印刷結果に歪みやモアレが発生することがある。
【０００７】
例えば、印刷装置では最大で１０×１０（以降、単位はＰｉｘｅｌ）のサイズのパターンビットマップしか処理できないにも関わらず、アプリケーションからは、図１９の５０１のような２０×２０のサイズのパターンビットマップが渡され、５０２のように矩形の内部をそのパターンビットマップで塗りつぶすよう描画要求があったとする。
【０００８】
図１９は、アプリケーションからプリンタドライバに送信されるパターンビットマップの一例を示す模式図である。
【０００９】
この際、印刷制御装置や印刷装置にて、パターンビットマップを印刷装置で処理可能なサイズに縮小するために、アプリケーションから渡されたパターンビットマップの左上から１０×１０の部分を５０３のように切り出し、このパターンビットマップを用いて描画処理を行うと、５０４のように印刷結果に歪みやモアレが発生する。
【００１０】
前述した通り、特許文献１は、歪みやモアレが発生しないようにパターンビットマップを修正する技術である。
【００１１】
しかし、この技術では印刷装置が処理可能な最大のサイズについては考慮されていないため、アプリケーションから渡されたパターンビットマップのサイズが、印刷装置が処理可能な最大サイズを超えていた場合には、歪みやモアレが発生することがある。
【００１２】
また、アプリケーションから渡されたパターンビットマップのサイズは印刷装置が処理可能な最大サイズよりも小さくとも、同技術を適用しパターンビットマップの各要素を拡大すると、パターンビットマップのサイズも大きくなることになり、その拡大後のサイズが印刷装置の処理可能な最大サイズを超えていた場合には、同様に歪みやモアレが発生することがある等の問題点があった。
【００１３】
本発明は、上記の問題点を解決するためになされたもので、本発明の目的は、描画要求に基づいて印刷装置が処理可能な印刷データを生成する際、前記描画要求がパターンイメージの描画要求であり、該描画要求されたパターンイメージのサイズが前記印刷装置が処理可能なパターンイメージサイズを超えている場合、前記印刷装置が処理可能なパターンイメージサイズを超えないような前記描画要求されたパターンイメージの部分パターンイメージを作成し、該作成された前記部分パターンイメージを用いて前記印刷装置に処理させる印刷データを生成するものであり、さらに、前記部分パターンイメージを作成する際、該部分パターンイメージを複数羅列することにより前記描画要求されたパターンイメージを構成可能な部分パターンイメージとして作成することにより、印刷装置が処理すべきパターンビットマップのサイズが印刷装置で処理可能な最大のサイズを超えている場合であっても、印刷装置で処理可能なサイズであり、且つ、印刷装置で描画した際にパターンの模様が崩れることがないようなパターンビットマップを作成して印刷装置に出力することができ、歪みやモアレを発生させることなく、ユーザが期待する印刷結果を得ることが可能となる印刷制御装置および印刷制御方法およびプログラムを提供することである。
【課題を解決するための手段】
【００１４】
本発明は、描画要求に基づいて印刷装置が処理可能な印刷データを生成する印刷制御装置において、前記描画要求がパターンイメージの描画要求であり、該描画要求されたパターンイメージのサイズが前記印刷装置が処理可能なパターンイメージサイズを超えている場合、前記印刷装置が処理可能なパターンイメージサイズを超えないような前記描画要求されたパターンイメージの部分パターンイメージを作成する作成手段と、前記作成手段が作成した前記部分パターンイメージを用いて前記印刷装置に処理させる印刷データを生成する生成手段とを有するものであり、前記作成手段が作成する前記部分パターンイメージは、該部分パターンイメージを複数羅列することにより前記描画要求されたパターンイメージを構成可能な部分パターンイメージであることを特徴とする。
【発明の効果】
【００１５】
本発明によれば、描画要求に基づいて印刷装置が処理可能な印刷データを生成する際、前記描画要求がパターンイメージの描画要求であり、該描画要求されたパターンイメージのサイズが前記印刷装置が処理可能なパターンイメージサイズを超えている場合、前記印刷装置が処理可能なパターンイメージサイズを超えないような前記描画要求されたパターンイメージの部分パターンイメージを作成し、該作成された前記部分パターンイメージを用いて前記印刷装置に処理させる印刷データを生成するものであり、さらに、前記部分パターンイメージを作成する際、該部分パターンイメージを複数羅列することにより前記描画要求されたパターンイメージを構成可能な部分パターンイメージとして作成するので、印刷装置が処理すべきパターンビットマップのサイズが印刷装置で処理可能な最大のサイズを超えている場合であっても、印刷装置で処理可能なサイズであり、且つ、印刷装置で描画した際にパターンの模様が崩れることがないようなパターンビットマップを作成して印刷装置に出力することができ、歪みやモアレを発生させることなく、ユーザが期待する印刷結果を得ることが可能となる等の効果を奏する。
【発明を実施するための最良の形態】
【００１６】
以下、図面を参照して、本発明の実施形態を詳細に説明する。
【００１７】
本発明は、特に印刷制御装置に関するものである。
【００１８】
〔第１実施形態〕
以下、図面を参照して、本発明の実施形態を詳細に説明する。
【００１９】
図１は、本発明の一実施形態を示す印刷制御装置を適用可能な印刷機器制御システムの構成を説明するブロック図である。
【００２０】
なお、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても、ＬＡＮ、ＷＡＮ等のネットワークを介して接続が為され処理が行われるシステムであっても本発明を適用できる。即ち、該実施形態で接続される各種端末の構成は一例であり、用途や目的に応じて様々な構成例があることは言うまでもない。
【００２１】
図１において、３０００はホストコンピュータであり、ＲＯＭ１０３あるいは外部メモリ１１１には、ＣＰＵ１０１の制御プログラムであるＢＩＯＳ（Basic Input/Output System）やオペレーティングシステムプログラム（以下ＯＳ）や、各サーバ或いは各ＰＣの実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。本実施形態で使用するＯＳは、例えばウィンドウズ（登録商標）ＸＰ（マイクロソフト社製）を想定するが、これに限るものではない。
【００２２】
ＲＡＭ１０２は、ＣＰＵ１０１の主メモリ、ワークエリア等として機能する。ＣＰＵ１０１は、処理の実行に際して必要なプログラム等をＲＯＭ１０３あるいは外部メモリ１１１からＲＡＭ１０２にロードして実行することで各種動作，機能を実現するものである。
【００２３】
また、入力コントローラ（入力Ｃ）１０５は、キーボード（ＫＢ）１０９や不図示のマウス等のポインティングデバイスからの入力を制御する。１０６はビデオコントローラ（ＶＣ）であり、ＣＲＴディスプレイ（ＣＲＴ）１１０等の表示器への表示を制御する。なお、表示器はＣＲＴだけでなく、液晶ディスプレイ等の他の表示器でも構わない。これらは必要に応じて管理者が選択的に使用するものである。本発明には直接関係があるものではない。
【００２４】
メモリコントローラ（ＭＣ）１０７は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスク（ＨＤ）やフレキシブルディスク（ＦＤ）或いはＰＣＭＣＩＡカードスロットにアダプタを介して接続されるコンパクトフラッシュ（登録商標）メモリ等の外部メモリ１１１へのアクセスを制御する。
【００２５】
通信Ｉ／Ｆコントローラ（通信Ｉ／ＦＣ）１０８は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、ＴＣＰ／ＩＰを用いたインターネット通信やプリンタ１５００との間でデータ送受信等が可能である。
【００２６】
なお、ＣＰＵ１０１は、例えばＲＡＭ１０２内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、ＣＲＴ１１０上での表示を可能としている。また、ＣＰＵ１０１は、ＣＲＴ１１０上に不図示のマウスカーソル等を表示制御して不図示のマウス等のポインティングデバイスからのユーザ指示を可能とする。
【００２７】
以下、プリンタ１５００の構成について説明する。
【００２８】
プリンタ１５００において、プリンタＣＰＵ１１２は、ＲＯＭ１１３ｂのプログラム用ＲＯＭに記憶された制御プログラム等あるいは外部メモリ１１４に記憶された制御プログラム等に基づいてシステムバス１１５に接続される印刷部（プリンタエンジン）１１７に出力情報としての画像信号を出力する。また、ＲＯＭ１１３ｂのプログラムＲＯＭには、ＣＰＵ１１２の制御プログラム等が記憶される。ＲＯＭ１１３ａのフォント用ＲＯＭには上記出力情報を生成する際に使用するフォントデータ等を記憶し、ＲＯＭ１１３ｃのデータ用ＲＯＭにはハードディスク等の外部メモリ１１４がないプリンタの場合には、ホストコンピュータ上で利用される情報等も記憶される。
【００２９】
ＣＰＵ１１２は入力部１１８を介してホストコンピュータとの通信処理が可能となっており、プリンタ内の情報等をホストコンピュータ３０００に通知可能に構成されている。ＲＡＭ１１９はＣＰＵ１１２の主メモリであり、ワークエリア等として機能する。ＲＡＭ１１９は、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。
【００３０】
なお、ＲＡＭ１１９は、出力情報展開領域、環境データ格納領域、ＮＶＲＡＭ等にも用いられる。前述したハードディスク（ＨＤ）、ＩＣカード等の外部メモリ１１４は、メモリコントローラ（ＭＣ）１２０によりアクセスを制御される。外部メモリ１１４は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。また、１１８は前述した操作パネルで操作のためのスイッチおよびＬＥＤ表示器等が配されている。
【００３１】
また前述した外部メモリは１個に限らず、少なくとも１個以上備え、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていてもよい。さらに、図示しないＮＶＲＡＭを有し、操作パネル１５０１からのプリンタモード設定情報を記憶する様にしてもよい。
【００３２】
また、本実施形態では、プリンタ１５００がサポートするページ記述言語（以
下、ＰＤＬ）が例えば、ＬＢＰ Image Processing System（キヤノン社製、以下ＬＩＰＳ）といった比較的に高度なＰＤＬであると想定しているが、これに限るものではない。
【００３３】
本発明を実現するための印刷機器制御プログラム（以下、プリンタドライバ）は外部メモリ１１１に記録されており、ＣＰＵ１０１が必要に応じて外部メモリ１１１から読み出してＲＡＭ１０２にロードして実行するものである。さらに、本発明に係るプリンタドライバが用いる定義ファイル及び各種情報テーブルは、外部メモリ１１１に格納されており、これらについての詳細な説明は後述する。
【００３４】
なお、印刷部１１７は、レーザビーム方式であっても、レーザビーム方式以外の電子写真方式（例えばＬＥＤ方式）でも、液晶シャッタ方式、インクジェット方式、熱転写方式、昇華方式でもその他のプリント方式であっても本発明は適用可能である。
【００３５】
図２は、図１に示したホストコンピュータ３０００からプリンタ１５００に印刷ジョブデータを送信する際の流れを示した主要な機能ブロック図である。
【００３６】
ホストコンピュータ３０００におけるアプリケーションプログラム（以下、アプリケーション）２０１、グラフィックエンジン２０２、プリンタドライバ２０３、及びプリントサブシステム２０４は、それぞれ図１に示した外部メモリ１１１に保存されたファイルとして存在し、実行される際に、ＯＳやそのモジュールを利用するモジュールによってＲＡＭ１０２にロードされ実行されるプログラムモジュールである。
【００３７】
なお、アプリケーション２０１及びプリンタドライバ２０３は、外部メモリ１１１のＦＤや不図示のＣＤ−ＲＯＭあるいは後述するネットワークを経由して外部メモリ１１１のハードディスク（ＨＤ）に追加可能になっている。
【００３８】
外部メモリ１１１に保存されているアプリケーション２０１は、ＣＰＵ１０１によってＲＡＭ１０２にロードされて実行される。このアプリケーション２０１からプリンタ１５００に対して印刷を行わせる際には、同様にＣＰＵ１０１によってＲＡＭ１０２にロードされて実行されるグラフィックエンジン２０２を利用して出力（描画）を行う。
【００３９】
グラフィックエンジン２０２は、印刷装置毎に用意されたプリンタドライバ２０３を起動する（これにより、プリンタドライバ２０３は、ＣＰＵ１０１によって外部メモリ１１１からＲＡＭ１０２にロードされて実行される）。グラフィックエンジン２０２は、このプリンタドライバ２０３を用いて、アプリケーション２０１の出力をＰＤＬによるプリンタ制御命令に変換する。
【００４０】
プリンタドライバ２０３により変換されたプリンタ制御コマンドは、プリントサブシステム２０４を経て通信インタフェース２２１経由でプリンタ１５００に出力される仕組みとなっている。
【００４１】
なお、このプリントサブシステム２０４は、ＯＳによって起動されて、ＣＰＵ１０１によって外部メモリ１１１からＲＡＭ１０２にロードされて実行されるものであり、印刷ジョブのスケジューリング、プリンタとのホストコンピュータと接続制御やプリンタのステータスの管理を行っている。
【００４２】
なお、プリンタドライバ２０３は、前述した、アプリケーション２０１から指示された印字や描画命令の出力に対してプリンタ制御コマンドを生成し、プリント出力に反映されるようプリンタに指示するだけでなく、プリンタドライバ２０３やプリンタ１５００本体が持つ機能を制御するための設定を行う機能（以下、ユーザインタフェース）と、その設定を記憶する機能、プリンタドライバ２０３やプリンタ１５００本体が持つ能力をアプリケーションやＯＳに情報提供する機能、上記ユーザインタフェースで設定された機能がプリンタの有する機能である場合にプリンタ制御命令を生成する機能、また、ユーザインタフェースで設定された機能がプリンタドライバ独自で行う機能の場合にその機能を実現する機能等を有する。
【００４３】
図３は、図１に示したホストコンピュータ３０００、プリンタ１５００を適用可能な印刷システムの一例を示すシステム構成図である。
【００４４】
図３において、３０１はネットワークであり、複数のホストコンピュータ３０００、プリンタ１５００、プリントサーバコンピュータ４０００が接続されている。
【００４５】
この場合、ホストコンピュータ３０００の通信Ｉ／Ｆコントローラ１０８は、ネットワークインタフェースカード（ＮＩＣ）の機能を有するものとする。また、プリンタ１５００は、セントロニクスやＵＳＢ等のローカルインタフェース３０２を介してプリントサーバコンピュータ４０００と接続されて該プリントサーバ４０００を介してネットワーク３０００に接続される形態であっても、ネットワーク３０１に直接接続される形態であってもよい。なお、ネットワーク３０１に直接接続されているプリンタ１５００の入力部１１８は、ネットワークインタフェースカード（ＮＩＣ）の機能を有するものとする。
【００４６】
上記プリントサーバコンピュータ４０００を介してネットワーク３０１に接続されるプリンタ１５００に各クライアントコンピュータ３０００から印刷ジョブを送信する場合、まず各クライアントコンピュータ３０００は、プリントサブシステム２０４を介して、プリントサーバコンピュータ４０００へ印刷ジョブを送信する。
【００４７】
そして、プリントサーバコンピュータ４０００は、各クライアントコンピュータ３０００から送信されてきた印刷ジョブを、不図示のプリントサーバコンピュータ４０００上のプリントサブシステムを介して、プリンタ１５００へ送信する。これにより、各クライアントコンピュータ３０００は、プリントサーバコンピュータ４０００を介して印刷ジョブをプリンタ１５００へ送信することができる。
【００４８】
また、ネットワーク３０１に直接接続されるプリンタ１５００に各クライアントコンピュータ３０００から印刷ジョブを送信する場合、各クライアントコンピュータ３０００は、プリントサブシステム２０４を介して、ネットワーク３０１に直接接続されるプリンタ１５００へ印刷ジョブを送信する。
【００４９】
次に、図４のタイミングチャートを用いて、本発明を適用するのに好適なプリンタドライバ２０３の基本的な処理の流れについて説明する。
【００５０】
図４は、本発明の印刷制御装置における印刷を行う場合の基本的な処理の流れを示すステータス図であり、特に、図２に示したアプリケーション２０１、グラフィックエンジン２０２、プリンタドライバ２０３の処理に対応する。なお、図２と同一のものには同一の符号を付してある。
【００５１】
図２に示したように、アプリケーション２０１は、プリンタドライバ２０３と直接やり取りを行うのではなく、ＯＳの持つグラフィックスエンジン２０２を介して行うため、アプリケーション２０１自体は、実際にはグラフィックスエンジン２０２とやり取りを行う。グラフィックエンジン２０２はアプリケーション２０１から指示を受け、プリンタドライバ２０３に対して指示を行う。
【００５２】
まず、アプリケーション２０１は、片面／両面設定や部数設定などの印刷のための設定をＲＡＭ１０２に確保されたメモリを介してグラフィックエンジン２０２に通知し、プリンタドライバ２０３は、グラフィックエンジン２０２より、その印刷設定とその印刷設定を元にプリンタドライバ２０３が印刷処理を行う上で必要な情報を格納する新たにＲＡＭ１０２上に確保されたメモリ領域の初期化要求を受信する（Ｓ４０１）。これにより、プリンタドライバ２０３は、そのプリンタドライバ２０３が印刷処理を行うために必要な情報（プリンタドライバ情報）を保持するメモリ領域を確保し、印刷設定に従ってそのメモリ領域を初期化する。
【００５３】
プリンタドライバ２０３は、プリンタドライバ２０３が参照する情報メモリの初期化処理要求の受信により必要な処理を完了すると、ステップＳ４０１で受信した印刷設定に応じたプリンタドライバ２０３の印刷能力をグラフィックエンジン２０２に通知する。アプリケーション２０１は、グラフィックエンジン２０２より、最終的にプリンタ１５００に送信される印刷ジョブとその印刷ジョブに反映する印刷設定とを関連付けるために必要なハンドル値を取得する（Ｓ４０２）。
【００５４】
次に、アプリケーション２０１が、印刷の開始要求をグラフィックエンジン２０２に行うと、プリンタドライバ２０３は、グラフィックエンジン２０２より印刷開始要求を受信する（Ｓ４０３）。これにより、プリンタドライバ２０３は、ＰＤＬの生成処理を開始し、まず、プリンタ１５００が印刷開始に必要なプリンタ命令を生成する。ただし、プリンタ１５００が印刷開始に必要なプリンタ命令を生成する処理は、最初のページ（１ページ目）の印刷処理が開始された時点（アプリケーションからの最初のページの描画指示を受信した時点）であっても良い。
【００５５】
アプリケーション２０１は、文字やイメージ等の描画オブジェクトの描画を実現するための描画指示をグラフィックエンジン２０２に対して行う。プリンタドライバ２０３は、その描画指示をグラフィックエンジン２０２より受信する（Ｓ４０４）。これにより、プリンタドライバ２０３は、指定された描画オブジェクトや改ページ、更には不図示の印刷設定を途中で変更するための要求などを反映したプリンタ制御命令を適宜生成し、プリンタ１５００へ出力する。なお、印刷するページ数はアプリケーション２０１からの指定に因る。
【００５６】
次に、アプリケーション２０１が、印刷の終了要求をグラフィックエンジン２０２に行うと、プリンタドライバ２０３は、グラフィックエンジン２０２より印刷終了要求を受信する（Ｓ４０５）。これにより、プリンタドライバ２０３は、プリンタ１５００が印刷終了に必要なプリンタ命令を生成し、ＰＤＬの生成処理を終了する。
【００５７】
次に、アプリケーション２０１は、ステップＳ４０２で取得したハンドル値の破棄要求をグラフィックエンジン２０２に通知し、プリンタドライバ２０３は、グラフィックエンジン２０２より、プリンタドライバ２０３が印刷処理を行う上で必要な情報を格納するメモリ領域にある情報（プリンタドライバ情報）の破棄要求を受信する。これにより、プリンタドライバ２０３は、上記プリンタドライバ情報の破棄処理を行う（Ｓ４０６）。
【００５８】
以上に示した、ステップＳ４０３〜Ｓ４０５の処理により、プリンタ１５００へ送信するための１つのジョブが生成されることになる。
【００５９】
次に、図５〜図１２を参照して、本発明の印刷制御装置の第１実施形態における制御処理手順に対応するプリンタドライバ２０３による印刷制御処理について説明する。
【００６０】
図５は、本発明の印刷制御装置における第１の制御処理手順の一例を示すフローチャートであり、プリンタドライバ２０３による印刷制御処理に対応する。なお、このフローチャートの処理は、図１に示したＣＰＵ１０１が外部メモリ１１１等に格納されるプログラム（プリンタドライバプログラム）をＲＡＭ１０２上にロードして実行することにより実現される。また、図中、Ｓ１３０１〜Ｓ１３０４は各ステップを示す。
【００６１】
図４で示したように、アプリケーション２０１が、文字やイメージや図形などの描画オブジェクトの描画を実現するための描画指示をグラフィックエンジン２０２に対して行うと、プリンタドライバ２０３は、その描画指示をグラフィックエンジン２０２より受信する（Ｓ４０４）。本フローチャートの処理は、この図４のステップＳ４０４で、プリンタドライバ２０３が受信した描画指示が、図形の描画に関する描画指示だった場合に行う処理に対応する。
【００６２】
プリンタドライバ２０３（ＣＰＵ１０１による実行される）は、図形の描画指示を受信すると（Ｓ１３０１）、ステップＳ１３０２に処理を遷移させる。
【００６３】
次に、ステップＳ１３０２において、プリンタドライバ２０３は、ステップＳ１３０１で受信した描画指示がパターンビットマップを用いるような描画指示であるか否かを判定する。なお、プリンタドライバ２０３は、グラフィックエンジン２０２から図形の描画指示を受信した際に、この図形の描画指示と共に図形の描画に必要な情報（以下、描画情報）がＲＡＭ１０２に確保されたメモリ領域に設定される形で、グラフィックエンジン２０２から渡されている。この情報には、パターンビットマップを用いるか否かの情報や、パターンビットマップそのものの情報（パターンイメージ、パターンビットマップの幅、高さ、総サイズ等）が含まれている。この情報に基づいて、プリンタドライバ２０３は、受信した描画指示がパターンビットマップを用いるような描画指示であるか否かを判定する。
【００６４】
ステップＳ１３０２において、プリンタドライバ２０３が、ステップＳ１３０１で受信した描画指示がパターンビットマップを用いるような描画指示でないと判定した場合には、ステップＳ１３０４に処理を遷移させ、通常どおりの描画処理を行う。即ち、プリンタドライバ２０３は、グラフィックエンジン２０２から受信した描画情報を反映したプリンタ制御命令を生成し、プリンタ１５００に出力するように制御する。
【００６５】
一方、ステップＳ１３０２で、プリンタドライバ２０３が、ステップＳ１３０１で受信した描画指示がパターンビットマップを用いるような描画指示であると判定した場合には、ステップＳ１３０３に処理を遷移させる。
【００６６】
そして、ステップＳ１３０３において、プリンタドライバ２０３は、パターンビットマップ最適化描画処理を実行する。なお、この処理の詳細は、図６に示す。
【００６７】
図６は、本発明の印刷制御装置における第２の制御処理手順の一例を示すフローチャートであり、図５のステップＳ１３０３に示したパターンビットマップ最適化描画処理に対応する。なお、このフローチャートの処理は、図１に示したＣＰＵ１０１が外部メモリ１１１等に格納されるプログラム（プリンタドライバプログラム）をＲＡＭ１０２上にロードして実行することにより実現される。また、図中、Ｓ１４０１〜Ｓ１４０８は各ステップを示す。
【００６８】
まず、ステップＳ１４０１において、プリンタドライバ２０３は、プリンタ１５００で処理可能なパターンビットマップの最大のサイズを決定する。この最大サイズは、ピクセル単位の幅及び高さとして決定する。そして、決定したプリンタ１５００で処理可能なパターンビットマップの最大サイズ（幅，高さ）を図７の７０１に示すようにプリンタドライバ２０３が管理するメモリ領域に格納する。図７は、図１に示したＲＡＭ１０２内に確保されたプリンタドライバ２０３が管理するメモリ領域のメモリイメージの一例を示す模式図である。
【００６９】
なお、プリンタ１５００におけるサイズ制限が、プリンタ１５００で処理可能な幅及び高さのピクセル単位で設けられている場合には、この情報を最大のサイズと決定する。また、プリンタ１５００におけるサイズ制限が、ピクセル単位ではなく、プリンタ１５００で処理可能な総バイト数等によって設けられている場合には、色深度等の情報を基に、サイズ制限に相当する総バイト数を、ピクセル幅及び高さに変換して最大のサイズを決定する。なお、上記色深度等の情報は、前述の描画情報に含まれている。
【００７０】
また、この最大サイズの決定は、上述したように、プリンタ１５００で処理可能なサイズに関する情報を基に決定しても良いし、逆に、プリンタ１５００で処理不可能なサイズに関する情報を基に決定しても良い。この場合、プリンタドライバ２０３は、プリンタ１５００で処理不可能なサイズに関する情報を超えない最大の幅及び高さの情報を最大のサイズと決定するものとする。
【００７１】
なお、上述のプリンタ１５００におけるサイズ制限に関する情報は、プリンタドライバ２０３が、外部メモリ１１１に記憶されたプリンタドライバ２０３自身が保持しＲＡＭ１０２にロードされた情報から取得するものであっても良いし、プリンタドライバ２０３が、通信Ｉ／Ｆコントローラ１０８，ネットワークを介してプリンタ１５００に問い合わせを行うことにより取得するものであっても良い。
【００７２】
また、これらの処理を、図４に示したステップＳ４０１のプリンタドライバ情報の初期化の時点や、ステップＳ４０３の印刷開始要求が行われた時点や、最初のページ（１ページ目）の印刷処理が開始された時点などで行い、プリンタドライバ２０３が、その際に取得した最大サイズの情報をＲＡＭ１０２上に確保されたメモリ領域内のプリンタドライバ情報に保持しておくように構成してもよい。この場合、ステップＳ１４０１において、プリンタドライバ２０３は、上記プリンタドライバ情報に保持された情報から最大サイズの情報を取得し、該取得した値をプリンタ１５００で処理可能なパターンビットマップの最大のサイズとして決定するものとする。
【００７３】
次に、ステップＳ１４０２において、プリンタドライバ２０３は、ステップＳ１４０１で決定したプリンタ１５００で処理可能なパターンビットマップの最大サイズと、プリンタ１５００が処理すべきパターンビットマップのサイズを比較する。なお、プリンタ１５００が処理すべきパターンビットマップとは、通常は、アプリケーション２０１からグラフィックエンジン２０２を介して受信したパターンビットマップそのものを指す。しかし、ステップＳ１４０２以前に、プリンタドライバにより、特開２０００−２２２１５２号公報の技術などのような何らかの処理がパターンビットマップに施されていた場合には、処理された後のパターンビットマップを指すことになる。このどちらの場合においても、このプリンタ１５００が処理すべきパターンビットマップのことを、以降では「受信パターンビットマップ」と呼ぶ。
【００７４】
また、前述した通り、グラフィックエンジン２０２から渡される描画情報にはパターンビットマップそのものの情報が含まれており、この情報には、パターンビットマップの幅や高さに関する情報が含まれている。よって、受信パターンビットマップのサイズはこれらの情報を基に算出する。ただし、前述したように、ステップＳ１４０２以前に、プリンタドライバによりパターンビットマップに対して何らかの処理が施されており、処理された後のパターンビットマップの幅や高さ、サイズなどの情報が、別途にＲＡＭ１０２上に確保されたメモリ領域内のプリンタドライバ情報などに存在する場合には、そちらの情報を基に算出する。
【００７５】
そして、上記比較を行った結果、ステップＳ１４０２で、プリンタドライバ２０３が、受信パターンビットマップが、プリンタ１５００で処理可能なパターンビットマップの最大サイズを超えていないと判定した場合には、ステップＳ１４０８に処理を遷移させる。
【００７６】
この場合、プリンタ１５００で処理可能な最大サイズの制限により歪みやモアレが発生することはない。よって、ステップＳ１４０８において、プリンタドライバ２０３は、通常どおりの受信パターンビットマップの描画処理を行うように制御する。即ち、受信パターンビットマップをそのまま用いてプリンタ制御命令を生成し、プリンタ１５００に出力するように制御する。そして、ステップＳ１４０８の処理が終了すると、処理を終了する。
【００７７】
一方、ステップＳ１４０２で、プリンタドライバ２０３が、受信パターンビットマップが、プリンタ１５００で処理可能なパターンビットマップの最大サイズを超えていると判定した場合には、ステップＳ１４０３に処理を遷移させる。
【００７８】
ステップＳ１４０３〜Ｓ１４０５において、プリンタドライバ２０３は、パターンの模様を崩すことなく受信パターンビットマップのサイズを最適化できるか否かを判断する処理を行う。
【００７９】
まず、ステップＳ１４０３において、プリンタドライバ２０３は、水平方向の最適可判定処理を行う。以下、この処理の詳細を図８を用いて説明する。
【００８０】
図８は、本発明の印刷制御装置における第３の制御処理手順の一例を示すフローチャートであり、図６のステップＳ１４０３に示した水平方向の最適可判定処理に対応する。なお、このフローチャートの処理は、図１に示したＣＰＵ１０１が外部メモリ１１１等に格納されるプログラム（プリンタドライバプログラム）をＲＡＭ１０２上にロードして実行することにより実現される。また、図中、Ｓ１５０１〜Ｓ１５０８は各ステップを示す。
【００８１】
まず、ステップＳ１５０１において、プリンタドライバ２０３は、受信パターンビットマップのピクセル幅を基に、パターンの模様を崩すことなく受信パターンビットマップを水平方向に最適化でき得るようなピクセル幅（以下、最適化幅）の候補値群を算出する。
【００８２】
この候補値群の算出は、例えば、以下のようにして行う。
【００８３】
パターンの性質上、最適化幅は受信パターンビットマップのピクセル幅の正の約数でなければならない。よって、プリンタドライバ２０３は、まず受信パターンビットマップのピクセル幅の正の約数を算出する。この約数の算出は、例えば、各値の約数の情報を外部メモリ１１１に記憶されたプリンタドライバ２０３自身が保持し、必要な値をＲＡＭ１０２にロードされた情報から取得するといった方法で行っても良いし、プリンタドライバ２０３自身が保持する情報は基数の情報のみで、受信パターンビットマップのピクセル幅の値をその基数で割り、余りがあるか否かによって、どの基数が約数であるかを判断するといった方法であっても良い。また、その他の一般的な約数の算出方法を採用しても良い。
【００８４】
次に、上述のように算出した約数の中から、プリンタドライバ２０３は、プリンタ１５００で処理可能なパターンビットマップの最大の幅に納まるものだけを抽出する。そして、プリンタドライバ２０３は、該抽出した値から上述した最適化幅）の候補値群を決定する。抽出した約数全てを候補値としても良いし、抽出した約数の中の幾つかの値のみを候補値としても良い。
【００８５】
次に、ステップＳ１５０２において、プリンタドライバ２０３は、ステップＳ１５０１で算出した候補値群の中から一つの候補値を取得する。この値はプリンタドライバ２０３が管理するメモリ領域で保持する（例えば、図７の７０５）。なお、ステップＳ１５０２の候補値の取得処理は、最適化幅が決定するまで、以降繰り返し行われることになるが、取得する順番は、値が小さい順であっても良いし、大きい順であっても良いし、任意の順番であっても良い。ただし、既に取得済みの値であるか否かは判断する必要があり、同時にそれらの情報をプリンタドライバ２０３が管理するメモリ領域で保持し、これを用いて判断する。
【００８６】
次に、ステップＳ１５０３において、プリンタドライバ２０３は、ピクセル幅がステップＳ１５０２で取得した候補値であり、且つ、ピクセル高さが１である部分の色構成情報を、受信パターンビットマップの１つの行から取得する。詳細には、まず、プリンタドライバ２０３は、受信パターンビットマップの１つの行を取得し、該取得した行を、ステップＳ１５０２で取得した候補値を幅として分割し、該分割した部分のいずれかから色構成情報を取得する。そして、取得した色構成情報をプリンタドライバ２０３が管理するメモリ領域（図７の７０４）に保持する。なお、ステップＳ１５０３の色構成情報の取得処理は、最適化幅が決定するまで、以降繰り返し行われることになるが、取得する順番は受信パターンビットマップの最上段の行からであっても良いし、最下段の行からであっても良いし、任意の行からであっても良い。ただし、既に取得済みの行であるか否かは判断する必要があり、同時にそれらの情報をプリンタドライバ２０３が管理するメモリ領域で保持し、これを用いて判断する。
【００８７】
次に、ステップＳ１５０４において、プリンタドライバ２０３は、ステップＳ１５０３で色構成情報を取得した行全体が、ステップＳ１５０３で取得した色構成情報の羅列であるか否かを判定する。
【００８８】
つまり、受信パターンビットマップから取得した行について、ステップＳ１５０３で色構成情報を取得した部分以外の全ての部分が、ステップＳ１５０３で取得した部分と同様の色構成となっているかを判定する。言い換えれば、受信パターンビットマップから取得した１つの行全体が、ステップＳ１５０３で取得した色構成の繰り返しであるかを判定するということであり、図９に示すように、該行が、同じ色の繰り返しとなっているか否かを判定する。図９は、本発明の印刷制御装置における色構成の繰り返しの判定方法の一例を示す模式図である。
【００８９】
ステップＳ１５０４で、プリンタドライバ２０３が、ステップＳ１５０３で色構成情報を取得した行全体が、ステップＳ１５０３で取得した色構成情報の羅列（繰り返し）であると判定した場合には、ステップＳ１５０５に処理を遷移させる。
【００９０】
そして、ステップＳ１５０５において、プリンタドライバ２０３は、受信ビットマップの全ての行の色構成を比較したか（即ち、受信ビットマップの全ての行に対してステップＳ１５０３，Ｓ１５０４の処理を行ったか）を判定する。なお、全行に対してＳ１５０３，Ｓ１５０４の処理を行ったか否かの判定（Ｓ１５０５）は、ステップＳ１５０３で色構成情報を取得した行の情報をメモリ領域に保持しておくことにより可能となる。
【００９１】
そして、ステップＳ１５０５で、プリンタドライバ２０３が、まだ受信ビットマップの全ての行の色構成を比較していないと判定した場合には、ステップＳ１５０６に処理を遷移させて、対象を受信パターンビットマップの次の行へ移動し、ステップＳ１５０３，Ｓ１５０４の処理を、受信パターンビットマップの全行に対して繰り返すように制御する。
【００９２】
一方、ステップＳ１５０５で、プリンタドライバ２０３が、既に、受信ビットマップの全ての行の色構成を比較したと判定した場合には、プリンタドライバ２０３は、ステップＳ１５０７に処理を遷移させる。この場合、図９に示すように、受信パターンビットマップの全ての行が同じ色構成の繰り返しであると判断された場合である。即ち、この判断に使用した候補値で水平方向に受信パターンビットマップを最適化してもパターンの模様が崩れないことを意味する。つまり、水平方向の最適化が可能であることを意味する。
【００９３】
従って、ステップＳ１５０７において、プリンタドライバ２０３は、この際の候補値を最適化幅としてプリンタドライバ２０３が管理するメモリ領域（図７の７０２）に保存し、処理を図６のフローチャートに戻す。なお、プリンタドライバ２０３は、この最適化幅の情報とは別途に、水平方向の最適化が可能であることをプリンタドライバ２０３が管理するメモリ領域（図７の７０５）に保存するようにしても良い。
【００９４】
一方、ステップＳ１５０３，Ｓ１５０４の処理を繰り返す中で、ステップＳ１５０４にて、プリンタドライバ２０３が、ステップＳ１５０３で色構成情報を取得した行全体が、ステップＳ１５０３で取得した色構成情報の羅列（繰り返し）でないと判定した場合には、プリンタドライバ２０３は、ステップＳ１５０８に処理を遷移させる。この場合は、この際の候補値で水平方向に受信パターンビットマップを最適化するとパターンの模様が崩れることを意味する。よって、この場合には、候補値群の中の別の候補値を用いて、同様に、受信パターンビットマップの全ての行が同じ色構成の繰り返しとなるか判断を行う。
【００９５】
即ち、ステップＳ１５０８において、プリンタドライバ２０３は、算出した候補値群の全ての候補値で色構成を比較したか（ステップＳ１５０３，Ｓ１５０４の処理を行ったか）否かを判定する。なお、全候補値に対して同処理を行ったかの判定（Ｓ１５０８）は、ステップＳ１５０２で取得した候補値の情報をメモリ領域に保持しておくことにより可能となる。
【００９６】
そして、ステップＳ１５０８で、プリンタドライバ２０３が、まだ、全ての候補値で色構成を比較していないと判定した場合には、ステップＳ１５０２に処理を戻し、次の候補値を用いて処理を行うように制御する。
【００９７】
一方、ステップＳ１５０８で、プリンタドライバ２０３が、算出した候補値群の全ての候補値で色構成を比較したと判定した場合には、候補値群のどの候補値を用いても受信パターンビットマップいずれかの行が同じ色構成の繰り返しとはならないことを意味し、水平方向の最適化が不可能であることを意味する。
【００９８】
よって、この場合、プリンタドライバ２０３は、最適化幅としての候補値をプリンタドライバ２０３が管理するメモリ領域（図７の７０２）に保存することなく、処理を図６のフローチャートに戻す。なお、プリンタドライバ２０３は、水平方向の最適化が不可能であることをプリンタドライバ２０３が管理するメモリ領域（図７の７０５）に保存するようにしても良い。
【００９９】
また、各種候補値を用いてステップＳ１５０２〜Ｓ１５０６の処理を繰り返す中で、明らかにいずれかの行が同じ色構成の繰り返しとはなり得ないと判明した候補値については、同処理を省略しても良い。例えば、ある行は３Ｐｉｘｅｌで最適化が可能と判断され、別の行は４Ｐｉｘｅｌで最適化が可能と判断された場合には、同パターンビットマップは、３と４の最小公倍数の１２Ｐｉｘｅｌの倍数では最適化でき得る可能性があるが、それ以外の値では最適化でき得ない。よって、それらの値については、同処理を省略しても良い。
【０１００】
以上が、受信パターンビットマップをパターンの模様を崩すことなく水平方向に最適化できるか否かの判定を行う図６のステップＳ１４０３の処理である。
【０１０１】
以下、図６のフローチャートの説明に戻る。
【０１０２】
ステップＳ１４０３の水平方向の最適可判定処理が終了すると、プリンタドライバ２０３は、ステップＳ１４０４に処理を遷移させて、垂直方向の最適可判定処理を行う。以下、この処理の詳細を図１０を用いて説明する。なお、図１０に示す垂直方向の最適可判定処理では、図９に示した水平方向の最適可判定処理と同様のことを垂直方向に対して行う。つまり、図１０のＳ１６０１〜Ｓ１６０８の処理は、図９のステップＳ１５０１〜Ｓ１５０８の処理に相当する。つまり、図９の水平方向に対する処理において「幅」「行」を用いて行った処理は、図１０の垂直方向に対する処理においては「高さ」「列」を用いて行う。同処理の結果、全ての列が同じ色構成の繰り返しであると判断される候補値が見付かった場合には、この際の候補値で垂直方向の最適化が可能であることを意味し、この候補値を最適化高さとしてプリンタドライバ２０３が管理するメモリ領域（図７の７０３）に保存する。なお、この際、垂直方向の最適化が可能であることを最適化高さの情報とは別途に、プリンタドライバ２０３が管理するメモリ領域（図７の７０５）に保存するようにしても良い。
【０１０３】
一方、全ての候補値を用いて同処理を行い、どの候補値であってもいずれかの列が同じ色構成の繰り返しとはなっていないと判断された場合には、垂直方向の最適化が不可能であることを意味する。ここで、垂直方向の最適化が不可能であることをプリンタドライバ２０３が管理するメモリ領域（図７の７０５）に保存しても良い。以下、詳細に説明する。
【０１０４】
図１０は、本発明の印刷制御装置における第４の制御処理手順の一例を示すフローチャートであり、図６のステップＳ１４０４に示した垂直方向の最適可判定処理に対応する。なお、このフローチャートの処理は、図１に示したＣＰＵ１０１が外部メモリ１１１等に格納されるプログラム（プリンタドライバプログラム）をＲＡＭ１０２上にロードして実行することにより実現される。また、図中、Ｓ１６０１〜Ｓ１６０８は各ステップを示す。
【０１０５】
まず、ステップＳ１６０１において、プリンタドライバ２０３は、受信パターンビットマップのピクセル高さを基に、パターンの模様を崩すことなく受信パターンビットマップを垂直方向に最適化でき得るようなピクセル高さ（以下、最適化高さ）の候補値群を算出する。
【０１０６】
この候補値群の算出は、例えば、以下のようにして行う。
【０１０７】
パターンの性質上、最適化高和は受信パターンビットマップのピクセル高さの正の約数でなければならない。よって、プリンタドライバ２０３は、まず受信パターンビットマップのピクセル高さの正の約数を算出する。この約数の算出は、例えば、各値の約数の情報を外部メモリ１１１に記憶されたプリンタドライバ２０３自身が保持し、必要な値をＲＡＭ１０２にロードされた情報から取得するといった方法で行っても良いし、プリンタドライバ２０３自身が保持する情報は基数の情報のみで、受信パターンビットマップのピクセル高さの値をその基数で割り、余りがあるか否かによって、どの基数が約数であるかを判断するといった方法であっても良い。また、その他の一般的な約数の算出方法を採用しても良い。
【０１０８】
次に、上述のように算出した約数の中から、プリンタドライバ２０３は、プリンタ１５００で処理可能なパターンビットマップの最大の高さに納まるものだけを抽出する。そして、プリンタドライバ２０３は、該抽出した値から上述した最適化高さ）の候補値群を決定する。抽出した約数全てを候補値としても良いし、抽出した約数の中の幾つかの値のみを候補値としても良い。
【０１０９】
次に、ステップＳ１６０２において、プリンタドライバ２０３は、ステップＳ１５０１で算出した候補値群の中から一つの候補値を取得する。この値はプリンタドライバ２０３が管理するメモリ領域で保持する（例えば、図７の７０５）。なお、ステップＳ１６０２の候補値の取得処理は、最適化高さが決定するまで、以降繰り返し行われることになるが、取得する順番は、値が小さい順であっても良いし、大きい順であっても良いし、任意の順番であっても良い。ただし、既に取得済みの値であるか否かは判断する必要があり、同時にそれらの情報をプリンタドライバ２０３が管理するメモリ領域で保持し、これを用いて判断する。
【０１１０】
次に、ステップＳ１６０３において、プリンタドライバ２０３は、ピクセル高さがステップＳ１６０２で取得した候補値であり、且つ、ピクセル幅が１である部分の色構成情報を、受信パターンビットマップの１つの列から取得する。詳細には、まず、プリンタドライバ２０３は、受信パターンビットマップの１つの列を取得し、該取得した列を、ステップＳ１６０２で取得した候補値を高さとして分割し、該分割した部分のいずれかから色構成情報を取得する。そして、取得した色構成情報をプリンタドライバ２０３が管理するメモリ領域（図７の７０４）に保持する。なお、ステップＳ１６０３の色構成情報の取得処理は、最適化高さが決定するまで、以降繰り返し行われることになるが、取得する順番は受信パターンビットマップの最左列からであっても良いし、最右列からであっても良いし、任意の列からであっても良い。ただし、既に取得済みの列であるか否かは判断する必要があり、同時にそれらの情報をプリンタドライバ２０３が管理するメモリ領域で保持し、これを用いて判断する。
【０１１１】
次に、ステップＳ１６０４において、プリンタドライバ２０３は、ステップＳ１６０３で色構成情報を取得した列全体が、ステップＳ１６０３で取得した色構成情報の羅列であるか否かを判定する。
【０１１２】
つまり、受信パターンビットマップから取得した列について、ステップＳ１６０３で色構成情報を取得した部分以外の全ての部分が、ステップＳ１６０３で取得した部分と同様の色構成となっているかを判定する。言い換えれば、受信パターンビットマップから取得した１つの列全体が、ステップＳ１６０３で取得した色構成の繰り返しであるかを判定するということであり、図１１に示すように、該列が、同じ色の繰り返しとなっているか否かを判定する。図１１は、本発明の印刷制御装置における色構成の繰り返しの判定方法の一例を示す模式図である。
【０１１３】
ステップＳ１６０４で、プリンタドライバ２０３が、ステップＳ１６０３で色構成情報を取得した列全体が、ステップＳ１６０３で取得した色構成情報の羅列（繰り返し）であると判定した場合には、ステップＳ１６０５に処理を遷移させる。
【０１１４】
そして、ステップＳ１６０５において、プリンタドライバ２０３は、受信ビットマップの全ての列の色構成を比較したか（即ち、受信ビットマップの全ての列に対してステップＳ１６０３，Ｓ１６０４の処理を行ったか）を判定する。なお、全列に対してＳ１６０３，Ｓ１６０４の処理を行ったか否かの判定（Ｓ１６０５）は、ステップＳ１６０３で色構成情報を取得した列の情報をメモリ領域に保持しておくことにより可能となる。
【０１１５】
そして、ステップＳ１６０５で、プリンタドライバ２０３が、まだ受信ビットマップの全ての列の色構成を比較していないと判定した場合には、ステップＳ１６０６に処理を遷移させて、対象を受信パターンビットマップの次の列へ移動し、ステップＳ１６０３，Ｓ１６０４の処理を、受信パターンビットマップの全列に対して繰り返すように制御する。
【０１１６】
一方、ステップＳ１６０５で、プリンタドライバ２０３が、既に、受信ビットマップの全ての列の色構成を比較したと判定した場合には、プリンタドライバ２０３は、ステップＳ１６０７に処理を遷移させる。この場合、図１１に示すように、受信パターンビットマップの全ての列が同じ色構成の繰り返しであると判断された場合である。即ち、この判断に使用した候補値で垂直方向に受信パターンビットマップを最適化してもパターンの模様が崩れないことを意味する。つまり、垂直方向の最適化が可能であることを意味する。
【０１１７】
従って、ステップＳ１６０７において、プリンタドライバ２０３は、この際の候補値を最適化高さとしてプリンタドライバ２０３が管理するメモリ領域（図７の７０３）に保存し、処理を図６のフローチャートに戻す。なお、プリンタドライバ２０３は、この最適化高さの情報とは別途に、垂直方向の最適化が可能であることをプリンタドライバ２０３が管理するメモリ領域（図７の７０５）に保存するようにしても良い。
【０１１８】
一方、ステップＳ１６０３，Ｓ１６０４の処理を繰り返す中で、ステップＳ１６０４にて、プリンタドライバ２０３が、ステップＳ１６０３で色構成情報を取得した列全体が、ステップＳ１６０３で取得した色構成情報の羅列（繰り返し）でないと判定した場合には、プリンタドライバ２０３は、ステップＳ１６０８に処理を遷移させる。この場合は、この際の候補値で垂直方向に受信パターンビットマップを最適化するとパターンの模様が崩れることを意味する。よって、この場合には、候補値群の中の別の候補値を用いて、同様に、受信パターンビットマップの全ての列が同じ色構成の繰り返しとなるか判断を行う。
【０１１９】
即ち、ステップＳ１６０８において、プリンタドライバ２０３は、算出した候補値群の全ての候補値で色構成を比較したか（ステップＳ１６０３，Ｓ１６０４の処理を行ったか）否かを判定する。なお、全候補値に対して同処理を行ったかの判定（Ｓ１６０８）は、ステップＳ１６０２で取得した候補値の情報をメモリ領域に保持しておくことにより可能となる。
【０１２０】
そして、ステップＳ１６０８で、プリンタドライバ２０３が、まだ、全ての候補値で色構成を比較していないと判定した場合には、ステップＳ１６０２に処理を戻し、次の候補値を用いて処理を行うように制御する。
【０１２１】
一方、ステップＳ１６０８で、プリンタドライバ２０３が、算出した候補値群の全ての候補値で色構成を比較したと判定した場合には、候補値群のどの候補値を用いても受信パターンビットマップいずれかの列が同じ色構成の繰り返しとはならないことを意味し、垂直方向の最適化が不可能であることを意味する。
【０１２２】
よって、この場合、プリンタドライバ２０３は、最適化高さとしての候補値をプリンタドライバ２０３が管理するメモリ領域（図７の７０３）に保存することなく、処理を図６のフローチャートに戻す。なお、プリンタドライバ２０３は、垂直方向の最適化が不可能であることをプリンタドライバ２０３が管理するメモリ領域（図７の７０５）に保存するようにしても良い。
【０１２３】
また、各種候補値を用いてステップＳ１６０２〜Ｓ１６０６の処理を繰り返す中で、明らかにいずれかの列が同じ色構成の繰り返しとはなり得ないと判明した候補値については、同処理を省略しても良い。例えば、ある列は３Ｐｉｘｅｌで最適化が可能と判断され、別の列は４Ｐｉｘｅｌで最適化が可能と判断された場合には、同パターンビットマップは、３と４の最小公倍数の１２Ｐｉｘｅｌの倍数では最適化でき得る可能性があるが、それ以外の値では最適化でき得ない。よって、それらの値については、同処理を省略しても良い。
【０１２４】
以上が、受信パターンビットマップをパターンの模様を崩すことなく垂直方向に最適化できるか否かの判定を行う図６のステップＳ１４０４の処理である。
【０１２５】
以下、図６のフローチャートの説明に戻る。
【０１２６】
ステップＳ１４０４の垂直方向の最適可判定処理が終了すると、プリンタドライバ２０３は、ステップＳ１４０５に処理を遷移させる。
【０１２７】
次に、ステップＳ１４０５において、プリンタドライバ２０３は、ステップＳ１４０３，Ｓ１４０４の判定の結果、受信パターンビットマップの最適化が可能であるか否かを判定する。この判定は、ステップＳ１４０３，Ｓ１４０４の結果、プリンタドライバ２０３が管理するメモリ領域（図７の７０２，７０３）に、最適化幅，最適化高さの情報が保存されているか否かで判断する。ただし、水平方向の最適化が可能であるか否かの情報や、垂直方向の最適化が可能であるか否かの情報が、プリンタドライバ２０３が管理するメモリ領域（図７の７０５）に別途保存されている場合には、そちらを用いて判断しても良い。
【０１２８】
ステップＳ１４０５で、プリンタドライバ２０３が、受信パターンビットマップの最適化が不可能（水平方向及び垂直方向のいずれにも最適化不可能）と判定した場合には、ステップＳ１４０８に処理を遷移させて、通常どおりのパターンビットマップの描画処理を行う。即ち、受信パターンビットマップをそのまま用いてプリンタ制御命令を生成し、プリンタ１５００に出力するように制御する。
【０１２９】
一方、ステップＳ１４０５で、プリンタドライバ２０３が、受信パターンビットマップの最適化が可能（水平方向、又は、垂直方向のいずれかに最適化可能）と判定した場合には、ステップＳ１４０６に処理を遷移させる。
【０１３０】
ステップＳ１４０６において、プリンタドライバ２０３は、プリンタドライバ２０３が管理するメモリ領域に保存された最適化幅、もしくは、最適化高さ、もしくは、その両方を基に、受信パターンビットマップのサイズ（幅、高さ）を設定し、パターンの模様が崩れることがないパターンビットマップ（以下、最適化パターンビットマップ）を作成する。
【０１３１】
詳細には、プリンタドライバ２０３は、プリンタドライバ２０３が管理するメモリ領域に最適化幅のみが保存され、最適化高さが保存されていない場合には、保存された最適化幅と、受信パターンビットマップの高さを備えるようなビットマップが格納可能なサイズのメモリ領域をＲＡＭ１０２に確保し、受信パターンビットマップから該サイズ部分をコピーし、新たにパターンビットマップを生成する。
【０１３２】
また、プリンタドライバ２０３は、プリンタドライバ２０３が管理するメモリ領域に最適化高さのみが保存され、最適化幅が保存されていない場合には、受信パターンビットマップの幅と前記保存された最適化高さを備えるようなビットマップが格納可能なサイズのメモリ領域をＲＡＭ１０２に確保し、受信パターンビットマップから該サイズ部分をコピーし、新たにパターンビットマップを生成する。
【０１３３】
また、プリンタドライバ２０３は、プリンタドライバ２０３が管理するメモリ領域に最適化幅及び最適化高さが保存されている場合には、保存された最適化幅と最適化高さを備えるようなビットマップが格納可能なサイズのメモリ領域をＲＡＭ１０２に確保し、受信パターンビットマップから該サイズ部分をコピーし、新たにパターンビットマップを生成する。
【０１３４】
即ち、プリンタドライバ２０３は、複数羅列することにより受信パターンイメージを構成可能な前記受信パターンイメージの部分パターンイメージを、最適化パターンイメージとして作成する。
【０１３５】
次に、ステップＳ１４０７において、プリンタドライバ２０３は、ステップＳ１４０６で作成した最適化パターンビットマップを用いてプリンタ制御命令を生成し、プリンタ１５００に出力するように制御する。なお、出力後、ステップＳ１４０６の最適化パターンビットマップ作成時に確保したメモリ領域は破棄をする。
【０１３６】
以上が、図５のステップＳ１３０３における処理に対応する。
【０１３７】
これら一連の処理（図５，図６，図８，図１０に示した処理）により、受信パターンビットマップが、プリンタ１５００で処理可能な最大のサイズを超えている場合にも、歪みやモアレを発生させることなく、ユーザが期待する印刷結果を得られるようになる。
【０１３８】
例えば、図１９の５０１で示したような２０×２０（以降、単位はＰｉｘｅｌ）の受信パターンビットマップを用いて矩形を塗りつぶす描画指示を、図５のステップＳ１３０１で受信し、図６のステップＳ１４０１で決定したプリンタ１５００で処理可能なパターンビットマップのサイズが１０×１０であった場合について考察する。
【０１３９】
この場合、図８のステップＳ１５０１及び図１０のステップＳ１６０１で算出される候補値は、幅、高さ共に１，２，４，５，１０のいずれか、もしくはその全てとなる。ここでは、その全てを候補値とする場合について示す。
【０１４０】
プリンタドライバ２０３は、図８のステップＳ１５０２及び図１０のステップＳ１６０２で取得する候補値を、値が小さい順で取得し、ステップＳ１４０３及びステップＳ１４０４により水平方向及び垂直方向で色構成の繰り返しを判定すると、図９，図１１に示すように、最適化幅及び最適化高さは共に４Ｐｉｘｅｌに決定する。
【０１４１】
図９には、最適化幅の候補値（ここでは４Ｐｉｘｅｌ）の色構成と各行の色構成を比較し、１行目から最終行まで繰り返して、最適化幅（水平方向のサイズ）を決定する（ここでは４Ｐｉｘｅｌと決定する）様子が示されている。また、図１１には、最適化高さの候補値（ここでは４Ｐｉｘｅｌ）の色構成と各列の色構成を比較し、１列目から最終列まで繰り返して、最適化高さ（垂直方向のサイズ）を決定する（ここでは４Ｐｉｘｅｌと決定する）様子が示されている。
【０１４２】
よって、プリンタドライバ２０３が、図６のステップＳ１４０６にて作成する最適化パターンビットマップは、図１２の１００１に示すように、４×４のビットマップとなる。図１２は、本発明の印刷制御装置におけるパターンビットマップの一例、及び、パターンビットマップを用いて矩形の内部を塗りつぶした際の描画結果の一例を示す模式図である。
【０１４３】
そして、プリンタドライバ２０３は、図６のステップＳ１４０７にて、この最適化パターンビットマップ（図１２の１００１）を用いてプリンタ制御命令を生成し、プリンタ１５００に出力する。
【０１４４】
すると、プリンタ１５００での印刷結果は、図１２の１００２に示すようになる。これは、図１９の５０２で示したものと一致しており、歪みやモアレを発生させることなく、ユーザが期待する印刷結果を得られることが分かる。
【０１４５】
なお、上記例では、色構成を「白」「黒」の２値で判定したがこれに限るものではなく、カラー（多値）で判定することができることは言うまでもない。
【０１４６】
以上示したように、前記描画要求がパターンイメージの描画要求であり、該描画要求されたパターンイメージのサイズが前記印刷装置が処理可能なパターンイメージサイズを超えている場合、前記印刷装置が処理可能なパターンイメージサイズを超えないような前記描画要求されたパターンイメージの部分パターンイメージを作成するものであり、さらに、この部分パターンイメージを作成する際、該部分パターンイメージを複数羅列することにより前記描画要求されたパターンイメージを構成可能な部分パターンイメージとして作成することにより、印刷装置が処理すべきパターンビットマップのサイズが印刷装置で処理可能な最大のサイズを超えている場合であっても、印刷装置で処理可能なサイズであり、且つ、印刷装置で描画した際にパターンの模様が崩れることがないようなパターンビットマップを作成して印刷装置に出力することが可能となり、結果として、歪みやモアレを発生させることなく、ユーザが期待する印刷結果を得ることが可能となる。
【０１４７】
なお、本実施形態では、図８のステップＳ１５０１，図１０のステップＳ１６０１において、最適化幅，最適化高さの候補値群を、受信パターンビットマップの幅，高さの約数としてそれぞれ算出する場合について説明したが、最適化幅，最適化高さの候補値群を、プリンタ１５００で処理可能な最大の幅，高さ以下の１以上の整数としてそれぞれ算出するようにしても本発明を実現可能なとはいうまでもない。
【０１４８】
また、上述した図５，図６，図８，図１０に示した一連の処理を、印刷が行われる際に、常に行うようにしても良いし、これら一連の処理を有効にするか無効にするかを決定するユーザインタフェース等（後述する図１６に示す）の選択手段をプリンタドライバ２０３に用意し、その設定に基づき、上記一連の処理を行うか否かを決定するように構成してもよい。なお、この実施形態は、後述する第３実施形態として示す。
【０１４９】
〔第２実施形態〕
プリンタ１５００の描画効率を考えると、パターンビットマップは、大きいサイズのほうが効率的である。しかしながら、上記第１実施形態で作成された最適化パターンビットマップは、必ずしも最大の最適化パターンビットマップを保証するものではない。候補値の選択順によっては、最大ではない最適化パターンビットマップが作成される可能性がある。よって、本実施形態では、プリンタ１５００で処理可能な最大サイズを超えない範囲で、上記第１実施形態で示した方法で作成された最適化パターンビットマップを整数倍に拡大してプリンタ１５００での描画効率をアップさせるように構成する。以下、その実施形態について説明する。
【０１５０】
まず、本発明の実施形態を示す印刷機器制御システムの構成、印刷ジョブデータを送信する際の流れ、システムの構成、本発明を適用するのに好適なプリンタドライバ２０３の基本的な処理の流れは、上記第１実施形態で示した構成と同様である。
【０１５１】
また、プリンタドライバ２０３が行う一連の処理についても、上記第１実施形態とほぼ同様であるが、相違点は、上記第１実施形態で示した図６のステップＳ１４０６とステップＳ１４０７の間に、最適化パターンビットマップを整数倍拡大する処理（図１４のＳ１７０１〜Ｓ１７０２）を行う点である。
【０１５２】
以下、図１３〜図１５を参照して、本発明の印刷制御装置の第２実施形態における制御処理手順に対応するプリンタドライバ２０３による印刷制御処理について説明する。
【０１５３】
図１３は、本発明の印刷制御装置における第５の制御処理手順の一例を示すフローチャートであり、本発明の第２実施形態における図５のステップＳ１３０３に示したパターンビットマップ最適化描画処理に対応する。なお、このフローチャートの処理は、図１に示したＣＰＵ１０１が外部メモリ１１１等に格納されるプログラム（プリンタドライバプログラム）をＲＡＭ１０２上にロードして実行することにより実現される。また、図中、Ｓ１４０１〜Ｓ１４０９は各ステップを示す。また、図６と同一のステップには同一のステップ番号を付してある。
【０１５４】
プリンタドライバ２０３は、ステップＳ１４０６で最適化パターンビットマップを作成すると、ステップＳ１４０９において、図１４に示す最適化パターンビットマップの整数倍拡大処理を実行し、ステップＳ１４０７に処理を遷移させる。
【０１５５】
図１４は、本発明の印刷制御装置における第６の制御処理手順の一例を示すフローチャートであり、図１３のステップＳ１４０９に示した最適化パターンビットマップの整数倍拡大処理に対応する。なお、このフローチャートの処理は、図１に示したＣＰＵ１０１が外部メモリ１１１等に格納されるプログラム（プリンタドライバプログラム）をＲＡＭ１０２上にロードして実行することにより実現される。また、図中、Ｓ１７０１，Ｓ１７０２は各ステップを示す。
【０１５６】
まず、ステップＳ１７０１において、プリンタドライバ２０３は、プリンタ１５００で処理可能なパターンビットマップの最大サイズを超えない範囲で、最適化パターンビットマップを整数倍拡大可能か否かを判定する。この判定は、例えば、最適化幅，最適化高さをそれぞれ、正の整数で整数倍し、プリンタ１５００で処理可能な最大幅，最大高さを超えない整数が存在するか否かを判定する。
【０１５７】
ステップＳ１７０１で、プリンタドライバ２０３が、プリンタ１５００で処理可能なパターンビットマップの最大サイズを超えない範囲で、最適化パターンビットマップを整数倍拡大可能であると判定した場合には、ステップＳ１７０２に処理を遷移させる。
【０１５８】
そして、ステップＳ１７０２において、プリンタドライバ２０３は、プリンタ１５００で処理可能な最大幅，最大高さを超えない最大の整数倍率をそれぞれ算出し、その際のピクセル幅及びピクセル高さをプリンタドライバ２０３が管理するメモリ領域（図７の７０２，７０３）にそれぞれ保存する。さらに、該保存したピクセル幅、ピクセル高さを持つ大きさに、最適化パターンビットマップを拡大するように制御し、図１３のフローチャートに処理を戻す。つまり、プリンタドライバ２０３が管理するメモリ領域に保存したピクセル幅、及び、ピクセル高さを備えるビットマップを格納可能なサイズのメモリ領域をＲＡＭ１０２に確保し、元の最適化パターンビットマップからビットマップ情報をコピーし、新たにパターンビットマップを作成する。また、コピー後、元の最適化パターンビットマップ作成時に確保したメモリ領域は破棄をする。
【０１５９】
一方、ステップＳ１７０１で、プリンタドライバ２０３が、プリンタ１５００で処理可能なパターンビットマップの最大サイズを超えない範囲で、最適化パターンビットマップを整数倍拡大不可能であると判定した場合には、そのまま図１３のフローチャートに処理を戻す。
【０１６０】
以上の処理の後、図１３のステップＳ１４０７において、プリンタドライバ２０３は、最適化パターンビットマップ（ステップＳ１７０２で新たに作成された場合はその新たな最適化パターンビットマップ、一方、ステップＳ１７０２で新たに作成されなかった場合は元の最適化パターンビットマップ）を用いてプリンタ制御命令を生成し、プリンタ１５００に出力する。また、出力後、ステップＳ１７０２で新たに最適化パターンビットマップが作成されていた場合には、該最適化パターンビットマップのために確保したメモリ領域は破棄する。
【０１６１】
これら一連の処理により、受信パターンビットマップがプリンタ１５００で処理可能な最大のサイズを超えている場合にも、歪みやモアレを発生させることなく、且つ、プリンタ１５００における描画効率を上げた上で、ユーザが期待する印刷結果を得られるように印刷制御することができる。
【０１６２】
例えば、上記第１実施形態に示した例では、図６のステップＳ１４０６にて作成される最適化パターンビットマップは、例えば、図１２の１００１の４×４のビットマップになったが、図１４のステップＳ１７０１，Ｓ１７０２により拡大処理された最適化パターンビットマップは、図１５の１２０１に示すように、８×８のビットマップになる。図１５は、本発明の第２実施形態を示す印刷制御装置で作成した最適化パターンビットマップの一例、及び、該最適化パターンビットマップを用いて矩形の内部を塗りつぶした際の描画結果の一例を示す模式図である。
【０１６３】
従って、図１３のステップＳ１４０７で、プリンタドライバ２０３が、この最適化パターンビットマップを用いてプリンタ制御命令を生成し、プリンタ１５００に出力すると、プリンタ１５００での印刷結果は、図１５の１２０２に示すようになる。これは、図１９の５０２及び図１２の１００２に示した印刷結果と一致しており、歪みやモアレを発生させることなく、且つ、プリンタ１５００における描画効率を上げた上で、ユーザが期待する印刷結果を得られることが分かる。
【０１６４】
以上示したように、印刷装置が処理すべきパターンビットマップのサイズが印刷装置で処理可能な最大のサイズを超えている場合であっても、印刷装置で処理可能なサイズであり、印刷装置で描画した際にパターンの模様が崩れることがなく、且つ、印刷装置において描画効率のよいパターンビットマップを作成して印刷装置に出力することにより、歪みやモアレを発生させることなく、ユーザが期待する印刷結果を効率良く得ることが可能となる。
【０１６５】
なお、本実施形態では、図１３のステップＳ１４０９において、ステップＳ１４０６で作成した最適化パターンビットマップを、プリンタ１５００で処理可能な最大のサイズを超えない範囲で整数倍拡大処理して、描画効率のよい最適化パターンビットマップを作成する構成について説明したが、図８のステップＳ１５０１，図１０のステップＳ１６０１において、最適化幅，最適化高さの候補値群を、プリンタ１５００で処理可能な最大の幅，高さ以下の１以上の整数としてそれぞれ算出し、さらに、図８のステップＳ１５０２，図１０のステップＳ１６０２において行う候補値の取得を、上記候補値群の中から大きい順に取得するように構成してもよい。これにより、プリンタ１５００で処理可能な最大のサイズを超えない範囲で最大の最適化パターンビットマップを作成することが可能となる。
【０１６６】
従って、印刷装置が処理すべきパターンビットマップのサイズが印刷装置で処理可能な最大のサイズを超えている場合であっても、印刷装置で処理可能なサイズであり、印刷装置で描画した際にパターンの模様が崩れることがなく、且つ、印刷装置において描画効率のよいパターンビットマップを作成して印刷装置に出力することにより、歪みやモアレを発生させることなく、ユーザが期待する印刷結果を効率良く得ることが可能となる。
【０１６７】
また、上述した一連の処理を、印刷が行われる際に、常に行うようにしても良いし、これら一連の処理を有効にするか無効にするかを決定するユーザインタフェース等（後述する図１６に示す）の選択手段をプリンタドライバ２０３に用意し、その設定に基づき、上記一連の処理を行うか否かを決定するように構成してもよい。なお、この実施形態は、後述する第３実施形態として示す。
【０１６８】
〔第３実施形態〕
本実施形態では、上記第１実施形態，第２実施形態に示した一連の処理を有効にするか無効にするかを決定するユーザインタフェース等の選択手段をプリンタドライバ２０３に用意し、その設定に基づき、上記一連の処理を行うか否かを決定するように構成する。
【０１６９】
以下、図１６，図１７を参照して、本発明の第３実施形態における制御処理手順に対応するプリンタドライバ２０３による印刷制御処理について説明する。
【０１７０】
図１６は、本発明の第３実施形態を示す印刷制御装置におけるプリンタドライバ２０３の印刷設定画面の一例を示す図である。
【０１７１】
なお、この印刷設定画面は、ユーザからのＫＢ１０９又は図示しないポインティングデバイス等の入力装置を用いた指示入力に応じて、ＣＰＵ１０１が、ＣＲＴ１１０等の表示装置に表示制御するものである。
【０１７２】
図１６において、１１０１はパターンビットマップの最適化を行うか否かを指示するチェックボックスである。ユーザはこのチェックボックス１１０１をＫＢ１０９又は図示しないポインティングデバイス等の入力装置を用いてチェック指示することにより、パターンビットマップの最適化を行う旨を設定可能である。
【０１７３】
１１０２はパターンビットマップの最適化を行う際に、転送効率を優先するか、描画効率を優先するかを排他的に選択するラジオボタンである。ユーザはこのラジオボタン１１０２をＫＢ１０９又は図示しないポインティングデバイス等の入力装置を用いて選択指示することにより、転送効率を優先するか、描画効率を優先するかのいずれかを選択設定可能である。
【０１７４】
つまり、転送効率を優先するか、描画効率を優先するかのいずれかを選択することによって、最適化パターンビットマップを作成し印刷装置へ描画出力するか、最適化パターンビットマップを整数倍して最適化パターンビットマップを再作成するかの方法を変更することが可能となる。
【０１７５】
１１０３はＯＫボタンであり、ユーザはこのＯＫボタン１１０３をＫＢ１０９又は図示しないポインティングデバイス等の入力装置を用いて押下指示することにより、本印刷設定画面による設定を有効にすることができる。なお、この設定は、ＣＰＵ１０１（プリンタドライバ２０３）により、プリンタドライバ２０３が管理するメモリ領域（図７の７０５）又は外部メモリ１１１内に格納するように制御される。
【０１７６】
図１７は、本発明の印刷制御装置における第７の制御処理手順の一例を示すフローチャートであり、本発明の第３実施形態を示すプリンタドライバ２０３による印刷制御処理に対応する。なお、このフローチャートの処理は、図１に示したＣＰＵ１０１が外部メモリ１１１等に格納されるプログラム（プリンタドライバプログラム）をＲＡＭ１０２上にロードして実行することにより実現される。また、図中、Ｓ１３０１，Ｓ１３０２，Ｓ１３０４〜Ｓ１３０８は各ステップを示す。また、図５と同一のステップには同一のステップ番号を付してある。
【０１７７】
ステップＳ１３０２において、プリンタドライバ２０３が、ステップＳ１３０１で受信した描画指示がパターンビットマップを用いるような描画指示であると判定した場合には、ステップＳ１３０５に処理を遷移させる。
【０１７８】
ステップＳ１３０５において、プリンタドライバ２０３は、プリンタドライバ２０３の設定が、パターンビットマップの最適化を行う設定となっているか否かを判定する。なお、この設定は、図１６に示した設定画面により設定され、プリンタドライバ２０３が管理するメモリ領域（図７の７０５）又は外部メモリ１１１内に格納されている。
【０１７９】
ステップＳ１３０５で、プリンタドライバ２０３が、プリンタドライバ２０３の設定がパターンビットマップの最適化を行う設定となっていないと判定した場合には、ステップＳ１３０４に処理を遷移させる。
【０１８０】
一方、ステップＳ１３０５で、プリンタドライバ２０３が、プリンタドライバ２０３の設定がパターンビットマップの最適化を行う設定となっていると判定した場合には、ステップＳ１３０６に処理を遷移させる。
【０１８１】
ステップＳ１３０６において、プリンタドライバ２０３は、プリンタドライバ２０３の設定が転送効率優先となっているか否かを判定する。なお、この設定は、図１６に示した設定画面により設定され、プリンタドライバ２０３が管理するメモリ領域（図７の７０５）又は外部メモリ１１１内に格納されている。
【０１８２】
ステップＳ１３０６で、プリンタドライバ２０３が、プリンタドライバ２０３の設定が転送効率優先となっていると判定した場合には、ステップＳ１３０７に処理を遷移させる。
【０１８３】
そして、ステップＳ１３０７において、プリンタドライバ２０３は、第１実施形態で示したパターンビットマップ最適化描画処理（第１のパターンビットマップ最適化描画処理）を実行するように制御する。即ち、図６に示したフローチャートに処理を遷移させる。
【０１８４】
一方、ステップＳ１３０６で、プリンタドライバ２０３が、プリンタドライバ２０３の設定が転送効率優先となっていない（描画効率優先となっている）と判定した場合には、ステップＳ１３０８に処理を遷移させる。
【０１８５】
そして、ステップＳ１３０８において、プリンタドライバ２０３は、第２実施形態で示した第２のパターンビットマップ最適化描画処理（第２のパターンビットマップ最適化描画処理）を実行するように制御する。即ち、図１３に示したフローチャートに処理を遷移させる。
【０１８６】
以上示したように、印刷装置が処理すべきパターンビットマップのサイズが印刷装置で処理可能な最大のサイズを超えている場合であっても、印刷装置で処理可能なサイズであり、印刷装置で描画した際にパターンの模様が崩れることがなく、且つ、印刷装置において描画効率又は転送効率のよいパターンビットマップを作成して印刷装置に出力することにより、通信トラフィックや印刷装置の描画性能等に応じて選択して、歪みやモアレを発生させることなく、ユーザが期待する印刷結果を効率良く得ることが可能となる。
【０１８７】
なお、描画効率を優先する場合には、図８のステップＳ１５０２，図１０のステップＳ１６０２において行う候補値の取得を、上記候補値群の中から大きい順に取得するように、転送効率を優先する場合には、図８のステップＳ１５０２，図１０のステップＳ１６０２において行う候補値の取得を、上記候補値群の中から小さい順に取得するように構成してもよい。
【０１８８】
即ち、描画効率を優先する場合には、複数羅列することにより受信パターンイメージを構成可能な部分パターンイメージのうち、最大の部分パターンイメージを最適化パターンイメージとして作成し、一方、描画効率を優先する場合には、複数羅列することにより受信パターンイメージを構成可能な部分パターンイメージのうち、最小の部分パターンイメージを最適化パターンイメージとして作成するように構成してもよい。
【０１８９】
なお、上記各実施形態では、上記フローチャートに示した一連の処理をプリンタドライバ２０３が行う構成について説明したが、同様の処理をアプリケーション２０１，グラフィックエンジン２０２等で行って最適化パターンビットマップをプリンタドライバ２０３に出力するように構成してもよい。また、同様の処理をプリンタ１５００内のＣＰＵ１１２が実行する印刷制御プログラムが実行して、最適化パターンビットマップに基づく印刷命令を印刷部１１７に出力するように構成してもよい。さらに、同様の処理を図２に示したプリントサーバ４０００上で行うように構成してもよい。
【０１９０】
また、プリンタドライバ等が動作する情報処理装置やプリントサーバやその他周辺機器の性能に応じて、同様の処理により、作成するパターンビットマップのサイズを調整するように構成してもよい。これにより、印刷制御装置、印刷装置、情報処理装置、及び、その他周辺機器の性能が低い場合でも印刷に要する時間を軽減することが可能となる。
【０１９１】
また、本発明は、印刷装置（印刷部）で出力する印刷データを生成する際に、印刷装置が処理すべきパターンビットマップのサイズが印刷装置で処理可能な最大のサイズを超えている場合には、印刷装置で処理可能なサイズであり、印刷装置で描画した際にパターンの模様が崩れることがないパターンビットマップを作成して印刷装置に出力する構成について説明したが、印刷装置以外の出力装置に上述したようなパターンビットマップを出力する際にも、該出力装置の性能に応じて、該出力装置で処理可能なサイズであり、該出力装置で出力した際にパターンの模様が崩れることがないパターンビットマップを作成して、該装置に出力する制御も、本発明に含まれるものである。
【０１９２】
これにより、印刷装置以外の出力装置の性能に応じて、作成するパターンビットマップのサイズを調整して、出力に要する時間や出力装置の付加を軽減することが可能となる。
【０１９３】
上述したパターンビットマップの内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
【０１９４】
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０１９５】
以下、図１８に示すメモリマップを参照して本発明に係る印刷制御装置で読み取り可能なデータ処理プログラムの構成について説明する。
【０１９６】
図１８は、本発明に係る印刷制御装置で読み取り可能な各種データ処理プログラムを格納する記録媒体（記憶媒体）のメモリマップを説明する図である。
【０１９７】
なお、特に図示しないが、記録媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報，作成者等も記憶され、かつ、プログラム読み出し側のＯＳ等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【０１９８】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、インストールするプログラムやデータが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【０１９９】
本実施形態における図５，図６，図８，図１０，図１３，図１４，図１７に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、ＣＤ−ＲＯＭやフラッシュメモリやＦＤ等の記録媒体により、あるいはネットワークを介して外部の記録媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【０２００】
以上のように、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０２０１】
この場合、記録媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【０２０２】
プログラムコードを供給するための記録媒体としては、例えば、フレキシブルディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＤＶＤ−ＲＯＭ，磁気テープ，不揮発性のメモリカード，ＲＯＭ，ＥＥＰＲＯＭ，シリコンディスク等を用いることができる。
【０２０３】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０２０４】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０２０５】
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのソフトウェアによって表されるプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０２０６】
さらに、本発明を達成するためのソフトウェアによって表されるプログラムをネットワーク上のサーバ，データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０２０７】
なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。
【図面の簡単な説明】
【０２０８】
【図１】本発明の一実施形態を示す印刷制御装置を適用可能な印刷機器制御システムの構成を説明するブロック図である。
【図２】図１に示したホストコンピュータからプリンタに印刷ジョブデータを送信する際の流れを示した主要な機能ブロック図である。
【図３】図１に示したホストコンピュータ、プリンタを適用可能な印刷システムの一例を示すシステム構成図である。
【図４】本発明の印刷制御装置における印刷を行う場合の基本的な処理の流れを示すステータス図である。
【図５】本発明の印刷制御装置における第１の制御処理手順の一例を示すフローチャートである。
【図６】本発明の印刷制御装置における第２の制御処理手順の一例を示すフローチャートである。
【図７】図１に示したＲＡＭ内に確保されたプリンタドライバ管理するメモリ領域のメモリイメージの一例を示す模式図である。
【図８】本発明の印刷制御装置における第３の制御処理手順の一例を示すフローチャートである。
【図９】本発明の印刷制御装置における色構成の繰り返しの判定方法の一例を示す模式図である。
【図１０】本発明の印刷制御装置における第４の制御処理手順の一例を示すフローチャートである。
【図１１】本発明の印刷制御装置における色構成の繰り返しの判定方法の一例を示す模式図である。
【図１２】本発明の第１実施形態を示す印刷制御装置で作成した最適化パターンビットマップの一例、及び、該最適化パターンビットマップを用いて矩形の内部を塗りつぶした際の描画結果の一例を示す模式図である。
【図１３】本発明の印刷制御装置における第５の制御処理手順の一例を示すフローチャートである。
【図１４】本発明の印刷制御装置における第６の制御処理手順の一例を示すフローチャートである。
【図１５】本発明の印刷制御装置におけるパターンビットマップの一例、及び、パターンビットマップを用いて矩形の内部を塗りつぶした際の描画結果の一例を示す模式図である。
【図１６】本発明の第３実施形態を示す印刷制御装置におけるプリンタドライバ２０３の印刷設定画面の一例を示す図である。
【図１７】本発明の印刷制御装置における第７の制御処理手順の一例を示すフローチャートである。
【図１８】本発明に係る印刷制御装置で読み取り可能な各種データ処理プログラムを格納する記録媒体（記憶媒体）のメモリマップを説明する図である。
【図１９】アプリケーションからプリンタドライバに送信されるパターンビットマップの一例を示す模式図である。
【符号の説明】
【０２０９】
１５００    プリンタ
１５０１    操作部
３０００    ホストコンピュータ（クライアントコンピュータ）
４０００    プリントサーバコンピュータ
１０１    ＣＰＵ
１０２    ＲＡＭ
１０３    ＲＯＭ
１０４    システムバス
１０５    入力コントローラ
１０６    ビデオコントローラ
１０７    メモリコントローラ
１０８    通信Ｉ／Ｆコントローラ
１０９    キーボード
１１０    ＣＲＴ（モニタ）
１１１    外部メモリ（ＨＤ、ＦＤ）
１１２    ＣＰＵ
【図１】
2007011736.tif 000003
【図２】
2007011736.tif 000004
【図３】
2007011736.tif 000005
【図４】
2007011736.tif 000006
【図５】
2007011736.tif 000007
【図６】
2007011736.tif 000008
【図７】
2007011736.tif 000009
【図８】
2007011736.tif 000010
【図９】
2007011736.tif 000011
【図１０】
2007011736.tif 000012
【図１１】
2007011736.tif 000013
【図１２】
2007011736.tif 000014
【図１３】
2007011736.tif 000015
【図１４】
2007011736.tif 000016
【図１５】
2007011736.tif 000017
【図１６】
2007011736.tif 000018
【図１７】
2007011736.tif 000019
【図１８】
2007011736.tif 000020
【図１９】
2007011736.tif 000021