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

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

Info

Publication number
JP2024018592A
JP2024018592A JP2022122018A JP2022122018A JP2024018592A JP 2024018592 A JP2024018592 A JP 2024018592A JP 2022122018 A JP2022122018 A JP 2022122018A JP 2022122018 A JP2022122018 A JP 2022122018A JP 2024018592 A JP2024018592 A JP 2024018592A
Authority
JP
Japan
Prior art keywords
information
acquisition means
editing
acquired
print
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2022122018A
Other languages
English (en)
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 JP2022122018A priority Critical patent/JP2024018592A/ja
Priority to DE102023206917.2A priority patent/DE102023206917A1/de
Priority to US18/358,427 priority patent/US20240036787A1/en
Publication of JP2024018592A publication Critical patent/JP2024018592A/ja
Pending legal-status Critical Current

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/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/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/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/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1229Printer resources management or printer maintenance, e.g. device status, power levels
    • 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/1258Configuration of print job parameters, e.g. using UI at the client by updating job settings at the printer
    • 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

Abstract

【課題】デバイスの種別に応じたドライバの機能拡張を実現する仕組みを提供する。【解決手段】プログラムは、デバイスに対応するドライバの機能を拡張するためのアプリケーションのプログラムであって、前記ドライバにより作成された前記デバイスの機能情報を取得する第1取得手段、前記デバイスの種別を取得する第2取得手段、前記第1取得手段により取得された機能情報を編集する編集手段、前記第2取得手段により取得された前記デバイスの種別に応じて、前記第1取得手段により取得された機能情報に対する編集の処理を異ならせるよう前記編集手段を制御する制御手段、としてコンピュータを機能させる。【選択図】図5

Description

