(57)【要約】【課題】手作業によって個別に処理モジュールを有効化するというセットアップ作業を排除し、非常に簡単なオペレーションで処理モジュールの有効化を行えるようにする。【解決手段】入力したデータ中の所定のデータに対して処理を加える複数のフィルタ（1200,1300,1400）の各々は、フィルタ有効化フラグ（1202,1302,1402）がオンの場合に入力されたPDLデータに対してフィルタ処理を実行し、フィルタ処理を実行した場合には置換検知フラグ（1203,1303,1403）をセットする。フィルタセットアップモードフラグ1100がオンすると、全てのフィルタ有効化フラグ（1202,1302,1402）をオンにし、PDLデータをこれら複数の処理モジュールに提供し、フィルタセットアップモードフラグ1100がオフしたときに、置換検知フラグ（1203,1303,1403）の状態をフィルタ有効化フラグ（1202,1302,1402）にロードする。【選択図】  図２
2006048534.tif 000002
【特許請求の範囲】
【請求項１】
入力した印刷データ中の所定のデータに対して処理を加える複数の処理モジュールと、
所定期間中に入力された印刷データを前記複数の処理モジュールを用いて処理した際に、処理を実行した処理モジュールを検出する検出手段と、
前記検出手段で検出された処理モジュールを、前記所定期間の終了後において有効に設定する設定手段とを備えることを特徴とする画像処理装置。
【請求項２】
前記所定期間中に入力された印刷データとは、セットアップモードの開始指示に続いて入力された印刷データであることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記所定期間中に入力された印刷データとは、セットアップモードの開始指示から終了指示までの期間中に入力された印刷データであることを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記所定期間中に入力された印刷データとは、セットアップモードの開始指示から所定時間内に入力された印刷データであることを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記複数種類の処理モジュールのそれぞれは、印刷データ中に現れる特定のデータパターンを検出し、検出したデータ部分を新たなデータで置換する処理を含むことを特徴とする請求項１に記載の画像処理装置。
【請求項６】
前記設定手段は、前記検出手段で検出された処理モジュールのみが前記所定期間の終了後において有効になるように設定することを特徴とする請求項１に記載の画像処理装置。
【請求項７】
前記設定手段は、前記検出手段で検出された処理モジュールと、前記所定期間の開始前に有効に設定されていた処理モジュールとが、該所定期間の終了後において有効になるように設定することを特徴とする請求項１に記載の画像処理装置。
【請求項８】
前記複数の処理モジュールの各々は、前記設定手段によって有効に設定されなかった場合は、入力された印刷データをスルーさせることを特徴とする請求項１に記載の画像処理装置。
【請求項９】
入力した印刷データ中の所定のデータに対して処理を加える複数の処理モジュールと、
該複数の処理モジュールの各々は、有効フラグがオンの場合に入力された印刷データに対して所定のデータの検出および置換処理を実行し、該置換処理を実行した場合に実行フラグをセットし、
所定期間の開始時に前記複数の処理モジュールの全ての有効フラグをオンにして、印刷データを該複数の処理モジュールに提供し、該所定期間の終了時に実行フラグがオンになっている処理モジュールの有効フラグのみをオンに保つ制御手段とを備えることを特徴とする画像処理装置。
【請求項１０】
入力した印刷データ中の所定のデータに対して処理を加える複数の処理モジュールを備えた画像処理装置の駆動を制御する方法であって、
所定期間中に入力された印刷データを前記複数の処理モジュールを用いて処理した際に、処理を実行した処理モジュールを検出する検出工程と、
前記検出工程で検出された処理モジュールを、前記所定期間の終了後において有効に設定する設定工程とを備えることを特徴とする画像処理装置の制御方法。
【請求項１１】
入力した印刷データ中の所定のデータに対して処理を加える複数の処理モジュールを備えた画像処理装置の駆動を制御する方法であって、
前記複数の処理モジュールの各々は、有効フラグがオンの場合に入力された印刷データに対して所定のデータの検出および置換処理を実行し、該置換処理を実行した場合に実行フラグをセットし、
所定期間の開始時に前記複数の処理モジュールの全ての有効フラグをオンにして、印刷データを該複数の処理モジュールに提供する第１工程と、
前記所定期間の終了時に実行フラグがオンになっている処理モジュールの有効フラグのみをオンに保つ第２工程とを備えることを特徴とする画像処理装置の制御方法。
【請求項１２】
請求項１０または１１に記載の画像処理装置の制御方法をコンピュータによって実行させるための制御プログラム。
【請求項１３】
請求項１０または１１に記載の画像処理装置の制御方法をコンピュータによって実行させるための制御プログラムを格納した記憶媒体。
【請求項１４】
入力したデータ中の所定のデータに対して処理を加える複数の処理モジュールと、
所定期間中に入力されたデータを前記複数の処理モジュールを用いて処理した際に、処理を実行した処理モジュールを検出する検出手段と、
前記検出手段で検出された処理モジュールを、前記所定期間の終了後において有効に設定する設定手段とを備えることを特徴とするデータ処理装置。
【請求項１５】
前記所定期間中に入力されたデータとは、セットアップモードの開始指示に続いて入力されたデータであることを特徴とする請求項１４に記載のデータ処理装置。
【請求項１６】
前記所定期間中に入力されたデータとは、セットアップモードの開始指示から終了指示までの期間中に入力されたデータであることを特徴とする請求項１４に記載のデータ処理装置。
【請求項１７】
前記所定期間中に入力されたデータとは、セットアップモードの開始指示から所定時間内に入力されたデータであることを特徴とする請求項１４に記載のデータ処理装置。
【請求項１８】
前記複数種類の処理モジュールのそれぞれは、データ中に現れる特定のデータパターンを検出し、検出したデータ部分を新たなデータで置換する処理を含むことを特徴とする請求項１４に記載のデータ処理装置。
【請求項１９】
前記設定手段は、前記検出手段で検出された処理モジュールのみが前記所定期間の終了後において有効になるように設定することを特徴とする請求項１４に記載のデータ処理装置。
【請求項２０】
前記設定手段は、前記検出手段で検出された処理モジュールと、前記所定期間の開始前に有効に設定されていた処理モジュールとが、該所定期間の終了後において有効になるように設定することを特徴とする請求項１４に記載のデータ処理装置。
【請求項２１】
前記複数の処理モジュールの各々は、前記設定手段によって有効に設定されなかった場合は、入力されたデータをスルーさせることを特徴とする請求項１４に記載のデータ処理装置。
【請求項２２】
入力したデータ中の所定のデータに対して処理を加える複数の処理モジュールと、
該複数の処理モジュールの各々は、有効フラグがオンの場合に入力されたデータに対して所定のデータの検出および置換処理を実行し、該置換処理を実行した場合に実行フラグをセットし、
所定期間の開始時に前記複数の処理モジュールの全ての有効フラグをオンにして、データを該複数の処理モジュールに提供し、該所定期間の終了時に実行フラグがオンになっている処理モジュールの有効フラグのみをオンに保つ制御手段とを備えることを特徴とするデータ処理装置。
【請求項２３】
入力したデータ中の所定のデータに対して処理を加える複数の処理モジュールの駆動を制御する方法であって、
所定期間中に入力されたデータを前記複数の処理モジュールを用いて処理した際に、処理を実行した処理モジュールを検出する検出工程と、
前記検出工程で検出された処理モジュールを、前記所定期間の終了後において有効に設定する設定工程とを備えることを特徴とする処理モジュールの駆動制御方法。
【請求項２４】
入力したデータ中の所定のデータに対して処理を加える複数の処理モジュールの駆動を制御する方法であって、
前記複数の処理モジュールの各々は、有効フラグがオンの場合に入力されたデータに対して所定のデータの検出および置換処理を実行し、該置換処理を実行した場合に実行フラグをセットし、
所定期間の開始時に前記複数の処理モジュールの全ての有効フラグをオンにして、データを該複数の処理モジュールに提供する第１工程と、
前記所定期間の終了時に実行フラグがオンになっている処理モジュールの有効フラグのみをオンに保つ第２工程とを備えることを特徴とする処理モジュールの駆動制御方法。
【請求項２５】
請求項２３または２４に記載の処理モジュールの駆動制御方法をコンピュータによって実行させるための制御プログラム。
【請求項２６】
請求項２３または２４に記載の処理モジュールの駆動制御方法をコンピュータによって実行させるための制御プログラムを格納した記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置に含まれる複数の処理モジュールの有効化制御に関し、例えば、画像処理装置のファームウエア上に実装したフィルタ処理機能の有効化制御に好適なものである。
【背景技術】
【０００２】
従来、画像処理装置のソフトウェアはリアルタイムオペレーティングシステム（ＯＳ）の上に静的かつ固定的ないわゆるファームウェアとして構築されることが主流であった。このようなファームウェアは内部的に複数の処理モジュールから構成されている場合でも全体が単一のロードモジュールに静的にリンクされた状態で装置の不揮発性メモリに記憶される。そして、このファームウェアはシステムの起動時にハードディスクなどの不揮発性メモリからＲＡＭにロードされ実行されるか、または、ＲＯＭなどの不揮発性メモリ上で直接実行される。特に低価格な画像処理装置のような組み込みシステムを構成するファームウェアは、一般にその経済性や安全性などのために部分的なモジュールの動的なロードやリンクを行わないように構成されている。なぜならば、ダイナミックリンクを実現するために必要なシンボルテーブルの記憶容量やシンボルのアドレスへの解決を行うための処理に関するオーバヘッドなどが装置のコストパフォーマンスを悪化させたり、或いは、追加してロードおよびリンクされるサブモジュールによってそのサブモジュールをリンクする以前には十分に評価され達成されていたシステム全体の品質やセキュリティが脅かされる危険があるためである。
【０００３】
従来、組み込みシステムのファームウェアのリアルタイムＯＳ上にさらにもう一層のソフトウェア動作環境を設け、追加で設けたソフトウェア動作環境においてダイナミックローディングやダイナミックリンキングや動的なメモリ操作などのソフトウェアの動的な特性をサポートする画像処理装置が開発されている。追加で設けられたソフトウェア動作環境は、インタプリタとひとそろいのアプリケーションプログラミングインタフェース（ＡＰＩ）群やフレームワーク群から構成され、その上で動作するソフトウェアのために一種のＯＳあるいはコンピューティングプラットフォームというべきものを提供する。インタプリタは、所定の命令セットに含まれる命令からなる一連の命令列を逐次的に読み出し解釈し実行する。この命令セットをハードウェアのＣＰＵのための命令セットと同等の位置づけに捉える場合、インタプリタは特に仮想マシン（virtual machine）と呼ばれることもある。
【０００４】
ひとそろいのＡＰＩ群およびフレームワーク群は、このソフトウェア動作環境の下層に内在する実際のリアルタイムＯＳが提供する資源やハードウェア資源を抽象化した各種の資源群に対するアクセスを、ソフトウェア動作環境上で動作するソフトウェアのために提供する。資源にはプロセッサによる命令実行コンテクストやメモリ、ファイルシステム、ネットワークインタフェースを含む各種入出力（Ｉ／Ｏ）などがある。特に、命令実行コンテクストは実際のＣＰＵとリアルタイムＯＳが提供するマルチタスク機構とは独立に、ソフトウェア動作環境が独自にインタプリタ上の命令実行コンテクストを管理できる。また、メモリも同様にソフトウェア動作環境が独自のメモリ管理を提供できる。
【０００５】
このようなソフトウェア実行環境上で動作するソフトウェアはインタプリタによって逐次的に読み込み解釈実行されるため、これらの処理の過程で命令列を監視しシステムに悪影響を与える動作を除外できる可能性がある。また、ソフトウェア実行環境上のソフトウェアから各種資源に対するアクセスは、ソフトウェア実行環境が提供するＡＰＩ群やフレームワーク群を経由して間接的に資源を操作するため、この過程でシステムに悪影響を与える動作を除外できる可能性がある。したがって、ファームウェア内部にインタプリタおよびＡＰＩ群とフレームワーク群からなるソフトウェア実行環境の階層を設けるアプローチは、基本的には静的かつ固定的に構成されるべき低コスト組み込みシステムのファームウェアにおいて、ソフトウェアの動的な特性を部分的に導入するために非常に有効である（特許文献１、特許文献２を参照。）。
【０００６】
上記アプローチにおいて、ソフトウェア実行環境の階層を実現するためにインタプリタとしてＪａｖａ（登録商標）仮想マシンを採用し、Ｊａｖａ（登録商標）に関連するＡＰＩ群やフレームワーク群を採用することができる。本出願人は２００３年に、画像処理装置のファームウェア内部にＪａｖａ（登録商標）プラットフォームを内蔵した複合機であるＭＥＡＰ（登録商標）を製品化している。
【０００７】
従来、内部にネットワークコンピュータを備えたアプリケーションダウンロード型プリンタを用い、コンピュータネットワークから、印刷すべきデータファイルと該データファイルに対応したアプリケーションとを上記プリンタ内にダウンロードし、上記ネットワークコンピュータ上で上記アプリケーションを立ち上げることにより該データファイルを開いてラスタイメージに変換し、印刷するネットワークコンピュータ内蔵プリンタおよびこれを備えたコンピュータネットワークシステムが開示されている。また、アプリケーションが「Ｊａｖａ（登録商標）アプレット」である場合も開示されている。更に、アプリケーションは印刷データファイルとともにクライアントからプッシュされる場合も、プリンタがアプリケーションサーバなどからプルする場合も開示されている（特許文献３を参照）。
【０００８】
また、従来、複数の周辺機器および周辺機器を動作させるソフトウェアを搭載した複数の端末装置および少なくとも周辺装置を動作させるソフトウェアに関するデータベースを備えたサーバ装置を伝送路に接続させ、所定の通信プロトコルに基づいてネットワーク通信を行うネットワーク通信システムであって、周辺機器は、サーバ装置から周辺機器を動作させるソフトウェアの全部／一部、あるいはソフトウェアが使用するモジュールに対応する最新モジュール情報を要求・獲得するクライアント制御部と、獲得した最新モジュールを端末装置に配付するソフトウェア配信エージェントと、を備えたネットワーク通信システムが開示されている。周辺機器を操作するソフトウェアが使用するクライアント側モジュールとして、「ｊａｖａ（登録商標）アプレット」や「ｊａｖａ（登録商標）アプリケーション」が供給可能であることも開示されている（特許文献４を参照）。
【特許文献１】特開平１１−２８２６８４号公報
【特許文献２】特開２００３−２５６２１６号公報
【特許文献３】特開平１１−５３１３２号公報
【特許文献４】特開平１１−３０６１０７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
一方、上記従来例を基にすることで、本出願人は以下の技術を提案している。多種多様の顧客のプリンティング環境および様々な環境における要求が存在している。特に基幹系の業務システムでは、ひとたび正常に稼働しはじめたシステム全体の安定性を維持したいという要望はとても強く、プリンタドライバやアプリケーション簡単に変更することは許されないことがある。このような現実のプリンティング環境の制約の中で、プリンタのベンダは顧客環境の側に対応を求めるのではなくプリンタ側の対応によって各種の顧客要望に応えるべき使命がある。たとえば、プリンタの新製品が提供する新しい機能として両面印刷や製本などのフィニッシング機能があった場合、同時に開発された専用のプリンタドライバ経由で新規機能を使用するコマンド列が含まれるプリントジョブを生成する、もしくは顧客の業務アプリケーションが新規追加されたコマンド列を含むプリントジョブを生成するように更新を行うことで、これらの新機能を使いこなせることは当然である。しかしながら、前述のように顧客システムに影響をおよぼさずプリンタ側の対応によって装置の新機能を利用可能とすることが求められている。
【００１０】
顧客システム側に影響を与えずプリンタ側でこれらの要望に対応するためには、プリンタを構成するファームウェアを改造して個別対応リリースする方法があり実際にこの方法がとられている場合もある。しかし、ファームウェアの改造による個別対応は装置全体の品質の再評価を含め開発期間や開発費などが多くかかり、また顧客環境に納品した装置に組み込まれたファームウェアの更新にはフィールドエンジニアなどによる高度なメンテナンスの手間を要するため、顧客要望に速やかに応えるためにもまた費用対効果の面でも課題を残している。実際には、これらの要望のうちの一部はプリンタのファームウェア全体を変更するまでもなく、受信したプリントデータストリームを解釈する前の前処理を追加してそこでプリントデータストリームそのものに変換を施すことによって対応できる。したがって、受信したプリントデータストリームを解釈する前の前処理を実現するソフトウェアだけを他のファームウェアとは独立に柔軟かつ拡張可能に追加できるより動的な機構が求められる。
【００１１】
組み込みシステムのファームウェア内にＪａｖａ（登録商標）プラットフォームのようなソフトウェア動作環境階層を内蔵するＭＥＡＰ（登録商標）のような従来例では、ソフトウェア動作環境上にファームウェアと独立した新たな装置組み込みアプリケーションを開発可能であり、ＡＰＩによってＪａｖａ（登録商標）アプリケーションから装置のプリント機能にアクセスすることはできた。しかしながら、Ｊａｖａ（登録商標）プラットフォームがファームウェア内の組み込みアプリケーション階層に位置づけられているため、同階層においてネイティブの組み込みアプリケーションとして実現されているプリントデータ受信機能やプリントサーバ機能をＪａｖａ（登録商標）アプリケーションのために流用できなかった。すなわち、たとえばネットワーク経由でプリントデータを受信するための各種プリントサービスプロトコルを実装したプリントサーバ機能をＪａｖａ（登録商標）側にも再実装する必要があり、開発負荷や評価負荷ならびに実行時のメモリ面などでも非効率であった。
【００１２】
一方、その他の組み込みシステムのファームウェア内にソフトウェア動作環境階層を持たない従来例においては、組み込みシステム全体がダイナミックリンクやプラグイン可能な構成になっておりシステム全体が動的な構成になってしまっていた。動的な特性が求められる部分が、受信したＰＤＬデータストリームを解釈する前の前処理を柔軟かつ拡張可能に追加する機構だけであることを前提とした場合には、これらの従来例のアプローチはシステム全体を動的なソフトウェアとして構成するためのオーバヘッドに伴うコストアップや品質保証の難しさから低価格の小規模システムには向かなかった。
そこでプリンタが受信したＰＤＬデータストリームに対する解釈前の前処理を行うフィルタ部を柔軟かつ拡張可能なソフトウェアとして実装し、安定性が求められるプリンタファームウェアのその他の部分の実装と明確に分離する構成をとることによって、ＰＤＬプリンタのカスタマイズの生産性が向上される（特願２００４−０９３２１５を参照）。
【００１３】
上記のフィルタ部の処理機能はユーザーの使用環境にあわせた種類の複数のフィルタのみを有効化するのが前提である。フィルタ数が少ない場合においては機器の操作パネルやネットワークを介したリモートユーザーインターフェースなどを操作して有効化の設定作業を行う方法で対応可能である。
【００１４】
しかしながら、フィルタ数が増加した場合には人間による手作業の有効化作業は非常に煩雑であるという課題があった。またオペレータへ全てのフィルタの機能説明を行うことは困難であり有効化作業そのものが困難であるという課題もあった。
【００１５】
本発明は上記の課題に鑑みてなされたものであり、手作業によって個別に処理モジュールを有効化するというセットアップ作業を排除し、非常に簡単なオペレーションで処理モジュールの有効化を行えるようにすることを目的とする。
【課題を解決するための手段】
【００１６】
上記の目的を達成するための本発明の一態様によるデータ処理装置は以下の構成を備える。すなわち、
入力したデータ中の所定のデータに対して処理を加える複数の処理モジュールと、
所定期間中に入力されたデータを前記複数の処理モジュールを用いて処理した際に、処理を実行した処理モジュールを検出する検出手段と、
前記検出手段で検出された処理モジュールを、前記所定期間の終了後において有効に設定する設定手段とを備える。
【００１７】
また、上記の目的を達成するための本発明の他の態様によるデータ処理装置は以下の構成を備える。すなわち、
入力したデータ中の所定のデータに対して処理を加える複数の処理モジュールと、
該複数の処理モジュールの各々は、有効フラグがオンの場合に入力されたデータに対して所定のデータの検出および置換処理を実行し、該置換処理を実行した場合に実行フラグをセットし、
所定期間の開始時に前記複数の処理モジュールの全ての有効フラグをオンにして、データを該複数の処理モジュールに提供し、該所定期間の終了時に実行フラグがオンになっている処理モジュールの有効フラグのみをオンに保つ制御手段とを備える。
【発明の効果】
【００１８】
本発明によれば、手作業によって個別に処理モジュールを有効化するというセットアップ作業が不要となり、非常に簡単なオペレーションで処理モジュールの有効化が行えるようになる。
【発明を実施するための最良の形態】
【００１９】
以下、添付の図面を参照して本発明の好適な実施形態を説明する。
【００２０】
＜第１実施形態＞
以下、本発明にかかる一実施形態の画像処理装置を図面を参照して説明する。
【００２１】
図１は本発明のプリンタの詳細ブロック図である。図１に示すように、プリンタ１００は以下のブロックから構成され、内部メインバス１０１で接続される。制御部１０２はＣＰＵとメモリを有し、ＣＰＵがメモリに記憶された各種制御プログラムを実行することでプリンタ１００の全体を制御する。操作パネル１０３はオペレータがプリンタ１００の動作モードや各種設定の指示を受け付ける。ホストインターフェースコントローラ１０４はイーサネット(登録商標）等のコンピュータネットワーク通信機能を備え、コンピュータネットワーク３００を介してホストコンピュータ２００を通信可能に接続する。このような通信機能は、コンピュータネットワークを介して接続されたホストコンピュータ２００からプリントジョブを転送するのに用いられる。なお、インターフェース方式はコンピュータと接続される方式であれば特に限定するものではない。
【００２２】
ホストインターフェースコントローラ１０４受信したプリントジョブはフィルタ部１０５に転送される。フィルタ部１０５は、受信したＰＤＬ形式のプリントジョブのデータに対して特定のデータパターンマッチングなどの方法を用いてデータの置換すなわちフィルタ処理を行うものである。なお、フィルタ部１０５においては、１つ或いは複数のフィルタを連結することが可能な構成とする。フィルタ処理されたＰＤＬ形式のプリントジョブはトランスレータ１０６へ転送される。なおフィルタ部１０５の詳細については図２を参照して後述する。
【００２３】
トランスレータ１０６は、ＰＤＬによって記述された印刷データを解釈して、これをレンダリング処理に適した印刷用中間言語の記述に変換する。なお、レンダリング処理に適した印刷用中間言語によるプリントデータの記述をディスプレイリストと呼ぶ。トランスレータ１０６は各種のＰＤＬ仕様毎にそれぞれ異なる固有の実装を持ち、どのトランスレータもそれぞれのＰＤＬをレンダラに固有のディスプレイリストへと変換する。変換されたディスプレイリストはレンダラ１０７へ転送される。
【００２４】
レンダラ１０７はディスプレイリストをラスタ画像に展開する。展開メモリ１０８は、レンダラ１０７により展開されたラスタ画像を格納するための画像をメモリである。すなわち、レンダラ１０７によって得られたラスタ画像は展開メモリ１０８に格納される。そして、プリンタエンジン１０９により、展開メモリ１０８に格納されたラスタ画像が記録紙等に永久可視像として形成される。
【００２５】
図２はフィルタ部１０５の詳細構成を示すブロック図である。フィルタ部１０５は前述のとおり１つ或いは複数のフィルタを連結することが可能な構成となっている。図２の例では３つのフィルタを連結した場合を示しているが、フィルタの個数はこれに限定されるものではなく同形式の構成のフィルタであれば何個でも連結可能である。
【００２６】
図２において、フィルタバスＩＦ１０００はプリンタの内部バス１０１を介して他のブロックとデータの入出力を行うものである。よい具体的には、フィルタ部１０５はホストインターフェース１０４で受信したＰＤＬ形式のプリントジョブをフィルタバスＩＦ１０００を介して入力し、フィルタ部１０５でフィルタ処理したＰＤＬ形式のプリントジョブをフィルタバスＩＦ１０００を介して次段のトランスレータ１０６へ出力する。
【００２７】
フィルタセットアップモードフラグ１１００は、各フィルタモジュールに対してフィルタセットアップモードであることを通知する。フィルタセットアップモードフラグ１１００はフラグであるため、true／falseの２つの状態を保持し、「true」にてフィルタセットアップモードであることを、「false」で通常動作モードであることを示す。
【００２８】
１２００、１３００、１４００は当該フィルタ部１０５に実装されたフィルタモジュールを示している。各フィルタモジュール（１２００，１３００，１４００）はそれぞれフィルタ処理部（１２０１，１３０１，１４０１）、フィルタ有効化フラグ（１２０２，１３０２，１４０２）、置換検知フラグ（１２０３，１３０４，１４０４）を含んで構成される。以下、これらのフィルタの代表としてフィルタＡに対応するフィルタモジュール１２００の詳細を説明するが、他のフィルタモジュール１３００，１４００についても基本的な構成は同一であり、フィルタ処理部１２０１，１３０１，１４０１がそれぞれ異なるフィルタ処理を行う。
【００２９】
フィルタモジュール１２００において、フィルタ処理部１２０１は入力したＰＤＬ形式のプリントジョブのデータに対して特定のフィルタ処理、例えばデータパターンマッチングなどの方法で一致したデータを他のデータに置換するといった処理を行う。フィルタ有効化フラグ１２０２はフィルタ処理部１２０１でフィルタ処理を実行するか、フィルタ処理を実行せずに単純に入力データを出力する（バイパス）かを制御する。フィルタ有効化フラグ１２０２がtrueの場合はフィルタ処理が有効となり、falseの場合はフィルタ処理が無効、すなわちバイパスモードとなる。なお、バイパスモードではフィルタ処理を行わないため次段処理へ高速にデータを引き渡すことが可能である。従って、使用しないフィルタモジュールはフィルタ有効化フラグをfalseに設定しておくことにより、処理を高速化できることになる。置換検知フラグ１２０３はフィルタ処理部１２０１にてフィルタ処理が実際に行われるとtrueにセットされるフラグである。ＰＤＬデータをフィルタ処理した場合に一度もフィルタ処理が行われなければfalseのままである。
【００３０】
図３は手動によるフィルタセットアップのためのユーザインターフェース例を示す。一般には、このようなユーザインターフェースを用いてフィルタのセットアップが行われている。なお、図３はプリンタ１００の操作パネル１０３の表示部を示した図である。図３において、一覧リスト４０１には、プリンタ１００にインストールされたフィルタの一覧が表示されており、上ボタン４０３と下ボタン４０４でフィルタの名称を選択する。矢印４０２で示されたフィルタが設定対象であり、有効無効ボタン４０５により設定対象となっているフィルタの機能の有効化／無効化を設定する。
【００３１】
このように、フィル多機能の有効、無効の設定は、一般的には図３に示したように、各フィルタモジュールに対して個別に有効／無効を選択する構成が提案されていた。そのためオペレータはプリンタ１００に装備されている各フィルタモジュールの処理内容に精通した上で、ユーザ毎のカスタマイズに適した有効化（有効／無効）を個別に設定する必要があった。この方法はフィルタモジュールの数が増加した場合には、オペレータに対して過大な負荷をかけることになり現実的ではない。
【００３２】
図４は本実施形態におけるフィルタセットアップの手順の概要を示す図である。図４はホストコンピュータ２００からプリンタ１００へコンピュータネットワーク３００を介して、フィルタモジュール有効化ＰＤＬジョブ４５０を送信する様子を示した図である。フィルタモジュール有効化ＰＤＬジョブ４５０とは、プリンタ１００のフィルタ部１０５に装備されるフィルタをオペレータが選択的に有効化させるためのＰＤＬジョブである。即ち、フィルタ部１０５に装備されたフィルタのうち、有効化すべきフィルタにおいてフィルタ処理（データの置換）が実行されるようなデータを含むＰＤＬジョブで構成されていする。このＰＤＬジョブ４５０は有効化すべきフィルタをユーザ毎にカスタマイズすることを目的にプリンタの開発部門からサービス部門をオペレータに提供するものである。このように、本実施形態においては、フィルタを個別に有効化させるような特別なコマンドを定義するのではなく、フィルタモジュールにおいてデータの置換が行われるＰＤＬジョブそのものをフィルタモジュールの有効化に使用する。
【００３３】
図５は本実施形態におけるフィルタモジュールの一例である互換化フィルタが行う処理を説明する図である。互換化フィルタモジュール５０１は、フィルタ処理部１２０１，１３０１，１４０１に相当する構成の一例であり、入力ストリームを読み出してデータストリーム中に現れる互換性の問題を解決する処理を施して出力ストリームに書き込むものである。
【００３４】
互換性の問題として、ここでは代表的なＰＤＬのひとつであるAdobe社のPostScript仕様のＰＤＬのインタプリタにおける、ベンダごとの解釈の差異にもとづく問題とその解決の例を説明する。例えば、あるベンダのプリンタは、PostScriptのsetpagedeviceでは/DeferredMediaSelectionが真のときにカスタム用紙扱いとして用紙要求をパネルに表示し、偽のときに指定されたサイズから±５の範囲で定型用紙を検索し、定型にない場合はPostScriptのPolicyに従うものと解釈して実装されている。これに対して、別のベンダのプリンタでは、/DeferredMediaSelectionが真のときに指定されたサイズそのもののサイズ（範囲なし）で定型用紙を検索し、定型にない場合はカスタム用紙扱いとし、偽のときは±５の範囲で定型用紙を検索し定型にない場合はPostScriptのPolicyに従うように実装されている。ここで、さらに別のベンダが供給する基幹系システムのためのインフラストラクチャ環境が、これらのうち後者の解釈に基づく挙動を前提として構築されたとする。この場合、そのシステムにおける印刷要求に対して前者のプリンタでは期待に反するシチュエーションでカスタム用紙扱いとなってしまい、「用紙なし」が操作パネルに表示されて印刷されないという顧客の不利益が生ずる。
【００３５】
上記の状況において、前者のプリンタのベンダはこの互換性の問題に対してできるだけ低コストでできるだけ速やかに解決を顧客に提供することが求められる。この要求は、印刷要求データストリーム中に現れるsetpagedeviceの/DeferredMediaSelectionパラメータをtrueからfalseに変換することで、少なくとも暫定的に、応えることができる。互換化フィルタモジュール５０１はこの問題解決のために機能するものであり、入力データストリーム中から/DefereedMediaSelectionがtrueで指定されたsetpagedeviceに対するパターンマッチングを行い、マッチした場合はtrueをfalseに置き換えたデータストリームを出力する。
【００３６】
図５において、５０２はフィルタへの入力データストリームの例を示しており、PostScriptのプリントデータである。２行目に上述したパターンに合致する部分データが出現する。５０３はフィルタからの出力データストリームの例であり、フィルタ処理されたPostScriptのプリントデータである。２行目のデータの中でtrueという文字列がfalseへと置換されている。
【００３７】
また、図６は本実施形態におけるフィルタモジュールの一例である障害回避フィルタモジュールが行う処理を説明する図である。障害回避フィルタモジュール６０１は、フィルタ処理部１２０１，１３０１，１４０１に相当する構成の一例である。上記の例では、プリンタ間の仕様解釈の差異に基づく互換性の問題を解決するためにフィルタによるデータストリームのパターンマッチングと置換の技術を用いたが、同様の技術をプリンタ実装の不具合（ファームウェアのバグなど）を緊急回避するために用いることもできる。たとえば、あるプリンタのあるバージョンのリリースにおいて、ＬＩＰＳ（登録商標）言語の「イメージ領域確保命令（ＶＤＭ）」に指定されるイメージの幅が８の倍数でなければ描画不正が発生するというバグがあったとする。仮にこのようなパターンのデータストリームが特定のアプリケーションの特定の利用においてだけ稀に出力されるものであったとしても、また、本来はトランスレータやレンダラというＬＩＰＳ（登録商標）言語処理系のコア部分で修正するべきバグであったとしても、現実の顧客環境において障害が生じた場合には迅速に対応しなければならない。
【００３８】
障害回避フィルタモジュール６０１は、たとえば６０２に示すようなデータを含むＬＩＰＳ（登録商標）データストリームから障害を発現させるパターン（ＶＤＭのイメージ幅が８の倍数でないもの、図６の例では「２２５」の部分）を発見し、その障害を顕在化させず同等の機能を達成する６０３のようなデータ（ＶＤＭのイメージ幅を８の倍数でより大きい値である「２３２」）に置換する。
【００３９】
図７は本実施形態におけるフィルタモジュールの一例である最適化フィルタモジュールが行う処理を説明する図である。最適化フィルタモジュール７０１は、入力ストリームを読み出してデータストリーム中に現れる冗長に記述されたＰＤＬデータを発見し、それをより効率のよい同機能のデータに変換して出力ストリームに書き込む。プリンタドライバが生成するＰＤＬデータストリームは、クライアントのプリント要求システムやアプリケーション側の都合によって、どうしても繰り返しなどの冗長な処理パターンを含む傾向にある。最適化フィルタモジュール７０１はこのような冗長な記述パターンを一種の「慣用表現」として認識し、それをより高効率の等価な表現に置き換える。
【００４０】
７０２は最適化フィルタモジュール７０１への入力データストリームの例である。データストリーム７０２には、７０３に示すように、横長の長方形を塗りつぶすために３つの正方形の塗りつぶしを繰り返す記述が行われている。７０４は最適化フィルタモジュール７０１からの出力データストリームの例である。最適化フィルタモジュール７０１によってデータストリーム７０２に含まれていた冗長な繰り返しパターン（７０３）が検出され、７０５に示すような等価な１つの横長の矩形の塗りつぶしに書き換えられていることがわかる。
【００４１】
次に、本実施形態によるフィルタモジュールのセットアップ処理について詳細に説明する。
【００４２】
図８はフィルタセットアップ処理の操作を示す図である。本実施形態によるフィルタセットアップ処理は、図４で説明したように、ホストコンピュータ２００からフィルタモジュール有効化ＰＤＬジョブ４５０を転送し、プリンタ１００のフィルタ部１０５内のフィルタモジュールを選択的に有効化させる。このようなフィルタセットアップ処理のための操作はプリンタ１００の操作パネル１０３にてオペレータが行う。
【００４３】
図８の（ａ）は、操作パネル１０３において、フィルタセットアップモードをＯＮにすることをオペレータに対して促すためのインターフェースが表示された状態を示している。オペレータはフィルタセットアップを行うのでＯＮボタン１５０を選択する。但し、なんらかの理由でフィルタセットアップを中止するのであればcancelボタン１５１を選択する。ＯＮボタン１５０が押されると、画面は図８（ｂ）に切り替わり、オペレータに対してフィルタモジュール有効化ＰＤＬジョブの送信を促すメッセージが表示される。この段階でオペレータは図４のホストコンピュータ２００からプリンタ１００に対してフィルタモジュール有効化ＰＤＬジョブを転送する。
【００４４】
プリンタ１００でフィルタモジュール有効化ＰＤＬジョブを受信し、プリンタのフィルタが選択的に有効化されると、操作パネル１０３の画面は図８（ｃ）に切り替わる。図８（ｃ）ではフィルタセットアップが完了したことを表示し、オペレータに対してフィルタセットアップモードを抜けることの確認を促す画面である。オペレータがこの確認ボタン１５２を選択するすることで一連のフィルタセットアップ処理が完了することになる。
【００４５】
以上の操作により、プリンタ１００のフィルタ１２００，１３００，１４００はフィルタモジュール有効化ＰＤＬジョブに従い、選択的に有効化される。
【００４６】
以上の操作におけるプリンタ１００の内部処理について、図９〜図１３を参照して詳細に説明する。
【００４７】
図９はフィルタ処理部による主要な手順を示すフローチャートである。本フローチャートはフィルタ部１０５内のフィルタ１２００，１３００，１４００の内部処理（フィルタ処理部の処理）を説明している。なお、各フィルタでの処理は、具体的なフィルタ処理（ステップＳ３００２〜Ｓ３００４の置換処理）を除いて同一である。
【００４８】
フィルタ処理では入力ストリームとしてＰＤＬジョブを入力し、順次パターンマッチングを行い、マッチングした箇所のデータをあらかじめ決められた方法で置換を行い、出力ストリームへ出力するまでの処理を示す。本実施形態では、フィルタ処理部において置換処理が実行された際には、当該フィルタ処理部に対応した置換検知フラグをtrueにセットする。このように置換検知フラグをtrueにすることで本フィルタが有効化すべきフィルタであることが示されることになる。以下、図９および図１０のフローチャートにより、本実施形態によるフィルタモジュールの有効／無効設定処理を説明する。
【００４９】
まず、図９により、印刷処理におけるフィルタ部１０５の動作を説明する。ステップＳ３０００では、必要な前処理を行う。前処理には、フィルタが内部的に利用する属性の初期化や、パターンマッチングに使用するパターン記述に対する前処理などが含まれる。ステップＳ３００１では、入力ストリームからパターンマッチング処理に必要な量のデータを読み出す。ステップＳ３００２では、入力のデータストリーム中からこのフィルタが操作するべきデータパターンの出現を発見するためにパターンマッチングを行う。フィルタが操作するべきデータパターンは固定のデータ列そのものでもよいし、正規表現（regular expression）などの形式言語による記述でもよい。パターン記述に合致するデータの出現をデータストリーム中から発見する各種の実装が広く知られている（grep、sed、AWK、Perlなどが有名である）。
【００５０】
ステップＳ３００３では、パターンマッチングの結果を判定しパターン記述に合致するデータをデータストリーム中に発見した場合はステップＳ３００４に進む。そうでなければステップＳ３００６に進む。ステップＳ３００４では、パターン記述に合致したデータストリーム中の部分データ列に対してこのフィルタの目的に応じた操作を施しその結果で置き換える。
【００５１】
ステップＳ３００５では、置換検知フラグの状態をtrueにする。ステップＳ３００６では、処理済の部分データ列（すなわち、監視しているパターンが現れなかったデータ列、あるいは、監視しているパターンを含むデータ列に対してステップＳ３００４の処理を施したデータ列）を出力ストリームに書き込む。ステップＳ３００７では、入力ストリームが終了したかどうかを判定し、終端を迎えた場合は終了する。そうでなければステップＳ３００１に戻り、上記の手順を繰り返す。
【００５２】
図１０はフィルタセットアップモードの処理手順を示すフローチャートである。本フローチャートにょり、図８で説明したオペレータの手順におけるプリンタ１００内部の処理を説明する。以下では、オペレータがフィルタセットアップモードをＯＮにしてフィルタモジュール有効化ＰＤＬジョブ４５０をプリンタに転送し、フィルタ部１０５にて当該ＰＤＬジョブ４５０に対してフィルタ処理部がデータ置換を行ったフィルタを選択的に有効化するまでの処理を説明する。なお、処理は制御部１０２及びフィルタ部１０５にて行われる。
【００５３】
ステップＳ４０００では、図８の（ａ）に示すパネル操作においてオペレータがフィルタセットアップモードをＯＮすると、処理はステップＳ４０００からステップＳ４００１へ進む。ステップＳ４００１では、フィルタセットアップモードフラグ１１００をfalseからtrueにする。この処理によりフィルタ部１０５はフィルタセットアップモードの状態となる。ステップＳ４００２では、フィルタセットアップモードフラグ１１０がfalseからtrueになったことを受けて、フィルタブ１０５内の全てのフィルタ１２００，１３００，１４００の各フィルタ有効化フラグ１２０２，１３０２，１４０２がtrueにセットされ、更に各置換検知フラグ１２０３，１３０３，１４０３がfalseにセットされる。すなわち、フィルタセットアップモードが選択されると全てのフィルタモジュールのフィルタ有効化フラグがtrueに強制的にセットされてフィルタが強制的に有効化され、全てのフィルタモジュールの置換検知フラグがfalseに強制的にセットされる。本処理まで進んだ時点で操作パネル１０２は図８の（ａ）から（ｂ）の画面となる。
【００５４】
ステップＳ４００３では、フィルタ有効化ＰＤＬジョブ４５０をホストコンピュータから受信し、フィルタ処理する。このフィルタ有効化ＰＤＬジョブ４５０を処理する間に、各フィルタは図９で説明したように動作し、実際に機能したフィルタ（実際にデータ置換処理を行ったフィルタ）の置換検知フラグがtrueにセットされる。なお、フィルタ有効化ＰＤＬジョブは、印刷しなくてもよい。
【００５５】
ステップＳ４００４では、フィルタバスＩＦ１０００の出力状態を検出する。フィルタバスＩＦ１０００の出力状態検出とは最終段フィルタ１４００からＰＤＬジョブのフィルタ処理されたデータが全て出力されたことを検出するものである。ステップＳ４００５では、ＰＤＬジョブのフィルタ処理が終了したかを判定し、フィルタ処理が終了したならばステップＳ４００６に進み、そうでなければステップＳ４００４に戻りフィルタ処理の終了状態の判定を繰り返す。
【００５６】
ステップＳ４００６では、フィルタセットアップモードフラグ１１００をfalseにする。ステップＳ４００７では、ステップＳ４００６でフィルタセットアップモードフラグ１１００がtrueからfalseになったことを受けて全てのフィルタ１２００，１３００，１４００の各置換検知フラグ１２０３，１３０３，１４０３の状態を各フィルタ有効化フラグ１２０２，１３０２，１４０２にロードする。この結果、フィルタ有効化ＰＤＬジョブ４５０を処理する間に実際に機能したフィルタモジュールの有効化フラグがセットされ、フィルタモジュールのセットアップが行われることになる。
【００５７】
次に、図１１〜図１３を参照して、上述したフィルタセットアップモードの処理におけるフラグの状態の遷移を説明する。
【００５８】
図１１はフィルタセットアップモードをＯＮにした状態でのフラグの状態を示す図である。すなわち、図１１は図１０のフローチャートのステップＳ４００２でのフラグの状態（フィルタ有効化ＰＤＬジョブ４５０を流す前の状態）を示す。図１１に示すように、フィルタセットアップモードフラグ１１００がfalseからtrueになると各フィルタのフィルタ有効化フラグ１２０２，１３０２，１４０２全てがtrueにセットされる。また、各フィルタの置換検知フラグ１２０３，１３０３，１４０３全てがfalseに強制的にセットされる。この状態でフィルタモジュール有効化ＰＤＬジョブ４５０がホストコンピュータから転送され、フィルタバスＩＦ１０００を介して先頭のフィルタ１２００のフィルタ処理部１２０１に入力される（ステップＳ４００３）。
【００５９】
図１２はフィルタ有効化ＰＤＬジョブ４５０を全てのフィルタにて処理した後のフラグの状態を示す図である。なお、本例ではフィルタ１２００，１４００の２つのフィルタモジュールを有効化するフィルタ有効化ＰＤＬジョブを使用したものとする。従って、フィルタ１２００で当該フィルタモジュール有効化ＰＤＬジョブ４５０を処理するとデータ置換処理が行われ置換検知フラグ１２０３がtrueにセットされる。フィルタ１３００にフィルタモジュール有効化ＰＤＬジョブ４５０が供給されてもデータ置換処理は行われないので置換検知フラグ１３０３はfalseのままである。フィルタ１４００でフィルタモジュール有効化ＰＤＬジョブ４５０を処理するとデータ置換処理が行われ、置換検知フラグ１４０３がtrueにセットされる。
【００６０】
以上の処理を経た結果、フィルタ処理によってデータ置換されたＰＤＬジョブ４６０がフィルタバスＩＦ１０００を介して次段のトランスレータ１０６に転送される。
【００６１】
図１３は、図１１および図１２で説明したフィルタセットアップモード完了後のフラグの状態を示す図である。図１３は図１０のフローチャートのステップＳ４００７でのフラグの状態を示す。すなわち、フィルタセットアップモードフラグ１１００がtrueからfalseになったことを受けて全てのフィルタ１２００，１３００，１４００の各置換検知フラグ１２０３，１３０３，１４０３の状態がそれぞれのフィルタの有効化フラグ１２０２，１３０２，１４０２にロードされる。本例では、図１２で説明したように、フィルタ有効化フラグ１２０２，１４０２がtrueに、フィルタ有効化フラグ１３０２がfalseにセットされる。よって、フィルタ１２００，１４００は有効に、フィルタ１３００は無効に確定される。そして、以降のプリントジョブの処理時にはフィルタ１２００，１４００のみが有効化されてＰＤＬ変換処理が行われることになる。
【００６２】
以上説明した第１実施形態によれば、フィルタセットアップモードという処理モードを設け、フィルタセットアップモード時には所定のＰＤＬジョブを処理した際に複数存在するフィルタモジュール毎に置換処理を行ったかを検知し、置換処理を行ったフィルタモジュールのみを有効化することによりフィルタモジュールのセットアップが行われる。このため、フィルタモジュール毎に行っていた人間による手作業のセットアップ作業を排除し、非常に簡単なオペレーションでフィルタモジュールの有効化設定を実現することができた。すなわち、操作パネルやネットワークを介したリモートユーザーインターフェースなどを操作してオペレータがフィルタモジュールの有効化セットアップを行うという煩雑な作業に比べて、非常に容易に有効化セットアップを行える。特にプリンタのサービスマンは、開発部門から提供されたフィルタモジュール有効化ＰＤＬジョブを使用してフィルタモジュールのセットアップを行うことができるので、ユーザ毎の環境に合わせてフィルタモジュール有効化をカスタマイズするというような場面におけるサービス部門への負荷を軽減することができる。
【００６３】
＜第２実施形態＞
第１実施形態においてはフィルタモジュール有効化ＰＤＬジョブを一つ処理した段階でフィルタセットアップモードフラグをfalseにしてフィルタセットアップを完了させる構成であったが、オペレータが操作パネルから明示的にフィルタセットアップを完了させる構成も考えられる。この構成では複数のＰＤＬジョブを使用してフィルタセットアップを行うことが可能になり、一般ユーザの通常印刷データからフィルタのセットアップ（有効／無効設定）を行うことを目的に一定期間お試し期間を設定することを想定している。以下、第２実施形態を説明する。
【００６４】
図１４は第２実施形態におけるフィルタセットアップの概要を説明する図である。図１４はホストコンピュータ２００からプリンタ１００へコンピュータネットワーク３００を介して通常のＰＤＬジョブ４８０を複数回送信することによりフィルタのセットアップを行う様子を示すものである。与えられた期間の間にプリンタ１００に転送されたＰＤＬジョブの処理において、データ置換処理を実行したフィルタが有効化される。第１実施形態ではプリンタのサービスマンが開発部門から提供されたフィルタモジュール有効化ＰＤＬジョブ４５０を使用して選択的にフィルタを有効化する場合を想定した。これに対して、第２実施形態では、ユーザが一定期間フィルタセットアップモードを行うためのお試し期間を設け、お試し期間中にデータ置換が行われたフィルタを次のフィルタセットアップが行われるまで有効に設定することを想定している。
【００６５】
第２実施形態においても、フィルタを個別に有効化させるような特別なコマンドを定義するのではなく、ＰＤＬジョブそのものをフィルタモジュールの有効化に使用する点を特徴の一つとする。
【００６６】
図１５は第２実施形態におけるフィルタセットアップ処理の操作を示す図である。本操作は図８で説明した第１実施形態とは異なり、フィルタセットアップモードのスタートとストップをオペレータがプリンタ１００の操作パネル１０３にて行うものである。なお、フィルタセットアップモードのスタートからの所定期間の経過を内部カレンダーを参照して検出することにより自動的にフィルタのセットアップモードを終了するようにしてもよい。
【００６７】
図１５（ａ）は、操作パネル１０３においてオペレータに対してフィルタセットアップモードをＯＮにすることを促す様子を示すものである。オペレータはフィルタセットアップを行うのでＯＮボタン１８０を選択する。なんらかの理由でフィルタセットアップを中止するのであればcancelボタン１８１を選択する。すると画面は図１５（ｂ）に切り替わり、プリンタの定常状態である印刷可能を示すメッセージが表示される。なおフィルタセットアップモードがＯＮになっているため画面の左上（１８５）にその旨表示されている。これにより、フィルタセットアップモードのお試し期間中であることを示している。
【００６８】
この状態でユーザは通常の印刷処理を行う。お試し期間を終了するにあたりオペレータはメニューボタン１８２を選択し、フィルタセットアップモードのメニューを呼び出す。すると図１５（ｃ）に画面が切り替わる。図１５（ｃ）はフィルタセットアップモードが実行中であることを表示している。オペレータはフィルタセットアップモードを停止するのであればＯＦＦボタン１８３を、フィルタセットアップモードを継続する場合はcancelボタン１８４を選択する。
【００６９】
以上の操作でプリンタ１００のフィルタ部１０５に装備されたフィルタ１２００，１３００，１４００のうち、、お試し期間中に機能した（データ置換を行った）フィルタのみが有効化される。
【００７０】
図１６は実施形態２におけるフィルタセットアップモードの処理手順を示すフローチャートである。図１６のフローチャートを参照して、図１５で説明したオペレータ操作が行われた際のプリンタ１００内部の処理について説明する。すなわち、オペレータがフィルタセットアップモードをＯＮにした後、お試し期間中にユーザから転送されたＰＤＬジョブに対してデータ置換を実行したフィルタのみを有効化するフィルタセットアップ処理を説明する。なお、本処理は制御部１０２及びフィルタ部１０５にて行われる。
【００７１】
オペレータが図１５（ａ）に示すパネルの操作によりフィルタセットアップモードをＯＮにすると処理はステップＳ５０００からステップＳ５００１へ進む。ステップＳ５００１ではフィルタセットアップモードフラグ１１００をfalseからtrueにする。この処理によりフィルタ部１０５はフィルタセットアップモードの状態となる。ステップＳ５００２では、フィルタセットアップモードフラグ１１００がfalseからtrueになったことを受けて全てのフィルタ１２００，１３００，１４００のフィルタ有効化フラグ１２０２，１３０２，１４０２をtrueにセットし、置換検知フラグ１２０３，１３０３，１４０３をfalseにセットする。すなわち、フィルタセットアップモードが選択されると全てのフィルタのフィルタ有効化フラグがtrueに強制的にセットされてフィルタが有効化されるとともに、全てのフィルタの置換検知フラグがfalseに強制的にセットされる。本処理まで進んだ時点で操作パネル１０２は図１５の（ａ）から（ｂ）の画面へ移行する。
【００７２】
ステップＳ５００３では、ホストコンピュータ２００よりＰＤＬジョブを受信し、これを処理する。このとき、各フィルタは図９に示す処理を行い、実際にデータの置換処理を行ったフィルタの置換検知フラグはtrueにセットされる。ステップＳ５００３によるＰＤＬジョブの受信、処理はフィルタセットアップモードがＯＦＦされるまで（ステップＳ５００４）、すなわちフィルタセットアップのお試し期間中にＰＤＬジョブを受信した場合に実行されることになる。
【００７３】
オペレータが図１５（ｃ）に示すパネル操作によりフィルタセットアップモードをＯＦＦにすると、ステップＳ５００５へ進み、フィルタセットアップモードフラグ１１００をtrueからfalseにする。ステップＳ５００６では、ステップＳ５００５でフィルタセットアップモードフラグ１１００がtrueからfalseになったことを受けて。全てのフィルタ１２００，１３００，１４００の各置換検知フラグ１２０３，１３０３，１４０３の状態を各フィルタ有効化フラグ１２０２，１３０２，１４０２にロードする。こうして、フィルタのセットアップがなされることになる。
【００７４】
以上のような第２本実施形態によれば以下の効果がある。すなわち、第１実施形態ではプリンタのサービスマンが開発部門から提供されたフィルタモジュール有効化ＰＤＬジョブを使用して選択的に指定したフィルタを有効化するのを想定したことに対し、第２実施形態２ではユーザが一定期間フィルタセットアップモードを行うためのお試し期間を設け、お試し期間中にデータ置換が行われたフィルタを恒久的に有効化する。このため、プリンタ設置先の印刷環境にあわせて実際に使用されるフィルタモジュールのみを有効化できることになり、ユーザはフィルタモジュールに関して別段詳細な知識を持つことなく、適切なフィルタモジュールの有効化（カスタマイズ）が可能になる。
【００７５】
以上のような各実施形態によれば、フィルタセットアップモードという処理モードを画像処理装置に備え、フィルタセットアップモード時には、ＰＤＬジョブを処理した際に複数存在するフィルタモジュールの各々においてフィルタ処理（データ置換処理）を行ったかを検知し、フィルタ処理を行ったフィルタモジュールが有効に設定される。このため、人間による手作業のセットアップ作業を排除でき、非常に簡単なオペレーションでフィルタモジュールの有効化を行えるようになる。すなわち、操作パネルやネットワークを介したリモートユーザーインターフェースなどを操作してオペレータが個々のフィルタモジュールの有効化セットアップを行うという従来の煩雑な作業に比べて、遥かに簡単な手順でのフィルタモジュールの有効化を行えるという効果がある。
【００７６】
尚、上記各実施形態では、フィルタセットアップモードの終了時に置換検知フラグの内容をロードするので、フィルタセットアップモードの期間中に処理を実行したフィルタのみが有効に設定されることになる。しかしながら、それまで有効に設定されていたフィルタはフィルタセットアップモードでの実行結果に関らず有効に保ちたい場合があるかもしれない。従って、オプションとして、フィルタセットアップモード開始前の有効の状態を保つようにしてもよい。これは、例えば、次のようにして実現できる。すなわち、フィルタセットアップモード開始時に置換検知フラグをfalseにセットする代わりに、フィルタセットアップモード開始直前の有効化フラグの状態を置換検知フラグへロードする（Ｓ４００２、Ｓ５００２）。そして、フィルタセットアップモード終了時に置換検知フラグの状態を有効化フラグへロードする。このようにすれば、開始直前の有効化状態を保つことができる。
【００７７】
＜その他の実施形態＞
以上のように本発明の実施形態を詳述したが、本発明は障害対応フィルタの配布にも適用できる。つまりユーザ個別にカスタマイズしたフィルタの不具合を修正するパッチフィルタを配布する場合である。本来、ユーザ個別にカスタマイズしたフィルタの不具合修正は、そのユーザのみに適用するものであるが、本発明を適用すれば、例えばユーザａ用のパッチフィルタＡ、ユーザｂ用のパッチフィルタＢを１つの実行プログラムの形でＣＤ−ＲＯＭなどのメディアで配布し、ユーザ個別対応を意識することなく障害対応フィルタを適応させることができる。
【００７８】
尚、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム（実施形態では図に示すフローチャートに対応したプログラム）を、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【００７９】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【００８０】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であっても良い。
【００８１】
プログラムを供給するための記録媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などがある。
【００８２】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【００８３】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【００８４】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
【００８５】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【００８６】
【図１】実施形態によるプリンタの構成例を示すブロック図である。
【図２】実施形態のプリンタにおけるフィルタ部の構成例を示すブロック図である。
【図３】マニュアルによるフィルタセットアップのためのユーザインターフェース例を示す図である。
【図４】第１実施形態によるフィルタセットアップの概念を説明する図である。
【図５】実施形態におけるフィルタモジュールの一例である互換化フィルタが行う処理を説明する図である。
【図６】実施形態におけるフィルタモジュールの一例である障害回避フィルタが行う処理を説明する図である。
【図７】実施形態におけるフィルタモジュールの一例である最適化フィルタが行う処理を説明する図である。
【図８】第１実施形態によるフィルタセットアップ処理のユーザインターフェース例を示す図である。
【図９】実施形態によるフィルタ処理を示すフローチャートである。
【図１０】第１実施形態によるフィルタセットアップモードの処理を示すフローチャートである。
【図１１】フィルタセットアップモードをＯＮにした状態でのフラグの状態を示す図である。
【図１２】フィルタ有効化ＰＤＬジョブを全てのフィルタにて処理した直後のフラグの状態を示す図である。
【図１３】フィルタセットアップモード完了後のフラグの状態を示す図である。
【図１４】第２実施形態におけるフィルタセットアップの概念を説明する図である。
【図１５】第２実施形態におけるフィルタセットアップ処理のユーザインターフェース例を示す図である。
【図１６】第２実施形態におけるフィルタセットアップモードの処理手順を示すフローチャートである。
【図１】
2006048534.tif 000003
【図２】
2006048534.tif 000004
【図３】
2006048534.tif 000005
【図４】
2006048534.tif 000006
【図５】
2006048534.tif 000007
【図６】
2006048534.tif 000008
【図７】
2006048534.tif 000009
【図８】
2006048534.tif 000010
【図９】
2006048534.tif 000011
【図１０】
2006048534.tif 000012
【図１１】
2006048534.tif 000013
【図１２】
2006048534.tif 000014
【図１３】
2006048534.tif 000015
【図１４】
2006048534.tif 000016
【図１５】
2006048534.tif 000017
【図１６】
2006048534.tif 000018