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

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

Info

Publication number
JP6784538B2
JP6784538B2 JP2016160689A JP2016160689A JP6784538B2 JP 6784538 B2 JP6784538 B2 JP 6784538B2 JP 2016160689 A JP2016160689 A JP 2016160689A JP 2016160689 A JP2016160689 A JP 2016160689A JP 6784538 B2 JP6784538 B2 JP 6784538B2
Authority
JP
Japan
Prior art keywords
maintenance
function
application
printer driver
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016160689A
Other languages
English (en)
Other versions
JP2018028817A (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 JP2016160689A priority Critical patent/JP6784538B2/ja
Priority to US15/672,683 priority patent/US10289364B2/en
Publication of JP2018028817A publication Critical patent/JP2018028817A/ja
Application granted granted Critical
Publication of JP6784538B2 publication Critical patent/JP6784538B2/ja
Active 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/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/1254Automatic configuration, e.g. by driver
    • 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
    • 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
    • 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/1236Connection management
    • 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
    • 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/1285Remote printer device, e.g. being remote from client or server
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/0035User-machine interface; Control console
    • H04N1/00405Output means
    • H04N1/00408Display of information to the user, e.g. menus
    • H04N1/00411Display of information to the user, e.g. menus the display also being used for user input, e.g. touch screen

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)
  • Facsimiles In General (AREA)

Description

