(57)【特許請求の範囲】
【請求項１】
全パートの印刷データから生成された本表示用ドキュメントを表示する情報処理装置において、
前記本表示用ドキュメントより先に表示される仮表示用ドキュメントを前記全パートに満たないパートの印刷データに基づいて生成する仮表示用ドキュメント生成手段と、
前記仮表示用ドキュメント生成手段によって生成された仮表示用ドキュメントを表示する表示手段と、
前記本表示用ドキュメントを生成するための全パートの印刷データを取得した場合、前記取得された全パートの印刷データに基づいて本表示用ドキュメントを生成する本表示用ドキュメント生成手段と、
前記本表示用ドキュメント生成手段によって前記本表示用ドキュメントが生成された場合、表示対象を前記仮表示用ドキュメントから前記本表示用ドキュメントに変更する変更手段を有することを特徴とする情報処理装置。
【請求項２】
前記印刷データに対して設定された印刷設定情報から前記仮表示用ドキュメントを生成するために必要なページ数を決定する決定手段を更に有し、
前記仮表示用ドキュメント生成手段は、前記決定手段によって決定されたページ数のパートの印刷データに基づいて前記決定手段によって決定されたページ数の仮表示用ドキュメントを生成することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記決定手段によって決定されたページ数のパートの印刷データを取得した場合、前記パートの印刷データの出力状況に応じて前記仮表示用ドキュメントを表示するか否かを判定する判定手段を更に備えることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記判定手段は、前記仮表示用ドキュメント生成手段が前記仮表示用ドキュメントを生成する前に前記全パートの印刷データを出力が終了している旨の情報を取得した場合に前記仮表示用ドキュメントを表示しないと判定することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記表示手段は、仮表示用ドキュメントの表示と併せて仮表示中である旨を示す情報を表示することを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記表示手段は、前記変更手段により表示対象が前記仮表示用ドキュメントから前記本表示用ドキュメントに変更される場合に仮表示中である旨を示す情報を削除することを特徴とする請求項５に記載の情報処理装置。
【請求項７】
全パートの印刷データから生成された本表示用ドキュメントを表示する情報処理装置において実行される制御方法であって、
前記本表示用ドキュメントより先に表示される仮表示用ドキュメントを前記全パートに満たないパートの印刷データに基づいて生成する仮表示用ドキュメント生成ステップと、前記仮表示用ドキュメント生成ステップによって生成された仮表示用ドキュメントを表示する表示ステップと、
前記本表示用ドキュメントを生成するための全パートの印刷データを取得した場合、前記取得された全パートの印刷データに基づいて本表示用ドキュメントを生成する本表示用ドキュメント生成ステップと、
前記本表示用ドキュメント生成ステップによって前記本表示用ドキュメントが生成された場合、表示対象を前記仮表示用ドキュメントから前記本表示用ドキュメントに変更する変更ステップを有することを特徴とする制御方法。
【請求項８】
全パートの印刷データから生成された本表示用ドキュメントを表示する情報処理装置において実行されるプログラムであって、
前記本表示用ドキュメントより先に表示される仮表示用ドキュメントを前記全パートに満たないパートの印刷データに基づいて生成する仮表示用ドキュメント生成手段と、
前記仮表示用ドキュメント生成手段によって生成された仮表示用ドキュメントを表示する表示手段と、
前記本表示用ドキュメントを生成するための全パートの印刷データを取得した場合、前記取得された全パートの印刷データに基づいて本表示用ドキュメントを生成する本表示用ドキュメント生成手段と、
前記本表示用ドキュメント生成手段によって前記本表示用ドキュメントが生成された場合、表示対象を前記仮表示用ドキュメントから前記本表示用ドキュメントに変更する変更手段としてコンピュータを機能させるためのプログラム。
【請求項９】
前記印刷データに対して設定された印刷設定情報から前記仮表示用ドキュメントを生成するために必要なページ数を決定する決定手段を更に有し、
前記仮表示用ドキュメント生成手段は、前記決定手段によって決定されたページ数のパートの印刷データに基づいて前記決定手段によって決定されたページ数の仮表示用ドキュメントを生成することを特徴とする請求項８に記載のプログラム。
【請求項１０】
前記決定手段によって決定されたページ数のパートの印刷データを取得した場合、前記パートの印刷データの出力状況に応じて前記仮表示用ドキュメントを表示するか否かを判定する判定手段を更に備えることを特徴とする請求項９に記載のプログラム。
【請求項１１】
前記判定手段は、前記仮表示用ドキュメント生成手段が前記仮表示用ドキュメントを生成する前に前記全パートの印刷データを出力が終了している旨の情報を取得した場合に前記仮表示用ドキュメントを表示しないと判定することを特徴とする請求項１０に記載のプログラム。
【請求項１２】
前記表示手段は、仮表示用ドキュメントの表示と併せて仮表示中である旨を示す情報を表示することを特徴とする請求項８乃至１１のいずれか１項に記載のプログラム。
【請求項１３】
前記表示手段は、前記変更手段により表示対象が前記仮表示用ドキュメントから前記本表示用ドキュメントに変更される場合に仮表示中である旨を示す情報を削除することを特徴とする請求項１２に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば印刷処理を行う前に、印刷イメージをユーザーが認識可能に表示する、いわゆるプレビュー機能等を有する印刷システムに関する。
【背景技術】
【０００２】
オペレーティングシステム（ＯＳ）としてＭｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）を搭載した計算機を用いた印刷システムにおいて、アプリケーションプログラム等で生成された印刷データは、ＯＳ標準のデータ形式でスプールファイルに格納される。ＯＳは印刷データを印刷するためにプリンタドライバを呼び出す。そしてプリンタドライバが、スプールファイルに格納された印刷データを読み取り、画像生成処理部により印刷イメージを作成し、さらにプリンタが解釈可能な印刷コマンドに変換する。印刷コマンドはプリンタに送信され、プリンタは印刷コマンドを解釈し、記録媒体に像を形成することで印刷処理が実行される。
この印刷システムにおいてプレビュー機能を提供するために、プリンタドライバは印刷処理を開始した時に、印刷イメージを表示するプレビューアを実行する。そして画像生成部はプレビュー用の印刷イメージを作成し、プレビューアは当該プレビュー用の印刷イメージを表示することが一般的であった。このプレビュー機能において、画像生成が完了したページから表示を行うことで、プレビュー表示の速度を向上する技術が存在する。（特許文献１）
また、近年ではスプールファイルに格納されるデータ形式として従来のＥＭＦ形式（Ｅｎｈａｎｃｅｄ    Ｍｅｔａ    Ｆｉｌｅ）ではなくＸＰＳ形式（ＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）が用いられる印刷システムが登場してきた。この印刷スシステムでは、プリンタドライバもＸＰＳドキュメントを扱うＸＰＳプリンタドライバが用いられる。ＸＰＳはＭｉｃｒｏｓｏｆｔ社が開発したオープン規格の電子文書フォーマットであり、オペレーティングシステム（ＯＳ）による表示手段が提供されている。従来の印刷プレビューは、印刷データをイメージに変換して表示を行っていた。しかし、ＸＰＳプリンタドライバのプレビューでは、ＯＳによる表示手段を利用することで、従来の印刷データをイメージに変換してプレビュー表示を行っていたものが、印刷データであるＸＰＳドキュメントをイメージに変換することなく表示することが可能となる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−１７７９０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＸＰＳプリンタドライバは、印刷データであるＸＰＳドキュメントをそのままプレビューに用いる場合、印刷用に処理している印刷データをプレビュー用に出力する。しかしながら、ＸＰＳプリンタドライバを構成するフィルター（説明は後述する）では、ＸＰＳドキュメントをパートに分解して受け取るインタフェースが存在する。そのインタフェースを使用した場合、扱われるデータはＸＰＳドキュメントを構成する個々のパートとなるためＸＰＳとしての形を成していないため、パートからプレビュー用のＸＰＳドキュメントを作成する必要がある。パートから印刷データに相当するプレビュー用ＸＰＳドキュメントを作成するには、ＸＰＳドキュメントを構成する全てのパートが必要となる。しかし、ページ数の多いドキュメントなどでは、フィルターが全てのパートを取得するのに時間がかかる。そのため、プレビュー用ドキュメント（本願では、本表示用ドキュメントともいう）を作成するまでに時間がかかり、プレビューアでプレビュー表示を行うまでに時間がかかってしまう。そこで、本発明は印刷データを構成するパートを扱うプリンタドライバにおいて、ユーザーがプレビュー表示を確認できるまでの時間を短縮する方法を提供することを目的とする。
【課題を解決するための手段】
【０００５】
上述のような課題を解決するための本発明の情報処理装置は、全パートの印刷データから生成された本表示用ドキュメントを表示する情報処理装置において、前記本表示用ドキュメントより先に表示される仮表示用ドキュメントを前記全パートに満たないパートの印刷データに基づいて生成する仮表示用ドキュメント生成手段と、前記仮表示用ドキュメント生成手段によって生成された仮表示用ドキュメントを表示する表示手段と、前記本表示用ドキュメントを生成するための全パートの印刷データを取得した場合、前記取得された全パートの印刷データに基づいて本表示用ドキュメントを生成する本表示用ドキュメント生成手段と、前記本表示用ドキュメント生成手段によって前記本表示用ドキュメントが生成された場合、表示対象を前記仮表示用ドキュメントから前記本表示用ドキュメントに変更する変更手段を有することを特徴とする。
【発明の効果】
【０００６】
本発明により、プレビュー機能の高機能化を図ることが可能となる。
【図面の簡単な説明】
【０００７】
【図１】ＸＰＳの論理構造の概念図
【図２】本発明の実施形態に係わるプリンタドライバの一例を示すブロック図
【図３】ＸＰＳドライバのフィルターで利用可能なインタフェースを示す図
【図４】本発明の実施形態に係わるプレビュー用ドキュメント生成手段を示す図
【図５】本発明の実施形態に係わるプレビューウィンドウの一例を示す図
【図６】本発明の実施形態に係わるプレビューフィルター処理の一例を示す図
【図７】本発明の実施形態に係わるプレビュー制御モジュール処理の一例を示す図
【図８】本発明の実施形態に関わるホストコンピュータとプリンタのハードウェア構成図
【発明を実施するための形態】
【０００８】
以下、添付図面を参照して本発明の好適な実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【０００９】
＜実施形態１＞
＜ハードウェア構成図＞
まず、本願の処理を実行する情報処理装置のハードウェア構成図について図８を用いて説明する。
【００１０】
図８において、３０００はホストコンピュータであり、ＣＰＵ１を備える。ＣＰＵ１は、ＲＯＭ３のプログラム用ＲＯＭ３ｂあるいは外部メモリ１１に記憶された文書処理プログラム（アプリケーションプログラム）等のプログラムに基づいて、図形、イメージ、文字、表（表計算等を含む）等の構成要素が混在した文書処理を実行する。更に、ＣＰＵ１は、ホストコンピュータ本体２０００内のシステムバス４に接続される各デバイスを総括的に制御する。
【００１１】
また、このＲＯＭ３のプログラム用ＲＯＭ３ｂあるいは外部メモリ１１には、ＣＰＵ１の制御プログラムであるオペレーティングシステムプログラム（以下、ＯＳ）等のプログラムも記憶している。また、ＲＯＭ３のフォント用ＲＯＭ３ａあるいは外部メモリ１１には、上記文書処理の際に使用するフォントデータ等のデータを記憶している。また、ＲＯＭ３のデータ用ＲＯＭ３ｃあるいは外部メモリ１１には、上記文書処理等の各種処理を行う際に使用する各種データを記憶する。
【００１２】
２はＲＡＭであり、ＣＰＵ１の主メモリ、ワークエリア等として機能する。５はキーボードコントローラ（ＫＢＣ）であり、キーボード（ＫＢ）９やポインティングデバイス（不図示）からのキー入力を制御する。６はＣＲＴコントローラ（ＣＲＴＣ）であり、ＣＲＴディスプレイ（ＣＲＴ）１０の表示を制御する。尚、ＣＲＴコントローラ６及びＣＲＴディスプレイ１０の代りに、ＬＣＤコントローラ及びＬＣＤを用いても良い。
【００１３】
７はディスクコントローラ（ＤＫＣ）であり、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル等の外部メモリ１１とのアクセスを制御する。さらに、ＤＫＣ７は、印刷制御コマンド生成プログラム（以下、プリンタドライバ）等の各種データを記憶する、ハードディスク（ＨＤ）、フロッピー（登録商標）ディスク（ＦＤ）等の外部メモリ１１とのアクセスも制御する。
【００１４】
８はプリンタコントローラ（ＰＲＴＣ）であり、所定の双方向性インタフェース２１を介してプリンタ１５００に接続されて、プリンタ１５００との通信制御処理を実行する。双方向性インタフェースの例には、ＵＳＢインタフェース、ＩＥＥＥ１３９４インタフェース、無線ＬＡＮインタフェース等がある。
【００１５】
尚、ＣＰＵ１は、例えば、ＲＡＭ２上に設定された表示情報ＲＡＭへのアウトラインフォントの展開（ラスタライズ）処理を実行してＧＵＩを提供することで、ＣＲＴ１０上でのＷＹＳＩＷＹＧを可能としている。また、ＣＰＵ１は、ＣＲＴ１０上のマウスカーソル（不図示）等で指示されたコマンドに基づいて、登録された種々のウインドウを開き、種々のデータ処理を実行する。ユーザーは、印刷を実行する際、印刷の設定に関するウインドウを開き、プリンタの設定や、印刷モードの選択を含むプリンタドライバに対する印刷方法の設定を行える。
【００１６】
プリンタ１５００において、１２はプリンタＣＰＵであり、プリンタＣＰＵ１２は、プリンタ制御部１０００内のシステムバス１５に接続される各デバイスを総括的に制御する。また、プリンタＣＰＵ１２は、ＲＯＭ１３のプログラム用ＲＯＭ１３ｂあるいは外部メモリ１４に記憶された制御プログラム等のプログラムに基づいて、システムバス１５に接続される印刷部（プリンタエンジン）１７に出力情報としての画像信号を出力する。
【００１７】
また、このＲＯＭ１３のプログラム用ＲＯＭ１３ｂには、プリンタＣＰＵ１２の制御プログラム等のプログラムを記憶している。また、ＲＯＭ１３のフォント用ＲＯＭ１３ａには、上記出力情報を生成する際に使用するフォントデータ等のデータを記憶している。また、ハードディスク（ＨＤ）、ＩＣカード等の外部メモリ１４がないプリンタの場合には、ＲＯＭ１３のデータ用ＲＯＭ１３ｃには、ホストコンピュータ３０００上で利用される情報等を記憶している。
【００１８】
プリンタＣＰＵ１２は、入力部１８を介してホストコンピュータ３０００との通信処理が可能となっており、プリンタ１５００内のステータス情報等の各種情報をホストコンピュータ３０００に通知可能に構成されている。１９はＣＰＵ１２の主メモリ、ワークエリア等として機能するＲＡＭである。このＲＡＭ１９は、増設ポート（不図示）に接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。
【００１９】
尚、ＲＡＭ１９は、出力情報展開領域、環境データ格納領域、ＮＶＲＡＭ等に用いられる。外部メモリ１４は、メモリコントローラ（ＭＣ）２０によりアクセスが制御される。外部メモリ１４は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等のデータを記憶する。また、１５０１は操作部であり、プリンタ１５００に対する各種操作を実現するための操作パネルやスイッチ、ＬＥＤ表示器等が構成されている。
【００２０】
また、外部メモリ１４は１個に限らず、少なくとも１個以上備え、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていても良い。さらに、ＮＶＲＡＭ（不図示）を有し、操作部１５０１からのプリンタモード設定情報を記憶するようにしてもよい。なお、本願におけるプリンタは、印刷コマンドを受けて印刷できる装置であればよく、インクジェットプリンタでもレーザビームプリンタでも良い。
【００２１】
＜ＸＰＳドキュメントの構成＞
本文の理解を容易にするため、まずＸＰＳについて簡単に説明する。ＸＰＳドキュメントはＦｉｘｅｄＤｏｃｕｍｅｎｔＳｅｑｕｅｎｃｅ  （以下ＦＤＳ）をルートとするツリー構造になっている。ＦＤＳは複数のＦｉｘｅｄＤｏｃｕｍｅｎｔ（以下ＦＤ）を持ち、ＦＤは複数のＦｉｘｅｄＰａｇｅ（以下ＦＰ）を持つ。ＦＤＳとＦＤとＦＰのそれぞれは、ＸＰＳパートと呼ばれることがある。ＦＰはドキュメントのページの内容をＸＭＬ形式で記述しており、実際に表示または印刷される内容を含んでいる。ＦＰのページ内容で使用されるフォントや画像等の資源は複数のＦＰで共有することができる。また、ＦＤＳとＦＤとＦＰはそれぞれ印刷設定情報をＰｒｉｎｔＴｉｃｋｅｔ（以下ＰＴ）で持つことができる。ＰＴはＸＰＳドキュメントを印刷する際の印刷設定情報をＸＭＬ形式で記述したものである。
【００２２】
図１はＸＰＳドキュメントの論理構造を示したブロック図の一例である。ＸＰＳドキュメント１０１の論理構造はＦＤＳ１０３がルートとなるツリー構造となっている。ＦＤＳ１０３は子としてＦＤ１１１とＦＤ１１３を有する。ＦＤ１１１は子としてＦＰ１２１とＦＰ１２３を有する。ＦＤ１１３は子としてＦＰ１２５を有する。印刷設定情報を記述したＰＴについては、ＦＤＳ１０３がＰＴ１３１を、ＦＤ１１１がＰＴ１３３を、ＦＰ１２１がＰＴ１３５を、ＦＤ１１３がＰＴ１３７をそれぞれ保持している。ＦＰ１２３とＦＰ１２５はＰＴを保持していない。また、ＦＰ１２１とＦＰ１２３がフォントや画像等の資源１４１を共有しており、ＦＰ１２５はフォントや画像等の資源１４３を利用している。ここで例えばＦＰ１２１を印刷する際に使用するＰＴは、ＰＴ１３１とＰＴ１３３とＰＴ１３５をマージしたＰＴとなる。
【００２３】
＜プリンタドライバの動作＞
図２は、印刷システムをＯＳの印刷サポート機能とプリンタドライバを中心に概念的に表したブロック図である。ＸＰＳプリンタドライバは主にフィルター群２１９で構成される。ここでフィルターとは、一般的に入力されたデータをもとに、加工、変換、無変換、生成等の手段を介して、何らかのデータを出力する機能を有するプログラムのことを称する。
【００２４】
図２における印刷システムでは、アプリケーション２０１により作成された文書の各ページの印刷データは、ＯＳの印刷サポート機能２１３を通じてＸＰＳスプールファイル２１７に一時的に蓄えられる。プリンタドライバのフィルター群２１９は、印刷データと、その印刷データに関する印刷設定情報に基づきプリンタが解釈可能な印刷コマンドを生成してプリンタ２３１に供給することにより、印刷が実行されるように構成されている。
【００２５】
ユーザインタフェースモジュール２１５は、一般に印刷に使用する用紙サイズや印刷方向、その他の属性を設定する機能を提供する。例えば、ユーザインタフェースモジュール２１５は、用紙サイズや印刷方法等の印刷設定情報を設定するための設定画面を表示する。同時に本発明におけるユーザインタフェースモジュール２１５は、プリンタ２３１による印刷動作を開始する前に印刷イメージを表示するプレビューを使用するか否かを設定する機能を有する。ユーザインタフェースモジュール２１５は、複数の印刷設定項目の設定値が格納された印刷設定情報をアプリケーション２０１に返却する。なお、ユーザインタフェースモジュール２１５は、プリンタドライバの設定画面を表示するためのモジュールである。
【００２６】
アプリケーション２０１は作成した任意の文書の印刷にあたり、ＯＳの印刷サポート機能２１３に対して、印刷開始や印刷終了、ユーザインタフェースモジュール２１５から返却された印刷設定情報を通知したり、文書の各ページの描画開始や描画終了を通知する。ＯＳの印刷サポート機能２１３は、アプリケーション２０１が描画した内容や印刷設定情報をＸＰＳスプールファイル２１７に格納する。フィルター群２１９はスプールされた印刷データをデスプールする際にＯＳの印刷サポート機能から呼び出される。
【００２７】
プリンタドライバのフィルター群２１９は一つ以上のフィルターで構成されており、印刷時にＸＰＳスプールファイルから印刷データを読込み、プリンタが解釈可能な印刷コマンドに変換してプリンタ２３１に供給し、印刷を行う機能を有する。本実施形態におけるフィルター群２１９は、レイアウト処理部であるレイアウトフィルター２２１と、プレビュー文書作成部であるプレビューフィルター２２３と、印刷コマンド変換部である印刷コマンドフィルター２２５で構成される。
【００２８】
レイアウトフィルター２２１はＸＰＳスプールファイル２１７に格納されたＸＰＳドキュメントの印刷データを入力し、印刷設定情報に基づきページのレイアウト処理を行い、レイアウト済みのＸＰＳドキュメントの印刷データを出力する。本実施例におけるレイアウト処理とは例えば複数のページを一つの用紙面に印刷する割り付け印刷や、一つのページを複数の用紙面に印刷するポスター印刷等を含む。
【００２９】
プレビューフィルター２２３は、レイアウトフィルター２２１から出力されたＸＰＳドキュメントの印刷データを入力し、印刷設定情報に基づきユーザーにプレビュー機能を提供する。
【００３０】
印刷コマンドフィルター２２５はプレビューフィルター２２３から出力されたＸＰＳドキュメントの印刷データを入力し、印刷設定情報に従い、ＸＰＳドキュメントをプリンタが解釈可能な印刷コマンドに変換し出力する。印刷コマンドフィルター２２５が入力のＸＰＳドキュメントを一度イメージデータに変換する場合、印刷コマンドフィルター２２５は一般的にレンダーフィルターと呼ばれる。レンダーフィルターはインクジェットプリンタに代表される廉価なラスタープリンタ用のプリンタドライバにおいて多く見られる。印刷コマンドフィルター２２５がレンダーフィルターとして動作する場合は、入力のＸＰＳドキュメントを一度イメージデータに変換する。その後、印刷コマンドフィルター２２５は、色空間の変換や二値化等の画像処理の過程を経て、ラスタープリンタが解釈可能な印刷コマンドに変換する。尚、ページプリンタに代表される高機能なプリンタにおいて、プリンタが解釈できる印刷コマンドの種類にＸＰＳが含まれるならば、印刷コマンドフィルター２２５は入力のＸＰＳドキュメントを編集しＸＰＳドキュメントを出力する。印刷コマンドフィルター２２５にてＸＰＳドキュメントを処理する必要がなければ、入力のＸＰＳドキュメントをそのまま出力するか、印刷コマンドフィルター２２５はプリンタドライバの構成に含まれなくても良いことは言うまでもない。
出力デバイスであるプリンタ２３１は、印刷コマンドフィルター２２５で生成された印刷  コマンドを解釈し、可視画像を印刷用紙に対して形成する機能を持つ。図２における印刷結果の例２４１は、レイアウトフィルター２２１が２−ｕｐの処理を行った場合を示している。
【００３１】
＜フィルターと入出力インタフェース＞
前述したように、ＸＰＳドライバはそれぞれに任意の機能を有したフィルターによって構成される。フィルター間でデータの受け渡しを行うインタフェースには、Ｓｔｒｅａｍ形式とＤｏｃｕｍｅｎｔ形式の２種類が存在する。
【００３２】
Ｓｔｒｅａｍ形式のインタフェースでは、印刷データはそのままバイトストリームとして扱われる。また、ＸＰＳ以外のデータもバイトストリームとして扱うことも可能である。
【００３３】
Ｄｏｃｕｍｅｎｔ形式のインタフェースでは、印刷データであるＸＰＳドキュメントがＸＰＳパート単位で扱われる。ここでいうＸＰＳパートとはＦＤＳ、ＦＤ、ＦＰとそれらに付随するＰＴや、画像、フォント等のリソースのことを指す。各フィルターは入力と出力それぞれに対して、どちらのインタフェースを利用するかが定められる。Ｓｔｒｅａｍ形式入力として利用したフィルターに比べ、Ｄｏｃｕｍｅｎｔ形式のインタフェースを利用したフィルターは、ＸＰＳドキュメントを解析してＸＰＳパートを抽出する必要がない。そのため、Ｄｏｃｕｍｅｎｔ形式のインタフェースを利用したフィルターは、ＦＰの変更が必要なレイアウト処理などの処理を行うことが容易であると言える。
【００３４】
それぞれのインタフェースの動作について図３を用いて説明する。フィルター３１１は入出力インタフェースとしてＤｏｃｕｍｅｎｔ形式を、フィルター３２１は入出力インタフェースとしてＳｔｒｅａｍ形式を採用している。スプールファイルとして格納されているＸＰＳドキュメント３３１はＸＰＳパート３３３−３３９で構成されている。まずＸＰＳドキュメント３３１はフィルター３１１に送られるが、フィルター３１１の入力インタフェース３１３はＤｏｃｕｍｅｎｔ形式なので、システム３０３でＸＰＳパートに分解されて送られる。フィルター３１１は、受け取ったＸＰＳパート３３３から３３９に対して必要に応じて編集処理を行い出力する。出力インタフェース３１５もＤｏｃｕｍｅｎｔ形式なので、出力されるデータはＸＰＳパート３３３から３３９に対して編集処理を行ったＸＰＳパート３４３から３４９となる。このＸＰＳパート３４３から３４９のデータがフィルター３２１に送られるが、フィルター３２１の入力インタフェース３２３はＳｔｒｅａｍ形式なので、システム３０３でＸＰＳパート３４３から３４９に基づくＸＰＳドキュメント３４１に変換されて送られる。フィルター３２１ではＸＰＳドキュメント３４１をバイトストリームとして受け取る。フィルター３２１はＸＰＳドキュメント３４１を必要に応じて編集して出力する。出力インタフェース３２５もＳｔｒｅａｍ形式なので、出力されるデータはＸＰＳドキュメント３４１に対して編集処理を行ったＸＰＳドキュメント３５１となることが一般的である。また、Ｓｔｒｅａｍ形式のインタフェースはＸＰＳドキュメント以外のデータも扱えるので、ＸＰＳドキュメント３４１を加工して得られるデータ、例えばプリンタが解釈可能な印刷コマンドなどに変換されて送信されることも考えられる。
【００３５】
＜プレビュー用ドキュメント生成＞
Ｄｏｃｕｍｅｎｔ形式の入力インタフェースを用いたプレビューフィルター２２３は、入力インタフェースで取得したデータがパートに分けられているため、パートからプレビュー表示用ＸＰＳドキュメントを生成する必要がある。しかし、印刷データと同様のＸＰＳドキュメントを作成するには全てのパートが揃うのを待つ必要がある。ページ数の多いドキュメントなどではパートの取得に時間がかかるため、プレビュー用ＸＰＳドキュメントが生成されるまでに多くの時間を要する。その結果、プレビュー制御モジュール２０３がプレビュー表示処理を実行するまでに多くの時間がかかってしまうことがあった。
【００３６】
そこで、本実施例では、プレビュー制御モジュール２０３が、全パートに満たないパートの印刷データに基づいての仮表示用ドキュメントを作成し、表示することで、先頭のページが表示されるまでの時間を短縮する。なお、本願では、全パートに満たないパートの印刷データとは、１枚目の用紙の表面を構成するページの印刷データとして説明する。図４に、プレビュー用ドキュメント生成手段の一例を示す。プレビューフィルター２２３は、取得したＸＰＳのパートと、パートからＸＰＳドキュメントを生成する際に必要な情報を一時ファイルとして保存する。尚、Ｄｏｃｕｍｅｎｔインタフェースを用いたフィルターにおけるパートの取得は、ＦＤＳ、ＦＤ、ＦＰの順で行われる。例えば図１のＸＰＳドキュメントでは、ＦＤＳ１０３、ＦＤ１１１、ＦＰ１２１、ＦＰ１２３、ＦＤ１１３、ＦＰ１２５の順でパートが取得される。また、各パートで使用されている資源１４１、１４３は使用しているパートの取得後に取得可能である。
【００３７】
４０１〜４０９は一時ファイルとして保存するデータの一例である。ジョブの印刷設定情報４０１は印刷データ全体に係わる印刷設定情報を記述したものであり、仮表示用ドキュメントのページ数を特定するために用いられる。例えば、本願では仮表示用ドキュメントは、１枚目の用紙の表面に配置されるページで構成されることを想定している。そのため、割り付け印刷設定時の１枚の用紙の面に配置するページ数などによって、仮表示用ドキュメントのページ数は決定する。ＦＤ情報４０３はＸＰＳにおけるＦＤのＵＲＩなどが記述されている。ＦＤ自体のデータはフィルターで取得することができないため、プレビュー用ＸＰＳドキュメントを生成する際にはＦＤを自身で生成する必要がある。ＦＰ情報４０５はＸＰＳにおけるＦＰのＵＲＩや使用しているリソース情報、ページに関わる印刷設定情報などが記述されている。ＦＰ４０７はＸＰＳを構成するＦＰ自体のデータである。リソースデータ４０９はＦＰで使用されているリソースデータであり、イメージやフォントなどがこれに該当する。終了情報４１１はプレビューフィルター２２３からのパートの出力が終了したことを表し、プレビュー制御モジュールはこれをもって追加ページがないことを認識し、ＸＰＳドキュメント生成処理を終了する。尚、プレビューフィルター２２３から出力される一時ファイルの形式はこれに限定されるものではなく、ＸＰＳドキュメントの生成方法に応じて変更可能であることは言うまでもない。
【００３８】
プレビュー制御モジュール２０３は、プレビューフィルター２２３から出力される一時ファイルを用いてプレビュー用ＸＰＳドキュメントを生成する。まず、ジョブの印刷設定情報４０１に基づき、プレビュー制御モジュール２０３は仮表示用ドキュメントの構成に必要なページ数を決定する。また、プレビュー制御モジュール２０３は、仮表示用ドキュメント４１３と本表示用ドキュメント４１５を生成する。生成した仮表示用ドキュメント４１３と本表示用ドキュメント４１５は、この時点では空のデータである。次に、プレビュー制御モジュール２０３はＦＰ情報４０５に基づきＦＰ（ページデータ４０７）、及びリソースデータ４０９を仮表示用ドキュメント４１３と本表示用ドキュメント４１５に追加する。ＦＰ情報４０５、及びページ関連データ４０７〜４０９はプレビューフィルター２２３によって順次出力されるので、プレビュー制御モジュール２０３は一時ファイルとして保存されたものから追加を行っていく。仮表示用ドキュメントを生成するために必要なページ数が追加されたら、プレビュー制御モジュール２０３は、仮表示用ドキュメント４１３にＦＤＳ、及びＦＤを追加し、ＸＰＳドキュメントとしての形式を整える。プレビュー制御モジュール２０３は、この仮表示用ドキュメント４１３を本表示用ドキュメント４１５が完成するまで表示することで、本表示用ドキュメントが生成されるより早い段階でのプレビュー表示が可能となる。
【００３９】
その後、全てのパートの出力が終了し、本表示用ドキュメント４１５の生成が完了したら、プレビュー制御モジュール２０３は表示するドキュメントを仮表示用ドキュメント４１３から本表示用ドキュメント４１５に切り替える。ただし、ページ数が少なく、仮表示用ドキュメント４１３と本表示用ドキュメント４１５の生成されるタイミングに大きな差がない場合は、プレビュー制御モジュール２０３は、仮表示用ドキュメントの表示段階を設けず、本表示用ドキュメントを表示する。なお、詳細な説明は図７のＳ２１１−Ｓ２１５において後述する。
【００４０】
＜プレビュー制御モジュールのプレビューウィンドウ＞
図５に、本実施形態におけるプレビュー制御モジュールによって提供される表示画面（プレビューウィンドウ）の一例を示す。印刷プレビューウィンドウ５０１は、プレビュー画像や印刷データの印刷設定情報等を表示するための表示エリアと、ユーザーがプレビュー画像の表示方法等を変更するための入力手段を兼備している。
【００４１】
メニューバー５０３は、表示切り替え等プレビューアへの命令をユーザーから受け付けることができる。ドキュメントリスト５０５はプレビュー制御モジュールが処理可能な印刷データの一覧を表示する。ドキュメントリスト５０５で選択された印刷データが表示や印刷の対象となる。仮表示中のドキュメントは状態欄に「データ処理中」など、本表示用ドキュメント４１５が生成途中である旨が分かる情報が表示される。また、ページ数欄にはドキュメントのページ数が表示される。仮表示中は並行して本表示用ドキュメントの作成を行っており、作成中の本表示用ドキュメントに追加されたＦＰの数に従ってページ数欄の表示を更新することで、ユーザーに本表示用ドキュメントの作成状況を通知することができる。プレビュー表示領域５０７は、プレビュー用ＸＰＳドキュメントを利用し、印刷用紙と印刷用紙に形成されるべき可視象を印刷イメージとして表示する。なお、仮表示用ドキュメントのプレビュー画像も本表示用のプレビュー画像も表示領域５０７に表示される。ツールバー５０９はユーザー操作部を有し、表示ページの切り替えや表示サイズの変更を行うことが可能である。表示領域５１１はプレビュー機能を実行している印刷ドキュメントの印刷設定情報に関わる代表的な設定項目の設定値を表示する。図５においては現在プレビュー表示しているページの番号は第１ページであり、印刷設定情報で設定された部数は１部で設定されていた例を示している。ページ情報表示領域５１３は表示しているページの印刷設定情報に関わる代表的な設定項目の設定値を表示している。プレビュー制御モジュールでは、各設定値を表示するだけでなく、変更機能を提供することも可能である。印刷ボタン５１５は、ユーザーが押下することで、ドキュメントリスト５０５で選択されている印刷データの印刷が開始される。
【００４２】
＜プレビューフィルター処理＞
図６はプレビューフィルターの処理を示すフローチャートの一例である。尚、図６はプレビューを行うことが設定された場合に実行される処理であり、プレビューを行わない設定の場合は印刷データを次のフィルターに出力する処理が必要になる。また、本願のフローチャートの各ステップは、フローチャートに関連するプログラムをメモリから読みだしてＣＰＵが実行することで実現される。
【００４３】
まず、Ｓ１０１では、プレビューフィルター２２３は、プレビュー制御モジュールを起動する。Ｓ１０３では、プレビューフィルター２２３は、ジョブ全体に係わる印刷設定情報を一時ファイルとして出力する。Ｓ１０５では、プレビューフィルター２２３は、ＸＰＳパートを取得する。Ｓ１０７では、プレビューフィルター２２３は、パートが取得できたかの判定を行い、取得できた場合にはＳ１０９に移る。Ｓ１０７で、プレビューフィルター２２３がパートを取得できなかった場合は全てのパートの処理が終了しているのでプレビューフィルター２２３の処理を終了する。Ｓ１０９では、プレビューフィルター２２３は、Ｓ１０５で取得したパートがＦＤかどうかの判定を行い、ＦＤであればＳ１２１に移り、ＦＤでない場合はＳ１１１に移る。なお、Ｓ１０９は、プレビューフィルター２２３がＯＳに対して取得されたパートの種類を問い合わせることで実現される。Ｓ１２１では、プレビューフィルター２２３は、プレビュー用ＸＰＳドキュメントを生成する上で必要なＦＤの情報を一時ファイルとして出力し、次のパートを取得するためにＳ１０５に移る。ＦＤ情報としては、ＸＰＳ内におけるＦＤのＵＲＩなどが記載される。Ｓ１１１では、プレビューフィルター２２３は、取得したパートがＦＰかどうかの判定を行い、ＦＰであればＳ１３１に移り、ＦＰでない場合は次のパートを取得するためにＳ１０５に移る。なお、Ｓ１１１は、プレビューフィルター２２３がＯＳに対して取得されたパートの種類を問い合わせることで実現される。プレビューフィルター２２３は、取得したＦＰで使用されているリソースを一時ファイルとして出力し（Ｓ１３１）、取得したＦＰ自身を一時ファイルとして出力する（Ｓ１３３）。Ｓ１３５では、プレビューフィルター２２３は、プレビュー用ＸＰＳドキュメントを生成する上で必要なＦＰの情報を一時ファイルとして出力する。ＦＰの情報には、一時ファイルとして出力したＦＰとリソースの関係や、ＦＰに係わる印刷設定情報（用紙サイズ等）が記述される。Ｓ１０５〜Ｓ１３３を繰り返し、全てのパートの処理が終了すると、Ｓ１０７でパートの取得ができなかったと判定され、プレビューフィルターの処理は終了する。
【００４４】
＜プレビュー制御モジュール処理＞
図７はプレビュー制御モジュールの処理を示すフローチャートの一例である。まず、Ｓ２０１では、プレビュー制御モジュール２０３は、ジョブの印刷設定情報４０１が一時ファイルとして存在しているかを判定する。一時ファイルとして存在する場合、プレビュー制御モジュールの処理はＳ２０３へ移り、存在しない場合はＳ２０１にてプレビューフィルターから印刷設定情報が出力されるまで待機する。Ｓ２０３では、プレビュー制御モジュール２０３は、ジョブの印刷設定情報に基づいて仮表示用ドキュメントを生成するために必要なページ数を算出し、Ｓ２０５へ移る。なお、本願では仮表示用ドキュメントは１枚目の表面を想定しているため、例えば、割り付け設定時に１枚の用紙の面に配置されるページの数を採用する方法などが考えられるが、それに限ったものではない。例えば、１つのページを複数の用紙に分割して印刷するポスター印刷では、１つのページを表すのに必要なページ数（２分割であれば２ページ）を採用することが考えられる。また、本願では、仮表示用ドキュメントは１枚目の表面を想定しているがそれに限る必要はなく、例えば、仮表示用ドキュメントは１枚目の用紙を想定しても良い。その場合、プレビュー制御モジュール２０３は、両面印刷の有無も考慮し、１枚目の用紙に配置されるページ数を算出する。それ以外にも、複数の用紙に配置されるページ数や、１枚の用紙の一部に配置されるページ数を採用するなど、自由に設定することが可能である。
【００４５】
Ｓ２０５では、プレビュー制御モジュール２０３は、仮表示用ドキュメント４１３と本表示用ドキュメント４１５の２つのＸＰＳドキュメントのベースを作成し、Ｓ２０７へ移る。このＳ２０５において作成されたデータはＸＰＳの形式を成してはおらず、必要なパートを全て追加した時点で表示が可能なＸＰＳドキュメントとなる。
【００４６】
Ｓ２０７において、プレビュー制御モジュール２０３は、ＦＰ情報４０５が一時ファイルとして存在しているかを判定し、存在する場合にはＳ２０９へ移り、存在しない場合はＳ２３１へ移る。Ｓ２３１において、プレビュー制御モジュール２０３は、プレビューフィルターから全てのパートの出力が終了しているかを判定し、終了している場合はＳ２３３へ移る。一方、終了していない場合は未処理のページが残っている可能性があるため、プレビュー制御モジュール２０３の処理はＳ２０７へ戻りＦＰ情報を待つ。Ｓ２０９では、プレビュー制御モジュール２０３は、Ｓ２０５で作成した仮表示用と本表示用のＸＰＳドキュメントの２つのベースに対してＦＰと、そのページで使用されているリソースを追加し、Ｓ２１１へ移る。ただし、仮表示用ドキュメントの作成が終了している、もしくは中止されている場合は本表示用ドキュメントにのみページの追加を行う。Ｓ２１１では、プレビュー制御モジュール２０３は、仮表示用ドキュメントが作成中かの判定を行い、作成中の場合はＳ２１３に移り、作成が終了している、もしくは中止されている場合はＳ２０７に移り、次のページの処理を行う。なお、Ｓ２１１は、具体的にはＳ２１５またはＳ２２５が既に実行されているか否かによって判定される。例えば、既にＳ２２５が実行されているのであれば、プレビュー制御モジュール２０３は、Ｓ２１１において仮ドキュメントの生成が終わっていると判定しＮｏへと処理を進める。Ｓ２１３では、プレビュー制御モジュール２０３は、プレビューフィルターから全パートの出力が終了しているかを判定し、終了している場合はＳ２１５に移り、まだ出力途中の場合Ｓ２２１に移る。Ｓ２１３の判定については、プレビューフィルターがパートの出力を終了した後に終了情報４１１を出力する。そして、プレビュー制御モジュール２０３は終了情報４１１が存在していたらパートの出力は終了していると判定する方法など考えられるが、それに限られるものではない。仮表示用ドキュメント生成前にパートが全て揃っている場合、仮表示用ドキュメントと本表示用ドキュメントの完成するタイミングに大きな差がないため、Ｓ２１５では仮表示用ドキュメントの作成を中止し、Ｓ２０７へ移る。つまり、プレビュー制御モジュール２０３は、プレビューフィルターからのパートの出力状況に応じて仮表示用ドキュメントを表示するか否かを判定する。尚、本実施例では、仮表示用ドキュメントの作成が完了するまでにプレビューフィルターからのパートの出力が終了してないことを、仮表示を行う条件としているが、これに限定されるものではない。Ｓ２２１では、プレビュー制御モジュール２０３は、Ｓ２０３で決定した仮表示用ドキュメントのページ数だけページの追加が行われたかを判定し、必要なページ数が追加されている場合はＳ２２３に、ページ数が足りない場合はＳ２０７へ移る。Ｓ２２３では、プレビュー制御モジュール２０３は、仮表示用ドキュメントにＦＤＳやＦＤ、それぞれのパートの関連を示すファイル等を追加し、Ｓ２２５へ移る。この時点で仮表示用ドキュメントはＸＰＳドキュメントの形式を成すため、表示を行うことが可能となる。Ｓ２２５では、プレビュー制御モジュール２０３は、作成が完了した仮表示用ドキュメントをプレビューウィンドウ５０１に表示し、Ｓ２０７へ移る。仮表示用ドキュメントは、本表示用ドキュメントの作成が完了するまで表示が行われる。また、ドキュメントリスト５０５には仮表示を行った時点でドキュメント情報が追加される。その際、状態欄に「データ処理中」などの仮表示である旨を表示する。
【００４７】
仮表示用ドキュメントがＳ２２５において表示された後にＳ２０７に戻ると次のページの処理が開始され、全てのページの処理が終了するまでＳ２０７、Ｓ２０９、Ｓ２１１が繰り返される。Ｓ２３１でプレビューフィルターから全てのパートの出力が終了したと判定されると、全てのページの処理が終了しているため、Ｓ２３３に移る。Ｓ２３３では、プレビュー制御モジュール２０３は、本表示用ドキュメントにＦＤＳやＦＤ、それぞれのパートの関連を示すファイル等を追加し、Ｓ２３５へ移る。この時点で本表示用ドキュメントも表示可能となる。Ｓ２３５では、プレビュー制御モジュール２０３は、仮表示用ドキュメントの表示が行われているかを判定し、表示が行われていない場合はＳ２３７に移り、表示が行われている場合はＳ２３９に移る。Ｓ２３７では、プレビュー制御モジュール２０３は、本表示用ドキュメントをプレビューウィンドウ５０１に表示し、ドキュメントリスト５０５にドキュメント情報を追加する。Ｓ２３９では、プレビュー制御モジュール２０３は、表示対象となるドキュメントを仮表示用ドキュメントから本表示用ドキュメントに切り換える。その際、ドキュメントリスト５０５には既にドキュメント情報が存在するため、新規に追加することはないが、仮表示である旨を通知していた表記は削除する。Ｓ２３７、もしくはＳ２３９で本表示用ドキュメントの表示が行われると、プレビュー制御モジュールの起動処理は終了する。
【００４８】
これにより、プレビューフィルターのインタフェースがＤｏｃｕｍｅｎｔ形式である場合、ＸＰＳを構成するための全パートを取得して本表示用ドキュメントの作成が完了するまで行うことができなかったプレビュー表示を、早い段階で行うことが可能となる。尚、本実施例における仮表示用ドキュメントの生成方法は一例であり、本フローチャートのタイミングに限定されるものではない。例えば、Ｓ２２１において仮表示用ドキュメントの作成に必要なページ数が揃った時点で、ドキュメントの生成から完了までをまとめて行う方法なども考えられる。
【００４９】
なお、図５の表示画面では、プレビュー画像を編集することができる。具体的には、ページを削除したり、ページの順番を入れ替えることもできる。例えば、２ｉｎ１の設定を考慮したプレビュー画像において２ページ目がユーザーの指示により削除された場合、１枚目の表面は１ページ目と３ページ目とのプレビュー画像に変更される。しかしながら、仮表示用ドキュメントを表示している段階では、全ページが揃っていないため編集後の適切なプレビュー画像を表示できない。つまり、仮表示用ドキュメントを表示している段階では３ページ目のプレビュー画像がないため、２ｉｎ１の設定を考慮したプレビュー画像において２ページ目が削除されたとしても、１枚目の表面は１ページ目のプレビュー画像しか表示できない。よって、仮表示用ドキュメントのプレビュー画像では適切な編集結果を表示できないため、プレビュー制御モジュール２０３は、仮表示用ドキュメントのプレビュー画像の表示中はユーザーによる編集指示を受け付けないように図５の表示画面の表示を制御する。一方、プレビュー制御モジュール２０３は、本表示用ドキュメントのプレビュー画像が表示されることにより編集指示を受け付けられるように図５の表示画面の表示を制御する。
【００５０】
本発明の目的は前述した実施例の機能を実現するソフトウエアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵまたはＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することとなり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【符号の説明】
【００５１】
１０１  ＸＰＳドキュメント
２０３  プレビュー制御モジュール
２２３  プレビューフィルター
４１３  仮表示用ドキュメント
４１５  本表示用ドキュメント
【図１】
0005734089.tif 000002
【図２】
0005734089.tif 000003
【図３】
0005734089.tif 000004
【図４】
0005734089.tif 000005
【図５】
0005734089.tif 000006
【図６】
0005734089.tif 000007
【図７】
0005734089.tif 000008
【図８】
0005734089.tif 000009