情報処理装置、プレビュー方法、及びプログラム
【課題】 リーチ形式のインタフェースを採用したフィルターによって構成されるプリンタドライバにおいて、ストリーム形式のインタフェースを用いて取得したXPSデータを表示するプレビュー用のフィルターを挿入することで、フィルター間にデータ形式の変換処理が発生し、プレビューを行わない場合でもパフォーマンスの低下が発生する。
【解決手段】 リーチ形式のインタフェースを用いたプレビュー用のフィルターにおいて、プレビュー設定がONの場合のみ印刷データをリーチ形式からストリーム形式に変換して、プレビュー用ドキュメントを作成し、前記プレビュー用ドキュメントを表示することで印刷プレビューを実現することで、プレビュー用フィルターの追加によるパフォーマンスの低下を抑制する。
【解決手段】 リーチ形式のインタフェースを用いたプレビュー用のフィルターにおいて、プレビュー設定がONの場合のみ印刷データをリーチ形式からストリーム形式に変換して、プレビュー用ドキュメントを作成し、前記プレビュー用ドキュメントを表示することで印刷プレビューを実現することで、プレビュー用フィルターの追加によるパフォーマンスの低下を抑制する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、例えば印刷処理を行う前に、印刷イメージをユーザが認識可能に表示する、いわゆるプレビュー機能等を有する情報処理装置、プレビュー方法、及びプログラムに関する。
【背景技術】
【0002】
オペレーティングシステム(OS)としてMicrosoft社のWindows(登録商標)を搭載した計算機を用いた印刷システムにおいて、アプリケーションプログラム等で生成された印刷データは、OS標準のデータ形式でスプールファイルに格納される。OSは印刷データを印刷するためにプリンタドライバを呼び出す。そしてプリンタドライバが、スプールファイルに格納された印刷データを読み取り、イメージ生成処理部により印刷イメージを作成し、さらにプリンタが解釈可能な印刷コマンドに変換する。印刷コマンドはプリンタに送信され、プリンタは印刷コマンドを解釈し、記録媒体に像を形成することで印刷処理が実行される。
【0003】
この印刷システムにおいてプレビュー機能を提供するために、プリンタドライバは印刷処理を開始した時に、印刷イメージを表示するプレビューアを実行する。そして画像生成部はプレビュー用の印刷イメージを作成し、プレビューアは当該プレビュー用の印刷イメージを表示する。つまり、プリンタドライバにおいて、印刷イメージを作成する当該画像生成部と、印刷イメージを表示する当該プレビューアとが協調することにより、プレビュー機能が実現される。(特許文献1参照)
【特許文献1】特開2004−102618号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、近年では前記のような従来の印刷システムとは異なる印刷システムが登場してきた。この新しい印刷システムでは、スプールファイルに格納されるデータ形式として従来のEMF形式(Enhanced Meta File)ではなくXPS形式(XML Paper Specification)が用いられる。XPSについては図1を用いて後述するが、Microsoft社が開発したオープン規格の電子文書フォーマットであり、オープン規格であるため、OSによる表示手段が提供されている。これを利用することで、従来の印刷プレビューは印刷データをイメージに変換して表示を行っていたものが、印刷データであるXPSをイメージに変換することなく表示することが可能となる。
【0005】
また、この新しい印刷システムにおけるプリンタドライバ(XPS Printer Driver)はフィルターと呼ばれるモジュールによって構成される。図20に示すように、フィルターは2種類の入出力インタフェースのどちらかを利用してフィルター間のデータの受け渡しを行う。2種類のインタフェースに関する詳細については後述するが、XPSをパーツ毎に扱うリーチ形式と、XPSをバイトストリームとして扱うストリーム形式が存在する。ストリーム形式のデータは、パーツを一まとめにしてZIP圧縮されたものである。前のフィルターの出力インタフェースと、次のフィルターの入力インタフェースが異なると、その間のデータ変換はOSの印刷サポート機能によって行われるため、フィルターの開発者はインタフェースの違いを意識する必要はない。ただし、その変換にも処理時間が発生するため、ドライバのパフォーマンス向上のためには、同一形式のインタフェースを用いてフィルターを構成していくことが望ましいと言える。また、プリンタドライバのフィルター構成は構成を記述したXMLファイルで管理されており、フィルター構成を印刷のたびに印刷データや設定に基づいて変更することができないことが一般的である。
【0006】
ここでプレビュー機能を司るフィルターを用意する場合、表示にはXPSデータが必要となるため、パーツを扱うリーチ形式ではなく、ストリーム形式を入力インタフェースとして用いることが望ましい。しかし、リーチ形式のインタフェースを用いたフィルターはXPSをパートごとに扱えるため、各パートの編集が必要なレイアウト処理等に適しており、レイアウト用のフィルターはリーチ形式を採用することによって開発コストの抑制につながると考えられる。このように、プレビューフィルターの前後のフィルターがリーチ形式を採用して作成されていた場合、ストリーム形式のプレビューフィルターでは、前記の変換処理が発生し、ドライバ全体のパフォーマンスの低下につながる。
【0007】
本発明は上記の問題点に鑑み、フィルター間のデータ変換処理の負荷を軽減し、パフォーマンスの低下を抑制することが可能とすることを目的とする。
【課題を解決するための手段】
【0008】
上記目的を達成するために、本発明の情報処理装置は、
前段のフィルターからリーチ形式のデータを取得する取得手段と、
プレビュー設定がオンであるか判定する判定手段と、
前記判定手段によりプレビュー設定がオンであると判定された場合、前記取得手段により取得したリーチ形式のデータをストリーム形式のデータに変換する変換手段と、
前記変換手段により変換されたストリーム形式のデータに基づきプレビューを行うプレビュー手段と、
前記判定手段によりプレビュー設定がオンでないと判定された場合、前記取得手段により取得したリーチ形式のデータを後段のフィルターに送信する送信手段とを有することを特徴とする。
【0009】
また、本発明の情報処理装置は、
プレビュー設定がオンであるか判定する判定手段と、
前記判定手段によりプレビュー設定がオンであると判定された場合、前段のフィルターからリーチ形式のデータを取得し、取得したリーチ形式のデータをストリーム形式のデータに変換させ、変換されたストリーム形式のデータに基づきプレビューを行わせるプレビューフィルターに処理を実行させる手段と、
前記判定手段によりプレビュー設定がオンでないと判定された場合、前記プレビューフィルターを削除する削除手段とを有することを特徴とする。
【0010】
また、本発明の情報処理装置は、
前段のフィルターからリーチ形式のデータを取得する取得手段と、
特定の機能がオンであるか判定する判定手段と、
前記判定手段により特定の機能がオンであると判定された場合、前記取得手段により取得したリーチ形式のデータをストリーム形式のデータに変換する変換手段と、
前記判定手段により特定の機能がオンでないと判定された場合、前記取得手段により取得したリーチ形式のデータを後段のフィルターに送信する送信手段とを有することを特徴とする。
【発明の効果】
【0011】
上記構成により本発明によれば以下のような効果が得られる。
【0012】
フィルター間のデータ変換処理の負荷を軽減し、パフォーマンスの低下を抑制することが可能となる。
【発明を実施するための最良の形態】
【0013】
<実施形態1>
以下、図面に示す実施例に基づき本発明を詳細に説明する。尚、本文中のXPSとはXML Paper Specificationの略で、Microsoft社が開発したオープン規格の電子文書フォーマットの一つである。
【0014】
<XPS文書の構成>
本文の理解を容易にするため、まずXPSについて簡単に説明する。XPS文書はFixedDocumentSequence(以下FDS)をルートとするツリー構造になっている。FDSは複数のFixedDocument(以下FD)を持ち、FDは複数のFixedPage(以下FP)を持つ。FDSとFDとFPのそれぞれは、XPSパートと呼ばれることがある。FPは文書のページの内容をXML形式で記述しており、実際に表示または印刷される内容を含んでいる。FPのページ内容で使用されるフォントや画像等のリソースは複数のFPで共有することができる。また、FDSとFDとFPははそれぞれ印刷設定をPrintTicket(以下PT)で持つことができる。PTはXPS文書を印刷する際の印刷設定をXML形式で記述したものである。ここで各FPを印刷する際に使用する印刷設定は、FDSのPTと、印刷対象FPの親FDのPTと、印刷対象FPのPTをマージしたPTとなる。
【0015】
図1はXPS文書の論理構造を示したブロック図の一例である。XPS文書101の論理構造はFDS103がルートとなるツリー構造となっている。FDS103は子としてFD111とFD113を有する。FD111は子としてFP121とFP123を有する。FD113は子としてFP125を有する。印刷設定を記述したPTについては、FDS103がPT131を、FD111がPT133を、FP121がPT135を、FD113がPT137をそれぞれ保持している。FP123とFP125はPTを保持していない。また、FP121とFP123がフォントや画像等のリソース141を共有しており、FP125はフォントや画像等のリソース143を利用している。ここで例えばFP121を印刷する際に使用するPTは、PT131とPT133とPT135をマージしたPTとなる。
また、実際のXPS文書は前記図1の構造化文書が圧縮されたデータである。
【0016】
<印刷システムの構成>
図2は本発明の実施の一形態に係る印刷システムの構成を示すブロック図である。プリンタ201は、画像形成を行うインクジェット方式のプリンタであり、後述するデータ処理装置202で生成された印刷コマンドに基づいて記録媒体200に画像の形成を行う。プリンタの種類については特に問わないが、ここではインクジェット方式のカラープリンタを想定している。データ処理装置202は、アプリケーションが印刷ジョブを作成し、プリンタドライバが印刷ジョブのスプールデータから、接続されたプリンタ201の印刷動作を制御する印刷コマンドの生成を行う。本実施形態ではデータ処理装置202としてパーソナルコンピュータを用いている。印刷の設定に関するユーザからの指示や入力を受ける役割も果たす。データ処理装置202は、各種機能ブロック230〜235、240〜243によって構成される。また、データ処理装置202には、データ処理装置202を制御するOSが組み込まれており、このOS上で各種機能ブロックが動作する。通信インタフェース203は、データ処理装置202とプリンタ201を接続する通信インタフェースである。本実施形態ではシリアルインターフェースであるUSBを用いている。しかしながら、この他に、IEEE1394、Ethernet(登録商標)、IrDA、IEEE802.11、電力線などのシリアルインターフェースや、セントロニクス、SCSIなどのパラレルインタフェースを利用することもできる。通信を実現するものであれば有線/無線を問わずどのようなインタフェースであっても構わない。このように、本実施形態における印刷システムとは、単体の装置ではなく、データ処理装置202と画像形成を行うプリンタ201とが特定の双方向インタフェースで接続された構成をとっている。しかしながら、この例に限られることなく、このようなデータ処理装置とプリンタの機能が一体となった装置一体型の印刷システムであってもよい。尚、プリンタ201及びデータ処理装置202とも本実施形態の特徴を説明する上で特に必要ないと思われる機能については省略する。
【0017】
また、前記各種機能ブロックはソフトウェアでもよい。このようなソフトウェアのプログラムコードを供給するための記憶媒体としては、例えば、フロッピィディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM,CD−R、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。
【0018】
<プリンタドライバの動作>
図3は、本発明におけるプリンタドライバの実施形態を説明するために図2の印刷システムをOSの印刷サポート機能とプリンタドライバを中心に概念的に表したブロック図である。本発明に関わるモジュールは、印刷設定機能を有するユーザインタフェースモジュール315と、フィルター群319である。フィルター群319は、XPSデータのページをレイアウト処理する機能を有するレイアウトフィルター321と、プレビュー機能を提供するためのフィルターであるプレビューフィルター323と、XPSデータをプリンタが解釈可能な印刷コマンドに変換する機能を有する印刷コマンドフィルター325で構成される。ここでフィルターとは、一般的に入力されたデータをもとに、加工、変換、無変換、生成等の工程を介して、何らかのデータを出力する機能を有するプログラムのことを称する。
【0019】
図3における印刷システムでは、アプリケーション301が作成した文書の各ページの印刷データは、OSの印刷サポート機能313を通じてXPSスプールファイル317に一時的に蓄えられる。これをプリンタドライバのフィルター群319が、印刷設定情報に基づきプリンタが解釈可能な印刷コマンドに変換してプリンタ331に供給して印刷されるように構成されている。
【0020】
ユーザインタフェースモジュール315は、一般に印刷に使用する用紙サイズや印刷方向、その他の属性を設定する機能を提供する。同時に本発明におけるユーザインタフェースモジュール315は、プリンタによる印刷動作を開始する前に印刷イメージを表示するプレビューを設定する機能を有する。ユーザインタフェースモジュール315は、複数の印刷設定項目の設定値が格納された印刷設定情報をアプリケーション301に返却する。ユーザインタフェースモジュール315が提供する印刷設定ダイアログの一例については図4を用いて後述する。
【0021】
アプリケーション301は作成した任意の文書の印刷にあたり、OSの印刷サポート機能313に対して、印刷開始や印刷終了を通知したり、印刷設定を行うためにユーザインタフェースモジュール315から返却された印刷設定情報を通知したり、文書の各ページの描画開始や描画終了を通知する。OSの印刷サポート機能313は、アプリケーションが描画した内容や印刷設定情報をXPSスプールファイル317に格納する。各フィルターはスプールされた印刷ジョブをデスプールする際にOSの印刷サポート機能から呼び出される。
【0022】
プリンタドライバのフィルター群319は一つ以上のフィルターで構成されており、印刷時にXPSスプールファイルから印刷ジョブを読込み、プリンタが解釈可能な印刷コマンドに変換してプリンタ331に供給し、印刷を行う機能を有する。本実施形態におけるフィルター群319は、レイアウト処理部であるレイアウトフィルター321と、プレビュー文書作成部であるプレビューフィルター323と、印刷コマンド変換部である印刷コマンドフィルター325で構成される。
【0023】
レイアウトフィルター321はXPSスプールファイル317に格納されたXPSデータを入力とし、印刷設定情報に基づきページのレイアウト処理を行い、レイアウト済みのXPSデータを出力する機能を有する。本実施例におけるレイアウト処理とは例えば複数のページを一つの用紙面に印刷するN−up印刷や、一つのページを複数の用紙面に印刷するポスター印刷等を含む。
【0024】
プレビューフィルター323は、レイアウトフィルター321の出力を入力とし、印刷設定に基づきユーザにプレビュー機能を提供する。
【0025】
印刷コマンドフィルター325はプレビューフィルター323の出力を入力とし、印刷設定情報に従い、XPSデータをプリンタが解釈可能な印刷コマンドに変換し出力する機能を有する。印刷コマンドフィルター325が入力のXPSデータを一度イメージデータに変換する場合、一般的にレンダーフィルターと呼ばれる。レンダーフィルターはインクジェットプリンタに代表される廉価なラスタープリンタ用のプリンタドライバにおいて多く見られる。印刷コマンドフィルター325がレンダーフィルターとして動作する場合は、入力のXPSデータを一度イメージデータに変換する。その後、色空間の変換や二値化等の画像処理の過程を経て、ラスタープリンタが解釈可能な印刷コマンドに変換される。ページプリンタに代表される高機能なプリンタにおいて、プリンタが解釈できる印刷コマンドの種類にXPSが含まれるならば、印刷コマンドフィルター325は入力のXPSデータを編集しXPSデータを出力する。印刷コマンドフィルター325にて処理する必要がなければ、入力のXPSデータをそのまま出力するか、印刷コマンドフィルター325はプリンタドライバに含めなくても良いことは言うまでもない。
【0026】
出力デバイスであるプリンタ331は、印刷コマンドフィルター325で生成された印刷コマンドを解釈し、可視画像を印刷用紙に対して形成する機能を持つ。印刷用紙341で図示される印刷結果の例は、レイアウトフィルター321が2−upの処理を行った場合を示している。
【0027】
<印刷設定画面>
図4は本実施形態における印刷モードや各種用紙設定を行う際に表示される印刷設定ダイアログの一例を示す図である。図4において、印刷設定ダイアログ401は、表示エリア402〜411、420〜431から構成される。印刷設定では表示する項目が非常に多いため、タブシートを使用して設定項目を内容ごとに分けて見やすい構成にするのが通例である。
【0028】
図4に基本設定タブ402が選択された場合の表示例を示す。基本設定の簡易表示エリア420には、文字情報だけでなく視覚に訴える形で設定された情報を表示する。用紙種類選択部422は、用紙の種類を表示するとともに利用者により選択させることができる。用紙種類選択部422はドロップダウンメニューとなっており普段は選択されている用紙の種類が表示され、そこをクリックすることで選択可能な用紙種類がリスト表示される。選択可能な用紙の種類はプリンタで印刷可能な用紙であり、図示されている普通紙の他にも例えば光沢紙、コート紙、写真専用紙、ハガキ、年賀状葉書等が含まれる。給紙方法選択部423は、プリンタ本体が用紙を給紙する給紙方法を表示し、利用者による給紙方法の選択をさせることができる。利用者は、給紙方法選択部423により、たとえば自動給紙口である給紙トレイや給紙カセット、または印刷用紙を一枚ずつ手動で給紙する「手差し給紙」などを選択できる。印刷品質選択部424は利用者に印刷の品位を設定させるための項目である。色調整部425は利用者に印刷の色を調整させるための項目である。モノクロ印刷設定部426は、印刷文書がカラーであっても印刷結果をグレースケールにするためのチェックボックスである。プレビュー印刷設定部427は、各種印刷設定がどのように印刷文書に反映されるかを、プリンタによる実際の印刷が行われる前に確認するためのチェックボックスである。標準設定部431が押されると、基本設定402の設定が標準(出荷時設定)に戻される。
【0029】
ユーザは各項目を選択した後にOKボタン408を押下することで印刷設定ダイアログ401を閉じ、選択した印刷設定を印刷に反映させることができる。キャンセルボタン409を押下すると印刷設定ダイアログ401が閉じ、選択した設定項目の内容は破棄され印刷に反映されることはない。適用ボタン410は印刷設定ダイアログ401を開いたままで選択した印刷設定を印刷に反映させることができる。ヘルプボタン411は基本設定402の各設定項目に関する説明文を別ウィンドウで表示させることができる。
【0030】
<プレビュー制御モジュールのプレビューウィンドウ>
図5に、本実施の形態におけるプレビュー制御モジュールによって提供される表示画面(プレビューウィンドウ)の一例を示す。印刷プレビューウィンドウ501は、プレビュー画像や印刷ジョブの印刷設定等を表示するための表示エリアと、ユーザがプレビュー画像の表示方法等を変更するための入力手段を兼備している。
【0031】
メニューバー502は、ユーザは表示切り替え等プレビューアへの命令をメニュー形式で選択することができる。ユーザ操作部503〜506が用意される領域はツールバーであり、ユーザはメニューバー502を使用しなくともツールバー503を押下することで容易にプレビューページの切り替え等を行うことができる。ページ切り替えボタン503は4つのボタンで構成されており、先頭ページ、前ページ、次ページ、最終ページへプレビュー表示を切り替えることが可能である。504はプレビュー画像の表示サイズを変更する為のドロップダウンリストで、全体表示や100%、200%表示等を選択することができる。印刷開始ボタン505においては、ユーザがこのボタンを押下することでプレビューアを終了し、プレビューしていたプレビュー用XPS文書を印刷処理可能な状態にすることができる。印刷中止ボタン506においては、ユーザがこのボタンを押下することでプレビューアを終了し、印刷ジョブをキャンセルすることができる。プレビュー表示領域507は、プレビュー用XPSファイルの内容を利用し、印刷用紙と印刷用紙に形成されるであろう可視象を印刷イメージとして表示する。表示領域508はプレビュー機能を実行している印刷ジョブの印刷設定に関わる代表的な設定項目の設定値を表示する。そして、本図においては文書の総ページ数は3ページであり、現在プレビュー表示しているページ番号は2ページであり、印刷設定で設定された部数は1部であり、かつ等倍印刷が設定されていた例を示している。
【0032】
また、本実施形態において、図5に例示する表示画面は、プレビュー設定がON(オン)である印刷設定情報を伴う印刷ジョブがスプールされ、OSの印刷サポート機能によりフィルターパイプラインが起動され、プレビューフィルターがプレビュー制御モジュールを起動した時点で表示される。
【0033】
<フィルターと入出力インタフェース>
前述したように、XPSドライバはそれぞれに任意の機能を有したフィルターによって構成される。このフィルター間でデータの受け渡しを行うインタフェースには、ストリーム形式とリーチ形式の2種類が存在する。
【0034】
ストリーム形式のインタフェースでは、印刷データはそのままバイトストリームとして扱われる。また、XPS以外のデータもバイトストリームとして扱うことも可能である。リーチ形式のインタフェースでは、印刷データであるXPSドキュメントがXPSパート単位で扱われる。ここでいうXPSパートとはFDS、FD、FPとそれらに付随するPTや、画像、フォント等のリソースのことを指す。各フィルターは入力と出力それぞれに対して、どちらのインタフェースを利用するかを定められる。リーチ形式のインタフェースを利用した場合、XPSドキュメントを解析してXPSパートを抽出する必要がないため、FPの変更が必要なレイアウト処理などの処理を行うことがストリーム形式に比べ容易であると言える。
【0035】
それぞれのインタフェースの動作について図20を用いて説明する。フィルター2011は入出力インタフェースとしてリーチ形式を、フィルター2021は入出力インタフェースとしてストリーム形式を採用している。スプールファイルとして格納されているXPSドキュメント2031は2033から2039のXPSパートから構成されている。まずXPSドキュメント2031はフィルター2011に送られるが、フィルター2011の入力インタフェース2013はリーチ形式なので、OSの印刷サポート機能2003でXPSパートに分解されて送られる。フィルター2011は、受け取ったXPSパート2033から2039に対して必要に応じて編集処理を行い出力する。出力インタフェース2015もリーチ形式なので、出力されるデータはXPSパート2033から2039に対して編集処理を行ったXPSパート2043から2049となる。このデータがフィルター2021に送られるが、フィルター2021の入力インタフェース2023はストリーム形式なので、OSの印刷サポート機能2003でXPSパート2043から2049に基づくXPSドキュメント2041に変換されて送られる。フィルター2021ではXPSドキュメント2041をバイトストリームとして受け取る。フィルター2021はXPSドキュメント2041を必要に応じて編集して出力する。出力インタフェース2025もストリーム形式なので、出力されるデータはXPSドキュメント2041に対して編集処理を行ったXPSドキュメント2051となることが一般的である。また、ストリーム形式のインタフェースはXPSドキュメント以外のデータも扱えるので、XPSドキュメント2041を加工して得られるデータ、例えばプリンタが解釈可能な印刷コマンドなどに変換されて送信されることも考えられる。
【0036】
XPSドキュメントをプレビュー用ドキュメントとして扱う場合、XPSフォーマットのデータが必要となるため、プレビューフィルターでは入力インタフェースとしてストリーム形式を利用することが望ましい。しかし、XPSドキュメントは図1のような構造化文書を圧縮したデータであるため、XPSパートを取得するには解析処理が必要となる。それに対してリーチ形式のインタフェースでは、XPSパートとして分解されたデータを受信するため、XPSパートの編集が必要なレイアウト処理などを容易に行うことができる。また、出力インタフェースもリーチ形式の場合、編集したXPSパートをそのまま次のフィルターに送信すればよい。
【0037】
上述したように、入力インタフェースにリーチ形式を用いることにより、レイアウト処理などを容易に行うことができるため、図6(a)のようにレイアウトフィルターとしてリーチ形式を採用することが考えられる。その場合、前段のレイアウトフィルターからプレビューフィルターへのデータの受け渡しの際に、リーチ形式からストリーム形式への変換処理が行われるため、ドライバとしてのパフォーマンスが低下する。仮に後段の印刷コマンドフィルターもリーチ形式を採用している場合、ストリーム形式からリーチ形式に変換処理が行われるため、パフォーマンスはさらに低下する。
【0038】
ドライバにおいて使用されるフィルターの種類や並びなどは基本的には変更することができないため、プレビューを行わない場合でもプレビューフィルターを通過する必要があり、不要な変換処理が行われることになる。そこで図6(b)に示すように、リーチ形式のプレビューフィルターを用いて、プレビューを行う場合のみリーチ形式からSストリーム形式への変換を行う印刷制御システムに関して提案する。
【0039】
<プレビュー機能の概要>
図7を用いて本手法におけるプレビュー機能の概要について説明する。まず、プレビューフィルター703はレイアウトフィルター701から印刷データを受け取る。プレビューフィルターの入力インタフェースはリーチ形式なのでXPSパート毎に送られてくる。まずFDS711とFD713を受け取り、プレビューフィルター703で保持する。これはプレビュー後に印刷続行する際に次のフィルターへ送るためであるが、FDS711に関しては受け取り次第、次のフィルターに送ってしまうことも可能である。
【0040】
次にFP715を受け取ると、FP715とそれに付随するイメージやフォントなどのリソースを外部ファイルとして保存する。このXPSパートはプレビュー用XPSドキュメントの作成に使用される。
【0041】
プレビューフィルター703は全てのFPを受け取るとプレビューア731を起動する。起動したプレビューア731は、まずプレビュー用XPSドキュメントの作成を行う。XPSドキュメント741のベースを作成し、そこにFDS743、FD745を作成する。そして作成したFD745に外部ファイルとして保存したFP723とそれに付随するリソース725を追加し、プレビュー用XPSドキュメント741が作成される。作成されたプレビュー用XPSドキュメント741はプレビューア731によって表示され、プレビューが行われる。本実施例ではプレビュー用XPSドキュメント作成と表示をプレビューア731で行っているが、それぞれ別のアプリケーションを用意して行うことも考えられる。
【0042】
ユーザはプレビューア731によって表示されたプレビュー画面を確認し、印刷開始、もしくは印刷中止の命令を行う。プレビューア731はユーザの操作を受けて、プレビューフィルター703にユーザ操作に関する通知を行う。プレビューフィルター703は印刷開始の通知を受けると、保持していたXPSパートを適切な順番で次の印刷コマンドフィルター705に送信する。また、印刷中止の通知を受けると各フィルターに処理終了を通知して、印刷処理を終了する。
【0043】
<プレビューフィルター処理>
図8を用いてプレビューフィルターの処理について説明する。図8はプレビューフィルターの処理を示すフローチャートの一例である。本提案におけるプレビューフィルターは入力インタフェースとしてリーチ形式を使用しているので、XPSデータはXPSパート毎に取得される。
【0044】
まずプレビューフィルターはS101でFDSを取得する。FDSはプレビュー用XPSドキュメント生成の際にはプレビューアにおいて生成されるため、外部ファイルとして出力しないが、プレビュー終了後に次のフィルターへ送信するデータとなるため、プレビューフィルターにおいて保持される。次にプレビューフィルターはS103で参照用PTを取得する。参照用PT取得処理については図9を用いて後述する。続いてプレビューフィルターはS105で参照用PTの印刷設定情報のプレビュー設定がON(オン)かどうかを判定し、ONであればS107に移り、OFFであればS121に移る。
【0045】
S107からS119はプレビュー設定がONの場合の処理である。まずプレビューフィルターはS107でFDを取得する。取得したFDはFDSと同様にプレビュー用のXPSドキュメントを作成する際に使用されないので、プレビューフィルターにおいて保持しておき、プレビュー終了後に印刷を続行する際に次のフィルターに送信される。続いてプレビューフィルターはS109においてプレビュー用XPSドキュメント作成に用いるFPとそれに付随するリソースを取得し、プレビューアに受け渡すために外部ファイルとして保存する。FPおよびリソースの取得処理に関しては図10を用いて後述する。FPはFDと同様、プレビュー終了後に次のフィルターに送る必要があるため、外部ファイルとは別にプレビューフィルターによって保持される。全てのFPの取得が終了すると、S111に移りプレビューアを起動する。プレビューアの処理については図11を用いて後述する。
【0046】
プレビューフィルターはS113においてプレビューアの終了を監視し、プレビューアが終了するとS115に移る。プレビューフィルターはS115において、ユーザがプレビューアで印刷開始を指示したのか、印刷中止を指示したのかを判定し、印刷開始が選択された場合はS119に移り、印刷中止が選択された場合はS117に移る。
【0047】
S119ではプレビューフィルターは保持しているXPSパートを次のフィルター、本実施形態では印刷コマンド生成フィルターに送信する。S117ではフィルターパイプラインの各フィルターに処理終了を通知して、印刷処理を終了する。
【0048】
S121からS123はプレビュー設定がOFFの場合の処理である。S121ではプレビューフィルターは既に取得しているFDSを次のフィルターへ送信する。続いてプレビューフィルターはS123において残りのXPSパートを順次取得していき、取得した順に次のフィルターへ送信していき、全てのパーツの送信が終了するとフィルターの処理を終了する。
【0049】
<参照用PrintTicket取得処理>
フィルターパイプラインの各フィルターにおいて、印刷設定情報を取得するには前述したようにXPSのPTをマージする必要がある。XPS文書の各パートはPTを持つことが可能だが、逆に持たないことも可能である。また、たとえXPSパートがPTを持っていたとしても、N−upの情報しか記載されていないなど、不完全なPTである可能性がある。従ってFDSのPTを取得する際もユーザのデフォルト印刷設定のPTとのマージ処理が必要である。ここでデフォルト印刷設定のPTには、プリンタドライバで扱える全ての設定項目が格納されている。従ってマージ後のPTも全ての印刷設定項目を含む。
【0050】
図9はFDSのPTとユーザのデフォルト印刷設定のPTをマージし参照用PTを取得する処理のフローチャートの一例である。まずS201でプレビューフィルターはユーザのデフォルト印刷設定を格納したデフォルトPTを取得する。続いてS203でプレビューフィルターはFDSのPTを取得する。S205ではプレビューフィルターはFDSのPTが取得できたかどうかを判定し、取得できていればS209に移り、取得できなければS207に移る。S209ではプレビューフィルターは取得したFDSのPTとデフォルトPTをマージしたPTを参照用PTとし終了する。S207ではプレビューフィルターはFDSにPTが存在しなかったため、デフォルトPTを参照用PTとし終了する。
【0051】
ここで、全ての印刷設定項目とは、少なくともアプリケーションが設定可能な全ての設定項目のことを指しており、プレビュー済フラグのようなプリンタドライバ内部の設定項目はこれに含まれないものとする。
【0052】
このようにプリンタドライバが扱える全ての設定項目を含む参照用PTを取得することができる。
【0053】
<FPおよびリソースの取得処理>
リーチ形式のデータからプレビュー用XPSデータを生成するには、生成を行うプレビューアに必要なパーツを渡す必要がある。そのための方法の一つとして、必要なXPSパートを外部ファイルとして一時的に保存しする方法が考えられる。図10はプレビューフィルターにおいてFPとイメージやフォントなどのリソースを取得し、保存する処理の一例である。
【0054】
まず、プレビューフィルターはS301においてFPを取得する。FPを取得することができたら、S305でプレビューフィルターは取得したFPを外部ファイルとして保存して、S307に移る。S307ではプレビューフィルターはS301で取得したFPで使用されているリソースを取得する。ここで、使用されているリソースが存在しない場合はS301に移り、再度FPの取得を行う。リソースが存在する場合はS311に移り、プレビューフィルターは取得したリソースの種類を判定する。判定の結果、プレビュー用XPSドキュメントの作成に必要なリソースである場合はS313に移り、表示結果に直接関係のないリソースである場合はS305に移り別のリソースの取得を行う。本実施形態では外部ファイルとして保存するリソースとして、イメージ、フォント、カラープロファイル、リソースディクショナリーなどを想定しているが、プレビューアの実現する機能によって必要とされるリソースは変化するので、これに限定されるものではない。S313ではプレビューフィルターは取得したリソースを外部ファイルとして保存する。その後、S315においてプレビューフィルターはプレビューアにリソース情報を渡すために、FPとリソースの関係などを記載したリストファイルを作成し、リソースに関する情報を記載していく。他にもリストファイルに記載する情報には画像の種類(JPEG、PNG、TIFFなど)やフォントの種類などが挙げられる。また、前記リストファイルはプレビューアに情報を伝えるための一手段であり、その他に外部ファイルの名称を規則に基づき設定するなどが考えられ、その方法を限定するものではない。
【0055】
一つのFPに対して全てのリソースの取得が終わると、次のFPの取得を行い、またそのFPに付随するリソースの取得を行う。この動作はXPSデータの保持する全てのFPを取得するまで続けられる。
【0056】
<プレビューア処理>
前述したようにプレビューフィルターはプレビューアを呼び出し、プレビューアがプレビュー用XPSドキュメントを表示することでプレビュー行う。図11はプレビューアの動作の一例である。
【0057】
まず、プレビューアはS401のおいてプレビュー用XPSドキュメントの作成を行う。プレビュー用XPSドキュメントの作成処理については図12を用いて後述する。プレビュー用XPSドキュメントの作成が成功するとS403に移る。S403ではプレビューアは作成したプレビュー用XPSドキュメントを表示する。これによりユーザは自身の設定した印刷設定に基づく印刷結果のイメージを確認することができる。
【0058】
S405からS407はユーザからの印刷続行/中止の指示を監視する処理である。S405においてプレビューアは、ユーザがプレビューアの印刷開始ボタンを押すなど印刷開始命令を行ったことを検知すると、プレビューフィルターに印刷続行を通知し、自身を終了する。また、S407においてプレビューアは、ユーザがプレビューアの印刷中止ボタンを押すなど、印刷中止命令を行ったことを検知すると、プレビューフィルターに印刷中止を通知し、自身を終了する。プレビュー画面の表示はユーザからの印刷開始、もしくは印刷中止の命令があるまで行われ、その間に印刷設定の変更などを行うことも考えられる。なお、プレビューフィルターが次のフィルターに送信するXPSパートはプレビューフィルターにおいて保持されているデータを使用するため、プレビュー用XPSドキュメントは印刷データとしては使用されず破棄される。
【0059】
また、本実施例ではプレビューアにおいてプレビュー用XPSドキュメントの作成を行っているが、プレビューフィルターにおいて作成する方法も考えられる。
【0060】
<プレビュー用XPSドキュメント生成処理>
図12はプレビュー用XPSドキュメント生成処理の一例である。まずプレビューアはS501において空のXPSドキュメントを作成し、S503に移る。S503ではプレビューアはS501で作成したXPSドキュメントにFDSを作成する。次にプレビューアはS505で、S503で作成したFDSにFDを追加する。このFDSとFDは本実施形態ではプレビューフィルターにおいて保存していないため、プレビューアで生成する必要があるが、プレビューフィルターにおいて他のパーツ同様に保存しておき、追加することも考えられる。また本実施形態では印刷データであるXPSドキュメントにFDが複数存在する場合でも、プレビュー用XPSドキュメントにはFDを1つだけ作成し、1つ以上任意数存在するFPは全て1つのFDに従属させる形態をとっている。これは印刷プレビューにおいて印刷結果を確認する上で表示に影響しない範囲で最小限の構成でプレビュー用XPSドキュメントを生成するためである。ただし、表示内容にFDが影響するような表示形態を用いた際にはFDも元データと同じ構成にする必要があるなど、実現したいプレビューアの機能に基づき必要な構成は変化することは言うまでもない。
【0061】
S507からS513はFPの追加処理である。まずプレビューアはS507において、プレビューフィルターによって外部ファイルとして保存されたFPの中に、プレビュー用XPSドキュメントに追加していないFPが存在するかを判定する。そして、存在する場合はS509に移り、全てのFPの登録が終了している場合はプレビュー用XPSドキュメントの作成処理を終了する。XPSドキュメント中にFPは一つ以上存在するため、初回の判定では必ずS509に移る。S509ではプレビューアは空のFPを作成する。S511からF513ではこの作成したFPに対してリソースの登録と内容の記述を行う。
【0062】
まずS511ではプレビューアは作成したXPSドキュメントにリソースの登録を行う。FPへのリソース登録処理について図13を用いて説明する。まずプレビューアはS601において現在のFPに登録するかの判定が行われていないリソースが存在するかを判定し、存在する場合はS603へ移り、存在しない場合はリソースの登録処理を終了する。次にS603でプレビューアは未登録のリソースが現在処理を行っているFPで使用されているものであるかを判定し、該当する場合はS605へ移り、該当しない場合はS601に戻る。この判定はS311で作成されたリソース情報のリストを参照することで行う方法が考えられるが、それに限定するものではない。S605ではプレビューアは現在処理を行っているFPに対して該当するリソースを登録する。登録が終了するとS601に戻り、全てのリソースが登録されるまで繰り返し、現在処理中のFPへのリソース登録処理終了する。
【0063】
リソースの登録が終了するとS513に移り、FPの内容を記述する。これはプレビューフィルターで外部ファイルとして保存したFPの内容に基づいて記述していくが、リソースファイルパスや表示領域など、プレビュー用XPSとして作成する上で書き換えが必要な部分に関しては適宜修正を行った上で登録を行う。
【0064】
一つのFPの登録が終了するとS507に戻り、未登録のFPが存在するかを判定し、全てのFPが登録されるまでS507からS513の処理を繰り返す。S507において全てのFPの登録が終了したと判定されると、プレビュー用XPSドキュメントの作成処理を終了し、S403においてプレビューアは作成したXPSドキュメントを表示する。
【0065】
<プレビュー用XPSドキュメント>
図14は印刷データから作成されるプレビュー用XPSドキュメントの一例である。1401は印刷データであるXPSドキュメントである。1つのFDS1403の下に2つのFD1405と1407が存在する。FD1405にはFP1409、FD1407にはFP1411とFP1413が存在し、FP1409はImage1415を、FP1413はImage1417とFont1419をリソースとして使用している。また、印刷設定を記述したPTがそれぞれFDS1403(PT1421)、FD1405(PT1423)、FP1411(PT1425)に付加されている。
【0066】
プレビューフィルターによって、これらのXPSパートの中からプレビュー用XPSドキュメントの作成に必要なパーツを出力する。ここでは各ページの表示内容が記述されたFPとFPで使用されているリソース(サムネイルなどの表示に影響しないものを除く)を出力している。具体的にはFP1409、1411、1413と、リソースであるImage1415、1417とFont1419が外部ファイルとしての出力対象となる。
【0067】
この出力したXPSパートを元にプレビュー用XPSドキュメント1431を作成する。まずFDS1433を作成し、それに付随するようにFD1435を作成する。さらにFD1435の下にFP1409から1413を追加し、それぞれのFPが使用しているリソースを適切に配置する。各FPは印刷設定などの条件によって内容を書き換えた上で登録することも考えられる。これによってプレビュー用XPSドキュメント1431が作成される。
【0068】
本実施形態ではプレビュー用XPSドキュメントのFDを1つとしているが、プレビューをFD単位で表示したい場合など、表示形式や目的に応じて元データと同じようにFDを配置することも考えられる。また、本実施形態ではPTやサムネイルなどを排したプレビュー用XPSドキュメントを作成しているが、プレビューアの表示形態に応じて必要となるXPSパートは異なってくるため、プレビュー用XPSドキュメントの形態はこれに限定されるものではない。
【0069】
<実施形態2>
実施形態1ではドライバのフィルター構成が変更できない状況を想定している。実際に現在のOSではフィルター構成はコンフィグファイルと呼ばれるXMLファイルによって決定されており、これを修正しなければフィルター構成を変更することはできない。フィルターパイプラインはこのコンフィグファイルを参照してフィルターを呼び出しているので、印刷が開始してからドライバにおいてフィルター構成を変更することはできない。従って、プレビュー設定のON/OFFでプレビューフィルターの有無を決定することはできない仕様になっている。
【0070】
しかし今後、印刷設定に応じてフィルター構成を変更可能な印刷システムが登場した場合には、実施形態2のシステムの構築が可能となる。印刷設定によってフィルター構成を変更する印刷制御装置の一例を図15に示す。
【0071】
印刷処理が開始されると、まずS701でレイアウトフィルターがレイアウト処理を行う。同時にレイアウトフィルターではS703において現在の印刷システムがフィルター構成を変更可能かどうか判定する。この判定基準としてはOSや印刷システムに使用されているモジュールのバージョン情報などが考えられる。フィルター構成を変更可能な印刷システムの場合はS705に、変更できない印刷システムの場合はS707に移る。
【0072】
S705ではレイアウトフィルターはプレビュー設定のON/OFFを判定する。プレビュー設定がONの場合はS707に移り、OFFの場合はS709に移る。
【0073】
S707ではプレビューフィルターが処理を行う。本実施例においてS707の処理を行うプレビューフィルターは実施形態1のプレビューフィルターを想定しているが、実施形態1の入力インタフェースとしてリーチ形式を用いたフィルターに限らず、ストリーム形式を用いたフィルターを用いることも考えられる。
【0074】
S709ではプレビューフィルターがフィルター構成から削除される。これによって、プレビューを行う場合のみプレビューフィルターを通過し、プレビューを行わない場合には、レイアウトフィルターから印刷コマンドフィルターに直接データが送られる構成となる。
【0075】
S711では印刷コマンドフィルターが印刷データをプリンタの解釈可能な印刷コマンドに変換し、プリンタに送信し、ドライバ処理は終了する。
【0076】
上記処理によって、フィルター構成が変更可能な印刷システムでは、プレビュー設定がONの場合のみプレビューフィルターによる処理を行うことが可能となる。
【0077】
<実施形態3>
印刷プレビューにおいて、プレビューアは印刷設定を変更する機能を有することも考えられる。実施形態3では、実施形態1のプレビュー機能において、プレビュー画面で変更した印刷設定を印刷結果に反映する方法について説明する。
【0078】
実施形態3におけるプレビューフィルターの処理について図16を用いて説明する。基本動作については実施形態1で説明したプレビューフィルターの動作と同じであるが、印刷設定を記述したPTを外部ファイルとして保存する処理が追加されている。S801からS803において、プレビューフィルターはFDSの取得と参照用PTの取得を行う。S805でプレビューフィルターは取得した参照用PTを外部ファイルとして保存する。同様にプレビューフィルターはS809でFDを取得し、S811でFDのPTを取得する。FDにはPTが付加されていないこともあるため、取得ができた場合はFDのPTを外部ファイルとして保存し、取得できなかった場合はS817に移り、FPの取得を行う。
【0079】
FPとリソースの取得処理について図17を用いて説明する。基本動作は実施形態1のFPおよびリソースの取得処理と同じであるが、S907からS911においてFPのPT取得処理が追加されている。プレビューフィルターはS907でFPのPTの取得を行い、取得ができた場合にはS911でFPのPTを外部ファイルとして保存する。これによりFPとPTとリソースが外部ファイルとして保存されることになる。
【0080】
FPとリソースの取得が全て終了すると、プレビューフィルターはS819でプレビューアを起動する。実施形態3におけるプレビューアの処理について図18を用いて説明する。まず、実施形態1と同様にプレビューアはS1001でプレビュー用XPSドキュメントを作成し、S1003で作成したXPSドキュメントを表示する。ユーザは表示を確認した上で、プレビューアにおいて印刷設定の変更を行うことができる。印刷設定の変更とは用紙や給紙位置の変更、レイアウトの変更などが考えられる。印刷設定の変更にはFPとPT(もしくはそのどちらか一方)の更新が必要になる。そこでプレビューアはS1005でユーザが印刷設定を変更したと判断すると、S1007で外部ファイルのFPとPTを新しい印刷設定に従って更新する。元データにPTが付加されておらず、外部ファイルとして保存されていない場合は、FDのPTを作成し、変更内容を反映させる。また、表示内容に影響のある設定を変更する場合は、更新した外部ファイルを用いてプレビュー用XPSドキュメントを再構築し、表示することでユーザは印刷結果の変化を確認しながら印刷設定の変更を行うことができる。また、変更結果を確認した後に元の設定の戻したいという要求が発生することが考えられるため、更新した外部ファイルとは別に、元データと各設定変更時に作成したデータなどを保存しておく。これにより再び変換処理を行う必要がなくなる。また、併せて各段階で作成したプレビュー用ドキュメントも保持しておくと、設定を戻した際の表示の更新を容易に行うことができる。
【0081】
ユーザは希望の印刷設定を選択すると、印刷開始、もしくは印刷中止の命令を行う。印刷開始が指示されるとプレビューアはS1015において印刷開始をプレビューフィルターに通知する。同様に印刷中止を指示した際は、プレビューアはS1013において印刷中止をプレビューフィルターに通知するが、印刷中止時の処理は実施形態1と同様のため、以下印刷開始が通知された場合の説明を行う。
【0082】
プレビューフィルターはS821においてプレビューアの終了を検知すると、プレビューアからの通知に従って処理を行う。ここで印刷開始が通知された場合、プレビューフィルターはS825に移り、プレビューアが更新した外部ファイルをXPSパートとして次のフィルターへ送信する。XPSパート送信処理について図19を用いて説明する。まず、プレビューフィルターはS1101で参照用PTがプレビューアによって更新されているかを判定し、更新されている場合はS1103に移り、更新されていない場合はS1105に移る。S1103ではプレビューフィルターは更新された参照用PTをFDSのPTとして登録し、S1105に移る。S1105ではプレビューフィルターは取得時に保持していたFDSを次のフィルターに送信する。
【0083】
FDに関しても同様に、プレビューフィルターはS1107でFDのPTが更新されているかを判定し、更新されている場合は、更新されたFDのPTを付加し、FD取得時に保持していたFDを次のフィルターに送信する。
【0084】
次にFPの送信を行うが、FPはプレビューフィルターで保持するデータではなく、外部ファイルとして保存されているデータを使用することで、プレビューアが更新したFPの内容を印刷結果に反映することができる。まず、FDS、FDの時と同様、プレビューフィルターはS1113でFPのPTが更新されているか判定する。更新されている場合、プレビューフィルターはS1115で更新されたFPのPTを登録する。そしてS1117でプレビューフィルターは外部ファイルとして保存されているFPを読み出し、次のフィルターへ送信する。全てのXPSパートの送信が終了すると、プレビューフィルターの処理は終了する。本実施例ではFD、FP共に1回の送信しか記述していない。しかしながら、共に1つのXPSデータ中に複数存在することが可能なパートなので、S1107からS1111のFDの送信処理と、S1113からS1117のFPの送信処理はFD、FPがそれぞれ存在する数だけ実行される。
【0085】
本実施例では全てのPTを外部ファイルとして保存するように記述しているが、プレビューアで実行可能な設定変更の種類によって、内容を反映する必要のあるPTが異なるため、プレビューアの機能に応じて必要なPTのみを抽出すればよい。また、外部ファイルとして保存しなくても、変更内容だけをプレビューアからプレビューフィルターに通知することで、プレビューフィルターにおいてPTの更新を行い、登録する方法も考えられる。
【0086】
上記処理によってプレビューアで行った印刷設定を反映した印刷を行うことが可能となる。また、本実施形態ではプレビューアによってXPSデータの編集を行っているが、表示機能を持たないXPSドキュメントの編集を行うアプリケーションを用いて編集を行うことも考えられる。その場合も本実施形態と同様に編集アプリケーションによる編集内容を印刷結果に反映させることが可能である。
【0087】
<その他の実施形態>
実施形態1から3ではプレビューフィルターとプレビューアは別モジュールとして扱われている。しかし、必ずしも別モジュールとして扱う必要はなく、プレビューフィルターがフィルター間のデータの受け渡しに加え、プレビュー用XPSドキュメントの生成と表示を担うことも考えられる。この場合、FPやリソースをプレビューアに渡す必要がなくなる。プレビューフィルターによってプレビュー機能に関する全処理を行う場合のプレビューフィルターの処理について図21を用いて説明する。まず、プレビューフィルターはS1201で前のフィルターからFDSを取得し、S1203で取得したFDSから参照用のPTを取得する。次にプレビューフィルターはS1205で取得した参照用PTからプレビュー設定を判定し、プレビュー設定がONの場合はS1207に移り、OFFの場合はS1231に移る。
【0088】
S1207からS1221はプレビュー設定がONの場合の処理である。プレビューフィルターはS1207でFDを、S1209でFPを取得する。そして、プレビューフィルターはS1211でS1209までに取得したXPSパートを用いてプレビュー用XPSドキュメントの生成を行う。プレビュー用XPSドキュメントの生成には前述したプレビューアにおけるプレビュー用XPSドキュメント生成処理を用いる方法などが考えられる。次にプレビューフィルターはS1213においてS1211で生成したプレビュー用XPSドキュメントを表示する。ユーザは表示された内容を確認し、印刷開始か印刷中止を支持する。プレビューフィルターはS1215からS1217においてユーザからの指示を監視し、ユーザが印刷開始を指示した場合はS1221に移り、印刷中止を指示した場合には1219に移る。S1221ではプレビューフィルターは、取得しているXPSパートを順次、次のフィルターに送信して自身の処理を終了する。S1219ではプレビューフィルターは、各フィルターに終了通知を出し、ドライバの処理を終了する。
【0089】
S1231からS1233はプレビュー設定がOFFの場合の処理であり、プレビューフィルターは残りのXPSパートを順次取得、送信して、全てのXPSパートの送信が終わると自身の処理を終了する。
【0090】
前記実施形態ではプレビューアを用いずに本提案のプレビュー機能を実現することが可能である。また、前記のようにプレビューに関わる全ての処理をプレビューフィルターに行わせるのではなく、プレビュー用XPSドキュメントの生成までをプレビューフィルターで行い、表示をプレビューアで行うなども考えられる。この場合、プレビューフィルターからプレビューアへは生成されたプレビュー用XPSドキュメントが渡される。このように各モジュールの担う処理の範囲は限定されるものではない。
【0091】
また、本実施の形態では、ストリーム形式のデータを取り扱うフィルターとして、プレビューを例に説明したが、プレビューフィルター以外のストリーム形式のデータを取り扱うフィルターにも適用できる。
【0092】
以上説明したように本実施形態によれば、リーチ形式のインタフェースを用いたプレビュー用のフィルターを設けることによって生じるフィルター間のデータ変換処理の負荷を軽減し、プレビューOFF時のパフォーマンスの低下を抑制することが可能となる。
【図面の簡単な説明】
【0093】
【図1】XPSの論理構造の概念図
【図2】本発明の実施形態に係わる印刷システムの一例を示すブロック図
【図3】本発明の実施形態に係わるプリンタドライバ一例を示すブロック図
【図4】本発明の実施形態に係わる印刷設定ダイアログの一例を示す図
【図5】本発明の実施形態に係わるプレビューウィンドウの一例を示す図
【図6】本発明の実施形態に係わるフィルターと入出力インタフェースの関係を示す図
【図7】本発明の実施形態に係わるプレビュー処理の概念図
【図8】本発明の実施形態に係わるプレビューフィルターの処理を示すフローチャート
【図9】本発明の実施形態に係わる参照用PrintTicketを取得する処理のフローチャート
【図10】本発明の実施形態に係わるXPSパートの取得処理を示すフローチャート
【図11】本発明の実施形態に係わるプレビューアの処理を示すフローチャート
【図12】本発明の実施形態に係わるプレビュー用XPSドキュメント作成処理を示すフローチャート
【図13】本発明の実施形態に係わるFPへのリソース登録処理を示すフローチャート
【図14】本発明の実施形態に係わる印刷データとプレビュー用XPSドキュメントの関係を示す図
【図15】本発明の実施形態2に係わる印刷処理を示すフローチャート
【図16】本発明の実施形態3に係わるプレビューフィルターの処理を示すフローチャート
【図17】本発明の実施形態3に係わるXPSパートの取得処理を示すフローチャート
【図18】本発明の実施形態3に係わるプレビューアの処理を示すフローチャート
【図19】本発明の実施形態3に係わるXPSパート送信処理を示すフローチャート
【図20】フィルターにおけるインタフェースの動作の一例を示す図
【図21】プレビューア機能を備えたプレビューフィルターの処理を示すフローチャート
【技術分野】
【0001】
本発明は、例えば印刷処理を行う前に、印刷イメージをユーザが認識可能に表示する、いわゆるプレビュー機能等を有する情報処理装置、プレビュー方法、及びプログラムに関する。
【背景技術】
【0002】
オペレーティングシステム(OS)としてMicrosoft社のWindows(登録商標)を搭載した計算機を用いた印刷システムにおいて、アプリケーションプログラム等で生成された印刷データは、OS標準のデータ形式でスプールファイルに格納される。OSは印刷データを印刷するためにプリンタドライバを呼び出す。そしてプリンタドライバが、スプールファイルに格納された印刷データを読み取り、イメージ生成処理部により印刷イメージを作成し、さらにプリンタが解釈可能な印刷コマンドに変換する。印刷コマンドはプリンタに送信され、プリンタは印刷コマンドを解釈し、記録媒体に像を形成することで印刷処理が実行される。
【0003】
この印刷システムにおいてプレビュー機能を提供するために、プリンタドライバは印刷処理を開始した時に、印刷イメージを表示するプレビューアを実行する。そして画像生成部はプレビュー用の印刷イメージを作成し、プレビューアは当該プレビュー用の印刷イメージを表示する。つまり、プリンタドライバにおいて、印刷イメージを作成する当該画像生成部と、印刷イメージを表示する当該プレビューアとが協調することにより、プレビュー機能が実現される。(特許文献1参照)
【特許文献1】特開2004−102618号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、近年では前記のような従来の印刷システムとは異なる印刷システムが登場してきた。この新しい印刷システムでは、スプールファイルに格納されるデータ形式として従来のEMF形式(Enhanced Meta File)ではなくXPS形式(XML Paper Specification)が用いられる。XPSについては図1を用いて後述するが、Microsoft社が開発したオープン規格の電子文書フォーマットであり、オープン規格であるため、OSによる表示手段が提供されている。これを利用することで、従来の印刷プレビューは印刷データをイメージに変換して表示を行っていたものが、印刷データであるXPSをイメージに変換することなく表示することが可能となる。
【0005】
また、この新しい印刷システムにおけるプリンタドライバ(XPS Printer Driver)はフィルターと呼ばれるモジュールによって構成される。図20に示すように、フィルターは2種類の入出力インタフェースのどちらかを利用してフィルター間のデータの受け渡しを行う。2種類のインタフェースに関する詳細については後述するが、XPSをパーツ毎に扱うリーチ形式と、XPSをバイトストリームとして扱うストリーム形式が存在する。ストリーム形式のデータは、パーツを一まとめにしてZIP圧縮されたものである。前のフィルターの出力インタフェースと、次のフィルターの入力インタフェースが異なると、その間のデータ変換はOSの印刷サポート機能によって行われるため、フィルターの開発者はインタフェースの違いを意識する必要はない。ただし、その変換にも処理時間が発生するため、ドライバのパフォーマンス向上のためには、同一形式のインタフェースを用いてフィルターを構成していくことが望ましいと言える。また、プリンタドライバのフィルター構成は構成を記述したXMLファイルで管理されており、フィルター構成を印刷のたびに印刷データや設定に基づいて変更することができないことが一般的である。
【0006】
ここでプレビュー機能を司るフィルターを用意する場合、表示にはXPSデータが必要となるため、パーツを扱うリーチ形式ではなく、ストリーム形式を入力インタフェースとして用いることが望ましい。しかし、リーチ形式のインタフェースを用いたフィルターはXPSをパートごとに扱えるため、各パートの編集が必要なレイアウト処理等に適しており、レイアウト用のフィルターはリーチ形式を採用することによって開発コストの抑制につながると考えられる。このように、プレビューフィルターの前後のフィルターがリーチ形式を採用して作成されていた場合、ストリーム形式のプレビューフィルターでは、前記の変換処理が発生し、ドライバ全体のパフォーマンスの低下につながる。
【0007】
本発明は上記の問題点に鑑み、フィルター間のデータ変換処理の負荷を軽減し、パフォーマンスの低下を抑制することが可能とすることを目的とする。
【課題を解決するための手段】
【0008】
上記目的を達成するために、本発明の情報処理装置は、
前段のフィルターからリーチ形式のデータを取得する取得手段と、
プレビュー設定がオンであるか判定する判定手段と、
前記判定手段によりプレビュー設定がオンであると判定された場合、前記取得手段により取得したリーチ形式のデータをストリーム形式のデータに変換する変換手段と、
前記変換手段により変換されたストリーム形式のデータに基づきプレビューを行うプレビュー手段と、
前記判定手段によりプレビュー設定がオンでないと判定された場合、前記取得手段により取得したリーチ形式のデータを後段のフィルターに送信する送信手段とを有することを特徴とする。
【0009】
また、本発明の情報処理装置は、
プレビュー設定がオンであるか判定する判定手段と、
前記判定手段によりプレビュー設定がオンであると判定された場合、前段のフィルターからリーチ形式のデータを取得し、取得したリーチ形式のデータをストリーム形式のデータに変換させ、変換されたストリーム形式のデータに基づきプレビューを行わせるプレビューフィルターに処理を実行させる手段と、
前記判定手段によりプレビュー設定がオンでないと判定された場合、前記プレビューフィルターを削除する削除手段とを有することを特徴とする。
【0010】
また、本発明の情報処理装置は、
前段のフィルターからリーチ形式のデータを取得する取得手段と、
特定の機能がオンであるか判定する判定手段と、
前記判定手段により特定の機能がオンであると判定された場合、前記取得手段により取得したリーチ形式のデータをストリーム形式のデータに変換する変換手段と、
前記判定手段により特定の機能がオンでないと判定された場合、前記取得手段により取得したリーチ形式のデータを後段のフィルターに送信する送信手段とを有することを特徴とする。
【発明の効果】
【0011】
上記構成により本発明によれば以下のような効果が得られる。
【0012】
フィルター間のデータ変換処理の負荷を軽減し、パフォーマンスの低下を抑制することが可能となる。
【発明を実施するための最良の形態】
【0013】
<実施形態1>
以下、図面に示す実施例に基づき本発明を詳細に説明する。尚、本文中のXPSとはXML Paper Specificationの略で、Microsoft社が開発したオープン規格の電子文書フォーマットの一つである。
【0014】
<XPS文書の構成>
本文の理解を容易にするため、まずXPSについて簡単に説明する。XPS文書はFixedDocumentSequence(以下FDS)をルートとするツリー構造になっている。FDSは複数のFixedDocument(以下FD)を持ち、FDは複数のFixedPage(以下FP)を持つ。FDSとFDとFPのそれぞれは、XPSパートと呼ばれることがある。FPは文書のページの内容をXML形式で記述しており、実際に表示または印刷される内容を含んでいる。FPのページ内容で使用されるフォントや画像等のリソースは複数のFPで共有することができる。また、FDSとFDとFPははそれぞれ印刷設定をPrintTicket(以下PT)で持つことができる。PTはXPS文書を印刷する際の印刷設定をXML形式で記述したものである。ここで各FPを印刷する際に使用する印刷設定は、FDSのPTと、印刷対象FPの親FDのPTと、印刷対象FPのPTをマージしたPTとなる。
【0015】
図1はXPS文書の論理構造を示したブロック図の一例である。XPS文書101の論理構造はFDS103がルートとなるツリー構造となっている。FDS103は子としてFD111とFD113を有する。FD111は子としてFP121とFP123を有する。FD113は子としてFP125を有する。印刷設定を記述したPTについては、FDS103がPT131を、FD111がPT133を、FP121がPT135を、FD113がPT137をそれぞれ保持している。FP123とFP125はPTを保持していない。また、FP121とFP123がフォントや画像等のリソース141を共有しており、FP125はフォントや画像等のリソース143を利用している。ここで例えばFP121を印刷する際に使用するPTは、PT131とPT133とPT135をマージしたPTとなる。
また、実際のXPS文書は前記図1の構造化文書が圧縮されたデータである。
【0016】
<印刷システムの構成>
図2は本発明の実施の一形態に係る印刷システムの構成を示すブロック図である。プリンタ201は、画像形成を行うインクジェット方式のプリンタであり、後述するデータ処理装置202で生成された印刷コマンドに基づいて記録媒体200に画像の形成を行う。プリンタの種類については特に問わないが、ここではインクジェット方式のカラープリンタを想定している。データ処理装置202は、アプリケーションが印刷ジョブを作成し、プリンタドライバが印刷ジョブのスプールデータから、接続されたプリンタ201の印刷動作を制御する印刷コマンドの生成を行う。本実施形態ではデータ処理装置202としてパーソナルコンピュータを用いている。印刷の設定に関するユーザからの指示や入力を受ける役割も果たす。データ処理装置202は、各種機能ブロック230〜235、240〜243によって構成される。また、データ処理装置202には、データ処理装置202を制御するOSが組み込まれており、このOS上で各種機能ブロックが動作する。通信インタフェース203は、データ処理装置202とプリンタ201を接続する通信インタフェースである。本実施形態ではシリアルインターフェースであるUSBを用いている。しかしながら、この他に、IEEE1394、Ethernet(登録商標)、IrDA、IEEE802.11、電力線などのシリアルインターフェースや、セントロニクス、SCSIなどのパラレルインタフェースを利用することもできる。通信を実現するものであれば有線/無線を問わずどのようなインタフェースであっても構わない。このように、本実施形態における印刷システムとは、単体の装置ではなく、データ処理装置202と画像形成を行うプリンタ201とが特定の双方向インタフェースで接続された構成をとっている。しかしながら、この例に限られることなく、このようなデータ処理装置とプリンタの機能が一体となった装置一体型の印刷システムであってもよい。尚、プリンタ201及びデータ処理装置202とも本実施形態の特徴を説明する上で特に必要ないと思われる機能については省略する。
【0017】
また、前記各種機能ブロックはソフトウェアでもよい。このようなソフトウェアのプログラムコードを供給するための記憶媒体としては、例えば、フロッピィディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM,CD−R、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。
【0018】
<プリンタドライバの動作>
図3は、本発明におけるプリンタドライバの実施形態を説明するために図2の印刷システムをOSの印刷サポート機能とプリンタドライバを中心に概念的に表したブロック図である。本発明に関わるモジュールは、印刷設定機能を有するユーザインタフェースモジュール315と、フィルター群319である。フィルター群319は、XPSデータのページをレイアウト処理する機能を有するレイアウトフィルター321と、プレビュー機能を提供するためのフィルターであるプレビューフィルター323と、XPSデータをプリンタが解釈可能な印刷コマンドに変換する機能を有する印刷コマンドフィルター325で構成される。ここでフィルターとは、一般的に入力されたデータをもとに、加工、変換、無変換、生成等の工程を介して、何らかのデータを出力する機能を有するプログラムのことを称する。
【0019】
図3における印刷システムでは、アプリケーション301が作成した文書の各ページの印刷データは、OSの印刷サポート機能313を通じてXPSスプールファイル317に一時的に蓄えられる。これをプリンタドライバのフィルター群319が、印刷設定情報に基づきプリンタが解釈可能な印刷コマンドに変換してプリンタ331に供給して印刷されるように構成されている。
【0020】
ユーザインタフェースモジュール315は、一般に印刷に使用する用紙サイズや印刷方向、その他の属性を設定する機能を提供する。同時に本発明におけるユーザインタフェースモジュール315は、プリンタによる印刷動作を開始する前に印刷イメージを表示するプレビューを設定する機能を有する。ユーザインタフェースモジュール315は、複数の印刷設定項目の設定値が格納された印刷設定情報をアプリケーション301に返却する。ユーザインタフェースモジュール315が提供する印刷設定ダイアログの一例については図4を用いて後述する。
【0021】
アプリケーション301は作成した任意の文書の印刷にあたり、OSの印刷サポート機能313に対して、印刷開始や印刷終了を通知したり、印刷設定を行うためにユーザインタフェースモジュール315から返却された印刷設定情報を通知したり、文書の各ページの描画開始や描画終了を通知する。OSの印刷サポート機能313は、アプリケーションが描画した内容や印刷設定情報をXPSスプールファイル317に格納する。各フィルターはスプールされた印刷ジョブをデスプールする際にOSの印刷サポート機能から呼び出される。
【0022】
プリンタドライバのフィルター群319は一つ以上のフィルターで構成されており、印刷時にXPSスプールファイルから印刷ジョブを読込み、プリンタが解釈可能な印刷コマンドに変換してプリンタ331に供給し、印刷を行う機能を有する。本実施形態におけるフィルター群319は、レイアウト処理部であるレイアウトフィルター321と、プレビュー文書作成部であるプレビューフィルター323と、印刷コマンド変換部である印刷コマンドフィルター325で構成される。
【0023】
レイアウトフィルター321はXPSスプールファイル317に格納されたXPSデータを入力とし、印刷設定情報に基づきページのレイアウト処理を行い、レイアウト済みのXPSデータを出力する機能を有する。本実施例におけるレイアウト処理とは例えば複数のページを一つの用紙面に印刷するN−up印刷や、一つのページを複数の用紙面に印刷するポスター印刷等を含む。
【0024】
プレビューフィルター323は、レイアウトフィルター321の出力を入力とし、印刷設定に基づきユーザにプレビュー機能を提供する。
【0025】
印刷コマンドフィルター325はプレビューフィルター323の出力を入力とし、印刷設定情報に従い、XPSデータをプリンタが解釈可能な印刷コマンドに変換し出力する機能を有する。印刷コマンドフィルター325が入力のXPSデータを一度イメージデータに変換する場合、一般的にレンダーフィルターと呼ばれる。レンダーフィルターはインクジェットプリンタに代表される廉価なラスタープリンタ用のプリンタドライバにおいて多く見られる。印刷コマンドフィルター325がレンダーフィルターとして動作する場合は、入力のXPSデータを一度イメージデータに変換する。その後、色空間の変換や二値化等の画像処理の過程を経て、ラスタープリンタが解釈可能な印刷コマンドに変換される。ページプリンタに代表される高機能なプリンタにおいて、プリンタが解釈できる印刷コマンドの種類にXPSが含まれるならば、印刷コマンドフィルター325は入力のXPSデータを編集しXPSデータを出力する。印刷コマンドフィルター325にて処理する必要がなければ、入力のXPSデータをそのまま出力するか、印刷コマンドフィルター325はプリンタドライバに含めなくても良いことは言うまでもない。
【0026】
出力デバイスであるプリンタ331は、印刷コマンドフィルター325で生成された印刷コマンドを解釈し、可視画像を印刷用紙に対して形成する機能を持つ。印刷用紙341で図示される印刷結果の例は、レイアウトフィルター321が2−upの処理を行った場合を示している。
【0027】
<印刷設定画面>
図4は本実施形態における印刷モードや各種用紙設定を行う際に表示される印刷設定ダイアログの一例を示す図である。図4において、印刷設定ダイアログ401は、表示エリア402〜411、420〜431から構成される。印刷設定では表示する項目が非常に多いため、タブシートを使用して設定項目を内容ごとに分けて見やすい構成にするのが通例である。
【0028】
図4に基本設定タブ402が選択された場合の表示例を示す。基本設定の簡易表示エリア420には、文字情報だけでなく視覚に訴える形で設定された情報を表示する。用紙種類選択部422は、用紙の種類を表示するとともに利用者により選択させることができる。用紙種類選択部422はドロップダウンメニューとなっており普段は選択されている用紙の種類が表示され、そこをクリックすることで選択可能な用紙種類がリスト表示される。選択可能な用紙の種類はプリンタで印刷可能な用紙であり、図示されている普通紙の他にも例えば光沢紙、コート紙、写真専用紙、ハガキ、年賀状葉書等が含まれる。給紙方法選択部423は、プリンタ本体が用紙を給紙する給紙方法を表示し、利用者による給紙方法の選択をさせることができる。利用者は、給紙方法選択部423により、たとえば自動給紙口である給紙トレイや給紙カセット、または印刷用紙を一枚ずつ手動で給紙する「手差し給紙」などを選択できる。印刷品質選択部424は利用者に印刷の品位を設定させるための項目である。色調整部425は利用者に印刷の色を調整させるための項目である。モノクロ印刷設定部426は、印刷文書がカラーであっても印刷結果をグレースケールにするためのチェックボックスである。プレビュー印刷設定部427は、各種印刷設定がどのように印刷文書に反映されるかを、プリンタによる実際の印刷が行われる前に確認するためのチェックボックスである。標準設定部431が押されると、基本設定402の設定が標準(出荷時設定)に戻される。
【0029】
ユーザは各項目を選択した後にOKボタン408を押下することで印刷設定ダイアログ401を閉じ、選択した印刷設定を印刷に反映させることができる。キャンセルボタン409を押下すると印刷設定ダイアログ401が閉じ、選択した設定項目の内容は破棄され印刷に反映されることはない。適用ボタン410は印刷設定ダイアログ401を開いたままで選択した印刷設定を印刷に反映させることができる。ヘルプボタン411は基本設定402の各設定項目に関する説明文を別ウィンドウで表示させることができる。
【0030】
<プレビュー制御モジュールのプレビューウィンドウ>
図5に、本実施の形態におけるプレビュー制御モジュールによって提供される表示画面(プレビューウィンドウ)の一例を示す。印刷プレビューウィンドウ501は、プレビュー画像や印刷ジョブの印刷設定等を表示するための表示エリアと、ユーザがプレビュー画像の表示方法等を変更するための入力手段を兼備している。
【0031】
メニューバー502は、ユーザは表示切り替え等プレビューアへの命令をメニュー形式で選択することができる。ユーザ操作部503〜506が用意される領域はツールバーであり、ユーザはメニューバー502を使用しなくともツールバー503を押下することで容易にプレビューページの切り替え等を行うことができる。ページ切り替えボタン503は4つのボタンで構成されており、先頭ページ、前ページ、次ページ、最終ページへプレビュー表示を切り替えることが可能である。504はプレビュー画像の表示サイズを変更する為のドロップダウンリストで、全体表示や100%、200%表示等を選択することができる。印刷開始ボタン505においては、ユーザがこのボタンを押下することでプレビューアを終了し、プレビューしていたプレビュー用XPS文書を印刷処理可能な状態にすることができる。印刷中止ボタン506においては、ユーザがこのボタンを押下することでプレビューアを終了し、印刷ジョブをキャンセルすることができる。プレビュー表示領域507は、プレビュー用XPSファイルの内容を利用し、印刷用紙と印刷用紙に形成されるであろう可視象を印刷イメージとして表示する。表示領域508はプレビュー機能を実行している印刷ジョブの印刷設定に関わる代表的な設定項目の設定値を表示する。そして、本図においては文書の総ページ数は3ページであり、現在プレビュー表示しているページ番号は2ページであり、印刷設定で設定された部数は1部であり、かつ等倍印刷が設定されていた例を示している。
【0032】
また、本実施形態において、図5に例示する表示画面は、プレビュー設定がON(オン)である印刷設定情報を伴う印刷ジョブがスプールされ、OSの印刷サポート機能によりフィルターパイプラインが起動され、プレビューフィルターがプレビュー制御モジュールを起動した時点で表示される。
【0033】
<フィルターと入出力インタフェース>
前述したように、XPSドライバはそれぞれに任意の機能を有したフィルターによって構成される。このフィルター間でデータの受け渡しを行うインタフェースには、ストリーム形式とリーチ形式の2種類が存在する。
【0034】
ストリーム形式のインタフェースでは、印刷データはそのままバイトストリームとして扱われる。また、XPS以外のデータもバイトストリームとして扱うことも可能である。リーチ形式のインタフェースでは、印刷データであるXPSドキュメントがXPSパート単位で扱われる。ここでいうXPSパートとはFDS、FD、FPとそれらに付随するPTや、画像、フォント等のリソースのことを指す。各フィルターは入力と出力それぞれに対して、どちらのインタフェースを利用するかを定められる。リーチ形式のインタフェースを利用した場合、XPSドキュメントを解析してXPSパートを抽出する必要がないため、FPの変更が必要なレイアウト処理などの処理を行うことがストリーム形式に比べ容易であると言える。
【0035】
それぞれのインタフェースの動作について図20を用いて説明する。フィルター2011は入出力インタフェースとしてリーチ形式を、フィルター2021は入出力インタフェースとしてストリーム形式を採用している。スプールファイルとして格納されているXPSドキュメント2031は2033から2039のXPSパートから構成されている。まずXPSドキュメント2031はフィルター2011に送られるが、フィルター2011の入力インタフェース2013はリーチ形式なので、OSの印刷サポート機能2003でXPSパートに分解されて送られる。フィルター2011は、受け取ったXPSパート2033から2039に対して必要に応じて編集処理を行い出力する。出力インタフェース2015もリーチ形式なので、出力されるデータはXPSパート2033から2039に対して編集処理を行ったXPSパート2043から2049となる。このデータがフィルター2021に送られるが、フィルター2021の入力インタフェース2023はストリーム形式なので、OSの印刷サポート機能2003でXPSパート2043から2049に基づくXPSドキュメント2041に変換されて送られる。フィルター2021ではXPSドキュメント2041をバイトストリームとして受け取る。フィルター2021はXPSドキュメント2041を必要に応じて編集して出力する。出力インタフェース2025もストリーム形式なので、出力されるデータはXPSドキュメント2041に対して編集処理を行ったXPSドキュメント2051となることが一般的である。また、ストリーム形式のインタフェースはXPSドキュメント以外のデータも扱えるので、XPSドキュメント2041を加工して得られるデータ、例えばプリンタが解釈可能な印刷コマンドなどに変換されて送信されることも考えられる。
【0036】
XPSドキュメントをプレビュー用ドキュメントとして扱う場合、XPSフォーマットのデータが必要となるため、プレビューフィルターでは入力インタフェースとしてストリーム形式を利用することが望ましい。しかし、XPSドキュメントは図1のような構造化文書を圧縮したデータであるため、XPSパートを取得するには解析処理が必要となる。それに対してリーチ形式のインタフェースでは、XPSパートとして分解されたデータを受信するため、XPSパートの編集が必要なレイアウト処理などを容易に行うことができる。また、出力インタフェースもリーチ形式の場合、編集したXPSパートをそのまま次のフィルターに送信すればよい。
【0037】
上述したように、入力インタフェースにリーチ形式を用いることにより、レイアウト処理などを容易に行うことができるため、図6(a)のようにレイアウトフィルターとしてリーチ形式を採用することが考えられる。その場合、前段のレイアウトフィルターからプレビューフィルターへのデータの受け渡しの際に、リーチ形式からストリーム形式への変換処理が行われるため、ドライバとしてのパフォーマンスが低下する。仮に後段の印刷コマンドフィルターもリーチ形式を採用している場合、ストリーム形式からリーチ形式に変換処理が行われるため、パフォーマンスはさらに低下する。
【0038】
ドライバにおいて使用されるフィルターの種類や並びなどは基本的には変更することができないため、プレビューを行わない場合でもプレビューフィルターを通過する必要があり、不要な変換処理が行われることになる。そこで図6(b)に示すように、リーチ形式のプレビューフィルターを用いて、プレビューを行う場合のみリーチ形式からSストリーム形式への変換を行う印刷制御システムに関して提案する。
【0039】
<プレビュー機能の概要>
図7を用いて本手法におけるプレビュー機能の概要について説明する。まず、プレビューフィルター703はレイアウトフィルター701から印刷データを受け取る。プレビューフィルターの入力インタフェースはリーチ形式なのでXPSパート毎に送られてくる。まずFDS711とFD713を受け取り、プレビューフィルター703で保持する。これはプレビュー後に印刷続行する際に次のフィルターへ送るためであるが、FDS711に関しては受け取り次第、次のフィルターに送ってしまうことも可能である。
【0040】
次にFP715を受け取ると、FP715とそれに付随するイメージやフォントなどのリソースを外部ファイルとして保存する。このXPSパートはプレビュー用XPSドキュメントの作成に使用される。
【0041】
プレビューフィルター703は全てのFPを受け取るとプレビューア731を起動する。起動したプレビューア731は、まずプレビュー用XPSドキュメントの作成を行う。XPSドキュメント741のベースを作成し、そこにFDS743、FD745を作成する。そして作成したFD745に外部ファイルとして保存したFP723とそれに付随するリソース725を追加し、プレビュー用XPSドキュメント741が作成される。作成されたプレビュー用XPSドキュメント741はプレビューア731によって表示され、プレビューが行われる。本実施例ではプレビュー用XPSドキュメント作成と表示をプレビューア731で行っているが、それぞれ別のアプリケーションを用意して行うことも考えられる。
【0042】
ユーザはプレビューア731によって表示されたプレビュー画面を確認し、印刷開始、もしくは印刷中止の命令を行う。プレビューア731はユーザの操作を受けて、プレビューフィルター703にユーザ操作に関する通知を行う。プレビューフィルター703は印刷開始の通知を受けると、保持していたXPSパートを適切な順番で次の印刷コマンドフィルター705に送信する。また、印刷中止の通知を受けると各フィルターに処理終了を通知して、印刷処理を終了する。
【0043】
<プレビューフィルター処理>
図8を用いてプレビューフィルターの処理について説明する。図8はプレビューフィルターの処理を示すフローチャートの一例である。本提案におけるプレビューフィルターは入力インタフェースとしてリーチ形式を使用しているので、XPSデータはXPSパート毎に取得される。
【0044】
まずプレビューフィルターはS101でFDSを取得する。FDSはプレビュー用XPSドキュメント生成の際にはプレビューアにおいて生成されるため、外部ファイルとして出力しないが、プレビュー終了後に次のフィルターへ送信するデータとなるため、プレビューフィルターにおいて保持される。次にプレビューフィルターはS103で参照用PTを取得する。参照用PT取得処理については図9を用いて後述する。続いてプレビューフィルターはS105で参照用PTの印刷設定情報のプレビュー設定がON(オン)かどうかを判定し、ONであればS107に移り、OFFであればS121に移る。
【0045】
S107からS119はプレビュー設定がONの場合の処理である。まずプレビューフィルターはS107でFDを取得する。取得したFDはFDSと同様にプレビュー用のXPSドキュメントを作成する際に使用されないので、プレビューフィルターにおいて保持しておき、プレビュー終了後に印刷を続行する際に次のフィルターに送信される。続いてプレビューフィルターはS109においてプレビュー用XPSドキュメント作成に用いるFPとそれに付随するリソースを取得し、プレビューアに受け渡すために外部ファイルとして保存する。FPおよびリソースの取得処理に関しては図10を用いて後述する。FPはFDと同様、プレビュー終了後に次のフィルターに送る必要があるため、外部ファイルとは別にプレビューフィルターによって保持される。全てのFPの取得が終了すると、S111に移りプレビューアを起動する。プレビューアの処理については図11を用いて後述する。
【0046】
プレビューフィルターはS113においてプレビューアの終了を監視し、プレビューアが終了するとS115に移る。プレビューフィルターはS115において、ユーザがプレビューアで印刷開始を指示したのか、印刷中止を指示したのかを判定し、印刷開始が選択された場合はS119に移り、印刷中止が選択された場合はS117に移る。
【0047】
S119ではプレビューフィルターは保持しているXPSパートを次のフィルター、本実施形態では印刷コマンド生成フィルターに送信する。S117ではフィルターパイプラインの各フィルターに処理終了を通知して、印刷処理を終了する。
【0048】
S121からS123はプレビュー設定がOFFの場合の処理である。S121ではプレビューフィルターは既に取得しているFDSを次のフィルターへ送信する。続いてプレビューフィルターはS123において残りのXPSパートを順次取得していき、取得した順に次のフィルターへ送信していき、全てのパーツの送信が終了するとフィルターの処理を終了する。
【0049】
<参照用PrintTicket取得処理>
フィルターパイプラインの各フィルターにおいて、印刷設定情報を取得するには前述したようにXPSのPTをマージする必要がある。XPS文書の各パートはPTを持つことが可能だが、逆に持たないことも可能である。また、たとえXPSパートがPTを持っていたとしても、N−upの情報しか記載されていないなど、不完全なPTである可能性がある。従ってFDSのPTを取得する際もユーザのデフォルト印刷設定のPTとのマージ処理が必要である。ここでデフォルト印刷設定のPTには、プリンタドライバで扱える全ての設定項目が格納されている。従ってマージ後のPTも全ての印刷設定項目を含む。
【0050】
図9はFDSのPTとユーザのデフォルト印刷設定のPTをマージし参照用PTを取得する処理のフローチャートの一例である。まずS201でプレビューフィルターはユーザのデフォルト印刷設定を格納したデフォルトPTを取得する。続いてS203でプレビューフィルターはFDSのPTを取得する。S205ではプレビューフィルターはFDSのPTが取得できたかどうかを判定し、取得できていればS209に移り、取得できなければS207に移る。S209ではプレビューフィルターは取得したFDSのPTとデフォルトPTをマージしたPTを参照用PTとし終了する。S207ではプレビューフィルターはFDSにPTが存在しなかったため、デフォルトPTを参照用PTとし終了する。
【0051】
ここで、全ての印刷設定項目とは、少なくともアプリケーションが設定可能な全ての設定項目のことを指しており、プレビュー済フラグのようなプリンタドライバ内部の設定項目はこれに含まれないものとする。
【0052】
このようにプリンタドライバが扱える全ての設定項目を含む参照用PTを取得することができる。
【0053】
<FPおよびリソースの取得処理>
リーチ形式のデータからプレビュー用XPSデータを生成するには、生成を行うプレビューアに必要なパーツを渡す必要がある。そのための方法の一つとして、必要なXPSパートを外部ファイルとして一時的に保存しする方法が考えられる。図10はプレビューフィルターにおいてFPとイメージやフォントなどのリソースを取得し、保存する処理の一例である。
【0054】
まず、プレビューフィルターはS301においてFPを取得する。FPを取得することができたら、S305でプレビューフィルターは取得したFPを外部ファイルとして保存して、S307に移る。S307ではプレビューフィルターはS301で取得したFPで使用されているリソースを取得する。ここで、使用されているリソースが存在しない場合はS301に移り、再度FPの取得を行う。リソースが存在する場合はS311に移り、プレビューフィルターは取得したリソースの種類を判定する。判定の結果、プレビュー用XPSドキュメントの作成に必要なリソースである場合はS313に移り、表示結果に直接関係のないリソースである場合はS305に移り別のリソースの取得を行う。本実施形態では外部ファイルとして保存するリソースとして、イメージ、フォント、カラープロファイル、リソースディクショナリーなどを想定しているが、プレビューアの実現する機能によって必要とされるリソースは変化するので、これに限定されるものではない。S313ではプレビューフィルターは取得したリソースを外部ファイルとして保存する。その後、S315においてプレビューフィルターはプレビューアにリソース情報を渡すために、FPとリソースの関係などを記載したリストファイルを作成し、リソースに関する情報を記載していく。他にもリストファイルに記載する情報には画像の種類(JPEG、PNG、TIFFなど)やフォントの種類などが挙げられる。また、前記リストファイルはプレビューアに情報を伝えるための一手段であり、その他に外部ファイルの名称を規則に基づき設定するなどが考えられ、その方法を限定するものではない。
【0055】
一つのFPに対して全てのリソースの取得が終わると、次のFPの取得を行い、またそのFPに付随するリソースの取得を行う。この動作はXPSデータの保持する全てのFPを取得するまで続けられる。
【0056】
<プレビューア処理>
前述したようにプレビューフィルターはプレビューアを呼び出し、プレビューアがプレビュー用XPSドキュメントを表示することでプレビュー行う。図11はプレビューアの動作の一例である。
【0057】
まず、プレビューアはS401のおいてプレビュー用XPSドキュメントの作成を行う。プレビュー用XPSドキュメントの作成処理については図12を用いて後述する。プレビュー用XPSドキュメントの作成が成功するとS403に移る。S403ではプレビューアは作成したプレビュー用XPSドキュメントを表示する。これによりユーザは自身の設定した印刷設定に基づく印刷結果のイメージを確認することができる。
【0058】
S405からS407はユーザからの印刷続行/中止の指示を監視する処理である。S405においてプレビューアは、ユーザがプレビューアの印刷開始ボタンを押すなど印刷開始命令を行ったことを検知すると、プレビューフィルターに印刷続行を通知し、自身を終了する。また、S407においてプレビューアは、ユーザがプレビューアの印刷中止ボタンを押すなど、印刷中止命令を行ったことを検知すると、プレビューフィルターに印刷中止を通知し、自身を終了する。プレビュー画面の表示はユーザからの印刷開始、もしくは印刷中止の命令があるまで行われ、その間に印刷設定の変更などを行うことも考えられる。なお、プレビューフィルターが次のフィルターに送信するXPSパートはプレビューフィルターにおいて保持されているデータを使用するため、プレビュー用XPSドキュメントは印刷データとしては使用されず破棄される。
【0059】
また、本実施例ではプレビューアにおいてプレビュー用XPSドキュメントの作成を行っているが、プレビューフィルターにおいて作成する方法も考えられる。
【0060】
<プレビュー用XPSドキュメント生成処理>
図12はプレビュー用XPSドキュメント生成処理の一例である。まずプレビューアはS501において空のXPSドキュメントを作成し、S503に移る。S503ではプレビューアはS501で作成したXPSドキュメントにFDSを作成する。次にプレビューアはS505で、S503で作成したFDSにFDを追加する。このFDSとFDは本実施形態ではプレビューフィルターにおいて保存していないため、プレビューアで生成する必要があるが、プレビューフィルターにおいて他のパーツ同様に保存しておき、追加することも考えられる。また本実施形態では印刷データであるXPSドキュメントにFDが複数存在する場合でも、プレビュー用XPSドキュメントにはFDを1つだけ作成し、1つ以上任意数存在するFPは全て1つのFDに従属させる形態をとっている。これは印刷プレビューにおいて印刷結果を確認する上で表示に影響しない範囲で最小限の構成でプレビュー用XPSドキュメントを生成するためである。ただし、表示内容にFDが影響するような表示形態を用いた際にはFDも元データと同じ構成にする必要があるなど、実現したいプレビューアの機能に基づき必要な構成は変化することは言うまでもない。
【0061】
S507からS513はFPの追加処理である。まずプレビューアはS507において、プレビューフィルターによって外部ファイルとして保存されたFPの中に、プレビュー用XPSドキュメントに追加していないFPが存在するかを判定する。そして、存在する場合はS509に移り、全てのFPの登録が終了している場合はプレビュー用XPSドキュメントの作成処理を終了する。XPSドキュメント中にFPは一つ以上存在するため、初回の判定では必ずS509に移る。S509ではプレビューアは空のFPを作成する。S511からF513ではこの作成したFPに対してリソースの登録と内容の記述を行う。
【0062】
まずS511ではプレビューアは作成したXPSドキュメントにリソースの登録を行う。FPへのリソース登録処理について図13を用いて説明する。まずプレビューアはS601において現在のFPに登録するかの判定が行われていないリソースが存在するかを判定し、存在する場合はS603へ移り、存在しない場合はリソースの登録処理を終了する。次にS603でプレビューアは未登録のリソースが現在処理を行っているFPで使用されているものであるかを判定し、該当する場合はS605へ移り、該当しない場合はS601に戻る。この判定はS311で作成されたリソース情報のリストを参照することで行う方法が考えられるが、それに限定するものではない。S605ではプレビューアは現在処理を行っているFPに対して該当するリソースを登録する。登録が終了するとS601に戻り、全てのリソースが登録されるまで繰り返し、現在処理中のFPへのリソース登録処理終了する。
【0063】
リソースの登録が終了するとS513に移り、FPの内容を記述する。これはプレビューフィルターで外部ファイルとして保存したFPの内容に基づいて記述していくが、リソースファイルパスや表示領域など、プレビュー用XPSとして作成する上で書き換えが必要な部分に関しては適宜修正を行った上で登録を行う。
【0064】
一つのFPの登録が終了するとS507に戻り、未登録のFPが存在するかを判定し、全てのFPが登録されるまでS507からS513の処理を繰り返す。S507において全てのFPの登録が終了したと判定されると、プレビュー用XPSドキュメントの作成処理を終了し、S403においてプレビューアは作成したXPSドキュメントを表示する。
【0065】
<プレビュー用XPSドキュメント>
図14は印刷データから作成されるプレビュー用XPSドキュメントの一例である。1401は印刷データであるXPSドキュメントである。1つのFDS1403の下に2つのFD1405と1407が存在する。FD1405にはFP1409、FD1407にはFP1411とFP1413が存在し、FP1409はImage1415を、FP1413はImage1417とFont1419をリソースとして使用している。また、印刷設定を記述したPTがそれぞれFDS1403(PT1421)、FD1405(PT1423)、FP1411(PT1425)に付加されている。
【0066】
プレビューフィルターによって、これらのXPSパートの中からプレビュー用XPSドキュメントの作成に必要なパーツを出力する。ここでは各ページの表示内容が記述されたFPとFPで使用されているリソース(サムネイルなどの表示に影響しないものを除く)を出力している。具体的にはFP1409、1411、1413と、リソースであるImage1415、1417とFont1419が外部ファイルとしての出力対象となる。
【0067】
この出力したXPSパートを元にプレビュー用XPSドキュメント1431を作成する。まずFDS1433を作成し、それに付随するようにFD1435を作成する。さらにFD1435の下にFP1409から1413を追加し、それぞれのFPが使用しているリソースを適切に配置する。各FPは印刷設定などの条件によって内容を書き換えた上で登録することも考えられる。これによってプレビュー用XPSドキュメント1431が作成される。
【0068】
本実施形態ではプレビュー用XPSドキュメントのFDを1つとしているが、プレビューをFD単位で表示したい場合など、表示形式や目的に応じて元データと同じようにFDを配置することも考えられる。また、本実施形態ではPTやサムネイルなどを排したプレビュー用XPSドキュメントを作成しているが、プレビューアの表示形態に応じて必要となるXPSパートは異なってくるため、プレビュー用XPSドキュメントの形態はこれに限定されるものではない。
【0069】
<実施形態2>
実施形態1ではドライバのフィルター構成が変更できない状況を想定している。実際に現在のOSではフィルター構成はコンフィグファイルと呼ばれるXMLファイルによって決定されており、これを修正しなければフィルター構成を変更することはできない。フィルターパイプラインはこのコンフィグファイルを参照してフィルターを呼び出しているので、印刷が開始してからドライバにおいてフィルター構成を変更することはできない。従って、プレビュー設定のON/OFFでプレビューフィルターの有無を決定することはできない仕様になっている。
【0070】
しかし今後、印刷設定に応じてフィルター構成を変更可能な印刷システムが登場した場合には、実施形態2のシステムの構築が可能となる。印刷設定によってフィルター構成を変更する印刷制御装置の一例を図15に示す。
【0071】
印刷処理が開始されると、まずS701でレイアウトフィルターがレイアウト処理を行う。同時にレイアウトフィルターではS703において現在の印刷システムがフィルター構成を変更可能かどうか判定する。この判定基準としてはOSや印刷システムに使用されているモジュールのバージョン情報などが考えられる。フィルター構成を変更可能な印刷システムの場合はS705に、変更できない印刷システムの場合はS707に移る。
【0072】
S705ではレイアウトフィルターはプレビュー設定のON/OFFを判定する。プレビュー設定がONの場合はS707に移り、OFFの場合はS709に移る。
【0073】
S707ではプレビューフィルターが処理を行う。本実施例においてS707の処理を行うプレビューフィルターは実施形態1のプレビューフィルターを想定しているが、実施形態1の入力インタフェースとしてリーチ形式を用いたフィルターに限らず、ストリーム形式を用いたフィルターを用いることも考えられる。
【0074】
S709ではプレビューフィルターがフィルター構成から削除される。これによって、プレビューを行う場合のみプレビューフィルターを通過し、プレビューを行わない場合には、レイアウトフィルターから印刷コマンドフィルターに直接データが送られる構成となる。
【0075】
S711では印刷コマンドフィルターが印刷データをプリンタの解釈可能な印刷コマンドに変換し、プリンタに送信し、ドライバ処理は終了する。
【0076】
上記処理によって、フィルター構成が変更可能な印刷システムでは、プレビュー設定がONの場合のみプレビューフィルターによる処理を行うことが可能となる。
【0077】
<実施形態3>
印刷プレビューにおいて、プレビューアは印刷設定を変更する機能を有することも考えられる。実施形態3では、実施形態1のプレビュー機能において、プレビュー画面で変更した印刷設定を印刷結果に反映する方法について説明する。
【0078】
実施形態3におけるプレビューフィルターの処理について図16を用いて説明する。基本動作については実施形態1で説明したプレビューフィルターの動作と同じであるが、印刷設定を記述したPTを外部ファイルとして保存する処理が追加されている。S801からS803において、プレビューフィルターはFDSの取得と参照用PTの取得を行う。S805でプレビューフィルターは取得した参照用PTを外部ファイルとして保存する。同様にプレビューフィルターはS809でFDを取得し、S811でFDのPTを取得する。FDにはPTが付加されていないこともあるため、取得ができた場合はFDのPTを外部ファイルとして保存し、取得できなかった場合はS817に移り、FPの取得を行う。
【0079】
FPとリソースの取得処理について図17を用いて説明する。基本動作は実施形態1のFPおよびリソースの取得処理と同じであるが、S907からS911においてFPのPT取得処理が追加されている。プレビューフィルターはS907でFPのPTの取得を行い、取得ができた場合にはS911でFPのPTを外部ファイルとして保存する。これによりFPとPTとリソースが外部ファイルとして保存されることになる。
【0080】
FPとリソースの取得が全て終了すると、プレビューフィルターはS819でプレビューアを起動する。実施形態3におけるプレビューアの処理について図18を用いて説明する。まず、実施形態1と同様にプレビューアはS1001でプレビュー用XPSドキュメントを作成し、S1003で作成したXPSドキュメントを表示する。ユーザは表示を確認した上で、プレビューアにおいて印刷設定の変更を行うことができる。印刷設定の変更とは用紙や給紙位置の変更、レイアウトの変更などが考えられる。印刷設定の変更にはFPとPT(もしくはそのどちらか一方)の更新が必要になる。そこでプレビューアはS1005でユーザが印刷設定を変更したと判断すると、S1007で外部ファイルのFPとPTを新しい印刷設定に従って更新する。元データにPTが付加されておらず、外部ファイルとして保存されていない場合は、FDのPTを作成し、変更内容を反映させる。また、表示内容に影響のある設定を変更する場合は、更新した外部ファイルを用いてプレビュー用XPSドキュメントを再構築し、表示することでユーザは印刷結果の変化を確認しながら印刷設定の変更を行うことができる。また、変更結果を確認した後に元の設定の戻したいという要求が発生することが考えられるため、更新した外部ファイルとは別に、元データと各設定変更時に作成したデータなどを保存しておく。これにより再び変換処理を行う必要がなくなる。また、併せて各段階で作成したプレビュー用ドキュメントも保持しておくと、設定を戻した際の表示の更新を容易に行うことができる。
【0081】
ユーザは希望の印刷設定を選択すると、印刷開始、もしくは印刷中止の命令を行う。印刷開始が指示されるとプレビューアはS1015において印刷開始をプレビューフィルターに通知する。同様に印刷中止を指示した際は、プレビューアはS1013において印刷中止をプレビューフィルターに通知するが、印刷中止時の処理は実施形態1と同様のため、以下印刷開始が通知された場合の説明を行う。
【0082】
プレビューフィルターはS821においてプレビューアの終了を検知すると、プレビューアからの通知に従って処理を行う。ここで印刷開始が通知された場合、プレビューフィルターはS825に移り、プレビューアが更新した外部ファイルをXPSパートとして次のフィルターへ送信する。XPSパート送信処理について図19を用いて説明する。まず、プレビューフィルターはS1101で参照用PTがプレビューアによって更新されているかを判定し、更新されている場合はS1103に移り、更新されていない場合はS1105に移る。S1103ではプレビューフィルターは更新された参照用PTをFDSのPTとして登録し、S1105に移る。S1105ではプレビューフィルターは取得時に保持していたFDSを次のフィルターに送信する。
【0083】
FDに関しても同様に、プレビューフィルターはS1107でFDのPTが更新されているかを判定し、更新されている場合は、更新されたFDのPTを付加し、FD取得時に保持していたFDを次のフィルターに送信する。
【0084】
次にFPの送信を行うが、FPはプレビューフィルターで保持するデータではなく、外部ファイルとして保存されているデータを使用することで、プレビューアが更新したFPの内容を印刷結果に反映することができる。まず、FDS、FDの時と同様、プレビューフィルターはS1113でFPのPTが更新されているか判定する。更新されている場合、プレビューフィルターはS1115で更新されたFPのPTを登録する。そしてS1117でプレビューフィルターは外部ファイルとして保存されているFPを読み出し、次のフィルターへ送信する。全てのXPSパートの送信が終了すると、プレビューフィルターの処理は終了する。本実施例ではFD、FP共に1回の送信しか記述していない。しかしながら、共に1つのXPSデータ中に複数存在することが可能なパートなので、S1107からS1111のFDの送信処理と、S1113からS1117のFPの送信処理はFD、FPがそれぞれ存在する数だけ実行される。
【0085】
本実施例では全てのPTを外部ファイルとして保存するように記述しているが、プレビューアで実行可能な設定変更の種類によって、内容を反映する必要のあるPTが異なるため、プレビューアの機能に応じて必要なPTのみを抽出すればよい。また、外部ファイルとして保存しなくても、変更内容だけをプレビューアからプレビューフィルターに通知することで、プレビューフィルターにおいてPTの更新を行い、登録する方法も考えられる。
【0086】
上記処理によってプレビューアで行った印刷設定を反映した印刷を行うことが可能となる。また、本実施形態ではプレビューアによってXPSデータの編集を行っているが、表示機能を持たないXPSドキュメントの編集を行うアプリケーションを用いて編集を行うことも考えられる。その場合も本実施形態と同様に編集アプリケーションによる編集内容を印刷結果に反映させることが可能である。
【0087】
<その他の実施形態>
実施形態1から3ではプレビューフィルターとプレビューアは別モジュールとして扱われている。しかし、必ずしも別モジュールとして扱う必要はなく、プレビューフィルターがフィルター間のデータの受け渡しに加え、プレビュー用XPSドキュメントの生成と表示を担うことも考えられる。この場合、FPやリソースをプレビューアに渡す必要がなくなる。プレビューフィルターによってプレビュー機能に関する全処理を行う場合のプレビューフィルターの処理について図21を用いて説明する。まず、プレビューフィルターはS1201で前のフィルターからFDSを取得し、S1203で取得したFDSから参照用のPTを取得する。次にプレビューフィルターはS1205で取得した参照用PTからプレビュー設定を判定し、プレビュー設定がONの場合はS1207に移り、OFFの場合はS1231に移る。
【0088】
S1207からS1221はプレビュー設定がONの場合の処理である。プレビューフィルターはS1207でFDを、S1209でFPを取得する。そして、プレビューフィルターはS1211でS1209までに取得したXPSパートを用いてプレビュー用XPSドキュメントの生成を行う。プレビュー用XPSドキュメントの生成には前述したプレビューアにおけるプレビュー用XPSドキュメント生成処理を用いる方法などが考えられる。次にプレビューフィルターはS1213においてS1211で生成したプレビュー用XPSドキュメントを表示する。ユーザは表示された内容を確認し、印刷開始か印刷中止を支持する。プレビューフィルターはS1215からS1217においてユーザからの指示を監視し、ユーザが印刷開始を指示した場合はS1221に移り、印刷中止を指示した場合には1219に移る。S1221ではプレビューフィルターは、取得しているXPSパートを順次、次のフィルターに送信して自身の処理を終了する。S1219ではプレビューフィルターは、各フィルターに終了通知を出し、ドライバの処理を終了する。
【0089】
S1231からS1233はプレビュー設定がOFFの場合の処理であり、プレビューフィルターは残りのXPSパートを順次取得、送信して、全てのXPSパートの送信が終わると自身の処理を終了する。
【0090】
前記実施形態ではプレビューアを用いずに本提案のプレビュー機能を実現することが可能である。また、前記のようにプレビューに関わる全ての処理をプレビューフィルターに行わせるのではなく、プレビュー用XPSドキュメントの生成までをプレビューフィルターで行い、表示をプレビューアで行うなども考えられる。この場合、プレビューフィルターからプレビューアへは生成されたプレビュー用XPSドキュメントが渡される。このように各モジュールの担う処理の範囲は限定されるものではない。
【0091】
また、本実施の形態では、ストリーム形式のデータを取り扱うフィルターとして、プレビューを例に説明したが、プレビューフィルター以外のストリーム形式のデータを取り扱うフィルターにも適用できる。
【0092】
以上説明したように本実施形態によれば、リーチ形式のインタフェースを用いたプレビュー用のフィルターを設けることによって生じるフィルター間のデータ変換処理の負荷を軽減し、プレビューOFF時のパフォーマンスの低下を抑制することが可能となる。
【図面の簡単な説明】
【0093】
【図1】XPSの論理構造の概念図
【図2】本発明の実施形態に係わる印刷システムの一例を示すブロック図
【図3】本発明の実施形態に係わるプリンタドライバ一例を示すブロック図
【図4】本発明の実施形態に係わる印刷設定ダイアログの一例を示す図
【図5】本発明の実施形態に係わるプレビューウィンドウの一例を示す図
【図6】本発明の実施形態に係わるフィルターと入出力インタフェースの関係を示す図
【図7】本発明の実施形態に係わるプレビュー処理の概念図
【図8】本発明の実施形態に係わるプレビューフィルターの処理を示すフローチャート
【図9】本発明の実施形態に係わる参照用PrintTicketを取得する処理のフローチャート
【図10】本発明の実施形態に係わるXPSパートの取得処理を示すフローチャート
【図11】本発明の実施形態に係わるプレビューアの処理を示すフローチャート
【図12】本発明の実施形態に係わるプレビュー用XPSドキュメント作成処理を示すフローチャート
【図13】本発明の実施形態に係わるFPへのリソース登録処理を示すフローチャート
【図14】本発明の実施形態に係わる印刷データとプレビュー用XPSドキュメントの関係を示す図
【図15】本発明の実施形態2に係わる印刷処理を示すフローチャート
【図16】本発明の実施形態3に係わるプレビューフィルターの処理を示すフローチャート
【図17】本発明の実施形態3に係わるXPSパートの取得処理を示すフローチャート
【図18】本発明の実施形態3に係わるプレビューアの処理を示すフローチャート
【図19】本発明の実施形態3に係わるXPSパート送信処理を示すフローチャート
【図20】フィルターにおけるインタフェースの動作の一例を示す図
【図21】プレビューア機能を備えたプレビューフィルターの処理を示すフローチャート
【特許請求の範囲】
【請求項1】
前段のフィルターからリーチ形式のデータを取得する取得手段と、
プレビュー設定がオンであるか判定する判定手段と、
前記判定手段によりプレビュー設定がオンであると判定された場合、前記取得手段により取得したリーチ形式のデータをストリーム形式のデータに変換する変換手段と、
前記変換手段により変換されたストリーム形式のデータに基づきプレビューを行うプレビュー手段と、
前記判定手段によりプレビュー設定がオンでないと判定された場合、前記取得手段により取得したリーチ形式のデータを後段のフィルターに送信する送信手段とを有することを特徴とする情報処理装置。
【請求項2】
前記変換手段は、プレビューに影響しないパーツを排したストリーム形式のデータに変換することを特徴とする請求項1の情報処理装置。
【請求項3】
プレビューフィルターが、前記取得手段、前記判定手段、前記送信手段を含み、
プレビューアが、前記変換手段は、前記プレビュー手段を含むことを特徴とする請求項1の情報処理装置。
【請求項4】
プレビューフィルターが、前記取得手段、前記判定手段、前記送信手段、前記変換手段は、前記プレビュー手段を含むことを特徴とする請求項1の情報処理装置。
【請求項5】
印刷設定を変更する変更手段と、
前記変更手段により変更された印刷設定に基づき、後段のフィルターに送信されるリーチ形式のデータを更新する更新手段とを有することを特徴とする請求項1の情報処理装置。
【請求項6】
プレビュー設定がオンであるか判定する判定手段と、
前記判定手段によりプレビュー設定がオンであると判定された場合、前段のフィルターからリーチ形式のデータを取得し、取得したリーチ形式のデータをストリーム形式のデータに変換させ、変換されたストリーム形式のデータに基づきプレビューを行わせるプレビューフィルターに処理を実行させる手段と、
前記判定手段によりプレビュー設定がオンでないと判定された場合、前記プレビューフィルターを削除する削除手段とを有することを特徴とする情報処理装置。
【請求項7】
前段のフィルターからリーチ形式のデータを取得する取得手段と、
特定の機能がオンであるか判定する判定手段と、
前記判定手段により特定の機能がオンであると判定された場合、前記取得手段により取得したリーチ形式のデータをストリーム形式のデータに変換する変換手段と、
前記判定手段により特定の機能がオンでないと判定された場合、前記取得手段により取得したリーチ形式のデータを後段のフィルターに送信する送信手段とを有することを特徴とする情報処理装置。
【請求項8】
前段のフィルターからリーチ形式のデータを取得する取得ステップと、
プレビュー設定がオンであるか判定する判定ステップと、
前記判定ステップによりプレビュー設定がオンであると判定された場合、前記取得ステップにより取得したリーチ形式のデータをストリーム形式のデータに変換する変換ステップと、
前記変換ステップにより変換されたストリーム形式のデータに基づきプレビューを行うプレビューステップと、
前記判定ステップによりプレビュー設定がオンでないと判定された場合、前記取得ステップにより取得したリーチ形式のデータを後段のフィルターに送信する送信ステップとを有することを特徴とする情報処理方法。
【請求項9】
前記変換ステップは、プレビューに影響しないパーツを排したストリーム形式のデータに変換することを特徴とする請求項7の情報処理方法。
【請求項10】
プレビューフィルターが、前記取得ステップ、前記判定ステップ、前記送信ステップを実行し、
プレビューアが、前記変換ステップは、前記プレビューステップを実行することを特徴とする請求項7の情報処理方法。
【請求項11】
プレビューフィルターが、前記取得ステップ、前記判定ステップ、前記送信ステップ、前記変換ステップは、前記プレビューステップを実行することを特徴とする請求項7の情報処理方法。
【請求項12】
印刷設定を変更する変更ステップと、
前記変更ステップにより変更された印刷設定に基づき、後段のフィルターに送信されるリーチ形式のデータを更新する更新ステップとを有することを特徴とする請求項7の情報処理方法。
【請求項13】
プレビュー設定がオンであるか判定する判定ステップと、
前記判定ステップによりプレビュー設定がオンであると判定された場合、前段のフィルターからリーチ形式のデータを取得し、取得したリーチ形式のデータをストリーム形式のデータに変換させ、変換されたストリーム形式のデータに基づきプレビューを行わせるプレビューフィルターに処理を実行させるステップと、
前記判定ステップによりプレビュー設定がオンでないと判定された場合、前記プレビューフィルターを削除する削除ステップとを有することを特徴とする情報処理方法。
【請求項14】
前段のフィルターからリーチ形式のデータを取得する取得ステップと、
特定の機能がオンであるか判定する判定ステップと、
前記判定ステップにより特定の機能がオンであると判定された場合、前記取得ステップにより取得したリーチ形式のデータをストリーム形式のデータに変換する変換ステップと、
前記判定ステップにより特定の機能がオンでないと判定された場合、前記取得ステップにより取得したリーチ形式のデータを後段のフィルターに送信する送信ステップとを有することを特徴とする情報処理方法。
【請求項15】
前段のフィルターからリーチ形式のデータを取得する取得ステップと、
プレビュー設定がオンであるか判定する判定ステップと、
前記判定ステップによりプレビュー設定がオンであると判定された場合、前記取得ステップにより取得したリーチ形式のデータをストリーム形式のデータに変換する変換ステップと、
前記変換ステップにより変換されたストリーム形式のデータに基づきプレビューを行うプレビューステップと、
前記判定ステップによりプレビュー設定がオンでないと判定された場合、前記取得ステップにより取得したリーチ形式のデータを後段のフィルターに送信する送信ステップとをコンピュータに実行させるためのプログラム。
【請求項16】
前記変換ステップは、プレビューに影響しないパーツを排したストリーム形式のデータに変換することを特徴とする請求項15のプログラム。
【請求項17】
プレビューフィルターが、前記取得ステップ、前記判定ステップ、前記送信ステップを実行し、
プレビューアが、前記変換ステップは、前記プレビューステップを実行することを特徴とする請求項15のプログラム。
【請求項18】
プレビューフィルターが、前記取得ステップ、前記判定ステップ、前記送信ステップ、前記変換ステップは、前記プレビューステップを実行することを特徴とする請求項15のプログラム。
【請求項19】
印刷設定を変更する変更ステップと、
前記変更ステップにより変更された印刷設定に基づき、後段のフィルターに送信されるリーチ形式のデータを更新する更新ステップとをコンピュータに実行させることを特徴とする請求項15のプログラム。
【請求項20】
プレビュー設定がオンであるか判定する判定ステップと、
前記判定ステップによりプレビュー設定がオンであると判定された場合、前段のフィルターからリーチ形式のデータを取得し、取得したリーチ形式のデータをストリーム形式のデータに変換させ、変換されたストリーム形式のデータに基づきプレビューを行わせるプレビューフィルターに処理を実行させるステップと、
前記判定ステップによりプレビュー設定がオンでないと判定された場合、前記プレビューフィルターを削除する削除ステップとコンピュータに実行させるプログラム。
【請求項21】
前段のフィルターからリーチ形式のデータを取得する取得ステップと、
特定の機能がオンであるか判定する判定ステップと、
前記判定ステップにより特定の機能がオンであると判定された場合、前記取得ステップにより取得したリーチ形式のデータをストリーム形式のデータに変換する変換ステップと、
前記判定ステップにより特定の機能がオンでないと判定された場合、前記取得ステップにより取得したリーチ形式のデータを後段のフィルターに送信する送信ステップとをコンピュータに実行させるプログラム。
【請求項1】
前段のフィルターからリーチ形式のデータを取得する取得手段と、
プレビュー設定がオンであるか判定する判定手段と、
前記判定手段によりプレビュー設定がオンであると判定された場合、前記取得手段により取得したリーチ形式のデータをストリーム形式のデータに変換する変換手段と、
前記変換手段により変換されたストリーム形式のデータに基づきプレビューを行うプレビュー手段と、
前記判定手段によりプレビュー設定がオンでないと判定された場合、前記取得手段により取得したリーチ形式のデータを後段のフィルターに送信する送信手段とを有することを特徴とする情報処理装置。
【請求項2】
前記変換手段は、プレビューに影響しないパーツを排したストリーム形式のデータに変換することを特徴とする請求項1の情報処理装置。
【請求項3】
プレビューフィルターが、前記取得手段、前記判定手段、前記送信手段を含み、
プレビューアが、前記変換手段は、前記プレビュー手段を含むことを特徴とする請求項1の情報処理装置。
【請求項4】
プレビューフィルターが、前記取得手段、前記判定手段、前記送信手段、前記変換手段は、前記プレビュー手段を含むことを特徴とする請求項1の情報処理装置。
【請求項5】
印刷設定を変更する変更手段と、
前記変更手段により変更された印刷設定に基づき、後段のフィルターに送信されるリーチ形式のデータを更新する更新手段とを有することを特徴とする請求項1の情報処理装置。
【請求項6】
プレビュー設定がオンであるか判定する判定手段と、
前記判定手段によりプレビュー設定がオンであると判定された場合、前段のフィルターからリーチ形式のデータを取得し、取得したリーチ形式のデータをストリーム形式のデータに変換させ、変換されたストリーム形式のデータに基づきプレビューを行わせるプレビューフィルターに処理を実行させる手段と、
前記判定手段によりプレビュー設定がオンでないと判定された場合、前記プレビューフィルターを削除する削除手段とを有することを特徴とする情報処理装置。
【請求項7】
前段のフィルターからリーチ形式のデータを取得する取得手段と、
特定の機能がオンであるか判定する判定手段と、
前記判定手段により特定の機能がオンであると判定された場合、前記取得手段により取得したリーチ形式のデータをストリーム形式のデータに変換する変換手段と、
前記判定手段により特定の機能がオンでないと判定された場合、前記取得手段により取得したリーチ形式のデータを後段のフィルターに送信する送信手段とを有することを特徴とする情報処理装置。
【請求項8】
前段のフィルターからリーチ形式のデータを取得する取得ステップと、
プレビュー設定がオンであるか判定する判定ステップと、
前記判定ステップによりプレビュー設定がオンであると判定された場合、前記取得ステップにより取得したリーチ形式のデータをストリーム形式のデータに変換する変換ステップと、
前記変換ステップにより変換されたストリーム形式のデータに基づきプレビューを行うプレビューステップと、
前記判定ステップによりプレビュー設定がオンでないと判定された場合、前記取得ステップにより取得したリーチ形式のデータを後段のフィルターに送信する送信ステップとを有することを特徴とする情報処理方法。
【請求項9】
前記変換ステップは、プレビューに影響しないパーツを排したストリーム形式のデータに変換することを特徴とする請求項7の情報処理方法。
【請求項10】
プレビューフィルターが、前記取得ステップ、前記判定ステップ、前記送信ステップを実行し、
プレビューアが、前記変換ステップは、前記プレビューステップを実行することを特徴とする請求項7の情報処理方法。
【請求項11】
プレビューフィルターが、前記取得ステップ、前記判定ステップ、前記送信ステップ、前記変換ステップは、前記プレビューステップを実行することを特徴とする請求項7の情報処理方法。
【請求項12】
印刷設定を変更する変更ステップと、
前記変更ステップにより変更された印刷設定に基づき、後段のフィルターに送信されるリーチ形式のデータを更新する更新ステップとを有することを特徴とする請求項7の情報処理方法。
【請求項13】
プレビュー設定がオンであるか判定する判定ステップと、
前記判定ステップによりプレビュー設定がオンであると判定された場合、前段のフィルターからリーチ形式のデータを取得し、取得したリーチ形式のデータをストリーム形式のデータに変換させ、変換されたストリーム形式のデータに基づきプレビューを行わせるプレビューフィルターに処理を実行させるステップと、
前記判定ステップによりプレビュー設定がオンでないと判定された場合、前記プレビューフィルターを削除する削除ステップとを有することを特徴とする情報処理方法。
【請求項14】
前段のフィルターからリーチ形式のデータを取得する取得ステップと、
特定の機能がオンであるか判定する判定ステップと、
前記判定ステップにより特定の機能がオンであると判定された場合、前記取得ステップにより取得したリーチ形式のデータをストリーム形式のデータに変換する変換ステップと、
前記判定ステップにより特定の機能がオンでないと判定された場合、前記取得ステップにより取得したリーチ形式のデータを後段のフィルターに送信する送信ステップとを有することを特徴とする情報処理方法。
【請求項15】
前段のフィルターからリーチ形式のデータを取得する取得ステップと、
プレビュー設定がオンであるか判定する判定ステップと、
前記判定ステップによりプレビュー設定がオンであると判定された場合、前記取得ステップにより取得したリーチ形式のデータをストリーム形式のデータに変換する変換ステップと、
前記変換ステップにより変換されたストリーム形式のデータに基づきプレビューを行うプレビューステップと、
前記判定ステップによりプレビュー設定がオンでないと判定された場合、前記取得ステップにより取得したリーチ形式のデータを後段のフィルターに送信する送信ステップとをコンピュータに実行させるためのプログラム。
【請求項16】
前記変換ステップは、プレビューに影響しないパーツを排したストリーム形式のデータに変換することを特徴とする請求項15のプログラム。
【請求項17】
プレビューフィルターが、前記取得ステップ、前記判定ステップ、前記送信ステップを実行し、
プレビューアが、前記変換ステップは、前記プレビューステップを実行することを特徴とする請求項15のプログラム。
【請求項18】
プレビューフィルターが、前記取得ステップ、前記判定ステップ、前記送信ステップ、前記変換ステップは、前記プレビューステップを実行することを特徴とする請求項15のプログラム。
【請求項19】
印刷設定を変更する変更ステップと、
前記変更ステップにより変更された印刷設定に基づき、後段のフィルターに送信されるリーチ形式のデータを更新する更新ステップとをコンピュータに実行させることを特徴とする請求項15のプログラム。
【請求項20】
プレビュー設定がオンであるか判定する判定ステップと、
前記判定ステップによりプレビュー設定がオンであると判定された場合、前段のフィルターからリーチ形式のデータを取得し、取得したリーチ形式のデータをストリーム形式のデータに変換させ、変換されたストリーム形式のデータに基づきプレビューを行わせるプレビューフィルターに処理を実行させるステップと、
前記判定ステップによりプレビュー設定がオンでないと判定された場合、前記プレビューフィルターを削除する削除ステップとコンピュータに実行させるプログラム。
【請求項21】
前段のフィルターからリーチ形式のデータを取得する取得ステップと、
特定の機能がオンであるか判定する判定ステップと、
前記判定ステップにより特定の機能がオンであると判定された場合、前記取得ステップにより取得したリーチ形式のデータをストリーム形式のデータに変換する変換ステップと、
前記判定ステップにより特定の機能がオンでないと判定された場合、前記取得ステップにより取得したリーチ形式のデータを後段のフィルターに送信する送信ステップとをコンピュータに実行させるプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【公開番号】特開2009−282843(P2009−282843A)
【公開日】平成21年12月3日(2009.12.3)
【国際特許分類】
【出願番号】特願2008−135685(P2008−135685)
【出願日】平成20年5月23日(2008.5.23)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成21年12月3日(2009.12.3)
【国際特許分類】
【出願日】平成20年5月23日(2008.5.23)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]