本発明は、プリンタドライバが実装された情報処理装置、方法およびプログラムに関する。
プリンタドライバにおいては、ユーザインタフェースモジュールの有する機能を外部のアプリケーションから利用するために、OS標準ではない独自インタフェースが使用されている。プリンタドライバの機能には、「プリンタドライバの印刷設定を変更するための機能」と「直接印刷には関わらない機能」の2種類がある。後者の例として、プリンタを最適な状態に保つためのメンテナンス機能などがある。
昨今、V4と呼ばれる新しいプリンタドライバのアーキテクチャが定義されている。外部アプリケーションからプリンタドライバの印刷設定を変更する機能が標準機能として搭載される一方で、上記の独自インタフェースの使用や、印刷ジョブとしてメンテナンスコマンドを扱うことが制限されるようになった。このため、従来のV3プリンタドライバ(以後、V3ドライバ)で提供していた機能のうち、「直接印刷には関わらない機能」をアプリケーションから利用することが困難となっている。
上記の課題を解決する方法として、例えばプリンタドライバとは別の、プリンタに直接印刷には関わらない機能を実行させるような専用のアプリケーションを用いることが考えられる。しかしながら、一般的にプリンタのメンテナンス機能は、プリンタの機種毎に、その内部処理やプリンタ本体に送信するコマンドが異なっている。また、コマンドの送信をするにあたり、USBやWifi、LANなどの複数のI/Fに対応する必要性がある。そのため、プリンタドライバによる機種毎の差やI/Fの隠ぺいを利用せずに、上記のような専用アプリケーションを構築しようとすると、特定のプリンタ機種専用のアプリケーションをプリンタの数だけ開発する必要が生じる。その結果、実現のための実装やメンテナンスに極めて工数がかかってしまう。また、プリンタドライバが所有する、コマンドなどのプリンタの機種毎の差を示すプリンタ固有情報には、プリンタドライバ以外からはアクセスできないように制限されている。そのため、アプリケーションは、プリンタドライバを介することなく、プリンタドライバが所有するプリンタ固有情報を利用することができない。
以上の理由から、プリンタドライバを介することなく、プリンタと通信を行う専用のアプリケーションを用意することは実用的ではない。遠隔にあるコンピュータ(以後、サーバ)に接続されたプリンタに対して、アプリケーションがインストールされたサーバとは別のコンピュータ(以後、クライアント)からコマンドを発行するといった、クライアントが間接的にプリンタと接続される場合がある。このような場合において、クライアントのアプリケーションは、サーバ側のプリンタと直接通信を行うことができないため、上記のような専用アプリケーションによってプリンタドライバを経由することなくプリンタにコマンドを発行することができない。
特許文献1では、プリンタドライバと密に対応づけられたアプリケーションとポートモニタを用いて、V4アーキテクチャにおいても、メンテナンス機能の実行を可能としている。
特開2013−168017号公報
しかしながら、アプリケーションは、プリンタドライバやポートモニタと密に連携する構成とする必要があり、様々なアプリケーションにおける実現は難しい。また、メンテナンス機能の実行といった印刷装置へのコマンドの送信に限られてしまう。
本発明の目的は、このような従来の問題点を解決することにある。上記の点に鑑み、本発明は、プリンタドライバでの多様な機能を実行可能とするとともに、構成の簡易化を実現する情報処理装置、方法およびプログラムを提供することを目的とする。
上記課題を解決するため、本発明に係る情報処理装置は、アプリケーションとプリンタドライバとを有する情報処理装置であって、前記アプリケーションにおいて、前記プリンタドライバに係る印刷とは異なる機能の実行の命令を受信する受信手段と、前記アプリケーションにおいて、前記受信手段により受信した前記命令をプリントチケットに設定し、当該プリントチケットをOSに渡す設定手段と、前記アプリケーションにおいて、前記OSを介して前記プリンタドライバを呼び出す呼出手段と、前記呼出手段により呼び出された前記プリンタドライバにおいて、前記設定手段により前記命令が設定されたプリントチケットを前記OSから取得する取得手段と、前記呼出手段により呼び出された前記プリンタドライバにおいて、前記取得手段により取得したプリントチケットに設定されている前記命令に基づいて前記機能を実行する実行手段と、を有し、前記機能は、印刷機能と異なる機能であり、前記呼出手段は、前記プリンタドライバに用意された第1のインタフェースモジュールを呼び出し、前記第1のインタフェースモジュールは、第2のインタフェースモジュールを呼び出し、前記第2のインタフェースモジュールは、前記機能を実行するための情報を記憶する記憶部から、当該情報を取得する、ことを特徴とする。
本発明によれば、プリンタドライバでの多様な機能を実行可能とするとともに、構成の簡易化を実現することができる。
印刷システムのハードウェア構成を示すブロック図。 V3プリンタドライバを含むモジュール構成を示す図。 V4プリンタドライバを含むモジュール構成を示す図。 プリンタドライバにおけるメンテナンス処理の流れを示す図。 アプリケーションの処理を示すフローチャート。 メンテナンスSDK Wrapperの処理を示すフローチャート。 UI拡張モジュールの処理を示すフローチャート。 プリントチケットを示す図。 アプリケーションの処理を示すフローチャート。 メンテナンスSDK Wrapperの処理を示すフローチャート。 UI拡張モジュールの処理を示すフローチャート。 アプリケーションの処理を示すフローチャート。 メンテナンスSDK Wrapperの処理を示すフローチャート。 UI拡張モジュールの処理を示すフローチャート。 UI拡張モジュールの基本設定タブシートを選択した状態を示す図。 UI拡張モジュールのメンテナンスタブシートを選択した状態を示す図。 アプリケーションの処理を示すフローチャート。 メンテナンスSDK Wrapperの処理を示すフローチャート。 UI拡張モジュールの処理を示すフローチャート。
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。なお、同一の構成要素には同一の参照番号を付して、説明を省略する。
[第1の実施形態]
[ハードウェア構成]
図1は、情報処理装置110と、情報処理装置110に接続された印刷装置120とを含んで構成される印刷システムの全体構成を示すブロック図である。情報処理装置110は、入力インタフェース(I/F)111、CPU112、ROM113、出力I/F114、外部記憶装置115、RAM116、入力装置117、出力装置118、入出力I/F119を有する。ROM113は、初期化プログラムを保存し、外部記憶装置115は、OS、プリンタドライバ、アプリケーションといったプログラムやその他各種のデータが保存されている。RAM116は、外部記憶装置115に保存される各種プログラムがワークメモリとして使用される。入力装置117は、ポインティングデバイスやキーボードのほかに、タッチパネル等で構成され、データ入力や動作指示に使用され、入力I/F111に接続されている。出力装置118は、データ表示や状態の通知に使用され、出力I/F114に接続されている。CPU112は、ROM113に保存されている制御命令に従い、情報処理装置110を制御する。例えば、以下の各実施形態のフローチャートの処理は、例えば、CPU112がROM113に記憶されたプログラムをRAM116に読み出して実行することにより実現される。
印刷装置120は、RAM121、ROM122、プリントエンジン123、CPU124、入出力I/F125を有する。情報処理装置110と印刷装置120は、USBケーブルやネットワークケーブル等により接続されている。RAM121は、CPU124のワーキングメモリとして使用され、受信したデータの一時保存用バッファとしても用いられる。ROM122は、制御命令などを記憶する。プリントエンジン123は、RAM121に保存されたデータに基づき印刷を行う。CPU124は、ROM122に保存されている制御命令に従い、印刷装置120を制御する。
情報処理装置110と印刷装置120は、有線や無線のネットワーク130を介して相互に通信可能に接続されている。本実施形態においては、情報処理装置110および印刷装置120の処理分担を上記のように示したが、処理の分担の形態はこれに限られない。
[メンテナンスSDK Wrapper]
本実施形態では、メンテナンス機能を所望するアプリケーションからメンテナンス機能の実行を代行するメンテナンスSDK及びその外部インタフェースを備えるメンテナンスSDK Wrapperというアプリケーションが用意される。メンテナンス機能には、記録ヘッドのクリーニングや記録ヘッドの位置調整、ノズルチェックパターン印刷、電源のオフなどの実印刷に関わらない機能が含まれる。メンテナンス機能を所望するアプリケーションは、メンテナンスSDK Wrapperを介してメンテナンス機能を実行する。これにより、メンテナンス機能を実行したいアプリケーションは、印刷装置及びドライバアーキテクチャの仕様を知らなくとも、ベンダーが定義したAPIを使用するだけで容易にメンテナンス機能の実行が可能となる。
[V3ドライバでのメンテナンス処理フロー]
ここでは、図2を用いて、印刷システムであるV3ドライバ上で実現されるメンテナンス機能の処理のフローについて説明する。プリンタドライバUI部210において、メンテナンス機能に関係する構成は、UIモジュール212、メンテナンス処理部213及びメンテナンス情報データベース216である。メンテナンスAPIは、外部アプリケーションからアクセス可能なインタフェースとして定義されており、外部アプリケーションが自由にアクセスできるインタフェースである。メンテナンスSDK Wrapper201が、アプリケーション200からの命令に応じて、メンテナンスAPIを用いてその命令に対応する命令を発行することで、メンテナンス機能を実行する。メンテナンスAPI処理部211は、メンテナンスSDK Wrapper201からのメンテナンスAPIを介して発行された命令に応じたメンテナンスコマンド実行命令をUIモジュール212に発行する。
UIモジュール212は、メンテナンス処理部213に対して、メンテナンスコマンド実行命令に対応するメンテナンスコマンドをメンテナンス処理部213に発行する。メンテナンス処理部213は、発行されたメンテナンスコマンドをメンテナンス情報データベース216と照合を行い、印刷装置120に対応するメンテナンスコマンドをメンテナンス情報データベース216から取得する。
次に、メンテナンス処理部213は、印刷装置120へ対応するメンテナンスコマンド214を送信する。次に、印刷装置120によるメンテナンス機能の実行後、メンテナンス処理部213は、印刷装置120からメンテナンス機能実行結果を示す旨の情報215を受け取り、UIモジュール212に返す。最後に、UIモジュール212は、メンテナンス機能実行結果をメンテナンスSDK Wrapper201に返す。
以上が、V3ドライバ上でのメンテナンス機能の処理のフローであり、ドライバUI部210に独自のAPIを用意することで、容易にメンテナンス機能の実行を可能としている。
[V4プリンタドライバの印刷システム]
図3を用いて、情報処理装置110のOSとしてMicrosoft社のWindowsを用いているものとし、ドライバアーキテクチャとしてV4アーキテクチャを使用したV4プリンタドライバを用いた印刷システムを説明する。
アプリケーション200には、画像処理、ワードプロセッサ、ウェブブラウザなどのソフトウェアや、他のアプリケーションへのI/Fを備え、他のアプリケーションからの要求に応じた印刷装置やプリンタドライバへの命令を生成するソフトウェアが含まれる。アプリケーション200は、描画命令で構成された描画命令群をOSに発行する。描画命令には、例えばテキスト描画命令、グラフィクス描画命令、イメージ描画命令が含まれる。
OSは、アプリケーション200から発行される各種描画命令をOSの印刷サポート機能311を介してスプールデータに変換する。変換後のスプールデータは、スプーラ312のプリントキュー313に一時的に蓄えられ、印刷ジョブ314としてスプーラ312により管理される。印刷ジョブ314は、プリンタドライバ320によって印刷装置120が解析可能な印刷データに変換された後に、印刷装置120に提供され、印刷装置120で印刷が行われるように構成されている。
プリンタドライバ320に渡された印刷ジョブ314は、まず、レイアウトフィルター322によって処理される。ここで、フィルターとは、入力されたデータをもとに、加工、変換、無変換、生成等の工程を介して、何らかのデータを出力する機能を有するプログラム(モジュール)のことである。各フィルターは、印刷ジョブ314のデスプール時に不図示のOSのフィルター管理機能から呼び出され、初期化が行なわれる。レイアウトフィルター322は、印刷設定情報に従って印刷ジョブ314のページを並べ替えたり複数のページを1つのページにまとめたりするページ構成処理を、印刷ジョブ314に対して行う。
次に、印刷ジョブ314は、レンダーフィルター323によって処理される。レンダーフィルター323は、印刷設定情報に従って印刷ジョブ314を変換し、印刷装置120が解釈可能な印刷データを生成する。そして、レンダーフィルター323が生成した印刷データは、ポートモニタ331を介して印刷装置120へ送信される。
アプリケーション200は、ユーザによる入力デバイスの操作に基づき印刷を開始する指示を行う際、OSの印刷サポート機能311を介して、ユーザインタフェース(以後、UI)モジュール321から返却された印刷設定情報を印刷ジョブ314に付加する。V4アーキテクチャでは、印刷設定情報を記述するものとしてプリントチケット(PrintTicket)を使用している。印刷設定情報には、例えば、用紙サイズや用紙の種類、画像処理パラメータ等が含まれる。
UIモジュール321は、OSが提供するモジュールであり、V4アーキテクチャ下では機能が限定されている。このため、V4アーキテクチャの制限下では、プリンタドライバ320は、V3ドライバで行っていたメンテナンスAPIのような外部インタフェースをドライバUI部に設けることができない。従って、UIモジュール321に対して、アプリケーション200は、印刷設定情報以外の情報を渡すことができない。UI拡張モジュール324は、ベンダーがUIの機能を拡張することができるためのモジュールである。
図1の記憶部内のキュープロパティバッグ315に対して、UI拡張モジュール324やレンダーフィルター323は、UI拡張モジュールで設定した値の読み込み・書き込みを行い、キュープロパティバッグ315は、その値の保存を行う。ドライバプロパティバッグ316(以後、DPB)は、機種に依存する情報を保存する。ユーザプロパティバッグ317は、OSのユーザのアカウントに依存する設定値を保存する。
[V4プリンタドライバでのメンテナンス処理フロー]
以下、図4を用いて、V4アーキテクチャの制限下で、本実施形態におけるメンテナンス処理を実現するための構成について説明する。
図4は、本実施形態におけるメンテナンス処理を実現するための構成を示す図である。前述したように、V4アーキテクチャでは、OSが提供するUIモジュール321を用いるため、メンテナンスSDK Wrapper201は、V3ドライバのように独自のAPIを使うことができない。そこで、本実施形態では、V4アーキテクチャにおいて印刷設定情報を記述するものであるPrintTicketを拡張する。本実施形態では、PrintTicketは、印刷設定情報の1つとして、メンテナンス処理を実行する旨を示す情報や、印刷装置120が使用可能なメンテナンス機能一覧を取得する旨を示す情報を有する。これにより、印刷設定情報以外の情報をUIモジュール321及びUI拡張モジュール324に渡すことが可能となる。
アプリケーション200は、メンテナンスSDK Wrapper201に指示し、メンテナンスSDK Wrapper201は、メンテナンスの実行命令を付加したPrint Ticketを、OSを介して標準UIモジュール321に送る。標準UIモジュール321は、UI拡張モジュール324を呼出す。UI拡張モジュール324は、OSより取得したPrintTicketを参照し、メンテナンスの実行命令に対応するメンテナンスコマンド214を、印刷装置120の能力、コマンドなどの機種依存情報が格納されたDPB316から取得する。UI拡張モジュール324は、メンテナンスコマンド214を、印刷装置120に送信する。
尚、V4アーキテクチャにおいては、DPB316へのアクセス方法は制限されている。つまり、アプリケーション200やメンテナンスSDK Wrapper201、及びOSを介して呼び出されるUIモジュール321から起動されていないUI拡張モジュール324は、DPB316へのアクセスは不可とされている。そこで、本実施形態では、DPB316から印刷装置120に依存する情報を取得するために、Document Propertiesを用いてプリンタドライバ320を呼び出す。そして、標準UIモジュール321により起動されたUI拡張モジュール324からDPB316にアクセスしている。このように、本実施形態では、プリンタドライバを介することにより、UI拡張モジュール324がDPB316を使用して印刷装置120へのコマンドを取得、送信する。そのため、アプリケーション200及びメンテナンスSDK Wrapper201は、コマンドなどの、プリンタドライバ320や印刷装置120固有の情報を知ることなく、印刷装置120のメンテナンス機能を実行することができる。
印刷装置120によるメンテナンス機能の実行後、UI拡張モジュール324は、印刷装置120よりメンテナンス機能実行結果を示す旨の情報215を受け取り、UIモジュール321に返す。
以上により、V4アーキテクチャの制限下においても、アプリケーション200からメンテナンス機能の実行が可能となる。以下、フローチャートを用いて、本実施形態の動作の詳細について説明する。
[アプリケーションから見たメンテナンス機能実行時の全体の処理の説明]
図5は、本実施形態におけるアプリケーション200の処理を示すフローチャートである。図6は、メンテナンスSDK Wrapper201がアプリケーション200からメンテナンスSDKを実行可能であるかを確認された際の、メンテナンスSDK Wrapper201の処理を示すフローチャートである。アプリケーション200からメンテナンス機能を実行する際のアプリケーション200の処理について説明する。
まず、アプリケーション200は、OS標準のAPIを使用してメンテナンスSDK Wrapper201のフルパスを取得し、メンテナンスSDK Wrapper201を読み込む。そして、メンテナンスSDK Wrapper201に問い合わせ、メンテナンスSDKが使用可能であるか否かを判定する(S501)。アプリケーション200は、メンテナンスSDK Wrapper201の図6の処理を経て、判定を行う。
アプリケーション200からメンテナンスSDKに対する上記のような確認を含む通信方法は、メンテナンスSDK Wrapper201に、例えばAPIのような外部インタフェースを設けるようにしても良い。その場合、アプリケーション200が予め決められた確認要求命令を発行することにより行われる。
S501でメンテナンスSDKが使用可能であると判定された場合、アプリケーション200は、印刷装置120がサポートするメンテナンス機能一覧取得命令をメンテナンスSDK Wrapper201に発行する(S502)。これにより、V4プリンタドライバでは独自のAPIを持つことができないという制限を回避することができる。一方、メンテナンスSDKが使用可能でないと判定された場合、図5の処理を終了する。
アプリケーション200は、メンテナンス機能一覧取得命令を発行後、メンテナンスSDK Wrapper201から印刷装置120がサポートするメンテナンス機能一覧を受け取る。アプリケーション200は、メンテナンス機能一覧から任意のメンテナンス機能を選択し、メンテナンスSDK Wrapper201に対して、指定のメンテナンス機能を実行する旨の命令を送る(S503)。メンテナンスSDK Wrapper201の処理が完了後、アプリケーション200は、メンテナンスSDK Wrapper201からメンテナンス処理の実行結果を受け取り(S504)、図5の処理を終了する。
[メンテナンスSDK使用可否の確認時の処理フロー]
次に、図6を用いて、メンテナンスSDK Wrapper201がアプリケーション200からメンテナンスSDKを実行可能であるかを確認された際の、メンテナンスSDK Wrapper201の処理について説明する。まず、メンテナンスSDK Wrapper201は、UI拡張モジュール324の存在の有無について記述された記憶領域を参照して、UI拡張モジュール324が存在するか否かを確認し判定する(S601、S602)。
S602でUI拡張モジュール324が存在すると判定された場合、存在する旨の情報を処理の結果としてアプリケーション200に返す(S603)。一方、存在しないと判定された場合、存在しない旨の情報を処理の結果としてアプリケーション200に返し(S604)、図6の処理を終了する。S501の判定は、図6の結果を用いて行われる。
[メンテナンス機能一覧取得時の処理フロー]
アプリケーション200がメンテナンス機能の一覧取得命令をメンテナンスSDK Wrapper201に発行する際の、メンテナンスSDK Wrapper201の処理フローについて説明する。図7は、アプリケーション200からメンテナンス機能の一覧取得命令を受け取った際の、メンテナンスSDK Wrapper201の処理を示すフローチャートである。図8は、印刷設定以外の情報を記述したPrintTicketの例を示す図であり、本実施形態では、メンテナンス機能一覧を取得するために使用する。
メンテナンスSDK Wrapper201は、OSからPrintTicketを取得する。そして、メンテナンスSDK Wrapper201からの命令の種類を表すためにタグ801を使用し、メンテナンス機能一覧の取得を表す値を値802に設定し、OSにPrintTicketを返却する(S701)。
次に、メンテナンスSDK Wrapper201は、DocumentPropertiesをコールすることにより、OSを介して標準UIモジュール321及びUI拡張モジュール324を呼び出す(S702)。UI拡張モジュール324での処理後、メンテナンスSDK Wrapper201は、PrintTicketをOSから取得する。メンテナンスSDK Wrapper201は、UI拡張モジュール324によってPrintTicketに記述された、UI拡張モジュール324の処理結果を表すタグ803に含まれる値804を参照し、メンテナンス機能一覧を取得する(S703)。
そして、メンテナンスSDK Wrapper201は、メンテナンス機能一覧を作成して(S704)、処理の結果として、アプリケーション200に返し(S705)、図7の処理を終了する。
上記のDocumentPropertiesは、OS標準のAPIであり、これ以外でドライバUIを呼び出すことはできない。また、V4プリンタドライバの制限により、独自インタフェースを用いることもできない。従って、OSを介してドライバUIを呼び出す場合、アプリケーション200やメンテナンスSDK Wrapper201は、印刷設定などの既定の情報以外をドライバUIに渡すことはできない。そこで、本実施形態では、上記のように、印刷設定情報を記述するためのPrintTicketに、印刷設定情報以外の情報を含めることにより、ドライバUIに対して既定の情報以外の情報を渡すことを可能としている。
尚、メンテナンスSDK Wrapper201がPrintTicket内の値802に設定するメンテナンス機能一覧の取得を表す値は、数字であっても良いし、文字列であっても良い。また、アプリケーション200に結果として返すメンテナンス機能一覧は、文字列であっても良いし、予め取り決められた値であっても良い。同様に、PrintTicket内の結果を格納するためのタグ及び値は、予め複数種類のタグを用意しておくことも可能である。これにより、任意の数の結果を返せる他、別の手法として、何らかの区切り文字を用いることで1つのタグのみで複数の値を結果として返すようにしても良い。メンテナンスSDK Wrapper201がアプリケーション200へ結果を返す方法は、メンテナンスSDK Wrapper201のモジュールの戻り値であっても良いし、外部ファイルを介しても良い。
次に、図9を用いて、メンテナンス機能一覧を取得する際のUI拡張モジュール324の処理フローについて説明する。
DocumentPropertiesのコールによって起動されたUI拡張モジュール324は、PrintTicketを参照する(S901)。そして、メンテナンス機能一覧を取得する旨の情報であるタグ801が含まれているか否かを確認し、判定する(S902)。メンテナンス機能一覧を取得する旨の情報が含まれていると判定された場合、UI拡張モジュール324を非表示とし(S903)、印刷装置120がサポートするメンテナンス機能一覧をDPB316から取得する。
UI拡張モジュール324とメンテナンスSDK Wrapper201、あるいはUI拡張モジュール324とアプリケーション200の間では、互いに直接アクセスすることができない。従って、UI拡張モジュール324は、取得したメンテナンス機能一覧を、UI拡張モジュール324の結果を示す値をタグ803の値804に記述して、PrintTicketをOSに返却する(S904)。
メンテナンス機能一覧を取得する場合は、ドライバUIの表示およびユーザの操作は不要である。UIを表示すると、かえってアプリケーション200が意図しない情報をユーザに表示してしまうことから、ユーザの混乱を招く可能性がある。そこで、本実施形態では、メンテナンスSDK Wrapper201がメンテナンス機能一覧を取得する場合を判断してUIを非表示にすることで、上記のような問題を回避することができる。また、アプリケーション200側で、実行するメンテナンス機能に応じて、アプリケーション200のUIの表示を切り替える、といったような構成としても良い。
S902でメンテナンス機能一覧を取得する旨の情報であるタグ801が含まれていないと判定された場合、UI拡張モジュール324は、PrintTicketにメンテナンス機能実行命令が含まれているか否かを判定する(S905)。メンテナンス機能実行命令が含まれていないと判定された場合、UI拡張モジュール324を表示し(S906)、印刷設定を行う(S907)。その後、図9の処理を終了する。一方、メンテナンス機能実行命令が含まれていると判定された場合、S908に進む。S908以降の処理については後述する。
上記では、UI拡張モジュール324の非表示について説明した。V4アーキテクチャは、DocumentPropertiesの呼び出しの際に、関数の引数に非表示フラグを設定することによりUI拡張モジュール324を非表示にする機能を標準で有している。しかしながら、その非表示機能は、UI拡張モジュール324の呼び出し自体を行わないという仕様となっている。このため、その非表示機能を使用する場合には、UI拡張モジュール324がS902の処理を行うことができず、メンテナンス機能一覧を取得する処理を実行することができない。しかしながら、本実施形態では、上記の非表示機能を用いないので、上記の問題を回避しつつ、UI拡張モジュール324を非表示にしてメンテナンス機能一覧を取得することが可能となる。
[メンテナンス機能を実行する際の処理フロー]
アプリケーション200がメンテナンス機能一覧から指定のメンテナンス機能を実行する際の処理フローについて説明する。図10は、アプリケーション200がメンテナンス機能一覧を取得し、その中から指定のメンテナンス機能を実行する際の処理のフローを示す図である。
アプリケーション200は、印刷装置120がサポートするメンテナンス機能一覧をメンテナンスSDK Wrapperから取得し(S1001)、所望のメンテナンス機能が使用できるか否かを判定する(S1002)。メンテナンス機能が存在すると判定された場合は、メンテナンスSDK Wrapper201に対してメンテナンス機能の実行命令を発行する(S1003)。一方、メンテナンス機能が存在しないと判定された場合には、図10の処理を終了する。S1003の処理後、アプリケーション200は、メンテナンスSDK Wrapper201がメンテナンス機能の処理を行った後に返してきた結果を受け取り、図10の処理を終了する。
次に、メンテナンスSDK Wrapper201がアプリケーション200からメンテナンス機能を実行する旨の命令を受け取った際の処理を説明する。図11は、メンテナンスSDK Wrapper201がアプリケーション200からメンテナンス機能を実行する旨の命令を受け取った際のメンテナンスSDK Wrapper201の処理のフローを示す図である。
まず、メンテナンスSDK Wrapper201は、アプリケーション200からメンテナンス機能を実行する旨の命令を受け取る。次に、メンテナンスSDK Wrapper201は、OSからPrintTicketを取得する(S1101)。メンテナンスSDK Wrapper201は、指定のメンテナンス機能を実行する旨の命令に対応する値を、PrintTicketのタグ801の値802に記述した後、PrintTicketをOSに返却する(S1102)。
その後、メンテナンスSDK Wrapper201は、Document Properties関数をコールする(S1103)。Document Properties関数経由で呼び出されたUI拡張モジュール324での処理終了後、メンテナンスSDK Wrapper201は、OSからPrintTicketを取得する(S1104)。そして、PrintTicketのタグ803の値804を参照してメンテナンス機能の実行の成否についての情報を取得する(S1105)。メンテナンスSDK Wrapper201は、アプリケーション200にメンテナンス機能の実行の成否の情報を返し(S1106)、図11の処理を終了する。
次に、図9を用いてメンテナンスSDK Wrapper201がメンテナンス機能実行のためにDocumentPropertiesをコールした際の、標準UIモジュール321経由で起動されるUI拡張モジュール324の処理フローについて説明する。
UI拡張モジュール324は、PrintTicketを参照し(S901)、タグ801の値802を確認し、メンテナンス機能一覧を取得する旨の情報が含まれているか否かを判定する(S902)。PrintTicketにメンテナンス機能一覧を取得する旨の情報が含まれていないと判定された場合,UI拡張モジュール324は、メンテナンス機能実行の旨の情報が含まれているか否かを判定する(S905)。
S905でメンテナンス機能実行の旨の情報が含まれていると判定された場合、UI拡張モジュール324は、メンテナンス機能を実行する旨の情報としてタグ801の値802を参照する。そして、アプリケーション200が指定するメンテナンス機能の情報をDPB316から取得する(S909)。次に、UI拡張モジュール324は、DPB316から得たメンテナンス機能の情報に基づき、アプリケーション200が指定するメンテナンス機能の実行処理を行う(S910)。
メンテナンス機能の実行処理では、UI拡張モジュール324は、印刷装置120にメンテナンス機能実行を示す旨のコマンドを送信する。ここでの印刷装置120へのメンテナンス機能実行を示す旨のコマンドの送信は、ジョブとして情報を送信しても良いし、ポートモニタ331に直接コマンドを送信しても良い。ここで、メンテナンス機能実行を示す旨のコマンドは、UI拡張モジュール324内に直接所持しても良いし、UI拡張モジュール324の外部にデータベースとして保持して、メンテナンス機能実行の旨の情報と照合することで得ても良い。
このようにPrintTicketとUI拡張モジュール324を組み合わせることによりV4アーキテクチャにおける制限下でも、アプリケーション200とメンテナンスSDK Wrapper201から実印刷以外の任意の処理を実行させることができる。また、メンテナンス機能を他の機能の実行に変更すれば、様々なアプリケーションから印刷機能以外の任意の処理の実行させることも可能となる。
S910の処理後、UI拡張モジュール324は、メンテナンス機能実行の結果を印刷装置120から取得して(S911)、PrintTicketに記述した後、OSにPrintTicketを返却する(S912)。その後、図9の処理を終了する。
[第2の実施形態]
以下、第2の実施形態について第1の実施形態と異なる点について説明する。アプリケーション200は、ユーザにドライバUI上での操作を要求する場合がある。V4プリンタドライバの制限下では、UIモジュール321に独自のインタフェースを設けることができないことから、常に通常起動時に表示されるタブシートを選択した状態でドライバUIが表示される。その場合、ユーザはタブシートの切り替えやメニュー階層をたどるという操作手順を避けることができない。従って、アプリケーション200が指定する機能を起動させるための操作がユーザにとって煩わしいものとなる。
本実施形態では、PrintTicketとUI拡張モジュール324を組み合わせることで、V4プリンタドライバの制限下であっても任意のタブシートを開いた状態でユーザにドライバUIを提示することを可能とする。
以下、アプリケーション200が任意のタブシートを開いた状態でドライバUIを起動する処理のフローについて説明する。図12は、アプリケーション200の処理のフローを示す図である。また、本実施形態において、アプリケーション200は、S501のメンテナンスSDK Wrapper201の読み込みを完了しているものとして説明する。
アプリケーション200は、メンテナンスSDKが使用可能であるか否かをメンテナンスSDK Wrapper201に確認し、判定する(S1201)。メンテナンスSDKが使用できないと判定された場合、図12の処理を終了する。また、その場合、アプリケーション200がエラー処理を行うようにしても良い。
メンテナンスSDKが使用可能であると判定された場合、アプリケーション200は、UI拡張モジュール324の任意のタブシートを選択した状態で表示する命令を、メンテナンスSDK Wrapper201に発行する(S1202)。アプリケーション200は、メンテナンスSDK Wrapper201での処理の完了を待機する(S1203)。メンテナンスSDK Wrapper201での処理の終了後、図12の処理を終了する。尚、この処理のフローにおいて、メンテナンスSDK Wrapper201に対して予めUI拡張モジュール324の指定のタブシートが存在するか否かを判定するようにしても良い。そして、存在しないと判定した場合、アプリケーション200側、メンテナンスSDK Wrapper201側でエラー処理を行うようにしても良い。
次に、メンテナンスSDK Wrapper201がアプリケーション200から任意のタブシートを選択した状態で表示する命令を受け取った場合の処理のフローについて図13を用いて説明する。図13は、以下の内容について図11と異なる。即ち、PrintTicketへの命令の書き込みの内容を変更しPrintTicketを介してUI拡張モジュール324から受け取る結果の内容と、メンテナンスSDK Wrapper201がアプリケーション200に返す結果の内容で図11と異なる。
メンテナンスSDK Wrapper201がアプリケーション200から表示命令を受け取った後、メンテナンスSDK Wrapper201は、OSからPrintTicketを取得する(図13のS1101)。メンテナンスSDK Wrapper201は、アプリケーション200からの命令に対応する指定のタブシートを開く旨の情報として、値を図8のタグ801に、指定のタブシートを開く値802を設定してPrintTicketに書き込む(S1301)。そして、PrintTicketをOSに返却する。
その後、メンテナンスSDK Wrapper201は、DocumentPropertiesをコールしてUI拡張モジュール324を起動する(図13のS1103)。UI拡張モジュール324の処理終了後に、メンテナンスSDK Wrapper201は、OSからPrintTicketを取得する(図13のS1104)。そして、PrintTicketを参照して、処理の結果としてタグ803の値804を取得し(S1302)、アプリケーション200に返却し(S1303)、図13の処理を終了する。
図14、図15、図16を用いて、メンテナンスSDK Wrapper201からDocument Propertiesがコールされた時のUI拡張モジュール324の処理のフローについて説明する。図14は、メンテナンスSDK Wrapper201からDocument Propertiesがコールされた場合のUI拡張モジュール324の処理のフローを示す図である。図15は、通常起動時のUI拡張モジュール324による設定画面の表示を示す図である。タブシート1501は、通常起動時に最初に選択されているタブシートである。図16は、通常起動時とは異なるタブシートを選択した状態でのUI拡張モジュール324による設定画面の表示を示す図である。タブシート1601は、メンテナンス機能を表示するタブシートであり、UI拡張モジュール324を通常起動した場合にはタブシート1601が選択された状態で表示されることはない。
UI拡張モジュール324がDocumentPropertiesのコールによって起動した場合、UI拡張モジュール324は、PrintTicketを参照する(S1401)。UI拡張モジュール324は、PrintTicket内のタグ801の値802に、指定のタブシートを選択した状態でUI拡張モジュール324を表示する命令(以後、表示命令)が含まれているか否かを判定する(S1402)。表示命令が含まれていると判定された場合、表示命令に対応する指定のタブシート、例えばメンテナンスに関する機能をまとめたタブシート1601を選択する(S1403)。表示命令が含まれていないと判定された場合、通常の起動時に選択されるタブシート1501が選択された状態となる。その後、いずれの場合でも、UIを表示するようUI拡張モジュール324が起動され、通常の印刷設定が行われる(S1404)。UI拡張モジュール324のUIを閉じる際に、UI拡張モジュール324は、PrintTicketのタグ803の値804に処理の結果を書き込み、OSにPrintTicketを返却し、図14の処理を終了する。
以上のように、PrintTicketとUI拡張モジュール324を組み合わせることにより、V4アーキテクチャにおける制限下でも、任意のタブシートを選択した状態でドライバUIを開くことができる。このため、ユーザはタブシートの切り替えやメニュー階層をたどるという操作手順を避け、アプリケーションが指定するタブシートや情報に容易にアクセスすることができる。
[第3の実施形態]
次に、第3の実施形態について第1及び第2の実施形態と異なる点について説明する。印刷装置120には、セキュリティ対策などにより予め登録されたユーザにのみ印刷を許可する機能が備わっている場合がある。しかしながら、V4アーキテクチャの制限下では独自のAPIを用意することができないため、ユーザにドライバUI上での認証処理を要求する必要がある。このような場合においても、本実施形態によれば、PrintTicketを介してメンテナンスSDK Wrapper201とUI拡張モジュール324が通信を行う。その結果、アプリケーション200は、ドライバUI上での操作を行うことなく、印刷装置120からユーザ認証の情報を取得や照合・登録を容易に行うことができる。
以下、アプリケーション200がドライバUIを表示することなく印刷装置120に対してユーザ認証機能を実行させる処理のフローについて説明する。図17は、アプリケーション200の処理のフローを示す図である。また、本実施形態では、アプリケーション200は、S501のメンテナンスSDK Wrapper201の読み込みを完了しているものとして説明する。
アプリケーション200は、メンテナンスSDK Wrapper201に対してメンテナンスSDKが使用可能であるか否かを判定する(図17のS501)。メンテナンスSDKが使用可能であると判定された場合、S1701に進み、メンテナンスSDKが使用可能でないと判定された場合、図17の処理を終了する。
アプリケーション200は、ユーザIDとパスワードなどの認証情報とともにメンテナンスSDK Wrapper201にユーザ認証実行命令を発行する(S1701)。その後、アプリケーション200は、メンテナンスSDK Wrapper201から、ユーザ認証実行処理の結果を受け取る(S1702)。アプリケーション200は、処理の結果を確認し、処理が成功であるか失敗であるかを判定する(S1703)。処理が成功であると判定された場合は、アプリケーション200の表示を切り替えるなどの成功の処理を行う(S1704)。一方、処理が失敗であると判定された場合は、失敗のメッセージを表示するなどのエラー処理を行う(S1705)。S1704若しくはS1705の処理後、図17の処理を終了する。
次に、メンテナンスSDK Wrapper201がアプリケーション200からユーザ認証実行命令を発行された際の、メンテナンスSDK Wrapper201の処理のフローについて図18を用いて説明する。
メンテナンスSDK Wrapper201は、ユーザ認証実行命令をアプリケーション200から取得する(S1801)。次に、メンテナンスSDK Wrapper201は、OSからPrintTicketを取得し、ユーザ認証情報の取得を示す情報をPrintTicketのタグ801の値802に記述した後、PrintTicketをOSに返却する(S1802)。
メンテナンスSDK Wrapper201は、DocumentPropertiesをコールしてUI拡張モジュール324を起動する(S1803)。メンテナンスSDK Wrapper201は、UI拡張モジュール324の処理の終了を待機した後(S1804)、OSから取得したPrintTicketを参照し、タグ803の値804から処理結果を取得する(S1805)。最後に、メンテナンスSDK Wrapper201は、アプリケーション200に処理結果を返し(S1806)、図18の処理を終了する。
次に、UI拡張モジュール324がDocument Propertiesのコールにより起動された際の処理のフローについて図19を用いて説明する。図19は、命令確認の分岐とDPB316からの命令取得、印刷装置120への命令送信、印刷装置120からの結果の取得、結果をPrintTicketに記述する処理について図9と異なる。
UI拡張モジュール324は、OSから取得したPrintTicketのタグ801の値802を参照し(図19のS901)、PrintTicket内に認証情報取得命令を表す値が含まれているか否かを判定する(S1901)。認証情報取得命令が含まれていないと判定された場合は、UIを表示して通常の印刷設定を行う(図19のS906、S907)。
取得命令が含まれていると判定された場合、UI拡張モジュール324は、UIを非表示とし(図19のS903)、DPB316から印刷装置120に対応する指定の認証情報取得の命令を得る(S1902)。UI拡張モジュール324は、DPB316から得られた認証情報取得命令を印刷装置120に送信し(S1903)、印刷装置120からその結果としてユーザ認証情報を取得する(S1904)。UI拡張モジュール324は、取得した結果をPrintTicketのタグ803の値804に記述してOSに返却し(S1905)、図19の処理を終了する。
以上のように、プリンタドライバに独自APIを設けることができないといったV4アーキテクチャの制限下であっても、PrintTicketを介してメンテナンスSDK Wrapper201とUI拡張モジュール324が通信を行う。その結果、アプリケーション200は、ドライバUI上での操作を行うことなく、印刷装置120からユーザ認証の情報を取得や照合・登録を容易に行うことができる。
上述のユーザ認証処理と同様に、PrintTicketに印刷設定以外の情報を書き込む方法を用いることで、アプリケーション200は、例えば、印刷装置120本体のアドレス帳に登録されたFAXの連絡先を取得することも可能である。このように、PrintTicketに印刷設定以外の情報を記述することで、独自のインタフェースを設けることができないV4アーキテクチャの制限下であっても、プリンタドライバを介して印刷装置120から各種情報を取得可能となる。
本発明の目的は、以下のような構成によっても達成される。即ち、各実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体をシステムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(CPUまたはMPU)が記録媒体に格納されたプログラムコードを読み出し実行する。その場合、記憶媒体から読み出されたプログラムコード自体が各実施形態の機能を実現することとなり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROM、DVDなどを用いることができる。
また、コンピュータが読み出したプログラムコードを実行することにより、各実施形態の機能が実現されるばかりではない。例えば、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOSなどが実際の処理の一部または全部を行い、その処理によって各実施形態の機能が実現される場合も含まれる。
さらには、以下のような構成も含まれる。即ち、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって各実施形態の機能が実現される。
以上、メンテナンス等のコマンド発行、タブ表示切り替え,印刷装置120との認証,印刷装置120からの情報取得について説明してきた。本発明を用いれば、メンテナンス以外のコマンド実行や、アプリケーションからドライバに対し、その他多くの任意の機能を実行させることが可能である。また、MicrosoftのV4アーキテクチャのドライバについて、主に説明してきたが、他のOSやアーキテクチャにおいて各実施形態の機能が実現される場合も含まれる。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
110 情報処理装置: 112 CPU: 113 ROM: 116 RAM: 120 印刷装置

