JP2012234399A - 情報処理装置、情報処理方法、及びプログラム - Google Patents

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

Info

Publication number
JP2012234399A
JP2012234399A JP2011103005A JP2011103005A JP2012234399A JP 2012234399 A JP2012234399 A JP 2012234399A JP 2011103005 A JP2011103005 A JP 2011103005A JP 2011103005 A JP2011103005 A JP 2011103005A JP 2012234399 A JP2012234399 A JP 2012234399A
Authority
JP
Japan
Prior art keywords
application
user interface
printer driver
identifier
driver
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.)
Granted
Application number
JP2011103005A
Other languages
English (en)
Other versions
JP5787606B2 (ja
JP2012234399A5 (ja
Inventor
Akihiro Mitsui
章弘 三井
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 JP2011103005A priority Critical patent/JP5787606B2/ja
Priority to CN201210134592.7A priority patent/CN102768619B/zh
Priority to US13/459,709 priority patent/US9785445B2/en
Priority to KR1020120045208A priority patent/KR101452572B1/ko
Priority to EP12166309.0A priority patent/EP2521027B1/en
Publication of JP2012234399A publication Critical patent/JP2012234399A/ja
Publication of JP2012234399A5 publication Critical patent/JP2012234399A5/ja
Application granted granted Critical
Publication of JP5787606B2 publication Critical patent/JP5787606B2/ja
Priority to US15/698,524 priority patent/US10152332B2/en
Priority to US16/175,428 priority patent/US11016782B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • 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
    • 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • 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/1211Improving printing performance
    • 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
    • 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/147Digital output to display device ; Cooperation and interconnection of the display device with other functional units using display panels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • 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/1205Improving or facilitating administration, e.g. print management resulting in increased flexibility in print job configuration, e.g. job settings, print requirements, job tickets
    • 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/1206Improving or facilitating administration, e.g. print management resulting in increased flexibility in input data format or job format or job type
    • 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/1224Client or server resources management
    • G06F3/1225Software update, e.g. print driver, modules, plug-ins, fonts

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

【課題】 アプリケーションと同一プロセスでユーザーインターフェースを表示していたので、プリンタードライバーがクラッシュするとアプリケーションも巻き込まれて終了してしまっていた。
【解決手段】 インストール時にプリンタードライバーとアドバンスドUIアプリケーションを関連づけ、プリンタードライバーが呼び出されると、COMを使ってアドバンスドUIアプリケーションを別プロセスで起動する。
【選択図】 図15

Description

本発明は、アプリケーションが実行するプロセスとは異なるプロセスで、プリンタードライバーのユーザーインターフェースを起動する情報処理装置、情報処理方法、及びプログラムに関するものである。
プリンタードライバーは詳細な印刷設定を行うために、専用のユーザーインターフェースを持っている。アプリケーションはオペレーティングシステムを介してプリンタードライバーのユーザーインターフェースを表示するが、プリンタードライバーはアプリケーションのプロセス内でロードされている。アプリケーションと同一プロセスでユーザーインターフェースを表示するので、印刷設定データの相互通信が容易であり、ユーザーインターフェース操作中はアプリケーションの操作を止めるモーダルダイアログになる。このようにアプリケーションとプリンタードライバーが一体化したように扱うことができるのが、同一プロセス実行のメリットである。しかし、プリンタードライバーのユーザーインターフェースに不具合があってクラッシュした場合、アプリケーションと同一プロセスであるがために、アプリケーションまで巻き込んでクラッシュしてしまう。
プリンタードライバーだけでなくアプリケーションも含めて、同一プロセスの問題に対処するために、サンドボックスと呼ばれる異なるプロセスで動作させるシステムが存在する。複数のウェブページが同時に閲覧できるタブを持ちそれぞれのタブを別プロセスで動作させるブラウザや、ファイルを開くたびに別のプロセスで起動するアプリケーションなどが知られている。また、プリンタードライバーであっても、アプリケーションの描画データをプリンター言語に変換するレンダリング部を別プロセスにしたり、デバイスと双方向通信してステータスを逐次監視するアプリケーションを別プロセスで起動したりするものがある(特許文献1)。
しかし、プリンタードライバーのユーザーインターフェースについては、別プロセスで起動する対策が難しい。オペレーティングシステムがベースとなるユーザーインターフェースを構築し、プリンタードライバーはそのベース上に追加するシステムになっているからである。そこで、アプリケーションがプリンタードライバーのユーザーインターフェースを呼び出す際に別のサービスを起動し、サービスがプリンタードライバーのユーザーインターフェースを表示する方法がある(特許文献2)。また、プリンタードライバーのユーザーインターフェースをダミーで開いたあとにすぐ閉じて、そのあとで別プロセスを起動する方法が知られている。
特許第4661939 特開平11−143664号公報
しかしながら、アプリケーションが別のサービスを起動する方法では、すべてのアプリケーションがこの呼び出し方に対応するように変更を加えなければならない。また、ダミーのユーザーインターフェースを開く方法では、一度ユーザーインターフェースを閉じるという余計な動作が入り、ユーザーにとってはわずらわしい。ほかにも、オペレーティングシステムがユーザーインターフェースを提供し、そこにプリンタードライバーがユーザーインターフェースを後からシートとして追加する場合は、正しく動作しなくなってしまう。
上記課題を解決するために本発明の情報処理装置は、
プリンタードライバーをインストールする際に、プリンタードライバーのセットアップファイルから識別子を取得する取得手段と、
データベースにあるインストールされるプリンタードライバーの機種に関連付けられたドライバ情報に前記取得手段により取得された識別子を追加する追加手段と、
ユーザーインターフェースアプリケーションをインストールする際に、データベースにユーザーインターフェースアプリケーションのパスと識別子を書き込む書き込み手段と、
アプリケーションからプリンタードライバーのユーザーインターフェースを表示するように呼び出された際、データベースにある呼び出されたプリンタードライバーの機種に関連付けられたドライバ情報に識別子が登録されているかどうかを判定する判定手段と、
前記判定手段によりデータベースに識別子が登録されていると判定された場合、識別子を使用してユーザーインターフェースアプリケーションのパスを取得し、アプリケーションプロセスと別のプロセスでユーザーインターフェースアプリケーションを起動する起動手段と、を備えることを特徴とする。
本発明により、アプリケーションと別のプロセスでプリンタードライバーのユーザーインターフェースが起動するので、アプリケーションまで巻き込んでクラッシュすることがなくなる。
本発明の一実施形態としての、コンピューターシステムのハードウェアとソフトウェアのブロック構成図である。 本発明の一実施形態としての、クライアントとサーバー、そしてプリンターが接続されたネットワークの構成図である。 本発明の一実施形態としての、一般的なコンピューターを用いた印刷処理システムのブロック構成図である。 本発明の一実施形態としての、XPS印刷処理システムのブロック構成図である。 本発明の一実施形態としての、印刷設定であるDEVMODE構造体のデータ構造を示したブロック構成図である。 本発明の一実施形態としての、XPS印刷処理システムで使用される印刷設定であるXML形式のプリントチケットの一例である。 本発明の一実施形態としての、プリンタードライバーのユーザーインターフェースである。 本発明の一実施形態としての、アプリケーションプロセスとは異なるアドバンスドUIアプリケーションのプロセスでユーザーインターフェースが動作しているときのブロック構成図である。 本発明の一実施形態としての、プリンタードライバーにアドバンスドUIアプリケーションのCLSIDが追加された、セットアップインフォメーションファイルの一例である。 本発明の一実施形態としての、オペレーティングシステムが、プリンタードライバーをインストールするときのフローチャートである。 本発明の一実施形態としての、アドバンスドUIアプリケーションのインストーラーが、アドバンスドUIアプリケーションをインストールするときのフローチャートである。 本発明の一実施形態としての、オペレーティングシステムが、プリンタードライバーのユーザーインターフェースを開くときのフローチャートである。 本発明の一実施形態としての、COMプロキシがCOMスタブを呼び出してプロセス間通信を行うときのフローチャートである。 本発明の一実施形態としての、COMスタブがCOMプロキシから呼び出されてプロセス間通信を行うときのフローチャートである。 本発明の一実施形態としての、アドバンスドUIアプリケーションが動作するときのフローチャートである。 本発明の一実施形態としての、プリントマネージャが、アドバンスドUIアプリケーションを呼び出すときのAPI呼び出しの一例、アドバンスドUIアプリケーションが、プリントマネージャにインターフェースを渡すときのAPI呼び出しの一例である。 本発明の一実施形態としての、XPS印刷システムにおいて、アドバンスドUIアプリケーションが、フィルタパイプラインマネージャにデータを渡すときのブロック構成図である。 本発明の一実施形態としての、XPS印刷システムにおいて、アドバンスドUIアプリケーションが、フィルタパイプラインマネージャにデータを渡すときのフローチャートである。 本発明の一実施形態としての、プリンタードライバーにおいて、共有プリンターを利用するための、オペレーティングシステムのユーザーインターフェースである。 本発明の一実施形態としての、アドバンスドUIアプリケーションがあるプリンタードライバーにおいて、共有プリンターを禁止するオペレーティングシステムのユーザーインターフェースである。 本発明の一実施形態としての、オペレーティングシステムが、共有プリンターのユーザーインターフェースを表示するときのフローチャートである。 本発明の一実施形態としての、アドバンスドUIアプリケーションがあるプリンタードライバーにおいて、ジョブの設定確認を行うときのオペレーティングシステムのユーザーインターフェースである。 本発明の一実施形態としての、アドバンスドUIアプリケーションがあるプリンタードライバーにおいて、デバイスの設定を行うときのオペレーティングシステムのユーザーインターフェースである。 本発明の一実施形態としての、オペレーティングシステムが、プリンタードライバーのユーザーインターフェースを表示するときのフローチャートである。 本発明の一実施形態としての、オペレーティングシステムが、アドバンスドUIアプリケーションを含んだプリンタードライバーをインストールするときのフローチャートである。 本発明の一実施形態としての、プリンタードライバーにアドバンスドUIアプリケーションが含まれた、セットアップインフォメーションファイルの一例である。
[実施例1]
以下、本発明を実施するための最良の形態について図面を用いて説明する。
図1は本発明の実施形態を示す一般的なコンピューターを用いたシステムのブロック構成図である。なお、特に断らない限り、本発明の機能が実行されるのであれば、単体の機能であっても、複数の機器からなるシステムであっても、ネットワークを介して接続がなされ処理が行われるシステムであっても、本発明を適用できることは言うまでもない。
CPU101は主記憶装置102のROM1021あるいはRAM1022あるいは補助記憶装置105に格納されたプログラムに従って装置全体の制御を行う。RAM1022はCPU101が各種処理を行う際のワークエリアとしても使用される。補助記憶装置105はオペレーティングシステム(OS)1053やアプリケーションソフト1051等を記録する。キーボード1031やマウス・タッチパネルなどに代表されるポインティングデバイス1032などの入力機器は、入力I/F103を通じて、ユーザーがコンピューターに対して各種指示を与えるためのデバイスである。出力I/F104は、データを外部に出力するためのインターフェースであり、モニタ1041やプリンター1042などの出力機器に対してデータを出力する。プリンター1042とは直接接続されるローカルI/Oのみならず、通信I/F106を通じて接続されるネットワーク1061を通して接続されていてもよい。また、107は共通データシステムバスで、モジュール間でそれぞれのデータのやりとりを行う。
図2は本発明の実施の形態におけるネットワーク1061の環境を簡略した図である。印刷を行う文書や画像を作成するクライアントコンピュータ201/202が単体もしくは複数ネットワークに接続されている。また、クライアントのユーザーやプリンターを管理するサーバーコンピュータ203が接続されていることもある。プリンター204/205が単体もしくは複数ネットワークに接続されており、プリンター205のように物理的に接続されていても実際には使用できないオフライン状態であることもある。ネットワークにはPAN(Personal Area Network)、LAN(Local Area Network)、MAN(Metropolitan Area Network)、WAN(WIDe Area Network)などの小規模から大規模までのネットワークがあり、これらの機器がすべてのネットワークに接続されている。クラウドなど、サーバーやプリンターがインターネットを越えて接続されていてもかまわない。
図3において、一般的なコンピューターを用いた印刷処理システムを示す。アプリケーション1051と、プリンタードライバー1052、オペレーティングシステム1053は、図1の補助記憶装置105に格納されている。グラフィックスエンジン302、プリントマネージャ306はオペレーティングシステム1053に含まれるモジュールである。ユーザーはキーボード1031やマウス1032などといった入力装置を使用して、出力装置のモニタ1041に映し出されたアプリケーションプログラム1051を使用して作成した文書301の印刷処理を実行する。印刷処理はプリンターの選択、印刷設定の作成、描画データの変換と3つの処理を順番に行うことで実行される。まずは、プリンターの選択として、印刷を実行するプリンター1042に対応したプリンタードライバー1052を選択する。次に印刷設定3012の作成を行う。文書の印刷設定3012はプリンタードライバー1052のコンフィギュレーションモジュール304によって初期値が作成される。作成された印刷設定3012をアプリケーション1051もしくはプリンタードライバー1052のユーザーインターフェースを使用してユーザーが望む最終印刷結果になるように変更して設定を行う。たとえば、出力する用紙サイズを変更したり、両面印刷、白黒印刷を行なうといった設定である。プリンタードライバー1052のユーザーインターフェースは、コンフィギュレーションモジュール304かアドバンスドUIアプリケーション(ユーザーインターフェースアプリケーション)311のどちらかが提供する。印刷設定3012はRAM1022上に確保されるが、保存する形式はバイナリのデータ構造体であったり、マークアップ言語のXMLであったりする。この形態はプリンタードライバー1052やオペレーティングシステム1053の仕様によって異なる。印刷設定3012は文書印刷のたびに作成する。しかしながら、プリンター1042のオプション機器構成や、ユーザーごとの環境設定など設定を保持しておきたいものは、プリンタードライバー1052がオペレーティングシステム1053のレジストリデータベース308に保存する。印刷設定3012のユーザーごとのデフォルト値はオペレーティングシステム1053のプリントマネージャ306が、レジストリデータベース308に保存する。最後に描画データの変換を行う。印刷設定3012が作成し終わったら、ユーザーによって印刷処理が実行され、オペレーティングシステム1053に印刷処理を通知する。オペレーティングシステム1053はグラフィックスエンジン302を通じて、指定されたプリンタードライバー1052への描画を行う。印刷設定3012でレイアウト処理が指定されている場合は、プリンタードライバー1052のレンダリングモジュール303に行く前に一時的なスプールファイル307を作成し、レイアウトモジュール309を起動する。レイアウト処理とは用紙の順番を入れ替えたり、一枚の用紙に複数ページを貼り付けたりする処理を指す。レイアウトモジュール309はレイアウトを変更した後、プリンタードライバー1052への描画を再度行う。描画データが送られてきたプリンタードライバー1052はレンダリングモジュール303によって、プリンターが理解できるデータ言語すなわちプリンター制御言語に変換する。このとき印刷設定3012も、プリンター制御言語として変換する。レンダリングモジュール303、コンフィギュレーションモジュール304はともに複数の種類のプリンター1042に対して共通のモジュールであることが多く、機種ごとの違いは機種依存データファイル305に記述されている。レンダリングモジュール303、コンフィギュレーションモジュール304は適宜、この機種依存データファイル305を参照する。変換されたデータはスプールファイル307として逐次保存していく。プリントマネージャ306はスプールファイル307を取得し、印刷ジョブファイルとして印刷処理のスケジュール管理を行う。プリンターが印刷できる状態になったら、プリントマネージャ306はI/Oモジュール310を介してプリンター1042に印刷ジョブデータを送信する。このようにして、アプリケーションからの印刷データがプリンター言語に変換されて印刷を行う。
文書301の印刷設定3012を作成するには、アプリケーションによって印刷設定3012を直接書き換えるか、プリンタードライバー1052のコンフィギュレーションモジュール304もしくはアドバンスドUIアプリケーション311が提供するユーザインタフェース(図7)を使用する。印刷設定3012はMicrosoft(登録商標)Windows(登録商標)オペレーティングシステムでは、DEVMODE構造体と呼ばれる図5の構造をしている。DEVMODE構造体はオペレーティングシステムで公開定義されている標準の設定領域501と、プリンタードライバーが拡張した設定領域502に分けられている。標準の設定領域501には、用紙サイズや給紙段の切り替え、カラー白黒の切り替えなど印刷の基本的な設定の値がある。拡張した設定領域502には、プリンターのオプションに応じた排紙機能や、細かい色調整機能などの値がある。アプリケーションは各プリンタードライバー1052が持つ拡張設定を知ることはできないので、直接印刷設定を書き換えることができるのは、システムで定義されている標準の設定領域501だけとなる。そこで、アプリケーションはプリンタードライバー1052のユーザーインターフェースを表示させて、拡張された印刷設定502をユーザーに行わせるのが一般的である。コンフィギュレーションモジュール304はユーザーインターフェースだけではなく、アプリケーションプログラムインタフェース(API:Application Programming Interface)も提供している。なので、ユーザーインターフェースを表示せずに拡張された印刷設定502を外部から設定することも可能である。しかし、コンフィギュレーションモジュール304のAPIを使用する場合はアプリケーションがプリンタードライバー1052ごとに対応しなければならないので、一般的なアプリケーションは標準の設定領域501のみ変更を行う。
もうひとつ、本発明を適用できる別の印刷システムを説明する。図3はGDI印刷システムと呼ばれるのに対し、図4はXPS印刷システムのブロック構成図である。XPS印刷システムはXML Paper Specificationと呼ばれる文書ファイルフォーマットをスプールデータとして使用し、印刷を行うシステムである。XPS印刷システムもGDI印刷システムと同じく、オペレーティングシステム1053上で動作している。プリントマネージャ306、GDItoXPS変換モジュール405、フィルタパイプラインマネージャ409はオペレーティングシステム1053に含まれるモジュールである。プリンタードライバー1052とフィルタパイプラインマネージャ409の各フィルタは、図1の補助記憶装置105にプリンタードライバー1052として格納されている。フィルタパイプラインマネージャ409はオペレーティングシステムに含まれるが、各フィルタはプリンタードライバー1052のモジュールである。GDI印刷アプリケーション401とXPS印刷アプリケーション402は、図1の補助記憶装置105にアプリケーション1051として格納されている。ユーザーはキーボード1031やマウス1032などといった入力装置を使用して、出力装置のモニタ1041に映し出されたGDI印刷アプリケーションプログラム401(以下、GDIアプリと略す)、もしくはXPS印刷アプリケーションプログラム402(以下、XPSアプリと略す)から印刷処理を実行する。印刷処理はプリンターの選択、印刷設定の作成、描画データの変換と3つの処理を順番に行うことで実行する。
まずは、印刷したいプリンター1042の選択をする、これは、印刷を実行するプリンター1042に対応したプリンタードライバー1052を選択することと同義である。次に印刷設定を作成する。印刷設定はアプリケーションが印刷設定用のメモリを確保し、アプリケーションかプリンタードライバーのコンフィギュレーションモジュール304が、機種依存ファイル305を利用して設定データを埋めるという形で行われる。GDIアプリ401では印刷設定データとしてバイナリのDEVMODE構造体403を用い、XPSアプリ402ではマークアップ言語のXMLで記載されたプリントチケット404を用いる。DEVMODE構造体403もプリントチケット404も、図5の構造のように、オペレーティングシステムが定義する標準領域とプリンタードライバーが独自で定義する拡張領域を持つ。また、プリントチケット404は、図6にあるようなXML形式で記述された印刷設定情報であるので、標準領域と拡張領域は名前空間によって記載が分かれている。このDEVMODE構造体403もしくはプリントチケット404が印刷設定を保持しており、アプリケーションが直接書き換えることで印刷設定を変更する。プリンター1042に依存した専用の設定は、コンフィギュレーションモジュール304もしくはアドバンスドUIアプリケーション311が持つプリンタードライバー1052のユーザインタフェース(図7)を表示して行う。プリンタードライバー1052は、ユーザーインターフェースの設定に従い、DEVMODE構造体403もしくはプリントチケット404のプリンター1042に依存した設定を変更する。印刷設定とは具体的に、出力する用紙サイズを「A4」にする、両面印刷を行う、カラーと白黒を切り替える、給紙段を指定するなどといった印刷を行うのに必要なデータのことを指す。プリントチケット404は印刷設定がXML形式で記述されているので、XPSアプリ402がすべての設定値を直接変更して書き換えることは容易だが、従来のようにプリンタードライバー1052のユーザーインターフェースを使って設定変更してもかまわない。印刷設定は文書印刷のたびに作成するが、プリンター1042のオプション機器や、ユーザーごとの環境設定など設定を保持しておきたいものは、ユーザーインターフェースがオペレーティングシステムのレジストリデータベース308に保存する。印刷設定のユーザーごとのデフォルト値はオペレーティングシステムのプリントマネージャ306が、レジストリデータベース308に保存する。最後に描画データの変換を行う。印刷設定が確定したら、ユーザーはアプリケーションから印刷処理を実行する。GDIアプリ401から印刷する場合は、プリンタードライバーの形態を取るGDItoXPS変換モジュール405に描画データが送られ、XPSスプールファイル407が作成される。このときGDItoXPS変換モジュール405はコンフィギュレーションモジュール304を呼び出し、印刷設定をDEVMODE構造体403からプリントチケット404に変換する。XPSアプリ402から印刷する場合は、XPSファイルをXPSアプリ自身が生成するのと、オペレーティングシステムがXPSアプリからの描画命令に応じてXPSファイルを生成するのと2通りの方法がある。どちらの方法であっても、印刷の途中でXPSスプールファイル407を生成する。このようにXPS印刷システムは、印刷時に必ずXPSスプールファイル407を生成するのが特徴である。
XPSスプールファイル407が生成されたら、プリントフィルタパイプラインプロセスに処理が渡される。プリントフィルタパイプラインプロセスは複数のフィルタを通すことで印刷が行われる仕組みで、フィルタコンフィギュレーションファイル413でフィルタの数や順番を制御する。プリントフィルタパイプラインプロセスで動作するフィルタパイプラインマネージャはフィルタコンフィギュレーションファイル413に従って、この実施例では設定フィルタ410、レイアウトフィルタ411、レンダラフィルタ412の順に処理を行う。フィルタはプリンタードライバー1052の構成によって、数や種類が異なる。印刷処理はXPSスプールファイル407をフィルタに受け渡すことで行われ、フィルタがそれぞれXPSスプールファイル407を加工し次のフィルタに渡していくことで処理が進む。最後にはプリンターが理解できるデータ言語であるプリンター制御言語(以下、PDL(Page Description Language)と略す)となって出力される。もちろんプリンター1042がXPSスプールファイル407を直接読み込んで印刷できるXPSダイレクトプリンタであれば、すべてのフィルタをスルーして印刷してもよい。設定フィルタ410ではプリントチケットを読み込んで印刷に必要なデータをプリントチケットに書き込む処理を行う。レイアウトフィルタ411では倍率の変更や製本の面付けレイアウトやスタンプなどレイアウトに関する処理を行う。レイアウトフィルタ411では、XPSスプールファイル407に含まれる印刷設定プリントチケット404に従って動作する。そのため、たとえば面付けの設定がプリントチケット404に存在しないときは、レイアウトフィルタ411は何も動作せずスルーして、次のフィルタにXPSスプールファイル407をそのまま渡す。最後のレンダラフィルタ412では、XPSスプールファイル407をレンダリングしてPDLに変換する。PDLデータは印刷処理のスケジュール管理を行うプリントマネージャ306で管理され、キュー(待ち行列)に印刷ジョブが次々と登録される。プリンター1042が印刷できる状態になったら、キューに登録した順にPDLデータをI/Oモニタ310を通して送信する。このようにして、アプリケーションからの印刷データをプリンター言語に変換することがプリンタードライバーの主な役目であり、印刷処理が行われる。
次にプリンタードライバー1052とアドバンスドUIアプリケーション311の関連付けを説明する。
まずは、プリンタードライバー1052のインストールを図10のフローチャートに従って説明する。プリンタードライバー1052は図9のセットアップインフォメーションファイル(以下、INFファイル)に従ってオペレーティングシステム1053へインストールされる。INFファイルには、プリンターの機種名や構成するファイル、バージョンなどプリンタードライバー1052をインストールするために必要な情報が記載されている。プリンタードライバー1052のインストールセットは、INFファイルとプリンタードライバー1052を構成する各種ファイルが集まって、ひとつのセットになっている。オペレーティングシステム1053は、プリンタードライバー1052のインストールが開始されると(S1001)、指定された機種のプリンタードライバー1052のインストールセットを探す。インストールセットはオペレーティングシステム1053に組み込まれているものを使用するが、ユーザーによって指定されるか、あらかじめ特定された配信サーバーなどから提供されることもある。オペレーティングシステム1053は、インストールセットに含まれるINFファイルを元にファイルをコピーし、レジストリデータベース308に必要なドライバ情報を書き込むことで、通常のプリンタードライバーのインストールが完了する(S1002)。ここで、INFファイルの中に、アドバンスドUIアプリケーション311のCLSIDが記載されているかどうかを確認する(S1003)。CLSIDとはUUID(Universally Unique Identifier)の一種で、16バイトの数値で構成され、世界で一意な識別子である。CLSIDはアドバンスドUIアプリケーション311を識別するために、使用するアドバンスドUIアプリケーション311に割り当てられたCLSIDをセットアップファイルに記載しておく。図9ではAdvancedUICLSIDというキーが、アドバンスドUIアプリケーション311のCLSIDに該当する。アドバンスドUIアプリケーション311のCLSIDが存在すれば、オペレーティングシステム1053はINFファイルからCLSIDを取得する(S1004)。オペレーティングシステム1053は、アドバンスドUIアプリケーション311のCLSIDを、レジストリデータベース308にあるプリンター機種ごとのドライバ情報に、追加して記載しておく(S1005)。これで、プリンタードライバー1052のインストールが完了する。
次にアドバンスドUIアプリケーション311のインストールを、図11のフローチャートと図15のフローチャートの一部を使用して説明する。アドバンスドUIアプリケーション311は、プリンタードライバー1052のインストールセットとは別に、インストーラーとアドバンスドUIアプリケーション311の構成ファイルからなるアドバンスドUIアプリケーションのインストールセットが存在する。ユーザーがインストーラーを実行すると、まずインストーラーはアドバンスドUIアプリケーション311と構成ファイルをユーザーに指定されたアプリケーションを格納するフォルダにコピーする(S1101)。次に、インストーラーは、引数として/RegSvrオプションをつけてアドバンスドUIアプリケーション311を起動する(S1102)。起動されたアドバンスドUIアプリケーション311は、/RegSvrオプションをつけて起動されているかどうかを判定する(S1501)。アドバンスドUIアプリケーション311は、/RegSvrオプションがついていれば、COM(Component Object Model)のアウトプロセスサーバーとして、レジストリデータベース308に情報を書き込む(S1502)。COMはMicrosoft社のソフトウェア同士の通信技術で、通信する各ソフトウェアコンポーネントは一意のCLSIDによって識別される。アウトプロセスサーバーとは、呼び出したプロセスと別のプロセスで動作するコンポーネントであり、アドバンスドUIアプリケーション311はアウトプロセスサーバーであることを明示する。レジストリデータベース308に書き込む情報としては、アプリケーション名を含んだフルパスと、アドバンスドUIアプリケーションのCLSID、そしてアウトプロセスサーバーであることを示す“LocalServer32”の文字列である。このCLSIDは図9のINFファイルで指定したCLSIDと同一のものでなければならない。これで、アドバンスドUIアプリケーション311のインストールが完了する。
プリンタードライバー1052のインストールによって取得したCLSIDと、アドバンスドUIアプリケーション311のインストールによって記載されたCLSIDが同一であることから、オペレーティングシステム1053は両者を関連付けることができる。
次にアプリケーション1051から、プリンタードライバー1052のユーザーインターフェースを表示するフローを、図8のブロック構成図と、図12、図15のフローチャートで説明する。
オペレーティングシステム1053のモジュールであるプリントマネージャ306は、アプリケーション1051からプリンタードライバー1052のユーザーインターフェースを表示するAPIの呼び出しを受け取る(S1201)。そのとき、プリントマネージャ306は、アプリケーション1051から引数として印刷設定のDEVMODE構造体も受け取る。これは、受け取った印刷設定のDEVMODE構造体に従ってユーザーインターフェースを構築することで、現在の印刷設定をユーザーに見せることができるためである。また、プリントマネージャ306は、アプリケーション1051からどのプリンタードライバー1052を使用するのかを指定する機種情報も受け取る。これは、複数のプリンタードライバー1052がオペレーティングシステム1053にインストールされていたときに、どのプリンタードライバー1052を使用するのかを明確にするためである。プリントマネージャ306は、アプリケーション1051から受け取った機種情報を元に、レジストリデータベース308を検索する。レジストリデータベース308にはプリンタードライバー1052のインストール時に記載されたドライバ情報が書き込まれており、プリントマネージャ306は指定された機種情報に応じたドライバ情報を取得する(S1202)。プリントマネージャ306は取得したドライバ情報の中にアドバンスドUIアプリケーションのCLSIDがあるかどうかを判定する(S1203)。なければ、プリントマネージャ306は、プリンタードライバー1052のコンフィギュレーションモジュール304のユーザーインターフェースを開くために、CPSUI801を呼び出す(S1212)。CPSUI(Common Property Sheet User Interface)801は、プロパティシートのベースとなる土台を作成し、コンフィギュレーションモジュール304にユーザーインターフェースの作成を依頼する。コンフィギュレーションモジュール304は機種依存データファイル305を使用して、プリンターの機種に応じたユーザーインターフェースを表示する。すなわちアプリケーション1051と同一プロセスでユーザーインターフェースモジュールを起動する。アドバンスドUIアプリケーションのCLSIDが存在するときは、プリントマネージャ306はCLSIDとアウトプロセスサーバーで起動することを引数に指定してオペレーティングシステム1053のAPIを呼び出す(図16(1))。プリントマネージャ306はオペレーティングシステム1053のAPIの中で、指定されたCLSIDを検索キーにしてレジストリデータベース308を検索する。プリントマネージャ306はオペレーティングシステム1053のAPIの中で、アドバンスドUIアプリケーション311がすでにインストールされていれば、レジストリデータベース308からアドバンスドUIアプリケーション311のファイル名を含むフルパスを取得できる(S1204)。もし、存在しない場合はCLSIDが存在しなかったときと同じく、プリンタードライバーのユーザーインターフェースを表示する。これは、INFファイルにCLSIDが記載されているのに、アドバンスドUIアプリケーション311がインストールされていない環境で発生する。フルパスを取得したら、プリントマネージャ306はオペレーティングシステム1053のAPIの中から、アドバンスドUIアプリケーション311をアプリケーション1051と異なるプロセスで起動する(S1205)。起動されたアドバンスドUIアプリケーション311は、/RegSvrオプションがついていないので(S1501)、ウィンドウを作成する(S1503)。この時点で作成したウィンドウはまだ表示してはおらず、メッセージループでプリントマネージャ306からの応答を待つために作成しているだけである。アドバンスドUIアプリケーション311は、アドバンスドUIアプリケーション311のインターフェースオブジェクトを作成し、インターフェースオブジェクトを引数に指定してオペレーティングシステム1053のAPIを呼び出す(S1504と図16(2))。すると、プリントマネージャ306は、アドバンスドUIアプリケーション311のインターフェースを受け取ることができる(S1206)。インターフェースを受け取ったプリントマネージャ306は、DEVMODE構造体をプリントチケットに変換する(S1207)。プリントマネージャ306は、コンフィギュレーションモジュール304を呼び出すことで、プリントチケットへの変換を行う。DEVMODE構造体のようなバイナリデータのままでは、異なるプロセス間のデータを送受信するのに不都合なため、テキスト形式のマークアップ言語XMLのプリントチケットへ変換する。プリントマネージャ306は、プリンター機種、CLSIDを元に取得したドライバ情報、プリントチケット、イベント情報を、受け取ったインターフェースの引数として、インターフェースのメソッドを呼び出す(S1208)。イベント情報とは、アプリケーション1051がプリンタードライバー1052に対してどのようなユーザーインターフェースを表示するかの情報である。プリンタードライバーのユーザーインターフェースは1つではなく、印刷設定を行うユーザーインターフェース、デバイス設定を行うユーザーインターフェース、ジョブの印刷設定の確認を行うユーザーインターフェースが存在する。このうち、どのユーザーインターフェースを表示するのかをイベント情報として、アドバンスドUIアプリケーション311に通知する必要があるからである。アドバンスドUIアプリケーション311はインターフェースの呼び出しを受け取り、UIのイベントかどうかを判定する(S1505)。アドバンスドUIアプリケーション311は、UIのイベントであることが確認できたら、呼び出されたインターフェースから、プリンター機種、ドライバ情報、プリントチケットを取得する(S1506)。次にアドバンスドUIアプリケーション311は、UIイベントの種類を判定し、表示するユーザーインターフェースを決定する。アドバンスドUIアプリケーション311はアプリから印刷設定のユーザーインターフェースが呼び出されたときは(S1507)、印刷設定のユーザーインターフェースを表示する(S1508)。アドバンスドUIアプリケーション311はデバイス設定のユーザーインターフェースが呼び出されたときは(S1509)、デバイス設定のユーザーインターフェースを表示する(S1510)。アドバンスドUIアプリケーション311はジョブ設定のユーザーインターフェースが呼び出されたときは(S1511)、ジョブ設定のユーザーインターフェースを表示する(S1512)。アドバンスドUIアプリケーション311は取得したプリンター機種とドライバ情報、プリントチケットに基づいてユーザーインターフェースを表示する。表示に使用する印刷設定の項目や、設定項目同士の禁則などのロジックについては、アドバンスドUIアプリケーション311はプリンタードライバー1052を呼び出してデータの取得や制御を行う。アドバンスドUIアプリケーション311は、プリンタードライバー1052のコンフィギュレーションモジュール304のユーザーインターフェースを表示することもできる。しかしながら、自分でユーザーインターフェースを表示することによって、コンフィギュレーションモジュール304からユーザーインターフェースをなくすことができる。このようにすることで、プリンタードライバー1052のコンフィギュレーションモジュール304は印刷設定のみにすることができ、プリンタードライバー1052を更新することなく、ユーザーインターフェースを自由に組み替えることができるようになる。もちろん、アドバンスドUIアプリケーション311が直接プリンタードライバーを呼び出すのではなく、インターフェースを通じてプリンタードライバーを呼び出すためのドライバーインターフェースを渡してもらうことも可能である。このドライバーインターフェースを通じて、アドバンスドUIアプリケーション311は、印刷設定の項目や、設定項目同士の禁則をすることもできる。ユーザーがユーザーインターフェースで印刷設定を終えたら、アドバンスドUIアプリケーション311は、ユーザーインターフェースを閉じてウィンドウを破棄する(S1513)。アドバンスドUIアプリケーション311は、ユーザーインターフェースの設定を、インターフェースで渡されたプリントチケットに反映する(S1514)。アドバンスドUIアプリケーション311は、プリントチケットに反映できないデータについては、レジストリデータベース308に保存する(S1515)。プリントチケットに反映できないデータは、プリンターのフィニッシャーなどのオプション機器構成や、ユーザー名やパスワードなどの個人情報、お気に入りやスタンプといったユーザーが作成する機能などが存在する。すべての保存が終了したら、アドバンスドUIアプリケーション311は終了して、呼び出し元であるプリントマネージャ306に制御を返す。プリントマネージャ306は、アドバンスドUIアプリケーション311がユーザーインターフェースを表示している間、終了するのを待っている(S1209)。アドバンスドUIアプリケーション311が終了するのが確認できたら、プリントマネージャ306は、アドバンスドUIアプリケーション311によって変更されたプリントチケットを受け取る。そして、DEVMODE構造体に変換するためにプリンタードライバー1052のコンフィギュレーションモジュール304を呼び出す(S1210)。プリントマネージャ306は、アプリケーションに対して変換したDEVMODE構造体を返し、APIを終了する(S1211)。このようにして、アプリケーションとは別のプロセスで、印刷設定に関連するユーザーインターフェースを実行する。
アプリケーションのプロセスと、アドバンスドUIアプリケーションのプロセスの間は、インターフェースのメソッドの呼び出しとなっているが、図8のブロック構成図と図13、図14のフローチャートを使用してその中身を説明する。インターフェースが呼び出されると、オペレーティングシステム1053はCOMプロキシ802を呼び出す。COMプロキシ802は、インターフェースのメソッドに入力された引数データをマーシャリングする(S1301)。マーシャリングとは異なる2つのシステムでデータを送受信できるように、オブジェクトデータをストリームに格納することである。COMプロキシ802はRPC(Remote Procedure Call)を使って、アドバンスドUIアプリケーション311のプロセスにあるCOMスタブ803を呼び出す(S1302)。RPCは、離れたシステム同士で手続きを呼び出すことができる機能である。COMプロキシ802は呼び出したCOMスタブ803に、マーシャリングしたストリームデータを送信する。COMスタブ803は、COMプロキシ802から受け取ったストリームをアンマーシャリングし、元のオブジェクトデータであるメソッドの引数に戻す(S1401)。アンマーシャリングとは、ストリームを元のオブジェクトデータに戻すことである。そして、プロセスのメインスレッドであるアドバンスドUIアプリケーション311に対して、メソッドの引数データを引き渡す(S1402)。このようにしてプリントマネージャ306は、別のプロセスであるアドバンスドUIアプリケーション311を起動し、データを送信している。逆にアドバンスドUIアプリケーション311から、プリントマネージャ306に送信するときは、COMプロキシ802がCOMスタブに、COMスタブ803がCOMプロキシになる。したがって、COMプロキシとCOMスタブは同一の機能を持った同じモジュールである。
アドバンスドUIアプリケーション311はアプリケーション1051が動作するプロセスと異なるプロセスで動作するので、インターフェースを通じて印刷設定であるプリントチケットでしか情報を伝達することができない。プリントチケットに含まれないレジストリデータベース308に保存されたデータは、印刷時に参照することができなくなるので、プリンター1042にすべてのデータを送信することができなくなってしまう。そこで、XPS印刷システムのプロパティバッグ414を使用することで、レジストリデータベース308に保存されたデータも参照できるようにする。図17のブロック構成図と、図18のフローチャートで伝達方法を説明する。
フィルタパイプラインマネージャ409はアプリケーション1051から印刷が開始されると、印刷ジョブであるXPSスプールファイル407を渡される(S1801)。また、フィルタパイプラインマネージャ409は、アプリケーション1051からどのプリンタードライバー1052を使用するのかを指定する機種情報も受け取る。フィルタパイプラインマネージャ409は、アプリケーション1051から受け取った機種情報を元に、レジストリデータベース308を検索する。レジストリデータベース308にはプリンタードライバー1052のインストール時に記載されたドライバ情報が書き込まれており、フィルタパイプラインマネージャ409は指定された機種情報に応じたドライバ情報を取得する。フィルタパイプラインマネージャ409は取得したドライバ情報の中にアドバンスドUIアプリケーション311のCLSIDがあるかどうかを判定する(S1802)。CLSIDがなければ、フィルタを呼び出して印刷処理を行う。アドバンスドUIアプリケーション311のCLSIDが存在するときは、フィルタパイプラインマネージャ409はCLSIDとアウトプロセスサーバーで起動することを引数に指定してオペレーティングシステム1053のAPIを呼び出す(図16(1))。フィルタパイプラインマネージャ409はオペレーティングシステム1053のAPIの中で、指定されたCLSIDを検索キーにしてレジストリデータベース308を検索する。フィルタパイプラインマネージャ409はオペレーティングシステム1053のAPIの中で、アドバンスドUIアプリケーション311がインストールされていれば、レジストリデータベース308からアドバンスドUIアプリケーション311のファイル名を含むフルパスを取得できる(S1803)。もし、存在しない場合はCLSIDが存在しなかったときと同じく、フィルタを呼び出して印刷処理を行う。フルパスを取得したら、フィルタパイプラインマネージャ409はオペレーティングシステム1053のAPIの中から、アドバンスドUIアプリケーション311を起動する(S1804)。起動されたアドバンスドUIアプリケーション311は、/RegSvrオプションがついていないので(S1501)、ウィンドウを作成する(S1503)。この時点で作成するウィンドウは表示のために作成するのではなく、メッセージループでフィルタパイプラインマネージャ409からの応答を待つために作成しているだけである。アドバンスドUIアプリケーション311は、アドバンスドUIアプリケーション311のインターフェースオブジェクトを作成し、インターフェースを指定してオペレーティングシステム1053のAPIを呼び出す(S1504と図16(2))。すると、フィルタパイプラインマネージャ409は、アドバンスドUIアプリケーション311のインターフェースを受け取ることができる(S1805)。インターフェースを受け取ったフィルタパイプラインマネージャ409は、プロパティバッグ414のオブジェクトを作成する。フィルタパイプラインマネージャ409は、作成したプロパティバッグ414をインターフェースの引数として、インターフェースのメソッドを呼び出す(S1806)。アドバンスドUIアプリケーション311はインターフェースの呼び出しを受け取り、UIのイベントかどうかを判定する(S1505)。今回はプロパティバッグ414を引数としてメソッドを呼び出しているのでUIのイベントではないため、アドバンスドUIアプリケーション311は、レジストリから以前に保存した情報を取得する(S1516)。アドバンスドUIアプリケーション311は、インターフェースから引数のプロパティバッグ414を取得し(S1517)、プロパティバッグに値を追加する(S1518)。プロパティバッグ414は名前と値の組み合わせで、自由にデータを追加・削除・参照できる仕組みである。アドバンスドUIアプリケーション311は、プリンターのフィニッシャーなどのオプション機器構成や、ユーザー名やパスワードなどの個人情報、お気に入りやスタンプといったユーザーが作成する機能などをプロパティバッグ414に追加しておく。アドバンスドUIアプリケーション311は、プロパティバッグ414へ値の追加が終了すると、自身も終了する。フィルタパイプラインマネージャ409は、アドバンスドUIアプリケーション311がユーザーインターフェースを表示している間、終了するのを待っている(S1807)。アドバンスドUIアプリケーション311が終了するのが確認できたら、フィルタパイプラインマネージャ409は、アドバンスドUIアプリケーション311によって変更されたプロパティバッグ414を受け取る。そして、従来どおりフィルタを呼び出して印刷処理を行う(S1808)。各フィルタは、必要に応じて、プロパティバッグ414から情報を取得する。フィルタパイプラインマネージャ409は、プロパティバッグ414のオブジェクトは最後のフィルタがPDLを出力し終わったら破棄するので、1回の印刷の間のみ有効である。このようにして、アドバンスドUIアプリケーション311の情報を、フィルタに伝達する。
アドバンスドUIアプリケーション311を使用した場合、サーバー203からクライアント201や202にプリンタードライバーをダウンロードして動作するポイントアンドプリント、いわゆる共有プリンターで動作できない。図2のようなネットワーク環境において、共有プリンターではクライアントがプリンタードライバーをサーバー203からダウンロードすることができる。したがって、コンフィギュレーションモジュール304にユーザーインターフェースが入っていれば、クライアント201や202でもユーザーインターフェースを表示できる。しかし、アドバンスドUIアプリケーション311は、プリンタードライバーとは別のものになるので、クライアント201や202にダウンロードできない。また、RPCはサーバー203とクライアント201や202の間を通信することも可能だが、そのままではアドバンスドUIアプリケーション311はサーバー203で起動してしまい、ユーザーがクライアント上でユーザーインターフェースを操作できない。そこで、アドバンスドUIアプリケーション311がインストールされている環境では、共有プリンターが利用できないようにする。以下、図19、図20と図21のフローチャートを使用して、共有プリンターを禁止する仕組みを説明する。
オペレーティングシステム1053は、ユーザーからプリンタードライバー1052の共有タブを表示するように呼び出されると(S2101)、どのプリンタードライバー1052を使用するのかを指定する機種情報も受け取る。オペレーティングシステム1053は
受け取った機種情報を元に、レジストリデータベース308を検索する。レジストリデータベース308にはプリンタードライバー1052のインストール時に記載されたドライバ情報が書き込まれており、オペレーティングシステム1053は指定された機種情報に応じたドライバ情報を取得する。オペレーティングシステム1053は取得したドライバ情報の中にアドバンスドUIアプリケーション311のCLSIDがあるかどうかを判定する(S2102)。CLSIDが存在すれば、アドバンスドUIアプリケーション311を使用してユーザーインターフェースを表示することになるので、オペレーティングシステム1053は「共有はサポートされない」メッセージを配置した共有設定が指定できない共有タブを表示する(図20)。なお、図19の画面の共有のためのチェックボックスをグレーアウトさせて表示してもよい。CLSIDが存在しないときは、オペレーティングシステム1053は共有のためのチェックボックスを配置した共有タブを表示する(図19)。
アドバンスドUIアプリケーション311を使用するとき、CPSUI801によってプロパティシートの土台を作成しているわけではないので、自由にユーザーインターフェースを作ることができる。しかし、プロパティシートの土台といくつかのタブをオペレーティングシステム1053が追加した後、プリンタードライバー1052のコンフィギュレーションモジュール304がタブをさらに追加するユーザーインターフェースは作成できなくなる。たとえば、デバイス設定のユーザーインターフェースや、ジョブの設定を確認するユーザーインターフェースである。このようなユーザーインターフェースでは、アドバンスドUIアプリケーション311がユーザーインターフェースを生成できない。そこで、図22、図23と図24のフローチャートを使用して、ユーザーインターフェースにボタンを表示する方法を説明する。
オペレーティングシステム1053は、ユーザーからデバイス設定やジョブの設定を確認するユーザーインターフェースを表示するように呼び出されると(S2401)、どのプリンタードライバー1052を使用するのかを指定する機種情報も受け取る。オペレーティングシステム1053は受け取った機種情報を元に、レジストリデータベース308を検索する。レジストリデータベース308にはプリンタードライバー1052のインストール時に記載されたドライバ情報が書き込まれており、オペレーティングシステム1053は指定された機種情報に応じたドライバ情報を取得する。オペレーティングシステム1053は取得したドライバ情報の中にアドバンスドUIアプリケーション311のCLSIDがあるかどうかを判定する(S2402)。CLSIDが存在すれば、アドバンスドUIアプリケーション311のユーザーインターフェースを開くためのボタンを配置して、タブを表示する(S2403)。CLSIDが存在しなければ、プリンタードライバー1052のコンフィギュレーションモジュール304を呼び出して、タブを追加してもらうようにする(S2404)。図22はジョブの設定を確認するユーザーインターフェースに、基本設定のボタンを表示して、アドバンスドUIアプリケーション311のジョブ設定のユーザーインターフェースが呼び出せるようにしている。図23はデバイス設定のユーザーインターフェースに、デバイス設定のボタンを表示して、アドバンスドUIアプリケーション311のデバイス設定のユーザーインターフェースを呼び出せるようにしている。
以上のようにすることで、プリンタードライバー1052からアドバンスドUIアプリケーション311という形でユーザーインターフェースを切り離すことで、ユーザーインターフェースがクラッシュしても、アプリケーションを巻き込まないようにできる。また、CPSUI801に依存しないシステムになることで、プロパティシートではない自由にユーザーインターフェースを作成することができる。また、名前付きパイプや共有メモリを使用せずにCOMで異なるプロセス間の通信を行うことで、アドバンスドUIアプリケーション311にオペレーティングシステム1053に依存するコードを少なくすることができる。
[実施例2]
実施例1では、アドバンスドUIアプリケーション311はプリンタードライバー1052のインストールセットと別にインストールを行ったが、プリンタードライバー1052のインストールセットに含むこともできる。以下、アドバンスドUIアプリケーション311をプリンタードライバー1052のインストールセットに含んだときのプリンタードライバー1052のインストールを、図25のフローと図26を使用して説明する。
プリンタードライバー1052は図26のセットアップインフォメーションファイル(以下、INFファイル)に従ってオペレーティングシステム1053へインストールされる。INFファイルには、実施例1で記載されていたアドバンスドUIアプリケーション311のCLSIDに加えて、アドバンスドUIアプリケーション311のアプリケーションファイル名が記載されている。オペレーティングシステム1053は、プリンタードライバー1052のインストールが開始されると(S2501)、指定された機種のプリンタードライバー1052のインストールセットを探す。インストールセットはオペレーティングシステム1053に組み込まれているものを使用するが、ユーザーによって指定されるか、あらかじめ特定された配信サーバーなどから提供されることもある。オペレーティングシステム1053は、インストールセットに含まれるINFファイルを元にファイルをコピーし、レジストリデータベース308に必要なドライバ情報を書き込むことで、通常のプリンタードライバーのインストールが完了する(S2502)。次に、オペレーティングシステム1053は、プリンタードライバー1052のINFファイルの中にアドバンスドUIアプリケーション311のファイル名があるかどうかを判定する(S2503)。図26ではAdvancedUIというキーが、アドバンスドUIアプリケーション311のファイル名に該当する。ファイル名が存在する場合は、オペレーティングシステム1053が引数として/RegSvrオプションをつけてアドバンスドUIアプリケーション311を起動する(S2504)。オペレーティングシステム1053は、INFファイルの中に、アドバンスドUIアプリケーション311のCLSIDが記載されているかどうかを確認する(S2505)。アドバンスドUIアプリケーション311のCLSIDが存在すれば、オペレーティングシステム1053はINFファイルからCLSIDを取得する(S2506)。オペレーティングシステム1053は、アドバンスドUIアプリケーション311のCLSIDを、レジストリデータベース308にあるドライバ情報に、追加して記載しておく(S2507)。これで、プリンタードライバー1052のインストールとともに、アドバンスドUIアプリケーション311のインストールが完了する。
以上のように、プリンタードライバー1052のインストールセットにアドバンスドUIアプリケーション311を追加しておくと、ユーザーが後から別途追加することなく、プリンタードライバー1052をインストールするだけで、別プロセスで起動するユーザーインターフェースを使用することができる。
以上説明したように、本発明の実施の形態により,アプリケーションと別のプロセスでプリンタードライバーのユーザーインターフェースが起動するので、アプリケーションまで巻き込んでクラッシュすることがなくなる。また、オペレーティングシステムがベースを用意する必要がなくなるので、プリンタードライバーのユーザーインターフェースは自由にデザインやコントロールを配置することができる。また、UIアプリケーションはプリンタードライバーと別にインストールすることができるので、プリンタードライバーを更新することなくユーザーインターフェースだけを変えることが可能である。また、プロセスごとにメモリ領域が別になるので、より多くのメモリ領域を使用することができ、動画や3Dを使用したリッチなユーザーインターフェースを作成することもできるようになる。
1042 プリンター
1051 アプリケーション
1052 プリンタードライバー
1053 オペレーティングシステム
201 クライアント
202 クライアント
203 サーバー
304 コンフィギュレーションモジュール
305 機種依存データファイル
306 プリントマネージャ(スプーラ)
308 レジストリデータベース
311 アドバンスドUIアプリケーション
403 DEVMODE構造体
404 プリントチケット
406 DEVMODE−プリントチケット変換モジュール
407 XPSスプールファイル
409 フィルタパイプラインマネージャ
414 プロパティバッグ
801 CPSUI
802 COMプロキシ
803 COMスタブ

Claims (12)

  1. プリンタードライバーをインストールする際に、プリンタードライバーのセットアップファイルから識別子を取得する取得手段と、
    データベースにあるインストールされるプリンタードライバーの機種に関連付けられたドライバ情報に前記取得手段により取得された識別子を追加する追加手段と、
    ユーザーインターフェースアプリケーションをインストールする際に、データベースにユーザーインターフェースアプリケーションのパスと識別子を書き込む書き込み手段と、
    アプリケーションからプリンタードライバーのユーザーインターフェースを表示するように呼び出された際、データベースにある呼び出されたプリンタードライバーの機種に関連付けられたドライバ情報に識別子が登録されているかどうかを判定する判定手段と、
    前記判定手段によりデータベースに識別子が登録されていると判定された場合、識別子を使用してユーザーインターフェースアプリケーションのパスを取得し、アプリケーションプロセスと別のプロセスでユーザーインターフェースアプリケーションを起動する起動手段とを備えることを特徴とする情報処理装置。
  2. 前記起動手段は、前記判定手段によりデータベースに識別子が登録されていないと判定された場合、アプリケーションと同一プロセスでユーザーインターフェースモジュールを起動することを特徴とする請求項1記載の情報処理装置。
  3. プリンタードライバーの共有タブを表示するよう呼び出された際に、プリンタードライバーの機種に関連付けられたドライバ情報に識別子が登録されているかどうかを判定し、プリンターの共有が設定できない画面を表示する表示手段を有することを特徴とする請求項1記載の情報処理装置。
  4. アプリケーションプロセスと別プロセスでユーザーインターフェースアプリケーションが起動される情報処理装置であって、
    ユーザーインターフェースの設定をプリントチケットに反映する反映手段と、
    プリントチケットに含められない設定をレジストリに保存する保存手段と、
    フィルタパイプラインプロセスから起動された際、レジストリから設定を読み込み、読み込まれた設定をプロパティバッグに追加する追加手段とを有し、
    前記フィルタはプロパティバッグに追加された設定を受け取り、印刷処理を行うことを特徴とする情報処理装置。
  5. プリンタードライバーをインストールする際に、プリンタードライバーのセットアップファイルから識別子を取得する取得ステップと、
    データベースにあるインストールされるプリンタードライバーの機種に関連付けられたドライバ情報に前記取得ステップにより取得された識別子を追加する追加ステップと、
    ユーザーインターフェースアプリケーションをインストールする際に、データベースにユーザーインターフェースアプリケーションのパスと識別子を書き込む書き込みステップと、
    アプリケーションからプリンタードライバーのユーザーインターフェースを表示するように呼び出された際、データベースにある呼び出されたプリンタードライバーの機種に関連付けられたドライバ情報に識別子が登録されているかどうかを判定する判定ステップと、
    前記判定ステップによりデータベースに識別子が登録されていると判定された場合、識別子を使用してユーザーインターフェースアプリケーションのパスを取得し、アプリケーションプロセスと別のプロセスでユーザーインターフェースアプリケーションを起動する起動ステップとを備えることを特徴とする情報処理方法。
  6. 前記起動ステップは、前記判定ステップによりデータベースに識別子が登録されていないと判定された場合、アプリケーションと同一プロセスでユーザーインターフェースモジュールを起動することを特徴とする請求項5記載の情報処理方法。
  7. プリンタードライバーの共有タブを表示するよう呼び出された際に、プリンタードライバーの機種に関連付けられたドライバ情報に識別子が登録されているかどうかを判定し、プリンターの共有が設定できない画面を表示する表示ステップを有することを特徴とする請求項6記載の情報処理方法。
  8. アプリケーションプロセスと別プロセスでユーザーインターフェースアプリケーションが起動される情報処理装置であって、
    ユーザーインターフェースの設定をプリントチケットに反映する反映ステップと、
    プリントチケットに含められない設定をレジストリに保存する保存ステップと、
    フィルタパイプラインプロセスから起動された際、レジストリから設定を読み込み、読み込まれた設定をプロパティバッグに追加する追加ステップとを有し、
    前記フィルタはプロパティバッグに追加された設定を受け取り、印刷処理を行うことを特徴とする情報処理方法。
  9. プリンタードライバーをインストールする際に、プリンタードライバーのセットアップファイルから識別子を取得する取得ステップと、
    データベースにあるインストールされるプリンタードライバーの機種に関連付けられたドライバ情報に前記取得ステップにより取得された識別子を追加する追加ステップと、
    ユーザーインターフェースアプリケーションをインストールする際に、データベースにユーザーインターフェースアプリケーションのパスと識別子を書き込む書き込みステップと、
    アプリケーションからプリンタードライバーのユーザーインターフェースを表示するように呼び出された際、データベースにある呼び出されたプリンタードライバーの機種に関連付けられたドライバ情報に識別子が登録されているかどうかを判定する判定ステップと、
    前記判定ステップによりデータベースに識別子が登録されていると判定された場合、識別子を使用してユーザーインターフェースアプリケーションのパスを取得し、アプリケーションプロセスと別のプロセスでユーザーインターフェースアプリケーションを起動する起動ステップとをコンピューターに実行させるためのプログラム。
  10. 前記起動ステップは、前記判定ステップによりデータベースに識別子が登録されていないと判定された場合、アプリケーションと同一プロセスでユーザーインターフェースモジュールを起動することを特徴とする請求項9記載の情報処理方法。
  11. プリンタードライバーの共有タブを表示するよう呼び出された際に、プリンタードライバーの機種に関連付けられたドライバ情報に識別子が登録されているかどうかを判定し、プリンターの共有が設定できない画面を表示する表示ステップをコンピューターに実行させることを特徴とする請求項10記載の情報処理方法。
  12. アプリケーションプロセスと別プロセスでユーザーインターフェースアプリケーションが起動されるコンピューターで実行されるプログラムであって、
    ユーザーインターフェースの設定をプリントチケットに反映する反映ステップと、
    プリントチケットに含められない設定をレジストリに保存する保存ステップと、
    フィルタパイプラインプロセスから起動された際、レジストリから設定を読み込み、読み込まれた設定をプロパティバッグに追加する追加ステップとをコンピューターに実行させ、
    前記フィルタはプロパティバッグに追加された設定を受け取り、印刷処理を行うことを特徴とするプログラム。
JP2011103005A 2011-05-02 2011-05-02 情報処理装置、情報処理方法、及びプログラム Active JP5787606B2 (ja)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP2011103005A JP5787606B2 (ja) 2011-05-02 2011-05-02 情報処理装置、情報処理方法、及びプログラム
CN201210134592.7A CN102768619B (zh) 2011-05-02 2012-04-28 信息处理装置和信息处理方法
KR1020120045208A KR101452572B1 (ko) 2011-05-02 2012-04-30 정보 처리 장치, 정보 처리 방법 및 저장 매체
US13/459,709 US9785445B2 (en) 2011-05-02 2012-04-30 Information processing apparatus, information processing method, and storage medium
EP12166309.0A EP2521027B1 (en) 2011-05-02 2012-05-01 Information processing apparatus, Information processing method and program
US15/698,524 US10152332B2 (en) 2011-05-02 2017-09-07 Information processing apparatus, information processing method, and storage medium
US16/175,428 US11016782B2 (en) 2011-05-02 2018-10-30 Information processing apparatus, information processing method, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011103005A JP5787606B2 (ja) 2011-05-02 2011-05-02 情報処理装置、情報処理方法、及びプログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2015150518A Division JP5972436B2 (ja) 2015-07-30 2015-07-30 情報処理装置、情報処理方法、及びプログラム

Publications (3)

Publication Number Publication Date
JP2012234399A true JP2012234399A (ja) 2012-11-29
JP2012234399A5 JP2012234399A5 (ja) 2014-06-19
JP5787606B2 JP5787606B2 (ja) 2015-09-30

Family

ID=46087476

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011103005A Active JP5787606B2 (ja) 2011-05-02 2011-05-02 情報処理装置、情報処理方法、及びプログラム

Country Status (5)

Country Link
US (3) US9785445B2 (ja)
EP (1) EP2521027B1 (ja)
JP (1) JP5787606B2 (ja)
KR (1) KR101452572B1 (ja)
CN (1) CN102768619B (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014104703A (ja) * 2012-11-29 2014-06-09 Seiko Epson Corp 印刷装置、印刷装置の制御方法、及び、プログラム
JP2014209316A (ja) * 2013-03-27 2014-11-06 株式会社リコー 印刷制御プログラム、情報処理装置及び印刷システム
JP2014219730A (ja) * 2013-05-01 2014-11-20 株式会社リコー 印刷処理装置及びプログラム
JP2015018474A (ja) * 2013-07-12 2015-01-29 キヤノン株式会社 情報処理装置および制御方法およびプログラム
JP2018049597A (ja) * 2016-09-15 2018-03-29 株式会社リコー 情報処理装置、情報処理システム、情報処理方法、及びプログラム
JP2018088230A (ja) * 2016-11-24 2018-06-07 株式会社リコー 情報処理装置、情報処理システム、情報処理方法、及びプログラム

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5787606B2 (ja) 2011-05-02 2015-09-30 キヤノン株式会社 情報処理装置、情報処理方法、及びプログラム
JP6102220B2 (ja) * 2012-11-28 2017-03-29 株式会社リコー 画像処理システム及びその情報処理方法
KR20150040669A (ko) 2013-10-07 2015-04-15 삼성전자주식회사 인쇄 어플리케이션 구성을 커스터마이즈하는 방법 및 그 장치
JP5910603B2 (ja) * 2013-10-17 2016-04-27 コニカミノルタ株式会社 設定用オブジェクト表示制御装置、設定用オブジェクト表示方法、およびコンピュータプログラム
US10810222B2 (en) 2014-11-24 2020-10-20 Asana, Inc. Continuously scrollable calendar user interface
CN105843644B (zh) * 2016-03-24 2020-01-10 珠海豹趣科技有限公司 一种应用程序安装方法、装置及电子设备
US10977434B2 (en) 2017-07-11 2021-04-13 Asana, Inc. Database model which provides management of custom fields and methods and apparatus therfor
JP6983614B2 (ja) * 2017-10-16 2021-12-17 キヤノン株式会社 プログラム
US10623359B1 (en) 2018-02-28 2020-04-14 Asana, Inc. Systems and methods for generating tasks based on chat sessions between users of a collaboration environment
US11138021B1 (en) 2018-04-02 2021-10-05 Asana, Inc. Systems and methods to facilitate task-specific workspaces for a collaboration work management platform
US10613735B1 (en) 2018-04-04 2020-04-07 Asana, Inc. Systems and methods for preloading an amount of content based on user scrolling
US10785046B1 (en) 2018-06-08 2020-09-22 Asana, Inc. Systems and methods for providing a collaboration work management platform that facilitates differentiation between users in an overarching group and one or more subsets of individual users
US10616151B1 (en) 2018-10-17 2020-04-07 Asana, Inc. Systems and methods for generating and presenting graphical user interfaces
US10956845B1 (en) 2018-12-06 2021-03-23 Asana, Inc. Systems and methods for generating prioritization models and predicting workflow prioritizations
US11568366B1 (en) 2018-12-18 2023-01-31 Asana, Inc. Systems and methods for generating status requests for units of work
US11113667B1 (en) 2018-12-18 2021-09-07 Asana, Inc. Systems and methods for providing a dashboard for a collaboration work management platform
US10684870B1 (en) * 2019-01-08 2020-06-16 Asana, Inc. Systems and methods for determining and presenting a graphical user interface including template metrics
US11782737B2 (en) 2019-01-08 2023-10-10 Asana, Inc. Systems and methods for determining and presenting a graphical user interface including template metrics
US11204683B1 (en) 2019-01-09 2021-12-21 Asana, Inc. Systems and methods for generating and tracking hardcoded communications in a collaboration management platform
JPWO2020148978A1 (ja) * 2019-01-15 2021-12-02 ソニーグループ株式会社 情報処理装置及び情報処理方法
JP7350525B2 (ja) * 2019-06-12 2023-09-26 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、及びプログラム
US11341445B1 (en) 2019-11-14 2022-05-24 Asana, Inc. Systems and methods to measure and visualize threshold of user workload
US11783253B1 (en) 2020-02-11 2023-10-10 Asana, Inc. Systems and methods to effectuate sets of automated actions outside and/or within a collaboration environment based on trigger events occurring outside and/or within the collaboration environment
US11599855B1 (en) 2020-02-14 2023-03-07 Asana, Inc. Systems and methods to attribute automated actions within a collaboration environment
US11455601B1 (en) 2020-06-29 2022-09-27 Asana, Inc. Systems and methods to measure and visualize workload for completing individual units of work
US11449836B1 (en) 2020-07-21 2022-09-20 Asana, Inc. Systems and methods to facilitate user engagement with units of work assigned within a collaboration environment
US11568339B2 (en) 2020-08-18 2023-01-31 Asana, Inc. Systems and methods to characterize units of work based on business objectives
US11769115B1 (en) 2020-11-23 2023-09-26 Asana, Inc. Systems and methods to provide measures of user workload when generating units of work based on chat sessions between users of a collaboration environment
US11405435B1 (en) 2020-12-02 2022-08-02 Asana, Inc. Systems and methods to present views of records in chat sessions between users of a collaboration environment
US11694162B1 (en) 2021-04-01 2023-07-04 Asana, Inc. Systems and methods to recommend templates for project-level graphical user interfaces within a collaboration environment
US11676107B1 (en) 2021-04-14 2023-06-13 Asana, Inc. Systems and methods to facilitate interaction with a collaboration environment based on assignment of project-level roles
US11553045B1 (en) 2021-04-29 2023-01-10 Asana, Inc. Systems and methods to automatically update status of projects within a collaboration environment
US11803814B1 (en) 2021-05-07 2023-10-31 Asana, Inc. Systems and methods to facilitate nesting of portfolios within a collaboration environment
US11792028B1 (en) 2021-05-13 2023-10-17 Asana, Inc. Systems and methods to link meetings with units of work of a collaboration environment
US11809222B1 (en) 2021-05-24 2023-11-07 Asana, Inc. Systems and methods to generate units of work within a collaboration environment based on selection of text
US11756000B2 (en) 2021-09-08 2023-09-12 Asana, Inc. Systems and methods to effectuate sets of automated actions within a collaboration environment including embedded third-party content based on trigger events
US11635884B1 (en) 2021-10-11 2023-04-25 Asana, Inc. Systems and methods to provide personalized graphical user interfaces within a collaboration environment
US11997425B1 (en) 2022-02-17 2024-05-28 Asana, Inc. Systems and methods to generate correspondences between portions of recorded audio content and records of a collaboration environment
US11836681B1 (en) 2022-02-17 2023-12-05 Asana, Inc. Systems and methods to generate records within a collaboration environment
US11863601B1 (en) 2022-11-18 2024-01-02 Asana, Inc. Systems and methods to execute branching automation schemes in a collaboration environment

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002132472A (ja) * 2000-10-24 2002-05-10 Canon Inc プリント補助制御装置、プリント制御装置および方法
JP2007293772A (ja) * 2006-04-27 2007-11-08 Kyocera Mita Corp 印刷装置制御システム及びプリンタドライバ
JP2010108397A (ja) * 2008-10-31 2010-05-13 Brother Ind Ltd 情報処理装置

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6802061B1 (en) * 1996-12-12 2004-10-05 Microsoft Corporation Automatic software downloading from a computer network
US6184998B1 (en) 1997-09-15 2001-02-06 Canon Kabushiki Kaisha Adding printing to the windows registry
JP3408124B2 (ja) 1997-11-06 2003-05-19 シャープ株式会社 コンピュータシステムを利用した印刷処理装置
US6501491B1 (en) 1998-09-21 2002-12-31 Microsoft Corporation Extensible user interface for viewing objects over a network
US7523191B1 (en) * 2000-06-02 2009-04-21 Yahoo! Inc. System and method for monitoring user interaction with web pages
JP4686854B2 (ja) 2000-12-08 2011-05-25 株式会社ニコン 画像符号化装置、電子カメラ、および画像符号化プログラムの記録媒体
US20030043396A1 (en) * 2001-08-29 2003-03-06 Klosterman Elliot L. Printer driver access interface
US7917855B1 (en) * 2002-04-01 2011-03-29 Symantec Operating Corporation Method and apparatus for configuring a user interface
US7284246B2 (en) * 2002-04-23 2007-10-16 Canon Kabushiki Kaisha Extensible device driver
US7600234B2 (en) * 2002-12-10 2009-10-06 Fisher-Rosemount Systems, Inc. Method for launching applications
US7853946B2 (en) * 2003-02-28 2010-12-14 Canon Kabushiki Kaisha Information processing apparatus, information processing method, and control program
US7869068B2 (en) * 2003-06-27 2011-01-11 Zoran Corporation Printer driver extension and related method
US20050157321A1 (en) * 2004-01-20 2005-07-21 Alacar Arthur E. Printer driver plug-in module management system
US20050257226A1 (en) * 2004-05-14 2005-11-17 Microsoft Corporation PnP functionality for unsupported devices
US20060031755A1 (en) * 2004-06-24 2006-02-09 Avaya Technology Corp. Sharing inking during multi-modal communication
JP4207864B2 (ja) * 2004-08-10 2009-01-14 ブラザー工業株式会社 状態情報処理装置、および状態情報処理装置用データ処理プログラム
US8095940B2 (en) * 2005-09-19 2012-01-10 Citrix Systems, Inc. Method and system for locating and accessing resources
US7680758B2 (en) * 2004-09-30 2010-03-16 Citrix Systems, Inc. Method and apparatus for isolating execution of software applications
JP2006109296A (ja) * 2004-10-08 2006-04-20 Canon Inc デジタルカメラ及びデジタルカメラの制御方法
JP4413124B2 (ja) * 2004-10-25 2010-02-10 コニカミノルタビジネステクノロジーズ株式会社 印刷指示方法および装置およびプログラム
US20070179883A1 (en) * 2006-01-18 2007-08-02 Verdicash Inc. System and method and computer readable code for visualizing and managing digital cash
JP4785577B2 (ja) 2006-03-17 2011-10-05 キヤノン株式会社 情報処理装置及びその制御方法、プログラム
JP4667280B2 (ja) 2006-03-17 2011-04-06 キヤノン株式会社 情報処理装置及びその制御方法、プログラム
US20070260577A1 (en) * 2006-03-30 2007-11-08 Microsoft Corporation Providing COM access to an isolated system
KR20080052357A (ko) * 2006-12-07 2008-06-11 삼성전자주식회사 프린터 드라이버의 제어방법 및 이를 포함하는 네트워크인쇄시스템
US8046403B2 (en) * 2007-09-12 2011-10-25 Citrix Systems, Inc. Methods and systems for providing, by a remote machine, access to functionality associated with a resource executing on a local machine
JP4963663B2 (ja) 2007-10-25 2012-06-27 キヤノン株式会社 情報処理装置、情報処理方法、記憶媒体、プログラム
JP5031514B2 (ja) 2007-10-31 2012-09-19 キヤノン株式会社 データ処理装置およびデータ処理方法
JP5078686B2 (ja) 2008-03-18 2012-11-21 キヤノン株式会社 印刷設定処理装置及び印刷設定処理方法
JP5070101B2 (ja) 2008-03-25 2012-11-07 キヤノン株式会社 情報処理装置及びその制御方法、プリンタドライバプログラム
KR101425439B1 (ko) 2008-04-23 2014-07-31 삼성전자주식회사 프린터 드라이버 팩키지를 생성하기 위한 단말장치 및드라이버 팩키지 생성방법
US8850052B2 (en) * 2008-09-30 2014-09-30 Apple Inc. System and method for simplified resource sharing
JP5332771B2 (ja) * 2009-03-17 2013-11-06 株式会社リコー 印刷処理システム、印刷処理方法、印刷処理プログラムおよび記録媒体
JP5597943B2 (ja) * 2009-06-10 2014-10-01 株式会社リコー システム及び方法
US8928899B2 (en) * 2011-02-24 2015-01-06 Ricoh Company, Ltd. Web services printer driver
JP5787606B2 (ja) 2011-05-02 2015-09-30 キヤノン株式会社 情報処理装置、情報処理方法、及びプログラム
JP5979893B2 (ja) * 2012-02-01 2016-08-31 キヤノン株式会社 情報処理装置、制御方法、及びプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002132472A (ja) * 2000-10-24 2002-05-10 Canon Inc プリント補助制御装置、プリント制御装置および方法
JP2007293772A (ja) * 2006-04-27 2007-11-08 Kyocera Mita Corp 印刷装置制御システム及びプリンタドライバ
JP2010108397A (ja) * 2008-10-31 2010-05-13 Brother Ind Ltd 情報処理装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014104703A (ja) * 2012-11-29 2014-06-09 Seiko Epson Corp 印刷装置、印刷装置の制御方法、及び、プログラム
JP2014209316A (ja) * 2013-03-27 2014-11-06 株式会社リコー 印刷制御プログラム、情報処理装置及び印刷システム
JP2014219730A (ja) * 2013-05-01 2014-11-20 株式会社リコー 印刷処理装置及びプログラム
JP2015018474A (ja) * 2013-07-12 2015-01-29 キヤノン株式会社 情報処理装置および制御方法およびプログラム
JP2018049597A (ja) * 2016-09-15 2018-03-29 株式会社リコー 情報処理装置、情報処理システム、情報処理方法、及びプログラム
JP2018088230A (ja) * 2016-11-24 2018-06-07 株式会社リコー 情報処理装置、情報処理システム、情報処理方法、及びプログラム

Also Published As

Publication number Publication date
CN102768619B (zh) 2016-08-10
US9785445B2 (en) 2017-10-10
US11016782B2 (en) 2021-05-25
KR20120124040A (ko) 2012-11-12
EP2521027B1 (en) 2018-08-08
EP2521027A1 (en) 2012-11-07
US20190065215A1 (en) 2019-02-28
JP5787606B2 (ja) 2015-09-30
KR101452572B1 (ko) 2014-10-22
US20120281245A1 (en) 2012-11-08
CN102768619A (zh) 2012-11-07
US20170371682A1 (en) 2017-12-28
US10152332B2 (en) 2018-12-11

Similar Documents

Publication Publication Date Title
JP5787606B2 (ja) 情報処理装置、情報処理方法、及びプログラム
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
JP5478937B2 (ja) 情報処理装置、制御方法、プログラム
US8804163B2 (en) Information processing apparatus, print controlling method, program, and computer-readable storage medium
JP6331910B2 (ja) 情報処理装置、情報処理システム、及びプログラム
JP6552189B2 (ja) 情報処理装置、制御方法およびドライバーインストールプログラム
US8736877B2 (en) Print system, client, control method, and storage medium
JP6184212B2 (ja) 情報処理装置および制御方法およびプログラム
JP2006048535A (ja) 画像処理装置及びその制御方法
US20120120443A1 (en) Information processing apparatus, information processing system, and storage medium
JP2014109854A (ja) 情報処理装置および制御方法およびプログラム
JP5972436B2 (ja) 情報処理装置、情報処理方法、及びプログラム
JP5726344B2 (ja) 情報処理装置、制御方法、プログラム
JP7242203B2 (ja) 情報処理装置、アプリケーションおよび制御方法
JP6362423B2 (ja) リアルタイムコンフリクト処理システム
JP2019008673A (ja) 情報処理装置およびドライバーインストール方法
JP7171227B2 (ja) 情報処理装置、その制御方法およびアプリケーション
JP2019032598A (ja) 情報処理装置、プログラム及び制御方法
JP2019049825A (ja) ポイントアンドプリント環境におけるドライバーの更新方法、プログラム、及び、情報処理装置
JP2020071693A (ja) 情報処理装置、及びその制御方法並びにプログラム
JP2013131109A (ja) 印刷管理装置、印刷管理方法、及びコンピュータプログラム
JP2019128856A (ja) プリンタードライバーのカスタマイズツール
JP2018185826A (ja) アプリケーションプログラム及び制御方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140501

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140501

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150303

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150507

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150728

R151 Written notification of patent or utility model registration

Ref document number: 5787606

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151