本発明は、デバイスドライバの機能を拡張する情報処理装置、方法およびプログラムに関する。
印刷装置の制御用ソフトウェアとしてホストコンピュータにインストールされたプリンタドライバを利用し、ホストコンピュータに接続された印刷装置に対して印刷指示を行う構成が知られている。ホストコンピュータには、基本ソフトウェアであるオペレーティングシステム(OS)がインストールされており、プリンタドライバはそのOSの規定する仕様に従って構成され、OSから呼び出されて動作する。印刷装置を提供するベンダは、OSの仕様に適合するプリンタドライバを提供することにより、そのOSを用いて印刷装置に印刷を指示する手法を提供することができる。
近年、Windows(登録商標)において、複数のベンダの提供する印刷装置で共通して利用可能な標準的なクラスドライバ(以下、「標準ドライバ」とも呼ぶ)が提供されている。このような標準ドライバは、OSのパッケージの中に同梱されており、ホストコンピュータに任意の印刷装置を接続することにより簡易に利用可能となる。よって、印刷装置に適した機種固有のプリンタドライバを別途インストールする必要が無く、利便性が高い。また、標準ドライバは、接続した印刷装置から取得した情報に基づき生成されたPrintDeviceCapabilities(以下、「PDC」)に応じて印刷機能を指定可能に構成される。これにより、標準ドライバを利用するユーザは、1つの標準ドライバを利用しているにも関わらず、接続した印刷装置の能力に応じた印刷機能を指定することができる。
標準ドライバには機能拡張用のアプリケーション(以下、「拡張アプリケーション」とも呼ぶ)を関連付けることができる。拡張アプリケーションは、印刷装置を提供するベンダが提供することができる。拡張アプリケーションは標準ドライバが生成したPDCを編集することにより、標準ドライバのみでは実現できない機能(拡張機能)を提供することができる。特許文献1には、拡張アプリケーションにより、スタンプ機能等の機能を拡張する技術が開示されている。
特開2019-74906号公報
特許文献1では、拡張アプリケーションは、スプールファイルを編集することで、割り付け印刷機能を実現する。しかしながら、デバイスの種別に応じたドライバの機能拡張の実現のためにはさらなる工夫が求められる。
本発明は、デバイスの種別に応じたドライバの機能拡張を実現する仕組みを提供することを目的とする。
上記課題を解決するため、本発明に係るプログラムは、デバイスに対応するドライバの機能を拡張するためのアプリケーションのプログラムであって、前記ドライバにより作成された前記デバイスの機能情報を取得する第1取得手段、前記デバイスの種別を取得する第2取得手段、前記第1取得手段により取得された機能情報を編集する編集手段、前記第2取得手段により取得された前記デバイスの種別に応じて、前記第1取得手段により取得された機能情報に対する編集の処理を異ならせるよう前記編集手段を制御する制御手段、としてコンピュータを機能させる。
本発明によれば、デバイスの種別に応じたドライバの機能拡張を実現することができる。
印刷システムのハードウェア構成を示す図である。 印刷システムのソフトウェア構成を示す図である。 PDCの編集処理を説明するための図である。 印刷設定画面拡張ユニットにより表示される印刷設定画面を示す図である。 PDCの編集処理を示すフローチャートである。 PDCの編集処理を示すフローチャートである。 PDCの編集処理を示すフローチャートである。 PDCの編集処理を示すフローチャートである。 PDCの編集処理を示すフローチャートである。 印刷データ生成ソフトウェアにより作成されるPDCを示す図である。 PDCに記載の機能および設定値の一覧を示す図である。 印刷装置から取得した能力情報の一覧を示す図である。 拡張アプリケーションがサポートする印刷機能の一覧を示す図である。 編集後のPDCを示す図である。 Option値の組み合わせ情報を示す図である。 OSから取得したPDCを示す図である。 編集後のPDCを示す図である。
以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
<印刷システムのハードウェア構成>
図1は、印刷システムのハードウェア構成の一例を示すブロック図である。本図において、ホストコンピュータ101は、情報処理装置の一例であり、入力インタフェース110、CPU111、ROM112、RAM113、外部記憶装置114、出力インタフェース115、及び入出力インタフェース116を有する。また、入力インタフェース110には、キーボード118、ポインティングデバイス117などの入力デバイスが接続され、出力インタフェース115には、表示部119などの表示デバイスが接続されている。NETIF120は、ネットワークインタフェースであり、ネットワークを介して外部機器との間でデータ転送を行うための制御を行う。なお、ネットワークは、有線ネットワーク、無線ネットワーク、並びにその両者を含むネットワークのいずれであっても良い。
ROM112には、初期化プログラムが格納されている。外部記憶装置114には、アプリケーションプログラム群、オペレーティングシステム(OS)、印刷データ生成ソフトウェア、その他の各種のデータが格納されている。RAM113は、外部記憶装置114に記憶されている各種のプログラムの実行の際のワークメモリ等として使用され、各種プログラムがホストコンピュータ101内で動作可能となっている。
なお、本実施形態では、CPU111が、ROM112に格納されたプログラムの手順に従って処理を行うことによって、ホストコンピュータ101における後述の機能及び後述するフローチャートに係る処理を実行する。デバイスである印刷装置102は、入出力インタフェース116を介して、ホストコンピュータ101と接続されている。ここでは、ホストコンピュータ101と印刷装置102が分かれて構成されているが、これらが一つの情報処理装置として構成されていても良い。なお、印刷装置102は、インクジェット記録方式により画像を記録媒体上に印刷するインクジェットプリンタを例に説明するが、他の方式(例えば電子写真方式)で印刷が実行される記録装置であっても良い。また、ホストコンピュータ101として、デスクトップパソコンでも、スマートフォンでも、ノートパソコンが用いられても良い。
<ソフトウェアを中心とした印刷システムの構成>
図2(a)、図2(b)は、印刷システムのソフトウェア構成の一例を示す図である。ここでは、OSとしてMicrosoft(登録商標)のWindows(登録商標)11を搭載したホストコンピュータ101を用いた印刷システムを説明する。図2(a)は、拡張アプリケーション204が、印刷データ生成ソフトウェア202および印刷装置102と関連付けられていない場合の構成を示している。
描画アプリケーション201は、印刷されるコンテンツ(描画データ)を作成するソフトウェアである。例えば、文書作成アプリケーションや表計算アプリケーションが相当する。描画アプリケーション201は、ユーザから印刷要求を受けると、印刷指示をOSに発行する。印刷指示には、印刷データ生成ソフトウェア202及び印刷装置102の動作を指示するための印刷設定情報が含まれる。印刷設定情報は、プリントチケット(PrintTicket(PT))とも呼ばれる。
描画アプリケーション201は、印刷設定情報を出力するために、印刷データ生成ソフトウェア202、OS、もしくは描画アプリケーション201、のうちいずれかが提供する印刷設定画面を表示させることができる。印刷設定画面は、印刷データ生成ソフトウェア202から取得する能力情報(印刷設定として設定可能な情報)に従い、設定可能な印刷機能を示す設定アイテム(以下、「コントロールアイテム」とも呼ぶ)と、その設定値を示すコントロールアイテムを含む。能力情報は、プリントケーパビリティ(PrintCapabilities(PC))とも呼ばれる。印刷データ生成ソフトウェア202は、印刷機能情報203に基づき、プリントケーパビリティを決定する。印刷機能情報203は、設定可能なすべての印刷機能とその設定値、並びに、設定値同士の排他関係が記載されている印刷機能を示すデータである。印刷機能情報203は、プリントデバイスケーパビリティ(Print Device Capabilities(PDC))とも呼ばれる。
PDC203は、印刷データ生成ソフトウェア202の構成ファイルに含まれ、変更不可能なファイルとして外部記憶装置114に記憶される。もしくは、印刷データ生成ソフトウェア202により、PDC203は、動的に生成されても良い。具体的には、印刷データ生成ソフトウェア202もしくはOSは、印刷装置102から印刷装置の属性データを取得し、取得した属性データ内の属性情報に応じてPDC203を生成する。なお、動的にPDC203が生成される場合、生成されたPDC203は編集可能である。なお、印刷装置102から取得される印刷装置の属性データとは、印刷装置102に対してIPP(Internet Print Protocol)のGet-Printer-Attributesオペレーションを発行することにより取得するレスポンスである。レスポンスの中には、印刷装置102で指定可能な機能(印刷装置の能力)を示す属性情報とその属性情報に関連する設定値が含まれる。このレスポンスは、RAM113に保存される。
このように構成することで、印刷データ生成ソフトウェア202は、接続された印刷装置102に応じて、それぞれの印刷装置102で利用可能な印刷機能をユーザが指定可能に構成することができる。すなわち、異なる機能を持つ印刷装置や、異なるベンダが開発した印刷装置を接続した場合であっても、印刷データ生成ソフトウェア202は、接続した印刷装置に応じて利用可能な印刷機能をユーザが指定可能に構成することができる。
なお、ここでは、印刷データ生成ソフトウェア202として、Windows(登録商標)11に搭載されている、IPP Class Driverを利用した構成について説明する。IPP Class Driverは、IPP(Internet Print Protocol)と呼ばれる所定の標準的な印刷プロトコルの仕様に従って印刷処理を実行するプリンタドライバであり、OSのパッケージの中に同梱されている。IPP ClassDriverは、印刷装置102の機種に応じた固有のプリンタドライバではなく、複数の印刷装置で共通して利用可能な標準的なクラスドライバである。また、IPP Class Driverは、接続した印刷装置102でサポートする印刷機能をユーザが指定できるように、接続した印刷装置102の能力情報を取得し、その情報に基づいてPDC203を生成する。
OSは、描画アプリケーション201から出力された印刷指示に基づき中間データ(入力データとも呼ぶ)を生成して、印刷データ生成ソフトウェア202に渡す。なお、描画アプリケーション201が印刷用に出力するデータは、Graphic Device Interface形式のデータ(GDI形式データ)またはXML Paper Specification形式のデータ(XPS形式のデータ)である。印刷データ生成ソフトウェア202としてIPP Class Driverを利用することを想定する。その場合、描画アプリケーション201が出力するデータがGDI形式のデータなら、OSは、描画アプリケーション201から出力されたGDI形式のデータをXPS形式のデータに変換する。そして、変換したXPS形式のデータを中間データとして印刷データ生成ソフトウェア202に渡す。描画アプリケーション201が出力するデータがXPS形式のデータなら、OSは、XPS形式のデータを中間データとして印刷データ生成ソフトウェア202に渡す。なお、中間データには、記録媒体上に形成する画像の情報である描画データと、ユーザにより設定された印刷設定情報とが含まれる。
印刷データ生成ソフトウェア202は、取得した中間データを印刷装置102が解釈可能な印刷データに変換し、印刷装置102に送信する。なお、印刷データには、記録媒体上に形成する画像の情報である描画データと、ユーザにより設定された印刷設定情報に基づき生成された印刷設定属性情報(印刷設定を指定する属性情報)とが含まれる。印刷設定属性情報は、印刷装置102で指定可能な機能(印刷装置の能力)を示す属性情報とその属性情報に関連する設定値とを含む。
印刷装置102は、印刷データ生成ソフトウェア202から送られた印刷データに基づき記録媒体への印刷を行う。この時、印刷装置102は、印刷データに含まれる印刷設定属性情報に従った動作で、印刷データに含まれる描画データを記録媒体上に形成する。印刷設定属性情報には、印刷品位(画質優先、速度優先、等)や、両面印刷等を指定するための属性情報とその設定値が含まれている。例えば、印刷設定属性情報に、両面印刷を指定する属性情報とそれを動作させることを示す設定値が含まれる場合、印刷装置102は、両面印刷を実行する。
図2(b)は、拡張アプリケーション204が、印刷データ生成ソフトウェア202および印刷装置102と関連付けられている場合の構成の一例を示す図である。なお、以下において特に言及しない構成や処理については、図2(a)と同等の構成となる。
拡張アプリケーション204は、印刷データ生成ソフトウェア202の機能を拡張するためのソフトウェアであり、OSに予め含まれていない(同梱されていない)ソフトウェアである。そのため、ユーザがホストコンピュータ101を操作し、例えばインターネットを介してサーバから拡張アプリケーション204をダウンロードして、インストールする必要がある。若しくは、ホストコンピュータ101に印刷装置102が接続されたことに基づき、自動的にインストールされてもよい。具体的には、ホストコンピュータ101に印刷装置102が接続された場合、OSは、印刷装置102からデバイス識別情報を取得する。OSは、取得されたデバイス識別情報に対応する拡張アプリケーション204を、インターネットを介してサーバからダウンロードし、インストールしても良い。つまり、印刷データ生成ソフトウェア202と拡張アプリケーション204は、別ファイルとしてホストコンピュータ101に保持される。
なお、印刷データ生成ソフトウェア202および拡張アプリケーション204は、更新されてバージョンアップされることもあるが、この更新処理も別々のタイミングで行われてもよい。つまり、ホストコンピュータ101により印刷データ生成ソフトウェア202が取得されるタイミングと、拡張アプリケーション204が取得されるタイミングは異なる。また、ホストコンピュータ101により印刷データ生成ソフトウェア202が取得されるトリガーと、拡張アプリケーション204が取得されるトリガーも異なっていてもよい。なお、拡張アプリケーション204がインストールされた場合、OSが、拡張アプリケーション204を、印刷データ生成ソフトウェア202および印刷装置102と関連付ける。
本実施形態で説明する拡張アプリケーション204は、印刷設定画面拡張ユニット205、スキップ制御ユニット206、印刷機能拡張ユニット207、印刷データ編集ユニット208、通知ユニット209、を備える。また、拡張アプリケーション204は、各ユニットから共通してアクセス可能な共有情報210を備える。共有情報210の実態は、外部記憶装置114に保存されたファイル、もしくはRAM113上に格納された情報である。拡張アプリケーション204は、OSが提供するAPI(Application Program Interface)を利用することで、共有情報210への情報の書き込みや読み出しを行う。
なお、拡張アプリケーション204は、各ユニットの処理が終わるたびに動作を終了しても良い。その場合、各ユニットを使用する要求を受ける度にOSが拡張アプリケーション204を起動することになる。また、別の形態として構成されてもよい。例えば、印刷設定画面拡張ユニット205の処理が終了すると、OSは拡張アプリケーション204の動作を終了させる。一方で、スキップ制御ユニット206の処理が終了してもOSは拡張アプリケーション204を起動させたままにしても良い。さらに、拡張アプリケーション204は、各ユニットの処理の中で、処理をキャンセルしても良い。キャンセルした場合、印刷キュー上の処理中のジョブがOSにより削除される。
描画アプリケーション201は、ユーザから印刷要求を受けると、印刷指示をOSに発行する。図2(b)においても、図2(a)の構成と同様、描画アプリケーション201は、印刷設定画面を表示させることができる。図2(b)では、拡張アプリケーション204が提供する印刷設定画面が表示される。具体的には、拡張アプリケーション204が備える印刷設定画面拡張ユニット205が提供する印刷設定画面が表示される。なお、印刷設定画面拡張ユニット205により提供される印刷設定画面が表示されるか否かはユーザの操作に依存する。印刷設定画面拡張ユニット205の詳細は、図4を用いて後述する。
また、描画アプリケーション201がユーザから印刷要求を受け付け、印刷指示がOSに発行されると、OSはスキップ制御ユニット206を起動する。スキップ制御ユニット206は、印刷データ生成ソフトウェア202の処理をスキップするか否かの制御を行う。スキップ制御ユニット206のスキップ制御処理の後、OSは、描画アプリケーション201から出力された印刷指示に基づき中間データを生成し、その中間データが印刷データ生成ソフトウェア202に渡される。ここで、スキップ制御ユニット206でスキップ制御が行われない場合、中間データは印刷データ生成ソフトウェア202で印刷装置102が解釈可能な印刷データへ処理され、印刷データ編集ユニット208へ渡される。一方、印刷データ生成ソフトウェア202のスキップが行われる場合は、中間データは印刷データ生成ソフトウェア202で処理されずに、印刷データ編集ユニット208に渡される。これにより、中間データを印刷データ編集ユニット208で処理することが可能となる。
印刷データ編集ユニット208は、印刷データ生成ソフトウェア202から渡される中間データもしくは印刷データ生成ソフトウェア202により処理された印刷データの編集を行う。編集内容として、割り付け印刷を例にとると、印刷データ編集ユニット208は、OSから受け取った割り付け印刷の印刷設定情報に基づいて、中間データもしくは印刷データのレイアウトを変更する。また、印刷データ編集ユニット208は表示部119にグラフィカルユーザインタフェース画面(GUI画面)を表示することが可能であり、中間データもしくは印刷データのレイアウト結果をプレビュー画面として表示する等の機能を提供することができる。なお、印刷データ編集ユニット208が表示部119に表示したGUI画面を開いたままの状態では印刷データは印刷装置102に送信されず、GUI画面を閉じることで印刷データの送信処理が動作する。
印刷データ編集ユニット208が印刷データを編集した後、印刷データは印刷装置102へ渡される。印刷装置102は、受け取った印刷データに基づき記録媒体への印刷を行う。なお、スキップ制御ユニット206で印刷データ生成ソフトウェア202がスキップされた場合、印刷データ編集ユニット208が、受け取った中間データを印刷装置102が解釈可能な印刷データへ変換しても良い。また、中間データを印刷データへ変換するために、OSが提供する機能を利用しても良い。
拡張アプリケーション204は、印刷機能拡張ユニット207を有する。印刷機能拡張ユニット207は、印刷データ生成ソフトウェア202もしくはOSが生成したPDC203を編集することができる。これにより、印刷機能拡張ユニット207は、拡張アプリケーション204が提供する機能の追加を行うことができる。また、印刷機能拡張ユニット207は、印刷装置102はサポートしているが印刷データ生成ソフトウェア202がサポートしていない機能の追加、印刷機能の設定値同士の排他関係の追加、等を行うことができる。OSは、拡張アプリケーション204が印刷装置102と印刷データ生成ソフトウェア202に最初に関連付けられた時に、印刷機能拡張ユニット207を起動する。さらに、OSは、OS起動時等、それ以外のタイミングで印刷機能拡張ユニット207を起動してもよい。このようにすることで、印刷装置102に対して後からオプション装置(例えば、フィニッシャー等)が追加され、印刷に関わる機能が拡張されるようなケースにおいて、印刷機能拡張ユニット207は、拡張機能を検知し、PDC203に追加することができる。
また、拡張アプリケーション204は通知ユニット209を有する。通知ユニット209は、印刷装置102のエラー発生に呼応してユーザに対して通知を表示することが可能である。例えば、印刷装置102で用紙なしエラーが発生すると、それを印刷データ生成ソフトウェア202が検知し、OSは、OSの機能であるトースト通知と呼ばれる通知機能を使って、メッセージを表示部119に表示させる。ユーザがこのトースト通知を押下することで、拡張アプリケーション204の通知ユニット209がOSにより呼び出され、通知ユニット209のUI画面が表示される。通知ユニット209のUI画面では、例えば用紙なしエラーの詳細メッセージや用紙充填方法の表示などを行うことができる。なお、拡張アプリケーション204は一度、印刷装置102へ印刷データを送信してしまうと、各ユニットの処理途中で印刷データに紐づくガイドなどの画面表示を行うことができない。
また、本実施形態を実現するための拡張アプリケーション204の構成は、前述の機能(ユニット)を全て備えるものに限定されず、機能の一部のみを持つものや、他の機能を有するものでもよい。また、拡張アプリケーション204は、単に印刷ソフトウェアと呼ばれることもある。以上のように、拡張アプリケーション204は、以下の複数の機能の少なくとも1つを備えるといえる。
・設定画面を表示する機能(印刷設定画面拡張ユニット205により実行される)
・印刷データ生成ソフトウェア202の処理をスキップするか否かを制御する機能(スキップ制御ユニット206により実行される)
・印刷装置102に入力される印刷データを編集する機能(印刷データ編集ユニット208により実行される)
・印刷データ生成ソフトウェア202で指定可能な機能を拡張する機能(印刷機能拡張ユニット207により実行される)
・印刷装置102のエラー発生に呼応して画面を表示する機能(通知ユニット209により実行される)
<印刷設定画面拡張ユニットの表示する画面例>
次に、印刷設定画面拡張ユニット205により表示される印刷設定画面について図4を用いて説明する。印刷機能拡張ユニット207により編集されたPDC203に基づき、プリントケーパビリティが生成される。図4(a)の印刷設定画面401は、生成されたプリントケーパビリティに基づき、印刷設定画面拡張ユニット205が表示する画面の一例である。印刷設定画面拡張ユニット205は、描画アプリケーション201上でユーザが印刷設定画面の表示を指示した場合に、OSから呼び出される。印刷設定画面拡張ユニット205は、OSから取得できるプリントケーパビリティに基づき、印刷データ生成ソフトウェア202で指定可能な印刷機能の設定値をユーザが指定可能な画面を表示する。
コントロール402は、印刷に使用する用紙の種類を設定可能なコントロールアイテムであり、例えば、普通紙や写真用紙といった項目を設定可能である。コントロール403は、印刷に使用する用紙サイズを設定可能なコントロールアイテムであり、例えば、A4やレターといった項目を設定可能である。図4(b)に示すリスト410は、コントロール403を展開した際の表示状態を示しており、ユーザは展開されたリストの中から用紙サイズを選択可能である。
コントロール404は、印刷装置102の印刷用紙の給紙口を設定可能なコントロールであり、例えば、メイントレイやリアトレイといった項目を設定可能である。図4(c)に示すリスト411は、コントロール404を展開した際の表示状態を示しており、ユーザは展開されたリストの中から給紙口を選択することができる。
コントロール405は、印刷の向きを設定可能なコントロールアイテムであり、縦および横の設定が可能である。コントロール406は、両面印刷の有効・無効を切替え可能なコントロールアイテムである。コントロール407は、両面印刷時のとじ方向を設定可能なコントロールアイテムであり、例えば長辺とじ、短辺とじといった項目が設定可能である。コントロール409はキャンセルボタンであり、設定を反映せずに画面が閉じられる。コントロール408はOKボタンであり、設定を反映して画面が閉じられる。
<印刷機能拡張ユニットによるPDCの編集処理>
図3は、本印刷システムにおける印刷機能拡張ユニット207によるPDC203の編集処理を説明するためのブロック図である。まず、印刷データ生成ソフトウェア202は、ホストコンピュータ101に接続された印刷装置102の能力情報302を取得し、その情報に基づいてPDC203を生成する。印刷装置102から取得する能力情報302とは、印刷装置102への印刷の際に、ユーザが印刷設定として設定可能な情報などを含む情報である。OS301は、印刷装置102についての印刷キューに対して拡張アプリケーション204を関連付けたタイミング等で、拡張アプリケーション204の印刷機能拡張ユニット207に対して、PDC203の編集要求を行う。OS301は、拡張アプリケーション204が初めて関連付けられたタイミングの他、印刷設定画面拡張ユニット205によって印刷設定画面が開かれたタイミングなどでPDC203の編集要求を行うようにしても良い。印刷機能拡張ユニット207は、OS301からPDC編集要求を受け付けると、印刷データ生成ソフトウェア202が生成したPDC203を取得し、PDC203の編集を開始する。PDC203の編集による印刷機能拡張の詳細については、以下で説明する。
図5は、本印刷システムにおける印刷機能拡張ユニット207によるPDC203の編集処理を示すフローチャートである。図5の処理は、例えば、CPU111がROM112に記憶されたプログラムをRAM113に読み出して実行することにより実現される。以降、印刷機能拡張ユニット207を、各処理の主体として説明するが、実際には、対応するプログラムをCPU111が実行することで、対応する機能が実現されることになる。
拡張アプリケーション204がOS301からPDC203の編集指示を受け取ることで、図5の処理は開始する。S501で、印刷機能拡張ユニット207は、印刷装置102から能力情報を取得する。能力情報302は、印刷装置102で指定可能な機能(Feature)を示す属性情報とその属性情報に関連する設定値(Option)を含む。能力情報302は、印刷装置102に対してIPPのGet-Printer-Attributesオペレーションを発行することにより取得するレスポンスに含まれる。
図12は、印刷装置102から取得した能力情報302の一覧の一例を示す図である。表1201に示すように、印刷装置102からは、サイズやメディアなどの機能(Feature)の情報や、各機能に対して設定可能な設定値(Option)を取得することができる。本実施形態では、印刷機能について、用紙サイズとメディア、給紙口を説明しているが、部数印刷などのその他のFeatureやOptionであっても良い。なお、以降の説明に用いるFeature名やOption名はあくまで一例であり、それ以外の名称(機能を示す情報)や設定値であっても良い。
S502で、印刷機能拡張ユニット207は、共有情報210から、拡張アプリケーション204がサポートする印刷機能一覧を取得する。拡張アプリケーション204がサポートする印刷機能一覧は共有情報210に格納されており、拡張アプリケーション204が処理可能なすべての印刷機能とその設定値が記載されている。
図13は、拡張アプリケーション204がサポートする印刷機能の一覧の一例を示す図である。拡張アプリケーション204がサポートする印刷機能の一覧にはサイズやメディアなどの印刷時に設定可能な機能、並びに各機能に対して設定可能な設定値が含まれる。拡張アプリケーション204がサポートする印刷機能の一覧は、拡張アプリケーション204のアップデートなどによって更新されることがある。
S503で、印刷機能拡張ユニット207は、印刷データ生成ソフトウェア202により作成されたPDC203をOS301から取得する。PDC203は、印刷データ生成ソフトウェア202が印刷装置102から取得した能力情報302に基づいて作成される。
図10は、印刷データ生成ソフトウェア202により作成されるPDC203の一例を示す図である。PDC1001には、印刷装置102がサポートしている機能(Feature)の情報や、各機能に対する設定値(Option)の情報に基づき決定した、印刷データ生成ソフトウェア202がサポートする機能の情報が含まれる。
例えば、情報1002は、PageMediaSize(用紙サイズ)としてISOA4やNorthAmericaLetter(レター)が指定可能であることを示す。ここでは、PageMediaSizeが機能(Feature)を示し、ISOA4等は、その機能に対する設定値(Option)を示している。後述する機能についても、同様の表記で機能(Feature)と設定値(Option)が記述されている。情報1003は、PageMediaType(メディア)として、Plain(普通紙)やPhotographic(写真用紙)が指定可能であることを示す。また、情報1004は、JobInputBin(給紙口)として、Main(メイントレイ)やRear(リアトレイ)が指定可能であることを示す。情報1005は、PageOutputColor(印刷時のカラーモード)としてカラー、モノクロ、グレースケールが指定可能であることを示している。情報1006は、記載した二項同士を同時に指定した印刷を禁止するようにOS301に制御させるための禁則情報(コンフリクト情報)である。PDC1001の例では、メディアとしてPhotographic(写真用紙)、給紙口として、Main(メイントレイ)を指定した印刷はOS301により禁止されることを示している。PDC1001に記載した情報はあくまで一例であって、その他のFeatureやOption、コンフリクト情報が記載されても良い。
図11は、印刷データ生成ソフトウェア202により作成されるPDC203に記載の印刷機能および各機能に対して設定可能な設定値の一覧の一例を示す図である。印刷データ生成ソフトウェア202により作成されるPDC1001には、印刷装置102から取得した能力情報302(表1201)のうち、印刷データ生成ソフトウェア202がサポートする印刷機能のみが記載される。そのため、PDC1001の機能は限定的である。例えば、印刷装置102から取得した能力情報302(表1201)にはサイズとして7×10インチや洋形6号が含まれているが、印刷データ生成ソフトウェア202がサポートする印刷機能(表1101)では該当サイズはサポートされておらず、PDC1001には該当サイズは記載されない。本実施形態では、印刷機能拡張ユニット207がPDC1001に対してFeatureやOptionを追加することで、拡張アプリケーション204が印刷データ生成ソフトウェア202の機能不足を補うことが可能となる。
本実施形態では、印刷機能拡張ユニット207は、印刷データ生成ソフトウェア202により作成されるPDC1001から不要なFeatureやOptionを削除することも可能である。例えば、印刷データ生成ソフトウェア202によって作成されるPDC1001には、PageOutputColorというFeatureについて、Color、Monochrome、Grayscleという3つのOptionが記載されている。ここで、Grayscaleは、印刷装置102から返却された情報ではなく、印刷データ生成ソフトウェア202が独自で作成したものである。本実施形態における印刷装置102は、PageOutputColorでMonochromeとGrayscaleのいずれが指定されても同じ動作をするように構成される。従って、PageOutputColorの、MonochromeとGrayscaleは、どちらか一方のみが指定できれば良い。このようなケースにおいて、印刷機能拡張ユニット207は、不要となるOption項目を削除するといった処理を実行することが可能である。
さらに、印刷装置102において禁止されるOption値の組み合わせは複数存在するが、印刷データ生成ソフトウェア202が生成する印刷装置102のPDC1001に記載されているコンフリクト情報は限定的である。本来設定不可とすべきOption値の組み合わせが指定されて印刷装置102への印刷が行われた場合、印刷装置102が予期せぬ動作を起こす可能性がある。そのため、印刷装置102のPDC1001には、コンフリクト情報として、本来設定不可とすべきOption値の組み合わせが記載されることが望ましい。
印刷機能拡張ユニット207による図5の処理の説明に戻る。S504では、印刷機能拡張ユニット207は、印刷装置102から印刷装置102のデバイス種別を判別するための情報を取得し、S505において、取得した情報に基づいてデバイス種別を判別する。印刷機能拡張ユニット207は、PDC1001に対してFeatureやOptionの追加や削除を行うことが可能である。その際、印刷機能拡張ユニット207がPDC1001に追加、削除すべきFeatureやOptionは、印刷装置102の種別によって異なる。デバイス種別に応じたPDC編集の詳細については後述する。本実施形態では、印刷装置102の種別として、ローカル接続のインクジェットプリンタ、クラウド接続のインクジェットプリンタ、及びレーザービームプリンタ(ローカル接続及びクラウド接続)の3種類を例として説明する。
なお、ローカル接続とは、入出力インタフェース116やNETIF120を経由してホストコンピュータ101と印刷装置102が直接通信可能な状態に接続されるような形態を示す。クラウド接続とは、NETIF120を経由して、インターネット上の不図示のクラウド印刷サービスを経由してホストコンピュータ101から印刷装置102に対して印刷を指示するような接続形態を示す。なお、ここまで例示してきたPDC1001や能力情報302(表1201)などFeaatureやOptionの具体例の記載があるものはすべて、デバイス種別がインクジェットプリンタである印刷装置に関する例である。以降例示する図表などにおいて、FeaatureやOptionの具体例が記載されているものは、特に断らない限り、デバイス種別がインクジェットプリンタである印刷装置に関するものである。本実施形態では、上記3種類のデバイス種別を例として挙げているが、上記3種類に限らず、その他複数のデバイス種別や、接続形態の判別を行う構成であってもよい。
図9は、印刷機能拡張ユニット207によるS505の処理を示すフローチャートである。なお、図9の処理は、S505で取得する情報が、印刷装置102のIPPのGet-Printer-Attributeオペレーションのレスポンスによって得られる情報であることを前提としている。しかしながら、その他の方法で得られる情報を用いてデバイス種別の判断を行うようにしてもよい。
S901で、印刷機能拡張ユニット207は、印刷装置102のIPPのGet-Printer-Attributeオペレーションのレスポンスにmarker-types属性が含まれるか否かを判定する。marker-types属性が含まれると判定された場合、S902に進む。S902で、印刷機能拡張ユニット207は、印刷装置102のIPPのGet-Printer-Attributeオペレーションのレスポンスのmarker-types属性値がink-cartridgeであるか否かを判定する。ink-cartridgeであると判定された場合、S903に進む。S903で、印刷機能拡張ユニット207は、印刷装置102のIPPのGet-Printer-Attributeオペレーションのレスポンスにprinter-device-id属性が含まれるか否かを判定する。
printer-device-id属性が含まれると判定された場合、S904に進む。S904で、印刷機能拡張ユニット207は、印刷装置102のIPPのGet-Printer-Attributeオペレーションのレスポンスのprinter-device-id属性値にMDL:UPWが含まれているか否かを判定する。MDL:UPWが含まれていると判定された場合、S905で、印刷機能拡張ユニット207は、印刷装置102のデバイス種別を「クラウド接続のインクジェットプリンタ」と特定する。なお、本実施形態における印刷装置102は、クラウド接続の場合にIPPのGet-Printer-Attributeオペレーションのレスポンスのprinter-device-id属性値にMDL:UPWを返却する。しかしながら、その他の属性値、返却値であっても良い。S904で、印刷機能拡張ユニット207は、印刷装置102の仕様に基づきクラウド接続であるか否かを判定するようにしても良い。また、印刷機能拡張ユニット207は、前述した方法以外の方法によって印刷装置102がクラウド接続であるか否かを判定しても良い。例えば、印刷装置102がクラウド接続である場合、クラウド接続用の印刷データ生成ソフトウェア202が利用される。そのため、S904で印刷データ生成ソフトウェア202の名称や種類を判定することで、印刷装置102がクラウド接続であるか否かを判定しても良い。
S903でprinter-device-id属性が含まれないと判定されるか、もしくはS904でMDL:UPWが含まれていないと判定された場合、S906に進む。S906で、印刷機能拡張ユニット207は、印刷装置102のデバイス種別を「ローカル接続のインクジェットプリンタ」であると特定する。
S901でmarker-types属性が含まれないと判定された場合、S908に進む。S908で、印刷機能拡張ユニット207は、印刷装置102のIPPのGet-Printer-Attributeオペレーションのレスポンスにprinter-supply属性が含まれるか否かを判定する。S908でprinter-supply属性が含まれると判定された場合、S909に進む。S909で、印刷機能拡張ユニット207は、印刷装置102のIPPのGet-Printer-Attributeオペレーションのレスポンスのprinter-supply属性値にtype=tonerが含まれているか否かを判定する。S909でtype=tonerが含まれていると判定された場合、S910で、印刷機能拡張ユニット207は、印刷装置102のデバイス種別を「レーザービームプリンタ」と特定する。
S902でink-cartridgeでないと判定された場合、もしくは、S908でprinter-supply属性が含まれないと判定された場合、もしくは、S909でtype=tonerが含まれていないと判定された場合、S907に進む。S907で、印刷機能拡張ユニット207は、印刷装置102のデバイス種別を「その他」であると特定する。
図9では、印刷機能拡張ユニット207は、印刷装置102のIPPのGet-Printer-Attributeオペレーションのレスポンスによって得られる情報に基づいてデバイス種別を特定する。しかしながら、それ以外の情報に基づいてデバイス種別を特定しても良い。例えば、印刷装置102から別の方法で取得した情報に基づいてデバイス種別を特定しても良い。また、印刷装置102から取得した印刷装置102の名称等の情報と、拡張アプリケーション204が有するテーブル情報に基づいてデバイス種別を特定しても良い。その際、テーブル情報は、不図示のサーバから取得するように構成しても良い。
図5の処理の説明に戻る。S506で、印刷機能拡張ユニット207は、S505で特定された印刷装置102のデバイス種別情報を、共有情報210に格納する。格納した印刷装置102のデバイス種別情報は、印刷機能拡張ユニット207がPDC203の編集処理の内容を切り替えるために用いられる。しかしながら、そのデバイス種別情報は、拡張アプリケーション204の他のユニットが他の用途で用いるようにしてもよい。また、印刷装置102のデバイス種別情報が共有情報210に既に含まれている場合、印刷機能拡張ユニット207は、S504、S505の処理をスキップするように構成しても良い。
S507で、印刷機能拡張ユニット207は、共有情報210に格納した印刷装置102のデバイス種別情報がインクジェットプリンタであるか否かを判定する。S507でインクジェットプリンタであると判定された場合、S508で、印刷機能拡張ユニット207は、デバイス種別がインクジェットプリンタである場合に対応した、PDC203の編集処理を行う。S508の処理の詳細は図6を用いて後述する。
S507でインクジェットプリンタでないと判定された場合、S509で、印刷機能拡張ユニット207は、共有情報210に格納した印刷装置102のデバイス種別情報がレーザービームプリンタであるか否かを判定する。S509でレーザービームプリンタであると判定された場合、S510で、印刷機能拡張ユニット207は、デバイス種別がレーザービームプリンタである場合に対応した、PDC203の編集処理を行う。S510の処理の詳細は図8を用いて後述する。S509でレーザービームプリンタでないと判定された場合、印刷機能拡張ユニット207は、PDC203の編集処理を行わず、図5の処理を終了する。
図6は、S508における、デバイス種別がインクジェットプリンタである場合に対応するPDC203の編集処理を示すフローチャートである。S601~S602の処理は、印刷機能拡張ユニット207が、印刷装置102のPDC1001に追加するFeatureの候補それぞれについて繰り返し行う処理である。本実施形態において、印刷機能拡張ユニット207がPDC1001に追加処理を行うFeatureは、表1301に示されるとおり、用紙サイズ、メディア、給紙口の3つである。従って、本例では、これら3つのFeatureについて、S601~S602の処理が繰り返し実行される。なお、印刷機能拡張ユニット207は、他のFeatureについても追加処理を行うようにしてもよい。
S601で、印刷機能拡張ユニット207は、PDC1001に追加するOptionを決定する。
図7は、印刷機能拡張ユニット207がPDC1001に追加するOptionを決定する処理を示すフローチャートである。S701~S703の処理は、印刷機能拡張ユニット207が印刷装置102のPDC1001に追加する各FeatureのOption候補それぞれについて行う処理である。ここで、Option候補とは、印刷機能拡張ユニット207が印刷装置102から取得した能力情報の一覧を示す表1201に含まれるOptionである。例えば、Featureがサイズである場合のOption候補は、表1201によれば、A4、A5、レター、7×10インチ、洋形6号となる。
S701で、印刷機能拡張ユニット207は、S503でOS301から取得した印刷装置102のPDC1001に、処理中のOption候補が含まれているか否かを判定する。例えば、処理中のFeatureがサイズであり、処理中のOption候補がA4であるとすると、PDC1001にはISOA4というA4を示すOptionが含まれているため、S701では処理中のOption候補が含まれていると判定される。S701で処理中のOption候補が含まれていると判定された場合は、当該Optionは既にPDC1001に含まれているため追加処理が不要と判断し、次のOption候補についてS701~S703の処理を行う。
S701で処理中のOption候補が含まれていないと判定された場合、S702に進む。S702で、印刷機能拡張ユニット207は、S502で拡張アプリケーション204の共有情報210から取得した、拡張アプリケーション201がサポートする印刷機能を示す表1301に、処理中のOption候補が含まれているか否かを判定する。例えば、処理中のFeatureがサイズであり、処理中のOption候補が7×10インチであるとする。その場合、表1301のFeatureがサイズのときのOptionに7×10インチが含まれているため、S702では処理中のOption候補が含まれていると判定される。S702で処理中のOption候補が含まれていると判定された場合、S703で、印刷機能拡張ユニット207は、処理中のOptionをOS301から取得した印刷装置102のPDC1001に追加するOptionとして決定する。印刷機能拡張ユニット207は、S703で決定した結果をRAM113や外部記憶装置114に一時的に格納する。
S702で処理中のOption候補が含まれていないと判定された場合、印刷機能拡張ユニット207は、次のOption候補についてS701~S703の処理を行う。本実施形態において、例えばFeatureがサイズである場合に、印刷機能拡張ユニット207がS703で追加するOptionとして決定するのは、表1201と表1301に存在し、且つ、表1101に存在しない機能である。つまり、本例の結果として7×10インチ、洋形6号が追加するOptionとして決定される。
図6の説明に戻る。S602で、印刷機能拡張ユニット207は、S601で決定したOptionを、印刷装置102のPDC1001に、処理中のFeatureのOptionとして追加する。S601からS602の処理を繰り返すことで、印刷機能拡張ユニット207は、追加処理を行う全てのFeatureに対して、S703で追加すると判定したOptionの追加処理を行う。
S603で、印刷機能拡張ユニット207は、OS301から取得した印刷装置102のPDC1001に、コンフリクト情報を追加する。本実施形態において、印刷機能拡張ユニット207は、追加するコンフリクト情報を決定するために、印刷装置102からIPPのGet-Printer-Attributeのレスポンス値のmedia-col-database属性の値を取得する。media-col-database属性値には、印刷設定として設定可能なOption値の組み合わせ一覧のうち、印刷装置102において印刷可能な組み合わせ一覧の情報が含まれる。
図15は、media-col-database属性に含まれる組み合わせ情報の一例を模式的に示したものである。表1501の各列の値は、各Featureに属するOption値を示しており、各行が一つの組み合わせを表している。例えば、表1501の1行目は、サイズ:A4、給紙口:自動、メディア:普通紙の組み合わせが指定される場合に印刷装置102での印刷が可能であることを示している。表1501には、Featureとしてサイズ、給紙口、メディアの3つが記載されているが、その他のFeatureが記載されてもよい。
図6の説明に戻る。印刷機能拡張ユニット207は、S603において、印刷装置102から取得したmedia-col-databaseに含まれるすべてのOption値の組み合わせを検証する。そして、印刷機能拡張ユニット207は、印刷装置102において印刷を行うことができない、Option値の組み合わせ一覧を決定する。さらに、印刷機能拡張ユニット207は、印刷装置102において印刷を行うことができないOption値の組み合わせ一覧のうち、2つの項目間の組み合わせ一覧を、PDC1001に追加する。PDC1001に追加するコンフリクト情報の一例として、media-col-database1501に記載のない組み合わせである、給紙口:メイントレイ、メディア:光沢ゴールドの組み合わせのコンフリクト情報が挙げられる。
S604で、印刷機能拡張ユニット207は、PDC1001からFeatureカラーモードのOptionのうち、グレースケールを削除する。
印刷機能拡張ユニット207が、PDC1001に対して、S508の処理を実行した後のPDCの例を図14のPDC1401に示す。PDC1001に対して、PDC1401には、サイズ機能に対して7×10インチ等のOption1402、メディア機能に対してPhotoPaperGlossy等のOption1403、追加のコンフリクト情報1406が追加されている。Option1404は、Option1004に対応する。また、Option1405に示されるように、印刷装置102には不要な機能であるグレースケールのOption値がPageOutputColor機能から削除されている。
以上の処理によって、デバイス種別がインクジェットプリンタである場合に、Optionの追加、コンフリクト情報の追加、不要なOptionの削除、を実現することができる。なお、印刷機能拡張ユニット207は、Optionやコンフリクト情報に加えて、Featureの追加や削除を行っても良い。
次に、S510において、印刷装置102のデバイス種別がレーザービームプリンタであると特定された場合に対応する、PDC203の編集処理について説明する。印刷装置102のデバイス種別がレーザービームプリンタであると特定された場合に、S501でOS301から取得した能力情報一覧は、図12の表1201とは異なる場合があるが、以降の説明には使用しないため、その詳細は省略する。印刷装置102のデバイス種別がレーザービームプリンタである場合の、S503でOS301から取得した印刷装置102のPDCの一例を図16に示す。PDC1601には、印刷装置102がサポートしている機能(Feature)の情報や、各機能に対する設定値(Option)の情報のうち、印刷データ生成ソフトウェア202がサポートする情報が含まれる。例えば、情報1602は、PageOutputColor(印刷時のカラーモード)としてカラー、モノクロ、グレースケールが指定可能であることを示している。情報1603は、JobPageOrder(印刷ページ順)としてStandard(正順)、Reverse(逆順)が指定可能であることを示している。情報1604は、記載した二項同士を同時に指定した印刷を禁止するようにOS301に制御させるための禁則情報(コンフリクト情報)である。PDC1601の例では、サイズとしてISOA5、給紙口としてBypassTrayを指定した印刷はOS301により禁止されることを示している。なお、PDC1601に記載した情報はあくまで一例であって、他のFeatureやOption、コンフリクト情報が記載されても良い。
印刷装置102のデバイス種別がレーザービームプリンタである場合、PDC1601には不要なOptionが存在する。情報1602のPageOutputColorのOption値であるGrayScaleは、S604で説明した理由と同様の理由により、不要なOption値である。また、デバイス種別がレーザービームプリンタである印刷装置102は、ページ順の制御をデバイス側で行う機能を有している。情報1603のJobPageOrderとしてReverse(逆順)を指定された場合、印刷データ生成ソフトウェア202は、印刷データのページ順を編集し、逆順にする。印刷装置102は、ホストコンピュータ101側で既にページ順が逆順に編集されたことを知ることができない。そのため、印刷装置102がレーザービームプリンタであった場合、印刷データをさらに編集してページの順番を入れ替える処理をすることになる。結果、これらの動作の組み合わせによって、ページ順序が正しく逆順で印刷されない。従って、印刷装置102がレーザービームプリンタである場合、後述する処理により、情報1603のJobPageOrderのOption値であるReverseを削除する。その結果、印刷設定画面拡張ユニット205が提供するGUIに於いて、逆順設定が指定できないようにすることができる。
また、デバイス種別がレーザービームプリンタである印刷装置102では、3つ以上のFeatureのOption値同士で印刷可能な組み合わせが決められている。すなわち、コンフリクト情報は3つ以上のFeatureのOptionの組み合わせで構成される。PDC1601の情報1604に3つ以上のFeatureからなるコンフリクト情報を記載する場合、全ての組み合わせ情報を記載する必要があり、その結果、情報が膨大となり、コンフリクト処理時間が長くなるという問題が生じる。
図8は、S510において、デバイス種別がレーザービームプリンタである場合に対応する、PDC203の編集処理を示すフローチャートである。S801で、印刷機能拡張ユニット207は、OS301から取得した印刷装置102のPDC1601に記載された不要なOptionを削除する。具体的には、印刷機能拡張ユニット207は、情報1602のPageOutputColorのOption値であるGrayScale、情報1603のJobPageOrderのOption値であるReverseを削除する。
S802で、印刷機能拡張ユニット207は、PDC1601に記載されているコンフリクト情報1604を削除する。図17のPDC1701は、図8の編集処理が行われた後のPDCの一例を示している。以上がS510の処理の詳細である。
以上のように、本実施形態では、拡張アプリケーション204の処理によって、印刷データ生成ソフトウェア202の機能を拡張することができる。拡張アプリケーション204は、ホストコンピュータ101に接続された印刷装置102から取得した能力情報302に基づきPDC203を編集することで、接続された印刷装置102の能力に応じて機能を拡張することができる。さらに、拡張アプリケーション204は、印刷装置102から取得した能力情報302に含まれる情報に基づき、印刷装置102のデバイス種別を特定することができる。拡張アプリケーション204は、特定したデバイス種別に基づき、PDC203の編集処理をデバイス種別毎に異なる処理に切り替えて実行する。例えば、デバイス種別がインクジェットプリンタである場合、拡張アプリケーション204は、S603でコンフリクト情報をPDC203に追加する。デバイス種別がレーザービームプリンタである場合、拡張アプリケーション204は、S802の処理でコンフリクト情報をPDC203から削除する。これらの処理は、印刷装置102から取得した能力情報302をPDC203に反映させるだけでは実現することのできない処理である。これらの処理によって、拡張アプリケーション204は、接続された印刷装置102、並びにそのデバイス種別に応じて最適な機能拡張処理を実現することができる。
図5では、デバイス種別としてインクジェットプリンタとレーザービームプリンタの2種類で処理を切り替える構成としているが、さらに複数のデバイス種別を特定し、特定したデバイス種別に応じて処理を切り替えても良い。例えば、S905で示されるように、印刷装置102がクラウド接続であると判断した場合、拡張アプリケーション204は、クラウド接続に最適なPDC203の編集処理を実行するように構成しても良い。
以上の構成により、本実施形態における拡張アプリケーション204は、接続された印刷装置102に応じて異なる拡張アプリケーション204を提供することなく、1つの拡張アプリケーション204によって、最適な機能拡張処理を実現することができる。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本実施形態の開示は、以下の情報処理装置、方法およびプログラムを含む。
(項目1)
デバイスに対応するドライバの機能を拡張するためのアプリケーションのプログラムであって、
前記ドライバにより作成された前記デバイスの機能情報を取得する第1取得手段、
前記デバイスの種別を取得する第2取得手段、
前記第1取得手段により取得された機能情報を編集する編集手段、
前記第2取得手段により取得された前記デバイスの種別に応じて、前記第1取得手段により取得された機能情報に対する編集の処理を異ならせるよう前記編集手段を制御する制御手段、
としてコンピュータを機能させるためのプログラム。
(項目2)
前記アプリケーションがサポートする前記デバイスの機能情報を取得する第3取得手段、としてさらにコンピュータを機能させ、
前記制御手段は、前記第1取得手段により取得された機能情報に対して、前記第3取得手段により取得された機能情報の少なくとも一部の情報を追加するよう前記編集手段を制御することを特徴とする項目1に記載のプログラム。
(項目3)
前記デバイスから機能情報を取得する第4取得手段、としてさらにコンピュータを機能させ、
前記制御手段は、前記第4取得手段により取得された機能情報に基づいて、前記第1取得手段により取得された機能情報に対して、前記第3取得手段により取得された機能情報の少なくとも一部の情報を追加するよう前記編集手段を制御することを特徴とする項目2に記載のプログラム。
(項目4)
前記第4取得手段による取得は、前記デバイスとの間の所定のプロトコルの通信を介して実行されることを特徴とする項目3に記載のプログラム。
(項目5)
前記所定のプロトコルは、Internet Print Protocol(IPP)であることを特徴とする項目4に記載のプログラム。
(項目6)
前記第2取得手段により取得された前記デバイスの種別がインクジェット記録方式を用いた記録装置である場合における前記第1取得手段により取得された機能情報に対して追加される情報は、記録媒体のサイズ、給紙口、記録媒体の種類、印刷設定におけるコンフリクト情報、の少なくともいずれかを含むことを特徴とする項目2乃至5のいずれか1項に記載のプログラム。
(項目7)
前記制御手段は、前記第1取得手段により取得された機能情報の一部を削除するよう前記編集手段を制御することを特徴とする項目1乃至6のいずれか1項に記載のプログラム。
(項目8)
前記第2取得手段により取得された前記デバイスの種別がインクジェット記録方式を用いた記録装置と、電子写真方式を用いた記録装置の少なくともいずれかである場合における前記第1取得手段により取得された機能情報から削除される情報は、カラーモードの情報を含むことを特徴とする項目7に記載のプログラム。
(項目9)
前記第2取得手段により取得された前記デバイスの種別に応じて前記削除される情報は異なることを特徴とする項目7に記載のプログラム。
(項目10)
前記第2取得手段により取得された前記デバイスの種別が電子写真方式を用いた記録装置である場合における前記第1取得手段により取得された機能情報から削除される情報は、ページの順序、カラーモードの情報、印刷設定におけるコンフリクト情報、の少なくともいずれかを含むことを特徴とする項目9に記載のプログラム。
(項目11)
前記第2取得手段による取得は、前記デバイスとの間の所定のプロトコルの通信を介して実行されることを特徴とする項目1乃至10のいずれか1項に記載のプログラム。
(項目12)
前記所定のプロトコルは、Internet Print Protocol(IPP)であることを特徴とする項目11に記載のプログラム。
(項目13)
前記編集手段により編集された機能情報は、ユーザインタフェース画面の表示に用いられることを特徴とする項目1乃至12のいずれか1項に記載のプログラム。
(項目14)
前記ユーザインタフェース画面は、印刷設定画面であることを特徴とする項目13に記載のプログラム。
(項目15)
前記第1取得手段は、前記アプリケーションが前記ドライバと対応づけられたことに基づいて、前記ドライバにより作成された前記デバイスの機能情報を取得することを特徴とする項目1乃至14のいずれか1項に記載のプログラム。
(項目16)
前記ドライバは、OSに含まれ、標準的なプロトコルに基づいて動作するドライバであることを特徴とする項目1乃至15のいずれか1項に記載のプログラム。
(項目17)
デバイスに対応するドライバにより作成された前記デバイスの機能情報を取得する第1取得手段と、
前記デバイスの種別を取得する第2取得手段と、
前記第1取得手段により取得された機能情報を編集する編集手段と、
前記第2取得手段により取得された前記デバイスの種別に応じて、前記第1取得手段により取得された機能情報に対する編集の処理を異ならせるよう前記編集手段を制御する制御手段と、
を備えることを特徴とする情報処理装置。
(項目18)
情報処理装置において実行される方法であって、
デバイスに対応するドライバにより作成された前記デバイスの機能情報を取得する第1取得工程と、
前記デバイスの種別を取得する第2取得工程と、
前記第1取得工程において取得された機能情報を編集する編集工程と、
前記第2取得工程において取得された前記デバイスの種別に応じて、前記第1取得工程において取得された機能情報に対する編集の処理を異ならせるよう前記編集工程を制御する制御工程と、
を有することを特徴とする方法。
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
101 ホストコンピュータ: 102 印刷装置: 111 CPU: 112 ROM: 113 RAM