Claims (12)

  1. アプリケーションとプリンタドライバとを有する情報処理装置であって、
    前記アプリケーションにおいて、前記プリンタドライバに係る印刷とは異なる機能の実行の命令を受信する受信手段と、
    前記アプリケーションにおいて、前記受信手段により受信した前記命令をプリントチケットに設定し、当該プリントチケットをOSに渡す設定手段と、
    前記アプリケーションにおいて、前記OSを介して前記プリンタドライバを呼び出す呼出手段と、
    前記呼出手段により呼び出された前記プリンタドライバにおいて、前記設定手段により前記命令が設定されたプリントチケットを前記OSから取得する取得手段と、
    前記呼出手段により呼び出された前記プリンタドライバにおいて、前記取得手段により取得したプリントチケットに設定されている前記命令に基づいて前記機能を実行する実行手段と、を有し、
    前記機能は、印刷機能と異なる機能であり、
    前記呼出手段は、前記プリンタドライバに用意された第1のインタフェースモジュールを呼び出し、
    前記第1のインタフェースモジュールは、第2のインタフェースモジュールを呼び出し、
    前記第2のインタフェースモジュールは、前記機能を実行するための情報を記憶する記憶部から、当該情報を取得する、
    ことを特徴とする情報処理装置。
  2. 前記アプリケーションから前記記憶部へのアクセスは不可とされていることを特徴とする請求項に記載の情報処理装置。
  3. 前記第1のインタフェースモジュールから呼び出された前記第2のインタフェースモジュールから前記記憶部へのアクセスは許可されていることを特徴とする請求項1又は2に記載の情報処理装置。
  4. 前記記憶部は、ドライバプロパティバッグを含むことを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。
  5. 前記実行手段は、前記取得手段により取得したプリントチケットに設定されている前記命令と、前記第2のインタフェースモジュールが取得した前記機能を実行するための情報とに基づいて、前記機能を実行することを特徴とする請求項1乃至4のいずれか1項に記載の情報処理装置。
  6. 前記プリンタドライバは、V4アーキテクチャのプリンタドライバであり、
    前記第1のインタフェースモジュールは、標準UIモジュールであり、前記第2のインタフェースモジュールは、UI拡張モジュールである、
    ことを特徴とする請求項1乃至5のいずれか1項に記載の情報処理装置。
  7. 前記機能を実行するための情報は、前記プリンタドライバに対応する印刷装置に関する情報であることを特徴とする請求項1乃至のいずれか1項に記載の情報処理装置。
  8. 前記実行手段による実行の結果を前記OSを介して前記アプリケーションに送信する送信手段、をさらに有することを特徴とする請求項1乃至のいずれか1項に記載の情報処理装置。
  9. 前記呼出手段は、前記OSに標準に用意されたAPIにより、前記プリンタドライバを呼び出すことを特徴とする請求項1乃至のいずれか1項に記載の情報処理装置。
  10. 前記機能は、前記プリンタドライバに対応する印刷装置のメンテナンス機能、設定画面の表示機能、認証機能の少なくともいずれかを含むことを特徴とする請求項1乃至のいずれか1項に記載の情報処理装置。
  11. アプリケーションとプリンタドライバとを有する情報処理装置において実行される方法であって、
    前記アプリケーションにおいて、前記プリンタドライバに係る印刷とは異なる機能の実行の命令を受信する受信工程と、
    前記アプリケーションにおいて、前記受信工程において受信した前記命令をプリントチケットに設定し、当該プリントチケットをOSに渡す設定工程と、
    前記アプリケーションにおいて、前記OSを介して前記プリンタドライバを呼び出す呼出工程と、
    前記呼出工程において呼び出された前記プリンタドライバにおいて、前記設定工程において前記命令が設定されたプリントチケットを前記OSから取得する取得工程と、
    前記呼出工程において呼び出された前記プリンタドライバにおいて、前記取得工程において取得したプリントチケットに設定されている前記命令に基づいて前記機能を実行する実行工程と、を有し、
    前記機能は、印刷機能と異なる機能であり、
    前記呼出工程では、前記プリンタドライバに用意された第1のインタフェースモジュールを呼び出し、
    前記第1のインタフェースモジュールは、第2のインタフェースモジュールを呼び出し、
    前記第2のインタフェースモジュールは、前記機能を実行するための情報を記憶する記憶部から、当該情報を取得する、
    ことを特徴とする方法。
  12. 請求項1乃至10のいずれか1項に記載の情報処理装置の各手段として、コンピュータを機能させるためのプログラム。
