文書処理装置および文書処理方法
【課題】印刷プレビューで印刷設定の変更を行う場合、全ページが同じ印刷設定でることを判定し、その場合のみ設定変更を許す。
【解決手段】処理対象のXPSデータの階層ごとに、当該階層の要素に前記印刷設定情報が付加されていないこと、又は、当該階層の要素に付加された前記印刷設定情報が当該階層の全要素により共有されていることを判定し(S501−S509)、いずれかの条件が満たされた場合に、ユーザによる印刷設定情報の変更を受け付ける(S511)。印刷設定が変更された場合には、個々のプリントチケットに対して設定変更の反映を行わず、設定変更を反映したプリントチケットを最上位の要素に付加することでジョブ全体に変更内容を反映させる。
【解決手段】処理対象のXPSデータの階層ごとに、当該階層の要素に前記印刷設定情報が付加されていないこと、又は、当該階層の要素に付加された前記印刷設定情報が当該階層の全要素により共有されていることを判定し(S501−S509)、いずれかの条件が満たされた場合に、ユーザによる印刷設定情報の変更を受け付ける(S511)。印刷設定が変更された場合には、個々のプリントチケットに対して設定変更の反映を行わず、設定変更を反映したプリントチケットを最上位の要素に付加することでジョブ全体に変更内容を反映させる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、例えば印刷処理を行う前に、印刷イメージをユーザが認識可能に表示する、いわゆるプレビュー機能等を有する文書処理装置および文書処理方法に関する。
【背景技術】
【0002】
オペレーティングシステム(OS)としてマイクロソフト社のウインドウズ(登録商標)を搭載した計算機を用いた印刷システムにおいて、アプリケーションプログラム(アプリケーション)等で生成された印刷データは、OS標準のデータ形式でスプールファイルに格納される。OSは印刷データを印刷するためにプリンタドライバを呼び出す。そしてプリンタドライバが、スプールファイルに格納された印刷データを読み取り、イメージ生成処理部により印刷イメージを作成し、さらにプリンタが解釈可能な印刷コマンドに変換する。印刷コマンドはプリンタに送信され、プリンタは印刷コマンドを解釈し、記録媒体に像を形成することで印刷処理が実行される。
【0003】
また、プリンタドライバには、印刷コマンドがプリンタに対して送信される前に印刷データおよび印刷設定を解析して印刷結果を示す表示用のデータを作成し、それを前もって表示する印刷プレビュー機能が実現されている。プレビュー機能はプリンタドライバの1モジュールとして提供されている。プレビュー機能によって、プリンタドライバのレンダリングモジュールもしくはOSの描画モジュールにより描画された内容を表示部に印刷プレビューとして出力する機能を備えている(例えば特許文献1又は特許文献2等参照)。さらに印刷プレビューにおいて印刷設定の表示や、必要に応じて変更を行う機能も実現されている(例えば特許文献3参照)。
【0004】
一方、近年では従来の印刷システムとは異なる印刷システムが登場してきた。この新しい印刷システム(XPS印刷システムと呼ぶ)では、スプールファイルに格納されるデータ形式として従来のEMF形式(Enhanced Meta File)ではなくXPS形式(XML Paper Specification)が用いられる。XPSはマイクロソフト社が開発したオープン規格の電子文書フォーマットである。
【特許文献1】特開2003−167721号公報
【特許文献2】特開2004−102618号公報
【特許文献3】特開2006−011847号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
印刷プレビューにおいて印刷設定の変更を行う場合、ユーザが変更内容の影響範囲を認識しやすいように、印刷設定変更の対象をジョブ中の全ページが同じ印刷設定を持つジョブに限定し、変更内容をジョブ全体に反映させる方法が用いられることがある。その場合、ジョブ中の全ページが印刷設定が同一であるかの判定が必要になる。XPS印刷システムでは、印刷設定を記述したXMLデータであるプリントチケット(PrintTicket)をページ等のパートごとに持つことができる。そのためXPS形式の文書データについてページごとの印刷設定が互いに同一であることの判定を行う場合、プリントチケット同士の比較が必要になる。
【0006】
しかし、プリントチケットに記述された各項目を個々に比較して行く場合、ページ数やプリントチケットに記述された項目数によっては大きな処理負荷がかかると考えられる。また、印刷設定の変更を行った後にプリントチケットに変更内容を反映する際、全ページに反映されるようにプリントチケットの更新を行う必要がある。
【0007】
本発明は上記の問題点に鑑みて成されたもので、印刷設定変更の対象をジョブ中の全ページが同じ印刷設定を持つジョブに限定したい場合に、印刷設定の比較や更新の処理負荷を最小限に抑える文書処理装置および文書処理方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
上記目的を達成するために、本発明は以下の構成を有する。すなわち、階層構造の要素によって構成され、描画情報の記述された少なくとも一つのページ要素を含み、各階層の要素それぞれに対して印刷設定情報を付加することが可能な構造化文書を扱う文書処理装置であって、
処理対象の構造化文書の階層ごとに、当該階層の要素に前記印刷設定情報が付加されていないこと、又は、当該階層の要素に付加された前記印刷設定情報が当該階層の全要素により共有されていることを判定する印刷設定判定手段と、
前記印刷設定判定手段により、処理対象の構造化文書の各階層について、当該階層の要素に前記印刷設定情報が付加されていないと判定されたか、又は、当該階層の要素に付加された前記印刷設定情報が当該階層の全要素に共通であると判定された場合に、ユーザによる印刷設定情報の変更を受け付ける印刷設定情報編集手段とを有する。
【発明の効果】
【0009】
上記構成により本発明によれば、全ページについて同一の印刷設定がされた印刷ジョブであることを軽い処理負担で迅速に判定することができる
また、PrintTicketの更新量を抑えながら、印刷設定の変更をXPSデータ全体に反映することができる。
【発明を実施するための最良の形態】
【0010】
[実施形態1]
以下、図面に示す実施例に基づき本発明を詳細に説明する。尚、本文中のXPSとはXML Paper Specificationの略で、Microsoft社が開発したオープン規格の電子文書フォーマットの一つである。
【0011】
<XPS文書の構成>
本文の理解を容易にするため、まずXPSについて簡単に説明する。XPS文書は階層構造を持ち、各階層に要素を有する構造化文書である。具体的には、XPS文書は、FixedDocumentSequence (以下FDSあるいはジョブ要素)をルートすなわち最上位の階層とするツリー構造になっている。FDSは複数のFixedDocument(以下FDあるいは文書要素)を持ち、FDは複数のFixedPage(以下FPあるいはページ要素)を持つ。すなわち最上位階層に下位の階層が属している。FDSとFDとFPのそれぞれは、XPSパートと呼ばれることがある。これらはまたXPSの要素と呼ばれることもある。FPには文書のページの内容がXML形式で記述されており、実際に表示または印刷される内容を含んでいる。すなわちFPには描画情報が記述されている。FPのページ内容で使用されるフォントや画像等のリソースは複数のFPで共有することができる。また、FDSとFDとFPははそれぞれ印刷設定をプリントチケット(以下PT)で持つことができる。すなわちプリントチケットが、各要素に付加された印刷設定情報に相当する。PTはXPS文書を印刷する際の印刷設定をXML形式で記述したものである。ここで各FPを印刷する際に使用する印刷設定は、FDSのPTと、印刷対象FPの親FDのPTと、印刷対象FPのPTをマージしたPTとなる。マージする際には、下位の階層の印刷設定が優先される。XPS形式の文書データでは、FPが文書の各ページに相当し、FDがページを束ねた文書に相当し、FDSが文書を束ねたジョブに相当する。ジョブがひとまとまりの文書データに相当することになる。
【0012】
図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の構造化文書が圧縮されたデータである。
【0013】
図16はPTの一例である。前述したように印刷設定がXMLで記述されており、図16のPTでは用紙サイズ:A4、用紙の種類:普通紙といった印刷設定が記述されている。このPTがFDS、FD、FPそれぞれに付けられる。
【0014】
図17はPTのマージによって生成されるFPの印刷設定の一例である。マージの際に各PTの印刷設定は、子要素の設定が優先して適用される。また、どのパートのPTにも存在しない印刷設定は、ユーザのデフォルト印刷設定が適用される。例えば、図17のようにFDS、FD、FPのPTに用紙サイズの設定がない場合、ここではユーザのデフォルト設定である「A4」がページレベルの印刷設定として適用される。また用紙の種類に関してはFDSに「普通紙」、FDに「はがき」と記述されており、FPのPTには記述されていない。この場合、FDSの設定より、子要素であるFDの設定が適用されるため、ページレベルの印刷設定における用紙の種類は「はがき」となる。同様に給紙方法ではFDSのPTに記述された「カセット」が、印刷の向きではFPのPTに記述された「横」が、モノクロ印刷ではFPのPTに記述された「ON」が適用される。このように、該当する印刷設定が存在するPTの内、木構造上でより下位のXPSパートの設定がページレベルの印刷設定として適用される。また、各設定項目にはどのレベルで使用されるかが指定されており、指定されるレベルより下位のレベルのパートに存在するPTをマージする場合はその項目を考慮しないようにする必要がある。例えば、FPのPTをマージする際、FPのPTに記述されたジョブレベルの項目は反映されない。それに対して、FDSのPTをマージする場合、FDSのPTに記述されたページレベルの項目は反映される。
【0015】
以降ユーザのデフォルト印刷設定とFDSのPTをマージしたPTをジョブレベルのPT、ジョブレベルのPTとFDのPTをマージしたPTをドキュメントレベルのPT、ドキュメントレベルのPTとFPのPTをマージしたPTをページレベルのPTと呼ぶ。
【0016】
<印刷システムの構成>
図2は本発明の実施の一形態に係る印刷システムの構成を示すブロック図である。プリンタ201は、画像形成を行うインクジェット方式のプリンタであり、後述するデータ処理装置(情報処理装置とも呼ぶ)202で生成された印刷コマンドに基づいて記録媒体200に画像の形成を行う。データ処理装置202は、本実施形態の手順を実行するための文書処理プログラムをインストールした汎用コンピュータなどでよく、文書処理装置ということもできる。プリンタの種類については特に問わないが、ここではインクジェット方式のカラープリンタを想定している。データ処理装置202では、不図示のアプリケーションが印刷ジョブを作成し、プリンタドライバ230がスプールされた印刷ジョブから、接続されたプリンタ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】
各機能ブロックについて説明する。印刷設定処理部231は、ユーザインタフェースモジュールとも呼ばれ、ユーザが印刷設定を変更するためのプログラムモジュールである。印刷設定処理部231は、ユーザの操作に応じて印刷設定情報を表示し、また、印刷設定情報の編集などの入力を受け付けることができる。さらに受け付けた印刷設定の変更を、印刷設定情報に反映する。ここで、印刷設定が受け付けられない状態にあれば、印刷設定処理部231は、印刷設定の表示のみを行って編集を受け付けない。これは印刷設定情報全体についても可能であるし、また部分的にも可能である。フィルタ群319には、レイアウト処理部321,プレビュー文書処理部323,印刷コマンド生成処理部325が含まれる。これらはそれぞれフィルタとも呼ばれるプログラムモジュールである。処理内容については図3を参照して説明する。データ通信処理部233は、生成された印刷コマンド等を出力するためのプログラムモジュールである。プレビュー制御部235はプレビュー制御モジュールとも呼び、プレビューデータ指示に応じてプレビューデータを生成させたり、あるいは指定されたページを表示するなど、プレビュー表示に係る制御を行う。
【0018】
ブロック240−244はハードウエアモジュールであり、プリンタドライバ319やアプリケーション、オペレーティングシステム等を実行する環境となる。中央制御装置241はプロセッサであり、記憶部244等に記憶されたプログラムを実行して、文書データやそれに付随する印刷設定情報を加工する。情報通知部243は、中央制御部241に種々の信号を入力する。またディスプレイ等の表示機器を含むこともできる。記憶部244は半導体メモリや、半導体メモリおよびハードディスク等から構成されており、プログラムのほか文書データを記憶する。オペレーティングシステムが印刷に用いるスプールファイルも記憶部244に確保される。入力操作部242は入力を制御し、たとえばキーボード等の入力デバイスを制御する。
【0019】
なお、ソフトウェアで実現される前記各種機能ブロックは、そのプログラムコードを記憶媒体から供給される。媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM,CD−R、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。
【0020】
<プリンタドライバの動作>
図3は、本発明におけるプリンタドライバの実施形態を説明するために図2の印刷システムをOSの印刷サポート機能とプリンタドライバを中心に概念的に表したブロック図である。本発明に関わるモジュールは、印刷設定機能を有するユーザインタフェースモジュール231と、フィルタ群319である。フィルタ群319は、XPSデータのページをレイアウト処理する機能を有するレイアウトフィルタ321と、プレビュー機能を提供するためのフィルタであるプレビューフィルタ323と、XPSデータをプリンタが解釈可能な印刷コマンドに変換する機能を有する印刷コマンドフィルタ325で構成される。ここでフィルタとは、一般的に入力されたデータをもとに、加工、変換、無変換、生成等の工程を介して、何らかのデータを出力する機能を有するプログラムのことを称する。
【0021】
図3における印刷システムでは、アプリケーション301が作成した文書の各ページの印刷データは、OSの印刷サポート機能313を通じてXPSスプールファイル317に一時的に蓄えられる。これをプリンタドライバのフィルタ群319が、印刷設定情報に基づきプリンタが解釈可能な印刷コマンドに変換してプリンタ201に供給して印刷されるように構成されている。
【0022】
ユーザインタフェースモジュール231は、一般に印刷に使用する用紙サイズや印刷方向、その他の属性を設定する機能を提供する。ユーザインタフェースモジュール231は、複数の印刷設定項目の設定値が格納された印刷設定情報をアプリケーション301に返却する。ユーザインタフェースモジュール231が提供する印刷設定ダイアログの一例については図4を用いて後述する。
【0023】
アプリケーション301は作成した任意の文書の印刷にあたり、OSの印刷サポート機能313に対して、印刷開始や印刷終了を通知したり、印刷設定を行うためにユーザインタフェースモジュール231から返却された印刷設定情報を通知したりする。また、文書の各ページの描画開始や描画終了を通知する。OSの印刷サポート機能313は、アプリケーションが描画した内容や印刷設定情報をXPSスプールファイル317に格納する。各フィルタはスプールされた印刷ジョブをデスプールする際にOSの印刷サポート機能から呼び出される。
【0024】
プリンタドライバのフィルタ群319は一つ以上のフィルタで構成されており、印刷時にXPSスプールファイルから印刷ジョブを読込み、プリンタが解釈可能な印刷コマンドに変換してプリンタ201に供給し、印刷を行う機能を有する。本実施形態におけるフィルタ群319は、レイアウト処理部であるレイアウトフィルタ321と、プレビュー文書作成部であるプレビューフィルタ323と、印刷コマンド変換部である印刷コマンドフィルタ325で構成される。ただし、レイアウト機能とプレビュー機能を一つのフィルタで実現したり、不要なフィルタは取り除いたりすることも可能であり、本提案は上記フィルタ構成に限定されるものではない。
【0025】
レイアウトフィルタ321はXPSスプールファイル317に格納されたXPSデータを入力とし、印刷設定情報に基づきページのレイアウト処理を行い、レイアウト済みのXPSデータを出力する機能を有する。本実施例におけるレイアウト処理とは例えば複数のページを一つの用紙面に印刷するN−up印刷や、一つのページを複数の用紙面に印刷するポスター印刷等を含む。
【0026】
プレビューフィルタ323は、レイアウトフィルタ321の出力を入力とし、印刷設定に基づきユーザにプレビュー機能を提供する。
【0027】
印刷コマンドフィルタ325はプレビューフィルタ323の出力を入力とし、印刷設定情報に従い、XPSデータをプリンタが解釈可能な印刷コマンドに変換し出力する機能を有する。印刷コマンドフィルタ325が入力のXPSデータを一度イメージデータに変換する場合、一般的にレンダーフィルタと呼ばれる。レンダーフィルタはインクジェットプリンタに代表される廉価なラスタープリンタ用のプリンタドライバにおいて多く見られる。印刷コマンドフィルタ325がレンダーフィルタとして動作する場合は、入力のXPSデータを一度イメージデータに変換する。その後、色空間の変換や二値化等の画像処理の過程を経て、ラスタープリンタが解釈可能な印刷コマンドに変換される。ページプリンタに代表される高機能なプリンタにおいて、プリンタが解釈できる印刷コマンドの種類にXPSが含まれるならば、印刷コマンドフィルタ325は入力のXPSデータを編集しXPSデータを出力する。印刷コマンドフィルタ325にて処理する必要がなければ、入力のXPSデータをそのまま出力するか、印刷コマンドフィルタ325はプリンタドライバに含めなくても良いことは言うまでもない。
【0028】
出力デバイスであるプリンタ201は、印刷コマンドフィルタ325で生成された印刷コマンドを解釈し、可視画像を印刷用紙に対して形成する機能を持つ。印刷用紙200で図示される印刷結果の例は、レイアウトフィルタ321が2アップ(2ページをシートの一面に縮小レイアウトした配置)の処理を行った場合を示している。
【0029】
<印刷設定画面>
図4は本実施形態における印刷モードや各種用紙設定を行う際に表示される印刷設定ダイアログの一例を示す図である。図4において、印刷設定ダイアログ401は、表示エリア402,403,404,405,406,407,408,409,410,411、420,422,423,424,425,431等から構成される。印刷設定では表示する項目が非常に多いため、タブシートを使用して設定項目を内容ごとに分けて見やすい構成にするのが通例である。
【0030】
図4に基本設定タブ402が選択された場合の表示例を示す。基本設定の簡易表示エリア420には、文字情報だけでなく視覚に訴える形で設定された情報を表示する。用紙種類選択部422は、用紙の種類を表示するとともに利用者により選択させることができる。用紙種類選択部422はドロップダウンメニューとなっており普段は選択されている用紙の種類が表示され、そこをクリックすることで選択可能な用紙種類がリスト表示される。選択可能な用紙の種類はプリンタで印刷可能な用紙であり、図示されている普通紙の他にも例えば光沢紙、コート紙、写真専用紙、ハガキ、年賀状葉書等が含まれる。給紙方法選択部423は、プリンタ本体が用紙を給紙する給紙方法を表示し、利用者による給紙方法の選択をさせることができる。利用者は、給紙方法選択部423により、たとえば自動給紙口である給紙トレイや給紙カセット、または印刷用紙を一枚ずつ手動で給紙する「手差し給紙」などを選択できる。印刷品質選択部424は利用者に印刷の品位を設定させるための項目である。色調整部425は利用者に印刷の色を調整させるための項目である。モノクロ印刷設定部426は、印刷文書がカラーであっても印刷結果をグレースケールにするためのチェックボックスである。プレビュー印刷設定部427は、各種印刷設定がどのように印刷文書に反映されるかを、プリンタによる実際の印刷が行われる前に確認するためのチェックボックスである。標準設定部431が押されると、基本設定402の設定が標準(出荷時設定)に戻される。
【0031】
ユーザは各項目を選択した後にOKボタン408を押下することで印刷設定ダイアログ401を閉じ、選択した印刷設定を印刷に反映させることができる。キャンセルボタン409を押下すると印刷設定ダイアログ401が閉じ、選択した設定項目の内容は破棄され印刷に反映されることはない。適用ボタン410は印刷設定ダイアログ401を開いたままで選択した印刷設定を印刷に反映させることができる。ヘルプボタン411は基本設定402の各設定項目に関する説明文を別ウィンドウで表示させることができる。
【0032】
<プレビュー制御モジュールのプレビューウィンドウ>
図5に、本実施の形態におけるプレビュー制御モジュールによって提供される表示画面(プレビューウィンドウ)の一例を示す。印刷プレビューウィンドウ501は、プレビュー画像や印刷ジョブの印刷設定等を表示するための表示エリアと、ユーザがプレビュー画像の表示方法等を変更するための入力手段を兼備している。
【0033】
メニューバー502は、ユーザは表示切り替え等プレビューアへの命令をメニュー形式で選択することができる。ユーザ操作部503〜506が用意される領域はツールバーであり、ユーザはメニューバー502を使用しなくともツールバー503を押下することで容易にプレビューページの切り替え等を行うことができる。ページ切り替えボタン503は4つのボタンで構成されており、先頭ページ、前ページ、次ページ、最終ページへプレビュー表示を切り替えることが可能である。ドロップダウンリスト504はプレビュー画像の表示サイズを変更する為のドロップダウンリストで、全体表示や100%、200%表示等を選択することができる。印刷開始ボタン505においては、ユーザがこのボタンを押下することでプレビューアを終了し、プレビューしていたプレビュー用XPS文書を印刷処理可能な状態にすることができる。ユーザが印刷中止ボタン506を押下することでプレビューアを終了し、印刷ジョブをキャンセルすることができる。プレビュー表示領域507は、プレビュー用XPSファイルの内容を利用し、印刷用紙と印刷用紙に形成されるであろう可視象を印刷イメージとして表示する。表示領域508はプレビュー機能を実行している印刷ジョブの印刷設定に関わる代表的な設定項目の設定値を表示する。本図においては文書の総ページ数は3ページであり、現在プレビュー表示しているページ番号は2ページであり、印刷設定で設定された部数は1部であり、かつ等倍印刷が設定されていた例を示している。表示領域509はプレビュー機能を実行している印刷ジョブにおいて現在表示しているページの印刷設定に関わる代表的な設定項目の設定値を表示する。本図においては、出力用紙サイズはA4であり、用紙の種類は普通紙であり、給紙方法はカセットが設定されていた例を示している。また、用紙の種類の種類と給紙方法は印刷プレビューに置いてユーザが設定変更可能となっている。
【0034】
また、本実施形態において、図5に例示する表示画面は、プレビュー設定がONである印刷設定情報を伴う印刷ジョブがスプールされ、OSの印刷サポート機能によりフィルタパイプラインが起動され、プレビューフィルタがプレビュー制御モジュールを起動した時点で表示される。
【0035】
<印刷設定の変更>
上記のように印刷結果の確認と併せて、印刷設定の確認や一部設定の変更機能を有する印刷プレビュー機能が存在する。その際、個々のページに対して印刷設定の変更を許可すると、ユーザが変更内容の影響範囲を認識することが困難であると考えられる。そこで、全てのページが同じ印刷設定である場合のみ印刷設定の変更を可能とし、変更された設定はジョブ全体に反映させるといった手法がとられてきた。
【0036】
XPSにおいて全てのページの印刷設定が同じであるということは、全てのページにおけるページレベルのPTが同じ設定であるということである。ページレベルのPTとはユーザのデフォルト印刷設定のPTと、FDSのPTと、印刷対象FPの親FDのPTと、印刷対象FPのPTをマージしたPTである。図1を例として説明すると、FP121のページレベルPTは、ユーザのデフォルト印刷設定のPTと、FDS103のPT131と、親FD111のPT133と、FP121のPT135をマージしたPTとなる。また、FP123ではFPにPTが存在しないため、FP123のページレベルPTは、ユーザのデフォルト印刷設定のPTと、FDS103のPT131と、親FD111のPT133をマージしたPTとなる。同様にFP125ではFPにPTが存在しないため、ページレベルPTは、ユーザのデフォルト印刷設定のPTと、FDS103のPT131と、親FD113のPT137をマージしたPTとなる。つまり、全てのページが同じ印刷設定であるためには、FD111のPT133とFP121のPT135をマージしたPTと、FD111のPT133と、FD113のPT137とが同じ印刷設定であることが必要となる。単に同一性の判定のためであれば、共通部分である印刷設定、この場合にはユーザのデフォルト印刷設定のPTとFDS103のPT131は、マージする対象から除外できる。
【0037】
<ページ間の印刷設定判定処理>
ジョブ中の全てのページが同一の印刷設定が設定されているかどうかの判定を行う場合、全てのページレベルのPTを比較する方法が考えられる。その場合PTに記述されている印刷設定を一つ一つ比較していく必要があり、ページ数や設定内容によっては大きな処理負荷がかかることが考えられる。また、PTをバイナリレベルで比較しようとした場合、同じ設定であっても記載内容や並び順の違いなどがあり、同一であると判断できないことが考えられる。そこで、PTの内容の比較を最小限に抑えながら、同一印刷設定の判定を行うために、PTの配置に基づき判定を行う方法について提案する。
【0038】
まず、全てのFD及びFPにPTが存在しなければ、全ページの印刷設定は同一であるとする。例えば図6(a)のように、FDS601にのみPT621が存在し、FD603から605、及びFP607から611にはPTが存在しない場合を考える。この場合、全てのFPのページレベルのPTは、ユーザのデフォルト印刷設定のPTとFDS601のPT621をマージしたものとなり、同じ印刷設定となる。それに対して図6(b)のように、FDS631にPT651が存在するのに加え、FD633にPT653が、FP639及び641にPT655、657が存在するというように、FDやFPにPTが存在する場合がある。この場合、各ページレベルのPTは、デフォルト印刷設定のPTに、FP637ではPT651、653をマージしたPTであり、FP639ではPT651、653、655をマージしたPTであり、FP641ではPT651、657をマージしたPTである。そのため、それぞれのFPが異なったページレベルのPTとなるため同じ印刷設定である可能性は低いと考えられる。このようにFD及びFPにおけるPTの有無を全ページで印刷設定が同一であるかの判定における基本条件とする。
【0039】
さらに、上記条件に以下のような条件を加えることで判定の精度はさらに向上する。
・FD及びFPに印刷設定の記述されていないPT(以下、空のPT)が存在する場合、PTが付加されていない場合と同義とする。
・FPが1つのみ存在する場合、FD及びFPにPTが存在していても全ページの印刷設定は同一であるとする。
・FDが1つのみ存在する場合、FDにPTが存在していてもFPにPTが存在しなければ全ページの印刷設定は同一であるとする。
・FDが一つ、もしくは全てのFDにPTが存在しない場合、全てのFPに同じPTが関連付けられていれば、全ページの印刷設定は同一であるとする。
【0040】
図7(a)のように、FDもしくはFPにPTが存在していたとしても、それが空のPTだった場合、ユーザのデフォルト印刷設定のPTやFDSのPTとマージを行っても設定内容に影響を与えることがないため、存在しないのと同義である。つまり図7(a)では、FP707から711のページレベルのPTは、全てユーザのデフォルト印刷設定のPTとFDS701のPT721をマージしたものとなり、全ページが同じ印刷設定であると言える。空のPTかどうかの判定にはPTの内容を参照する必要があるが、設定が何も記述されていないPTであるため極めて小さな負荷で判定が可能である。
【0041】
図7(b)のようにFPが1つしか存在しない場合は当然ページ毎に印刷設定が異なるということはないので、FD及びFPにPTが存在していようと全ページが同じ印刷設定であると言える。
【0042】
図7(c)のようにFDが1つしか存在しない場合、全てのFPの親FDが同じであるため、ページレベルのPTを作成する際のマージに用いられるFDのPTは全て同じとなる。したがってFDが1つの場合、FPにPTが存在しなければFDのPTの有無は関係なく全ページが同じ印刷設定となる。図7(c)では、FP755から759のページレベルのPTは全てユーザのデフォルト印刷設定のPTとFDS751のPT761と、FD753のPT763をマージしたものとなり、全ページが同じ印刷設定であると言える。
【0043】
図7(d)のように全てのFPが同じPTに関連付けられている場合、全てのFPの親FDのPTが同じであればページレベルのPTは全て同じとなる。したがって、FDが一つのみ存在する、もしくは全てのFDにPTが存在しない場合、全ページが同じ印刷設定ととなる。図7(d)では、FP775から779のページレベルのPTは、全てユーザのデフォルト印刷設定のPTとFDS771のPT781と、FD773のPT783と、全FPに共通に関連付けられているPT785をマージしたものとなる。つまり、全ページが同じ印刷設定といえる。
【0044】
以上をまとめると、それぞれの階層の要素の印刷設定が、要素間で共通している場合には、全ページの印刷設定が同一であると判定される。具体的には、処理対象のXPSデータ(すなわち構造化文書)の或る階層について、当該階層の要素に前記印刷設定情報が付加されているか、又は、当該階層の要素に付加された前記印刷設定情報が当該階層の全要素により共有されており、全階層がこの条件に該当する場合に、その構造化文書の各ページの印刷設定は互いに同一であると判定できる。このようにすることで、印刷設定の実質にかかわりなく、形式的に同一性を判定できるために、判定が簡易且つ迅速に行える。
【0045】
<プレビューフィルタ処理>
図8は、プレビューフィルタ323により行われるXPSパートの取得処理において、図7で説明した上述の判定処理を行うフローチャートの一例である。なお、本処理はプレビューフィルタだけでなく、プレビュー処理を行う前に、たとえばプレビュー制御モジュール235などで実行してもよい。
【0046】
プレビューフィルタ323は、ステップS101で、スプールもしくは前のフィルタから渡されるXPSパートを順次取得する。ここで取得されるXPSパートはFDSやFD、FPである。ステップS103でXPSパートが取得できたと判定した場合、その判定結果に応じて取得したパートの種類に応じて処理を行う。XPSパートの種類はそれぞれの要素にその識別子等で記述されている。一方取得できなければ当該XPSデータのXPSパートは全て取得したものと判定されてステップS141に分岐する。
【0047】
ステップS111,S121,S131では取得したパートの判別を行う。取得したパートがFDSの場合、ステップS113でFDSに対応したジョブレベルのPTが作成される。ジョブレベルのPT生成処理については図9を用いて後述する。取得したパートがFDの場合、ステップS123で取得したFDに対応したドキュメントレベルのPTが作成される。ドキュメントレベルのPT生成処理については図10を用いて後述する。取得したパートがFPの場合、ステップS133で取得したFPに対応したページレベルのPTが作成される。ページレベルのPT生成処理については図11を用いて後述する。また、FPのPTについてはPTのURI(すなわちリンクであり、関連づけということもできる)を取得しておく(ステップS135)。
【0048】
これらの処理は全てのXPSパートを取得するまで繰り返される。全てのXPSパートの取得が終了すると、ステップS141に移りプレビュー時の印刷設定変更を許可するかの判定が行われる。プレビューにおける印刷設定変更可否の判定処理については図12を用いて後述する。ここではXPSパートの取得終了後に判定を行う方法について説明するが、その他にもXPSパートを取得しながら併せて判定処理を行うことも可能である。
【0049】
<PTのマージ処理>
図9は図8のステップS113の詳細であり、ジョブレベルのPT生成処理の一例である。最初にステップS201でユーザのデフォルト印刷設定のPTを取得する。次にステップS203で取得したFDSのPTを取得する。FDSにはPTが必ず存在するわけではないため、FDSのPTが取得できたかどうか判定し(S205)、取得できた場合はS207へ移り、取得できなかった場合はS211へ移る。ステップS207では取得したPTが空のPTかどうかの判定を行い、印刷設定が記述されている場合はステップS209へ移り、空のPTだった場合はステップS211に移る。ステップS209ではユーザのデフォルト印刷設定のPTとFDSのPTをマージしてジョブレベルのPTを生成する。また、ステップS211では、FDSにPTが存在しないか、もしくは空のPTであり存在しないものとして扱われている場合であるため、マージを行わずにユーザのデフォルト印刷設定のPTをジョブレベルのPTとする。
【0050】
図10は図8のステップS123の詳細であり、ドキュメントレベルのPT生成処理の一例である。最初にステップS301では、取得したFDのPTの取得を行い、取得できたかどうか判定し(S303)、取得できた場合はステップS305へ移り、取得できなかった場合はステップS309へ移る。ステップS305では取得したPTが空のPTかどうかの判定を行い、印刷設定が記述されている場合はステップS307へ移り、空のPTだった場合はステップS309に移る。ステップS307ではジョブレベルのPTと取得したFDのPTをマージして、ドキュメントレベルのPTを生成する。ステップS309ではFDのPTが存在しないので、ジョブレベルのPTをドキュメントレベルのPTとする。XPSパート取得時にFDSは必ずFDの前に取得されるため、ドキュメントレベルのPT生成時にはジョブレベルのPTが必ず存在する。
【0051】
図11は図8のステップS133の詳細であり、ページレベルのPT生成処理の一例である。最初にステップS401では、取得したFPのPTの取得を行い、取得できたかどうか判定し(S403)、取得できた場合はステップS405へ移り、取得できなかった場合はステップS409へ移る。ステップS405では取得したPTが空のPTかどうかの判定を行い、印刷設定が記述されている場合はステップS407へ移り、空のPTだった場合はステップS409に移る。ステップS407では当該FPの親FDのドキュメントレベルのPTと取得したFPのPTをマージして、ページレベルのPTを生成する。ステップS409ではFPのPTが存在しないので、親FDのドキュメントレベルのPTをページレベルのPTとする。当該FPの親FDはそのFP取得前には必ず取得されるため、ページレベルのPT生成時には親FDのドキュメントレベルのPTが必ず存在する。
【0052】
<プレビュー時における印刷設定情報の変更の可否の判定処理>
図12は、全ページの印刷設定が同じであるかを判定し、プレビューによる印刷設定変更を許可するかの判定を行う処理のフローチャートの一例である。まずステップS501で、取得したFDもしくはFPにPTが一つでも存在していたか判定する。ただし、PTが存在していてもそのPTが空のPTはであった場合は存在しないものと判断する。1つもPTが存在しなかった場合はステップS511に移り、印刷プレビューにおける印刷設定の変更をユーザに許可する。許可するとは、たとえば設定変更の禁止フラグ等を変更許可を示す値にセットすることで実現できる。一つでもPTが存在した場合はステップS503に移る。ステップS503ではジョブ中のFPの総数を判定する。取得したFPが1つのみの場合はステップS511に移り、印刷プレビューにおける印刷設定の変更をユーザに許可する。FPが複数存在する場合はステップS505に移る。ステップS505ではジョブ中のFDの総数を判定する。取得したFDが1つのみの場合はステップS507に移る。FDも複数存在する場合はステップS513に移り、印刷プレビューにおける印刷設定の変更を不許可とする。ステップS507ではFPにPTが存在するかを判定する。全てのFPにPTが存在しない場合はステップS511に移り、印刷プレビューにおける印刷設定の変更をユーザに許可する。FPにPTが存在する場合はステップS509に移る。ステップS509では全てのFPが同じPTに関連付けられているかを判定する。FPのPT取得時に併せて取得したPTのURIが全FPに関して同一の場合、すなわち同じ印刷設定情報に関連づけられている場合はS511に移り、印刷プレビューにおける印刷設定の変更をユーザに許可する。ページ毎に関連付けられているPTが異なる場合はステップS513に移り、印刷プレビューにおける印刷設定の変更を不許可とする。不許可とは、たとえば設定変更の禁止フラグ等を変更禁止を示す値にセットすることで実現できる。
【0053】
プレビュー表示時に印刷設定の変更がユーザインターフェースから指示された場合には、たとえばこの設定変更の禁止フラグを参照し、変更許可であれば設定値の変更を受け付け、禁止であれば設定値は表示されるのでのみであり、その変更は受け付けられない。本実施形態では、これはプレビュー表示時の設定変更に限られ、プレビュー表示していないときの設定変更時には、設定変更の禁止フラグは参照されず、設定変更は受け付けられる。しかしながら、プレビュー表示以外に、全ページの印刷設定が同一である場合に限って印刷設定の変更を許可するような場合には、印刷設定の変更操作が行われると、図12の手順で値を与えられた設定変更の禁止フラグが参照されてもよい。
【0054】
前記判定処理によって、PTの内容の参照を最小限に抑えながら、ページ毎の印刷設定が全ページで同じかどうかの判定を高い精度で行うことが可能となる。
【0055】
<設定変更内容の反映(印刷設定情報編集)>
前記判定処理において印刷プレビューにおける印刷設定の変更が許可され、ユーザが印刷プレビューで印刷設定の変更を行った場合、変更された設定内容をPTに反映する必要がある。本来、変更した印刷設定をどのPTに反映するかは設定項目によって異なる。例えば、ジョブ全体に反映したい設定項目の場合はFDSのPTの更新を行い、また特定のページにのみ反映した設定項目の場合はFPのPTを更新するといったことが必要となる。しかし、本実施形態では印刷設定の変更を全ページが同じ印刷設定の場合のみ許可し、変更内容は全ページに反映するものとしている。つまり、全てのページレベルのPTには同じ印刷設定が記述されており、印刷設定変更後も設定内容が全てのページに反映される必要がある。そこで印刷設定変更内容に従ってページレベルのPTを更新し、更新したPTをFDSに付加するとともに、FD,及びFPに存在するPTを削除する方法を提案する。
【0056】
図13は本実施形態の手法によって印刷設定の変更を反映した際に作成されるXPSデータの一例である。変更前のXPSデータ1301は、FDS1311とFD1313、FP1315から1319によって構成されている。そしてFDS1311にはPT1321、FD1313にはPT1323、FP1315から1319にはPT1325が存在する。この場合、全てのFPのページレベルのPTは、ユーザのデフォルト印刷設定のPTとFDS1311のPT1321と、FD1313のPT1323と、FPのPT1325をマージしたPTとなる。この結果全ページが同じ印刷設定と判定されるため、印刷プレビューにおける印刷設定変更が許可される。ここで印刷設定が変更された場合、更新内容の反映は上記ページレベルのPTに対して行う。そして、変更内容の反映されたページレベルのPT1331をFDS1311のPT1321と入れ替える。さらにFD1313のPT1323とFP1315から1319のPT1325を削除して、変更した印刷設定を反映したXPSデータ1303とする。XPSデータ1303にはFD及びFPにPTが存在しないため、全てのFPのページレベルのPTはユーザのデフォルト印刷設定のPTと、新たにFDS1311に付加したPT1331をマージしたものとなる。これによって最小限のPTの変更で全てのページに対して、ユーザの行った印刷設定の変更を反映させることが可能となる。
【0057】
<プリントチケット更新処理>
図14は前述した印刷設定変更内容の反映処理におけるPT更新処理のフローチャートの一例である。この手順はたとえばプレビューフィルター323やプレビュー制御モジュール325により実行される。最初にステップS601で印刷設定変更が行われたかを判定する。印刷設定の変更が行われた場合はステップS603に移り、変更が一切行われていない場合は更新処理を終了する。ステップS603ではFDもしくはFPにPTが存在するかを判定し、存在しない場合はステップS605に移り、存在する場合はステップS607に移る。ステップS605ではジョブレベルのPTに対して変更内容に基づく更新を行いステップS615に移る。ここではFD及びFPにPTが存在しないので、ジョブレベルのPTはページレベルのPTと同義である。ステップS607ではFPにPTが存在するかを判定し、存在する場合はステップS609に移り、存在しない場合はステップS611に移る。ステップS609ではページレベルのPTに対して変更内容に基づく更新を行いステップS613に移る。また、ステップS611ではドキュメントレベルのPTに対して変更内容に基づく更新を行いステップS613に移る。ここではFPにPTが存在しないので、ジョブレベルのPTはページレベルのPTと同義である。ステップS613ではFD及びFPに存在するPTを全て削除し、ステップS615に移る。ステップS615ではFDSにPTが存在するかを判定し、存在する場合はステップS617に移り、存在しない場合はステップS619に移る。ステップS617ではFDSに存在するPTを削除し、ステップS619に移る。ステップS619では設定変更内容に基づき更新されたPTをFDSに付加して処理を終了する。これによって変更した印刷設定はジョブ中の全てのページに反映される。
【0058】
本実施形態ではプレビューフィルタにおいて印刷設定の判定処理及び設定変更の反映処理を行っているが、ドライバ処理中のどの段階でも実施することが可能である。また、プリンタドライバ処理に限らず、XPSドキュメントの編集を行うアプリケーション等に対しても適用可能である。
【0059】
[実施形態2]
実施形態1ではPTの配置から全ページの印刷設定が同一であるかの判定を行っており、PTの内容については空のPTの判定以外で参照することはなかった。しかし、FP毎に異なるPTが存在しても全てのPTに記述されている設定が同じであればページの印刷設定は同じであると言える。そのような場合、実施形態1では実際には同じ印刷設定であっても設定の異なるものと判定してしまう。そこで本実施形態では、実施形態1の手法に加え、PTに記述された個々の印刷設定の比較を行うことなく、設定内容の比較を行うためにDevmodeSnapShotを利用する手法について提案する。DevmodeSnapShotとは、印刷設定情報等を含むデータ構造体であるDEVMODEがバイナリデータに変換されたものであり、PTに記述される。DevmodeSnapShotは印刷設定が同じであれば同じデータとなるため、バイナリ比較によって印刷設定が同じか判定することができる。
【0060】
<DevmodeSnapShot比較処理>
図15はDevmodeSnapShot比較処理のフローチャートの一例である。まず、ステップS701でFDが複数存在するかを判定する。FDが1つの場合はFDのDevmodeSnapShotは比較する必要がないためステップS709に移り、FDが複数存在する場合はステップS703に移る。ステップS703からステップS707ではFDのPTに含まれるDevmodeSnapShotの比較を行う。DevmodeSnapShotは全てのPTに必ず存在するものではないので、ステップS703では全てのFDのPTにDevmodeSnapShotが存在するかの判定を行う。存在する場合はステップS705へ移り、全てのFDのPTには存在しない場合はステップS717に移り、印刷プレビューにおけるユーザの印刷設定変更を不許可として処理を終了する。ステップS705ではFDのPTに含まれるDevmodeSnapShotの比較を行い、ステップS707に移る。比較の結果、全てのDevmodeSnapShotが同一のものであればステップS709に移り、異なるものがある場合はステップS717に移り、印刷プレビューにおけるユーザの印刷設定変更を不許可として処理を終了する。同様に、ステップS709からステップS713ではFPのPTに含まれるDevmodeSnapShotの比較を行う。ステップS709では全てのFDのPTにDevmodeSnapShotが存在するかの判定を行い、存在する場合はステップS711へ移り、全てのFPのPTには存在しない場合はステップS717に移る。ステップS717では、印刷プレビューにおけるユーザの印刷設定変更を不許可として処理を終了する。ステップS711ではFPのPTに含まれるDevmodeSnapShotの比較を行い、ステップS715に移る。比較の結果、全てのDevmodeSnapShotが同一のものであればステップS715に移り、印刷プレビューにおけるユーザの印刷設定変更を許可して処理を終了する。異なるものがある場合はステップS717に移り、印刷プレビューにおけるユーザの印刷設定変更を不許可として処理を終了する。
【0061】
上記手法では全てのFD及びFPにPTが存在するように記載しているが、PTが存在しないパートは、そのパートの親パートのPTを当該パートのPTとして扱うものとする。例えばFDにPTが存在しない場合は代替でFDSのPTをFDのPTとして扱う。また、FPにPTが存在しない場合も同様に親FDのPTを利用するものとし、親FDにもPTが存在しない場合はさらに親のFDSをFPのPTとして扱う。
【0062】
上記手法によると、PTにDevmodeSnapShotが記述されたデータに関して、PTに記述された個々の設定を比較することなく、バイナリデータの比較によって印刷設定が同一かどうかの判定を行うことができる。本手法を実施形態1の手法と併せて実施することで判定精度の向上を図ることができる。
【0063】
なお本発明は、複数の機器(例えばホストコンピュータ、インタフェース機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用してもよい。また本発明の目的は、前述の実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータが記憶媒体に格納されたプログラムを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラム自体が前述した実施形態の機能を実現することになり、そのプログラム自体およびプログラムを記憶した記憶媒体は本発明を構成することになる。
【0064】
また、本発明には、プログラムの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。さらに、記憶媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた場合についても、本発明は適用される。その場合、書き込まれたプログラムの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される。
【図面の簡単な説明】
【0065】
【図1】XPSの論理構造の概念図
【図2】本発明の実施形態に係わる印刷システムの一例を示すブロック図
【図3】本発明の実施形態に係わるプリンタドライバ一例を示すブロック図
【図4】本発明の実施形態に係わる印刷設定ダイアログの一例を示す図
【図5】本発明の実施形態に係わるプレビューウィンドウの一例を示す図
【図6】本発明の実施形態に係わる印刷設定の同一判定に用いる基本条件を表すXPSの一例を示す図
【図7】本発明の実施形態に係わる印刷設定の同一判定に用いる追加条件を表すXPSの一例を示す図
【図8】本発明の実施形態に係わるXPSパートの取得処理の一例を示す図
【図9】本発明の実施形態に係わるジョブレベルのPT生成処理の一例を示す図
【図10】本発明の実施形態に係わるドキュメントレベルのPT生成処理の一例を示す図
【図11】本発明の実施形態に係わるページレベルのPT生成処理の一例を示す図
【図12】本発明の実施形態に係わる印刷設定変更可否判定処理の一例を示す図
【図13】本発明の実施形態に係わる印刷設定変更のXPSデータへの反映を示す概念図
【図14】本発明の実施形態に係わるPT更新処理の一例を示す図
【図15】本発明の実施形態に係わるDevmodeSnapShotを用いた印刷設定の比較処理の一例を表す図
【図16】PTの一例を示す概念図
【図17】PTのマージ結果の一例を示す図
【技術分野】
【0001】
本発明は、例えば印刷処理を行う前に、印刷イメージをユーザが認識可能に表示する、いわゆるプレビュー機能等を有する文書処理装置および文書処理方法に関する。
【背景技術】
【0002】
オペレーティングシステム(OS)としてマイクロソフト社のウインドウズ(登録商標)を搭載した計算機を用いた印刷システムにおいて、アプリケーションプログラム(アプリケーション)等で生成された印刷データは、OS標準のデータ形式でスプールファイルに格納される。OSは印刷データを印刷するためにプリンタドライバを呼び出す。そしてプリンタドライバが、スプールファイルに格納された印刷データを読み取り、イメージ生成処理部により印刷イメージを作成し、さらにプリンタが解釈可能な印刷コマンドに変換する。印刷コマンドはプリンタに送信され、プリンタは印刷コマンドを解釈し、記録媒体に像を形成することで印刷処理が実行される。
【0003】
また、プリンタドライバには、印刷コマンドがプリンタに対して送信される前に印刷データおよび印刷設定を解析して印刷結果を示す表示用のデータを作成し、それを前もって表示する印刷プレビュー機能が実現されている。プレビュー機能はプリンタドライバの1モジュールとして提供されている。プレビュー機能によって、プリンタドライバのレンダリングモジュールもしくはOSの描画モジュールにより描画された内容を表示部に印刷プレビューとして出力する機能を備えている(例えば特許文献1又は特許文献2等参照)。さらに印刷プレビューにおいて印刷設定の表示や、必要に応じて変更を行う機能も実現されている(例えば特許文献3参照)。
【0004】
一方、近年では従来の印刷システムとは異なる印刷システムが登場してきた。この新しい印刷システム(XPS印刷システムと呼ぶ)では、スプールファイルに格納されるデータ形式として従来のEMF形式(Enhanced Meta File)ではなくXPS形式(XML Paper Specification)が用いられる。XPSはマイクロソフト社が開発したオープン規格の電子文書フォーマットである。
【特許文献1】特開2003−167721号公報
【特許文献2】特開2004−102618号公報
【特許文献3】特開2006−011847号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
印刷プレビューにおいて印刷設定の変更を行う場合、ユーザが変更内容の影響範囲を認識しやすいように、印刷設定変更の対象をジョブ中の全ページが同じ印刷設定を持つジョブに限定し、変更内容をジョブ全体に反映させる方法が用いられることがある。その場合、ジョブ中の全ページが印刷設定が同一であるかの判定が必要になる。XPS印刷システムでは、印刷設定を記述したXMLデータであるプリントチケット(PrintTicket)をページ等のパートごとに持つことができる。そのためXPS形式の文書データについてページごとの印刷設定が互いに同一であることの判定を行う場合、プリントチケット同士の比較が必要になる。
【0006】
しかし、プリントチケットに記述された各項目を個々に比較して行く場合、ページ数やプリントチケットに記述された項目数によっては大きな処理負荷がかかると考えられる。また、印刷設定の変更を行った後にプリントチケットに変更内容を反映する際、全ページに反映されるようにプリントチケットの更新を行う必要がある。
【0007】
本発明は上記の問題点に鑑みて成されたもので、印刷設定変更の対象をジョブ中の全ページが同じ印刷設定を持つジョブに限定したい場合に、印刷設定の比較や更新の処理負荷を最小限に抑える文書処理装置および文書処理方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
上記目的を達成するために、本発明は以下の構成を有する。すなわち、階層構造の要素によって構成され、描画情報の記述された少なくとも一つのページ要素を含み、各階層の要素それぞれに対して印刷設定情報を付加することが可能な構造化文書を扱う文書処理装置であって、
処理対象の構造化文書の階層ごとに、当該階層の要素に前記印刷設定情報が付加されていないこと、又は、当該階層の要素に付加された前記印刷設定情報が当該階層の全要素により共有されていることを判定する印刷設定判定手段と、
前記印刷設定判定手段により、処理対象の構造化文書の各階層について、当該階層の要素に前記印刷設定情報が付加されていないと判定されたか、又は、当該階層の要素に付加された前記印刷設定情報が当該階層の全要素に共通であると判定された場合に、ユーザによる印刷設定情報の変更を受け付ける印刷設定情報編集手段とを有する。
【発明の効果】
【0009】
上記構成により本発明によれば、全ページについて同一の印刷設定がされた印刷ジョブであることを軽い処理負担で迅速に判定することができる
また、PrintTicketの更新量を抑えながら、印刷設定の変更をXPSデータ全体に反映することができる。
【発明を実施するための最良の形態】
【0010】
[実施形態1]
以下、図面に示す実施例に基づき本発明を詳細に説明する。尚、本文中のXPSとはXML Paper Specificationの略で、Microsoft社が開発したオープン規格の電子文書フォーマットの一つである。
【0011】
<XPS文書の構成>
本文の理解を容易にするため、まずXPSについて簡単に説明する。XPS文書は階層構造を持ち、各階層に要素を有する構造化文書である。具体的には、XPS文書は、FixedDocumentSequence (以下FDSあるいはジョブ要素)をルートすなわち最上位の階層とするツリー構造になっている。FDSは複数のFixedDocument(以下FDあるいは文書要素)を持ち、FDは複数のFixedPage(以下FPあるいはページ要素)を持つ。すなわち最上位階層に下位の階層が属している。FDSとFDとFPのそれぞれは、XPSパートと呼ばれることがある。これらはまたXPSの要素と呼ばれることもある。FPには文書のページの内容がXML形式で記述されており、実際に表示または印刷される内容を含んでいる。すなわちFPには描画情報が記述されている。FPのページ内容で使用されるフォントや画像等のリソースは複数のFPで共有することができる。また、FDSとFDとFPははそれぞれ印刷設定をプリントチケット(以下PT)で持つことができる。すなわちプリントチケットが、各要素に付加された印刷設定情報に相当する。PTはXPS文書を印刷する際の印刷設定をXML形式で記述したものである。ここで各FPを印刷する際に使用する印刷設定は、FDSのPTと、印刷対象FPの親FDのPTと、印刷対象FPのPTをマージしたPTとなる。マージする際には、下位の階層の印刷設定が優先される。XPS形式の文書データでは、FPが文書の各ページに相当し、FDがページを束ねた文書に相当し、FDSが文書を束ねたジョブに相当する。ジョブがひとまとまりの文書データに相当することになる。
【0012】
図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の構造化文書が圧縮されたデータである。
【0013】
図16はPTの一例である。前述したように印刷設定がXMLで記述されており、図16のPTでは用紙サイズ:A4、用紙の種類:普通紙といった印刷設定が記述されている。このPTがFDS、FD、FPそれぞれに付けられる。
【0014】
図17はPTのマージによって生成されるFPの印刷設定の一例である。マージの際に各PTの印刷設定は、子要素の設定が優先して適用される。また、どのパートのPTにも存在しない印刷設定は、ユーザのデフォルト印刷設定が適用される。例えば、図17のようにFDS、FD、FPのPTに用紙サイズの設定がない場合、ここではユーザのデフォルト設定である「A4」がページレベルの印刷設定として適用される。また用紙の種類に関してはFDSに「普通紙」、FDに「はがき」と記述されており、FPのPTには記述されていない。この場合、FDSの設定より、子要素であるFDの設定が適用されるため、ページレベルの印刷設定における用紙の種類は「はがき」となる。同様に給紙方法ではFDSのPTに記述された「カセット」が、印刷の向きではFPのPTに記述された「横」が、モノクロ印刷ではFPのPTに記述された「ON」が適用される。このように、該当する印刷設定が存在するPTの内、木構造上でより下位のXPSパートの設定がページレベルの印刷設定として適用される。また、各設定項目にはどのレベルで使用されるかが指定されており、指定されるレベルより下位のレベルのパートに存在するPTをマージする場合はその項目を考慮しないようにする必要がある。例えば、FPのPTをマージする際、FPのPTに記述されたジョブレベルの項目は反映されない。それに対して、FDSのPTをマージする場合、FDSのPTに記述されたページレベルの項目は反映される。
【0015】
以降ユーザのデフォルト印刷設定とFDSのPTをマージしたPTをジョブレベルのPT、ジョブレベルのPTとFDのPTをマージしたPTをドキュメントレベルのPT、ドキュメントレベルのPTとFPのPTをマージしたPTをページレベルのPTと呼ぶ。
【0016】
<印刷システムの構成>
図2は本発明の実施の一形態に係る印刷システムの構成を示すブロック図である。プリンタ201は、画像形成を行うインクジェット方式のプリンタであり、後述するデータ処理装置(情報処理装置とも呼ぶ)202で生成された印刷コマンドに基づいて記録媒体200に画像の形成を行う。データ処理装置202は、本実施形態の手順を実行するための文書処理プログラムをインストールした汎用コンピュータなどでよく、文書処理装置ということもできる。プリンタの種類については特に問わないが、ここではインクジェット方式のカラープリンタを想定している。データ処理装置202では、不図示のアプリケーションが印刷ジョブを作成し、プリンタドライバ230がスプールされた印刷ジョブから、接続されたプリンタ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】
各機能ブロックについて説明する。印刷設定処理部231は、ユーザインタフェースモジュールとも呼ばれ、ユーザが印刷設定を変更するためのプログラムモジュールである。印刷設定処理部231は、ユーザの操作に応じて印刷設定情報を表示し、また、印刷設定情報の編集などの入力を受け付けることができる。さらに受け付けた印刷設定の変更を、印刷設定情報に反映する。ここで、印刷設定が受け付けられない状態にあれば、印刷設定処理部231は、印刷設定の表示のみを行って編集を受け付けない。これは印刷設定情報全体についても可能であるし、また部分的にも可能である。フィルタ群319には、レイアウト処理部321,プレビュー文書処理部323,印刷コマンド生成処理部325が含まれる。これらはそれぞれフィルタとも呼ばれるプログラムモジュールである。処理内容については図3を参照して説明する。データ通信処理部233は、生成された印刷コマンド等を出力するためのプログラムモジュールである。プレビュー制御部235はプレビュー制御モジュールとも呼び、プレビューデータ指示に応じてプレビューデータを生成させたり、あるいは指定されたページを表示するなど、プレビュー表示に係る制御を行う。
【0018】
ブロック240−244はハードウエアモジュールであり、プリンタドライバ319やアプリケーション、オペレーティングシステム等を実行する環境となる。中央制御装置241はプロセッサであり、記憶部244等に記憶されたプログラムを実行して、文書データやそれに付随する印刷設定情報を加工する。情報通知部243は、中央制御部241に種々の信号を入力する。またディスプレイ等の表示機器を含むこともできる。記憶部244は半導体メモリや、半導体メモリおよびハードディスク等から構成されており、プログラムのほか文書データを記憶する。オペレーティングシステムが印刷に用いるスプールファイルも記憶部244に確保される。入力操作部242は入力を制御し、たとえばキーボード等の入力デバイスを制御する。
【0019】
なお、ソフトウェアで実現される前記各種機能ブロックは、そのプログラムコードを記憶媒体から供給される。媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM,CD−R、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。
【0020】
<プリンタドライバの動作>
図3は、本発明におけるプリンタドライバの実施形態を説明するために図2の印刷システムをOSの印刷サポート機能とプリンタドライバを中心に概念的に表したブロック図である。本発明に関わるモジュールは、印刷設定機能を有するユーザインタフェースモジュール231と、フィルタ群319である。フィルタ群319は、XPSデータのページをレイアウト処理する機能を有するレイアウトフィルタ321と、プレビュー機能を提供するためのフィルタであるプレビューフィルタ323と、XPSデータをプリンタが解釈可能な印刷コマンドに変換する機能を有する印刷コマンドフィルタ325で構成される。ここでフィルタとは、一般的に入力されたデータをもとに、加工、変換、無変換、生成等の工程を介して、何らかのデータを出力する機能を有するプログラムのことを称する。
【0021】
図3における印刷システムでは、アプリケーション301が作成した文書の各ページの印刷データは、OSの印刷サポート機能313を通じてXPSスプールファイル317に一時的に蓄えられる。これをプリンタドライバのフィルタ群319が、印刷設定情報に基づきプリンタが解釈可能な印刷コマンドに変換してプリンタ201に供給して印刷されるように構成されている。
【0022】
ユーザインタフェースモジュール231は、一般に印刷に使用する用紙サイズや印刷方向、その他の属性を設定する機能を提供する。ユーザインタフェースモジュール231は、複数の印刷設定項目の設定値が格納された印刷設定情報をアプリケーション301に返却する。ユーザインタフェースモジュール231が提供する印刷設定ダイアログの一例については図4を用いて後述する。
【0023】
アプリケーション301は作成した任意の文書の印刷にあたり、OSの印刷サポート機能313に対して、印刷開始や印刷終了を通知したり、印刷設定を行うためにユーザインタフェースモジュール231から返却された印刷設定情報を通知したりする。また、文書の各ページの描画開始や描画終了を通知する。OSの印刷サポート機能313は、アプリケーションが描画した内容や印刷設定情報をXPSスプールファイル317に格納する。各フィルタはスプールされた印刷ジョブをデスプールする際にOSの印刷サポート機能から呼び出される。
【0024】
プリンタドライバのフィルタ群319は一つ以上のフィルタで構成されており、印刷時にXPSスプールファイルから印刷ジョブを読込み、プリンタが解釈可能な印刷コマンドに変換してプリンタ201に供給し、印刷を行う機能を有する。本実施形態におけるフィルタ群319は、レイアウト処理部であるレイアウトフィルタ321と、プレビュー文書作成部であるプレビューフィルタ323と、印刷コマンド変換部である印刷コマンドフィルタ325で構成される。ただし、レイアウト機能とプレビュー機能を一つのフィルタで実現したり、不要なフィルタは取り除いたりすることも可能であり、本提案は上記フィルタ構成に限定されるものではない。
【0025】
レイアウトフィルタ321はXPSスプールファイル317に格納されたXPSデータを入力とし、印刷設定情報に基づきページのレイアウト処理を行い、レイアウト済みのXPSデータを出力する機能を有する。本実施例におけるレイアウト処理とは例えば複数のページを一つの用紙面に印刷するN−up印刷や、一つのページを複数の用紙面に印刷するポスター印刷等を含む。
【0026】
プレビューフィルタ323は、レイアウトフィルタ321の出力を入力とし、印刷設定に基づきユーザにプレビュー機能を提供する。
【0027】
印刷コマンドフィルタ325はプレビューフィルタ323の出力を入力とし、印刷設定情報に従い、XPSデータをプリンタが解釈可能な印刷コマンドに変換し出力する機能を有する。印刷コマンドフィルタ325が入力のXPSデータを一度イメージデータに変換する場合、一般的にレンダーフィルタと呼ばれる。レンダーフィルタはインクジェットプリンタに代表される廉価なラスタープリンタ用のプリンタドライバにおいて多く見られる。印刷コマンドフィルタ325がレンダーフィルタとして動作する場合は、入力のXPSデータを一度イメージデータに変換する。その後、色空間の変換や二値化等の画像処理の過程を経て、ラスタープリンタが解釈可能な印刷コマンドに変換される。ページプリンタに代表される高機能なプリンタにおいて、プリンタが解釈できる印刷コマンドの種類にXPSが含まれるならば、印刷コマンドフィルタ325は入力のXPSデータを編集しXPSデータを出力する。印刷コマンドフィルタ325にて処理する必要がなければ、入力のXPSデータをそのまま出力するか、印刷コマンドフィルタ325はプリンタドライバに含めなくても良いことは言うまでもない。
【0028】
出力デバイスであるプリンタ201は、印刷コマンドフィルタ325で生成された印刷コマンドを解釈し、可視画像を印刷用紙に対して形成する機能を持つ。印刷用紙200で図示される印刷結果の例は、レイアウトフィルタ321が2アップ(2ページをシートの一面に縮小レイアウトした配置)の処理を行った場合を示している。
【0029】
<印刷設定画面>
図4は本実施形態における印刷モードや各種用紙設定を行う際に表示される印刷設定ダイアログの一例を示す図である。図4において、印刷設定ダイアログ401は、表示エリア402,403,404,405,406,407,408,409,410,411、420,422,423,424,425,431等から構成される。印刷設定では表示する項目が非常に多いため、タブシートを使用して設定項目を内容ごとに分けて見やすい構成にするのが通例である。
【0030】
図4に基本設定タブ402が選択された場合の表示例を示す。基本設定の簡易表示エリア420には、文字情報だけでなく視覚に訴える形で設定された情報を表示する。用紙種類選択部422は、用紙の種類を表示するとともに利用者により選択させることができる。用紙種類選択部422はドロップダウンメニューとなっており普段は選択されている用紙の種類が表示され、そこをクリックすることで選択可能な用紙種類がリスト表示される。選択可能な用紙の種類はプリンタで印刷可能な用紙であり、図示されている普通紙の他にも例えば光沢紙、コート紙、写真専用紙、ハガキ、年賀状葉書等が含まれる。給紙方法選択部423は、プリンタ本体が用紙を給紙する給紙方法を表示し、利用者による給紙方法の選択をさせることができる。利用者は、給紙方法選択部423により、たとえば自動給紙口である給紙トレイや給紙カセット、または印刷用紙を一枚ずつ手動で給紙する「手差し給紙」などを選択できる。印刷品質選択部424は利用者に印刷の品位を設定させるための項目である。色調整部425は利用者に印刷の色を調整させるための項目である。モノクロ印刷設定部426は、印刷文書がカラーであっても印刷結果をグレースケールにするためのチェックボックスである。プレビュー印刷設定部427は、各種印刷設定がどのように印刷文書に反映されるかを、プリンタによる実際の印刷が行われる前に確認するためのチェックボックスである。標準設定部431が押されると、基本設定402の設定が標準(出荷時設定)に戻される。
【0031】
ユーザは各項目を選択した後にOKボタン408を押下することで印刷設定ダイアログ401を閉じ、選択した印刷設定を印刷に反映させることができる。キャンセルボタン409を押下すると印刷設定ダイアログ401が閉じ、選択した設定項目の内容は破棄され印刷に反映されることはない。適用ボタン410は印刷設定ダイアログ401を開いたままで選択した印刷設定を印刷に反映させることができる。ヘルプボタン411は基本設定402の各設定項目に関する説明文を別ウィンドウで表示させることができる。
【0032】
<プレビュー制御モジュールのプレビューウィンドウ>
図5に、本実施の形態におけるプレビュー制御モジュールによって提供される表示画面(プレビューウィンドウ)の一例を示す。印刷プレビューウィンドウ501は、プレビュー画像や印刷ジョブの印刷設定等を表示するための表示エリアと、ユーザがプレビュー画像の表示方法等を変更するための入力手段を兼備している。
【0033】
メニューバー502は、ユーザは表示切り替え等プレビューアへの命令をメニュー形式で選択することができる。ユーザ操作部503〜506が用意される領域はツールバーであり、ユーザはメニューバー502を使用しなくともツールバー503を押下することで容易にプレビューページの切り替え等を行うことができる。ページ切り替えボタン503は4つのボタンで構成されており、先頭ページ、前ページ、次ページ、最終ページへプレビュー表示を切り替えることが可能である。ドロップダウンリスト504はプレビュー画像の表示サイズを変更する為のドロップダウンリストで、全体表示や100%、200%表示等を選択することができる。印刷開始ボタン505においては、ユーザがこのボタンを押下することでプレビューアを終了し、プレビューしていたプレビュー用XPS文書を印刷処理可能な状態にすることができる。ユーザが印刷中止ボタン506を押下することでプレビューアを終了し、印刷ジョブをキャンセルすることができる。プレビュー表示領域507は、プレビュー用XPSファイルの内容を利用し、印刷用紙と印刷用紙に形成されるであろう可視象を印刷イメージとして表示する。表示領域508はプレビュー機能を実行している印刷ジョブの印刷設定に関わる代表的な設定項目の設定値を表示する。本図においては文書の総ページ数は3ページであり、現在プレビュー表示しているページ番号は2ページであり、印刷設定で設定された部数は1部であり、かつ等倍印刷が設定されていた例を示している。表示領域509はプレビュー機能を実行している印刷ジョブにおいて現在表示しているページの印刷設定に関わる代表的な設定項目の設定値を表示する。本図においては、出力用紙サイズはA4であり、用紙の種類は普通紙であり、給紙方法はカセットが設定されていた例を示している。また、用紙の種類の種類と給紙方法は印刷プレビューに置いてユーザが設定変更可能となっている。
【0034】
また、本実施形態において、図5に例示する表示画面は、プレビュー設定がONである印刷設定情報を伴う印刷ジョブがスプールされ、OSの印刷サポート機能によりフィルタパイプラインが起動され、プレビューフィルタがプレビュー制御モジュールを起動した時点で表示される。
【0035】
<印刷設定の変更>
上記のように印刷結果の確認と併せて、印刷設定の確認や一部設定の変更機能を有する印刷プレビュー機能が存在する。その際、個々のページに対して印刷設定の変更を許可すると、ユーザが変更内容の影響範囲を認識することが困難であると考えられる。そこで、全てのページが同じ印刷設定である場合のみ印刷設定の変更を可能とし、変更された設定はジョブ全体に反映させるといった手法がとられてきた。
【0036】
XPSにおいて全てのページの印刷設定が同じであるということは、全てのページにおけるページレベルのPTが同じ設定であるということである。ページレベルのPTとはユーザのデフォルト印刷設定のPTと、FDSのPTと、印刷対象FPの親FDのPTと、印刷対象FPのPTをマージしたPTである。図1を例として説明すると、FP121のページレベルPTは、ユーザのデフォルト印刷設定のPTと、FDS103のPT131と、親FD111のPT133と、FP121のPT135をマージしたPTとなる。また、FP123ではFPにPTが存在しないため、FP123のページレベルPTは、ユーザのデフォルト印刷設定のPTと、FDS103のPT131と、親FD111のPT133をマージしたPTとなる。同様にFP125ではFPにPTが存在しないため、ページレベルPTは、ユーザのデフォルト印刷設定のPTと、FDS103のPT131と、親FD113のPT137をマージしたPTとなる。つまり、全てのページが同じ印刷設定であるためには、FD111のPT133とFP121のPT135をマージしたPTと、FD111のPT133と、FD113のPT137とが同じ印刷設定であることが必要となる。単に同一性の判定のためであれば、共通部分である印刷設定、この場合にはユーザのデフォルト印刷設定のPTとFDS103のPT131は、マージする対象から除外できる。
【0037】
<ページ間の印刷設定判定処理>
ジョブ中の全てのページが同一の印刷設定が設定されているかどうかの判定を行う場合、全てのページレベルのPTを比較する方法が考えられる。その場合PTに記述されている印刷設定を一つ一つ比較していく必要があり、ページ数や設定内容によっては大きな処理負荷がかかることが考えられる。また、PTをバイナリレベルで比較しようとした場合、同じ設定であっても記載内容や並び順の違いなどがあり、同一であると判断できないことが考えられる。そこで、PTの内容の比較を最小限に抑えながら、同一印刷設定の判定を行うために、PTの配置に基づき判定を行う方法について提案する。
【0038】
まず、全てのFD及びFPにPTが存在しなければ、全ページの印刷設定は同一であるとする。例えば図6(a)のように、FDS601にのみPT621が存在し、FD603から605、及びFP607から611にはPTが存在しない場合を考える。この場合、全てのFPのページレベルのPTは、ユーザのデフォルト印刷設定のPTとFDS601のPT621をマージしたものとなり、同じ印刷設定となる。それに対して図6(b)のように、FDS631にPT651が存在するのに加え、FD633にPT653が、FP639及び641にPT655、657が存在するというように、FDやFPにPTが存在する場合がある。この場合、各ページレベルのPTは、デフォルト印刷設定のPTに、FP637ではPT651、653をマージしたPTであり、FP639ではPT651、653、655をマージしたPTであり、FP641ではPT651、657をマージしたPTである。そのため、それぞれのFPが異なったページレベルのPTとなるため同じ印刷設定である可能性は低いと考えられる。このようにFD及びFPにおけるPTの有無を全ページで印刷設定が同一であるかの判定における基本条件とする。
【0039】
さらに、上記条件に以下のような条件を加えることで判定の精度はさらに向上する。
・FD及びFPに印刷設定の記述されていないPT(以下、空のPT)が存在する場合、PTが付加されていない場合と同義とする。
・FPが1つのみ存在する場合、FD及びFPにPTが存在していても全ページの印刷設定は同一であるとする。
・FDが1つのみ存在する場合、FDにPTが存在していてもFPにPTが存在しなければ全ページの印刷設定は同一であるとする。
・FDが一つ、もしくは全てのFDにPTが存在しない場合、全てのFPに同じPTが関連付けられていれば、全ページの印刷設定は同一であるとする。
【0040】
図7(a)のように、FDもしくはFPにPTが存在していたとしても、それが空のPTだった場合、ユーザのデフォルト印刷設定のPTやFDSのPTとマージを行っても設定内容に影響を与えることがないため、存在しないのと同義である。つまり図7(a)では、FP707から711のページレベルのPTは、全てユーザのデフォルト印刷設定のPTとFDS701のPT721をマージしたものとなり、全ページが同じ印刷設定であると言える。空のPTかどうかの判定にはPTの内容を参照する必要があるが、設定が何も記述されていないPTであるため極めて小さな負荷で判定が可能である。
【0041】
図7(b)のようにFPが1つしか存在しない場合は当然ページ毎に印刷設定が異なるということはないので、FD及びFPにPTが存在していようと全ページが同じ印刷設定であると言える。
【0042】
図7(c)のようにFDが1つしか存在しない場合、全てのFPの親FDが同じであるため、ページレベルのPTを作成する際のマージに用いられるFDのPTは全て同じとなる。したがってFDが1つの場合、FPにPTが存在しなければFDのPTの有無は関係なく全ページが同じ印刷設定となる。図7(c)では、FP755から759のページレベルのPTは全てユーザのデフォルト印刷設定のPTとFDS751のPT761と、FD753のPT763をマージしたものとなり、全ページが同じ印刷設定であると言える。
【0043】
図7(d)のように全てのFPが同じPTに関連付けられている場合、全てのFPの親FDのPTが同じであればページレベルのPTは全て同じとなる。したがって、FDが一つのみ存在する、もしくは全てのFDにPTが存在しない場合、全ページが同じ印刷設定ととなる。図7(d)では、FP775から779のページレベルのPTは、全てユーザのデフォルト印刷設定のPTとFDS771のPT781と、FD773のPT783と、全FPに共通に関連付けられているPT785をマージしたものとなる。つまり、全ページが同じ印刷設定といえる。
【0044】
以上をまとめると、それぞれの階層の要素の印刷設定が、要素間で共通している場合には、全ページの印刷設定が同一であると判定される。具体的には、処理対象のXPSデータ(すなわち構造化文書)の或る階層について、当該階層の要素に前記印刷設定情報が付加されているか、又は、当該階層の要素に付加された前記印刷設定情報が当該階層の全要素により共有されており、全階層がこの条件に該当する場合に、その構造化文書の各ページの印刷設定は互いに同一であると判定できる。このようにすることで、印刷設定の実質にかかわりなく、形式的に同一性を判定できるために、判定が簡易且つ迅速に行える。
【0045】
<プレビューフィルタ処理>
図8は、プレビューフィルタ323により行われるXPSパートの取得処理において、図7で説明した上述の判定処理を行うフローチャートの一例である。なお、本処理はプレビューフィルタだけでなく、プレビュー処理を行う前に、たとえばプレビュー制御モジュール235などで実行してもよい。
【0046】
プレビューフィルタ323は、ステップS101で、スプールもしくは前のフィルタから渡されるXPSパートを順次取得する。ここで取得されるXPSパートはFDSやFD、FPである。ステップS103でXPSパートが取得できたと判定した場合、その判定結果に応じて取得したパートの種類に応じて処理を行う。XPSパートの種類はそれぞれの要素にその識別子等で記述されている。一方取得できなければ当該XPSデータのXPSパートは全て取得したものと判定されてステップS141に分岐する。
【0047】
ステップS111,S121,S131では取得したパートの判別を行う。取得したパートがFDSの場合、ステップS113でFDSに対応したジョブレベルのPTが作成される。ジョブレベルのPT生成処理については図9を用いて後述する。取得したパートがFDの場合、ステップS123で取得したFDに対応したドキュメントレベルのPTが作成される。ドキュメントレベルのPT生成処理については図10を用いて後述する。取得したパートがFPの場合、ステップS133で取得したFPに対応したページレベルのPTが作成される。ページレベルのPT生成処理については図11を用いて後述する。また、FPのPTについてはPTのURI(すなわちリンクであり、関連づけということもできる)を取得しておく(ステップS135)。
【0048】
これらの処理は全てのXPSパートを取得するまで繰り返される。全てのXPSパートの取得が終了すると、ステップS141に移りプレビュー時の印刷設定変更を許可するかの判定が行われる。プレビューにおける印刷設定変更可否の判定処理については図12を用いて後述する。ここではXPSパートの取得終了後に判定を行う方法について説明するが、その他にもXPSパートを取得しながら併せて判定処理を行うことも可能である。
【0049】
<PTのマージ処理>
図9は図8のステップS113の詳細であり、ジョブレベルのPT生成処理の一例である。最初にステップS201でユーザのデフォルト印刷設定のPTを取得する。次にステップS203で取得したFDSのPTを取得する。FDSにはPTが必ず存在するわけではないため、FDSのPTが取得できたかどうか判定し(S205)、取得できた場合はS207へ移り、取得できなかった場合はS211へ移る。ステップS207では取得したPTが空のPTかどうかの判定を行い、印刷設定が記述されている場合はステップS209へ移り、空のPTだった場合はステップS211に移る。ステップS209ではユーザのデフォルト印刷設定のPTとFDSのPTをマージしてジョブレベルのPTを生成する。また、ステップS211では、FDSにPTが存在しないか、もしくは空のPTであり存在しないものとして扱われている場合であるため、マージを行わずにユーザのデフォルト印刷設定のPTをジョブレベルのPTとする。
【0050】
図10は図8のステップS123の詳細であり、ドキュメントレベルのPT生成処理の一例である。最初にステップS301では、取得したFDのPTの取得を行い、取得できたかどうか判定し(S303)、取得できた場合はステップS305へ移り、取得できなかった場合はステップS309へ移る。ステップS305では取得したPTが空のPTかどうかの判定を行い、印刷設定が記述されている場合はステップS307へ移り、空のPTだった場合はステップS309に移る。ステップS307ではジョブレベルのPTと取得したFDのPTをマージして、ドキュメントレベルのPTを生成する。ステップS309ではFDのPTが存在しないので、ジョブレベルのPTをドキュメントレベルのPTとする。XPSパート取得時にFDSは必ずFDの前に取得されるため、ドキュメントレベルのPT生成時にはジョブレベルのPTが必ず存在する。
【0051】
図11は図8のステップS133の詳細であり、ページレベルのPT生成処理の一例である。最初にステップS401では、取得したFPのPTの取得を行い、取得できたかどうか判定し(S403)、取得できた場合はステップS405へ移り、取得できなかった場合はステップS409へ移る。ステップS405では取得したPTが空のPTかどうかの判定を行い、印刷設定が記述されている場合はステップS407へ移り、空のPTだった場合はステップS409に移る。ステップS407では当該FPの親FDのドキュメントレベルのPTと取得したFPのPTをマージして、ページレベルのPTを生成する。ステップS409ではFPのPTが存在しないので、親FDのドキュメントレベルのPTをページレベルのPTとする。当該FPの親FDはそのFP取得前には必ず取得されるため、ページレベルのPT生成時には親FDのドキュメントレベルのPTが必ず存在する。
【0052】
<プレビュー時における印刷設定情報の変更の可否の判定処理>
図12は、全ページの印刷設定が同じであるかを判定し、プレビューによる印刷設定変更を許可するかの判定を行う処理のフローチャートの一例である。まずステップS501で、取得したFDもしくはFPにPTが一つでも存在していたか判定する。ただし、PTが存在していてもそのPTが空のPTはであった場合は存在しないものと判断する。1つもPTが存在しなかった場合はステップS511に移り、印刷プレビューにおける印刷設定の変更をユーザに許可する。許可するとは、たとえば設定変更の禁止フラグ等を変更許可を示す値にセットすることで実現できる。一つでもPTが存在した場合はステップS503に移る。ステップS503ではジョブ中のFPの総数を判定する。取得したFPが1つのみの場合はステップS511に移り、印刷プレビューにおける印刷設定の変更をユーザに許可する。FPが複数存在する場合はステップS505に移る。ステップS505ではジョブ中のFDの総数を判定する。取得したFDが1つのみの場合はステップS507に移る。FDも複数存在する場合はステップS513に移り、印刷プレビューにおける印刷設定の変更を不許可とする。ステップS507ではFPにPTが存在するかを判定する。全てのFPにPTが存在しない場合はステップS511に移り、印刷プレビューにおける印刷設定の変更をユーザに許可する。FPにPTが存在する場合はステップS509に移る。ステップS509では全てのFPが同じPTに関連付けられているかを判定する。FPのPT取得時に併せて取得したPTのURIが全FPに関して同一の場合、すなわち同じ印刷設定情報に関連づけられている場合はS511に移り、印刷プレビューにおける印刷設定の変更をユーザに許可する。ページ毎に関連付けられているPTが異なる場合はステップS513に移り、印刷プレビューにおける印刷設定の変更を不許可とする。不許可とは、たとえば設定変更の禁止フラグ等を変更禁止を示す値にセットすることで実現できる。
【0053】
プレビュー表示時に印刷設定の変更がユーザインターフェースから指示された場合には、たとえばこの設定変更の禁止フラグを参照し、変更許可であれば設定値の変更を受け付け、禁止であれば設定値は表示されるのでのみであり、その変更は受け付けられない。本実施形態では、これはプレビュー表示時の設定変更に限られ、プレビュー表示していないときの設定変更時には、設定変更の禁止フラグは参照されず、設定変更は受け付けられる。しかしながら、プレビュー表示以外に、全ページの印刷設定が同一である場合に限って印刷設定の変更を許可するような場合には、印刷設定の変更操作が行われると、図12の手順で値を与えられた設定変更の禁止フラグが参照されてもよい。
【0054】
前記判定処理によって、PTの内容の参照を最小限に抑えながら、ページ毎の印刷設定が全ページで同じかどうかの判定を高い精度で行うことが可能となる。
【0055】
<設定変更内容の反映(印刷設定情報編集)>
前記判定処理において印刷プレビューにおける印刷設定の変更が許可され、ユーザが印刷プレビューで印刷設定の変更を行った場合、変更された設定内容をPTに反映する必要がある。本来、変更した印刷設定をどのPTに反映するかは設定項目によって異なる。例えば、ジョブ全体に反映したい設定項目の場合はFDSのPTの更新を行い、また特定のページにのみ反映した設定項目の場合はFPのPTを更新するといったことが必要となる。しかし、本実施形態では印刷設定の変更を全ページが同じ印刷設定の場合のみ許可し、変更内容は全ページに反映するものとしている。つまり、全てのページレベルのPTには同じ印刷設定が記述されており、印刷設定変更後も設定内容が全てのページに反映される必要がある。そこで印刷設定変更内容に従ってページレベルのPTを更新し、更新したPTをFDSに付加するとともに、FD,及びFPに存在するPTを削除する方法を提案する。
【0056】
図13は本実施形態の手法によって印刷設定の変更を反映した際に作成されるXPSデータの一例である。変更前のXPSデータ1301は、FDS1311とFD1313、FP1315から1319によって構成されている。そしてFDS1311にはPT1321、FD1313にはPT1323、FP1315から1319にはPT1325が存在する。この場合、全てのFPのページレベルのPTは、ユーザのデフォルト印刷設定のPTとFDS1311のPT1321と、FD1313のPT1323と、FPのPT1325をマージしたPTとなる。この結果全ページが同じ印刷設定と判定されるため、印刷プレビューにおける印刷設定変更が許可される。ここで印刷設定が変更された場合、更新内容の反映は上記ページレベルのPTに対して行う。そして、変更内容の反映されたページレベルのPT1331をFDS1311のPT1321と入れ替える。さらにFD1313のPT1323とFP1315から1319のPT1325を削除して、変更した印刷設定を反映したXPSデータ1303とする。XPSデータ1303にはFD及びFPにPTが存在しないため、全てのFPのページレベルのPTはユーザのデフォルト印刷設定のPTと、新たにFDS1311に付加したPT1331をマージしたものとなる。これによって最小限のPTの変更で全てのページに対して、ユーザの行った印刷設定の変更を反映させることが可能となる。
【0057】
<プリントチケット更新処理>
図14は前述した印刷設定変更内容の反映処理におけるPT更新処理のフローチャートの一例である。この手順はたとえばプレビューフィルター323やプレビュー制御モジュール325により実行される。最初にステップS601で印刷設定変更が行われたかを判定する。印刷設定の変更が行われた場合はステップS603に移り、変更が一切行われていない場合は更新処理を終了する。ステップS603ではFDもしくはFPにPTが存在するかを判定し、存在しない場合はステップS605に移り、存在する場合はステップS607に移る。ステップS605ではジョブレベルのPTに対して変更内容に基づく更新を行いステップS615に移る。ここではFD及びFPにPTが存在しないので、ジョブレベルのPTはページレベルのPTと同義である。ステップS607ではFPにPTが存在するかを判定し、存在する場合はステップS609に移り、存在しない場合はステップS611に移る。ステップS609ではページレベルのPTに対して変更内容に基づく更新を行いステップS613に移る。また、ステップS611ではドキュメントレベルのPTに対して変更内容に基づく更新を行いステップS613に移る。ここではFPにPTが存在しないので、ジョブレベルのPTはページレベルのPTと同義である。ステップS613ではFD及びFPに存在するPTを全て削除し、ステップS615に移る。ステップS615ではFDSにPTが存在するかを判定し、存在する場合はステップS617に移り、存在しない場合はステップS619に移る。ステップS617ではFDSに存在するPTを削除し、ステップS619に移る。ステップS619では設定変更内容に基づき更新されたPTをFDSに付加して処理を終了する。これによって変更した印刷設定はジョブ中の全てのページに反映される。
【0058】
本実施形態ではプレビューフィルタにおいて印刷設定の判定処理及び設定変更の反映処理を行っているが、ドライバ処理中のどの段階でも実施することが可能である。また、プリンタドライバ処理に限らず、XPSドキュメントの編集を行うアプリケーション等に対しても適用可能である。
【0059】
[実施形態2]
実施形態1ではPTの配置から全ページの印刷設定が同一であるかの判定を行っており、PTの内容については空のPTの判定以外で参照することはなかった。しかし、FP毎に異なるPTが存在しても全てのPTに記述されている設定が同じであればページの印刷設定は同じであると言える。そのような場合、実施形態1では実際には同じ印刷設定であっても設定の異なるものと判定してしまう。そこで本実施形態では、実施形態1の手法に加え、PTに記述された個々の印刷設定の比較を行うことなく、設定内容の比較を行うためにDevmodeSnapShotを利用する手法について提案する。DevmodeSnapShotとは、印刷設定情報等を含むデータ構造体であるDEVMODEがバイナリデータに変換されたものであり、PTに記述される。DevmodeSnapShotは印刷設定が同じであれば同じデータとなるため、バイナリ比較によって印刷設定が同じか判定することができる。
【0060】
<DevmodeSnapShot比較処理>
図15はDevmodeSnapShot比較処理のフローチャートの一例である。まず、ステップS701でFDが複数存在するかを判定する。FDが1つの場合はFDのDevmodeSnapShotは比較する必要がないためステップS709に移り、FDが複数存在する場合はステップS703に移る。ステップS703からステップS707ではFDのPTに含まれるDevmodeSnapShotの比較を行う。DevmodeSnapShotは全てのPTに必ず存在するものではないので、ステップS703では全てのFDのPTにDevmodeSnapShotが存在するかの判定を行う。存在する場合はステップS705へ移り、全てのFDのPTには存在しない場合はステップS717に移り、印刷プレビューにおけるユーザの印刷設定変更を不許可として処理を終了する。ステップS705ではFDのPTに含まれるDevmodeSnapShotの比較を行い、ステップS707に移る。比較の結果、全てのDevmodeSnapShotが同一のものであればステップS709に移り、異なるものがある場合はステップS717に移り、印刷プレビューにおけるユーザの印刷設定変更を不許可として処理を終了する。同様に、ステップS709からステップS713ではFPのPTに含まれるDevmodeSnapShotの比較を行う。ステップS709では全てのFDのPTにDevmodeSnapShotが存在するかの判定を行い、存在する場合はステップS711へ移り、全てのFPのPTには存在しない場合はステップS717に移る。ステップS717では、印刷プレビューにおけるユーザの印刷設定変更を不許可として処理を終了する。ステップS711ではFPのPTに含まれるDevmodeSnapShotの比較を行い、ステップS715に移る。比較の結果、全てのDevmodeSnapShotが同一のものであればステップS715に移り、印刷プレビューにおけるユーザの印刷設定変更を許可して処理を終了する。異なるものがある場合はステップS717に移り、印刷プレビューにおけるユーザの印刷設定変更を不許可として処理を終了する。
【0061】
上記手法では全てのFD及びFPにPTが存在するように記載しているが、PTが存在しないパートは、そのパートの親パートのPTを当該パートのPTとして扱うものとする。例えばFDにPTが存在しない場合は代替でFDSのPTをFDのPTとして扱う。また、FPにPTが存在しない場合も同様に親FDのPTを利用するものとし、親FDにもPTが存在しない場合はさらに親のFDSをFPのPTとして扱う。
【0062】
上記手法によると、PTにDevmodeSnapShotが記述されたデータに関して、PTに記述された個々の設定を比較することなく、バイナリデータの比較によって印刷設定が同一かどうかの判定を行うことができる。本手法を実施形態1の手法と併せて実施することで判定精度の向上を図ることができる。
【0063】
なお本発明は、複数の機器(例えばホストコンピュータ、インタフェース機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用してもよい。また本発明の目的は、前述の実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータが記憶媒体に格納されたプログラムを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラム自体が前述した実施形態の機能を実現することになり、そのプログラム自体およびプログラムを記憶した記憶媒体は本発明を構成することになる。
【0064】
また、本発明には、プログラムの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。さらに、記憶媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた場合についても、本発明は適用される。その場合、書き込まれたプログラムの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される。
【図面の簡単な説明】
【0065】
【図1】XPSの論理構造の概念図
【図2】本発明の実施形態に係わる印刷システムの一例を示すブロック図
【図3】本発明の実施形態に係わるプリンタドライバ一例を示すブロック図
【図4】本発明の実施形態に係わる印刷設定ダイアログの一例を示す図
【図5】本発明の実施形態に係わるプレビューウィンドウの一例を示す図
【図6】本発明の実施形態に係わる印刷設定の同一判定に用いる基本条件を表すXPSの一例を示す図
【図7】本発明の実施形態に係わる印刷設定の同一判定に用いる追加条件を表すXPSの一例を示す図
【図8】本発明の実施形態に係わるXPSパートの取得処理の一例を示す図
【図9】本発明の実施形態に係わるジョブレベルのPT生成処理の一例を示す図
【図10】本発明の実施形態に係わるドキュメントレベルのPT生成処理の一例を示す図
【図11】本発明の実施形態に係わるページレベルのPT生成処理の一例を示す図
【図12】本発明の実施形態に係わる印刷設定変更可否判定処理の一例を示す図
【図13】本発明の実施形態に係わる印刷設定変更のXPSデータへの反映を示す概念図
【図14】本発明の実施形態に係わるPT更新処理の一例を示す図
【図15】本発明の実施形態に係わるDevmodeSnapShotを用いた印刷設定の比較処理の一例を表す図
【図16】PTの一例を示す概念図
【図17】PTのマージ結果の一例を示す図
【特許請求の範囲】
【請求項1】
階層構造の要素によって構成され、描画情報の記述された少なくとも一つのページ要素を含み、各階層の要素それぞれに対して印刷設定情報を付加することが可能な構造化文書を扱う文書処理装置であって、
処理対象の構造化文書の階層ごとに、当該階層の要素に前記印刷設定情報が付加されていないこと、又は、当該階層の要素に付加された前記印刷設定情報が当該階層の全要素により共有されていることを判定する印刷設定判定手段と、
前記印刷設定判定手段により、処理対象の構造化文書の各階層について、当該階層の要素に前記印刷設定情報が付加されていないと判定されたか、又は、当該階層の要素に付加された前記印刷設定情報が当該階層の全要素に共通であると判定された場合に、ユーザによる印刷設定情報の変更を受け付ける印刷設定情報編集手段と
を有することを特徴とする文書処理装置。
【請求項2】
前記印刷設定判定手段は、階層の要素に前記印刷設定情報が付加されている場合であっても、その内容が空であれば、当該要素には前記印刷設定情報が付加されていないと判定することを特徴とする請求項1に記載の文書処理装置。
【請求項3】
前記印刷設定判定手段は、ある階層の全要素に同一の印刷設定情報が関連づけられている場合に、前記印刷設定情報が当該階層の全要素に共通であると判定することを特徴とする請求項1又は2に記載の文書処理装置。
【請求項4】
前記構造化文書は、前記ページ要素の階層と、1又は複数の前記ページ要素を含む文書要素の階層と、1又は複数の前記文書要素を含むひとつのジョブ要素の階層とを含むことを特徴とする請求項1乃至3のいずれか一項に記載の文書処理装置。
【請求項5】
前記印刷設定判定手段は、前記処理対象の構造化文書の前記階層ごとに、当該階層の要素に前記印刷設定情報が付加されていないとも、当該階層の要素に付加された前記印刷設定情報が当該階層の全要素により共有されているとも判定されなかった場合、各階層の要素に付加された前記印刷設定情報を階層ごとに比較し、全階層について各階層の要素に付加された前記印刷設定情報が互いに同一であることをさらに判定し、
前記印刷設定情報編集手段は、全階層について各階層の要素に付加された前記印刷設定情報が互いに同一であると判定された場合に、ユーザによる印刷設定情報の変更を受け付けることを特徴とする請求項1乃至4のいずれか一項に記載の文書処理装置。
【請求項6】
前記印刷設定情報編集手段は、ユーザによる印刷設定情報の変更を受け付けると、変更を反映した印刷設定情報を最上位の階層の要素に付加し、下位の階層の要素に付加された印刷設定情報を削除することを特徴とする請求項1乃至6のいずれか一項に記載の文書処理装置。
【請求項7】
前記構造化文書の内容をプレビュー表示するプレビュー手段をさらに備え、
前記印刷設定判定手段は、前記プレビュー手段により前記構造化文書のプレビュー表示が行われている場合に判定を行い、
前記印刷設定情報編集手段は、前記プレビュー手段により前記構造化文書のプレビュー表示が行われている場合に、前記印刷設定判定手段による判定結果に応じて前記印刷設定情報の変更を受け付けることを特徴とする請求項1乃至6のいずれか一項に記載の文書処理装置。
【請求項8】
前記構造化文書はXPSデータであり、前記印刷設定情報はプリントチケットであることを特徴とする請求項4乃至7のいずれか一項に記載の文書処理装置。
【請求項9】
階層構造の要素によって構成され、描画情報の記述された少なくとも一つのページ要素を含み、各階層の要素それぞれに対して印刷設定情報を付加することが可能な構造化文書を扱う文書処理装置による文書処理方法であって、
前記文書処理装置の印刷設定判定手段が、処理対象の構造化文書の階層ごとに、当該階層の要素に前記印刷設定情報が付加されていないこと、又は、当該階層の要素に付加された前記印刷設定情報が当該階層の全要素により共有されていることを判定する印刷設定判定工程と、
前記印刷設定判定工程により、処理対象の構造化文書の各階層について、当該階層の要素に前記印刷設定情報が付加されていないと判定されたか、又は、当該階層の要素に付加された前記印刷設定情報が当該階層の全要素に共通であると判定された場合に、前記文書処理装置の印刷設定情報編集手段が、ユーザによる印刷設定情報の変更を受け付ける印刷設定情報編集工程と
を有することを特徴とする文書処理方法。
【請求項10】
請求項1乃至8のいずれか一項に記載の文書処理装置の各手段をコンピュータにより実現させるためのプログラム。
【請求項11】
ページ要素を束ねた文書要素、文書要素を束ねたジョブ要素を含み、各要素に印刷設定情報を付加することが可能な文書を扱うコンピュータで実行されるプログラムであって、
ページ要素と文書要素に印刷設定情報が付加されているか否かを判断する判断手段と、
前記判断手段によりページ要素と文書要素に印刷設定情報が付加されていると判断された場合、ユーザによる印刷設定の変更を受け付けず、前記判断手段によりページ要素と文書要素に印刷設定情報が付加されていないと判断された場合、ユーザによる印刷設定の変更を受け付ける変更手段としてコンピュータを機能させるためのプログラム。
【請求項12】
前記変更手段は、前記判断手段によりページ要素と文書要素に印刷設定情報が付加されていると判断され、ページ要素と文書要素の印刷設定情報が空でない場合、ユーザによる印刷設定の変更を受け付けず、前記判断手段によりページ要素と文書要素に印刷設定情報が付加されていると判断され、ページ要素と文書要素の印刷設定情報が空である場合、ユーザによる印刷設定の変更を受け付けることを特徴とする請求項11記載のプログラム。
【請求項13】
前記変更手段は、前記判断手段によりページ要素と文書要素に印刷設定情報が付加されていると判断され、ページ要素の総数が1でない場合、ユーザによる印刷設定の変更を受け付けず、前記判断手段によりページ要素と文書要素に印刷設定情報が付加されていると判断され、ページ要素の総数が1の場合、ユーザによる印刷設定の変更を受け付けることを特徴とする請求項11または12記載のプログラム。
【請求項14】
前記変更手段は、前記判断手段によりページ要素と文書要素に印刷設定情報が付加されていると判断され、文書要素の総数が1であり、ページ要素に印刷設定情報が付加されている場合、ユーザによる印刷設定の変更を受け付けず、前記判断手段によりページ要素と文書要素に印刷設定情報が付加されていると判断され、文書要素の総数が1であり、ページ要素に印刷設定情報が付加されていない場合、ユーザによる印刷設定の変更を受け付けることを特徴とする請求項11乃至13のいずれか一項に記載のプログラム。
【請求項15】
前記変更手段は、前記判断手段によりページ要素と文書要素に印刷設定情報が付加されていると判断され、文書要素の総数が1であり、ページ要素の印刷設定情報が同一でない場合、ユーザによる印刷設定の変更を受け付けず、前記判断手段によりページ要素と文書要素に印刷設定情報が付加されていると判断され、文書要素の総数が1であり、ページ要素の印刷設定情報が同一である場合、ユーザによる印刷設定の変更を受け付けることを特徴とする請求項11乃至14のいずれか一項に記載のプログラム。
【請求項1】
階層構造の要素によって構成され、描画情報の記述された少なくとも一つのページ要素を含み、各階層の要素それぞれに対して印刷設定情報を付加することが可能な構造化文書を扱う文書処理装置であって、
処理対象の構造化文書の階層ごとに、当該階層の要素に前記印刷設定情報が付加されていないこと、又は、当該階層の要素に付加された前記印刷設定情報が当該階層の全要素により共有されていることを判定する印刷設定判定手段と、
前記印刷設定判定手段により、処理対象の構造化文書の各階層について、当該階層の要素に前記印刷設定情報が付加されていないと判定されたか、又は、当該階層の要素に付加された前記印刷設定情報が当該階層の全要素に共通であると判定された場合に、ユーザによる印刷設定情報の変更を受け付ける印刷設定情報編集手段と
を有することを特徴とする文書処理装置。
【請求項2】
前記印刷設定判定手段は、階層の要素に前記印刷設定情報が付加されている場合であっても、その内容が空であれば、当該要素には前記印刷設定情報が付加されていないと判定することを特徴とする請求項1に記載の文書処理装置。
【請求項3】
前記印刷設定判定手段は、ある階層の全要素に同一の印刷設定情報が関連づけられている場合に、前記印刷設定情報が当該階層の全要素に共通であると判定することを特徴とする請求項1又は2に記載の文書処理装置。
【請求項4】
前記構造化文書は、前記ページ要素の階層と、1又は複数の前記ページ要素を含む文書要素の階層と、1又は複数の前記文書要素を含むひとつのジョブ要素の階層とを含むことを特徴とする請求項1乃至3のいずれか一項に記載の文書処理装置。
【請求項5】
前記印刷設定判定手段は、前記処理対象の構造化文書の前記階層ごとに、当該階層の要素に前記印刷設定情報が付加されていないとも、当該階層の要素に付加された前記印刷設定情報が当該階層の全要素により共有されているとも判定されなかった場合、各階層の要素に付加された前記印刷設定情報を階層ごとに比較し、全階層について各階層の要素に付加された前記印刷設定情報が互いに同一であることをさらに判定し、
前記印刷設定情報編集手段は、全階層について各階層の要素に付加された前記印刷設定情報が互いに同一であると判定された場合に、ユーザによる印刷設定情報の変更を受け付けることを特徴とする請求項1乃至4のいずれか一項に記載の文書処理装置。
【請求項6】
前記印刷設定情報編集手段は、ユーザによる印刷設定情報の変更を受け付けると、変更を反映した印刷設定情報を最上位の階層の要素に付加し、下位の階層の要素に付加された印刷設定情報を削除することを特徴とする請求項1乃至6のいずれか一項に記載の文書処理装置。
【請求項7】
前記構造化文書の内容をプレビュー表示するプレビュー手段をさらに備え、
前記印刷設定判定手段は、前記プレビュー手段により前記構造化文書のプレビュー表示が行われている場合に判定を行い、
前記印刷設定情報編集手段は、前記プレビュー手段により前記構造化文書のプレビュー表示が行われている場合に、前記印刷設定判定手段による判定結果に応じて前記印刷設定情報の変更を受け付けることを特徴とする請求項1乃至6のいずれか一項に記載の文書処理装置。
【請求項8】
前記構造化文書はXPSデータであり、前記印刷設定情報はプリントチケットであることを特徴とする請求項4乃至7のいずれか一項に記載の文書処理装置。
【請求項9】
階層構造の要素によって構成され、描画情報の記述された少なくとも一つのページ要素を含み、各階層の要素それぞれに対して印刷設定情報を付加することが可能な構造化文書を扱う文書処理装置による文書処理方法であって、
前記文書処理装置の印刷設定判定手段が、処理対象の構造化文書の階層ごとに、当該階層の要素に前記印刷設定情報が付加されていないこと、又は、当該階層の要素に付加された前記印刷設定情報が当該階層の全要素により共有されていることを判定する印刷設定判定工程と、
前記印刷設定判定工程により、処理対象の構造化文書の各階層について、当該階層の要素に前記印刷設定情報が付加されていないと判定されたか、又は、当該階層の要素に付加された前記印刷設定情報が当該階層の全要素に共通であると判定された場合に、前記文書処理装置の印刷設定情報編集手段が、ユーザによる印刷設定情報の変更を受け付ける印刷設定情報編集工程と
を有することを特徴とする文書処理方法。
【請求項10】
請求項1乃至8のいずれか一項に記載の文書処理装置の各手段をコンピュータにより実現させるためのプログラム。
【請求項11】
ページ要素を束ねた文書要素、文書要素を束ねたジョブ要素を含み、各要素に印刷設定情報を付加することが可能な文書を扱うコンピュータで実行されるプログラムであって、
ページ要素と文書要素に印刷設定情報が付加されているか否かを判断する判断手段と、
前記判断手段によりページ要素と文書要素に印刷設定情報が付加されていると判断された場合、ユーザによる印刷設定の変更を受け付けず、前記判断手段によりページ要素と文書要素に印刷設定情報が付加されていないと判断された場合、ユーザによる印刷設定の変更を受け付ける変更手段としてコンピュータを機能させるためのプログラム。
【請求項12】
前記変更手段は、前記判断手段によりページ要素と文書要素に印刷設定情報が付加されていると判断され、ページ要素と文書要素の印刷設定情報が空でない場合、ユーザによる印刷設定の変更を受け付けず、前記判断手段によりページ要素と文書要素に印刷設定情報が付加されていると判断され、ページ要素と文書要素の印刷設定情報が空である場合、ユーザによる印刷設定の変更を受け付けることを特徴とする請求項11記載のプログラム。
【請求項13】
前記変更手段は、前記判断手段によりページ要素と文書要素に印刷設定情報が付加されていると判断され、ページ要素の総数が1でない場合、ユーザによる印刷設定の変更を受け付けず、前記判断手段によりページ要素と文書要素に印刷設定情報が付加されていると判断され、ページ要素の総数が1の場合、ユーザによる印刷設定の変更を受け付けることを特徴とする請求項11または12記載のプログラム。
【請求項14】
前記変更手段は、前記判断手段によりページ要素と文書要素に印刷設定情報が付加されていると判断され、文書要素の総数が1であり、ページ要素に印刷設定情報が付加されている場合、ユーザによる印刷設定の変更を受け付けず、前記判断手段によりページ要素と文書要素に印刷設定情報が付加されていると判断され、文書要素の総数が1であり、ページ要素に印刷設定情報が付加されていない場合、ユーザによる印刷設定の変更を受け付けることを特徴とする請求項11乃至13のいずれか一項に記載のプログラム。
【請求項15】
前記変更手段は、前記判断手段によりページ要素と文書要素に印刷設定情報が付加されていると判断され、文書要素の総数が1であり、ページ要素の印刷設定情報が同一でない場合、ユーザによる印刷設定の変更を受け付けず、前記判断手段によりページ要素と文書要素に印刷設定情報が付加されていると判断され、文書要素の総数が1であり、ページ要素の印刷設定情報が同一である場合、ユーザによる印刷設定の変更を受け付けることを特徴とする請求項11乃至14のいずれか一項に記載のプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【公開番号】特開2010−140445(P2010−140445A)
【公開日】平成22年6月24日(2010.6.24)
【国際特許分類】
【出願番号】特願2008−318941(P2008−318941)
【出願日】平成20年12月15日(2008.12.15)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成22年6月24日(2010.6.24)
【国際特許分類】
【出願日】平成20年12月15日(2008.12.15)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]