(57)【特許請求の範囲】
【請求項１】
パーツ毎に文書データを取得する取得手段と、
前記取得手段が前記文書データを取得した後に特定の機能が実行されるか否か判定する判定手段と、
前記判定手段が特定の機能が実行されるか否かを判定した後に前記取得手段により取得された前記文書データのパーツから前記特定の機能の実行結果に影響しないデータを除く除外手段と、
前記判定手段により特定の機能が実行されると判定された場合、前記文書データのパーツをストリーム形式の文書データに変換する変換手段と、
前記判定手段により特定の機能が実行されないと判定された場合、前記取得手段により取得された前記文書データをパーツ毎に送信する送信手段とを有し、
前記特定の機能は前記除外手段と前記変換手段の実行結果に基づいて実行されることを特徴とする情報処理装置。
【請求項２】
前記特定の機能はプレビューであり、前記文書データに基づいてプレビューされた後の印刷指示に応じて、前記取得手段により取得した前記パーツ毎の文書データを後段のフィルターに送信するプレビュー手段を有することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記文書データはＸＰＳデータであり、
前記特定の機能の実行結果に影響しないデータとは前記ＸＰＳデータのＰｒｉｎｔＴｉｃｋｅｔ及びサムネイル、ＦｉｘｅｄＤｏｃｕｍｅｎｔであることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
印刷設定を変更する変更手段と、
前記変更手段により変更された印刷設定に基づき、後段のフィルターに送信される前記文書データを更新する更新手段とを有することを特徴とする請求項２に記載の情報処理装置。
【請求項５】
コンピュータを、
パーツ毎に文書データを取得する取得手段、
前記取得手段が前記文書データを取得した後に特定の機能が実行されるか否か判定する判定手段、
前記判定手段が特定の機能が実行されるか否かを判定した後に前記取得手段により取得された前記文書データのパーツから前記特定の機能の実行結果に影響しないデータを除く除外手段、
前記判定手段により特定の機能が実行されると判定された場合、前記文書データのパーツをストリーム形式の文書データに変換する変換手段、
前記判定手段により特定の機能が実行されないと判定された場合、前記取得手段により取得された前記文書データをパーツ毎に送信する送信手段として機能させ、
前記特定の機能は前記除外手段と前記変換手段の実行結果に基づいて実行されることを特徴とするプログラム。
【請求項６】
コンピュータを、
前記特定の機能はプレビューであり、前記文書データに基づいてプレビューされた後の印刷指示に応じて、前記取得手段により取得した前記パーツ毎の文書データを後段のフィルターに送信するプレビュー手段として機能させることを特徴とする請求項５に記載のプログラム。
【請求項７】
前記文書データはＸＰＳデータであり、
前記特定の機能の実行結果に影響しないデータとは前記ＸＰＳデータのＰｒｉｎｔＴｉｃｋｅｔ及びサムネイル、ＦｉｘｅｄＤｏｃｕｍｅｎｔであることを特徴とする請求項６に記載のプログラム。
【請求項８】
印刷設定を変更する変更手段、
前記変更手段により変更された印刷設定に基づき、後段のフィルターに送信される前記文書データを更新する更新手段とを有することを特徴とする請求項６に記載のプログラム。
【請求項９】
パーツ毎に文書データを取得する取得工程と、
前記取得工程が前記文書データを取得した後に特定の機能が実行されるか否か判定する判定工程と、
前記判定工程が特定の機能が実行されるか否かを判定した後に前記取得工程により取得された前記文書データのパーツから前記特定の機能の実行結果に影響しないデータを除く除外工程と、
前記判定工程により特定の機能が実行されると判定された場合、前記文書データのパーツをストリーム形式の文書データに変換する変換工程と、
前記判定工程により特定の機能が実行されないと判定された場合、前記取得工程により取得された前記文書データをパーツ毎に送信する送信工程とを有し、
前記特定の機能は前記除外工程と前記変換工程の実行結果に基づいて実行されることを特徴とする制御方法。
【請求項１０】
前記送信手段は、前記判定手段により特定の機能が実行されないと判定された場合、前記取得手段により取得された前記文書データを前記ストリーム形式に変換せずに後段のフィルターへパーツ毎に送信することを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項１１】
前記送信手段は、前記判定手段により特定の機能が実行されないと判定された場合、前記取得手段により取得された前記文書データを前記ストリーム形式に変換せずに後段のフィルターへパーツ毎に送信することを特徴とする請求項５乃至８のいずれか１項に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば印刷処理を行う前に、印刷イメージをユーザが認識可能に表示する、いわゆるプレビュー機能等を有する情報処理装置、プレビュー方法、及びプログラムに関する。
【背景技術】
【０００２】
オペレーティングシステム（ＯＳ）としてＭｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）を搭載した計算機を用いた印刷システムにおいて、アプリケーションプログラム等で生成された印刷データは、ＯＳ標準のデータ形式でスプールファイルに格納される。ＯＳは印刷データを印刷するためにプリンタドライバを呼び出す。そしてプリンタドライバが、スプールファイルに格納された印刷データを読み取り、イメージ生成処理部により印刷イメージを作成し、さらにプリンタが解釈可能な印刷コマンドに変換する。印刷コマンドはプリンタに送信され、プリンタは印刷コマンドを解釈し、記録媒体に像を形成することで印刷処理が実行される。
【０００３】
この印刷システムにおいてプレビュー機能を提供するために、プリンタドライバは印刷処理を開始した時に、印刷イメージを表示するプレビューアを実行する。そして画像生成部はプレビュー用の印刷イメージを作成し、プレビューアは当該プレビュー用の印刷イメージを表示する。つまり、プリンタドライバにおいて、印刷イメージを作成する当該画像生成部と、印刷イメージを表示する当該プレビューアとが協調することにより、プレビュー機能が実現される。（特許文献１参照）
【特許文献１】特開２００４−１０２６１８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、近年では前記のような従来の印刷システムとは異なる印刷システムが登場してきた。この新しい印刷システムでは、スプールファイルに格納されるデータ形式として従来のＥＭＦ形式（Ｅｎｈａｎｃｅｄ  Ｍｅｔａ  Ｆｉｌｅ）ではなくＸＰＳ形式（ＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）が用いられる。ＸＰＳについては図１を用いて後述するが、Ｍｉｃｒｏｓｏｆｔ社が開発したオープン規格の電子文書フォーマットであり、オープン規格であるため、ＯＳによる表示手段が提供されている。これを利用することで、従来の印刷プレビューは印刷データをイメージに変換して表示を行っていたものが、印刷データであるＸＰＳをイメージに変換することなく表示することが可能となる。
【０００５】
また、この新しい印刷システムにおけるプリンタドライバ（ＸＰＳ  Ｐｒｉｎｔｅｒ  Ｄｒｉｖｅｒ）はフィルターと呼ばれるモジュールによって構成される。図２０に示すように、フィルターは２種類の入出力インタフェースのどちらかを利用してフィルター間のデータの受け渡しを行う。２種類のインタフェースに関する詳細については後述するが、ＸＰＳをパーツ毎に扱うリーチ形式と、ＸＰＳをバイトストリームとして扱うストリーム形式が存在する。ストリーム形式のデータは、パーツを一まとめにしてＺＩＰ圧縮されたものである。前のフィルターの出力インタフェースと、次のフィルターの入力インタフェースが異なると、その間のデータ変換はＯＳの印刷サポート機能によって行われるため、フィルターの開発者はインタフェースの違いを意識する必要はない。ただし、その変換にも処理時間が発生するため、ドライバのパフォーマンス向上のためには、同一形式のインタフェースを用いてフィルターを構成していくことが望ましいと言える。また、プリンタドライバのフィルター構成は構成を記述したＸＭＬファイルで管理されており、フィルター構成を印刷のたびに印刷データや設定に基づいて変更することができないことが一般的である。
【０００６】
ここでプレビュー機能を司るフィルターを用意する場合、表示にはＸＰＳデータが必要となるため、パーツを扱うリーチ形式ではなく、ストリーム形式を入力インタフェースとして用いることが望ましい。しかし、リーチ形式のインタフェースを用いたフィルターはＸＰＳをパートごとに扱えるため、各パートの編集が必要なレイアウト処理等に適しており、レイアウト用のフィルターはリーチ形式を採用することによって開発コストの抑制につながると考えられる。このように、プレビューフィルターの前後のフィルターがリーチ形式を採用して作成されていた場合、ストリーム形式のプレビューフィルターでは、前記の変換処理が発生し、ドライバ全体のパフォーマンスの低下につながる。
【０００７】
本発明は上記の問題点に鑑み、フィルター間のデータ変換処理の負荷を軽減し、パフォーマンスの低下を抑制することが可能とすることを目的とする。
【課題を解決するための手段】
【０００８】
上記の目的を達成するための本発明に係る情報処理装置は、
パーツ毎に文書データを取得する取得手段と、
前記取得手段が前記文書データを取得した後に特定の機能が実行されるか否か判定する判定手段と、
前記判定手段が特定の機能が実行されるか否かを判定した後に前記取得手段により取得された前記文書データのパーツから前記特定の機能の実行結果に影響しないデータを除く除外手段と、
前記判定手段により特定の機能が実行されると判定された場合、前記文書データのパーツをストリーム形式の文書データに変換する変換手段と、
前記判定手段により特定の機能が実行されないと判定された場合、前記取得手段により取得された前記文書データをパーツ毎に送信する送信手段とを有し、
前記特定の機能は前記除外手段と前記変換手段の実行結果に基づいて実行されることを特徴とする。
【発明の効果】
【００１１】
上記構成により本発明によれば以下のような効果が得られる。
【００１２】
フィルター間のデータ変換処理の負荷を軽減し、パフォーマンスの低下を抑制することが可能となる。
【発明を実施するための最良の形態】
【００１３】
＜実施形態１＞
以下、図面に示す実施例に基づき本発明を詳細に説明する。尚、本文中のＸＰＳとはＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎの略で、Ｍｉｃｒｏｓｏｆｔ社が開発したオープン規格の電子文書フォーマットの一つである。
【００１４】
＜ＸＰＳ文書の構成＞
本文の理解を容易にするため、まずＸＰＳについて簡単に説明する。ＸＰＳ文書はＦｉｘｅｄＤｏｃｕｍｅｎｔＳｅｑｕｅｎｃｅ（以下ＦＤＳ）をルートとするツリー構造になっている。ＦＤＳは複数のＦｉｘｅｄＤｏｃｕｍｅｎｔ（以下ＦＤ）を持ち、ＦＤは複数のＦｉｘｅｄＰａｇｅ（以下ＦＰ）を持つ。ＦＤＳとＦＤとＦＰのそれぞれは、ＸＰＳパートと呼ばれることがある。ＦＰは文書のページの内容をＸＭＬ形式で記述しており、実際に表示または印刷される内容を含んでいる。ＦＰのページ内容で使用されるフォントや画像等のリソースは複数のＦＰで共有することができる。また、ＦＤＳとＦＤとＦＰははそれぞれ印刷設定をＰｒｉｎｔＴｉｃｋｅｔ（以下ＰＴ）で持つことができる。ＰＴはＸＰＳ文書を印刷する際の印刷設定をＸＭＬ形式で記述したものである。ここで各ＦＰを印刷する際に使用する印刷設定は、ＦＤＳのＰＴと、印刷対象ＦＰの親ＦＤのＰＴと、印刷対象ＦＰのＰＴをマージしたＰＴとなる。
【００１５】
図１はＸＰＳ文書の論理構造を示したブロック図の一例である。ＸＰＳ文書１０１の論理構造はＦＤＳ１０３がルートとなるツリー構造となっている。ＦＤＳ１０３は子としてＦＤ１１１とＦＤ１１３を有する。ＦＤ１１１は子としてＦＰ１２１とＦＰ１２３を有する。ＦＤ１１３は子としてＦＰ１２５を有する。印刷設定を記述したＰＴについては、ＦＤＳ１０３がＰＴ１３１を、ＦＤ１１１がＰＴ１３３を、ＦＰ１２１がＰＴ１３５を、ＦＤ１１３がＰＴ１３７をそれぞれ保持している。ＦＰ１２３とＦＰ１２５はＰＴを保持していない。また、ＦＰ１２１とＦＰ１２３がフォントや画像等のリソース１４１を共有しており、ＦＰ１２５はフォントや画像等のリソース１４３を利用している。ここで例えばＦＰ１２１を印刷する際に使用するＰＴは、ＰＴ１３１とＰＴ１３３とＰＴ１３５をマージしたＰＴとなる。
また、実際のＸＰＳ文書は前記図１の構造化文書が圧縮されたデータである。
【００１６】
＜印刷システムの構成＞
図２は本発明の実施の一形態に係る印刷システムの構成を示すブロック図である。プリンタ２０１は、画像形成を行うインクジェット方式のプリンタであり、後述するデータ処理装置２０２で生成された印刷コマンドに基づいて記録媒体２００に画像の形成を行う。プリンタの種類については特に問わないが、ここではインクジェット方式のカラープリンタを想定している。データ処理装置２０２は、アプリケーションが印刷ジョブを作成し、プリンタドライバが印刷ジョブのスプールデータから、接続されたプリンタ２０１の印刷動作を制御する印刷コマンドの生成を行う。本実施形態ではデータ処理装置２０２としてパーソナルコンピュータを用いている。印刷の設定に関するユーザからの指示や入力を受ける役割も果たす。データ処理装置２０２は、各種機能ブロック２３０〜２３５、２４０〜２４３によって構成される。また、データ処理装置２０２には、データ処理装置２０２を制御するＯＳが組み込まれており、このＯＳ上で各種機能ブロックが動作する。通信インタフェース２０３は、データ処理装置２０２とプリンタ２０１を接続する通信インタフェースである。本実施形態ではシリアルインターフェースであるＵＳＢを用いている。しかしながら、この他に、ＩＥＥＥ１３９４、Ｅｔｈｅｒｎｅｔ（登録商標）、ＩｒＤＡ、ＩＥＥＥ８０２．１１、電力線などのシリアルインターフェースや、セントロニクス、ＳＣＳＩなどのパラレルインタフェースを利用することもできる。通信を実現するものであれば有線／無線を問わずどのようなインタフェースであっても構わない。このように、本実施形態における印刷システムとは、単体の装置ではなく、データ処理装置２０２と画像形成を行うプリンタ２０１とが特定の双方向インタフェースで接続された構成をとっている。しかしながら、この例に限られることなく、このようなデータ処理装置とプリンタの機能が一体となった装置一体型の印刷システムであってもよい。尚、プリンタ２０１及びデータ処理装置２０２とも本実施形態の特徴を説明する上で特に必要ないと思われる機能については省略する。
【００１７】
また、前記各種機能ブロックはソフトウェアでもよい。このようなソフトウェアのプログラムコードを供給するための記憶媒体としては、例えば、フロッピィディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ，ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【００１８】
＜プリンタドライバの動作＞
図３は、本発明におけるプリンタドライバの実施形態を説明するために図２の印刷システムをＯＳの印刷サポート機能とプリンタドライバを中心に概念的に表したブロック図である。本発明に関わるモジュールは、印刷設定機能を有するユーザインタフェースモジュール３１５と、フィルター群３１９である。フィルター群３１９は、ＸＰＳデータのページをレイアウト処理する機能を有するレイアウトフィルター３２１と、プレビュー機能を提供するためのフィルターであるプレビューフィルター３２３と、ＸＰＳデータをプリンタが解釈可能な印刷コマンドに変換する機能を有する印刷コマンドフィルター３２５で構成される。ここでフィルターとは、一般的に入力されたデータをもとに、加工、変換、無変換、生成等の工程を介して、何らかのデータを出力する機能を有するプログラムのことを称する。
【００１９】
図３における印刷システムでは、アプリケーション３０１が作成した文書の各ページの印刷データは、ＯＳの印刷サポート機能３１３を通じてＸＰＳスプールファイル３１７に一時的に蓄えられる。これをプリンタドライバのフィルター群３１９が、印刷設定情報に基づきプリンタが解釈可能な印刷コマンドに変換してプリンタ３３１に供給して印刷されるように構成されている。
【００２０】
ユーザインタフェースモジュール３１５は、一般に印刷に使用する用紙サイズや印刷方向、その他の属性を設定する機能を提供する。同時に本発明におけるユーザインタフェースモジュール３１５は、プリンタによる印刷動作を開始する前に印刷イメージを表示するプレビューを設定する機能を有する。ユーザインタフェースモジュール３１５は、複数の印刷設定項目の設定値が格納された印刷設定情報をアプリケーション３０１に返却する。ユーザインタフェースモジュール３１５が提供する印刷設定ダイアログの一例については図４を用いて後述する。
【００２１】
アプリケーション３０１は作成した任意の文書の印刷にあたり、ＯＳの印刷サポート機能３１３に対して、印刷開始や印刷終了を通知したり、印刷設定を行うためにユーザインタフェースモジュール３１５から返却された印刷設定情報を通知したり、文書の各ページの描画開始や描画終了を通知する。ＯＳの印刷サポート機能３１３は、アプリケーションが描画した内容や印刷設定情報をＸＰＳスプールファイル３１７に格納する。各フィルターはスプールされた印刷ジョブをデスプールする際にＯＳの印刷サポート機能から呼び出される。
【００２２】
プリンタドライバのフィルター群３１９は一つ以上のフィルターで構成されており、印刷時にＸＰＳスプールファイルから印刷ジョブを読込み、プリンタが解釈可能な印刷コマンドに変換してプリンタ３３１に供給し、印刷を行う機能を有する。本実施形態におけるフィルター群３１９は、レイアウト処理部であるレイアウトフィルター３２１と、プレビュー文書作成部であるプレビューフィルター３２３と、印刷コマンド変換部である印刷コマンドフィルター３２５で構成される。
【００２３】
レイアウトフィルター３２１はＸＰＳスプールファイル３１７に格納されたＸＰＳデータを入力とし、印刷設定情報に基づきページのレイアウト処理を行い、レイアウト済みのＸＰＳデータを出力する機能を有する。本実施例におけるレイアウト処理とは例えば複数のページを一つの用紙面に印刷するＮ−ｕｐ印刷や、一つのページを複数の用紙面に印刷するポスター印刷等を含む。
【００２４】
プレビューフィルター３２３は、レイアウトフィルター３２１の出力を入力とし、印刷設定に基づきユーザにプレビュー機能を提供する。
【００２５】
印刷コマンドフィルター３２５はプレビューフィルター３２３の出力を入力とし、印刷設定情報に従い、ＸＰＳデータをプリンタが解釈可能な印刷コマンドに変換し出力する機能を有する。印刷コマンドフィルター３２５が入力のＸＰＳデータを一度イメージデータに変換する場合、一般的にレンダーフィルターと呼ばれる。レンダーフィルターはインクジェットプリンタに代表される廉価なラスタープリンタ用のプリンタドライバにおいて多く見られる。印刷コマンドフィルター３２５がレンダーフィルターとして動作する場合は、入力のＸＰＳデータを一度イメージデータに変換する。その後、色空間の変換や二値化等の画像処理の過程を経て、ラスタープリンタが解釈可能な印刷コマンドに変換される。ページプリンタに代表される高機能なプリンタにおいて、プリンタが解釈できる印刷コマンドの種類にＸＰＳが含まれるならば、印刷コマンドフィルター３２５は入力のＸＰＳデータを編集しＸＰＳデータを出力する。印刷コマンドフィルター３２５にて処理する必要がなければ、入力のＸＰＳデータをそのまま出力するか、印刷コマンドフィルター３２５はプリンタドライバに含めなくても良いことは言うまでもない。
【００２６】
出力デバイスであるプリンタ３３１は、印刷コマンドフィルター３２５で生成された印刷コマンドを解釈し、可視画像を印刷用紙に対して形成する機能を持つ。印刷用紙３４１で図示される印刷結果の例は、レイアウトフィルター３２１が２−ｕｐの処理を行った場合を示している。
【００２７】
＜印刷設定画面＞
図４は本実施形態における印刷モードや各種用紙設定を行う際に表示される印刷設定ダイアログの一例を示す図である。図４において、印刷設定ダイアログ４０１は、表示エリア４０２〜４１１、４２０〜４３１から構成される。印刷設定では表示する項目が非常に多いため、タブシートを使用して設定項目を内容ごとに分けて見やすい構成にするのが通例である。
【００２８】
図４に基本設定タブ４０２が選択された場合の表示例を示す。基本設定の簡易表示エリア４２０には、文字情報だけでなく視覚に訴える形で設定された情報を表示する。用紙種類選択部４２２は、用紙の種類を表示するとともに利用者により選択させることができる。用紙種類選択部４２２はドロップダウンメニューとなっており普段は選択されている用紙の種類が表示され、そこをクリックすることで選択可能な用紙種類がリスト表示される。選択可能な用紙の種類はプリンタで印刷可能な用紙であり、図示されている普通紙の他にも例えば光沢紙、コート紙、写真専用紙、ハガキ、年賀状葉書等が含まれる。給紙方法選択部４２３は、プリンタ本体が用紙を給紙する給紙方法を表示し、利用者による給紙方法の選択をさせることができる。利用者は、給紙方法選択部４２３により、たとえば自動給紙口である給紙トレイや給紙カセット、または印刷用紙を一枚ずつ手動で給紙する「手差し給紙」などを選択できる。印刷品質選択部４２４は利用者に印刷の品位を設定させるための項目である。色調整部４２５は利用者に印刷の色を調整させるための項目である。モノクロ印刷設定部４２６は、印刷文書がカラーであっても印刷結果をグレースケールにするためのチェックボックスである。プレビュー印刷設定部４２７は、各種印刷設定がどのように印刷文書に反映されるかを、プリンタによる実際の印刷が行われる前に確認するためのチェックボックスである。標準設定部４３１が押されると、基本設定４０２の設定が標準（出荷時設定）に戻される。
【００２９】
ユーザは各項目を選択した後にＯＫボタン４０８を押下することで印刷設定ダイアログ４０１を閉じ、選択した印刷設定を印刷に反映させることができる。キャンセルボタン４０９を押下すると印刷設定ダイアログ４０１が閉じ、選択した設定項目の内容は破棄され印刷に反映されることはない。適用ボタン４１０は印刷設定ダイアログ４０１を開いたままで選択した印刷設定を印刷に反映させることができる。ヘルプボタン４１１は基本設定４０２の各設定項目に関する説明文を別ウィンドウで表示させることができる。
【００３０】
＜プレビュー制御モジュールのプレビューウィンドウ＞
図５に、本実施の形態におけるプレビュー制御モジュールによって提供される表示画面（プレビューウィンドウ）の一例を示す。印刷プレビューウィンドウ５０１は、プレビュー画像や印刷ジョブの印刷設定等を表示するための表示エリアと、ユーザがプレビュー画像の表示方法等を変更するための入力手段を兼備している。
【００３１】
メニューバー５０２は、ユーザは表示切り替え等プレビューアへの命令をメニュー形式で選択することができる。ユーザ操作部５０３〜５０６が用意される領域はツールバーであり、ユーザはメニューバー５０２を使用しなくともツールバー５０３を押下することで容易にプレビューページの切り替え等を行うことができる。ページ切り替えボタン５０３は４つのボタンで構成されており、先頭ページ、前ページ、次ページ、最終ページへプレビュー表示を切り替えることが可能である。５０４はプレビュー画像の表示サイズを変更する為のドロップダウンリストで、全体表示や１００％、２００％表示等を選択することができる。印刷開始ボタン５０５においては、ユーザがこのボタンを押下することでプレビューアを終了し、プレビューしていたプレビュー用ＸＰＳ文書を印刷処理可能な状態にすることができる。印刷中止ボタン５０６においては、ユーザがこのボタンを押下することでプレビューアを終了し、印刷ジョブをキャンセルすることができる。プレビュー表示領域５０７は、プレビュー用ＸＰＳファイルの内容を利用し、印刷用紙と印刷用紙に形成されるであろう可視象を印刷イメージとして表示する。表示領域５０８はプレビュー機能を実行している印刷ジョブの印刷設定に関わる代表的な設定項目の設定値を表示する。そして、本図においては文書の総ページ数は３ページであり、現在プレビュー表示しているページ番号は２ページであり、印刷設定で設定された部数は１部であり、かつ等倍印刷が設定されていた例を示している。
【００３２】
また、本実施形態において、図５に例示する表示画面は、プレビュー設定がＯＮ（オン）である印刷設定情報を伴う印刷ジョブがスプールされ、ＯＳの印刷サポート機能によりフィルターパイプラインが起動され、プレビューフィルターがプレビュー制御モジュールを起動した時点で表示される。
【００３３】
＜フィルターと入出力インタフェース＞
前述したように、ＸＰＳドライバはそれぞれに任意の機能を有したフィルターによって構成される。このフィルター間でデータの受け渡しを行うインタフェースには、ストリーム形式とリーチ形式の２種類が存在する。
【００３４】
ストリーム形式のインタフェースでは、印刷データはそのままバイトストリームとして扱われる。また、ＸＰＳ以外のデータもバイトストリームとして扱うことも可能である。リーチ形式のインタフェースでは、印刷データであるＸＰＳドキュメントがＸＰＳパート単位で扱われる。ここでいうＸＰＳパートとはＦＤＳ、ＦＤ、ＦＰとそれらに付随するＰＴや、画像、フォント等のリソースのことを指す。各フィルターは入力と出力それぞれに対して、どちらのインタフェースを利用するかを定められる。リーチ形式のインタフェースを利用した場合、ＸＰＳドキュメントを解析してＸＰＳパートを抽出する必要がないため、ＦＰの変更が必要なレイアウト処理などの処理を行うことがストリーム形式に比べ容易であると言える。
【００３５】
それぞれのインタフェースの動作について図２０を用いて説明する。フィルター２０１１は入出力インタフェースとしてリーチ形式を、フィルター２０２１は入出力インタフェースとしてストリーム形式を採用している。スプールファイルとして格納されているＸＰＳドキュメント２０３１は２０３３から２０３９のＸＰＳパートから構成されている。まずＸＰＳドキュメント２０３１はフィルター２０１１に送られるが、フィルター２０１１の入力インタフェース２０１３はリーチ形式なので、ＯＳの印刷サポート機能２００３でＸＰＳパートに分解されて送られる。フィルター２０１１は、受け取ったＸＰＳパート２０３３から２０３９に対して必要に応じて編集処理を行い出力する。出力インタフェース２０１５もリーチ形式なので、出力されるデータはＸＰＳパート２０３３から２０３９に対して編集処理を行ったＸＰＳパート２０４３から２０４９となる。このデータがフィルター２０２１に送られるが、フィルター２０２１の入力インタフェース２０２３はストリーム形式なので、ＯＳの印刷サポート機能２００３でＸＰＳパート２０４３から２０４９に基づくＸＰＳドキュメント２０４１に変換されて送られる。フィルター２０２１ではＸＰＳドキュメント２０４１をバイトストリームとして受け取る。フィルター２０２１はＸＰＳドキュメント２０４１を必要に応じて編集して出力する。出力インタフェース２０２５もストリーム形式なので、出力されるデータはＸＰＳドキュメント２０４１に対して編集処理を行ったＸＰＳドキュメント２０５１となることが一般的である。また、ストリーム形式のインタフェースはＸＰＳドキュメント以外のデータも扱えるので、ＸＰＳドキュメント２０４１を加工して得られるデータ、例えばプリンタが解釈可能な印刷コマンドなどに変換されて送信されることも考えられる。
【００３６】
ＸＰＳドキュメントをプレビュー用ドキュメントとして扱う場合、ＸＰＳフォーマットのデータが必要となるため、プレビューフィルターでは入力インタフェースとしてストリーム形式を利用することが望ましい。しかし、ＸＰＳドキュメントは図１のような構造化文書を圧縮したデータであるため、ＸＰＳパートを取得するには解析処理が必要となる。それに対してリーチ形式のインタフェースでは、ＸＰＳパートとして分解されたデータを受信するため、ＸＰＳパートの編集が必要なレイアウト処理などを容易に行うことができる。また、出力インタフェースもリーチ形式の場合、編集したＸＰＳパートをそのまま次のフィルターに送信すればよい。
【００３７】
上述したように、入力インタフェースにリーチ形式を用いることにより、レイアウト処理などを容易に行うことができるため、図６（ａ）のようにレイアウトフィルターとしてリーチ形式を採用することが考えられる。その場合、前段のレイアウトフィルターからプレビューフィルターへのデータの受け渡しの際に、リーチ形式からストリーム形式への変換処理が行われるため、ドライバとしてのパフォーマンスが低下する。仮に後段の印刷コマンドフィルターもリーチ形式を採用している場合、ストリーム形式からリーチ形式に変換処理が行われるため、パフォーマンスはさらに低下する。
【００３８】
ドライバにおいて使用されるフィルターの種類や並びなどは基本的には変更することができないため、プレビューを行わない場合でもプレビューフィルターを通過する必要があり、不要な変換処理が行われることになる。そこで図６（ｂ）に示すように、リーチ形式のプレビューフィルターを用いて、プレビューを行う場合のみリーチ形式からＳストリーム形式への変換を行う印刷制御システムに関して提案する。
【００３９】
＜プレビュー機能の概要＞
図７を用いて本手法におけるプレビュー機能の概要について説明する。まず、プレビューフィルター７０３はレイアウトフィルター７０１から印刷データを受け取る。プレビューフィルターの入力インタフェースはリーチ形式なのでＸＰＳパート毎に送られてくる。まずＦＤＳ７１１とＦＤ７１３を受け取り、プレビューフィルター７０３で保持する。これはプレビュー後に印刷続行する際に次のフィルターへ送るためであるが、ＦＤＳ７１１に関しては受け取り次第、次のフィルターに送ってしまうことも可能である。
【００４０】
次にＦＰ７１５を受け取ると、ＦＰ７１５とそれに付随するイメージやフォントなどのリソースを外部ファイルとして保存する。このＸＰＳパートはプレビュー用ＸＰＳドキュメントの作成に使用される。
【００４１】
プレビューフィルター７０３は全てのＦＰを受け取るとプレビューア７３１を起動する。起動したプレビューア７３１は、まずプレビュー用ＸＰＳドキュメントの作成を行う。ＸＰＳドキュメント７４１のベースを作成し、そこにＦＤＳ７４３、ＦＤ７４５を作成する。そして作成したＦＤ７４５に外部ファイルとして保存したＦＰ７２３とそれに付随するリソース７２５を追加し、プレビュー用ＸＰＳドキュメント７４１が作成される。作成されたプレビュー用ＸＰＳドキュメント７４１はプレビューア７３１によって表示され、プレビューが行われる。本実施例ではプレビュー用ＸＰＳドキュメント作成と表示をプレビューア７３１で行っているが、それぞれ別のアプリケーションを用意して行うことも考えられる。
【００４２】
ユーザはプレビューア７３１によって表示されたプレビュー画面を確認し、印刷開始、もしくは印刷中止の命令を行う。プレビューア７３１はユーザの操作を受けて、プレビューフィルター７０３にユーザ操作に関する通知を行う。プレビューフィルター７０３は印刷開始の通知を受けると、保持していたＸＰＳパートを適切な順番で次の印刷コマンドフィルター７０５に送信する。また、印刷中止の通知を受けると各フィルターに処理終了を通知して、印刷処理を終了する。
【００４３】
＜プレビューフィルター処理＞
図８を用いてプレビューフィルターの処理について説明する。図８はプレビューフィルターの処理を示すフローチャートの一例である。本提案におけるプレビューフィルターは入力インタフェースとしてリーチ形式を使用しているので、ＸＰＳデータはＸＰＳパート毎に取得される。
【００４４】
まずプレビューフィルターはＳ１０１でＦＤＳを取得する。ＦＤＳはプレビュー用ＸＰＳドキュメント生成の際にはプレビューアにおいて生成されるため、外部ファイルとして出力しないが、プレビュー終了後に次のフィルターへ送信するデータとなるため、プレビューフィルターにおいて保持される。次にプレビューフィルターはＳ１０３で参照用ＰＴを取得する。参照用ＰＴ取得処理については図９を用いて後述する。続いてプレビューフィルターはＳ１０５で参照用ＰＴの印刷設定情報のプレビュー設定がＯＮ（オン）かどうかを判定し、ＯＮであればＳ１０７に移り、ＯＦＦであればＳ１２１に移る。
【００４５】
Ｓ１０７からＳ１１９はプレビュー設定がＯＮの場合の処理である。まずプレビューフィルターはＳ１０７でＦＤを取得する。取得したＦＤはＦＤＳと同様にプレビュー用のＸＰＳドキュメントを作成する際に使用されないので、プレビューフィルターにおいて保持しておき、プレビュー終了後に印刷を続行する際に次のフィルターに送信される。続いてプレビューフィルターはＳ１０９においてプレビュー用ＸＰＳドキュメント作成に用いるＦＰとそれに付随するリソースを取得し、プレビューアに受け渡すために外部ファイルとして保存する。ＦＰおよびリソースの取得処理に関しては図１０を用いて後述する。ＦＰはＦＤと同様、プレビュー終了後に次のフィルターに送る必要があるため、外部ファイルとは別にプレビューフィルターによって保持される。全てのＦＰの取得が終了すると、Ｓ１１１に移りプレビューアを起動する。プレビューアの処理については図１１を用いて後述する。
【００４６】
プレビューフィルターはＳ１１３においてプレビューアの終了を監視し、プレビューアが終了するとＳ１１５に移る。プレビューフィルターはＳ１１５において、ユーザがプレビューアで印刷開始を指示したのか、印刷中止を指示したのかを判定し、印刷開始が選択された場合はＳ１１９に移り、印刷中止が選択された場合はＳ１１７に移る。
【００４７】
Ｓ１１９ではプレビューフィルターは保持しているＸＰＳパートを次のフィルター、本実施形態では印刷コマンド生成フィルターに送信する。Ｓ１１７ではフィルターパイプラインの各フィルターに処理終了を通知して、印刷処理を終了する。
【００４８】
Ｓ１２１からＳ１２３はプレビュー設定がＯＦＦの場合の処理である。Ｓ１２１ではプレビューフィルターは既に取得しているＦＤＳを次のフィルターへ送信する。続いてプレビューフィルターはＳ１２３において残りのＸＰＳパートを順次取得していき、取得した順に次のフィルターへ送信していき、全てのパーツの送信が終了するとフィルターの処理を終了する。
【００４９】
＜参照用ＰｒｉｎｔＴｉｃｋｅｔ取得処理＞
フィルターパイプラインの各フィルターにおいて、印刷設定情報を取得するには前述したようにＸＰＳのＰＴをマージする必要がある。ＸＰＳ文書の各パートはＰＴを持つことが可能だが、逆に持たないことも可能である。また、たとえＸＰＳパートがＰＴを持っていたとしても、Ｎ−ｕｐの情報しか記載されていないなど、不完全なＰＴである可能性がある。従ってＦＤＳのＰＴを取得する際もユーザのデフォルト印刷設定のＰＴとのマージ処理が必要である。ここでデフォルト印刷設定のＰＴには、プリンタドライバで扱える全ての設定項目が格納されている。従ってマージ後のＰＴも全ての印刷設定項目を含む。
【００５０】
図９はＦＤＳのＰＴとユーザのデフォルト印刷設定のＰＴをマージし参照用ＰＴを取得する処理のフローチャートの一例である。まずＳ２０１でプレビューフィルターはユーザのデフォルト印刷設定を格納したデフォルトＰＴを取得する。続いてＳ２０３でプレビューフィルターはＦＤＳのＰＴを取得する。Ｓ２０５ではプレビューフィルターはＦＤＳのＰＴが取得できたかどうかを判定し、取得できていればＳ２０９に移り、取得できなければＳ２０７に移る。Ｓ２０９ではプレビューフィルターは取得したＦＤＳのＰＴとデフォルトＰＴをマージしたＰＴを参照用ＰＴとし終了する。Ｓ２０７ではプレビューフィルターはＦＤＳにＰＴが存在しなかったため、デフォルトＰＴを参照用ＰＴとし終了する。
【００５１】
ここで、全ての印刷設定項目とは、少なくともアプリケーションが設定可能な全ての設定項目のことを指しており、プレビュー済フラグのようなプリンタドライバ内部の設定項目はこれに含まれないものとする。
【００５２】
このようにプリンタドライバが扱える全ての設定項目を含む参照用ＰＴを取得することができる。
【００５３】
＜ＦＰおよびリソースの取得処理＞
リーチ形式のデータからプレビュー用ＸＰＳデータを生成するには、生成を行うプレビューアに必要なパーツを渡す必要がある。そのための方法の一つとして、必要なＸＰＳパートを外部ファイルとして一時的に保存しする方法が考えられる。図１０はプレビューフィルターにおいてＦＰとイメージやフォントなどのリソースを取得し、保存する処理の一例である。
【００５４】
まず、プレビューフィルターはＳ３０１においてＦＰを取得する。ＦＰを取得することができたら、Ｓ３０５でプレビューフィルターは取得したＦＰを外部ファイルとして保存して、Ｓ３０７に移る。Ｓ３０７ではプレビューフィルターはＳ３０１で取得したＦＰで使用されているリソースを取得する。ここで、使用されているリソースが存在しない場合はＳ３０１に移り、再度ＦＰの取得を行う。リソースが存在する場合はＳ３１１に移り、プレビューフィルターは取得したリソースの種類を判定する。判定の結果、プレビュー用ＸＰＳドキュメントの作成に必要なリソースである場合はＳ３１３に移り、表示結果に直接関係のないリソースである場合はＳ３０５に移り別のリソースの取得を行う。本実施形態では外部ファイルとして保存するリソースとして、イメージ、フォント、カラープロファイル、リソースディクショナリーなどを想定しているが、プレビューアの実現する機能によって必要とされるリソースは変化するので、これに限定されるものではない。Ｓ３１３ではプレビューフィルターは取得したリソースを外部ファイルとして保存する。その後、Ｓ３１５においてプレビューフィルターはプレビューアにリソース情報を渡すために、ＦＰとリソースの関係などを記載したリストファイルを作成し、リソースに関する情報を記載していく。他にもリストファイルに記載する情報には画像の種類（ＪＰＥＧ、ＰＮＧ、ＴＩＦＦなど）やフォントの種類などが挙げられる。また、前記リストファイルはプレビューアに情報を伝えるための一手段であり、その他に外部ファイルの名称を規則に基づき設定するなどが考えられ、その方法を限定するものではない。
【００５５】
一つのＦＰに対して全てのリソースの取得が終わると、次のＦＰの取得を行い、またそのＦＰに付随するリソースの取得を行う。この動作はＸＰＳデータの保持する全てのＦＰを取得するまで続けられる。
【００５６】
＜プレビューア処理＞
前述したようにプレビューフィルターはプレビューアを呼び出し、プレビューアがプレビュー用ＸＰＳドキュメントを表示することでプレビュー行う。図１１はプレビューアの動作の一例である。
【００５７】
まず、プレビューアはＳ４０１のおいてプレビュー用ＸＰＳドキュメントの作成を行う。プレビュー用ＸＰＳドキュメントの作成処理については図１２を用いて後述する。プレビュー用ＸＰＳドキュメントの作成が成功するとＳ４０３に移る。Ｓ４０３ではプレビューアは作成したプレビュー用ＸＰＳドキュメントを表示する。これによりユーザは自身の設定した印刷設定に基づく印刷結果のイメージを確認することができる。
【００５８】
Ｓ４０５からＳ４０７はユーザからの印刷続行／中止の指示を監視する処理である。Ｓ４０５においてプレビューアは、ユーザがプレビューアの印刷開始ボタンを押すなど印刷開始命令を行ったことを検知すると、プレビューフィルターに印刷続行を通知し、自身を終了する。また、Ｓ４０７においてプレビューアは、ユーザがプレビューアの印刷中止ボタンを押すなど、印刷中止命令を行ったことを検知すると、プレビューフィルターに印刷中止を通知し、自身を終了する。プレビュー画面の表示はユーザからの印刷開始、もしくは印刷中止の命令があるまで行われ、その間に印刷設定の変更などを行うことも考えられる。なお、プレビューフィルターが次のフィルターに送信するＸＰＳパートはプレビューフィルターにおいて保持されているデータを使用するため、プレビュー用ＸＰＳドキュメントは印刷データとしては使用されず破棄される。
【００５９】
また、本実施例ではプレビューアにおいてプレビュー用ＸＰＳドキュメントの作成を行っているが、プレビューフィルターにおいて作成する方法も考えられる。
【００６０】
＜プレビュー用ＸＰＳドキュメント生成処理＞
図１２はプレビュー用ＸＰＳドキュメント生成処理の一例である。まずプレビューアはＳ５０１において空のＸＰＳドキュメントを作成し、Ｓ５０３に移る。Ｓ５０３ではプレビューアはＳ５０１で作成したＸＰＳドキュメントにＦＤＳを作成する。次にプレビューアはＳ５０５で、Ｓ５０３で作成したＦＤＳにＦＤを追加する。このＦＤＳとＦＤは本実施形態ではプレビューフィルターにおいて保存していないため、プレビューアで生成する必要があるが、プレビューフィルターにおいて他のパーツ同様に保存しておき、追加することも考えられる。また本実施形態では印刷データであるＸＰＳドキュメントにＦＤが複数存在する場合でも、プレビュー用ＸＰＳドキュメントにはＦＤを１つだけ作成し、１つ以上任意数存在するＦＰは全て１つのＦＤに従属させる形態をとっている。これは印刷プレビューにおいて印刷結果を確認する上で表示に影響しない範囲で最小限の構成でプレビュー用ＸＰＳドキュメントを生成するためである。ただし、表示内容にＦＤが影響するような表示形態を用いた際にはＦＤも元データと同じ構成にする必要があるなど、実現したいプレビューアの機能に基づき必要な構成は変化することは言うまでもない。
【００６１】
Ｓ５０７からＳ５１３はＦＰの追加処理である。まずプレビューアはＳ５０７において、プレビューフィルターによって外部ファイルとして保存されたＦＰの中に、プレビュー用ＸＰＳドキュメントに追加していないＦＰが存在するかを判定する。そして、存在する場合はＳ５０９に移り、全てのＦＰの登録が終了している場合はプレビュー用ＸＰＳドキュメントの作成処理を終了する。ＸＰＳドキュメント中にＦＰは一つ以上存在するため、初回の判定では必ずＳ５０９に移る。Ｓ５０９ではプレビューアは空のＦＰを作成する。Ｓ５１１からＦ５１３ではこの作成したＦＰに対してリソースの登録と内容の記述を行う。
【００６２】
まずＳ５１１ではプレビューアは作成したＸＰＳドキュメントにリソースの登録を行う。ＦＰへのリソース登録処理について図１３を用いて説明する。まずプレビューアはＳ６０１において現在のＦＰに登録するかの判定が行われていないリソースが存在するかを判定し、存在する場合はＳ６０３へ移り、存在しない場合はリソースの登録処理を終了する。次にＳ６０３でプレビューアは未登録のリソースが現在処理を行っているＦＰで使用されているものであるかを判定し、該当する場合はＳ６０５へ移り、該当しない場合はＳ６０１に戻る。この判定はＳ３１１で作成されたリソース情報のリストを参照することで行う方法が考えられるが、それに限定するものではない。Ｓ６０５ではプレビューアは現在処理を行っているＦＰに対して該当するリソースを登録する。登録が終了するとＳ６０１に戻り、全てのリソースが登録されるまで繰り返し、現在処理中のＦＰへのリソース登録処理終了する。
【００６３】
リソースの登録が終了するとＳ５１３に移り、ＦＰの内容を記述する。これはプレビューフィルターで外部ファイルとして保存したＦＰの内容に基づいて記述していくが、リソースファイルパスや表示領域など、プレビュー用ＸＰＳとして作成する上で書き換えが必要な部分に関しては適宜修正を行った上で登録を行う。
【００６４】
一つのＦＰの登録が終了するとＳ５０７に戻り、未登録のＦＰが存在するかを判定し、全てのＦＰが登録されるまでＳ５０７からＳ５１３の処理を繰り返す。Ｓ５０７において全てのＦＰの登録が終了したと判定されると、プレビュー用ＸＰＳドキュメントの作成処理を終了し、Ｓ４０３においてプレビューアは作成したＸＰＳドキュメントを表示する。
【００６５】
＜プレビュー用ＸＰＳドキュメント＞
図１４は印刷データから作成されるプレビュー用ＸＰＳドキュメントの一例である。１４０１は印刷データであるＸＰＳドキュメントである。１つのＦＤＳ１４０３の下に２つのＦＤ１４０５と１４０７が存在する。ＦＤ１４０５にはＦＰ１４０９、ＦＤ１４０７にはＦＰ１４１１とＦＰ１４１３が存在し、ＦＰ１４０９はＩｍａｇｅ１４１５を、ＦＰ１４１３はＩｍａｇｅ１４１７とＦｏｎｔ１４１９をリソースとして使用している。また、印刷設定を記述したＰＴがそれぞれＦＤＳ１４０３（ＰＴ１４２１）、ＦＤ１４０５（ＰＴ１４２３）、ＦＰ１４１１（ＰＴ１４２５）に付加されている。
【００６６】
プレビューフィルターによって、これらのＸＰＳパートの中からプレビュー用ＸＰＳドキュメントの作成に必要なパーツを出力する。ここでは各ページの表示内容が記述されたＦＰとＦＰで使用されているリソース（サムネイルなどの表示に影響しないものを除く）を出力している。具体的にはＦＰ１４０９、１４１１、１４１３と、リソースであるＩｍａｇｅ１４１５、１４１７とＦｏｎｔ１４１９が外部ファイルとしての出力対象となる。
【００６７】
この出力したＸＰＳパートを元にプレビュー用ＸＰＳドキュメント１４３１を作成する。まずＦＤＳ１４３３を作成し、それに付随するようにＦＤ１４３５を作成する。さらにＦＤ１４３５の下にＦＰ１４０９から１４１３を追加し、それぞれのＦＰが使用しているリソースを適切に配置する。各ＦＰは印刷設定などの条件によって内容を書き換えた上で登録することも考えられる。これによってプレビュー用ＸＰＳドキュメント１４３１が作成される。
【００６８】
本実施形態ではプレビュー用ＸＰＳドキュメントのＦＤを１つとしているが、プレビューをＦＤ単位で表示したい場合など、表示形式や目的に応じて元データと同じようにＦＤを配置することも考えられる。また、本実施形態ではＰＴやサムネイルなどを排したプレビュー用ＸＰＳドキュメントを作成しているが、プレビューアの表示形態に応じて必要となるＸＰＳパートは異なってくるため、プレビュー用ＸＰＳドキュメントの形態はこれに限定されるものではない。
【００６９】
＜実施形態２＞
実施形態１ではドライバのフィルター構成が変更できない状況を想定している。実際に現在のＯＳではフィルター構成はコンフィグファイルと呼ばれるＸＭＬファイルによって決定されており、これを修正しなければフィルター構成を変更することはできない。フィルターパイプラインはこのコンフィグファイルを参照してフィルターを呼び出しているので、印刷が開始してからドライバにおいてフィルター構成を変更することはできない。従って、プレビュー設定のＯＮ／ＯＦＦでプレビューフィルターの有無を決定することはできない仕様になっている。
【００７０】
しかし今後、印刷設定に応じてフィルター構成を変更可能な印刷システムが登場した場合には、実施形態２のシステムの構築が可能となる。印刷設定によってフィルター構成を変更する印刷制御装置の一例を図１５に示す。
【００７１】
印刷処理が開始されると、まずＳ７０１でレイアウトフィルターがレイアウト処理を行う。同時にレイアウトフィルターではＳ７０３において現在の印刷システムがフィルター構成を変更可能かどうか判定する。この判定基準としてはＯＳや印刷システムに使用されているモジュールのバージョン情報などが考えられる。フィルター構成を変更可能な印刷システムの場合はＳ７０５に、変更できない印刷システムの場合はＳ７０７に移る。
【００７２】
Ｓ７０５ではレイアウトフィルターはプレビュー設定のＯＮ／ＯＦＦを判定する。プレビュー設定がＯＮの場合はＳ７０７に移り、ＯＦＦの場合はＳ７０９に移る。
【００７３】
Ｓ７０７ではプレビューフィルターが処理を行う。本実施例においてＳ７０７の処理を行うプレビューフィルターは実施形態１のプレビューフィルターを想定しているが、実施形態１の入力インタフェースとしてリーチ形式を用いたフィルターに限らず、ストリーム形式を用いたフィルターを用いることも考えられる。
【００７４】
Ｓ７０９ではプレビューフィルターがフィルター構成から削除される。これによって、プレビューを行う場合のみプレビューフィルターを通過し、プレビューを行わない場合には、レイアウトフィルターから印刷コマンドフィルターに直接データが送られる構成となる。
【００７５】
Ｓ７１１では印刷コマンドフィルターが印刷データをプリンタの解釈可能な印刷コマンドに変換し、プリンタに送信し、ドライバ処理は終了する。
【００７６】
上記処理によって、フィルター構成が変更可能な印刷システムでは、プレビュー設定がＯＮの場合のみプレビューフィルターによる処理を行うことが可能となる。
【００７７】
＜実施形態３＞
印刷プレビューにおいて、プレビューアは印刷設定を変更する機能を有することも考えられる。実施形態３では、実施形態１のプレビュー機能において、プレビュー画面で変更した印刷設定を印刷結果に反映する方法について説明する。
【００７８】
実施形態３におけるプレビューフィルターの処理について図１６を用いて説明する。基本動作については実施形態１で説明したプレビューフィルターの動作と同じであるが、印刷設定を記述したＰＴを外部ファイルとして保存する処理が追加されている。Ｓ８０１からＳ８０３において、プレビューフィルターはＦＤＳの取得と参照用ＰＴの取得を行う。Ｓ８０５でプレビューフィルターは取得した参照用ＰＴを外部ファイルとして保存する。同様にプレビューフィルターはＳ８０９でＦＤを取得し、Ｓ８１１でＦＤのＰＴを取得する。ＦＤにはＰＴが付加されていないこともあるため、取得ができた場合はＦＤのＰＴを外部ファイルとして保存し、取得できなかった場合はＳ８１７に移り、ＦＰの取得を行う。
【００７９】
ＦＰとリソースの取得処理について図１７を用いて説明する。基本動作は実施形態１のＦＰおよびリソースの取得処理と同じであるが、Ｓ９０７からＳ９１１においてＦＰのＰＴ取得処理が追加されている。プレビューフィルターはＳ９０７でＦＰのＰＴの取得を行い、取得ができた場合にはＳ９１１でＦＰのＰＴを外部ファイルとして保存する。これによりＦＰとＰＴとリソースが外部ファイルとして保存されることになる。
【００８０】
ＦＰとリソースの取得が全て終了すると、プレビューフィルターはＳ８１９でプレビューアを起動する。実施形態３におけるプレビューアの処理について図１８を用いて説明する。まず、実施形態１と同様にプレビューアはＳ１００１でプレビュー用ＸＰＳドキュメントを作成し、Ｓ１００３で作成したＸＰＳドキュメントを表示する。ユーザは表示を確認した上で、プレビューアにおいて印刷設定の変更を行うことができる。印刷設定の変更とは用紙や給紙位置の変更、レイアウトの変更などが考えられる。印刷設定の変更にはＦＰとＰＴ（もしくはそのどちらか一方）の更新が必要になる。そこでプレビューアはＳ１００５でユーザが印刷設定を変更したと判断すると、Ｓ１００７で外部ファイルのＦＰとＰＴを新しい印刷設定に従って更新する。元データにＰＴが付加されておらず、外部ファイルとして保存されていない場合は、ＦＤのＰＴを作成し、変更内容を反映させる。また、表示内容に影響のある設定を変更する場合は、更新した外部ファイルを用いてプレビュー用ＸＰＳドキュメントを再構築し、表示することでユーザは印刷結果の変化を確認しながら印刷設定の変更を行うことができる。また、変更結果を確認した後に元の設定の戻したいという要求が発生することが考えられるため、更新した外部ファイルとは別に、元データと各設定変更時に作成したデータなどを保存しておく。これにより再び変換処理を行う必要がなくなる。また、併せて各段階で作成したプレビュー用ドキュメントも保持しておくと、設定を戻した際の表示の更新を容易に行うことができる。
【００８１】
ユーザは希望の印刷設定を選択すると、印刷開始、もしくは印刷中止の命令を行う。印刷開始が指示されるとプレビューアはＳ１０１５において印刷開始をプレビューフィルターに通知する。同様に印刷中止を指示した際は、プレビューアはＳ１０１３において印刷中止をプレビューフィルターに通知するが、印刷中止時の処理は実施形態１と同様のため、以下印刷開始が通知された場合の説明を行う。
【００８２】
プレビューフィルターはＳ８２１においてプレビューアの終了を検知すると、プレビューアからの通知に従って処理を行う。ここで印刷開始が通知された場合、プレビューフィルターはＳ８２５に移り、プレビューアが更新した外部ファイルをＸＰＳパートとして次のフィルターへ送信する。ＸＰＳパート送信処理について図１９を用いて説明する。まず、プレビューフィルターはＳ１１０１で参照用ＰＴがプレビューアによって更新されているかを判定し、更新されている場合はＳ１１０３に移り、更新されていない場合はＳ１１０５に移る。Ｓ１１０３ではプレビューフィルターは更新された参照用ＰＴをＦＤＳのＰＴとして登録し、Ｓ１１０５に移る。Ｓ１１０５ではプレビューフィルターは取得時に保持していたＦＤＳを次のフィルターに送信する。
【００８３】
ＦＤに関しても同様に、プレビューフィルターはＳ１１０７でＦＤのＰＴが更新されているかを判定し、更新されている場合は、更新されたＦＤのＰＴを付加し、ＦＤ取得時に保持していたＦＤを次のフィルターに送信する。
【００８４】
次にＦＰの送信を行うが、ＦＰはプレビューフィルターで保持するデータではなく、外部ファイルとして保存されているデータを使用することで、プレビューアが更新したＦＰの内容を印刷結果に反映することができる。まず、ＦＤＳ、ＦＤの時と同様、プレビューフィルターはＳ１１１３でＦＰのＰＴが更新されているか判定する。更新されている場合、プレビューフィルターはＳ１１１５で更新されたＦＰのＰＴを登録する。そしてＳ１１１７でプレビューフィルターは外部ファイルとして保存されているＦＰを読み出し、次のフィルターへ送信する。全てのＸＰＳパートの送信が終了すると、プレビューフィルターの処理は終了する。本実施例ではＦＤ、ＦＰ共に１回の送信しか記述していない。しかしながら、共に１つのＸＰＳデータ中に複数存在することが可能なパートなので、Ｓ１１０７からＳ１１１１のＦＤの送信処理と、Ｓ１１１３からＳ１１１７のＦＰの送信処理はＦＤ、ＦＰがそれぞれ存在する数だけ実行される。
【００８５】
本実施例では全てのＰＴを外部ファイルとして保存するように記述しているが、プレビューアで実行可能な設定変更の種類によって、内容を反映する必要のあるＰＴが異なるため、プレビューアの機能に応じて必要なＰＴのみを抽出すればよい。また、外部ファイルとして保存しなくても、変更内容だけをプレビューアからプレビューフィルターに通知することで、プレビューフィルターにおいてＰＴの更新を行い、登録する方法も考えられる。
【００８６】
上記処理によってプレビューアで行った印刷設定を反映した印刷を行うことが可能となる。また、本実施形態ではプレビューアによってＸＰＳデータの編集を行っているが、表示機能を持たないＸＰＳドキュメントの編集を行うアプリケーションを用いて編集を行うことも考えられる。その場合も本実施形態と同様に編集アプリケーションによる編集内容を印刷結果に反映させることが可能である。
【００８７】
＜その他の実施形態＞
実施形態１から３ではプレビューフィルターとプレビューアは別モジュールとして扱われている。しかし、必ずしも別モジュールとして扱う必要はなく、プレビューフィルターがフィルター間のデータの受け渡しに加え、プレビュー用ＸＰＳドキュメントの生成と表示を担うことも考えられる。この場合、ＦＰやリソースをプレビューアに渡す必要がなくなる。プレビューフィルターによってプレビュー機能に関する全処理を行う場合のプレビューフィルターの処理について図２１を用いて説明する。まず、プレビューフィルターはＳ１２０１で前のフィルターからＦＤＳを取得し、Ｓ１２０３で取得したＦＤＳから参照用のＰＴを取得する。次にプレビューフィルターはＳ１２０５で取得した参照用ＰＴからプレビュー設定を判定し、プレビュー設定がＯＮの場合はＳ１２０７に移り、ＯＦＦの場合はＳ１２３１に移る。
【００８８】
Ｓ１２０７からＳ１２２１はプレビュー設定がＯＮの場合の処理である。プレビューフィルターはＳ１２０７でＦＤを、Ｓ１２０９でＦＰを取得する。そして、プレビューフィルターはＳ１２１１でＳ１２０９までに取得したＸＰＳパートを用いてプレビュー用ＸＰＳドキュメントの生成を行う。プレビュー用ＸＰＳドキュメントの生成には前述したプレビューアにおけるプレビュー用ＸＰＳドキュメント生成処理を用いる方法などが考えられる。次にプレビューフィルターはＳ１２１３においてＳ１２１１で生成したプレビュー用ＸＰＳドキュメントを表示する。ユーザは表示された内容を確認し、印刷開始か印刷中止を支持する。プレビューフィルターはＳ１２１５からＳ１２１７においてユーザからの指示を監視し、ユーザが印刷開始を指示した場合はＳ１２２１に移り、印刷中止を指示した場合には１２１９に移る。Ｓ１２２１ではプレビューフィルターは、取得しているＸＰＳパートを順次、次のフィルターに送信して自身の処理を終了する。Ｓ１２１９ではプレビューフィルターは、各フィルターに終了通知を出し、ドライバの処理を終了する。
【００８９】
Ｓ１２３１からＳ１２３３はプレビュー設定がＯＦＦの場合の処理であり、プレビューフィルターは残りのＸＰＳパートを順次取得、送信して、全てのＸＰＳパートの送信が終わると自身の処理を終了する。
【００９０】
前記実施形態ではプレビューアを用いずに本提案のプレビュー機能を実現することが可能である。また、前記のようにプレビューに関わる全ての処理をプレビューフィルターに行わせるのではなく、プレビュー用ＸＰＳドキュメントの生成までをプレビューフィルターで行い、表示をプレビューアで行うなども考えられる。この場合、プレビューフィルターからプレビューアへは生成されたプレビュー用ＸＰＳドキュメントが渡される。このように各モジュールの担う処理の範囲は限定されるものではない。
【００９１】
また、本実施の形態では、ストリーム形式のデータを取り扱うフィルターとして、プレビューを例に説明したが、プレビューフィルター以外のストリーム形式のデータを取り扱うフィルターにも適用できる。
【００９２】
以上説明したように本実施形態によれば、リーチ形式のインタフェースを用いたプレビュー用のフィルターを設けることによって生じるフィルター間のデータ変換処理の負荷を軽減し、プレビューＯＦＦ時のパフォーマンスの低下を抑制することが可能となる。
【図面の簡単な説明】
【００９３】
【図１】ＸＰＳの論理構造の概念図
【図２】本発明の実施形態に係わる印刷システムの一例を示すブロック図
【図３】本発明の実施形態に係わるプリンタドライバ一例を示すブロック図
【図４】本発明の実施形態に係わる印刷設定ダイアログの一例を示す図
【図５】本発明の実施形態に係わるプレビューウィンドウの一例を示す図
【図６】本発明の実施形態に係わるフィルターと入出力インタフェースの関係を示す図
【図７】本発明の実施形態に係わるプレビュー処理の概念図
【図８】本発明の実施形態に係わるプレビューフィルターの処理を示すフローチャート
【図９】本発明の実施形態に係わる参照用ＰｒｉｎｔＴｉｃｋｅｔを取得する処理のフローチャート
【図１０】本発明の実施形態に係わるＸＰＳパートの取得処理を示すフローチャート
【図１１】本発明の実施形態に係わるプレビューアの処理を示すフローチャート
【図１２】本発明の実施形態に係わるプレビュー用ＸＰＳドキュメント作成処理を示すフローチャート
【図１３】本発明の実施形態に係わるＦＰへのリソース登録処理を示すフローチャート
【図１４】本発明の実施形態に係わる印刷データとプレビュー用ＸＰＳドキュメントの関係を示す図
【図１５】本発明の実施形態２に係わる印刷処理を示すフローチャート
【図１６】本発明の実施形態３に係わるプレビューフィルターの処理を示すフローチャート
【図１７】本発明の実施形態３に係わるＸＰＳパートの取得処理を示すフローチャート
【図１８】本発明の実施形態３に係わるプレビューアの処理を示すフローチャート
【図１９】本発明の実施形態３に係わるＸＰＳパート送信処理を示すフローチャート
【図２０】フィルターにおけるインタフェースの動作の一例を示す図
【図２１】プレビューア機能を備えたプレビューフィルターの処理を示すフローチャート
【図１】
0005408904.tif 000002
【図２】
0005408904.tif 000003
【図３】
0005408904.tif 000004
【図４】
0005408904.tif 000005
【図５】
0005408904.tif 000006
【図６】
0005408904.tif 000007
【図７】
0005408904.tif 000008
【図８】
0005408904.tif 000009
【図９】
0005408904.tif 000010
【図１０】
0005408904.tif 000011
【図１１】
0005408904.tif 000012
【図１２】
0005408904.tif 000013
【図１３】
0005408904.tif 000014
【図１４】
0005408904.tif 000015
【図１５】
0005408904.tif 000016
【図１６】
0005408904.tif 000017
【図１７】
0005408904.tif 000018
【図１８】
0005408904.tif 000019
【図１９】
0005408904.tif 000020
【図２０】
0005408904.tif 000021
【図２１】
0005408904.tif 000022