JP2016160689A 2016-08-18 2016-08-18 情報処理装置、方法およびプログラム Active JP6784538B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016160689A JP6784538B2 (ja) 2016-08-18 2016-08-18 情報処理装置、方法およびプログラム
US15/672,683 US10289364B2 (en) 2016-08-18 2017-08-09 Information processing apparatus, method, and non-transitory computer-readable storage medium storing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016160689A JP6784538B2 (ja) 2016-08-18 2016-08-18 情報処理装置、方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2018028817A JP2018028817A (ja) 2018-02-22
JP6784538B2 true JP6784538B2 (ja) 2020-11-11

Family

ID=61248454

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016160689A Active JP6784538B2 (ja) 2016-08-18 2016-08-18 情報処理装置、方法およびプログラム

Country Status (2)

Country Link
US (1) US10289364B2 (ja)
JP (1) JP6784538B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019074884A (ja) * 2017-10-13 2019-05-16 キヤノン株式会社 プログラム、データ通信方法、および情報処理装置
JP7102216B2 (ja) 2018-05-07 2022-07-19 キヤノン株式会社 プログラム
JP7479121B2 (ja) * 2019-02-01 2024-05-08 ブラザー工業株式会社 サポートプログラム、情報処理装置、および印刷方法
JP7298241B2 (ja) 2019-03-28 2023-06-27 ブラザー工業株式会社 サポートプログラム、情報処理装置、および印刷方法
JP7354731B2 (ja) * 2019-09-27 2023-10-03 ブラザー工業株式会社 サポートプログラム、情報処理装置、および印刷方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4652730B2 (ja) * 2004-06-29 2011-03-16 キヤノン株式会社 デバイス制御方法および装置、コンピュータプログラム
JP5950608B2 (ja) * 2012-02-15 2016-07-13 キヤノン株式会社 情報処理装置、方法およびプログラム
JP5971972B2 (ja) * 2012-02-20 2016-08-17 キヤノン株式会社 情報処理装置、画像形成装置、情報処理システム、制御方法およびコンピュータプログラム
JP5950613B2 (ja) * 2012-02-20 2016-07-13 キヤノン株式会社 プログラム及び情報処理装置、制御方法
JP5995461B2 (ja) * 2012-02-24 2016-09-21 キヤノン株式会社 情報処理装置、制御方法、プログラム
JP6184212B2 (ja) * 2013-07-12 2017-08-23 キヤノン株式会社 情報処理装置および制御方法およびプログラム
JP5825565B2 (ja) * 2013-11-07 2015-12-02 コニカミノルタ株式会社 プリンタドライバ及びプリンタドライバの印刷機能の追加方法
JP5962695B2 (ja) * 2014-03-17 2016-08-03 コニカミノルタ株式会社 印刷ジョブの配信・実行システムと配信・実行方法、印刷ジョブ配信サーバ、画像形成装置及び印刷制御プログラム

