(57)【要約】【課題】描画データにおける小さい文字の細い線などが描画されるようにして、文字のプロボーションを改善し、細い線が消えることを防ぐ。【解決手段】本発明の一実施形態における画像処理装置は、アプリケーションで生成された描画データを印刷装置で出力可能な形式の印刷データに変換し、当該印刷データを当該印刷装置に送信する画像処理装置であって、描画データに含まれる図形属性の描画要素を検出する検出手段と、図形属性の描画要素の描画領域が所定の領域より小さいかどうかを判定する判定手段と、図形属性の描画要素の描画領域が所定の領域より小さい場合に、所定の解像度よりも高い解像度を指定して、描画データを印刷データに変換する変換手段とを有する。【選択図】図２
2019197327.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションで生成された描画データを印刷装置で出力可能な形式の印刷データに変換し、当該印刷データを当該印刷装置に送信する画像処理装置であって、
前記描画データに含まれる図形属性の描画要素を検出する検出手段と、
前記図形属性の描画要素の描画領域が所定の領域より小さいかどうかを判定する判定手段と、
前記図形属性の描画要素の描画領域が前記所定の領域より小さい場合に、所定の解像度よりも高い解像度を指定して、前記描画データを前記印刷データに変換する変換手段と
を有することを特徴とする画像処理装置。
【請求項２】
前記変換手段は、前記描画データを含むページの描画解像度に、前記所定の解像度よりも高い解像度を指定して、前記描画データを前記印刷データに変換することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記変換手段は、前記図形属性の描画要素の描画領域に対して、前記所定の解像度よりも高い解像度を指定して、前記描画データを前記印刷データに変換することを特徴とする請求項１に記載の画像処理装置。
【請求項４】
アプリケーションで生成された描画データを印刷装置で出力可能な形式の印刷データに変換し、当該印刷データを当該印刷装置に送信する画像処理装置であって、
前記描画データに含まれる図形属性の描画要素を検出する検出手段と、
前記図形属性の描画要素の描画領域が所定の領域より小さいかどうかを判定する判定手段と、
前記図形属性の描画要素の描画領域が前記所定の領域より小さい場合に、前記図形属性の描画要素に対する太らせ処理を行い、前記描画データを前記印刷データに変換する変換手段と
を有することを特徴とする画像処理装置。
【請求項５】
前記検出手段は、ＦｉｌｌＰａｔｈ指定の描画要素を、前記図形属性の描画要素として検出することを特徴とする請求項１乃至４のいずれか１項に記載の画像処理装置。
【請求項６】
前記ＦｉｌｌＰａｔｈ指定の描画要素は、Ｐａｔｈ形式の座標値を含み、
前記判定手段は、前記Ｐａｔｈ形式の座標値に基づいて、前記図形属性の描画要素の描画領域が所定の領域より小さいかどうかを判定することを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記Ｐａｔｈ形式の座標値は、２点の座標値であり、
前記判定手段は、当該２点間のＸ方向の距離が第１の閾値より小さく、かつ、当該２点間のＹ方向の距離が第２の閾値より小さい場合に、前記図形属性の描画要素の描画領域が前記所定の領域より小さいと判定することを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記解像度の自動的な設定変更を行うかどうかをユーザーに選択させるユーザーインターフェースをさらに有することを特徴とする請求項１乃至３のいずれか１項に記載の画像処理装置。
【請求項９】
前記太らせ処理は、前記図形属性の描画要素の位置をずらした描画要素を追加することを含むことを特徴とする請求項４に記載の画像処理装置。
【請求項１０】
前記印刷データは、ＰＤＬコマンドデータであることを特徴とする請求項１乃至９のいずれか１項に記載の画像処理装置。
【請求項１１】
前記所定の領域のサイズを変更するためのユーザーインターフェースをさらに有することを特徴とする請求項１乃至１０のいずれか１項に記載の画像処理装置。
【請求項１２】
前記画像処理装置は、前記印刷装置のプリンタドライバを有し、
前記プリンタドライバは、前記検出手段および前記変換手段として機能することを特徴とする請求項１乃至１１のいずれか１項に記載の画像処理装置。
【請求項１３】
コンピュータを、請求項１乃至１２のいずれか１項に記載の画像処理装置として機能させるためのプログラム。
【請求項１４】
アプリケーションで生成された描画データを印刷装置で出力可能な形式の印刷データに変換し、当該印刷データを当該印刷装置に送信する画像処理方法であって、
前記描画データに含まれる図形属性の描画要素を検出するステップと、
前記図形属性の描画要素の描画領域が所定の領域より小さいかどうかを判定するステップと、
前記図形属性の描画要素の描画領域が前記所定の領域より小さい場合に、所定の解像度よりも高い解像度を指定して、前記描画データを前記印刷データに変換するステップと
を含むことを特徴とする画像処理方法。
【請求項１５】
アプリケーションで生成された描画データを印刷装置で出力可能な形式の印刷データに変換し、当該印刷データを当該印刷装置に送信する画像処理方法であって、
前記描画データに含まれる図形属性の描画要素を検出するステップと、
前記図形属性の描画要素の描画領域が所定の領域より小さいかどうかを判定するステップと、
前記図形属性の描画要素の描画領域が前記所定の領域より小さい場合に、前記図形属性の描画要素に対する太らせ処理を行い、前記描画データを前記印刷データに変換するステップと
を含むことを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力された描画データをプリンタで出力可能な形式の印刷データに変換する画像処理装置、画像処理方法、及びプログラムに関する。
【背景技術】
【０００２】
Ｗｉｎｄｏｗｓ（登録商標）などのＯＳ（Ｏｐｅｒａｔｉｎｇ Ｓｙｓｔｅｍ）においてアプリケーションから印刷を行う場合、プリンタドライバを介して印刷データがプリンタに送られ、印刷が実行される。この際、プリンタドライバは、アプリケーションから描画データ（例えばＧｒａｐｈｉｃｓ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ（ＧＤＩ）形式やＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ（ＸＰＳ）形式）を受け取る。次いで、プリンタドライバは、受け取った描画データをプリンタで処理可能な形式の印刷データ（例えばＰａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ（以後ＰＤＬと呼ぶ）で記述されたデータ）に変換する。高品質な印刷を行うため、プリンタドライバは、アプリケーションから受け取った描画データに含まれるオブジェクトを、文字、図形（グラフィック）、イメージといった属性ごとに分類し、各属性に応じた画像処理を用いて変換処理を行う。
【０００３】
各属性に応じた画像処理の一例を以下で説明する。オブジェクトの階調を表現する際のスクリーン処理では、文字には細かい再現を重視し、周波数の高いスクリーンを用い、図形やイメージには階調再現性を重視し、周波数の低いスクリーンを用いる。オブジェクトの色再現を行うカラーマネージメント処理で用いられるインテントは、文字は原色を重視して鮮やかになるように、図形はモニターの色に近づくように、イメージは写真の色に近づくように切り替えている。これにより、文字は鮮鋭度を高め、図形やイメージはより滑らかに印刷することができる。
【０００４】
特許文献１には、数ポイント以下の文字のプロポーションの改善、および細いライン部の再現を目的として、小さい文字や細線だけを高解像度にレンダリングする方法が開示されている。
【０００５】
上述したオブジェクト毎の処理は、一般的なアプリケーションから受け取った描画データの特徴に基づいて行われる。描画データにおいて、オブジェクトは、文字であればフォント情報と文字コード、図形であればその形状を表すＦｉｌｌＰａｔｈの描画方法、イメージであればサイズと各画素の色情報で記述される。したがって、描画データに含まれるオブジェクトの属性は、当該記述情報から容易に判別することができる。
【０００６】
特許文献２には、Ｐａｔｈ形式の座標値と塗りつぶし指示（Ｆｉｌｌ）からなるＦｉｌｌＰａｔｈの描画方法が指定されたオブジェクトであっても、図形ではなく文字として判定する方法が記載されている。この方法によると、ユーザーが文字で指定しているのにもかかわらず、フォント情報と文字コードで記述されないオブジェクトの属性を、文字属性とすることができる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００９−２７４３６６号公報
【特許文献２】特開２０１７−４１１８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述した技術では、図形の描画において、小さい文字の細い線などが描画されないことがあり、文字のプロポーションが崩れ、細い線が再現されないという課題があった。
【０００９】
本発明は、このような課題に鑑みてなされたものであり、その目的とすることころは、描画データにおける小さい文字の細い線などが描画されるようにして、文字のプロボーションを改善し、細い線が消えることを防ぐことを目的とする。
【課題を解決するための手段】
【００１０】
本発明の一実施形態における画像処理装置は、アプリケーションで生成された描画データを印刷装置で出力可能な形式の印刷データに変換し、当該印刷データを当該印刷装置に送信する画像処理装置であって、前記描画データに含まれる図形属性の描画要素を検出する検出手段と、前記図形属性の描画要素の描画領域が所定の領域より小さいかどうかを判定する判定手段と、前記図形属性の描画要素の描画領域が前記所定の領域より小さい場合に、所定の解像度よりも高い解像度を指定して、前記描画データを前記印刷データに変換する変換手段とを有する。
【発明の効果】
【００１１】
本発明によれば、描画データにおける小さい文字の細い線などが描画されるようにして文字のプロポーションを改善し、細い線が消えることを防ぐこと可能となる。
【図面の簡単な説明】
【００１２】
【図１】プリントシステムの構成例を示すブロック図である。
【図２】アプリケーションで生成された描画データをプリンタ用の印刷データに変換する処理の流れを示すフローチャートである。
【図３】アプリケーションから取得した描画データの例を示す図である。
【図４】アプリケーションから取得した描画データの例を示す図である。
【図５】アプリケーションから取得した描画データの例を示す図である。
【図６】描画データをビットマップ化した例を示す図である。
【図７】描画データをビットマップ化した例を示す図である。
【図８】図形の文字であると判定する大きさの設定ＵＩの例を示す図である。
【図９】アプリケーションで生成された描画データをプリンタ用の印刷データに変換する処理の流れを示すフローチャートである。
【図１０】アプリケーションで生成された描画データをプリンタ用の印刷データに変換する処理の流れを示すフローチャートである。
【図１１】太らせ処理の説明図である。
【図１２】解像度設定ＵＩの例を示す図である。
【図１３】ユーザー承認ＵＩの例を示す図である。
【図１４】解像度変更処理の適用範囲の説明図である。
【図１５】解像度変更処理の適用範囲の説明図である。
【発明を実施するための形態】
【００１３】
以下、添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。なお、以下の実施形態において示す構成は一例にすぎず、本発明は図示された構成に限定されるものではない。
【００１４】
（第１の実施形態）
図１は、本実施形態に係るプリントシステムの構成例を示すブロック図である。プリントシステムは、アプリケーションによって生成された描画データをプリンタで出力可能な形式の印刷データに変換してプリントする。図１に示すプリントシステム１００は、ＰＣ（パーソナルコンピュータ）１１０とプリンタ（印刷装置）１２０とを含み、両者がネットワーク１３０を介して接続されている。ネットワーク１３０は、例えば、ＬＡＮやＷＡＮ等である。
【００１５】
ＰＣ１１０は、ＣＰＵ１１１、メモリユニット１１２、大容量記憶部１１３、入力デバイス１１４、表示部１１５、及びネットワークＩ／Ｆ（インターフェース）１１６を備える。
【００１６】
ＣＰＵ１１１は、ＰＣ１１０全体の制御を司る演算装置である。ネットワークＩ／Ｆ１１６は、ＰＣ１１０を、ネットワーク１３０を介してプリンタ１２０や他の装置（不図示）に繋げ、それらと各種データをやり取りするためのインターフェースである。メモリユニット１１２は、ＣＰＵ１１１のワークエリアとしてのＲＡＭや、各種プログラムを格納するためのＲＯＭで構成される。大容量記憶部１１３は、例えばハードディスクドライブやフラッシュメモリで構成され、ＯＳやプログラム或いはアプリケーションで処理された各種データ等を格納する。入力デバイス１１４は、ユーザーが各種操作指示を行うためのキーボードやマウス等である。表示部１１５は、各種表示を行うための例えば液晶モニター等である。上記各部は、バス１１７を介して相互に接続されている。
【００１７】
ＰＣ１１０では、いわゆるプリンタドライバが、ユーザーから印刷指示を受けた描画データをプリンタ１２０に合わせた印刷データ（例えばＰＤＬデータ）に変換する処理を行なう。すなわち、プリンタドライバは、データ変換手段として機能する。プリンタドライバによって描画データから変換された印刷データは、プリンタ１２０に送られ、印刷される。このような変換処理を実現するソフトウェア（本実施形態ではプリンタドライバ）は、例えば上述の大容量記憶部１１３を含むコンピュータ可読媒体に格納されており、これがＲＡＭにロードされ、ＣＰＵ１１１が実行することで、変換処理が実現される。ＰＣ１１０は、最適な画像処理を用いて変換処理を行う画像処理装置である。
【００１８】
プリンタ１２０は、ＣＰＵ１２１、メモリユニット１２２、大容量記憶部１２３、ＵＩ（ユーザーインターフェース）部１２４、印刷部１２５、及びネットワークＩ／Ｆ１２６を備える。
【００１９】
ＣＰＵ１２１は、プリンタ１２０全体の制御を司る演算装置である。ネットワークＩ／Ｆ１２６は、プリンタ１２０を、ネットワーク１３０を介してＰＣ１１０や他の装置（不図示）に繋げ、それらと各種データをやり取りするためのインターフェースである。メモリユニット１２２は、ＣＰＵ１２１のワークエリアとしてのＲＡＭや、各種プログラムを格納するためのＲＯＭで構成される。大容量記憶部１２３は、例えばハードディスクドライブやフラッシュメモリで構成され、ＯＳやプログラム或いはＰＣ１１０から受け取った印刷データ等を格納する。ＵＩ部１２４は、各種表示を行うためのディスプレイを兼ねたタッチパネルやボタンで構成される。印刷部１２５は、紙等の記録媒体にプリント出力を行う。上記各部は、バス１２７を介して相互に接続されている。
【００２０】
プリンタ１２０において各種の動作や処理を実現するソフトウェアは、例えば上述の大容量記憶部１２３を含むコンピュータ可読媒体に格納される。ソフトウェアは、コンピュータ可読媒体からＲＡＭにロードされ、ＣＰＵ１２１がこれを実行することで、各種の動作や処理が実現される。
【００２１】
図２は、アプリケーションで生成された描画データをプリンタ１２０用の印刷データに変換する処理の流れを示すフローチャートである。この変換処理は、ＰＣ１１０にインストールされたソフトウェア（典型的にはプリンタドライバ）をＣＰＵ１１１が実行することによって実現される。あるいはまた、フローチャートにおけるステップの一部または全部の機能をＡＳＩＣや電子回路等のハードウェアで実現してもよい。各ステップの説明における記号「Ｓ」は、当該フローチャートにおけるステップを意味する。その他のフローチャートについても同様である。
【００２２】
また、図示したフローチャートは、１ページの描画データの変換処理の流れを示し、複数ページの描画データの場合は、この１ページ分の変換処理が複数ページ分繰り返される。
【００２３】
まず、Ｓ２０１において、ＣＰＵ１１１、すなわちプリンタドライバは、以降のステップにおいて描画データの１ページ分の処理に用いられるメモリ等の初期化を行う。なお、以下の説明では、各ステップをプリンタドライバが実行するものとして説明する。
【００２４】
Ｓ２０２において、プリンタドライバは、６００ｄｐｉの描画データを解析するため、ページ内で描画データをレンダリングし、ビットマップにするページ描画解像度として６００ｄｐｉの指定を行う。また、この解像度指定に伴い、ＯＳにも６００ｄｐｉの指定を行う。なお、本ステップで指定される所定の解像度は、６００ｄｐｉに限定されない。
【００２５】
Ｓ２０３において、プリンタドライバは、６００ｄｐｉの指定の元、ＦｉｌｌＰａｔｈ指定の図形の描画コマンド（すなわち、図形属性の描画要素）が、小さい文字であるかを判定するための判定領域の大きさ（Ｘ１、Ｙ１）を設定する。判定領域の大きさは、予めメモリユニット１１２に格納してある設定値に設定される。なお、設定値は固定値でもよいし、後述するようなユーザーインターフェース（ＵＩ）等を介して変更可能な値でもよい。
【００２６】
Ｓ２０４において、プリンタドライバは、大容量記憶部１１３に保存された１ページ分の描画データを取得する。この描画データは、Ｗｏｒｄ等のアプリケーション上でユーザーがプリントの実行を指示したタイミングでＯＳを通して生成され、大容量記憶部１１３にページ毎に保存されたものである。また、ＯＳは、Ｓ２０２で指定された解像度（すなわち、６００ｄｐｉ）で描画データを生成する。本実施形態では、ＧＤＩ形式の描画データが取得された場合を例に以降の説明を行う。アプリケーションから取得する描画データの詳細に関しては後述する。
【００２７】
Ｓ２０５において、プリンタドライバは、取得した1ページの描画データに含まれる文字、図形、イメージなどの一つ一つの描画コマンドが、図形のＦｉｌｌＰａｔｈ指定の描画コマンド（すなわち、図形属性の描画要素）であるかを判定する。ＦｉｌｌＰａｔｈ指定の描画コマンドである場合はＳ２０９に進み、そうでない場合はＳ２０６に進む。すなわち、本ステップでは、描画データに含まれる図形属性の描画要素が検出される。プリンタドライバは、図形属性の描画要素の検出手段として機能する。
【００２８】
Ｓ２０６において、プリンタドライバは、描画コマンドをＰＤＬコマンドに変換し、プリンタ１２０用の印刷データ（例えば、ＰＤＬコマンドデータ）を生成する。
【００２９】
Ｓ２０７において、プリンタドライバは、描画データ内に未処理の描画コマンドがあるか否か判定する。未処理の描画コマンドがあればＳ２０５に戻り、プリンタドライバは、次の描画コマンドについて処理を繰り返す。一方、描画データ内に未処理の描画コマンドがない場合（すなわち、すべての描画コマンドについて処理が完了していれば）、Ｓ２０８へ進む。
【００３０】
Ｓ２０８において、プリンタドライバは、生成された１ページ分の印刷データを、解像度として６００ｄｐｉを指定し、プリンタ１２０に送信する。
【００３１】
Ｓ２０９において、プリンタドライバは、ＦｉｌｌＰａｔｈ指定の描画コマンドのＰａｔｈ形式の座標値指定から、図形を描画する描画領域の始点（Ｘｓ，Ｙｓ）と終点（Ｘｅ，Ｙｅ）の２頂点で囲まれる四角形の領域（以降、Ｂｏｕｎｄｓ領域）を取得する。なお、この描画領域の始点および終点とは、描画領域を規定するものであり、例えば図形の描画要素に外接する矩形領域の１組の対頂点である。例えば、図３の「一」の場合、始点（Ｘｓ，Ｙｓ）は３０２、終点（Ｘｅ，Ｙｅ）は３０３、Ｂｏｕｎｄｓ領域は３０４となる。この例では、始点３０２は（Ｘｓ，Ｙｓ）＝（３１４．０、６３６６．０）、終点３０３は（Ｘｅ，Ｙｅ）＝（３６１．６３、６３６０．９４）と指定されている。このように、本ステップでは、図形属性の描画要素の描画領域（すなわち、Ｂｏｕｎｄｓ領域）が、Ｐａｔｈ形式の座標値に基づいて決定される。本実施形態では、Ｐａｔｈ形式の座標値は、上述したように２点の座標値である。
【００３２】
Ｓ２１０において、プリンタドライバは、Ｂｏｕｎｄｓ領域の始点（Ｘｓ，Ｙｓ）と終点（Ｘｅ，Ｙｅ）から、描画領域の横の大きさ（Ｘ方向の距離）ＢｏｕｎｄｓＸと、縦の大きさ（Ｙ方向の距離）ＢｏｕｎｄｓＹを求める。例えば、図３の「一」の場合、（ＢｏｕｎｄｓＸ、ＢｏｕｎｄｓＹ）＝（４７．０６２５、５．０６２５）となる。
【００３３】
Ｓ２１１において、プリンタドライバは、Ｓ２０３で設定した判定領域（Ｘ１、Ｙ１）とＳ２１０で求めたＢｏｕｎｄｓ領域（ＢｏｕｎｄｓＸ、ＢｏｕｎｄｓＹ）とを比較して、Ｂｏｕｎｄｓ領域が判定領域内にあるか判定する。プリンタドライバは、Ｂｏｕｎｄｓ領域が、所定の領域である判定領域より小さい場合、描画コマンドによって描画される文字は小さい文字であると判定し、Ｓ２１２に進む。一方、Ｂｏｕｎｄｓ領域が、所定の領域である判定領域より大きい場合、プリンタドライバは、描画コマンドによって描画される文字は小さい文字ではないと判定し、Ｓ２０６に進む。例えば、図３の「一」の場合、Ｂｏｕｎｄｓ領域３０４は判定領域３０５内にあり、すなわち、ＢｏｕｎｄｓＸ≦Ｘ１かつＢｏｕｎｄｓＹ≦Ｙ１となる。したがって、描画コマンドによって描画される文字は、小さい文字であると判定され、Ｓ２１２に進む。このように、プリンタドライバは、図形属性の描画要素の描画領域が、所定の領域より小さいかどうかを判定する判定手段として機能する。判定手段は、始点と終点との２点間のＸ方向の距離が第１の閾値（すなわち、Ｘ１）より小さく、かつ、当該２点間のＹ方向の距離が第２の閾値（すなわち、Ｙ１）より小さい場合に、対象の描画領域が所定の領域より小さいと判定する。
【００３４】
Ｓ２１２において、プリンタドライバは、Ｓ２０３で取得した６００ｄｐｉ指定の描画データを破棄する。これは、後続のステップにおいて解像度を変更して描画データを取得するためである。
【００３５】
Ｓ２１３において、プリンタドライバは、Ｓ２０１と同様に初期化を行う。
【００３６】
Ｓ２１４において、プリンタドライバは、１２００ｄｐｉの描画データを取得するため、ページ内で描画データをレンダリングし、ビットマップにするページ描画解像度として１２００ｄｐｉの指定を行う。また、この解像度指定に伴い、ＯＳにも１２００ｄｐｉの指定を行う。すなわち、プリンタドライバは、解像度を、Ｓ２０２で指定したページ解像度６００ｄｐｉより高い１２００ｄｐｉに指定する。これは、小さい文字を高解像度でレンダリングすることで、文字のプロポーションを改善し、細いライン部を再現するためである。なお、解像度６００ｄｐｉと１２００ｄｐｉの違いの詳細は、後述する。
【００３７】
Ｓ２１５において、プリンタドライバは、大容量記憶部１１３に保存された現在処理中のページの１２００ｄｐｉ指定の描画データを取得する。ここで、予め設定していた解像度６００ｄｐｉ指定を１２００ｄｐｉ指定に変更するため、図１２に示すようにプリンタドライバに解像度設定ＵＩ１２００を設けてもよい。解像度設定ＵＩ１２００により、解像度固定か、本実施形態のように解像度の自動的な設定変更を行うかどうかをユーザーに選択させることができるようにしてもよい。また、自動的に解像度を変更する際、図１３のユーザー承認ＵＩ１３００に示すように、解像度の変更をユーザーの承認後に行うようにしてもよい。
【００３８】
Ｓ２１６において、プリンタドライバは、取得した描画データの中の１つの描画コマンドをＰＤＬコマンドに変換し、プリンタ１２０用の印刷データ（例えば、ＰＤＬコマンドデータ）を生成する。
【００３９】
Ｓ２１７において、プリンタドライバは、描画データ内に未処理の描画コマンドがあるか否か判定する。未処理の描画コマンドがある場合、Ｓ２１６に戻り、プリンタドライバは、次の描画コマンドについて処理を繰り返す。一方、未処理の描画コマンドがない場合（すなわち、描画データ内のすべての描画コマンドについて処理が完了していれば）、Ｓ２１８へ進む。
【００４０】
Ｓ２１８において、プリンタドライバは、生成された１ページ分の印刷データを、解像度として１２００ｄｐｉを指定し、プリンタ１２０に送信する。
【００４１】
なお、描画データが複数ページで構成される場合は、上述した変換処理がページ数分繰り返される。
【００４２】
また、ページ内に小さい文字がない場合は、１２００ｄｐｉ指定でのプリントは行われず、従来の６００ｄｐｉ指定のプリントと同じように、Ｓ２０８において６００ｄｐｉ指定でのプリントが行われる。
【００４３】
また、図２の処理フローでは、プリンタドライバは、描画コマンドを一つずつ確認して、ＰＤＬコマンドに変換し、印刷データを生成している。このように処理を行なう場合、２つ目以降の描画コマンドで判定領域内の描画コマンドが発見されると、それまでに生成した印刷データも破棄することになってしまう。そこで、初めに１ページ分の描画コマンドを全て確認し、その結果に基づいてページ全体の印刷データを生成してもよい。すなわち、プリンタドライバは、ページ内の全ての描画コマンドを確認し、判定領域内の描画コマンドがなければ、解像度を変更しないで６００ｄｐｉ指定のページ全体の印刷データを生成する。一方、判定領域内の描画コマンドがある場合、プリンタドライバは、解像度を変更して１２００ｄｐｉ指定のページ全体の印刷データを生成する。
【００４４】
次に、図３〜図７を参照して、プリンタドライバがアプリケーションから取得する描画データに関して説明する。
【００４５】
まず、図３、図４を参照して、ＦｉｌｌＰａｔｈ指定の図形の描画データに関して説明する。
【００４６】
図３は、Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ（ＰＤＦ）で、明朝体フォントの「一」という文字を表すファイルを、アドビ・アクロバット（登録商標）のアプリケーションで出力した際のアプリケーションから指定されるデータの例を示す。ＦｉｌｌＰａｔｈ指定のＰａｔｈ指定は、線３０１で描かれた部分である。この線３０１の内部をＦｉｌｌＰａｔｈ指定の塗り値で塗りつぶすと、「一」という文字が描画される。例えば、黒の文字の場合は、塗り値は（Ｒ、Ｇ、Ｂ）＝（０、０、０）と指定される。この際、「一」という文字を描画する際の文字の最外郭の領域３０４は、ＦｉｌｌＰａｔｈ指定のＢｏｕｎｄｓ領域として指定されている。例えば、６００ｄｐｉの解像度指定の元、始点３０２は（Ｘｓ，Ｙｓ）＝（３１４．０、６３６６．０）、終点３０３は（Ｘｅ，Ｙｅ）＝（３６１．６３、６３６０．９４）と指定されている。すなわち、Ｂｏｕｎｄｓ領域の大きさを示す最外郭の領域３０４の大きさは、横方向幅のＢｏｕｎｄｓＸが４７．０６２５、縦方向幅のＢｏｕｎｄｓＹが５．０６２５となる。ＦｉｌｌＰａｔｈの小さい文字の判定領域３０５の大きさ（Ｘ１，Ｙ１）は、６００ｄｐｉの指定の元、例えば（Ｘ１、Ｙ１）＝（５０．０、５０．０）とすることができる。「一」という文字の描画領域３０４は、判定領域３０５より小さいので、図２のＳ２１１で、「一」という文字は小さな文字であると判定される。
【００４７】
図４は、Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ（ＰＤＦ）で、明朝体フォントの「二」という文字を指定しているファイルを、アドビ・アクロバットのアプリケーションで出力した際のアプリケーションから指定されるデータの例を示す。ＦｉｌｌＰａｔｈ指定のＰａｔｈ指定は、線４０１で描かれた部分と線４０２で描かれた部分である。「二」という文字を描画する際の文字の最外郭の領域、すなわち、描画領域４０５は、ＦｉｌｌＰａｔｈ指定のＢｏｕｎｄｓ領域として指定されている。例えば、６００ｄｐｉの指定の元、始点４０３は（Ｘｓ，Ｙｓ）＝（３６５．０、６３８０．０）、終点４０４は（Ｘｅ，Ｙｅ）＝（４１４．０６３、６３４２．９４）と指定されている。すなわち、Ｂｏｕｎｄｓ領域の大きさを示す最外郭の領域４０５の大きさは、横方向幅のＢｏｕｎｄｓＸが４７．０６２５、縦方向幅のＢｏｕｎｄｓＹが５．０６２５となる。ＦｉｌｌＰａｔｈの小さい文字の判定領域３０５の大きさ（Ｘ１，Ｙ１）は、６００ｄｐｉの指定の元、例えば（Ｘ１、Ｙ１）＝（５０．０、５０．０）とすることができる。「二」という文字の描画領域４０５は、判定領域３０５より小さいので、図２のＳ２１１で、「二」という文字は小さな文字であると判定される。
【００４８】
本説明においては、小さい文字の判定領域を、６００ｄｐｉの解像度で５０画素×５０画素とした。この大きさは、具体的には、明朝体のフォントを用い、文字の大きさを９ｐｔで指定し、２ページを1ページにまとめてプリントする２ｉｎ１を指定してプリントする際の文字の大きさである。文字の細い横棒の部分は、この指定では６００ｄｐｉで１ドットに満たないことが多い。
【００４９】
また、小さな文字の判定領域の大きさ（サイズ）は、固定値ではなく、図８に示すようにプリンタドライバのＵＩ８００を介して変更できるようにしてもよい。例えば、大きな文字でも細い線を含むような場合には、判定領域の大きさを「大」の設定にする。また、小さい文字でも細い線を含まないような場合には、判定領域の大きさを「小」の設定にする。こうすることで、フォントデザインの違いにも幅広く対応することができる。
【００５０】
設定値の例として、デフォルト８０３は５０画素×５０画素、最小８０１は４０画素×４０画素、小８０２は４５画素×４５画素、大８０４は５５画素×５５画素、最大８０５は６０画素×６０画素とする。なお、設定値はこれに限るものではない。
【００５１】
次に、図５を参照して、ＧＤＩ形式のＦｉｌｌＰａｔｈ描画ルールについて説明する。
【００５２】
図３、図４で示したアプリケーションからのＰａｔｈ描画指定を、プリンタ１２０でプリンタデバイスの座標系であるデバイス座標に変換する際、ＧＤＩ形式の描画ルールが適用される。
【００５３】
ＦｉｌｌＰａｔｈ描画指定の線の中を塗りつぶす際、ＧＤＩ形式の描画ルールでは、プリンタドライバは、デバイス座標の四角のうち、左上の頂点がＰａｔｈ描画指定の線で囲まれる部分に含まれている四角を塗る。例えば、図５（ａ）では、プリンタドライバは、６００ｄｐｉの指定の元、細い線５０１に関して、点５０２、５０３、５０４を左上の頂点とするデバイスの画素（四角）を３つ塗る。一方、図５（ｂ）では、６００ｄｐｉの指定の元、図５（ａ）の位置から少しずれた、図５（ａ）の細い線５０１と同じ太さの細い線５１１で囲まれる部分は、デバイスの画素（四角）の左上の頂点を含んでいないため、どの画素も塗られない。このように、同じ太さの細い線であるにも関わらず、描画指定位置がデバイスの画素のどこに位置するかによって、線が描画されたり、描画されなかったりする。例えば、図６（ａ）は、６００ｄｐｉでのＧＤＩ形式の描画ルールにしたがってデバイスの画素を塗った例を示す。「記」という文字のうち、６０１で示す部分は図５（ａ）に相当し、６０２で示す部分は図５（ｂ）に相当する。このように、ＦｉｌｌＰａｔｈ指定を６００ｄｐｉで処理すると、細い線が消えて再現できない場合がある。
【００５４】
一方、解像度を１２００ｄｐｉの指定にすると、図５（ｃ）のように、６００ｄｐｉの指定の図５（ａ）よりも、デバイスの画素が２倍に細かくなる。例えば、図５（ｃ）では、プリンタドライバは、１２００ｄｐｉの指定の元、細い線５０１に関しては、点５２１、５２２、５２３、５２４、５２５を左上の頂点とするデバイスの画素（四角）を５つ塗る。一方、図５（ｄ）では、プリンタドライバは、１２００ｄｐｉの指定の元、図５（ｃ）の位置から少しずれた、図５（ｃ）と同じ太さの細い線５１１に関しては、点５３１、５３２、５３３、５３４、５３５を左上の頂点とするデバイスの画素（四角）を５つ塗る。このように、解像度を６００ｄｐｉから１２００ｄｐｉに上げると、同じ太さの細い線を同じように塗りつぶすことが可能となる。例えば、図６（ｂ）が１２００ｄｐｉでのＧＤＩ形式の描画ルールにしたがってデバイスの画素を塗った例である。「記」という文字のうち、６１１で示す部分は図５（ｃ）に相当し、６１２で示す部分は図５（ｄ）に相当する。このように、１２００ｄｐｉの指定では、細い線が消えることなく小さい文字を再現することができる。また、小さい文字を１２００ｄｐｉで描画することで、文字のジャギーが減り、プロポーションがよくなっていることがわかる。
【００５５】
次に、文字指定での描画について説明する。
【００５６】
文字指定での描画では、フォント情報と文字コードから、上述したＧＤＩ形式の描画ルールではなく、文字用のフォントレンダラーによって文字指定をデバイス座標に変換する。フォントレンダラーでは、文字の細い線を消さないようにデバイスの画素が塗られる。そのため、６００ｄｐｉの指定でも、図７に示すように「記」という文字の細い部分７０１、７０２は、ともに消えずに描画される。このように、文字は本来、フォントレンダラーによって処理されるべきであるが、アプリケーションが文字をＦｉｌｌＰａｔｈ指定に変更してしまうと、フォントレンダラーによる処理を適用できない。
【００５７】
次に、図１４を参照して、本実施形態における解像度処理の適用範囲を説明する。ここでは、図１４（ａ）に示すようにページ１４０１の中にＦｉｌｌＰａｔｈ指定の小さい文字「二」１４０２がある場合を説明する。説明の都合上、文字「二」は大きく図示されているが小さい文字である。本実施形態では、図２のＳ２０２において、図１４（ｂ）に示すように、ページ１４０３の全体の解像度を６００ｄｐｉと指定し、その後の処理を行う。すなわち、小さい文字部分１４０４の解像度も６００ｄｐｉとして処理される。ＦｉｌｌＰａｔｈ指定の小さい文字が存在する場合は、Ｓ２１４において、図１４（ｃ）に示すように、ページ１４０５の全体の解像度を１２００ｄｐｉと指定し、その後の処理を行う。すなわち、小さい文字部分１４０６の解像度も１２００ｄｐｉとして処理される。
【００５８】
ＦｉｌｌＰａｔｈ指定の場合、６００ｄｐｉの指定では、図６（ａ）に示すように細い線６０２が消えることがある。すなわち、アプリケーションによってＦｉｌｌＰａｔｈ指定されると、文字指定された場合には再現される細い線が消えてしまうことがある。本実施形態によると、ＦｉｌｌＰａｔｈ指定の小さい文字の再現を、文字指定された場合の再現に近づけることができ、文字のプロポーションを改善し、線が消えることを防ぐことが可能となる。
【００５９】
（第２の実施形態）
第１の実施形態では、ＦｉｌｌＰａｔｈ指定の描画領域が判定領域より小さいかどうかの判定結果に応じて、ページ毎にページ全体の解像度を変更する例を説明した。本実施形態では、当該判定結果に応じて、ページ全体ではなく、描画領域の解像度を切り替える例を説明する。
【００６０】
図９は、本実施形態において、アプリケーションで生成された描画データをプリンタ１２０用の印刷データに変換する処理の流れを示すフローチャートである。なお、図２と同じステップには同じ符号を付け、詳細な説明は省略する。
【００６１】
本実施形態では、Ｓ２０５において、処理対象の描画コマンドがＦｉｌｌＰａｔｈ指定の描画コマンドである場合、Ｓ９０１に進む。
【００６２】
Ｓ９０１において、プリンタドライバは、処理対象の描画コマンドが、文字指定の描画コマンド（すなわち、文字属性の描画要素）であるかどうか判定する。文字指定の描画コマンドである場合はＳ９０２に進み、そうでない場合はＳ９０３に進む。
【００６３】
Ｓ９０２において、プリンタドライバは、Ｓ９０１で文字指定の描画コマンドと判定された部分に、１２００ｄｐｉレンダリング指定属性を付加する。また、プリンタドライバは、Ｓ２１１で小さい文字の判定領域内にあると判定されたＢｏｕｎｄｓ領域の部分に、１２００ｄｐｉレンダリング指定属性を付加する。すなわち、文字と小さい文字領域の双方の解像度を、１２００ｄｐｉとして指定する。
【００６４】
Ｓ９０３において、プリンタドライバは、描画コマンドをＰＤＬコマンドに変換し、プリンタ１２０用の印刷データ（例えば、ＰＤＬコマンドデータ）を生成する。なお、Ｓ９０２で１２００ｄｐｉレンダリング指定属性を付加された描画コマンドに関しては、１２００ｄｐｉレンダリング指定属性は付けたままとする。
【００６５】
本実施形態では、Ｓ２０７において、描画データ内に未処理の描画コマンドがない場合は、Ｓ９０４へ進む。
【００６６】
Ｓ９０４において、プリンタドライバは、生成された１ページ分の印刷データを、解像度が１２００ｄｐｉで指定された部分はそのまま、指定されてない部分は解像度を６００ｄｐｉとして、プリンタ１２０に送信する。
【００６７】
本実施形態においても、描画データが複数ページで構成される場合は、上述した変換処理がページ数分繰り返される。
【００６８】
プリンタ１２０は、ＰＤＬコマンドデータを受信すると、Ｓ９０２で指定された解像度に応じて部分的に解像度指定を変更して、ＰＤＬコマンドデータをレンダリングする。具体的なレンダリング方法は、特許文献１に記載されているので省略する。なお、特許文献１では、文字部を１２００ｄｐｉでレンダリングしているが、本実施形態では、１２００ｄｐｉレンダリング指定部を１２００ｄｐｉレンダリングする。
【００６９】
次に、図１５を参照して、本実施形態における解像度処理の適用範囲を説明する。図１５では、図１４と同じ構成要素には同じ符号を付与されている。ここでは、図１５（ａ）に示すように、ページ１４０１の中にＦｉｌｌＰａｔｈ指定の小さい文字「二」１４０２がある場合を説明する。説明の都合上、文字「二」は大きく図示されているが小さい文字である。本実施形態では、図９のＳ２０２において、図１５（ｂ）に示すように、ページ１４０３の全体の解像度を６００ｄｐｉと指定し、その後の処理を行う。すなわち、小さい文字部分１４０４の解像度も６００ｄｐｉとして処理される。ＦｉｌｌＰａｔｈ指定の小さい文字が存在する場合は、Ｓ９０３において、図１５（ｃ）に示すように、小さい文字領域１５０２の解像度を１２００ｄｐｉとして指定する。また、文字が存在する場合は、文字の領域（不図示）の解像度も、１２００ｄｐｉと指定する。すなわち、小さい文字領域１５０２及び文字の領域（不図示）の解像度を１２００ｄｐｉとして処理し、１２００ｄｐｉが指定されていない領域は、解像度を６００ｄｐｉとして処理する。
【００７０】
このように、第１の実施形態では、ページ全体の解像度を変更し、１２００ｄｐｉとして処理するが、本実施形態では、文字と小さい文字領域１５０２のみ、解像度を変更し、１２００ｄｐｉとして処理する。こうすることで、文字や小さい文字領域が少ないページでは、第１の実施形態よりも高速に処理することが可能となる。
【００７１】
以上説明したように、本実施形態によると、ＦｉｌｌＰａｔｈ指定の小さい文字の再現を、文字指定された場合の再現に近づけることができ、文字のプロポーションを改善し、線が消えることを防ぐことが可能となる。
【００７２】
（第３の実施形態）
第１の実施形態、及び第２の実施形態では、ＦｉｌｌＰａｔｈ指定の描画領域が判定領域より小さいかどうかの判定結果に応じて、解像度を切り替える例を説明した。本実施形態では、当該判定結果に応じて、太らせ処理を行う例を説明する。
【００７３】
図１０は、本実施形態において、アプリケーションで生成された描画データをプリンタ１２０用の印刷データに変換する処理の流れを示すフローチャートである。なお、図２、及び図９と同じステップには同じ符号を付け、詳細な説明は省略する。
【００７４】
本実施形態では、Ｓ２１１において、Ｂｏｕｎｄｓ領域が判定領域より小さい場合に、Ｓ１００１に進む。一方、Ｂｏｕｎｄｓ領域が文字判定領域より大きい場合は、Ｓ１００３に進む。
【００７５】
Ｓ１００１において、プリンタドライバは、ＦｉｌｌＰａｔｈ指定の描画コマンドの位置データを右方向に０．５画素シフトした描画コマンドを追加する。この時点で、処理対象の元の描画コマンドと、当該描画コマンドを右方向に０．５画素シフトした描画コマンドの２つの描画コマンドが存在する。
【００７６】
Ｓ１００２において、プリンタドライバは、ＦｉｌｌＰａｔｈ指定の描画コマンドの位置データを下方向に０．５画素シフトした描画コマンドを追加する。この時点で、上述した２つ描画コマンドと、処理対象の元の描画コマンドを下方向に０．５画素シフトした描画コマンドの３つの描画コマンドが存在する。すなわち、元のＦｉｌｌＰａｔｈ指定の描画コマンドを、右と下に位置をずらして描画し、重ねることで、元の描画コマンドを太らせている。太らせ処理の詳細は後述する。
【００７７】
Ｓ１００３において、プリンタドライバは、描画コマンドをＰＤＬコマンドに変換する。処理がＳ１００２から進んできた場合、元の描画コマンドに加えて、Ｓ１００１とＳ１００２で追加された描画コマンドも存在する。したがって、その場合、プリンタドライバは、追加された２つの描画コマンドも併せてＰＤＬコマンドに変換する。
【００７８】
本実施形態では、Ｓ２０７において、描画データ内に未処理の描画コマンドがない場合は、Ｓ１００４へ進む。
【００７９】
Ｓ１００４において、プリンタドライバは、生成された１ページ分の印刷データを、指定された解像度、すなわち６００ｄｐｉ指定で、プリンタ１２０に送信する。
【００８０】
本実施形態においても、描画データが複数ページで構成される場合は、上述した処理がページ数分繰り返される。
【００８１】
なお、上記説明では、Ｓ１００１及びＳ１００２における描画コマンドのシフト量を０．５画素としたが、この数値に限定されるものではなく、細い線が消えないような画素数であればよい。
【００８２】
次に、図１１を参照して、本実施形態における太らせ処理に関して説明する。本実施形態における太らせ方法は、特開２００４−２１９２８号公報に記載の方法である。
【００８３】
図１１の丸点１１０１は、元のＦｉｌｌＰａｔｈ指定の描画コマンドを示す。この描画コマンドのみでは、図５（ｂ）に示したように、塗られる画素がない。そこで、元の描画コマンドを右方向と下方向にずらした描画コマンドを追加して、描画コマンドを太くする。三角点１１０２は、元の描画コマンドの丸点１１０１を右方向にずらした点を示し、四角点１１０３は、元の描画コマンドの丸点１１０１を下方向にずらした点を示す。図１１において塗られた画素（網掛け部分）は、丸点１１０１と三角点１１０２と四角点１１０３で囲まれた領域に、左上の頂点が含まれる画素である。このように、細い線ではどの画素も塗られないことがあるが、太らせ処理を行うことで画素を塗ることができる。
【００８４】
以上説明したように、本実施形態によると、ＦｉｌｌＰａｔｈ指定の小さい文字の再現を、文字指定された場合の再現に近づけることができ、文字のプロポーションを改善し、線が消えることを防ぐことができる。
【００８５】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
2019197327.tif 000003
【図２】
2019197327.tif 000004
【図３】
2019197327.tif 000005
【図４】
2019197327.tif 000006
【図５】
2019197327.tif 000007
【図６】
2019197327.tif 000008
【図７】
2019197327.tif 000009
【図８】
2019197327.tif 000010
【図９】
2019197327.tif 000011
【図１０】
2019197327.tif 000012
【図１１】
2019197327.tif 000013
【図１２】
2019197327.tif 000014
【図１３】
2019197327.tif 000015
【図１４】
2019197327.tif 000016
【図１５】
2019197327.tif 000017