Claims (18)

  1. デバイスに対応するドライバの機能を拡張するためのアプリケーションのプログラムであって、
    前記ドライバにより作成された前記デバイスの機能情報を取得する第1取得手段、
    前記デバイスの種別を取得する第2取得手段、
    前記第1取得手段により取得された機能情報を編集する編集手段、
    前記第2取得手段により取得された前記デバイスの種別に応じて、前記第1取得手段により取得された機能情報に対する編集の処理を異ならせるよう前記編集手段を制御する制御手段、
    としてコンピュータを機能させるためのプログラム。
  2. 前記アプリケーションがサポートする前記デバイスの機能情報を取得する第3取得手段、としてさらにコンピュータを機能させ、
    前記制御手段は、前記第1取得手段により取得された機能情報に対して、前記第3取得手段により取得された機能情報の少なくとも一部の情報を追加するよう前記編集手段を制御することを特徴とする請求項1に記載のプログラム。
  3. 前記デバイスから機能情報を取得する第4取得手段、としてさらにコンピュータを機能させ、
    前記制御手段は、前記第4取得手段により取得された機能情報に基づいて、前記第1取得手段により取得された機能情報に対して、前記第3取得手段により取得された機能情報の少なくとも一部の情報を追加するよう前記編集手段を制御することを特徴とする請求項2に記載のプログラム。
  4. 前記第4取得手段による取得は、前記デバイスとの間の所定のプロトコルの通信を介して実行されることを特徴とする請求項3に記載のプログラム。
  5. 前記所定のプロトコルは、Internet Print Protocol(IPP)であることを特徴とする請求項4に記載のプログラム。
  6. 前記第2取得手段により取得された前記デバイスの種別がインクジェット記録方式を用いた記録装置である場合における前記第1取得手段により取得された機能情報に対して追加される情報は、記録媒体のサイズ、給紙口、記録媒体の種類、印刷設定におけるコンフリクト情報、の少なくともいずれかを含むことを特徴とする請求項2乃至5のいずれか1項に記載のプログラム。
  7. 前記制御手段は、前記第1取得手段により取得された機能情報の一部を削除するよう前記編集手段を制御することを特徴とする請求項1乃至6のいずれか1項に記載のプログラム。
  8. 前記第2取得手段により取得された前記デバイスの種別がインクジェット記録方式を用いた記録装置と、電子写真方式を用いた記録装置の少なくともいずれかである場合における前記第1取得手段により取得された機能情報から削除される情報は、カラーモードの情報を含むことを特徴とする請求項7に記載のプログラム。
  9. 前記第2取得手段により取得された前記デバイスの種別に応じて前記削除される情報は異なることを特徴とする請求項7に記載のプログラム。
  10. 前記第2取得手段により取得された前記デバイスの種別が電子写真方式を用いた記録装置である場合における前記第1取得手段により取得された機能情報から削除される情報は、ページの順序、カラーモードの情報、印刷設定におけるコンフリクト情報、の少なくともいずれかを含むことを特徴とする請求項9に記載のプログラム。
  11. 前記第2取得手段による取得は、前記デバイスとの間の所定のプロトコルの通信を介して実行されることを特徴とする請求項1乃至10のいずれか1項に記載のプログラム。
  12. 前記所定のプロトコルは、Internet Print Protocol(IPP)であることを特徴とする請求項11に記載のプログラム。
  13. 前記編集手段により編集された機能情報は、ユーザインタフェース画面の表示に用いられることを特徴とする請求項1乃至12のいずれか1項に記載のプログラム。
  14. 前記ユーザインタフェース画面は、印刷設定画面であることを特徴とする請求項13に記載のプログラム。
  15. 前記第1取得手段は、前記アプリケーションが前記ドライバと対応づけられたことに基づいて、前記ドライバにより作成された前記デバイスの機能情報を取得することを特徴とする請求項1乃至14のいずれか1項に記載のプログラム。
  16. 前記ドライバは、OSに含まれ、標準的なプロトコルに基づいて動作するドライバであることを特徴とする請求項1乃至15のいずれか1項に記載のプログラム。
  17. デバイスに対応するドライバにより作成された前記デバイスの機能情報を取得する第1取得手段と、
    前記デバイスの種別を取得する第2取得手段と、
    前記第1取得手段により取得された機能情報を編集する編集手段と、
    前記第2取得手段により取得された前記デバイスの種別に応じて、前記第1取得手段により取得された機能情報に対する編集の処理を異ならせるよう前記編集手段を制御する制御手段と、
    を備えることを特徴とする情報処理装置。
  18. 情報処理装置において実行される方法であって、
    デバイスに対応するドライバにより作成された前記デバイスの機能情報を取得する第1取得工程と、
    前記デバイスの種別を取得する第2取得工程と、
    前記第1取得工程において取得された機能情報を編集する編集工程と、
    前記第2取得工程において取得された前記デバイスの種別に応じて、前記第1取得工程において取得された機能情報に対する編集の処理を異ならせるよう前記編集工程を制御する制御工程と、
    を有することを特徴とする方法。
