IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ キヤノン株式会社の特許一覧

特許7604601アプリケーションおよび情報処理装置の制御方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2024-12-13
(45)【発行日】2024-12-23
(54)【発明の名称】アプリケーションおよび情報処理装置の制御方法
(51)【国際特許分類】
   G06F 3/12 20060101AFI20241216BHJP
【FI】
G06F3/12 360
G06F3/12 303
G06F3/12 325
G06F3/12 332
【請求項の数】 11
(21)【出願番号】P 2023189827
(22)【出願日】2023-11-07
【審査請求日】2023-12-19
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100126240
【弁理士】
【氏名又は名称】阿部 琢磨
(74)【代理人】
【識別番号】100223941
【弁理士】
【氏名又は名称】高橋 佳子
(74)【代理人】
【識別番号】100159695
【弁理士】
【氏名又は名称】中辻 七朗
(74)【代理人】
【識別番号】100172476
【弁理士】
【氏名又は名称】冨田 一史
(74)【代理人】
【識別番号】100126974
【弁理士】
【氏名又は名称】大朋 靖尚
(72)【発明者】
【氏名】日高 大地
【審査官】岩田 玲彦
(56)【参考文献】
【文献】特開2021-107999(JP,A)
【文献】特開2003-067148(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/12
(57)【特許請求の範囲】
【請求項1】
アプリケーションであって、
印刷装置に接続されていない状態で、汎用プリンタドライバと対応づけがなされた印刷キューの生成させる生成工程と、
前記印刷キューを指定して生成された印刷データを取得する取得工程と、を情報処理装置に実行させることを特徴とするアプリケーション。
【請求項2】
前記生成工程は、前記アプリケーションのインストールに応じて実行されることを特徴とする請求項1に記載のアプリケーション。
【請求項3】
前記情報処理装置にオペレーティングシステムに前記印刷キューと対応づけされる印刷装置の能力情報が記憶されたファイルパスを通知する通知工程をさらに有することを特徴とする請求項1に記載のアプリケーション。
【請求項4】
前記アプリケーションは、前記能力情報が記憶されたファイルを記憶していることを特徴とする請求項3に記載のアプリケーション。
【請求項5】
前記汎用プリンタドライバは、前記オペレーティングシステムを提供するベンダにより提供されるドライバであることを特徴とする請求項3に記載のアプリケーション。
【請求項6】
アプリケーションにより実行される情報処理装置の制御方法であって、
前記情報処理装置と印刷装置が接続されていない状態で、汎用プリンタドライバと対応づけされた印刷キューを前記情報処理装置のオペレーティングシステムに生成させる工程と、
生成された前記印刷キューを指定して生成された印刷データを取得する取得する取得工程と、を有することを特徴とする制御方法。
【請求項7】
汎用プリンタドライバとともに用いられるアプリケーションであって、
他のアプリケーションで利用される印刷データを生成する印刷キューが選択されていることに基づき、前記他のアプリケーションがサポートするデータフォーマットで印刷データを生成する生成工程と、
前記他のアプリケーションにより参照されるファイルパスに生成した前記印刷データを記憶させる制御工程と、
情報処理装置に実行させることを特徴とするアプリケーション。
【請求項8】
印刷データを印刷装置に送信他の印刷キューが選択されている場合、前記印刷装置の能力情報に基づくフォーマットの印刷データを生成する他の生成工程と、
前記他の生成工程において生成された印刷データを前記印刷装置に送信させる工程と、を前記情報処理装置に実行させることを特徴とする請求項7に記載のアプリケーション。
【請求項9】
前記汎用プリンタドライバは、前記情報処理装置のオペレーティングシステムを提供する製造元により提供されるドライバであることを特徴とする請求項7に記載のアプリケーション。
【請求項10】
記アプリケーションは、生成する前記印刷データの格納先を前記印刷キューに関する情報を記述するファイルに追加することを特徴とする請求項7に記載のアプリケーション。
【請求項11】
汎用プリンタドライバとともに用いられるアプリケーションにより実行される情報処理装置の制御方法であって、
他のアプリケーションで利用される印刷データを生成する印刷キューが選択されていることに基づき、前記他のアプリケーションがサポートするデータフォーマットで印刷データを生成する生成工程と、
前記他のアプリケーションにより参照されるファイルパスに生成した前記印刷データを記憶させる制御工程と、
を有することを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、アプリケーションおよび情報処理装置の制御方法に関する。
【背景技術】
【0002】
印刷装置の制御用ソフトウェアとしてホストコンピュータにインストールされたプリンタドライバを利用し、ホストコンピュータに接続された印刷装置に対して印刷指示を行う構成が知られている。ホストコンピュータには、基本ソフトウェアであるオペレーティングシステム(OS)がインストールされており、プリンタドライバはそのOSの規定する仕様に従って構成され、OSから呼び出されて動作する。印刷装置を提供するベンダは、OSの仕様に適合するプリンタドライバを提供することにより、そのOSを用いて印刷装置に印刷を指示する手段を提供することができる。
【0003】
近年、Windows(登録商標)において、複数のベンダの提供する印刷装置で共通して利用可能な標準的なクラスドライバ(以下、「汎用プリンタドライバ」とも呼ぶ)が提供されている。このような標準ドライバは、OSのパッケージの中に同梱されており、ホストコンピュータに任意の印刷装置を接続することにより簡易に利用可能となる。よって、印刷装置に適した機種固有のプリンタドライバを別途インストールする必要が無く、利便性が高い。また、標準ドライバは、接続した印刷装置から取得した情報に基づき生成されたPrintDeviceCapabilities(以下、「PDC」)に応じて印刷機能を指定可能に構成される。これにより、標準ドライバを利用するユーザは、1つの標準ドライバを利用しているにも関わらず、接続した印刷装置の能力に応じた印刷機能を指定することができる。
【0004】
標準ドライバには機能拡張用のアプリケーション(以下、「拡張アプリケーション」とも呼ぶ)を関連付けることができる。拡張アプリケーションは、印刷装置を提供するベンダが提供することができる。拡張アプリケーションは標準ドライバが生成したPDCを編集することにより、標準ドライバのみでは実現できない機能(拡張機能)を提供することができる。PDCの編集とは、標準ドライバが生成したPDCに既存の印刷機能の書き換え、または削除、ならびに新規印刷機能の追加のことをさす。
【0005】
特許文献1には、拡張アプリケーションにより、プリンタから取得した情報に基づいて、PDCを編集することで、標準ドライバの機能を拡張する技術が開示されている。
【先行技術文献】
【特許文献】
【0006】
【文献】特開2021-108001号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
実際の印刷装置やプリントサーバに接続されていない印刷キューである仮想キューを用いて生成された印刷データを扱うアプリケーションがある。このようなアプリケーションでは、たとえば、仮想キューを用いて生成された複数の印刷データに含まれる描画データを1枚の用紙にレイアウトする処理を行う。
【0008】
汎用プリンタドライバは、実際の印刷装置から当該印刷装置の機能に関する情報を取得し、印刷キューを生成する。そのため、上記のように実際の印刷装置と通信をしないアプリケーションを利用するための仮想キューを生成することは考えられていない。
【0009】
本願発明は、実際の印刷装置と接続されない場合であっても、汎用プリンタドライバと対応づけされる印刷キューを利用することを目的とする。
【課題を解決するための手段】
【0010】
本願の実施形態に記載のアプリケーションは、印刷装置に接続されていない状態で、汎用プリンタドライバと対応づけがなされた印刷キューの生成させる生成工程と、前記印刷キューを指定して生成された印刷データを取得する取得工程と、を情報処理装置に実行させることを特徴とする。
【発明の効果】
【0011】
本発明の一態様により、実際の印刷装置と接続されない場合であっても、汎用プリンタドライバと対応づけされる印刷キューを利用することができる。
【図面の簡単な説明】
【0012】
図1】本実施形態における、印刷システムのハードウェア構成の一例を示すブロック図である。
図2】本実施形態における、印刷システムのソフトウェア構成の一例を示す図である。
図3】本実施形態において、印刷データ生成ソフトウェア202が生成したPDC203の一例を示す図である。
図4】本実施形態において、印刷機能拡張ユニット207が編集したPDC203の一例を示す図である。
図5】本実施形態において、印刷設定画面拡張ユニット205により提供される印刷設定画面の一例を示す図である。
図6】実施形態1におけるアプリケーション213インストール時のシーケンスの一例を示す図である。
図7】実施形態1における、アプリケーション213へのデータ出力および印刷時のシーケンスの一例を示す図である。
図8】本実施形態において、描画アプリケーション201での印刷設定画面の一例を示す図である。
図9】本実施形態において、アプリケーション213での印刷設定画面の一例を示す図である。
図10】実施形態2において、アプリケーション213インストール時のシーケンスの一例を示す図である。
図11】実施形態2において、アプリケーション213へのデータ出力および印刷時のシーケンスの一例を示す図である。
図12】実施形態3において、アプリケーション213へのデータ出力および印刷時のシーケンスの一例を示す図である。
図13】本実施形態において、印刷装置102がGet-Printer-Attributesのレスポンスとして返却する情報の一例を示す図である。
図14】本実施形態において、PDC401を基に生成されるPrintCapabilitiesの一例を示す図である。
図15】本実施形態において、アプリケーション213が仮想キューの能力情報をOS214に指示するための情報の一例を示す図である。
図16】実施形態1において印刷機能拡張ユニット207がPDC401を編集したPDCの一例を示す図である。
図17】実施形態1において、PDC1601を基に生成されるPrintCapabiliesの一例を示す図である。
図18】実施形態2において印刷機能拡張ユニット207がPDC401を編集したPDCの一例を示す図である。
図19】実施形態1において、アプリケーションが実行する処理の一例を示すフローチャート。
図20】実施形態1において、拡張アプリケーションが実行する処理の一例を示すフローチャート。
図21】実施形態2において、拡張アプリケーションが実行する処理の一例を示すフローチャート。
図22】実施形態2において、拡張アプリケーションが印刷データの生成時に実行する処理の一例を示すフローチャート。
図23】本実施形態において、アプリケーションが発行するコマンドの一例を示す図である。
【発明を実施するための形態】
【0013】
以下、添付図面を参照して本発明の好適な実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【0014】
なお、同一の構成要素には同一の参照番号を付して、説明を省略する。
【0015】
<<実施形態1>>
<印刷システムのハードウェア構成>
図1は、印刷システムのハードウェア構成を示すブロック図である。本図において、ホストコンピュータ101は、情報処理装置の一例であり、入力インタフェース110、CPU111、ROM112、RAM113、外部記憶装置114、出力インタフェース115、及び入出力インタフェース116を有する。また、入力インタフェース110には、キーボード118、ポインティングデバイス114などの入力デバイスが接続され、出力インタフェース115には、表示部119などの表示デバイスが接続されている。NETIF120は、ネットワークインタフェイスであり、ネットワークを介して外部機器との間でデータ転送を行うための制御を行う。
【0016】
ROM112には、初期化プログラムが格納されている。外部記憶装置114には、アプリケーションプログラム群、オペレーティングシステム(OS)、印刷データ生成ソフトウェア、その他の各種のデータが格納されている。RAM113は、外部記憶装置114にストアされる各種のプログラムの実行の際のワークメモリ等として使用され、各種プログラムがホストコンピュータ101内で動作可能となっている。
【0017】
なお、本実施形態では、CPU111が、ROM112に格納されたプログラムの手順に従って処理を行うことによって、ホストコンピュータ101における後述の機能及び後述するフローチャートに係る処理を実行する。デバイスである印刷装置102は、入出力インタフェース116を介して、ホストコンピュータ101と接続されている。なお、本実施形態においては、印刷装置102は、インクを紙面上に吐出することで印刷するインクジェットプリンタを例に説明する。しかしながら、印刷装置102が他の方法(例えば電子写真方式)で印刷が実行する印刷装置であってもよい。また、ホストコンピュータ101は、デスクトップパソコンでも、スマートフォンでも、ノートパソコンでも構わない。
【0018】
なお、本実施形態では、印刷装置102の種別として、ローカル接続のインクジェットプリンタを例として説明する。印刷装置102は例えばレーザービームプリンタ(ローカル接続及びクラウド接続)であってもよいし、前述の2種類に限らず、その他複数のデバイス種別や、接続形態の判別を行う構成であってもよい。ローカル接続とは、入出力インタフェース116やNETIF120を経由してホストコンピュータ101と印刷装置102が直接通信可能な状態に接続されるような形態を示す。クラウド接続とは、NETIF120を経由して、インターネット上の不図示のクラウド印刷サービスを経由してホストコンピュータ101から印刷装置102に対して印刷を指示するような接続形態を示す。なお、今後例示する図表などにおいて、FeaatureやOptionの具体例が記載されているものは、指定がない限り、デバイス種別がインクジェットプリンタである印刷装置に関する例である。
【0019】
<ソフトウェアを中心とした印刷システムの構成>
図2は、印刷システムのソフトウェア構成を模式的に示す図である。ここでは、OSとしてMicrosoft(登録商標)のWindows(登録商標)11を搭載したホストコンピュータ101を用いた印刷システムを前提として説明する。印刷データ生成ソフトウェア202として、Windows(登録商標)11に搭載されている、IPP Class Driverを利用した構成について説明する。IPP Class Driverは、IPP(Internet Printing Protocol)と呼ばれる標準的な印刷プロトコルの仕様に従って印刷処理を実行するプリンタドライバであり、OSのパッケージの中に同梱されている。IPP Class Driverは、印刷装置102の機種に応じた固有のプリンタドライバではなく、複数のプリンタベンダ(manufacturer)の複数の機種の印刷装置で共通して利用可能な標準的なクラスドライバである。また、IPP Class DriverはOSを提供するベンダ(manufacturer)により提供される。図2(a)は、拡張アプリケーション204が、印刷データ生成ソフトウェア202および印刷装置102と関連付けられていない場合の一般的な構成を示す図である。
【0020】
描画アプリケーション201は印刷されるコンテンツ(描画データ)を作成するソフトウェアである。例えば、文書作成アプリケーションや表計算アプリケーションが相当する。描画アプリケーション201は、ユーザから印刷要求を受けると、印刷指示をOSに発行する。印刷指示には、印刷データ生成ソフトウェア202及び印刷装置102の動作を指示するための印刷設定情報が含まれる。印刷設定情報はPrintTicket(以下、「PT」)とも呼ばれる。
【0021】
描画アプリケーション201は、印刷設定情報を出力するために、印刷データ生成ソフトウェア202、OS、もしくは描画アプリケーション201、のうちいずれかが提供する印刷設定画面を表示させる事ができる。印刷設定画面は、印刷データ生成ソフトウェア202から取得する能力情報(印刷設定として設定可能な情報)に従い、設定可能な印刷機能を示す設定アイテム(以下、「コントロールアイテム」とも呼ぶ)と、その設定値を示すコントロールアイテムを含む。能力情報は、PrintCapabilities(以下、「PC」)とも呼ばれる。印刷データ生成ソフトウェア202は、印刷機能情報203に基づき、PCを決定する。印刷機能情報203は、設定可能なすべての印刷機能とその設定値、並びに、設定値同士の排他関係が記載されている印刷機能を示すデータである。印刷機能情報203は、PDC(Print Device Capabilities)とも呼ばれる。PDC203は、印刷データ生成ソフトウェア202の構成ファイルに含まれ、印刷データ生成ソフトウェア202により、動的に生成される。具体的には、印刷データ生成ソフトウェア202もしくはOSは、印刷装置102から印刷装置の属性データを取得し、取得した属性データ内の属性情報に応じてPDC203を生成するよう構成することができる。なお、印刷装置102から取得される印刷装置の属性データとは、印刷装置に対してIPPのGet-Printer-Attributesオペレーションを発行することにより取得するレスポンスである。レスポンスの中には、印刷装置102で指定可能な機能(印刷装置の能力)を示す属性情報(Feature)とその属性情報に関連する設定値(Option)を含む。このレスポンスはRAM113に保存される。
【0022】
このように構成することで、印刷データ生成ソフトウェア202は、接続された印刷装置102に応じて、それぞれの印刷装置102で利用可能な印刷機能をユーザが指定可能に構成する事ができる。すなわち、異なる機能を持つ印刷装置や、異なるベンダが開発した印刷装置を接続した場合であっても、印刷データ生成ソフトウェア202は、接続した印刷装置に応じて利用可能な印刷機能をユーザが指定可能に構成することができる。
【0023】
OSは、描画アプリケーション201から出力された印刷指示に基づき中間印刷データ(入力データとも呼ぶ)を生成して、印刷データ生成ソフトウェア202に渡す。なお、描画アプリケーション201が印刷用に出力するデータは、Graphic Device Interface形式のデータ(GDI形式データ)またはXML Paper Specification形式のデータ(XPS形式のデータ)である。印刷データ生成ソフトウェア202として、IPP Class Driverを利用する場合、OSは、描画アプリケーション201が出力するデータがGDI形式のデータをXPS形式のデータに変換する。そして、変換したXPS形式のデータを中間印刷データとして印刷データ生成ソフトウェア202に渡す。描画アプリケーション201が出力するデータがXPS形式のデータなら、OSは、XPS形式のデータを中間印刷データとして印刷データ生成ソフトウェア202に渡す。なお、中間印刷データには、紙面上に形成する画の情報である描画データと、ユーザにより設定された印刷設定情報と、が含まれる。
【0024】
印刷データ生成ソフトウェア202は、取得した中間印刷データを印刷装置102が解釈可能な印刷データに変換し、印刷装置102に送信する。なお、印刷データには、紙面上に形成する画の情報である描画データと、ユーザにより設定された印刷設定情報に基づき生成された印刷設定属性情報(印刷設定を指定する属性情報)とが含まれる。印刷設定属性情報は、印刷装置102で指定可能な機能(印刷装置の能力)を示す属性情報(Feature)とその属性情報に関連する設定値(Option)を含む。
【0025】
印刷装置102は、印刷データ生成ソフトウェア202から送られた印刷データに基づき紙面等の記録媒体への印刷を行う。この時、印刷装置102は、印刷データに含まれる印刷設定属性情報に従った動作で、印刷データに含まれる描画データを紙面等の記録媒体上に形成する。印刷設定属性情報には、印刷品位(画質優先、速度優先、等)や、両面印刷等を指定するための属性情報とその設定値が含まれている。例えば、印刷設定属性情報に、両面印刷を指定する属性情報とそれを動作させることを示す設定値が含まれる場合、印刷装置102は、両面印刷を実行する。
【0026】
図2(b)は、拡張アプリケーション204が、印刷データ生成ソフトウェア202および印刷装置102と関連付けられている場合の構成を示す図である。なお、以下において特に言及しない構成や処理については、図2(a)と同等の構成となる。
【0027】
拡張アプリケーション204は、印刷データ生成ソフトウェア202の機能を拡張するためのソフトウェアであり、OSに予め含まれていない(同梱されていない)ソフトウェアである。そのためユーザがホストコンピュータ101を操作し、インターネットを介してサーバから拡張アプリケーション204をダウンロードして、インストールする必要がある。若しくは、ホストコンピュータ101に印刷装置102が接続されたことに基づき、自動的にインストールされてもよい。具体的には、ホストコンピュータ101に印刷装置102が接続された場合、OSは印刷装置102からデバイス識別情報を取得する。デバイス識別情報とは、たとえば印刷装置102のハードウェアIDである。OSは、取得されたデバイス識別情報に対応する拡張アプリケーション204を、インターネットを介してサーバからダウンロードし、インストールしても良い。つまり、印刷データ生成ソフトウェア202と、拡張アプリケーション204は別ファイルとしてホストコンピュータ101に保持される。
【0028】
なお、印刷データ生成ソフトウェア202および拡張アプリケーション204は、更新されてバージョンアップされることもあるが、この更新処理も別々のタイミングで行われる。つまり、ホストコンピュータ101により印刷データ生成ソフトウェア202が取得されるタイミングと、拡張アプリケーション204が取得されるタイミングは異なる。また、ホストコンピュータ101により印刷データ生成ソフトウェア202が取得されるトリガーと、拡張アプリケーション204が取得されるトリガーも異なる。なお、拡張アプリケーション204がインストールされた場合、OSが、拡張アプリケーション204を、印刷データ生成ソフトウェア202および印刷装置102に関連付ける。
【0029】
本実施形態で説明する拡張アプリケーション204は、印刷設定画面拡張ユニット205とスキップ制御ユニット206と印刷機能拡張ユニット207と印刷データ編集ユニット208と通知ユニット209と、能力情報取得ユニット211を備える。また、拡張アプリケーション204は、各ユニットから共通してアクセス可能な共有情報210を備える。共有情報210の実態は、外部記憶装置114に保存されたファイル、もしくはRAM113上に格納された情報である。拡張アプリケーション204は、OSが提供するAPI(Application Program Interface)を利用することで、共有情報210への情報の書き込みや読み出しを行う。
【0030】
なお、拡張アプリケーション204は、各ユニットの処理が終わるたびに動作を終了しても良い。その場合、各ユニットを使う要求を受ける度にOSが拡張アプリケーション204を起動することになる。また、別の形態も考えられる。例えば印刷設定画面拡張ユニット205の処理が終了するとOSは拡張アプリケーション204の動作を終了させるが、スキップ制御ユニット206の処理が終了してもOSは拡張アプリケーション204を起動させたままにしても良い。
【0031】
さらに、拡張アプリケーション204は、各ユニットの処理の中で、処理をキャンセルしても良い。キャンセルした場合、印刷キュー上の処理中のジョブがOSにより削除される。
【0032】
描画アプリケーション201は、ユーザから印刷要求を受けると、印刷指示をOSに発行する。本構成下でも、図2(a)の構成と同様、描画アプリケーション201は、印刷設定画面を表示させることができる。描画アプリケーション201独自の印刷設定画面を表示させてもよいし、その後、拡張アプリケーション204が提供する印刷設定画面が表示されるように構成させることも可能である。拡張アプリケーション204が提供する印刷設定画面とは具体的には、拡張アプリケーション204が備える印刷設定画面拡張ユニット205が提供する印刷設定画面である。なお、印刷設定画面拡張ユニット205により提供される印刷設定画面が表示されるか否かはユーザの操作に依存する。印刷設定画面拡張ユニット205の詳細は、図5を用いて後述する。
【0033】
また、描画アプリケーション201がユーザから印刷要求を受けつけ、印刷指示がOSに発行されると、OSはスキップ制御ユニット206を起動する。スキップ制御ユニット206は、印刷データ生成ソフトウェア202による印刷データの生成処理をスキップするか否かの制御を行う。スキップ制御ユニット206のスキップ制御処理の後、OSは、描画アプリケーション201から出力された印刷指示に基づき中間印刷データを生成し、中間印刷データが印刷データ生成ソフトウェア202に渡される。ここで、スキップ制御ユニット206でスキップ制御が行われない場合、中間印刷データは印刷データ生成ソフトウェア202で印刷装置102が解釈可能な印刷データへ処理され、印刷データ編集ユニット208へ渡される。一方、印刷データ生成ソフトウェア202のスキップが行われる場合は、中間印刷データは印刷データ生成ソフトウェア202で処理されずに、印刷データ編集ユニット208に渡される。これにより、中間印刷データを印刷データ編集ユニット208で処理することが可能となる。
【0034】
印刷データ編集ユニット208は、印刷データ生成ソフトウェア202から渡される中間印刷データもしくは印刷データ生成ソフトウェア202により処理された印刷データ212の編集を行う。編集内容として、割り付け印刷を例にとる。印刷データ編集ユニット208は、OSから受け取った割り付け印刷の印刷設定情報に基づいて、複数ページの画像が1枚の用紙の片面に割り付けされた画像が出力されるように中間印刷データもしくは印刷データ212を編集する。また、印刷データ編集ユニット208は表示部119にUI画面を表示することが可能であり、中間印刷データもしくは印刷データ212のレイアウト結果をプレビュー画面として表示する等の機能を提供することができる。なお、印刷データ編集ユニット208が表示部119に表示したGUI画面を開いたままの状態では印刷データ212は印刷装置102に送信されず、GUI画面を閉じることで印刷データ212の送信処理が動作する。
【0035】
印刷データ編集ユニット208が印刷データ212を編集した後、印刷データ212は印刷装置102へ渡される。印刷装置102は、受け付けた印刷データ212に基づき紙面等記録媒体への印刷を行う。
【0036】
また、印刷データ編集ユニット208は、描画アプリケーション201とは異なるアプリケーション213に印刷データを出力するように構成されてもよい。印刷データ編集ユニット208がアプリケーション213に印刷データを出力する例については後述する。
【0037】
なお、スキップ制御ユニット206で印刷データ生成ソフトウェア202がスキップされた場合、印刷データ編集ユニット208が、受け取った中間印刷データを印刷装置102が解釈可能な印刷データへ変換しても良い。また、中間印刷データを印刷データへ変換するために、OSが提供する機能を利用しても良い。
【0038】
拡張アプリケーション204は、印刷機能拡張ユニット207を有する。印刷機能拡張ユニット207は、印刷データ生成ソフトウェア202が生成したPDC203を編集することができる。印刷データ生成ソフトウェア202が生成したPDC203については、後述する。PDC編集により、印刷機能拡張ユニット207は、拡張アプリケーション204が提供する機能の追加、印刷装置102はサポートしているが印刷データ生成ソフトウェア202がサポートしていない機能の追加等を行うことができる。以降、特に言及がない場合、印刷設定画面とは、OSや描画アプリケーション201、印刷設定画面拡張ユニット205のうち、いずれかが提供する印刷設定画面のことを指す。
【0039】
OSは、拡張アプリケーション204が印刷装置102と印刷データ生成ソフトウェア202に最初に関連付けられた時に、印刷機能拡張ユニット207を起動する。さらに、OSは、OS起動時等、それ以外のタイミングで印刷機能拡張ユニット207を起動してもよい。このようにすることで、印刷装置102に対して後からオプション装置(例えば、フィニッシャー等)が追加され、印刷に関わる機能が拡張されるようなケースにおいて、印刷機能拡張ユニット207は、拡張機能を検知し、PDC203に追加することができる。
【0040】
また、拡張アプリケーション204は通知ユニット209を有する。通知ユニット209は、印刷装置102のエラー発生に呼応してユーザに対して通知を表示することが可能である。例えば、印刷装置102で用紙なしエラーが発生すると、それを印刷データ生成ソフトウェア202が検知し、OSは、OSの機能であるトースト通知と呼ばれる通知機能を使って、メッセージを表示部119に表示させる。ユーザがこのトースト通知を押下するとで、拡張アプリケーション204の通知ユニット209がOSにより呼び出され、通知ユニット209のUI画面が表示される。通知ユニット209のUI画面では、例えば用紙なしエラーの詳細メッセージや用紙充填方法の表示などを行うことができる。
【0041】
また、本実施形態を実現するための拡張アプリケーション204の構成は、前述の機能(ユニット)を全て備えるものに限定されず、機能の一部のみを持つものや、他の機能を有するものでもよい。また、拡張アプリケーション204は、単に印刷ソフトウェアと呼ばれることもある。以上のように、拡張アプリケーション204は、図2(b)に記載の205から209、211に記載の少なくとも1つの機能を備えると言える。
【0042】
<印刷データ生成ソフトウェア202が生成するPDCの例>
まず、印刷データ生成ソフトウェア202は、ホストコンピュータ101に接続された印刷装置102の属性データを取得し、その情報を基にPDC203を生成する。印刷装置102から取得する属性データとは、印刷装置102への印刷の際に、ユーザが印刷設定として設定可能な情報などを含む情報である。
【0043】
印刷装置102に対して、IPPのGet-Printer-Attributesオペレーションを発行することにより印刷データ生成ソフトウェア202が取得するレスポンスの一例を、図13を用いて説明する。情報1301は印刷装置102に対して、IPPのGet-Printer-Attributesオペレーションを発行することにより取得できるレスポンスの一例である。情報1301には印刷装置102でIPP属性として指定可能な機能を示す属性情報(Feature)とその属性情報に関連する設定値(Option)が含まれる。情報1301に示すように、印刷装置102からは、サイズやメディアなどの機能(Feature)の情報や、各機能に対して設定可能な設定値(Option)を取得することができる。情報1302に示すdocument-format-supportedは印刷装置102が受け付け可能な印刷データ形式を表している。情報1302の例では印刷装置102が‘application/octet-stream’,‘image/jpeg’,‘image/urf’,‘image/pwg-raster’のデータ形式に対応していることを表している。情報1303に示すprint-color-mode-supportedは印刷装置102での印刷時に指定可能なカラーモードを表している。情報1303の例では、印刷装置102がカラーモード:‘color’(カラー),‘monochrome’(モノクロ),‘auto’(自動選択)に対応していることを表している。情報1304に示すsides-supportedは印刷装置102が両面印刷に関して、選択可能な選択肢を示している。情報1304の例では、Two-Sided-Short-Edge(短辺とじ)、Two-Sided-Long-Edge(長辺とじ)の両面印刷に対応していることを表している。情報1305に示すprinter-nameは、印刷装置の名称を表している。情報1305は、接続されている印刷装置102の名称が”Inkjet-AAA”であることを表している。情報1306に示すmedia-size-supportedは印刷装置102がサポートするメディアサイズを、幅と高さを1/100mm単位で表現した情報で表している。情報1306の例では、印刷装置102が、A5,A4,B5サイズの用紙への印刷に対応していることを表している。情報1307のmedia-supportedは印刷装置102がサポートするメディアサイズの名称を表す。情報1308に示すmedia-type-supportedは印刷装置102がサポートするメディア種を表す。情報138の例では、glossy、gold、mat、stationary、photographic、envelope)への印刷に対応していることが表されている。glossyは光沢スタンダード紙を示している。goldは、光沢ゴールド紙を示している。matはマットフォトペーパーを示している。stationaryは普通紙を示している。photographicは写真用紙を示している。envelopeは封筒用紙を示している。
【0044】
情報1309に示すmedia-source-supportedは印刷装置102がサポートする給紙方法一覧を表す。情報1309の例では、印刷装置102が印刷用紙の給紙方法として、auto(自動選択)、main(メイントレイ)、rear(後ろトレイ)、disc(CD/DVDトレイ)をサポートしていることを表している。情報1310に示すmedia-top(bottom/right/left)-margin-supportedは印刷装置102での印刷時に設定可能なマージンの長さを表している。情報130の例では、用紙上側に、5mm、0mm、8mm、6mmを持たせることが可能であることを示している。情報130は、用紙左側に3.4mm、0mm、6.4mm、5.6mm、6mm、5mmを持たせることが可能であることを示している。情報130は、用紙右側に3.4mm、0mm、6.3mm、5.6mm、6mm、5mmを持たせることが可能であることを示している。情報130は、用紙下部に05mm、0mm、12.7mm、6mmのマージンをもたせることが可能であることを示している。情報1302~情報1310について例示した属性値はあくまで一例であって、実際にはそれぞれの属性値として例示した以外の属性値も含まれる。また、情報1301に示した例もあくまで一例であって、実際に印刷装置102にIPPのGet-Printer-Attributesオペレーションを発行することにより得られるレスポンスには例示した以外の属性情報も含まれる。
【0045】
印刷データ生成ソフトウェア202は印刷装置102に対してIPPのGet-Printer-Attributesオペレーションを発行することにより、上述した情報1301のような情報を取得し、取得した情報に基づいてPDC203を生成する。
【0046】
印刷データ生成ソフトウェア202が生成するPDC203の例を図3に示す情報301を用いて示す。PDC203は図3に示す情報301のようにxml形式で記述され、印刷装置102で指定可能な機能を示す属性情報(Feature)とその属性情報に関連する設定値(Option)が記述されている。
【0047】
情報306は、後述する情報302や情報304で記述する各Featureや各Optionが属する名前空間(NameSpace)の接頭辞(Prefix)として定義された文字列を表している。NameSpaceとは、各FeatureやOptionが属する集合または範囲を表すものである。NameSpaceは、印刷データ生成ソフトウェア202やOS,拡張アプリケーション204が、PDCやPT/PCを参照する際に、各FeatureやOptionを一意に特定するために用いられる。例えば、同じ名称で定義されたFeatureやOptionであっても、OS標準で定義されているものなのか、ベンダが独自で定義するものなのかということを、NameSpacによって表現可能になる。具体的には、情報306として、xmlns:psk=“http //schemas.com/printting/printingschemakeywords”と定義したとする。この場合、以降の情報302や情報303において記述する各Featureや各Optionの接頭辞として”psk”と付与することで、当該Featureや当該Optionが前述したNameSpaceに属するということを定義可能になる。ここで前述したNameSpaceがOS標準で定義されているものであれば、当該FeatureやOptionがOS標準に属する、ということを表現可能になる。このように、NameSpaceとは、各FeatureやOptionが属する集合または範囲を表すものである。NameSpaceは印刷データ生成ソフトウェア202やOS、拡張アプリケーション204がPDC203やPT/PCを参照した際に、各FeatureやOptionを一意に特定するために用いられる。
【0048】
情報302は、PageMediaSize(用紙サイズ)としてISOA4やISOA5、ISOB5が指定可能であることを表している。ここでは、PageMediaSizeが機能(Feature)を示し、ISOA4等は、その機能に対する設定値(Option)を示している。後述する機能についても、同等の表記で機能(Feature)と設定値(Option)が記されている。情報303は、PageBorderless(フチなし印刷設定)として、Borderless(フチなし)と、None(フチあり)が設定可能であることを表している。情報304は、PageMediaType(メディア)として、Plain(普通紙)やPhotographic(写真用紙)、EnvelopePlain(封筒用紙)が指定可能であることを表している。また、情報305は、JobInputBin(給紙方法)として、Main(メイントレイ)やRear(リアトレイ)、Disc(CD/DVDトレイ)が指定可能であることを表している。上述したように、印刷データ生成ソフトウェア202もしくはOSは印刷装置102に対してIPPのGet-Printer-Attributesオペレーションを発行する。当該オペレーションの応答として、上述した情報1301のような情報を取得し、取得した情報に基づいてPDC203を生成する。ここで生成するPDC203には、あくまでOSが既知のFeatureやOptionのみが記載される。すなわち、情報1308に示した、メディア:光沢ゴールドやマットフォトペーパーといったベンダ独自の情報はPDC203には記載されず、標準的な普通紙、写真用紙といったメディアのみがPDC203に記載される。このように、印刷データ生成ソフトウェア202もしくはOSが生成するPDC203には、印刷装置102から取得した情報1301のうち、標準的あるいは汎用的なFeatureやOptionのみが記載される。
【0049】
拡張アプリケーション204の印刷機能拡張ユニット207は、印刷データ生成ソフトウェア202もしくはOSが生成したPDC203を編集する。これにより、印刷データ生成ソフトウェア202を用いて印刷装置102へ印刷を行う際にユーザが利用できる機能を拡張することが可能である。具体的には、印刷機能拡張ユニット207がPDC203に新たなFeatureやOptionを記載する。このようにすることで、拡張アプリケーション204が提供する機能の追加、印刷装置102はサポートしているが印刷データ生成ソフトウェア202がサポートしていない機能の追加、を行うことができる。PDC203の編集により、機能の追加だけでなく、既存の機能の削除、印刷機能の設定値同士の排他関係(禁則情報)の追加も可能である。印刷機能拡張ユニット207がPDC203に追加する機能は、能力情報取得ユニット211が印刷装置102から取得する情報1301を用いて決定されてもよい。能力情報取得ユニット211は印刷装置102に対してIPPのGet-Printer-Attributesオペレーションを発行することにより能力情報1301を取得する。印刷機能拡張ユニット207は能力情報取得ユニット211が取得した能力情報のうち、既存のPDC203には存在しないFeatureやOptionをPDC203に追加するように構成されてもよい。また、印刷機能拡張ユニット207がPDC203に追加する機能はそれ以外の方法で決定されてもよい。例えば、共有情報210にあらかじめ格納されている情報に基づいて、印刷機能拡張ユニット207はPDC203に追加する機能を決定してもよい。
【0050】
<印刷設定画面拡張ユニットの表示する画面例>
まず、印刷設定画面拡張ユニット205による印刷設定画面表示の例を説明する前に、PCについて具体例を示しつつ説明する。PCとはPrintCapabilitiesのことであって、印刷データ生成ソフトウェア202がPDC203の内容に基づいて生成する、印刷装置102に関して設定可能な印刷設定項目が記載されたものである。PCはPDC203と同様、xml形式で記述されるものであって、図14にその具体例を示す。情報1401に示すPCはPDC301に基づいて、印刷データ生成ソフトウェア202が生成したものである。PCはPDC301に基づき生成されるため、その内容はPDC301に類似する。そのため、情報1401~情報1405の性質については、情報301~305の性質と同じであるためここでは説明を省略する。情報1402~情報1405によれば、印刷装置102に関する印刷設定として、それぞれ“用紙サイズ”、“メディアの種類”、“給紙方法”、“フチなし印刷”というFeatureを設定可能であることが示されている。また、“用紙サイズ”として、“A4”“B5”“A5”が、設定可能であることが示されている。また、“メディアの種類”として、“自動選択”“普通紙”“写真用紙”“封筒用紙”が、設定可能であることが示されている。また、“給紙方法”として、“自動選択”“メイントレイ”“リアフィード”“CD/DVDフィード”が、設定可能であることが示されている。また、“フチなし印刷”として、“オン”“オフ”が設定可能なOptionであるということが示されている。一方、PDC301とPC1201との相違点としては、各FeatureやOptionの属性値として“DisplayName”が記述されていることにある。DisplayNameは、各FeatureやOptionが印刷設定画面に表示される際の文言を表すものであって、印刷データ生成ソフトウェア202が設定する値である。このようにPCには、印刷装置102について、設定可能なFeatureとそのOption値一覧が記載される。
【0051】
続いて、印刷設定画面拡張ユニット205により表示される印刷設定画面について図5を用いて説明する。印刷機能拡張ユニット207により編集されたPDC203に基づき、PCが生成される。図5(a)の印刷設定画面501は、生成されたPCに基づき、印刷設定画面拡張ユニット205が表示する画面の一例である。図5に示す画面の例はあくまで例であって、上述したPC1201に基づいてはいない。コントロール502は印刷に使用する用紙の種類を設定可能なコントロールアイテムである。コントロール502では、例えば、情報1403で定義されている、“AutoSelect”(自動選択)、“Plain”(普通紙)、“Photograpchic”(写真用紙)、“EnvelopePlain”(封筒用紙)、を設定可能である。
【0052】
コントロール503は印刷に使用する用紙サイズを設定可能なコントロールアイテムであり、例えば、情報1402で定義されているA4やB5,A5といった項目を設定可能である。図5(b)に示すリスト510はコントロール503を展開した際の表示状態を示しており、ユーザは展開されたリストの中から用紙サイズを選択可能である。
【0053】
コントロール504は印刷装置102の印刷用紙の給紙方法を設定可能なコントロールである。コントロール504は、例えば、情報405で定義されている“AutoSelect”(自動選択)“Main”(メイントレイ)や”Rear”(リアフィード)、“Disc”(CD/DVDフィード)といった項目を設定可能である。図5(c)に示すリスト511はコントロール504を展開した際の表示状態を示しており、ユーザは展開されたリストの中から給紙方法を選択することができる。
【0054】
コントロール505は印刷の向きを設定可能なコントロールアイテムであり、縦および横の設定が可能である。コントロール506は両面印刷の有効・無効を切り替え可能なコントロールアイテムである。コントロール507は両面印刷時のとじ方向を設定可能なコントロールアイテムであり、例えば長辺とじ、短辺とじといった項目が設定可能である。コントロール509はキャンセルボタンであり、設定を反映せずに画面が閉じられる。コントロール508はOKボタンであり、設定を反映して画面が閉じられる。
【0055】
図5に示す画面の例はあくまで一例であって、実際にはその他のFeatureやOptionを設定可能な画面構成としてもよいし、印刷設定以外の情報を表示してもよい。
【0056】
<印刷データ生成ソフトウェアにおける課題>
ここまで、印刷データ生成ソフトウェア202と拡張アプリケーション204による印刷システムについて述べてきた。印刷データ生成ソフトウェア202および拡張アプリケーション204は、印刷装置102と接続され、かつ、印刷装置102と対応した印刷キューがOS214によって生成されることで利用可能である。具体的には、ホストコンピュータ101に印刷装置102が接続された場合、OS214は印刷装置102からデバイス識別情報を取得し、印刷データ生成ソフトウェア202と対応する印刷キューを作成する。OS214は、取得されたデバイス識別情報に対応する拡張アプリケーション204を、インターネットを介してサーバからダウンロードし、インストールする。ホストコンピュータ101が印刷装置102と接続されていない場合、印刷キューが作成されない。また、ホストコンピュータ101と印刷装置102が接続されていない場合、デバイス識別情報も取得できないため、拡張アプリケーション204は関連付けられない。そのため、ユーザが印刷データを印刷装置102ではなく、アプリケーション213に出力したい場合などに、印刷データ生成ソフトウェア202と拡張アプリケーション204による印刷システムを利用することができない。印刷データをアプリケーション213に出力するために、OS214はホストコンピュータ101と印刷装置102とが接続された状態でなくとも印刷データ生成ソフトウェア202と対応する印刷キューを作成可能になる必要がある。
【0057】
そこで、本形態はここまで述べてきた構成に加え、アプリケーション213が印刷データ生成ソフトウェア202を割り当てた仮想印刷キューの生成をOS214に指示する手段を有する。OS214は、印刷装置102との接続がなくとも印刷データ生成ソフトウェア202を割り当てた印刷キューを作成可能な手段を有する。さらに、アプリケーション213専用の拡張アプリケーション204が上記キューに入稿された中間印刷データに基づき生成した印刷データをアプリケーション213に提供する手段を有する構成とする。上記の記載の構成により、上述した課題を解決する。
【0058】
本構成により、OS214は情報処理装置101と印刷装置102が接続されていなくとも、印刷データ生成ソフトウェア202と対応する印刷キューを作成可能となる。このように印刷装置102との接続をなし作成された印刷キューのことを以降、仮想キューと呼ぶ。また、実際に印刷装置102と対応づく印刷キューのことは単に印刷キューと呼ぶ。仮想キューに対して、拡張アプリケーション204を関連付けることが可能である。これにより、仮想キューを印刷先とした印刷指示があった場合、OS214が生成した中間印刷データをもとに、印刷データ編集ユニット208が加工、生成した印刷データをアプリケーション213に出力することが可能になる。これは上述したように、スキップ制御ユニット206によるスキップ指示によって、印刷中間データが印刷データ生成ソフトウェア202ではなく、拡張アプリケーション204の印刷データ編集ユニット208に渡されるために可能となる。すなわち、ユーザがアプリケーション213専用の仮想キューに対して所望のデータの印刷を指示することで、アプリケーション213に、印刷データに変換された所望のデータを取り込むことが可能となる。
【0059】
本実施形態において、アプリケーション213が例えばレイアウト編集・ドキュメント管理アプリケーションなどである。レイアウト編集アプリケーションやドキュメント管理アプリケーションにおいては、レイアウト対象や管理対象のデータを統一されたフォーマットで保持することが望ましい。統一されたフォーマットとはたとえば、xps形式やPDF形式などである。描画アプリケーション201により出力される文書ファイルや画像ファイルがアプリケーション213にとって未知のデータ形式であることが考えられる。描画アプリケーション201から仮想キューを指定して印刷することが可能であれば、描画アプリケーション201の出力を印刷データ(xpsやPDF)に変換することが可能である。つまり、ユーザがある描画アプリケーション201を用いて作成した文書ファイルや画像ファイルを仮想キューに対して印刷することで、当該ファイルは、拡張アプリケーション204によって印刷データへと変換される。変換された印刷データを取り込むことで、アプリケーション213は多種多様なデータを統一されたフォーマットで保持することが可能となる。
【0060】
また、アプリケーション213がベンダ独自のクラウド印刷サービスのためのアプリケーションであってもよい。クラウド印刷では、インターネット上のクラウドサーバを経由して各印刷装置へと印刷データが送信される。そのため情報処理装置101と印刷装置102が入出力インタフェース116を介して接続されている必要がなく、アプリケーション213が印刷データをクラウドサーバに送信すればよい。アプリケーション213がクラウドサーバに送信する印刷データは、印刷装置102が解釈可能な所定のフォーマットである必要があるため、多種多様なデータを統一されたフォーマットに変換可能な本構成は有用である。本構成によれば、クラウド印刷サービスは拡張アプリケーション204によって変換された印刷データを取り込むことで、多種多様なデータを所定のフォーマットで取り込むことができるため、多種多様なデータをクラウド印刷することが可能となる。
【0061】
<印刷データ生成ソフトウェアの仮想キューを作成する例>
以降、アプリケーション213の一例としてレイアウト編集アプリケーションを用いて、本実施形態の具体例を説明する。アプリケーション213はアプリケーション213のレイアウト編集画面上で、xps形式で取り込んだ複数のレイアウト対象のオブジェクトの配置を自由に編集し、印刷装置102を指定して印刷を指示することができる。また、アプリケーション213の名称は“Layout App”とする。
【0062】
図6はアプリケーション213をOS214にインストールする際のシーケンス図である。まず、OS214はP601でユーザからのアプリケーション213のインストール指示を受け付ける。OS214はユーザからのアプリケーション213のインストール指示を受け付けると、アプリケーション213のインストーラを実行し、アプリケーション213にインストール実行を指示する。アプリケーション213は、印刷装置102に同梱されるCD―ROMをホストコンピュータ101で読み込み、インストーラを実行することでインストールされる。アプリケーション213は、印刷装置102を製造、または、販売する会社のホームページから取得可能であってもよい。
【0063】
アプリケーション213はOS214からインストール指示を受け付けると、P602でインストール処理を実施する。インストール処理には、アプリケーション213の諸処理を実行する各モジュールを情報処理装置101の外部記憶装置114に配置する処理などが含まれる。また、アプリケーション213はP602のインストール処理として、アプリケーション213の起動モジュールの外部記憶装置114における所在を示すURI(Uniform Resource Identifier)をOS214に登録する処理を行う。例えば、アプリケーション213の起動モジュールの所在を“LayoutAppLauncher:”というURIで登録しておく。このようにすることで、OS214上の異なるアプリケーションからOS214のAPIを用いてURI“LayoutAppLauncher”を指定することで、アプリケーション213を起動することが可能となる。
【0064】
アプリケーション213はインストール処理が完了したのちに、P603に記載の仮想キュー作成指示をOS214に発行する。アプリケーション213がOS214に発行する仮想キュー作成指示とは印刷データ生成ソフトウェア202を割り当てた仮想キューを生成するようにOS214に指示するものであって、OS214に搭載された機能Printui.dllを用いて発行される。具体的には、アプリケーション213が図23に示すコマンドを実行することで発行される。
【0065】
上記コマンドの詳細を説明する。Printui.dllは、OS214に搭載されたプリンタ構成ダイアログボックスで使用される機能を含む実行可能ファイルである。Rundll32 printui.dll,PrintUIEntryでは上記実行可能ファイルを指定している。/irはOS214にインストールされたドライバを指定して印刷キューを作成することを指示するパラメータである。/bは作成される印刷キューの名称を指定するパラメータであり、続く文字列“Layout App”によって名称を指定している。ここで作成される仮想キューへの印刷はアプリケーション213へのデータ出力となるため、ユーザが判別しやすいようにアプリケーション213の名称を印刷キューの名称とすることが望ましいが、それ以外の名称であってもよい。/mは印刷装置のモデル名を指定するパラメータであり、続く文字列“LayoutApp”によって仮想的な印刷装置のモデル名を指定している。詳細は後述するが、モデル名はアプリケーション213を一意に特定できる名称とする。/rは、印刷キューのデータ出力先となるポートを指定するパラメータであり、続く文字列“NUL:¥”によって、NULLポートを指定している。/dnとは、作成キューに割り当てるドライバ名を指定するパラメータであり、続く文字列“IPP Class Driver”によって、印刷データ生成ソフトウェア202を指定している。/pcは仮想キューでの印刷に関する能力情報を記載したファイルを指定すること示すパラメータである。以降に続く文字列“C¥...¥LayoutAppQueueConfig.xml”によって、能力情報を記載したファイルの所在を指定する。前述したように印刷データ生成ソフトウェア202は、印刷装置102から取得した能力情報を基に、印刷装置102と対応づく印刷キューのPDCを生成する。しかし、ここで作成する印刷キューは、印刷装置102と対応づいていないため、印刷データ生成ソフトウェア202は仮想キューのPDCを生成するための能力情報を取得できない。そこで、印刷データ生成ソフトウェア202は、アプリケーション213がパラメータ/pcによって指定したファイルに記載された能力情報を基に、仮想キューのPDCを生成する。
【0066】
アプリケーション213が/pcパラメータによって指定した仮想キューでの印刷に関する能力情報の例を図15に示す。情報1501は、アプリケーション213が/pcパラメータによって指定したファイルに記載された、仮想キューでの印刷に関する能力情報の一例である。情報1501はxml形式を例としているが、印刷データ生成ソフトウェア202が解釈可能であればそれ以外の形式で記載されてもよい。情報1502は情報306で説明したように、各FeatureやOptionの名前空間の接頭辞を定義する情報である。情報1503は、仮想キューへの印刷時にPageMediaSize(印刷データのサイズ)としてISOA4やISOA5、ISOB5が指定可能であることを表している。情報1504は、仮想キューへの印刷時にPageOutputColor(カラー設定)として、Color(カラー)と、Monochrome(モノクロ)が設定可能であることを表している。アプリケーション213の例として、レイアウト編集アプリケーションを想定した場合は、仮想キューへの印刷はあくまでも印刷データを生成するためのものであるため、印刷データ生成に関わる能力情報のみを定義するだけでよい。実際に印字される用紙に関する設定は、アプリケーション213から印刷装置102に印刷を指示する際に設定すればよい。情報1501に示した例はあくまで一例であって、実際には例示した能力情報以外の情報を記載してもよいし、一方、アプリケーション213が上述したクラウド印刷サービス向けのアプリケーションである場合にはこの通りではない。この場合、アプリケーション213はクラウドサーバへのデータ送信を担うアプリケーションであって、印刷設定を行うことは想定されていない。そのため、実際に印字される用紙に関する設定も仮想キューでの印刷時に設定しておく必要がある。仮想キューでの印刷時に設定した印刷設定は拡張アプリケーション204がアプリケーション213へと出力するデータに含めばよく、アプリケーション213は印刷対象画像とともに印刷設定情報をクラウドサーバへ送信すればよい。そのため、アプリケーション213が上述したクラウド印刷サービス向けのアプリケーションである場合には、仮想キューでの印刷に関する能力情報は情報1301のように、印刷装置102の能力情報に等しい情報であることが望ましい。このように、仮想キューでの印刷に関する能力情報はアプリケーション213の種類に応じて異なる能力情報であってもよい。以上、示したようにアプリケーション213はOS214に搭載された機能Printui.dllを用いて、OS214に対して、印刷データ生成ソフトウェア202を割り当てた仮想キューの生成をOS214に指示することが可能である。
【0067】
アプリケーション213からの仮想キュー作成指示を受け付けると、OS214は、P604で、アプリケーション213から受けつけた指示内容に基づき、仮想キューを作成する。上記の例によれば、OS214は出力ポートがNULポートであり、名称が“LayoutApp”であり、印刷データ生成ソフトウェア202を割り当てた、印刷キューを作成する。ここで図中には非図示だが、OS214は印刷データ生成ソフトウェア202にPDC作成指示を発行する。印刷データ生成ソフトウェア202は、/pcで指定されたファイルC¥...¥LayoutAppQueueConfig.xml”に記載された能力情報を基に、仮想キューのPDCを作成する。ここで印刷データ生成ソフトウェア202が作成したPDCの例を図4に示す。情報401、すなわちPDC401は印刷データ生成ソフトウェア202が情報1501に基づき作成したものである、情報402~情報404は、情報1502~情報1504と同様のため説明は省略する。
【0068】
続いて、アプリケーション213専用の拡張アプリケーション204がOS214にインストールされていない場合、OS214はP605でインターネットを介してサーバからアプリケーション213専用の拡張アプリケーション204をダウンロードする。OS214は、作成した仮想キューのモデル名“LayoutApp”に基づき、ダウンロードすべき拡張アプリケーション204を決定する。OS214はアプリケーション213専用の拡張アプリケーション204をダウンロードした後、P606で拡張アプリケーション204のインストールを実行する。P606でOS214が拡張アプリケーション204のインストールを実行すると、拡張アプリケーション204はP607のインストール処理を行う。拡張アプリケーション204はP607でのインストール処理には拡張アプリケーション204の各ユニットの諸処理を実行するモジュールを情報処理装置101の外部記憶装置114に配置する処理などが含まれる。
【0069】
OS214は続いて、P608に移行し、仮想キューと拡張アプリケーション204を関連付ける。P608での関連付けによって、OS214は仮想キューへの印刷指示を受けつけると、拡張アプリケーション204の諸ユニットを起動することが可能になる。
【0070】
P608での関連付け処理が終了すると、OS214はP609で拡張アプリケーション204に対して、印刷機能拡張指示すなわち、PDC401の編集指示を行う。OS214は印刷キューに対して拡張アプリケーション204を関連付けたタイミング等で、拡張アプリケーション204の印刷機能拡張ユニット207を起動し、印刷機能拡張指示を行う。OS214は拡張アプリケーション204が初めて関連付けられたタイミングの他にも、印刷設定画面拡張ユニット205によって印刷設定画面が開かれたタイミングなどにも印刷機能拡張ユニット207を起動し、印刷機能拡張指示を行う。
【0071】
拡張アプリケーション204の印刷機能拡張ユニット207は、OS214から印刷機能拡張指示を受け付けると、P610において印刷データ生成ソフトウェア202が生成したPDC401を取得し、PDC401を編集する。具体的には印刷機能拡張ユニット207は、アプリケーション213に印刷データを出力するために、印刷データ編集ユニット208が印刷データを一時的に格納する領域を指定する情報をPDC401に記載する。前述したように、PDC401に記載した情報はPrintCapabilitiesに反映される。また、アプリケーション213はPrintCapabilitiesを参照することが可能である。そのためアプリケーション213はPrintCapabilitiesを参照することで、印刷データ編集ユニット208が印刷データを格納した領域を判断することが可能となる。アプリケーション213が印刷データを取得する処理については後述する。図16にP610で印刷機能拡張ユニット207がPDC401を編集した後のPDCの例を示す。情報1601は印刷機能拡張ユニット207がPDC401を編集した後のPDCである。情報1602~1604については、情報402~情報404と同様のため説明を省略する。情報1605は印刷機能拡張ユニット207がPDC401に対して追加した情報である。情報1605はFileOutputPathとして印刷データ編集ユニット208が生成した印刷データを一時的に格納する領域を文字列で表している。この例では、情報処理装置101の外部装置114のC:¥Users¥test¥AppData¥Roaming¥Temp¥LayoutApp¥という領域に印刷データ編集ユニット208が印刷データを格納することを示している。情報1605に記載する領域は、拡張アプリケーション204が任意に決定してもよいし、拡張アプリケーション204が静的に保持しておいたLayoutApp用の格納領域を示す情報を用いてもよいし、それ以外の方法で決定してもよい。また、印刷機能拡張ユニット207は上述した以外の能力情報に関してもPDC401に追加してもよい。例えば、アプリケーション213がクラウド印刷サービス向けのアプリケーションである場合には、印刷装置102の能力情報1501と同等の能力情報をPDC401に追加してもよい。また、印刷機能拡張ユニット207がPDC401に追加する情報はそれ以外の方法、たとえば非図示のサーバ上から取得する方法で取得してもよい。
【0072】
印刷機能拡張ユニット207がPDC401をPDC1601へと加工したことによって、PrintCapabilitiesの情報も更新される。PDC1601を反映したPrintCapabilitiesの例を図17に示す。情報1701はPDC1601を基にしたPrintCapabilitiesである。情報1702と情報1705については、それぞれ情報1402と情報1406と同様のため、説明を省略する。情報1703は、仮想キューへの印刷設定として、カラーモード機能の“カラー”と“モノクロ”のOptionを設定可能であることを示している。情報1704は情報1605と同様に、印刷データ編集ユニット208が生成した印刷データを格納する領域を示す情報である。アプリケーション213はPC1701の情報1704を参照することで、印刷データ編集ユニット208が印刷データを格納する領域を判断することが可能になる。以上のように、印刷機能拡張ユニット207はP610において、印刷機能拡張処理として、PDC401の編集を行う。例として印刷機能拡張ユニット207がPDC401に追加した情報はあくまで一例にすぎず、例示した以外の仮想キューでの印刷データ生成に関する印刷機能、例えば用紙サイズなどをPDC401に追加してもよい。
【0073】
P610の印刷機能拡張処理が終了すると、P611で拡張アプリケーション204はOS214に印刷機能拡張処理の終了通知を行う。OS204は拡張アプリケーション204から印刷機能拡張処理の終了通知を受け取ると、P612でアプリケーション213に仮想キュー作成の終了通知を行う。
【0074】
ここで、図6で示されるアプリケーション213の動作の詳細について図19のフローチャートを用いて説明する。図19に記載のフローチャートは、アプリケーション213のプログラムをCPU111が実行することにより実現される。以下、符号のSは、各工程のステップを示す。
【0075】
CPU111は、OS214からアプリケーション213のインストール指示を受け付けたか否かを判定する(S1901)。インストール指示を受け付けていない場合、CPU111はS1901に処理を戻す。インストール指示を受け付けた場合、CPU111はS1902に記載の処理を実行する。
【0076】
CPU111は、アプリケーション213のインストール処理を行う(S1901)。S1901において、CPU111はアプリケーション213が記憶する能力情報を記載したファイルを任意のファイルパスで指定される領域に記憶させる。このファイルパスは、S1903においてOS214に通知されるパスであり、図6のP603で発行されるコマンド中で指定されるパスである。
【0077】
CPU111は、OS214に仮想キューの生成を指示する(S1902)。CPU111は、図6のP603に記載のコマンドを発行し、OS214に仮想キューの生成を指示する。
【0078】
CPU111は、仮想キューの生成が成功したか否かを判定する(S1903)。CPU111は、OS214から仮想キューの生成が成功したことを示す情報を受信した場合、S1907へと処理を進める。OS214から仮想キューの生成が失敗したことを示す情報を受信した場合、または、仮想キューの生成指示から所定の時間が経過しても仮想キューの生成が成功したことを示す情報を受信しなかった場合、CPU111はS1905へと処理を進める。
【0079】
仮想キューの生成が成功しなかった場合、CPU111はエラー通知を行う(S1905)。たとえば、CPU111は不図示のエラーメッセージを表示部119に表示させる。なお、S1905を行わず、S1906の処理を行うとしてもよい。
【0080】
CPU111は、仮想キューが生成されていないことを示す仮想キュー未生成フラグをTRUEに設定する(S1906)。CPU111は、アプリケーション213の起動時に仮想キュー未生成フラグを参照する。仮想キュー未生成フラグがTRUEに設定されている場合、CPU111は図19のS1903~S1909に記載の処理を実行する。このようにすることで、アプリケーション213のインストール時に仮想キューの生成に失敗したとしても、アプリケーションの起動時に仮想キューの生成を行うことができる。
【0081】
仮想キューの生成が成功した場合、CPU111は仮想キュー未生成フラグをFALSEに設定する(S1907)。
【0082】
CPU111は、アプリケーション213専用の拡張アプリケーションのインストールが完了したか否かを判定する(S1908)。CPU111は仮想キューのプロパティを参照し、プリントキューに対応づけされる仮想キューに拡張アプリケーションのアプリケーションIDが設定されているか否かを判定する。拡張アプリケーションのIDが設定されている場合、CPU111は本フローチャートに記載の処理を終了する。拡張アプリケーションのインストールが完了していない場合、CPU111はエラー通知を表示する(S1909)。S1909において、CPU111は表示部119にエラーメッセージを表示させる。その後、CPU111は拡張アプリケーションのダウンロード画面を表示する(S1910)。アプリケーション213は、あらかじめ拡張アプリケーションのダウンロードページのURLを記憶している。CPU111は、アプリケーション213が記憶するURLにアクセスし、拡張アプリケーションのダウンロードページを表示する。拡張アプリケーションのダウンロードが完了した場合、CPU111が仮想キューと拡張アプリケーションを対応づけする処理をOS214に依頼するとしてもよい。
【0083】
また、S1909において表示される通知において、拡張アプリケーション204のダウンロードページを表示するか否かの指示をユーザから受け付ける画面の表示を行い、ユーザ指示に従ってS1910を行うか否か切り替えるとしてもよい。
【0084】
以上が、アプリケーション213のインストールにかかる諸処理の例である。ここまで説明してきたように、アプリケーション213は自身のインストール時にOS214に対して仮想キューの作成指示を行い、OS214にアプリケーション213に対応する仮想キューを生成させる。以降で説明する処理によって、仮想キューに対して印刷されたデータは、印刷データ編集ユニット208によって、所定のフォーマットに変換され、アプリケーション213に出力される。
【0085】
<仮想キューを用いたアプリケーションへのデータ出力の例>
図7は本形態における、アプリケーション213へのデータ出力および、アプリケーション213からの印刷にかかる諸処理のシーケンス図を示した図である。図7を用いてアプリケーション213へのデータ出力およびアプリケーション213からの印刷時の諸処理について説明する。
【0086】
まず、アプリケーション213へのデータ出力にかかる諸処理について説明する。アプリケーション213へのデータ出力は仮想キューへの印刷によって可能となる。まず、P701で描画アプリケーション201はユーザからの印刷指示を受け付ける。ユーザは事前に描画アプリケーション201で文書や図面などを作成し、印刷対象として当該文書や図面を指定しているものとする。ここでユーザはアプリケーション213にデータを出力するために、描画アプリケーション201の印刷設定画面上で印刷先として、アプリケーション213に対応づく仮想キューを選択する。図8に描画アプリケーション201の印刷設定画面の一例を示す。画面801は描画アプリケーション201が表示部119に表示させる描画アプリケーション201の印刷設定画面である。画面801には802~807のオブジェクトが配置されている。コントロール802はOS214に登録された仮想キューを含む印刷キューの一覧から印刷先の印刷キューを指定可能なコントロールであり、図8においてはコントロールを展開した状態で図示している。コントロール802では、アプリケーション213に対応する仮想キューである“Layout App”が指定されている。描画アプリケーション201はコントロール802で選択中の仮想キューに対応するPDC401を基に生成されたPrintCapabilities1701を取得でする。描画アプリケーション201の印刷設定画面801はPC1701に記載の機能を、ユーザに指定可能に構成し、ユーザが指定した機能を指定した印刷を実行可能である。例えばコントロール803は用紙サイズを指定可能なコントロールである。なお、仮想キューが選択されている場合には、用紙サイズは生成する印刷データに含まれる描画データに基づく画像のサイズである。A4の他にも、A5やB5などの用紙サイズを選択可能である。コントロール804はカラー印刷を行うかモノクロ印刷を行うかを選択することができるコントロールである。このようにコントロール803やコントロール804ではPC1701に記載のOptionを選択可能である。ボタン805はユーザがポインティングデバイス114など用いて押下することで印刷実行を指示可能なボタンである。ボタン806はユーザがポインティングデバイス114など用いて押下することで画面801を描画アプリケーション201のデータ編集画面に遷移させるボタンである。画像807はユーザが描画アプリケーション201のデータ編集画面上で作成した文書や図面が、コントロール803で選択した用紙上に配置された画像である。画像807の下には、表示しているページを示すオブジェクトと、表示対象のページの切り替えを行うオブジェクトが配置されている。描画アプリケーション201のP701の印刷指示受付とは、すなわち、ユーザがボタン805を押下することを受け付けることである。図8に示した印刷設定画面はあくまで例であって、図示した以外のコントロールやその他の要素が表示されてもよい。ユーザからの印刷指示を受け付けると、描画アプリケーション201はP702に移行し、画像807を印刷対象画像とし、コントロール802で選択されている“Layout App”の仮想キューを印刷先とし、OS214に印刷指示を送る。
【0087】
印刷指示があると、拡張アプリケーション204のスキップ制御ユニット206が起動される。スキップ制御ユニット206は印刷データ生成ソフトウェア202による印刷データの生成をスキップする様、印刷データ生成ソフトウェア202に設定する。
【0088】
描画アプリケーション201からOS214に印刷指示が送られると、OS214はP703で、中間印刷データを生成する。上述したように、印刷データ生成ソフトウェア202としてIPP Class Driverを仮定すると、OS214は中間印刷データとして、xps形式のデータを生成する。OS214は中間印刷データを生成するとP704の印刷データ生成指示処理に移行する。OS214はP702の印刷指示が拡張アプリケーション204と関連付けられている仮想キューを印刷先としていることを検知して、中間印刷データとともに印刷データ生成指示を拡張アプリケーション204に送る。
【0089】
拡張アプリケーション204はOS214から印刷データ生成指示を受け受けると、P705の処理を開始する。P705において、拡張アプリケーション204の印刷データ編集ユニット208が、OS214から受け取った中間印刷データを基に印刷データを生成する。印刷データのフォーマットはアプリケーション213によって異なる。拡張アプリケーション204は、アプリケーション204で利用するファイル形式を予め記憶しているものとする。ここではアプリケーション213がレイアウト編集アプリケーションである場合を想定しており、印刷データの形式はレイアウト編集が容易なxps形式を用いるものとする。アプリケーション213がドキュメント管理アプリケーションであれば印刷データの形式はPDF形式であってもよい。印刷データ編集ユニット208は、印刷データ生成処理を完了すると、P706の印刷データ格納処理を行う。ここでは、アプリケーション213に印刷データを渡すために、PDC1601の情報1605に記載した領域に印刷データを格納する。なお、印刷データ編集ユニット208がP706で情報1605に記載の領域に格納するデータは印刷データ以外を含んでもよい。たとえば、アプリケーション213がアプリケーション213のレイアウト編集画面に表示するための印刷対象の低解像度ビットマップ画像を印刷データ編集ユニット208が作成しておいて格納してもよい。P706では、このようにアプリケーション213が必要とする諸データを印刷データ編集ユニット208が情報1605に記載の領域に格納する。P706の処理が完了すると、拡張アプリケーション204はP707でアプリケーション213を起動する処理を行う。具体的に拡張アプリケーション204は、OS214のURI起動に関するAPIを用いて、URI“LayoutAppLauncher”を指定して、アプリケーション213を起動する。
【0090】
アプリケーション213は拡張アプリケーション204から起動されると、まずP708の印刷データ取得処理を行う。P708において、アプリケーション213はPC1701の情報1704を参照して印刷データが格納された領域を決定し、当該領域に格納された印刷データを取得する。なお、上記領域に格納された印刷データは一時的に格納されたものであるため、アプリケーション213が印刷データを取得次第、アプリケーション213は当該領域に格納されたデータを削除する。この時、拡張アプリケーション204はアプリケーション213を起動する際のパラメータによって、印刷データ格納領域をアプリケーション213に伝えてもよい。この場合アプリケーション213は起動時のパラメータによって、印刷データ格納領域を判断する。また、その際に拡張アプリケーション204は、印刷データのファイル名をアプリケーション213の起動パラメータに含めてもよい。
【0091】
アプリケーション213が起動し、印刷データを取得すると、P709のデータ編集指示受付を開始する。ここではアプリケーション213をレイアウト編集アプリケーションとしているため、データ編集指示受付とは、アプリケーション213のレイアウト編集画面上で編集対象の画像を配置するユーザ操作を受け付ける処理を指す。アプリケーション213がドキュメント管理アプリケーションである場合は、取得したデータのファイル名や分類を決定し、アプリケーション213のどの領域にデータを格納するかを決定するユーザ操作を受け付ける処理であってもよい。このように、P709におけるデータ編集指示受付とは、アプリケーション213の主たる利用目的に沿ったユーザ操作を受け付ける処理であればよい。以上、アプリケーション213が仮想キューに印刷指示されたデータを取得する諸処理について説明した。このように、OS214に標準搭載された印刷データ生成ソフトウェア202を割り当てた仮想的な印刷キューと、拡張アプリケーション204と組み合わる。このようにすることで、アプリケーション213が様々な形式のデータを所定のフォーマットで取得することが可能になる。
【0092】
アプリケーション213からの印刷にかかる諸処理の説明をする。P710において、アプリケーション213はアプリケーション213の印刷設定画面上でユーザからの印刷実行指示を受け付ける。図9を用いてアプリケーション213の印刷設定画面を説明する。画面901はアプリケーション213の印刷設定画面である。画面901は、902~909のオブジェクトで構成される。コントロール902はOS214に登録された仮想キューを含む印刷キューから、一部の印刷キューを除いた印刷キューの一覧から印刷先の印刷キューを指定可能なコントロールである。一部とは、アプリケーション213の仮想キューがあげられる。このように、アプリケーション213はOS214に登録された印刷キューのうち、任意の印刷キューをコントロール902で選択可能にしている。ここで図9における“プリンタ1”とは、印刷装置102のことを指すとする。アプリケーション213はコントロール902で選択中の印刷キューに対応するPDC301を基に生成されたPrintCapabilities1401を取得できる。描画アプリケーション201の印刷設定画面901はPC1401に記載の機能を、ユーザに指定可能に構成し、ユーザが指定した機能を指定した印刷を実行可能である。たとえばコントロール903は印刷する用紙のサイズを設定可能なコントロールである。このようにコントロール903では印刷装置102に対応するPDC301の情報302に記載の用紙サイズが選択可能である。コントロール904はレイアウト対象画像の枠線を表示し、印刷結果に反映させるか否かを選択可能なコントロールである。コントロール904で枠線ありを選択した場合、レイアウト対象であるオブジェクト908やオブジェクト909を囲う枠線が表示され、当該枠線も実際に印刷される。ボタン905はユーザがポインティングデバイス114など用いて押下することで印刷実行を指示可能な印刷ボタンである。ボタン906はユーザがポインティングデバイス114など用いて押下することで画面801をアプリケーション213のレイアウト編集画面に遷移させるキャンセルボタンである。オブジェクト907は、コントロール903で選択されている用紙サイズ上にユーザがアプリケーション213のレイアウト編集画面でレイアウト対象の画像を配置した成果物を配置した画像を示すオブジェクトである。ユーザはオブジェクト907を確認することで、実際の用紙に印刷される画像を確認することができる。オブジェクト908はP701~P707の処理によって、描画アプリケーション201から出力されたオブジェクト807の画像ファイルを示すオブジェクトである。オブジェクト909は非図示の文書作成アプリケーションから出力された文書ファイルを示すオブジェクトである。本実施形態では描画アプリケーション201から、仮想キューを選択して印刷指示を行うとアプリケーション213を起動する。アプリケーション213が起動された状態で、描画アプリケーション201から仮想キューを選択して印刷指示をする。このとき、起動されているアプリケーション213が当該印刷指示に従って生成された印刷データを取得し、表示する。このようにすることで、複数の描画アプリケーション201から出力された印刷データを一つのアプリケーション213が取得することができる。なお、オブジェクト908とオブジェクト909はアプリケーション213のレイアウト編集画面上でユーザ操作を受け付けるP709の処理によって、オブジェクト907のようにレイアウトされた状態となっている。続くアプリケーション213のP710の印刷指示受付とは、すなわち、ユーザがボタン905を押下することを受け付けることである。図9に示した印刷設定画面はあくまで例であって、図示した以外のコントロールやその他の要素が表示されてもよい。ユーザからの印刷指示を受け付けると、アプリケーション213はP711に移行し、オブジェクト907を印刷対象画像とした印刷指示をOS214に送る。
【0093】
アプリケーション213からOS214に印刷指示が送られると、OS214はP712で、中間印刷データを生成する。上述したように、印刷データ生成ソフトウェア202としてIPP Class Driverを仮定すると、OS214は中間印刷データとして、xps形式のデータを生成する。OS214は中間印刷データを生成するとP713の印刷データ生成指示処理に移行する。OS214はP711の印刷指示が印刷装置102に対応した印刷キューを印刷先としていることを検知して、中間印刷データとともに印刷データ生成指示を印刷データ生成ソフトウェア202に送る。
【0094】
印刷データ生成ソフトウェア202は、OS214から中間印刷データとともに印刷データ生成指示を受け付けると、P714で印刷データ生成処理を行う。P714において、印刷データ生成ソフトウェア202が、OS214から受け取った中間印刷データを基に印刷データを生成する。印刷データのフォーマットは印刷データ生成ソフトウェア202が印刷装置102から取得した情報1302に基づき決定される。印刷データ生成ソフトウェア202は印刷データ生成処理を終えると、P715の処理を実行する。P715において、印刷データ生成ソフトウェア202は、生成した印刷データを印刷装置102に送信する。印刷装置102は印刷データ生成ソフトウェア202から印刷データを受信すると、P716において用紙に印刷データを印字する印字処理を実行する。以上、アプリケーション213が取得したデータがユーザによる編集操作を経て、印刷装置102に印字されるまでの諸処理について説明した。
【0095】
ここで、図20を用いて図7のP705~P707における拡張アプリケーション204の処理の詳細を説明する。図20の記載の処理は、CPU111が拡張アプリケーション204により提供されるプログラムを実行することで実現される。
【0096】
CPU111は、OS214から中間印刷データと印刷設定情報を受信したか否かを判定する(S2001)。なお、図20ではOS214から中間印刷データを受信しているが、印刷データ生成ソフトウェア202から中間印刷データを受信するとしてもよい。
【0097】
中間印刷データが受信されていない場合、CPU111はS2001へ処理を戻す。中間印刷データが受信されている場合、CPU111はS2002へと処理を進める。
【0098】
CPU111は、印刷設定情報に基づき中間印刷データを加工する(S2002)。描画アプリケーション201が提供する印刷設定画面において、画像の付加機能や複数ページ分の画像を1ページに割り付けする機能が有効に設定されている場合、CPU111は中間印刷データを編集する。
【0099】
CPU111は印刷データに含まれる描画データのフォーマットを決定する(S2003)。拡張アプリケーション204は、アプリケーション213が対応するフォーマットを予め記憶している。CPU111は、予め記憶するフォーマットを呼び出し、描画データのフォーマットとして設定する。なお、S2003において、所定の外部サーバにアクセスし、アプリケーション213の対応する描画データのフォーマットを取得するとしてもよい。この場合は、拡張アプリケーション204がアプリケーション213の対応する描画データのフォーマットを記憶する必要がなくなる。
【0100】
CPU111は、中間印刷データと印刷設定情報を描画データと印刷設定属性情報に変換し、印刷データを生成する(S2004)。
【0101】
その後、CPU111は、生成した印刷データをPDC1601の1605で示されるパスに格納する(S2005)。
【0102】
CPU111は、アプリケーション213を起動する(S2006)。CPU111は、OS214のURI起動に関するAPIを用いて、URI“LayoutAppLauncher”を指定して、アプリケーション213を起動する。
【0103】
CPU111はアプリケーション213の起動に成功したか否かを判定する(S2007)。アプリケーション213の起動に成功した場合、図20に記載の処理を終了し、拡張アプリケーション204を終了する。アプリケーションの起動に失敗した場合、CPU111はS2008に記載の処理を実行する。
【0104】
CPU111は、アプリケーション204の起動に失敗したことをユーザに通知する(S2008)。このとき、印刷データはS2005の格納先に格納されたままとなる。そして、ユーザがアプリケーション213は、ユーザが手動でアプリケーション213を起動した場合に、格納先から印刷データを自動で取得し、表示する。なお、アプリケーション213が起動時に自動で印刷データに含まれる描画データを表示するのではなく、ユーザが格納先のフォルダから当該データを読み出す指示をしたことに従ってデータの読み出しが行われるとしてもよい。
【0105】
なお、本実施形態では、アプリケーションの起動に失敗した場合にユーザに通知を行ったが、S2008をスキップし、通知をおこなわなくてもよい。
【0106】
このように、実施形態1によればOS214に標準搭載された印刷データ生成ソフトウェア202を割り当てた仮想的な印刷キューと、拡張アプリケーション204と組み合わせて用いる。このようにすることで、アプリケーション213が様々な形式のデータを所定のフォーマットで取得し、印刷装置102に印刷することが可能になる。
【0107】
なお、図7の説明においては、説明簡素化のために“印刷装置102に対応する”拡張アプリケーション204については言及しなかったが、実際には印刷装置102に対応する拡張アプリケーション204がOS214にインストールされていてもよい。その場合、印刷データ生成ソフトウェア202のP714およびP715の処理は、印刷装置102に対応する拡張アプリケーション204が実行することとなる。
【0108】
なお、本実施形態では、アプリケーション213と拡張アプリケーション204はそれぞれ異なる手順で取得されるものとして説明した。アプリケーション213が拡張アプリケーション204を内包する形で取得され、アプリケーション213のインストール時に、拡張アプリケーション204もインストールされるとしてもよい。
【0109】
また、ここまでの説明では、アプリケーション213例としてレイアウト編集アプリケーションを用いて説明してきたが、本形態はアプリケーション213の種類を限定するものではない。アプリケーション213はレイアウト編集アプリケーション以外であってもよい。前述したようにたとえば、アプリケーション213はクラウド印刷サービスであってもよい。その場合、P711における印刷指示はOS214に対してではなく、非図示のクラウドサーバへと送信されることとなる。P711における印刷指示には、印刷対象画像や印刷先を指定する情報も含まれる。そのため、クラウドサーバはクラウド印刷サービスであるアプリケーション213から受信した印刷先情報から印刷装置102を特定し、同じく受信した印刷対象画像を印刷装置102へと送信することが可能になる。
【0110】
<<実施形態2>>
実施形態1では、拡張アプリケーション204がアプリケーション213専用の拡張アプリケーションとして動作する例を示した。アプリケーション213とは異なるアプリケーションにおいても仮想キューを用いたデータ出力を実現するためには当該アプリケーション専用の拡張アプリケーション204が必要となる。そこで実施形態2では、拡張アプリケーション204が印刷キューの名称に基づき、印刷先がどのアプリケーション213であるのか、もしく印刷装置102であるのかを判断する構成を有する。単一の拡張アプリケーション204を異なる複数のアプリケーション213や印刷装置102に対応する拡張アプリケーションとして動作させる例を説明する。以降、特に言及がない限り、実施形態2の構成は実施形態1の構成と同じものとする。
【0111】
図10を用いて実施形態2におけるアプリケーション213のインストール時の諸処理について説明する。図10はアプリケーション213のインストール時の諸処理のシーケンス図を示した図である。P1001~P1009の処理はP601~P609の処理と同様であるため、説明は省略する。拡張アプリケーション204はP1009でOS214から印刷機能拡張指示を受け付けると、P1010で、印刷キューがアプリケーション213を判別する処理を行う。具体的には、拡張アプリケーション204は印刷キューのモデル名を基に、印刷キューに対応する印刷先がどのアプリケーション213であるか、もしくは印刷装置102であるかを判別する。印刷キューのモデル名は、OS214のAPIを用いて取得可能である。
【0112】
続く、P1011で拡張アプリケーション204の印刷機能拡張ユニット207は印刷機能拡張処理としてPDC編集を行う。具体的には、P1011で印刷機能拡張ユニット207はP1010で拡張アプリケーション204が判別したアプリケーション213に対応する印刷データ出力先の領域をPDC401に追加する。実施形態2においては、印刷機能拡張ユニット207はPDC401にアプリケーション213を識別可能な情報とアプリケーション213への印刷データ出力先の領域の情報とを組みにしてPDC401に記載する。図18にP1011で印刷機能拡張ユニット207がPDC401を編集した後のPDCの例を示す。なお、図18はアプリケーション213としてドキュメント管理アプリケーションの2つのアプリがインストールされた後のPDCの例である。情報1801はP1011で印刷機能拡張ユニット207がPDC401を編集した後のPDCの一例である。
【0113】
情報1802~情報1804については情報1602~情報1604と同様であるため説明は省略する。情報1805は、アプリケーション213ごとに拡張アプリケーション204の印刷データ編集ユニット208が印刷データを出力する領域のパスを文字列で表した情報である。情報1805として、仮想キューに対応するアプリケーションを識別することができる属性名が設定されている。拡張アプリケーション204は、情報1805を参照することで仮想キューと対応づけされるアプリケーションを特定することができる。ここでは、仮想キューと対応づけされるアプリケーションとしてドキュメント管理アプリケーションが用いられることを示している。続く文字列“C:¥Users¥test¥AppData¥Roaming¥Temp¥DocMangemetApp¥”は、印刷データ編集ユニット208が印刷データを出力する領域の情報を記載している。
【0114】
なお、図10はアプリケーション213のインストール時のシーケンス図であるため、説明は省略するが、印刷装置102と情報処理装置101都が接続された場合にもOS214は印刷機能拡張ユニット207に印刷機能拡張指示を行う。その場合は、印刷機能拡張ユニット207は印刷装置102の能力情報に基づきPDC401を編集すればよい。具体的には、印刷機能拡張ユニット207は能力情報取得ユニット211が取得した能力情報のうち、既存のPDC203には存在しないFeatureやOptionをPDC401に追加するように構成されてもよい。また、印刷機能拡張ユニット207がPDC401に追加する機能はそれ以外の方法で決定されてもよい。例えば、共有情報210にあらかじめ格納されている情報に基づいて、印刷機能拡張ユニット207はPDC203に追加する機能を決定してもよい。
【0115】
P1011の印刷機能拡張処理が終了すると、拡張アプリケーション204はP1012の処理に移行する。なお、P1012~P1013についてはP611~P612と同様のため説明を省略する。
【0116】
ここで、図10のP1010~P1012における拡張アプリケーション204の処理の詳細を図21のフローチャートを用いて説明する。図21のフローチャートに記載の処理は拡張アプリケーション204のプログラムをCPU111が実行することで実現される。
【0117】
CPU111は、OS214から印刷機能拡張の指示を受け付けたか否かを判定する(S2101)。CPU111は印刷機能拡張の指示を受け付けていない場合、S2101へ処理を戻す。印刷機能拡張の指示を受け付けた場合、CPU111は拡張アプリケーション204の印刷機能拡張ユニット207を起動し、S2102に記載の処理を実行する。
【0118】
CPU111は、選択されている印刷キューが仮想キューであるか否かを判定する(S2102)。CPU111は、印刷キューの名称が予め記憶されたアプリケーション213に対応する名称である場合、当該印刷キューは仮想キューであると判定する。選択されている印刷キューが仮想キューでない場合、CPU111はS2103へ処理を進める。選択されている印刷キューが仮想キューである場合、CPU111はS2105へと処理を進める。
【0119】
選択されている印刷キューが仮想キューでない場合、すなわち印刷装置102に印刷データを送信する印刷キューである場合、CPU111は、印刷装置102から属性データを取得する(S2103)。CPU111はIPPで定義されるGet-Printer-Attributesオペレーションを用いて、属性データの取得処理を行う。
【0120】
CPU111は、印刷装置から取得した属性データに基づき、PDCを編集する(S2104)。ここでは、印刷データ生成ソフトウェア202のみでは扱うことができない属性データに基づくPDCの更新を行うことができる。
【0121】
次に、選択された印刷キューが仮想キューである場合を説明する。
【0122】
CPU111は、選択された仮想キューに対応するアプリケーション213がレイアウトアプリケーションであるか否かを判定する(S2105)。CPU111は仮想キューのモデル名に基づき、S2105に記載の判定を行う。仮想キューに対応するアプリケーションがレイアウトアプリケーションである場合、CPU111はSS2106へと処理を進める。CPU111は、拡張アプリケーション204が記憶しているレイアウトアプリケーション用の印刷データ格納先のパスを読み出し、PDCを編集する(S2106)。仮想キューに対応するアプリケーション213がレイアウトアプリケーションでない場合、CPU111はS2107に記載の処理を実行する。CPU111は、拡張アプリケーション204が記憶しているドキュメント管理アプリケーション用の印刷データ格納先のパスを読み出し、PDCを編集する(S2106)。
【0123】
なお、ここでは、拡張アプリケーション204が対応するアプリケーション213としてレイアウトアプリケーションとドキュメント管理アプリケーションの2つを挙げているが3つ以上のアプリケーションに対応するとしてもよい。また、ここでは、印刷キューが仮想キューである場合、実際の印刷装置102に接続されるものとして説明した。実際の印刷装置102に接続される場合に加えて、クラウドプリントサービスに接続される場合を仮想キューでないと判定してもよい。
【0124】
CPU111は、PDCの編集後、OS214に処理の完了を通知する(S2108)。その後、CPU111は図21に記載の処理を終了する。
【0125】
このように印刷機能拡張ユニット207がアプリケーション213を判別して、PDC1801に印刷データ編集ユニット208が印刷データを出力する領域の情報を記載する。これにより、後述する印刷の際、アプリケーション213は非図示のPCを参照し、自身に出力されるべき印刷データがどこに格納されているかを判別することが可能となる。また情報1805のように同一のPDC1801内にアプリケーション213ごとに異なる印刷データ出力先をわけて記載することで、単一の拡張アプリケーション204であっても複数の異なるアプリケーション213に対応することが可能となる。
【0126】
続いて、アプリケーション213による印刷時の諸処理について、図11を用いて説明を行う。図11はアプリケーション213による印刷時の諸処理の一例のシーケンス図である。P1101~P1104については、P701~P704と同様であるため説明を省略する。拡張アプリケーション204がP1104でOS214から印刷データ生成指示を受け付けると、拡張アプリケーション204がP1105で印刷指示を受け付けた印刷キューの印刷先の判別処理を行う。印刷先の判別処理の詳細はP1010と同様である。続くP1106で拡張アプリケーション204の印刷データ編集ユニット208は印刷データ生成処理を行う。実施形態2においては、印刷データ編集ユニット208はP1106で拡張アプリケーション204が判別した印刷先によって、処理の詳細を切り替える。例えば、アプリケーション213がレイアウト編集アプリケーションであれば、xps形式の印刷データを生成する。例えばアプリケーション213がドキュメント管理アプリケーションであればPDF形式の印刷データを生成する。もしくは印刷先が印刷装置102であった場合は、印刷装置102が解釈可能な印刷データ(PWG-RasterやPDFなど)を生成する。P1105で拡張アプリケーション204が判断した印刷先がアプリケーション213である場合、印刷データ編集ユニット208はP1107の処理に移行する。印刷データ編集ユニット208はP1107において、P1106で生成した印刷データを、PDC1801に記載したアプリケーション213ごとの印刷データを出力先領域のパスとして記載した領域に印刷データを格納する。この際、印刷データ編集ユニット208はP1105で判別したアプリケーション213に対応する領域に印刷データを格納する。なお、ここでも実施形態1と同様に印刷データ編集ユニット208がP1107で情報1805に記載の領域に格納するデータは印刷データ以外を含んでもよい。P1107の処理が完了すると、拡張アプリケーション204はP1108の処理に移行する。P1108~P1116の処理はP707~P715と同様であるため、説明を省略する。
【0127】
一方、P1105で拡張アプリケーション204が判断した印刷先が印刷装置102である場合、印刷データ編集ユニット208はP1117の処理に移行する。P1117で印刷データ編集ユニット208はP1106で生成した印刷データを印刷装置102に送信する。P1116もしくはP1117によって、印刷装置102が印刷データを受信すると、印刷装置102は印刷用紙への印字処理P1118を開始する。
【0128】
ここで、図11のP1105~P1108における処理の詳細について、図22を用いて説明する。図22に記載の処理は、拡張アプリケーション204が提供するプログラムをCPU111が実行することで実現される。
【0129】
CPU111は、OS214から中間印刷データと印刷設定情報を受信したか否かを判定する(S2201)。中間印刷データと印刷設定情報を受信していない場合、CPU111はS2201へ処理を戻す。中間印刷データと印刷設定情報を受信した場合、CPU111はS2202へ処理を進める。なお、本実施形態では、OS214から中間印刷データと印刷設定情報を受信するとして説明するが、印刷データ生成ソフトウェア202からこれらの情報を受信してもよい。
【0130】
CPU111は、印刷設定情報に基づき中間印刷データを加工する(S2202)。S2202に記載の処理は、図20のS2002に記載の処理と同様である。
【0131】
CPU111は、選択されている印刷キューが仮想キューであるか否かを判定する(S2203)。
【0132】
選択されている印刷キューが仮想キューでない場合、CPU111は印刷装置102のサポートするデータフォーマットを描画データのフォーマットとして選択する(S2204)。CPU111は、印刷装置102に対応するPDCまたはPCを参照し、印刷装置102がサポートする描画データのデータフォーマットを設定する。印刷装置102がサポートするデータフォーマットとは、たとえば、PWG-Raster形式やPDF形式である。CPU111は、S2204で選択した形式の印刷データを生成し、印刷装置102に送信する(S2205)。CPU111は、OS214が提供するAPIを用いて、印刷データの生成と送信を行う。
【0133】
選択されている印刷キューが仮想キューでない場合、CPU111は仮想キューと対応するアプリケーションがレイアウトアプリケーションであるか否かを判定する(S2206)。CPU111は、仮想キューに対応するアプリケーションがレイアウトアプリケーションである場合、予め記憶するレイアウトアプリケーションのデータフォーマットを選択する(S2207)。仮想キューと対応するアプリケーションがレイアウトアプリケーションでない場合、CPU111は予め記憶するドキュメント生成アプリケーション用のデータフォーマットを選択する(S2208)。なお、本実施形態では、拡張アプリケーション204が予めレイアウトアプリケーションとドキュメント生成アプリケーションのサポートするデータフォーマットを記憶しているものとして説明した。S2207、S2208において、CPU111が外部サーバから各アプリケーションがサポートするデータフォーマットを取得して、選択するとしてもよい。
【0134】
CPU111は中間印刷データをS2207、S2208のいずれかで選択した描画データに変換し、印刷データを生成する(S2209)。
【0135】
CPU111は、仮想キューと対応するアプリケーションがレイアウトアプリケーションであるか否かを判定する(S2211)。仮想キューと対応するアプリケーションがレイアウトアプリケーションである場合、CPU111は予め記憶するレイアウトアプリケーション用のパスを読み出し、生成した印刷データを記憶する(S2212)。仮想キューに対応するアプリケーションがドキュメント生成アプリケーションである場合、CPU111は予め記憶したドキュメント生成アプリケーション用のパスを読み出し、印刷データを記憶する(S2213)。
【0136】
CPU111は、仮想キューと対応づけされたアプリケーションを起動する(S2214)。S2214に記載の処理は図20のS2006と同様である。なお、図22では、固定のアプリケーションではなく、選択された仮想キューに対応するアプリケーションを起動する。
【0137】
CPU111は、アプリケーションの起動に成功したか否かを判定する(S2215)。アプリケーションの起動に成功した場合、CPU111は図22に記載の処理を終了する。アプリケーションの起動に失敗した場合、CPU111はユーザにアプリケーションの起動に失敗したことを示すエラーを通知する(S2216)。
【0138】
このように実施形態2において、印刷データ編集ユニット208は拡張アプリケーション204が判別した印刷先に応じて、印刷データ生成処理や印刷データ出力先を切り替える。実施形態2によれば、単一の拡張アプリケーション204であっても複数の異なるアプリケーション213や印刷装置102に対して、各々に適した処理を行うことが可能となる。
【0139】
また、P1105の印刷先判別処理は上述した処理以外の判別方法であってもいい。たとえば、拡張アプリケーション204の印刷設定画面拡張ユニット205において、印刷データの送信先となるアプリケーション213をユーザが指定可能な構成としてもよい。この場合、P1105の印刷先判別処理において、印刷装置102が印刷データの送信先として選択された場合であっても、上記設定に基づき印刷先をアプリケーション213とすることが可能である。この場合、生成された印刷データはアプリケーション213の印刷データ格納領域に格納し、印刷装置102に送信されることはない。
【0140】
以上、実施形態2においては、単一の拡張アプリケーション204であっても、複数の異なるアプリケーション213や印刷装置102に対応させて動作させることが可能であることを説明した。
【0141】
<<実施形態3>>
実施形態1においては、P707において拡張アプリケーション204がアプリケーション213を直接起動する構成としていた。実施形態3では、拡張アプリケーション204がアプリケーション213を直接起動せずとも、アプリケーション213が印刷データの格納を検知して自動で起動する構成について説明する。以降、特に言及がない限り、実施形態3の構成は実施形態1の構成と同じものとする。
【0142】
図12は、実施形態3におけるアプリケーション213による印刷時の諸処理の一例のシーケンス図である。P1201~P1206についてはP701~P706と同様のため説明を省略する。実施形態3では、P1206で拡張アプリケーション204の印刷データ編集ユニット208が情報1605に記載の領域に印刷データを格納した後、アプリケーション213を起動しない。すなわちアプリケーション213は、情報1605に記載の領域に印刷データが格納されることを常時監視しておき、印刷データが格納されたことを検知すると、P1207のアプリケーション213自体を起動させるという処理を行う。具体的にはアプリケーション213のサブモジュールがOS214上で常時起動しており、所定の間隔(例えば、2秒に一回)で情報1605に記載の領域にデータが存在するかをチェックする。情報1605に記載の領域にデータが存在することが検出された場合はアプリケーション213のサブモジュールがアプリケーション213のメインモジュールを起動する。アプリケーション213はサブモジュールから起動されると、P1208の処理に移行する。P1208~P1216の処理はP708~P716の処理と同様であるため説明を省略する。
【0143】
このように実施形態3では、アプリケーション213が印刷データの格納を検知して自動で起動する構成とする。このようにすることで、拡張アプリケーション204がアプリケーション213の起動方法を知らない場合であっても、アプリケーション213が印刷データ編集ユニット208により所定の領域に格納された印刷データを取得することが可能となる。拡張アプリケーション204がアプリケーション213の起動方法を知らない場合とは、例えばアプリケーション213の起動モジュールのURIが不明な場合である。
【0144】
<<その他の実施形態>>
本発明の目的は前述した実施例の機能を実現するソフトウェアのプログラムコードを記録した記録媒体をシステム/装置に供給し、そのシステム/装置のコンピュータが当該プログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することとなり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0145】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD-ROM、CD-R、磁気テープ、不揮発性のメモリカード、ROM、DVDなどを用いることができる。
【0146】
また、プログラムコードの指示に基づき、コンピュータ上で稼動しているOperating System(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれることは言うまでもない。
【0147】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれたても良い。その後、当該プログラムコードの指示に基づき、機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【符号の説明】
【0148】
101 ホストコンピュータ
102 印刷装置
202 印刷データ生成ソフトウェア
203 PDC
204 拡張アプリケーション
205 印刷設定画面拡張ユニット
207 印刷機能拡張ユニット
208 印刷データ編集ユニット
213 アプリケーション
214 OS
【要約】
【課題】 本願発明は、実際の印刷装置と接続されない場合であっても、汎用プリンタドライバと対応づけされる印刷キューを利用することを目的とする。
【解決手段】 本願の実施形態に記載のアプリケーションは、印刷装置に接続されていない状態で、汎用プリンタドライバと対応づけがなされた印刷キューの生成させる生成工程と、前記印刷キューを指定して生成された印刷データを取得する取得工程と、を情報帆城内に実行させることを特徴とする。
【選択図】 図6
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23