(57)【要約】【課題】ＭＸＤＷによって生成されたＸＰＳファイル内のタイルイメージ描画命令は、１５０ｄｐｉ相当でタイルイメージを描画する命令としてＶ４プリンタドライバへ入力されるので、描画結果がＧＤＩプリンタドライバと比較して異なる。【解決手段】ＸＰＳ描画命令の出力元のアプリケーションがＧＤＩアプリケーションであり、かつＸＰＳ描画命令にタイルイメージ描画命令が含まれる場合、タイルイメージ描画命令に従ってパターン描画されるタイルイメージの解像度が変更されるように、タイルイメージ描画命令を修正する。【選択図】図３
2017102670.tif 000002
【特許請求の範囲】
【請求項１】
ＸＰＳ描画命令を受信する受信手段と、
前記受信したＸＰＳ描画命令の出力元のアプリケーションがＧＤＩアプリケーションである場合において、前記受信したＸＰＳ描画命令にタイルイメージ描画命令が含まれるかを判定する判定手段と、
前記受信したＸＰＳ描画命令にタイルイメージ描画命令が含まれると判定された場合、前記タイルイメージ描画命令に従ってパターン描画されるタイルイメージの解像度が変更されるように、前記タイルイメージ描画命令を修正する修正手段と、
前記修正されたタイルイメージ描画命令に基づく印刷コマンドをプリンタに出力する出力手段と
を有することを特徴とする印刷制御装置。
【請求項２】
前記修正手段は、前記タイルイメージ描画命令に含まれるタイルイメージのサイズを変更することを特徴とする請求項１に記載の印刷制御装置。
【請求項３】
前記修正手段は、前記タイルイメージのサイズを、（固定解像度）／（指定パターン解像度）、に変換することを特徴とする請求項２に記載の印刷制御装置。
【請求項４】
前記指定パターン解像度は、ユーザインターフェースを介した指定に基づいて決定されることを特徴とする請求項３に記載の印刷制御装置。
【請求項５】
前記指定パターン解像度は、予め設定された値に基づいて決定されることを特徴とする請求項３に記載の印刷制御装置。
【請求項６】
前記判定手段は、前記受信したＸＰＳ描画命令を記述するＸＰＳファイルに特定の文字列の記述が含まれる場合、前記受信したＸＰＳ描画命令の出力元のアプリケーションがＧＤＩアプリケーションであると判定することを特徴とする請求項１から５のいずれか一項に記載の印刷制御装置。
【請求項７】
前記特定の文字列は、ＧＤＩ描画命令をＸＰＳ描画命令に変換する変換手段に関する文字列であることを特徴とする請求項６に記載の印刷制御装置。
【請求項８】
前記判定手段は、前記受信したＸＰＳ描画命令にタイルイメージ描画命令が含まれると判定した場合において、前記タイルイメージ描画命令がＧＤＩ描画命令におけるハッチ描画命令に由来する描画命令であるか否かをさらに判定し、
前記タイルイメージ描画命令がハッチ描画命令に由来する描画命令であると判定された場合、前記修正手段は、前記ＸＰＳ描画命令に含まれるタイルイメージの代わりに前記ハッチ描画命令に対応するイメージを用いる描画命令に、前記受信したタイルイメージ描画命令を修正する請求項１から７のいずれか一項に記載の印刷制御装置。
【請求項９】
前記判定手段は、前記タイルイメージ描画命令に含まれるタイルイメージのサイズが所定の条件を満たし、かつ、タイルイメージが所定のイメージと同じイメージである場合、前記タイルイメージ描画命令はハッチ描画命令に由来する描画命令であると判定することを特徴とする請求項８に記載の印刷制御装置。
【請求項１０】
前記判定手段は、前記受信したＸＰＳ描画命令にタイルイメージ描画命令が含まれると判定した場合において、前記ＸＰＳ描画命令を生成したＭＸＤＷのバージョンが所定のバージョンであるかをさらに判定し、
前記ＭＸＤＷのバージョンが前記所定のバージョンである場合、前記修正手段は前記修正を行わないことを特徴とする請求項１から９のいずれか一項に記載の印刷制御装置。
【請求項１１】
ＸＰＳ描画命令を受信する受信ステップと、
前記受信したＸＰＳ描画命令の出力元のアプリケーションがＧＤＩアプリケーションである場合において、前記受信したＸＰＳ描画命令にタイルイメージ描画命令が含まれるかを判定する判定ステップと、
前記受信したＸＰＳ描画命令にタイルイメージ描画命令が含まれると判定された場合、前記タイルイメージ描画命令に従ってパターン描画されるタイルイメージの解像度が変更されるように、前記タイルイメージ描画命令を修正する修正ステップと、
前記修正されたタイルイメージ描画命令に基づく印刷コマンドをプリンタに出力する出力ステップと
を有することを特徴とする印刷制御方法。
【請求項１２】
コンピュータを、請求項１から１０のいずれか一項に記載の印刷制御装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリンタドライバを用いた印刷制御に関するものである。
【背景技術】
【０００２】
Ｗｉｎｄｏｗｓ（登録商標）用プリンタドライバについては、これまでメインドライバとして利用されてきたＧＤＩプリンタドライバからＸＰＳプリンタドライバ（以降Ｖ４プリンタドライバと呼ぶ）への移行が始まっている。近い将来メインドライバはＶ４プリンタドライバとなる。ＧＤＩプリンタドライバは、ＧＤＩ描画命令を解釈して印刷データを生成するドライバである。Ｖ４プリンタドライバはＸＰＳ描画命令を解釈して印刷データを生成するドライバである。
【０００３】
従来型のＷＯＲＤ（登録商標）などのアプリケーションは、印刷処理を行う際、ＧＤＩ描画命令をＧＤＩプリンタドライバに対して出力する。本明細書では、このようなアプリケーションをＧＤＩアプリケーションと呼ぶ。一方、Ｖ４プリンタドライバに対応している新たなアプリケーションは、印刷処理を行う際に、Ｖ４プリンタドライバに対してＸＰＳ描画命令を出力する。このようなＸＰＳ描画命令を出力可能なアプリケーションをＸＰＳアプリケーションと呼ぶこととする。特にプリンタドライバの移行期には、１つのコンピュータ上で、ＧＤＩアプリケーションとＸＰＳアプリケーションとが混在して動作する。
【０００４】
さらに、メインドライバがＶ４プリンタドライバとなったとしても、従来型のＧＤＩアプリケーションは、印刷処理を行う際、ＧＤＩ描画命令を出力する。そこで、ＧＤＩアプリケーションがＶ４プリンタドライバを用いて印刷処理する場合、ＯＳがＧＤＩ描画命令をＸＰＳ描画命令に変換する処理を行なう。具体的には、ＧＤＩアプリケーションから出力されたＧＤＩ描画命令をＭＸＤＷ（Ｍｉｃｒｏｓｏｆｔ  ＸＰＳ  Ｄｏｃｕｍｅｎｔ  Ｗｒｉｔｅｒ）がＸＰＳ描画命令に変換する。そして、変換後のＸＰＳ描画命令がＶ４プリンタドライバに入力されるような構成となっている。
【０００５】
特許文献１では、プリンタドライバに入力されるＸＰＳ描画命令が、ＧＤＩアプリケーションから出力されたＸＰＳ描画命令であるか否かを判定し、印刷可能領域からはみ出さないように印刷する技術が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−２７６７４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ＧＤＩアプリケーションから出力されたＧＤＩ描画命令がＭＸＤＷによって変換されたＸＰＳ描画命令に従ってＶ４プリンタドライバで描画した結果は、ＧＤＩプリンタドライバで描画した結果と異なってしまう場合がある。すなわち、該ＧＤＩアプリケーションから出力されたＧＤＩ描画命令をＧＤＩプリンタドライバで描画した結果とＶ４プリンタドライバで描画した結果は異なってしまう場合がある。
【０００８】
ＧＤＩ描画命令の中には様々な描画命令が含まれる。例えばＧＤＩ描画命令の中にはビットマップブラシと呼ばれる、指定された領域内部をビットマップ（イメージデータ）で繰り返し描画することを指示する描画命令がある。ＧＤＩプリンタドライバでは、このビットマップブラシ描画命令のビットマップをドライバ独自の解像度で扱うことができる。または、ＧＤＩプリンタドライバのＵＩ画面を通じて、印刷を行うユーザーがビットマップブラシ用の解像度を指定することができる。ＧＤＩプリンタドライバは、そのユーザー指定に応じた解像度（例えば６００ｄｐｉや３００ｄｐｉ）でビットマップを扱うことができる。このように、ＧＤＩプリンタドライバを用いた処理によれば、プリンタドライバ側の設定に応じた解像度（指定解像度。例えば６００ｄｐｉや３００ｄｐｉ）でビットマップが繰り返し描画されることになる。
【０００９】
一方、ＧＤＩアプリケーションから出力されたＧＤＩ描画命令をＶ４プリンタドライバを用いて印刷処理する場合には、前述のように、ＭＸＤＷによってＧＤＩ描画命令がＸＰＳ描画命令に変換される。この変換処理においては、ＭＸＤＷがビットマップブラシ描画命令のビットマップを固定の解像度（例えば１５０ｄｐｉ）のイメージデータ（タイルイメージと呼ぶ）に変換する。つまり、ビットマップブラシ描画命令を、その固定の解像度のタイルイメージを繰り返し描画するタイルイメージ描画命令に変換する。このようにしてＭＸＤＷによって変換されたタイルイメージ描画命令がＶ４プリンタドライバに入力されることになる。すなわちＶ４プリンタドライバに描画命令が入力された時点においては既にＭＸＤＷによって繰り返しのパターン描画に用いられるイメージデータの解像度が確定した状態である。このため、Ｖ４プリンタドライバを用いた処理においては、その確定されている解像度（例えば１５０ｄｐｉ）での繰り返し描画が行われることになる。したがって、ＭＸＤＷを経由してＶ４プリンタドライバで出力した結果は、ＧＤＩプリンタドライバでの出力結果と比べて解像度が異なることがある。
【００１０】
図１は、ＧＤＩプリンタドライバの出力結果とＶ４プリンタドライバの出力結果との例を示す図である。図１における背景画像がビットマップブラシ描画命令の結果出力された画像である。図１（ａ）および図１（ｂ）はビットマップブラシ描画命令をそれぞれＧＤＩプリンタドライバが６００ｄｐｉおよび３００ｄｐｉで描画した結果である。図１（ｃ）は同じビットマップブラシ描画命令をＶ４プリンタドライバにて描画した結果であり、ＭＸＤＷによって確定された１５０ｄｐｉで描画されている。両者の描画結果の違いは明らかである。このように、ＧＤＩアプリケーションから同じＧＤＩ描画命令が出力された場合に、ＧＤＩプリンタドライバを用いる処理とＶ４プリンタドライバを用いる処理とでタイルイメージの粗さが異なるという問題がある。
【課題を解決するための手段】
【００１１】
本発明に係る印刷制御装置は、ＸＰＳ描画命令を受信する受信手段と、前記受信したＸＰＳ描画命令の出力元のアプリケーションがＧＤＩアプリケーションである場合において、前記受信したＸＰＳ描画命令にタイルイメージ描画命令が含まれるかを判定する判定手段と、前記受信したＸＰＳ描画命令にタイルイメージ描画命令が含まれると判定された場合、前記タイルイメージ描画命令に従ってパターン描画されるタイルイメージの解像度が変更されるように、前記タイルイメージ描画命令を修正する修正手段と、前記修正されたタイルイメージ描画命令に基づく印刷コマンドをプリンタに出力する出力手段とを有することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、ＧＤＩアプリケーションから出力された描画命令に基づく印刷をする際に、ＧＤＩプリンタドライバを用いた出力結果とＶ４プリンタドライバを用いた出力結果との差異を軽減することができる。
【図面の簡単な説明】
【００１３】
【図１】ＧＤＩプリンタドライバとＶ４のプリンタドライバとによって出力結果が異なってしまう例を示す図である。
【図２】実施例１の説明で用いる印刷処理システムの一例を示すブロック図である。
【図３】実施例１の説明で用いる印刷制御装置の構成を示すブロック図である。
【図４】実施例１の説明で用いる印刷制御装置の処理を示すフローチャートである。
【図５】実施例１の説明で用いるＸＰＳファイルの階層構造の一例を示す図である。
【図６】実施例１の説明で用いるＸＰＳ描画命令の一例を示す図である。
【図７】実施例１の説明で用いるアプリケーション種別判定処理のフローチャートである。
【図８】実施例１の説明で用いるタイルイメージ描画命令修正処理のフローチャートである。
【図９】実施例１の説明で用いる、タイルイメージの解像度を指定するＵＩの例を示す図である。
【図１０】実施例２の説明で用いる、ＧＤＩ描画命令に存在するハッチの種類と概要とを示す図である。
【図１１】実施例２の説明で用いるタイルイメージ描画修正処理のフローチャートである。
【図１２】実施例２の説明で用いるハッチ描画命令がＭＸＤＷによってタイルイメージ描画命令に変換された際のタイルイメージの特徴を示す図である。
【図１３】実施例３の説明で用いるアプリケーション種別判定処理のフローチャートである。
【発明を実施するための形態】
【００１４】
以下、本発明を実施するための形態について図面を用いて説明する。
【実施例１】
【００１５】
以下で説明する実施例は、印刷処理システム内のプリンタドライバおける描画命令の修正処理を中心に説明する。
【００１６】
図２は、本実施例における印刷処理システムのブロック図を示す図である。印刷処理システムは、ＣＰＵ２０１、ＲＡＭ２０２、ＨＤＤ２０３、入力装置２０４、出力装置２０５、印刷装置２０６、ＲＯＭ２０７を有する。ＣＰＵ２０１は、本実施例の処理に関するプログラムおよび関連データをＨＤＤ２０３から読み込む。その後、ＨＤＤ２０３からＲＡＭ２０２にロードされたシステムプログラム（ＯＳ）、アプリケーションプログラムに従って、入力装置２０４から入力される情報を処理して、出力装置２０５や印刷装置２０６に出力する。なお、本実施例では、出力装置２０５はディスプレイなどの表示装置とし、印刷装置２０６と区別する。また、入力装置２０４はキーボード、ポインティングデバイス、タッチパネル等で構成されているものとする。さらにＨＤＤ２０３は、データを記憶する装置であればいずれの形態のものであってもよい。図２に示す各ブロックは一つの装置として構成されていてもよいし、ネットワークを介して接続されてもよい。図２の例においてはＣＰＵ２０１、ＲＡＭ２０２、ＨＤＤ２０３、入力装置２０４、出力装置２０５、ＲＯＭ２０７が印刷制御装置２１０を構成し、印刷制御装置２１０から印刷装置２０６に対して印刷データが出力されるものとする。
【００１７】
図３は印刷制御装置２１０の詳細を示すブロック図である。印刷制御装置２１０はＯＳ（Operation System）３０１を有する。情報処理装置は、ＯＳ３０１上において機能するプリンタドライバ３１０とデータ送受信部３３０とアプリケーション３４０とＭＸＤＷ３５０とを有する。プリンタドライバ３１０は、ユーザインターフェース部３１１、レイアウト処理部３１２、印刷コマンド制御部３１３、印刷データ制御部３２０を有する。印刷データ制御部３２０はアプリケーション種別判定部３２１、タイルイメージ描画命令修正部３２２、印刷データ生成部３２３を有する。ＯＳ３０１が動作する情報処理装置２１０は印刷装置２０６と有線または無線で接続されており、データのやり取りが行なわれる。
【００１８】
本実施例におけるプリンタドライバ３１０は、Ｖ４プリンタドライバである。すなわち、ＸＰＳ描画命令を入力するプリンタドライバである。
【００１９】
アプリケーション３４０は、文書データなどを作成するアプリケーションソフトウェアである。アプリケーション３４０の中には、ＧＤＩ描画命令を出力するＧＤＩアプリケーションもあればＸＰＳ描画命令を出力するＸＰＳアプリケーションもある。ＸＰＳアプリケーションから出力されたＸＰＳ描画命令は、直接プリンタドライバ３１０に入力される。一方、ＧＤＩアプリケーションから出力されたＧＤＩ描画命令は、ＭＸＤＷ（ＭＸＤＣともいう）３５０に入力される。ＭＸＤＷ３５０は、ＧＤＩ描画命令をＸＰＳ描画命令に変換する。そして、変換されたＸＰＳ描画命令がプリンタドライバ３１０に入力される。
【００２０】
なお、例えば不図示のＧＤＩプリンタドライバと、Ｖ４プリンタドライバであるプリンタドライバ３１０と、がＯＳ上に並存する形態もあり、ＯＳ３０１はユーザが選択したプリンタドライバ３１０に向けてＧＤＩ描画命令を出力することになる。つまり、アプリケーション３４０がＧＤＩアプリケーションである場合において、ユーザがＶ４プリンタドライバであるプリンタドライバ３１０を選択して印刷指示をした場合、ＯＳ３０１はＭＸＤＷ３５０にＧＤＩ描画命令を出力することになる。
【００２１】
これはプリンタドライバ３１０側からの観点で見ると、入力されるＸＰＳ描画命令が、ＸＰＳアプリケーションから直接入力されたものである場合と、ＧＤＩ描画命令がＭＸＤＷ３５０によって変換された結果のＸＰＳ描画命令である場合とがある。以下で説明する例では、ＸＰＳ描画命令がＧＤＩアプリケーションから出力されたもの（つまり、ＭＸＤＷ３５０で変換されたもの）であるかに応じた処理をプリンタドライバ３１０が行なう例を中心に説明をする。
【００２２】
図３の構成の説明を続ける。
【００２３】
ユーザインターフェース部３１１は、ユーザが印刷装置に対しての設定など各種印刷設定を入力したり、印刷開始指示をしたりするためのユーザインターフェースである。
【００２４】
レイアウト処理部３１２は、アプリケーション３４０から指定される描画命令を受け、Ｎ−ｕｐなどレイアウトに関する変換を行う。
【００２５】
印刷データ制御部３２０は、レイアウト処理部３１２から指定される描画命令を受け、印刷装置２０６において処理できる印刷データを作成する。なお、印刷データ制御部３２０の処理はレイアウト処理部３１２での処理の前で行なわれてもよい。
【００２６】
アプリケーション種別判定部３２１は、印刷命令を出力したアプリケーション３４０がＧＤＩアプリケーションか、ＸＰＳアプリケーションかを判定する。
【００２７】
タイルイメージ描画命令修正部３２２は、アプリケーション種別判定部３２１でＧＤＩアプリケーションからの印刷であると判定された場合、かつ、タイル描画命令が印刷命令に含まれて入力された場合に、タイルイメージの修正を行う。そうでない場合は、描画命令を修正せずに印刷データ生成部３２３に出力する。詳細は後述する。
【００２８】
印刷データ生成部３２３は、タイルイメージ描画命令修正部３２２から出力される描画命令を用いて、ビットマップデータやＰＤＬデータ等の印刷データを生成する。すなわち、修正されたタイルイメージ描画命令に基づいてレンダリングされたイメージデータ（ビットマップデータ）を生成したり、修正されたタイルイメージを含む描画命令を示すＰＤＬデータを生成したりする。
【００２９】
印刷コマンド制御部３１３は、印刷データ生成部３２３により生成された印刷データに所定の制御情報（例えば、ＰＤＬのバージョンや、２ｕｐ指示などを付加するなどして、印刷装置に対応した印刷コマンドを生成する。
【００３０】
データ送受信部３３０はＯＳの機能であり、印刷装置２０６とのデータ送受信を行う。データ送受信部３３０は印刷コマンド制御部３１３で生成された印刷コマンドを印刷装置２０６へ送信する。
【００３１】
印刷装置２０６は、接続されたホスト装置である印刷制御装置２１０のデータ送受信部３３０から送信されてくる印刷コマンドに応じた印刷処理を行う。
【００３２】
次に、プリンタドライバ３１０の動作を図４を用いて説明する。
【００３３】
図４は、本実施例のシステム全体を示すフローチャートであり、プリンタドライバ３１０のプログラム処理である。ユーザがアプリケーション３４０を起動し印刷指示を入力すると、アプリケーション３４０から描画命令が出力される。ここで、アプリケーション３４０から渡される描画命令が、必要であればＯＳの機能であるＭＸＤＷ３５０を用いてＸＰＳ形式の描画命令に変換され、プリンタドライバに入力される。図４は、このようにＸＰＳ描画命令がプリンタドライバ３１０に入力された後の処理の例を示している。図４に示す処理はプリンタドライバ３１０において実行される処理である。なお、図４に示す処理は、ハードウェア制御の面から見ると、ＨＤＤ２０３やＲＯＭ２０７などに格納されたプリンタドライバのプログラムをＣＰＵ２０１がＲＡＭ２０２に読み出し、実行することによって実現されるものである。すなわち、ＣＰＵ２０１がプリンタドライバ３１０の各機能部として動作することになる。以下では、プリンタドライバの各機能部の側面からフローチャートを説明する。
【００３４】
ステップＳ４０１においてプリンタドライバ３１０は、印刷命令を出力したアプリケーションの種別を判定する。すなわち、アプリケーション種別判定部３２１は、印刷命令を出力した出力元のアプリケーションがＧＤＩアプリケーションか、またはＸＰＳアプリケーションかの判定を行う。判定の方法は後述する。
【００３５】
次にステップＳ４０２においてプリンタドライバ３１０は、入力されたＸＰＳ描画命令を解析し、中間データの生成を行う。すなわち、タイルイメージ描画命令修正部３２２が、ＸＰＳ描画命令から中間データの生成を行なう。ここで、中間データとは、プリンタドライバ内での処理に適したデータのことである。大まかな処理としては、ＸＰＳ描画命令から中間データを生成し、中間データから印刷データが生成される。生成される印刷データは、前述のようにビットマップイメージの場合もあればＰＤＬデータの場合もある。
【００３６】
ステップＳ４０３においてプリンタドライバ３１０は、ステップＳ４０１の判定の結果、印刷命令を出力したアプリケーションがＸＰＳアプリケーションと判定された場合はステップＳ４０５へ処理を進める。一方、印刷命令を出力したアプリケーションがＧＤＩアプリケーションであると判定された場合、ステップＳ４０４に処理を進める。
【００３７】
ステップＳ４０４においてタイルイメージ描画命令修正部３２２は、タイルイメージ描画命令の修正を行う。この修正方法は図８を用いて後述する。その後、ステップＳ４０５に進む。
【００３８】
ステップＳ４０５においてプリンタドライバは中間データを印刷装置が受け取ることができる印刷コマンドに変換する。すなわち、タイルイメージ描画命令の修正があった場合には、その修正がなされている中間データを印刷コマンドに変換する。つまり、印刷データ生成部３２３がタイルイメージ描画命令修正部３２２から出力された中間データから印刷データを生成する。そして、印刷コマンド制御部３１３が生成された印刷データから印刷コマンドを生成する。
【００３９】
ステップＳ４０６においてプリンタドライバ３１０は、ステップＳ４０５で生成された印刷コマンドを印刷装置２０６に送信する。すなわち、データ送受信部３３０が印刷コマンドを印刷装置２０６に送信する。
【００４０】
なお、図４の例では、まず印刷命令を出力した出力元のアプリケーションがＧＤＩアプリケーションか、またはＸＰＳアプリケーションかの判定を行い、その後、タイルイメージ描画命令が含まれるかの判定を行なう例を説明した。しかしながら、これに限られるものではなく、先にタイルイメージ描画命令が含まれるかを判定し、その後に、アプリケーション種別の判定を行なう処理であってもよい。
【００４１】
ここで、図５を用いて簡単に、ＸＰＳ描画命令を含むデータの電子ドキュメントフォーマットであるＸＰＳファイルについて説明する。ＸＰＳファイルとは、ＸＭＬ形式で記述される電子ドキュメントフォーマットの仕様である。ＸＰＳファイルはこの仕様に従って記述されたファイルである。ＸＰＳでは、ドキュメント情報の全てをＸＭＬで記述しており、記述内容ごとの複数ファイルをｚｉｐ圧縮により１つにパッケージングしている。図５はＸＰＳファイルの階層構造の一例を示した図である。尚、階層構造においては説明に不要な箇所の一部を省略して記載している。
【００４２】
ＸＰＳファイルの階層構造は仕様で定められており、ｒｏｏｔフォルダの下の第一階層に「＿ｒｅｌｓ」、「Ｄｏｃｕｍｅｎｔｓ」等のフォルダが存在する。「＿ｒｅｌｓ」は１つの文書データの構成情報が記述されるＦｉｘｅｄＤｏｃｕｍｅｎｔＳｅｑｕｅｎｃｅ．ｆｄｓｅｐ．ｒｅｌｓへの参照情報を有する。「Ｄｏｃｕｍｅｎｔｓ」は、１つのＸＰＳファイルに含まれる各ドキュメントを示すフォルダ（図５の例では１つのドキュメントを示す「１」のフォルダ）を有する。そして、各ドキュメントを示すフォルダ（例えば「１」）は、そのドキュメントのドキュメント構成情報「ＦｉｘｅｄＤｏｃｕｍｅｎｔ．ｆｄｏｃ」を有する。また、この各ドキュメントを示すフォルダは、そのドキュメントを構成する各ページの情報を格納するための「Ｐａｇｅｓ」フォルダや、「Ｒｅｓｏｕｒｃｅｓ」フォルダなども有する。各ドキュメント構成情報「ＦｉｘｅｄＤｏｃｕｍｅｎｔ．ｆｄｏｃ」には「Ｐａｇｅｓ」フォルダの階層の下の各ページの参照情報が記述されている。
【００４３】
「１．ｆｐａｇｅ」「２．ｆｐａｇｅ」にはそれぞれ１つのページ情報が記述される。ここには必要に応じて、「Ｒｅｓｏｕｒｃｅｓ」フォルダ内に格納されているデータへの参照情報が記述される。例えば、タイルイメージを所定の領域内にパターン描画せよ、というタイルイメージ描画命令の場合には、タイルイメージは「Ｒｅｓｏｕｒｃｅｓ」フォルダに格納されており、このタイルイメージの参照情報が記述される。図６（ａ）は、「Ｐａｇｅｓ」フォルダに格納されている１つのファイルである図５の「１．ｆｐａｇｅ」に対応している。
【００４４】
図６（ａ）は、タイルイメージ描画命令の一例を含む描画命令の例を示している。記述６０１は、＜！−−  Ｍｉｃｒｏｓｏｆｔ  ＸＰＳ  Ｄｏｃｕｍｅｎｔ  Ｃｏｎｖｅｒｔｅｒ  （ＭＸＤＣ）  Ｇｅｎｅｒａｔｅｄ！  Ｖｅｒｓｉｏｎ：  ０．３．９６００．１７４１５  −−＞と記述されている。この記述から、このＸＰＳファイルを作成した作成元がＭｉｃｒｏｓｏｆｔ（登録商標）製のＭＸＤＷのバージョン０．３．９６００．１７４１５によって生成されたＸＰＳファイルであることが分かる。また、ＸＰＳファイルでは、各ドキュメント及び各ページに印刷条件を記述できるようになっている。印刷条件をプリントチケットと呼ぶ。図６（ｂ）はプリントチケットの一例を示す図である。記述６１０を参照するとＭＸＤＷによって生成されたＸＰＳファイルであることが分かる。
【００４５】
なお、図６（ａ）の記述６０２にはタイルイメージ描画命令の記述事項が記載されており、ＩｍａｇｅＢｒｕｓｈがパターン描画命令である。また、記述６０３の１．ＰＮＧがタイルイメージへの参照を示している。ＭＸＤＷから入力されるＸＰＳ描画命令においては、このタイルイメージがＭＸＤＷによって解像度固定で作成されたイメージとしてプリンタドライバ３１０に入力されてくる。つまり、ＭＸＤＷは、ＧＤＩ描画命令を解釈して、パターン描画がなされるイメージを１５０ｄｐｉの解像度のイメージデータ（図６（ａ）の例では「１．ＰＮＧ」）に変換してプリンタドライバ３１０に出力する。このような解像度固定のタイルイメージのパターン描画命令に従った描画結果は、図１に示したようにＧＤＩプリンタドライバを用いた処理と異なってしまう。本実施例では、そのような出力結果の違いを軽減する処理を行なう。詳細は後述する。
【００４６】
次に、ステップＳ４０１のアプリケーション種別判定処理の詳細について説明する。図７はＸＰＳアプリケーション判定処理のフローチャートであり、図４のＳ４０１から呼び出される。本処理は図３のアプリケーション種別判定部３２１が行う処理である。
【００４７】
ステップＳ７０１においてアプリケーション種別判定部３２１は、入力されたＸＰＳファイルに特定の文字列が含まれるか否かを判定する。これは前述の図６（ａ）の例で示した通り、記述６０１の記載が図５の「１．ｆｐａｇｅ」にあるか無いかを判定する。もちろん、判定対象ページは１ページ目（「１．ｆｐａｇｅ」）に限るものではなく、その他のページ（例えば「２．ｆｐａｇｅ」など）に特定の文字列があるか無いかに基づいて判定してもよい。さらには、図６（ｂ）の記述６１０に示す記載がプリントチケットに含まれているか否かで判定してもよい。ステップＳ７０１において含まれないと判定された場合には、ステップＳ７０２においてアプリケーション種別判定部３２１は、プリンタドライバへ入力されたＸＰＳ描画命令はＭＸＤＷによって生成されたものでないと判定する。このことから、アプリケーション種別判定部３２１は、プリンタドライバへ入力されたＸＰＳ描画命令はＸＰＳアプリケーションに由来する描画命令であると判定してフローチャートを終了する。また、ステップＳ７０１において特定の文字列が含まれると判定された場合には、ステップＳ７０２においてアプリケーション種別判定部３２１は、入力されたＸＰＳファイルはＭＸＤＷにて生成されたものであると判定する。このことから、アプリケーション種別判定部３２１は、プリンタドライバへ入力されたＸＰＳ描画命令はＧＤＩアプリケーション由来の描画命令であると判定してフローチャートを終了する。
【００４８】
以上がアプリケーション種別判定処理であり、ユーザが印刷指示を入力したアプリケーションがＸＰＳアプリケーションか否かを判定することができる。
【００４９】
図８はタイルイメージ描画命令修正処理のフローチャートであり、図４のＳ４０４から呼び出される。本処理は図３のタイルイメージ描画命令修正部３２２が行う処理である。タイルイメージ描画命令修正部３２２はすべての描画命令に対してステップＳ８０２〜Ｓ８０４を繰り返す（Ｓ８０１）。
【００５０】
ステップＳ８０２においてタイルイメージ描画命令修正部３２２は、描画命令がタイルイメージ描画命令か否かを判定する。タイルイメージ描画命令であるか否かは、例えば図６（ａ）に示すＩｍａｇｅＢｒｕｓｈ命令の記述があるか否かで判定することができる。タイルイメージ描画命令でない場合は次の描画へ進み、タイルイメージ描画命令である場合はステップＳ８０３へ処理を進める。
【００５１】
ステップＳ８０３においてタイルイメージ描画命令修正部３２２は、タイルイメージ描画命令に用いるタイルイメージの解像度を取得する。本実施例においては、ＧＤＩプリンタドライバと同様に、ユーザがＵＩ画面を通じてタイルイメージの解像度を指定可能に構成している。図９は、プリンタドライバ３１０のＵＩ画面の一例を示す図である、印刷設定をユーザが設定可能な画面を示している。ステップＳ８０３で取得する指定パターン解像度は、図９に示すようにユーザが印刷設定を行なうＵＩ画面から指定した値である。また、そのようなＵＩが存在しない場合には、任意の解像度をプリンタドライバ内に保持しておき、その値を指定パターン解像度として用いると決定してもよい。ここで取得したタイルイメージの指定パターン解像度をＸ（ｄｐｉ）とする。
【００５２】
ステップＳ８０４においてタイルイメージ描画命令修正部３２２は、タイルイメージ描画命令において参照されているタイルイメージ（図６（ａ）の例では「１．ＰＮＧ」）を１５０／Ｘ倍に変換する修正を行なう。すなわち、ＭＸＤＷによって所定の固定値（ここでは１５０ｄｐｉ）に変換されてしまったタイルイメージをＧＤＩプリンタドライバで指定された解像度と同様の出力サイズとなるように変換する。例えば、各タイルイメージのサイズが｛（ＭＸＤＷにより変換された固定解像度）／（指定パターン解像度）｝となるように変換する。尚、変換する倍率は正確に１５０／Ｘ倍である必要はなく、幅を持たせてもよい。幅を持たせることで、タイルイメージの拡縮によって想定していない描画抜けや、タイルイメージの劣化を抑えることができる。また、ＭＸＤＷが１５０ｄｐｉとは異なる別の固定解像度に変換する形態となった場合には、その形態に対応した解像度を用いた変換処理を行なえばよい。以上がタイルイメージ描画命令修正処理のフローチャートである。
【００５３】
このようにタイルイメージ描画命令の修正処理とは、タイルイメージ描画命令が参照するタイルイメージを所定の倍率に変換する処理である。従って、この処理の例においては、タイルイメージ描画命令に含まれる、描画対象の領域（サイズ）や、描画命令自体に変更は生じない。しかしながら、タイルイメージ描画命令の修正処理はこの例に限られることはない。例えば、タイルイメージを描画する描画対象の領域を拡大させてタイルイメージをパターン描画し、その領域を縮小させる処理でもよい。また、描画命令自体を変更する処理と、タイルイメージを変換する処理の両方を実行する処理でもよい。いずれの形態にせよ、ＧＤＩアプリケーション由来のＸＰＳ描画命令のタイルイメージ描画命令である場合には、ＧＤＩプリンタドライバと同様にドライバで指定される任意の解像度でのパターン描画となるように、結果的に修正できればよい。
【００５４】
また、印刷装置に送信されるデータは、プリンタドライバ３１０において描画命令をビットマップイメージデータに変換したデータでもよいし、印刷装置に適したＰＤＬデータでもよい。いずれの形態のデータであっても、修正が施されたタイルイメージ描画が行なわれることになる。
【００５５】
以上のように、本実施例では印刷を実行したアプリケーションがＧＤＩアプリケーションの場合においても、ＭＸＤＷによって解像度が異なってしまうタイルイメージ描画を修正して、ＧＤＩプリンタドライバを用いる場合と同様の出力を得ることが可能となる。
【実施例２】
【００５６】
実施例１では、タイルイメージ描画命令のタイルイメージを一定の倍率で変換する例を説明した。これは、ビットマップブラシと呼ばれる、ビットマップイメージのパターン描画を行なうＧＤＩ描画命令がＭＸＤＷによって図６（ａ）に示すようなタイルイメージ描画命令（ＸＰＳ描画命令）に変換されることを想定した処理である。
【００５７】
一方、ＧＤＩアプリケーションが出力するパターン描画命令（ＧＤＩ描画命令）の種類の中には、ビットマップブラシのほかにハッチ描画命令がある。このハッチ描画命令もＭＸＤＷによってタイルイメージ描画命令（ＸＰＳ描画命令）に変換される。ここで、ハッチ描画命令とは、図１０に示すように６種類存在し、描画の内容も概要で規定されている命令である。つまり、パターン描画する対象のイメージが描画命令には含まれない形式になっている。従ってＧＤＩプリンタドライバではハッチ描画命令が渡ってきた場合には、独自にイメージを保持、または作成してタイルイメージとして使用していた。ところがＶ４プリンタドライバではＭＸＤＷによってこのタイルイメージが作成された状態でタイルイメージ描画命令としてプリンタドライバに入力される。この為、ＧＤＩプリンタドライバと描画内容が一致しない。実施例２ではこの場合での解決手法を示す。
【００５８】
本実施例では、タイルイメージ描画命令修正部３２２の処理が実施例１と異なる。他の構成等については実施例１で説明したものと同様であるので、ここでは説明を省略する。
【００５９】
図１１はタイルイメージ描画修正処理のフローチャートであり、図４のＳ４０４から呼び出される。本処理は図３のタイルイメージ描画命令修正部３２２が行う処理である。タイルイメージ描画命令修正部３２２はすべての描画命令に対してステップＳ１１０２〜Ｓ１１０６を繰り返す（Ｓ１１０１）。
【００６０】
ステップＳ１１０２においてタイルイメージ描画命令修正部３２２は、描画命令がタイル描画命令か否かを判定し、タイル描画命令でない場合は次の描画命令へ進み、タイル描画命令である場合はステップＳ１１０３へ処理を進める。
【００６１】
ステップＳ１１０３においてタイルイメージ描画命令修正部３２２は、入力されたタイルイメージ描画命令が、元ハッチ描画命令であるか否かを判定する。すなわち、タイルイメージ描画命令がＭＸＤＷ３５０によって変換される前にはハッチ描画命令であったか否かを判定する。図１２はハッチ描画命令がＭＸＤＷ３５０によってタイルイメージ描画に変換された際のタイルイメージの特徴を表にしたものである。
【００６２】
例えば、ＧＤＩ描画命令においてハッチＩＤがＨＳ＿ＨＯＲＩＺＯＮＴＡＬのハッチ描画命令は、ＭＸＤＷによる変換によってタイルイメージが生成され、そしてそのタイルイメージを所定の範囲に描画せよ、というタイルイメージ描画命令に変換される。このように生成されるタイルイメージの特徴は図１２に示すとおりである。すなわち、ＭＸＤＷ３５０がＨＯＲＩＺＯＮＴＡＬのハッチ描画命令を変換する際に生成するタイルイメージのサイズ（ｐｉｘｅｌ）は８＊４０である。また、この生成されるタイルイメージの大きさ（ＸＰＳ座標）は１．２８＊６．４である。図１２で示す特徴１および特徴２はタイルイメージのサイズ（大きさ）をＰｉｘｅｌで表すかＸＰＳ座標で表すかの違いであり、いずれも同じ内容を示している。従って、タイルイメージ描画命令修正部３２２は、まずタイルイメージのサイズや大きさが図１２に示すような特徴１または特徴２に合致するタイルイメージであるか否かを判定する。特徴１または特徴２に合致するタイルイメージである場合、図１２に示すタイルイメージの中身を参照して、図１２に示すようなタイルイメージと同じ描画内容であるか否かを判定する。同じ描画内容である場合には、入力されたタイルイメージ描画命令が、ＭＸＤＷ３５０によって変換される前にはハッチ描画命令であったと判定する。
【００６３】
ＭＸＤＷによる変換前の描画命令がハッチ描画命令でない場合はステップＳ１１０４、ステップＳ１１０５へ処理を進める。ステップＳ１１０４、Ｓ１１０５は、図８におけるステップＳ８０３、ステップＳ８０４と同様である為、説明を省略する。ＭＸＤＷによる変換前の描画命令ががハッチ描画命令である場合はステップＳ１１０６へ処理を進める。
【００６４】
ステップＳ１１０６においてタイルイメージ描画命令修正部３２２は、タイル描画命令に含まれるタイルイメージを、独自で保持している、またはその場で生成したイメージと置き換える。この時、ステップＳ１１０３で判定されたハッチの種類が、ＧＤＩプリンタドライバで利用していたものと同じイメージに置き換えるようにすることで、Ｖ４プリンタドライバとＧＤＩプリンタドライバの出力結果を一致させることができる。すなわち、プリンタドライバ３１０は、図１０で示すハッチ描画命令（ＧＤＩ描画命令）を処理する際にＧＤＩプリンタドライバが用いるタイルイメージのデータ、またはタイルイメージの情報を保持しておく。そして、プリンタドライバ３１０は、ＧＤＩプリンタドライバと同じタイルイメージを使用することでＶ４プリンタドライバとＧＤＩプリンタドライバの出力結果を一致させることができる。
【００６５】
以上のように、本実施例によれば印刷を実行したアプリケーションがＧＤＩアプリケーションであり、かつハッチ描画命令が含まれていた場合であっても、Ｖ４プリンタドライバとＧＤＩプリンタドライバとで同様の出力を得ることが可能となる。
【実施例３】
【００６６】
実施例１、２では、ＭＸＤＷがタイルイメージ描画命令を出力する際にタイルイメージを１５０ｄｐｉ相当に変換することを前提として記述した。しかしながら、今後ＭＸＤＷにおいてタイルイメージの解像度指定が可能となる場合もあり得る。この場合、実施例１、２の処理を行うとタイルイメージの描画結果がＧＤＩプリンタドライバと比較して異なってしまう。実施例３ではこの場合での解決手法を示す。なお、本実施例においてはアプリケーション種別判定部３２１の処理が実施例１と異なる。他の構成等については実施例１または実施例２で説明したものと同様であるので、ここでは説明を省略する。
【００６７】
図１３はアプリケーション種別判定処理のフローチャートであり、図４のＳ４０１から呼び出される。本処理は図３のアプリケーション種別判定部３２１が行う処理である。
【００６８】
ステップＳ１３０１においてアプリケーション種別判定部３２１は、入力されたＸＰＳファイルに特定の文字列が含まれるか否かを判定する。これは前述の図７のステップＳ７０１の処理と同様である。ステップＳ１３０１において特定の文字が含まれないと判定された場合には、ステップＳ１３０４においてアプリケーション種別判定部３２１は、プリンタドライバへ入力されたＸＰＳファイルはＭＸＤＷによって生成されたものでないと判定する。このことから、アプリケーション種別判定部３２１は、プリンタドライバへ入力されたＸＰＳファイルはＸＰＳアプリケーションからの印刷であると判定してフローチャートを終了する。
【００６９】
また、ステップＳ１３０１において含まれると判定された場合には、ステップＳ１３０２においてアプリケーション種別判定部３２１は、図６で前述した、ＭＸＤＷのバージョンに着目し、ＭＸＤＷに対して解像度を指定できるバージョンであるかを判定する。
【００７０】
ステップＳ１３０２において解像度を指定可能なバージョンであると判定された場合には、ステップＳ１３０４に進む。ステップＳ１３０４においてアプリケーション種別判定部は、プリンタドライバへ入力されたＸＰＳファイルは、ＸＰＳアプリケーションからの印刷であると便宜上判定してフローチャートを終了する。また、ステップＳ１３０２においてＭＸＤＷのバージョンが解像度が指定可能でないバージョンであると判定された場合には、ステップＳ１３０３に進む。ステップＳ１３０３においてアプリケーション種別判定部は、ＧＤＩアプリケーションからの印刷であると便宜上判定する。
【００７１】
なお、ここでは、ＭＸＤＷのバージョンが解像度指定可能なバージョンであるか否かに応じて、便宜上ＸＰＳアプリケーションとみなしたりＧＤＩアプリケーションであるとみなす処理を行なっているに過ぎない。ＸＰＳアプリケーションからの印刷であると判定した場合、図４に示すようにステップＳ４０４のタイルイメージ修正処理を行なわないので、指定された解像度でのタイルイメージのパターン描画が行なわれることになるからである。もちろん、ステップＳ４０４の判定処理を変更して、アプリケーションの種別とバージョンとを元にその後の処理を切り替える、という手法でもよい。
【００７２】
尚、ここでは、ＸＰＳファイルを解析してＭＸＤＷのバージョンを判定する処理を説明した。しかしながらＭＸＤＷの能力値を取得し、解像度を指定できるならばＸＰＳアプリケーションからの印刷、そうでなければＧＤＩアプリケーションからの印刷と判定してもよい。例えば、プリンタドライバ３１０からＭＸＤＷ３５０において解像度指定が可能か否かを問い合わせるＡＰＩをＯＳが実装し、ＡＰＩを通じてＭＸＤＷ３５０において解像度指定が可能か否かを問い合わせてその結果に基づく処理としてもよい。
【００７３】
＜その他の実施例＞
上記の各実施例で説明したタイルイメージ描画命令の修正を行なう機能を有効にするか無効にするかを切り替える機能を有しても良い。例えば、プリンタドライバ３１０のユーザインターフェース部３１１において、有効にするか無効にするかをユーザ入力に応じて切り替え可能な構成にしてもよい。また、タイルイメージ描画命令の修正を行なう機能を無効にした場合には、図９で示すＧＤＩアプリケーションのパターン解像度の項目はグレーアウトにするなど、連動して無効化する処理を行なってもよい。
【００７４】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
2017102670.tif 000003
【図２】
2017102670.tif 000004
【図３】
2017102670.tif 000005
【図４】
2017102670.tif 000006
【図５】
2017102670.tif 000007
【図６】
2017102670.tif 000008
【図７】
2017102670.tif 000009
【図８】
2017102670.tif 000010
【図９】
2017102670.tif 000011
【図１０】
2017102670.tif 000012
【図１１】
2017102670.tif 000013
【図１２】
2017102670.tif 000014
【図１３】
2017102670.tif 000015