(57)【要約】  モジュラフィルタのパイプライン内でＰＤＬへのスプールファイルの変換。スプーラは、目的地デバイス上でレンダリングされるコンテンツを受信するのに適応される。そして、１以上のフィルタは、目的地デバイス上でコンテンツをレンダリングするのに適応される。他の実施形態において、フィルタは、目的地デバイス上のコンテンツをレンダリングすることに結合している様々な機能を実行するためのパイプライン構成でアレンジされる。フィルタは、スプールファイルフォーマットのコンテンツを対応するＰＤＬ表現に変換することができ、その逆もできる。
2009516235.tif 000002
【特許請求の範囲】
【請求項１】
デバイス上でレンダリングされるコンテンツを受信するように適応されるスプーラと、
前記デバイス上でレンダリングする前記コンテンツを変換するように適応される少なくとも１つのフィルタと
を備えることを特徴とするシステム。
【請求項２】
前記スプーラの出力をストアするように適応されたスプールファイルをさらに備え、
前記少なくとも１つのフィルタは、前記スプールファイルからの入力を受信するように適応されることを特徴とする請求項１に記載のシステム。
【請求項３】
前記フィルタは、ローカルプリントサブシステムを使用してレンダリングを実施するように適応されることを特徴とする請求項１に記載のシステム。
【請求項４】
前記フィルタは、サードパーティサービスを使用してレンダリングを実行するように適応されることを特徴とする請求項１に記載のシステム。
【請求項５】
前記フィルタは、所定のジョブと関連付けられたスプールファイルで特定される前記デバイスの少なくとも１つのセッティングに基づき少なくとも１つの所定のジョブのためにレンダリングを変更するように適応されることを特徴とする請求項１に記載のシステム。
【請求項６】
前記フィルタは、前記デバイスにより直接翻訳可能である出力を生成するように適応されることを特徴とする請求項１に記載のシステム。
【請求項７】
前記フィルタは、前記デバイスと関連付けられたデバイスドライバに含まれることを特徴とする請求項１に記載のシステム。
【請求項８】
前記フィルタは、前記スプーラに具備されることを特徴とする請求項１に記載のシステム。
【請求項９】
デバイス上でレンダリングされるコンテンツを受信するように適応されるスプーラと、
前記デバイス上でレンダリングする前記コンテンツを変換するように適応されるフィルタのパイプラインと
を備えることを特徴とするシステム。
【請求項１０】
前記フィルタのパイプラインは、プリレンダリングフィルタと、少なくとも１つのレンダリングフィルタと、ポストレンダリングフィルタとを具備することを特徴とする請求項９に記載のシステム。
【請求項１１】
前記スプーラの出力をストアするように適応されたスプールファイルをさらに備え、
前記フィルタのパイプラインの第１のフィルタは、前記スプールファイルから入力を受信するように適応されることを特徴とする請求項９に記載のシステム。
【請求項１２】
前記フィルタのパイプラインの少なくとも１つのフィルタは、前記所定のジョブと関連付けられたスプールファイルで特定される前記デバイスの少なくとも１つのセッティングに基づき少なくとも１つの所定のジョブのためにレンダリングを変更するように適応されることを特徴とする請求項９に記載のシステム。
【請求項１３】
前記フィルタのパイプラインの最後のフィルタは、前記デバイスにより直接翻訳可能である出力を生成するように適応されることを特徴とする請求項９に記載のシステム。
【請求項１４】
前記フィルタのパイプラインは、前記スプーラに具備されることを特徴とする請求項９に記載のシステム。
【請求項１５】
デバイス上でレンダリングされるコンテンツを受信する段階と、
前記デバイス上でレンダリングするコンテンツを変換するように適応される少なくとも１つのフィルタにコンテンツをルーティングする段階と
を備えることを特徴とする方法。
【請求項１６】
要求を受信することは、プリンタ上で前記コンテンツをプリントするための要求を受信することを具備することを特徴とする請求項１５に記載の方法。
【請求項１７】
前記コンテンツをルーティングする段階は、前記デバイス上で前記コンテンツをレンダリングするように適応されるフィルタのパイプラインに前記コンテンツをルーティングする段階を具備することを特徴とする請求項１５に記載の方法。
【請求項１８】
前記デバイスによりスプールファイルフォーマットから翻訳可能なフォーマットに前記コンテンツを変換する段階を更に備えることを特徴とする請求項１５に記載の方法。
【請求項１９】
前記変換する段階は、フィルタのパイプラインの範囲内で実施されることを特徴とする請求項１８に記載の方法。
【請求項２０】
前記コンテンツを変換する段階は、前記デバイスにより前記コンテンツを直接翻訳可能なフォーマットに変換する段階を具備することを特徴とする請求項１８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モジュラフィルタのパイプライン内でのスプールファイルとＰＤＬとの間で変換するシステムおよび方法に関する。
【背景技術】
【０００２】
ワシントン州レドモントのマイクロソフト株式会社から入手可能なオペレーティングシステムであるＷＩＮＤＯＷＳ（登録商標）ファミリのような、パーソナルコンピュータオペレーティングシステム環境の範囲内で実行するアプリケーションソフトウェアからのコンテンツをプリントすることは、一般的にいくつかの変換機能を含む。アプリケーションは、独自仕様のフォーマットを使用してコンテンツを表現することができる。しかし、ＷＩＮＤＯＷＳ（登録商標）環境において、コンテンツは、Ｇｒａｐｈｉｃｓ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ（ＧＤＩ）層のようなユーティリティと互換性を有するようにされる可能性がある。第１の機能は、例えばＥｎｃａｐｓｕｌａｔｅｄ  Ｍｅｔａｆｉｌｅ（ＥＭＦ）フォーマットのようなスプールファイルフォーマットへの適用により使用されるコンテンツの表現を変換することができる。第２の機能は、デバイスにより翻訳されるＰｒｉｎｔｅｒ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ（ＰＤＬ）に、ＥＭＦを変換する。例えば、一般のＰＤＬは、ＰｏｓｔＳｃｒｉｐｔ、ＰＣＬ５ｃ、ＰＣＬ−ＸＬ、ラスター等を含む。
【０００３】
モジュラフィルタのパイプライン内でのスプールファイルとＰＤＬとの間の変換がここに記述される。スプーラは、目的地デバイス上でレンダリングされるコンテンツを受信するように適応され、そして、１以上のフィルタは、目的地デバイス上のコンテンツをレンダリングするように適応される。他の実施形態において、フィルタは、目的地デバイス上のコンテンツをレンダリングすることに関連し、様々な機能を実行するために、パイプライン構成で配置される。フィルタは、スプールファイルフォーマットのコンテンツを対応するＰＤＬ表現に変換することができ、またその逆に変換することもできる。例えば、スキャンかファクスのアプリケーションにおいて、フィルタは、スプールファイルフォーマットへのＰＤＬ表現の変換をサポートする可能性がある。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
このサマリーは、詳細な説明でさらに後述する簡略化された形式のコンセプトの選択を紹介するために提供される。このサマリーは、クレームされた主題の基本的な特徴に重要な特徴を特定することを目的としないし、またクレームされた主題の範囲を決定することへの目的として使用されることも目的としない。
【課題を解決するための手段】
【０００５】
同じ数字が、図面を通して、同様の特徴と同様の構成要素に使用される。図の中で、参照番号の最も左の桁は、参照番号が最初に現れる図を識別する。異なる図における同じ参照番号の使用は、類似または同一のアイテムを示す。
【発明を実施するための最良の形態】
【０００６】
図１は、モジュラフィルタのパイプライン内でのスプールファイルとＰＤＬとの間の変換を実行するためのアーキテクチャ１００を例示する。アプリケーション１０５は、コンテンツ１１０がデバイス１１５上へプリントされるか、そうでなければレンダリングされるプリントジョブを提出し、それは、例えばどんな適切なプリンタの形式でもとることができる。コンテンツ１１０は、アプリケーション１０５が実行されるオペレーティングシステム１２０で送信される。オペレーティングシステム１２０は、マイクロソフト（登録商標）から入手可能なオペレーティングシステムのＷＩＮＤＯＷＳ（登録商標）ファミリのいずれかを含むがこれに限定されず、いずれかの利用できるオペレーティングシステムでも構わない。
【０００７】
オペレーティングシステム１２０は、グラフィックスレイヤーコンポーネント１２５を含む可能性があり、その適切な例は、オペレーティングシステムのＷＩＮＤＯＷＳ（登録商標）ファミリに含まれるＧＤＩレイヤーである。しかし、他のサードパーティのグラフィックスレイヤーコンポーネントも、また同様に使用されてもよい。アプリケーション１０５からコンテンツ１１０を受信することができ、処理することができるプリントインタフェース１３０は、グラフィックスレイヤーコンポーネント１２５の範囲内に含まれる。プリントインタフェース１３０は、コンテンツ１１０をプリントスプールファイル１３５に保存するのに適したスプールファイル表現１４０に変換する。次いで、スプールファイル表現１４０は、プリントサブシステム１４５に送信される。
【０００８】
プリントサブシステム１４５は、プリントインタフェース１３０からコンテンツ１１０のスプールファイル表現１４０を受信するスプーラ、またはスプーリングプロセス１５０も備える。スプーリングプロセス１５０は、例えば、デバイス１１５上の入力コンテンツ１１０のためにプリントジョブを予定し、デバイスドライバ１５５および／またはデバイス１１５による処理を待つために、スプールファイル１３５の上記ジョブを待ち行列に入れる。
【０００９】
プリントサブシステム１４５は、順番に構成モジュール１６０とフィルタパイプライン１６５を含むことができるデバイスドライバ１５５も備える。構成モジュール１６０は、デバイス１１５と関連するプリントまたは他のデバイス設定を公開し、処理すると共に、デバイスドライバ１５５と関連するユーザインターフェース（ＵＩ）を表示することができる。フィルタパイプライン１６５は、一般にスプールファイル１３５に保存されるコンテンツ１１０を翻訳し、同じ内容を対応するＰＤＬ命令１７０に変換するように機能する。ＰＤＬ命令１７０は、フィルタパイプライン１６５からの出力であり、デバイス１１５により翻訳される可能性がある。考察の便宜のために、しかし限定ではなく、スプールファイル１３５と、フィルタパイプライン１６５と、これらの構成要素間のデータフロー１７５は、プリントスプーラ１８０の一部として示される。
【００１０】
図２は、図１に示すようにプリントスプーラ１８０と関連するフィルタパイプライン１６５の詳細をさらに例示する。図１および図２の両方に表示されている参照番号は、同一か類似した主題を示す。スプールファイル１３５から読み込まれるデータ１７５は、フィルタパイプライン１６５に通過される。フィルタパイプライン１６５は、１以上のそれぞれのフィルタ２０５（１）と、２０５（２）と、２０５（３）とを含む可能性があり、それは便宜のために、フィルタ２０５として集合的にここに示される。図２に示される実例となる実施形態は、考察と説明の便宜のために３つのそのようなフィルタ２０５を具備し、しかしこの実例となる実施形態は、非限定的なものであることが理解される。さらに詳細には、これらのフィルタ２０５は、１以上の一般フィルタ２０５に集積されることができたか、多くのフィルタ２０５にさらに分配されることができた。さらに、フィルタパイプライン１６５を定義するこれらのフィルタ２０５は、所望の実施において物理的に具体例をあげて示される必要はないが、様々な機能の考察を体系づけるためにここに提示される論理的フィルタ２０５とみなされる可能性がある。
【００１１】
詳細にこれらのフィルタ２０５に目を向けて、プリレンダリングフィルタ２０５（１）は、入力２１０（１）としてスプールファイル１３５からスプールデータ１７５を受信できる。プリレンダリングフィルタ２０５（１）は、スプールデータ１７５がＰＤＬ１７０に翻訳され、デバイス１１５上の具体的な出力にレンダリングされる前に、その上で適切ないずれかの前処理を実行する。プリレンダリングフィルタ２０５（１）により実行される処理の非限定的な例は、フィルタパイプライン１６５を通過するコンテンツ１１０に透かしまたは他の類似した特徴を追加することのようなプリント処理機能の一組を提供することを含むことができる。そのような処理の別の例は、指定された命令、またはその種の他のものにおけるページをプリントして本またはパンフレット形式でプリントするためにコンテンツ１１０のページを組織することのようなアプリケーション１０５により特定されるようにコンテンツ１１０を配置するか、体系付けることを具備する可能性がある。
【００１２】
図２が便宜と明快さのために１つのプリレンダリングフィルタ２０５（１）を示す一方で、例えば、１以上のプリレンダリングフィルタ２０５（１）がここでのそれぞれのプリレンダリング機能を実行する教えの機能に含まれる可能性があるものと理解される。いずれにしても、プリレンダリングフィルタ２０５（１）は、入力としてレンダリングフィルタ２０５（２）に、その出力２１０（２）を渡すことができる。
【００１３】
レンダリングフィルタ２０５（２）は、少なくとも１部分において、データ２１０（２）を、デバイス１１５により認識され翻訳可能であるＰＤＬ表現に変換するように必要に応じて機能する。そうする場合に、レンダリングフィルタ２０５（２）は、デバイス１１５上の処理エンジンにより翻訳されることができるフォーマットに、コンテンツ１１０をレンダリングする。レンダリングフィルタ２０５（２）は、上述で考察されたプリレンダリングフィルタ２０５（１）と同様に、１以上のフィルタ２０５として認識されることができる。いずれにしても、レンダリングフィルタ２０５（２）は、入力としてポストレンダリングフィルタ２０５（３）に、その出力２１０（３）を渡すことができる。
【００１４】
ポストレンダリングフィルタ２０５（３）は、レンダリングフィルタ２０５（２）により実施される処理後、論理的に生じるどんな機能でも実施できる。そのような処理の非制限的な例は、例えばチャージバックの目的のための特定のユーザまたはアプリケーション１０５によりプリントされるページのトラック数のようなアカウント関連機能を実施することを含むことができる。ポストレンダリングフィルタ２１５は、また例えば、特定のユーザまたはユーザのグループに関連した予め定義されたプリントに対するプリントされたページの数をチェックするために使用される。ポストレンダリングフィルタ２０５（３）は、上記で考察されたようにプリレンダリングフィルタ２０５（１）およびレンダリングフィルタ２０５（２）と同様に、１以上のフィルタ２０５として実現されることが可能である。
【００１５】
フィルタパイプライン１６５は、例えばプリントのコンテクストでスプールフォーマットをＰＤＬフォーマットに変換するように機能できることが理解される。この場合、データは図２に示すように、フィルタパイプライン１６５のトップからボトムへと流れる。フィルタパイプライン１６５は、さらに例えばスキャンかまたはファックスのコンテクストでＰＤＬフォーマットをスプールフォーマットに変換するように機能できることが理解される。この場合、データは図２で示すように、フィルタパイプライン１６５のボトムからトップへと流れる。また一時的に図１と図２を参照すると、データは、アーキテクチャ１００を通してデバイス１１５からアプリケーション１０５へ流れる可能性がある。従って、図１および図２に示される矢印は、双方向のデータフローの記号を示す。このコンテクストにおいて、例えば、デバイス１１５は、スキャナまたはファックスの形態をとる可能性があり、コンテンツ１１０は、スキャナまたはファックスにより作成される文書の画像の形態をとる可能性がある。従って、スキャナまたはファックス機の出力は、例えばユーザによる視聴のためのアプリケーション１０５におけるコンテンツ１１０をレンダリングするのに適切であるように変換される可能性がある。
【００１６】
フィルタ２０５は、これらの関連する機能またはサービスをそれら自身で実行することができ、またはこれらは、これらの機能またはサービスを実行するためのプリントサブシステム１４５により提供されるサービスを呼び出すことができる。フィルタ２０５は、これらの機能の全体または一部を実行するために、サードパーティのサービスを呼び出すこともできる。非限定的な例として、プリントサブシステム１４５は、スプールデータ１７５をデバイス１１５上で具体的な形態で生成される画像データに変換する、すなわち「紙」の上にコンテンツ１１０をおく、レンダリングフィルタまたはレンダリングエンジン２０５（２）を提供できる。プリントサブシステム１４５は、特定のコンテンツ１１０をレンダリングすることと関連して起こる透明度と、重複部分と、他の類似した問題を解決するために機能するできる分解サービスを提供することもできる。
【００１７】
プリントサブシステム１４５は、特定のデバイス１１５および／または関連するデバイスドライバ１５５に適切な構成サービスをさらに提供することができる。さらに詳しくは、これらの構成サービスは、デバイス１１５によりサポートされる様々な出力オプションのデバイスパラメータの定義を可能にすることができる。例えば、もしスプールファイル１３５がデュプレキシング機能を実施するための高水準コマンドを具備する場合、構成サービスは、デュプレキシングをオンにするか、可能にする特定のデバイスか、またはＰＤＬコマンドを返信することができる。また、構成サービスは、構成モジュール１６０の機能をフィルタパイプライン１６５に公開することができる。
【００１８】
ポートモニタ２２０は、フィルタパイプライン１６５の出力２１０（４）を受信して、そのデバイス１１５に適応され、または使用される通信プロトコルを使用してデバイス１１５にこのデータを通信する。特定のプロトコルは、典型的にデバイス１１５に従い変化する。
【００１９】
図３は、フィルタのパイプライン内のスプールファイルとＰＤＬとの間で変換するために実施されるプロセスフロー３００を例示する。図１および図２に示されるアーキテクチャ１００は、プロセスフロー３００を実行することに適応される可能性がある一方で、プロセスフロー３００は、他の構造を使用して実行される可能性もある。ブロック３０５において、コンテンツ１１０は、デバイス１１５上のコンテンツをレンダリングする要求と関連して受信される。ブロック３１０において、プロセス３００は、スプールファイルフォーマットへのコンテンツ１１０の変換が必要とされるかどうか確定する。より詳しくは、プロセス３００は、コンテンツ１１０がスプールファイル１３５での保存に関して互換性を有するフォーマットであるかどうかを評価する。
【００２０】
ブロック３１０から、もしコンテンツ１１０がスプール互換フォーマットに変換することである場合、プロセス３００はブロック３１５に進み、そこでコンテンツ１１０は、スプール互換フォーマットに変換される。その後、プロセス３００は、ブロック３２０に進み、そこで変換されたコンテンツ１１０はスプールファイル１３５にスプールされる。ブロック３１０に戻り、もしアプリケーション１０５から受信されたときコンテンツ１１０がスプールファイル１３５とすでに互換性を有する場合、次いでコンテンツはブロック３１５をバイパスして、ブロック３２０において直接スプールファイル１３５にスプールされる。
【００２１】
コンテンツ１１０がブロック３２０においてスプールファイル１３５にスプールされた後、プロセス３００はブロック３２５に進み、そこでプロセス３００はいずれかの処理がコンテンツ１１０のＰＤＬフォーマットへの変換が必要とされるかどうかを評価するために必要とされるか、具備するかどうかを限定ではなく決定する。より詳しくは、もしブロック３２５により受信されるようなコンテンツ１１０が、デバイス１１５により翻訳できない場合、デバイス１１５により翻訳可能であるＰＤＬフォーマットへの変換は、適切である。ブロック３２５から、もしＰＤＬフォーマットへの変換が必要とされる場合、プロセス３００は、コンテンツ１１０をデバイス１１５により翻訳可能であるＰＤＬフォーマットに変換するブロック３３０に進む。その後、ブロック３３５において、コンテンツ１１０はデバイス１１５においてレンダリングされる。
【００２２】
ブロック３２５に戻り、もしブロック３２５により受信されるコンテンツ１１０が、デバイス１１５によりすでに翻訳可能である場合には、次いでＰＤＬフォーマットへの変換は必要とされない。この場合、プロセス３００は、デバイス１１５上のコンテンツ１１０をレンダリングするためにブロック３３５に直接進むことができる。あるいは、プロセス３００は、フィルタパイプライン１６５内で、図２に示されるブロック２０５（１）およびブロック２０５（３）により表現されるプリレンダリング、またはポストレンダリング機能を実行するために、ブロック３４０を通過することができる。ブロック３４０は、点線の枠内に、プリレンダリング、またはポストレンダリング機能がサポートされていない場所に示され、プロセス３００がブロック３３５に直接進む可能性があることを示す。
【００２３】
ＭＥＴＲＯ仕様、およびリファレンスガイドは、マイクロソフト株式会社から入手可能であり、コンテンツとページ付けされた文書の表現を記述するためのＸＭＬと他の広く利用可能な技術の使用のための一組の規則のコード名であるＭＥＴＲＯの説明を含む。このように、ＭＥＴＲＯ規則は、アプリケーションコンテンツ１１０、スプールファイル１３５のコンテンツ、および／またはＰＤＬ１７０を表現するのに適したフォーマットを提供するために供給される可能性がある。このように、もしコンテンツ１１０がＭＥＴＲＯ仕様または同様のフォーマットに準拠している場合には、コンテンツ１１０は比較的速く、図３に示されるプロセス３００を比較的速く通過する可能性がある。さらに詳細には、このコンテンツ１１０は、処理ブロック３０５、３２０、および３３５に遭遇し、判定ブロック３１０および３２５の両方からＮＯの枝を選択することにより、変換ブロック３１５および３３０を避ける。
【００２４】
もしアプリケーション１０５から受信されるようにコンテンツ１１０は、ＭＥＴＲＯ規則または同様の仕様に準拠していない場合には、次いで判定ブロック３１０はコンテンツ１１０を変換ブロック３１５に向ける。例えば、変換ブロック３１５は、コンテンツ１１０をメトロ規則または同様に仕様に変換することができる。その後、メトロ規則がＰＤＬとして提供できる可能性もあるので、コンテンツ１１０はブロック３２０によりスプールされる可能性があり、さらに変換ブロック３３０をバイパスする可能性もある。
【００２５】
デバイス１１５の様々なベンダーまたはプロバイダおよび／またはデバイスドライバ１５５がフィルタパイプライン１６５への編入のためにフィルタ２０５を提供する可能性もあることが特にここで意図される。例えば、所定のデバイス１１５のメーカーは、コンテンツ１１０および／またはスプールファイルデータ１７５を、デバイス１１５により翻訳可能であるＰＤＬフォーマット１７０に変換し、またはその逆を行うレンダリングフィルタ２０５（２）を提供する可能性がある。このように、フィルタパイプライン１６５のモジュラーアーキテクチャは、所望の機能を達成するのに適切であるように配置されるため、フィルタ２０５のいずれかの数および／または形式を可能とする。このモジュラーアーキテクチャは、これらがデバイス１１５および／またはデバイスドライバ１１５の様々な開発者によりリリースされる可能性があるので、さらなるＰＤＬをサポートするために柔軟性も提供する。例えば、このモジュラー構造は、さらにＭＥＴＲＯフォーマットまたは上記を参照する規則から現在または将来に利用可能ないずれかのＰＤＬに変換すること、またはその逆も可能である。
【００２６】
図４は、ここに記述されるアーキテクチャ１００と同様のモジュラフィルタのパイプライン内で、スプールファイルとＰＤＬとの間で変換を実施するシステムおよび方法が完全に、または部分的に実装される可能性のある典型的なコンピューティング環境４００を例示する。典型的なコンピューティング環境４００は、コンピューティングシステムの１つの例であるのみで、使用の範囲またはアーキテクチャの機能に関して少しの限定も提案することを目的としない。コンピューティング環境４００は、コンポーネントのいずれか１つまたは組合せに関していずれかの依存性または必要条件を典型的なコンピューティング環境４００において例証されるものと解釈されてはならない。
【００２７】
コンピューティング環境４００においてコンピュータおよびネットワークアーキテクチャは、多数の他の一般的目的か、または特別な目的のコンピューティングシステム環境または構成で実装される可能性がある。使用に適合する可能性のある良く知られたコンピュータシステム、環境、および／または構成の例は、限定ではないが、パーソナルコンピュータ、サーバコンピュータ、クライアントデバイス、ハンドヘルドまたはラップトップデバイス、マイクロプロセッサベースシステム、マルチプロセッサシステム、セットトップボックス、プログラム可能な家電、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、ゲームコンソール、上記のシステムまたはデバイスなどのいずれか含む分散コンピューティング環境などを含む。
【００２８】
コンピューティング環境４００は、コンピューティングデバイス４０２の形態の汎用目的コンピューティングシステムを具備する。コンピューティングデバイス４０２のコンポーネントは、限定ではないが、例えばマイクロプロセッサ、コントローラなどのいずれか１つ以上のプロセッサ４０４、システムメモリ４０６、および様々なシステムコンポーネントに結合するシステムバス４０８を具備することができる。１つ以上のプロセッサ４０４は、コンピューティングデバイス４０２の機能を制御し、他の電子およびコンピューティングデバイスと通信するための、様々なコンピュータ実行可能命令を処理する。システムバス４０８は、メモリバスまたはメモリコントローラ、周辺バス、アクセルレートグラフィックバス、および様々なバスアーキテクチャのいずれかを使用するプロセッサまたはローカルバスを具備する数種類の多くのバス構造を表現する。
【００２９】
コンピューティング環境４００は、コンピューティングデバイス４０２によりアクセス可能であり、揮発性および不揮発性メディアの両方で、取り外し可能および取り外し不可能ないずれかのメディアである可能性がある様々なコンピュータ可読媒体を具備する。システムメモリ４０６は、ランダムアクセスメモリ（ＲＡＭ）４１０のような揮発性メモリ、および／またはリードオンリーメモリ（ＲＯＭ）４１２のような不揮発性メモリの形態のコンピュータ可読媒体を具備する。基礎入力／出力システム（ＢＩＯＳ）４１４は、コンピューティングデバイス４０２の範囲内でコンポーネント間の情報送信を容易にする基本的なルーチンを維持し、例えばスタートアップの間に、ＲＯＭ４１２に保存される。ＲＡＭ４１０は、一般的に１つ以上のプロセッサ４０４によりすぐにアクセスでき、および／または現在作用されるデータおよび／またはプログラムモジュールを一般的に具備する。
【００３０】
コンピューティングデバイス４０２は、他の取り外し可能／取り外し不可能で、揮発性／不揮発性のコンピュータストレージメディアを含む可能性がある。例証として、ハードディスクデバイス４１６は、取り外し不可能な、不揮発性磁気メディア（図示せず）から読み出しおよび書き込み、磁気ディスクドライブ４１８は、取り外し可能な、不揮発性磁気ディスク４２０（例えば「フロッピー(登録商標)ディスク」）から読み出しおよび書き込み、そして光学ディスクドライブ４２２は、取り外し可能な、不揮発性の例えばＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）、または他のいずれかの形態の光学メディアのような光ディスク４２４から読み出しおよび書き込みを行う。この例では、ハードディスクデバイス４１６、磁気ディスクドライブ４１８、および光学ディスクドライブ４２２は、それぞれ１以上のデータメディアインターフェース４２６によりシステムバス４０８に接続される。ディスクドライブおよび関連コンピュータ可読メディアは、コンピュータ可読命令、データ構造、プログラムモジュール、およびコンピューティングデバイス４０２のための他のデータの不揮発性記憶を提供する。
【００３１】
多くのプログラムモジュールは、例としてオペレーティングシステム４２８、１つ以上のアプリケーションプログラム４３０、他のプログラムモジュール４３２、およびプログラムデータ４３４を保存するＲＡＭ４１０、ＲＯＭ４１２、ハードディスク４１６、磁気ディスク４２０、および／または光ディスク４２４に保存される可能性がある。各々そのようなオペレーティングシステム４２８、アプリケーションプログラム４３０、他のプログラムモジュール４３２、プログラムデータ４３４、またはそのいずれかの組合せが、ここに記述されるシステムおよび方法の１つ以上の実施形態を含む可能性がある。
【００３２】
コンピューティングデバイス４０２は、コミュニケーションメディアとして特定される様々なコンピュータ可読メディアを含むことができる。コミュニケーションメディアは、一般的にコンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを搬送波または他の転送機構のような調整されたデータ信号で具体化され、いずれかの情報デリバリーメディアも具備する。「調整されたデータ信号」の用語は、設定されるか、情報を信号にコード化しながらこのような方法で変化するその特徴の１つ以上を有する信号を示す。例として、限定としてではなく、コミュニケーションメディアは、例えば有線のネットワークまたはダイレクト配線接続のような有線メディアと、および例えば音響、ＲＦ、赤外線、他のワイヤレスメディアやそのいずれかの組合せのような無線メディアを具備する。
【００３３】
ユーザは、例えばキーボード４３６とポインティングデバイス４３８（例えば「マウス」）のような多くの異なる入力デバイスを介して、コンピューティングデバイス４０２と接続することができる。他の入力デバイス４４０（特に示されない）は、マイクロフォン、ジョイスティック、ゲームパッド、コントローラ、衛星アンテナ、シリアルポート、スキャナ、ファックス機および／またはそのような物を含む可能性がある。これらと他の入力デバイスは、システムバス４０８に結合される入出力インタフェース４４２を介してプロセッサ４０４に接続されるが、例えばパラレルポート、ゲームポートや一般的なシリアルバス（ＵＳＢ）のような他のインタフェースおよびバス構築物により接続される可能性がある。
【００３４】
表示デバイス４４４（または他のタイプのモニター）は、例えばビデオアダプタ４４６のようなインタフェースを介して、システムバス４０８に接続される可能性がある。表示デバイス４４４に加えて、他の出力周辺デバイスは、例えば話者（図示せず）のようなコンポーネントと入出力インタフェース４４２を介してコンピューティングデバイス４０２に接続されるプリンタ４４８を含むことができる。
【００３５】
コンピューティングデバイス４０２は、例えばリモートコンピュータ４５０のような１つ以上のリモートコンピュータへの論理的接続を使用するネットワーク化された環境において動作することができる。例証として、リモートコンピューティングデバイス４５０は、パソコン、ポータブルコンピュータ、サーバー、ルータ、ネットワークコンピュータ、ピアデバイス、または他の一般的なネットワークノード等である可能性がある。リモートコンピューティングデバイス４５０は、コンピューティングデバイス４０２と比較してここに記述される異なるコンポーネント、要素、および特徴のいくつかおよびその組合せを含むことができるポータブルコンピュータとして例示される。
【００３６】
コンピューティングデバイス４０２とリモートコンピューティングデバイス４０５間の論理接続は、ローカルエリアネットワーク（ＬＡＮ）４５２、および一般的なワイドエリアネットワーク（ＷＡＮ）４５４として記述される。そのようなネットワーク環境は、オフィス、企業に広がるコンピュータネットワーク、イントラネット、およびインターネットにおいてありふれている。ＬＡＮネットワーク環境で実施されるとき、コンピューティングデバイス４０２は、ネットワークインターフェースまたはアダプター４５６によりローカルネットワーク４５２に接続される。ＷＡＮネットワーク環境で実施されるとき、コンピューティングデバイス４０２は、一般的にワイドエリアネットワーク４５４について通信を確立するためにモデム４５８または他の手段を含む。モデム４５８は、コンピューティングデバイス４０２の内臓または外部である可能性があり、入出力インタフェース４４２または他の適切なメカニズムを介してシステムバス４０８に接続される可能性がある。例示されたネットワーク接続は、単に典型的なだけであり、そしてコンピューティングデバイス４０２と４５０との間の通信リンクを確立する他の手段が利用される可能性がある。
【００３７】
コンピューティング環境４００で例示されるようなネットワーク環境において、コンピューティングデバイス４０２と比較して記述されるプログラムモジュール、またはその部分は、リモートメモリ記憶デバイスに保存される可能性がある。例証として、リモートアプリケーションプログラム４６０は、リモートコンピューティングデバイス４５０のメモリデバイスで維持される。説明の便宜のために、アプリケーションプログラムと、例えばオペレーティングシステム４２８のような、他の実行可能プログラムコンポーネントは、別々のブロックとしてここに例示されるが、そのようなプログラムとコンポーネントが様々な時にコンピューティングデバイス４０２の異なるストレージコンポーネントにおいて、コンピューティングデバイス４０２の１つ以上のプロセッサ４０４により実行されると認められる。
【００３８】
モジュラフィルタのパイプライン内でスプールファイルとＰＤＬとの間の変換を実施することの実施形態が構造特徴および／または方法を特定する言語で記述されたが、添付のクレームの対象が記述される特定の特徴または方法に必ずしも限定されると理解されるべきではない。むしろ、特定の特徴および方法は、モジュラフィルタのパイプライン内でのスプールファイルとＰＤＬとの間の変換を実施することの典型的な実施形態として明らかにされる。
【図面の簡単な説明】
【００３９】
【図１】モジュラフィルタのパイプライン内でのスプールファイルとＰＤＬとの間の変換を実行するための構造を示すブロック図である。
【図２】図１に示すプリントスプーラと、関連するフィルタのパイプラインとをさらに詳細に示すブロック図である。
【図３】図１および図２に示される構造により実行される処理フローのフローチャートである。
【図４】ここに記述されるアーキテクチャと同様に、モジュラフィルタのパイプライン内でスプールファイルとＰＤＬとの間で変換を実行するシステムおよび方法が、完全にまたは部分的に実装される可能性のある例示的なコンピュータ環境を示す図である。
【図１】
2009516235.tif 000003
【図２】
2009516235.tif 000004
【図３】
2009516235.tif 000005
【図４】
2009516235.tif 000006