JP4438064B2 - データ処理装置および印刷設定処理方法およびコンピュータが読み取り可能なプログラムを格納した記憶媒体およびプログラム - Google Patents

データ処理装置および印刷設定処理方法およびコンピュータが読み取り可能なプログラムを格納した記憶媒体およびプログラム Download PDF

Info

Publication number
JP4438064B2
JP4438064B2 JP2004330476A JP2004330476A JP4438064B2 JP 4438064 B2 JP4438064 B2 JP 4438064B2 JP 2004330476 A JP2004330476 A JP 2004330476A JP 2004330476 A JP2004330476 A JP 2004330476A JP 4438064 B2 JP4438064 B2 JP 4438064B2
Authority
JP
Japan
Prior art keywords
printer driver
setting
conflict
application
plug
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.)
Expired - Fee Related
Application number
JP2004330476A
Other languages
English (en)
Other versions
JP2006139675A (ja
JP2006139675A5 (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 JP2004330476A priority Critical patent/JP4438064B2/ja
Priority to US11/274,596 priority patent/US7808666B2/en
Publication of JP2006139675A publication Critical patent/JP2006139675A/ja
Publication of JP2006139675A5 publication Critical patent/JP2006139675A5/ja
Application granted granted Critical
Publication of JP4438064B2 publication Critical patent/JP4438064B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/121Facilitating exception or error detection and recovery, e.g. fault, media or consumables depleted
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1204Improving or facilitating administration, e.g. print management resulting in reduced user or operator actions, e.g. presetting, automatic actions, using hardware token storing data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1253Configuration of print job parameters, e.g. using UI at the client
    • G06F3/1255Settings incompatibility, e.g. constraints, user requirements vs. device capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1284Local printer device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Description

本発明は、アプリケーションからプリンタドライバを介して印刷データをプリンタに転送処理するデータ処理装置および印刷設定処理方法およびコンピュータが読み取り可能なプログラムを格納した記憶媒体およびプログラムに関するものである。
従来、コンピュータ上で動作するアプリケーションプログラムが、印刷を実行する場合には、印刷開始命令と共に、印刷に必要な各種設定をパラメータとして、プリンタドライバ等の印刷関連処理プログラムに引き渡すのが一般的な方法である。
このように印刷に必要な各種設定をパラメータとしてプログラムよりプリンタドライバに渡すことで、プログラムが意図した印刷出力を得られるようになっている(例えば下記特許文献1参照)。
なお、下記特許文献には、機能設定で競合するような設定かどうかを判別して、UI画面上に、選択できないように設定項目のグレイ表示を制御し、かつ、選択できない理由をメッセージで表示制御することが記載されている。
特開2002−328757号公報
しかしながら、意図した印刷出力を得るために指定可能な設定値の種類の範囲はいわゆるどのプリンタでもサポートが可能と思われる用紙の給紙口の指定や両面/片面印刷の指定等、非常に限られた範囲のものであり、プリンタまたはプリンタドライバが提供していても、アプリケーションプログラムより直接指定のできないその他の有用な機能については、プリンタドライバのユーザインタフェースを開いて、そこで指定をする必要があった。
このため、企業の各種システムソフトウェアからの印刷出力に際して、プリンタドライバのユーザインタフェースを表示したがらないケースでは、プリンタまたはプリンタドライバの持つ機能が十分に利用できないという問題点があった。
そのため、昨今ではプリンタまたはプリンタドライバをフルに生かせるように、プリンタやプリンタドライバへの機種依存する設定についても、アプリケーションから利用可能な特別なインタフェースを設けて、このインタフェースを利用した場合には、プリンタドライバユーザインタフェースで設定する場合と同等な機能の設定が可能となるようなプリンタドライバが出現してきている。
このような特別なインタフェースを、プラグイン形式の拡張機能を持ったプリンタドライバにおいて利用するケースがある。
このプラグイン形式のプリンタドライバの機能拡張とは、プリンタベンダから配布されているプリンタドライバのインストールセットとは別に、差分モジュール、つまりプラグインを提供して機能追加を実現する方法である。
このような状況において、アプリケーションから特別なインタフェースを用いてプラグインで拡張された機能の設定を変更する際に、他の印刷設定との矛盾が生じている状況であると、プリンタドライバが設定変更処理の実行できない旨の通知をアプリケーションに返す場合がある。
例えば、拡張機能である製本印刷機能と両面印刷機能を同時に使用することが、矛盾している設定の組み合わせであるとする。
このとき、両面印刷機能が有効である場合に、アプリケーションからインタフェースを用いて製本印刷機能を有効にするような設定変更処理を実行すると、プリンタドライバから、設定変更ができない旨の通知をアプリケーションに返すといった具合である。
このような状況において、アプリケーション側ではどの印刷設定と矛盾が生じているのか分からないので、所望の印刷設定が実行できない状況に陥ってしまう。
本発明は、上記の課題を解決するためになされたもので、本発明の目的は、アプリケーションからのプリンタドライバに対する印刷設定変更指示時に、前記プリンタドライバからのコンフリクトの問い合わせに従って印刷設定を変更可能かどうかをコンフリクト処理ルールを取得することで判定して所定の応答情報を生成し、該生成される所定の応答情報をプリンタドライバを介してアプリケーションに通知することにより、アプリケーション側の印刷設定と設定されている拡張機能との間でどのような矛盾が生じているのかを理解して、拡張されている機能とアプリケーション側との設定とが矛盾しない印刷設定に自動変更できる利便性に優れた印刷設定処理環境を容易に構築できるデータ処理装置および印刷設定処理方法およびコンピュータが読み取り可能なプログラムを格納した記憶媒体およびプログラムを提供することである。
上記目的を達成する本発明のデータ処理装置は以下に示す構成を備える。
アプリケーションからの印刷要求を処理するデータ処理装置であって、プリンタドライバ本体、および、プリンタドライバ本体の競合を評価するためのコンフリクト処理ルール、および、プリンタドライバ本体の機能を拡張するプラグインモジュールおよびそのプラグインモジュールの設定の競合を評価するためのコンフリクト処理ルールを記憶する記憶手段と、前記アプリケーションから印刷設定変更をドライバ管理部において受け付ける受付手段と、アプリケーションから前記受付手段が受け付けた印刷設定の変更指示が、プラグインモジュールに対するものか、プリンタドライバ本体に対するものかを判定する判定手段と、アプリケーションから前記受付手段が受け付けた印刷設定の変更指示が、プラグインモジュールに対するものであると前記判定手段が判定した場合は、プラグインモジュールにおける印刷設定の変更を指示し、アプリケーションから前記受付手段が受け付けた印刷設定の変更指示が、プリンタドライバ本体に対するものであると前記判定手段が判定した場合は、プリンタドライバ本体における印刷設定の変更を指示する指示手段と、前記指示手段がプラグインモジュールにおける印刷設定の変更を指示した場合は前記記憶手段に記憶されたプラグインモジュールの設定の競合を評価するためのコンフリクト処理ルールを用いた処理結果をドライバ管理部において取得し、前記指示手段がプリンタドライバ本体における印刷設定の変更を指示した場合は前記記憶手段に記憶されたプリンタドライバ本体の設定の競合を評価するためのコンフリクト処理ルールを用いた処理結果をドライバ管理部において取得する取得手段と、前記取得手段が取得した処理結果を応答情報として前記ドライバ管理部から前記アプリケーションに対して、アプリケーションとドライバ管理部の間に定義されるAPIを用いて通知する通知手段とを有することを特徴とする。
上記目的を達成する本発明の印刷設定処理方法は以下に示す構成を備える。
アプリケーションからの印刷要求をプリンタドライバ本体と、プリンタドライバ本体の機能を拡張するプラグインモジュールおよびそのプラグインモジュールの設定の競合を評価するためのコンフリクト処理ルール、および、プリンタドライバ本体の競合を評価するためのコンフリクト処理ルールを用いて処理するデータ処理装置における印刷設定処理方法であって、前記アプリケーションから印刷設定変更をドライバ管理部において受け付ける受付ステップと、アプリケーションから前記受付ステップが受け付けた印刷設定の変更指示が、プラグインモジュールに対するものか、プリンタドライバ本体に対するものかを判定する判定ステップと、アプリケーションから前記受付ステップが受け付けた印刷設定の変更指示が、プラグインモジュールに対するものであると前記判定ステップが判定した場合は、プラグインモジュールにおける印刷設定の変更を指示し、アプリケーションから前記受付ステップが受け付けた印刷設定の変更指示が、プリンタドライバ本体に対するものであると前記判定ステップが判定した場合は、プリンタドライバ本体における印刷設定の変更を指示する指示ステップと、前記指示ステップがプラグインモジュールにおける印刷設定の変更を指示した場合は前記プラグインモジュールの設定の競合を評価するためのコンフリクト処理ルールを用いた処理結果をドライバ管理部において取得し、前記指示ステップにてプリンタドライバ本体における印刷設定の変更を指示した場合は前記プリンタドライバ本体の設定の競合を評価するためのコンフリクト処理ルールを用いた処理結果をドライバ管理部において取得する取得ステップと、前記取得ステップが取得した処理結果を応答情報として前記ドライバ管理部から前記アプリケーションに対して、アプリケーションとドライバ管理部の間に定義されるAPIを用いて通知する通知ステップとを有することを特徴とする。
本発明によれば、プリンタドライバの機能拡張をプラグイン形式によって実現した環境において、アプリケーション側の印刷設定と設定されている拡張機能との間でどのような矛盾が生じているのかを理解して、拡張されている機能とアプリケーション側との設定とが矛盾しない印刷設定に自動変更できる利便性に優れた印刷設定処理環境を容易に構築できる。
また、プリンタドライバの機能拡張をプラグイン形式によって実現した環境において、プラグインによって拡張された機能をアプリケーションから特別なインタフェースを用いて制御する場合に、他の印刷設定の影響で設定変更処理が実現できないという状況を回避することができ、アプリケーションから所望の印刷設定を実現できる。
次に本発明を実施するための最良の形態について図面を参照して説明する。
<システム構成の説明>
以下、本発明を適用するのに好適である実施形態について説明を行う。
〔第1実施形態〕
図1は、本発明の第1実施形態を示すデータ処理装置を適用可能な印刷処理システムの構成を説明するブロック図である。なお、特に断らない限り、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても、LAN,WAN等のネットワークを介して接続が為され処理が行われるシステムであっても本発明を適用できることは言うまでもない。
図1において、3000はホストコンピュータで、ROM3のプログラム用ROMあるいは外部メモリ11に記憶された文書処理プログラム等に基づいて図形、イメージ、文字、表(表計算等を含む)等が混在した文書処理を実行するCPU1を備え、システムバス4に接続される各デバイスをCPU1が総括的に制御する。
また、このROM3のプログラム用ROMあるいは外部メモリ11には、CPU1の制御プログラムであるオペレーティングシステムプログラム(以下OS)等を記憶し、ROM3のフォント用ROMあるいは外部メモリ11には上記文書処理の際に使用するフォントデータ等を記憶し、ROM3のデータ用ROMあるいは外部メモリ11には上記文書処理等を行う際に使用する各種データを記憶する。
2はRAMで、CPU1の主メモリ、ワークエリア等として機能する。5はキーボードコントローラ(KBC)で、キーボード(KB)9や不図示のポインティングデバイスからのキー入力を制御する。6はCRTコントローラ(CRTC)で、CRTディスプレイ(CRT)10の表示を制御する。7はディスクコントローラ(DKC)で、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、プリンタ制御コマンド生成プログラム(以下プリンタドライバ)等を記憶するハードディスク(HD)、フレキシブルディスク(FD)等の外部メモリ11とのアクセスを制御する。
8はプリンタコントローラ(PRTC)で、所定の双方向性インタフェース21を介してプリンタ1500に接続されて、プリンタ1500との通信制御処理を実行する。なお、CPU1は、例えばRAM2上に設定された表示情報RAMへのアウトラインフォントの展開(ラスタライズ)処理を実行し、CRT10上でのWYSIWYGを可能としている。
また、CPU1は、CRT10上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウインドウを開き、種々のデータ処理を実行する。ユーザは印刷を実行する際、印刷の設定に関するウインドウを開き、プリンタの設定や、印刷モードの選択を含むプリンタドライバに対する印刷処理方法の設定を行える。
プリンタ1500において、12はプリンタCPUで、ROM13のプログラム用ROMに記憶された制御プログラム等あるいは外部メモリ14に記憶された制御プログラム等に基づいてシステムバス15に接続される印刷部(プリンタエンジン)17に出力情報としての画像信号を出力する。
また、このROM13のプログラムROMには、CPU12の制御プログラム等を記憶する。ROM13のフォント用ROMには上記出力情報を生成する際に使用するフォントデータ等を記憶し、ROM13のデータ用ROMにはハードディスク等の外部メモリ14がないプリンタの場合には、ホストコンピュータ上で利用される情報等を記憶している。
CPU12は入力部18を介してホストコンピュータ3000との通信処理が可能となっており、プリンタ1500内の情報等をホストコンピュータ3000に通知可能に構成されている。19は前記CPU12の主メモリ、ワークエリア等として機能するRAMで、図示しない増設ポートに接続されるオプションRAMによりメモリ容量を拡張することができるように構成されている。
なお、RAM19は、出力情報展開領域、環境データ格納領域、NVRAM等に用いられる。前述したハードディスク(HD)、ICカード等の外部メモリ14は、ディスクコントローラ(DKC)20によりアクセスを制御される。外部メモリ14は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。また、18は前述した操作パネルで操作のためのスイッチおよびLED表示器等が配されている。
また、前述した外部メモリは1個に限らず、少なくとも1個以上備え、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていてもよい。さらに、図示しないNVRAMを有し、操作パネル22からのプリンタモード設定情報を記憶するようにしてもよい。
図2は、図1に示したRAM2のメモリマップの一例を示す図であり、所定のアプリケーションおよび印刷処理関連プログラムを起動して、ホストコンピュータ3000上のRAM2にロードされた状態のRAM2のメモリマップを示している。
図2において、RAM2には、図示の如く、BIOS206、OS205をはじめ、アプリケーション201、印刷処理関連プログラム204、および関連データ203がロードされており、さらに空きメモリ領域(空きメモリ)202も確保されている。これにより、アプリケーション201および印刷処理関連プログラム204は実行可能状態にある。
本実施形態では、後述する図8に示すようなプリンタドライバ拡張システムにおける、プリンタドライバにプラグインモジュールを追加する構成になっている。プラグインモジュールは、後述する図3に示すとおり、UIドライバ803の拡張機能を有するUIプラグイン804と、グラフィックスドライバ805の拡張機能を有するグラフィックプラグイン806からなる。図3を用いてそれぞれのプラグインモジュールについて説明する。
図3は、図1に示したホストコンピュータ3000の各種のモジュールのプリント処理例を示す概念ブロック図である。
図3において、801はアプリケーションである。804はUIプラグインで、UIドライバ803に新たなシートを加える場合や、UIドライバ803で処理している、インストール時の処理などのUIドライバ803に実装されている様々なイベント処理をカスタマイズする場合に用いる。
803はUIドライバで、システムに対してエクスポートしているDDI(Device Driver Interface)がコールされた際に、UIプラグイン804が公開しているインタフェースを取得する。UIドライバ803が取得したUIプラグイン804のインタフェースを用いて、UIプラグイン804と通信することで、UIドライバ803に実装されたカスタマイズ処理が実行される。
一方、グラフィックスプラグイン806は、GDI(Graphics Device Interface)802とグラフィックスドライバ805とのインタフェースであるDDIの処理を横取りまたは特定のタイミングで処理を追加する場合や、印刷データのスプール処理を横取りする場合に用いる。
グラフィックスドライバ805がエクスポートしているDDIは、ジョブを生成するためにGDI802から適宜コールされるが、その初期化のタイミングで、グラフィックスドライバ805は、グラフィックスプラグイン806が公開しているインタフェースを取得し、RAM2に保持する。
そして、ここでグラフィックスドライバ805が取得したインタフェースを用いて、DDIがコールされるタイミングにそのDDIに対応したグラフィックスプラグイン806の処理を呼び出し、該呼び出されたグラフィックスプラグイン806は、プラグイン内に実装された処理を実行し、処理を再びグラフィックスドライバ805に返す。
ここで、グラフィックスプラグイン806が処理を横取りしている場合、DDIはそこで処理を終了し、追加処理を実装している場合には、そのまま後続する処理を続ける。
一方、グラフィックスプラグイン806がグラフィックスドライバ805の印刷データのスプール処理を横取りする場合は、グラフィックスドライバ805内の印刷データをスプールする直前にグラフィックスプラグイン806のインタフェースをコールする。そして、コールされたグラフィックスプラグイン806は、スプールされるデータを取得し、特定の処理を実行した後、再度グラフィックスドライバ805のスプール処理関数をコールすることで、グラフィックスドライバ805に特定の処理を施したデータを渡す。
そして、データを受け取ったグラフィックスドライバ805は、実際にシステムスプーラ(スプーラ)807にスプールする処理を実行する。
このようにプラグインモジュールに拡張機能を実装することで、プリンタドライバの拡張システムを実現している。
図4は、図3に示したアプリケーション801と図2に示した印刷処理関連プログラム204の概略構成を概念的に説明する図である。
図4において、906はドライバ管理部で、アプリケーション801からの印刷時における一連の処理を制御する。903はコンフリクトマネージャで、各モジュール間のデータの受け渡しやデータの更新等を管理してコンフリクト処理を統括する。
901はコンフリクト処理ルール記述ファイルで、後述する記述形式で記述される不整合回避戦略を示すコンフリクト処理ルールを列記してある。
910はプリンタドライバ拡張システムを実現するプラグインモジュールセットで、拡張機能が実装されたプラグインモジュール909と、プラグインモジュール909に依存したプラグインのコンフリクト処理ルールファイル908からなる。
このプラグインのコンフリクト処理ルール908は、前記コンフリクト処理ルール記述ファイル901と同様のフォーマットで記述されている。
902は推論エンジンで、コンフリクト処理ルール記述ファイル901およびプラグインのコンフリクト処理ルールファイル908をロードして、入力された設定値に対してコンフリクト処理ルールを適用し、各機能の状態を推論する。
904は各プリンタ機能の状態をリスト形式で表示する状態変数リストであり、ユーザからの入力およびコンフリクト処理ルール記述ファイル901およびプラグインのコンフリクト処理ルールファイル908の内容に基づき更新され得る。
905は前記ドライバ管理部906が印刷を実行する際の設定を反映した帳票としての内部構造体であり、状態変数リスト904と連動して各プリンタ機能の状態を保持している。
906はドライバ管理部で、後述する図6に示すような印刷設定変更処理関連の関数をアプリケーション801に対して公開しており、アプリケーション801は、それらの関数をロードして、印刷設定変更処理を実行する。印刷設定変更処理関連の関数は、図に示すように、プリンタドライバ拡張API2000と通常API2001が存在する。原則としてアプリケーション801は、プリンタドライバ拡張API2000を用いて、プラグインドライバを情報の授受および、プラグインモジュールの制御を行う。
このように構成されたデータ処理装置において、プラグインモジュールが製本アドインとし、該製本アドインON状態と、アプリケーション801からの2UP印刷が同時に設定不可の場合(2UPの方が優先度が高いと仮定する)、2UP印刷が設定されている状態で、ドライバ管理部906により製本アドインのためのプラグインモジュールセット909をONに設定すると、現在の状態では設定ができないという"NOT_AVAILABLE"という値が返る。
アプリケーション801がドライバ管理部906を介して製本アドインのコンフリクト情報をQueryする。ドライバ管理部906は、製本アドインに対してコンフリクト情報を問い合わせる。コンフリクトマネージャ903は、プラグインモジュールセット909から取得するコンフリクト処理ルールファイル908等を取得して、製本機能の設定とコンフリクトが発生している機能を示す設定値(ページレイアウト)と、回避可能な設定値、例えば(CDM_ITEM_LAYOUT-現在の設定:「2UP」,回避可能な設定:「1UP」)を示す所定の応答情報を生成して、ドライバ管理部906よりアプリケーション801に対して通知する。
アプリケーション801は、取得したコンフリクト情報を元に、コンフリクトがかかっている設定を変更し、(2UP→1UP)アドインの機能を有効にするような状況した後、改めて製本アドイン機能を有効にする設定処理を実行する。これにより、アプリケーション801がプリンタドライバ拡張API2000を介して、アドイン機能のコンフリクト情報を取得することにより、アドイン機能が使えなくなる状況を回避する。
図5、図6は、本発明に係るデータ処理装置におけるデータ処理手順の一例を示すフローチャートであり、図4に示したアプリケーション801からの設定変更指示に伴う、拡張機能と現在の印刷設定との矛盾を強化して、その内容を所定の応答情報としてアプリケーション801に通知し、該通知に基づき印刷設定を自動的に変更処理する手順に対応する。なお、(801−1)〜(801−12)はアプリケーション801が実行するステップに対応し、(808−1)〜(808−14)は図4に示すドライバ管理部906が実行するステップに対応し、(909−1)〜(909−7)はプラグインモジュール909が実行するステップに対応する。
図7は、図4に示したドライバ管理部906が公開している設定変更処理に必要な関数情報を説明する図であり、例えば図1に示した外部メモリ11またはROM3のデータ内に記憶される。
図7において、F1は設定変更処理初期化関数を示し、F2は設定変更処理関数を示し、F3は設定変更処理終了関数を示す。
まず、アプリケーション801は、ドライバ管理部906が公開している図7に示すような設定変更初期化関数F1をコールする(801−1)。その際、設定変更処理初期化関数F1の引数にアプリケーション801より印刷設定情報が渡される。設定変更処理初期化関数F1がコールされたことを受け付けると(808−1)、ドライバ管理部906は、プラグインモジュール909に対して、プラグインのコンフリクト処理ルールファイル908の格納場所を問い合わせる(808−2)。この問い合わせを受けると(909−1)、プラグインモジュール909は、プラグインのコンフリクト処理ルール908の格納場所をドライバ管理部906に返す(909−2)。
次に、ドライバ管理部906は、アプリケーション801からプリンタドライバ拡張API2000を介して受け取った印刷設定情報をコンフリクトマネージャ903に渡し、コンフリクトマネージャ903は、コンフリクト処理ルール記述ファイル901と、ステップ(909−2)で返された格納場所を元に、プラグインのコンフリクト処理ルール908をロードする(808−3)。コンフリクトマネージャ903は、受け取った印刷設定情報を元に、状態変数リスト904を生成する状態変数の初期化を行う(808−4)。
この際、プラグインモジュールの初期化処理の呼び出しを受け付けると(909−3)、プラグインモジュール独自の状態変数を初期化し、ドライバ管理部906にプラグイン独自の状態変数を返す(909−4)。
図4において、コンフリクト処理ルール記述ファイル901とプラグインのコンフリクト処理ルール記述ファイル908は、推論エンジン902にインクルード(ロード)された形で参照される。このコンフリクト処理ルール記述ファイル901とコンフリクト処理ルール記述ファイル908は、コンフリクトマネージャ903にも参照され、それを受けて状態変数リスト904が変更されることになる。また、内部構造体905と状態変数リスト904とは先に述べたとおり連動するものであるから、互いにマッピングされる関係にある。
次に、プリンタドライバ管理部906は、ステップ(808−4)において、状態リストを生成後、その他の初期化処理を実行した後、アプリケーション801にハンドルを返す(808−5)。
アプリケーション801は、ステップ(808−6)でプリンタドライバ拡張API2000を介してドライバ管理部906から返されたハンドルを取得するのを待ち(801−2)、ハンドルを取得したら(801−3)、アプリケーション801は、取得したハンドルを用いて、印刷設定処理を実行することになる。
次に、アプリケーション801が、印刷設定変更を実行するために、図7に示すドライバ管理部906が公開している設定変更処理関数F2(プリンタドライバ拡張API2000の一部として実装されると好適である)を実行する(801−3)。この設定変更処理関数F2の引数には、ステップ(801−3)で取得したハンドルの他に、図7に示すように設定を変更したい設定項目の識別子、印刷設定情報、情報の受け渡しデータが含まれる。
アプリケーション801より、ドライバ管理部906の設定変更処理関数F2を呼び出し(801−4)、ドライバ管理部906の設定変更処理関数F2がコールされると(808−7)、ドライバ管理部906は、印刷設定変更処理関数F2の引数に含まれる設定項目を識別して設定変更処理関数を呼び出し(808−8)、プラグインの設定項目であるかどうかを判定する(808−9)。
ここで、プラグインの設定項目であるとドライバ管理部906が判断した場合は、プラグインの設定変更関数を呼び出し(808−11)、プラグインの設定変更関数がコールされると(909−5)、プラグラインモジュール909は、プラグインの設定変更処理を実行する(909−6)。そして、プラグインモジュール909は、変更されたコンフリクト設定値を戻り値としてプリンタドライバ808のコンフリクトマネージャ903へ返して(909−7)、処理を終了する。
なお、戻り値をプラグインモジュール909が返し、プリンタドライバ808本体部が、戻り値を返却を待って9、図5に示すステップ(808−10),(808−11)の後、処理を続行するようにしてもよいという。
一方、ステップ(808−9)でプラグインの設定項目でないとドライバ管理部906が判断した場合には、設定変更処理関数F2の引数に渡された情報を元に、ドライバ管理部906内部で設定項目の変更処理を行う(808−10)。
なお、図6に示すステップ(909−6)、図5に示す(808−10)における設定項目の変更処理は以下に従って行われる。
コンフリクト処理ルールとして以下のようなコンフリクト処理ルールを記述するとする。
A(ON):−B(ON),C(OFF).
ここで、A、B,Cはそれぞれプリンタの機能の名称を一意に表している。
図8は、図4に示したコンフリクトマネージャ903と推論エンジン902との関係を示す図である。
図8に示す状態変数リスト502に示すように、コンフリクト処理ルール503の中に記述された例えば図1に示したプリンタ1500の機能名称であるA,B,Cのそれぞれについて同名の状態変数が存在する。
プリンタ1500の機能名称A,B,Cに対応するプリンタドライバの内部構造体501のデータメンバ変数をそれぞれcA,cB,cCとし、A,B,Cの状態変数の持つ値は2値(ON,OFF)とする。内部構造体501はドライバ内部もしくは外部ファイルとして初期値を持っており、初期の状態変数の値は対応する内部構造体501のメンバの初期値に依存する。
cAの初期値は「0」なので、対応する状態変数Aの初期値は「0」に値する2値の値OFFとなっている。内部構造体501と状態変数のマッピングの値および方法については、ドライバ内部もしくは外部ファイルとしてプログラムされている。
アプリケーション801もしくはUIドライバ803によって、変更される印刷設定情報がコンフリクトマネージャ903に渡されると、コンフリクトマネージャ903は渡された印刷設定情報から関連する状態変数を検索し、渡された値に従って状態変数の値を変更する。このとき状態変数の値の変更が可能かどうかについては、状態変数がフラグを持っており、フラグによって可能かどうかを判定する。
このフラグはenableとdisableの2つの状態をもち、変更が可能な場合は「enable」になる。変更が可能かどうかについては、コンフリクト処理ルール503によって記述され、推論エンジン902の推論を通して状態変数に反映される。設定変更が出来ない場合つまり、フラグが「disable」の状態変数に対して印刷設定情報を適用した場合は、印刷設定情報を反映させることなく、「NOTAVALABLE」を返り値として返す。
推論エンジン902は、コンフリクトマネージャ903から渡されたコンフリクト処理ルールによって、状態変数の推論を行ってコンフリクトの評価を行う。状態変数の値が変更されたら、推論エンジン902によって変更された状態変数の値をキーとして、関連するルールの評価を行う。
本実施形態においては、図5に示すステップ(808−3)で読み込まれた、図3のプリンタドライバ本体のコンフリクト処理ルール901とプラグインのコンフリクト処理ルール908の内容が評価されることになる。
ルールの評価によって他の状態変数の値を変更しなければならない場合は、推論エンジンから変更する状態変数と変更される値の一覧を受け取り、コンフリクトマネージャ903がそれぞれ状態変数を更新する。ここで状態変数の値の更新があった場合は、変更された状態変数をキーとして再度コンフリクト処理ルールの評価を行う。無限ループに陥る可能性があるので、印刷設定情報が渡されてから状態変数の値を変更するのは1回に限定する。
例を使って前記の推論による設定変更処理について説明する。以下のようなコンフリクト処理ルール503が推論エンジン902にあるとする。
A(ON):−B(ON),C(OFF),{enable}.
コンフリクト処理ルール503の:−記号の左側を左辺、右側を右辺とする。記号「,」は論理のANDを表す。記号「:」は論理のORを表す。「.」はルールの終端を表す。{}で囲まれた内部は、状態変数の設定可能フラグを変更するために使用する。
状態変数の初期値としてA,B,Cの値はすべて「OFF」であったとする。そして、アプリケーション801もしくはUIドライバ803によって変更された印刷設定情報が状態変数に反映され、Bの値が「ON」になったとする。コンフリクトマネージャ903は推論エンジン902に、コンフリクト処理ルールの評価を問い合わせる。推論エンジン902は状態変数Bの値が変更されたことにより、状態変数Bに関連するコンフリクト処理ルールを推論する。
コンフリクトルールにおいてコンフリクト処理ルールが評価され、状態変数Bの値が「ON」であり、状態変数Cの値が「OFF」であったときは、前記のコンフリクト処理ルールの右辺の評価が成立し、左辺の状態変数Aの値を「ON」に変更する。
また、同時に状態変数の設定可能フラグを「enable」にする。コンフリクト処理ルールの推論が終了すると、コンフリクトマネージャ903は変更された状態変数の値を、内部構造体905のメンバにすべて反映させる。つまり状態変数Aの値が「OFF」から「ON」になったことで、内部構造体905のメンバcAは「0」から「1」に変更される。
また、状態変数は自身の値が変更された理由をデータとして持つことができる。これを「REASON」と呼ぶ。REASONはコンフリクト処理ルールに以下のように記述することで設定することができる。
A(ON):−B(ON),C(OFF),sreason(BONANDCOFF).
「sreason」はコンフリクト処理ルールにおいてREASONを設定するという意味を持つ特殊な記述である。このコンフリクト処理ルールの評価が成立し、状態変数Aが「ON」になるときに、状態変数AのREASONに「BONANDCOFF」という値を設定する。
他の状態変数のREASONから、REASONを引き継ぐことも可能である。これは、以下のようにコンフリクト処理ルールに記述する。
A(ON):−B(ON),C(OFF),rreason(B).
「rreason」はコンフリクト処理ルールにおいてREASONを取得して引き継ぐという意味を持つ特殊な記述である。このコンフリクト処理ルールの評価が成立し、状態変数AがONになるときに、状態変数AのREASONには状態変数BのREASONが設定される。
具体的な例としては以下のようなコンフリクトルールがある。
DUPLEX(OFF):−BOOKLET(ON),sreason(BOOKLETON),{disable}.
具体的には、製本印刷が「ON」になっているときには、状態変数「DUPLEX」に対してREASONとして、BOOKLETONによって「OFF」になっていることを示すことができる。また、状態変数DUPLEXの設定可能フラグにdisableを指定し、今後状態変数DUPLEXに対して印刷設定変更処理が来ても、NOTAVALABLEを返すようになる。ここで、図5のフローチャートに戻る。
ステップ(808−6)の処理で返されるハンドルの値には、OKであれば、設定変更処理が成功したこと、NOTAVALABLEであれば、他の設定の影響で現在は設定変更不可であることが含まれる。
そして、ステップ(808−12)で、ステップ(909−6)および(808−10)における設定変更処理の戻り値が"NOTAVAILABLE"か否かを判断し、"NOTAVAILABLE"であるとドライバ管理部906が判断した場合には、ステップ(808−13)に進み、コンフリクトマネージャ903よりコンフリクト情報を取得する。このコンフリクト情報には、図9に示すような情報が入っている。
図9は、図4に示したドライバ管理部906がコンフリクトマネージャ903から取得するコンフリクト情報の一例を示す図である。
図9に示すReasonには、ステップステップ(909−6)および(808−10)の設定変更処理で、コンフリクトが発生して、設定が不可の要因となった設定項目が格納されている。
また、図9に示すValueには、設定変更が不可の状態を回避可能な設定値が格納されている。
図9におけるコンフリクト情報の例(1)のReasonには、BOOKLETが格納されており、BOOKLETの設定の影響を受けて、設定変更処理が不可の状態であるということがわかる。また、Valueには、OFFが入っていることから、BOOKLETの設定値をOFFにすることで、コンフリクト状態が回避されるということを示している。
一方、図9に示すコンフリクト情報の例(2)のReasonには、"NO_REASON"が格納されており、現在の設定変更不可の状態の要因となる設定項目が存在しないことを示している。このような状況になるのは、他の設定項目の影響ではなく、デバイスのオプションが装着されていないため、指定した設定変更ができない状態になっている場合などが想定される。このような場合、コンフリクト情報のValueには、コンフリクト状態を回避する設定がないので、"NONE"が格納される。
次に、ステップ(801−4)で、アプリケーション801から渡された最後引数の情報の受け渡しデータに、ステップ(808−13)で取得したコンフリクト情報を格納したのち、アプリケーションに失敗した旨の結果をプリンタドライバ拡張API2000または通常API2001を介して返す(808−14)。
一方、ステップ(808−12)で"OK"または"FAILED"とドライバ管理部906が判断した場合には、アプリケーション801に対してプリンタドライバ拡張API2000または通常API2001を介してその旨の結果を返し(808−14)、ドライバ管理部906の処理が終了する。
そして、アプリケーション801は、ステップ(801−5)で、プリンタドライバ拡張API2000又は通常API2001を介して、ドライバ管理部906より設定変更の判断結果を受信すると、ドライバ管理部906から返された設定変更処理の結果を取得する(801−6)。
次に、ステップ(801−6)で取得した結果を判定し(801−7)、"OK"または"FAILED"であると判定した場合、ステップ(801−11)に進む。
一方、ステップ(801−7)で"NOTAVAILABLE"であると判定した場合には、ドライバ管理部906で取得され、設定変更処理関数F2の引数に渡されたコンフリクト情報を参照する(801−8)。
そして、ステップ(801−8)で参照したコンフリクト情報を判定し(801−9)、コンフリクト情報内のReasonに"NO_REASON"が格納されていると判断した場合(解決不可の場合)には、ステップ(801−11)に進む。
一方、ステップ(801−9)で、コンフリクト情報内のReasonに何らかの設定項目が格納されているとアプリケーション801が判断した場合、コンフリクト情報内のValueを参照し、図7に示す設定変更処理関数F2を用いてValueに格納された設定値をReason内の設定項目にセットすることで、ステップ(808−6)で設定変更処理ができない状態を回避する(801−10)。
次に、すべての設定変更処理が終了したか否かを判定し(801−11)、終了していないと判断されれば、再びステップ(801−4)に戻り、設定変更処理関数F2をコールして、必要な設定処理が終了するまで、ステップ(801−4)からステップ(801−10)までの一連の処理を繰り返す。
一方、ステップ(801−11)において、すべての設定変更処理が終了したと判定された場合には、図6に示す設定変更終了処理関数F3を実行し(801−12)、本処理を終了する。
以上の処理によって、プリンタドライバの機能拡張をプラグイン形式によって実現した環境において、プラグインによって拡張された機能をアプリケーション801から特別なインタフェースを用いて制御する場合に、他の印刷設定の影響で設定変更処理が実現できないという状況を回避する手段を提供することができる。
なお、本実施形態においては、本印刷処理関連プログラムを記録する媒体を外部メモリとしているが、外部メモリとしては、FD、HDドライブ、CD−ROMやICメモリカード等であってもよい。更に、本印刷プログラム単独、もしくはOSその他のホストコンピュータ上で動作するプログラムと共にROM3に記録しておき、これをメモリマップの一部となすように構成し、直接CPU1で実行することも可能である。
〔第2実施形態〕
以下、図10に示すメモリマップを参照して本発明に係るデータ処理装置で読み取り可能なデータ処理プログラムの構成について説明する。
図10は、本発明に係るデータ処理装置で読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
なお、特に図示しないが、記憶媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報,作成者等も記憶され、かつ、プログラム読み出し側のOS等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、各種プログラムをコンピュータにインストールするためのプログラムや、インストールするプログラムが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
本実施形態における図5,図6に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、CD−ROMやフラッシュメモリやFD等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
以上のように、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
従って、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。
プログラムを供給するための記憶媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVDなどを用いることができる。
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは、圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバやftpサーバ等も本発明の請求項に含まれるものである。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形(各実施形態の有機的な組合せを含む)が可能であり、それらを本発明の範囲から排除するものではない。
本発明の様々な例と実施形態を示して説明したが、当業者であれば、本発明の趣旨と範囲は、本明細書内の特定の説明に限定されるのではなく、以下の実施態様も含まれることはいうまでもない。以下、その実施態様1〜12について説明する。
〔第3実施形態〕
上記第1実施形態では、プリンタドライバとアプリケーションとプラグインモジュールとを含むデータ処理装置として、それぞれの機能処理について説明したが、プリンタドライバの機能を独立した印刷制御装置として構成することも可能である。
〔実施態様1〕
アプリケーション(図4に示すアプリケーション801)からの印刷要求をプリンタドライバ(図3に示すプリンタドライバ808)を介して処理するデータ処理装置であって、前記プリンタドライバの機能をアドイン形式で拡張するプラグインモジュールおよび該プラグインモジュールの同時設定が不可となる機能を評価するためのコンフリクト処理ルールを備えるプラグイン手段(図4に示すプラグインモジュールセット910)と、前記アプリケーションからのプリンタドライバに対する印刷設定変更指示時に、前記プリンタドライバからのコンフリクトの問い合わせに従って印刷設定を変更可能かどうかを前記コンフリクト処理ルールを取得することにより判定して所定の応答情報を生成する判定手段(図4に示す推論エンジン902)と、前記判定手段により生成される前記所定の応答情報を前記プリンタドライバを介して前記アプリケーションに通知する通知手段(図4に示すドライバ管理部906)とを有することを特徴とするデータ処理装置。
これにより、プリンタドライバの機能拡張をプラグイン形式によって実現した環境において、アプリケーション側の印刷設定と設定されている拡張機能との間でどのような矛盾が生じているのかを理解して、拡張されている機能とアプリケーション側との設定とが矛盾しない印刷設定に自動変更できる利便性に優れた印刷設定処理環境を容易に構築できる。
また、プリンタドライバの機能拡張をプラグイン形式によって実現した環境において、プラグインによって拡張された機能をアプリケーションから特別なインタフェースを用いて制御する場合に、他の印刷設定の影響で設定変更処理が実現できないという状況を回避することができ、アプリケーションから所望の印刷設定を実現できる。
〔実施態様2〕
前記判定手段は、印刷設定を変更できないと判定した場合に、設定できない理由および設定不可状態を回避するための設定を示す情報とから前記所定の応答情報を生成可能とすることを特徴とする実施態様1記載のデータ処理装置。
これにより、プリンタドライバの機能拡張をプラグイン形式によって実現した環境において、アプリケーション側の印刷設定と設定されている拡張機能との間でどのような矛盾が生じているのかをアプリケーションが理解可能な応答情報を生成できる。
〔実施態様3〕
前記通知手段は、設定できなかった理由として、以前に設定したために設定できなくなった別の設定値と、設定を可能にするために設定変更が必要な設定値とを含む所定の応答情報を前記プリンタドライバを介して前記アプリケーションに通知することを特徴とする実施態様1記載のデータ処理装置。
これにより、プリンタドライバの機能拡張をプラグイン形式によって実現した環境において、アプリケーション側の印刷設定と設定されている拡張機能との間でどのような矛盾が生じているのかを理解した上で、ユーザによる設定変更を伴うことなく、自動的に矛盾のない印刷設定可能となり、利便性が向上する。
〔実施態様4〕
前記アプリケーションは、前記プリンタドライバを介して通知される前記所定の応答情報に基づいて、機能コンフリクトを回避するに有効な印刷設定値を前記プリンタドライバに再設定することを特徴とする実施態様1〜3のいずれかに記載のデータ処理装置。
これにより、プリンタドライバの機能拡張をプラグイン形式によって実現した環境において、アプリケーション側の印刷設定と設定されている拡張機能との間でどのような矛盾が生じているのかを理解した上で、ユーザによる設定変更を伴うことなく、自動的に矛盾のない印刷設定値をプリンタドライバに設定可能となる。
〔実施態様5〕
前記通知手段は、前記応答情報を、プリンタドライバの一部として又は、オペレーティングシステムの一部として実装されるプリンタドライバ拡張API(図4に示すプリンタドライバ拡張API2000)を介してアプリケーションへ通知することを特徴とする実施態様1に記載のデータ処理装置。
これにより、変更された整合する設定値をアプリケーションに対して確実に通知することができる。
〔実施態様6〕
プリンタドライバの機能をアドイン形式で拡張するプラグインモジュールおよび該プラグインモジュールの同時設定が不可となる機能を評価するためのコンフリクト処理ルールを備えるプラグイン手段を備え、前記アプリケーションからの印刷要求を前記プリンタドライバを介して処理するデータ処理装置における印刷設定処理方法であって、前記アプリケーションからのプリンタドライバに対する印刷設定変更指示時に、前記プリンタドライバからのコンフリクトの問い合わせに従って印刷設定を変更可能かどうかを前記コンフリクト処理ルールを取得することにより判定して所定の応答情報を生成する判定ステップ(図5に示すステップ(808−1)〜(808−13)、図6に示すステップ(909−1)〜(909−7))と、前記判定ステップにより生成される前記所定の応答情報を前記プリンタドライバを介して前記アプリケーションに通知する通知ステップ(図5に示すステップ(808−14))とを有することを特徴とする印刷設定処理方法。
これにより、実施態様1と同等の効果が期待できる。
〔実施態様7〕
前記判定ステップは、印刷設定を変更できないと判定した場合に、設定できない理由および設定不可状態を回避するための設定を示す情報とから前記所定の応答情報を生成可能とすることを特徴とする実施態様6記載の印刷設定処理方法。
これにより、実施態様2と同等の効果が期待できる。
〔実施態様8〕
前記通知ステップは、設定できなかった理由として、以前に設定したために設定できなくなった別の設定値と、設定を可能にするために設定変更が必要な設定値とを含む所定の応答情報を前記プリンタドライバを介して前記アプリケーションに通知することを特徴とする実施態様6記載の印刷設定処理方法。
これにより、実施態様3と同等の効果が期待できる。
〔実施態様9〕
前記アプリケーションは、前記プリンタドライバを介して通知される前記所定の応答情報に基づいて、機能コンフリクトを回避するに有効な印刷設定値を前記プリンタドライバに再設定することを特徴とする実施態様6〜9のいずれかに記載の印刷設定処理方法。
これにより、実施態様4と同等の効果が期待できる。
〔実施態様10〕
前記通知ステップは、前記応答情報を、プリンタドライバの一部として又は、オペレーティングシステムの一部として実装されるプリンタドライバ拡張APIを介してアプリケーションへ通知することを特徴とする実施態様6に記載の印刷設定処理方法。
これにより、実施形態5と同様の効果を奏する。
〔実施態様11〕
実施態様6〜10のいずれかに記載の印刷設定処理方法を実行させるためのプログラムを格納したことを特徴とするコンピュータが読み取り可能な記憶媒体。
これにより、実施態様6〜10と同等の効果が期待できる。
〔実施態様12〕
実施態様6〜10のいずれかに記載の印刷設定処理方法を実行させることを特徴とするプログラム。
これにより、実施態様6〜10と同等の効果が期待できる。
本発明の第1実施形態を示すデータ処理装置を適用可能な印刷処理システムの構成を説明するブロック図である。 図1に示したRAMのメモリマップの一例を示す図である。 図1に示したホストコンピュータの各種のモジュールのプリント処理例を示す概念ブロック図である。 図3に示したアプリケーションと図2に示した印刷処理関連プログラムの概略構成を概念的に説明する図である。 本発明に係るデータ処理装置におけるデータ処理手順の一例を示すフローチャートである。 本発明に係るデータ処理装置におけるデータ処理手順の一例を示すフローチャートである。 図4に示したドライバ管理部が公開している設定変更処理に必要な関数情報を説明する図である。 図4に示したコンフリクトマネージャと推論エンジンとの関係を示す図である。 図4に示したドライバ管理部がコンフリクトマネージャから取得するコンフリクト情報の一例を示す図である。 本発明に係るデータ処理装置で読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
符号の説明
801 アプリケーション
901 コンフリクト処理ルール記述ファイル
902 推論エンジン
903 コンフリクトマネージャ
906 ドライバ管理部
908 コンフリクト処理ルールファイル
909 プラグインモジュール

Claims (12)

  1. アプリケーションからの印刷要求を処理するデータ処理装置であって、
    プリンタドライバ本体、および、プリンタドライバ本体の競合を評価するためのコンフリクト処理ルール、および、プリンタドライバ本体の機能を拡張するプラグインモジュールおよびそのプラグインモジュールの設定の競合を評価するためのコンフリクト処理ルールを記憶する記憶手段と、
    前記アプリケーションから印刷設定変更をドライバ管理部において受け付ける受付手段と、
    アプリケーションから前記受付手段が受け付けた印刷設定の変更指示が、プラグインモジュールに対するものか、プリンタドライバ本体に対するものかを判定する判定手段と、
    アプリケーションから前記受付手段が受け付けた印刷設定の変更指示が、プラグインモジュールに対するものであると前記判定手段が判定した場合は、プラグインモジュールにおける印刷設定の変更を指示し、アプリケーションから前記受付手段が受け付けた印刷設定の変更指示が、プリンタドライバ本体に対するものであると前記判定手段が判定した場合は、プリンタドライバ本体における印刷設定の変更を指示する指示手段と、
    前記指示手段がプラグインモジュールにおける印刷設定の変更を指示した場合は前記記憶手段に記憶されたプラグインモジュールの設定の競合を評価するためのコンフリクト処理ルールを用いた処理結果をドライバ管理部において取得し、前記指示手段がプリンタドライバ本体における印刷設定の変更を指示した場合は前記記憶手段に記憶されたプリンタドライバ本体の設定の競合を評価するためのコンフリクト処理ルールを用いた処理結果をドライバ管理部において取得する取得手段と、
    前記取得手段が取得した処理結果を応答情報として前記ドライバ管理部から前記アプリケーションに対して、アプリケーションとドライバ管理部の間に定義されるAPIを用いて通知する通知手段と、
    を有することを特徴とするデータ処理装置。
  2. 前記判定手段印刷設定を変更できないと判定した場合に、設定できない理由および設定不可状態を回避するための設定を示す情報から前記応答情報を前記通知手段が通知することを特徴とする請求項1記載のデータ処理装置。
  3. 前記通知手段は、設定できなかった理由として、以前に設定したために設定できなくなった別の設定値と、設定を可能にするために設定変更が必要な設定値とを含む応答情報を前記プリンタドライバを介して前記アプリケーションに対して通知することを特徴とする請求項1記載のデータ処理装置。
  4. 前記アプリケーションは、前記プリンタドライバを介して通知される応答情報に基づいて、設定のコンフリクトを回避するに有効な印刷設定値を前記プリンタドライバに再設定することを特徴とする請求項1〜3のいずれか1項に記載のデータ処理装置。
  5. 前記通知手段は、前記応答情報を、プリンタドライバの一部として又は、オペレーティングシステムの一部として実装されるプリンタドライバ拡張APIを介してアプリケーションに対して通知することを特徴とする請求項1に記載のデータ処理装置。
  6. アプリケーションからの印刷要求をプリンタドライバ本体と、プリンタドライバ本体の機能を拡張するプラグインモジュールおよびそのプラグインモジュールの設定の競合を評価するためのコンフリクト処理ルール、および、プリンタドライバ本体の競合を評価するためのコンフリクト処理ルールを用いて処理するデータ処理装置における印刷設定処理方法であって、
    前記アプリケーションから印刷設定変更をドライバ管理部において受け付ける受付ステップと、
    アプリケーションから前記受付ステップが受け付けた印刷設定の変更指示が、プラグインモジュールに対するものか、プリンタドライバ本体に対するものかを判定する判定ステップと、
    アプリケーションから前記受付ステップが受け付けた印刷設定の変更指示が、プラグインモジュールに対するものであると前記判定ステップが判定した場合は、プラグインモジュールにおける印刷設定の変更を指示し、アプリケーションから前記受付ステップが受け付けた印刷設定の変更指示が、プリンタドライバ本体に対するものであると前記判定ステップが判定した場合は、プリンタドライバ本体における印刷設定の変更を指示する指示ステップと、
    前記指示ステップがプラグインモジュールにおける印刷設定の変更を指示した場合は前記プラグインモジュールの設定の競合を評価するためのコンフリクト処理ルールを用いた処理結果をドライバ管理部において取得し、前記指示ステップにてプリンタドライバ本体における印刷設定の変更を指示した場合は前記プリンタドライバ本体の設定の競合を評価するためのコンフリクト処理ルールを用いた処理結果をドライバ管理部において取得する取得ステップと、
    前記取得ステップが取得した処理結果を応答情報として前記ドライバ管理部から前記アプリケーションに対して、アプリケーションとドライバ管理部の間に定義されるAPIを用いて通知する通知ステップと、
    を有することを特徴とする印刷設定処理方法。
  7. 前記判定ステップ印刷設定を変更できないと判定した場合に、設定できない理由および設定不可状態を回避するための設定を示す情報から前記応答情報を前記通知ステップが通知することを特徴とする請求項6記載の印刷設定処理方法。
  8. 前記通知ステップは、設定できなかった理由として、以前に設定したために設定できなくなった別の設定値と、設定を可能にするために設定変更が必要な設定値とを含む応答情報を前記プリンタドライバを介して前記アプリケーションに対して通知することを特徴とする請求項6記載の印刷設定処理方法。
  9. 前記アプリケーションは、前記プリンタドライバを介して通知される応答情報に基づいて、設定のコンフリクトを回避するに有効な印刷設定値を前記プリンタドライバに再設定することを特徴とする請求項6〜8のいずれか1項に記載の印刷設定処理方法。
  10. 前記通知ステップは、前記応答情報を、プリンタドライバの一部として又は、オペレーティングシステムの一部として実装されるプリンタドライバ拡張APIを介してアプリケーションに対して通知することを特徴とする請求項6に記載の印刷設定処理方法。
  11. 請求項6〜10のいずれか1項に記載の印刷設定処理方法をコンピュータに実行させるためのプログラムを格納したことを特徴とするコンピュータが読み取り可能な記憶媒体。
  12. 請求項6〜10のいずれか1項に記載の印刷設定処理方法をコンピュータに実行させるためのプログラム。
JP2004330476A 2004-11-15 2004-11-15 データ処理装置および印刷設定処理方法およびコンピュータが読み取り可能なプログラムを格納した記憶媒体およびプログラム Expired - Fee Related JP4438064B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004330476A JP4438064B2 (ja) 2004-11-15 2004-11-15 データ処理装置および印刷設定処理方法およびコンピュータが読み取り可能なプログラムを格納した記憶媒体およびプログラム
US11/274,596 US7808666B2 (en) 2004-11-15 2005-11-15 Data processing device, print setting processing method, storage device for storing computer-readable program and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004330476A JP4438064B2 (ja) 2004-11-15 2004-11-15 データ処理装置および印刷設定処理方法およびコンピュータが読み取り可能なプログラムを格納した記憶媒体およびプログラム

Publications (3)

Publication Number Publication Date
JP2006139675A JP2006139675A (ja) 2006-06-01
JP2006139675A5 JP2006139675A5 (ja) 2008-01-10
JP4438064B2 true JP4438064B2 (ja) 2010-03-24

Family

ID=36385935

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004330476A Expired - Fee Related JP4438064B2 (ja) 2004-11-15 2004-11-15 データ処理装置および印刷設定処理方法およびコンピュータが読み取り可能なプログラムを格納した記憶媒体およびプログラム

Country Status (2)

Country Link
US (1) US7808666B2 (ja)
JP (1) JP4438064B2 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8176210B2 (en) * 2006-11-22 2012-05-08 Ricoh Company, Ltd. Unified host application and associated methodology of integrating local service of a multi-function printer
US7855799B2 (en) * 2007-01-16 2010-12-21 Shah Pradip K Print workflow automation
NZ596755A (en) * 2009-06-08 2014-03-28 Sato Chishiki Zaisan Kenkyusyo System and method for injecting run-time programming code in a printing device
JP5278185B2 (ja) * 2009-06-12 2013-09-04 株式会社リコー 情報処理装置、インストーラプログラム、及び記憶媒体
JP5286240B2 (ja) * 2009-12-15 2013-09-11 京セラドキュメントソリューションズ株式会社 画像形成装置
JP5713641B2 (ja) * 2010-11-16 2015-05-07 キヤノン株式会社 印刷中継システム、および印刷中継システムの制御方法、およびプログラム
JP2012198674A (ja) * 2011-03-18 2012-10-18 Ricoh Co Ltd プリンタドライバ、情報処理装置、及び記録媒体
JP2013140423A (ja) * 2011-12-28 2013-07-18 Ricoh Co Ltd 情報処理装置及び印刷処理プログラム
US8724151B2 (en) * 2012-03-05 2014-05-13 Ricoh Company, Ltd. Enterprise cloud printing
JP2014106570A (ja) * 2012-11-22 2014-06-09 Ricoh Co Ltd 情報処理装置、ジョブ処理制御方法、及びジョブ処理制御プログラム
JP5727067B2 (ja) * 2014-04-09 2015-06-03 サトーホールディングス株式会社 印刷装置へランタイムプログラミングコードを導入するためのシステム及び方法
US9887878B2 (en) 2014-06-06 2018-02-06 Microsoft Technology Licensing, Llc Dynamic scheduling of network updates
US9491054B2 (en) * 2014-06-06 2016-11-08 Microsoft Technology Licensing, Llc Network-state management service
US9602351B2 (en) 2014-06-06 2017-03-21 Microsoft Technology Licensing, Llc Proactive handling of network faults
US9760316B2 (en) * 2015-03-27 2017-09-12 Konica Minolta Laboratory U.S.A., Inc. Method and system for managing software version compatibility amongst devices in a multi-device network environment
JP2021108000A (ja) * 2019-12-27 2021-07-29 キヤノン株式会社 プログラム及び制御方法
JP2023108441A (ja) * 2022-01-25 2023-08-04 ブラザー工業株式会社 サポートプログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3408124B2 (ja) * 1997-11-06 2003-05-19 シャープ株式会社 コンピュータシステムを利用した印刷処理装置
EP1211594A3 (en) * 2000-11-30 2006-05-24 Canon Kabushiki Kaisha Apparatus and method for controlling user interface
US7218976B2 (en) * 2001-04-27 2007-05-15 Canon Kabushiki Kaisha User interface control apparatus and method
US20030076512A1 (en) * 2001-10-23 2003-04-24 Laughlin John D. System and method to automatically scale preformatted text within an electronic document for printing
JP4371693B2 (ja) * 2003-04-25 2009-11-25 キヤノン株式会社 印刷制御装置、印刷制御方法及びコンピュータプログラム
JP4481800B2 (ja) * 2003-12-02 2010-06-16 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
US7467392B1 (en) * 2004-09-10 2008-12-16 Microsoft Corporation System and method for supporting new and existing extensions to application programming interfaces

Also Published As

Publication number Publication date
JP2006139675A (ja) 2006-06-01
US20060103869A1 (en) 2006-05-18
US7808666B2 (en) 2010-10-05

Similar Documents

Publication Publication Date Title
US7808666B2 (en) Data processing device, print setting processing method, storage device for storing computer-readable program and program
US7052192B2 (en) Print control system, information processing apparatus, function providing apparatus, print function display method, computer program, and computer-readable recording medium
JP4974909B2 (ja) 情報処理装置、印刷設定方法、記憶媒体、プログラム
US6965953B2 (en) Information processing apparatus, method for controlling information processing apparatus, and storage medium storing program for realizing the method
US7903272B2 (en) Data processing apparatus, print setting adjusting method, recording medium storing computer-readable program therein, and program
US8259315B2 (en) Information processing apparatus, print setting method, and storage medium for changing default setting information
US7280245B2 (en) Data processing apparatus adaptable to plural environments and data processing method
US7817294B2 (en) Data processing apparatus, print setting processing method, storing medium storing computer-readable program therein, and program
EP1398694B1 (en) Information processing method
KR100853913B1 (ko) 정보 처리 장치 및 정보 처리 방법
JP4785577B2 (ja) 情報処理装置及びその制御方法、プログラム
US7256901B2 (en) Printer driver customization using incremental custom print processor
US20050165979A1 (en) Peripheral device control method, control program, and apparatus therefor
JP4481800B2 (ja) 情報処理装置、情報処理方法及びプログラム
JP4590341B2 (ja) データ処理装置および設定処理方法および情報処理装置および制御プログラム
JP2005173701A (ja) 情報処理装置、情報処理方法及びそのプログラム
JP4425808B2 (ja) 印刷情報処理装置、印刷情報処理プログラム及び記録媒体
JP3733290B2 (ja) 印刷制御装置および印刷制御方法および記憶媒体
US20040263892A1 (en) Information processisng apparatus, information processing method, and control program
JP2007207003A (ja) 情報処理装置、ドライバ設定方法、記憶媒体、プログラム
JP2008059484A (ja) 情報処理装置、ドライバ処理方法、記憶媒体、プログラム
JP2006085253A (ja) 情報処理装置および印刷制御方法およびコンピュータが読み取り可能なプログラムを格納した記憶媒体およびプログラム
JP4313998B2 (ja) ホストコンピュータ及びその制御方法、プログラム並びに記憶媒体
JP2007079743A (ja) 情報処理装置及びその制御方法、プログラム
JP2006154990A (ja) データ処理装置および印刷設定方法およびコンピュータが読み取り可能なプログラムを格納した記憶媒体およびプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071115

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071115

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20071115

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080220

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091209

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: 20091222

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091226

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130115

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140115

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees