JP2021108001A - プログラム及び制御方法 - Google Patents

プログラム及び制御方法 Download PDF

Info

Publication number
JP2021108001A
JP2021108001A JP2019239038A JP2019239038A JP2021108001A JP 2021108001 A JP2021108001 A JP 2021108001A JP 2019239038 A JP2019239038 A JP 2019239038A JP 2019239038 A JP2019239038 A JP 2019239038A JP 2021108001 A JP2021108001 A JP 2021108001A
Authority
JP
Japan
Prior art keywords
function
print
information
attribute
specific 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.)
Granted
Application number
JP2019239038A
Other languages
English (en)
Other versions
JP7446815B2 (ja
Inventor
敬二 川嵜
Keiji Kawasaki
敬二 川嵜
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 JP2019239038A priority Critical patent/JP7446815B2/ja
Priority to EP23212778.7A priority patent/EP4321984A3/en
Priority to EP20211112.6A priority patent/EP3842917B1/en
Priority to US17/119,525 priority patent/US11635927B2/en
Priority to CN202011525567.2A priority patent/CN113050897A/zh
Publication of JP2021108001A publication Critical patent/JP2021108001A/ja
Priority to US18/184,272 priority patent/US20230214162A1/en
Priority to JP2023178032A priority patent/JP2023178377A/ja
Application granted granted Critical
Publication of JP7446815B2 publication Critical patent/JP7446815B2/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/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/1275Print workflow management, e.g. defining or changing a workflow, cross publishing
    • 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/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1204Improving or facilitating administration, e.g. print management resulting in reduced user or operator actions, e.g. presetting, automatic actions, using hardware token storing data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/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/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/1237Print job 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
    • 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
    • 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/1244Job translation or job parsing, e.g. page banding
    • G06F3/1247Job translation or job parsing, e.g. page banding by conversion to printer ready format
    • 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

Abstract

【課題】 拡張アプリケーションとしてより良い機能を拡張することを目的とする。【解決手段】 印刷データを生成する印刷データ生成ソフトウェアの機能を拡張するための拡張アプリケーションのプログラムであって、コンピュータに、印刷装置から出力される前記印刷装置の属性データを取得するステップと、印刷機能を示すデータを取得するステップと、特定の機能を示す情報が、前記取得された前記印刷機能を示すデータの中に含まれていない場合、前記取得された属性データに含まれる属性情報に基づいて、前記特定の機能に関連する情報を追加するステップと、を実行させ、前記追加された特定の機能に関連する情報に基づき、前記特定の機能の設定アイテムを含む設定画面が表示される。【選択図】 図3

Description

本発明は、プログラム及び制御方法に関する。特に、拡張アプリケーションの技術に関する。
印刷装置の制御用ソフトウェアとしてホストコンピュータにインストールされたプリンタドライバを利用し、ホストコンピュータに接続された印刷装置に対して印刷指示を行う構成が知られている。ホストコンピュータには、基本ソフトウェアであるオペレーティングシステム(OS)がインストールされており、プリンタドライバはそのOSの規定する仕様に従って構成され、OSから呼び出されて動作する。印刷装置を提供するベンダは、OSの仕様に適合するプリンタドライバを提供することにより、そのOSを用いて印刷装置に印刷を指示する手段を提供することができる。
近年、Windows(登録商標)において、複数のベンダの提供する印刷装置で共通して利用可能な標準的なクラスドライバ(以下、「標準ドライバ」とも呼ぶ)が提供されている。このような標準ドライバは、OSのパッケージの中に同梱されており、ホストコンピュータに任意の印刷装置を接続することにより簡易に利用可能となる。よって、印刷装置に適した機種固有のプリンタドライバを別途インストールする必要が無く、利便性が高い。また、標準ドライバは、接続した印刷装置から取得した情報に基づき生成されたPrintCapabilityに応じて印刷機能を指定可能に構成される。これにより、標準ドライバを利用するユーザは、1つの標準ドライバを利用しているにも関わらず、接続した印刷装置の能力に応じた印刷機能を指定することができる。
標準ドライバには機能拡張用のアプリケーション(以下、「拡張アプリケーション」とも呼ぶ)を関連付けることができる。拡張アプリケーションは、印刷装置を提供するベンダが提供することができる。ベンダはこの拡張アプリケーションを提供することにより、標準ドライバのみでは実現できない機能(拡張機能)を提供することができる。特許文献1には、拡張アプリケーションにより、スタンプ機能等の機能を拡張する技術が開示されている。
特開2019−74906号公報
特許文献1の拡張アプリケーションは、標準ドライバに渡されるスプールファイルを編集することができる。よって、拡張アプリケーションは、スプールファイルを編集し、スタンプを挿入することで、スタンプ機能を実現する。スプールファイルは標準ドライバによって印刷データ(特許文献1では「印刷コマンド」と表現)に変換され、印刷装置に送信される。
しかしながら、標準ドライバの機能を拡張する拡張アプリケーションがより良い機能を提供するためには、さらなる工夫が必要となる。
上述のような課題を解決するため、本発明のプログラムの一態様は、印刷データを生成する印刷データ生成ソフトウェアの機能を拡張するための拡張アプリケーションのプログラムであって、コンピュータに、印刷装置から出力される前記印刷装置の属性データを取得するステップと、印刷機能を示すデータを取得するステップと、特定の機能を示す情報が、前記取得された前記印刷機能を示すデータの中に含まれていない場合、前記取得された属性データに含まれる属性情報に基づいて、前記特定の機能に関連する情報を追加するステップと、を実行させ、前記追加された特定の機能に関連する情報に基づき、前記特定の機能の設定アイテムを含む設定画面が表示される。
本発明の一態様により、拡張アプリケーションとしてより良い機能を提供することが可能となる。
印刷システムのハードウェア構成を示すブロック図。 印刷システムのブロック構成図。 印刷機能拡張ユニットの印刷機能情報の編集処理のフローチャート。 Get−Printer−Attributesのレスポンス例と、Validate−Jobオペレーションのデータ例。 拡張機能リストの例。 PDCの例。 機能マップリストの例。 追加機能リストの例。 PrintCapabilitiesの例。 印刷設定画面拡張ユニットが表示する画面例。 印刷データ編集ユニットの印刷データ編集処理のフローチャート。 印刷機能拡張ユニットの印刷機能情報の編集処理のフローチャート。 PDCの例。
以下、図面を参照して本発明の実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。なお、同一の構成要素には同一の参照番号を付して、説明を省略する。
<<実施形態1>>
<印刷システムのハードウェア構成>
図1は、印刷システムのハードウェア構成を示すブロック図である。本図において、ホストコンピュータ101は、情報処理装置の一例であり、入力インタフェース110、CPU111、ROM112、RAM113、外部記憶装置114、出力インタフェース115、及び入出力インタフェース116を有する。また、入力インタフェース110には、キーボード118、ポインティングデバイス117などの入力デバイスが接続され、出力インタフェース115には、表示部119などの表示デバイスが接続されている。
ROM112には、初期化プログラムが格納され、外部記憶装置114には、アプリケーションプログラム群、オペレーティングシステム(OS)、印刷データ生成ソフトウェア、その他の各種のデータが格納されている。RAM113は、外部記憶装置114にストアされる各種のプログラムの実行の際のワークメモリ等として使用される。
なお、本実施形態では、CPU111が、ROM112に格納されたプログラムの手順に従って処理を行うことによって、ホストコンピュータ101における後述の機能及び後述するフローチャートに係る処理を実行する。デバイスである印刷装置102は、入出力インタフェース116を介して、ホストコンピュータ101と接続されている。ここでは、ホストコンピュータ101と印刷装置102が分かれて構成されているが、これらが一つの情報処理装置として構成されていても良い。なお、印刷装置は、インクを紙面上に吐出することで印刷するインクジェットプリンタを例に説明するが、他の方法(例えば電子写真方式)で印刷が実行されても良い。また、ホストコンピュータ101は、デスクトップパソコンでも、スマートフォンでも、ノートパソコンでも構わない。
<印刷システムの構成>
図2は、印刷システムの構成を模式的に示す図である。ここでは、OSとしてMicrosoft(登録商標)のWindows(登録商標)10を搭載したホストコンピュータ101を用いた印刷システムを前提として説明する。図2(a)は、拡張アプリケーション204が、印刷データ生成ソフトウェア202および印刷装置102と関連付けられていない場合の一般的な構成を示す図である。
描画アプリケーション201は印刷されるコンテンツ(描画データ)を作成するソフトウェアである。例えば、文書作成アプリケーションや表計算アプリケーションが相当する。描画アプリケーション201は、ユーザから印刷要求を受けると、印刷指示をOSに発行する。印刷指示には、印刷データ生成ソフトウェア202及び印刷装置102の動作を指示するための印刷設定情報が含まれる。印刷設定情報はPrintTicket(以下、「PT」)とも呼ばれる。
描画アプリケーション201は、印刷設定情報を出力するために、印刷データ生成ソフトウェア202、OS、もしくは描画アプリケーション201、のうちいずれかが提供する印刷設定画面を表示させる事ができる。印刷設定画面は、印刷データ生成ソフトウェア202から取得する能力情報(印刷設定として設定可能な情報)に従い、設定可能な印刷機能を示す設定アイテム(以下、「コントロールアイテム」とも呼ぶ)と、その設定値を示すコントロールアイテムを含む。能力情報は、PrintCapabilities(以下、「PC」)とも呼ばれる。印刷データ生成ソフトウェア202は、印刷機能情報203に基づき、PCを決定する。印刷機能情報203は、設定可能なすべての印刷機能とその設定値、並びに、設定値同士の排他関係が記載されている印刷機能を示すデータである。印刷機能情報203は、PDC(Print Device Capabilities)とも呼ばれる。印刷機能情報203は、印刷データ生成ソフトウェア202の構成ファイルに含まれ、変更不可能なファイルとして外部記憶装置114に配置される。若しくは、印刷データ生成ソフトウェア202により、印刷機能情報203は動的に生成されることもできる。具体的には、印刷データ生成ソフトウェア202もしくはOSは、印刷装置102から印刷装置の属性データを取得し、取得した属性データ内の属性情報に応じて印刷機能情報203を生成するよう構成することができる。なお、動的に印刷機能情報203が生成される場合、生成された印刷機能情報203は編集可能である。印刷装置102から取得される印刷装置の属性データについては、図4(a)を用いて後述する。
このように構成することで、印刷データ生成ソフトウェア202は、接続された印刷装置102に応じて、それぞれの印刷装置102で利用可能な印刷機能をユーザが指定可能に構成する事ができる。すなわち、異なる機能を持つ印刷装置や、異なるベンダが開発した印刷装置を接続した場合であっても、印刷データ生成ソフトウェア202は、接続した印刷装置に応じて利用可能な印刷機能をユーザが指定可能に構成することができる。なお、ここでは、印刷データ生成ソフトウェア202として、Windows(登録商標)10に搭載されている、IPP Class Driverを利用した構成について説明する。IPP Class Driverは、IPP(Internet Printing Protocol)と呼ばれる標準的な印刷プロトコルの仕様に従って印刷処理を実行するプリンタドライバであり、OSのパッケージの中に同梱されている。IPP Class Driverは、印刷装置102の機種に応じた固有のプリンタドライバではなく、複数の印刷装置で共通して利用可能な標準的なクラスドライバである。また、IPP Class Driverは、接続した印刷装置102でサポートする印刷機能をユーザが指定できるように、接続した印刷装置102の属性データを取得し、その属性データを元に印刷機能情報203を生成する。
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に送信する。なお、印刷データには、紙面上に形成する絵の情報である描画データと、ユーザにより設定された印刷設定情報に基づき生成された印刷設定属性情報とが含まれる。印刷設定属性情報は、印刷設定を指定する属性情報であり、詳細は図4(b)を用いて後述する。
印刷装置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を備える。また、拡張アプリケーション204は、各ユニットから共通してアクセス可能な共有情報209を備える。共有情報209の実態は、外部記憶装置114に保存されたファイル、もしくはRAM113上に格納された情報である。拡張アプリケーション204は、OSが提供するAPI(Application Program Interface)を利用することで、共有情報209への情報の書き込みや読み出しを行う。
拡張アプリケーション204は、各ユニットの処理が終わるたびに動作を終了しても良い。その場合、各ユニットを使う要求を受ける度にOSが拡張アプリケーション204を起動することになる。また、別の形態も考えられる。例えば印刷設定画面拡張ユニット205の処理が終了するとOSは拡張アプリケーション204の動作を終了させるが、印刷設定編集ユニット206の処理が終了してもOSは拡張アプリケーション204を起動させたままにしても良い。
描画アプリケーション201は、ユーザから印刷要求を受けると、印刷指示をOSに発行する。本構成下でも、図2(a)の構成と同様、描画アプリケーション201は、印刷設定画面を表示させることができる。本構成下では、拡張アプリケーション204が提供する印刷設定画面が表示される。具体的には、拡張アプリケーション204が備える印刷設定画面拡張ユニット205が提供する印刷設定画面が表示される。なお、印刷設定画面拡張ユニット205により提供される印刷設定画面が表示されるか否かはユーザの操作に依存する。印刷設定画面拡張ユニット205の詳細は、図10を用いて後述する。
OSは、描画アプリケーション201から出力された印刷指示に基づき中間データを生成して、印刷設定編集ユニット206に渡す。印刷設定編集ユニット206は、生成された中間データに含まれる印刷設定情報(PT)を編集し、編集した印刷設定情報をOSに渡す。なお、印刷設定編集ユニット206は、表示部119に画面を表示することもできるし、表示させないこともできる。印刷設定編集ユニット206は、ユーザの操作に関わらず、表示部119に印刷設定編集ユニット206自身が提供する画面を表示する、しないを決定することができる。したがって、印刷ジョブの度に必ずユーザに指定してもらう必要がある設定や機能は、印刷設定編集ユニット206が表示する画面で指定可能に構成するのが好ましい。このような機能には、例えば個人識別番号(PIN)を利用したセキュアプリントや、FAX送信のための宛先に関する情報(送信先、Fax番号等)等が挙げられる。この例では、印刷設定編集ユニット206は、ユーザによって指定されたPIN情報を印刷設定情報に格納し、OSに渡す。ユーザによって指定されたPIN情報は、各ユニットから共通してアクセス可能な共有情報209に格納しても良い。
OSは、編集された印刷設定情報を含む中間データを、印刷データ生成ソフトウェア202に渡す。印刷データ生成ソフトウェア202は、中間データを印刷装置102が解釈可能な印刷データに変換する。OSは、変換された印刷データを印刷データ編集ユニット208に渡す。さらに、OSは中間データに含まれる印刷設定情報を印刷データ編集ユニット208に渡すように構成しても良い。
印刷データ編集ユニット208は、印刷データ生成ソフトウェア202が生成した印刷データを編集し、編集した印刷データをOSに渡す。例えば、セキュアプリントを例にとると、印刷データ編集ユニット208は、印刷設定編集ユニット206で指定されたPIN情報を、OSから受け取った印刷設定情報、若しくは共有情報209から読み出し、印刷データに含まれる印刷設定属性情報に追加する。
OSは、印刷データ編集ユニット208が編集した印刷データを、印刷装置102に送る。印刷装置102は、印刷データ生成ソフトウェア202から送られた印刷データに基づき紙面への印刷を行う。
また、拡張アプリケーション204は、印刷機能拡張ユニット207を有する。印刷機能拡張ユニット207は、印刷データ生成ソフトウェア202もしくはOSが生成した印刷機能情報203(PDC)を編集することができる。これにより、印刷機能拡張ユニット207は、拡張アプリケーション204が提供する機能の追加、印刷装置102はサポートしているが印刷データ生成ソフトウェア202がサポートしていない機能の追加、印刷機能の設定値同士の排他関係の追加、等を行うことができる。OSは、拡張アプリケーション204が印刷装置102と印刷データ生成ソフトウェア202に最初に関連付けられた時に、印刷機能拡張ユニット207を起動する。さらに、OSは、OS起動時等、それ以外のタイミングで印刷機能拡張ユニット207を起動してもよい。こうすることで、印刷装置102に対して後からオプション装置(例えば、フィニッシャー等)が追加され、印刷に関わる機能が拡張されるようなケースにおいて、印刷機能拡張ユニット207は、拡張機能を検知し、印刷機能情報203に追加することができる。
なお、本実施形態を実現するための拡張アプリケーション204の構成は、前述の機能(ユニット)を全て備えるものに限定されず、機能の一部のみを持つものや、他の機能を有するものでもよい。なお、拡張アプリケーション204は、単に印刷ソフトウェアと呼ばれることもある。以上のように、拡張アプリケーション204は、設定画面を表示する機能(印刷設定画面拡張ユニット205)、印刷データ生成ソフトウェア202に入力される中間データを編集する機能(印刷設定編集ユニット206)、印刷装置に入力される印刷データを編集する機能(印刷データ編集ユニット208)、印刷データ生成ソフトウェアで指定可能な機能を拡張する機能(印刷機能拡張ユニット207)、の少なくとも1つを備えると言える。
<印刷機能拡張ユニットによる印刷機能情報の編集処理>
図3は、本印刷システムにおける印刷機能拡張ユニット207による印刷機能情報の編集処理のうち主要な処理フローを示した図である。以降、印刷機能拡張ユニット207を、各処理の主体として説明することもあるが、実際には、対応するプログラムをCPU111が実行することで、対応する機能が実現されることになる。
図3のフローは、OSが、拡張アプリケーション204が初めて関連付けられたタイミング等で、印刷機能拡張ユニット207を起動することにより開始する。
S301で、印刷機能拡張ユニット207は、印刷装置に対してIPP(Internet Printing Protocol)のGet−Printer−Attributesオペレーションを発行する。このオペレーションにより印刷装置から受け取ったレスポンスはRAM113に保存される。印刷機能拡張ユニット207は、直接IPPのGet−Printer−Attributesオペレーションを発行してもよいし、OSのAPIを利用してOSに発行させてもよい。なお、Get−Printer−Attributesオペレーションでは、要求する属性を指定可能になっている。印刷装置から受け取ったレスポンスは印刷装置の属性を示すデータであり、このレスポンスの例は、図4(a)を用いて後述する。なお、印刷機能拡張ユニット207は、後述する処理で必要となる図4(a)に示す属性のみを要求しても良いし、特に属性を指定せず、全ての属性を要求しても良い。
S302で、印刷機能拡張ユニット207は、Nを1に初期化する。N=1の場合、1つ目の機能である機能1に対する処理を行うことを示す。
S303で、印刷機能拡張ユニット207は、機能Nが拡張機能リストに存在するかを確認する。拡張機能リストの例を、図5を用いて説明する。図5の拡張機能リスト501は、拡張アプリケーション204の構成ファイルの一つとして外部記憶装置114に格納されている。拡張機能リスト501は、拡張アプリケーション204が追加する機能の一覧を示しており、PTにおけるFeature名と、IPPにおけるプリンタ属性の名称の対応が示される。プリンタ属性とは、印刷装置102で指定可能な機能(印刷装置102の能力)を示す属性情報である。なお、拡張機能リスト501のFeature名には、必要に応じて名前空間の情報も含むように構成しても良い。以降の、拡張機能リスト501のFeature名を保存する処理についても、同様である。図5では、拡張機能リスト501に機能1の項目が存在しているため、S303の判定はYesとなる。
次にS304では、印刷機能拡張ユニット207は、拡張機能リスト501における、機能Nの検索Feature名が、PDC(Print Device Capabilities)に存在するか否かを判定する。なお、印刷機能拡張ユニット207はPDCを参照したり、変更したりすることができる。
PDCの一例を図6(a)に示す。図6のPDC601には、サポートしている機能(Feature)の情報や、ある機能における設定値(Option)の情報、また特定の機能同士が同時に選択できないことを示す排他情報が含まれる。情報602は、フチなし印刷機能(PageBorderless)をサポートしていることを示し、情報603は、フチなし印刷機能として、NoneとBorderlessという2つの設定値が指定可能であることを示す。PageBorderlessの前に付加されている、psk:は名前空間であり、PageBorderlessという機能が、誰によってどのような仕様の中で定義されたものであるか、を示す。情報604は、Borderless設定と、NorthAmericaLetterというメディアサイズは、同時に選択できない排他情報を示す。
S304の処理に戻る。図5の拡張機能リスト501の機能1の検索Feature名は、*BorderlessEx*となっているため、印刷機能拡張ユニット207は、PDCにBorderlessExを含むFeature名(機能を示す情報)が存在するかを調べる。*は任意文字列を示す。前述の通り、印刷機能情報203であるPDCは、OS若しくは印刷データ生成ソフトウェア202によって、印刷装置102から取得した情報に応じて動的に生成される場合がある。したがって、ある印刷機能について、どのようなFeature名で追加されているかは、OS若しくは印刷データ生成ソフトウェア202の仕様次第である。印刷機能拡張ユニット207は、前述のように部分一致でFeatureを検索することで、より確実に該当する機能を探索することができる。
S304がYesの場合、機能Nは既にOS若しくは印刷データ生成ソフトウェア202によって、指定可能な機能として印刷機能情報203であるPDCに追加されている事になる。この場合、S305へ進む。一方、PDC601のような内容であった場合、PDC601内にはBorderlessExという名称を含むFeatureは存在しない。よって、このような場合は、S306に進む。
S305では、印刷機能拡張ユニット207は、PDC上で検索されたFeature名を機能マップリストに追加する。機能マップリストの例を、図7を用いて説明する。図7の機能マップリスト701は機能マップリストの例である。機能マップリスト701は、拡張アプリケーション204の各ユニットが読み込み、書き込みできる、共有情報209に格納される。印刷機能拡張ユニット207は、S304の検索で見つかったPDC上のFeature名703と、該当する機能の拡張機能リスト上のFeature名702を対応付けて保存する。これにより、拡張アプリケーション204は、OS若しくは印刷データ生成ソフトウェア202が追加した機能と、後述する処理によって印刷機能拡張ユニット207が追加した機能とが、同一の機能を指示しているという事を判断できる。なお、PDC上のFeature名703は、必要に応じて名前空間も含めて保存するように構成しても良い。
S305の処理の後、印刷機能拡張ユニット207はS312の処理に進み、拡張機能リスト501の次の機能(N=N+1)の処理に進む。
S306では、印刷機能拡張ユニット207は、拡張機能リスト501における機能NのPublicプリンタ属性が、S301でRAM113に保存したGet−Printer−Attributesのレスポンスに含まれるか否かを判定する。Publicプリンタ属性とは、IPPの仕様において標準定義されているプリンタ属性である。
図4(a)にGet−Printer−Attributesのレスポンスを模式的に示した例を示す。Get−Printer−Attributesのレスポンス401において、media−supportedやcij−print−borderless−expandlevelは、プリンタ属性である。つまり、印刷装置102で指定可能な機能(印刷装置102の能力)を示す属性情報である。情報402は、印刷装置102で指定可能なメディアサイズの一覧であり、Letterサイズ(na_letter_8.5x11in)をサポートしていることを示す。情報403は、印刷装置102がとりうる印刷マージンの組み合わせを示している。top、left、right、bottomの何れにも0が含まれていることから、印刷装置102はフチなし印刷機能をサポートしていることを示す。情報404はフチなし印刷時のはみ出し量機能を示しており、level0、level1、level2の3段階から選択可能であることを示す。なお、cijで始まるプリンタ属性は、IPPの仕様nioite標準定義されているPublicプリンタ属性ではなく、印刷装置102を開発するベンダが独自に定義したPrivateプリンタ属性であることを示す。
レスポンス401を元に、OSまたは印刷データ生成ソフトウェア202によって生成されたPDCの例がPDC601である。なお、レスポンス401に含まれるプリンタ属性403はPublicプリンタ属性である。よって、IPPの仕様において標準定義されているため、その機能(フチなし印刷機能)をOSがサポートしていれば、プリンタ属性403の情報に従い、OSもしくは印刷データ生成ソフトウェア202によりPDC601にフチなし印刷機能に関連する情報602が追加される。しかし、Publicプリンタ属性であっても、その機能をOSがサポートしていない場合があり得る。その場合は、その機能をOSや印刷データ生成ソフトウェア202は解釈することができない。よって、PDC601に、そのプリンタ属性に対応する機能は含まれない。また、レスポンス401に含まれるプリンタ属性404の情報は、Privateプリンタ属性である。Privateプリンタ属性はベンダ独自の固有の属性情報であるため、OSや印刷データ生成ソフトウェア202は解釈することができない。よって、この場合も、PDC601にプリンタ属性404に対応する機能は含まれない。印刷機能拡張ユニット207のS306からS311の処理は、このような機能をPDC601に追加するための処理である。
S306の説明に戻る。Get−Printer−Attributesのレスポンス401には、拡張機能リストにおける機能1のPublicプリンタ属性であるprint−borderless−expandlevelは含まれない。したがって、S306の判定はNoとなり、印刷機能拡張ユニット207はS309の処理に進む。
S309で、印刷機能拡張ユニット207は、拡張機能リスト501における機能NのPrivateプリンタ属性がS301でRAM113に保存したGet−Printer−Attributesのレスポンスに含まれるか否かを確認する。Get−Printer−Attributesのレスポンス401には、拡張機能リストにおける機能1のPrivateプリンタ属性であるcij−print−borderless−expandlevelが含まれている(図4の情報404)。したがって、S309の判定はYesとなり、印刷機能拡張ユニット207はS310の処理に進む。
S310では、印刷機能拡張ユニット207は、拡張機能リストにおける機能NのPrivateプリンタ属性の情報に基づき、追加機能リストを更新する。追加機能リストの例を、図8(a)を用いて説明する。図8(a)の追加機能リスト801は、拡張アプリケーション204の各ユニットが読み込み、書き込みできる共有情報209に格納される。印刷機能拡張ユニット207は、拡張機能リストにおける、機能NのFeature名と、Privateプリンタ属性とを関連付けて保存する。ここでは、印刷機能拡張ユニット207は、拡張機能リスト501における機能1のPageBorderlessExpandLevelというFeature名802と、cij−print−borderless−expandlevelというPrivateプリンタ属性名803を関連付けて保存する。さらに、印刷機能拡張ユニット207は、レスポンス401のプリンタ属性cij−print−borderless−expandlevelの設定値、level0、level1、level2を、機能1のプリンタ属性の設定値805として保存する。また、印刷機能拡張ユニット207は、それに対応づけるFeatureのOption804を決定し、機能1のプリンタ属性の設定値を関連付けて保存する。なお、印刷機能拡張ユニット207は、特定のFeatureで指定可能なOptionの組み合わせを事前に情報をとして有しており、それに基づいてOption804を決定する。あるいは、印刷機能拡張ユニット207は、プリンタ属性の設定値805と同じ値を、Option804に設定しても良い。
この処理により、拡張アプリケーション204は、印刷機能拡張ユニット207が拡張した機能(拡張機能)と、その機能が指定されたときにプリンタに通知すべき印刷設定属性情報の対応を参照することができる。
S311では、印刷機能拡張ユニット207は、拡張機能リストにおける機能NのPrivateプリンタ属性の情報に基づき、PDCを更新する。S311の処理で更新したPDCの例を図6(b)のPDC605に示す。印刷機能拡張ユニット207は、追加機能リスト801を参照し、追加するFeatureとOptionを決定し、PDCを更新する。ここでは、印刷機能拡張ユニット207は、PageBorderlessExpandLevelというFeature名802と、その設定値(機能に関連する情報)であるLevel_0、Level_1、Level_2の3つのOption804を、PDCの書式に従ってPDCに追加する。追加される情報の例は情報607に示される。さらに、印刷機能拡張ユニット207は、追加した機能の名前空間情報606をPDCに追記する。なお、既に必要な名前空間がPDCに追加されている場合、印刷機能拡張ユニット207は、名前空間情報606の追記は行わない。この処理により、印刷データ生成ソフトウェア202で指定可能な機能として、フチなしはみ出し量を示すPageBorderlessExpandLevelという機能が追加されたことになる。
S312では、印刷機能拡張ユニット207は、Nに1を加え、S303の処理に戻り、拡張機能リストに機能Nが存在するまで、S303からS312の処理を繰り返す。S303で、拡張リストに機能Nが存在しないと判断したら、印刷機能拡張ユニット207は本フローチャートの処理を終了する。
なお、S306の処理でYesと判断した場合、印刷機能拡張ユニット207は、S307とS308の処理を行う。S307とS308の処理は、S310とS311でPrivateプリンタ属性に基づいて実施した処理を、Publicプリンタ属性に基づいて実施する。具体的には、追加機能リスト801の機能Nのプリンタ属性として、Publicプリンタ属性名であるprint−borderless−expandlevelが格納される。
以上が、印刷機能拡張ユニット207の印刷機能情報編集処理である。この処理により、印刷装置102がサポートする機能を、印刷データ生成ソフトウェア202の機能として拡張することができる。拡張した機能は、後述する図10の印刷設定画面により、ユーザが指定可能となる。また、印刷装置102が、ある特定の機能について異なるプリンタ属性を返却する場合も、同一の機能として拡張することができる。なお、図3のフローでは、Publicプリンタ属性とPrivateプリンタ属性という2種類のプリンタ属性について、同一機能として追加する処理となっているが、必ずしもその2種類に限定されるものではない。それ以外の名称が異なる2種類以上のプリンタ属性について、同一機能として拡張するように適用可能である。また、図3のフローでは、OS若しくは印刷データ生成ソフトウェア202により既に該当する機能がPDCに追加されている場合には、印刷機能拡張ユニット207はその機能を重複してPDCに拡張することもない。すなわち、同一機能として扱う複数の属性については、印刷データ生成ソフトウェアには常に1つの機能として追加される。さらに、その設定値として、接続した印刷装置102で指定可能な設定値が追加されることになる。なお、本フローと同等の仕組みにより、OS若しくは印刷データ生成ソフトウェア202が既に機能を追加しているが、その設定値が不足している場合に、設定値のみを独自に追加するよう構成しても良い。
<PrintCapabilities(PC)の例>
ここで、印刷機能拡張ユニット207が拡張したPDC605に基づき生成されるPrintCapabilities(PC)の例を図9のPC901を用いて説明する。なお、PDCからPCへの変換は、OS若しくは印刷データ生成ソフトウェア202が実施する。もしくは、拡張アプリケーション204が変換するように構成しても良い。PC901には、印刷機能拡張ユニット207がPDC605に追加したFeature607に基づき、PageBorderlessExpandLevelというFeature902が追加される。
<印刷設定画面拡張ユニットの表示する画面例>
次に、生成されたPCに基づき表示される印刷設定画面について図10を用いて説明する。図10の印刷設定画面1000は、印刷設定画面拡張ユニット205がPC901に基づき表示する画面の例である。印刷設定画面拡張ユニット205は、描画アプリケーション201上でユーザが印刷設定画面の表示を指示した場合に、OSから呼び出される。印刷設定画面拡張ユニット205は、OSから取得できるPCに基づき、印刷データ生成ソフトウェア202で指定可能な印刷機能をユーザが指定可能な画面を表示する。
印刷設定画面拡張ユニット205は、PC901中のFeature902に基づき、フチなし印刷時のはみ出し量を指定するためのコントロール1001(設定アイテム)を追加した印刷設定画面を提供する。コントロール1001では、Feature902の3つのOptionであるLevel_0、Level_1、Level_2の何れかを選択することができる。
この印刷設定画面を生成する際、印刷設定画面拡張ユニット205は、共有情報209の中の機能マップリスト701を参照し、関連付けられた2つのFeatureについては、同一のコントロールを追加するよう構成する。例えば、PC901に、PageBorderlessExpandLevelというFeatureが含まれていた場合も、PageBorderlessExLevelというFeatureが含まれていた場合も、同一のコントロール1001を追加する。
このように、印刷設定画面拡張ユニット205は、ある機能について、OSあるいは印刷データ生成ソフトウェア202が追加した場合も、印刷装置が返却するPublicプリンタ属性に基づいて印刷機能拡張ユニット207が追加した場合も、印刷装置が返却するPrivateプリンタ属性に基づいて印刷機能拡張ユニット207が追加した場合も、それらを区別しない。つまり、その機能についてユーザが指定可能な1つのコントロールを印刷設定画面上に構成することができる。さらに、前述の3つの区別をすることができないアプリケーションがPCを直接取得して印刷設定画面を構成する場合においても、本実施形態は適用可能である。つまり描画アプリケーション201は、ある機能が追加されたPCを取得することにより、描画アプリケーション201は、該機能についてユーザが指定可能な1つのコントロールを構成することができる。
<印刷データ編集ユニットの処理フロー>
次に、印刷設定画面においてユーザにより印刷設定が指示された後、印刷データ編集ユニット208により印刷データを編集する処理について説明する。
図11は、本印刷システムにおける印刷データ編集ユニット208の印刷データ編集処理のうち主要な処理フローを示した図である。以降、印刷データ編集ユニット208を、各処理の主体として説明することもあるが、実際には、対応するプログラムをCPU111が実行することで、対応する機能が実現されることになる。
図11のフローは、OSにより印刷データ編集ユニット208が起動することにより開始する。
S1101では、印刷データ生成ソフトウェア202が生成した印刷データを、印刷データ編集ユニット208に渡すと、印刷データ編集ユニット208は、まずOSからPrintTicket(PT)を取得する。このPTは、印刷設定画面拡張ユニット205が生成する情報であり、PCに基づいてユーザが指定した印刷設定を示す印刷設定情報である。PTは、印刷設定編集ユニット206により編集される場合があるが、この場合は、印刷データ編集ユニット208は編集されたPTを取得することができる。なお、印刷データ編集ユニット208は、PTではなく、共有情報209に含まれるPT、及びそれに相当する情報に基づいて以降の処理を実行しても良い。この場合、印刷設定画面拡張ユニット205、若しくは印刷設定編集ユニット206は、PT、及びそれに相当する情報を、共有情報209に格納し、印刷データ編集ユニット208が後で参照できるように構成する。
S1102では、印刷データ編集ユニット208は、Nを1に初期化する。
S1103では、印刷データ編集ユニット208は、機能Nが共有情報209の中の追加機能リスト801に存在するかを判定する。ここでは、追加機能リスト801には、機能1が含まれているため、S1003の判定はYesとなる。機能Nが存在しない場合、印刷データ編集ユニット208は、さらに印刷データに追加すべき機能は無いと判断し、処理を終了する。なお、追加機能リスト801に機能Nが存在しない場合とは、ユーザにより指定されたすべての印刷設定が拡張機能ではなく標準機能であるため、既に印刷データ生成ソフトウェア202により処理済みの場合を示す。
S1103がYesの場合、S1104において、印刷データ編集ユニット208は、機能NのFeature名が、PTに存在するかを判定する。存在しない場合は、S1106の処理に進む。ここでは、機能1のFeature名である、PageBorderlessExpandLevelがPTに含まれていたとする。その場合、S1105へ進む。
S1105では、印刷データ編集ユニット208は、追加機能リストを参照し、PTの該FeatureのOptionに対応するプリンタ属性の設定値を、印刷データ内の印刷設定属性情報(印刷設定を指定する属性情報)に追加する。図4(b)に、IPPにおける印刷データ内の印刷設定属性情報の一例を示す。データ1401は、Validate−Jobオペレーションであり、IPPにおける印刷データにおいて、印刷データの先頭で発行されるオペレーションを示すデータである。Validate−Jobオペレーションを示すデータ1401には、印刷設定属性情報を示すjob−attributes−tag1402が含まれる。ここでは、PrintTicketにおいて、PageBorderlessExpandLevelのOptionとして、Level_1が指定されていたとする。印刷データ編集ユニット208は、共有情報209の中の追加機能リスト801を参照し、プリンタ属性名であるcij−print−borderless−expandlevelの設定値として、Level_1に対応するlevel1という設定値を追加する。追加される情報を情報1403に示す。なお、Validate−Jobや一連のオペレーションの代わりに、Print−Jobオペレーションが利用される場合、Print−Jobオペレーションに情報を追加する。
S1106では、印刷データ編集ユニット208は、Nに1を加え、S1103の処理に戻り、機能Nが存在するまでS1103からS1106の処理を繰り返す。
以上が、印刷データ編集ユニットの印刷データ編集処理フローである。このフローにより、印刷機能拡張ユニット207が拡張した機能(拡張機能)を、ユーザが印刷設定画面において指定した場合に、その指定に応じて、印刷データを編集することができる。よって、印刷装置102に拡張機能の実行を正しく指示することができる。本実施形態の例で言えば、フチなしはみ出し量という機能を印刷装置102に指示するにあたり、印刷装置102がcij−print−borderless−expandlevelという属性をサポートする場合は、印刷データにはその属性情報が追加される。印刷装置102がprint−borderless−expandlevelという属性情報をサポートする場合は、印刷データにはその属性情報が追加される。また、該機能をOSもしくは印刷データ生成ソフトウェア202が追加した場合は、印刷データ生成ソフトウェア202によって、印刷データにその属性情報が追加される。よって、印刷データ編集ユニット208によって重複して追加されることは無い。
以上のように、本実施形態における拡張アプリケーション204によって、印刷装置102がサポートする機能をユーザが指定可能に構成することができる。本実施形態では、印刷装置102から取得する属性データ内の属性情報を元に拡張するため、接続した印刷装置102がある機能をサポートしている場合はその機能が指定可能になる。そして、接続した印刷装置102がある機能をサポートしていない場合は、その機能は追加されることは無い。また、接続する印刷装置102の種類に応じて、同一の機能について異なるプリンタ属性が返却される場合であっても、印刷設定画面には同一のコントロールアイテムが表示される。よって、ユーザはそれらを同一の機能として印刷設定画面において指定することができる。なお、本実施形態に置いては、フチなしはみ出し量機能の拡張を例に説明したが、それ以外の機能にも適用可能である。また、拡張機能リスト501に複数の機能を追加しておけば、拡張アプリケーション204は、複数の機能を追加可能である。
<<実施形態2>>
次に実施形態2について説明する。本実施形態では、拡張アプリケーション204が追加する機能が既に印刷データ生成ソフトウェア202によってサポートされている場合に、その機能の設定値のみを追加するための構成を示す。以下で言及がない構成や処理については、実施形態1と同等であるため、説明を省略する。
図12は、本印刷システムにおける印刷機能拡張ユニット207による印刷機能情報の編集処理のうち主要な処理フローを示した図である。以降、印刷機能拡張ユニット207を、各処理の主体として説明することもあるが、実際には、対応するプログラムをCPU111が実行することで、対応する機能が実現されることになる。
図12のS1201からS1212の処理は、以下で言及する点を除き、図3のS301からS312の処理と同等であるため説明を省略する。一点目の違いとして、本実施形態では、印刷機能拡張ユニット207は、S1205の処理の後に、S1212に進むのではなく、S1204に進む。すなわち、拡張する機能が既に印刷データ生成ソフトウェア202によってサポートされていても(つまりIPPの仕様において標準定義されている標準属性であっても)、S1206移行の拡張処理を続行する。二点目の違いとして、S1207とS1208、及びS1210とS1211の更新処理が図3とは異なる。以下、S1210とS1211の更新処理を例に説明する。
本実施形態における、印刷機能拡張ユニット207が編集する前のPDCの例を図13(a)に示す。PDC1301には、フチなしはみ出し量機能を示すPageBorderlessExLevelというFeature1302が含まれている。このFeature1302がフチなしはみ出し量機能を示すことは、拡張機能リスト501に基づいたS1204の判定処理によって判定済みである。さらに、PDC1301において、Feature1302は、Level_0と、Level_1という2つのOptionをサポートしている。ここで、S1201のGet−Printer−Attributesのレスポンス(印刷装置102から取得される属性データ)は、実施形態1と同様に、図4のレスポンス401の内容であったとする。レスポンス401に含まれる、フチなしはみ出し量機能を示すプリンタ属性であるcij−print−borderless−expandlevel(情報404)は、level0、level1、level2の3つの設定値をサポートしている。すなわち、フチなしはみ出し量機能について、接続されている印刷装置102で指定可能な設定値は3つであるが、印刷データ生成ソフトウェア202で指定可能な設定値は2つしかない、ということになる。
図8(b)の追加機能リスト806は、印刷機能拡張ユニット207がS1210の処理で更新した追加機能リストの一例である。S1210の処理では、印刷機能拡張ユニット207は、PDC1301でサポートされている機能NのOptionと、レスポンス401に含まれる機能Nの設定値を比較し、レスポンス401にのみ含まれる設定値があるかを判定する。印刷機能拡張ユニット207は、追加機能リスト806において、PDC1301に既に存在したOptionに対応するプリンタ属性の設定値をnoneとする。PDC1301に存在しなかったがレスポンス401に含まれる設定値について、その設定値を新たな設定値(情報807)として格納すると共に、対応するOption名を決定し格納する。なお、印刷機能拡張ユニット207は、機能NのFeature名は、PDC1301でサポートされている機能NのFeature名を格納する。
S1211では、印刷機能拡張ユニット207は、PDCを更新する。更新したPDCの例を、図13(b)の1303に示す。印刷機能拡張ユニット207は、機能Nとして既に存在したPageBorderlessExLevelというFeature1305に、Level_2というOption1306を追加する。また、印刷機能拡張ユニット207は、このOptionの名前空間として、名前空間1304を追加しても良い。
以上のように、本実施形態の印刷機能拡張ユニット207は、ある機能が既に印刷データ生成ソフトウェア202によってサポートされている場合に、その機能に対し、不足する設定値のみを拡張する事ができる。なお、印刷機能拡張ユニット207は、S1210とS1211の処理において、機能NがPDCに存在しなかった場合は、S310とS311の処理と同じように、機能そのものを拡張する。また、S1207とS1208は、Publicプリンタ属性の情報に基づいて、S1210とS1211と同等の処理を行う。
本実施形態の印刷データ編集ユニット208は、実施形態1同様、図11に示す印刷データ編集処理を行う。例えば、機能NがPageBorderlessExLevelで、PTにおけるPageBorderlessExLevelのOptionがLevel_1であったとする。本実施形態における追加機能リスト806において、Level_1に対応するプリンタ属性の設定値はnoneとなっている。この場合、印刷データ編集ユニット208は、該当するOptionに対する設定値が既に印刷データ生成ソフトウェア202によって追加されていると判定し、S1105で設定値の追加を行わない。他方、PTにおけるPageBorderlessExLevelのOptionがLevel_2であったとする。追加機能リスト806において、Level_2に対応するプリンタ属性の設定値はlevel2となっている。この場合、印刷データ編集ユニット208は、該当するOptionに対する設定値が印刷データ生成ソフトウェア202によって追加されていないと判定し、印刷データに対して、機能Nの設定値としてlevel2という指定を追加する。
本実施形態の拡張アプリケーション204は、印刷データ生成ソフトウェア202が既にサポートしている機能の、設定値を拡張することができる。例えば、印刷時における用紙種類の指定等、機能としてはIPPの仕様において標準的であるが、その設定値は、印刷装置102の構成によって異なるようなケースにおいて、本実施形態は適用できる。つまり、印刷データ生成ソフトウェア202が既にサポートする機能を残したまま、設定値だけを追加することができる。印刷装置102が取得する属性データの属性情報を元に設定値を追加するため、接続した印刷装置102がある設定値をサポートしている場合はその設定値が指定可能になる。また、接続した印刷装置102がある設定値をサポートしていない場合は、その設定値は追加されることは無い。本実施形態で説明したフチなしはみ出し量を例にとると、接続したデバイスAで3段階のはみ出し量指定が可能な場合は3段階の指定が、接続したデバイスBで5段階のはみ出し量指定が可能な場合は5段階の指定が、可能となる。なお、本実施形態では、フチなしはみ出し量機能と、用紙種類を例に説明したが、印刷装置102がサポートするその他の印刷機能にも適用可能である。また、フローチャートに示される通り、2つ以上の機能を追加することもできるし、そのうち一部の機能について、設定値のみを追加することもできる。
<<実施形態3>>
次に実施形態3について説明する。本実施形態では、実施形態1の処理に一部処理を追加することで、実施形態1では機能拡張できなかった一部のケースにおいても、拡張アプリケーション204で機能を提供できる。以下で言及がない部分については、実施形態1と同等である。
まず、図3の印刷機能拡張ユニットによる印刷機能情報の編集処理について、S309の判定でNoだった場合に、S310とS311で実施したのと同等の処理を実施するよう構成する。この処理により印刷機能拡張ユニット207が作成する機能追加リストは図8(c)の追加機能リスト808のようになる。印刷機能拡張ユニット207は、追加した機能と設定値について、対応するプリンタ属性が無いという事を示す情報809(none)を格納する。この場合、この機能がユーザによって選択されたとしても、印刷装置102はその機能をサポートしていないことになる。
さらに、図11の印刷データ編集ユニット208の印刷データ編集処理において、追加機能リスト中の機能のプリンタ属性に一つでもnoneが含まれる場合、印刷データ編集ユニット208は印刷データの形式を変換する。IPP Class Driverを例にとると、印刷データはIPP形式であるが、前述の条件に該当する場合、印刷装置102はユーザが指定した印刷機能をIPP形式で実行することができない事を示す。このような場合、印刷データ編集ユニット208は、IPP形式の印刷データを、ユーザが指定した印刷機能を利用可能な異なる印刷データに変換する。例えば、拡張アプリケーション204を提供するベンダ独自の印刷データ形式は、通常、印刷装置102が提供する全ての機能を利用可能である。印刷データ編集ユニット208は、例えば、前記のようなベンダ独自の印刷データ形式に変換をする。
以上の構成により、印刷装置102はサポートしているが、印刷データ生成ソフトウェア202の生成する印刷データ形式では指定できないような機能について、拡張アプリケーション204を利用することで指定可能に構成することができる。さらに、実施形態2の構成と組み合わせて、ユーザが指定した印刷機能のある設定値がIPP形式で実行できない場合に、異なる印刷データに変換するように構成しても良い。これにより、印刷装置102はサポートしているが、印刷データ生成ソフトウェア202の生成する印刷データ形式では指定できないような設定値について、拡張アプリケーション204を利用することで指定可能に構成することができる。
<<実施形態4>>
上述した実施形態は、以下の処理を実行することによっても実行される。すなわち、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ(またはCPUまたはMPU)が記録媒体に格納されたプログラムコードを読み出し実行する。これによって、上述した目的を達成することができる。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することとなり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROM、DVDなどを用いることができる。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施例の機能が実現されるだけでない。そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOSなどが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれる。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれてもよい。そして、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行ってもよい。その処理によって前述した実施形態の機能が実現される。
102 印刷装置
119 表示部
201 アプリケーション
202 印刷データ生成ソフトウェア
203 印刷機能情報
204 拡張アプリケーション
205 印刷設定画面拡張ユニット
206 印刷設定編集ユニット
207 印刷機能拡張ユニット
208 印刷データ編集ユニット
209 共有情報

Claims (14)

  1. 印刷データを生成する印刷データ生成ソフトウェアの機能を拡張するための拡張アプリケーションのプログラムであって、
    コンピュータに、
    印刷装置から出力される前記印刷装置の属性データを取得するステップと、
    印刷機能を示すデータを取得するステップと、
    特定の機能を示す情報が、前記取得された前記印刷機能を示すデータの中に含まれていない場合、前記取得された属性データに含まれる属性情報に基づいて、前記特定の機能に関連する情報を追加するステップと、
    を実行させ、
    前記追加された特定の機能に関連する情報に基づき、前記特定の機能の設定アイテムを含む設定画面が表示されることを特徴とするプログラム。
  2. 前記設定画面において、ユーザにより前記特定の機能の設定アイテムが指定された場合、前記属性情報に基づいて前記印刷データが編集されることを特徴とする請求項1に記載のプログラム。
  3. 前記属性情報に基づいて、前記印刷機能を示すデータに前記特定の機能に関連する情報が追加されることにより、前記特定の機能に関連する情報が追加された前記印刷機能を示すデータに基づいて、能力情報が生成され、
    前記生成された能力情報に基づいて、前記設定画面が表示されることを特徴とする請求項1又は2に記載のプログラム。
  4. 前記印刷データ生成ソフトウェアは、IPP(Internet Printing Protocol)ドライバであり、前記印刷データは、前記IPPに基づく形式のデータであることを特徴とする請求項1から3のいずれか1項に記載のプログラム。
  5. 前記属性情報が、前記IPPの標準属性を示す場合であっても、独自に定義された属性を示す場合であっても、前記属性情報に基づいて前記特定の機能に関連する情報が追加されることにより、前記特定の機能の設定アイテムとして、同一の設定アイテムが表示されることを特徴とする請求項4に記載のプログラム。
  6. 前記特定の機能を示す情報が、前記取得された前記印刷機能を示すデータの中に含まれている場合であっても、前記取得された属性データに含まれる属性情報に基づいて、前記特定の機能に関連する情報として、前記特定の機能の設定値に対応する情報を追加することを特徴とする請求項1から5のいずれか1項に記載のプログラム。
  7. 前記印刷機能を示すデータは、PDC(Print Device Capabilities)であることを特徴とする請求項1から6のいずれか1項に記載のプログラム。
  8. 情報処理装置の制御方法であって、
    印刷装置から出力される前記印刷装置の属性データを取得するステップと、
    印刷機能を示すデータを取得するステップと、
    特定の機能を示す情報が、前記取得された前記印刷機能を示すデータの中に含まれていない場合、前記取得された属性データに含まれる属性情報に基づいて、前記特定の機能に関連する情報を追加するステップと、
    を備え、
    前記追加された特定の機能に関連する情報に基づき、前記特定の機能の設定アイテムを含む設定画面が表示されることを特徴とする制御方法。
  9. 前記設定画面において、ユーザにより前記特定の機能の設定アイテムが指定された場合、前記属性情報に基づいて印刷データが編集されることを特徴とする請求項8に記載の制御方法。
  10. 前記属性情報に基づいて、前記印刷機能を示すデータに前記特定の機能に関連する情報が追加されることにより、前記特定の機能に関連する情報が追加された前記印刷機能を示すデータに基づいて、能力情報が生成され、
    前記生成された能力情報に基づいて、前記設定画面が表示されることを特徴とする請求項8又は9に記載の制御方法。
  11. 印刷データ生成ソフトウェアであるIPP(Internet Printing Protocol)ドライバにより、前記IPPに基づく形式の印刷データが生成されることを特徴とする請求項8から10のいずれか1項に記載の制御方法。
  12. 前記属性情報が、前記IPPの標準属性を示す場合であっても、独自に定義された属性を示す場合であっても、前記属性情報に基づいて前記特定の機能に関連する情報が追加されることにより、前記特定の機能の設定アイテムとして、同一の設定アイテムが表示されることを特徴とする請求項11に記載の制御方法。
  13. 前記特定の機能を示す情報が、前記取得された前記印刷機能を示すデータの中に含まれている場合であっても、前記取得された属性データに含まれる属性情報に基づいて、前記特定の機能に関連する情報として、前記特定の機能の設定値に対応する情報を追加することを特徴とする請求項8から12のいずれか1項に記載の制御方法。
  14. 前記印刷機能を示すデータは、PDC(Print Device Capabilities)であることを特徴とする請求項8から13のいずれか1項に記載の制御方法。
JP2019239038A 2019-12-27 2019-12-27 プログラム及び制御方法 Active JP7446815B2 (ja)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP2019239038A JP7446815B2 (ja) 2019-12-27 2019-12-27 プログラム及び制御方法
EP23212778.7A EP4321984A3 (en) 2019-12-27 2020-12-01 Control method and information processing apparatus
EP20211112.6A EP3842917B1 (en) 2019-12-27 2020-12-01 Control method and information processing apparatus
US17/119,525 US11635927B2 (en) 2019-12-27 2020-12-11 Control method and information processing apparatus for displaying information related to a function
CN202011525567.2A CN113050897A (zh) 2019-12-27 2020-12-22 信息处理装置和控制方法
US18/184,272 US20230214162A1 (en) 2019-12-27 2023-03-15 Control method and information processing apparatus
JP2023178032A JP2023178377A (ja) 2019-12-27 2023-10-16 プログラム及び制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019239038A JP7446815B2 (ja) 2019-12-27 2019-12-27 プログラム及び制御方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2023178032A Division JP2023178377A (ja) 2019-12-27 2023-10-16 プログラム及び制御方法

Publications (2)

Publication Number Publication Date
JP2021108001A true JP2021108001A (ja) 2021-07-29
JP7446815B2 JP7446815B2 (ja) 2024-03-11

Family

ID=73694766

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2019239038A Active JP7446815B2 (ja) 2019-12-27 2019-12-27 プログラム及び制御方法
JP2023178032A Pending JP2023178377A (ja) 2019-12-27 2023-10-16 プログラム及び制御方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2023178032A Pending JP2023178377A (ja) 2019-12-27 2023-10-16 プログラム及び制御方法

Country Status (4)

Country Link
US (2) US11635927B2 (ja)
EP (2) EP4321984A3 (ja)
JP (2) JP7446815B2 (ja)
CN (1) CN113050897A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023176579A1 (ja) * 2022-03-16 2023-09-21 ブラザー工業株式会社 サポートプログラム
JP7476262B2 (ja) 2022-08-24 2024-04-30 キヤノン株式会社 情報処理装置、情報処理装置の制御方法ならびにプログラム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002176675A (ja) 2000-12-06 2002-06-21 Seiko Epson Corp データ伝送システム及びその方法
US20090190150A1 (en) * 2008-01-24 2009-07-30 Selvaraj Senthil K On-Demand Print Driver
JP2012174183A (ja) * 2011-02-24 2012-09-10 Canon Inc プリンタドライバプログラム、印刷制御装置および印刷制御装置の制御方法
US9098226B2 (en) * 2012-08-14 2015-08-04 Seiko Epson Corporation ePOS printing over a network
JP5825565B2 (ja) * 2013-11-07 2015-12-02 コニカミノルタ株式会社 プリンタドライバ及びプリンタドライバの印刷機能の追加方法
JP2016058041A (ja) 2014-09-12 2016-04-21 キヤノン株式会社 情報処理装置、プログラム及び制御方法
JP6958100B2 (ja) 2017-04-27 2021-11-02 株式会社リコー 情報処理装置、情報処理システム、情報処理方法、及びプログラム
JP6983614B2 (ja) 2017-10-16 2021-12-17 キヤノン株式会社 プログラム
JP7158871B2 (ja) * 2018-03-15 2022-10-24 キヤノン株式会社 プログラム及び情報処理装置
JP7214358B2 (ja) * 2018-03-29 2023-01-30 キヤノン株式会社 印刷処理システム、および制御方法
JP7293684B2 (ja) 2019-02-01 2023-06-20 ブラザー工業株式会社 サポートプログラム、情報処理装置、および印刷方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023176579A1 (ja) * 2022-03-16 2023-09-21 ブラザー工業株式会社 サポートプログラム
JP7476262B2 (ja) 2022-08-24 2024-04-30 キヤノン株式会社 情報処理装置、情報処理装置の制御方法ならびにプログラム

Also Published As

Publication number Publication date
JP2023178377A (ja) 2023-12-14
US20230214162A1 (en) 2023-07-06
EP4321984A3 (en) 2024-05-15
JP7446815B2 (ja) 2024-03-11
EP3842917B1 (en) 2024-02-14
EP4321984A2 (en) 2024-02-14
US11635927B2 (en) 2023-04-25
CN113050897A (zh) 2021-06-29
EP3842917A1 (en) 2021-06-30
US20210200492A1 (en) 2021-07-01

Similar Documents

Publication Publication Date Title
JP4785579B2 (ja) 情報処理装置および情報処理装置における印刷設定反映方法とプログラム
JP4574344B2 (ja) 情報処理装置及び方法
JP2023178377A (ja) プログラム及び制御方法
US20040049741A1 (en) Print control apparatus and method, computer program, computer-readable storage medium, preview apparatus and method, printer driver, and preview method thereof
US20120140269A1 (en) Information processing device, information processing method, and recording medium
JP2023001176A (ja) 情報処理装置及びプログラム
JP5070101B2 (ja) 情報処理装置及びその制御方法、プリンタドライバプログラム
JP2001038978A (ja) 印刷制御装置及び印刷制御方法
JP2009205694A (ja) 情報処理装置および方法とデバイスドライバ
JP2005165466A (ja) 印刷制御装置、印刷制御方法およびコンピュータプログラム
JP2009211713A (ja) ユーザインタフェース制御装置および方法
JP2009003712A (ja) 印刷システム及び制御方法
JP2007234037A (ja) 情報処理装置及び情報処理方法
JP2007207003A (ja) 情報処理装置、ドライバ設定方法、記憶媒体、プログラム
JP3709696B2 (ja) 印刷システム、プリンタサーバ装置、プリンタサーバの処理方法およびプリンタサーバ処理プログラムが記録された記録媒体
WO2021131979A1 (ja) 制御方法及び情報処理装置
JP2003177907A (ja) 情報処理装置、情報処理システム、印刷制御方法、記憶媒体、及びプログラム
JP3897539B2 (ja) 印刷データ生成方法及びその装置
JP2024016351A (ja) 情報処理装置、プログラム
JP2007148514A (ja) 制御データ変換装置
JP2024018592A (ja) 情報処理装置、方法およびプログラム
JP2009289121A (ja) 情報処理装置、出力装置、出力処理方法、及びプログラム
JP2003050687A (ja) 印刷制御装置、印刷システム、印刷制御方法、コンピュータ読み取り可能な記録媒体、及びコンピュータプログラム
JP2006338166A (ja) 情報処理装置及びその制御方法、プログラム
JP2023041245A (ja) 情報処理装置、情報処理装置の制御方法およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221215

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230731

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230822

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231016

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231121

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231212

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20231213

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240228

R151 Written notification of patent or utility model registration

Ref document number: 7446815

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151