(57)【特許請求の範囲】
【請求項１】
情報処理装置に、
アプリケーションが生成した所定の書式のデータを読み出し、前記データの印字対象データを解析する印字対象データ解析ステップと、
互いに印字領域が重なる印字対象データを前記データから検出する重複印字対象データ検出ステップと、
互いに重複する印字対象データの種類が同じかどうかを判定する重複印字対象データ判定ステップと、
前記重複印字対象データ判定ステップで種類が異なると判定され、互いに重なる印字対象データを、別々の印字対象データに分離する印字対象データ分離ステップと、
分離された前記印字対象データを画像データに変換する画像データ変換ステップと、
前記重複印字対象データ判定ステップで種類が同じであると判定され、互いに重なる同じ種類の印字対象データの外接矩形を１つの画像データに変換するステップと、
画像データの種類に応じた画像処理を、分離された印字対象データから変換された前記画像データ、及び、前記１つの画像データに施す画像処理ステップと、
前記画像処理ステップで画像データの種類に応じた画像処理が施された前記画像データ、及び、前記１つの画像データを合成する合成ステップと、
前記画像データを印刷データに変換する印刷データ生成ステップと、
を実行させることを特徴とする印刷制御プログラム。
【請求項２】
前記画像データ変換ステップでは、
印字対象データを囲む領域を生成し、印字対象データを前記領域内の画像データに変換する、ことを特徴とする請求項１記載の印刷制御プログラム。
【請求項３】
前記重複印字対象データ検出ステップでは、互いに印字領域が重なる印字対象データの上下関係を特定し、
前記合成ステップでは、下側の印字対象データが変換された画像データの画素のうち、上側の印字対象データに対応する位置の画素値を一様な画素値に置き換え、
画素値が置き換えられた下側の画像データと、上側の画像データを合成する、
ことを特徴とする請求項１又は２記載の印刷制御プログラム。
【請求項４】
前記合成ステップでは、
上側の印字対象データに対応する位置の画素値が一様な画素値に置き換えられた下側の画像データと、上側の画像データを画素毎に比較して、画素値が大きい方の画素の画素値を優先して下側の画像データの画素の画素値に採用する、
ことを特徴とする請求項３記載の印刷制御プログラム。
【請求項５】
前記所定の書式のデータはＸＰＳ形式のデータであり、
前記印字対象データは前記データに記述されたテキスト、グラフィック又はイメージのオブジェクトであり、
画像データはビットマップデータである、
ことを特徴とする請求項１〜４いずれか1項記載の印刷制御プログラム。
【請求項６】
請求項１〜５いずれか１項記載の印刷制御プログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【請求項７】
請求項１〜５いずれか１項記載の印刷制御プログラムを記憶したコンピュータ読み取り可能な記憶装置、を有することを特徴とする印刷装置。
【請求項８】
請求項１〜５いずれか１項記載の印刷制御プログラムを記憶した情報処理装置と、
印刷装置と、を有することを特徴とする印刷システム。
【請求項９】
アプリケーションが生成した所定の書式のデータを読み出し、前記データの印字対象データを解析する印字対象データ解析手段と、
互いに印字領域が重なる印字対象データを前記データから検出する重複印字対象データ検出手段と、
互いに重複する印字対象データの種類が同じかどうかを判定する重複印字対象データ判定手段と、
前記重複印字対象データ検出手段が種類が異なると判定し、互いに重なる印字対象データを、別々の前記印字対象データに分離し、前記重複印字対象データ検出手段が種類が同じであると判定し、互いに重なる同じ種類の印字対象データの外接矩形を１つの画像データに変換する印字対象データ分離手段と、
分離された前記印字対象データを画像データに変換する画像データ変換手段と、
画像データの種類に応じた画像処理を分離された印字対象データから変換された前記画像データ、及び、前記１つの画像データに施す画像処理手段と、
前記画像処理手段が画像データの種類に応じた画像処理を施した前記画像データ、及び、前記１つの画像データを合成する合成手段と、
画像データを印刷データに変換する印刷データ生成手段と、
を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションプログラムが生成するデータをＰＤＬデータに変換する印刷制御プログラム、情報処理装置、記憶媒体、印刷装置及び印刷システムに関する。
【背景技術】
【０００２】
ＰＣ（Personal Computer）等からプリンタに文書データの印刷を要求する場合、ＰＣは文書データを中間ファイルに変換し、中間ファイルをラスタデータに変換すると共にプリンタが解釈できるＰＤＬデータを生成する等の手順を実行している。
【０００３】
ＰＤＬデータを生成するプログラムは一般にプリンタドライバと呼ばれ、プリンタドライバが文書データをラスタライズする際に、オブジェクトの種類毎に画像処理方法を変更することによって印字品質を高める技術が知られている。これにより、オブジェクトの種類（テキスト、グラフィック、イメージ等）に応じて適切な画像処理を施すことができる。
【０００４】
プリンタドライバは、例えば明確なエッジが必要とされるテキスト、グラフィクスのオブジェクトに対して６００ｄｐｉのラスタ処理を、階調表現の必要なイメージのオブジェクトには３００ｄｐｉのラスタ処理を施すことができる。
【０００５】
しかしながら、文書データでは異なるオブジェクトが重なることが少なくなく、このような場合に重なったオブジェクトに対し、どのようにラスタ処理を施すかという課題が残る。
【０００６】
例えば、互いに重複するオブジェクトが存在する場合に、ラスタライザを切り替える技術が提案されている（例えば、特許文献１参照。）。特許文献１には、重複するオブジェクトの属性に基づいて、重複するオブジェクトを処理するラスタライザを選択する技術が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に開示された技術は、オブジェクト同士が重複した領域毎に１つのラスタライザでラスタライズするため、印字品質が低下する画素が存在するという問題がある。例えば、イメージオブジェクト上にテキストが記述されている場合、文字と文字の間にイメージオブジェクトの画素が存在しても、プリンタドライバが文字と文字の間の背景の画素に、文字用の画像処理を施してしまう。
【０００８】
本発明は、オブジェクト毎に適切なラスタライズ処理を行う際、異なるオブジェクト同士が重複した領域の印字品質を向上させることができる印刷制御プログラム、情報処理装置、記憶媒体、印刷装置及び印刷システムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、情報処理装置に、アプリケーションが生成した所定の書式のデータ（例えば、ＸＰＳファイル）を読み出し、前記データの印字対象データ（例えば、オブジェクト）を解析する印字対象データ解析ステップと、互いに印字領域が重なる印字対象データを前記データから検出する重複印字対象データ検出ステップと、互いに重複する印字対象データの種類が同じかどうかを判定する重複印字対象データ判定ステップと、前記重複印字対象データ判定ステップで種類が異なると判定され、互いに重なる印字対象データを、別々の印字対象データに分離する印字対象データ分離ステップと、分離された前記印字対象データを画像データ（例えば、ビットマップデータ）に変換する画像データ変換ステップと、  前記重複印字対象データ判定ステップで種類が同じであると判定され、互いに重なる同じ種類の印字対象データの外接矩形を１つの画像データに変換するステップと、画像データの種類に応じた画像処理を、分離された印字対象データから変換された前記画像データ、及び、前記１つの画像データに施す画像処理ステップと、前記画像処理ステップで画像データの種類に応じた画像処理が施された前記画像データ、及び、前記１つの画像データを合成する合成ステップと、前記画像データを印刷データ（例えば、ＰＤＬデータ）に変換する印刷データ生成ステップと、を実行させることを特徴とする印刷制御プログラムを提供する。
【発明の効果】
【００１０】
オブジェクト毎に適切なラスタライズ処理を行う際、異なるオブジェクト同士が重複した領域の印字品質を向上させることができる印刷制御プログラムを提供できる。
【図面の簡単な説明】
【００１１】
【図１】印刷システムの一例を示す図である。
【図２】ＰＣのハードウェア構成図の一例である。
【図３】ＭＦＰのハードウェア構成図の一例である。
【図４】ＰＣの機能ブロック図の一例である。
【図５】プリンタドライバの機能ブロック図の一例である。
【図６】プリンタドライバが1ページ分のＰＤＬデータを生成するまでの手順を示すフローチャート図の一例である。
【図７】ＸＰＳファイルのページ情報の一例を示す図である。
【図８】オブジェクトの重複の判定を説明する図の一例である。
【図９】ページ情報の処理の手順を模式的に示す図の一例である。
【図１０】互いに重なる同じ種類のオブジェクトの一例を示す図である。
【図１１】プリンタドライバの機能ブロック図の一例である（実施例２）。
【図１２】プリンタドライバとＭＦＰが1ページ分のＰＤＬデータを生成するまでの手順を示すフローチャート図の一例である。
【図１３】プリンタドライバの機能ブロック図の一例である（実施例３）。
【発明を実施するための形態】
【００１２】
以下、本発明を実施するための形態について図面を参照しながら実施例を挙げて説明する。
【実施例１】
【００１３】
図１は、印刷システム４００の一例を示す図である。ＰＣ（Personal Computer）１００とＭＦＰ（Multi Function Peripheral）２００がネットワーク３００を介して接続されている。
【００１４】
ＰＣ１００がユーザの操作を受け付け、例えば何らかのアプリケーションプログラムがプリンタドライバに文書データの印刷を要求する。本実施例では、「ＸＰＳ Ｐｒｉｎｔ Ｐａｔｈ」と呼ばれる印刷時のデータ変換手順を利用して中間ファイルを生成する。「ＸＰＳ Ｐｒｉｎｔ  Ｐａｔｈ」で生成された中間ファイルを、以下、「ＸＰＳ(XML Paper Specification)ファイル」という。
【００１５】
アプリケーションプログラムが、図１（ａ）のような文書データを生成した場合を例に本実施形態のプリンタドライバの処理手順の概略を説明する。図１（ａ）は、一様な画素値の背景に、一様な画素値の文字が記述された文書データである。したがって、テキストオブジェクト（文字）とグラフィックオブジェクト（背景）とが重複している。
【００１６】
このような文書データに対しプリンタドライバは、ページ毎に含まれるオブジェクトの種類とオブジェクト毎の重複関係をあらかじめ解析する。図１（ａ）ではグラフィックオブジェクトの上にテキストオブジェクトが重複していることが解析される。
【００１７】
次にプリンタドライバは、画像処理が異なるオブジェクトを互いに分離して、別々のページ情報を生成し、それぞれを別々にラスタライズする。これにより、図１（ｂ）に示すように、テキストのみのラスタデータが生成され、グラフィックのみのラスタデータが生成される。
【００１８】
そして、プリンタドライバは、各々のラスタデータに対して元のオブジェクトの種類に基づき印字品質が高まるような画像処理を行う。したがって、オブジェクト毎に印字品質を最適化することができる。
【００１９】
次に、プリンタドライバは、解析した重複関係にしたがい、テキストオブジェクトのラスタデータとグラフィックオブジェクトのラスタデータを合成する。合成するため、プリンタドライバは、図１（ｃ）に示すように、グラフィックオブジェクトのラスタデータを文字の形状に白抜きする。
【００２０】
プリンタドライバは、グラフィックオブジェクトのラスデータとテキストのラスタデータを合成し、図１（ｄ）のようなＰＤＬ（Page Description Language）データを生成する。ＰＤＬデータはＭＦＰ２００に送信される。
【００２１】
このように、本実施例のプリンタドライバは、異なるオブジェクトが重複している領域において、画素毎にオブジェクトに適した画像処理を施すことで、オブジェクトが重複している領域の印字品質を向上させることができる。
【００２２】
なお、本実施例ではＸＰＳファイルを中間ファイルとして説明するが、ＸＰＳファイルのようにオブジェクトの種類や位置を解析可能な所定の書式の中間ファイルであれば、本実施例のＰＤＬデータの生成方法を適用できる。
【００２３】
〔ハードウェア構成〕
図２は、ＰＣ１００のハードウェア構成図の一例である。ＰＣ１００は、それぞれバスで相互に接続されているＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、外部Ｉ／Ｆ１４、通信装置１５、入力装置１６、表示制御部１７及び記憶装置１８を有する。ＣＰＵ１１は、ＯＳ（Operating  System）１０、アプリケーションプログラム３１、及び、プリンタドライバ３０を記憶装置１８から読み出して、ＲＡＭ１３を作業メモリにして実行する。
【００２４】
アプリケーションプログラム３１は、ＭＦＰ２００に印刷要求するものであればよく、ＰＣ１００上で実行可能なほぼ全てのアプリケーションプログラムが相当する。典型的には、例えば、ワープロソフトウェア、画像作成・編集・加工ソフトウエア、表計算ソフトウェア、Ｗｅｂブラウザ等である。また、ＯＳ１０は、Microsoft社のWindows（登録商標）であるとするが、「ＸＰＳ Ｐｒｉｎｔ Ｐａｔｈ」の印刷環境を提供可能なＯＳであればＵＮＩＸ（登録商標）、ＬＩＮＵＸ（登録商標）等でもよい。
【００２５】
ＲＡＭ１３は必要なデータを一時保管する作業メモリ（主記憶メモリ）になり、ＲＯＭ１２にはＢＩＯＳや初期設定されたデータ、プログラムが記憶されている。
【００２６】
外部Ｉ／Ｆ１４はＵＳＢケーブル等のケーブルや、可搬型の記憶媒体２０を装着するインタフェースである。記憶媒体２０は、ＵＳＢメモリ等のフラッシュメモリ、ＣＤ−ＲＯＭ等の光記憶媒体等である。
【００２７】
通信装置１５は、ＬＡＮカードやイーサネット（登録商標）カードと呼ばれ、ＣＰＵ１１からの指示によりＭＰＦ２００にパケットデータ（本実施形態では主にＰＤＬデータ）を送信する。
【００２８】
入力装置１６は、キーボード、マウスなど、ユーザの様々な操作指示を受け付けるユーザインターフェイスである。タッチパネルや音声入力装置を入力装置とすることもできる。表示制御部１７は、アプリケーションプログラム３１が指示する画面情報に基づき所定の解像度や色数等でディスプレイ１９の描画を制御する。ディスプレイ１９は、液晶や有機ＥＬなどのＦＰＤ（Ｆｌａｔ  Ｐａｎｅｌ  Ｄｉｓｐｌａｙ）である。
【００２９】
記憶装置１８は、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ Ｄｒｉｖｅ）やフラッシュメモリなどの不揮発メモリを実体とし、ＯＳ１０、アプリケーションプログラム３１、及び、プリンタドライバ３０を記憶している。アプリケーションプログラム３１やプリンタドライバ３０は、記憶媒体２０に記録された状態又は不図示のサーバからダウンロードされる態様で配布される。
【００３０】
図３は、ＭＦＰ２００のハードウェア構成図の一例を示す。ＭＦＰ２００は画像形成機能を備えていればよく、プリンタ、複写機又はＦＡＸ装置のいずれでもよい。ＭＦＰ２００は、内部バスにて接続されたＣＰＵ５１、ＲＯＭ５２、ＲＡＭ５３、外部Ｉ／Ｆ５４、通信カード５５、パネル制御部５６、スキャナエンジン制御部５７、プロッタエンジン制御部５８、ＦＡＸエンジン制御部５９及び記憶装置６１を有する。
【００３１】
ＣＰＵ５１は、記憶装置６１又はＲＯＭ５２に記憶されたプログラムを、ＲＡＭ５３を作業メモリとして実行することでＭＦＰ２００の全体を制御する。外部Ｉ／Ｆ５４はＵＳＢ等のケーブルや記憶媒体２０を装着するインタフェースである。記憶媒体２０は、ＵＳＢメモリ等のフラッシュメモリ、ＣＤ−ＲＯＭ等の光記憶媒体等である。
【００３２】
通信カード５５は、ＬＡＮカードやイーサネット（登録商標）カードと呼ばれ、ＣＰＵ５１からの指示によりＰＣ１００にパケットデータを送信し、また、ＰＣ１００からパケットデータ（本実施形態では主にＰＤＬデータ）を受信する。
【００３３】
パネル制御部５６は、操作パネル６２にＵＩを表示し、ＵＩのソフトキーやハード的なキーの操作を受け付ける。スキャナエンジン制御部５８は、ユーザが操作パネル６２から設定した解像度などの読み取り条件を受け付け、読み取り条件に基づきスキャナエンジン６３を制御する。スキャナエンジン６３は、コンタクトガラスに載置された原稿を光学的に走査して、その反射光をＡ／Ｄ変換して画像処理を施し、所定の解像度のデジタルデータ（以下、画像データという）を生成する。
【００３４】
プロッタエンジン制御部５８は、ユーザが操作パネル６２から設定した印刷枚数などの印刷条件を受け付け、印刷条件に基づきプロッタエンジン６４を制御する。プロッタエンジン６４は、例えばタンデム型の感光ドラムを有し、上記の画像データやＰＣ１００から受信したＰＤＬデータに基づきレーザビームを変調し感光ドラムを走査して潜像を形成する。潜像にトナーを付着して現像した１ページ毎の画像を用紙に熱と圧力で転写する。
【００３５】
ＦＡＸエンジン制御部５９は、ユーザが設定した宛先（ＦＡＸ番号、電子メールアドレス等）などの送信条件を受け付け、送信条件に基づきＦＡＸエンジン６５を制御する。ＦＡＸエンジン６５は、通信カードを介してネットワーク３００に接続し例えばＴ.３７，Ｔ.３８の規格に対応した通信手順、又は、ＮＣＵ（Network Control Unit）を介して公衆通信網に接続し例えばＧ３、Ｇ４規格に対応した通信手順、に従い画像データの送受信を行う。また、ＭＦＰ２００の電源がＯＦＦのときに画像データを受信しても、プロッタエンジン６４を起動して画像データを用紙に印刷することができる。
【００３６】
記憶装置６１は、例えばＨＤＤやフラッシュメモリなど、書き換え可能な不揮発メモリである。記憶装置６１には、ＣＰＵが実行するプログラム、フォントデータ、画像データ及びＰＤＬデータが記憶されている。
【００３７】
また、記憶装置６１には、プリンタドライバ３０が記憶されている。このプリンタドライバ３０は、ＰＣ１００が記憶するものと同じものである。すなわち、ＰＣ１００側でＸＰＳファイルを生成した段階で、ＸＰＳファイルをＭＦＰ２００に送信しても、ＭＦＰ２００のプリンタドライバ３０がＰＣ１００と同様にＰＤＬデータを生成することができる。プリンタドライバ３０は、ＭＦＰ２００の出荷時に記憶装置６１に記憶されていてもよいし、ＭＦＰ２００の出荷後に、記憶媒体２０に記憶された状態又はネットワーク３００上の不図示のサーバから配布されてもよい。
【００３８】
〔機能構成〕
図４は、本実施例のＰＣ１００の機能ブロック図の一例を示す。図４において図２と同一部には同一の符号を付しその説明は省略する。ＰＣ１００は、スプーラ３２及びハードウェアインタフェース３３等を有する。
【００３９】
ＰＣ１００は、ＯＳ１０上でアプリケーションプログラム３１を実行し、ＯＳ１０が提供するＸＰＳドライバがＸＰＳファイルを生成する。
【００４０】
スプーラ３２は、ＯＳの印刷機能を管理するソフトウエアモジュールであり、プリンタドライバ３０は、このスプーラ３２の一部として動作する。図では複数のプリンタドライバ３０が表示されているが、これは、オブジェクトに適切な画像処理を施すプリンタドライバ３０を意味したもので、プリンタドライバ３０が必ずしも複数個存在している必要はない。すなわち、１つのプリンタドライバ３０が各オブジェクトの種類毎に適切な画像処理を行うことができればよい。
【００４１】
ハードウェアインタフェース３３は、パラレルＩ／Ｆ２１、ＵＳＢＩ／Ｆ２２、及び、ネットワークＩ／Ｆ２３、を有する。パラレルＩ／Ｆ２１は、IEEE1284仕様に基づく入出力インタフェースである。ＵＳＢＩ／Ｆ２２はUSB1.0〜3.00仕様に基づく入出力インタフェースである。ネットワークＩ／Ｆ２３は、図２の通信装置１５に相当しイーサネット（登録商標）などの入出力インタフェースである。
【００４２】
図５は、プリンタドライバ３０の機能ブロック図の一例を示す。ユーザが入力装置１６を操作して印刷操作をＰＣ１００に入力すると、ＯＳ１０等の機能の一部が、文書データ及び印刷条件に基づきＸＰＳファイルを生成する。具体的には、ＯＳ１０等の機能の一部とは「ＸＰＳ  Ｐｒｉｎｔ  Ｐａｔｈ」において「ＸＰＳドキュメントライタ」と呼ばれるプログラムが相当する。「ＸＰＳドキュメントライタ」は、所定のＯＳ（例えば、Ｗｉｎｄｏｗｓ（登録商標）７、ＶＩＳＴＡ等）に付属されるか、又は、無償若しくは有償で市販されている。この機能は、ＯＳと一体とみなすことも、ＯＳとは別のアプリケーションとみなすこともできる。
【００４３】
生成されたＸＰＳファイルは、例えば記憶装置１８やＲＡＭ１３を実体とするＸＰＳファイル記憶部４１に記憶される。
【００４４】
プリンタドライバ３０の各機能はＸＰＳファイル記憶部４１に記憶されたＸＰＳファイルを読み出し以下の処理を行う。なお、プリンタドライバ３０は、「ＸＰＳ  Ｐｒｉｎｔ  Ｐａｔｈ」においてＸＰＳドライバと呼ばれるが、本実施例ではプリンタドライバ３０と称する。
【００４５】
描画オブジェクト重なり箇所判定部４２はＸＰＳファイルに含まれるページ情報を解析して、オブジェクト間に重なりが含まれているかどうか判定する。また、オブジェクトが重なっている場合、描画オブジェクト重なり箇所判定部４２は、重なっている領域、及び、オブジェクトの上下関係を特定する。描画オブジェクト重なり箇所判定部４２は、例えば、ページ内で一意のオブジェクトＩＤを各オブジェクトに付して、互いに重複するオブジェクトＩＤの組みとそれらの上下関係をＲＡＭ１３等に記憶する。
【００４６】
なお、本実施例のオブジェクトとは、ＸＰＳファイルに描画命令が記述される、テキスト、イメージ、又は、グラフィックをいうものとする。オブジェクトの具体例については後述する。
【００４７】
描画オブジェクト解析部４３は、ＸＰＳファイルのＸＭＬ形式の各ページ情報を解析し、ページ内の各オブジェクトに対して、
・描画範囲（矩形範囲）
・オブジェクトの種類（テキスト/グラフィック/イメージ）
を判定する。
【００４８】
描画オブジェクト分解部４４は、描画オブジェクトに重なりがある場合、そのオブジェクトを別々に描画するために、それぞれのオブジェクトを分離して、別々のページ情報を生成する。
【００４９】
矩形範囲ラスタライズ部４５は、オブジェクトの例えば外接矩形の矩形範囲にオブジェクトをラスタライズする。なお、「ＸＰＳ  Ｐｒｉｎｔ  Ｐａｔｈ」のラスタライザは、ＸＰＳドライバの「XPS Rasterize Service」と呼ばれる。
【００５０】
ラスタライズデータ画像処理部４６は、矩形範囲ラスタライズ部４５がラスタライズしたラスタデータのオブジェクトの種類に応じて、画像処理を施す。すなわち、ラスタデータが、テキストオブジェクトから生成したものならテキストオブジェクト用のカラーマッチング/ディザデータを適用し、イメージオブジェクトから生成されたものなら階調性が優先されるようなカラーマッチング/ディザーデータを適用してラスタデータを加工する。
【００５１】
ラスタライズデータ合成部４７は、重ね合わせの順序を考慮してマスクデータの生成やラスタデータに白抜き等を施し、ラスタライズデータ画像処理部４６が画像処理を施したラスタデータを合成する。これにより、互いに重複したオブジェクトから１つのラスタデータが生成される。
【００５２】
コマンド変換部４８は、ラスタライズデータ合成部４７が合成したラスタデータをＰＤＬコマンドに変換してＭＦＰ２００に送信する。
【００５３】
〔動作手順〕
図６を用いて、プリンタドライバ３０が1ページ分のＰＤＬデータを生成するまでの手順について説明する。文書データに複数のページが含まれる場合、プリンタドライバ３０はこの手順を各ページに対し繰り返す。
【００５４】
・Ｓ１０
まず、プリンタドライバ３０は、ＸＰＳファイル記憶部４１からＸＰＳファイルを読み出し、1ページごとにページの構成情報を解析する。ＸＰＳファイルは一般にＺＩＰ圧縮されているので、プリンタドライバ３０はこれを展開して、ＸＰＳファイルの階層構造を復元する。ＸＰＳファイルの階層構造は仕様で決まっており、例えば、ルートディレクトリの「＿ｒｅｌｓ」というファイルに、一つの文書データの構成情報（階層構造のどこにページ情報やイメージデータが格納されているか等）が格納されている。
【００５５】
また、ルートディレクトリの「Ｄｏｃｕｍｅｎｔｓ」というファイルに、一つの文書データの各ページの構成情報と各ページのページ情報（テキストオブジェクトとグラフィックオブジェクト）が格納されている。ページ情報には、各ページの構成を再現するために必要な情報が格納されている。
【００５６】
また、例えば、ルートディレクトリの「Ｒｅｓｕｒｃｅｓ」というファイルに、各ページに含まれるイメージオブジェクトが格納されている。
【００５７】
プリンタドライバ３０は、ＸＰＳファイルの各種の構成情報を参照して1ページ目から順番に、ページ情報にオブジェクトが含まれているか否かを判定する。
【００５８】
図７は、ＸＰＳファイルのページ情報の一例を示す図である。ｌ１〜ｌ２の「FixedPage Width="1122.56" Height="793.76" 」という記述は、あるページのサイズを示す記述である。「Width=1122.56、Height=793.76」がページの幅と高さを示している。また、「xmlns=http://schemas.microsoft.com/xps/2005/06」は名前空間を、「 xml:lang="und"＞」はそのページの言語を指定する記述で"und"は"Undetermined"を意味する。
【００５９】
l３の「"Path Data＜"F1 M 186.08,261.92 L 268.64,261.92 268.64,434.4 186.08, 434.4 z" Fill="#ff8eb4e3" /＞」は、座標 (186.08, 261.92)から(268.64,261.92)まで線を引き（Ｍ）、続いて(268.64,434.4)、さらに(186.08, 434.4)まで線を引くという命令である。すなわち、４つの点を結ぶ線を意味する。４つの点があることから四角形が描画されることが分かる。「Fill="#ff8eb4e3"」はラインの内側の塗りつぶしの色を指定する記述であり、水色〜紫系の色が指定されている。
【００６０】
l４〜l８の「＜Glyphs Fill="#ffff0000" 〜  UnicodeString="あいうえ" /＞」は、文字（グリフ）の描画命令である。「＜Glyphs Fill="#ffff0000"」は文字の色を赤色に指定する記述である。「FontUri="/Documents/1/Resources/Fonts/5A67CD7B-71C3-44BD-8FE4-12190CD35A84.odttf"」はフォントデータを指定し、ＸＰＳファイルに含まれるResourcesファイルのフォントを指定する記述である。「FontRenderingEmSize="42.7183"」は文字サイズ（ポイント数）を、「StyleSimulations="None" 」は太字指定などがないことを、「OriginX="195.84" OriginY="370.72"」は文字列「あいうえ」の最初の文字の位置を、それぞれ指定する命令である。「Indices="16901;16903,94;16905;16907」はindices属性（レンダリング）を意味し、文字毎に幅、上下方向のオフセット、左右方向のオフセット等を指定することができる。１６９０１〜７は「あいうえ」のいずれかの文字を特定するインデックスで、２番目の文字「い」だけ幅が指定されている。「UnicodeString="あいうえ"」はテキストオブジェクトの具体的な文字列である。
【００６１】
したがって、「Path」タグは、ページにラインや矩形、円形などのグラフィックオブジェクトが含まれていることを、「Glyphs」のタグはテキストオブジェクトがページに含まれていることを意味する。この他、イメージオブジェクト（ｐｎｇ、ｇｉｆ、ｊｐｅｇ等の所定のフォーマットの画像データ）も決まったタグにより指定される。
【００６２】
なお、オブジェクトが互いに重複した場合のオブジェクトの上下関係は、ＸＰＳファイルの記述順として決まっている。すなわち、先に記述されたオブジェクトは、後に記述されたオブジェクトよりも下になる。
【００６３】
このように各オブジェクトの位置と大きさがページ情報に記述されているので、プリンタドライバ３０はページ情報により各オブジェクトの重複を検出することができる。
図８は、重複の判定を説明する図の一例である。描画オブジェクト重なり箇所判定部４２は、例えば、各オブジェクトの外接矩形rect１の左上頂点の位置P1と右下頂点の位置P2を特定し、rect２の左上頂点の位置Q1と右下頂点の位置Q2を特定する。図7の四角形と文字列のオブジェクトを例にすれば、P1は座標 (186.08, 434.4) 、P2は座標（268.64,261.92)であり、Q1は座標（195.84，370.72）、Q2は座標（195.84＋57，195.84+57×4）である（解像度を96dpiとして、ポイント数である42.7183を1文字のドット数"57"に変換した）。
【００６４】
２つの外接矩形rect１, rect２のうちどちらか一方の左上頂点（ここではQ1とする）のｘ座標がP1とP2のｘ座標内に含まれ、かつ、Q1のｙ座標がP1とP2のｙ座標内に含まれる場合、重複していると判定される。
【００６５】
図６に戻り、ページ情報にオブジェクトが含まれていない場合（Ｓ１０のＮｏ）、オブジェクトの重複を判定する必要がないので図6の手順は終了する。
【００６６】
・Ｓ２０
ページ情報にオブジェクトが含まれている場合（Ｓ１０のＹｅｓ）、描画オブジェクト重なり箇所判定部４２は、現在、着目しているオブジェクトと重なるオブジェクトがあるか否かを判定する。全てのオブジェクトに対して以下の処理が繰り返される。
【００６７】
描画オブジェクト重なり箇所判定部４２は、例えばＸＰＳファイルの上から順に出現するオブジェクトを１つ特定し、その着目しているオブジェクトと重なるオブジェクトがページ情報に記述されているか否かを判定する。図８にて説明したように、図７のＸＰＳファイルでは、四角形のグラフィックオブジェクトとテキストオブジェクトが重複していると判定される。
【００６８】
・Ｓ３０
着目しているオブジェクトと重なるオブジェクトがあると判定された場合（Ｓ３０のＹｅｓ）、描画オブジェクト解析部４３は２つのオブジェクトの種類が同じか否かを判定する。ＸＰＳファイルのタグ情報ではタグによりオブジェクトの種類を判定できる。なおこの判定は、重複するオブジェクトの種類が同じか否かで画像処理の内容が変わるためである。
【００６９】
・Ｓ４０
重複する２つのオブジェクトの種類が異なる場合（Ｓ３０のＹｅｓ）、描画オブジェクト分解部４４は、重なり合うオブジェクトを各々取り出し、別ページのページ情報を作成する。
【００７０】
すなわち、描画オブジェクト分解部４４は、グラフィックオブジェクトのみが含まれているページ情報とテキストオブジェクトのみが含まれているページ情報（例えば、ＸＰＳファイルの記述を抜き出す）をそれぞれ生成する。こうすることで、重複した２つのオブジェクトを分離できる。例えば、
ページ情報Ａ＝  「FixedPage Width="1122.56" Height="793.76" xmlns=http://schemas.microsoft.com/xps/2005/06  xml:lang="und"＞  
<"Path Data="F1 M 186.08,261.92 L 268.64,261.92 268.64,434.4 186.08, 434.4 z" Fill="#ff8eb4e3" /＞  ＜/FixedPag＞  」と
ページ情報Ｂ＝「FixedPage Width="1122.56" Height="793.76" xmlns=http://schemas.microsoft.com/xps/2005/06  xml:lang="und"＞  <Glyphs Fill="#ffff0000" FontUri="/Documents/1/Resources/Fonts/2926AEC1-C0AC-4156-BF68-4E1385A001E3.odttf" FontRenderingEmSize="42.7183" StyleSimulations="None" OriginX="195.84" OriginY="370.72" Indices="16901;16903,94;16905;16907" UnicodeString="あいうえ" /＞  ＜/FixedPage＞」という2つのページ情報が生成される。
【００７１】
図９は、ページ情報の処理の手順を模式的に示す図の一例である。図９（ａ）は図7のＸＰＳファイルの文書データを模式的に示す。これまで説明したように、４角形のグラフィックオブジェクトとテキストオブジェクト（あいうえ）が重複している。
【００７２】
図９（ｂ１）は、ページ情報Ａを可視化した例を、図９（ｂ２）はページ情報Ｂを可視化した例を模式的に示す。図９（ｂ１）に示すように、グラフィックオブジェクトは、本来、一様な画素値を持っているのでテキストオブジェクトと分離されることで、元の一様な画素値を示すようになっている。
【００７３】
・Ｓ５０
図６に戻り、矩形範囲ラスタライズ部４５は、ステップＳ４０で生成した２つのページ情報に含まれているオブジェクトを解析し、オブジェクトを含む矩形領域をラスタライズすることでラスタデータを生成する。
【００７４】
図９（ｃ１）はページＡのグラフィックオブジェクトのラスタデータの一例を示す図である。矩形範囲ラスタライズ部４５は、ページＡのページ情報に記述された位置と大きさからグラフィックオブジェクトの例えば外接矩形を求め、外接矩形の領域のみをラスタライズする。
【００７５】
図９（ｃ２）はページＢのテキストオブジェクトのラスタデータの一例を示す図である。矩形範囲ラスタライズ部４５は、ページＢのページ情報に記述された位置と大きさからテキストオブジェクトの例えば外接矩形を求め、外接矩形の領域のみをラスタライズする。なお、ラスタライズにより、矩形領域内の文字（文字は赤）以外の領域に白という画素値が与えられる。
【００７６】
このように、オブジェクトを分離してラスタライズすることで、それぞれに適した画像処理を施すことができる。
【００７７】
・Ｓ６０
図６に戻り、ラスタライズデータ画像処理部４６は、元のオブジェクトの種類に応じて各ラスタデータに画像処理を施す。例えば、イメージオブジェクトやグラフィックオブジェクトには、諧調優先されるようなカラーマッチングや低線数のスクリーンを適用したディザリング処理を行い、テキストオブジェクトには文字のエッジが強調されるようにカラーマッチングや高線数のスクリーンを適用したディザリング処理を行う。
【００７８】
図９（ｄ１）は、グラフィックオブジェクトに適した画像処理が施されたラスタデータの一例を、図９（ｄ２）は、テキストオブジェクトに適した画像処理が施されたラスタデータの一例を、それぞれ示す。こうすることで、画素単位で、オブジェクトの種類に最適な画像処理を各オブジェクトのラスタデータに施すことができる。
【００７９】
・Ｓ７０
ラスタライズデータ合成部４７は、事前に記憶しておいたオブジェクトの重ね合わせの順序を考慮し、２つのラスタデータを元のページ情報と同じになるように合成する。
【００８０】
下側のラスタデータの画素値を、上側のラスタデータの画素値で置き換えればよい。しかし、上側の文字のラスタデータは矩形領域にラスタライズされているので、単にグラフィックオブジェクトのラスタデータをテキストオブジェクトのラスタデータで置き換えると、グラフィックオブジェクトのラスタデータにおいて、文字の周りの画素が矩形状に白くなってしまう。
【００８１】
これを防ぐため、ラスタライズデータ合成部４７は、重ね合わせられた際に下側になるオブジェクトのラスタデータの、テキストオブジェクトに対応する画素の画素値を白（256段階の255）にする処理を行う。
【００８２】
まず、ラスタライズデータ合成部４７は、図９（ｅ）に示すように、上側のオブジェクトのラスタデータのマスクデータを生成する。すでに求められているテキストオブジェクトのラスタデータを複製し、文字部を白に、その他を黒に置き換える。こうすることで、図９(e)の白黒２値のマスクデータが生成される。
【００８３】
ラスタライズデータ合成部４７は、マスクデータとグラフィックオブジェクトのラスタデータを画素毎に比較し、見た目がより薄い画素（輝度値では値が大きい方）の画素値を優先的にその画素の画素値に採用する。例えば、グラフィックオブジェクトの色が水色であるとする。水色と黒の画素なら、水色が優先的に採用される。水色と白の画素なら、白が優先的に採用される。したがって、グラフィックオブジェクトのラスタデータのうち、文字に対応する画素の画素値だけが白になる。こうすることで、図9（ｆ）のように、下側になるグラフィックオブジェクトのラスタデータの画素のうち、テキストオブジェクトに対応する画素の画素値を白にすることができる。
【００８４】
ラスタライズデータ合成部４７は、図９（ｆ）のラスタデータのうち、白抜きされた画素の画素値を、図９（ｄ２）のラスタデータの文字に対応する画素の画素値に置き換える。こうすることで２つのラスタデータを合成することができる。
【００８５】
以上により図９（ｇ）に示す、元の文書データ又はページ情報と等しいラスタデータが得られる。
【００８６】
・Ｓ８０
図６に戻りコマンド変換部４８は、ラスタデータをＭＦＰ２００が解釈可能なＰＤＬデータに変換してＭＦＰ２００に送信する。本実施例では、ＰＤＬデータが、ＭＦＰ２００が解釈する印刷データの一例となる。オブジェクト毎にラスタデータを送信してもよいし、１ページ分のラスタデータをまとめて送信してもよい。
【００８７】
・Ｓ３５
ステップＳ３０において着目しているオブジェクトと重なるオブジェクトの種類が同じであると判定された場合（Ｓ３０のＮｏ）、２つのオブジェクトに同じ画像処理を施すことが可能になる。そこで、矩形範囲ラスタライズ部４５は、２つのオブジェクトを囲む矩形（例えば、外接矩形）を生成する。
【００８８】
図１０は、互いに重なる同じ種類のオブジェクトの一例を示す図である。図１０では２つのグラフィックオブジェクトが重なっている。矩形範囲ラスタライズ部４５は、各オブジェクトの位置とサイズから２つの外接矩形rect１，rect2を生成し、頂点P1,P2,頂点Q1，Q2を特定する。特定の仕方は図8と同様である。そして、頂点P1と頂点Q2を新たな四角形の左上頂点と右下頂点として、２つのオブジェクトを囲む外接矩形を生成する。
【００８９】
・Ｓ９０
矩形範囲ラスタライズ部４５は、図１０の新たな矩形内に２つのオブジェクトのラスタデータを生成する。こうすることによって、２つのオブジェクトを１つのラスタデータに集約することができ、ＰＣ１００の処理負荷を低減できる。
【００９０】
また、ステップＳ２０において、着目しているオブジェクトと重なるオブジェクトがあると判定されない場合（Ｓ２０のＮｏ）、描画オブジェクト分解部４４がオブジェクトを分離する必要はない。
【００９１】
よって、ラスタライズデータ画像処理部４６は、着目しているオブジェクトを解析し、オブジェクトを含む矩形領域をラスタライズすることでラスタデータを生成する。
【００９２】
・Ｓ１００
そして、ラスタライズデータ画像処理部４６は、着目しているオブジェクトの種類に応じてラスタデータに画像処理を施す。例えば、イメージオブジェクトやグラフィックオブジェクト用又はテキストオブジェクト用の画像処理が施される。
【００９３】
また、ステップＳ１００の後、処理はステップＳ８０に進み、コマンド変換部４８は、ラスタデータをＭＦＰ２００が解釈可能なＰＤＬデータに変換してＭＦＰ２００に送信する。
【００９４】
プリンタドライバ３０は、ＸＰＳファイルを解析して、ラスタライズしていないオブジェクトを特定し、1ページに含まれる各オブジェクトに図６の手順を実行する。１ページの全てのオブジェクトがラスライズされ、XPSファイルの全てのページのラスタライズが終了すると、図6の手順が終了する。
【００９５】
以上説明したように、本実施例のプリンタドライバ３０は、異なるオブジェクトが重複している領域において、オブジェクトを分離してそれぞれに適切な画像処理を施し合成するので、画素単位で画像処理を最適化でき、オブジェクトが重複している領域の印字品質を向上させることができる。
【実施例２】
【００９６】
実施例１では、オブジェクトの重なり状態の解析からＰＤＬデータの生成までを全てプリンタドライバ３０が実行する印刷システム４００について説明した。本実施例では、オブジェクトの重なり箇所の判定からＰＤＬデータの生成までの一部を、ＭＦＰ２００が行う印刷システム４００について説明する。
【００９７】
図１１は、本実施例のプリンタドライバ３０の機能ブロック図の一例を示す。図１１において図５と同一部には同一の符号を付しその説明は省略する。図１１では、ＭＦＰ２００がラスタライズデータ画像処理部４６とラスタライズデータ合成部４７を有する。すなわち、ＰＣ１００のプリンタドライバ３０では、
・描画オブジェクト分解部４４が重なり合うオブジェクトを分離し、
・矩形範囲ラスタライズ部４５が各オブジェクトを矩形範囲にラスタライズし、
・コマンド変換部４８がラスタデータをＰＤＬデータに変換して、ＭＦＰ２００に送信する。
【００９８】
ＭＦＰ２００では、
・ラスタライズデータ画像処理部４６が、ラスタデータに画像処理を施し、
・ラスタライズデータ合成部４７が、ラスタデータを合成し、
・印刷する。
【００９９】
処理の順番は変わっても、実施例１と同様にオブジェクトが重複している領域の印字品質を向上させることができる。
【０１００】
図１２は、プリンタドライバ３０とＭＦＰ２００が1ページ分のＰＤＬデータを生成するまでの手順を示すフローチャート図の一例を示す。図１２の手順のうち、ステップＳ１０〜Ｓ５０，Ｓ９０の処理は実施例１と同様である。
【０１０１】
・Ｓ８０
コマンド変換部４８は、ラスタデータをＭＦＰ２００が解釈可能なＰＤＬデータに変換する。本実施例では、このラスタデータは、図９（ｃ１）（ｃ２）の状態のラスタデータである。したがって、互いに重複した領域があるラスタデータは重複した領域を含め送信される。
【０１０２】
また、同じ種類のオブジェクトでは、図１０のように２つのオブジェクトが１つの矩形領域にラスタライズされている。
【０１０３】
プリンタドライバ３０は、ページ情報を解析して、ラスタライズしていないオブジェクトを特定し、1ページに含まれる各オブジェクトに図１２の手順を実行する。そして、１ページの全てのオブジェクトにラスライズを施すと、コマンド変換部４８がラスタデータ毎又は１ページ分のラスタデータをＭＦＰ２００に送信する。
【０１０４】
この送信の際、プリンタドライバ３０は、ＲＡＭ１３等に記憶されていた、互いに重複しているオブジェクトのオブジェクトＩＤ及び上下関係を示す上下関係情報をＭＦＰ２００に送信する。
【０１０５】
・Ｓ６０
ＭＦＰ２００のラスタライズデータ画像処理部４６は、まず、オブジェクトの種類に応じて全てのラスタデータに画像処理を施す。処理の内容は実施例１と同様である。これにより、図9（ｄ１）と（ｄ２）のラスタデータが得られる。重複していないオブジェクトのラスタデータも種類に応じて画像処理が施される。
【０１０６】
・Ｓ７０
次に、ラスタライズデータ合成部４７は、オブジェクトＩＤに基づき重複しているオブジェクトを特定し、両者の上下関係情報に基づき、互いに重複しているオブジェクトのラスタデータを特定する。そして、２つのラスタデータを元のページ情報と同じになるように合成する。合成の方法は実施例１と同様である。すなわち、ラスタライズデータ合成部４７は、図9（ｅ）のマスクデータを生成し、グラフィックオブジェクトのラスタデータを白抜きする。こうすることで、図9（ｆ）のように、下側になるグラフィックオブジェクトのラスタデータの画素のうち、テキストオブジェクトに対応する画素の画素値を白にすることができる。
【０１０７】
そして、ラスタライズデータ合成部４７は、図9（ｄ２）のテキストオブジェクトに適した画像処理が施されたラスタデータと、図9（ｆ）のグラフィックオブジェクトのラスタデータを合成する。
【０１０８】
・Ｓ１１０
ＭＦＰ２００は、合成したラスタデータをＰＤＬデータに含まれるラスタデータと置き換えて、印刷を実行する。
【０１０９】
以上のように、本実施例の印刷システム４００は、オブジェクトの重なり箇所の判定からＰＤＬデータの生成までの一部を、ＭＦＰ２００が行うことができる。また、実施例１と同様に、オブジェクトを分離してそれぞれに適切な画像処理を施し合成するので、画素単位で画像処理を最適化でき、オブジェクトが重複している領域の印字品質を向上させることができる。
【実施例３】
【０１１０】
実施例２のように、実施例１のプリンタドライバ３０の一部の機能をＭＦＰ２００が備えるのでなく、ＭＦＰ２００がプリンタドライバ３０の全ての機能を備えていてもよい。
【０１１１】
図１３は、本実施例のプリンタドライバ３０の機能ブロック図の一例を示す。図１３において図５と同一部には同一の符号を付しその説明は省略する。図１３では、ＰＣ１００はＸＰＳファイル記憶部４１を有するのみである。これに対し、ＭＦＰ２００がプリンタドライバ３０の全ての機能を有している。
【０１１２】
ＰＣ１００は、例えばＸＰＳドキュメントライタが生成したＸＰＳファイルを、通信装置１５を介してＭＦＰ２００に送信する。ＭＦＰ２００は通信カード５５によりＸＰＳファイルを受信して、記憶装置６１に記憶する。以降、ＭＦＰ２００のプリンタドライバ３０が実施例１と同様に、分離、ラスタライズ、画像処理、合成を行い印刷する。
【０１１３】
したがって、本実施例のＭＦＰ２００は、ＰＣ１００がプリンタドライバ３０を有していなくても、オブジェクトを分離してそれぞれに適切な画像処理を施し合成するので、画素単位で画像処理を最適化でき、オブジェクトが重複している領域の印字品質を向上させることができる。
【符号の説明】
【０１１４】
３０      プリンタドライバ
３１      アプリケーションプログラム
４１      ＸＰＳファイル記憶部
４２      描画オブジェクト重なり箇所判定部
４３      描画オブジェクト解析部
４４      描画オブジェクト分解部
４５      矩形範囲ラスタライズ部
４６      ラスタライズデータ画像処理部
４７      ラスタライズデータ合成部
４８      コマンド変換部
１００    ＰＣ（Personal Computer）
２００    ＭＦＰ
３００    ネットワーク
４００    印刷システム
【先行技術文献】
【特許文献】
【０１１５】
【特許文献１】特開平１０‐２４３２１０号公報
【図２】
0005644214.tif 000002
【図３】
0005644214.tif 000003
【図４】
0005644214.tif 000004
【図５】
0005644214.tif 000005
【図６】
0005644214.tif 000006
【図７】
0005644214.tif 000007
【図８】
0005644214.tif 000008
【図１１】
0005644214.tif 000009
【図１２】
0005644214.tif 000010
【図１３】
0005644214.tif 000011
【図１】
0005644214.tif 000012
【図９】
0005644214.tif 000013
【図１０】
0005644214.tif 000014