(57)【特許請求の範囲】
【請求項１】
アプリケーションとプリンタードライバーを含む情報処理装置であって、
前記アプリケーションは、
メタデータを含み、印刷結果に影響を与えない画像データであるメタイメージを生成する生成手段と、
前記メタイメージを含む文書データを変換モジュールに送信する送信手段と、を有し、
前記生成手段は前記変換モジュールによって変換されないフォーマットで前記メタイメージを生成し、
前記プリンタードライバーは、
前記文書データを前記変換モジュールから受信する受信手段と、
前記メタイメージが前記文書データに存在するか判別する判別手段と、
前記判別手段により前記メタイメージが前記文書データに存在すると判別された場合に、前記文書データから前記メタイメージに含まれる前記メタデータを取得する取得手段と、を有することを特徴とする情報処理装置。
【請求項２】
前記プリンタードライバーは前記文書データを印刷データに変換し、前記印刷データをプリンターに送信し、前記印刷データを受信した前記プリンターでは前記メタイメージに基づく印刷処理が行われないことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記メタイメージは透過の画像データであることを特徴とする請求項１又は請求項２に記載の情報処理装置。
【請求項４】
前記プリンタードライバーは、前記取得手段により前記メタイメージから前記メタデータを取得後に、前記文書データから前記メタイメージを削除することを特徴とする請求項１又は請求項２に記載の情報処理装置。
【請求項５】
前記アプリケーションは前記文書データの描画されない領域に前記メタイメージを配置することを特徴とする請求項１又は請求項２に記載の情報処理装置。
【請求項６】
アプリケーションとプリンタードライバーを含むコンピュータにおいて実行されるプログラムであって、
前記コンピュータに、
メタデータを含み、印刷結果に影響を与えない画像データであるメタイメージを前記アプリケーションにより生成する生成工程と、
前記メタイメージを含む文書データを前記アプリケーションにより変換モジュールへ送信する送信工程と、を実行させ、
前記生成工程では前記変換モジュールによって変換されないフォーマットで前記メタイメージを生成し、さらに前記コンピュータに、
前記文書データを前記プリンタードライバーにより前記変換モジュールから受信する受信工程と、
前記メタイメージが前記文書データに存在するか前記プリンタードライバーにより判別する判別工程と、
前記判別工程により前記メタイメージが前記文書データに存在すると判別された場合に、前記文書データから前記メタイメージに含まれる前記メタデータを前記プリンタードライバーにより取得する取得工程と、を実行させることを特徴とするプログラム。
【請求項７】
前記プリンタードライバーは前記文書データを印刷データに変換し、前記印刷データをプリンターに送信し、前記印刷データを受信した前記プリンターでは前記メタイメージに基づく印刷処理が行われないことを特徴とする請求項６に記載のプログラム。
【請求項８】
前記メタイメージは透過の画像データであることを特徴とする請求項６又は請求項７に記載のプログラム。
【請求項９】
前記プリンタードライバーは、前記取得工程により前記メタイメージから前記メタデータを取得後に、前記文書データから前記メタイメージを削除することを特徴とする請求項６又は請求項７に記載のプログラム。
【請求項１０】
前記アプリケーションは前記文書データの描画されない領域に前記メタイメージを配置することを特徴とする請求項６又は請求項７に記載のプログラム。
【請求項１１】
アプリケーションとプリンタードライバーを含む情報処理装置において実行される制御方法であって、
メタデータを含み、印刷結果に影響を与えない画像データであるメタイメージを前記アプリケーションにより生成する生成工程と、
前記メタイメージを含む文書データを前記アプリケーションにより変換モジュールへ送信する送信工程と、
前記生成工程では前記変換モジュールによって変換されないフォーマットで前記メタイメージを生成し、
前記文書データを前記プリンタードライバーにより前記変換モジュールから受信する受信工程と、
前記メタイメージが前記文書データに存在するか前記プリンタードライバーにより判別する判別工程と、
前記判別工程により前記メタイメージが前記文書データに存在すると判別された場合に、前記文書データから前記メタイメージに含まれる前記メタデータを前記プリンタードライバーにより取得する取得工程と、を有することを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はアプリケーションとプリンタードライバー間で通信する技術に関する。
【背景技術】
【０００２】
従来、印刷データ以外の任意のデータをアプリケーションとプリンタードライバー間で通信する技術が開示されている。特許文献１にはプリンタードライバーが画像サーバー・インターフェースをサポートしているか否かをアプリケーションが判断する方法として、ＥｘｔＥｓｃａｐｅ（）システム呼び出しを行う技術が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１０−２４８０１４
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、プリンタードライバーが動作する印刷システムのバージョンによっては印刷処理に関わるモジュールが、特許文献１で記載されているＥｘｔＥｓｃａｐｅによる任意のデータのやりとりをサポートしていない。その結果、アプリケーションとプリンタードライバー間で必要な通信を行うことができず、希望する機能が実現できない課題がある。
【０００５】
これに対して、本発明は印刷システムのバージョンによらず、アプリケーションとプリンタードライバー間で任意のデータの通信を実現することを目的とする。
【課題を解決するための手段】
【０００６】
上記の目的を達成するための本発明に係る情報処理装置は、アプリケーションとプリンタードライバーを有し、
前記アプリケーションは、
メタデータを含み、印刷結果に影響を与えない画像データであるメタイメージを生成する生成手段と、
前記メタイメージを含む文書データを変換モジュールに送信する送信手段と、を有し、
前記生成手段は前記変換モジュールによって変換されないフォーマットで前記メタイメージを生成し、
前記プリンタードライバーは、
前記文書データを前記変換モジュールから受信する受信手段と、
前記メタイメージが前記文書データに存在するか判別する判別手段と、
前記判別手段により前記メタイメージが前記文書データに存在すると判別された場合に、前記文書データから前記メタイメージに含まれる前記メタデータを取得する取得手段と、を有することを特徴とする。
【発明の効果】
【０００７】
本発明により、印刷システムのバージョンによらず、アプリケーションとプリンタードライバー間で任意のデータの通信を実現することができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の印刷システムが適用可能な装置構成例。
【図２】本発明の印刷システムに関わるハードウェア構成を示すブロック図。
【図３】ソフトウェアモジュールの印刷処理に関わるデータフロー図。
【図４】アプリケーションの処理の流れを示すフローチャート。
【図５】メタイメージのデータ例を示す模式図。
【図６】ＭＸＤＣの処理の流れを示すフローチャート。
【図７】ＸＰＳのデータ例を示す模式図。
【図８】フィルターの処理の流れを示すフローチャート。
【図９】アプリケーションの印刷処理とページイメージを表す模式図。
【発明を実施するための形態】
【０００９】
以下、本発明を実施するための形態について図面を用いて説明する。
【００１０】
Ｍｉｃｒｏｓｏｆｔ（登録商標）のＷｉｎｄｏｗｓ（登録商標）  ８ではＶ３プリンタードライバーに加えて、Ｖ４プリンタードライバーという新しいアーキテクチャに基づいたプリンタードライバーの開発が可能となった。
【００１１】
Ｖ４プリンタードライバーでは描画用データとしてＸＰＳ（ＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）というＭｉｃｒｏｓｏｆｔの規定する文書フォーマットが用いられる。
【００１２】
ＧＤＩ（Ｇｒａｐｈｉｃｓ  Ｄｒｉｖｅｒ  Ｉｎｔｅｒｆａｃｅ）とＸＰＳはそれぞれ描画体系が異なるが、ＧＤＩをＸＰＳに変換するＭＸＤＣ（Ｍｉｃｒｏｓｏｆｔ  ＸＰＳ  Ｄｏｃｕｍｅｎｔ  Ｃｏｎｖｅｒｔｅｒ）という変換モジュールが提供されているため、アプリケーションはＧＤＩ実装のままＶ４プリンタードライバーに印刷することが可能である。
【００１３】
また、Ｖ３プリンタードライバーはＧＤＩのＡＰＩとして描画命令だけでなく任意データを送信するＥｘｔＥｓｃａｐｅのＡＰＩを処理する能力を備えている。しかしながら、変換モジュールであるＭＸＤＣでは詳細は後述するが、ＥｘｔＥｓｃａｐｅで任意データを受信することができない。
【００１４】
そのため、アプリケーションがＶ３プリンタードライバーとの組み合わせにおいてＥｘｔＥｓｃａｐｅによって行っていた通信制御は、アプリケーションとＶ４プリンタードライバーとの組み合わせにおいては実現することができない。
【００１５】
よって以降はＥｘｔＥｓｃａｐｅを用いずにアプリケーションとＶ４プリンタードライバー間で通信を行う方法について説明する。
【００１６】
図１は、本発明の印刷システムが適用可能な装置構成例を示す図である。本印刷システムは、情報処理装置の一例であるＰＣ１０とプリンター２０から構成される。ＰＣ１０、プリンター２０はＬＡＮ１を介して接続されている。ＬＡＮ１はイーサーネットの通信方式に対応しており、有線又は無線のどちらであっても構わない。ＬＡＮ以外にＢｌｕｅｔｏｏｔｈ（登録商標）やＵＳＢなどその他の接続形態であっても構わない。
【００１７】
図２は、ＰＣ１０に適用可能なハードウェア構成を示すブロック図である。ＣＰＵ１０１は、ＲＡＭ１０２に記憶されているプログラムに従って、システムバス１０４に接続される各デバイスを総括的に制御する。加えて、ＣＰＵ１０１が外部メモリ１１１に記憶されているプログラムに基づき処理を実行することによって、図３に示されるようなＰＣ１０のソフトウェア構成及び後述するフローチャートの各ステップの処理が実現される。このＲＡＭ１０２は、ＣＰＵ１０１の主メモリ、ワークエリア等としても機能する。ＲＯＭ１０３は、各種プログラム及びデータを格納しており、各種フォントを記憶するフォントＲＯＭ１０３ａ、ブートプログラムやＢＩＯＳ等を記憶するプログラムＲＯＭ１０３ｂ、及び各種データを記憶するデータＲＯＭ１０３ｃに区分けして構成される。ネットワークＩ／Ｆ１０５は、ＬＡＮ１に接続され、通信処理を行なう。キーボードコントローラＩ／Ｆ１０６は、キーボード１０９や不図示のポインティングデバイス（マウス）からのキー入力を制御する。ディスプレイＩ／Ｆ１０７は、ディスプレイ１１０への表示処理を制御する。外部メモリＩ／Ｆ１０８は、例えばハードディスク（ＨＤ）等の外部メモリ１１１とのアクセスを制御する。外部メモリ１１１は、オペレーティングシステム（以下、ＯＳ）１１２や本発明の印刷システムを担う各種ソフトウェア１１３、さらに、ユーザファイル、編集ファイル等の各種データ１１４を記憶する記憶媒体として機能する。なお、ＯＳ１１２は本実施例ではＭｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）  ８を例に説明する。
【００１８】
図３（ｂ）に、Ｖ３のＧＤＩのプリンタードライバーの印刷処理に関わるソフトウェアモジュールによるデータフロー図を示す。アプリケーション３０１は文書データを作成し、印刷ダイアログを介して印刷指示を受け付けるソフトウェアである。印刷指示をユーザーから受け付けると、アプリケーション３０１は文書データの描画命令をＧＤＩのＡＰＩを用いてＶ３グラフィックスモジュール３０７に送信する。Ｖ３のＧＤＩのプリンタードライバーの場合、ＧＤＩをＸＰＳに変換するステップは存在せず、Ｖ３グラフィックスモジュール３０７がＧＤＩからＰＤＬ（Ｐｒｉｎｔｅｒ  Ｄｅｓｃｒｉｐｔｉｎ  Ｌａｎｇｕａｇｅ）に直接変換を行う。ＰＤＬはプリンター２０で印刷処理を行うための印刷データである。Ｖ３グラフィックスモジュール３０７によって出力されたＰＤＬは、スプーラー３０５によってバッファリングされ、ポートモニター３０６によってプリンター２０に送信される。
【００１９】
図３（ａ）は、Ｖ４プリンタードライバーの印刷処理に関わるソフトウェアモジュールによるデータフローを示す図である。アプリケーション３０１が印刷指示をユーザーから受け付けると、アプリケーション３０１は文書データの描画命令をＧＤＩのＡＰＩを用いてＭＸＤＣ３０２に送信する。ＭＸＤＣ３０２はアプリケーション３０１から受信したＧＤＩをＸＰＳに変換し、フィルターパイプラインマネージャー３０３に送信する。Ｖ４プリンタードライバーでは、ＸＰＳプリントフィルターパイプラインと呼ばれるアーキテクチャに従って印刷処理が実行される。ＸＰＳプリントフィルターパイプラインにおける内部コンポーネントの単位はフィルターと呼ばれ、プリンタードライバーに含まれる単一または複数のフィルターがフィルターパイプラインマネージャー３０３によって順にリンクされて実行される。すなわち、あるフィルターの出力がその次に連結されたフィルターの入力となり、各フィルターが順次処理を実行することによってプリンター２０に送信するＰＤＬを生成する仕組みになっている。本実施例においてはＸＰＳからＰＤＬへの変換を行う１つのフィルター３０４を用いて印刷処理を行うものとする。フィルターによって出力されたＰＤＬは、スプーラー３０５によってバッファリングされ、ポートモニター３０６によってプリンター２０に送信される。
【００２０】
ここでアプリケーションとプリンタードライバー間の通信に関して両者の違いを説明する。図３（ｂ）で説明したＶ３グラフィックスモジュール３０７は任意データを送信するＥｘｔＥｓｃａｐｅのＡＰＩを処理する能力を備えている。図３（ａ）で説明したＭＸＤＣ３０２もＥｘｔＥｓｃａｐｅのＡＰＩをサポートしているが、ＥｘｔＥｓｃａｐｅを用いて後述するメタデータを受信することができない。このようなソフトウェアモジュールの構成やＥｘｔＥｓｃａｐｅに関わる能力の差異があるため、Ｖ４プリンタードライバーにおいて、アプリケーション３０１からＥｘｔＥｓｃａｐｅに代わる手段で任意データを送信し、フィルター３０４で受信して処理するための手段が求められる。
【００２１】
図４は、本発明の実施形態におけるアプリケーション３０１の印刷処理を示すフローチャートである。はじめに、アプリケーション３０１は、Ｖ４プリンタードライバーに送信する任意データを外部メモリ１１１から読み込む（Ｓ１０１）。本実施例では、暗号化証明書を用いてＰＣ１０からプリンター２０に送信されるＰＤＬを暗号化するシステムを例に説明するので、以下、任意データは暗号化証明書とする。以降の処理では、アプリケーション３０１は暗号化証明書をフィルター３０４に送信し、フィルター３０４は暗号化証明書でＰＤＬを暗号化してプリンター２０に送信し、プリンター２０は復号化証明書でＰＤＬを復号化する。
【００２２】
次に、アプリケーション３０１は、暗号化証明書の情報を含むＰＮＧ形式のメタイメージを生成する（Ｓ１０２）。Ｖ３プリンタードライバーでは、アプリケーション側からプリンタードライバー側への暗号化証明書の送信はＧＤＩのＥｘｔＥｓｃａｐｅを用いて行うことができる。一方、Ｖ４プリンタードライバーではＥｘｔＥｓｃａｐｅで暗号化証明書を送信することはできない。そこで本発明ではＥｘｔＥｓｃａｐｅの代わりに「メタイメージ」というデータを介して送信を行う。メタイメージとは、画像フォーマットにおける描画に関する情報以外の情報を格納する領域（本明細書では拡張領域と呼ぶ）に任意データ（メタデータ）を保存した、印刷結果に影響を与えない画像データである。印刷結果に影響を与えないとは、詳細は後述するが、プリンター２０で文書データから変換された印刷データに基づいて印刷処理を行う際に、文書データに含まれていたメタイメージに基づいて何も印刷処理が行われないことを意味する。また、メタイメージのフォーマットとしては、こちらも詳細は後述するが、文書データの変換モジュール（ＭＸＤＣ３０２）によって変換されないフォーマットを用いる。本実施例ではＰＮＧフォーマットを用いるが、他にもＪＰＥＧなど拡張領域が存在し、ＭＸＤＣ３０２によって変換されないＰＮＧと同様の画像フォーマットでも適用可能である。メタイメージは図５（ａ）、図５（ｂ）で説明するフォーマットにのっとって生成する。
【００２３】
図５（ａ）に本実施例におけるメタイメージのデータ例を模式図で示す。ＰＮＧの画像フォーマットは、８バイトのファイルヘッダーに続いて、チャンクというデータ領域を複数含む形式で定義される。チャンクは、チャンクサイズ（４バイト）、チャンク種類（４バイト）、データ部（任意長）、ＣＲＣ（４バイト）から構成されており、画像に関する様々な情報を格納することができる。チャンクは必須チャンクと補助チャンクの２つに分類される。必須チャンクにはＩＨＤＲ、ＰＬＴＥ、ＩＤＡＴ、ＩＥＮＤの４つが定義されている。補助チャンクは任意に定義でき、解釈するかどうかはプログラムの仕様に依存するが、広く使用されているものとしてはＩＣＣプロファイルやガンマ補正値を指定するものなどが存在する。
【００２４】
本実施例においては、ｎａＮｏという補助チャンクを独自に定義して任意データを格納できるようにする。ただし、任意データ（ここでは暗号化証明書、およそ１ＫＢ）の情報はいったん別のパッケージ形式（後述）に格納してからｎａＮｏチャンクに格納するものとする。なお、本実施例におけるメタイメージは任意データを伝送することが目的であり、画像として最低限の体裁を保持しつつ印刷結果や印刷パフォーマンスへ影響を与えないようにするため、大きさは１×１ピクセル、色は透過率１００％の２４ビットカラーを指定するものとする。このようにメタイメージは透過の画像データであるため、メタイメージを含む文書データが印刷データに変換され、プリンターに送信されても、プリンターではメタイメージが描画されることはない。大きさや色といった描画内容に関する情報はＩＤＡＴに格納される。よって、メタイメージのＩＤＡＴの領域は印刷結果に影響を与えないデータ領域になる。２４ビットカラーを指定する場合は必須チャンクのＰＬＴＥを省略するため、本実施例におけるメタイメージはＩＨＤＲ、ＩＤＡＴ、ｎａＮｏ、ＩＥＮＤの４つのチャンクから構成される。
【００２５】
図５（ｂ）に本実施例における独自データを格納するためのパッケージ形式の例を模式図で示す。従来のＥｘｔＥｓｃａｐｅと同様に任意データの送信を可能とするためには、受信側のプリンタードライバーがデータ種類を識別できるよう、識別情報を関連付けて送信する必要がある。
【００２６】
そこで、図５（ｂ）に示すような可変長のパッケージ形式を定義し、それをｎａＮｏチャンクに格納する。パッケージ形式はヘッダー（６バイト）、識別子クラス（１６バイト）、識別子（４バイト）、データサイズ（４バイト）、データ部（任意長）から構成される。識別子は任意データを送信するプログラムと受信するプログラムで取り決める値である。本実施例では暗号化証明書のデータを送信するので、それを識別する値をアプリケーション３０１とフィルター３０４とで取り決めておく。識別子の値は任意であるため、識別子をユニークにするためＵＵＩＤで表現される識別子クラスも同時に指定する。識別子クラスの値についても、アプリケーション３０１とフィルター３０４とで取り決めておく。
【００２７】
図４に説明を戻すと、最後の処理として、アプリケーション３０１はメタイメージを生成したら、ＧＤＩでメタイメージと他の描画情報を含む文書データを変換モジュール（ＭＸＤＣ３０２）に送信する（Ｓ１０３）。文書データの描画はＧＤＩのＴｅｘｔＯｕｔ（文字）、Ｐｏｌｙｇｏｎ（多角形）、ＳｔｒｅｔｃｈＤＩＢｉｔｓ（ビットマップ）など多数提供されているＡＰＩを利用して描画される。メタイメージに関しては、ＰＮＧフォーマットの印刷がサポートされているＧＤＩ＋のＩｍａｇｅクラスおよびＧｒａｐｈｉｃｓクラスを利用して描画する。
【００２８】
なお、様々な種類のアプリケーションにおいてメタイメージ機能をサポートできるよう、メタイメージの生成処理（Ｓ１０２）と送信処理（Ｓ１０３）を独立したライブラリコンポーネントとして開発し、アプリケーションから呼び出すよう構成しても良い。図９にメタイメージ生成・送信処理ライブラリコンポーネントとして構成した場合の、アプリケーションによる印刷処理例を模式図で示す。
【００２９】
図６は、本発明の実施形態におけるＭＸＤＣ３０２の印刷処理を示すフローチャートである。はじめに、ＭＸＤＣ３０２は、アプリケーション３０１から送信された文書データの描画命令をＧＤＩのＡＰＩを用いて受信する（Ｓ２０１）。次に、ＭＸＤＣ３０２は、受信した文書データのフォーマットをＧＤＩからＸＰＳに変換する（Ｓ２０２）。そして、ＭＸＤＣ３０２は変換したＸＰＳ形式の文書データをフィルターパイプラインマネージャー３０３に送信する（Ｓ２０３）。
【００３０】
図７に、本発明の実施形態におけるＸＰＳ形式の文書データのデータ例を模式図で示す。ＸＰＳはパーツと呼ばれるデータを構成要素とする構造化文書フォーマットであり、パーツ同士はＸＰＳ内で互いに関連付けられている。
【００３１】
文書構造を規定するパーツにはＦｉｘｅｄＤｏｃｕｍｅｎｔＳｅｑｕｅｎｃｅ、ＦｉｘｅｄＤｏｃｕｍｅｎｔ、ＦｉｘｅｄＰａｇｅがあり、それぞれジョブ、ドキュメント、ページという文書の階層構造を表現している。また、各文書構造のパーツには印刷設定をＸＭＬ形式で表現したＰｒｉｎｔＴｉｃｋｅｔと呼ばれるパーツが関連付けられる。ＰｒｉｎｔＴｉｃｋｅｔは、どの文書構造のパーツに関連付けられているかによってそれぞれＪｏｂ−ｌｅｖｅｌ  ＰｒｉｎｔＴｉｃｋｅｔ、Ｄｏｃｕｍｅｎｔ−ｌｅｖｅｌ  ＰｒｉｎｔＴｉｃｋｅｔ、Ｐａｇｅ−ｌｅｖｅｌ  ＰｒｉｎｔＴｉｃｋｅｔと呼び分けられる。
【００３２】
ここで、ＦｉｘｅｄＰａｇｅは、ＸＰＳで規定された文字、図形、画像など様々な描画コマンドが記述されたＸＭＬ形式のデータである。ＦｉｘｅｄＰａｇｅには、ＦｉｘｅｄＰａｇｅ内に記述された描画コマンドが参照する描画リソースのパーツが関連付けられる。すなわち、フォント、画像データ、カラープロファイルといったパーツである（これらをページパートと呼ぶ）。ＸＰＳにおける画像データとしては、Ｊｐｅｇ、ＰＮＧ、ＨＤ  Ｐｈｏｔｏのフォーマットが定義されている。前記以外のフォーマット、例えばＤＩＢ（Ｄｅｖｉｃｅ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｂｉｔｍａｐ）がＧＤＩを通じて入力された場合、ＭＸＤＣ３０２はＪｐｅｇまたはＰＮＧに変換してＸＰＳにパーツとして格納する。ただし、ＧＤＩ＋のＡＰＩによってＪｐｅｇまたはＰＮＧが入力された場合、ＭＸＤＣ３０２は別フォーマットへの変換が不要なのでそのままＸＰＳに格納する。このため、アプリケーション３０１から入力されたメタイメージ内のメタデータは失われることなくＸＰＳ内に保存される。
【００３３】
フィルターパイプラインマネージャー３０３が変換モジュール（ＭＸＤＣ３０２）からＸＰＳ形式の文書データを受信すると、フィルターパイプラインマネージャー３０３の処理が開始する。フィルターパイプラインマネージャー３０３はＸＰＳ形式の文書データを受信するとともにフィルター３０４をロードする。次に、フィルターパイプラインマネージャー３０３は受信したＸＰＳ形式の文書データをフィルター３０４に送信する。これによって、プリンタードライバーのフィルター３０４はＭＸＤＣ３０２とフィルターパイプラインマネージャー３０３を介して、アプリケーション３０１から文書データを受信する。
図８は、本発明の実施形態におけるプリンタードライバーのフィルター３０４がＸＰＳ形式の文書データを受信した後の印刷処理を示すフローチャートである。
【００３４】
フィルター３０４はＸＰＳ形式の文書データを受信すると、文書構造の最上位にあるＦｉｘｅｄＤｏｃｕｍｅｎｔＳｅｑｕｅｎｃｅをＸＰＳ内から取得し、続けてその下位にあるＦｉｘｅｄＤｏｃｕｍｅｎｔを取得する（Ｓ３０１〜Ｓ３０２）。次にフィルター３０４は、ＦｉｘｅｄＤｏｃｕｍｅｎｔの下位にあるＦｉｘｅｄＰａｇｅを、パーツが存在するだけ（ページ数分だけ）取得する（Ｓ３０３〜Ｓ３０４）。
【００３５】
次にフィルター３０４はメタイメージが文書データに存在するか判別し、存在すると判別された場合にメタイメージからメタデータを取得するための処理を行う。Ｓ３０４でＦｉｘｅｄＰａｇｅを取得すると、次にＦｉｘｅｄＰａｇｅに関連付けられたページパートを順に取得する（Ｓ３０５〜Ｓ３０６）。取得したページパートがＰＮＧフォーマットの画像であった場合は補助チャンクｎａＮｏが存在するか調べることによってメタイメージであるかどうかを判別する（Ｓ３０７）。メタイメージであった場合はメタイメージから図５（ｂ）で説明したパッケージ形式を取得し、メタデータすなわち暗号化証明書データを取得する（Ｓ３０８）。
【００３６】
すべてのページパートを取得したらＦｉｘｅｄＰａｇｅとページパートをＰＤＬに変換する（Ｓ３０９）。次に、フィルター３０４は暗号化証明書が取り出し済みであるか判別し（Ｓ３１０）、暗号化証明書が取り出し済みであると判別されたら（Ｓ３０８を実行していたら）、取り出した暗号化証明書に基づいてＰＤＬを暗号化してスプーラー３０５に送信する（Ｓ３１２）。そうでない場合はＰＤＬを暗号化せずにスプーラー３０５に送信する（Ｓ３１２）。このように、プリンタードライバーは文書データを印刷データに変換し、スプーラー３０５とポートモニター３０６を介して、印刷データをプリンター２０に送信する。以上、本実施例における印刷処理について説明した。
【００３７】
なお、本実施例においては暗号化証明書を送信する処理について説明したが、メタイメージを用いた通信ではアプリケーションが任意の情報をプリンタードライバーに送信し、印刷制御することが可能である。例えば、Ｖ３プリンタードライバーにおけるＰｏｓｔＳｃｒｉｐｔ  Ｐａｓｓ−Ｔｈｒｏｕｇｈや、ハーフトーン済みの地紋画像などＧＤＩの描画指示のＡＰＩおよびＸＰＳでは表現できない情報を送信するユースケースに適用可能である。
【００３８】
また、メタイメージは１ジョブ内あるいは１ページ内で複数回送信しても良い。ただし、１ページ内で複数回送信する場合は、ＸＰＳへの変換時にＭＸＤＣ３０２によってメタイメージが冗長な画像として間引かれてしまわないよう、各々のメタイメージに異なる描画属性を付与してもよい。具体的には、各々のメタイメージの描画位置や色（透過成分を除くＲＧＢ成分）を変えるよう制御する。または、メタイメージの大きさを例えば１０ピクセル程度の範囲内で任意に変化させるようにしても良い。
【００３９】
ところで、ここまでの説明において、メタイメージは透過色を画素に持つものとしていたが、画素色に関わらず印刷結果に影響を与えないようにするその他の手法を用いてシステムを構成することも可能である。例えば、メタイメージを文書データの描画されない領域に配置してもよい。具体的にはメタイメージの描画位置が必ず印刷用紙の領域外となるようにしても良いし、メタイメージが描画されないようにクリップを指定しても良い。あるいは、Ｓ３０７においてページパートがメタイメージと判定された場合は、Ｓ３０８でメタイメージからメタデータを取得後に、ＸＰＳ形式の文書データからメタイメージを削除することによりＰＤＬに変換されないよう構成しても良い。
【００４０】
ここまで、メタイメージに基づいてプリンターで何も印字を行わせない方法について説明してきたが、他に印刷結果にほとんど影響がない画像にしても構わない。具体的にはメタイメージの大きさを１×１ピクセルで白に近い黄色の画素とし、文書データの描画領域のうち白い背景となっている領域に配置する。
【００４１】
また、本実施例ではプリンターにＰＤＬを送信して印刷させる印刷システムを例に説明したが、その他のプリンタードライバーが組み込まれた情報システムに対しても適用することができる。例えば、アプリケーションからの印刷指示をＰＤＦに変換してファイルに保存する仮想的なＶ４プリンタードライバーを備える文書システムなどに応用しても良い。
【００４２】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
0006632424.tif 000002
【図２】
0006632424.tif 000003
【図３】
0006632424.tif 000004
【図４】
0006632424.tif 000005
【図５】
0006632424.tif 000006
【図６】
0006632424.tif 000007
【図７】
0006632424.tif 000008
【図８】
0006632424.tif 000009
【図９】
0006632424.tif 000010