Also Published As

Publication number Publication date
US20190050183A1 (en) 2019-02-14
US10289364B2 (en) 2019-05-14
JP2018028817A (ja) 2018-02-22

Similar Documents

Publication Publication Date Title
JP6784538B2 (ja) 情報処理装置、方法およびプログラム
JP4847212B2 (ja) 情報処理装置、印刷制御方法、プログラム及びコンピュータ可読の記憶媒体
JP6378507B2 (ja) 情報処理装置およびその制御方法
JP4110147B2 (ja) 情報漏洩抑止方法及びそれを実現する情報処理装置とドライバプログラム
JP5072676B2 (ja) 情報処理装置、情報処理方法及び印刷システム
JP5527992B2 (ja) 印刷制御方法、印刷制御装置、及びコンピュータプログラム
JP6222953B2 (ja) 情報処理装置、方法およびプログラム
JP5361358B2 (ja) 情報処理装置およびその制御方法、並びにプログラム
JP2006309724A (ja) 情報処理装置及び情報処理方法、プログラム、記憶媒体
JP5070101B2 (ja) 情報処理装置及びその制御方法、プリンタドライバプログラム
JP2020087297A (ja) プログラム及び制御方法
JP5807460B2 (ja) 情報処理装置、プログラム、記憶媒体
JP5025684B2 (ja) 制御装置及び方法、並びにプログラム
JP4164488B2 (ja) 情報漏洩抑止方法及びそれを実現する情報処理装置とドライバプログラム
JP6111728B2 (ja) 画像形成出力制御システム、画像形成出力制御プログラム及び情報処理装置
JP2023041245A (ja) 情報処理装置、情報処理装置の制御方法およびプログラム
JP2023034958A (ja) 情報処理装置、情報処理装置の制御方法およびプログラム
JP7250477B2 (ja) プログラム及び情報処理装置
WO2021131981A1 (ja) 情報処理装置、制御方法およびプログラム
JP5106660B2 (ja) 制御装置及び方法、並びにプログラム
JP4522398B2 (ja) ユーザインタフェース制御装置および方法
JP7350525B2 (ja) 情報処理装置、情報処理装置の制御方法、及びプログラム
JP6639570B2 (ja) アプリケーションプログラム
JP7271208B2 (ja) プログラム、および情報処理装置
JP2023034953A (ja) 情報処理装置、情報処理装置の制御方法およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190808

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200330

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200413

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200610

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201023

R151 Written notification of patent or utility model registration

Ref document number: 6784538

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151