JP2022122018A 2022-07-29 2022-07-29 情報処理装置、方法およびプログラム Pending JP2024018592A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2022122018A JP2024018592A (ja) 2022-07-29 2022-07-29 情報処理装置、方法およびプログラム
DE102023206917.2A DE102023206917A1 (de) 2022-07-29 2023-07-20 Informationsverarbeitungsvorrichtung, verfahren und ein programm speicherndes nichtflüchtiges computerlesbares speichermedium
US18/358,427 US20240036787A1 (en) 2022-07-29 2023-07-25 Information processing apparatus, method, and non-transitory computer-readable storage medium storing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022122018A JP2024018592A (ja) 2022-07-29 2022-07-29 情報処理装置、方法およびプログラム

Publications (1)

Publication Number Publication Date
JP2024018592A true JP2024018592A (ja) 2024-02-08

Family

ID=89508238

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022122018A Pending JP2024018592A (ja) 2022-07-29 2022-07-29 情報処理装置、方法およびプログラム

Country Status (3)

Country Link
US (1) US20240036787A1 (ja)
JP (1) JP2024018592A (ja)
DE (1) DE102023206917A1 (ja)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110222107A1 (en) * 2010-03-10 2011-09-15 Williams David A Methods and structure for improved jdf ticket processing in a printing system using automatically generated translation tables
US20170060507A1 (en) * 2015-08-26 2017-03-02 Xerox Corporation Service for creating a personalized universal print driver
CN110546010B (zh) * 2017-04-15 2021-10-15 惠普发展公司,有限责任合伙企业 打印机,托盘定向及打印大小选择的方法和可读介质
JP7229680B2 (ja) * 2018-06-29 2023-02-28 キヤノン株式会社 情報処理装置、制御方法及びプログラム

