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