(57)【要約】      （修正有）【課題】ユーザが意図する適切な印刷物が出力される印刷データを生成することができる情報処理装置を提供する。【解決手段】印刷システムにおいて、コンピュータ１０１では、描画指示に描画データの回転処理の指示が含まれる場合、プリントプロセッサ３０５が、描画データに含まれるブラシの回転処理を行うための座標変換パラメータをプリンタドライバ３０６に通知する。プリンタドライバ３０６は、上記座標変換パラメータに基づいて印刷データにおけるブラシの回転処理を行う。【選択図】図３
2020042348.tif 000002
【特許請求の範囲】
【請求項１】
描画データにおけるユーザ操作を介して指定された領域をユーザ操作を介して指定された描画パターンで塗りつぶした所定の描画オブジェクトを描画する描画指示を発行する描画指示発行手段と、前記描画指示を印刷装置が印刷可能な印刷データに変換するデータ変換手段とを備える情報処理装置であって、
前記描画指示発行手段は、前記所定の描画オブジェクトを少なくとも含む描画データに対し当該描画データの向き又は大きさを変換する所定の画像変換処理を行う指示が含まれる場合、前記所定の描画オブジェクトに対して前記所定の画像変換処理を行うためのパラメータを前記データ変換手段に通知し、
前記データ変換手段は、前記パラメータに基づいて前記印刷データにおける前記所定の描画オブジェクトに対して前記所定の画像変換処理を施すことを特徴とする情報処理装置。
【請求項２】
前記所定の描画オブジェクトは、前記描画データにおいてユーザ操作を介して指定された領域をユーザ操作を介して指定された描画パターンで塗りつぶしたブラシであることを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記描画指示発行手段は、印刷設定に基づいて前記描画データに対してアフィン変換を行うためのパラメータを算出し、SetWorldTransform関数を用いて、前記描画データに対する所定の画像変換処理を行う指示を発行することを特徴とする請求項１又は２記載の情報処理装置。
【請求項４】
前記描画指示発行手段が前記データ変換手段に通知する前記パラメータは、前記アフィン変換を行うためのパラメータであって、当該パラメータはExtEscape関数を用いて前記データ変換手段に通知され、
前記データ変換手段は、当該アフィン変換を行うためのパラメータに基づき、前記所定の描画オブジェクトに対して実行すべき画像変換処理を決定し、該決定した画像変換処理を前記所定の描画オブジェクトに対して施すことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記所定の画像変換処理は、前記描画データの回転処理であることを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記所定の画像変換処理は、前記描画データの拡大処理又は前記描画データの縮小処理であることを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
描画データにおけるユーザ操作を介して指定された領域をユーザ操作を介して指定された描画パターンで塗りつぶした所定の描画オブジェクトを描画する描画指示を発行する描画指示発行手段と、前記描画指示を印刷装置が印刷可能な印刷データに変換するデータ変換手段とを備える情報処理装置の制御方法であって、
前記所定の描画オブジェクトを少なくとも含む描画データに対し当該描画データの向き又は大きさを変換する所定の画像変換処理を行う指示が含まれる場合、前記所定の描画オブジェクトに対して前記所定の画像変換処理を行うためのパラメータを前記描画指示発行手段から前記データ変換手段に通知させ、
前記データ変換手段に、前記パラメータに基づいて前記印刷データにおける前記所定の描画オブジェクトに対する前記所定の画像変換処理を実施させることを特徴とする情報処理装置の制御方法。
【請求項８】
描画データにおけるユーザ操作を介して指定された領域をユーザ操作を介して指定された描画パターンで塗りつぶした所定の描画オブジェクトを描画する描画指示を発行する描画指示発行手段と、前記描画指示を印刷装置が印刷可能な印刷データに変換するデータ変換手段とを備える情報処理装置の制御方法をコンピュータに実行させるプログラムであって、
前記情報処理装置の制御方法は、
前記所定の描画オブジェクトを少なくとも含む描画データに対し当該描画データの向き又は大きさを変換する所定の画像変換処理を行う指示が含まれる場合、前記所定の描画オブジェクトに対して前記所定の画像変換処理を行うためのパラメータを前記描画指示発行手段から前記データ変換手段に通知させ、
前記データ変換手段に、前記パラメータに基づいて前記印刷データにおける前記所定の描画オブジェクトに対する前記所定の画像変換処理を実施させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びその制御方法、並びにプログラムに関する。
【背景技術】
【０００２】
印刷を実行するための印刷データをプリンタに提供する情報処理装置が知られている。情報処理装置は、プリンタドライバ及び当該プリンタドライバのプリプロセスモジュールであるプリントプロセッサを備える（例えば、特許文献１参照）。情報処理装置では、プリントプロセッサがユーザに設定された印刷設定及び文書データに基づいて描画指示を生成し、プリンタドライバが当該描画指示をプリンタで印刷可能な印刷データに変換する。印刷設定として、例えば、グラフィックスオブジェクトであるブラシに関する情報や、複数の論理ページを１枚の用紙に集約して印刷するＮｉｎ１印刷に関する情報が設定される。ブラシは、印刷用紙においてユーザに指定された領域（以下、「ユーザ指定領域」という。）を斜線等の所定の描画パターンで塗りつぶした描画オブジェクトである。
【０００３】
例えば、印刷設定として２ｉｎ１印刷に関する情報が設定された場合、プリントプロセッサは、２つの論理ページが隣り合って１つの描画データとして描画される描画指示を生成する。また、横向きや縦向きといった各論理ページの向きの構成が異なる場合、プリントプロセッサは、一方の論理ページの隣に、当該一方の論理ページの向きに合わせて回転させた他方の論理ページが描画されるような描画指示を生成する。このようにして、情報処理装置は、ユーザが意図する適切な印刷物が出力される印刷データを生成することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５‐１８２６９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来では、プリントプロセッサは、描画オブジェクト単位の詳細な指示を描画指示に盛り込むことができないため、ユーザが意図する適切な印刷物が出力される印刷データを生成することができないことがある。例えば、ブラシの描画を含み且つ向きの構成が異なる２つの論理ページの２ｉｎ１印刷の描画指示の生成において、プリントプロセッサは、描画オブジェクト単位の詳細な指示、具体的に、ブラシの描画パターンの向きを変換する情報を描画指示に盛り込むことができない。その結果、ユーザが意図する適切な印刷物が出力される印刷データを生成することができない。
【０００６】
本発明の目的は、ユーザが意図する適切な印刷物が出力される印刷データを生成することができる情報処理装置及びその制御方法、並びにプログラムを提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明の情報処理装置は、描画データにおけるユーザ操作を介して指定された領域をユーザ操作を介して指定された描画パターンで塗りつぶした所定の描画オブジェクトを描画する描画指示を発行する描画指示発行手段と、前記描画指示を印刷装置が印刷可能な印刷データに変換するデータ変換手段とを備える情報処理装置であって、前記描画指示発行手段は、前記所定の描画オブジェクトを少なくとも含む描画データに対し当該描画データの向き又は大きさを変換する所定の画像変換処理を行う指示が含まれる場合、前記所定の描画オブジェクトに対して前記所定の画像変換処理を行うためのパラメータを前記データ変換手段に通知し、前記データ変換手段は、前記パラメータに基づいて前記印刷データにおける前記所定の描画オブジェクトに対して前記所定の画像変換処理を施すことを特徴とする。
【発明の効果】
【０００８】
本発明によれば、ユーザが意図する適切な印刷物が出力される印刷データを生成することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施の形態に係る情報処理装置としてのコンピュータを含む印刷システムの構成を概略的に示すブロック図である。
【図２】図１のコンピュータのハードウェア構成を概略的に示すブロック図である。
【図３】図１のコンピュータのソフトウェア構成を概略的に示すブロック図である。
【図４】図１のコンピュータによる印刷データの生成を説明するための図である。
【図５】図１のコンピュータによる描画を説明するための図である。
【図６】図３のプリントプロセッサによって実行される描画指示発行処理の手順を示すフローチャートである。
【図７】図３のＧＲ処理部によって実行される印刷データ生成処理の手順を示すフローチャートである。
【図８】図１のコンピュータによって描画されるビットマップブラシを説明するための図である。
【図９】図７の印刷データ生成処理の変形例の手順を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、本発明の実施の形態について図面を参照しながら詳述する。
【００１１】
図１は、本発明の実施の形態に係る情報処理装置としてのコンピュータ１０１を含む印刷システム１００の構成を概略的に示すブロック図である。図１において、印刷システム１００は、コンピュータ１０１及びプリンタ１０２を備える。コンピュータ１０１は、プリンタ１０２と有線ＬＡＮケーブル（不図示）を介した有線ＬＡＮ通信、又は無線通信を実施可能である。コンピュータ１０１は、ユーザによる指示に基づいて、例えば、プリンタ１０２に印刷を実行させるための印刷データを生成し、生成した印刷データをプリンタ１０２に送信する。プリンタ１０２は、受信した印刷データに基づいて用紙に印刷を行う。
【００１２】
図２は、図１のコンピュータ１０１のハードウェア構成を概略的に示すブロック図である。図２において、コンピュータ１０１は、制御部２００、キーボード２０５、ディスプレイ２０７、及び外部メモリ２０９を備える。制御部２００は、キーボード２０５、ディスプレイ２０７、及び外部メモリ２０９と接続されている。また、制御部２００は、ＣＰＵ２０１、ＲＡＭ２０２、ＲＯＭ２０３、キーボードＩ／Ｆ２０４、ディスプレイＩ／Ｆ２０６、外部メモリＩ／Ｆ２０８、及び外部機器Ｉ／Ｆ２１０を備える。ＣＰＵ２０１、ＲＡＭ２０２、ＲＯＭ２０３、キーボードＩ／Ｆ２０４、ディスプレイＩ／Ｆ２０６、外部メモリＩ／Ｆ２０８、及び外部機器Ｉ／Ｆ２１０は、システムバス２１１を介して互いに接続されている。なお、ＣＰＵは、Ｃｅｎｔｒａｌ Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉｔの略称である。ＲＡＭは、Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙの略称である。ＲＯＭは、Ｒｅａｄ−Ｏｎｌｙ Ｍｅｍｏｒｙの略称である。
【００１３】
制御部２００は、コンピュータ１０１全体を統括的に制御する。ＣＰＵ２０１は、ＲＯＭ２０３や外部メモリ２０９に記憶されたプログラムをＲＡＭ２０２にロードし、ＲＡＭ２０２にロードしたプログラムを実行することで、後述する図３の各モジュールの機能を実現する。キーボードＩ／Ｆ２０４は、キーボード２０５を制御部２００に接続するためのＩ／Ｆである。キーボード２０５は、ユーザ操作を受け付ける受付部として機能する。ディスプレイＩ／Ｆ２０６は、ディスプレイ２０７を制御部２００に接続するためのＩ／Ｆである。ディスプレイ２０７は、ユーザに提供する各種情報を表示する表示部として機能する。外部メモリＩ／Ｆ２０８は、コンピュータ１０１に接続されたＵＳＢメモリやメモリーカードといった外部メモリ２０９と通信を行う。外部機器Ｉ／Ｆ２１０は、プリンタ１０２等の外部機器とのデータ通信を制御する。
【００１４】
図３は、図１のコンピュータ１０１のソフトウェア構成を概略的に示すブロック図である。図３において、コンピュータ１０１は、モジュールとして、アプリケーション３０１、ＯＳ３０２、プリントプロセッサ３０５（描画指示発行手段）、及びプリンタドライバ３０６（データ変換手段）を備える。図３の各モジュールの処理は、ＣＰＵ２０１がＲＯＭ２０３や外部メモリ２０９に記憶されたプログラムを実行することによって行われる。
【００１５】
アプリケーション３０１は、印刷データを生成する印刷データ生成ジョブの開始命令を発行する。ＯＳ３０２は、ＧＤＩ３０３及びＷｉｎｄｏｗｓＳｐｏｏｌｅｒ３０４で構成され、コンピュータ１０１の基本制御を行う。ＧＤＩ３０３は、アプリケーション層に対して印刷を含めた描画フェイスを提供する。ＷｉｎｄｏｗｓＳｐｏｏｌｅｒ３０４は、後述する図４のスプールファイル４０１の格納に関する処理を行う。また、ＷｉｎｄｏｗｓＳｐｏｏｌｅｒ３０４は、印刷データの送信に関する処理を行う。
【００１６】
プリントプロセッサ３０５は、ＧＤＩ３０３のＡＰＩを呼び出し、ユーザが設定した印刷設定に基づいて描画指示を発行する。また、プリントプロセッサ３０５は、ＧＤＩ３０３のＡＰＩを呼び出し、当該描画指示をプリンタドライバ３０６に出力する。プリンタドライバ３０６は、ＵＩ処理部３０７及びＧＲ処理部３０８で構成される。ＵＩ処理部３０７は、ユーザが設定した印刷設定に基づいて印刷設定情報を生成する。印刷設定情報は、例えば、各ページの印刷の向き、Ｎｉｎ１印刷に関する情報、ブラシに関する情報、及び印刷画像の拡大・縮小に関する情報を含む。ＧＲ処理部３０８は、取得した描画指示をプリンタ１０２が印刷可能な印刷データに変換する。
【００１７】
図４は、図１のコンピュータ１０１による印刷データの生成を説明するための図である。コンピュータ１０１は、キーボード２０５でユーザから印刷データの生成指示を受け付けると、アプリケーションプロセス上にアプリケーション３０１をロードする。
【００１８】
図４において、アプリケーションプロセス上にロードされたアプリケーション３０１は、印刷データ生成ジョブの開始命令を発行する。これにより、スプーラーサービス上にプリントプロセッサ３０５がロードされる。また、アプリケーション３０１は、プリンタドライバ３０６のＵＩ処理部３０７により、キーボード２０５でユーザが入力した情報に基づいて印刷設定情報を生成する。その後、アプリケーション３０１は、ＧＤＩ３０３のＡＰＩを呼び出すことで、印刷設定情報及び印刷データの生成に必要となる描画データをＧＤＩ３０３に出力する。ＧＤＩ３０３は、アプリケーション３０１から取得した印刷設定情報及び描画データを、ＷｉｎｄｏｗｓＳｐｏｏｌｅｒ３０４によりスプールファイル４０１として格納する。スプールファイル４０１のファイル形式は、ＥＭＦ（ＥｎｈａｎｃｅｄＭｅｔａｆｉｌｅ）形式である。ＥＭＦ形式は、Ｗｉｎｄｏｗｓで印刷を行う際に高速に印刷を行うために作成される中間ファイルのファイル形式である。
【００１９】
一方、スプーラーサービス上にロードされたプリントプロセッサ３０５は、スプールファイル４０１の格納が終了すると、ＧＤＩ３０３のＡＰＩを呼び出すことで、スプールファイル４０１に関する描画指示を生成する。プリントプロセッサ３０５は、例えば、図５（ａ）の描画データ５０１、５０２が描画される描画指示を生成する。描画データ５０１は、データの向きの構成が縦向きの描画データである。描画データ５０２は、データの向きの構成が横向きの描画データである。描画データ５０１、５０２の各々には、ハッチブラシ５０３やビットマップブラシ５０４が含まれる。なお、ブラシは、ユーザ指定領域をユーザが指定した所定のパターンで塗りつぶした描画オブジェクトである。ハッチブラシ５０３では、水平線、斜め線、及び垂直線等の予め決められた複数の描画パターンの中からユーザに指定された描画パターンでユーザ指定領域が塗りつぶされる。ビットマップブラシ５０４では、ユーザに指定されたキャラクター画像等の所定のビットマップを敷き詰めることでユーザ指定領域が塗りつぶされる。生成された描画指示は、ＧＤＩ３０３を介してプリンタドライバ３０６のＧＲ処理部３０８に出力される。ＧＲ処理部３０８は、取得した描画指示をプリンタ１０２が印刷可能なデータ形式の印刷データに変換する。また、ＧＲ処理部３０８は、変換された印刷データをＷｉｎｄｏｗｓＳｐｏｏｌｅｒ３０４に出力する。Ｗｉｎｄｏｗｓ Ｓｐｏｏｌｅｒ３０４は、取得した印刷データをプリンタ１０２に送信する。プリンタ１０２は、コンピュータ１０１から受信した印刷データに基づいて用紙に印刷を行う。
【００２０】
例えば、描画データ５０１、５０２のようにデータの向きの構成が異なる２つの描画データを論理ページとする２ｉｎ１印刷において、プリントプロセッサ３０５は、図５（ｂ）に示すように、論理ページ５０５の隣に、論理ページ５０５の向きに合わせて９０度回転させた論理ページ５０６が描画されるような描画指示を生成する。ところが、プリントプロセッサ３０５は、描画オブジェクト単位の詳細な指示、具体的に、ブラシの描画パターンの向きを変換する情報を描画指示に盛り込むことができない。このため、論理ページ５０５の向きに合わせて９０度回転させた論理ページ５０６において、図５（ｂ）に示すように、ハッチブラシ５０７やビットマップブラシ５０８の描画パターンの向きが変換されないような描画指示が生成され、当該描画指示がＧＤＩ３０３及びプリンタドライバ３０６に出力されてしまう。その結果、ユーザが意図する適切な印刷物が出力される印刷データを生成することができない。  これに対応して、本実施の形態では、描画指示に描画データの回転処理の指示が含まれる場合、プリントプロセッサ３０５が、描画データに含まれるブラシの回転処理を行うための座標変換パラメータをプリンタドライバ３０６に通知する。プリンタドライバ３０６は、上記座標変換パラメータに基づいて印刷データにおけるブラシの回転処理を行う。これにより、例えば、図５（ｃ）に示すように、論理ページ５０６の向きの変換に合わせてハッチブラシ５０７やビットマップブラシ５０８の向きが変換された印刷データが生成される。
【００２１】
図６は、図３のプリントプロセッサ３０５によって実行される描画指示発行処理の手順を示すフローチャートである。図６の処理は、ＣＰＵ２０１がＲＯＭ２０３や外部メモリ２０９に記憶されたプログラムを実行することによって行われる。図６の処理は、アプリケーション３０１による印刷データ生成ジョブの開始命令に基づいてプリントプロセッサ３０５がスプーラーサービス上にロードされた際に実行される。
【００２２】
図６において、プリントプロセッサ３０５は、初期化処理を実行する（ステップＳ６０１）。次いで、プリントプロセッサ３０５は、ＧＤＩ３０３における印刷データ生成ジョブの開始を示すＡＰＩを呼び出して、ＧＤＩ３０３からＧＲ処理部３０８に印刷データ生成ジョブの開始を通知する（ステップＳ６０２）。その後、プリントプロセッサ３０５は、ＧＤＩ３０３の別のＡＰＩを呼び出し、格納されたスプールファイル４０１を取得する（ステップＳ６０３）。プリントプロセッサ３０５は、スプールファイル４０１の描画データが複数ページの描画データである場合、当該複数ページの中から一のページを特定する。
【００２３】
次いで、プリントプロセッサ３０５は、物理ページの開始処理の実行の要否を判別する（ステップＳ６０４）。なお、物理ページとは、２ｉｎ１印刷における論理ページではなく、印刷物のページを示す。物理ページの開始処理は、一のページが当該一のページの前のページと異なる用紙に印刷するページである場合に実行される。例えば、２ｉｎ１印刷において、上記一のページが、図５（ｂ）の論理ページ５０５のように、１番目の論理ページである場合、一のページが当該一のページの前のページと異なる用紙に印刷するページに相当する。この場合、プリントプロセッサ３０５は、物理ページの開始処理の実行が必要であると判別する。一方、上記一のページが、図５（ｂ）の論理ページ５０６のように、２番目の論理ページである場合、一のページが当該一のページの前のページである１番目の論理ページと同じ用紙に印刷するページに相当する。この場合、プリントプロセッサ３０５は、物理ページの開始処理の実行が不要であると判別する。
【００２４】
ステップＳ６０４の判別の結果、物理ページの開始処理の実行が不要であるとき、プリントプロセッサ３０５は、後述するステップＳ６０６の処理を行う。ステップＳ６０４の判別の結果、物理ページの開始処理の実行が必要であるとき、プリントプロセッサ３０５は、物理ページの開始処理を実行する（ステップＳ６０５）。これにより、一のページが当該一のページの前のページと異なる用紙に印刷するページであることがプリンタドライバ３０６に通知される。次いで、プリントプロセッサ３０５は、ステップＳ６０３で取得したスプールファイル４０１の印刷設定情報を参照し、拡大・縮小、回転、及び移動等のレイアウト設定が指定されているか否かを判別する（ステップＳ６０６）。
【００２５】
ステップＳ６０６の判別の結果、レイアウト設定が指定されているとき、プリントプロセッサ３０５は、当該レイアウト設定に基づいてＧＤＩ３０３に描画データの座標変換を指示する（ステップＳ６０７）。ステップＳ６０７では、プリントプロセッサ３０５は、ＧＤＩ３０３に座標変換を指示するＡＰＩとして、SetWorldTransform関数を利用する。ＧＤＩ３０３が提供するSetWorldTransform関数では、座標(x,y)を座標 (x’,y’)に変換する際に下記式（１）、（２）で表される６つの座標変換パラメータeM11, eM12, eM21, eM22, eDx, eDyが必要となる。
【００２６】
x’ = x * eM11 + y * eM12 + eDx  …（１）
y’ = x * eM21 + y * eM22 + eDy  …（２）
式（１）、（２）は、描画オブジェクトに対して、並行移動を含む線形写像（拡大、縮小、移動、回転、スキュー等）を行うアフィン変換の式を示している。
【００２７】
プリントプロセッサ３０５は、指定されたレイアウト設定に含まれる拡縮やＮｉｎ１等の設定値、対象となる論理ページのサイズ、印刷物のサイズ等に基づいて上記６つの座標変換パラメータを算出する。次いで、プリントプロセッサ３０５は、算出した変換パラメータをSetWorldTransform関数の引数に設定し、ＧＤＩ３０３に対して座標変換を指示する。更に、プリントプロセッサ３０５は、算出した６つの座標変換パラメータをブラシの回転処理を行うためのパラメータとしてプリンタドライバ３０６に通知する（ステップＳ６０８）。具体的に、プリントプロセッサ３０５は、ＧＤＩ３０３のＡＰＩであるExtEscape()を呼び出し、算出した６つの座標変換パラメータをプリンタドライバ３０６のＧＲ処理部３０８に通知する。
【００２８】
ExtEscape()は、プリントプロセッサ３０５や、汎用のアプリケーション等がＧＲ処理部３０８とデータを送受信するためにＧＤＩ３０３が提供するＡＰＩである。ExtEscape()は、データの送受信にExtEscape関数を利用する。プリントプロセッサ３０５等のExtEscape()を呼び出す側と、ＧＲ処理部３０８等の呼び出される側で、エスケープＩＤ値、入力データ、及び出力データ構造の取り決めが予め行われる。プリントプロセッサ３０５は、予め決定されたエスケープＩＤ値と共に、入力データや、出力データの格納領域情報をＧＲ処理部３０８に出力する。一方、ＧＲ処理部３０８は、予め決定されたエスケープＩＤ値と共にExtEscape()が呼び出されると、プリントプロセッサ３０５から送信された入力データの内容を読み取る。また、ＧＲ処理部３０８は、プリントプロセッサ３０５から送信された出力データの格納領域情報が示す格納領域にデータを送信する。
【００２９】
次いで、プリントプロセッサ３０５は、ＧＤＩ３０３のＡＰＩを呼び出すことで、一のページに関する描画指示を生成する。次いで、プリントプロセッサ３０５は、ＧＤＩ３０３を介してプリンタドライバ３０６のＧＲ処理部３０８に一のページの描画指示を出力する（ステップＳ６０９）。なお、一のページの描画指示には、ステップＳ６０７で指示された座標変換が反映されているが、描画オブジェクト単位の詳細な指示、具体的に、ブラシの描画パターンの向きを変換する情報が盛り込まれていない。描画指示を取得したＧＲ処理部３０８は、当該描画指示をプリンタ１０２で印刷可能な印刷データに変換する。次いで、プリントプロセッサ３０５は、物理ページの終了処理の実行の要否を判別する（ステップＳ６１０）。物理ページの終了処理は、一のページが当該一のページの次のページと異なる用紙に印刷するページである場合に実行される。例えば、２ｉｎ１印刷において、上記一のページが、図５（ｂ）の論理ページ５０５のように、１番目の論理ページである場合、一のページが当該一のページの次のページである２番目の論理ページと同じ用紙に印刷するページに相当する。この場合、プリントプロセッサ３０５は、物理ページの終了処理の実行が不要であると判別する。一方、上記一のページが、図５（ｂ）の論理ページ５０６のように、２番目の論理ページである場合、一のページが当該一のページの次のページと異なる用紙に印刷するページに相当する。この場合、プリントプロセッサ３０５は、物理ページの終了処理の実行が必要であると判別する。
【００３０】
ステップＳ６１０の判別の結果、物理ページの終了処理の実行が不要であるとき、プリントプロセッサ３０５は、後述するステップＳ６１２の処理を行う。ステップＳ６１０の判別の結果、物理ページの終了処理の実行が必要であるとき、プリントプロセッサ３０５は、物理ページの終了処理を実行する（ステップＳ６１１）。これにより、一のページが当該一のページの次のページと異なる用紙に印刷するページであることがプリンタドライバ３０６に通知される。次いで、プリントプロセッサ３０５は、描画データに含まれる全てのページを処理したか否かを判別する（ステップＳ６１２）。
【００３１】
ステップ６１２の判別の結果、描画データに含まれる何れかのページを処理しないとき、プリントプロセッサ３０５は、ステップＳ６０３の処理に戻る。ステップ６１２の判別の結果、描画データに含まれる全てのページを処理したとき、プリントプロセッサ３０５は、印刷データ生成ジョブを終了する（ステップＳ６１３）。具体的に、プリントプロセッサ３０５は、ＧＤＩ３０３における印刷データ生成ジョブの終了を示すＡＰＩを呼び出す。次いで、プリントプロセッサ３０５は、終了処理を実行し（ステップＳ６１４）、本処理を終了する。
【００３２】
図７は、図３のＧＲ処理部３０８によって実行される印刷データ生成処理の手順を示すフローチャートである。図７の処理は、ＣＰＵ２０１がＲＯＭ２０３や外部メモリ２０９に記憶されたプログラムを実行することによって行われる。図７の処理は、ＧＤＩ３０３から印刷データ生成ジョブの開始が通知された際に実行される。
【００３３】
図７において、ＧＲ処理部３０８は、初期化処理を行う（ステップＳ７０１）。その後、ＧＲ処理部３０８は、ステップＳ６０８でプリントプロセッサ３０５から通知された６つの座標変換パラメータを取得する（ステップＳ７０２）。次いで、ＧＲ処理部３０８は、ステップＳ６０８でＧＤＩ３０３から一のページの描画指示を取得する（ステップＳ７０３）。次いで、ＧＲ処理部３０８は、取得した描画指示にハッチブラシやビットマップブラシといったブラシが含まれているか否かを判別する（ステップＳ７０４）。
【００３４】
ステップＳ７０４の判別の結果、取得した描画指示にブラシが含まれているとき、ＧＲ処理部３０８は、取得した座標変換パラメータに基づいて一のページの描画データに対して回転処理が行われたか否かを判別する（ステップＳ７０５）。例えば、取得した座標変換パラメータが一のページの描画データの９０度回転を示す場合、ｘ座標に関するパラメータであるｅＭ１１は「０」となり、ｅＭ１２は「−１」となる。また、ｙ座標に関するパラメータであるｅＭ２１が「１」となり、ｅＭ２２が「０」となる。ＧＲ処理部３０８は、この様なパラメータ値の場合に、一のページの描画データに対して回転処理が行われたと判別する。なお、ｅＭ１１〜ｅＭ２２が拡大縮小成分を含む場合、ｅＭ１１〜ｅＭ２２内の最大値で各ペラメータを除算する等の正規化処理を行い、回転成分のみを抽出した後に回転処理が行われたか否かを判断すればよい。ページ単位での回転において、取り得る回転角は、９０度、１８０度、２７０度の何れかであり、当該回転成分のパラメータとしては１、０、−１の何れかが採用される。更に、ページ単位での拡大において、Ｘ方向、Ｙ方向の拡大縮小は等倍である。従って、最大値での除算で拡大縮小の影響を取り除いた回転成分を抽出することができる。
【００３５】
ステップＳ７０５の判別の結果、一のページの描画データに対して回転処理が行われないとき、又はステップＳ７０４の判別の結果、取得した描画指示にブラシが含まれていないとき、ＧＲ処理部３０８は、後述するステップＳ７０７の処理を行う。
【００３６】
ステップＳ７０５の判別の結果、一のページの描画データに対して回転処理が行われたとき、ＧＲ処理部３０８は、一のページの描画データにおけるブラシの回転処理を実行する（ステップＳ７０６）。具体的に、ＧＲ処理部３０８は、取得した座標変換パラメータに基づいて一のページの描画データにおけるブラシの向きを変える。次いで、ＧＲ処理部３０８は、上記描画指示を印刷データに変換する（ステップＳ７０７）。なお、ステップＳ７０７で変換された印刷データでは、ステップＳ７０６におけるブラシの向きの変更が反映されている。次いで、ＧＲ処理部３０８は、上記印刷データをＷｉｎｄｏｗｓＳｐｏｏｌｅｒ３０４に出力する。Ｗｉｎｄｏｗｓ Ｓｐｏｏｌｅｒ３０４は、上記印刷データをプリンタ１０２に送信する。次いで、ＧＲ処理部３０８は、ジョブの終了処理を行い（ステップＳ７０８）、本処理を終了する。
【００３７】
上述した実施の形態によれば、プリントプロセッサ３０５からの描画指示に描画データの回転処理の指示が含まれる場合、描画データに含まれるブラシの回転処理を行うための座標変換パラメータがプリントプロセッサ３０５からプリンタドライバ３０６に通知され、上記座標変換パラメータに基づいて印刷データにおけるブラシの回転処理が行われる。これにより、描画データの回転処理に合わせて描画データに含まれるブラシの向きを変換することができ、もって、ユーザが意図する適切な印刷物が出力される印刷データを生成することができる。
【００３８】
また、上述した実施の形態では、プリントプロセッサ３０５は、SetWorldTransform()関数を用いて上記座標変換パラメータを算出する。これにより、SetWorldTransform()関数を用いて描画データの画像変換処理を行うコンピュータ１０１において、描画データに含まれるブラシの回転処理を適切に行うことができる。
【００３９】
以上、本発明について、上述した実施の形態を用いて説明したが、本発明は上述した実施の形態に限定されるものではない。例えば、ブラシの位置が変わる処理が行われる場合、ブラシの起点座標の変換に用いる座標変換パラメータをプリンタドライバ３０６に通知しても良い。
【００４０】
例えば、ビットマップブラシの描画を行う場合、図８（ａ）に示すように、ユーザ指定領域８０１における起点Ａを基準に配置された複数の描画パターンがユーザ指定領域８０１に描画される。このような描画データに対して拡大処理が施されると、描画データにおけるユーザ指定領域８０１の位置及び大きさの変更に合わせて当該ユーザ指定領域８０１の座標が変換される。ところが、ユーザ指定領域８０１における起点Ａの座標は物理座標であるので、当該拡大処理では座標が変換されない。このため、コンピュータ１０１では、ブラシを含む描画データに対して当該ブラシの位置が変わる処理、具体的に、拡大処理又は縮小処理が行われると、処理前と比べて、図８（ｂ）に示すように、ユーザ指定領域８０１における描画パターンの相対的な配置位置がずれるという問題が生じる。
【００４１】
これに対応して、本実施の形態では、描画データの座標変換が行われている場合、プリントプロセッサ３０５が、描画データに含まれるブラシの起点座標の変換を行うための座標変換パラメータをプリンタドライバ３０６に通知する。プリンタドライバ３０６は、上記座標変換パラメータに基づいて印刷データにおけるブラシの起点座標の変換を行う。これにより、例えば、ブラシの起点Ａが、図８（ｃ）の起点Ａ’に変換された印刷データが生成される。
【００４２】
図９は、図７の印刷データ生成処理の変形例の手順を示すフローチャートである。図９の処理も、ＣＰＵ２０１がＲＯＭ２０３や外部メモリ２０９に記憶されたプログラムを実行することによって行われる。図９の処理も、ＧＤＩ３０３から印刷データ生成ジョブの開始が通知された際に実行される。
【００４３】
図９において、ＧＲ処理部３０８は、ステップＳ７０１〜Ｓ７０４の処理を行う。次いで、ＧＲ処理部３０８は、取得した座標変換パラメータに基づいて一のページの描画データの座標変換が行われたか否かを判別する（ステップＳ９０１）。
【００４４】
ステップＳ９０１の判別の結果、一のページの描画データの座標変換が行われないとき、ＧＲ処理部３０８は、ステップＳ７０７以降の処理を行う。ステップＳ９０１の判別の結果、一のページの描画データの座標変換が行われたとき、ＧＲ処理部３０８は、取得した座標変換パラメータに基づいて上記描画指示に含まれるブラシの起点座標を変換する（ステップＳ９０２）。次いで、ＧＲ処理部３０８は、ステップＳ７０７以降の処理を行う。
【００４５】
上述した実施の形態では、描画データの座標変換が行われている場合、描画データに含まれるブラシの起点座標を変換するための座標変換パラメータがプリンタドライバ３０６に通知され、上記座標変換パラメータに基づいて印刷データにおけるブラシの起点座標が変換される。これにより、描画データの拡大処理又は縮小処理に合わせて描画データに含まれるブラシの起点座標を適切な座標に変換することができ、もって、ユーザが意図する適切な印刷物が出力される印刷データを生成することができる。
【００４６】
（その他の実施形態）
上述した実施形態では、プリントプロセッサ３０５が座標変換パラメータをプリンタドライバ３０６に通知し、当該プリンタドライバ３０６が当該座標変換パラメータを解析し、ブラシに対する処理の要否と処理内容を決定する場合を例示したがこれに限定されない。プリントプロセッサ３０５が、プリンタドライバ３０６側でブラシに対して実行すべき画像処理の内容を特定し、当該画像処理を行うための必要なパラメータを通知するようにすることもできる。例えば、プリントプロセッサ３０５は、ブラシを回転するための回転成分を示すパラメータやブラシの起点座標を変換するための並行移動成分を示すパラメータを通知してもよい。この場合、プリンタドライバ３０６は、通知されたパラメータを用いてブラシオブジェクトの描画データを回転したり、ブラシオブジェクトの起点座標を補正したりすればよい。
【００４７】
本発明は、上述の実施の形態の１以上の機能を実現するプログラムをネットワーク又は記憶媒体を介してシステム又は装置に供給し、該システム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読み出して実行する処理でも実現可能である。また、本発明は、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００４８】
１０１  コンピュータ
１０２  プリンタ
３０５  プリントプロセッサ
３０６  プリンタドライバ
【図１】
2020042348.tif 000003
【図２】
2020042348.tif 000004
【図３】
2020042348.tif 000005
【図４】
2020042348.tif 000006
【図５】
2020042348.tif 000007
【図６】
2020042348.tif 000008
【図７】
2020042348.tif 000009
【図８】
2020042348.tif 000010
【図９】
2020042348.tif 000011