(57)【要約】【課題】  プリンタドライバが適切に処理可能な印刷用データを生成できるようにする。【解決手段】  一時メモリ描画部１５３が、所定の形式のグラフィックデータであるＥＭＦデータに含まれる特定種類の描画要素を、ビットマップイメージとして描画して一時メモリ描画データ１６３を生成する。その後、印刷用データ描画部１５４が、上記ＥＭＦデータに基づきプリンタ描画領域１６４に描画処理を行って印刷用データを生成する際に、上記特定種類の描画要素については、一時メモリ描画データ１６３を構成するビットマップイメージのうち、その描画要素を配置すべき座標のイメージを、その描画要素に関する描画結果として用いるようにした。【選択図】        図１０
2015176231.tif 000002
【特許請求の範囲】
【請求項１】
所定の形式のグラフィックデータを、ビットマップイメージとして一時描画領域に描画する第１描画手段と、
前記所定の形式のグラフィックデータに基づき描画処理を行って印刷用データを生成する第２描画手段であって、前記所定の形式において定義される描画要素の種類のうち、予め定めた特定種類の描画要素については、前記第１描画手段により前記一時描画領域に描画されたビットマップイメージのうち、該描画要素を配置すべき座標のイメージを、該描画要素に関する描画結果として用いる第２描画手段とを備えることを特徴とする情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記第１描画手段は、前記グラフィックデータのうち前記特定種類の描画要素を選択して、前記ビットマップイメージとして前記一時描画領域に描画し、前記一時描画領域として、該特定種類の描画要素の描画に必要なサイズの領域を確保することを特徴とする情報処理装置。
【請求項３】
請求項１又は２に記載の情報処理装置であって、
前記特定種類とする描画要素の種類を変更する変更手段を備えたことを特徴とする情報処理装置。
【請求項４】
請求項１乃至３のいずれか一項に記載の情報処理装置であって、
前記第１描画手段の機能及び、前記第２描画手段が前記特定の描画要素の描画に前記一時描画領域のビットマップイメージを用いる機能の有効／無効を切り替える切替手段を備えることを特徴とする情報処理装置。
【請求項５】
請求項１乃至４のいずれか一項に記載の情報処理装置であって、
前記第２描画手段にどのページ記述言語に対応した印刷用データを生成させるかを選択する選択手段と、
前記特定種類とする描画要素の種類を、前記選択手段が選択したページ記述言語に応じて設定する設定手段を備えたことを特徴とする情報処理装置。
【請求項６】
請求項１乃至５のいずれか一項に記載の情報処理装置であって、
前記第２描画手段が生成する印刷用データに基づき印刷を制御するプリンタドライバが取り扱うページ記述言語の形式を識別する識別手段と、
前記特定種類とする描画要素の種類を、前記識別手段が識別したページ記述言語に応じて設定する設定手段とを備えたとを特徴とする情報処理装置。
【請求項７】
請求項１乃至５のいずれか一項に記載の情報処理装置であって、
前記第２描画手段が生成する印刷用データに基づき印刷を制御させるプリンタドライバを、所定の規則に従って選択する選択手段と、
前記選択手段が選択したプリンタドライバが取り扱うページ記述言語の形式を識別する識別手段と、
前記特定種類とする描画要素の種類を、前記識別手段が識別したページ記述言語に応じて設定する設定手段とを備えることを特徴とする情報処理装置。
【請求項８】
所定の形式のグラフィックデータを、ビットマップイメージとして一時描画領域に描画する第１描画手順と、
前記所定の形式のグラフィックデータに基づき描画処理を行って印刷用データを生成する第２描画手順であって、前記所定の形式において定義される描画要素の種類のうち、予め定めた特定種類の描画要素については、前記第１描画手段により前記一時描画領域に描画されたビットマップイメージのうち、該描画要素を配置すべき座標のイメージを、該描画要素に関する描画結果として用いる第２描画手順とを備えることを特徴とする情報処理方法。
【請求項９】
所定の形式のグラフィックデータを、ビットマップイメージとして一時描画領域に描画する第１描画手段と、
前記所定の形式のグラフィックデータに基づき描画処理を行って印刷用データを生成する第２描画手段であって、前記所定の形式において定義される描画要素の種類のうち、予め定めた特定種類の描画要素については、前記第１描画手段により前記一時描画領域に描画されたビットマップイメージのうち、該描画要素を配置すべき座標のイメージを、該描画要素に関する描画結果として用いる第２描画手段とを備えることを特徴とする情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、所定の形式のグラフィックデータに基づき描画処理を行って印刷用データを生成する情報処理装置、情報処理方法及び情報処理システムに関する。
【背景技術】
【０００２】
ある文書を印刷する際、印刷すべき画像を示すデータをMicrosoft  Windows（登録商標）の画像ファイルフォーマットのグラフィックデータであるＥＭＦ（Enhances  Metafile）形式でスプールし印刷することが従来から知られている。この場合、印刷に用いるプリンタを制御するプリンタドライバは、ＥＭＦ形式のデータ（以下「ＥＭＦデータ」という）を、プリンタが解釈可能なページ記述言語（ＰＤＬ）のデータに変換してプリンタに送信し、印刷を実行させる。
【０００３】
また、近年のオフィス環境においては、ＭＦＰ(Multi-Function  Peripheral)やレーザプリンタ、プリントサーバなどがネットワークに接続され、複数の出力装置が利用可能とされていることが多くなっている。そして、このような環境下において、特許文献１に記載のように、仮想プリンタドライバを介してスプールされたＥＭＦデータを他のプリンタドライバに適宜に振り分けて出力する技術も知られている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、特許文献１に記載の技術においては、振り分け先のプリンタドライバは、ベンダや使用するページ記述言語も含めて、様々なものになり得る。そして、プリンタドライバによっては、ＥＭＦデータに含まれ得る一部の種類のレコードを適切に解釈できない場合がある。そして、適切に解釈できないレコードをプリンタドライバに処理させた場合、その部分が黒塗りになってしまう等、望んだ印刷結果を得ることができない。
このような問題は、ＥＭＦデータ以外のグラフィックデータを用いる場合にも同様に発生し得るものである。また、特許文献１に記載のような仮想プリンタドライバを用いるアーキテクチャ以外でも、発生し得るものである。
【０００５】
この発明は、このような事情に鑑みてなされたものであり、プリンタドライバが適切に処理可能な印刷用データを生成できるようにすることを目的とする。
【課題を解決するための手段】
【０００６】
以上の目的を達成するため、この発明の情報処理装置は、所定の形式のグラフィックデータを、ビットマップイメージとして一時描画領域に描画する第１描画手段と、上記所定の形式のグラフィックデータに基づき描画処理を行って印刷用データを生成する第２描画手段であって、上記所定の形式において定義される描画要素の種類のうち、予め定めた特定種類の描画要素については、上記第１描画手段により上記一時描画領域に描画されたビットマップイメージのうち、その描画要素を配置すべき座標のイメージを、その描画要素に関する描画結果として用いる第２描画手段とを設けたものである。
【発明の効果】
【０００７】
上記構成によれば、プリンタドライバが適切に処理可能な印刷用データを生成することができる。
【図面の簡単な説明】
【０００８】
【図１】この発明を適用する環境におけるＰＣとプリンタとの関係の一例を示す図である。
【図２】図１に示したＰＣのハードウェア構成を示す図である。
【図３】図１に示したＰＣが備える、プリンタに印刷ジョブの実行を指示するための機能の構成を示す図である。
【図４】プリンタドライバによるＥＭＦデータの処理の特性について説明するための図である。
【図５】その別の図である。
【図６】ＥＭＦデータにより記述する画像の例を示す図である。
【図７】図６の画像を記述するＥＭＦデータの例を示す図である。
【図８】その別の例を示す図である。
【図９】印刷結果に生じる不具合の例を示す図である。
【図１０】ＥＭＦデータの加工のために出力データ生成部に設けた機能の構成を示す図である。
【図１１】差し替え矩形データの例を示す図である。
【図１２】印刷用データ生成処理のフローチャートである。
【図１３】図１２の続きのフローチャートである。
【図１４】比較例における出力データ生成部の機能構成を示す、図１０と対応する図である。
【図１５】比較例における、図１２及び図１３と対応する印刷用データ生成処理のフローチャートである。
【図１６】第１変形例における、図１２と対応する印刷用データ生成処理のフローチャートである。
【図１７】第２変形例における出力データ生成部の機能構成を示す、図１０と対応する図である。
【発明を実施するための形態】
【０００９】
以下、この発明を実施するための形態について、具体的に説明する。
〔実施形態：図１乃至図１３〕
図１に、この発明を適用する環境におけるＰＣとプリンタとの関係の一例を示す。
図１に示す環境において、複数のＰＣ１０（１０ａ〜１０ｃ）はそれぞれ、ネットワーク３０を介して複数のプリンタ２０（２０ａ〜２０ｃ）と接続される。
【００１０】
これらのうちＰＣ１０ａ〜１０ｃはそれぞれこの発明の情報処理装置の実施形態であり、図３に示すジョブ振り分け部１００の機能により、後述のプリンタドライバ２２０に対して、画像形成（ここでは印刷とする）の実行を指示する。
このとき、ジョブ振り分け部１００は、アプリケーションから受け付けたジョブ実行要求に係る印刷ジョブについて、そのジョブをどのプリンタ２０に実行させるかを選択し、そのプリンタと対応するプリンタドライバ２２０に、必要なデータを供給してプリンタ２０への印刷実行指示を行わせる。
【００１１】
ＰＣ１０ａ〜ＰＣ１０ｃは、共通の機種であることは必須ではないが、この実施形態において特徴的な機能については装置間で特に差がないので、以後の説明においては、１台を代表してＰＣ１０としてその機能について説明する。
また、プリンタ２０ａ〜２０ｃはそれぞれ、プリンタドライバ２２０からの印刷実行指示に従い印刷により用紙に画像を形成する画像形成装置である。プリンタ２０ａ〜２０ｃは互いに異なる機種であっても、同じ機種のものが複数含まれていてもよい。また、プリンタ２０ａ〜２０ｃの全部又は一部が、ネットワーク３０を介さずにＰＣ１０のローカルのプリンタポートに接続されていても構わない。
ネットワーク３０は、有線無線を問わず、任意の規格のものを使用可能である。
【００１２】
次に、図２に、ＰＣ１０のハードウェア構成を示す。
ＰＣ１０は、ハードウェアとしては一般的なコンピュータでよい。すなわち、ＰＣ１０は、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、ＨＤＤ（ハードディスクドライブ）１４、通信Ｉ／Ｆ（インタフェース）１５、表示部１６、及び操作部１７を備え、それらをシステムバス１８により接続した構成としている。
【００１３】
そして、ＣＰＵ１１が、ＲＡＭ１３をワークエリアとしてＲＯＭ１２又はＨＤＤ１４に記憶されたプログラムを実行することにより、ＰＣ１０全体を制御し、プリンタ２０の制御や印刷用データの生成等の後述する各種機能を実現する。
ＨＤＤ１４は、不揮発性記憶媒体（記憶手段）であり、ＣＰＵ１１が実行する各種プログラムや後述する各種データを格納している。
通信Ｉ／Ｆ１５は、プリンタ２０をはじめとする外部装置と通信するためのインタフェースである。使用する通信規格は、有線、無線を問わず、任意でよい。
【００１４】
表示部１６は、ディスプレイ等の、オペレータに情報を提示するための表示手段である。
操作部１７は、キーボード、マウス、タッチパネル等の、オペレータから操作を受け付けるための操作手段である。
なお、表示部１６や操作部１７が外付けであったり、ネットワーク３０を介してＰＣ１０等の外部の端末装置から操作を受け付けることができるようにしたりしてもよい。
【００１５】
次に、図３に、ＰＣ１０が備える、プリンタ２０に印刷ジョブの実行を指示するための機能の構成を示す。
図３に示すように、ＰＣ１０は、ジョブ振り分け部１００と、アプリケーション１５０、プリンタドライバ２２０（２２０ａ〜２２０ｃ）とを備える。
このうちジョブ振り分け部１００は、アプリケーション１５０から受信した印刷ジョブの実行要求に基づき、複数のプリンタ２０ａ〜２０ｃのいずれを印刷に使用するかを、出力先選択部１３２により選択する。
【００１６】
そして、印刷ジョブの実行要求に基づき、その選択したプリンタ２０に印刷を実行させるためのプリンタドライバ２２０が扱える形式のイメージデータ及び印刷設定データを生成し、これをそのプリンタドライバ２２０に渡す。
そして、プリンタドライバ２２０がその受け取ったイメージデータ及び印刷設定データに基づきプリンタ２０を制御して印刷を実行させる。
【００１７】
このことにより、アプリケーション１５０が出力した印刷ジョブの実行要求に基づき、自動的に適切なプリンタ２０を選択し、そのプリンタ２０に印刷を実行させることができる。プリンタの選択の基準は、ユーザ名、クライアント名、アドレス情報、印刷設定の内容、文書のページ数、機密ワードの有無など、種々の情報を用いて定めることができる。
【００１８】
なお、アプリケーション１５０は、アプリケーションソフトウェアにより実現される機能であり、ユーザの操作に従って文書を編集又は操作する機能を備える。このアプリケーション１５０が実現する機能としては、ワードプロセッサ、画像作成・編集・加工、表計算等が考えられる。
【００１９】
ジョブ振り分け部１００の機能構成についてより具体的に説明すると、ジョブ振り分け部１００は、仮想ドライバ１１０、出力データ生成部１３１、出力先選択部１３２、およびデータ発送部１３３を備える。
【００２０】
これらのうち仮想ドライバ１１０は、Ｕｎｉｄｒｖ（Microsoft  Universal  Printer  Driver  Library）ベースのｍｉｎｉドライバであり、ＰｕｂｌｉｃのＤＥＶＭＯＤＥ相当の印刷設定が可能なプリンタドライバである。そして、仮想ドライバ１１０は、アプリケーション１５０からの印刷ジョブ実行要求を受け付ける受付手段として機能する。さらに、印刷ジョブ実行要求と共に受け取った印刷ジョブのデータであるＥＭＦ（Enhanced  Metafile）スプールファイルから、印刷内容を示す所定の形式のグラフィックデータであるＥＭＦデータを抽出し、中間ファイル１２０に、ＥＭＦデータ（描画イメージデータ）１２１として保存する機能を備える。
【００２１】
また、仮想ドライバ１１０は、印刷ジョブ実行要求と共に受信した印刷設定（これも印刷ジョブのデータの一部である）を、中間ファイル１２０にジョブ情報（印刷設定データ）１２２として保存する機能も備える。なお、ジョブ情報１２２はシステム情報も含む。
また、仮想ドライバ１１０は、印刷ジョブ実行要求を受け取ると、出力データ生成部１３１を起動する。
この出力データ生成部１３１は、中間ファイル１２０に保存されたＥＭＦデータ１２１及びジョブ情報１２２を取得し、これらに基づいて、プリンタドライバ２２０に印刷を実行させるためのデータを生成する機能を備える。
【００２２】
この生成に当たり、出力データ生成部１３１は、選択手段である出力先選択部１３２に、ＥＭＦデータ１２１及びジョブ情報１２２の中からプリンタの選択に必要な情報を渡し、ＥＭＦデータ１２１及びジョブ情報１２２に係る印刷ジョブを実行するプリンタを選択させる。この選択の基準や規則が種々考えられることは、上述の通りである。
【００２３】
そして、出力データ生成部１３１は、出力先選択部１３２が選択したプリンタ２０における印刷を制御するためのプリンタドライバ２２０が解釈できる形式のイメージデータ及び印刷設定データを生成し、データ発送部１３３に渡す。このうちイメージデータが印刷用データに該当する。また、出力データ生成部１３１は、任意のプラグインを起動し、ＥＭＦデータ１２１及び／又はジョブ情報の加工を行うこともできる。
【００２４】
データ発送部１３３は、出力先選択部１３２が選択したプリンタドライバ２２０に対し、出力データ生成部１３１から渡されたイメージデータ及び印刷設定データを送信し、それらに基づく印刷ジョブの実行を要求する機能を備える。
以上により、ＰＣ１０は、アプリケーション１５０が出力した印刷ジョブの実行要求に対し、必要な加工を行った上で、適当なプリンタ２０にその加工後のジョブを実行させることができる。
【００２５】
この実施形態において特徴的な点の一つは、出力データ生成部１３１が印刷用データを生成する際に行う描画処理である。以下、この点について説明する。
まず、プリンタドライバ２２０によるＥＭＦデータの処理の特性について、説明する。
図４に、プリンタドライバ２２０がアプリケーション１５０から仮想ドライバ１１０を介さずにＥＭＦデータ１６３を受け取る場合の処理の流れを示す。なお、プリンタドライバは、ページ記述言語としてPostScriptを用いるドライバであるとする。そして、ＥＭＦ形式において定義され、ＥＭＦデータに含まれ得るいくつかの描画要素（ＥＭＦデータにおいては「レコード」と呼ばれる描画内容の単位）は、PostScriptを用いて適切に解釈することができず、プリンタドライバ２２０では正常に処理することができない。
【００２６】
しかし、この場合でも、アプリケーション１５０からのＥＭＦデータの渡し先がプリンタドライバ２２０である場合、ＯＳ（オペレーティングシステム、ここではMicrosoft  Windows（登録商標）であるとする）は、プリンタドライバ２２０がPostScriptを用いるプリンタであると把握できる。そして、アプリケーション１５０がＯＳのＡＰＩ（Application  Programming  Interface）に対して出力した印刷内容を示すデータを、ＡＰＩが、PostScriptが解釈可能な描画要素のみを用いたＥＭＦデータ２０１に変換してプリンタドライバ２２０に渡す。
【００２７】
従って、プリンタドライバ２２０は、渡されたＥＭＦデータ２０１を適切に処理してPostScriptによるページ記述に変換することができる。そして、これをプリンタ２０に渡して印刷を実行させ、適切な印刷結果を得ることができる。
しかし、図３に示すように、アプリケーション１５０から仮想ドライバ１１０を介してプリンタドライバ２２０にＥＭＦデータを渡す場合には、問題がある。
【００２８】
図５に、この場合の処理の流れを示す。
図５の場合、アプリケーション１５０からのＥＭＦデータの渡し先は、仮想ドライバ１１０となる。ここで、仮想ドライバ１１０がページ記述言語としてPostScript以外の言語を用いるとする。この場合も、図４の場合と同様に、ＯＳは、仮想ドライバ１１０が用いるページ記述言語を把握することができる。そして、ＯＳのＡＰＩは、アプリケーション１５０が出力した印刷内容を示すデータを、仮想ドライバ１１０が用いる（PostScript以外の）ページ記述言語により解釈可能な描画要素のみを用いたＥＭＦデータ２０２に変換して仮想ドライバ１１０に渡す。このＥＭＦデータ２０２には、PostScriptでは正しく解釈できない描画要素が含まれ得る。
【００２９】
仮想ドライバ１１０は、このＥＭＦデータ２０２に対して独自に加工を施して、出力データ生成部１３１の機能によりいずれかのプリンタドライバ２２０に渡す。このとき、ＥＭＦデータ２０２をPostScriptに対応させるための特段の対応をしないとすると、プリンタドライバ２２０に渡る段階でも、ＥＭＦデータ２０２にはPostScriptでは正しく解釈できない描画要素が含まれ得る。
【００３０】
このため、プリンタドライバ２２０が渡されたＥＭＦデータ２０２を処理しても、適切にPostScriptによるページ記述に変換できない可能性がある。そして、これをプリンタ２０に渡して印刷を実行させても、適切な印刷結果を得ることができない可能性がある。
PostScriptが正しく解釈できないＥＭＦデータの描画要素は、例えば太字又は斜体のフォントスタイルを使用した場合に発生し得る。ここで、太字の場合を例としてPostScriptが正しく解釈できない描画要素の例を示す。
【００３１】
図６に示すような、３行の文字列「あいうえお」「かきくけこ」「さしすせそ」のうち、２行目の「かきくけこ」が太字である画像をＥＭＦデータとして記述することを考える。
図６の画像を、PostScriptで正しく解釈可能なＥＭＦデータで記述すると、図７のようになる。なお、ここではＥＭＦデータの要部のみを示している。図８においても同様である。
【００３２】
図７のＥＭＦデータでは、レコード１〜３で各１行の文字列を表している。符号５１で示す「type=text」は、後に続くデータがテキストであることを示す情報である。符号５２で示す「text=“文字列”」は、配置すべき文字列を示す情報である。符号５３で示す「font_style=xxxx」は、該当のレコードに係るテキストを装飾なし(nomal)又は太字(bold)とすべきことを示す情報である。符号５４で示す「(x1,y1,x2,y2)=xxxx」は、該当のレコードに係る描画オブジェクト（ここではテキスト）を配置する座標を示す情報である。この座標は、描画オブジェクトを配置する矩形領域の左上隅(x1,y1)及び右下隅(x2,y2)の座標である。
【００３３】
一方、図６の画像は、図８のように記述することもできる。
図８のＥＭＦデータにおいても、レコード１とレコード３は図７の例と同じである。しかしながら、レコード２は異なる。符号５５で示す「type=bitmap」は、後に続くデータがビットマップであることを示す情報である。符号５６で示す「image=”（画像データ）”」は、配置すべきビットマップ画像を格納したファイルの位置及び名称を示す情報である。すなわち、この例では、２行目の文字列を画像として表現している。符号５７で示す「ROP=PATINVERT」は、論理ＸＯＲ演算子を使って、指定したパターン（ビットマップ）の色と、配置先領域の色（例えば背景）とを組み合わせるべきことを指定するラスタオペレーションコードである。座標の記載は、図７の例と同じである。
【００３４】
PostScriptを用いると、図８のＥＭＦデータのうち「ROP=PATINVERT」を解釈することができない。このため、PostScriptを用いるプリンタドライバを用いて図８のＥＭＦデータに基づく印刷を行うと、図９に示すように、レコード２と対応するオブジェクトが、黒塗りの状態で印刷される不具合が起きてしまう。
このような不具合の発生を防止するため、この実施形態では、仮想ドライバ１１０とプリンタドライバ２２０の間に位置する出力データ生成部１３１が、ＥＭＦデータ１２１に適切な加工を施すようにしている。
【００３５】
図１０に、この加工のために出力データ生成部１３１に設けた機能の構成を示す。
出力データ生成部１３１には、ＥＭＦレコード抽出部１５１、差し替え矩形抽出部１５２、一時メモリ描画部１５３、および印刷用データ描画部１５４を設けている。ＥＭＦレコードデータ１６１、差し替え矩形データ１６２、および一時メモリ描画データ１６３は、これらの各部が動作する際に生成及び参照するデータである。プリンタ描画領域１６４は、印刷用データとしてプリンタドライバ２２０に渡すＥＭＦデータを作成するためのメモリ領域である。
【００３６】
なお、図１０の各部の機能は、グラフィックデータである、PostScriptで解釈可能か否か不明な（PostScriptに対応している保証がない）ＥＭＦデータに基づき、印刷用データである、PostScriptで解釈可能なＥＭＦデータを生成する場合の例として説明する。しかし、出力データ生成部１３１が行う印刷用データ生成処理がこれに限られないことは、後述の通りである。ここで、グラフィックデータは、画像の内容を示すデータ、印刷用データは、印刷すべき画像の内容を示すデータであって、プリンタドライバ２２０に渡して印刷を実行させるためのデータである。
【００３７】
さて、図１０の各部のうち、ＥＭＦレコード抽出部１５１は、処理対象のＥＭＦデータから、ＥＭＦレコード（図７及び図８に示した「レコード」に相当するもの）を抽出し、それらをＥＭＦレコードデータ１６１として保存する機能を備える。なお、処理対象のＥＭＦデータは、中間ファイル１２０中のＥＭＦデータ１２１に、出力データ生成部１３１において、図１０の各部が行う印刷用データの生成を除く必要な加工を施した後のデータである。
【００３８】
差し替え矩形抽出部１５２は、ＥＭＦレコードデータ１６１から、PostScriptが解釈できない情報を含むレコードを抽出し、そのレコードと対応する描画オブジェクトが描画時に配置される領域の座標を、差し替え矩形データ１６２として保存する機能を備える。この差し替え矩形抽出部１５２が抽出するレコードが、特定種類の描画要素である。どの種類のレコードを抽出するかは、予め設定しておく。ここでは、図８を用いて説明した「PATINVERT」を含むレコードを抽出するものとするが、特定種類は１種類には限らない。また、各領域の形状は、PostScriptを考慮した場合に抽出されるレコードでは矩形であるが、抽出するレコードの種類によっては他の形状の場合もあり得る。
図１１に差し替え矩形データの例を示すが、このデータには、特定種類の描画要素（図１１では「差し替え矩形」）毎に、その描画要素と対応する描画オブジェクトの配置領域の座標のデータを含む。この例では領域の形状が矩形であるため、左上の頂点座標（Ｘ１，Ｙ１）と右下の頂点座標（Ｘ２，Ｙ２）により領域の座標を示している。
【００３９】
次に、一時メモリ描画部１５３は、差し替え矩形データ１６２を参照しつつ、差し替え矩形抽出部１５２が抽出した各ＥＭＦレコードを、ビットマップイメージとして後述の一時メモリ描画領域に描画し、一時メモリ描画データ１６３を生成する第１描画手段の機能を備える。この一時メモリ描画部１５３としては、ＥＭＦデータに含まれ得る全ての種類のレコードを適切に解釈し描画できるモジュールを用いる。例えば、ディスプレイ表示用のビットマップイメージを生成するための描画モジュールを利用することが考えられる。また、一時メモリ描画データ１６３は、印刷用データの生成の際にＥＭＦレコードの差し替えに用いる画像を含むビットマップイメージである。
【００４０】
印刷用データ描画部１５４は、ＥＭＦレコードデータ１６１に基づき、プリンタ描画領域１６４に対して描画処理を行い、プリンタ描画領域１６４中に印刷用データを生成する第２描画手段の機能を備える。なお、この描画処理に際し、上記の特定種類以外の描画要素は、そのままプリンタ描画領域１６４に書き込む。上記特定種類の描画要素については、一時メモリ描画データ１６３のビットマップイメージのうち、該当の描画要素を配置すべき座標のイメージを、該当の描画要素に関する描画結果として用いる。そして、そのビットマップイメージを、プリンタ描画領域１６４のその座標に描画する。
【００４１】
以上の各部により、出力データ生成部１３１は、処理対象のＥＭＦデータのうち、PostScriptが解釈できないレコードを、PostScriptが解釈できるビットマップ描画用のレコードに置き換えることができる。そして、このことにより、PostScriptで解釈可能なＥＭＦデータを、印刷用データとして生成することができる。そして、処理対象のＥＭＦデータと、生成した印刷用データとで、表す画像の内容は共通である。この印刷用データは、PostScriptに対応したプリンタドライバ２２０が適切に処理し、プリンタ２０による印刷の制御に用いることできる。
【００４２】
次に、図１０に示した各部の機能により印刷用データ生成の動作を行う場合の処理の流れについて説明する。図１２及び図１３が、その処理の流れを示すフローチャートである。これらの図に示す処理は、ＰＣ１０のＣＰＵ１１が、所要のプログラムを実行することにより行うものである。
【００４３】
ＣＰＵ１１は、出力データ生成部１３１の機能により、ＥＭＦデータ１２１に対し印刷用データの生成を除く必要な加工が完了したことを検出すると、その加工後のＥＭＦデータを処理対象として図１２の処理を開始する。
この処理において、ＣＰＵ１１はまず、処理対象のＥＭＦデータからＥＭＦレコードを抽出して、ＥＭＦレコードデータ１６１として記憶する（Ｓ１１）。この処理は、ＥＭＦレコード抽出部１５１の機能と対応する処理である。
【００４４】
次に、ＣＰＵ１１は、ＥＭＦレコードデータ１６１のうち、予め設定された特定種類の描画要素に係るデータを描画すべき領域を特定し、その領域の座標を差し替え矩形データ１６２として記憶する（Ｓ１２）。この処理は、ＥＭＦレコード抽出部１５１の機能と対応する処理である。
【００４５】
次に、ＣＰＵ１１はメモリ上にビットマップ領域を予約する（Ｓ１３）。そして、予約したビットマップ領域のうち、差し替え矩形データ１６２が示す領域の描画に必要な領域を、一時描画領域である一時メモリ描画領域１７１として確保し、残りの領域を解放する（Ｓ１４）。その後、ＣＰＵ１１は、確保した一時メモリ描画領域１７１に背景を描画する（Ｓ１５）。
【００４６】
さらに、ＣＰＵ１１は、ＥＭＳレコードデータ１６１のうち特定種類の描画要素に係るデータが示す画像を一時メモリ描画領域にビットマップイメージとして描画して、一時メモリ描画データ１６３を生成する（Ｓ１６）。特定種類の描画要素に係る描画が全て終了した後の一時メモリ描画領域１７１のデータが、一時メモリ描画データ１６３である。なお、Windows（登録商標）で用意されている描画用ＡＰＩの仕様に従えば、ステップＳ１６で参照するＥＭＦレコードデータは、ステップＳ１６の処理を行う際に、ステップＳ１１の場合と同様にＥＭＦデータから生成する。ここまでのステップＳ１３〜Ｓ１６の処理は、一時メモリ描画部１５３の機能と対応する第１描画手順の処理である。
【００４７】
なお、ステップＳ１４で確保する領域のサイズは、差し替え矩形データ１６２が示す各描画要素の描画に必要なサイズである。このサイズは、各描画要素と対応する領域の広さの合計であり、描画要素１つ分の領域毎に、該領域の座標を示す情報を設ける。ステップＳ１６では、各描画要素に係るデータが示す画像を、その描画要素を配置すべき座標が付された領域に描画する。
【００４８】
以上のステップＳ１６の後、処理は図１３に示す部分に進む。この部分の処理は、印刷用データ描画部１５４の機能と対応する第２描画手順の処理である。
そして、ＣＰＵ１１は、ＥＭＦレコードデータ１６１に含まれる未処理のＥＭＦレコードの１つを処理対象とする（Ｓ２１）。なお、Windows（登録商標）で用意されている描画用ＡＰＩの仕様に従えば、ステップＳ２１で参照するＥＭＦレコードデータは、ステップＳ２１の処理を行う際に、ステップＳ１１の場合と同様にＥＭＦデータから生成する。
【００４９】
そして、処理対象のＥＭＦレコードが、特定種類の描画要素に当たるものであるか否か判断する（Ｓ２２）。これがＮｏであれば、ＣＰＵ１１は、処理対象のＥＭＦレコードに基づきプリンタ描画領域１６４に描画を行う（Ｓ２３）。ステップＳ２２でＹｅｓであれば、一時メモリ描画データ１６３のうち処理対象のＥＭＦレコードの描画要素を配置すべき座標のビットマップイメージを取得し（Ｓ２４）、取得したビットマップイメージをプリンタ描画領域１６４に描画する（Ｓ２５）。
【００５０】
いずれの場合も、未処理のＥＭＦレコードがある場合にはステップＳ２１に戻り、次のＥＭＦレコードを処理対象として処理を繰り返す（Ｓ２６のＹｅｓ）。全てのＥＭＦレコードについて処理が完了すると（Ｓ２６のＮｏ）、図１３の処理を終了する。
ＣＰＵ１１は、以上の処理により、PostScriptで解釈可能な印刷用データを生成することができる。
【００５１】
〔比較例：図１４，図１５〕
次に、比較例を用いて上述した実施形態の効果について説明する。
図１４に、この比較例における出力データ生成部の機能構成を示す。
この比較例は、出力データ生成部におけるＥＭＦデータ加工のための構成が図１０に示したものではなく図１４に示したものである点以外は、上述した実施形態と同じものである。
【００５２】
そして、出力データ生成部２３１は、ＥＭＦレコード抽出部１５１と、印刷用データ描画部１９４とを備える。
これらのうちＥＭＦレコード抽出部１５１の機能は、図１０に示したものと同じである。
印刷用データ描画部１９４は、ＥＭＦレコードデータ１６１に基づき、プリンタ描画領域１６４に対して描画処理を行い、プリンタ描画領域１６４中に印刷用データを生成する第２描画手段の機能を備える。なお、この描画処理に際し、全ての描画要素を、そのままプリンタ描画領域１６４に書き込む。
【００５３】
次に、図１５に、図１４に示した各部が印刷用データ生成の動作を行う場合の処理の流れを示す。図１５は、図１２及び図１３と対応するフローチャートである。
そして、図１５の処理は、図１２のステップＳ１１と、図１３のステップＳ２１、Ｓ２３及びＳ２６の処理を順次行うものである。
【００５４】
以上の処理でも、一応、プリンタドライバ２２０が処理可能な印刷用データを生成することができる。しかしながら、図１５の処理で生成した印刷用データには、PoseScriptで解釈できない描画要素が含まれている可能性があり、この印刷用データを用いると印刷結果に図９に示したような不具合が発生する可能性がある。
これに対し、上述した実施形態における図１２及び図１３に示した処理で印刷用データを生成すれば、このような問題は起こらない。
【００５５】
〔第１変形例：図１６〕
次に、上述した実施形態の第１変形例について説明する。
この第１変形例は、一時メモリ描画領域１７１の確保の仕方が上述の実施形態と異なり、これに伴って図１２の処理に代えて図１６の処理を実行する点が異なるのみである。そこで、この点についてのみ説明する。
【００５６】
図１６の処理は、ステップＳ１２がなく、また、ステップＳ１４に代えてステップＳ１４′の処理を行う点が図１２の処理と異なる。ステップＳ１４′では、ＣＰＵ１１は、ステップＳ１３で予約したビットマップ領域のうち、処理対象のＥＭＦデータ全体が示すイメージのサイズ分の領域を一時メモリ描画領域１７１として確保し、残りの領域を解放する。
【００５７】
そして、これに応じて、ステップＳ１６で描画を行う際には、各描画要素に係るデータが示す画像を、その描画要素を配置すべき座標と対応するアドレスに描画すればよい。図１３のステップＳ２４でも、該当の描画要素を配置すべき座標と対応するアドレスから、ビットマップイメージを取得すればよい。
その他の点では、図１６の処理は図１２の処理と共通である。
なお、この構成を採る場合、差し替え矩形データ１６２は使用しないため、差し替え矩形抽出部１５２は不要である。
【００５８】
このような構成であっても、印刷用データの生成は、上述した実施形態の場合と同様に行うことができる。ただし、この変形例では、一時メモリ描画領域１７１として用いるメモリの容量が上述した実施形態の場合よりも多くなる。Ａ４サイズの場合には１２０メガバイト程度である。したがって、メモリ容量を節約するためには、上述した実施形態の処理の方が好ましいと言える。
【００５９】
〔第２変形例：図１７〕
次に、上述した実施形態の第２変形例について説明する。
この第２変形例は、特定種類とする描画要素の種類を変更することができるようにした点が、第１実施形態と異なるのみである。そこで、この点についてのみ説明する。
【００６０】
図１７に、この第２変形例における出力データ生成部の機能の構成を示す。
図１７に示す出力データ生成部１３１′は、図１０に示した出力データ生成部１３１に、差し替え要素設定部１５５及び対応言語識別部１５６を追加したものである。
そして、差し替え要素設定部１５５は、差し替え矩形抽出部１５２、一時メモリ描画部１５３及び印刷用データ描画部１５４における、特定種類の描画要素の判断基準を変更する変更手段の機能を備える。
対応言語識別部１５６は、印刷用データの送信先となったプリンタドライバ２２０が取り扱うページ記述言語の形式を識別する識別手段の機能を備える。
【００６１】
プリンタドライバ２２０が用いるページ記述言語が異なれば、解釈が行えない描画要素の種類も異なる。したがって、ページ記述言語の種類と対応づけて、そのページ記述言語で解釈できない描画要素の種類の情報を用意しておくとよい。そして、対応言語識別部１５６による検出結果に応じて、差し替え要素設定部１５５が、特定種類とする描画要素の種類を、その検出結果のページ記述言語と対応する種類に変更するとよい。
このようにすれば、プリンタドライバ２２０ａ〜２２０ｃが取り扱うページ記述言語の種類がまちまちである場合も、出力先選択部１３２による出力先の選択結果によらず、出力先のプリンタドライバ２２０が解釈可能な印刷データを生成できる。PostScript以外のページ記述言語としては、例えばＰＣＬ（Printer  Control  Language）やＰＣＬ６が考えられる。
【００６２】
なお、差し替え要素設定部１５５が設定する特定種類の描画要素の判断基準は、ユーザが手動で編集可能としてもよい。出力データ生成部１３１′の運用中に、特定種類の描画要素とすべき描画要素を新たに発見した場合に、これを追加する等である。また、どのページ記述言語に対応した判断基準を用いるかを、ユーザが手動で切り替えられるようにしてもよい。使用するページ記述言語が決まっている場合は、この方が処理を高速化できる。
【００６３】
以上で実施形態の説明を終了するが、この発明において、各部の具体的な構成、装置の数、処理の手順、取り扱うデータの構成及び形式等は、実施形態で説明したものに限るものではない。
【００６４】
また、ユーザの操作に応じて又は何らかのトリガイベントの検出に応じて自動的に、出力データ生成部１３１における、ビットマップイメージの描画及び、特定種類の描画要素を描画したビットマップイメージに置き換える機能の有効／無効を切り替える切替手段を設けてもよい。使用するプリンタドライバ２２０が、仮想ドライバ１１０と同じページ記述言語を使用するものである場合には、上記の置き換え処理を行わなくても印刷に支障はないと考えられる。そこで、このような場合に置き換えの機能を無効にできれば、出力データ生成部１３１の処理を高速化するとともに、メモリ使用量を低減できる。
【００６５】
また、上述した実施形態におけるＰＣ１０の機能は、複数の情報処理装置に任意に分散して設け、それらの装置が協働して同様な機能を実現するようにしてもよい。特に、プリンタドライバ２２０は、ＰＣ１０に設けず、別途プリントサーバを用意して、そのプリントサーバに設けてもよい。ＰＣ１０自体あるいはこのような複数の情報処理装置により構成されるシステムが、この発明の情報処理システムの実施形態である。
また、以上説明してきた実施形態及び変形例の構成は、相互に矛盾しない限り任意に組み合わせて実施可能であることは勿論である。
【符号の説明】
【００６６】
１０：ＰＣ、１１：ＣＰＵ、１２：ＲＯＭ、１３：ＲＡＭ、１４：ＨＤＤ、１５：通信Ｉ／Ｆ、１６：表示部、１７：操作部、１８：システムバス、２０：プリンタ、３０：ネットワーク、１００：ジョブ振り分け部、１１０：仮想ドライバ、１２０：中間ファイル、１２１，２０１，２０２：ＥＭＦデータ、１２２：ジョブ情報、１３１，１３１′，２３１：出力データ生成部、１３２：出力先選択部、１３３：データ発送部、１５０：アプリケーション、１５１：ＥＭＦレコード抽出部、１５２：差し替え矩形抽出部、１５３：一時メモリ描画部、１５４，１９４：印刷用データ描画部、１５５：差し替え要素設定部、１５６：対応言語識別部、１６１：ＥＭＦレコードデータ、１６２：差し替え矩形データ、１６３：一時メモリ描画データ、１６４：プリンタ描画領域、１７１：一時メモリ描画領域、２２０：プリンタドライバ
【先行技術文献】
【特許文献】
【００６７】
【特許文献１】特開２０１１−２８８１号公報
【図１】
2015176231.tif 000003
【図２】
2015176231.tif 000004
【図３】
2015176231.tif 000005
【図４】
2015176231.tif 000006
【図５】
2015176231.tif 000007
【図６】
2015176231.tif 000008
【図７】
2015176231.tif 000009
【図８】
2015176231.tif 000010
【図９】
2015176231.tif 000011
【図１０】
2015176231.tif 000012
【図１１】
2015176231.tif 000013
【図１２】
2015176231.tif 000014
【図１３】
2015176231.tif 000015
【図１４】
2015176231.tif 000016
【図１５】
2015176231.tif 000017
【図１６】
2015176231.tif 000018
【図１７】
2015176231.tif 000019