Also Published As

Publication number Publication date
US20240036787A1 (en) 2024-02-01
DE102023206917A1 (de) 2024-02-01

Similar Documents

Publication Publication Date Title
US7319533B2 (en) System for face-up printing from a duplex printer
JP5704834B2 (ja) 情報処理装置および制御方法およびプログラム
US20230214162A1 (en) Control method and information processing apparatus
JP2020087297A (ja) プログラム及び制御方法
JP4109938B2 (ja) 情報処理装置及びその制御方法並びにプログラム
JP2024052771A (ja) 情報処理装置、制御方法およびプログラム
JP2024009336A (ja) プログラム、情報処理装置、および方法
JP7422462B2 (ja) プログラム、及び情報処理装置
JP2008077323A (ja) 印刷属性設定方法
JP2024018592A (ja) 情報処理装置、方法およびプログラム
JP2024058153A (ja) 情報処理装置、制御方法およびプログラム
JP7422463B2 (ja) プログラム、及び情報処理装置
JP2023041245A (ja) 情報処理装置、情報処理装置の制御方法およびプログラム
US11875066B2 (en) Controlling an information processing apparatus to execute an extension application associated with printing data generation software
JP2024016351A (ja) 情報処理装置、プログラム
JP7362384B2 (ja) 情報処理装置、その制御方法、及びプログラム
JP7255277B2 (ja) 画像処理装置および画像処理システム
WO2021131979A1 (ja) 制御方法及び情報処理装置
JP6466010B2 (ja) 情報処理装置、プログラム
JP2023116259A (ja) プログラム、情報処理装置および制御方法
JP2023125749A (ja) プログラム、情報処理装置および制御方法
JP2023110778A (ja) プログラム、情報処理装置および制御方法
JP2024018088A (ja) 情報処理装置、情報処理方法およびプログラム
JP2024018086A (ja) 情報処理装置、情報処理方法およびプログラム
JP2024018087A (ja) 情報処理装置、情報処理方法およびプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221215

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240411