JP7307577B2 - 情報処理装置、情報処理方法およびプログラム - Google Patents

情報処理装置、情報処理方法およびプログラム Download PDF

Info

Publication number
JP7307577B2
JP7307577B2 JP2019068066A JP2019068066A JP7307577B2 JP 7307577 B2 JP7307577 B2 JP 7307577B2 JP 2019068066 A JP2019068066 A JP 2019068066A JP 2019068066 A JP2019068066 A JP 2019068066A JP 7307577 B2 JP7307577 B2 JP 7307577B2
Authority
JP
Japan
Prior art keywords
print setting
information
printticket
updating
setting screen
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019068066A
Other languages
English (en)
Other versions
JP2020166698A (ja
Inventor
真理子 源田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2019068066A priority Critical patent/JP7307577B2/ja
Publication of JP2020166698A publication Critical patent/JP2020166698A/ja
Application granted granted Critical
Publication of JP7307577B2 publication Critical patent/JP7307577B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Facsimiles In General (AREA)

Description

本発明は、プリンタドライバを有する情報処理装置、情報処理方法およびプログラムに関する。
オペレーティングシステム(OS)としてMicrosoft(登録商標)のWindows(登録商標)を搭載した計算機を用いた印刷システムがある。そのような印刷システムにおいて、アプリケーションプログラム(アプリケーション)等で生成された印刷データは、OS標準のデータ形式でスプールファイルに格納される。OSは、印刷データを印刷するためにプリンタドライバを呼び出す。そして、プリンタドライバは、スプールファイルに格納された印刷データを読み取り、画像生成処理部により印刷イメージを作成し、さらに、プリンタが解釈可能な印刷コマンドに変換する。印刷コマンドはプリンタに送信され、プリンタは印刷コマンドを解釈し、記録媒体に像を形成することで印刷処理が実行される。
また、近年ではWindows(登録商標)において、V4プリンタドライバと呼ばれる新しいアーキテクチャで動作するプリンタドライバが導入されている。V4プリンタドライバは、V3プリンタドライバのアーキテクチャとして提供されていたXPS(XML Paper Specification)プリンタドライバの後継となるアーキテクチャであり、XPS文書を利用した印刷パスを利用している。このXPS印刷パスにおいて、印刷物の体裁を決定するために利用されるものがPrintCapabilitiesと呼ばれるXML形式で記述された印刷機能情報と、PrintTicketと呼ばれるXML形式で記述された印刷設定情報である。V4プリンタドライバは、GPD(Generic Printer Description)と呼ばれる、プリンタドライバの印刷設定の機能を定義する印刷設定定義ファイルを同梱している。このGPDを含んだプリンタドライバをOSにインストールすることで、ユーザに対してPrintCapabilitiesやPrintTicketを用いた印刷設定変更機能を提供することができる。
さらに、V4プリンタドライバでは、PrintCapabilitiesやPrintTicketの生成は、OS提供のコンフィグレーションモジュールで行われる。加えて、コンフィグレーションモジュールで生成されたPrintCapabilitiesやPrintTicketに対して、プリンタドライバ開発ベンダ独自の編集を行うための印刷設定編集モジュールを設けることも可能である。プリンタドライバ開発ベンダは、印刷設定編集モジュールを実装することで数値や文字列等のパラメータに関する定義の追加などをPrintCapabilitiesに施すことができる(特許文献1)。なお、数値や文字列等のパラメータに関する定義の追加などはコンフィグレーションモジュールが行うことのできない編集に相当する。
特開2015-225481号公報
アプリケーションなどが印刷設定UIを提供する際には、設定が変更される度にPrintCapabilitiesとPrintTicketを生成し、設定できないオプションは選択できないようにすることが望ましい。しかしながら、PrintCapabilitiesとPrintTicketの生成には処理時間がかかる。印刷設定UIで設定が変更される度に、PrintCapabilitiesとPrintTicketを生成し、UI更新が完了するまで入力を受け付けられなくなると操作性が低下してしまう。
本発明の目的は、このような従来の問題点を解決することにある。上記の点に鑑み、本発明は、ユーザの操作性の低下を防ぐ情報処理装置、情報処理方法およびプログラムを提供することを目的とする。
上記課題を解決するため、本発明に係る情報処理装置は、印刷設定画面上のコントロールの内容が記述された情報を生成する生成手段と、前記印刷設定画面上でのコントロールの操作に応じて、前記印刷設定画面の表示を更新する更新手段と、を備え、前記更新手段は、前記操作が第1条件を満たす場合には、前記コントロールの内容が記述された情報の生成を前記生成手段に要求し、該要求に応じて前記生成手段により生成された前記コントロールの内容が記述された情報に基づいて、前記印刷設定画面の表示を更新し、前記操作が第2条件を満たす場合には、前記コントロールの内容が記述された情報の生成を前記生成手段に要求することなく、前記印刷設定画面の表示を更新することを特徴とする。
本発明によれば、ユーザの操作性の低下を防ぐ仕組みを提供することができる。
印刷システムの構成を示す図である。 ドライバ印刷システムの構成を示す図である。 プリンタエクステンションの要求に応じたデータの流れを示す図である。 PrintCapabilitiesを示す図である。 PrintCapabilitiesを示す図である。 PrintTicketを示す図である。 プリンタエクステンションの印刷設定を行うUIを示す図である。 ページレイアウトで表示されるアイコンを示す図である。 印刷設定更新処理を示すフローチャートである。 印刷設定更新情報を示す図である。 UI更新処理を示すフローチャートである。 印刷設定更新処理を示すフローチャートである。 UI更新処理を示すフローチャートである。 印刷設定更新処理を示すフローチャートである。 マージ処理を示すフローチャートである。
以下、添付図面を参照して実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
[第1実施形態]
図1は、印刷システムのハードウェア構成を示すブロック図である。本図において、ホストコンピュータ101は、情報処理装置の一例であり、入力インタフェース110、CPU111、ROM112、RAM113、外部記憶装置114、出力インタフェース115、及び入出力インタフェース116を有する。また、入力インタフェース110には、キーボード118、ポインティングデバイス117などの入力デバイスが接続され、出力インタフェース115には、表示部119などの表示デバイスが接続されている。
ROM112には、初期化プログラムが格納され、外部記憶装置114には、アプリケーションプログラム群、OS、後述するプリンタドライバ203、その他の各種のデータが格納されている。例えば、RAM113は、外部記憶装置114に記憶される各種のプログラムの実行の際のワークメモリとして使用される。なお、本実施形態では、例えば、CPU111が、ROM112に記憶されたプログラムの手順に従って処理を行うことによって、ホストコンピュータ101における後述の機能及び後述するフローチャートに係る処理が実現される。印刷装置102は、入出力インタフェース116を介して、ホストコンピュータ101と接続されている。ここでは、ホストコンピュータ101と印刷装置102が別の装置として構成されているが、これらが一つの情報処理装置(若しくは画像形成装置)として構成されていても良い。また、入出力インタフェース116は、有線や無線等、接続されるネットワーク媒体に応じた構成を有する。従って、ホストコンピュータ101と印刷装置102とは、有線や無線、若しくはそれらが混在したネットワークを介して相互に通信可能に接続される。
図2は、ドライバ印刷システムのブロック構成図である。ドライバ印刷システムは、XPSファイルフォーマットをスプールデータとして使用し、印刷を行うシステムである。プリンタドライバ203は、印刷装置102に対して印刷指示を行うことができる。コンフィグレーションモジュール219、フィルタパイプラインマネージャ221は、プリンタドライバ203に含まれている。本実施形態では、それらは、ホストコンピュータ101のOSから提供されている、プリンタドライバ203のモジュールとして構成される。
コンフィグレーションモジュール219は、印刷設定定義ファイル213に基づき、PrintTicketやPrintCapabilitiesの生成を行う。印刷設定定義ファイル213は、GPD(Generic Printer Description)と呼ばれるテキストベースで記載されているファイルである。さらに、印刷設定定義ファイル213には「禁則」の定義を記載することができる。例えば、Microsoft(登録商標)が定義した記述法に基づき、InvalidCombinationの項目に、同時に設定できない印刷設定の設定値を記載することで、ユーザに対して禁則機能を提供することができる。ここで、同時に設定できない印刷設定とは、デバイスの機能として提供できないもののほかに、意図的にユーザに使用してほしくない項目も含まれる。
また、コンフィグレーションモジュール219は、プリンタドライバ203が提供する印刷設定編集モジュール211を用いて印刷設定情報を編集することができる。印刷設定編集モジュール211は、ConstraintScriptと呼ばれる、JavaScript言語で記載されたモジュールである。印刷設定編集モジュール211は、プリンタドライバ203によって記憶されるデータが提供されるプロパティバッグ217を用いて印刷設定情報を編集する。
プロパティバッグ217とは、プリンタの機種依存情報として用いるためのDriverPropertyBagと呼ばれるデータ群と、プリントキューに関連づけられたQueuePropertyBagと呼ばれるデータ群が保持された領域をいう。DriverPropertyBagは、以降、DPBともいい、QueuePropertyBagは、以降、QPBともいう。DPBとQPBは、ともにOSによって提供されている保存領域である。DPBは、ドライバパッケージ内に存在するプリンタの機種依存データであり、プリンタドライバ203のインストール後にOS内の特定の領域に読取専用としてデータ群が保持される。QPBは、Key-ValueペアのXML定義ファイルをOSに登録することで使用することが可能であり、Valueに関して一定の権限上で編集が可能である。また、印刷設定定義ファイル213であるGPDにもQPBの定義を記載することができる。
プリンタエクステンション215は、V4プリンタドライバにおいて、ユーザが印刷設定を行うためのベンダ独自のユーザインタフェースを提供するモジュールである。プリンタエクステンション215は、印刷に用いる用紙サイズや印刷方向、その他の属性を設定する機能を提供する。
図2における印刷システムにおいて、アプリケーション201が印刷を行う場合、まず印刷設定情報の作成を行う。アプリケーション201は、プリンタドライバ203のコンフィグレーションモジュール219を呼び出して、印刷設定情報を作成して記憶する。また、アプリケーション201は、印刷設定情報の作成にプリンタエクステンション215を用いることができる。アプリケーション201は、DEVMODE構造体、もしくはPrintTicketの形式で印刷設定情報を保持している。
次に、アプリケーション201は、印刷データの生成を行う。作成した文書の各ページの印刷データは、OSの印刷サポート機能を通じてXPSスプールファイル205に一時的に蓄えられる。XPSスプールファイル205が生成されると、フィルタパイプラインマネージャ221に処理が渡される。フィルタパイプラインマネージャ221は、複数のフィルタを通すことで印刷が行われる仕組みで、フィルタコンフィグレーションファイル227でフィルタの数や順番が制御される。本実施形態におけるフィルタ群は、レイアウト処理部であるレイアウトフィルタ223と、印刷コマンド変換部である印刷コマンドフィルタ225とを含んで構成される。
レイアウトフィルタ223は、XPSスプールファイル205に格納されたXPSドキュメントを入力とし、印刷設定情報に基づきページのレイアウト処理を行い、レイアウト済みのXPSデータを出力する機能を有する。レイアウト処理とは、例えば複数のページを一つの用紙面に印刷する割り付け印刷や、一つのページを複数の用紙面に印刷するポスター印刷を含む。
印刷コマンドフィルタ225は、レイアウトフィルタ223の出力を入力とし、印刷設定情報に従い、XPSドキュメントを印刷装置102が解釈可能な印刷コマンドに変換し出力する機能を有する。印刷コマンドフィルタ225が入力のXPSドキュメントを一度イメージデータに変換する場合、印刷コマンドフィルタ225は、一般的にレンダフィルタと呼ばれる。レンダフィルタは、例えば、インクジェットプリンタに代表される廉価なラスタプリンタ用のプリンタドライバにおいて構成される。印刷コマンドフィルタ225がレンダフィルタとして動作する場合は、入力のXPSドキュメントを一度イメージデータに変換する。その後、色空間の変換や二値化等の画像処理の過程を経て、ラスタプリンタが解釈可能な印刷コマンドに変換される。例えばページプリンタに代表される高機能なプリンタにおいて、プリンタが解釈できる印刷コマンドの種類にXPSが含まれる場合、印刷コマンドフィルタ225は、入力のXPSドキュメントを編集してXPSドキュメントを出力する。印刷コマンドフィルタ225にて処理する必要がない場合、入力のXPSドキュメントをそのまま出力しても良い。また、印刷コマンドフィルタ225は、プリンタドライバ203に含んで構成されていなくても良い。
図3(a)は、プリンタエクステンション215が、PrintCapabilitiesを要求した際に、コンフィグレーションモジュール219がPrintCapabilitiesを返却するまでのデータの流れを示す図である。コンフィグレーションモジュール219は、印刷設定定義ファイル213に基づき、渡されたPrintTicketの設定を基準としてPrintCapabilitiesを生成し、印刷設定編集モジュール211を呼び出す。印刷設定編集モジュール211は、コンフィグレーションモジュール219から渡されたPrintCapabilitiesとPrintTicketと、DPBに記憶された機種依存情報などを基に、PrintCapabilitiesとPrintTicketを編集する。印刷設定編集モジュール211が編集したPrintCapabilitiesとPrintTicketは、コンフィグレーションモジュール219を通してプリンタエクステンション215へ返却される。
図3(b)は、プリンタエクステンション215が、PrintTicketを要求した際に、コンフィグレーションモジュール219がPrintTicketを返却するまでのデータの流れを示す図である。コンフィグレーションモジュール219は、印刷設定定義ファイル213に基づき、渡されたPrintTicketの設定を編集し、印刷設定編集モジュール211を呼び出す。印刷設定編集モジュール211は、コンフィグレーションモジュール219から渡されたPrintTicketと、DPBに格納された機種依存情報などを基に、PrintTicketを編集する。印刷設定編集モジュール211が編集したPrintTicketは、コンフィグレーションモジュール219を通してプリンタエクステンション215へ返却される。PrintTicketのみが要求された場合は、PrintCapabilitiesの編集処理が行われないため、処理速度が図3(a)の場合に比べると速くなる。
図4及び図5は、コンフィグレーションモジュール219が生成したPrintCapabilitiesの一部である。PrintCapabilitiesは、XMLで記述される。印刷設定定義ファイルで定義されたFeature及びOptionに対応して、PrintCapabilitiesでも、FeatureとOptionは、階層構造で表現される。また、それぞれOptionの子要素として表示名称を表すDisplayNameがPropertyとして定義される。さらに、各Optionには、constrained属性が記述される。constrained属性は、対象のOptionが設定可能な状態であるかを示し、設定可能な場合はconstrained属性には“None”が設定される。印刷設定定義ファイルに記述された禁則に従い、指定されたPrintTicketに基づく設定下では設定できない場合は、constrained属性には他の設定と競合して設定できない旨を示す“PrintTicketSettings”が設定される。その他に、現在のデバイスの状態によって設定できない旨を示す“DeviceSttings”などの設定がある。
例えば、図4及び図5のPrintCapabilitiesには、PageMediaTypeのOptionとしてPlainとPhotoPaperが、PageBorderlessのOptionとしてNoneとBorderlessが、PageOrientationのOptionとしてLandscapeとPortraitが、JobNUpAllDocumentsContiguouslyのOptionとしてNoneとPagePerSheet_2が、PagePosterのOptionとしてNoneとDivision_2が、DocumentCollateのOptionとしてUncollatedとCollatedが記述されている。
図6は、PrintTicketの一例を示す図である。PrintTicketは、XMLで記述される。PrintTicketには、機能(Feature)毎に、設定項目(Option)が記載される。例えば、図6のPrintTicketでは、PageMediaTypeにPhotoPaper、PageBorderlessにNone、PageOrientationにPortrait、JobNUpAllDocumentsContiguouslyにPagesPerSheet_2、PagePosterにNone、DocumentCollateにCollatedが設定されている。
図7は、プリンタエクステンション215の印刷設定を行うUI(印刷設定画面)の一部を示す図である。印刷設定画面上の各コントロールに表示される内容は、コンフィグレーションモジュール219から返却されたPrintCapabilitiesとPrintTicketを用いて構築される。なお、本実施形態におけるコントロールとは、画面上でユーザにより操作される操作アイテムと呼ぶこともできる。
ドロップダウンリスト601は、用紙の種類を設定するためのコントロールである。PrintCapabilitiesのPageMediaTypeのOptionであるPlainとPhotoPaperのDisplayNameを表示し、図7の場合、PrintTicketのPageMediaTypeの設定値PhotoPaper(写真紙)が選択される。
チェックボックス602は、フチなし全面印刷の設定をするためのコントロールである。PrintCapabilitiesのPageBorderlessのOptionであるNoneとBorderlessのconstrained属性がどちらもNoneなので、表示は有効とされる。そして、図7の場合、PrintTicketのPageBorderlessの設定値がNoneなので、表示はオフとされる。
ラジオボタン603と、604は、印刷の向きの設定をするためのコントロールである。PrintCapabilitiesのPageOrientationのOptionであるLandscapeとPortraitのDisplayNameをそれぞれ表示する。図7の場合、PrintTicketのPageOrientationの設定値Portrait(縦)が選択される。
ドロップダウンリスト605は、ページレイアウト(割り付け印刷や分割印刷)を設定するためのコントロールである。割り付け印刷は、複数のページを1枚の用紙に割り当てて印刷し、分割印刷は、1ページを複数の用紙に分割して印刷する機能である。割り付け印刷と分割印刷は同時に設定できないため、GPDに禁則の定義が記載されている。PrintCapabilitiesのJobNUpAllDocumentsContiguouslyのOptionであるNoneとPagePerSheet_2、およびPagePosterのOptionであるDivision_2のDisplayNameを表示する。図7の場合、PrintTicketのJobNUpAllDocumentsContiguouslyの設定値PagePerSheet_2が選択される。
そして、PrintCapabilitiesのDivision_2のconstrained属性が“PrintTicketSettings”となっていることに着目する。この禁則は、PrintTicketのJobNUpAllDocumentsContiguouslyの設定がPagePerSheet_2になっていることが要因である。通常、constrained属性がNone以外であれば、オプションを無効にする。しかしながら、本コントロールのように複数のFeatureを1つのコントロールで設定する場合においては、そのFeature間で発生する禁則は無視する必要がある。なぜなら、禁則を無視しなかった場合、2in1印刷から2分割印刷に設定を変更する場合、一旦1in1印刷を設定し、2分割印刷が有効になってから2分割印刷を設定しなければならず、ユーザビリティが低下するからである。
さらにドロップダウンリスト605には、レイアウトをより分かりやすくするためにオプションの先頭にアイコン606を表示する。一部のアイコンは、用紙の縦横比によって切り替わる。図8に、ページレイアウト605で表示するアイコンの説明をする。図8(a)は、縦長用紙の場合のアイコンの例で、横方向にページを配置する。図8(b)は、横長用紙の場合のアイコンの例で、縦方向にページを配置する。ここでは、縦長用紙が選択されているとし、印刷の向きが縦なので図8(a)のアイコンを表示する。
チェックボックス607は、部単位で印刷する設定をするためのコントロールである。PrintCapabilitiesのDocumentCollateのOptionであるUncollatedとCollatedのconstrained属性がどちらもNoneなので、表示は有効とされる。そして、図7の場合、PrintTicketのDocumentCollateの設定値がCollatedなので、表示はオンとされる。
以下、コントロールに対する一例の操作に基づいて、本実施形態の動作を説明する。
<ケース1:PrintCapabilities及びPrintTicketの生成なし、UI更新なし>
部単位で印刷チェックボックス607がオフされると、プリンタエクステンション215は、PrintTicketのDocumentCollateの設定値をUncollatedに編集し、図9の印刷設定更新処理を開始する。
図9は、プリンタエクステンション215が、PrintCapabilities、PrintTicketおよびUIを更新する処理を示すフローチャートである。S801では、プリンタエクステンション215は、DPBに格納された印刷設定更新情報を取得する。
図10は、印刷設定更新情報を示す図である。印刷設定更新情報は、印刷設定が変更された際、UIの更新に伴う、PrintCapabilities、PrintTicketの更新の要否を定義したリストである。Nameにはコントロール名が列挙され、UpdateSettingsには更新が必要なコントロール名が列挙される。更新が必要なコントロールがない場合は、nullが記載される。IsNeedCommitには、PrintCapabilities、PrintTicketとも更新しない場合は0が記載される。また、PrintCapabilities、PrintTicketとも更新する場合は1が記載される。また、PrintTicketのみ更新する場合は2が記載される。リストに記載がなければ、UpdateSettings=null、IsNeedCommit=0として動作する。
S802では、プリンタエクステンション215は、印刷設定更新情報に、Nameが一致するデータが存在するか否かを判定する。本例では、NameがDocumentCollateであるデータが存在するか否かを判定する。ここでは、図10の印刷設定更新情報に、NameがDocumentCollateのデータは存在しないので、S804に進み、プリンタエクステンション215は、図11のUI更新処理を実行し、その後、図9の印刷設定更新処理を終了する。
図11は、プリンタエクステンション215が、UIを更新する処理を示すフローチャートである。S1001では、プリンタエクステンション215は、DPBに記憶された印刷設定更新情報を取得する。S1002では、印刷設定更新情報に、Nameが一致するデータが存在するか否かを判定する。本例では、NameがDocumentCollateであるデータが存在するか否かを判定する。ここでは、図10の印刷設定更新情報に、NameがDocumentCollateのデータは存在しないので、S1009に進み、プリンタエクステンション215は、印刷設定UIが無効か否かを判定する。ここでは、印刷設定UIは無効ではないので、図11のUI更新処理を終了する。
以上のように、本ケースでは、PrintCapabilitiesとPrintTicketの生成処理およびUI更新処理は行われない。そのため、印刷設定UIが無効になることがないので、ユーザは次のコントロールを操作することができ、操作性の高いUIを提供することができる。また、本ケースでは、部単位で印刷チェックボックス607がオフされる場合を説明した。しかし、PrintCapabilitiesとPrintTicketの生成処理およびUI更新処理が行われない場合であれば、他の操作が行われても上記の動作は同様に適用され得る。
<ケース2:PrintCapabilities及びPrintTicketの生成なし、UI更新あり>
印刷の向きの横ラジオボタン604がオンされると、プリンタエクステンション215は、PrintTicketのPageOrientationの設定値をLandscapeに編集し、図9の印刷設定更新処理を開始する。
S801では、プリンタエクステンション215は、DPBに格納された印刷設定更新情報を取得する。本例では、S802では、プリンタエクステンション215は、印刷設定更新情報に、NameがPageOrientationであるデータが存在するか否かを判定する。ここでは、図10の印刷設定更新情報に、NameがPageOrientationのデータが存在するので、S803に進み、プリンタエクステンション215は、該当するデータ内のIsNeedCommitの設定値が0か否かを判定する。ここでは、IsNeedCommitの設定値は0なので、S804に進み、図11のUI更新処理を実行する。
図11のS1001では、プリンタエクステンション215は、DPBに格納された印刷設定更新情報を取得する。本例では、S1002では、プリンタエクステンション215は、印刷設定更新情報に、NameがPageOrientationであるデータが存在するか否かを判定する。ここでは、図10の印刷設定更新情報に、NameがPageOrientationのデータが存在するので、S1003に進み、プリンタエクステンション215は、該当するデータ内のUpdateSettingsを取得する。図10に示すように、UpdateSettingsには、“PageLayout”のみが列挙されているので、ページレイアウトコンボボックス605を更新する。
ページレイアウトコンボボックス605は前述のとおり割り付け印刷と分割印刷を含む。そのため、S1004で、プリンタエクステンション215は、PrintCapabilitiesとPrintTicketからJobNUpAllDocumentsContiguouslyとPagePosterの情報を取得する。そして、S1005で、プリンタエクステンション215は、ドロップダウンリスト605と設定値を更新する。ただし、前述のとおりJobNUpAllDocumentsContiguouslyとPagePoster間で発生する禁則については無視される。S1004とS1005は、IsNeedCommitが0(PrintCapabilities、PrintTicketとも更新しない)の場合は、実行しなくてもよい。
次に、S1006では、プリンタエクステンション215は、アイコンがあるか否かを判定する。ページレイアウトコンボボックス605には、前述のとおりアイコンが表示されるので、S1007に進み、プリンタエクステンション215は、印刷設定UIを無効にしてアイコンを更新する。印刷の向きが横に変更された結果、図8(b)のアイコンに切り替えられる。S1007の処理は、IsNeedCommitが0の場合でも実行される。
S1008では、プリンタエクステンション215は、UpdateSettingsに列挙された全ての要素の更新が完了したか否かを判定する。全ての要素の更新が完了していないと判定された場合、S1004からの処理を繰り返す。一方、全ての要素の更新が完了したと判定された場合、S1009に進み、プリンタエクステンション215は、印刷設定UIが無効か否かを判定する。ここでは、無効であるので、S1010に進み、印刷設定UIを有効にし、その後、図11のUI更新処理を終了する。
以上のように、本ケースでは、PrintCapabilitiesとPrintTicketの生成処理は行われない。また、印刷設定UIが無効になる時間は極めて短く、ユーザはほぼ待つことなく次のコントロールを操作することができる。その結果、操作性の高いUIを提供することができる。
また、本ケースでは、印刷の向きの横ラジオボタン604がオンされる場合を説明した。しかし、PrintCapabilitiesとPrintTicketの生成処理が行われず、S1007で印刷設定UIが無効になる場合であれば、他の操作が行われても上記の動作は同様に適用され得る。
<ケース3:PrintCapabilitiesの生成なし、PrintTicketの生成あり、UI更新あり>
フチなし印刷チェックボックス602がオンされると、プリンタエクステンション215は、PrintTicketのPageBorderlessの設定値をBorderlessに編集し、図9の印刷設定更新処理を開始する。
S801では、プリンタエクステンション215は、DPBに記憶された印刷設定更新情報を取得する。本例では、S802では、プリンタエクステンション215は、印刷設定更新情報に、NameがPageBorderlessであるデータが存在するか否かを判定する。ここでは、図10の印刷設定更新情報に、NameがPageBorderlessのデータが存在するので、S803に進み、プリンタエクステンション215は、該当するデータ内のIsNeedCommitの設定値が0か否かを判定する。IsNeedCommitの設定値は0ではないので、S805に進み、プリンタエクステンション215は、IsNeedCommitの設定値が1か否かを判定する。IsNeedCommitの設定値は2なので、S808に進み、プリンタエクステンション215は、コンフィグレーションモジュール219へ編集したPrintTicketを渡してPrintTicketを要求する。PrintTicketの生成は非同期処理なので、PrintTicketの生成の完了を待たず次の処理へ進む。S807では、プリンタエクステンション215は、印刷設定UIを無効にして入力を受け付けないようにし、図9の印刷設定処理を終了する。
コンフィグレーションモジュール219でPrintTicketの生成が完了すると、プリンタエクステンション215へ完了イベントが通知される。プリンタエクステンション215は、完了イベントを受信すると、図11のUI更新処理を開始する。
S1001では、プリンタエクステンション215は、DPBに格納された印刷設定更新情報を取得する。S1002では、プリンタエクステンション215は、印刷設定更新情報に、NameがPageBorderlessであるデータが存在するか否かを判定する。ここでは、図10の印刷設定更新情報に、NameがPageBorderlessのデータが存在するので、S1003に進み、プリンタエクステンション215は、該当するデータ内のUpdateSettingsを取得する。図10に示すように、UpdateSettingsには“PageLayout”のみが列挙されているので、ページレイアウトコンボボックス605を更新する。
ページレイアウトコンボボックス605は前述のとおり割り付け印刷と分割印刷を含む。S1004でプリンタエクステンション215は、PrintCapabilitiesとPrintTicketからJobNUpAllDocumentsContiguouslyとPagePosterの情報を取得する。そして、S1005で、プリンタエクステンション215は、ドロップダウンリスト605と設定値を更新する。
JobNUpAllDocumentsContiguouslyとPagePoster間で発生する禁則については無視するが、他の設定による禁則については従う。本ケースでは、フチなし印刷時は、割り付け印刷と分割印刷は設定できないので、ページレイアウトコンボボックス605を無効にし、設定値はPrintTicketに従って1in1印刷に変更する。
次に、S1006では、プリンタエクステンション215は、アイコンがあるか否かを判定する。ページレイアウトコンボボックス605には、前述のとおりアイコンが表示されるので、S1007に進み、プリンタエクステンション215は、アイコンを更新する。1in1印刷の場合、印刷の向きに依らず、図8(c)のアイコンに切り替えられる。
S1008では、プリンタエクステンション215は、UpdateSettingsに列挙された全ての要素の更新が完了したか否かを判定する。全ての要素の更新が完了していないと判定された場合、S1004からの処理を繰り返す。一方、全ての要素の更新が完了したと判定された場合、S1009に進み、プリンタエクステンション215は、印刷設定UIが無効か否かを判定する。ここでは、無効であるので、S1010に進み、印刷設定UIを有効にし、その後、図11のUI更新処理を終了する。
以上のように、本ケースでは、PrintCapabilitiesの生成処理は行われない。また、PrintTicket及びPrintCapabilitiesの両方を生成する場合に比べ、印刷設定UIが無効になる時間を短くできる。その結果、操作性の高いUIを提供することができる。
また、本ケースでは、フチなし印刷チェックボックス602がオンされる場合を説明したが、PrintCapabilitiesの生成処理が行われない場合であれば、他の操作が行われても上記の動作は同様に適用され得る。
<ケース4:PrintCapabilities及びPrintTicketの生成あり、UI更新あり>
用紙の種類ドロップダウンリスト601で普通紙が選択されると、プリンタエクステンション215は、PrintTicketのPageMediaTypeの設定値をPlainに編集し、図9の印刷設定更新処理を開始する。
S801では、プリンタエクステンション215は、DPBに格納された印刷設定更新情報を取得する。本例では、S802では、プリンタエクステンション215は、印刷設定更新情報に、NameがPageMediaTypeであるデータが存在するか否かを判定する。ここでは、図10の印刷設定更新情報に、NameがPageMediaTypeのデータが存在するので、S803に進み、プリンタエクステンション215は、該当するデータ内のIsNeedCommitの設定値が0か否かを判定する。IsNeedCommitの設定値は0ではないので、S805に進み、プリンタエクステンション215は、IsNeedCommitの設定値が1か否かを判定する。IsNeedCommitの設定値は1なので、S806に進み、プリンタエクステンション215は、コンフィグレーションモジュール219へ編集したPrintTicketを渡してPrintCapabilitiesとPrintTicketを要求する。PrintCapabilitiesとPrintTicketの生成は非同期処理なので、PrintCapabilities及びPrintTicketの生成の完了を待たず次の処理へ進む。S807で、プリンタエクステンション215は、印刷設定UIを無効にして入力を受け付けないようにし、図9の印刷設定処理を終了する。
コンフィグレーションモジュール219でPrintCapabilities及びPrintTicketの生成が完了すると、プリンタエクステンション215へ完了イベントが通知される。プリンタエクステンション215は、完了イベントを受信すると、図11のUI更新処理を開始する。
S1001では、プリンタエクステンション215は、DPBに格納された印刷設定更新情報を取得する。S1002では、プリンタエクステンション215は、印刷設定更新情報に、NameがPageMediaTypeであるデータが存在するか否かを判定する。ここでは、図10の印刷設定更新情報に、NameがPageMediaTypeのデータが存在するので、S1003に進み、プリンタエクステンション215は、該当するデータ内のUpdateSettingsを取得する。図10に示すように、UpdateSettingsには、PageBorderlessとPageLayoutが列挙されているので、フチなし印刷チェックボックス602とページレイアウトコンボボックス605を更新する。
S1004では、プリンタエクステンション215は、PrintCapabilitiesとPrintTicketからPageBorderlessの情報を取得する。用紙の種類が普通紙の場合、フチなし印刷はできないので、S1005で、プリンタエクステンション215は、フチなし印刷チェックボックス602を無効にし、フチなし印刷オフを設定する。
次に、S1006では、プリンタエクステンション215は、アイコンがあるか否かを判定する。フチなし印刷チェックボックス602にはアイコンはないので、S1008へ進む。S1008で、プリンタエクステンション215は、UpdateSettingsに列挙された全ての要素の更新が完了したか否かを判定する。ここでは、次の要素PageLayoutがあるので、S1004へ戻る。
ページレイアウトコンボボックス505は前述のとおり割り付け印刷と分割印刷を含む。S1004でプリンタエクステンション215は、PrintCapabilitiesとPrintTicketからJobNUpAllDocumentsContiguouslyとPagePosterの情報を取得する。そして、S1005で、プリンタエクステンション215は、ドロップダウンリスト605と設定値を更新する。ここでは、フチなし印刷がオフなので、プリンタエクステンション215は、ページレイアウトコンボボックス605を有効にし、設定値について、PrintTicketに従って1in1印刷を設定する。
次に、S1006では、プリンタエクステンション215は、アイコンがあるか否かを判定する。ページレイアウトコンボボックス605には、前述のとおりアイコンが表示されるので、S1007に進み、プリンタエクステンション215は、アイコンを更新する。1in1印刷の場合、印刷の向きに依らず、図8(c)のアイコンに切り替えられる。
S1008では、プリンタエクステンション215は、UpdateSettingsに列挙された全ての要素の更新が完了したか否かを判定する。全ての要素の更新が完了したと判定された場合、S1009に進み、プリンタエクステンション215は、印刷設定UIが無効か否かを判定する。ここでは、無効であるので、S1010に進み、印刷設定UIを有効にし、その後、図11のUI更新処理を終了する。
本ケースでは、用紙の種類ドロップダウンリスト601で普通紙が選択される場合を説明したが、PrintCapabilities及びPrintTicketの生成処理が行われる場合であれば、他の操作が行われても上記の動作は同様に適用され得る。
以上のように、本実施形態によれば、印刷設定更新情報に基づいて、コンフィグレーションモジュール219に対する、PrintCapabilitiesとPrintTicketの生成の要求を制御する。つまり、ケース1及びケース2のように、PrintCapabilitiesとPrintTicketを生成する必要がない条件を満たす場合には、PrintCapabilitiesとPrintTicketの生成要求は行わない。なお、ケース1及びケース2のように、PrintCapabilitiesとPrintTicketを生成する必要がない条件を満たす場合は、禁則がないか若しくは禁則があっても無視できる場合に相当する。そのような構成により、PrintCapabilitiesとPrintTicketを生成することによってUI更新が完了するまで入力を受け付けられなくなる事態を低減することができる。
[第2実施形態]
以下、第2実施形態について第1実施形態と異なる点について説明する。本実施形態では、コントロールに対する操作により生じる禁則を解消するために印刷設定が矯正されてしまった場合でも、その印刷設定が設定可能になった時点で、自動的に設定を戻すことができる。以下、一例として、ユーザにより順次行われる操作1、2、3に沿って、本実施形態を説明する。
<操作1:フチなし印刷チェックボックス602をオン。PrintTicket生成あり、UI更新あり>
フチなし印刷チェックボックス602がオンされると、プリンタエクステンション215は、PrintTicketのPageBorderlessの設定値をBorderlessに編集し、図12の印刷設定更新処理を開始する。
図12は、本実施形態における、プリンタエクステンション215が、PrintCapabilities、PrintTicketおよびUIを更新する処理を示すフローチャートである。
S1101では、プリンタエクステンション215は、変更された印刷設定をメモリ領域に保存する。その際、保存された印刷設定は、後続する操作によって上書きされずに、一定期間、蓄積されていくものとする。本例では、フチなし印刷オンをメモリ領域へ保存する。S1102では、プリンタエクステンション215は、DPBに格納された印刷設定更新情報を取得する。S1103では、プリンタエクステンション215は、印刷設定更新情報に、Nameが一致するデータが存在するか否かを判定する。本例では、NameがPageBorderlessであるデータが存在するか否かを判定する。ここでは、図10の印刷設定更新情報に、NameがPageBorderlessのデータが存在するので、S1104に進み、プリンタエクステンション215は、該当するデータ内のIsNeedCommitの設定値が0か否かを判定する。本例では、IsNeedCommitの設定値は0ではないので、S1106に進み、プリンタエクステンション215は、IsNeedCommitの設定値が1か否かを判定する。本例では、IsNeedCommitの設定値は2なので、S1109に進み、プリンタエクステンション215は、コンフィグレーションモジュール219へ編集したPrintTicketを渡してPrintTicketを要求する。PrintTicketの生成は非同期処理なので、PrintTicketの生成の完了を待たず次の処理へ進む。S1108で、プリンタエクステンション215は、印刷設定UIを無効にして入力を受け付けないようにし、図12の印刷設定処理を終了する。
S1103でNameが一致するデータが存在しないと判定された場合、S1105で、図11のUI更新処理が実行され、その後、図12の処理を終了する。
コンフィグレーションモジュール219でPrintTicketの生成が完了すると、プリンタエクステンション215へ完了イベントが通知される。プリンタエクステンション215は、完了イベントを受信すると、図13のUI更新処理を開始する。
図13は、本実施形態における、プリンタエクステンション215が、UIを更新する処理を示すフローチャートである。S1201では、プリンタエクステンション215は、DPBに記憶された印刷設定更新情報を取得する。S1202では、プリンタエクステンション215は、印刷設定更新情報に、Nameが一致するデータが存在するか否かを判定する。本例では、NameがPageBorderlessであるデータが存在するか否かを判定する。ここでは、図10の印刷設定更新情報に、NameがPageBorderlessのデータが存在するので、S1203に進み、プリンタエクステンション215は、該当するデータ内のUpdateSettingsを取得する。図10に示すように、UpdateSettingsには、“PageLayout”のみが列挙されているので、ページレイアウトコンボボックス605を更新する。
S1202でNameが一致するデータが存在しないと判定された場合、S1211へ進み、プリンタエクステンション215は、印刷設定UIを有効にし、その後、図13のUI更新処理を終了する。
ページレイアウトコンボボックス605は前述のとおり割り付け印刷と分割印刷を含む。S1204でプリンタエクステンション215は、PrintCapabilitiesとPrintTicketからJobNUpAllDocumentsContiguouslyとPagePosterの情報を取得する。そして、S1205で、プリンタエクステンション215は、S1101でメモリ領域に保存した印刷設定が設定可能か否かを判定する。ここでは、フチなし印刷のオンは設定可能な状態にあるので、S1207に進み、プリンタエクステンション215は、S1101でメモリ領域に保存した印刷設定を設定し(本例では、フチなし印刷オン)、ドロップダウンリスト605と設定値を更新する。
JobNUpAllDocumentsContiguouslyとPagePoster間で発生する禁則については無視するが、他の設定による禁則については従う。フチなし印刷時は、割り付け印刷と分割印刷は設定できないので、ページレイアウトコンボボックス605を無効にし、設定値はPrintTicketに従って1in1印刷に変更する。
次に、S1208では、プリンタエクステンション215は、アイコンがあるか否かを判定する。ページレイアウトコンボボックス605には、前述のとおりアイコンが表示されるので、S1209に進み、プリンタエクステンション215は、アイコンを更新する。1in1印刷の場合、印刷の向きに依らず、図8(c)のアイコンに切り替えられる。
S1210では、プリンタエクステンション215は、UpdateSettingsに列挙された全ての要素の更新が完了したか否かを判定する。全ての要素の更新が完了していないと判定された場合、S1204からの処理を繰り返す。一方、全ての要素の更新が完了したと判定された場合、S1211に進み、プリンタエクステンション215は、印刷設定UIを有効にし、その後、図13のUI更新処理を終了する。
<操作2:普通紙の選択。PrintCapabilities及びPrintTicketの生成あり、UI更新あり>
操作1に続いて、用紙の種類ドロップダウンリスト601で普通紙が選択されると、プリンタエクステンション215は、PrintTicketのPageMediaTypeの設定値をPlainに編集し、図12の印刷設定更新処理を開始する。
本例では、S1101では、プリンタエクステンション215は、用紙の種類の設定である普通紙をメモリ領域へ保存する。S1102では、プリンタエクステンション215は、DPBに格納された印刷設定更新情報を取得する。S1103では、プリンタエクステンション215は、印刷設定更新情報に、NameがPageMediaTypeであるデータが存在するか否かを判定する。ここでは、図10の印刷設定更新情報に、NameがPageMediaTypeのデータが存在するので、S1104に進み、プリンタエクステンション215は、該当するデータ内のIsNeedCommitの設定値が0か否かを判定する。IsNeedCommitの設定値は0ではないので、S1106に進み、プリンタエクステンション215は、IsNeedCommitの設定値が1か否かを判定する。IsNeedCommitの設定値は1なので、S1107に進む。プリンタエクステンション215は、コンフィグレーションモジュール219へ編集したPrintTicketを渡してPrintCapabilitiesとPrintTicketを要求する。PrintCapabilitiesとPrintTicketの生成は非同期処理なので、PrintCapabilitiesとPrintTicketの生成の完了を待たず次の処理へ進む。S1108で、プリンタエクステンション215は、印刷設定UIを無効にして入力を受け付けないようにし、図12の印刷設定処理を終了する。
コンフィグレーションモジュール219でPrintCapabilitiesとPrintTicketの生成が完了すると、プリンタエクステンション215へ完了イベントが通知される。プリンタエクステンション215は、完了イベントを受信すると、図13のUI更新処理を開始する。
本例では、S1201では、プリンタエクステンション215は、DPBに格納された印刷設定更新情報を取得する。S1202では、プリンタエクステンション215は、印刷設定更新情報に、NameがPageMediaTypeであるデータが存在するか否かを判定する。ここでは、図10の印刷設定更新情報に、NameがPageMediaTypeのデータが存在するので、S1203に進み、プリンタエクステンション215は、該当するデータ内のUpdateSettingsを取得する。図10に示すように、UpdateSettingsには、PageBorderlessとPageLayoutが列挙されているので、フチなし印刷チェックボックス602とページレイアウトコンボボックス605を更新する。
S1204で、プリンタエクステンション215は、PrintCapabilitiesとPrintTicketからPageBorderlessの情報を取得する。そして、S1205で、プリンタエクステンション215は、S1101でメモリ領域に保存した印刷設定が設定可能か否かを判定する。フチなし印刷オンが設定されていれば、普通紙の選択はできないので設定可能でないと判定されてS1206に進み、プリンタエクステンション215は、フチなし印刷チェックボックス602を無効にし、フチなし印刷オフを設定する(禁則のため、設定の矯正)。
次に、S1208では、プリンタエクステンション215は、アイコンがあるか否かを判定する。フチなし印刷チェックボックス602にはアイコンはないので、S1210へ進む。S1210で、プリンタエクステンション215は、UpdateSettingsに列挙された全ての要素の更新が完了したか否かを判定する。ここでは、次の要素PageLayoutがあるので、S1204へ戻る。
ページレイアウトコンボボックス605は前述のとおり割り付け印刷と分割印刷を含む。S1204でプリンタエクステンション215は、PrintCapabilitiesとPrintTicketからJobNUpAllDocumentsContiguouslyとPagePosterの情報を取得する。そして、S1205で、プリンタエクステンション215は、S1101でメモリ領域に保存した印刷設定が設定可能か否かを判定する。上記のようにフチなし印刷オフが設定されたことにより、普通紙の選択が可能であるので、S1207に進み、プリンタエクステンション215は、ドロップダウンリスト605と設定値を更新する。ここでは、フチなし印刷がオフなので、プリンタエクステンション215は、ページレイアウトコンボボックス605を有効にし、設定値はPrintTicketに従って1in1印刷を設定する。
次に、S1208では、プリンタエクステンション215は、アイコンがあるか否かを判定する。ページレイアウトコンボボックス605には、前述のとおりアイコンが表示されるので、S1209に進み、アイコンを更新する。1in1印刷の場合、印刷の向きに依らず、図8(c)のアイコンに切り替えられる。
S1210では、プリンタエクステンション215は、UpdateSettingsに列挙された全ての要素の更新が完了したか否かを判定する。ここでは、全ての要素の更新が完了したので、S1211に進み、プリンタエクステンション215は、印刷設定UIを有効にし、その後、図13のUI更新処理を終了する。
<操作3:写真紙の選択:PrintCapabilities及びPrintTicketの生成あり、UI更新あり>
操作2に続いて、用紙の種類ドロップダウンリスト601で写真紙が選択されると、プリンタエクステンション215は、PrintTicketのPageMediaTypeの設定値をPhotoPaperに編集し、図12の印刷設定更新処理を開始する。
本例では、S1101では、プリンタエクステンション215は、用紙の種類の設定である写真紙をメモリ領域へ保存する。S1102では、プリンタエクステンション215は、DPBに記憶された印刷設定更新情報を取得する。S1103では、プリンタエクステンション215は、印刷設定更新情報に、NameがPageMediaTypeであるデータが存在するか否かを判定する。ここでは、図10の印刷設定更新情報に、NameがPageMediaTypeのデータが存在するので、S1104に進み、プリンタエクステンション215は、該当するデータ内のIsNeedCommitの設定値が0か否かを判定する。IsNeedCommitの設定値は0ではないので、S1106に進み、プリンタエクステンション215は、IsNeedCommitの設定値が1か否かを判定する。IsNeedCommitの設定値は1なので、S1107に進む。プリンタエクステンション215は、コンフィグレーションモジュール219へ編集したPrintTicketを渡してPrintCapabilitiesとPrintTicketを要求する。PrintCapabilitiesとPrintTicketの生成は非同期処理なので、PrintCapabilitiesとPrintTicketの生成の完了を待たず次の処理へ進む。S1108で、プリンタエクステンション215は、印刷設定UIを無効にして入力を受け付けないようにして、図12の印刷設定処理を終了する。
コンフィグレーションモジュール219でPrintCapabilitiesとPrintTicketの生成が完了すると、プリンタエクステンション215へ完了イベントが通知される。プリンタエクステンション215は、完了イベントを受信すると、図13のUI更新処理を開始する。
本例では、S1201では、プリンタエクステンション215は、DPBに記憶された印刷設定更新情報を取得する。S1202では、プリンタエクステンション215は、印刷設定更新情報に、NameがPageMediaTypeであるデータが存在するか否かを判定する。ここでは、図10の印刷設定更新情報に、NameがPageMediaTypeのデータが存在するので、S1203に進み、プリンタエクステンション215は、該当するデータ内のUpdateSettingsを取得する。図10に示すように、UpdateSettingsには、PageBorderlessとPageLayoutが列挙されているので、フチなし印刷チェックボックス602とページレイアウトコンボボックス605を更新する。
S1204で、プリンタエクステンション215は、PrintCapabilitiesとPrintTicketからPageBorderlessの情報を取得する。そして、S1205で、プリンタエクステンション215は、S1101でメモリ領域に保存した印刷設定が設定可能か否かを判定する。「操作2」でフチなし印刷オフに設定されていても、写真紙の選択は可能であるので、S1207に進み、プリンタエクステンション215は、フチなし印刷チェックボックス602を有効にし、オンを設定する。つまり、「操作1」でフチなし印刷オンに設定された後、「操作2」で禁則によりフチなし印刷オフに矯正されるとする。この場合でも、操作3により禁則が解除されてフチなし印刷オンが可能になれば、且つ、従前のS1101でフチなし印刷オンが保存されていれば、設定をフチなし印刷オンに戻すことができる。
次に、S1208では、プリンタエクステンション215は、アイコンがあるか否かを判定する。フチなし印刷チェックボックス602にはアイコンはないので、S1210へ進む。S1210で、プリンタエクステンション215は、UpdateSettingsに列挙された全ての要素の更新が完了したか否かを判定する。ここでは、次の要素PageLayoutがあるので、S1204へ戻る。
ページレイアウトコンボボックス505は前述のとおり割り付け印刷と分割印刷を含む。S1204でプリンタエクステンション215は、PrintCapabilitiesとPrintTicketからJobNUpAllDocumentsContiguouslyとPagePosterの情報を取得する。そして、S1205で、プリンタエクステンション215は、S1101でメモリ領域に保存した印刷設定が設定可能か否かを判定する。写真紙の選択が可能であるので、S1207に進み、プリンタエクステンション215は、ドロップダウンリスト605と設定値を更新する。ここでは、フチなし印刷がオンなので、ページレイアウトコンボボックス605を無効にし、設定値はPrintTicketに従って1in1印刷を設定する。
次に、S1208では、プリンタエクステンション215は、アイコンがあるか否かを判定する。ページレイアウトコンボボックス605には、前述のとおりアイコンが表示されるので、S1209に進み、アイコンを更新する。1in1印刷の場合、印刷の向きに依らず、図8(c)のアイコンに切り替えられる。
S1210では、プリンタエクステンション215は、UpdateSettingsに列挙された全ての要素の更新が完了したか否かを判定する。ここでは、全ての要素の更新が完了したので、S1211へ進み、プリンタエクステンション215は、印刷設定UIを有効にし、その後、図13のUI更新処理を終了する。
以上のように、本実施形態では、コントロールに対する操作により生じる禁則を解消するために印刷設定が矯正されてしまった場合でも(操作2でのS1206)、その印刷設定が設定可能になった時点で、自動的に設定を戻すことが可能になる。さらに、本実施形態では、所定の種類の操作による印刷設定に基づいた処理を例に説明したが、他の操作による印刷設定についても同様に適用され得る。
[第3実施形態]
以下、第3実施形態について第1及び第2実施形態と異なる点について説明する。以下、コントロールに対する操作の流れを一例として説明するが、以下の操作の流れに限定されるものではなく、他の操作の流れに対しても適用され得る。
例えば、用紙の種類のコンボボックス601で「写真用紙」を選択し、ページレイアウトコンボボックス605で「2in1印刷」を選択した状態で、フチなし印刷チェックボックス602がオンされたとする。この場合、プリンタエクステンション215は、PrintTicketのPageBorderlessの設定値をBorderlessに編集し、図14の印刷設定更新処理を開始する。
図14は、本実施形態における、プリンタエクステンション215が、PrintCapabilities、PrintTicketおよびUIを更新する処理を示すフローチャートである。
S1301で、プリンタエクステンション215は、現在PrintTicket生成中か否かを判定する。PrintTicket生成中でないと判定された場合、S1302で、プリンタエクステンション215は、DPBに記憶された印刷設定更新情報を取得する。S1301でPrintTicket生成中であると判定された場合、図14の処理を終了する。ここでは、PrintTicketの生成はまだ要求されていないので、S1302に進む。
S1303では、プリンタエクステンション215は、印刷設定更新情報に、NameがPageBorderlessであるデータが存在するか否かを判定する。ここでは、図10の印刷設定更新情報に、NameがPageBorderlessのデータが存在するので、S1304に進み、プリンタエクステンション215は、該当するデータ内のIsNeedCommitの設定値が0か否かを判定する。IsNeedCommitの設定値は0ではないので、S1306に進み、プリンタエクステンション215は、IsNeedCommitの設定が1か否かを判定する。IsNeedCommitの設定値は2なので、S1309に進み、プリンタエクステンション215は、コンフィグレーションモジュール219へ編集したPrintTicketを渡してPrintTicketの生成を要求する。PrintTicketの生成は非同期処理なので、PrintTicketの生成の完了を待たず、図14の印刷設定更新処理を終了する。
S1306でIsNeedCommitの設定値が1と判定された場合、S1307において、プリンタエクステンション215は、コンフィグレーションモジュール219へ編集したPrintTicketを渡す。そしてPrintCapabilities、PrintTicketの生成を要求する。その場合も、PrintCapabilities、PrintTicketの生成は非同期処理なので、PrintCapabilities、PrintTicketの生成の完了を待たず、図14の印刷設定更新処理を終了する。
本実施形態によれば、PrintTicket生成中も印刷設定UIを無効としない。つまり、印刷設定UIは有効なままであるので、ユーザは続けてコントロールの操作が可能であり、操作性を向上させることができる。
さらに、部単位で印刷チェックボックス607がオフされると、プリンタエクステンション215は、PrintTicketのDocumentCollateの設定値をUncollatedに編集し、図14の印刷設定更新処理を開始する。
S1301で、プリンタエクステンション215は、現在PrintTicket生成中か否かを判定する。ここでは、上記で要求が行われたPrintTicket生成の処理中であるので、PrintTicket生成中であると判定され、図14の印刷設定更新処理を終了する。
さらに、用紙の種類コンボボックス601で普通紙が選択されると、プリンタエクステンション215は、PrintTicketのPageMediaTypeの設定値をPlainに編集し、図14の印刷設定更新処理を開始する。
S1301で、プリンタエクステンション215は、現在PrintTicket生成中か否かを判定する。ここでは、上記で要求が行われたPrintTicket生成の処理中であるので、PrintTicket生成中であると判定され、図14の印刷設定更新処理を終了する。
そして、コンフィグレーションモジュール219でPrintTicketの生成が完了すると、プリンタエクステンション215は、完了イベントを受信し、図15の更新後PrintTicketマージ処理を開始する。
図15は、更新後PrintTicketマージ処理を示すフローチャートである。
S1401では、プリンタエクステンション215は、DPBに記憶された印刷設定更新情報を取得する。S1402で、プリンタエクステンション215は、コンフィグレーションモジュール219から渡された更新後PrintTicketの印刷設定を読み込む。
S1403では、プリンタエクステンション215は、S1402で読み込んだ印刷設定がPrintTicketに存在するか否かを判定する。存在すると判定された場合は、S1404に進み、プリンタエクステンション215は、保持しているPrintTicketと、更新後PrintTicketの設定値とが一致するか否かを判定する。本例では、フチなし印刷時は割り付け印刷は設定できないので、JobNupAllDocumentsContiguouslyの設定は、更新後PrintTicketでは1in1印刷となっている。一方、保持しているPrintTicketでは2in1印刷なので、S1404で一致しないと判定され、S1405に進む。
S1403でPrintTicketに存在しないと判定された場合、S1404で一致すると判定された場合には、他の印刷設定について、S1403からの処理を繰り返す。
S1405では、プリンタエクステンション215は、印刷設定更新情報に、Nameが一致するデータが存在するか否かを判定する。ここでは、図10の印刷設定更新情報に、NameがAllDocumentsContiguouslyのデータは存在しないので、S1410へ進む。Nameが一致するデータが存在すると判定された場合には、後述するようにS1406に進む。
S1410では、プリンタエクステンション215は、保持しているPrintTicketの値は設定可能であるか否かを判定する。本例では、2in1印刷が設定可能か否かを、更新後のPrintCapabilitiesに基づいて判定する。前述のとおりフチなし印刷時は割り付け印刷と分割印刷は設定できないので、2in1印刷は設定可能でないと判定し、S1411に進み、プリンタエクステンション215は、PrintTicketに更新後PrintTicketの値を設定する。本例では、PrintTicketの設定を、更新後PrintTicketの値である1in1印刷に変更する。S1410で設定可能でないと判定された場合には、他の印刷設定について、S1403からの処理を繰り返す。
次に、他の印刷設定について、S1403からの処理を繰り返す。本例では、PrintTicket生成中に変更された用紙の種類についてS1403からの処理を行う。本例では、S1403で、S1402で読み込んだ印刷設定がPrintTicketに存在すると判定される。そして、更新後PrintTicketでは写真用紙であり、保持しているPrintTicketでは普通紙であるので、S1404で一致しないと判定され、S1405に進む。
S1405では、プリンタエクステンション215は、印刷設定更新情報に、NameがPageMediaTypeのデータが存在するか否かを判定する。ここでは、図10の印刷設定更新情報に、NameがPageMediaTypeのデータが存在するので、S1406で該当するデータ内のIsNeedCommitの設定値が0か否かを判定する。IsNeedCommitの設定値が0であれば、S1410へ進む。本例では、IsNeedCommitの設定値は0ではないので、S1407に進み、プリンタエクステンション215は、IsNeedCommitの設定値が1か否かを判定する。本例では、IsNeedCommitの設定値は1なので、S1408に進む。プリンタエクステンション215は、コンフィグレーションモジュール219へPrintTicketを渡してPrintCapabilitiesとPrintTicketの生成を要求する。PrintCapabilitiesとPrintTicketの生成は非同期処理なので、PrintCapabilitiesとPrintTicketの生成の完了を待たず、図15の処理を終了する。
一方、S1407でIsNeedCommitの設定値が1でないと判定された場合、S1409に進み、プリンタエクステンション215は、コンフィグレーションモジュール219へPrintTicketを渡してPrintTicketの生成を要求する。PrintTicketの生成は非同期処理なので、PrintTicketの生成の完了を待たず、図15の処理を終了する。
上記のように図15の処理を終了する場合には、マージ処理が中断されることになるが、S1402で再びコンフィグレーションモジュール219から渡された更新後PrintTicketの印刷設定を読み込み、S1403以降の処理が行われる。以下、そのようなケースにおいて、PrintTicket生成中に変更された部単位印刷について、S1403からの処理が行われるとして説明する。
本例では、S1403で、S1402で読み込んだ印刷設定がPrintTicketに存在すると判定される。そして、更新後PrintTicketでは部単位印刷オンであり、保持しているPrintTicketでは部単位印刷オフであるので、S1404で一致しないと判定され、S1405に進む。
本例では、S1405で、プリンタエクステンション215は、印刷設定更新情報に、NameがDocumentCollateのデータが存在するか否かを判定する。ここでは、図10の印刷設定更新情報に、NameがDocumentCollateのデータは存在しないので、S1410に進み、プリンタエクステンション215は、部単位印刷オフが設定可能か否かを判定する。フチなし印刷時でも部単位印刷はオン、オフとも設定可能であるので、設定可能と判定される。本例では、更新後PrintTicketの印刷設定の全てについて処理したことになるので、図15のループを抜け、S1412に進む。
S1412では、図11のUI更新処理を実行し、その後、図15の処理を終了する。つまり、本実施形態では、更新後PrintTicketと、コンフィグレーションモジュール219で生成中に操作が行われたPrintTicketとをマージし、そのマージ後のPrintTicketに基づいて、図11のUI更新処理が実行される。その結果、ユーザの操作性を低下させることなく、最新のPrintTicketに基づいて印刷設定UIの更新処理が行われる。なお、本実施形態では、S1309でPrintTicketの生成が要求されるケースについて説明したが、S1307でPrintCapabilitiesとPrintTicketの生成が要求されるケースについても同様の効果が得られる。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
101 情報処理装置: 102 印刷装置: 111 CPU: 203 プリンタドライバ: 213 印刷設定定義ファイル: 215 プリンタエクステンション: 217 プロパティバッグ: 219 コンフィグレーションモジュール

Claims (12)

  1. 印刷設定画面上のコントロールの内容が記述された情報を生成する生成手段と、
    前記印刷設定画面上でのコントロールの操作に応じて、前記印刷設定画面の表示を更新する更新手段と、を備え、
    前記更新手段は、前記操作が第1条件を満たす場合には、前記コントロールの内容が記述された情報の生成を前記生成手段に要求し、該要求に応じて前記生成手段により生成された前記コントロールの内容が記述された情報に基づいて、前記印刷設定画面の表示を更新し、
    前記操作が第2条件を満たす場合には、前記コントロールの内容が記述された情報の生成を前記生成手段に要求することなく、前記印刷設定画面の表示を更新する、
    ことを特徴とする情報処理装置。
  2. 前記生成手段による生成の要否が記述された更新情報を記憶する記憶手段、をさらに備え、
    前記第1条件とは、前記操作に応じて前記生成手段による生成が必要であることが前記更新情報に記述されていることである、
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記第2条件とは、前記操作に応じて前記生成手段による生成が必要であることが前記更新情報に記述されていないことである、
    ことを特徴とする請求項2に記載の情報処理装置。
  4. 前記記憶手段は、プロパティバッグであることを特徴とする請求項2又は3に記載の情報処理装置。
  5. 前記生成手段は、前記印刷設定画面上でのコントロールの表示に関わる禁則が定義された定義ファイルに基づいて、前記コントロールの内容が記述された情報を生成することを特徴とする請求項1乃至4のいずれか1項に記載の情報処理装置。
  6. 前記生成手段は、前記コントロールの内容が記述された情報として、複数の情報の生成が可能であり、
    前記更新手段は、前記複数の情報の少なくともいずれかの生成を前記生成手段に要求する、
    ことを特徴とする請求項1乃至5のいずれか1項に記載の情報処理装置。
  7. 前記複数の情報は、PrintCapabilities、PrintTicket、を含むことを特徴とする請求項6に記載の情報処理装置。
  8. 前記操作としての第1操作に応じて前記更新手段による更新が行われた結果、第1コントロールの表示が有効とされ、さらに、前記操作としての第2操作に応じて前記更新手段による更新が行われた結果、前記第1操作と前記第2操作の禁則により、前記第1コントロールの表示が無効となった場合において、
    前記更新手段は、前記第2操作の後、前記操作としての第3操作が行われることにより前記禁則が解除されることを条件として、前記第1コントロールの表示を有効として前記印刷設定画面の表示を更新する、
    ことを特徴とする請求項1乃至7のいずれか1項に記載の情報処理装置。
  9. 前記操作としての第1操作に応じて、前記更新手段が前記コントロールの内容が記述された第1情報の生成を前記生成手段に要求した場合、
    前記第1操作の後、前記操作としての第2操作が行われると、前記更新手段が前記生成手段に要求することなく、前記コントロールの内容が記述された第2情報を生成する第2生成手段と、
    前記生成手段により生成された前記第1情報と、前記第2生成手段により生成された前記第2情報とをマージ手段、をさらに備え、
    前記更新手段は、前記マージ手段によりマージされて生成された前記コントロールの内容が記述された情報に基づいて、前記印刷設定画面の表示を更新する、
    ことを特徴とする請求項1乃至のいずれか1項に記載の情報処理装置。
  10. 前記生成手段により前記第1情報が生成中であるか否かを判定する判定手段、をさらに備え、
    前記第2生成手段は、前記判定手段により前記第1情報が生成中であると判定された場合、前記第2情報を生成する、
    ことを特徴とする請求項に記載の情報処理装置。
  11. 情報処理装置において実行される情報処理方法であって、
    印刷設定画面上のコントロールの内容が記述された情報を生成する生成工程と、
    前記印刷設定画面上でのコントロールの操作に応じて、前記印刷設定画面の表示を更新する更新工程と、を有し、
    前記更新工程では、前記操作が第1条件を満たす場合には、前記コントロールの内容が記述された情報の生成を前記生成工程に要求し、該要求に応じて前記生成工程において生成された前記コントロールの内容が記述された情報に基づいて、前記印刷設定画面の表示を更新し、
    前記操作が第2条件を満たす場合には、前記コントロールの内容が記述された情報の生成を前記生成工程に要求することなく、前記印刷設定画面の表示を更新する、
    ことを特徴とする情報処理方法。
  12. 印刷設定画面上のコントロールの内容が記述された情報を生成する生成手段、
    前記印刷設定画面上でのコントロールの操作に応じて、前記印刷設定画面の表示を更新する更新手段、としてコンピュータを機能させるためのプログラムであって、
    前記更新手段は、前記操作が第1条件を満たす場合には、前記コントロールの内容が記述された情報の生成を前記生成手段に要求し、該要求に応じて前記生成手段により生成された前記コントロールの内容が記述された情報に基づいて、前記印刷設定画面の表示を更新し、
    前記操作が第2条件を満たす場合には、前記コントロールの内容が記述された情報の生成を前記生成手段に要求することなく、前記印刷設定画面の表示を更新する、
    ことを特徴とするプログラム。
JP2019068066A 2019-03-29 2019-03-29 情報処理装置、情報処理方法およびプログラム Active JP7307577B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019068066A JP7307577B2 (ja) 2019-03-29 2019-03-29 情報処理装置、情報処理方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019068066A JP7307577B2 (ja) 2019-03-29 2019-03-29 情報処理装置、情報処理方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2020166698A JP2020166698A (ja) 2020-10-08
JP7307577B2 true JP7307577B2 (ja) 2023-07-12

Family

ID=72715271

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019068066A Active JP7307577B2 (ja) 2019-03-29 2019-03-29 情報処理装置、情報処理方法およびプログラム

Country Status (1)

Country Link
JP (1) JP7307577B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018045577A (ja) 2016-09-16 2018-03-22 キヤノン株式会社 情報処理装置、方法およびプログラム
JP2018151690A (ja) 2017-03-09 2018-09-27 キヤノン株式会社 情報処理装置、情報処理方法およびプログラム
JP2018180750A (ja) 2017-04-07 2018-11-15 キヤノン株式会社 画像形成装置における制御装置およびプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018045577A (ja) 2016-09-16 2018-03-22 キヤノン株式会社 情報処理装置、方法およびプログラム
JP2018151690A (ja) 2017-03-09 2018-09-27 キヤノン株式会社 情報処理装置、情報処理方法およびプログラム
JP2018180750A (ja) 2017-04-07 2018-11-15 キヤノン株式会社 画像形成装置における制御装置およびプログラム

Also Published As

Publication number Publication date
JP2020166698A (ja) 2020-10-08

Similar Documents

Publication Publication Date Title
JP7691456B2 (ja) プログラム、情報処理装置の制御方法及び情報処理装置
US8860959B2 (en) Configuring settings for exception pages in a print job
US7325235B2 (en) Data processing apparatus, data processing method, program, and storage medium
JP7693906B2 (ja) プログラム及び情報処理装置
US7064849B1 (en) Data processing apparatus adaptable to plural environments and data processing method
JP4645246B2 (ja) アイコン制御プログラム、コンピュータ、方法
US7948643B2 (en) Information processing apparatus, method for enhancing print function, computer-readable program for enhancing print function, printer, print method, and print system
US20160295040A1 (en) Quick Operation User Interface for a Multifunction Printing Device
US8368926B2 (en) Reuse of document print attributes
JP2009211695A (ja) プリントコンテナを構築するための方法及びguiプログラム
US6614550B1 (en) Information processing apparatus, information processing method, and program storage medium
JP3679678B2 (ja) 印刷制御装置及びその制御方法
JP2000085200A (ja) デ―タ処理装置およびデ―タ処理装置のデ―タ処理方法およびコンピュ―タが読み出し可能なプログラムを格納した記憶媒体
JP2009116544A (ja) 印刷制御装置、印刷制御方法、及び、プログラム
US20080170264A1 (en) Computer-readable recording medium recorded with printing program
US7428072B2 (en) Printing control program, printing control method, printing system and information processing apparatus
JP5511483B2 (ja) 情報処理装置、制御方法、およびプログラム
JP7307577B2 (ja) 情報処理装置、情報処理方法およびプログラム
US9253343B2 (en) Information processing apparatus, control method, and storage medium for providing a preview and/or display of a main display document generated from all parts of a print document
US7253911B2 (en) Printing method and system for executing printing in plural print processes
JP6659099B2 (ja) 印刷装置とその制御方法、及びプログラム
US9430446B2 (en) Information processing apparatus, method and storage medium including a function for establishing exceptions applied to print settings when specified conditions are met
JP2008176385A (ja) 印刷用プログラム及び画像形成システム
JP2026006314A (ja) サポートプログラム
JP4545903B2 (ja) 情報処理装置、情報処理方法、および記憶媒体

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20210103

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210113

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220329

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230404

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230602

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230630

R151 Written notification of patent or utility model registration

Ref document number: 7307577

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151