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

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

Info

Publication number
JP2023041245A
JP2023041245A JP2021148493A JP2021148493A JP2023041245A JP 2023041245 A JP2023041245 A JP 2023041245A JP 2021148493 A JP2021148493 A JP 2021148493A JP 2021148493 A JP2021148493 A JP 2021148493A JP 2023041245 A JP2023041245 A JP 2023041245A
Authority
JP
Japan
Prior art keywords
information
print
pdc
editing
print function
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
JP2021148493A
Other languages
English (en)
Other versions
JP2023041245A5 (ja
Inventor
大地 日高
Daichi Hidaka
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 JP2021148493A priority Critical patent/JP2023041245A/ja
Priority to US17/892,267 priority patent/US11954386B2/en
Priority to CN202211110098.7A priority patent/CN115809030A/zh
Publication of JP2023041245A publication Critical patent/JP2023041245A/ja
Publication of JP2023041245A5 publication Critical patent/JP2023041245A5/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/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
    • 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/1228Printing driverless or using generic 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
    • 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
    • G06F3/123Software or firmware update, e.g. device firmware 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/1229Printer resources management or printer maintenance, e.g. device status, power levels
    • G06F3/1232Transmitting printer device capabilities, e.g. upon request or periodically
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1253Configuration of print job parameters, e.g. using UI at the client
    • G06F3/1255Settings incompatibility, e.g. constraints, user requirements vs. device capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1275Print workflow management, e.g. defining or changing a workflow, cross publishing
    • G06F3/1276Print workflow management, e.g. defining or changing a workflow, cross publishing within a printer driver, e.g. driver resides either on a server or on a client
    • 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
    • G06F3/1287Remote printer device, e.g. being remote from client or server via internet

Landscapes

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

Abstract

【課題】拡張アプリケーションがより良い機能を提供すること。【解決手段】情報処理装置で動作可能な印刷データ生成ソフトウェアと関連付けられて機能の拡張を行う拡張アプリケーションのプログラムであって、情報処理装置のコンピュータを、印刷データ生成ソフトウェアが生成した印刷機能情報を取得する第一取得手段と、印刷装置の能力情報を印刷装置から取得する第二取得手段と、第二取得手段により取得した能力情報と、拡張アプリケーションがサポートする印刷機能を示すサポート情報を基に、第一取得手段により取得した印刷機能情報を編集する編集手段と、として機能させる。【選択図】図11

Description

本開示は、印刷の機能を拡張する技術に関する。
近年、Windows(登録商標)などにおいて、複数のベンダが提供する印刷装置に対して共通で利用することが可能な標準的なクラスドライバ(以下、「標準ドライバ」とも呼ぶ)が提供されている。このような標準ドライバは、オペレーティングシステム(以下、「OS」という)のパッケージに同梱されている。標準ドライバは、接続した印刷装置から取得した情報に基づき生成されたPrintCapabilitiesに応じて印刷機能を指定可能に構成される。これにより、標準ドライバを利用するユーザは、接続した印刷装置の能力に応じた印刷機能を指定することができる。
標準ドライバには、機能拡張用のアプリケーション(以下、「拡張アプリケーション」とも呼ぶ)を関連付けることができる。拡張アプリケーションは、印刷装置を提供するベンダにより提供される。ベンダは、拡張アプリケーションを提供することにより、標準ドライバのみでは実現できない機能(拡張機能)を提供することができる。特許文献1には、拡張アプリケーションにより、スタンプ機能等の機能を拡張する技術が開示されている。
特開2019-74906号公報
拡張アプリケーションがより良い機能を提供するために、さらなる工夫が求められている。
本開示の一態様に係るプログラムは、情報処理装置で動作可能な印刷データ生成ソフトウェアと関連付けられて機能の拡張を行う拡張アプリケーションのプログラムであって、前記情報処理装置のコンピュータを、前記印刷データ生成ソフトウェアが生成した印刷機能情報を取得する第一取得手段と、印刷装置の能力情報を前記印刷装置から取得する第二取得手段と、前記第二取得手段により取得した前記能力情報と、前記拡張アプリケーションがサポートする印刷機能を示すサポート情報を基に、前記第一取得手段により取得した前記印刷機能情報を編集する編集手段と、として機能させるためのプログラム。
本開示によれば、拡張アプリケーションは、より良い機能を提供することができる。
印刷システムのハードウェア構成を示すブロック図である。 印刷システムの構成図である。 PDC拡張のブロック図である。 PDCの編集処理フローを示す図である。 PDCの一例を示す図である。 PDC拡張に関わる各種情報の一例を示す図である。 機能拡張後のPDCの一例を示す図である。 印刷設定画面の一例を示す図である。 印刷機能拡張後の印刷設定の画面の一例を示す図である。 media-col-databaseの一例を示す図である。 無効な印刷機能削除のフローを示す図である。 無効な印刷機能削除後のPDCの一例を示す図である。 無効な印刷機能削除後のPDCの一例を示す図である。 無効な印刷機能削除後の印刷設定画面の一例を示す図である。 OSからのPDC編集要求事由の一例を示す図である。 無効な印刷機能削除のフローを示す図である。 PDC編集要否判定のためのキャッシュ情報のデータ構造を示す図である。 実施形態3における無効な印刷設定削除のフローを示す図である。
以下、添付図面を参照して本開示の好適な実施の形態を詳しく説明する。尚、以下の実施の形態は本開示事項を限定するものでなく、また本実施の形態で説明されている特徴の組み合わせすべてが本開示の解決手段に必須のものとは限らない。なお、同一の構成要素には同一の参照番号を付して、説明を省略する。
<<実施形態1>>
<印刷システムのハードウェア構成>
図1は、本実施形態における印刷システムのハードウェア構成を示すブロック図である。印刷システムは、ホストコンピュータ101を含み、図1では、主にホストコンピュータのブロック構成を示している。ホストコンピュータ101は、情報処理装置の一例である。ホストコンピュータ101は、入力インタフェース110、CPU111、ROM112、RAM113、外部記憶装置114、出力インタフェース115、入出力インタフェース116、及びネットワークインタフェイス(NETIF)120を有する。入力インタフェース110には、キーボード118およびポインティングデバイス117などの入力デバイスが接続され、出力インタフェース115には、表示部119などの表示デバイスが接続されている。NETIF120は、ネットワークを介して外部機器との間でデータ転送を行うための制御を行う。尚、図1の例では、表示部119、ポインティングデバイス117、およびキーボード118は、ホストコンピュータ101とは別のデバイスの例として記載されているが、これらがホストコンピュータ101に含まれていてもよい。また、表示部119は、入出力デバイスの機能を備えたタッチパネルディスプレイであってもよい。
ROM112には、初期化プログラムが格納されている。外部記憶装置114には、アプリケーションプログラム群、オペレーティングシステム(OS)、印刷データ生成ソフトウェア、およびその他の各種のデータが格納されている。なお、以下の説明においてOSとは、特記しない限りROM112に格納されたホストコンピュータ101のOSであるものとする。また以下においてアプリケーションプログラムをアプリケーションと略する。RAM113は、外部記憶装置114に格納される各種のプログラムを実行する際のワークメモリ等として使用され、これにより、各種プログラムがホストコンピュータ101内で動作することが可能となっている。
なお、本実施形態では、CPU111が、ROM112に格納されたプログラムの手順に従って処理を行うことによって、ホストコンピュータ101における後述の機能及び処理を実行する。
出力デバイスである印刷装置102は、入出力インタフェース116を介して、ホストコンピュータ101と接続されている。図1の例では、ホストコンピュータ101と印刷装置102とが分かれた例を示しているが、これらが一つの情報処理装置として構成されていてもよい。なお、印刷装置は、インクを紙面上に吐出することで印刷するインクジェットプリンタを例に説明するが、他の方法(例えば電子写真方式)で印刷が実行されてもよい。また、ホストコンピュータ101は、デスクトップパソコンでも、スマートフォンでも、タブレット端末でも、ノートパソコンでもよい。入出力インタフェース116は、有線であっても無線であってもよい。また、ホストコンピュータ101と印刷装置102とは、LANまたはインターネットなどのWANを介して接続されていてもよい。
<ソフトウェアを中心とした印刷システムの構成>
図2は、印刷システムの構成を模式的に示す図である。ここでは、OSとしてMicrosoft(登録商標)のWindows(登録商標)10を搭載したホストコンピュータ101を用いた印刷システムを前提として説明する。図2(a)は、拡張アプリケーション204が、印刷データ生成ソフトウェア202および印刷装置102と関連付けられていない場合の一般的な構成を示す図である。つまり、拡張アプリケーション204が用いられていない印刷システムの構成を示す図である。一方、図2(b)は、拡張アプリケーション204が、印刷データ生成ソフトウェア202および印刷装置102と関連付けられている本実施形態の印刷システムの構成を示す図である。
まず、図2(a)を用いて、一般的な構成の印刷システムの例を説明する。一般的な構成の印刷システムは、描画アプリケーション201および印刷データ生成ソフトウェア202を備えている。また、印刷機能情報203が、RAM113または外部記憶装置114に記憶されている。描画アプリケーション201および印刷データ生成ソフトウェア202は、ホストコンピュータ101で動作可能なプログラムであり、RAM113または外部記憶装置114に記憶されている。
描画アプリケーション201は、印刷されるコンテンツ(描画データ)を作成するソフトウェアである。描画アプリケーション201の例としては、文書作成アプリケーションや、表計算アプリケーション、プレゼンテーション用データ作成アプリケーションなどの、ユーザが操作する各種のアプリケーションが挙げられる。描画アプリケーション201は、ユーザからの操作の受付により印刷要求を受けると、印刷指示をOSに発行する。印刷指示には、印刷データ生成ソフトウェア202及び印刷装置102の動作を指示するための印刷設定情報が含まれる。印刷設定情報はPrintTicket(以下、「PT」と略す)とも呼ばれる。
描画アプリケーション201は、ユーザからの印刷設定操作を受け付けて印刷設定情報(PT)を設定するために、印刷設定画面を表示させることができる。印刷設定画面は、印刷データ生成ソフトウェア202、OS、および描画アプリケーション201のうち、いずれかが提供する画面である。印刷設定画面は、設定可能な印刷機能を示す設定アイテム(以下、「コントロールアイテム」とも呼ぶ)と、その設定値を示すコントロールアイテムとを含む。印刷設定画面には、印刷データ生成ソフトウェア202から取得する能力情報(印刷設定として設定可能な情報)に従いコントロールアイテムが表示される。能力情報は、PrintCapabilities(以下、「PC」と略す)とも呼ばれる。印刷データ生成ソフトウェア202は、印刷機能情報203に基づき、PCを決定する。
印刷機能情報203は、設定可能なすべての印刷機能、その設定値、および、設定値同士の排他関係が記載されている印刷機能を示すデータである。印刷機能情報203は、PDC(Print Device Capabilities)とも呼ばれる。印刷機能情報203は、印刷データ生成ソフトウェア202の構成ファイルに含まれ、変更不可能なファイルとして外部記憶装置114に配置される。あるいは、印刷機能情報203は、印刷データ生成ソフトウェア202により、動的に生成されることもできる。具体的には、印刷データ生成ソフトウェア202またはOSは、印刷装置102から印刷装置の属性データを取得し、取得した属性データ内の属性情報に応じて印刷機能情報203を生成するよう構成することができる。動的に印刷機能情報203が生成される場合、生成された印刷機能情報203は編集可能である。なお、印刷装置102から取得される印刷装置の属性データとは、印刷装置に対してIPPのGet-Printer-Attributesオペレーションを発行することにより取得するレスポンスのデータである。IPPとは、Internet Print Protocolのことである。レスポンスの中には、印刷装置102で指定可能な機能(印刷装置の能力)を示す属性情報と、その属性情報に関連する設定値と、が含まれる。このレスポンスのデータはRAM113に保存される。
このように構成することで、印刷データ生成ソフトウェア202は、接続された印刷装置102に応じて、それぞれの印刷装置102で利用可能な印刷機能をユーザが指定可能に構成することができる。すなわち、異なる機能を持つ印刷装置、または、異なるベンダが開発した印刷装置を接続した場合であっても、印刷データ生成ソフトウェア202は、接続した印刷装置に応じて利用可能な印刷機能をユーザが指定可能に構成することができる。ここでは、印刷データ生成ソフトウェア202として、Windows(登録商標)10に搭載されている、IPP Class Driverを利用した構成について説明する。IPP Class Driverは、IPPと呼ばれる標準的な印刷プロトコルの仕様に従って印刷処理を実行するプリンタドライバであり、OSと同梱されてホストコンピュータ101に予めインストールされているソフトウェアである。また、IPP Class Driverは、印刷装置102の機種に応じた、印刷装置102のベンダが提供する、固有のプリンタドライバではない。IPP Class Driverは、複数の印刷装置に対して共通で利用することが可能であり、OSのベンダが提供する標準的なクラスドライバである。また、IPP Class Driverは、接続した印刷装置102でサポートする印刷機能をユーザが指定できるように、接続した印刷装置102の属性情報を取得し、その情報を元に印刷機能情報203を生成する。このように、印刷データ生成ソフトウェア202であるIPP Class Driverは、動的に印刷機能情報203(PDC)を生成することができる。
このような印刷機能情報203(PDC)に基づくPCに基づいて表示される印刷設定画面を通じて指定された印刷設定情報(PT)が、描画アプリケーション201から出力される印刷指示に含まれる。なお、描画アプリケーション201から出力される印刷指示には、印刷設定情報(PT)のほか、描画すべきデータが含まれる。
OSは、描画アプリケーション201から出力された印刷指示に基づき中間データ(入力データとも呼ぶ)を生成して、印刷データ生成ソフトウェア202に渡す。なお、描画アプリケーション201が印刷用に出力するデータは、Graphic Device Interface形式のデータ(GDI形式データ)またはXML Paper Specification形式のデータ(XPS形式のデータ)である。印刷データ生成ソフトウェア202として、IPP Class Driverを利用する場合、描画アプリケーション201が出力するデータがGDI形式のデータなら、OSは、データ形式の変換を行う。即ち、OSは、描画アプリケーション201から出力されたGDI形式のデータをXPS形式のデータに変換する。そして、変換したXPS形式のデータを中間データとして印刷データ生成ソフトウェア202に渡す。一方、描画アプリケーション201が出力するデータがXPS形式のデータなら、OSは、XPS形式のデータを中間データとして印刷データ生成ソフトウェア202に渡す。なお、中間データには、紙面上に形成する画像の情報である描画データと、ユーザにより設定された印刷設定情報(PT)と、が含まれる。
印刷データ生成ソフトウェア202は、取得した中間データを印刷装置102が解釈可能な印刷データに変換し、印刷装置102に送信する。なお、印刷データには、紙面上に形成する画像の情報である描画データと、ユーザにより設定された印刷設定情報に基づき生成された印刷設定属性情報(印刷設定を指定する属性情報)とが含まれる。印刷設定属性情報は、印刷装置102で指定可能な機能(印刷装置の能力)を示す属性情報とその属性情報に関連する設定値とを含む。
印刷装置102は、印刷データ生成ソフトウェア202から送られた印刷データに基づき紙面への印刷を行う。このとき、印刷装置102は、印刷データに含まれる印刷設定属性情報に従った動作で、印刷データに含まれる描画データを紙面上に形成する。印刷設定属性情報には、印刷品位(画質優先または速度優先等)、および、両面印刷等を指定するための属性情報とその設定値などが含まれている。例えば、印刷設定属性情報に、両面印刷を指定する属性情報が含まれる場合、印刷装置102は、両面印刷を実行する。
図2(b)は、拡張アプリケーション204が、印刷データ生成ソフトウェア202および印刷装置102と関連付けられている場合の本実施形態の構成を示す図である。なお、以下において特に言及しない構成および処理は、図2(a)の構成および処理と同等である。なお、以下の説明において、ホストコンピュータ101が備える各ソフトウェアが実行するものとして説明されている処理は、実際には、次のように実現されるものとする。即ち、CPU111が、ROM112等に保存された各ソフトウェアをRAM113に展開して実行することにより実現されるものとする。
拡張アプリケーション204は、印刷データ生成ソフトウェア202の機能を拡張するためのソフトウェアであり、OSと同梱されてホストコンピュータ101に予めインストールされているソフトウェアでないソフトウェアである。そのためユーザがホストコンピュータ101を操作して拡張アプリケーション204を、インターネットを介してサーバからダウンロードして、ホストコンピュータ101にインストールする。あるいは、ホストコンピュータ101に印刷装置102が接続されたことに基づき、拡張アプリケーション204が自動的にホストコンピュータ101にインストールされてもよい。具体的には、ホストコンピュータ101に印刷装置102が接続された場合、OSは印刷装置102からデバイス識別情報を取得する。OSは、取得されたデバイス識別情報に対応する拡張アプリケーション204を、インターネットを介してサーバからダウンロードし、ホストコンピュータ101にインストールしてもよい。このように、印刷データ生成ソフトウェア202と、拡張アプリケーション204とは、別ファイルとしてホストコンピュータ101に保持される。
なお、印刷データ生成ソフトウェア202および拡張アプリケーション204は、更新されてバージョンアップされることもあるが、この更新処理も別々のタイミングで行われる。また、ホストコンピュータ101により印刷データ生成ソフトウェア202が取得されるタイミングと、拡張アプリケーション204が取得されるタイミングとは異なる。また、ホストコンピュータ101により印刷データ生成ソフトウェア202が取得されるトリガーと、拡張アプリケーション204が取得されるトリガーも異なる。なお、拡張アプリケーション204がインストールされた場合、OSが、拡張アプリケーション204を、印刷データ生成ソフトウェア202および対応する印刷装置102に関連付ける。
本実施形態で説明する拡張アプリケーション204は、印刷設定画面拡張ユニット205と、スキップ制御ユニット206と、印刷機能拡張ユニット207と、印刷データ編集ユニット208と、通知ユニット209と、を備える。また、拡張アプリケーション204は、各ユニットから共通してアクセス可能な共有情報210を備える。また、拡張アプリケーション204は、印刷装置102を提供するベンダによって提供されるものである。共有情報210の実体は、外部記憶装置114に保存されたファイル、または、RAM113上に格納された情報である。拡張アプリケーション204は、OSが提供するAPI(Application Program Interface)を利用することで、共有情報210への情報の書き込み及び読み出しを行う。
なお、拡張アプリケーション204は、各ユニットの処理が終わるたびに動作を終了してもよい。その場合、各ユニットを使う要求を受ける度にOSが拡張アプリケーション204を起動することになる。また、別の形態も考えられる。例えば印刷設定画面拡張ユニット205の処理が終了するとOSは拡張アプリケーション204の動作を終了させるが、スキップ制御ユニット206の処理が終了してもOSは拡張アプリケーション204を起動させたままにしてもよい。
さらに、拡張アプリケーション204は、各ユニットの処理の中で、処理をキャンセルしてもよい。拡張アプリケーション204が処理をキャンセルした場合、印刷キュー上の処理中のジョブがOSにより削除される。なお、印刷キューとは、OSが備えるスプーラであり、生成されたジョブを格納するものである。また、ジョブは、拡張アプリケーション204から印刷指示が出力されたことに基づいて生成され、印刷キューに格納される。拡張アプリケーション204から印刷指示が出力されたことに基づいて生成される中間データは、このとき格納されたジョブに関連付けられたデータとなる。ジョブに関連付けられている中間データが処理中の場合は、ジョブのステータスも処理中となる。またジョブは、当該ジョブに関連付けられた中間データが変換された印刷データ(言い換えれば、当該ジョブに関連付けられた印刷データ)が印刷装置102に送信されることで、OSにより印刷キューから削除される。なお印刷キューは、拡張アプリケーション204が通信する印刷装置102毎にOSにより生成される。すなわち例えば、拡張アプリケーション204が複数の印刷装置102と通信する場合は、OSにより複数の印刷キューが作成される。生成される印刷キューにはそれぞれ、対応する印刷装置102が紐づけられている。なおある1つの印刷装置102に紐づけられた印刷キューが複数作成されても良い。
描画アプリケーション201は、ユーザから印刷要求を受けると、印刷指示をOSに発行する。印刷指示には、図2(a)の構成と同様に、印刷設定情報(PT)が含まれる。図2(b)の構成下でも、図2(a)の構成と同様、描画アプリケーション201は、印刷設定情報(PT)を指定するための印刷設定画面を表示させることができる。図2(b)の構成下では、拡張アプリケーション204が提供する印刷設定画面が表示される。具体的には、拡張アプリケーション204が備える印刷設定画面拡張ユニット205が提供する印刷設定画面が表示される。即ち、印刷設定画面拡張ユニット205による印刷設定画面の表示制御が行われる。なお、印刷設定画面拡張ユニット205により提供される印刷設定画面が表示されるか否かはユーザの操作に依存する。
描画アプリケーション201がユーザから印刷要求を受け付け、印刷指示がOSに発行されると、OSはスキップ制御ユニット206を起動する。スキップ制御ユニット206は、印刷データ生成ソフトウェア202の処理をスキップするスキップ処理を行うか否かの制御処理を行う。スキップ制御ユニット206のスキップ制御処理の後、OSは、描画アプリケーション201から出力された印刷指示に基づき中間データを生成し、中間データを印刷データ生成ソフトウェア202に渡す。ここで、スキップ制御ユニット206でスキップ処理が行われない場合、中間データは印刷データ生成ソフトウェア202で印刷装置102が解釈可能な印刷データへ処理され、印刷データ編集ユニット208へ渡される。一方、印刷データ生成ソフトウェア202のスキップ処理が行われる場合、中間データは印刷データ生成ソフトウェア202で処理されずに、印刷データ編集ユニット208に渡される。これにより、中間データを印刷データ編集ユニット208で処理することが可能となる。
印刷データ編集ユニット208は、印刷データ生成ソフトウェア202から渡される中間データまたは印刷データ生成ソフトウェア202により処理された印刷データの編集を行う。編集内容として、割り付け印刷を例にすると、印刷データ編集ユニット208は、OSから受け取った割り付け印刷の印刷設定情報に基づいて、中間データまたは印刷データのレイアウトを変更する。割り付け印刷は、例えばNページ分のデータを1ページに割り付けて印刷することであり、Nin1またはNアップなどと呼ばれる(Nはページ数を示す)。また、印刷データ編集ユニット208は、表示部119にUI画面を表示することが可能であり、中間データまたは印刷データのレイアウト結果をプレビュー画面として表示することができる。印刷データ編集ユニット208が印刷データを編集した後、印刷データは、OSを経由して印刷装置102へ渡される。印刷装置102は、受け付けた印刷データに基づき紙面への印刷を行う。なお、スキップ制御ユニット206で印刷データ生成ソフトウェア202がスキップされた場合、印刷データ編集ユニット208が、受け取った中間データを印刷装置102が解釈可能な印刷データへ変換してもよい。また、中間データを印刷データへ変換するために、OSが提供する機能を利用しても良い。
また、拡張アプリケーション204は、印刷機能拡張ユニット207を有する。印刷機能拡張ユニット207は、印刷データ生成ソフトウェア202またはOSが生成した印刷機能情報203(PDC)を編集することができる。つまり、印刷機能拡張ユニット207は、印刷機能情報203が変更不可能なファイルとして外部記憶装置114に配置されていても、その印刷機能情報203を変更することが可能である。このように、拡張アプリケーション204は、印刷機能情報203(PDC)の編集機能を有している。印刷機能拡張ユニット207は、拡張アプリケーション204が提供する機能の追加が可能である。また、印刷機能拡張ユニット207は、印刷装置102はサポートしているが印刷データ生成ソフトウェア202がサポートしていない機能の追加、および、印刷機能の設定値同士の排他関係の追加、等も行うことができる。
OSは、拡張アプリケーション204が印刷装置102と印刷データ生成ソフトウェア202とに最初に関連付けられた時に、印刷機能拡張ユニット207を起動する。さらに、OSは、OS起動時等、その他の任意のタイミングで印刷機能拡張ユニット207を起動してもよい。これにより、印刷装置102に後からオプション装置(例えば、フィニッシャー等)が追加され、印刷に関わる機能が拡張されるようなケースにおいて、印刷機能拡張ユニット207は、拡張機能を検知し、印刷機能情報203に追加することができる。
また、拡張アプリケーション204は、通知ユニット209を有する。通知ユニット209は、印刷装置102のエラー発生に呼応してユーザに対して通知を表示することが可能である。例えば、印刷装置102で用紙なしエラーが発生すると、そのエラーを印刷データ生成ソフトウェア202が検知する。すると、OSは、OSの機能であるトースト通知と呼ばれる通知機能を使って、メッセージを表示部119に表示させる。ユーザがこのトースト通知を押下することで、拡張アプリケーション204の通知ユニット209がOSにより呼び出され、通知ユニット209のUI画面が表示される。通知ユニット209のUI画面では、例えば用紙なしエラーの詳細メッセージまたは用紙充填方法などの表示を行うことができる。尚、押下とは、マウス等のクリック動作のほか、タッチパネルディスプレイにおけるタッチまたはタップ動作を含むものとする。
なお、本実施形態を実現するための拡張アプリケーション204の構成は、前述の機能(ユニット)を全て備えるものに限定されず、機能の一部のみを有するもの、または、他の機能を有するものでもよい。また、拡張アプリケーション204は、単に印刷ソフトウェアと呼ばれることもある。以上説明したように、拡張アプリケーション204は、以下の各機能のうちの少なくとも1つを備えている。各機能とは、印刷設定画面を表示する機能(印刷設定画面拡張ユニット205)、印刷データ生成ソフトウェア202の処理をスキップするか否かを制御する機能(スキップ制御ユニット206)である。また、印刷装置に入力される印刷データを編集する機能(印刷データ編集ユニット208)、印刷データ生成ソフトウェア202で指定可能な機能を拡張する機能(印刷機能拡張ユニット207)である。また、印刷装置102のエラー発生に呼応して画面を表示する機能(通知ユニット209)である。
<印刷機能拡張ユニットによるPDCの編集処理>
本実施形態における、印刷機能拡張ユニット207による印刷データ生成ソフトウェアのPDC編集時に、拡張アプリケーション204がサポートする印刷機能と印刷装置102の能力情報とを基にPDCに印刷機能を追加する方法を説明する。
図3は、本印刷システムにおける印刷機能拡張ユニット207によるPDCの編集処理を説明するためのブロック図である。まず、印刷データ生成ソフトウェア202は、ホストコンピュータ101に接続された印刷装置102の能力情報302を取得し、その情報を基にPDC203を生成する。印刷装置102から取得する能力情報302とは、印刷装置102への印刷の際に、ユーザが印刷設定として設定可能な情報などを含む情報である。OS301は印刷装置102についての印刷キューに対して拡張アプリケーション204を関連付けたタイミング等で、拡張アプリケーション204の印刷機能拡張ユニット207に対して、PDC203の編集要求を行う。印刷機能拡張ユニット207は、OS301からPDC編集要求を受け付けると、印刷データ生成ソフトウェアが生成したPDC203を取得し、PDC編集を開始する。PDC編集による印刷機能拡張の詳細については、以下で説明する。
図4は、本印刷システムにおける印刷機能拡張ユニット207によるPDCの編集処理のうち主要な処理フローを示した図である。以降、印刷機能拡張ユニット207を、各処理の主体として説明することもあるが、実際には、対応するプログラムをCPU111が実行することで、対応する機能が実現されることになる。なお、各処理の説明における記号「S」は、当該フローチャートにおけるステップであることを意味し、図4以降のフローチャートについても同様である。
図4のフローは、OS301が、拡張アプリケーション204と初めて関連付けられたタイミング等で、印刷機能拡張ユニット207を起動することにより開始する。
S401で、印刷機能拡張ユニット207は、編集対象であるPDC203をOS301から取得する。PDC203は、印刷データ生成ソフトウェア202が、印刷装置102の能力情報302を基に作成したPDCである。
ここで、印刷データ生成ソフトウェア202が印刷装置102から取得した能力情報302を基に作成したPDC203の具体例について図5を用いて説明する。PDC501には、印刷装置102がサポートしている機能(Feature)の情報、またはある機能における設定値(Option)の情報のうち印刷データ生成ソフトウェア202がサポートする情報が含まれる。例えば、情報502は、PageMediaSize(用紙サイズ)としてISOA4およびNorthAmericaLetterが指定可能であることを示す。また、情報503は、JobInputBin(給紙口)として、Mainトレイ、Rearトレイ、およびDiscトレイが指定可能であることを示す。
実施形態を説明するにあたり、印刷機能の記載を用紙サイズと給紙口に絞って記載しているが、実際には、用紙の種類などのその他のFeatureまたはOptionも記載されている。なお、以降説明に用いるPDCにおけるFeature名またはOption名はあくまで一例であり、それ以外の名称(機能を示す情報)または設定可能値であっても良い。
図6(a)のPDC601は、図5に示したPDC501のFeatureまたはOptionに相当する項目を簡易的にリストで示したものであり、PDC501およびPDC601は同様のPDCを示している。
S402では、印刷機能拡張ユニット207は印刷装置102から能力情報302を取得する。能力情報302は前述でも説明した通り、印刷装置102で指定可能な機能(印刷装置の能力)を示す属性情報およびその属性情報に関連する設定値である。ここで、印刷機能拡張ユニット207が印刷装置102から取得する能力情報302の例を簡易的に表現したものを図6(b)の能力情報602に示す。即ち、印刷装置102から取得する能力情報602には、印刷装置102がサポートする印刷機能または設定可能値が記載されている。なお、簡易的に表現するために、能力情報602はPDC601と同様の構成で図示しているが、実際のデータ構成は異なる。また、前述でも説明した通り、PDC601は印刷装置102の能力情報602を基に印刷データ生成ソフトウェア202が作成するが、図6に示すようにPDC601と能力情報602とは記載内容が異なっている。具体的にはPDC601には用紙サイズ「スクエア」の記載がなく、能力情報602には記載がある。PDC601は、印刷装置で設定可能な設定と印刷データ生成ソフトウェア202自体で設定可能な設定とを加味して作成されるためである。
S403では、印刷機能拡張ユニット207は共有情報210の中から、拡張アプリケーション204がサポートする印刷機能情報一覧(サポート情報)を取得する。拡張アプリケーション204がサポートする印刷機能情報一覧は共有情報210に格納されており、拡張アプリケーション204が処理可能なすべての印刷機能と、その設定値とが記載されたものである。印刷機能拡張ユニット207は、共有情報210の中から取得した、拡張アプリケーション204がサポートする印刷機能情報一覧を参照する。これにより、印刷機能拡張ユニット207は、印刷装置102の能力情報602のうち、PDC601に記載のないものを、PDC601に追加する処理へ進む。拡張アプリケーション204がサポートしていない印刷機能またはその設定値を、印刷機能拡張ユニット207がPDC601に追加した場合、その印刷機能または設定値をユーザが選択して印刷をすると、予期せぬ動作が起こる虞がある。この予期せぬ動作を防ぐため、拡張アプリケーション204は、サポートする印刷機能情報一覧を保持しておく必要がある。拡張アプリケーション204がサポートする印刷機能情報一覧は、拡張アプリケーション204のアップデートなどによって、更新されることもある。
拡張アプリケーション204がサポートする印刷機能情報一覧についての簡易的な例を図6(c)の拡張アプリケーションがサポートする印刷機能情報一覧603に示す。なお、拡張アプリケーションがサポートする印刷機能情報一覧603は、PDC601のようにPDCの簡易的な例と同様の構成としているが、PDCと同様のデータ構成で記載されてもよいし、それ以外のデータ構成で記載されてもよい。
S404では、印刷機能拡張ユニット207は、S402で取得した印刷装置102の能力情報602と、S403で取得した拡張アプリケーションがサポートする印刷機能情報一覧603とを比較する。そして双方に記載のある印刷機能をS401で取得した印刷データ生成ソフトウェア202のPDC601に追加する。なお、すでにPDC601に記載のある印刷機能に関しては、追加は行わない。ここでは印刷装置102の能力情報602および拡張アプリケーションがサポートする印刷機能情報一覧603の双方に記載があり、印刷データ生成ソフトウェア202が作成したPDC601に記載のない用紙サイズ「スクエア」がPDC601に追加される。S404での処理によって印刷機能拡張ユニット207が、用紙サイズ「スクエア」を追加した後のPDCの簡易的な例を図6(d)のPDC604に示す。S404の処理が終了すると印刷機能拡張ユニット207は本フローを終了する。
以上、S401~S404の処理によって、印刷機能拡張ユニット207は印刷データ生成ソフトウェアが生成したPDC601の編集を行い、印刷機能を拡張する。印刷機能拡張ユニット207による印刷機能拡張処理によって、印刷装置102の能力情報302に含まれていて、かつ拡張アプリケーション204がサポートしている印刷機能が、印刷データ生成ソフトウェア202が生成したPDC601に追加される。
図7は、本フローチャートで印刷機能を拡張した後のPDCを示す図である。即ち、PDC604は実際にはPDC701のように記載される。PDC701には印刷データ生成ソフトウェア202が生成したPDCの501に対して、用紙サイズを表すFeature欄に用紙サイズ「Photo5x5」702が追加されている。PDC701に記載されている用紙サイズ「Photo5x5」は実際には用紙サイズ「スクエア」である。
<印刷設定画面拡張ユニットの表示する画面例>
次に、印刷設定画面拡張ユニット205により表示される印刷設定画面について図8を用いて説明する。図4の処理により編集されたPDC701に基づき、PCが生成される。図8(a)の印刷設定画面801は、生成されたPCに基づき、印刷設定画面拡張ユニット205が表示する画面の一例である。なお、図8では、PDC501に基づく印刷設定画面の例を先に説明する。PDC701に基づく印刷設定画面の例は、図9にて後述する。印刷設定画面拡張ユニット205は、描画アプリケーション201上でユーザが印刷設定画面の表示を指示した場合に、OS301から呼び出される。印刷設定画面拡張ユニット205は、OS301から取得できるPCに基づき印刷設定画面801を表示する。ユーザは印刷設定画面801を操作することで印刷データ生成ソフトウェア202において設定可能な印刷機能を指定することができる。
コントロール802は、印刷に使用する用紙の種類を設定可能なコントロールアイテムであり、例えば、普通紙または写真紙といった項目を設定可能である。コントロール803は、印刷に使用する用紙サイズを設定可能なコントロールアイテムであり、例えば、A4またはレターといった項目を設定可能である。図8(b)に示すリスト810は、コントロール803を展開した際の表示状態を示しており、ユーザは展開されたリストの中から用紙サイズを選択可能である。
コントロール804は、印刷装置102の印刷用紙の給紙口を設定可能なコントロールであり、例えば、メイントレイまたはリアトレイといった項目を設定可能である。図8(c)に示すリスト811は、コントロール804を展開した際の表示状態を示しており、ユーザは展開されたリストの中から給紙口を選択することができる。
コントロール805は、印刷の向きを設定可能なコントロールアイテムであり、縦および横の設定が可能である。コントロール806は、両面印刷の有効・無効を切り替え可能なコントロールアイテムである。コントロール807は、両面印刷時のとじ方向を設定可能なコントロールアイテムであり、例えば長辺とじ、短辺とじといった項目が設定可能である。コントロール808はキャンセルボタンであり、設定を反映せずに画面が閉じられる。コントロール809はOKボタンであり、設定を反映して画面が閉じられる。
図9の印刷設定画面901は、図4の編集処理により印刷機能が拡張された後の印刷設定画面の例を示した図である。用紙サイズのコントロール803を展開した状態を示したリスト902では、図4の編集処理によって追加された用紙サイズ「スクエア」が選択可能となる。
<実施形態1における印刷機能拡張ユニットによるPDCの編集処理>
ここで、印刷データ生成ソフトウェア202のPDC601または編集後のPDC604により、印刷データ生成ソフトウェア202は、用紙サイズ「ディスク」には対応しておらず、給紙口「ディスク」には対応していることがわかる。このような場合、印刷データ生成ソフトウェア202が生成するPDC501、または編集後のPDC701には用紙サイズ「ディスク」は記載されず、給紙口「ディスク」が記載される。給紙口「ディスク」は、用紙サイズ「ディスク」との組み合わせのみで印刷可能である場合、ユーザが指定可能な印刷機能ではあるが、実際に指定しても給紙口「ディスク」からの印刷は行うことができず、給紙口「ディスク」は無効な印刷機能となる。このような無効な印刷機能はユーザに指定させないように構成するのが望ましい。印刷設定画面801にてユーザが無効な印刷機能(例えば、812における給紙口「ディスク」)を選択し、印刷を行うと、ミスプリントまたは印刷エラーに遭遇することとなる。以下では、上述のような無効な印刷設定がPDC601またはPD604に記載されている場合に、無効な印刷機能を削除する方法について説明する。
まず、印刷データ生成ソフトウェア202が、印刷装置102から取得した能力情報302に基づいて作成したPDC501は、印刷データ生成ソフトウェア202がサポートする印刷機能のみで構成される。一方、印刷装置102は、自身が印刷可能な印刷設定の組み合わせ情報を一覧として記載したmedia-col-database(印刷設定組み合わせ情報)という情報を持つ。能力情報302には印刷装置102での印刷時に設定可能な印刷機能またはその設定値が含まれているのに対して、media-col-databaseには、印刷装置102での印刷が可能な印刷機能およびその設定値の組み合わせの情報が記載される。
media-col-databaseの具体例を図10に示す。media-col-database1001は、media-col-databaseに含まれる情報を概念的に表現したものであり、実際には異なる構成で記載されるものである。
media-col-database1001は、メディアの種類、サイズ、マージン、および給紙口が特定の組み合わせを満たす場合に印刷が可能であるということを示している。例えばmedia-col-database1001の一行目は、用紙サイズが「A4」、マージンが「標準」、給紙が「自動」、およびメディアが「普通紙」の組み合わせで印刷可能であることを示している。
ここで、図6(e)のmedia-col-database605は、図10のmedia-col-database1001を簡易的に表現した表である。例えば、(1)は用紙サイズが「A4」、給紙口が「自動」の組み合わせの時に印刷可能であることを示している。なお、ここには、用紙サイズと給紙口の組み合わせのみを記載しているが、実際には、マージン、およびメディアも組み合わせ可能な設定である場合に印刷が可能となる。media-col-database605の(7)により、給紙口「ディスク」は、用紙サイズ「ディスク」との組み合わせの場合にのみ印刷可能であることがわかる。前述したように、このような場合でも、PDC601またはPDC604には給紙口「ディスク」は記載され、印刷設定画面801にてユーザは給紙口「ディスク」を選択できてしまう。そして、これが原因となりミスプリントまたは印刷エラーとなりユーザービリティの低下を引き起こす虞がある。
この課題を拡張アプリケーション204の印刷機能拡張ユニット207におけるPDCの編集時に印刷装置102から取得するmedia-col-database1001を参照することで解決する。具体的には、media-col-database1001を参照し、無効な印刷機能を検出して、除外するようにPDC編集を行う。具体的な処理ステップは以下で説明する。
図11は印刷機能拡張ユニット207の印刷機能拡張処理および無効な印刷機能削除処理の主要なフローを示した図である。以降、各ステップにおける例を図6および図12を用いて示しながら説明を行う。
本フローは印刷機能拡張ユニット207がOS301からPDC編集要求を受け付けることで処理を開始する。また、S1101~S1103までは、図4に示すPDC編集処理フローのS401~S403までと同様のフローであるため説明を省略する。S1101~S1103で取得する各情報の例をそれぞれ印刷データ生成ソフトウェア202のPDC601、印刷装置102のPDC203、印刷装置102の能力情報602、および拡張アプリケーション204がサポートする印刷機能情報一覧603とする。
S1104において印刷機能拡張ユニット207は、印刷装置102からmedia-col-databaseを取得する。本フローにおいては、印刷機能拡張ユニット207は、印刷装置102から図10に示すmedia-col-database1001を取得したものとする。media-col-database1001には印刷装置102での印刷が可能な印刷機能やその設定値の組み合わせの情報が記載されている。以下の説明では、media-col-database1001を簡易的に示したリストであるmedia-col-database605を用いる。なお本実施形態では、印刷機能拡張ユニット207は、S1102の印刷装置102からの能力情報302の取得と、S1104のmedia-col-databaseの取得と、を別ステップで行っているが、同ステップで行ってもよい。
その後、S1105で印刷機能拡張ユニット207は、S404と同様の印刷機能の拡張、つまりPDC203の編集を行う。ここでは、印刷機能拡張ユニット207によって、印刷装置102の能力情報602と拡張アプリケーションがサポートする印刷機能情報一覧603とで一致する用紙サイズ「スクエア」が印刷データ生成ソフトウェア202のPDC601に追加される。したがって、編集後のPDC601はPDC604のようになる。
印刷機能の拡張を行った後、S1104で取得したmedia-col-database605に記載された組み合わせ情報一覧について、すべての組み合わせを検証するまで、S1106~S1108までのステップを繰り返す。記載S1106~S1108までの繰り返し処理では、media-col-database605に記載された各組み合わせ情報を満たす印刷機能がPDC604に記載されているかを検証し、無効な印刷機能の検出を行う。具体的な処理フローを以下に示す。
まず、S1106で印刷機能拡張ユニット207は、media-col-database605から一組の組み合わせ情報を取得し、組み合わせ情報に含まれる印刷機能の一部がS1105で拡張されたPDC604に記載されているかを判定する。例えばmedia-col-database605の(1)は用紙サイズ「A4」、給紙口「自動」の組み合わせであり、PDC604には両者の記載があるため判定はNoとなる。一方、media-col-database605の(7)には用紙サイズ「ディスク」、給紙口「ディスク」の組み合わせであるが、PDC604には「ディスク」は給紙口にのみにしか記載がない。この場合はYesと判定される。
判定の結果がYesの場合、S1107において、印刷機能拡張ユニット207は、該当の印刷機能を無効な印刷機能候補として、無効印刷機能候補リストに格納する。無効印刷機能候補リストは、RAM113に一時的に格納されるもので、S1106~S1109のまでのステップの間保持されるものである。
一方、Noの場合、S1108に移行し、組み合わせ情報に含まれる印刷機能が無効な印刷機能候補とし無効印刷機能候補リストに格納されていた場合、無効印刷機能候補リストから当該印刷機能を削除する。
S1106~S110までのステップをすべての組み合わせ情報について検証を終えるまで繰り返す。media-col-database605の例では、(1)~(6)までの組み合わせについては、組み合わせを満たすすべての印刷機能がPDC604に存在するため、S1108へと移行する。一方、(7)の組み合わせについては前述の通りPDC604に用紙サイズ「ディスク」が記載されていないため、S1107へと移行し、給紙口「ディスク」が無効な印刷機能候補として保持される。(7)までの組み合わせを検証した結果、最終的に給紙口「ディスク」は無効な印刷機能と判定される。すべての組み合わせを検証後、S1109に移行し、印刷機能拡張ユニット207はこの時点で無効な印刷機能の候補として保持されていた印刷機能をPDCから削除する。
図12のPDC1201は、印刷機能拡張ユニット207がPDC701から無効な印刷機能の削除を行った後のPDCの具体例を示す図である。給紙口であるInputBinを示す情報1202から「ディスク」が削除されている。
また、図13にPDC1201を簡易的に表現したPDCの例を示す。図13のPDC1301とPDC604とを比較すると、PDC1301はPDC604から給紙口「ディスク」が削除されていることがわかる。
また、図14の印刷設定画面1401は、拡張アプリケーション204の印刷設定画面拡張ユニット205が表示する印刷設定画面801の給紙口のリスト811から無効な印刷機能である「ディスク」が削除された例を示したものである。
なお、前述では、無効な印刷機能が生じうる組み合わせとして、用紙サイズと給紙口を例にとって、説明を行ったが、無効な印刷機能が生じうる組み合わせはこれに限らない。例えば、「用紙の種類」と「印刷の品位」の組み合わせ、または「用紙の種類」と「用紙のサイズ」の組み合わせにおいて無効の印刷機能が生じ得る。以下では、「用紙の種類」と「印刷の品位」の組み合わせについて説明する。
印刷装置の能力情報602には用紙の種類「普通紙」「写真用紙」「光沢ゴールド」「プラチナグレード」、また印刷の品位「最高」「きれい」「標準」「下書き」がそれぞれ記載されているとする。さらに、media-col-database605には、用紙の種類「プラチナグレード」と印刷の品位「最高」とに関しては、この組み合わせでのみ印刷可能であることが記載されているとする。さらに、印刷データ生成ソフトウェアのPDC601と拡張アプリケーションがサポートする印刷機能情報一覧603に、用紙の種類「プラチナグレード」の記載がなく、用紙の種類「プラチナグレード」以外の印刷機能に関しては記載があるものとする。即ち、用紙の種類「普通紙」「写真用紙」「光沢ゴールド」、および印刷の品位「最高」「きれい」「標準」「下書き」に関しては記載があるものとする。
この場合、拡張アプリケーション204が印刷データ生成ソフトウェアのPDC601を機能拡張したPDC604には、用紙の種類「プラチナグレード」は追加されない。「プラチナグレード」は能力情報602には記載があるが、拡張アプリケーションがサポートする印刷機能情報一覧603には記載がないためである。一方、用紙の品位「最高」はPDC601にもともと記載がない場合は、PDC604にて追加されることになる。用紙の種類「プラチナグレード」および印刷の品位「最高」は、この組み合わせのみで印刷可能な印刷機能の設定項目であるので、機能拡張後のPDC604に記載されている、印刷の品位「最高」は無効な印刷機能となる。ユーザが印刷の品位「最高」を設定して印刷を行ったとしても、実際の印刷物は印刷の品位「最高」ではない状態で印刷されるか、印刷エラーが発生する。本実施形態を適用することで、この無効な印刷機能、印刷の品位「最高」は削除されるため、ユーザがミスプリントまたは印刷エラーに遭遇することを防ぐことが可能となる。
上述の例以外にも、適宜本実施形態を適用することができる。例えば、用紙の種類「ファインアート」と用紙サイズ「ファインアート用」もこの組み合わせでしか印刷できない印刷機能であり、無効な印刷機能が生じ得る組み合わせである。上述したように、本実施形態を適用することで、用紙の種類「ファインアート」と用紙サイズ「ファインアート用」という組み合わせでも生じる無効な印刷機能の存在を削除することができる。
以上説明したように、本実施形態によれば、拡張アプリケーションとしてより良い機能を提供することが可能となる。具体的には、拡張アプリケーションによるPDC編集時において、拡張アプリケーション204がサポートする印刷機能と印刷装置102の能力情報とを基に、印刷データ生成ソフトウェアが生成したPDCに印刷機能を追加することが可能となる。また、印刷データ生成ソフトウェア202によるPDC生成、および拡張アプリケーションによるPDC編集により生じる無効な印刷機能の削除を行うことが可能となる。無効な印刷機能の削除を行うことにより、例えば、ユーザが無効な印刷機能を設定し、ミスプリントや印刷エラーに遭遇することを防ぐことが可能となる。
<<実施形態2>>
次に実施形態2について説明する。OSが拡張アプリケーションにPDC編集を要求するトリガーとして様々なものが存在するが、そのトリガーによっては、PDC編集を行う必要性がない場合も存在する。拡張アプリケーションがPDCを編集する際、印刷装置からのPDC取得など、一定の処理負荷がかかるため、不要なPDC編集は避けることが望ましい。
本実施形態は、拡張アプリケーション204がOS301からPDC編集要求を受け付けた際に、PDC編集要求事由をOS301から取得する。これにより、PDC編集の要否判定を行い、不要なPDC編集をスキップすることで処理負荷を軽減するものである。
図15は、OS301がPDC編集を要求するトリガーと、その状況でのPDCの要否を表で示した図である。表1501に示す通り、PDC編集が必要になる場合の例として4つの場合を挙げる。まず1つ目の場合が、新たにホストコンピュータ101と印刷装置102とが接続され、印刷データ生成ソフトウェア202が新規にPDC203を作成する場合である。2つ目はOS301のバージョンアップなどによって印刷データ生成ソフトウェア202のPDC601が更新された場合である。3つ目は印刷装置102のアップデートなどにより、印刷装置102の能力情報602およびmedia-col-database605が更新された場合である。4つ目は拡張アプリケーション204のアップデートなどにより、拡張アプリケーション204がサポートする印刷機能情報一覧603に更新があった場合である。
1つ目の場合については、印刷データ生成ソフトウェア202が新規に作成したPDC203は拡張されていない状態であるためPDC編集を行う必要がある。また、他の2~4つ目の場合に関しても、それぞれの理由によりPDC編集が必要となる。なお、2~4つ目以外の場合でも、既存のPDCに対して、新たに印刷機能を追加できる可能性、新たに無効な印刷機能が生じてしまう可能性が生じるようなトリガーを基にOS301からPDC編集要求を受け付けた場合はPDC編集が必要となる。
また、既存のPDCに対して、新たに印刷機能を追加できる可能性、新たに無効な印刷機能が生じてしまう可能性が生じないトリガーを基にOS301からPDC編集要求を受け付けた場合はPDC編集が不要である。このような場合の例として、ユーザが印刷設定画面を表示した場合、または印刷を開始した場合にOS301がPDC編集要求を発行する場合等が存在する。
<実施形態2における印刷機能拡張ユニットによるPDCの編集処理>
図16は、本実施形態における、印刷機能拡張ユニット207によるPDCの編集処理のうち、主要な処理のフローを示した図である。S1602以降は実施形態1における印刷機能拡張ユニット207によるPDCの編集処理のうち、主要な処理のフロー図のS1101~S1109のフローと同様である。そのため、S1602以降の説明については省略する。
S1601では、印刷機能拡張ユニット207は、OS301からPDC編集要求事由を取得し、PDC編集が必要かどうかを判定する。OS301から取得するPDC編集要求事由には、OS301がPDC編集を要求したトリガー情報が含まれているものとする。印刷機能拡張ユニット207は、OS301から取得するPDC編集要求事由が、表1501の「PDC編集が必要な場合」に分類される場合、PDC編集が必要と判定をする。印刷機能拡張ユニット207は、OS301から取得するPDC編集要求事由が、表1501の「PDC編集が不要な場合」に分類される場合、PDC編集が不要と判定する。印刷機能拡張ユニット207はS1601でPDC編集が必要と判定した場合、S1602へと移行しそれ以降の処理を行う。PDC編集が不要と判定した場合は以降の処理をスキップし、本フローを終了する。
上記のように、印刷機能拡張ユニット207がOS301からのPDC編集要求事由を取得し、PDC編集の要否を判定することで、不要なPDC編集がスキップされ、PDC編集における処理負荷を軽減することが可能となる。
<<実施形態3>>
次に実施形態3について説明する。本実施形態も実施形態2と同様、拡張アプリケーション204がPDC編集要否の判定を行い、不要なPDC編集をスキップすることで、PDC編集処理の負荷の軽減を図る構成である。実施形態3では、拡張アプリケーション204がPDC編集の要否判定を行う構成が実施形態2の構成とは異なる。以下で、実施形態3における、拡張アプリケーション204がPDC編集要否判定を行う具体例について、説明する。
PDC編集が必要になる場合とは、例えば実施形態2で記載した4つの場合である。本実施形態では、これらの新規接続または各種情報の更新を、拡張アプリケーション204の共有情報210に格納したキャッシュ情報との差分をとることで検知し、PDC編集の要否判定を行う。
図17示す、データ構造1701はキャッシュ情報のデータ構造を示した図である。ここでは省略のため、印刷データ生成ソフトウェア202のPDC601、印刷装置の能力情報602、拡張アプリケーションがサポートする印刷機能情報一覧603、およびmedia-col-database605を「キャッシュに用いる情報」と呼ぶ。
印刷機能拡張ユニット207が「キャッシュに用いる情報」をキャッシュ情報として共有情報210に格納するためには、印刷キュー特定情報を確認することが必要となる。印刷キュー特定情報とは、「キャッシュに用いる情報」がどの印刷キューに紐づくものであるかを特定する情報である。なお本実施形態では、印刷キューには印刷装置102が紐づいているため、印刷キュー特定情報とは、言い換えれば、「キャッシュに用いる情報」がどの印刷装置102に紐づくものであるかを特定する情報である。本実施形態では、印刷機能拡張ユニット207は、印刷キュー特定情報をOS301から取得できるものとする。印刷機能拡張ユニット207は、OS301から「印刷キュー特定情報」を取得することで、「印刷キュー特定情報」とそれに関する「キャッシュ情報に用いる情報」とを組にして、データ構造1701のようなデータ構造で「キャッシュ情報」を作成する。即ち、「キャッシュ情報」とは、「印刷キュー特定情報」と「キャッシュ情報に用いる情報」とを含む情報のことである。
本実施形態では、印刷機能拡張ユニット207がPDC編集を行う際に、前述したキャッシュ情報を拡張アプリケーション204の共有情報210に格納する。それ以降、OS301からPDC編集要求があった際に、新たに取得する「キャッシュに用いる情報」と共有情報210に格納されているキャッシュ情報との差分をとることで、PDC編集の要否判定を行う。
<実施形態3における印刷機能拡張ユニットによるPDCの編集処理>
図18は実施形態3における印刷機能拡張ユニット207によるPDCの編集処理のうち、主要な処理のフローを示した図である。S1801~S1804は、図11のS1101~S1104と同様である。またS1810~S1814は、S1105~S1109までと同様である。そのため、S1805~S1809以外の処理の説明については省略する。
S1805では、印刷機能拡張ユニット207は、編集対象であるPDCがどの印刷キューに紐づいているかを特定する情報をOS301から取得する。即ち、印刷機能拡張ユニット207は、OS301から印刷キュー特定情報を取得する。また、ここで印刷キューの特定情報を取得することで、印刷機能拡張ユニット207は、前述したキャッシュ情報作成を行うことができる。このキャッシュ情報を用いて印刷機能拡張ユニット207はPDC編集の要否判定が可能となる。
続いてS1806では、印刷機能拡張ユニット207は、S1805でOS301から取得した印刷キューに紐づくキャッシュ情報が、拡張アプリケーション204の共有情報210に格納されているかを判定する。判定結果がYesの場合S1807に進み、Noの場合はS1808に進む。
S1807において、印刷機能拡張ユニット207は作成したキャッシュ情報と印刷キューに紐づくキャッシュ情報との間に差分があるかを判定する。印刷機能拡張ユニットはここでいずれかの情報のうち、一つでも差分があった場合は、Yesと判定しS1809へ進む。一方、差分がない場合はNoと判定し、本フローを終了する。
S1808において、印刷機能拡張ユニット207はキャッシュを新規保存する。即ち、S1805でOS301から取得した印刷キュー特定情報と、S1801~S1804で取得した「キャッシュに用いる情報」とをキャッシュ情報として共有情報210に格納する。その後、印刷機能拡張ユニット207はS1810以降のPDC編集処理を続行する。
S1809において、印刷機能拡張ユニット207は「キャッシュに用いる情報」のうち、差分があると判定された情報に関してキャッシュ情報を更新する。その後、PDC編集処理を続行する。
以上が本実施形態におけるPDC編集処理の方法である。ここで、本実施形態に加え、実施形態2に記載のOS301から取得するPDC編集要求事由を利用することで、さらにPDC編集処理を高速化する例を説明する。実施形態2で説明した通り、拡張アプリケーション204がOS301からPDC編集要求を受け付けた際に、OS301からPDC編集要求事由を取得することで印刷機能拡張ユニット207はPDC編集の要否を判定可能である。
ここで、OS301から取得したPDC編集要求事由が、実施形態3で記載した「キャッシュに用いる情報」のいずれかの情報の更新、であった場合を想定する。この場合、印刷機能拡張ユニット207は、更新がない情報に関しては、共有情報210に格納されたキャッシュ情報を用いることで、当該情報取得の処理をスキップすることができる。以下で具体例について説明する。
拡張アプリケーション204が、OS301からPDC編集要求を受けつけ、その事由が「印刷データ生成ソフトウェア202のPDC601が更新された場合」であった場合を考える。ここで、印刷機能拡張ユニット207は、S1805の処理と同様にOS301から編集対象のPDCに紐づく印刷キュー特定情報を取得する。その後、印刷機能拡張ユニット207は、OS301から取得した印刷キュー特定情報をキーとするキャッシュ情報が共有情報210に格納されているかを判定する。該当キャッシュ情報が存在した場合、印刷機能拡張ユニット207は、印刷データ生成ソフトウェア202のPDC601のみ取得を行い、それ以外の情報についてはキャッシュ情報を参照することが可能である。即ち、S1802、S1803、およびS1804の処理をスキップすることが可能となる。
以上説明したように本実施形態によれば、印刷機能拡張ユニット207はOS301から、編集対象のPDCに紐づく印刷キュー特定情報を取得することで、PDC編集に用いる各種情報のキャッシュを作成することが可能となる。印刷機能拡張ユニット207は作成したキャッシュ情報と新たに取得するPDC編集に用いる各種情報との差分をとることで、PDC編集の要否を判定でき、不要なPDC編集をスキップすることで処理負荷を軽減することができる。また、実施形態2に記載のOS301から取得するPDC編集要求事由も利用することで、さらに処理負荷を軽減することが可能となる。
<<その他の実施形態>>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
102 印刷装置
202 印刷データ生成ソフトウェア
203 PDC
204 拡張アプリケーション
207 印刷機能拡張ユニット

Claims (15)

  1. 情報処理装置で動作可能な印刷データ生成ソフトウェアと関連付けられて機能の拡張を行う拡張アプリケーションのプログラムであって、
    前記情報処理装置のコンピュータを、
    前記印刷データ生成ソフトウェアが生成した印刷機能情報を取得する第一取得手段と、
    印刷装置の能力情報を前記印刷装置から取得する第二取得手段と、
    前記第二取得手段により取得した前記能力情報と、前記拡張アプリケーションがサポートする印刷機能を示すサポート情報を基に、前記第一取得手段により取得した前記印刷機能情報を編集する編集手段と、
    として機能させるためのプログラム。
  2. 前記印刷機能情報は、前記印刷データ生成ソフトウェアが、前記能力情報と、自身がサポートする印刷機能とを基に生成した情報であることを特徴とする請求項1に記載のプログラム。
  3. 前記編集手段は、前記能力情報と前記サポート情報とを比較して、両者が備えており、かつ前記印刷機能情報に備えられていない印刷機能が存在した場合に、前記印刷機能を前記印刷機能情報に追加することを特徴とする請求項1または2に記載のプログラム。
  4. 前記情報処理装置のコンピュータを、印刷装置が印刷可能な印刷機能の組み合わせの情報が記載された印刷設定組み合わせ情報を前記印刷装置から取得する第三取得手段としてさらに機能させ、
    前記編集手段は、前記印刷機能情報が備える印刷機能と前記印刷設定組み合わせ情報とを比較し、前記印刷機能の中で、印刷可能な組み合わせとなっていない印刷機能を前記印刷機能情報から削除することを特徴とする、請求項1乃至3のいずれか一項に記載のプログラム。
  5. 前記印刷設定組み合わせ情報は、用紙サイズ、給紙口、マージン、またはメディアのそれぞれの印刷機能の情報の中で、印刷可能な組み合わせが記載されていることを特徴とする請求項4に記載のプログラム。
  6. 前記拡張アプリケーションは、前記印刷機能情報の編集要求を受け付けることで前記第一取得手段、前記第二取得手段、および前記編集手段を実行することを特徴とする請求項1乃至5のいずれか一項に記載のプログラム。
  7. 前記情報処理装置のコンピュータを、
    前記印刷機能情報の編集要求事由を取得する第四取得手段としてさらに機能させ、
    前記第四取得手段によって取得した前記編集要求事由を基に、前記第一取得手段、前記第二取得手段、および前記編集手段を実行するか判定することを特徴とする請求項1乃至6のいずれか一項に記載のプログラム。
  8. 前記第四取得手段によって取得した前記編集要求事由の内容が、前記印刷データ生成ソフトウェアが新規に前記印刷機能情報を作成する場合、または前記印刷機能情報、前記能力情報、印刷設定組み合わせ情報、もしくはサポート情報が更新された場合、に前記第一取得手段、前記第二取得手段、および前記編集手段を実行することを特徴とする請求項7に記載のプログラム。
  9. 前記情報処理装置のコンピュータを、
    前記印刷機能情報と、前記印刷機能情報がどの印刷キューに紐づくものであるかを特定する情報である印刷キュー特定情報と、を基に第一キャッシュ情報を作成するキャッシュ情報作成手段としてさらに機能させることを特徴とする請求項1乃至8のいずれか一項に記載のプログラム。
  10. 前記印刷キュー特定情報によって特定した印刷キューが第二キャッシュ情報を有し、かつ前記キャッシュ情報作成手段によって作成した前記第一キャッシュ情報との間に差分がある場合は、第二キャッシュ情報を第一キャッシュ情報へ更新した後、前記編集手段を実行することを特徴とする請求項9に記載のプログラム。
  11. 前記印刷キュー特定情報によって特定した印刷キューが第二キャッシュ情報を有さない場合は、前記キャッシュ情報作成手段によって作成した前記第一キャッシュ情報を前記印刷キュー特定情報によって特定した印刷キューのキャッシュ情報として記憶することを特徴とする請求項9に記載のプログラム。
  12. 前記第一キャッシュ情報および前記第二キャッシュ情報は、前記能力情報、前記印刷機能情報、前記サポート情報、印刷設定組み合わせ情報、または前記印刷キュー特定情報を含むことを特徴とする請求項10または11に記載のプログラム。
  13. 前記情報処理装置のコンピュータを、
    前記編集手段によって編集した前記印刷機能情報に基づく印刷設定画面を表示部に表示させる表示制御手段としてさらに機能させることを特徴とする請求項1乃至12のいずれか一項に記載のプログラム。
  14. 印刷データ生成ソフトウェアと関連付けられて機能の拡張を行う拡張アプリケーションを有する情報処理装置であって、
    前記印刷データ生成ソフトウェアが生成した印刷機能情報を取得する第一取得手段と、
    印刷装置の能力情報を前記印刷装置から取得する第二取得手段と、
    前記第二取得手段により取得した前記能力情報と、前記拡張アプリケーションがサポートする印刷機能を示すサポート情報とを基に、前記第一取得手段により取得した前記印刷機能情報を編集する編集手段と、
    を備えることを特徴とする情報処理装置。
  15. 印刷データ生成ソフトウェアと関連付けられて機能の拡張を行う拡張アプリケーションを有する情報処理装置の制御方法であって、
    前記印刷データ生成ソフトウェアが生成した印刷機能情報を取得する第一取得ステップと、
    印刷装置の能力情報を前記印刷装置から取得する第二取得ステップと、
    前記第二取得ステップにより取得した前記能力情報と、前記拡張アプリケーションがサポートする印刷機能を示すサポート情報を基に、前記第一取得ステップにより取得した前記印刷機能情報を編集する編集ステップと、
    を備えることを特徴とする情報処理装置の制御方法。
JP2021148493A 2021-09-13 2021-09-13 情報処理装置、情報処理装置の制御方法およびプログラム Pending JP2023041245A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2021148493A JP2023041245A (ja) 2021-09-13 2021-09-13 情報処理装置、情報処理装置の制御方法およびプログラム
US17/892,267 US11954386B2 (en) 2021-09-13 2022-08-22 Information processing apparatus having enhanced printing functions, controlling method of information processing apparatus, and storage medium
CN202211110098.7A CN115809030A (zh) 2021-09-13 2022-09-13 信息处理设备、信息处理设备的控制方法和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021148493A JP2023041245A (ja) 2021-09-13 2021-09-13 情報処理装置、情報処理装置の制御方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2023041245A true JP2023041245A (ja) 2023-03-24
JP2023041245A5 JP2023041245A5 (ja) 2024-09-27

Family

ID=85479129

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021148493A Pending JP2023041245A (ja) 2021-09-13 2021-09-13 情報処理装置、情報処理装置の制御方法およびプログラム

Country Status (3)

Country Link
US (1) US11954386B2 (ja)
JP (1) JP2023041245A (ja)
CN (1) CN115809030A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023116259A (ja) * 2022-02-09 2023-08-22 キヤノン株式会社 プログラム、情報処理装置および制御方法
JP2024072109A (ja) * 2022-11-15 2024-05-27 キヤノン株式会社 印刷システム、情報処理装置、制御方法、並びにプログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5825565B2 (ja) * 2013-11-07 2015-12-02 コニカミノルタ株式会社 プリンタドライバ及びプリンタドライバの印刷機能の追加方法
JP6914616B2 (ja) * 2016-04-28 2021-08-04 キヤノン株式会社 印刷装置、制御方法、およびプログラム
JP6983614B2 (ja) 2017-10-16 2021-12-17 キヤノン株式会社 プログラム

Also Published As

Publication number Publication date
CN115809030A (zh) 2023-03-17
US20230078388A1 (en) 2023-03-16
US11954386B2 (en) 2024-04-09

Similar Documents

Publication Publication Date Title
JP5704834B2 (ja) 情報処理装置および制御方法およびプログラム
EP3842917B1 (en) Control method and information processing apparatus
JP7528176B2 (ja) 情報処理装置及びプログラム
US11954386B2 (en) Information processing apparatus having enhanced printing functions, controlling method of information processing apparatus, and storage medium
WO2021131981A1 (ja) 情報処理装置、制御方法およびプログラム
US12079524B2 (en) Method of controlling information processing apparatus, editing intermediate data, and converting edited intermediate data into printing data
WO2021131979A1 (ja) 制御方法及び情報処理装置
JP2023034953A (ja) 情報処理装置、情報処理装置の制御方法およびプログラム
JP7542034B2 (ja) 情報処理装置、方法およびアプリケーションプログラム
US12086486B2 (en) Storage medium, information processing apparatus, and control method for providing status notification about a printing apparatus
US20240036775A1 (en) Information processing apparatus and storage medium
JP2024058153A (ja) 情報処理装置、制御方法およびプログラム
JP2024016352A (ja) 情報処理装置、プログラム
JP2024016353A (ja) 情報処理装置、プログラム
JP7085920B2 (ja) 印刷制御プログラム、情報処理装置とその制御方法、およびプログラム
JP2013120507A (ja) 文書処理方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240913

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240913