(57)【特許請求の範囲】
【請求項１】
ユーザが指定するフォントである指定フォントが、埋め込みを禁止されているフォントである禁止フォントであるか否かを判定する判定手段と、
前記判定手段が前記指定フォントは前記禁止フォントではないと判定した場合に前記指定フォントを文書データに埋め込み、前記判定手段が前記指定フォントは前記禁止フォントであると判定した場合に、前記指定フォントに基づく画像を作成して、前記画像を前記文書データに埋め込む埋め込み手段を有し、
前記指定フォントはスタンプ文字列で指定されるフォントであることを特徴とする情報処理装置。
【請求項２】
前記判定手段が前記指定フォントは前記禁止フォントではないと判定した場合に前記文書データに前記指定フォントが埋め込まれているか否かを判定する埋め込み判定手段とを有し、
前記埋め込み判定手段が前記文書データに前記指定フォントが埋め込まれていると判定した場合に前記埋め込み手段はフォントを参照する命令を前記文書データに追加することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記埋め込み手段は、前記判定手段が前記指定フォントは前記禁止フォントではないと判定した場合に、前記指定フォントのサブセットを作成して、前記指定フォントのサブセットを前記文書データに埋め込むことを特徴とする請求項１又は請求項２に記載の情報処理装置。
【請求項４】
画像処理を行う画像処理手段とを有し、
前記埋め込み手段は、前記判定手段が前記指定フォントは前記禁止フォントであると判定した場合に、前記指定フォントに基づく画像を作成して、前記画像に文字であることを示す情報を付加して、前記画像を前記文書データに埋め込み、
前記画像処理手段は、文字であることを示す情報を含む画像リソースに対して文字用の画像処理を行い、文字であることを示す情報を含まない画像リソースに対して画像用の画像処理を行うことを特徴とする請求項２又は請求項３の何れかに記載の情報処理装置。
【請求項５】
前記文書データに基づきビットマップデータを生成する生成手段と、
前記画像処理手段は前記生成手段により生成されたビットマップデータに対して画像処理を行うことを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記画像処理は、色処理、または二値化処理を含むことを特徴とする請求項４又は請求項５に記載の情報処理装置。
【請求項７】
コンピュータを、
ユーザが指定するフォントである指定フォントが、埋め込みを禁止されているフォントである禁止フォントであるか否かを判定する判定手段、
前記判定手段が前記指定フォントは前記禁止フォントではないと判定した場合に前記指定フォントを文書データに埋め込み、前記判定手段が前記指定フォントは前記禁止フォントであると判定した場合に、前記指定フォントに基づく画像を作成して、前記画像を前記文書データに埋め込む埋め込み手段として機能させ、
前記指定フォントはスタンプ文字列で指定されるフォントであることを特徴とするプログラム。
【請求項８】
前記コンピュータを、
前記判定手段が前記指定フォントは前記禁止フォントではないと判定した場合に前記文書データに前記指定フォントが埋め込まれているか否かを判定する埋め込み判定手段として機能させ、
前記埋め込み判定手段が前記文書データに前記指定フォントが埋め込まれていると判定した場合に前記埋め込み手段はフォントを参照する命令を前記文書データに追加することを特徴とする請求項７に記載のプログラム。
【請求項９】
前記埋め込み手段は、前記判定手段が前記指定フォントは前記禁止フォントではないと判定した場合に、前記指定フォントのサブセットを作成して、前記指定フォントのサブセットを前記文書データに埋め込むことを特徴とする請求項７又は請求項８に記載のプログラム。
【請求項１０】
前記コンピュータを、
画像処理を行う画像処理手段として機能させ、
前記埋め込み手段は、前記判定手段が前記指定フォントは前記禁止フォントであると判定した場合に、前記指定フォントに基づく画像を作成して、前記画像に文字であることを示す情報を付加して、前記画像を前記文書データに埋め込み、
前記画像処理手段は、文字であることを示す情報を含む画像リソースに対して文字用の画像処理を行い、文字であることを示す情報を含まない画像リソースに対して画像用の画像処理を行うことを特徴とする請求項８又は請求項９の何れかに記載のプログラム。
【請求項１１】
前記文書データに基づきビットマップデータを生成する生成手段、
前記画像処理手段は前記生成手段により生成されたビットマップデータに対して画像処理を行うことを特徴とする請求項１０に記載のプログラム。
【請求項１２】
前記画像処理は、色処理、または二値化処理を含むことを特徴とする請求項１０又は請求項１１に記載のプログラム。
【請求項１３】
ユーザが指定するフォントである指定フォントが、埋め込みを禁止されているフォントである禁止フォントであるか否かを判定する判定工程と、
前記判定工程が前記指定フォントは前記禁止フォントではないと判定した場合に前記指定フォントを文書データに埋め込み、前記判定工程が前記指定フォントは前記禁止フォントであると判定した場合に、前記指定フォントに基づく画像を作成して、前記画像を前記文書データに埋め込む埋め込み工程を有し、
前記指定フォントはスタンプ文字列で指定されるフォントであることを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションが作成した文書を印刷するにあたり、フォントを用いた処理を行う情報処理装置、情報処理方法、及びプログラムに関するものである。
【背景技術】
【０００２】
情報伝達用の印刷データと機能表示用の印刷データとを含む印刷を行なう一例として、例えば「社外秘」扱いの文書を配布する場合に、文書の各ページに「社外秘」という文字が現われる印を押す場合などがある。ところが、印刷後の印刷物の各ページに人手により印を押すという作業はコストがかかるため、一般に電子化された「社外秘」等のマークを文書と共に印刷する手法が取られる。この「社外秘」といったマークをスタンプと呼んでいる。
【０００３】
スタンプ付きの文書印刷の場合には、アプリケーションはユーザが希望するスタンプの文字列やスタンプの文字列を描画する為に使用されるフォント等を受け付ける入力部分を持つ必要がある。そして、文書の印刷時において、アプリケーションは文書の各ページにユーザにより指定されたスタンプを合成し、合成結果の描画命令を発行する必要がある。すなわち、文書に重ね合わせるスタンプを変更するたびに、文書自体を編集する必要がある。これを改善するため、プリンタドライバによるスタンプ機能の実現手法がある。
【０００４】
アプリケーションが発行した描画命令は印刷データとしてスプールファイルに格納される。すなわち、スプールファイルとはアプリケーションに依存しない電子文書の一形式である。プリンタドライバは、スプールファイルに格納された印刷データをプリンタが解釈可能な印刷コマンドに変換しプリンタに供給する機能を有する。プリンタドライバによりスタンプ機能を実現する場合、印刷データの各ページにスタンプの文字列を合成することになる。図４はスタンプの処理における、印刷データと合成する文字と合成結果の概念を示している。図４（Ａ）のページ４０１の内容はアプリケーションにより作成され、印刷データとしてスプールされている。図４（Ｂ）の文字４０２はスタンプであり、文書の各ページの印刷データに合成される。図４（Ｃ）のページ４０３が印刷データとしてスプールされたページ４０１にスタンプの文字４０２を合成した結果のページである。
【０００５】
プリンタドライバが印刷データにユーザが指定したフォントで文字を合成する手法としては、フォント埋め込み、画像埋め込み、文字コード埋め込みという三つの仕組みが知られている。以下、それぞれの仕組みについて説明する。
【０００６】
フォント埋め込みとは、プリンタドライバが印刷データを編集することで、文字の描画命令と共にフォント形状情報を印刷データ内に埋め込む手法である。印刷データに埋め込まれたフォント形状情報は、印刷コマンドを生成する際に、合成する文字を描画するために用いられる。このため、印刷コマンドを生成する環境に指定されたフォントが存在しなくてもユーザが意図した出力を得られるという利点がある。しかし、フォント形状情報を印刷データに内に埋め込むため、印刷データ量が大きくなる傾向にある。特に日本語フォントのような文字種の多いフォントを埋め込む場合にこの問題が顕著である。
【０００７】
画像埋め込みとは、プリンタドライバが印刷データを編集することで、文字を描画した画像と共に画像の描画命令を印刷データ内に埋め込む手法である。このため、印刷コマンドを生成する環境にユーザに指定されたフォントが存在しなくても、ユーザが意図したフォントで文字が出力される。しかし画像であるため、印刷コマンド生成時に画像が拡大された場合、文字品位が落ちる場合がある。
【０００８】
文字コード埋め込みとは、プリンタドライバが印刷データを編集することで、フォントに依存しない文字コードと共に文字の描画命令ならびにフォント属性を印刷データ内に埋め込む手法である。印刷コマンドを生成する環境にユーザに指定されたフォントが存在する場合は、ユーザが意図した出力が得られる。また、印刷コマンドを生成する環境にユーザに指定されたフォントが存在しない場合は、一般にフォント置き換えと呼ばれる別のフォントを用いた描画が行われる。このフォント置き換えが行われた場合でも、フォントはユーザによる指定とは異なるものの、文字化け等が発生しない利点がある。
【０００９】
上述した印刷データにユーザが指定したフォントで文字を合成する手法の中から、プリンタドライバやオペレーティングシステム（以下ＯＳと略す）の種類、さらにプリンタの性能等に応じて適切なものが選択される。フォント埋め込み処理としては、プリンタドライバのユーザインタフェースモジュールがアプリケーションに成り代わり文字を描画したページを挿入する技術が提案されている（例えば、［特許文献１］参照）。また、埋め込みフォントが含まれている場合、埋め込みフォントを取得し、取得した埋め込みフォントを中間データと共に記憶する技術が提案されている（例えば、［特許文献２］参照）。また、電子文書で文字を表現するにあたり、フォント埋め込み処理を行うか、あるいは、画像埋め込み処理を行うかを切替る技術が提案されている（例えば、［特許文献３］参照）。
【００１０】
プリンタドライバの種類には様々なものがあるが、ここではマイクロソフト社のＯＳであるＷｉｎｄｏｗｓ（登録商標）で動作する、ＸＰＳプリンタドライバと呼ばれるプリンタドライバについて説明する。ＸＰＳプリンタドライバの特徴の一つに、スプールファイルに格納されるデバイス非依存の印刷データの形式がＸＰＳの文書データと同一形式であることが挙げられる。
【００１１】
ＸＰＳとはＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎの略で、マイクロソフト社が提案しているオープン規格の電子文書フォーマットの一つである。ＸＰＳ文書はＦｉｘｅｄＤｏｃｕｍｅｎｔＳｅｑｕｅｎｃｅ（以下ＦＤＳと略す）をルートとするツリー構造になっている。ＦＤＳは複数のＦｉｘｅｄＤｏｃｕｍｅｎｔ（以下ＦＤと略す）を持ち、ＦＤは複数のＦｉｘｅｄＰａｇｅ（以下ＦＰと略す）を持つ。ＦＤＳとＦＤとＦＰのそれぞれは、ＸＰＳパートと呼ばれることがある。ＦＰは文書のページの内容をＥｘｔｅｎｓｉｂｌｅ  Ａｐｐｌｉｃａｔｉｏｎ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ（以下ＸＡＭＬと略す）と呼ばれるＸＭＬ形式の言語で記述しており、実際に表示または印刷される際に用いられる描画命令を含んでいる。ＦＰの描画で使用されるフォントや画像等の資源は複数のＦＰで共有することができる。また、ＦＤＳとＦＤとＦＰはそれぞれ印刷設定をＰｒｉｎｔＴｉｃｋｅｔ（以下ＰＴと略す）で持つことができる。ＰＴはＸＰＳ文書を印刷する際の印刷設定をＸＭＬ形式で記述したものである。ここで各ＦＰを印刷する際に使用する印刷設定は、ＦＤＳのＰＴと、印刷対象ＦＰの親ＦＤのＰＴと、印刷対象ＦＰのＰＴをマージしたＰＴとなる。
【００１２】
図５はＸＰＳ文書の論理構造を示したブロック図の一例である。ＸＰＳ文書５０１の論理構造はＦＤＳ５０３がルートとなるツリー構造となっている。ＦＤＳ５０３は子としてＦＤ５１１とＦＤ５１３を有する。ＦＤ５１１は子としてＦＰ５２１とＦＰ５２３を有する。ＦＤ５１３は子としてＦＰ５２５を有する。印刷設定を記述したＰＴについては、ＦＤＳ５０３がＰＴ５３１を、ＦＤ５１１がＰＴ５３３を、ＦＰ５２１がＰＴ５３５を、ＦＤ５１３がＰＴ５３７をそれぞれ保持している。ＦＰ５２３とＦＰ５２５はＰＴを保持していない。また、ＦＰ５２１とＦＰ５２３がフォントや画像等の資源５４１を共有しており、ＦＰ５２５はフォントや画像等の資源５４３を利用している。ここで例えばＦＰ５２１を印刷する際に使用するＰＴは、ＰＴ５３１とＰＴ５３３とＰＴ５３５をマージしたＰＴとなる。以上のようにＸＰＳは表示や印刷において必要な資源を内包することが特徴の一つである。
【００１３】
図２はアプリケーションが印刷する際にＸＰＳプリンタドライバが動作した場合におけるデータの流れを説明する為のブロック図の一例である。図２において、ＸＰＳプリンタドライバを構成するモジュールはユーザインタフェースモジュール２１７、レイアウトフィルター２１３、レンダーフィルター２１５である。
【００１４】
アプリケーション２０１からＯＳの印刷サポート機能２０３を介してユーザインタフェースモジュール２１７を呼び出すことで、印刷に関する各種設定をユーザに行わせることができる。
【００１５】
アプリケーション２０１からユーザ操作により印刷指示がなされると、その指示内容はＯＳの印刷サポート機能２０３に送られる。具体的にはＯＳの描画エンジンであるＧＤＩ（Ｇｒａｐｈｉｃ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ）により、仮想化された印刷領域であるＤＣ（Ｄｅｖｉｃｅ  Ｃｏｎｔｅｘｔ）が作成され、アプリケーション２０１へ供給される。そして、アプリケーション２０１により文書の各ページの描画処理がＤＣに対して行われる。描画内容はＭＸＤＣ（Ｍｉｃｒｏｓｏｆｔ  ＸＰＳ  Ｄｏｃｕｍｅｎｔ  Ｃｏｎｖｅｒｔｅｒ）によりＸＰＳ形式に変換され、その結果、ＸＰＳ形式の印刷データが生成される。ＸＰＳ形式の印刷データは、ＯＳの印刷サポート機能２０３によって、印刷ジョブ毎にスプールファイル２０５として一時的に記憶装置にスプールされる。
【００１６】
ここでアプリケーション２０１はＧＤＩに描画を行わせることを前提に説明した。一方、ＸＰＳ形式の電子文書を作成することができるアプリケーションの場合は、ＧＤＩとＭＸＤＣに頼らずに、作成したＸＰＳ形式の印刷データをスプールすることも可能である。
【００１７】
スプールファイル２０５に格納されたデータはＯＳの印刷パイプラインサービス２０７により呼び出されたフィルターパイプライン２１１に供給される。フィルターパイプライン２１１は、図示しないプリンタドライバのパイプライン構成ファイルに記述されている任意の数のフィルターによって構成される。印刷装置１２０が解釈可能な印刷コマンドがＸＰＳ形式では無い場合、少なくとも、スプールされたＸＰＳ形式のデータを印刷コマンドに変換する為のフィルターが必要となる。図２ではフィルターパイプライン２１１はレイアウトフィルター２１３とレンダーフィルター２１５で構成される。レイアウトフィルター２１３はスプールファイルからＸＰＳ形式の印刷データを取得し、印刷設定に基づき必要に応じ印刷データを編集し出力する。例えば印刷設定にスタンプが指定されている場合、レイアウトフィルター２１３は印刷データにスタンプを描画する為の命令とフォントや画像などの資源を埋め込むことが可能である。印刷データを加工する必要が無い場合は、取得した印刷データをそのまま出力する。レイアウトフィルター２１３の出力は、レンダーフィルター２１５に供給される。レンダーフィルター２１５は、供給されたＸＰＳ形式の印刷データの各ページのレンダリング処理を行い、必要な画像処理を行ったうえで、印刷コマンドに変換して出力する。印刷コマンド２１５が出力した印刷コマンドは印刷装置１２０に供給され、印刷装置１２０が印刷動作を実行する。
【先行技術文献】
【特許文献】
【００１８】
【特許文献１】特登録０３８９７５３９
【特許文献２】特登録０３９６２５５９
【特許文献３】特開２００５−６３０５２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１９】
しかしながら、ＸＰＳプリンタドライバにおいてスタンプ機能を実現する際には、下記のような問題があった。
【００２０】
まず、従来のフォント埋め込みの手法では、電子文書ヘの埋め込みが禁止されているフォントが印刷設定のスタンプに指定されている場合、レイアウトフィルター２１３がＸＰＳ形式の印刷データにフォントを埋め込むことが出来ない問題がある。逆に埋め込みが禁止されているフォントを、印刷設定のスタンプで指定できないようなユーザインタフェースモジュール２１７を作成することも可能だが、フォントの選択肢が減ってしまう問題がある。
【００２１】
次に、従来の画像埋め込みの手法では、レイアウトフィルター２１３がＸＰＳ形式の印刷データにスタンプの文字を描画した画像を埋め込んだ場合、本来文字として処理されるべきスタンプが一般的な画像として処理される問題がある。レンダーフィルター２１５が、供給されたＸＰＳ形式の印刷データから印刷コマンドを生成する際に、文字のスタンプは画像となっている。このため、本来文字に対して適用されるべき色処理やハーフトーン処理等が適用されず、文字以外の例えば図形用や写真用の処理が適用される。従って、印刷結果ではスタンプの文字の部分の品質が悪化する問題がある。
【００２２】
最後に、従来の文字コード埋め込みに手法では、レイアウトフィルター２１３がＸＰＳ形式の印刷データにスタンプの文字の文字コードを埋め込んだ場合、ＸＰＳ形式の印刷データにはフォントは埋め込まれていない。つまり、ＸＰＳの印刷データを描画するにあたり、必要なフォント資源を内包していない印刷データがレンダーフィルター２１５に供給される問題が有る。
【００２３】
そこで、本発明は上記の問題に鑑み、ユーザに埋め込み禁止フォントを指定できる環境を提供し、かつ、印刷結果における文字の品質が低下することがない情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【００２４】
上記目的を達成するために本発明は次のような構成から成る。
【００２５】
ユーザが指定するフォントである指定フォントが、埋め込みを禁止されているフォントである禁止フォントであるか否かを判定する判定手段と、
前記判定手段が前記指定フォントは前記禁止フォントではないと判定した場合に前記指定フォントを文書データに埋め込み、前記判定手段が前記指定フォントは前記禁止フォントであると判定した場合に、前記指定フォントに基づく画像を作成して、前記画像を前記文書データに埋め込む埋め込み手段を有し、
前記指定フォントはスタンプ文字列で指定されるフォントであることを特徴とする。
【発明の効果】
【００２６】
本願発明によれば埋め込みが禁止されているフォントが指定された場合に、文字列を描画して電子文書に埋め込むため、埋め込み禁止フォントも選択することが可能である。
【図面の簡単な説明】
【００２７】
【図１】印刷システムの構成を示すブロック図の一例
【図２】ＸＰＳプリンタドライバに関するデータの流れを示すブロック図の一例
【図３】ユーザインタフェースモジュールが提供する印刷ダイアログの一例
【図４】スタンプ処理の概念図
【図５】ＸＰＳ文書の論理構造を示したブロック図の一例
【図６】実施形態１におけるレイアウトフィルターのスタンプ用データの埋め込み処理を表すフローチャートの一例
【図７】実施形態１におけるレンダーフィルターの文字スタンプ用の画像の判定処理のフローチャートの一例
【図８】ＰＮＧに格納される文字スタンプ用補助チャンクの一例
【図９】実施形態２におけるレイアウトフィルターのスタンプ用データの埋め込み処理を表すフローチャートの一例
【図１０】実施形態２におけるレンダーフィルターの文字スタンプ用の画像の判定処理のフローチャートの一例
【図１１】文字テキスト画像情報を付加したＸＡＭＬの一例
【図１２】レンダーフィルターの画像処理に関するフローチャートの一例
【発明を実施するための形態】
【００２８】
以下、図面を参照して本発明の好適な実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００２９】
＜実施形態１＞
まず、本実施形態のプリンタドライバの構成について図２を用いて説明する。
【００３０】
（スタンプ印刷時のプリンタドライバの動作）
前述したように、図２はアプリケーションが印刷する際にＸＰＳプリンタドライバが動作した場合におけるデータの流れを説明する為のブロック図の一例である。ここで本実施形態のＸＰＳプリンタドライバを構成するモジュールはユーザインタフェースモジュール２１７、レイアウトフィルター２１３、レンダーフィルター２１５である。
【００３１】
ユーザはーザインタフェースモジュール２１７が提供する印刷設定ダイアログを介して、印刷に関る各種設定を行うことができる。スタンプに関連する印刷設定ダイアログに関しては図３を用いて後述する。ユーザは印刷設定ダイアログを介して、スタンプに関る設定も行うことが可能で、例えばスタンプに用いられる文字列や、フォント、文字のサイズ等を設定することが可能である。ユーザの指示によりアプリケーション２０１が印刷処理を開始すると、スタンプに関する設定を含む各種設定値は、前述した様にＰＴとしてスプールファイル２０５に格納される。以下、印刷設定においてスタンプがＯＮに設定され、スタンプのフォントには電子文書への埋め込みが禁止されているフォントが指定されているとして説明する。
【００３２】
スプールファイル２０５に格納されたデータは、最初に、ＯＳの印刷パイプラインサービス２０７により呼び出されたレイアウトフィルター２１３に供給される。レイアウトフィルター２１３はスプールファイル２０５からＰＴを読み取り、印刷設定のスタンプがＯＮに設定されているか調べる。ここではスタンプがＯＮであるので、レイアウトフィルター２１３はスプールされた印刷データの各ページにスタンプの文字列を付加する処理を行う。レイアウトフィルター２１３の処理の詳細は図６を用いて後述するため、ここでは動作の概要の説明にとどめる。スタンプに設定されたフォントは埋め込みが禁止されているので、レイアウトフィルター２１３はフォントは埋め込まず、スタンプの文字を描画した画像を作成し印刷データ（ＸＰＳの文書データと同一形式）に埋め込む。この際、スタンプの文字を描画した画像には、文字スタンプ用の画像である印を付加する。また、印刷データのページの描画命令の末尾に、埋め込んだ文字スタンプ用の画像を描画する命令を追加して出力する。レイアウトフィルター２１３が出力した印刷データは、次のフィルターであるレンダーフィルター２１５に供給される。
【００３３】
レンダーフィルター２１５は、供給された印刷データの各ページをレンダリングし、ビットマップデータを生成し、図形、写真、文字等の各領域に対して適切な画像処理を行った後に、印刷装置１２０が解釈可能な印刷制御コマンドに変換して出力する。この際、スタンプの文字は画像として埋め込まれているが、文字スタンプ用の画像である印が付加されているため、文字の領域に対して文字用の画像処理を行う。レンダーフィルター２１５による、文字スタンプ用の画像の決定処理の詳細は図７を用いて後述する。また、レンダーフィルター２１５による、文字スタンプ用の画像に対する画像処理の切り替えは図１２を用いて後述する。
【００３４】
印刷装置１２０は印刷コマンドを受信し、印刷媒体に対して像を形成する。
【００３５】
なお、本実施形態のＸＰＳプリンタドライバのレイアウトフィルター２１３とレンダーフィルター２１５の処理の詳細は後述するが、理解を容易にするためにフローチャートを用いる。そして、説明に用いられる各フローチャートはプログラムとして図１のハードディスク装置１１０に記憶されており、ＲＡＭ１０９に読出され、ＣＰＵ１０７によって実行される。図１は本実施形態における印刷システムの構成を示すブロック図の一例であり、詳細は後述する。
【００３６】
（印刷設定ダイアログ）
次に、ユーザインタフェースモジュール２１７がユーザに提供する印刷設定ダイアログについて説明する。図３（Ａ）、図３（Ｂ）は本実施形態におけるスタンプに関する設定をユーザが行う際に表示される印刷設定ダイアログの一例を示す図である。これらの印刷設定ダイアログは設定に関する内容を表示するとともに、同時にユーザーによる上記設定内容の変更指示や入力を受け付ける。
【００３７】
図３（Ａ）にスタンプダイアログの表示例を示す。スタンプダイアログでは印刷文書のページに対して重ね合わせるスタンプの設定を行うことができる。スタンプダイアログ３６１は表示エリア３６２〜３７５から構成される。スタンプ設定部３７１ではチェックボックスをＯＮに設定することでスタンプ機能を有効にすることができる。スタンプ種別設定部３７２では事前に登録されたスタンプをドロップダウンリストにより選択することが可能である。スタンプ設定部３７３を押すと後述する図３（Ｂ）のスタンプ設定ダイアログが開き、登録されているスタンプの設定を変更したり、新たにスタンプを作成し登録することができる。
【００３８】
透過スタンプ設定部３７４のチェックボックスをＯＮに設定すると、スタンプの文字が透過になり、スタンプの文字の下に配置される文書のページの内容が確認しやすくなる。先頭スタンプ設定部３７５はアプリケーションの文書の第一ページにのみスタンプを合成するか、あるいは全てのページにスタンプの模様を合成するかを設定できる。
【００３９】
ユーザーは各項目を選択した後にＯＫボタン３６２を押下することでスタンプダイアログ３６１を閉じ、選択した印刷設定を印刷に反映させることができる。キャンセルボタン３５３を押下するとスタンプダイアログ３６１が閉じ、選択した設定項目の内容は破棄され印刷に反映されることはない。標準に戻すボタン３６４が押下されるとスタンプダイアログ３６１上の各設定項目の設定値が標準状態に戻される。ただし、このとき登録されているスタンプの設定値には影響しない。ヘルプボタン３６５はスタンプダイアログ３６１の各設定項目に関する説明文を別ウィンドウで表示させることができる。
【００４０】
図３（Ｂ）にスタンプ設定ダイアログの表示例を示す。スタンプ設定ダイアログでは登録されているスタンプの設定を変更したり、新たにスタンプを作成し登録することができる。スタンプ設定ダイアログ３８０は、表示エリア３８１〜３９８から構成される。本実施形態のスタンプ設定ダイアログでは表示する項目が非常に多いため、タブシートを使用して設定項目を内容ごとに分けて見やすい構成にしている。
【００４１】
スタンプタブ３８５では、スタンプに使用する文字列やビットマップの設定に関する内容を表示する。配置タブ３８６ではスタンプを配置するページ中の位置やスタンプの回転角度等を表示する。登録設定タブ３８７では、新規に作成したスタンプや変更された既存のスタンプの設定を登録することができる。
【００４２】
図３（Ｂ）は上記のタブのうち、スタンプタブ３８５が選択された場合の表示例を示している。簡易表示エリア３９１には、視覚に訴える形で、現在設定されている内容のスタンプに関する情報を表示する。スタンプ文字列入力部３９３により文字のスタンプで使用される任意の文字列を指定することができ、ここでは“Ｓｔａｍｐ”と入力されている。
【００４３】
フォント名選択部３９４ではスタンプの文字の描画に使用されるフォントを選択することができる。後述する様にスタンプの文字の大きさは可変としているため、ここではＴｒｕｅＴｙｐｅに代表されるベクターフォントを選択することが可能である。図示されているＡｒｉａｌの他にも、プリンタドライバが動作するＯＳにインストールされているフォントが列挙される。ここで、フォント作成者の意向により、電子文書への埋め込みが禁止されているフォントがあることに注意が必要である。前述したように、本実施形態では埋め込みが禁止されているフォントがスタンプに指定された場合は、文字列を描画したビットマップを電子文書に埋め込むため、埋め込み禁止フォントも選択することが可能である。
【００４４】
スタイル選択部３９５は文字のスタイルを選択する。図示されている標準の他に、文字を太くする太字、文字を斜めにする斜体、文字を太くかつ斜めにする太字斜体を選択することが出来る。サイズ設定部３９６ではスタンプの文字の大きさを選択することができる。文字囲み設定部３９６ではスタンプの文字を囲む線の有無を選択することができる。文字囲み選択部３９７は、文字囲み設定部３６のチェックボックスがＯＮに設定されていると有効になり、スタンプの文字を囲む線の種類を選択することができる。図示されている枠囲みは簡易表示エリア３９１で示されている様にスタンプの文字の周囲を矩形の線で囲む。枠囲みの他に、円でスタンプの文字を囲む丸囲み、角が丸い矩形でスタンプの文字を囲む丸枠囲みを選択することができる。色選択部３８４を押下すると、図示しない色設定ダイアログが開き、ユーザはスタンプに使用する好みの色を作成することが出来る。標準設定部３８４が押されると、スタンプタブ３８５の設定が変更前に戻される。
【００４５】
ユーザーは各項目を選択した後にＯＫボタン３８１を押下することでスタンプ設定ダイアログ３８０を閉じ、選択した印刷設定を印刷に反映させることができる。キャンセルボタン３８２を押下するとスタンプ設定ダイアログ３８０が閉じ、選択した設定項目の内容は破棄され印刷に反映されることはない。ヘルプボタン３８３はスタンプタブ３８５の各設定項目に関する説明文を別ウィンドウで表示させることができる。
【００４６】
以上で説明したように、プリンタドライバのユーザインタフェースモジュール２１７が提供する印刷ダイアログを介して、ユーザはスタンプに関る設定を行うことが可能である。また、図示していないが、ユーザインタフェースモジュール２１７はスタンプに関する設定以外にも、使用される印刷用紙の種類や、印刷用紙の大きさ等の印刷設定に関しても、ユーザが設定出来るような印刷ダイアログを提供することは言うまでもない。
【００４７】
（レイアウトフィルターのスタンプ用情報の埋め込み処理）
続いて図６を用いてレイアウトフィルター２１３のスタンプ用情報の埋め込み処理について説明する。図６はレイアウトフィルター２１３のスタンプ用情報の埋め込み処理を表すフローチャートの一例である。前述した様にＯＳのレイアウトフィルター２１３はＯＳの印刷パイプラインサービス２０７により起動される。
【００４８】
Ｓ６０１で処理を開始し、Ｓ６０３でＸＰＳパートを取得する。続いてＳ６０５でＸＰＳパートを取得出来たかどうかを判定し、取得できればＳ６０９に移り、取得出来なければ全てのＸＰＳパートを処理したことを意味するのでＳ６０７に移り終了する。Ｓ６０９で取得したＸＰＳパートがＦＰかどうかを判定し、ＦＰでなければＳ６１１に移り、ＦＰであればＳ６１３に移る。Ｓ６１１では取得したＸＰＳパートをそのまま次のフィルターに送信し、Ｓ６０３に移る。Ｓ６１３ではＦＰで使用するＰＴから、スタンプに関する印刷設定を取得する。続いてＳ６１５で、取得した印刷設定の文字スタンプがＯＮかどうかを判定し、ＯＮであればＳ６１９に移り、ＯＦＦであればＳ６１７に移る。Ｓ６１７ではスタンプをページに合成する必要がないため、取得したＦＰをそのまま次のフィルターに送信し、Ｓ６０３に移る。Ｓ６１９では取得した印刷設定の文字スタンプに指定されているフォントは電子文書への埋め込みが禁止されているかどうかを判定し、埋め込みが禁止されていなければＳ６２１に移り、埋め込みが禁止されていればＳ６３１に移る。
【００４９】
Ｓ６２１からＳ６２７は埋め込みが禁止されていないフォントがスタンプに指定されていた際の処理となる。Ｓ６２１でスタンプに指定されたフォントは、既にＸＰＳに埋め込み済みかどうか判定し、既に埋め込み済みであればＳ６２７に移り、まだ埋め込んでいなければＳ６２３に移る。Ｓ６２３ではスタンプで使用される文字を調べ、フォントのサブセットを作成し、フォントリソースとしてＸＰＳに埋め込む。続いてＳ６２５では、埋め込んだフォントサブセットの情報を記憶し、Ｓ６２１で同一のフォントサブセットを繰り返し埋め込まないようにしておく。続いてＳ６２７ではＦＰのＸＡＭＬを読み取り、描画命令の末尾に、埋め込んだフォントを参照する文字列描画命令を追加し、Ｓ６４１に移る。
【００５０】
Ｓ６３１からＳ６３７は埋め込みが禁止されているフォントがスタンプに指定されていた際の処理となる。この場合、フォントをＸＰＳに埋め込むことが出来ないので、スタンプの文字列を描画した文字スタンプ用の画像を作成し、この画像をＸＰＳに埋め込む。まず、Ｓ６３１で印刷設定から決定される文字スタンプ用の画像が既に埋め込み済みかどうかを判断し、埋め込み済みであればＳ６３７に移り、埋め込み済みでなければＳ６３３に移る。Ｓ６３３ではスタンプの文字を描画した画像を作成し、画像リソースとしてＸＰＳに埋め込む。具体的には、ＰＴからレンダーフィルター２１５がＸＰＳをレンダリングする際に用いられる解像度と、ユーザが指定したスタンプのサイズと文字列を取得し、少なくとも文字列を指定されたサイズで描画できるだけの画像の大きさを計算する。そして、計算した大きさの透過画像を作成し、指定されたフォントとサイズ、色でスタンプの文字列を描画する。さらに、この文字スタンプ用の画像には、スタンプの文字を描画したことを意味する情報を付加する。例えば、文字スタンプ用の画像のフォーマットにＰＮＧ（Ｐｏｒｔａｂｌｅ  Ｎｅｔｗｏｒｋ  Ｇｒａｐｈｉｃ）を用いた場合、図８に示す補助チャンクを付加すればよい。例えばテキストデータのキーワード８０１を「ＴｅｘｔＳｔａｍｐ」とし、そのテキスト値８０３を「ｔｒｕｅ」とすることで、ＰＮＧの中にスタンプ文字を描画したことを意味する情報を付加することが出来る。なお、さらに、文字スタンプ用の画像には、ユーザに指定された色を表現するために、色空間を定義するカラープロファイルを付加しても良い。文字スタンプ用の画像にカラープロファイルが追加されていれば、ＦＰにプロファイルが指定されていても、ユーザに指定された色を表現することができる。
【００５１】
Ｓ６３５では埋め込んだ文字スタンプ用の画像の情報を記憶し、Ｓ６３１で同一の文字スタンプ用の画像を繰り返し埋め込まないようにしておく。続いてＳ６３７ではＦＰのＸＡＭＬを読み取り、描画命令の末尾に、埋め込んだ文字スタンプ用の画像を参照する画像描画命令を追加しＳ６４１に移る。
【００５２】
Ｓ６４１では、Ｓ６２７あるいはＳ６３７で編集されたＸＡＭＬを有するＦＰを次のフィルターに送信し、Ｓ６０３に移る。
【００５３】
以上の様に、レイアウトフィルター２１３により、ユーザにより埋め込み可能なフォントが指定された場合はフォントをＸＰＳに埋め込み、埋め込みが禁止されたフォントが指定された場合は文字を描画した文字スタンプ用の画像をＸＰＳに埋め込む。文字スタンプ用の画像を作成する際は、レンダリング解像度を考慮するため、レンダリング時に拡大や縮小処理が行われず、スタンプの文字の品質を維持することができる。また、このようにすることでＸＰＳをレンダリングする際に必要なリソースを全て埋め込むことが可能になる。
【００５４】
なお、本実施形態では電子文書への埋め込みが禁止されているフォントが指定されている場合のみ文字スタンプ用の画像を埋め込むようにしているが、埋め込みが許可されているフォントに対しても文字スタンプ用の画像を埋め込んでも良いことは言うまでもない。
【００５５】
（レンダーフィルターの文字スタンプ用の画像の判定処理）
次に、図７を用いてレンダーフィルター２１５による文字スタンプ用の画像の判定処理について説明する。図７はレンダーフィルター２１５が、供給されたＸＰＳをレンダリングする際に、ＦＰに参照される画像がレイアウトフィルター２１３により埋め込まれた文字スタンプ用の画像かどうかを判断する処理のフローチャートの一例である。
【００５６】
Ｓ７０１で処理が開始され、Ｓ７０３でＦＰのＸＡＭＬを取得する。続いてＳ７０５からＳ７１３はＸＡＭＬに記述された全てＩｍａｇｅＢｒｕｓｈタグを検証するためのループである。Ｓ７０５ではＩｍａｇｅＢｒｕｓｈタグがあるかどうか判定し、無ければＳ７２１に移り処理を終了し、あればＳ７０７に移る。Ｓ７０７ではＩｍａｇｅＢｒｕｓｈタグのＩｍａｇｅＳｏｕｒｃｅ属性で示される画像がＰＮＧかどうかを判定し、ＰＮＧでなければＳ７０５に移り、ＰＮＧであればＳ７０９に移る。Ｓ７０９ではＩｍａｇｅＳｏｕｒｃｅ属性で示されるリソースのパスを取得し、ＸＰＳに格納されている画像リソースを読み込む。続くＳ７１１では読み込んだＰＮＧのチャンクにテキスト情報の補助チャンクが存在し、キーワードが「ＴｅｘｔＳｔａｍｐ」でテキスト値が「ｔｒｕｅ」と成っているか判断する。この補助チャンクは図８を用いて前述したように、レイアウトフィルター２１３がＰＮＧに付加した情報であり、文字スタンプ用の画像かどうかを示している。Ｓ７１１でＰＮＧに文字スタンプ用の画像を示す補助チャンクが存在していればＳ７１３に移り、存在しなければＳ７０５に移る。Ｓ７１３ではＩｍａｇｅＢｒｕｓｈタグのＩｍａｇｅＳｏｕｒｃｅ属性で示される画像リソースは文字スタンプ用の画像であることを記憶し、Ｓ７０５に移る。
【００５７】
以上のように処理することで、レンダーフィルター２１５は、供給されたＸＰＳの各ページで使用される画像リソースが、文字スタンプ用の画像であるかどうかを判定することが可能である。この結果に従い、レンダーフィルター２１５は、ＸＰＳのページをレンダリングした後に、スタンプの文字の領域に対して、文字用の画像処理を行うことが可能になる。従って、スタンプの文字が画像として供給されたのにも関らず、スタンプの文字の領域に対して文字に適した処理を行える為、スタンプ以外の文字と同等の品質を維持することが出来る。
【００５８】
（レンダーフィルターの画像処理）
次に、図１２を用いてレンダーフィルター２１５による画像処理について説明する。図１２はレンダーフィルター２１５が、供給されたＸＰＳのＦＰをレンダリングした後に行う画像処理のフローチャートの一例である。
【００５９】
なお、図１２の処理が行われる前に、レンダーフィルター２１５が、供給されたＸＰＳからＦＰのビットマップデータをレンダリングする。その際、文字コードをレンダリングした場合、属性プレーンの対応する領域に文字用の属性フラグを格納する。同様に、画像をレンダリングした場合、属性プレーンの対応する領域に画像の属性フラグを格納する。なお、文字スタンプの画像リソースについては、画像であるので本来であれば画像の属性プレーンの対応する領域に画像の属性フラグを格納するが、本願では、属性プレーンの対応する領域に文字用の属性フラグを格納する。また、更なる処理として、文字のパターンの部分には、文字用の属性フラグを格納するが、文字の背景部分には、文字用の属性フラグを格納しないよう（元の属性のまま）にすることもできる。
【００６０】
次に図１２の処理について説明する。
【００６１】
まず、Ｓ１２０１で処理が開始され、Ｓ１２０３でレンダリング結果の先頭ラスターを処理対象とする。続いてＳ１２０５で処理対象のラスターが画像領域を含むかどうかを判定し、画像領域を含まなければＳ１２４１に移り、画像領域を含めばＳ１２０７に移る。
【００６２】
Ｓ１２０７では、ラスターに含まれる画像領域が文字の領域、あるいは文字スタンプ用の画像の領域かどうかを属性プレーンの属性フラグで判定する。判定の結果、文字の領域、あるいは文字スタンプ用の画像の領域でなければＳ１２１１に移り、文字の領域、あるいは文字スタンプ用の画像領域であればＳ１２２１に移る。ここで文字スタンプ用の画像における画像領域とは、文字スタンプ用の画像の中で文字が描画された領域を指すことは言うまでもない。
【００６３】
Ｓ１２１１とＳ１２１３は例えば写真等の画像の為の処理となる。Ｓ１２１１では画像用の色処理を行う。ここでは、例えば写真用に視覚的に好ましい結果が得られる色変換処理を行なえばよい。続くＳ１２１３では画像用の二値化処理を行う。ここでは、例えば誤差拡散法等により、先鋭性より階調性を重視した二値化処理を行えばよい。この後にＳ１２４１に移る。
【００６４】
Ｓ１２２１とＳ１２２３は文字スタンプ用の画像の為の処理である。Ｓ１２２１では文字用の色処理を行う。ここでは、例えば彩度の維持を優先するような、文字用に視覚的に好ましい結果が得られる色変換処理を行えばよい。続くＳ１２２３では文字用の二値化処理を行う。ここでは例えばディザ法により、階調性より先鋭性を重視した二値化処理を行えばよい。この期にＳ１２４１に移る。
【００６５】
Ｓ１２４１ではレンダリング結果に含まれる全てのラスターを処理したかどうかを判定し、全てのラスターを処理していればＳ１２４５に移り処理を終了し、未処理のラスターがあればＳ１２４３に移る。Ｓ１２４３では処理対象のラスターを次のラスターとしてから、Ｓ１２０５に移り処理を継続する。
【００６６】
以上のようにレンダーフィルター２１５が、ＦＰのレンダリング結果に対して画像処理を行う際に、文字スタンプ用の画像の画像領域に対しては文字用の処理を行うことができる。なお、上記のレンダリング結果はＦＰ全体であっても、ＦＰを矩形領域に分割したバンド領域であっても良いことは言うまでもない。
【００６７】
（印刷システムの構成例）
次に図１を用いて本実施形態における印刷システムについて説明する。図１は本実施形態における印刷システムの構成を示すブロック図の一例である。本実施形態における印刷システムは大きく印刷装置１２０とデータ処理装置（コンピュータ）１００により構成され、データ処理装置１００はブロック１０１〜１１４から構成される。
【００６８】
１０１は、ＣＲＴ表示装置であり、プリンタドライバのユーザインタフェースモジュールが提供する印刷設定ダイアログ等を表示する。１０２はＣＲＴＣで表示装置用のコントローラである。１０３は、キーボードなどのデータ入力装置であり、１０４は、キーボードコントローラである。１０５は、ポインティングデバイス等の座標入力装置であり、１０６は、ポインティングデバイスコントローラである。
【００６９】
１０７は、装置全体の制御を司るＣＰＵである。１０８は、ブートプログラムなどを記憶しているＲＯＭである。１０９は、ＯＳ、各アプリケーションプログラム、本実施形態のフローチャートに関るプリンタドライバプログラムを格納したり、さらにはワークエリアとしても利用されるＲＡＭである。
【００７０】
１１０は、ＯＳ、各アプリケーションプログラム、本明細書で説明されるフローチャートに関るプログラムを含むプリンタドライバプログラム、フォントデータ、さらにはデータファイル等を記憶しているハードディスク装置である。１１１はハードディスクコントローラである。ハードディスク装置１１０には、スプールファイルも一時的に格納される。１１２は、可搬性記憶媒体の駆動装置であるフロッピー（登録商標）ディスク装置であり、１１３はフロッピー（登録商標）ディスクコントローラである。
【００７１】
１３０はインタフェースであり、１１４はインターフェースコントローラである。データ処理装置１００はインターフェースケーブルを介してインクジェットプリンタなどの印刷装置１２０に接続される。１１６は、各デバイスを接続するバスである。
【００７２】
本装置に電源が投入されると、ＣＰＵ１０７はＲＯＭ１０８に格納されているブートプログラムに従って起動し、ハードディスク装置１１０からＯＳをロードし、操作者の操作待ち状態になる。そして、アプリケーションを介して印刷指示を受けた場合、ハードディスク装置１１０に格納されているプリンタドライバプログラムがＲＡＭ１０９にロードされＣＰＵ１０７により実行される。印刷指示の代わりに、プリンタドライバの印刷設定変更指示もしくは自動的に起動するように設定されている場合にもプリンタドライバプログラムがＲＡＭ１０９にロードされＣＰＵ１０７により実行される。
【００７３】
（本実施形態の効果）
以上の様に、電子文書への埋め込みが禁止されているフォントが、ユーザによりスタンプのフォントに指定されている場合には、レイアウトフィルター２１３はスタンプの文字を描画した文字スタンプ用の画像をＸＰＳに埋め込む。この文字スタンプ用の画像はレンダーフィルター２１５がＸＰＳをレンダリングする際の解像度に合わせて作成されるので、レンダリング時に拡大や縮小処理が行われず、印刷結果においても品質が低下しない。また、レイアウトフィルター２１３が出力した電子文書には、レンダリングに必要な資源が全て含まれている為、レンダーフィルター２１５において、外部のフォントを読み込むなどの特殊な処理を行う必要が無い。また、電子文書に埋め込まれた文字スタンプ用の画像には、文字スタンプで使用される情報が含まれている為、レンダーフィルター２１５は文字スタンプ用の画像に対して、文字用の色変換処理や二値化処理等を適用することが可能になる。図形用や写真用の画像処理が文字スタンプ用の画像に適用されることが無いため、画像として電子文書に格納されているのにも関らず、文字としての品質を維持することが可能になる。
【００７４】
＜実施形態２＞
上述した実施形態１においては、レイアウトフィルター２１３は、スタンプの文字を描画したことを意味する情報を文字スタンプ用の画像に付加し、文字スタンプ用の画像をＸＰＳに埋め込んだ。そしてレンダーフィルター２１５が、ＦＰで使用される画像に文字スタンプ用の情報が付加されているかを判断することで、画像が文字スタンプ用の画像かどうかを決定していた。すなわち、レンダーフィルター２１５は、ＦＰで使用される全ての画像を取得し、内容を調査する必要が有った。そこで本実施形態では、レンダーフィルター２１５が全ての画像の内容を調査することなしに、画像が文字スタンプ用の画像かどうかを決定できるようにした。
【００７５】
なお、本実施形態における印刷システムの構成と、ユーザインタフェースモジュール２１７が提供する印刷設定ダイアログとは、実施形態１と同一であるため説明を省く。
【００７６】
（スタンプ印刷時のプリンタドライバの動作）
本実施形態におけるプリンタドライバの構成は実施形態１と同一であるため説明を省く。またプリンタドライバの動作についても共通である点が多いため、特徴を明確にする為差異のみ説明する。
【００７７】
レイアウトフィルター２１３はスプールファイル２０５からＰＴを読み取り、印刷設定のスタンプがＯＮに設定されているか調べる。スタンプがＯＮで、埋め込みが禁止されているフォントが指定されている場合、レイアウトフィルター２１３はスタンプの文字を描画した画像を作成しＸＰＳに埋め込む。そしてＦＰのＸＡＭＬの描画命令の末尾に、埋め込んだ文字スタンプ用の画像を描画する命令を追加して出力する。このとき、埋め込んだ文字スタンプ用の画像を描画する命令に、画像が文字スタンプ用の画像である情報を付加する。本実施形態におけるレイアウトフィルター２１３の処理の詳細は図９を用いて後述する。
【００７８】
レンダーフィルター２１５は、読み込んだＦＰのＸＡＭＬに画像を描画する命令が存在すれば、文字スタンプ用の画像である情報の有無を判断し、描画命令で参照される画像が文字スタンプ用の画像かどうかを決定する。本実施形態におけるレンダーフィルター２１５による、文字スタンプ用の画像の決定処理の詳細は図１０を用いて後述する。
【００７９】
なお、本実施形態のＸＰＳプリンタドライバのレイアウトフィルター２１３とレンダーフィルター２１５の処理の詳細は後述するが、理解を容易にするためにフローチャートを用いる。そして、説明に用いられる各フローチャートはプログラムとしてハードディスク装置１１０に記憶されており、ＲＡＭ１０９に読出され、ＣＰＵ１０７によって実行される。
【００８０】
（レイアウトフィルターのスタンプ埋め込み処理）
次に図９を用いてレイアウトフィルター２１３のスタンプ用データの埋め込み処理について説明する。図９はレイアウトフィルター２１３のスタンプ用データの埋め込み処理を表すフローチャートの一例である。本図の処理の多くは図６と同一であり、差異はＳ９３３とＳ９３７のみであるため、差異のある部分に関連するＳ６３１〜Ｓ９３７の処理についてのみ説明を行う。
【００８１】
Ｓ６３１からＳ９３７は埋め込みが禁止されているフォントがスタンプに指定されていた際の処理となる。この場合、フォントをＸＰＳに埋め込むことが出来ないので、スタンプの文字列を描画した文字スタンプ用の画像を作成し、この画像をＸＰＳに埋め込む。まず、Ｓ６３１で印刷設定から決定される文字スタンプ用の画像が既に埋め込み済みかどうかを判断し、埋め込み済みであればＳ９３７に移り、埋め込み済みでなければＳ９３３に移る。Ｓ９３３ではスタンプの文字を描画した画像を作成し、画像リソースとしてＸＰＳに埋め込む。具体的には、ＰＴからレンダーフィルター２１５がＸＰＳをレンダリングする際に用いられる解像度と、ユーザが指定したスタンプのサイズと文字列を取得し、少なくとも文字列を指定されたサイズで描画できるだけの画像の大きさを計算する。そして、計算した大きさの透過画像を作成し、指定されたフォントとサイズ、色でスタンプの文字列を描画する。
【００８２】
Ｓ６３５では埋め込んだ文字スタンプ用の画像の情報を記憶し、Ｓ６３１で同一の文字スタンプ用の画像を繰り返し埋め込まないようにしておく。続いてＳ６３７ではＦＰのＸＡＭＬを読み取り、各頁の描画命令の末尾に、文字スタンプ用の画像を参照する画像描画命令を追加しＳ６４１に移る。ここで文字スタンプ用の画像を参照する画像描画命令に、参照される画像が文字スタンプ用の画像であることを示す情報を付加する。例えば、ＸＡＭＬのＩｍａｇｅＢｒｕｓｈタグに、図１１（Ａ）に示す文字スタンプ情報１１０３、図１１（Ｂ）に示す文字スタンプ情報１１０７を追加すればよい。例えば属性の名称を「ＴｅｘｔＳｔａｍｐ」とし、その値を「ｔｒｕｅ」とする。
【００８３】
以上のように処理することで、レイアウトフィルター２１３はＸＡＭＬの中に文字スタンプ用の画像である情報を追加することができる。なお、取得したＸＡＭＬの描画命令１１０１（文書の第１ページの描画データ）、描画命令１１０５（文書の第２ページの描画データ）はコメントとして省略していることを明記しておく。
【００８４】
（レンダーフィルターの文字スタンプ用の画像の判定処理）
次に、図１０を用いてレンダーフィルター２１５による文字スタンプ用の画像の決定処理について説明する。図１０はレンダーフィルター２１５が、供給されたＸＰＳをレンダリングする際に、ＦＰに参照される画像がレイアウトフィルター２１３により埋め込まれた文字スタンプ用の画像かどうかを判断する処理のフローチャートの一例である。
【００８５】
Ｓ１００１で処理が開始され、Ｓ１００３でＦＰのＸＡＭＬを取得する。続いてＳ１００５からＳ１００９はＸＡＭＬに記述された全てＩｍａｇｅＢｒｕｓｈタグを検証するためのループである。Ｓ１００５ではＩｍａｇｅＢｒｕｓｈタグがあるかどうか判定し、無ければＳ１０２１に移り処理を終了し、あればＳ１００７に移る。Ｓ１１０７ではＩｍａｇｅＢｒｕｓｈタグのＴｅｘｔＳｔａｍｐ属性の値が「ｔｕｒｅ」かどうかを判定し、「ｔｒｕｅ」でなければＳ１００５に移り、「ｔｒｕｅ」であればＳ７０９に移る。Ｓ１００９ではＩｍａｇｅＢｒｕｓｈタグのＩｍａｇｅＳｏｕｒｃｅ属性で示される画像リソースは文字スタンプ用の画像であることを記憶し、Ｓ１００５に移る。
【００８６】
以上のように処理することで、レンダーフィルター２１５は、供給されたＸＰＳの各ＦＰにより参照される画像リソースが、文字スタンプ用の画像であるかどうかを判定することが可能である。
【００８７】
（本実施形態の効果）
本発明の実施形態により、次の効果がある。まず、スタンプの文字列を描画した画像を印刷データに埋め込むようにしたため、電子文書への埋め込みが禁止されているフォントであっても、ユーザがスタンプのフォントに指定することが出来るようになる。
【００８８】
次に、印刷データにスタンプの文字列を描画した画像を埋め込むことで、外部のフォントを読み込むなどの特殊な処理を行う必要が無くなる。また、印刷データに付加した通信用情報をレンダリング時に参照することで、画像として埋め込まれたスタンプの文字領域に対して適切な画像処理を行うことが出来るようになる。また、スタンプの文字列を描画する画像のサイズは、印刷条件で指定されたスタンプの文字の大きさと、印刷条件で決定されるレンダリング時の解像度に基づいて決定されるので、拡大や縮小処理が行われず印刷結果においても品質が低下しない。
【００８９】
また、レンダーフィルター２１５が各ＦＰのＸＡＭＬで参照される全ての画像の内容を調査することなしに、画像が文字スタンプ用の画像かどうかを決定できるようなる。
【図１】
0005479558.tif 000002
【図２】
0005479558.tif 000003
【図３】
0005479558.tif 000004
【図４】
0005479558.tif 000005
【図５】
0005479558.tif 000006
【図６】
0005479558.tif 000007
【図７】
0005479558.tif 000008
【図８】
0005479558.tif 000009
【図９】
0005479558.tif 000010
【図１０】
0005479558.tif 000011
【図１１】
0005479558.tif 000012
【図１２】
0005479558.tif 000013