JP2019144814A - 情報処理装置、情報処理装置の制御方法およびプログラム - Google Patents
情報処理装置、情報処理装置の制御方法およびプログラム Download PDFInfo
- Publication number
- JP2019144814A JP2019144814A JP2018028020A JP2018028020A JP2019144814A JP 2019144814 A JP2019144814 A JP 2019144814A JP 2018028020 A JP2018028020 A JP 2018028020A JP 2018028020 A JP2018028020 A JP 2018028020A JP 2019144814 A JP2019144814 A JP 2019144814A
- Authority
- JP
- Japan
- Prior art keywords
- prohibition
- application
- information
- prohibition information
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/1253—Configuration of print job parameters, e.g. using UI at the client
- G06F3/1255—Settings incompatibility, e.g. constraints, user requirements vs. device capabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/121—Facilitating exception or error detection and recovery, e.g. fault, media or consumables depleted
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1229—Printer resources management or printer maintenance, e.g. device status, power levels
- G06F3/1231—Device related settings, e.g. IP address, Name, Identification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1203—Improving or facilitating administration, e.g. print management
- G06F3/1205—Improving or facilitating administration, e.g. print management resulting in increased flexibility in print job configuration, e.g. job settings, print requirements, job tickets
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1229—Printer resources management or printer maintenance, e.g. device status, power levels
- G06F3/1232—Transmitting printer device capabilities, e.g. upon request or periodically
Abstract
【課題】アプリケーションにおける印刷設定の禁則の判定を高精度に行うことができる情報処理装置を提供すること。【解決手段】印刷設定を行うアプリケーション1051とプリンタドライバ1052を有する情報処理装置は、印刷機能に関する設定値と、同時に設定することが禁止されている印刷機能の設定値の組み合わせを示す第1の禁則情報と、第1の禁則情報に対応するアプリケーション1051で解釈可能な特定の禁則条件を含む第2の禁則情報とを含む機種依存ファイル309を管理する管理手段と、印刷設定が、アプリケーション1051で解釈可能な特定の禁則条件を含む第1の禁則情報もしくは第2の禁則情報に該当するか否かを判定する第1の判定手段と、第1の判定手段が該当すると判定した場合に、ユーザにプリンタドライバ1052の起動を促す表示を行う表示手段と、を備える。【選択図】図3
Description
本発明は、情報処理装置、情報処理装置の制御方法およびプログラムに関する。
Microsoft(登録商標)のOS(Operating System)では、V4プリンタドライバと呼ばれる新しいアーキテクチャで動作するプリンタドライバが導入された。V4プリンタドライバは、PPD(PostScript Printer Description)やGPD(Generic Printer Description)と呼ばれる機種依存ファイルで、各機種で使用できる印刷設定の機能を表現している。
V4プリンタドライバには、デバイスが同時に実行できない印刷設定を制御する「禁則」と呼ばれる機能が備わっている。デバイスが同時に実行できない印刷設定、すなわち、同時に設定することが禁止されている印刷設定については、無効な印刷設定の組み合わせの情報として機種依存ファイルに記載される。以後、本明細書では、機能の無効な組み合わせを禁則と呼び、機種依存ファイルに記載される機能の無効な組み合わせの情報を禁則情報と呼ぶ。ユーザが印刷設定を変更することによって、機種依存ファイルに記載された機能の無効な組み合わせになった場合、V4プリンタドライバは、優先順位が最も低い機能を使用しないように強制的に設定を変更する。このように、印刷設定の無効な組み合わせ(禁則)が指定された際に行われる無効な組み合わせを解消する設定の変更処理は、禁則処理と呼ばれる。
印刷設定には、アプリケーションから変更が可能な印刷設定(例えば、用紙サイズや両面等の一般的な印刷設定)と、メーカーの独自機能でアプリケーションから変更ができない印刷設定が存在する。ユーザがアプリケーションから変更が可能な印刷設定のみを変更したい場合は、プリンタドライバのUI(User Interface)を開かずに印刷設定を変更する事が可能である。ただし、プリンタドライバのUIを開かずにアプリケーション側で印刷設定を変更した場合、禁則処理をプリンタドライバ側で行うことができないため、ユーザが意図した印刷結果にならない場合がある。特許文献1は、従来のアーキテクチャであるV3プリンタドライバにおいて禁則が検出された場合に、ユーザに禁則の印刷設定を通知すると共に、その印刷設定の内容について機能の再設定操作を行わせる画面を表示する技術を開示している。
しかしながら、従来技術は、アーキテクチャのV3ドライバを想定した技術であるため、新しいアーキテクチャのV4プリンタドライバではアーキテクチャ上の制限で実現することができない。
また、Microsoft Word(商標登録)等、アプリケーションの中には、プリンタドライバの機種依存ファイルに記述された禁則情報を解釈し、禁則処理が必要と判断した場合にドライバのUIの起動を促すものがある。しかし、これらのアプリケーションであっても、プリンタドライバの機種依存ファイルに記述された全ての禁則情報を解釈できるわけではなく、特定の機能を含む禁則情報しか解釈できない。
また、Microsoft Word(商標登録)等、アプリケーションの中には、プリンタドライバの機種依存ファイルに記述された禁則情報を解釈し、禁則処理が必要と判断した場合にドライバのUIの起動を促すものがある。しかし、これらのアプリケーションであっても、プリンタドライバの機種依存ファイルに記述された全ての禁則情報を解釈できるわけではなく、特定の機能を含む禁則情報しか解釈できない。
本発明は、アプリケーションにおける印刷設定の禁則の判定を高精度に行うことができる情報処理装置を提供することを目的とする。
上記課題を解決するために、本発明の情報処理装置は、印刷設定を行うアプリケーションとプリンタドライバを有する情報処理装置であって、印刷機能に関する設定値と、同時に設定することが禁止されている印刷機能の設定値の組み合わせを示す第1の禁則情報と、前記第1の禁則情報に対応する前記アプリケーションで解釈可能な特定の禁則条件を含む第2の禁則情報とを含む機種依存情報を管理する管理手段と、印刷設定が、前記アプリケーションで解釈可能な特定の禁則条件を含む前記第1の禁則情報もしくは前記第2の禁則情報に該当するか否かを判定する第1の判定手段と、前記第1の判定手段が該当すると判定した場合に、ユーザに前記プリンタドライバの起動を促す表示を行う表示手段と、を備える。
本発明によれば、アプリケーションにおける印刷設定の禁則の判定を高精度に行うことができる情報処理装置を提供することができる。
以下、本発明を実施するための最良の形態について図面を用いて説明する。ユースケース毎に7つの機種依存ファイルの記述方法を説明し、それぞれを第1実施形態から第7実施形態とする。第1実施形態を基本形態として説明し、第2実施形態から第7実施形態は第1実施形態との差分を説明する。
(第1実施形態)
図1は、一般的なコンピュータを用いたシステムのブロック構成図である。印刷システムは、CPU101、主記憶装置102、入力I/F103、出力I/F104、補助記憶装置105および通信I/Fを有し、これらはシステムバス107を介して接続されている。
図1は、一般的なコンピュータを用いたシステムのブロック構成図である。印刷システムは、CPU101、主記憶装置102、入力I/F103、出力I/F104、補助記憶装置105および通信I/Fを有し、これらはシステムバス107を介して接続されている。
CPU101は、主記憶装置102のROM1021あるいはRAM1022あるいは補助記憶装置105に格納されたプログラムに従って、装置全体の制御を行う。
主記憶装置102は、ROM1021およびRAM1022を備える。ROM1021は、各種プログラムを記憶している。RAM1022は、CPU101が各種処理を行う際のワークメモリであり、また、一時的に各種データを記憶する。本実施形態における各コンポーネントの処理は、すべてRAM1022に読み込んで動作する。
主記憶装置102は、ROM1021およびRAM1022を備える。ROM1021は、各種プログラムを記憶している。RAM1022は、CPU101が各種処理を行う際のワークメモリであり、また、一時的に各種データを記憶する。本実施形態における各コンポーネントの処理は、すべてRAM1022に読み込んで動作する。
補助記憶装置105は、アプリケーション1051、プリンタドライバ1052およびオペレーティングシステム(OS)1053等を記録する。アプリケーション1051は、例えば、Microsoft Word(商標登録)やMicrosoft Excel(商標登録)など、印刷設定も行うことのできるアプリケーションである。プリンタドライバ1052は、印刷機能を持つデバイスに対して、印刷指示を行うことができる。OS1053は、例えば、Windows(商標登録)などのコンピュータ全体を制御するオペレーティングシステムである。アプリケーション1051、プリンタドライバ1052およびOS1053に係るプログラムは、補助記憶装置105に記憶されており、RAM1022にロードされ、CPU101によって実行される。アプリケーション1051およびプリンタドライバ1052は、OS1053上で動作している。本実施形態におけるプリンタドライバ1052は、V4プリンタドライバである。
入力I/F103は、コンピュータに対するユーザからの指示を、キーボード1031やマウス・タッチパネルなどに代表されるポインティングデバイス1032などの入力機器を介して受け付けるインターフェースである。出力I/F104は、データを外部に出力するためのインターフェースであり、モニタ1041やプリンタ1042などの出力機器に対してデータを出力する。出力I/F104とプリンタ1042とは、直接接続されるローカルI/Oのみならず、通信I/F106およびネットワーク1061を介して接続されていてもよい。通信I/F106は、ネットワーク1061に接続され、外部装置と通信する。ネットワーク1061は、例えば、LAN(Local Area Network)などのネットワークである。
図2は、V4プリンタドライバを利用した印刷処理を説明する図である。本実施形態のプリンタドライバ1052は、Windows(登録商標)のオペレーティングシステム上で動作するversion4のプリンタドライバ(V4プリンタドライバ)である。V4プリンタドライバを利用した印刷処理では、XML Paper Specification(以下、XPSとする)と呼ばれるファイルフォーマットをスプールデータとして使用し、印刷を行う。ドライバ印刷システムは、OS1053上で動作している。
プリントマネージャ(スプーラ)318、ポートモニタ319、GDItoXPS変換モジュール307およびフィルタパイプラインマネージャ312は、OS1053に含まれるモジュールである。このうち、GDItoXPS変換モジュール307およびフィルタパイプラインマネージャ312は、プリンタドライバ1052に含まれているが、OS1053から提供されているプリンタドライバ1052専用のモジュールという位置づけである。
GDI(Graphics Device Interface)とは、プリンタの印刷イメージの生成を行うグラフィックスコンポーネントである。GDItoXPS変換モジュール307は、GDIで描画されたデータをXPSデータへ変換する機能を有する。フィルタパイプラインマネージャ312は、XPS印刷パスの特徴であるフィルタ印刷処理の管理を行うモジュールである。ポートモニタ319は、デバイスにアクセスするプリントマネージャ318とプリンタドライバ間で通信を制御することができ、プリンタドライバは、ポートモニタ319を経由して印刷処理を行う。
プリンタドライバ1052は、フィルタパイプラインマネージャ312のレイアウトフィルタ314とレンダラーフィルタ315、およびデバイスアプリ310を含む。デバイスアプリ310は、プリンタドライバ1052の情報処理装置へのインストール処理に連動して、情報処理装置にインストールされる。
アプリケーション1051は、GDI印刷アプリケーション(以下、GDIアプリ)301およびXPS印刷アプリケーション(以下、XPSアプリ)302を含む。GDIアプリ301は、OS1053が用意するGDIを使用して印刷を行うアプリケーションである。XPSアプリ302は、XPSスプールファイル306を直接使用して印刷を行うアプリケーションである。
ユーザは、キーボード1031やポインティングデバイス1032等の入力装置を使用して、出力装置のモニタ1041に映し出されたアプリケーション1051から印刷処理を指示する。このアプリケーション1051は、GDIアプリ301もしくはXPSアプリ302を指す。印刷処理は、「プリンタの選択」、「印刷設定データの作成」、「描画データの変換」という3つの処理を順番に実行されることで実現される。以下、印刷処理の流れを説明する。
まず、印刷したいプリンタ1042の選択をする。アプリケーション1051は、ユーザによるアプリケーション1051の画面を介した操作に基づいて、印刷したいプリンタ1042を選択する。ユーザから見るとプリンタ1042の選択は、印刷を実行するプリンタ1042に対応したプリンタドライバ1052を選択することと同義である。プリンタドライバ1052の選択には、例えば、不図示のプリントキューを利用する。
次に、印刷設定データを作成する。印刷設定データは、印刷処理に関する各機能の設定値等を含むデータであり、印刷処理に利用される。印刷設定データには、例えば、出力する用紙サイズの情報(例えば「A4」)、両面印刷の指定、カラーと白黒、給紙段の指定等の印刷に必要な設定値が含まれる。印刷設定データの作成の際、アプリケーション1051は、印刷設定データ用のメモリ領域をRAM1022に確保する。そして、アプリケーション1051は、プリンタドライバ1052のコンフィグモジュール308を介して、印刷設定データを作成し、作成した印刷設定データをRAM1022に確保した領域に格納する。
GDIアプリ301では、印刷設定データとしてバイナリのDEVMODE構造体303を用いる。XPSアプリ302では、印刷設定データとしてマークアップ言語のXML(eXtensive Markup Language)で記載されたプリントチケット304を用いる。DEVMODE構造体303は、OS1053が定義する標準領域とプリンタドライバ1052が独自で定義する拡張領域とを含む。プリントチケット304は、XML形式で記述された印刷設定データである。プリントチケット304では、名前空間によって標準領域と拡張領域との記載が分かれている。アプリケーション1051は、DEVMODE構造体303もしくはプリントチケット304の内容を書き換えることで印刷設定を変更する。
印刷設定データがDEVMODE構造体303で表されている場合、印刷設定データの標準領域は、仕様が外部に公開されている。そのため、GDIアプリ301は、直接、印刷設定データの標準領域の内容を変更する。印刷設定データのプリンタ1042に依存した拡張領域は、プリンタドライバ1052のみに詳細な仕様が把握されている。そのため、デバイスアプリ310は、ユーザインターフェースを介したユーザの操作に基づいて、印刷設定データの拡張領域の内容を変更する。
印刷設定データがプリントチケット304で表されている場合、設定値がXML形式で記述されているので、XPSアプリ302は、全ての設定値を直接変更することができる。しかし、印刷設定データの拡張領域は、プリンタドライバ1052ごとの独自定義であるため、プリンタ1042によって仕様が異なり、詳細な仕様まではXPSアプリ302により把握されない。そのため、デバイスアプリ310は、ユーザインターフェースを介したユーザの操作に基づいて、印刷設定データの拡張領域の設定値を変更する。
印刷設定データには機種固有の情報も含まれているので、コンフィグモジュール308は、機種依存ファイル309を利用して、印刷設定データを作成する。機種依存ファイル309は、GPD(Generic Printer Description)と呼ばれる印刷設定定義ファイルを指し、プリンタ(機種)ごとの設定に関する情報(機種依存情報)が定義されている。機種依存ファイル309は、後述の図4に示すようにテキストベースで記載されている。機種依存ファイル309には、印刷設定データに含まれる各機能の設定値と、印刷設定データに含まれる各機能の設定値の無効な組み合わせの情報、すなわち「禁則情報」を記載することができる。禁則情報に記載されている設定値の組み合わせは、設定が禁止されている無効な組み合わせである。禁則情報に記載されていない設定値の組み合わせは、許可されている組み合わせである。ユーザが印刷設定を変更することによって、機種依存ファイル309に記載された無効な組み合わせになった場合、プリンタドライバ1052は、定義された禁則に従い、優先順位が最も低い機能を使用しないように強制的に設定を変更する。このように印刷設定の無効な組み合わせが指定された際に行われる無効な組み合わせを解消するような設定の変更処理を禁則処理と呼ぶ。ここで、各機能の設定値の無効な組み合わせとは、プリンタ1042の機能として提供できないものの他に、意図的にユーザに使用してほしくない項目も含まれる。
デバイスアプリ310は、プリンタドライバ1052に含まれるが、プリンタドライバ1052とは別のプログラムとしてインストールされる。デバイスアプリ310は、DEVMODE構造体303もしくはプリントチケット304を使用して、プリンタドライバ1052と印刷設定データをやりとりする。デバイスアプリ310は、コンフリクトエンジン3101を含む。コンフリクトエンジン3101は、印刷設定データの各機能に無効な組み合わせの設定値が設定された場合、無効ではない組み合わせの設定値が設定されている印刷設定データを作成する。印刷設定データに含まれる各機能の設定値の無効な組み合わせの情報が機種依存ファイル309に記載されているので、コンフリクトエンジン3101は、ユーザインターフェースを表示する前に、機種依存ファイル309を読み込む。プリンタドライバ1052は、ユーザインターフェースを介したユーザの操作に基づいて、DEVMODE構造体303もしくはプリントチケット304で表されたプリンタ1042に依存した設定を変更する。印刷設定データは印刷処理ごとに必要となるので、印刷を実行するたびに、アプリケーション1051は、印刷設定データを作成する。
プリンタドライバ1052は、プリンタ1042のオプション機器やユーザごとの環境設定等を、OS1053のレジストリデータベース305またはプロパティバッグ317に保存する。OS1053のプリントマネージャ318は、印刷設定データのデフォルト値を、レジストリデータベース305に保存する。レジストリデータベース305およびプロパティバッグ317は、補助記憶装置105に保存される。
最後に、描画データの変換処理を行う。印刷設定データが確定したら、アプリケーション1051は、ユーザインターフェースを介したユーザの操作に基づいて、プリンタ1042に印刷処理を指示する。
アプリケーション1051は、GDIアプリ301を介して印刷処理の指示をする場合、GDItoXPS変換モジュール307に対して、描画データを送信する。GDItoXPS変換モジュール307は、XPSスプールファイル306を作成する。XPSスプールファイル306を作成する際、GDItoXPS変換モジュール307は、コンフィグモジュール308を呼び出し、印刷設定データをDEVMODE構造体303からプリントチケット304に変換する。GDItoXPS変換モジュール307は、印刷設定データの変換の際に、DEVMODE−プリントチケット変換モジュール3081を使用する。DEVMODE−プリントチケット変換モジュール3081は、プロパティバッグ317の情報を読み書きできるので、デバイスアプリ310が保存したデータを参照して、印刷設定データを変換することもできる。
アプリケーション1051は、XPSアプリ302を介して印刷処理の指示をする場合、XPSスプールファイル306の生成方法には二通りある。一つは、XPSアプリ302自らが、XPSスプールファイル306を生成する方法である。もう一つは、OS1053が、XPSアプリ302からの描画命令に応じてXPSスプールファイル306を生成する方法である。
アプリケーション1051がGDIアプリ301を介して印刷処理の指示をする場合、XPSアプリ302を介して印刷処理の指示をする場合、どちらの場合であっても、XPSスプールファイル306は、印刷処理の途中で生成される。このように、V4プリンタドライバであるプリンタドライバ1052を用いた印刷処理では、印刷の際に必ず描画データに基づくXPSスプールファイル306が生成される点が特徴である。
印刷処理は、XPSスプールファイル306がプリントフィルタパイプライン311内のフィルタに受け渡されることで行われ、それぞれのフィルタがXPSスプールファイル306に加工処理を施し、後続のフィルタに渡していくことで処理が進む。最終的に、XPSスプールファイル306は、プリントフィルタパイプライン311の各フィルタ処理により印刷ジョブに変換され、プリンタ1042に送信される。プリンタ1042は、印刷ジョブを解釈可能であり、送信された印刷ジョブを解釈することで印刷ジョブに基づく印刷処理を実行する。
プリントフィルタパイプライン311は、生成されたXPSスプールファイル306を取得し、複数のフィルタの処理を実行する。本実施形態においてプリントフィルタパイプライン311は、レイアウトフィルタ314およびレンダラーフィルタ315の処理を行う。なお、プリントフィルタパイプライン311に含まれるフィルタは、プリンタドライバ1052の構成によって、数や種類が異なる。例えば、プリントフィルタパイプライン311は、レイアウトフィルタ314、レンダラーフィルタ315の2つのフィルタに加えて、更に、印刷ジョブを暗号化するための暗号化フィルタ等を含んでいてもよい。プリントフィルタパイプライン311内のそれぞれのフィルタは、独自のデータをプロパティバッグ317に保存することができる。また、プリントフィルタパイプライン311内のそれぞれのフィルタは、プロパティバッグ317から、OS1053の情報や、他のフィルタのデータを取得することもできる。
フィルタコンフィギュレーションファイル316は、プリントフィルタパイプライン311の含むフィルタの数や処理を行うフィルタの順番を制御する。フィルタパイプラインマネージャ312は、フィルタコンフィギュレーションファイル316に従って、レイアウトフィルタ314、レンダラーフィルタ315の順に、それぞれのフィルタに処理を実行させる。
レイアウトフィルタ314は、倍率の変更や製本の面付けレイアウト、スタンプなどレイアウトに関する処理を行う。レンダラーフィルタ315は、入力されたXPSスプールファイル306をレンダリングしてページ記述言語(以下、PDL(Page Description Language)とする)に変換する。また、レンダラーフィルタ315は、プリントチケット304の印刷設定データの標準領域の設定を、プリンタジョブ言語(以下、PJL(Printer Job Language)とする)に変換する。レンダラーフィルタ315は、後続のフィルタが存在する場合、PDLとPJLとをまとめて印刷ジョブとして、後続のフィルタにストリームデータとして渡す。レンダラーフィルタ315は、後続のフィルタが存在しない場合、変換したPDLとPJLとをまとめて印刷ジョブとして、フィルタパイプラインマネージャ312に渡す。
フィルタパイプラインマネージャ312は、渡された印刷ジョブを、印刷処理のスケジュール管理を行うプリントマネージャ318に送信する。プリントマネージャ318は、送信された印刷ジョブを次々とキュー(待ち行列)に登録する。プリントマネージャ318は、プリンタ1042と通信して、プリンタ1042が印刷できる状態になり次第、ポートモニタ319を介して、印刷ジョブをキューに登録した順にプリンタ1042に送信する。
以上のように、プリンタドライバ1052の主な役目は、描画データ及び印刷設定データを印刷ジョブに変換することである。情報処理装置は、プリンタドライバ1052により変換された印刷ジョブをプリンタ1042に送信することで、プリンタ1042に対して印刷処理の指示を行う。
なお、本実施形態では、印刷処理を例としているため、プリンタドライバの処理について説明したが、本実施形態の処理は、FAX送信処理の際にも適用することができる。その場合、プリンタドライバ1052は、レンダラーフィルタ315の代わりにFAXデータを作成するFAXフィルタを含み、FAX機器に送信するFAXドライバとなる。
図3は、印刷設定処理のフローチャートである。印刷設定処理に係るアプリケーション1051とデバイスアプリ310のプログラムは、補助記憶装置105に記憶されており、RAM1022に読み出されCPU101によって実行される。また、本実施形態において、アプリケーション1051はGDIアプリ301の一つである、Microsoft Word(商標登録)を例に説明する。
まず、S1101で、アプリケーション1051は、ユーザの操作により印刷設定画面をモニタ1041に表示し、印刷設定処理を開始する。
S1102で、アプリケーション1051は、印刷設定画面におけるユーザの入力を受け付ける。ユーザが印刷設定画面において印刷設定を変更した場合は、再びS1102に戻る。ユーザが印刷設定画面においてデバイスアプリ310を起動した場合は、S1107に進む。ユーザが印刷設定画面において印刷実行を指示した場合、S1103に進む。
S1102で、アプリケーション1051は、印刷設定画面におけるユーザの入力を受け付ける。ユーザが印刷設定画面において印刷設定を変更した場合は、再びS1102に戻る。ユーザが印刷設定画面においてデバイスアプリ310を起動した場合は、S1107に進む。ユーザが印刷設定画面において印刷実行を指示した場合、S1103に進む。
S1103で、アプリケーション1051は、印刷設定が不整合であるか否かを判定する。本実施形態において、印刷設定が不整合であるか否かは、印刷設定が禁則情報に該当するか否かで判定される。印刷設定が機種依存ファイル309に記載の禁則情報に該当する場合は、印刷設定が不整合であると判定され、S1104に進む。一方、現在の印刷設定が不整合ではないと判断した場合、S1106に進み、アプリケーション1051の印刷設定処理は終了する。
なお、詳しくは後述するが、アプリケーション1051が判定を行える禁則情報は、機種依存ファイル309に記載の禁則情報のうち、アプリケーション1051が解釈可能な特定の禁則条件を含む禁則情報に限られている。そのため、特定の禁則条件を含む禁則情報に対応する印刷設定が不整合となっていない場合は、印刷設定がプリンタ1042の禁則に該当する状態となっていたとしても、アプリケーション1051は印刷設定が不整合な状態になっていることを判断できない。すなわち、現在設定されている印刷設定が機種依存ファイル309に定義されている禁則情報に合致する場合でも、S1103にて不整合な印刷設定と判断できず、デバイスアプリ310が起動されず禁則処理が行われない場合があった。そこで、本実施形態では、アプリケーション1051が解釈できなかった禁則情報を解釈できる記載に変更し、S1103にて不整合な印刷設定として判断できるようにする。S1103にて不整合な印刷設定と判断されることで、デバイスアプリ310で禁則処理を行うことができるようになる。
S1104で、アプリケーション1051は、エラー画面をモニタ1041に表示する。エラー画面には、例えば、現在の印刷設定が競合エラーであることを示すメッセージとデバイスアプリ310の起動を促すメッセージとをモニタ1041に表示する。
S1105で、アプリケーション1051は、エラー画面におけるユーザの入力を受け付ける。ユーザがデバイスアプリ310を起動した場合は、S1107に進む。一方、ユーザがデバイスアプリ310を起動せず、不整合な印刷設定のまま印刷を実行することを選択した場合は、アプリケーション1051の印刷設定処理は終了する。
S1105で、アプリケーション1051は、エラー画面におけるユーザの入力を受け付ける。ユーザがデバイスアプリ310を起動した場合は、S1107に進む。一方、ユーザがデバイスアプリ310を起動せず、不整合な印刷設定のまま印刷を実行することを選択した場合は、アプリケーション1051の印刷設定処理は終了する。
アプリケーション1051でユーザによりデバイスアプリ310の起動が指示されると、印刷設定処理はアプリケーション1051からデバイスアプリ310に移行する。S1107で、デバイスアプリ310は、印刷設定処理を開始する。
S1108で、デバイスアプリ310は、印刷設定の禁則処理を行う。禁則処理を行うことにより、不整合な印刷設定に設定されていた場合でも、不整合のない印刷設定に変更することができる。
S1108で、デバイスアプリ310は、印刷設定の禁則処理を行う。禁則処理を行うことにより、不整合な印刷設定に設定されていた場合でも、不整合のない印刷設定に変更することができる。
S1109で、デバイスアプリ310は、ユーザの入力を受け付ける。ユーザが印刷設定を変更した場合は、S1108に戻り、再び禁則処理が行われる。一方、ユーザが印刷設定を変更せずに印刷設定を終了した場合は、S1110に進む。
S1110で、デバイスアプリ310は、デバイスアプリ310の印刷設定処理を終了し、アプリケーション1051の印刷設定処理へ移行する。
S1110で、デバイスアプリ310は、デバイスアプリ310の印刷設定処理を終了し、アプリケーション1051の印刷設定処理へ移行する。
図4および図5は、機種依存ファイル309の一例を示す図である。機種依存ファイル309の1つであるGPDの例を示す。機種依存ファイル309は、印刷設定データに含まれる機能(Feature)の定義と禁則情報とを含む。図4および図5の機種依存ファイル309では、機能451(Duplex)に両面印刷の機能が定義されている。また、機能411(FunctionA)、機能421(FunctionB)にそれぞれ、機能A、機能Bの機能が適宜されている。さらに、機能431(Collate)に部単位の機能が、機能441(Binding)に製本印刷の機能が定義されている。
機種依存ファイル309に定義されている各機能には、それぞれ設定値候補(オプション、Option)が定義されており、設定値候補の中からいずれか1つが選択されることで、印刷設定データ内のその機能の設定値が決定される。例えば、機能451(Duplex)には両面印刷印刷のオプションとして、3つのオプションが定義されている。この3つのオプションは、両面印刷を行わないオプション453(NONE)、長辺綴じでの両面印刷を行うオプション454(VERTICAL)、短編綴じでの両面印刷を行うオプション(HORIZONTAL)である。
機種依存ファイル309の各機能には、初期状態で設定される設定値候補(デフォルト値、DefaultOption)を定義することも可能である。情報処理装置が機種依存ファイル309を読み込んだ後、何の操作も行っていない状態では、印刷設定データ内の各機能の設定値は、デフォルト値となる。機能451(Duplex)にはデフォルト値として、長辺綴じでの両面印刷を行うオプション454(VERTICAL)が定義されている。
機種依存ファイル309に定義されている各機能には、優先順位(ConflictPriority)が設定されている。機能の優先順位は、数値の小さいものほど高く、数値が大きいものほど低い。機能451(Duplex)には優先順位の数値として「6000」が設定されている。また、機能421(FunctionB)には優先順位の数値として「21000」が設定されており、機能451(Duplex)と機能421(FunctionB)が競合した場合には、数値の小さい機能451(Duplex)の方が優先される。
機種依存ファイル309には、機能の定義に加え、禁則情報が定義されている。禁則情報は、機能と設定値候補との組(例えばDuplexとVERTICALとの組)を複数含むリストとして機種依存ファイル309内に定義されている。図5に示される機種依存ファイル309には、禁則情報401〜禁則情報403が定義されている。禁則情報401には、機能431のオプション434と、機能411のオプション414が無効な組み合わせとして定義されている。禁則情報402には、機能451のオプション454と、機能421のオプション424が無効な組み合わせとして定義されている。禁則情報403には、機能451のオプション455と、機能421のオプション424が無効な組み合わせとして定義されている。
印刷設定データの機能の設定値の組み合わせが、禁則情報に記載された組み合わせと同一であった場合、その組み合わせは、無効な組み合せである。以後、禁則情報に含まれる機能と設定値候補との組(例えば、Duplex.VERTICAL)を禁則条件と呼ぶ。印刷設定データの各機能に設定された設定値の組み合わせが、禁則情報に記載された無効な組み合わせであった場合、デバイスアプリ310は、優先順位が低い機能の設定値を他のデフォルト値の設定値に変更する処理を行う。例えば、印刷設定データに、禁則情報402に記載されている機能451のオプション454と機能421のオプション424が設定されていた場合、デバイスアプリ310は、優先順位が低い機能421のオプションをデフォルト値に変更する。
アプリケーション1051は、S1103で印刷設定が不整合か否かを判定する。この際、アプリケーション1051は、特定の禁則条件が禁則情報に含まれている場合に、印刷設定が不整合であると判定する。これは、アプリケーション1051の例であるMicrosoft Word(商標登録)では、「特定の禁則条件が禁則情報に含まれていること」によって、アプリケーション1051側で禁則情報の解釈が可能となるからである。特定の禁則条件には、例えば、「Duplex.VERTICAL」や「Duplex.HORIZONTAL」が該当する。そのため、禁則情報に特定の禁則条件が含まれている禁則情報402および禁則情報403はアプリケーション1051側で解釈可能あり、アプリケーション1051は、禁則情報と印刷設定が合致した場合は不整合な印刷設定と判断する。一方、禁則情報に特定の禁則条件が含まれていない禁則情報401はアプリケーション1051側で解釈できないため、アプリケーション1051は、禁則情報と印刷設定が合致した場合でも不整合な印刷設定と判断できない。そこで、本実施形態では、特定の禁則条件が含まれていない禁則情報であっても、アプリケーション1051で不整合な印刷設定と判断できるようにする。
禁則情報401をアプリケーション1051に解釈させるための方法について、図6(A)を用いて説明する。図6(A)は、第1実施形態を説明するための禁則情報の一例である。なお、第1実施形態の機種依存ファイル309は、図5の機種依存ファイル309の禁則情報401を、図6(A)に置き換えたファイルとなる。
まず、禁則情報401をアプリケーション1051で解釈可能にするために、禁則情報401の禁則条件の組み合わせに特定の禁則条件を追加する。禁則情報401に特定の禁則条件を追加したのが、禁則情報502および禁則情報503である。禁則情報502には、「Duplex.VERTICAL」が追加され、禁則情報503には、「Duplex.HORIZONTAL」が追加されている。禁則情報502および禁則情報503には、禁則情報をアプリケーション1051で解釈させるための特定の禁則条件が含まれている。そのため、禁則情報502もしくは禁則情報503に合致する印刷設定となった時、アプリケーション1051側で不整合な印刷設定と判断することが可能である。
次に、追加した禁則条件がプリンタドライバ1052の禁則処理に影響を与えるかをチェックする。禁則情報401を禁則情報502および禁則情報503に置き換えた場合、元の禁則情報と意味が異なっている。禁則情報401では、機能451のオプションによらず、機能431のオプション434と機能411のオプション414は常に無効な組み合わせであった。しかし、禁則情報401を禁則情報502および禁則情報503に置き換えた場合は、機能451のオプション453(Duplex.NONE)が設定されてても、機能431のオプション434と機能411のオプション414が無効な組み合わせとならない。
そこで、禁則情報401の置き換えがプリンタドライバ1052の禁則処理に影響を与えないようにするために、元の禁則情報401と全く同じ禁則情報を機種依存ファイル309に禁則情報501として追加する。したがって、禁則情報401は禁則情報501〜503に置き換えられる。禁則情報502および禁則情報503は、禁則情報501に記述されている禁則条件を全て含んでおり、禁則情報502または禁則情報503に合致する印刷設定の場合、必ず禁則情報501にも合致する。禁則情報502または禁則情報503に合致する印刷設定の場合、禁則条件の少ない禁則情報501が動作する仕様となっており、禁則情報502または禁則情報503は無効な禁則情報として扱われる。以下、禁則情報502および禁則情報503のように、他の禁則情報の存在により、意味を持たなくなってしまう禁則情報のことを包含された禁則と呼ぶ。
禁則情報502や禁則情報503のような包含された禁則は、禁則処理において意味を持たないが、アプリケーション1051において、印刷設定が禁則状態にあるかどうか判断する場合に使用される。元の禁則情報401を禁則情報501〜503に置き換えることで、元の禁則情報401から禁則情報の意味を変えずに、禁則情報502および禁則情報503をアプリケーション1051に解釈させることができる。そのため、S1103にて、図4および図5の記載では不整合と判断されない印刷設定が、図6(A)のように記載することで不整合と判断されるようになる。これにより、デバイスアプリ310の起動を促すことができ、デバイスアプリ310にて禁則処理を行うことができる。また、デバイスアプリ310が行う禁則処理も従来と全く同じ処理を行うことができる。
本実施形態では、アプリケーション1051の例として、Microsoft Word(商標登録)を挙げたが、これに限られるものではなく、機種依存ファイル309の禁則情報を解釈できるアプリケーションであればよい。また、本実施形態では、特定の禁則条件の例として、「Duplex.VERTICAL」および「Duplex.HORIZONTAL」を例に挙げたが、これに限られるものではなく、アプリケーション1051で解釈できる禁則条件であればよい。また、禁則情報の定義方法はMicrosoft(商標登録)が定義した記述方法がいくつか存在する。本実施形態では行頭に「*InvalidCombination」を記述する形式で禁則情報を定義しているが、その他の定義方法(例えば、行頭に「*Constraints」を記述する形式)でもよい。
以上説明したように、本実施形態によると、アプリケーション1051で解釈できない禁則情報に、アプリケーション1051で解釈可能な特定の禁則条件を追加することで、アプリケーション1051側で印刷設定の禁則をより高精度に判定することができる。
(第2実施形態)
第1実施形態では、他の禁則に包含された禁則情報(禁則情報502および禁則情報503)が機種依存ファイル309に追加されてしまう。機種依存ファイル309の記載はベンダーに依存するが、ベンダーによっては他の禁則に包含される禁則情報の記載を許していない可能性がある。他の禁則に包含される禁則情報の記載が許されない場合、第1実施形態が適用できない場合がある。そのため、本実施形態では、第1実施形態とは異なる、禁則情報401をアプリケーション1051に解釈させるための方法を、図6(B)を用いて説明する。図6(B)は、第2実施形態を説明するための禁則情報の一例である。なお、第2実施形態の機種依存ファイル309は、図5の機種依存ファイル309の禁則情報401を、図6(B)に置き換えたファイルとなる。
第1実施形態では、他の禁則に包含された禁則情報(禁則情報502および禁則情報503)が機種依存ファイル309に追加されてしまう。機種依存ファイル309の記載はベンダーに依存するが、ベンダーによっては他の禁則に包含される禁則情報の記載を許していない可能性がある。他の禁則に包含される禁則情報の記載が許されない場合、第1実施形態が適用できない場合がある。そのため、本実施形態では、第1実施形態とは異なる、禁則情報401をアプリケーション1051に解釈させるための方法を、図6(B)を用いて説明する。図6(B)は、第2実施形態を説明するための禁則情報の一例である。なお、第2実施形態の機種依存ファイル309は、図5の機種依存ファイル309の禁則情報401を、図6(B)に置き換えたファイルとなる。
本実施形態では、禁則情報601〜603のように、特定の禁則条件に該当する機能の全オプションを禁則条件に追加する。具体的には、禁則情報401に、特定の禁則条件「Duplex.VERTICAL」に該当する機能451(Duplex)の全オプションを追加している。オプション453(None)を追加したものが禁則情報601、オプション454(VERTICAL)を追加したものが禁則情報602、オプション455(HORIZONTAL)を追加したものが禁則情報603である。
このように、機能の全オプションが禁則条件に追加されている場合、該当機能の設定値によらず、残りの禁則条件が現在の印刷設定に合致しているかで、現在の印刷設定が無効な組み合わせかどうか決まる。つまり、禁則情報601〜603は元の禁則情報401と同じ意味となる。そのため、本実施形態においても、元の禁則情報401から禁則情報の意味を変えずに、禁則情報602および禁則情報603をアプリケーション1051に解釈させることができる。
以上説明したように、本実施形態では、アプリケーション1051で解釈できない禁則情報に、アプリケーション1051で解釈可能な特定の禁則条件の印刷機能のすべての設定値をそれぞれ追加する。そのため、アプリケーション1051側で印刷設定の禁則をより高精度に判定することができる。
(第3実施形態)
本実施形態では、アプリケーション1051が解釈可能な禁則条件を加えるための他の機種依存ファイル309について図6(C)および図6(D)を用いて説明する。図6(C)および図6(D)は、第3実施形態を説明するための禁則情報の一例である。
まず、図6(C)に示される禁則情報901、禁則情報902が機種依存ファイル309に記述されているとする。禁則情報901には、機能441のオプション444と、機能451のオプション453が無効な組み合わせとして定義されている。禁則情報902には、機能441のオプション444と、機能411のオプション414が無効な組み合わせとして定義されている。
本実施形態では、アプリケーション1051が解釈可能な禁則条件を加えるための他の機種依存ファイル309について図6(C)および図6(D)を用いて説明する。図6(C)および図6(D)は、第3実施形態を説明するための禁則情報の一例である。
まず、図6(C)に示される禁則情報901、禁則情報902が機種依存ファイル309に記述されているとする。禁則情報901には、機能441のオプション444と、機能451のオプション453が無効な組み合わせとして定義されている。禁則情報902には、機能441のオプション444と、機能411のオプション414が無効な組み合わせとして定義されている。
禁則情報901は、機能441がオプション444の場合には、機能451はオプション454またはオプション455になることと同義である。したがって、禁則情報902は、機能441のオプション444と、機能411のオプション414と、機能451のオプション454またはオプション455の組み合わせに置き換えることができる。禁則情報902をこのように置き換えたものが、図6(D)の禁則情報1002および禁則情報1003であり、図6(C)の禁則情報を置き換えたものが図6(D)の禁則情報である。図6(D)の禁則情報1002および禁則情報1003は、アプリケーション1051が解釈可能な条件を含んでいるため、アプリケーション1051側で禁則処理が可能である。このように、本実施形態では、禁則情報901に基づいて禁則情報902を限定してアプリケーション1051で解釈可能な条件に置き換えることで、アプリケーション1051側で禁則処理を可能にすることができる。
以上説明したように、本実施形態では、アプリケーション1051で解釈できない禁則情報に、アプリケーション1051で解釈可能な特定の禁則条件のすべてをそれぞれ追加する。そのため、アプリケーション1051側で印刷設定の禁則をより高精度に判定することができる。
(第4実施形態)
第1実施形態から第3実施形態は、デバイスアプリ310でコンフリクトエンジン3101を通して機種依存ファイル309の禁則情報を解釈していた。しかしながら、プリンタドライバによっては、機種依存ファイル309の禁則情報を使用せずに、デバイスアプリ310側で独自に禁則情報を持っている場合もある。本実施形態では、デバイスアプリ310が独自に持つ禁則情報で禁則処理を行うケースについて図6(E)を用いて説明する。図5(E)は、第3実施形態を説明するための禁則情報の一例である。なお、第3実施形態の機種依存ファイル309は、図5の機種依存ファイル309の禁則情報401を、図6(E)に置き換えたファイルとなる。
第1実施形態から第3実施形態は、デバイスアプリ310でコンフリクトエンジン3101を通して機種依存ファイル309の禁則情報を解釈していた。しかしながら、プリンタドライバによっては、機種依存ファイル309の禁則情報を使用せずに、デバイスアプリ310側で独自に禁則情報を持っている場合もある。本実施形態では、デバイスアプリ310が独自に持つ禁則情報で禁則処理を行うケースについて図6(E)を用いて説明する。図5(E)は、第3実施形態を説明するための禁則情報の一例である。なお、第3実施形態の機種依存ファイル309は、図5の機種依存ファイル309の禁則情報401を、図6(E)に置き換えたファイルとなる。
本実施形態では機種依存ファイル309の禁則情報はデバイスアプリ310側で使用されていないため、機種依存ファイル309の禁則情報をアプリケーション1051に禁則処理を行ってもらう目的でのみ記述することができる。第1実施形態から第3実施形態では、元の禁則情報から意味を変えないように禁則条件を追加する必要があったが、本実施形態の場合は、元の禁則の意味を考慮する必要がなく、アプリケーション1051側で解釈できる禁則情報のみを記載すればよい。そのため、禁則情報401を、アプリケーション1051が解釈できる特定の禁則条件を含む禁則情報701および禁則情報702に置き換えるだけでよい。
(第5実施形態)
第1実施形態から第4実施形態は、「特定の禁則条件に該当する機能」をプリンタドライバ1052がサポートしている前提の実施形態であった。しかしながら、「特定の禁則条件に該当する機能」をプリンタドライバ1052がサポートしていない場合もある。本実施形態では、「特定の禁則条件に該当する機能」をプリンタドライバ1052がサポートしていない場合における機種依存ファイル309について説明する。
第1実施形態から第4実施形態は、「特定の禁則条件に該当する機能」をプリンタドライバ1052がサポートしている前提の実施形態であった。しかしながら、「特定の禁則条件に該当する機能」をプリンタドライバ1052がサポートしていない場合もある。本実施形態では、「特定の禁則条件に該当する機能」をプリンタドライバ1052がサポートしていない場合における機種依存ファイル309について説明する。
本実施形態における、アプリケーション1051が解釈できるが、プリンタドライバ1052がサポートしていない特定の禁則条件を「FunctionC.On」とする。また、「FunctionC.On」以外の禁則条件(例えば、FunctionC.Off等)は特定の禁則条件に該当しないこととする。アプリケーション1051に解釈させたい禁則情報を図5の禁則情報401とすると、禁則情報401は図7(A)禁則情報1404に置き換えられ、さらに、機種依存ファイル309には機能1401が追加される。
図7(A)は、本実施形態の機種依存ファイル309の一部を示す図である。まず、禁則情報401をアプリケーション1051に解釈させるための条件となる禁則判定用の機能1401を機種依存ファイル309に定義する。機能1401のサポートするオプション1403は、アプリケーション1051が解釈可能な特定の禁則条件に合致するオプションのみサポートする。したがって、機能1401は、1つのオプション(設定値)のみを有する。また、機能1401は禁則情報をアプリケーション1051に解釈させるためのみに使用するため、禁則処理時にオプションの変更の対象になるべきではない。そのため、機能1401の優先度1402は他の機能に比べて高くなるよう、ConflictPriorityに他の機能に比べ小さい値を設定する。
禁則情報をアプリケーション1051が解釈できるように、機能1401のオプション1403を禁則情報401の組み合わせに追加して、禁則情報1404とする。アプリケーション1051が解釈可能な特定の禁則条件を機種依存ファイル309に記述することで、プリンタドライバ1052が「特定の禁則条件に該当する機能」をサポートしていない場合でも、アプリケーション1051で禁則情報を確認することができる。なお、本実施形態では機能1401はアプリケーション1051に禁則情報を解釈させる目的のみで存在しているため、デバイスアプリ310は機能1401をUIに表示しない方がよい。
(第6実施形態)
第5実施形態の機種依存ファイル309の一部を示す図7(A)を図7(B)に置き換えたものを第6実施形態とする。本実施形態では、禁則情報をアプリケーション1051に解釈させるための機能をユーザに公開し、ユーザが該機能の設定値を切り替えることで、アプリケーション1051側で禁則処理を行うかどうかを選択できるようにする方法を説明する。なお、本実施形態は第5実施形態との差分について説明し、特に説明がない部分においては第5実施形態と同様とする。
第5実施形態の機種依存ファイル309の一部を示す図7(A)を図7(B)に置き換えたものを第6実施形態とする。本実施形態では、禁則情報をアプリケーション1051に解釈させるための機能をユーザに公開し、ユーザが該機能の設定値を切り替えることで、アプリケーション1051側で禁則処理を行うかどうかを選択できるようにする方法を説明する。なお、本実施形態は第5実施形態との差分について説明し、特に説明がない部分においては第5実施形態と同様とする。
まず、禁則情報401をアプリケーション1051に解釈させるための条件となる禁則判定用の機能1501を機種依存ファイル309に定義する。機能1501のオプションは、アプリケーション1051側で解釈可能なオプション1503とアプリケーション1051側で解釈不可能なオプション1504の両方をサポートする。本実施形態では機能1501をユーザに公開し、ユーザは機能1501の2つのオプションをデバイスアプリ310から切り替えることで、アプリケーション1051側で禁則処理を行うか、行わないかを選択することができる。すなわち、アプリケーション1051側で禁則処理を行う場合には、アプリケーション1051側で解釈可能なオプション1503を選択する。一方、アプリケーション1051側で禁則処理を行わない場合は、アプリケーション1051側で解釈できないオプション1504を選択する。
禁則情報1505および禁則情報1506は、機能1501のオプションが異なる以外は同じ禁則情報である。また、禁則情報1505と禁則情報1506を合わせると、機能1501の全てのオプションを網羅している。そのため、禁則情報1505と禁則情報1506は元の禁則情報401と同じ意味となる。この考え方は、第2実施形態で説明したものと同じである。そのため、デバイスアプリ310における禁則処理は、本実施形態の適用前と適用後で挙動が一切変わらない。
一方、アプリケーション1051は、禁則情報1506を解釈することができないため、印刷設定が禁則情報1505に合致した時のみ禁則状態と判断し、禁則処理を行う。これは、機能1501がオプション1503の時はアプリケーション1051側の禁則処理が行われ、機能1501がオプション1504の時はアプリケーション1051で禁則処理が行われないことを意味する。本実施形態によれば、ユーザはデバイスアプリ310の禁則処理に影響を与えることなく、デバイスアプリ310から機能1501の設定を変更し、アプリケーション1051側で禁則情報を解釈するかどうかを選択することができる。
一方、アプリケーション1051は、禁則情報1506を解釈することができないため、印刷設定が禁則情報1505に合致した時のみ禁則状態と判断し、禁則処理を行う。これは、機能1501がオプション1503の時はアプリケーション1051側の禁則処理が行われ、機能1501がオプション1504の時はアプリケーション1051で禁則処理が行われないことを意味する。本実施形態によれば、ユーザはデバイスアプリ310の禁則処理に影響を与えることなく、デバイスアプリ310から機能1501の設定を変更し、アプリケーション1051側で禁則情報を解釈するかどうかを選択することができる。
(第7実施形態)
機種依存ファイル309の禁則情報は、項目数が多くなりすぎると、プリンタドライバ1052がインストールできなくなる現象が判明している。そのため、機種依存ファイル309の禁則情報は不必要に増やすべきではない。また、機種依存ファイル309は「*Define」や「*Ifdef」等のプリプロセッサ指示文を使用することで、アプリケーション1051に読み込ませる記述を制限することができる。本実施形態では、プリプロセッサ指示文を使用することで、アプリケーション1051に読み込ませる禁則情報を減らす。第1実施形態の禁則情報の例を表す図6(A)を、図8に置き換えたものを第7実施形態とする。なお、本実施形態のように記述してアプリケーション1051に読み込ませる禁則情報を減らすことは、第1実施形態から第6実施形態のいずれにも適用することができる。また、本実施形態の説明で用いるプリプロセッサ指示文の使い方は、C言語等の一般的なプログラミング言語の使い方と同様である。
機種依存ファイル309の禁則情報は、項目数が多くなりすぎると、プリンタドライバ1052がインストールできなくなる現象が判明している。そのため、機種依存ファイル309の禁則情報は不必要に増やすべきではない。また、機種依存ファイル309は「*Define」や「*Ifdef」等のプリプロセッサ指示文を使用することで、アプリケーション1051に読み込ませる記述を制限することができる。本実施形態では、プリプロセッサ指示文を使用することで、アプリケーション1051に読み込ませる禁則情報を減らす。第1実施形態の禁則情報の例を表す図6(A)を、図8に置き換えたものを第7実施形態とする。なお、本実施形態のように記述してアプリケーション1051に読み込ませる禁則情報を減らすことは、第1実施形態から第6実施形態のいずれにも適用することができる。また、本実施形態の説明で用いるプリプロセッサ指示文の使い方は、C言語等の一般的なプログラミング言語の使い方と同様である。
機種依存ファイル309は「*Define」によって、任意の文字列をシンボルとして定義することができるが、本実施形態では、「*Define」によるシンボル定義は行っていない。そのため、*Ifdef行811に記述されている文字列「PRINTEREXTENSION」はシンボルとして定義されていない。そのため、*Ifdef行811と*Else行821の間にある禁則情報801は、アプリケーション1051には解釈されない。一方、*Else行821と*Endif行831の間にある、禁則情報802および禁則情報803は、アプリケーション1051に解釈される。このように、アプリケーション1051が解釈できる禁則情報と、解釈できない禁則情報を分けて記述し、解釈できない禁則情報をアプリケーション1051に公開しないため、アプリケーション1051に読み込ませる禁則情報の項目数を削減することができる。
また、デバイスアプリ310側から見ると、禁則情報802および禁則情報803は不要な情報である。デバイスアプリ310側では機種依存ファイル309を自由に解釈することができるため、図8のように記述することで、デバイスアプリ310は、プリプロセッサ指示文の情報を元に禁則情報801のみ適用することもできる。このように本実施形態では、アプリケーション1051やプリンタドライバ1052に解釈させる禁則情報を減らしつつ、第1実施形態と同様の禁則処理を行うことができる。また、本実施形態では、プリプロセッサ指示文による記述の例を説明したが、これに限られるものではない。例えば、アプリケーション1051で解釈する必要のない禁則情報をコメントアウトし、プリンタドライバ1052側でコメントアウトされた禁則情報を解釈対象とするようにしてもよい。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
以上、本発明の好ましい実施形態について説明したが、本発明は、これらの実施形態に限定されず、その要旨の範囲内で種々の変形および変更が可能である。
Claims (12)
- 印刷設定を行うアプリケーションとプリンタドライバを有する情報処理装置であって、
印刷機能に関する設定値と、同時に設定することが禁止されている印刷機能の設定値の組み合わせを示す第1の禁則情報と、前記第1の禁則情報に対応する前記アプリケーションで解釈可能な特定の禁則条件を含む第2の禁則情報とを含む機種依存情報を管理する管理手段と、
印刷設定が、前記アプリケーションで解釈可能な特定の禁則条件を含む前記第1の禁則情報もしくは前記第2の禁則情報に該当するか否かを判定する第1の判定手段と、
前記第1の判定手段が該当すると判定した場合に、ユーザに前記プリンタドライバの起動を促す表示を行う表示手段と、を備える
ことを特徴とする情報処理装置。 - 前記第2の禁則情報は、前記第1の禁則情報のうち、前記アプリケーションで解釈できない禁則情報に、前記アプリケーションで解釈可能な特定の禁則条件を追加した禁則情報である
ことを特徴とする請求項1に記載の情報処理装置。 - 前記第2の禁則情報は、前記第1の禁則情報のうち、前記アプリケーションで解釈できない禁則情報に、前記アプリケーションで解釈可能な特定の禁則条件の印刷機能のすべての設定値をそれぞれ追加した禁則情報である
ことを特徴とする請求項1に記載の情報処理装置。 - 前記第2の禁則情報は、前記第1の禁則情報のうち、前記アプリケーションで解釈できない禁則情報に、前記アプリケーションで解釈可能な特定の禁則条件のすべてをそれぞれ追加した禁則情報である
ことを特徴とする請求項1に記載の情報処理装置。 - 前記機種依存情報は、前記アプリケーションで解釈可能な設定値を含む優先度が最も高く設定された禁則判定用の印刷機能を含み、
前記第2の禁則情報は、前記第1の禁則情報のうち、前記アプリケーションで解釈できない禁則情報に、前記禁則判定用の印刷機能とその設定値の組み合わせである禁則条件を追加した禁則情報である
ことを特徴とする請求項1に記載の情報処理装置。 - 前記禁則判定用の印刷機能の設定値は、前記アプリケーションで解釈可能な1つの設定値である
ことを特徴とする請求項5に記載の情報処理装置。 - 前記禁則判定用の印刷機能の設定値は、前記アプリケーションで解釈可能な設定値と前記アプリケーションで解釈できない設定値とを含む
ことを特徴とする請求項5に記載の情報処理装置。 - 前記禁則判定用の印刷機能の設定値は、前記アプリケーションから変更が可能な公開されている設定値である
ことを特徴とする請求項7に記載の情報処理装置。 - 前記プリンタドライバは、
前記印刷設定が前記第1の禁則情報に該当するか否かを判定する第2の判定手段と、
前記印刷設定が前記第1の禁則情報に該当する場合に、禁則処理を行う禁則処理手段と、をさらに備える
ことを特徴とする請求項1乃至8のいずれか1項に記載の情報処理装置。 - 前記プリンタドライバは、Windows(登録商標)のオペレーティングシステム上で動作するversion4のプリンタドライバである
ことを特徴とする請求項1乃至9のいずれか1項に記載の情報処理装置。 - 印刷設定を行うアプリケーションとプリンタドライバを有する情報処理装置の制御方法であって、
印刷機能に関する設定値と、同時に設定することが禁止されている印刷機能の設定値の組み合わせを示す第1の禁則情報と、前記第1の禁則情報に対応する前記アプリケーションで解釈可能な特定の禁則条件を含む第2の禁則情報とを含む機種依存情報を管理する管理工程と、
印刷設定が、前記アプリケーションで解釈可能な特定の禁則条件を含む前記第1の禁則情報もしくは前記第2の禁則情報に該当するか否かを判定する判定工程と、
前記判定工程において該当すると判定された場合に、ユーザに前記プリンタドライバの起動を促す表示を行う表示工程と、を有する
ことを特徴とする制御方法。 - 請求項1乃至10のいずれか1項に記載の情報処理装置の各手段としてコンピュータを機能させることを特徴とするプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018028020A JP2019144814A (ja) | 2018-02-20 | 2018-02-20 | 情報処理装置、情報処理装置の制御方法およびプログラム |
US16/272,154 US20190258436A1 (en) | 2018-02-20 | 2019-02-11 | Information processing apparatus, control method of information processing apparatus, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018028020A JP2019144814A (ja) | 2018-02-20 | 2018-02-20 | 情報処理装置、情報処理装置の制御方法およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2019144814A true JP2019144814A (ja) | 2019-08-29 |
Family
ID=67617817
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018028020A Pending JP2019144814A (ja) | 2018-02-20 | 2018-02-20 | 情報処理装置、情報処理装置の制御方法およびプログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US20190258436A1 (ja) |
JP (1) | JP2019144814A (ja) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006040214A (ja) * | 2004-07-30 | 2006-02-09 | Canon Inc | 情報処理装置、印刷処理方法、及びコンピュータプログラム |
JP2006110861A (ja) * | 2004-10-14 | 2006-04-27 | Canon Inc | 画像形成装置、画像形成方法及びそのプログラム |
JP5105855B2 (ja) * | 2006-12-19 | 2012-12-26 | キヤノン株式会社 | 情報処理装置及びその制御方法、コンピュータプログラム |
JP4974909B2 (ja) * | 2008-01-10 | 2012-07-11 | キヤノン株式会社 | 情報処理装置、印刷設定方法、記憶媒体、プログラム |
US9036186B2 (en) * | 2010-03-01 | 2015-05-19 | Ricoh Company, Ltd. | Method and device for printing a scheduled print job |
JP6486153B2 (ja) * | 2015-03-09 | 2019-03-20 | キヤノン株式会社 | 情報処理装置、情報処理方法及びプログラム |
JP6604834B2 (ja) * | 2015-12-04 | 2019-11-13 | キヤノン株式会社 | 情報処理装置及びその制御方法、プログラム |
-
2018
- 2018-02-20 JP JP2018028020A patent/JP2019144814A/ja active Pending
-
2019
- 2019-02-11 US US16/272,154 patent/US20190258436A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20190258436A1 (en) | 2019-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8537438B2 (en) | Information processing apparatus in which a plurality of types of print drivers and plurality of graphics units run, control method therefor, and program | |
JP4520340B2 (ja) | 印刷制御装置、印刷制御装置の制御方法、印刷制御プログラム及び記録媒体 | |
US20190050173A1 (en) | Information processing apparatus, control method, and recording medium | |
JP2010040002A (ja) | 情報処理装置、方法、制御プログラム | |
JP5704834B2 (ja) | 情報処理装置および制御方法およびプログラム | |
JP5235695B2 (ja) | 印刷制御装置とその制御方法 | |
JP6486153B2 (ja) | 情報処理装置、情報処理方法及びプログラム | |
JP5882623B2 (ja) | 情報処理装置、制御方法、プログラム | |
JP2020087297A (ja) | プログラム及び制御方法 | |
JP4174381B2 (ja) | 情報処理装置、分散印刷制御方法及び分散印刷制御プログラム | |
US20110286034A1 (en) | Information processing apparatus and non-transitory computer-readable recording medium | |
JP2017033052A (ja) | 画像形成装置における制御装置およびプログラム | |
JP6587515B2 (ja) | 情報処理装置、情報処理装置の制御方法、及びプログラム | |
JP6827738B2 (ja) | 制御方法、プログラム及び情報処理装置 | |
JP6234417B2 (ja) | 情報処理装置及びその制御方法とプログラム | |
JP2019144814A (ja) | 情報処理装置、情報処理装置の制御方法およびプログラム | |
JP6437076B2 (ja) | 情報処理装置及びその制御方法とプログラム | |
JP7081113B2 (ja) | 情報処理装置、ジョブ振り分け方法及びプログラム | |
JP7350525B2 (ja) | 情報処理装置、情報処理装置の制御方法、及びプログラム | |
JP6007015B2 (ja) | 画像形成装置及び画像形成プログラム | |
JP2013054778A (ja) | 情報処理装置、方法、制御プログラム | |
JP2018180750A (ja) | 画像形成装置における制御装置およびプログラム | |
JP7171227B2 (ja) | 情報処理装置、その制御方法およびアプリケーション | |
JP2007261172A (ja) | 画像形成装置及び画像形成方法 | |
JP2010117907A (ja) | 印刷制御装置、および印刷装置 |