(57)【要約】【課題】フィルタプログラムの構成を複雑にすることなく、必要なコマンドを容易に抜き出すことが可能な情報処理装置等を提供する。【解決手段】本発明の情報処理装置は、接続される機器が解釈可能なデータを生成する情報処理装置であって、入力されたデータに含まれるコマンドデータを所定単位に分割するコマンド分割手段４２と、コマンド分割手段４２により所定単位に分割されたコマンドデータの夫々に対し、対応する処理を行うコマンド処理手段４４と、コマンド処理手段４４により処理されたコマンドデータに基づいて、機器が解釈可能なデータを生成するデータ生成手段４６とを有する。【選択図】図４
2008134714.tif 000002
【特許請求の範囲】
【請求項１】
接続される機器が解釈可能なデータを生成する情報処理装置であって、
入力されたデータに含まれるコマンドデータを所定単位に分割するコマンド分割手段と、
該コマンド分割手段により分割された前記所定単位のコマンドデータの夫々に対し、対応する処理を行うコマンド処理手段と、
該コマンド処理手段により処理された前記所定単位のコマンドデータに基づいて、前記接続される機器が解釈可能なデータを生成するデータ生成手段とを有する、ことを特徴とする情報処理装置。
【請求項２】
前記所定単位のコマンドデータの夫々に対し、対応する処理を行うためのプログラムを記憶するプログラム記憶手段と、
該プログラム記憶手段に記憶されたプログラムと、前記所定単位のコマンドデータとの対応関係を記憶するプログラム設定記憶手段とを更に有する、ことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記コマンド処理手段は、前記プログラム設定記憶手段に記憶された対応関係に基づいて、前記コマンド分割手段により分割された前記所定単位のコマンドデータの夫々に対応するプログラムを前記プログラム記憶手段から呼び出すプログラム呼出手段を有する、ことを特徴とする請求項２記載の情報処理装置。
【請求項４】
前記入力されたデータは、固定長のコマンド識別子及びコマンドサイズを有し、
前記コマンド分割手段は、前記コマンド識別子及び前記コマンドサイズに基づいて、前記入力されたデータを分割する、ことを特徴とする請求項１記載の情報処理装置。
【請求項５】
前記データ生成手段により生成されたデータを前記機器へ送信するデータ送信手段を更に有する、ことを特徴とする請求項１記載の情報処理装置。
【請求項６】
コンピュータに、接続される機器が解釈可能なデータを生成する情報処理方法を実行させるプログラムであって、
前記コンピュータに、
入力されたデータに含まれるコマンドデータを所定単位に分割するコマンド分割ステップと、
該コマンド分割ステップで分割された前記所定単位のコマンドデータの夫々に対し、対応する処理を行うコマンド処理ステップと、
該コマンド処理ステップで処理された前記所定単位のコマンドデータに基づいて、前記接続される機器が解釈可能なデータを生成するデータ生成ステップとを実行させることを特徴とするプログラム。
【請求項７】
前記コンピュータに、更に、
前記コマンド処理ステップで、前記所定単位のコマンドデータの夫々に対し、対応する処理を行うためのプログラムと、前記所定単位のコマンドデータとの対応関係に基づいて、前記コマンド分割手段により分割された前記所定単位のコマンドデータの夫々に対応するプログラムを呼び出すプログラム呼出ステップを実行させることを特徴とする請求項６記載のプログラム。
【請求項８】
前記入力されたデータが固定長のコマンド識別子及びコマンドサイズを有する場合に、
前記コンピュータに、更に、
前記コマンド分割ステップで、前記コマンド識別子及び前記コマンドサイズに基づいて、前記入力されたデータを分割するステップを実行させることを特徴とする請求項６記載のプログラム。
【請求項９】
前記コンピュータに、更に、
前記データ生成ステップで生成されたデータを前記機器へ送信するデータ送信ステップを実行させることを特徴とする請求項６記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、接続される機器が解釈可能なデータを生成する情報処理装置及びプログラムに関する。
【背景技術】
【０００２】
ネットワーク又はシリアルで、例えばパーソナルコンピュータ（ＰＣ）等の情報処理装置と、例えばプリンタ、スキャナ又はファクシミリ（ＦＡＸ）等の周辺機器とが接続されている場合に、情報処理装置は、情報処理装置に搭載されたアプリケーションで作成又は閲覧したデータを機器が解釈可能な形式に変換するためのプログラムモジュールを有する。このプログラムモジュールは、例えば、レーザプリンタ（ＬＰ）及び複合機能プリンタ（ＭＦＰ）等の画像形成装置の場合に、一般的にプリンタドライバと呼ばれている。プリンタドライバは、アプリケーションから送られたデータをプリンタが解釈可能なプリンタ記述言語（ＰＤＬ；Ｐｒｉｎｔｅｒ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）データへと変換する。プリンタは、プリンタドライバにより変換されたＰＤＬデータを、情報処理装置のアプリケーション上で表示されているイメージ通りに印刷する。
【０００３】
通常、プリンタドライバは、例えば、任意の文字列のみ色を変更するといったような、その動作自体をカスタマイズすることはできない。このような要求を満たすには、プリンタドライバ自体の動作仕様を変更し、プリンタドライバ自体を作成し直す必要がある。これを回避するために、特開２００５−２８４３８４号公報（特許文献１）は、プリンタが受信した受信データ中の特定の文字列等に対してパターンマッチングやデバック等の処理を行うフィルタプログラムをプリンタ側のＰＤＬデータの処理の途中に挿入することにより、描画コマンド自体を外部プログラムにて編集することを可能にするフィルタフレームワークの技術を開示する。
【特許文献１】特開２００５−２８４３８４号公報（特許文献１）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、上記特許文献１では、描画コマンド全体を一旦フィルタプログラムに送る必要がある。一般的に描画コマンドとは、文字列、グラフィックス及びイメージの描画処理命令のことであり、例えば、上述したような「任意の文字列のみ色を変更する」といった場合には、その動作の対象は「文字列」のみであって、「グラフィックス」及び「イメージ」の描画命令は不要であるから、フィルタプログラムに送信するオーバーヘッドが発生することになる。また、描画コマンドの解析、つまり、描画コマンド全体から必要とする描画コマンドを抜き出す処理をフィルタプログラム側で行わなくてはならず、フィルタプログラム側の構成が複雑になってしまうという問題もあった。
【０００５】
本発明は、上記問題を鑑み、フィルタプログラムの構成を複雑にすることなく、必要なコマンドを容易に抜き出すことが可能な情報処理装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明の情報処理装置は、接続される機器が解釈可能なデータを生成する情報処理装置であって、入力されたデータに含まれるコマンドデータを所定単位に分割するコマンド分割手段と、該コマンド分割手段により分割された前記所定単位のコマンドデータの夫々に対し、対応する処理を行うコマンド処理手段と、該コマンド処理手段により処理された前記所定単位のコマンドデータに基づいて、前記接続される機器が解釈可能なデータを生成するデータ生成手段とを有する、ことを特徴とする。
【０００７】
このようにコマンド分割手段を設けることにより、所定単位に分けられたコマンドデータごとに対応する適切な処理を行うことが可能となるので、フィルタプログラムの構成を複雑にすることなく、必要なコマンドを容易に抜き出すことが可能な情報処理装置を提供することが可能となる。
【０００８】
また、本発明の情報処理装置は、望ましくは、前記所定単位のコマンドデータの夫々に対し、対応する処理を行うためのプログラムを記憶するプログラム記憶手段と、該プログラム記憶手段に記憶されたプログラムと、前記所定単位のコマンドデータとの対応関係を記憶するプログラム設定記憶手段とを更に有する。
【０００９】
これにより、所定単位に分けられたコマンドデータごとに異なるフィルタプログラムを設定できるので、複数の処理を同時に別々のフィルタプログラムで実現することが可能となり、情報処理装置（即ち、プログラムモジュール）のカスタマイズ性が向上する。
【００１０】
また、本発明の情報処理装置において、前記コマンド処理手段は、前記プログラム設定記憶手段に記憶された対応関係に基づいて、前記コマンド解析手段により分割された前記所定単位のコマンドデータの夫々に対応するプログラムを前記プログラム記憶手段から呼び出すプログラム呼出手段を有することができる。
【００１１】
これにより、所定単位に分けられたコマンドデータごとに対応する処理を行う適切なフィルタプログラムを選択することが可能となる。
【００１２】
また、本発明の情報処理装置において、前記入力されたデータは、固定長のコマンド識別子及びコマンドサイズを有し、前記コマンド分割手段は、前記コマンド識別子及び前記コマンドサイズに基づいて、前記入力されたデータを分割することができる。
【００１３】
これにより、１つのコマンドごとにコマンドデータを分割することが可能となる。即ち、所定単位に分けられたコマンドデータは、１つのコマンドに関するデータである。
【００１４】
また、本発明の情報処理装置は、望ましくは、前記データ生成手段により生成されたデータを前記機器へ送信するデータ送信手段を更に有する。
【００１５】
これにより、情報処理装置において生成された、機器が解釈可能なデータを機器側へ送信することが可能となる。
【００１６】
また、本発明は、プログラムとして実施されても良く、本発明のプログラムをコンピュータに読み込ませることにより上記目的を達成することができる。
【発明の効果】
【００１７】
本発明により、コマンド分割手段を設け、所定単位に分けられたコマンドデータごとにフィルタプログラムを呼び出せることにより、フィルタプログラムの構成を複雑にすることなく、必要なコマンドを容易に抜き出すことが可能な情報処理装置及びプログラムを提供することを目的とする。
【発明を実施するための最良の形態】
【００１８】
本発明を実施するための最良の形態を、添付の図面を参照して説明する。
【００１９】
［構成］
図１は、本実施形態における情報処理システムのネットワーク構成の一例を表す図である。
【００２０】
図１の情報処理システム１は、例えばパーソナルコンピュータ（ＰＣ）等の情報処理装置１０ａ及び１０ｂと、例えばプリンタ等の機器１２ａ及び１２ｂと、それらを相互に接続して、データ通信を可能にする、例えばローカルエリアネットワーク（ＬＡＮ）等のネットワーク１４とを有する。
【００２１】
ＰＣ１０ａ及び１０ｂは、例えばウィンドウズ（登録商標）のような基本ソフト（ＯＳ）上で動作するプログラムであるアプリケーションを組み込まれており、アプリケーションによるデータ生成機能を有する装置である。
【００２２】
プリンタ１２ａ及び１２ｂは、ＰＣ１０ａ及び１０ｂにおいてアプリケーションにより生成されたデータをネットワーク１４を介して受信し、そのデータを用紙に印刷する印刷出力機能を有する装置である。
【００２３】
なお、図１の情報処理システム１において、ＰＣ及びプリンタは、夫々、２台ずつ表されているが、実際には複数台存在しても良い。当然のことながら、ＰＣ及びプリンタ以外の他の装置が存在しても良い。
【００２４】
次に、図２は、本実施形態における情報処理装置のハードウェア構成の一例を表す図である。
【００２５】
図２の情報処理装置１０は、バス２６によって相互に接続されたドライブ装置２１と、補助記憶装置２２と、メモリ装置２３と、演算処理装置２４と、インターフェース装置２５とを有する。情報処理装置２０における処理を実現するプログラムは、ＣＤ−ＲＯＭ等の記録媒体２７によって提供される。
【００２６】
ドライブ装置２１は、記録媒体２７を読み取るための装置である。プログラムを記録した記録媒体２７がドライブ装置２１にセットされると、プログラムが記録媒体２７からドライブ装置２１を介して補助記憶装置２２にインストールされる。なお、本実施形態では、記録媒体に記録されたプログラムとして、後述するプリンタドライバに代表されるデバイスドライバを例として説明する。
【００２７】
補助記憶装置２２は、インストールされたプログラムを格納すると共に、必要なファイル及びデータ等を格納する装置である。
【００２８】
メモリ装置２３は、プログラムの起動指示があった場合に、補助記憶装置２２からプログラムを読み出して格納する装置である。
【００２９】
演算処理装置２４は、メモリ装置２３に格納されたプログラムに従って、情報処理装置２０に係る機能を実行する装置である。
【００３０】
インターフェース装置２５は、情報処理装置２０をネットワーク１４（図１参照。）へ接続するための装置である。
【００３１】
更に、図３は、本実施形態における情報処理装置の機能構成の一例を表す図である。
【００３２】
図３の情報処理装置１０は、アプリケーション３０と、描画サービス３２と、デバイスドライバの一例としてのプリンタドライバ３４と、記憶装置３６と、データ送信手段３８とを有し、ネットワーク１４を介してプリンタ１２と接続されている。
【００３３】
アプリケーション３０は、例えばウィンドウズ（登録商標）のような基本ソフト（ＯＳ）上で動作するプログラムであって、例えば、文書作成ソフト及び表計算ソフト等のような汎用アプリケーションである。
【００３４】
描画サービス３２は、ＯＳ上で動作する描画エンジンであって、例えばＯＳとしてウィンドウズ（登録商標）を用いる場合には、一般に、アプリケーション３０と描画サービス３２との間を接続するインターフェースと共にＧＤＩ（Ｇｒａｐｈｉｃ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ）に含まれている。
【００３５】
プリンタドライバ３４は、ＯＳの内部命令をプリンタ１２が解釈可能な形式で記述された所謂プリンタ言語（ＰＤＬ）データに変換するデータ変換手段である。例えばＯＳとしてウィンドウズ（登録商標）を用いる場合には、一般に、ＧＤＩ３２とプリンタドライバ３４との間は、ＤＤＩ（Ｄｅｖｉｃｅ  Ｄｒｉｖｅｒ  Ｉｎｔｅｒｆａｃｅ）と呼ばれるインターフェースで接続されている。
【００３６】
記憶装置３６は、図２の補助記憶装置２２、メモリ装置２３、及び／又は記録媒体２７に相当し、プリンタドライバ３４が所定の処理を実行するためのプログラムや、処理に用いられるデータなどを記憶する装置である。記憶装置３６は、ハードディスクドライバ（ＨＤＤ）若しくは読み出し専用メモリ（ＲＯＭ）等の不揮発性メモリ、ランダムアクセスメモリ（ＲＡＭ）若しくはフラッシュメモリ等の揮発性メモリ、又はＣＤ−ＲＯＭ等の持ち運び可能な記録媒体等であっても良い。
【００３７】
データ送信手段３８は、所謂スプーラであって、プリンタドライバ３４で生成されたＰＤＬデータをスプールするモジュールである。スプーラを使用することにより、一般的に、コンピュータ自体やアプリケーションの処理速度に比べると、プリンタ出力はかなり低速であるため、特に大容量のデータの場合には、直接的にデータをプリンタへ送信する場合よりも、相当に早く装置が処理から解放される。スプーラ３８によりスプールされたＰＤＬデータは、印刷ポートからネットワーク１４を介してプリンタ１２へ送信される。
【００３８】
図４は、図３のプリンタドライバ及び記憶装置の構成の一例を表す図である。
【００３９】
図４のプリンタドライバ３４は、データ受信手段４０と、コマンド分割手段４２と、コマンド処理手段４４と、データ生成手段４６とを有する。
【００４０】
データ受信手段４０は、予めＯＳにより規定されたインターフェース（Ｉ／Ｆ）（例えば、ウィンドウズ（登録商標）の場合にはＤＤＩ）を介してアプリケーション３０から描画データを受信する手段である。
【００４１】
コマンド分割手段４２は、データ受信手段４０で受信した描画データに含まれるコマンドデータを所定単位に分割する手段である。コマンド分割手段４２は、描画データに含まれる描画コマンドストリームから各描画コマンドを検索して解析する。
【００４２】
描画コマンドストリームは、図５に示されるように、複数の描画コマンドブロック５０ａ、５０ｂ、５０ｃ、５０ｄ、...を有し、夫々の描画コマンドブロックは、コマンド識別子（ＩＤ）５２、コマンドサイズ５４及びコマンドデータ５６の夫々が格納される領域を有する。コマンドＩＤ５２及びコマンドサイズ５４は、例えば２バイトや４バイトといった固定長を有し、コマンドサイズ５４の領域には、単位描画コマンドブロックにおけるコマンドＩＤ５２からコマンドデータ５６までの総サイズ、又は、コマンドデータ５６のみのサイズのいずれかが記述されている。コマンド分割手段４２は、コマンドサイズ５４を読み出し、読み出したコマンドサイズ５４に従って描画コマンドストリームを描画コマンドブロック単位に分割する。また、コマンドＩＤ５２は、それが含まれている描画コマンドブロックにより表される描画コマンドの種類を表しており、コマンド分割手段４２は、夫々の描画コマンドブロックに含まれるコマンドＩＤ５２を参照して、その描画コマンドの内容を解析することができる。
【００４３】
なお、図３に示したように、例えばＯＳとしてウィンドウズ（登録商標）が用いられ、アプリケーション３０とプリンタドライバ３４との間にはＧＤＩ３２が存在している場合には、プリンタドライバ３４に対して描画コマンド単位で関数がコールされるので、上述したような描画コマンドストリームの分割処理は不要となる。
【００４４】
コマンド処理手段４４は、コマンド分割手段４２で分割された描画コマンドの夫々に対し、対応する処理を行う手段である。
【００４５】
コマンド処理手段４４が処理を実行するためのプログラム及びその処理に用いられるデータは、記憶装置３６に格納されている。記憶装置３６は、プログラム記憶手段４４０と、プログラム設定記憶手段４５０とを有する。プログラム記憶手段４４０は、描画コマンドの夫々に対応する処理を行うためのフィルタプログラムを記憶する記憶手段である。プログラム設定記憶手段４５０は、例えば、予めユーザにより入力された又はＯＳにより規定された設定ファイルと、プログラム記憶手段４４０に記憶されたフィルタプログラムがこの設定ファイルに基づいて描画コマンドの夫々に関連付けられているコマンド対応表とを記憶する記憶手段である。フィルタプログラムと描画コマンドとの対応関係は、本実施形態のような表形式に限らず、様々な形式によって記憶されても良い。
【００４６】
フィルタプログラムは、描画コマンドに応じて追加可能なプログラムであって、予めＯＳにより規定された呼び出し手順及び登録手順に準拠していれば、後で追加することができる。また、プログラム記憶手段４４０には、描画コマンドの夫々に対応した複数の異なるフィルタプログラムを格納することができる。
【００４７】
コマンド処理手段４４は、プログラム記憶手段４４０から、描画コマンドごとに予め設定されたフィルタプログラムを呼び出して、夫々の描画コマンドに対して適切な処理を実行するために、プログラム関連付け手段４１０と、プログラム呼出手段４２０と、インターフェース定義手段４３０とを更に有する。
【００４８】
プログラム関連付け手段４１０は、プログラム設定記憶手段４５０に記憶された設定ファイルに基づいて、プログラム記憶手段４４０から対象のフィルタプログラムを検索し、所定の描画コマンドに関連付けて、プログラム設定記憶手段４５０に格納されたコマンド対応表に登録する手段である。例えば、設定ファイルは、以下のように記述される；
♯Ｃｏｍｍａｎｄ              ♯Ｐｒｏｇｒａｍ
ＴｅｘｔＯｕｔ                ＴｅｘｔＦｉｌｔｅｒ
Ｉｍａｇｅ                    ＩｍａｇｅＦｉｌｔｅｒ
ＤｒａｗＲｅｃｔａｎｇｌｅ    ＧｒａｐｈｉｃｓＦｉｌｔｅｒ
このような設定ファイルの場合に、プログラム関連付け手段４１０は、コマンド対応表に、描画コマンド「ＴｅｘｔＯｕｔ（文字列の描画）」に対しては「ＴｅｘｔＦｉｌｔｅｒ」という名称のフィルタプログラムを登録し、描画コマンド「Ｉｍａｇｅ（イメージデータの描画）」に対しては「ＩｍａｇｅＦｉｌｔｅｒ」という名称のフィルタプログラムを登録し、描画コマンド「ＤｒａｗＲｅｃｔａｎｇｌｅ（矩形の描画）」に対しては「ＧｒａｐｈｉｃｓＦｉｌｔｅｒ」という名称のフィルタプログラムを登録する。なお、ここで、描画コマンドの例としてＴｅｘｔＯｕｔ／Ｉｍａｇｅ／ＤｒａｗＲｅｃｔａｎｇｌｅを挙げて説明しているが、描画コマンドについて特に限定するものではなく、どのような種別のコマンドでも対応可能である。
【００４９】
プログラム呼出手段４２０は、プログラム関連付け手段４１０により所定の描画コマンドに関連付けられたフィルタプログラムを、プログラム設定記憶手段４５０に記憶されたコマンド対応表を参照して、プログラム記憶手段４４０から呼び出す手段である。例えば、プログラム呼出手段４２０は、プログラム設定記憶手段４５０に記憶されたコマンド対応表に登録されたフィルタプログラムを予め呼び出しておき、対象の描画コマンドが読み込まれる場合に関数コールを行う。このとき、プログラム呼出手段４２０とプログラム記憶手段４４０との間のデータのやり取りは、所定のインターフェースを介して行われる。
【００５０】
インターフェース定義手段４３０は、プログラム呼出手段４２０がフィルタプログラムを呼び出すための呼び出し関数の定義を定める手段である。例えば、呼び出し関数は、以下のように定義される；
ＢＯＯＬ  Ｆｉｌｔｅｒ（ｉｎｔ  ＦｉｌｔｅｒＨａｎｄｌｅ，ｖｏｉｄ＊ｂｕｆｆｅｒ）
これにより、プログラム呼出手段４２０とプログラム記憶手段４４０との間のデータのやり取りが、所定のインターフェースを介して行われることが可能となる。
【００５１】
また、データ生成手段４６は、コマンド処理手段４４から送信された描画コマンドをプリンタ１２が解釈可能なＰＤＬデータへと変換する手段である。
【００５２】
このように、プリンタドライバ３４は、アプリケーション３０で生成された描画データをデータ受信手段４０により受信し、受信した描画データに含まれる描画コマンドストリームをコマンド分割手段４２により描画コマンドごとに分割し、その後、分割された描画コマンドごとにコマンド処理手段４４により所定のフィルタプログラムを呼び出して、夫々の描画コマンドを処理する。コマンド処理手段４４は、フィルタ設定記憶手段４５０から設定ファイルを読み出し、プログラム記憶手段４４０から対象のフィルタプログラムを検索し、所定の描画コマンドに関連付けて、プログラム設定記憶手段４５０に格納されたコマンド対応表に登録する。更に、コマンド処理手段４４は、描画データがアプリケーション３０から受信されるたびに、対応するフィルタプログラムを呼び出し、一方、対応するプログラムがない場合には、描画データを直接的にデータ生成手段４６へ送信する。
【００５３】
［動作］
図６は、本実施形態における情報処理装置の動作の一例を説明するフロー図である。図５のプリンタドライバ３４の動作について図６を参照して説明する。
【００５４】
最初に、プリンタドライバ３４は、アプリケーション３０から描画データを受信する前に、ステップＳ１０１で、コマンド処理手段４４のプログラム関連付け手段４１０により、記憶装置３６のプログラム設定記憶手段４５０から設定ファイルを読み出す。次に、プログラム関連付け手段４１０は、ステップＳ１０２で、読み出した設定ファイルに挙げられているフィルタプログラムをプログラム記憶手段４４０から検索し、対象のフィルタプログラムが存在する場合には、ステップＳ１０３で、そのフィルタプログラムを所定の描画コマンドに関連付けて、プログラム設定記憶手段４５０に格納されたコマンド対応表に登録する。その後、ステップＳ１０４で、プログラム関連付け手段４１０は、プログラム記憶手段４４０に記憶された全てのフィルタプログラムをコマンド対応表に登録したかどうか、又は、設定ファイルに挙げられたフィルタプログラムの全てを検索し、コマンド対応表に登録したかどうかを確認する。依然として全てのフィルタプログラムがコマンド対応表に登録されていない場合には、プログラム関連付け手段４１０は、ステップＳ１０２及びＳ１０３を繰り返す。
【００５５】
全てのフィルタプログラムがコマンド対応表に登録された後、プリンタドライバ３４は、ステップＳ１０５で、アプリケーション３０からデータ受信手段４０により描画データを受信する。ステップＳ１０６で、コマンド分割手段４２は、先に図５を参照して説明したように、データ受信手段４０で受信された描画データに含まれる描画コマンドストリームを描画コマンドブロックごとに分割し、夫々の描画コマンドを解析する。次に、ステップＳ１０７で、プログラム呼出手段４２０は、プログラム設定記憶手段４５０に格納されたコマンド対応表を参照して、コマンド分割手段４２で分割された描画コマンドの夫々に対応するフィルタプログラムが登録されているかどうかを確認する。対応するフィルタプログラムがコマンド対応表に登録されている場合には、ステップＳ１０８で、プログラム呼出手段４１０は、プログラム記憶手段４４０からそれらのフィルタプログラムを呼び出して、夫々の描画コマンドを処理する。一方、対応するフィルタプログラムがコマンド対応表に登録されていない場合には、コマンド処理手段４４は、ステップＳ１０８を経ずに、描画データを直接的にデータ生成手段４６へ送信する。ステップＳ１０９で、データ生成手段４６は、コマンド処理手段４４から送信された描画データを、描画コマンドに基づいて、プリンタ１２が解釈可能な形式で記述されたＰＤＬデータに変換する。
【００５６】
プリンタドライバ３４は、ステップＳ１１０で、アプリケーションで生成された全てのページの描画データに対してステップＳ１０５〜Ｓ１０９の一連の処理が実行されたがどうかを確認する。一連の処理をなされていないページがある場合には、プリンタドライバ４４は、他のページの描画データに対してステップＳ１０５〜Ｓ１０９を繰り返す。
【００５７】
このように、本実施形態のプリンタドライバは、アプリケーションから送信された描画データから必要なコマンドのみを抜き出し、そのコマンドに対応する所定の処理をフィルタプログラムにより実行することができる。これにより、フィルタプログラムによるコマンドの抜き出し動作が不要となり、従来よりもフィルタプログラムの構成を簡単化することが可能となる。
【００５８】
以下、本実施形態におけるプリンタドライバ動作について、具体的な例を挙げて説明する。
【実施例１】
【００５９】
アプリケーションで生成された描画データに含まれる画像データおいて、任意の文字列を編集する場合を考える。
【００６０】
例えば、画像データが図７（ａ）のように表される場合に、本実施例のプリンタドライバにより、図７（ｂ）のように、図７（ａ）の画像データ７０ａに含まれる文字列７２ａ「ＡＡＡＡＡ」が「ＤＤＤＤＤ」に置き換えられ、更に、文字列７４ａ「ＣＣＣＣＣ」が削除されるとする。このような本実施例のプリンタドライバの動作を図５及び図６を参照して説明する。
【００６１】
最初に、プリンタドライバ３４は、実際にアプリケーション３０から描画データを受信する前に、ステップＳ１０１で、コマンド処理手段４４のプログラム関連付け手段４１０により、記憶装置３６のプログラム設定記憶手段４５０から設定ファイルを読み出す。
【００６２】
ここで、プログラム設定記憶手段４５０から読み出された設定ファイルが以下； 
♯Ｃｏｍｍａｎｄ              ♯Ｐｒｏｇｒａｍ
ＴｅｘｔＯｕｔ                ＴｅｘｔＦｉｌｔｅｒ
Ｉｍａｇｅ                    ＩｍａｇｅＦｉｌｔｅｒ
ＤｒａｗＲｅｃｔａｎｇｌｅ    ＧｒａｐｈｉｃｓＦｉｌｔｅｒ
のように記述されているとする。
【００６３】
次に、プログラム関連付け手段４１０は、ステップＳ１０２で、読み出した設定ファイルに挙げられているフィルタプログラム「ＴｅｘｔＦｉｌｔｅｒ」、「ＩｍａｇｅＦｉｌｔｅｒ」及び「ＧｒａｐｈｉｃｓＦｉｌｔｅｒ」をプログラム記憶手段４４０から検索し、これらのフィルタプログラムが存在する場合には、ステップＳ１０３で、描画コマンド「ＴｅｘｔＯｕｔ（文字列の描画）」に対しては「ＴｅｘｔＦｉｌｔｅｒ」という名称のフィルタプログラムを、描画コマンド「Ｉｍａｇｅ（イメージデータの描画）」に対しては「ＩｍａｇｅＦｉｌｔｅｒ」という名称のフィルタプログラムを、及び、描画コマンド「ＤｒａｗＲｅｃｔａｎｇｌｅ（矩形の描画）」に対しては「ＧｒａｐｈｉｃｓＦｉｌｔｅｒ」という名称のフィルタプログラムを、夫々、プログラム設定記憶手段４５０に格納されたコマンド対応表に登録する。
【００６４】
その後、ステップＳ１０４で、プログラム関連付け手段４１０は、プログラム記憶手段４４０に記憶された全てのフィルタプログラムをコマンド対応表に登録したかどうか、又は、設定ファイルに挙げられたフィルタプログラムの全てを検索し、コマンド対応表に登録したかどうかを確認する。依然として全てのフィルタプログラムがコマンド対応表に登録されていない場合には、プログラム関連付け手段４１０は、ステップＳ１０２及びＳ１０３を繰り返す。
【００６５】
全てのフィルタプログラムがコマンド対応表に登録された後、プリンタドライバ３４は、ステップＳ１０５で、アプリケーション３０からデータ受信手段４０により描画データを受信する。ステップＳ１０６で、コマンド分割手段４２は、データ受信手段４０で受信された描画データに含まれる描画コマンドストリームを描画コマンドブロックごとに分割し、夫々の描画コマンドを解析する。
【００６６】
ここで、描画データには、図７（ａ）の画像データ７０ａと、文字列の描画に係る描画コマンド「ＴｅｘｔＯｕｔ」とが含まれているとする。この場合に、コマンド分割手段４２は、ステップＳ１０６で、描画データから描画コマンド「ＴｅｘｔＯｕｔ」を抜き出して解析し、この描画コマンドが文字列の描画に係るコマンドであると判断する。
【００６７】
次に、ステップＳ１０７で、プログラム呼出手段４２０は、プログラム設定記憶手段４５０に格納されたコマンド対応表を参照して、コマンド分割手段４２により抜き出された描画コマンド「ＴｅｘｔＯｕｔ」に対応するフィルタプログラムが登録されているかどうかを確認する。上述したように、コマンド対応表には、描画コマンド「ＴｅｘｔＯｕｔ」に対応するフィルタプログラム「ＴｅｘｔＦｉｌｔｅｒ」が登録されているので、ステップＳ１０８で、プログラム呼出手段４１０は、プログラム記憶手段４４０からそのフィルタプログラムを呼び出して、描画コマンド「ＴｅｘｔＯｕｔ」を処理する。
【００６８】
本実施例において、フィルタプログラム「ＴｅｘｔＦｉｌｔｅｒ」は、画像データに含まれる文字列「ＡＡＡＡＡ」を「ＤＤＤＤＤ」に置き換え、更に、他の文字列「ＣＣＣＣＣ」を削除するよう、対応する描画コマンドを処理する。フィルタプログラムにより処理された描画コマンドを含む描画データは、データ生成手段４６へ送信される。ステップＳ１０９で、データ生成手段４６は、コマンド処理手段４４から送信された描画データを、その描画データに含まれる描画コマンドに基づいて、プリンタ１２が解釈可能な形式で記述されたＰＤＬデータに変換する。
【００６９】
ＰＤＬデータは、データ送信手段３８によりネットワーク１４を介してプリンタ１２へ送信される（図３参照。）。プリンタ１２は、情報処理装置１０から送信されたＰＤＬデータに基づいて、図７（ｂ）の画像データ７０ｂを用紙に印刷して出力する。即ち、アプリケーション上では、図７（ａ）の画像データ７０ａが表示されたが、本実施例のプリンタドライバを用いることにより、実際にプリンタから出力される画像データは図７（ｂ）の画像データ７０ｂのように変更される。
【００７０】
上述したように、描画コマンドとは、一般的に、文字列、グラフィックス及びイメージの描画処理命令のことである。本実施例により、情報処理装置側で、描画コマンドの中から、処理の対象となる描画命令「文字列」のみを抜き出すことができる。
【００７１】
また、本実施例は、文字列の置換及び削除を例として説明されているが、文字色や文字サイズの変更等の他の処理でも対応可能である。
【実施例２】
【００７２】
次に、アプリケーションで生成された描画データに含まれる画像データおいて、任意の画像を編集する場合を考える。
【００７３】
例えば、画像データが図８のように表される場合に、本実施例のプリンタドライバにより、図８の画像データ８０に含まれるカラー画像８２がモノクロに変換されるとする。このような本実施例のプリンタドライバの動作を図５及び図６を参照して説明する。
【００７４】
本実施例のプリンタドライバは、Ｓ１０１からＳ１０４までのステップに関して、上述した実施例１と同じように動作し、対象のフィルタプログラムを所定の描画コマンドに関連付けて、プログラム設定記憶手段４５０に格納されたコマンド対応表に登録する。
【００７５】
対象のフィルタプログラムの全てがコマンド対応表に登録された後、プリンタドライバ３４は、ステップＳ１０５で、アプリケーション３０からデータ受信手段４０により描画データを受信する。ステップＳ１０６で、コマンド分割手段４２は、データ受信手段４０で受信された描画データに含まれる描画コマンドストリームを描画コマンドブロックごとに分割し、夫々の描画コマンドを解析する。
【００７６】
ここで、描画データには、図８の画像データ８０と、イメージデータの描画に係る描画コマンド「Ｉｍａｇｅ」とが含まれているとする。この場合に、コマンド分割手段４２は、ステップＳ１０６で、描画データから描画コマンド「Ｉｍａｇｅ」を抜き出して解析し、この描画コマンドがイメージデータの描画に係るコマンドであると判断する。
【００７７】
次に、ステップＳ１０７で、プログラム呼出手段４２０は、プログラム設定記憶手段４５０に格納されたコマンド対応表を参照して、コマンド分割手段４２により抜き出された描画コマンド「Ｉｍａｇｅ」に対応するフィルタプログラムが登録されているかどうかを確認する。実施例１で説明したように、コマンド対応表には、描画コマンド「Ｉｍａｇｅ」に対応するフィルタプログラム「ＩｍａｇｅＦｉｌｔｅｒ」が登録されているので、ステップＳ１０８で、プログラム呼出手段４１０は、プログラム記憶手段４４０からそのフィルタプログラムを呼び出して、描画コマンド「Ｉｍａｇｅ」を処理する。
【００７８】
本実施例において、フィルタプログラム「ＩｍａｇｅＦｉｌｔｅｒ」は、画像データに含まれるカラー画像をモノクロ画像に変換するよう、対応する描画コマンドを処理する。フィルタプログラムにより処理された描画コマンドを含む描画データは、データ生成手段４６へ送信される。ステップＳ１０９で、データ生成手段４６は、コマンド処理手段４４から送信された描画データを、その描画データに含まれる描画コマンドに基づいて、プリンタ１２が解釈可能な形式で記述されたＰＤＬデータに変換する。
【００７９】
ＰＤＬデータは、データ送信手段３８によりネットワーク１４を介してプリンタ１２へ送信される（図３参照。）。プリンタ１２は、情報処理装置１０から送信されたＰＤＬデータに基づいて、画像８２がモノクロに変換された画像データ８０を用紙に印刷して出力する。即ち、アプリケーション上では、画像８２がカラーである画像データ８０が表示されたが、本実施例のプリンタドライバを用いることにより、実際にプリンタから出力される画像データは画像８２をモノクロに変換されている。
【００８０】
上述したように、描画コマンドとは、一般的に、文字列、グラフィックス及びイメージの描画処理命令のことである。本実施例により、情報処理装置側で、描画コマンドの中から、処理の対象となる描画命令「イメージ」のみを抜き出すことができる。
【００８１】
また、本実施例は、カラー画像のモノクロ画像への変換を例として説明されているが、画像の拡大及び縮小や画素数の低減等の他の処理でも対応可能である。
【００８２】
［変形例］
以上、プログラムモジュールの一例として、ＰＣ等の端末に組み込まれたプリンタドライバに関して本発明の実施例を説明したが、本発明は、サーバー装置や、プリンタ等の周辺機器において実施されても良く、また、アプリケーションからの指示を機器が解釈可能なデータ変換するソフトウェアであれば、スキャナドライバ及びＰＣ−ＦＡＸドライバ等の他のデバイスドライバや、ユーティリティソフト単体にも適用することができる。
【００８３】
また、上記実施形態において、本発明は、情報処理装置のハードディスク（ＨＤＤ）、読出し専用メモリ（ＲＯＭ）等のメモリに格納されたプログラムによって実現されるとしたが、あるいは、情報処理装置においてハードウェアとして実現されても良い。
【００８４】
また、本発明の実施形態は、デバイスドライバドライバ及びそれに準じるモジュールの形態に限定されず、アプリケーション自身に適用させても良い。
【００８５】
以上、発明を実施するための最良の形態について説明を行ったが、本発明は、この最良の形態で述べた実施の形態に限定されるものではない。本発明の主旨を損なわない範囲で変更することが可能である。
【図面の簡単な説明】
【００８６】
【図１】本実施形態による情報処理システムのネットワーク構成の一例を示す。
【図２】本実施形態による情報処理装置のハードウェア構成の一例を示す。
【図３】本実施形態による情報処理装置の機能構成の一例を示す。
【図４】図３のプリンタドライバ及び記憶装置の構成の一例を示す。
【図５】描画コマンドストリームの構造の一例を示す。
【図６】本実施形態による情報処理装置の動作の一例を説明するフロー図を示す。
【図７】実施例１の画像データを示す。
【図８】実施例２の画像データを示す。
【符号の説明】
【００８７】
１０  情報処理装置（ＰＣ）
１２  機器（プリンタ）
１４  ネットワーク
３０  アプリケーション
３２  描画サービス（ＧＤＩ）
３４  プリンタドライバ
３６  記憶装置
３８  データ送信手段
４０  データ受信手段
４２  コマンド分割手段
４４  コマンド処理手段
４６  データ生成手段
４１０  プログラム関連付け手段
４２０  プログラム呼出手段
４３０  インターフェース定義手段
４４０  プログラム記憶手段
４５０  プログラム設定記憶手段
５０  描画コマンドブロック
５２  コマンド識別子（ＩＤ）
５４  コマンドサイズ
５６  コマンドデータ
【図１】
2008134714.tif 000003
【図２】
2008134714.tif 000004
【図３】
2008134714.tif 000005
【図４】
2008134714.tif 000006
【図５】
2008134714.tif 000007
【図６】
2008134714.tif 000008
【図７】
2008134714.tif 000009
【図８】
2008134714.tif 000010