(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-02
(45)【発行日】2024-08-13
(54)【発明の名称】プログラム及び制御方法
(51)【国際特許分類】
G06F 3/12 20060101AFI20240805BHJP
【FI】
G06F3/12 353
G06F3/12 328
G06F3/12 332
G06F3/12 305
(21)【出願番号】P 2023178032
(22)【出願日】2023-10-16
(62)【分割の表示】P 2019239038の分割
【原出願日】2019-12-27
【審査請求日】2023-10-31
【早期審査対象出願】
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100126240
【氏名又は名称】阿部 琢磨
(74)【代理人】
【識別番号】100223941
【氏名又は名称】高橋 佳子
(74)【代理人】
【識別番号】100159695
【氏名又は名称】中辻 七朗
(74)【代理人】
【識別番号】100172476
【氏名又は名称】冨田 一史
(74)【代理人】
【識別番号】100126974
【氏名又は名称】大朋 靖尚
(72)【発明者】
【氏名】川嵜 敬二
【審査官】征矢 崇
(56)【参考文献】
【文献】特開2018-185779(JP,A)
【文献】特開2019-067455(JP,A)
【文献】特開2017-024272(JP,A)
【文献】特開2018-156636(JP,A)
【文献】特開2019-175330(JP,A)
【文献】特開2016-058041(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F3/12
B41J29/00-29/70
(57)【特許請求の範囲】
【請求項1】
複数のベンダが提供する印刷装置で印刷可能な印刷データを生成
し前記印刷データを前記印刷装置に送信するソフトウェアの機能を拡張するアプリケーションプログラムであって、
コンピュータに、
設定項目の情報に、前記ソフトウェアで設定可能な第1の設定値と、前記ソフトウェアで設定できない第2の設定値であって印刷データの出力先となる印刷装置から取得される前記第2の設定値と、を含むようにさせ、
前記設定項目の情報に基
づく能力情報を用いて設定画面
を表示さ
せ、
前記第2の設定値は、前記設定項目の情報に前記第2の設定値を含むようにすることで設定可能となることを特徴とするアプリケーションプログラム。
【請求項2】
複数のベンダが提供する印刷装置で印刷可能な印刷データを生成
し前記印刷データを前記印刷装置に送信するソフトウェアの機能を拡張するアプリケーションプログラムであって、
コンピュータに、
設定項目の情報に、前記ソフトウェアで設定可能な第1の設定項目と、前記ソフトウェアで設定できない第2の設定項目であって印刷データの出力先となる印刷装置から取得される前記第2の設定項目と、を含むようにさせ、
前記設定項目の情報に基
づく能力情報を用いて設定画面
を表示さ
せ、
前記第2の設定項目は、前記設定項目の情報に前記第2の設定項目を含むようにすることで設定可能となることを特徴とするアプリケーションプログラム。
【請求項3】
前記設定項目は、印刷のための設定項目と後処理のための設定項目の少なくとも一方を含むことを特徴とする、請求項1または請求項2に記載のアプリケーションプログラム。
【請求項4】
前記印刷のための設定項目は、フチなし印刷の設定項目とメディアサイズの設定項目の少なくとも一方を含むことを特徴とする、請求項1または2に記載のアプリケーションプログラム。
【請求項5】
同一の設定項目に分類される、前記第1の設定値と前記第2の設定値が、1つの設定項目の設定値として前記設定画面に表示されることを特徴とする、請求項1に記載のアプリケーションプログラム。
【請求項6】
同一の設定項目に分類される、前記第1の設定項目と前記第2の設定項目が、1つの設定項目として前記設定画面に表示されることを特徴とする、請求項2に記載のアプリケーションプログラム。
【請求項7】
前記設定項目の情報は、PDC(Print Device Capabilities)であることを特徴とする、請求項1または2に記載のアプリケーションプログラム。
【請求項8】
前記能力情報は、PC(PrintCapabilities)であることを特徴とする、請求項1または2に記載のアプリケーションプログラム。
【請求項9】
前記第2の設定値は、IPP(Internet Printing Protocol)のGet-Printer-Attributesオペレーションにより前記印刷データの出力先となる印刷装置から取得されることを特徴とする、請求項1に記載のアプリケーションプログラム。
【請求項10】
前記第2の設定項目は、IPP(Internet Printing Protocol)のGet-Printer-Attributesオペレーションにより前記印刷データの出力先となる印刷装置から取得されることを特徴とする、請求項2に記載のアプリケーションプログラム。
【請求項11】
前記第1の設定値は前記印刷データの出力先となる印刷装置から取得されることを特徴とする請求項1に記載のアプリケーションプログラム。
【請求項12】
前記第1の設定項目は前記印刷データの出力先となる印刷装置から取得されることを特徴とする請求項2に記載のアプリケーションプログラム。
【請求項13】
前記コンピュータに、さらに、XPS形式の中間データを編集させ、
前記中間データは、前記ソフトウェアにより
前記印刷データに変換されることを特徴とする請求項1または2に記載のアプリケーションプログラム。
【請求項14】
前記ソフトウェア
は、
前記第2の設定値を含まない状態の前記設定項目の情報に基づいて能力情報
を生成
し、
当該能力情報を用いて設定画面
を提供
可能であることを特徴とする請求項
1に記載のアプリケーションプログラム。
【請求項15】
前記ソフトウェアは、前記第2の設定項目を含まない状態の設定項目の情報に基づいて能力情報を生成し、当該能力情報を用いて設定画面を提供可能であることを特徴とする請求項2に記載のアプリケーションプログラム。
【請求項16】
複数のベンダが提供する印刷装置で印刷可能な印刷データを生成
し前記印刷データを前記印刷装置に送信するソフトウェアと、前記ソフトウェアの機能を拡張するアプリケーションプログラムと、を有し、前記印刷装置と通信可能な情報処理装置の制御方法であって、
前記アプリケーションプログラムにより、
設定項目の情報に、前記ソフトウェアで設定可能な第1の設定値と、前記ソフトウェアで設定できない第2の設定値であって印刷データの出力先となる印刷装置から取得される前記第2の設定値と、を含むように
し、
前記設定項目の情報に基づ
く能力情報を用いて設定画面
を表示
し、
前記第2の設定値は、前記設定項目の情報に前記第2の設定値を含むようにすることで設定可能となることを特徴とする情報処理装置の制御方法。
【請求項17】
複数のベンダが提供する印刷装置で印刷可能な印刷データを生成
し前記印刷データを前記印刷装置に送信するソフトウェ
アの機能を拡張するアプリケーションプログラ
ムを有し、前記印刷装置と通信可能な情報処理装置の制御方法であって、
前記アプリケーションプログラムにより、
設定項目の情報に、前記ソフトウェアで設定可能な第1の設定項目と、前記ソフトウェアで設定できない第2の設定項目であって印刷データの出力先となる印刷装置から取得される前記第2の設定項目と、を含むように
し、
前記設定項目の情報に基づ
く能力情報を用いて設定画面
を表示
し、
前記第2の設定項目は、前記設定項目の情報に前記第2の設定項目を含むようにすることで設定可能となることを特徴とする情報処理装置の制御方法。
【請求項18】
前記設定項目は、印刷のための設定項目と後処理のための設定項目の少なくとも一方を含むことを特徴とする、請求項1
6または1
7に記載の制御方法。
【請求項19】
前記印刷のための設定項目は、フチなし印刷の設定項目とメディアサイズの設定項目の少なくとも一方を含むことを特徴とする、請求項1
6または1
7に記載の制御方法。
【請求項20】
同一の設定項目に分類される、前記第1の設定値と前記第2の設定値が、1つの設定項目の設定値として前記設定画面に表示されることを特徴とする、請求項1
6に記載の制御方法。
【請求項21】
同一の設定項目に分類される、前記第1の設定項目と前記第2の設定項目が、1つの設定項目として前記設定画面に表示されることを特徴とする、請求項1
7に記載の制御方法。
【請求項22】
前記設定項目の情報は、PDC(Print Device Capabilities)であることを特徴とする、請求項1
6または1
7に記載の制御方法。
【請求項23】
前記能力情報は、PC(PrintCapabilities)であることを特徴とする、請求項1
6または1
7に記載の制御方法。
【請求項24】
前記第2の設定値は、IPP(Internet Printing Protocol)のGet-Printer-Attributesオペレーションにより前記印刷データの出力先となる印刷装置から取得されることを特徴とする、請求項1
6に記載の制御方法。
【請求項25】
前記第2の設定項目は、IPP(Internet Printing Protocol)のGet-Printer-Attributesオペレーションにより前記印刷データの出力先となる印刷装置から取得されることを特徴とする、請求項1
7に記載の制御方法。
【請求項26】
前記第1の設定値は前記印刷データの出力先となる印刷装置から取得されることを特徴とする請求項1
6に記載の制御方法。
【請求項27】
前記第1の設定項目は前記印刷データの出力先となる印刷装置から取得されることを特徴とする請求項1
7に記載の制御方法。
【請求項28】
前記アプリケーションプログラムによりXPS形式の中間データを編集させ、
前記中間データは、前記ソフトウェアにより
前記印刷データに変換されることを特徴とする請求項1
6または1
7に記載の制御方法。
【請求項29】
前記ソフトウェア
は、前記
第2の設定値を含まない状態の設定項目の情報に基づいて能力情報
を生成
し、
当該能力情報を用いて設定画面
を提供
可能であることを特徴とする請求
項16に記載の
制御方法。
【請求項30】
前記ソフトウェアは、前記第2の設定項目を含まない状態の設定項目の情報に基づいて能力情報を生成し、当該能力情報を用いて設定画面を提供可能であることを特徴とする請求項17に記載の制御方法。
【請求項31】
印刷装置と通信可能な情報処理装置であって、
複数のベンダが提供する印刷装置で印刷可能な印刷データを生成
し前記印刷データを前記印刷装置に送信するソフトウェアと、前記ソフトウェアの機能を拡張するアプリケーションプログラムと、
を備え、前記アプリケーションプログラムにより、
設定項目の情報に、前記ソフトウェアで設定可能な第1の設定値と、前記ソフトウェアで設定できない第2の設定値であって印刷データの出力先となる印刷装置から取得される前記第2の設定値と、を含むように
し、
前記設定項目の情報に基
づく能力情報を用いて設定画面を表示
し、
前記第2の設定値は、前記設定項目の情報に前記第2の設定値を含むようにすることで設定可能となることを特徴とする情報処理装置。
【請求項32】
印刷装置と通信可能な情報処理装置であって、
複数のベンダが提供する印刷装置で印刷可能な印刷データを生成
し前記印刷データを前記印刷装置に送信するソフトウェアと、前記ソフトウェアの機能を拡張するアプリケーションプログラムと、
を備え、前記アプリケーションプログラムにより、
設定項目の情報に、前記ソフトウェアで設定可能な第1の設定項目と、前記ソフトウェアで設定できない第2の設定項目であって印刷データの出力先となる印刷装置から取得される前記第2の設定項目と、を含むように
し、
前記設定項目の情報に基
づく能力情報を用いて設定画面を表示
し、
前記第2の設定項目は、前記設定項目の情報に前記第2の設定項目を含むようにすることで設定可能となることを特徴とする情報処理装置。
【請求項33】
複数のベンダが提供する印刷装置で印刷可能な印刷データを生成
し前記印刷データを前記印刷装置に送信する印刷データ生成ソフトウェアの機能を拡張する拡張アプリケーションプログラムであって、
前記印刷データ生成ソフトウェアはOSに含まれているものであって、
コンピュータに、
印刷機能情報に、前記印刷データ生成ソフトウェアで設定可能な第1の設定値と、前記印刷データ生成ソフトウェアで設定できない第2の設定値であって印刷データの出力先となる印刷装置から取得される前記第2の設定値と、を含むようにさせ、
前記印刷機能情報に基
づく能力情報を用いて設定画面
を表示さ
せ、
前記第2の設定値は、前記印刷機能情報の情報に前記第2の設定値を含むようにすることで設定可能となることを特徴とする拡張アプリケーションプログラム。
【請求項34】
複数のベンダが提供する印刷装置で印刷可能な印刷データを生成
し前記印刷データを前記印刷装置に送信する印刷データ生成ソフトウェアの機能を拡張する拡張アプリケーションプログラムであって、
前記印刷データ生成ソフトウェアはOSに含まれているものであって、
コンピュータに、
印刷機能情報に、前記印刷データ生成ソフトウェアで設定可能な第1の設定項目と、前記印刷データ生成ソフトウェアで設定できない第2の設定項目であって印刷データの出力先となる印刷装置から取得される前記第2の設定項目と、を含むようにさせ、
前記印刷機能情報に基
づく能力情報を用いて設定画面
を表示さ
せ、
前記第2の設定項目は、前記印刷機能情報の情報に前記第2の設定項目を含むようにすることで設定可能となることを特徴とする拡張アプリケーションプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム及び制御方法に関する。特に、拡張アプリケーションの技術に関する。
【背景技術】
【0002】
印刷装置の制御用ソフトウェアとしてホストコンピュータにインストールされたプリンタドライバを利用し、ホストコンピュータに接続された印刷装置に対して印刷指示を行う構成が知られている。ホストコンピュータには、基本ソフトウェアであるオペレーティングシステム(OS)がインストールされており、プリンタドライバはそのOSの規定する仕様に従って構成され、OSから呼び出されて動作する。印刷装置を提供するベンダは、OSの仕様に適合するプリンタドライバを提供することにより、そのOSを用いて印刷装置に印刷を指示する手段を提供することができる。
【0003】
近年、Windows(登録商標)において、複数のベンダの提供する印刷装置で共通して利用可能な標準的なクラスドライバ(以下、「標準ドライバ」とも呼ぶ)が提供されている。このような標準ドライバは、OSのパッケージの中に同梱されており、ホストコンピュータに任意の印刷装置を接続することにより簡易に利用可能となる。よって、印刷装置に適した機種固有のプリンタドライバを別途インストールする必要が無く、利便性が高い。また、標準ドライバは、接続した印刷装置から取得した情報に基づき生成されたPrintCapabilityに応じて印刷機能を指定可能に構成される。これにより、標準ドライバを利用するユーザは、1つの標準ドライバを利用しているにも関わらず、接続した印刷装置の能力に応じた印刷機能を指定することができる。
【0004】
標準ドライバには機能拡張用のアプリケーション(以下、「拡張アプリケーション」とも呼ぶ)を関連付けることができる。拡張アプリケーションは、印刷装置を提供するベンダが提供することができる。ベンダはこの拡張アプリケーションを提供することにより、標準ドライバのみでは実現できない機能(拡張機能)を提供することができる。特許文献1には、拡張アプリケーションにより、スタンプ機能等の機能を拡張する技術が開示されている。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1の拡張アプリケーションは、標準ドライバに渡されるスプールファイルを編集することができる。よって、拡張アプリケーションは、スプールファイルを編集し、スタンプを挿入することで、スタンプ機能を実現する。スプールファイルは標準ドライバによって印刷データ(特許文献1では「印刷コマンド」と表現)に変換され、印刷装置に送信される。
【0007】
しかしながら、標準ドライバの機能を拡張する拡張アプリケーションがより良い機能を提供するためには、さらなる工夫が必要となる。
【課題を解決するための手段】
【0008】
上述のような課題を解決するため、本発明のプログラムの一態様は、複数のベンダが提供する印刷装置で印刷可能な印刷データを生成し前記印刷データを前記印刷装置に送信するソフトウェアの機能を拡張するアプリケーションのプログラムであって、コンピュータに、設定項目の情報に、前記ソフトウェアで設定可能な第1の設定値と、前記ソフトウェアで設定できない第2の設定値であって印刷データの出力先となる印刷装置から取得される前記第2の設定値と、を含むようにさせ、前記設定項目の情報に基づく能力情報を用いて設定画面を表示させ、前記第2の設定値は、前記設定項目の情報に前記第2の設定値を含むようにすることで設定可能となることを特徴とする。
【発明の効果】
【0009】
本発明の一態様により、拡張アプリケーションとしてより良い機能を提供することが可能となる。
【図面の簡単な説明】
【0010】
【
図1】印刷システムのハードウェア構成を示すブロック図。
【
図3】印刷機能拡張ユニットの印刷機能情報の編集処理のフローチャート。
【
図4】Get-Printer-Attributesのレスポンス例と、Validate-Jobオペレーションのデータ例。
【
図10】印刷設定画面拡張ユニットが表示する画面例。
【
図11】印刷データ編集ユニットの印刷データ編集処理のフローチャート。
【
図12】印刷機能拡張ユニットの印刷機能情報の編集処理のフローチャート。
【発明を実施するための形態】
【0011】
以下、図面を参照して本発明の実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。なお、同一の構成要素には同一の参照番号を付して、説明を省略する。
【0012】
<<実施形態1>>
<印刷システムのハードウェア構成>
図1は、印刷システムのハードウェア構成を示すブロック図である。本図において、ホストコンピュータ101は、情報処理装置の一例であり、入力インタフェース110、CPU111、ROM112、RAM113、外部記憶装置114、出力インタフェース115、及び入出力インタフェース116を有する。また、入力インタフェース110には、キーボード118、ポインティングデバイス117などの入力デバイスが接続され、出力インタフェース115には、表示部119などの表示デバイスが接続されている。
【0013】
ROM112には、初期化プログラムが格納され、外部記憶装置114には、アプリケーションプログラム群、オペレーティングシステム(OS)、印刷データ生成ソフトウェア、その他の各種のデータが格納されている。RAM113は、外部記憶装置114にストアされる各種のプログラムの実行の際のワークメモリ等として使用される。
【0014】
なお、本実施形態では、CPU111が、ROM112に格納されたプログラムの手順に従って処理を行うことによって、ホストコンピュータ101における後述の機能及び後述するフローチャートに係る処理を実行する。デバイスである印刷装置102は、入出力インタフェース116を介して、ホストコンピュータ101と接続されている。ここでは、ホストコンピュータ101と印刷装置102が分かれて構成されているが、これらが一つの情報処理装置として構成されていても良い。なお、印刷装置は、インクを紙面上に吐出することで印刷するインクジェットプリンタを例に説明するが、他の方法(例えば電子写真方式)で印刷が実行されても良い。また、ホストコンピュータ101は、デスクトップパソコンでも、スマートフォンでも、ノートパソコンでも構わない。
【0015】
<印刷システムの構成>
図2は、印刷システムの構成を模式的に示す図である。ここでは、OSとしてMicrosoft(登録商標)のWindows(登録商標)10を搭載したホストコンピュータ101を用いた印刷システムを前提として説明する。
図2(a)は、拡張アプリケーション204が、印刷データ生成ソフトウェア202および印刷装置102と関連付けられていない場合の一般的な構成を示す図である。
【0016】
描画アプリケーション201は印刷されるコンテンツ(描画データ)を作成するソフトウェアである。例えば、文書作成アプリケーションや表計算アプリケーションが相当する。描画アプリケーション201は、ユーザから印刷要求を受けると、印刷指示をOSに発行する。印刷指示には、印刷データ生成ソフトウェア202及び印刷装置102の動作を指示するための印刷設定情報が含まれる。印刷設定情報はPrintTicket(以下、「PT」)とも呼ばれる。
【0017】
描画アプリケーション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)を用いて後述する。
【0018】
このように構成することで、印刷データ生成ソフトウェア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を生成する。
【0019】
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に渡す。なお、中間データには、紙面上に形成する絵の情報である描画データと、ユーザにより設定された印刷設定情報と、が含まれる。
【0020】
印刷データ生成ソフトウェア202は、取得した中間データを印刷装置102が解釈可能な印刷データに変換し、印刷装置102に送信する。なお、印刷データには、紙面上に形成する絵の情報である描画データと、ユーザにより設定された印刷設定情報に基づき生成された印刷設定属性情報とが含まれる。印刷設定属性情報は、印刷設定を指定する属性情報であり、詳細は
図4(b)を用いて後述する。
【0021】
印刷装置102は、印刷データ生成ソフトウェア202から送られた印刷データに基づき紙面への印刷を行う。この時、印刷装置102は、印刷データに含まれる印刷設定属性情報に従った動作で、印刷データに含まれる描画データを紙面上に形成する。印刷設定属性情報には、印刷品位(画質優先、速度優先、等)や、両面印刷等を指定するための属性情報とその設定値が含まれている。例えば、印刷設定属性情報に、両面印刷を指定する属性情報が含まれる場合、印刷装置102は、両面印刷を実行する。
【0022】
図2(b)は、拡張アプリケーション204が、印刷データ生成ソフトウェア202および印刷装置102と関連付けられている場合の構成を示す図である。なお、以下において特に言及しない構成や処理については、
図2(a)と同等の構成となる。
【0023】
拡張アプリケーション204は、印刷データ生成ソフトウェア202の機能を拡張するためのソフトウェアであり、OSに予め含まれていない(同梱されていない)ソフトウェアである。そのためユーザがホストコンピュータ101を操作して拡張アプリケーション204を、インターネットを介してサーバからダウンロードして、インストールする必要がある。もしくは、ホストコンピュータ101に印刷装置102が接続されたことに基づき、自動的にインストールされてもよい。具体的にはホストコンピュータ101に印刷装置102が接続された場合、OSは印刷装置102からデバイス識別情報を取得する。OSは、取得されたデバイス識別情報に対応する拡張アプリケーション204を、インターネットを介してサーバからダウンロードし、インストールしても良い。つまり、印刷データ生成ソフトウェア202と、拡張アプリケーション204は別ファイルとしてホストコンピュータ101に保持される。
【0024】
なお、印刷データ生成ソフトウェア202および拡張アプリケーション204は、更新されてバージョンアップされることもあるが、この更新処理も別々のタイミングで行われる。つまり、ホストコンピュータ101により印刷データ生成ソフトウェア202が取得されるタイミングと、拡張アプリケーション204が取得されるタイミングは異なる。また、ホストコンピュータ101により印刷データ生成ソフトウェア202が取得されるトリガーと、拡張アプリケーション204が取得されるトリガーも異なる。なお、拡張アプリケーション204がインストールされた場合、OSが、拡張アプリケーション204を、印刷データ生成ソフトウェア202および印刷装置102に関連付ける。
【0025】
本実施形態で説明する拡張アプリケーション204は、印刷設定画面拡張ユニット205と印刷設定編集ユニット206と印刷機能拡張ユニット207と印刷データ編集ユニット208を備える。また、拡張アプリケーション204は、各ユニットから共通してアクセス可能な共有情報209を備える。共有情報209の実態は、外部記憶装置114に保存されたファイル、もしくはRAM113上に格納された情報である。拡張アプリケーション204は、OSが提供するAPI(Application Program Interface)を利用することで、共有情報209への情報の書き込みや読み出しを行う。
【0026】
拡張アプリケーション204は、各ユニットの処理が終わるたびに動作を終了しても良い。その場合、各ユニットを使う要求を受ける度にOSが拡張アプリケーション204を起動することになる。また、別の形態も考えられる。例えば印刷設定画面拡張ユニット205の処理が終了するとOSは拡張アプリケーション204の動作を終了させるが、印刷設定編集ユニット206の処理が終了してもOSは拡張アプリケーション204を起動させたままにしても良い。
【0027】
描画アプリケーション201は、ユーザから印刷要求を受けると、印刷指示をOSに発行する。本構成下でも、
図2(a)の構成と同様、描画アプリケーション201は、印刷設定画面を表示させることができる。本構成下では、拡張アプリケーション204が提供する印刷設定画面が表示される。具体的には、拡張アプリケーション204が備える印刷設定画面拡張ユニット205が提供する印刷設定画面が表示される。なお、印刷設定画面拡張ユニット205により提供される印刷設定画面が表示されるか否かはユーザの操作に依存する。印刷設定画面拡張ユニット205の詳細は、
図10を用いて後述する。
【0028】
OSは、描画アプリケーション201から出力された印刷指示に基づき中間データを生成して、印刷設定編集ユニット206に渡す。印刷設定編集ユニット206は、生成された中間データに含まれる印刷設定情報(PT)を編集し、編集した印刷設定情報をOSに渡す。なお、印刷設定編集ユニット206は、表示部119に画面を表示することもできるし、表示させないこともできる。印刷設定編集ユニット206は、ユーザの操作に関わらず、表示部119に印刷設定編集ユニット206自身が提供する画面を表示する、しないを決定することができる。したがって、印刷ジョブの度に必ずユーザに指定してもらう必要がある設定や機能は、印刷設定編集ユニット206が表示する画面で指定可能に構成するのが好ましい。このような機能には、例えば個人識別番号(PIN)を利用したセキュアプリントや、FAX送信のための宛先に関する情報(送信先、Fax番号等)等が挙げられる。この例では、印刷設定編集ユニット206は、ユーザによって指定されたPIN情報を印刷設定情報に格納し、OSに渡す。ユーザによって指定されたPIN情報は、各ユニットから共通してアクセス可能な共有情報209に格納しても良い。
【0029】
OSは、編集された印刷設定情報を含む中間データを、印刷データ生成ソフトウェア202に渡す。印刷データ生成ソフトウェア202は、中間データを印刷装置102が解釈可能な印刷データに変換する。OSは、変換された印刷データを印刷データ編集ユニット208に渡す。さらに、OSは中間データに含まれる印刷設定情報を印刷データ編集ユニット208に渡すように構成しても良い。
【0030】
印刷データ編集ユニット208は、印刷データ生成ソフトウェア202が生成した印刷データを編集し、編集した印刷データをOSに渡す。例えば、セキュアプリントを例にとると、印刷データ編集ユニット208は、印刷設定編集ユニット206で指定されたPIN情報を、OSから受け取った印刷設定情報、若しくは共有情報209から読み出し、印刷データに含まれる印刷設定属性情報に追加する。
【0031】
OSは、印刷データ編集ユニット208が編集した印刷データを、印刷装置102に送る。印刷装置102は、印刷データ生成ソフトウェア202から送られた印刷データに基づき紙面への印刷を行う。
【0032】
また、拡張アプリケーション204は、印刷機能拡張ユニット207を有する。印刷機能拡張ユニット207は、印刷データ生成ソフトウェア202もしくはOSが生成した印刷機能情報203(PDC)を編集することができる。これにより、印刷機能拡張ユニット207は、拡張アプリケーション204が提供する機能の追加、印刷装置102はサポートしているが印刷データ生成ソフトウェア202がサポートしていない機能の追加、印刷機能の設定値同士の排他関係の追加、等を行うことができる。OSは、拡張アプリケーション204が印刷装置102と印刷データ生成ソフトウェア202に最初に関連付けられた時に、印刷機能拡張ユニット207を起動する。さらに、OSは、OS起動時等、それ以外のタイミングで印刷機能拡張ユニット207を起動してもよい。こうすることで、印刷装置102に対して後からオプション装置(例えば、フィニッシャー等)が追加され、印刷に関わる機能が拡張されるようなケースにおいて、印刷機能拡張ユニット207は、拡張機能を検知し、印刷機能情報203に追加することができる。
【0033】
なお、本実施形態を実現するための拡張アプリケーション204の構成は、前述の機能(ユニット)を全て備えるものに限定されず、機能の一部のみを持つものや、他の機能を有するものでもよい。なお、拡張アプリケーション204は、単に印刷ソフトウェアと呼ばれることもある。以上のように、拡張アプリケーション204は、設定画面を表示する機能(印刷設定画面拡張ユニット205)、印刷データ生成ソフトウェア202に入力される中間データを編集する機能(印刷設定編集ユニット206)、印刷装置に入力される印刷データを編集する機能(印刷データ編集ユニット208)、印刷データ生成ソフトウェアで指定可能な機能を拡張する機能(印刷機能拡張ユニット207)、の少なくとも1つを備えると言える。
【0034】
<印刷機能拡張ユニットによる印刷機能情報の編集処理>
図3は、本印刷システムにおける印刷機能拡張ユニット207による印刷機能情報の編集処理のうち主要な処理フローを示した図である。以降、印刷機能拡張ユニット207を、各処理の主体として説明することもあるが、実際には、対応するプログラムをCPU111が実行することで、対応する機能が実現されることになる。
【0035】
図3のフローは、OSが、拡張アプリケーション204が初めて関連付けられたタイミング等で、印刷機能拡張ユニット207を起動することにより開始する。
【0036】
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)に示す属性のみを要求しても良いし、特に属性を指定せず、全ての属性を要求しても良い。
【0037】
S302で、印刷機能拡張ユニット207は、Nを1に初期化する。N=1の場合、1つ目の機能である機能1に対する処理を行うことを示す。
【0038】
S303で、印刷機能拡張ユニット207は、機能Nが拡張機能リストに存在するかを確認する。拡張機能リストの例を、
図5を用いて説明する。
図5の拡張機能リスト501は、拡張アプリケーション204の構成ファイルの一つとして外部記憶装置114に格納されている。拡張機能リスト501は、拡張アプリケーション204が追加する機能の一覧を示しており、PTにおけるFeature名と、IPPにおけるプリンタ属性の名称の対応が示される。プリンタ属性とは、印刷装置102で指定可能な機能(印刷装置102の能力)を示す属性情報である。なお、拡張機能リスト501のFeature名には、必要に応じて名前空間の情報も含むように構成しても良い。以降の、拡張機能リスト501のFeature名を保存する処理についても、同様である。
図5では、拡張機能リスト501に機能1の項目が存在しているため、S303の判定はYesとなる。
【0039】
次にS304では、印刷機能拡張ユニット207は、拡張機能リスト501における、機能Nの検索Feature名が、PDC(Print Device Capabilities)に存在するか否かを判定する。なお、印刷機能拡張ユニット207はPDCを参照したり、変更したりすることができる。
【0040】
PDCの一例を
図6(a)に示す。
図6のPDC601には、サポートしている機能(Feature)の情報や、ある機能における設定値(Option)の情報、また特定の機能同士が同時に選択できないことを示す排他情報が含まれる。情報602は、フチなし印刷機能(PageBorderless)をサポートしていることを示し、情報603は、フチなし印刷機能として、NoneとBorderlessという2つの設定値が指定可能であることを示す。PageBorderlessの前に付加されている、psk:は名前空間であり、PageBorderlessという機能が、誰によってどのような仕様の中で定義されたものであるか、を示す。情報604は、Borderless設定と、NorthAmericaLetterというメディアサイズは、同時に選択できない排他情報を示す。
【0041】
S304の処理に戻る。
図5の拡張機能リスト501の機能1の検索Feature名は、*BorderlessEx*となっているため、印刷機能拡張ユニット207は、PDCにBorderlessExを含むFeature名(機能を示す情報)が存在するかを調べる。*は任意文字列を示す。前述の通り、印刷機能情報203であるPDCは、OS若しくは印刷データ生成ソフトウェア202によって、印刷装置102から取得した情報に応じて動的に生成される場合がある。したがって、ある印刷機能について、どのようなFeature名で追加されているかは、OS若しくは印刷データ生成ソフトウェア202の仕様次第である。印刷機能拡張ユニット207は、前述のように部分一致でFeatureを検索することで、より確実に該当する機能を探索することができる。
【0042】
S304がYesの場合、機能Nは既にOS若しくは印刷データ生成ソフトウェア202によって、指定可能な機能として印刷機能情報203であるPDCに追加されている事になる。この場合、S305へ進む。一方、PDC601のような内容であった場合、PDC601内にはBorderlessExという名称を含むFeatureは存在しない。よって、このような場合は、S306に進む。
【0043】
S305では、印刷機能拡張ユニット207は、PDC上で検索されたFeature名を機能マップリストに追加する。機能マップリストの例を、
図7を用いて説明する。
図7の機能マップリスト701は機能マップリストの例である。機能マップリスト701は、拡張アプリケーション204の各ユニットが読み込み、書き込みできる、共有情報209に格納される。印刷機能拡張ユニット207は、S304の検索で見つかったPDC上のFeature名703と、該当する機能の拡張機能リスト上のFeature名702を対応付けて保存する。これにより、拡張アプリケーション204は、OS若しくは印刷データ生成ソフトウェア202が追加した機能と、後述する処理によって印刷機能拡張ユニット207が追加した機能とが、同一の機能を指示しているという事を判断できる。なお、PDC上のFeature名703は、必要に応じて名前空間も含めて保存するように構成しても良い。
【0044】
S305の処理の後、印刷機能拡張ユニット207はS312の処理に進み、拡張機能リスト501の次の機能(N=N+1)の処理に進む。
【0045】
S306では、印刷機能拡張ユニット207は、拡張機能リスト501における機能NのPublicプリンタ属性が、S301でRAM113に保存したGet-Printer-Attributesのレスポンスに含まれるか否かを判定する。Publicプリンタ属性とは、IPPの仕様において標準定義されているプリンタ属性である。
【0046】
図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プリンタ属性であることを示す。
【0047】
レスポンス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に追加するための処理である。
【0048】
S306の説明に戻る。Get-Printer-Attributesのレスポンス401には、拡張機能リストにおける機能1のPublicプリンタ属性であるprint-borderless-expandlevelは含まれない。したがって、S306の判定はNoとなり、印刷機能拡張ユニット207はS309の処理に進む。
【0049】
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の処理に進む。
【0050】
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に設定しても良い。
【0051】
この処理により、拡張アプリケーション204は、印刷機能拡張ユニット207が拡張した機能(拡張機能)と、その機能が指定されたときにプリンタに通知すべき印刷設定属性情報の対応を参照することができる。
【0052】
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という機能が追加されたことになる。
【0053】
S312では、印刷機能拡張ユニット207は、Nに1を加え、S303の処理に戻り、拡張機能リストに機能Nが存在するまで、S303からS312の処理を繰り返す。S303で、拡張リストに機能Nが存在しないと判断したら、印刷機能拡張ユニット207は本フローチャートの処理を終了する。
【0054】
なお、S306の処理でYesと判断した場合、印刷機能拡張ユニット207は、S307とS308の処理を行う。S307とS308の処理は、S310とS311でPrivateプリンタ属性に基づいて実施した処理を、Publicプリンタ属性に基づいて実施する。具体的には、追加機能リスト801の機能Nのプリンタ属性として、Publicプリンタ属性名であるprint-borderless-expandlevelが格納される。
【0055】
以上が、印刷機能拡張ユニット207の印刷機能情報編集処理である。この処理により、印刷装置102がサポートする機能を、印刷データ生成ソフトウェア202の機能として拡張することができる。拡張した機能は、後述する
図10の印刷設定画面により、ユーザが指定可能となる。また、印刷装置102が、ある特定の機能について異なるプリンタ属性を返却する場合も、同一の機能として拡張することができる。なお、
図3のフローでは、Publicプリンタ属性とPrivateプリンタ属性という2種類のプリンタ属性について、同一機能として追加する処理となっているが、必ずしもその2種類に限定されるものではない。それ以外の名称が異なる2種類以上のプリンタ属性について、同一機能として拡張するように適用可能である。また、
図3のフローでは、OS若しくは印刷データ生成ソフトウェア202により既に該当する機能がPDCに追加されている場合には、印刷機能拡張ユニット207はその機能を重複してPDCに拡張することもない。すなわち、同一機能として扱う複数の属性については、印刷データ生成ソフトウェアには常に1つの機能として追加される。さらに、その設定値として、接続した印刷装置102で指定可能な設定値が追加されることになる。なお、本フローと同等の仕組みにより、OS若しくは印刷データ生成ソフトウェア202が既に機能を追加しているが、その設定値が不足している場合に、設定値のみを独自に追加するよう構成しても良い。
【0056】
<PrintCapabilities(PC)の例>
ここで、印刷機能拡張ユニット207が拡張したPDC605に基づき生成されるPrintCapabilities(PC)の例を
図9のPC901を用いて説明する。なお、PDCからPCへの変換は、OS若しくは印刷データ生成ソフトウェア202が実施する。もしくは、拡張アプリケーション204が変換するように構成しても良い。PC901には、印刷機能拡張ユニット207がPDC605に追加したFeature607に基づき、PageBorderlessExpandLevelというFeature902が追加される。
【0057】
<印刷設定画面拡張ユニットの表示する画面例>
次に、生成されたPCに基づき表示される印刷設定画面について
図10を用いて説明する。
図10の印刷設定画面1000は、印刷設定画面拡張ユニット205がPC901に基づき表示する画面の例である。印刷設定画面拡張ユニット205は、描画アプリケーション201上でユーザが印刷設定画面の表示を指示した場合に、OSから呼び出される。印刷設定画面拡張ユニット205は、OSから取得できるPCに基づき、印刷データ生成ソフトウェア202で指定可能な印刷機能をユーザが指定可能な画面を表示する。
【0058】
印刷設定画面拡張ユニット205は、PC901中のFeature902に基づき、フチなし印刷時のはみ出し量を指定するためのコントロール1001(設定アイテム)を追加した印刷設定画面を提供する。コントロール1001では、Feature902の3つのOptionであるLevel_0、Level_1、Level_2の何れかを選択することができる。
【0059】
この印刷設定画面を生成する際、印刷設定画面拡張ユニット205は、共有情報209の中の機能マップリスト701を参照し、関連付けられた2つのFeatureについては、同一のコントロールを追加するよう構成する。例えば、PC901に、PageBorderlessExpandLevelというFeatureが含まれていた場合も、PageBorderlessExLevelというFeatureが含まれていた場合も、同一のコントロール1001を追加する。
【0060】
このように、印刷設定画面拡張ユニット205は、ある機能について、OSあるいは印刷データ生成ソフトウェア202が追加した場合も、印刷装置が返却するPublicプリンタ属性に基づいて印刷機能拡張ユニット207が追加した場合も、印刷装置が返却するPrivateプリンタ属性に基づいて印刷機能拡張ユニット207が追加した場合も、それらを区別しない。つまり、その機能についてユーザが指定可能な1つのコントロールを印刷設定画面上に構成することができる。さらに、前述の3つの区別をすることができないアプリケーションがPCを直接取得して印刷設定画面を構成する場合においても、本実施形態は適用可能である。つまり描画アプリケーション201は、ある機能が追加されたPCを取得することにより、描画アプリケーション201は、該機能についてユーザが指定可能な1つのコントロールを構成することができる。
【0061】
<印刷データ編集ユニットの処理フロー>
次に、印刷設定画面においてユーザにより印刷設定が指示された後、印刷データ編集ユニット208により印刷データを編集する処理について説明する。
【0062】
図11は、本印刷システムにおける印刷データ編集ユニット208の印刷データ編集処理のうち主要な処理フローを示した図である。以降、印刷データ編集ユニット208を、各処理の主体として説明することもあるが、実際には、対応するプログラムをCPU111が実行することで、対応する機能が実現されることになる。
【0063】
図11のフローは、OSにより印刷データ編集ユニット208が起動することにより開始する。
【0064】
S1101では、印刷データ生成ソフトウェア202が生成した印刷データを、印刷データ編集ユニット208に渡すと、印刷データ編集ユニット208は、まずOSからPrintTicket(PT)を取得する。このPTは、印刷設定画面拡張ユニット205が生成する情報であり、PCに基づいてユーザが指定した印刷設定を示す印刷設定情報である。PTは、印刷設定編集ユニット206により編集される場合があるが、この場合は、印刷データ編集ユニット208は編集されたPTを取得することができる。なお、印刷データ編集ユニット208は、PTではなく、共有情報209に含まれるPT、及びそれに相当する情報に基づいて以降の処理を実行しても良い。この場合、印刷設定画面拡張ユニット205、若しくは印刷設定編集ユニット206は、PT、及びそれに相当する情報を、共有情報209に格納し、印刷データ編集ユニット208が後で参照できるように構成する。
【0065】
S1102では、印刷データ編集ユニット208は、Nを1に初期化する。
【0066】
S1103では、印刷データ編集ユニット208は、機能Nが共有情報209の中の追加機能リスト801に存在するかを判定する。ここでは、追加機能リスト801には、機能1が含まれているため、S1003の判定はYesとなる。機能Nが存在しない場合、印刷データ編集ユニット208は、さらに印刷データに追加すべき機能は無いと判断し、処理を終了する。なお、追加機能リスト801に機能Nが存在しない場合とは、ユーザにより指定されたすべての印刷設定が拡張機能ではなく標準機能であるため、既に印刷データ生成ソフトウェア202により処理済みの場合を示す。
【0067】
S1103がYesの場合、S1104において、印刷データ編集ユニット208は、機能NのFeature名が、PTに存在するかを判定する。存在しない場合は、S1106の処理に進む。ここでは、機能1のFeature名である、PageBorderlessExpandLevelがPTに含まれていたとする。その場合、S1105へ進む。
【0068】
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オペレーションに情報を追加する。
【0069】
S1106では、印刷データ編集ユニット208は、Nに1を加え、S1103の処理に戻り、機能Nが存在するまでS1103からS1106の処理を繰り返す。
【0070】
以上が、印刷データ編集ユニットの印刷データ編集処理フローである。このフローにより、印刷機能拡張ユニット207が拡張した機能(拡張機能)を、ユーザが印刷設定画面において指定した場合に、その指定に応じて、印刷データを編集することができる。よって、印刷装置102に拡張機能の実行を正しく指示することができる。本実施形態の例で言えば、フチなしはみ出し量という機能を印刷装置102に指示するにあたり、印刷装置102がcij-print-borderless-expandlevelという属性をサポートする場合は、印刷データにはその属性情報が追加される。印刷装置102がprint-borderless-expandlevelという属性情報をサポートする場合は、印刷データにはその属性情報が追加される。また、該機能をOSもしくは印刷データ生成ソフトウェア202が追加した場合は、印刷データ生成ソフトウェア202によって、印刷データにその属性情報が追加される。よって、印刷データ編集ユニット208によって重複して追加されることは無い。
【0071】
以上のように、本実施形態における拡張アプリケーション204によって、印刷装置102がサポートする機能をユーザが指定可能に構成することができる。本実施形態では、印刷装置102から取得する属性データ内の属性情報を元に拡張するため、接続した印刷装置102がある機能をサポートしている場合はその機能が指定可能になる。そして、接続した印刷装置102がある機能をサポートしていない場合は、その機能は追加されることは無い。また、接続する印刷装置102の種類に応じて、同一の機能について異なるプリンタ属性が返却される場合であっても、印刷設定画面には同一のコントロールアイテムが表示される。よって、ユーザはそれらを同一の機能として印刷設定画面において指定することができる。なお、本実施形態に置いては、フチなしはみ出し量機能の拡張を例に説明したが、それ以外の機能にも適用可能である。また、拡張機能リスト501に複数の機能を追加しておけば、拡張アプリケーション204は、複数の機能を追加可能である。
【0072】
<<実施形態2>>
次に実施形態2について説明する。本実施形態では、拡張アプリケーション204が追加する機能が既に印刷データ生成ソフトウェア202によってサポートされている場合に、その機能の設定値のみを追加するための構成を示す。以下で言及がない構成や処理については、実施形態1と同等であるため、説明を省略する。
【0073】
図12は、本印刷システムにおける印刷機能拡張ユニット207による印刷機能情報の編集処理のうち主要な処理フローを示した図である。以降、印刷機能拡張ユニット207を、各処理の主体として説明することもあるが、実際には、対応するプログラムをCPU111が実行することで、対応する機能が実現されることになる。
【0074】
図12のS1201からS1212の処理は、以下で言及する点を除き、
図3のS301からS312の処理と同等であるため説明を省略する。一点目の違いとして、本実施形態では、印刷機能拡張ユニット207は、S1205の処理の後に、S1212に進むのではなく、S1204に進む。すなわち、拡張する機能が既に印刷データ生成ソフトウェア202によってサポートされていても(つまりIPPの仕様において標準定義されている標準属性であっても)、S1206移行の拡張処理を続行する。二点目の違いとして、S1207とS1208、及びS1210とS1211の更新処理が
図3とは異なる。以下、S1210とS1211の更新処理を例に説明する。
【0075】
本実施形態における、印刷機能拡張ユニット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つしかない、ということになる。
【0076】
図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名を格納する。
【0077】
S1211では、印刷機能拡張ユニット207は、PDCを更新する。更新したPDCの例を、
図13(b)の1303に示す。印刷機能拡張ユニット207は、機能Nとして既に存在したPageBorderlessExLevelというFeature1305に、Level_2というOption1306を追加する。また、印刷機能拡張ユニット207は、このOptionの名前空間として、名前空間1304を追加しても良い。
【0078】
以上のように、本実施形態の印刷機能拡張ユニット207は、ある機能が既に印刷データ生成ソフトウェア202によってサポートされている場合に、その機能に対し、不足する設定値のみを拡張する事ができる。なお、印刷機能拡張ユニット207は、S1210とS1211の処理において、機能NがPDCに存在しなかった場合は、S310とS311の処理と同じように、機能そのものを拡張する。また、S1207とS1208は、Publicプリンタ属性の情報に基づいて、S1210とS1211と同等の処理を行う。
【0079】
本実施形態の印刷データ編集ユニット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という指定を追加する。
【0080】
本実施形態の拡張アプリケーション204は、印刷データ生成ソフトウェア202が既にサポートしている機能の、設定値を拡張することができる。例えば、印刷時における用紙種類の指定等、機能としてはIPPの仕様において標準的であるが、その設定値は、印刷装置102の構成によって異なるようなケースにおいて、本実施形態は適用できる。つまり、印刷データ生成ソフトウェア202が既にサポートする機能を残したまま、設定値だけを追加することができる。印刷装置102が取得する属性データの属性情報を元に設定値を追加するため、接続した印刷装置102がある設定値をサポートしている場合はその設定値が指定可能になる。また、接続した印刷装置102がある設定値をサポートしていない場合は、その設定値は追加されることは無い。本実施形態で説明したフチなしはみ出し量を例にとると、接続したデバイスAで3段階のはみ出し量指定が可能な場合は3段階の指定が、接続したデバイスBで5段階のはみ出し量指定が可能な場合は5段階の指定が、可能となる。なお、本実施形態では、フチなしはみ出し量機能と、用紙種類を例に説明したが、印刷装置102がサポートするその他の印刷機能にも適用可能である。また、フローチャートに示される通り、2つ以上の機能を追加することもできるし、そのうち一部の機能について、設定値のみを追加することもできる。
【0081】
<<実施形態3>>
次に実施形態3について説明する。本実施形態では、実施形態1の処理に一部処理を追加することで、実施形態1では機能拡張できなかった一部のケースにおいても、拡張アプリケーション204で機能を提供できる。以下で言及がない部分については、実施形態1と同等である。
【0082】
まず、
図3の印刷機能拡張ユニットによる印刷機能情報の編集処理について、S309の判定でNoだった場合に、S310とS311で実施したのと同等の処理を実施するよう構成する。この処理により印刷機能拡張ユニット207が作成する機能追加リストは
図8(c)の追加機能リスト808のようになる。印刷機能拡張ユニット207は、追加した機能と設定値について、対応するプリンタ属性が無いという事を示す情報809(none)を格納する。この場合、この機能がユーザによって選択されたとしても、印刷装置102はその機能をサポートしていないことになる。
【0083】
さらに、
図11の印刷データ編集ユニット208の印刷データ編集処理において、追加機能リスト中の機能のプリンタ属性に一つでもnoneが含まれる場合、印刷データ編集ユニット208は印刷データの形式を変換する。IPP Class Driverを例にとると、印刷データはIPP形式であるが、前述の条件に該当する場合、印刷装置102はユーザが指定した印刷機能をIPP形式で実行することができない事を示す。このような場合、印刷データ編集ユニット208は、IPP形式の印刷データを、ユーザが指定した印刷機能を利用可能な異なる印刷データに変換する。例えば、拡張アプリケーション204を提供するベンダ独自の印刷データ形式は、通常、印刷装置102が提供する全ての機能を利用可能である。印刷データ編集ユニット208は、例えば、前記のようなベンダ独自の印刷データ形式に変換をする。
【0084】
以上の構成により、印刷装置102はサポートしているが、印刷データ生成ソフトウェア202の生成する印刷データ形式では指定できないような機能について、拡張アプリケーション204を利用することで指定可能に構成することができる。さらに、実施形態2の構成と組み合わせて、ユーザが指定した印刷機能のある設定値がIPP形式で実行できない場合に、異なる印刷データに変換するように構成しても良い。これにより、印刷装置102はサポートしているが、印刷データ生成ソフトウェア202の生成する印刷データ形式では指定できないような設定値について、拡張アプリケーション204を利用することで指定可能に構成することができる。
【0085】
<<実施形態4>>
上述した実施形態は、以下の処理を実行することによっても実行される。すなわち、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ(またはCPUまたはMPU)が記録媒体に格納されたプログラムコードを読み出し実行する。これによって、上述した目的を達成することができる。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することとなり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0086】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD-ROM、CD-R、磁気テープ、不揮発性のメモリカード、ROM、DVDなどを用いることができる。
【0087】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施例の機能が実現されるだけでない。そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOSなどが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれる。
【0088】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれてもよい。そして、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行ってもよい。その処理によって前述した実施形態の機能が実現される。
【符号の説明】
【0089】
102 印刷装置
119 表示部
201 アプリケーション
202 印刷データ生成ソフトウェア
203 印刷機能情報
204 拡張アプリケーション
205 印刷設定画面拡張ユニット
206 印刷設定編集ユニット
207 印刷機能拡張ユニット
208 印刷データ編集ユニット
209 共有情報