(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-08
(45)【発行日】2024-11-18
(54)【発明の名称】プログラム、情報処理装置および制御方法
(51)【国際特許分類】
G06F 3/12 20060101AFI20241111BHJP
B41J 29/38 20060101ALI20241111BHJP
【FI】
G06F3/12 325
G06F3/12 335
G06F3/12 310
B41J29/38 301
(21)【出願番号】P 2022018963
(22)【出願日】2022-02-09
【審査請求日】2023-12-18
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100126240
【氏名又は名称】阿部 琢磨
(74)【代理人】
【識別番号】100223941
【氏名又は名称】高橋 佳子
(74)【代理人】
【識別番号】100159695
【氏名又は名称】中辻 七朗
(74)【代理人】
【識別番号】100172476
【氏名又は名称】冨田 一史
(74)【代理人】
【識別番号】100126974
【氏名又は名称】大朋 靖尚
(72)【発明者】
【氏名】塩原 徹矢
【審査官】漆原 孝治
(56)【参考文献】
【文献】特開2020-126319(JP,A)
【文献】特開2020-166350(JP,A)
【文献】特開2008-102838(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/12
B41J 29/38
(57)【特許請求の範囲】
【請求項1】
異なるベンダによって提供される複数の印刷装置が共通して利用可能な印刷データ生成ソフトウェアと関連づけられることによって前記印刷データ生成ソフトウェアの機能を拡張する拡張アプリケーションであって、
コンピュータに、
前記印刷装置によって印刷処理が実行される印刷データの印刷指示が行われたことに基づいて、前記印刷装置のステータス情報を通知するステータス通知アプリケーションを起動させる起動ステップを実行させ、
前記ステータス通知アプリケーションによって、前記印刷装置のステータス情報が通知され
、
前記拡張アプリケーションは、前記印刷データの印刷指示が行われた場合に前記ステータス情報が通知されるか否かが設定可能な起動設定を有し、
前記起動設定において、前記印刷データの前記印刷指示が行われた場合に前記ステータス情報が通知される設定がされている場合、前記ステータス通知アプリケーションを起動させ、前記印刷装置のエラーが発生した場合に、前記印刷装置においてエラーが発生した場合にのみ通知されるトースト通知は実行されず、
前記起動設定において、前記印刷データの前記印刷指示が行われた場合に前記ステータス情報が通知される設定がされていない場合、前記ステータス通知アプリケーションを起動させず、前記印刷装置のエラーが発生した場合に前記トースト通知が実行されることを特徴とするプログラム。
【請求項2】
前記ステータス通知アプリケーションは、前記印刷装置にエラーが発生していない場合においても前記印刷装置のステータス情報を通知することが可能であることを特徴とする請求項1に記載のプログラム。
【請求項3】
前記ステータス通知アプリケーションによって、前記エラーに関する詳細情報が通知されることを特徴とする請求項2に記載のプログラム。
【請求項4】
前記印刷データの前記印刷指示が行われた場合、前記拡張アプリケーションは、前記印刷データ生成ソフトウェアによって生成された前記印刷データを取得したことに基づいて前記ステータス通知アプリケーションを起動させることを特徴とする請求項1乃至3のいずれか一項に記載のプログラム。
【請求項5】
前記拡張アプリケーションは、前記印刷データを取得した場合、前記印刷データの印刷プレビュー画面を表示する表示ステップを実行させることを特徴とする請求項1乃至4のいずれか一項に記載のプログラム。
【請求項6】
前記印刷装置に前記印刷データを送信する第1送信ステップを実行させることを特徴とする請求項1乃至5のいずれか一項に記載のプログラム。
【請求項7】
前記ステータス通知アプリケーションによって前記印刷装置から前記ステータス情報を取得する第1取得ステップが実行され、前記ステータス情報が通知されることを特徴とする請求項1乃至6のいずれか一項に記載のプログラム。
【請求項8】
前記印刷データの印刷処理がクラウドを介さずに実行されるローカル印刷が行われる場合、前記第1取得ステップが実行され、前記ステータス情報が通知されることを特徴とする請求項7に記載のプログラム。
【請求項9】
前記印刷データの印刷処理が終了されるまで前記第1取得ステップが繰り返し実行され、前記印刷装置のステータス情報が更新されて通知されることを特徴とする請求項8に記載のプログラム。
【請求項10】
前記印刷装置に関する情報をクラウドから取得する第2取得ステップと、
前記印刷装置に関する情報を前記ステータス通知アプリケーションに送信する第2送信ステップを実行させ、
前記ステータス通知アプリケーションによって、前記第2送信ステップにおいて送信された前記ステータス情報が通知されることを特徴とする請求項1乃至6のいずれか一項に記載のプログラム。
【請求項11】
前記印刷データの印刷処理が、前記クラウドを介して実行されるクラウド印刷によって行われる場合、前記第2取得ステップと前記第2送信ステップを実行することを特徴とする請求項10に記載のプログラム。
【請求項12】
前記印刷データの印刷処理が終了されるまで前記第2取得ステップと前記第2送信ステップを繰り返し実行し、前記印刷装置のステータス情報が更新されて通知されることを特徴とする請求項11に記載のプログラム。
【請求項13】
前記ステータス通知アプリケーションは、前記印刷装置のステータス情報が記載されたステータス通知画面を表示することによって通知することを特徴とする請求項1乃至12のいずれか一項に記載のプログラム。
【請求項14】
前記ステータス通知アプリケーションは、前記印刷データの印刷処理を中断させるための操作がユーザによって行われたことに基づいて、前記印刷データの印刷処理を中断させるための指示を前記印刷装置に送信する第3送信ステップを実行することを特徴とする請求項7乃至9のいずれか一項に記載のプログラム。
【請求項15】
前記印刷データの印刷処理を中断させるための操作は、前記印刷装置のステータス情報が記載されたステータス通知画面において行われることを特徴とする請求項14に記載のプログラム。
【請求項16】
前記拡張アプリケーションは、前記ステータス通知アプリケーションから前記印刷データの印刷処理を中断することを示す情報を取得した場合、前記印刷データの印刷処理を中断させるための指示を前記印刷装置に送信する第4送信ステップを実行させることを特徴とする請求項10乃至12のいずれか一項に記載のプログラム。
【請求項17】
前記印刷データの印刷処理がクラウドを介さずに実行されるローカル印刷とクラウド印刷のどちらで行われるかを判定する第1判定ステップを実行させ、
前記印刷データの印刷処理が前記ローカル印刷によって行われると判定された場合、前記印刷装置から前記ステータス情報を取得する第1取得ステップが実行され、
前記印刷データの印刷処理が前記クラウド印刷によって行われると判定された場合、前記ステータス情報をクラウドから取得する第2取得ステップと、前記ステータス情報を前記ステータス通知アプリケーションに送信する第2送信ステップを実行させることを特徴とする請求項1乃至16のいずれか一項に記載のプログラム。
【請求項18】
前記印刷装置のステータス情報は、前記印刷データのステータス情報を含むことを特徴とする請求項1乃至17のいずれか一項に記載のプログラム。
【請求項19】
前記印刷データのステータス情報とは、前記印刷データが印刷されている最中であるか否かを示す情報であることを特徴とする請求項18に記載のプログラム。
【請求項20】
前記印刷装置においてエラーが発生した場合であるか否かに関わらず、前記印刷装置のエラーが発生した場合、前記トースト通知が実行されることを特徴とする請求項
1に記載のプログラム。
【請求項21】
前記印刷装置のエラーとは、用紙なしエラー、インク無しエラー、紙詰まりエラーの少なくとも一つであることを特徴とする請求項2または請求項
1乃至20のいずれか一項に記載のプログラム。
【請求項22】
前記ステータス通知アプリケーションとは、別インスタンスで起動された前記拡張アプリケーションであることを特徴とする請求項1乃至
21のいずれか一項に記載のプログラム。
【請求項23】
異なるベンダによって提供される複数の印刷装置が共通して利用可能な印刷データ生成ソフトウェアと関連づけられることによって前記印刷データ生成ソフトウェアの機能を拡張する拡張アプリケーションを有する情報処理装置であって、
前記印刷装置によって印刷処理が実行される印刷データの印刷指示が行われたことに基づいて、前記印刷装置のステータス情報を通知するステータス通知アプリケーションを起動させる起動手段を有し、
前記ステータス通知アプリケーションによって、前記印刷装置のステータス情報が通知され
、
前記拡張アプリケーションは、前記印刷データの印刷指示が行われた場合に前記ステータス情報が通知されるか否かが設定可能な起動設定を有し、
前記起動設定において、前記印刷データの前記印刷指示が行われた場合に前記ステータス情報が通知される設定がされている場合、前記ステータス通知アプリケーションを起動させ、前記印刷装置のエラーが発生した場合に、前記印刷装置においてエラーが発生した場合にのみ通知されるトースト通知は実行されず、
前記起動設定において、前記印刷データの前記印刷指示が行われた場合に前記ステータス情報が通知される設定がされていない場合、前記ステータス通知アプリケーションを起動させず、前記印刷装置のエラーが発生した場合に前記トースト通知が実行されることを特徴とする情報処理装置。
【請求項24】
異なるベンダによって提供される複数の印刷装置が共通して利用可能な印刷データ生成ソフトウェアと関連づけられることによって前記印刷データ生成ソフトウェアの機能を拡張する拡張アプリケーションの制御方法であって、
前記印刷装置によって印刷処理が実行される印刷データの印刷指示が行われたことに基づいて、前記印刷装置のステータス情報を通知するステータス通知アプリケーションを起動させる起動ステップを有し、
前記ステータス通知アプリケーションによって、前記印刷装置のステータス情報が通知され
、
前記拡張アプリケーションは、前記印刷データの印刷指示が行われた場合に前記ステータス情報が通知されるか否かが設定可能な起動設定を有し、
前記起動設定において、前記印刷データの前記印刷指示が行われた場合に前記ステータス情報が通知される設定がされている場合、前記ステータス通知アプリケーションを起動させ、前記印刷装置のエラーが発生した場合に、前記印刷装置においてエラーが発生した場合にのみ通知されるトースト通知は実行されず、
前記起動設定において、前記印刷データの前記印刷指示が行われた場合に前記ステータス情報が通知される設定がされていない場合、前記ステータス通知アプリケーションを起動させず、前記印刷装置のエラーが発生した場合に前記トースト通知が実行されることを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、情報処理装置および制御方法に関する。
【背景技術】
【0002】
プリンタドライバの機能を拡張するアプリケーション(以降、拡張アプリケーションとする)が知られている。例えば、特許文献1では、拡張アプリケーションにより、スタンプ機能等の機能を拡張する技術が記載されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、拡張アプリケーションにおける機能についてさらなる利便性の向上が求められている。
【課題を解決するための手段】
【0005】
異なるベンダによって提供される複数の印刷装置が共通して利用可能な印刷データ生成ソフトウェアと関連づけられることによって前記印刷データ生成ソフトウェアの機能を拡張する拡張アプリケーションであって、コンピュータに、前記印刷装置によって印刷処理が実行される印刷データの印刷指示が行われたことに基づいて、前記印刷装置のステータス情報を通知するステータス通知アプリケーションを起動させる起動ステップを実行させ、前記ステータス通知アプリケーションによって、前記印刷装置のステータス情報が通知され、前記拡張アプリケーションは、前記印刷データの印刷指示が行われた場合に前記ステータス情報が通知されるか否かが設定可能な起動設定を有し、前記起動設定において、前記印刷データの前記印刷指示が行われた場合に前記ステータス情報が通知される設定がされている場合、前記ステータス通知アプリケーションを起動させ、前記印刷装置のエラーが発生した場合に、前記印刷装置においてエラーが発生した場合にのみ通知されるトースト通知は実行されず、前記起動設定において、前記印刷データの前記印刷指示が行われた場合に前記ステータス情報が通知される設定がされていない場合、前記ステータス通知アプリケーションを起動させず、前記印刷装置のエラーが発生した場合に前記トースト通知が実行されることを特徴とするプログラム。
【発明の効果】
【0006】
本開示によれば、拡張アプリケーションにおける機能についてさらなる利便性の向上を実現できる。
【図面の簡単な説明】
【0007】
【
図1】システムのハードウェアの構成を示す図である。
【
図2】情報処理装置の各ソフトウェアと印刷装置の構成を示す図である。
【
図3】ローカル印刷とクラウド印刷の構成を示すフローチャート図である。
【
図5】印刷データ編集ユニット(バックグラウンド)のフローチャート図である。
【
図6】印刷データ編集ユニット(フォアグラウンド)のフローチャート図である。
【
図7】ステータス通知アプリのフローチャート図である。
【
図10】印刷データ編集ユニット(バックグラウンド)のフローチャート図である。
【
図11】ステータス通知アプリのフローチャート図である。
【
図12】印刷データ編集ユニット(フォアグラウンド)のフローチャート図である。
【発明を実施するための形態】
【0008】
以下に図面を参照して、本発明の好適な実施形態を例示的に説明する。ただし、本発明については、その趣旨を逸脱しない範囲で、当業者の通常の知識に基づいて、以下に記載する実施形態に対して適宜変更、改良が加えられたものについても本発明の範囲に入ることが理解されるべきである。
【0009】
(第1の実施形態)
本実施形態の印刷システムに含まれる情報処理装置及び印刷装置について説明する。ホストコンピュータ101は、情報処理装置の一例であり、入力インタフェース110、CPU111、ROM112、RAM113、外部記憶装置114、出力インタフェース115、及び入出力インタフェース116を有する。また、入力インタフェース110には、キーボード118、ポインティングデバイス117などの入力デバイスが接続され、出力インタフェース115には、表示部119などの表示デバイスが接続されている。NETIF120は、ネットワークインタフェイスであり、ネットワークを介して外部機器との間でデータ転送を行うための制御を行う。
【0010】
ROM112には、初期化プログラムが格納されている。外部記憶装置114には、アプリケーションプログラム群、オペレーティングシステム(OS)、印刷データ生成ソフトウェア、その他の各種のデータが格納されている。後述する拡張アプリケーション204も外部記憶装置114に保存されている。RAM113は、外部記憶装置114にストアされる各種のプログラムの実行の際のワークメモリ等として使用され、各種プログラムがホストコンピュータ101内で動作可能となっている。
【0011】
なお、本実施形態では、CPU111が、ROM112に格納されたプログラムの手順に従って処理を行うことによって、ホストコンピュータ101における後述の機能及び後述するフローチャートに係る処理を実行する。
【0012】
印刷装置102は、入出力インタフェース116を介して、ホストコンピュータ101と接続されている。ここでは、ホストコンピュータ101と印刷装置102が分かれて構成されているが、これらが一つの情報処理装置として構成されていても良い。
【0013】
なお情報処理装置として、本実施形態ではホストコンピュータ101を例示しているが、これに限定されない。例えば情報処理装置として、携帯端末、PC(パーソナルコンピュータ)、タブレット端末、PDA(Personal Digital Assistant)、デジタルカメラ等、種々のものを適用可能である。また、印刷装置102として、本実施形態ではプリンタを例示しているが、例えば、インクジェットプリンタ、フルカラーレーザービームプリンタ、モノクロプリンタ等に適用することができる。
【0014】
なお、印刷装置102の制御用ソフトウェアとしてホストコンピュータ101にインストールされたプリンタドライバを利用し、ホストコンピュータ101に接続された印刷装置102に対して印刷指示を行う構成が知られている。ホストコンピュータ101には、基本ソフトウェアであるオペレーティングシステム(OS)がインストールされており、プリンタドライバはそのOSの規定する仕様に従って構成され、OSから呼び出されて動作する。印刷装置102を提供するベンダは、OSの仕様に適合するプリンタドライバを提供することにより、そのOSを用いて印刷装置102に印刷を指示する手段を提供することができる。近年、Windows(登録商標)において、複数のベンダの提供する印刷装置で共通して利用可能な標準的なクラスドライバ(以下、「標準ドライバ」とも呼ぶ)が提供されている。このような標準ドライバは、OSのパッケージの中に同梱されており、ホストコンピュータ101に任意の印刷装置を接続することにより簡易に利用可能となる。よって、印刷装置102に適した機種固有のプリンタドライバを別途インストールする必要が無く、利便性が高い。また、標準ドライバは、接続した印刷装置102から取得した情報に基づき生成されたPrintCapabilitiesに応じて印刷機能を指定可能に構成される。これにより、標準ドライバを利用するユーザは、1つの標準ドライバを利用しているにも関わらず、接続した印刷装置102の能力に応じた印刷機能を指定することができる。なお本実施形態において、標準ドライバは印刷データ生成ソフトウェア202として説明する。
【0015】
ここで拡張アプリケーション204について説明する。標準ドライバには機能拡張用のアプリケーション(拡張アプリケーション204)を関連付けることができる。拡張アプリケーション204は、印刷装置102を提供するベンダが提供することができる。ベンダはこの拡張アプリケーション204を提供することにより、標準ドライバのみでは実現できない機能(拡張機能)を提供することができる。
【0016】
拡張アプリケーション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に関連付ける。
【0017】
本実施形態で説明する拡張アプリケーション204は、印刷設定画面拡張ユニット205とスキップ制御ユニット206と印刷機能拡張ユニット207と印刷データ編集ユニット208と通知ユニット209を備える。また、拡張アプリケーション204は、各ユニットから共通してアクセス可能な共有情報210を備える。共有情報210の実態は、外部記憶装置114に保存されたファイル、もしくはRAM113上に格納された情報である。拡張アプリケーション204は、OSが提供するAPI(Application Program Interface)を利用することで、共有情報210への情報の書き込みや読み出しを行う。
【0018】
図2は、ホストコンピュータ101の各ソフトウェアと印刷装置102による印刷システムの構成を模式的に示す図である。ここでは、OSとしてMicrosoft(登録商標)のWindows(登録商標)11を搭載したホストコンピュータ101を用いた印刷システムを前提として説明する。
図2(a)は、拡張アプリケーション204が、印刷データ生成ソフトウェア202および印刷装置102と関連付けられていない場合の一般的な構成を示す図である。
【0019】
描画アプリケーション201は印刷される描画データ(画像データ)を作成するソフトウェアである。例えば、文書作成アプリケーションや表計算アプリケーションが描画アプリケーション201に相当する。描画アプリケーション201は、ユーザから印刷要求を受けると、印刷指示をOSに発行する。印刷指示には、印刷データ生成ソフトウェア202及び印刷装置102の動作を指示するための印刷設定情報が含まれる。印刷設定情報はPrintTicket(以下、「PT」)とも呼ばれる。
【0020】
描画アプリケーション201は、印刷設定情報を出力するために、印刷データ生成ソフトウェア202、OS、もしくは描画アプリケーション201、のうちいずれかが提供する印刷設定画面を表示させる事ができる。印刷設定画面は、印刷データ生成ソフトウェア202から取得する能力情報(印刷装置102が動作可能な情報)に従い、設定可能な印刷機能を示す設定アイテムと、設定アイテムの設定値を示すコントロールアイテムが表示される。能力情報は、PrintCapabilities(以下、「PC」)とも呼ばれる。印刷データ生成ソフトウェア202は、印刷機能情報203に基づき、PCを決定する。印刷機能情報203は、設定可能なすべての印刷機能とその設定値、並びに、設定値同士の排他関係が記載されている印刷機能を示すデータである。印刷機能情報203は、PDC(Print Device Capabilities)とも呼ばれる。印刷機能情報203は、印刷データ生成ソフトウェア202の構成ファイルに含まれ、変更不可能なファイルとして外部記憶装置114に配置される。もしくは、印刷データ生成ソフトウェア202により、印刷機能情報203は動的に生成されることもできる。具体的には、印刷データ生成ソフトウェア202もしくはOSは、印刷装置102から印刷装置102の属性データを取得し、取得した属性データ内の属性情報に応じて印刷機能情報203を生成するよう構成することができる。なお、動的に印刷機能情報203が生成される場合、生成された印刷機能情報203は編集可能である。なお、印刷装置102から取得される印刷装置102の属性データとは、印刷装置102に対してIPP(Internet Print Protocol)のGet-Printer-Attributesオペレーションを発行することにより取得するレスポンスである。レスポンスの中には、印刷装置102が動作可能な機能(印刷装置102の能力)を示す属性情報とその属性情報に関連する設定値を含む。このレスポンスはRAM113に保存される。
【0021】
以上の構成により、印刷データ生成ソフトウェア202は、接続された印刷装置に応じて、それぞれの印刷装置102で利用可能な印刷機能をユーザが指定可能に構成する事ができる。すなわち、異なる機能を持つ印刷装置や、異なるベンダが開発(提供)した印刷装置を接続した場合であっても、印刷データ生成ソフトウェア202は、接続した印刷装置に応じて利用可能な印刷機能をユーザが指定可能に構成することができる。なお、ここでは、印刷データ生成ソフトウェア202として、Windows(登録商標)11に搭載されている、IPP Class Driverを利用した構成について説明する。IPP Class Driverは、IPP(Internet Print Protocol)と呼ばれる標準的な印刷プロトコルの仕様に従って印刷処理を実行するプリンタドライバであり、OSのパッケージの中に同梱されている。IPP ClassDriverは、印刷装置102の機種に応じた固有のプリンタドライバではなく、複数の印刷装置で共通して利用可能な標準的なクラスドライバである。また、IPP Class Driverは、接続した印刷装置でサポートする印刷機能をユーザが指定できるように、接続した印刷装置102の能力情報を取得し、その情報を元に印刷機能情報203を生成する。
【0022】
ここで、
図2(a)において印刷データが印刷装置102に送信されて印刷される処理を説明する。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に渡す。なお、中間データには、紙面上に形成する絵の情報である画像データと、ユーザにより設定された印刷設定情報と、が含まれる。
【0023】
印刷データ生成ソフトウェア202は、取得した中間データを印刷装置102が解釈可能な印刷データに変換し、印刷装置102に送信する。なお、印刷データには、紙面上に形成される絵の情報である描画データと、ユーザにより設定された印刷設定情報に基づき生成された印刷設定属性情報(印刷設定を指定する属性情報)とが含まれる。印刷設定属性情報は、印刷装置102が動作可能な機能(印刷装置の能力)を示す属性情報とその属性情報に関連する設定値を含む。
【0024】
印刷装置102は、印刷データ生成ソフトウェア202から送られた印刷データに基づき紙面への印刷(印字)を行う。この時、印刷装置102は、印刷データに含まれる印刷設定属性情報に従った動作で、印刷データに含まれる描画データを紙面上に形成する。印刷設定属性情報には、印刷品位(画質優先、速度優先、等)や、描画データのサイズ、描画位置(余白)の情報が含まれている。
【0025】
図2(b)は、拡張アプリケーション204が、印刷データ生成ソフトウェア202および印刷装置102と関連付けられている場合の構成を示す図である。なお、以下において特に言及しない構成や処理については、
図2(a)と同等の構成となる。
【0026】
描画アプリケーション201は、ユーザから印刷要求を受けると、印刷指示をOSに発行する。本構成下でも、
図2(a)の構成と同様、描画アプリケーション201は、印刷設定画面を表示させることができる。本構成下では、拡張アプリケーション204が提供する印刷設定画面が表示される。具体的には、拡張アプリケーション204が備える印刷設定画面拡張ユニット205が提供する印刷設定画面が表示される。なお、印刷設定画面拡張ユニット205により提供される印刷設定画面が表示されるか否かはユーザの操作に依存する。
【0027】
また、描画アプリケーション201がユーザから印刷要求を受けつけ、印刷指示がOSに発行されると、OSはスキップ制御ユニット206を起動する。スキップ制御ユニット206は、印刷データ生成ソフトウェア202の処理をスキップするか否かの制御を行う。スキップ制御ユニット206のスキップ制御処理の後、OSは、描画アプリケーション201から出力された印刷指示に基づき中間データを生成し、中間データが印刷データ生成ソフトウェア202に渡される。ここで、スキップ制御ユニット206でスキップ制御が行われない場合、中間データは印刷データ生成ソフトウェア202で印刷装置102が解釈可能な印刷データへ処理され、印刷データ編集ユニット208へ渡される。一方、印刷データ生成ソフトウェア202のスキップが行われる場合は、中間データは印刷データ生成ソフトウェア202で処理されずに、印刷データ編集ユニット208に渡される。これにより、中間データを印刷データ編集ユニット208で処理することが可能となる。
【0028】
印刷データ編集ユニット208は、印刷データ生成ソフトウェア202から渡される中間データもしくは印刷データ生成ソフトウェア202により処理された印刷データの編集を行う。編集内容として、割り付け印刷を例にとると、印刷データ編集ユニット208は、OSから受け取った割り付け印刷の印刷設定情報に基づいて、中間データもしくは印刷データのレイアウトを変更する。また、印刷データ編集ユニット208は表示部119にUI画面を表示することが可能であり、中間データもしくは印刷データの印刷結果のイメージをプレビュー画面として表示することができる。なお、印刷データ編集ユニット208では、画面を開いたままの状態では印刷データは印刷装置102に送信されず、画面を閉じることで印刷データの送信処理が動作する。
【0029】
印刷データ編集ユニット208が中間データもしくは印刷データを編集した後、印刷データは印刷装置102へ送信される。印刷装置102は、受け付けた印刷データに基づき紙面への印刷を行う。
【0030】
なお、スキップ制御ユニット206で印刷データ生成ソフトウェア202がスキップされた場合、印刷データ編集ユニット208が、受け取った中間データを印刷装置102が解釈可能な印刷データへ変換しても良い。また、中間データを印刷データへ変換するために、OSが提供する機能を利用しても良い。
【0031】
拡張アプリケーション204は、印刷機能拡張ユニット207を有する。印刷機能拡張ユニット207は、印刷データ生成ソフトウェア202もしくはOSが生成した印刷機能情報203(PDC)を編集することができる。これにより、印刷機能拡張ユニット207は、拡張アプリケーション204が提供する機能の追加、印刷装置102はサポートしているが印刷データ生成ソフトウェア202がサポートしていない機能の追加、印刷機能の設定値同士の排他関係の追加、等を行うことができる。OSは、拡張アプリケーション204が印刷装置102と印刷データ生成ソフトウェア202に最初に関連付けられた時に、印刷機能拡張ユニット207を起動する。さらに、OSは、OS起動時等、それ以外のタイミングで印刷機能拡張ユニット207を起動してもよい。このようにすることで、印刷装置102に対して後からオプション装置(例えば、フィニッシャー等)が追加され、印刷に関わる機能が拡張されるようなケースにおいて、印刷機能拡張ユニット207は、拡張機能を検知し、印刷機能情報203に追加することができる。
【0032】
また、拡張アプリケーション204は通知ユニット209を有する。通知ユニット209は、印刷装置102のエラー発生に呼応してユーザに対して通知(ステータス通知)を表示することが可能である。例えば、印刷装置102で用紙なしエラーが発生すると、用紙なしエラーを印刷データ生成ソフトウェア202が検知し、OSは、OSの機能であるトースト通知と呼ばれる通知機能を使って、メッセージを表示部119に表示させる。ユーザがこのトースト通知を押下すると、拡張アプリケーション204の通知ユニット209がOSにより呼び出され、通知ユニット209のUI画面が表示される。通知ユニット209のUI画面では、例えば用紙なしエラーの詳細メッセージや用紙充填方法などの表示を行うことができる。
【0033】
なお、本実施形態を実現するための拡張アプリケーション204の構成は、前述の機能(ユニット)を全て備えるものに限定されず、機能の一部のみを持つものや、他の機能を有するものでもよい。また、拡張アプリケーション204は、単に印刷ソフトウェアと呼ばれることもある。以上のように、拡張アプリケーション204は、設定画面を表示する機能(印刷設定画面拡張ユニット205)、印刷データ生成ソフトウェア202の処理をスキップするか否かを制御する機能(スキップ制御ユニット206)、印刷装置に入力される印刷データを編集する機能(印刷データ編集ユニット208)、印刷データ生成ソフトウェアで指定可能な機能を拡張する機能(印刷機能拡張ユニット207)、印刷装置102のエラー発生に対応して画面を表示する機能(通知ユニット209)、の少なくとも1つを備える。
【0034】
また、拡張アプリケーション204は、各ユニットの処理が終わるたびに動作を終了しても良い。その場合、各ユニットを使う要求を受ける度にOSが拡張アプリケーション204を起動することになる。また、別の形態も考えられる。例えば印刷設定画面拡張ユニット205の処理が終了するとOSは拡張アプリケーション204の動作を終了させるが、スキップ制御ユニット206の処理が終了してもOSは拡張アプリケーション204を起動させたままにしても良い。
【0035】
さらに、拡張アプリケーション204は、各ユニットの処理の中で、処理をキャンセルしても良い。キャンセルした場合、印刷キュー上の処理中の印刷ジョブがOSにより削除される。なお印刷ジョブには印刷データが含まれる。
【0036】
ところで、上述したように、通知ユニット209は、ユーザに対してステータス通知を表示することが可能である。そして従来の通知ユニット209は、印刷装置102のエラー発生に呼応してしかステータス通知を表示することができなかった。言い換えれば、従来の通知ユニット209は、印刷装置102がエラー状態でない場合はステータス通知を表示することができないという課題があった。しかしながら、印刷装置102がエラー状態でない場合にもステータス通知を表示することが要望されている。さらに、従来の通知ユニット209が表示するトースト通知においては、印刷装置102がエラー状態であることを示す内容が表示されるのみであり、どのようなエラーが発生しているか等のエラーに関する詳細情報は表示されていなかった。そこで本実施形態では、印刷装置102がエラー状態でない場合にもステータス通知を表示することが可能なように制御する。また、エラー発生時に表示される内容は、エラーの詳細情報を含む印刷装置102のステータス情報であり、エラー発生時以外に表示される情報は、印刷装置102のステータス情報とする。なおエラーの詳細情報とは、例えば、エラーがインク残量少である場合は、どの色のインクの残量が少ないかの情報や、残量少となったインク以外のインクの残量を示す情報等である。
【0037】
また、上述したように、従来の通知ユニット209は、印刷装置102のエラー発生に呼応してまずトースト通知を実行する。トースト通知は一定時間が経過すると画面上において非表示となってしまうため、ユーザがトースト通知に気が付かず、トースト通知が押下されなかった場合、通知ユニット209のUI画面によるステータス通知が表示されない可能性がある。そこで本実施形態では、ユーザが気付きやすいタイミングで、ステータス通知を表示することが可能なように制御する。
【0038】
さらに、印刷データ編集ユニット208は、中間データもしくは印刷データを取得してから印刷装置102へ送信するまでの間のみ、トースト通知を介さずにUI画面によって印刷データのプレビュー表示をすることが可能である。しかしながら、中間データもしくは印刷データが印刷装置102に送信された後の印刷装置102のステータス情報については表示することができない。そこで本実施形態では、印刷装置102への印刷データ送信後であり、印刷が開始された後の印刷装置102のステータス情報についてもトースト通知を介さずに表示するよう制御する。
【0039】
そこで本実施形態では、拡張アプリケーション204は、中間データまたは印刷データを受信した場合に、エラー状態でない場合にもステータス通知を表示することが可能なステータス通知機能を有するアプリケーション(ステータス通知アプリケーション211)を起動させる。さらに、ステータス通知アプリケーション211の起動は、ユーザによって印刷指示が行われたタイミングで行われる。具体的に説明する。
図2(c)は、拡張アプリケーション204が、ステータス通知アプリケーション211を起動させる場合におけるシステムの構成を示す図である。拡張アプリケーション204の印刷データ編集ユニット208は、ユーザの印刷指示に基づいて印刷データ生成ソフトウェア202から送信された中間データまたは印刷データを受信した場合、ステータス通知機能を有するステータス通知アプリケーション211を起動させる。そして、印刷装置102のステータス情報に関する通知画面の表示を行う。これにより、印刷装置102がエラー状態でない場合においてもステータス通知を表示することができる。また、ユーザがトースト通知に気が付かず、トースト通知が押下されなかった場合において、ステータス通知が表示されない可能性を軽減できる。さらに、印刷装置102への印刷データ送信後であり、印刷が開始された後の印刷装置102のステータス情報についてもトースト通知を介さずに表示することが可能となる。
【0040】
図3は、ローカル印刷とクラウド印刷の構成を示すフローチャート図である。本実施形態では、拡張アプリケーション204がローカル印刷用途の印刷データ生成ソフトウェア202と関連付けられて動作するケースについて説明する。なお拡張アプリケーション204がクラウド印刷用途の印刷データ生成ソフトウェア202と関連付けられて動作するケースについては実施形態2において後述する。ローカル印刷においては、ホストコンピュータ101が、印刷装置102のステータス情報を、クラウドを介さずに印刷装置102から直接取得することが可能である。従来、ローカル印刷では、印刷装置102がエラー状態になったことを印刷データ生成ソフトウェア202が検知した場合、トースト通知302が画面に表示された。そしてユーザによって、トースト通知302が押下されることにより、OSは拡張アプリケーション204の通知ユニット209を起動させ、通知ユニット209は、ステータス通知画面800を表示した。ステータス通知画面800については、
図8を用いて後述する。本実施形態では、ローカル印刷において、ステータス通知アプリケーション211が印刷装置102のステータス情報を通知する場合について説明する。
【0041】
図4は、本システムのシーケンス図である。以降、各装置や、アプリケーション、OSを各処理の主体として説明することもあるが、実際には、対応するプログラムを各装置内のCPUなどのプロセッサが実行することで、対応する機能が実現されることになる。なお、全ての処理は必ずしも一つのプロセス上で逐次的に実行されるものではなく、一度OS側に処理が移り、再度OSから呼び出されるようなケースもあり得る。あくまで主要な処理を、便宜的にわかりやすく示したフローである。
【0042】
図4のシーケンスはユーザによって印刷指示を行うための操作が行われた場合に開始される。なお印刷指示を行うための操作とは、例えば、描画アプリケーション201の画面において拡張アプリケーション204によって開かれる印刷設定画面の印刷ボタン(不図示)が押下される操作である。以降、印刷データ編集ユニット208がホストコンピュータ101上に表示された状態で動作している場合、フォアグラウンドプロセスで動作していると記載する。また、印刷データ編集ユニット208がホストコンピュータ101上に表示されていない状態で動作している場合、バックグラウンドで動作していると記載する。
【0043】
S401で、描画アプリケーション201は、ユーザ操作に基づき、OSに対して印刷指示を行う。なお本シーケンスにおいて、印刷データ生成ソフトウェア202の処理は省略するものとする。
【0044】
S402で、OSは、拡張アプリケーション204の印刷データ編集ユニット208をバックグラウンドプロセスで起動させる。
【0045】
S403で、印刷データ編集ユニット208がバックグラウンドプロセスで起動する。バックグラウンドプロセスで起動した印刷データ編集ユニット208は、印刷データ編集ユニット208をフォアグラウンドプロセスで起動させ、フォアグラウンドプロセスで動作する印刷データ編集ユニット208に対してUI画面の起動指示を行う。UI画面の起動指示が行われると、フォアグラウンドプロセスで動作する印刷データ編集ユニット208が起動し、UI画面の起動を行う。例えば、フォアグラウンドプロセスで動作する印刷データ編集ユニット208は、印刷プレビューの表示を実行する。フォアグラウンドプロセスで動作する印刷データ編集ユニット208は、印刷プレビューの表示を実行した後、印刷プレビューの表示が終了されるまで待機状態となる。なお印刷プレビューは、印刷プレビューを確認したユーザが、印刷の続行や印刷中止を指示することにより終了する。
【0046】
S404で、フォアグラウンドプロセスで動作する印刷データ編集ユニット208は、ステータス通知アプリケーション211を起動させる。
【0047】
S405で、バックグラウンドプロセスで動作する印刷データ編集ユニット208は、印刷プレビューの終了通知を受け取り、待機状態を終了する。
【0048】
S406で、印刷データ編集ユニット208は、印刷装置102に対して印刷データの送信を行う。
【0049】
S407で、ステータス通知アプリケーション211は、印刷装置102に対してステータス情報の取得要求を行う。
【0050】
S408で、印刷装置102は、ステータス情報の取得要求の応答として印刷装置102のステータス情報を送信する。
【0051】
S409で、ステータス通知アプリケーション211は、取得したステータス情報に基づき、ステータス通知画面の表示を行う。なおステータス通知アプリケーション211は、印刷装置102が対象の印刷ジョブの印刷処理を終了するまで、S407からS409の処理を繰り返す。つまり、ステータス通知アプリケーション211は、印刷装置102のステータス情報を更新して表示する。
【0052】
S410で、ステータス通知アプリケーション211は、取得したステータス情報に基づいて対象の印刷ジョブの印刷処理が終了しているか否かを判定する。そして、対象の印刷ジョブの印刷処理が終了していると判定した場合、S407からS409の繰り返し処理を終了する。
【0053】
図5は、印刷データ編集ユニット208のバックグラウンドプロセスの処理を示す図である。
図5のフローチャートはOSから起動された場合に開始される。以降、印刷データ編集ユニット208を、各処理の主体として説明することもあるが、実際には、対応するプログラムをCPU111が実行することで、対応する機能が実現されることになる。
【0054】
S501において、バックグラウンドプロセスで動作する印刷データ編集ユニット208は、中間データまたは印刷データを取得する。取得する印刷データは、印刷データ生成ソフトウェア202が生成したデータである。また、スキップ制御ユニット206によってスキップ指示が行われている場合、OSが生成した中間データが取得される。
【0055】
図4のS403に相当するS502において、バックグラウンドプロセスで動作する印刷データ編集ユニット208は、フォアグラウンドプロセスで動作する印刷データ編集ユニット208に対してUI画面の起動指示を行う。例えば、印刷プレビュー画面の起動指示を行う。なお印刷設定に印刷プレビュー機能の設定が設けられており、ユーザが印刷プレビュー機能を使用するか否かを切り替えられるようにしてもよい。印刷プレビュー機能を使用しない設定がされている場合、S502において、バックグラウンドプロセスで動作する印刷データ編集ユニット208は、フォアグラウンドプロセスで動作する印刷データ編集ユニット208に対してUI画面の起動指示を行う代わりにステータス通知アプリケーション211の起動指示を行う。またこの場合、S503の処理は省略される。
【0056】
S503において、バックグラウンドプロセスで動作する印刷データ編集ユニット208は、UI画面の表示処理が終了したか否かを判定する。バックグラウンドプロセスで動作する印刷データ編集ユニット208は、S503においてYESと判定された場合、S504に進み、S503においてNOと判定された場合、S503を繰り返す。つまり、印刷データ編集ユニット208は、起動した印刷プレビュー画面が終了するまで処理を止めて待機する。
【0057】
図4のS406に相当するS504において、バックグラウンドプロセスで動作する印刷データ編集ユニット208は、印刷データを印刷装置102に送信する。これによって、印刷装置102は、取得した印刷データに基づき印刷処理を開始する。なお、スキップ制御ユニット206によってスキップ指示が行われている場合、取得される印刷データはOSが生成した中間データとなるため、バックグラウンドプロセスで動作する印刷データ編集ユニット208は、中間データを印刷装置102が解釈可能な印刷データに変換して送信する。バックグラウンドプロセスで動作する印刷データ編集ユニット208は、印刷装置102への印刷データの送信処理を終えると、本フローチャートの処理を終了する。
【0058】
図6は、フォアグラウンドプロセスで動作する印刷データ編集ユニット208の処理を示す図である。
図6のフローチャートはバックグラウンドプロセスで動作する印刷データ編集ユニット208によってUI起動指示が行われた場合に開始される。以降、印刷データ編集ユニット208を、各処理の主体として説明することもあるが、実際には、対応するプログラムをCPU111が実行することで、対応する機能が実現されることになる。なお印刷プレビュー機能を使用しない設定がされている場合、
図5のS502において、バックグラウンドプロセスで動作する印刷データ編集ユニット208は、フォアグラウンドプロセスで動作する印刷データ編集ユニット208に対してUI画面の起動指示を行う代わりにステータス通知アプリケーション211の起動指示を行う。よって、後述する
図6のS601とS604の処理が実行され、S602とS603の処理が省略されてもよい。
【0059】
S601は、
図5のS501と同様の処理であるため説明を省略する。
【0060】
S602において、フォアグラウンドプロセスで動作する印刷データ編集ユニット208は、取得した印刷データに基づき、印刷結果の印刷プレビュー画面を表示する。ユーザは印刷プレビュー画面を確認することで、印刷を続行するか、中止するかの判断を行うことができる。なお印刷プレビュー機能を使用しない設定がされている場合、本処理とS603の処理は省略される。
【0061】
S603において、フォアグラウンドプロセスで動作する印刷データ編集ユニット208は、ユーザにより印刷プレビューの終了指示がされたか否かを判定する。フォアグラウンドプロセスで動作する印刷データ編集ユニット208は、S603においてYESと判定された場合、S604に進み、S603においてNOと判定された場合、S603を繰り返す。つまり、印刷データ編集ユニット208のフォアグラウンドプロセスは、印刷プレビュー画面の終了指示がされるまで処理を止めて待機する。
【0062】
S604において、フォアグラウンドプロセスで動作する印刷データ編集ユニット208は、ステータス通知アプリケーション211を起動し、本フローチャートの処理を終了する。なおフォアグラウンドプロセスで動作する印刷データ編集ユニット208は、ステータス通知アプリケーション211を起動する際に、対象となる印刷キューの名称に関する情報や、印刷装置102と通信するためのURIの情報の少なくとも一つの情報をステータス通知アプリケーション211に送信する。これらの情報は、ステータス通知アプリケーション211がステータス情報を表示する対象となる印刷装置102を特定するために利用される。また、対象となる印刷ジョブの識別情報を起動パラメータとして送信する。印刷ジョブの識別情報は、印刷装置102が対象のジョブを印刷処理中か否かの判定に利用される。具体的には、印刷装置102から取得するステータス情報に含まれる、印刷処理中の印刷ジョブの識別情報と、起動パラメータとして渡された印刷ジョブの識別情報を比較することで、ステータス通知アプリケーション211は対象となる印刷ジョブの印刷処理が行われている最中であるかを判定することができる。これにより、ステータス通知アプリケーション211は起動のトリガーとなった対象の印刷ジョブのステータス情報をユーザに通知することができる。加えて、ステータス通知アプリケーション211は、当該印刷ジョブの印刷処理の終了に併せてステータス通知画面の表示を終了することができる。ステータス通知アプリケーション211の処理については、
図7を用いて後述する。なお対象となる印刷キューの名称に関する情報や、印刷装置102と通信するためのURIの情報、印刷ジョブの識別情報等の印刷装置に関する情報を取得するタイミングは、拡張アプリケーション204が印刷装置102と通信可能なタイミングであればいつでもよい。
【0063】
図7は、ステータス通知アプリケーション211の処理を示す図である。
図7のフローチャートはフォアグラウンドプロセスで動作する印刷データ編集ユニット208により起動された場合に開始される。以降、ステータス通知アプリケーション211を、各処理の主体として説明することもあるが、実際には、対応するプログラムをCPU111が実行することで、対応する機能が実現されることになる。
【0064】
S701において、ステータス通知アプリケーション211は、印刷装置102からステータス情報を取得する。ステータス情報に含まれる情報としては、処理中の印刷ジョブを識別するIDの情報、印刷ジョブの処理状態に関する情報、印刷装置102で発生しているエラーを示す情報、インクの残量情報などが挙げられるが、これらに限定されるものではない。
【0065】
S702において、ステータス通知アプリケーション211は、対象の印刷ジョブの印刷処理が終了しているか否かを判定する。対象の印刷ジョブが処理中か否かは、起動パラメータとして渡された印刷ジョブの識別情報と、印刷装置102から取得したステータス情報を比較することで判定可能である。ステータス通知アプリケーション211は、S702においてYESと判定された場合、本フローチャートの処理を終了し、S702においてNOと判定された場合、S703に進む。
【0066】
S703において、ステータス通知アプリケーション211は、S701で取得したステータス情報に基づきステータス通知に関する情報を表示する。なおステータス通知アプリケーション211は、本フローチャートの処理が繰り返し実行されている場合、以前取得したステータス情報を更新して表示する。ここで
図8は、通知ユニット209により表示されるステータス通知画面の一例を示す図である。通知ユニット209が表示するステータス通知画面800は、印刷装置102から取得するステータス情報に基づき印刷装置102や印刷ジョブの状態をユーザに通知する画面である。表示領域801は、印刷装置102から取得したステータス情報に基づき、印刷装置102の状態を示すメッセージを表示する領域である。例えば、印刷装置102で用紙なしエラーが発生している場合、
図8に示すように用紙がない旨を示すメッセージを表示する。表示領域802は、ステータス通知画面800が表示された起因である印刷ジョブの情報を表示する領域である。
図8の例では、“Test Print”という名称のジョブが対象の印刷ジョブであることが示されている。コントロールアイテム803は、印刷中止ボタンであり、押下されることで表示領域802に示された印刷ジョブの印刷が中断(キャンセル)される。表示領域804は印刷装置102のインクの残量に関する情報を表示する領域である。なお、印刷装置102のエラーとは、用紙なしエラーに加えて、インク残量が少なくなったことを示すインク残量少エラー、インクがなくなったことを示すインク無しエラー、紙詰まりを示す紙詰まりエラー等があげられる。これらのうち少なくとも1つのエラーが発生した場合、表示領域801に対応するエラーに関するメッセージが表示される。また、ステータス通知画面800に表示される情報はこれらに限定されない。取得したステータス情報のうち、印刷ジョブの処理状態に関する情報を表示してもよい。
【0067】
S704において、ステータス通知アプリケーション211は、ユーザによりステータス通知画面800に対して印刷ジョブの印刷処理を中断させるための操作が行われたか否かを判定する。ステータス通知アプリケーション211は、S704においてYESと判定された場合、S705に進み、S704においてNOと判定された場合、S701に戻る。つまり、印刷ジョブの印刷処理を中断させるための操作がユーザによって行われていない場合は、印刷ジョブの処理が終了する(S902においてYES)までS901~S904の処理が繰り返し実行される。
【0068】
S705にて、ステータス通知アプリケーション211は、印刷装置102に対して、印刷ジョブの印刷処理を中断させるための操作が行われたことを示す情報を送信し、本フローチャートの処理を終了する。これにより、印刷装置102は指定された印刷ジョブの印刷処理を中断する。
【0069】
以上、拡張アプリケーション204がローカル印刷用途の印刷データ生成ソフトウェア202と関連付けられて動作する場合において、エラー状態でない場合においてもステータス通知が可能なステータス通知アプリケーション211を、ユーザの印刷指示に基づいて起動させ、ステータス通知画面を提供する。これにより、印刷装置102がエラー状態でない場合においてもステータス通知を表示することができる。また、ユーザがトースト通知に気が付かず、トースト通知が押下されなかった場合において、ステータス通知が表示されない可能性を軽減できる。さらに、印刷装置102への印刷データ送信後であり、印刷が開始された後の印刷装置102のステータス情報についてもトースト通知を介さずに表示することが可能となる。
【0070】
上述した実施形態において、ステータス通知アプリケーション211を拡張アプリケーション204とは異なるアプリケーションとして説明しているが、拡張アプリケーション204を別インスタンスとして起動してもよい。この場合、上述したステータス通知アプリケーション211の動作を別インスタンスで起動した拡張アプリケーション204が行う。なお、
図8で説明した通知画面800は、ステータス通知アプリケーション211と別インスタンスで起動した拡張アプリケーション204とで異なる通知画面が表示されてもよいし同じ通知画面が表示されてもよい。また、上述した、トースト通知を介して表示される通知ユニット209のUI画面は、ステータス通知アプリケーション211や別インスタンスで起動した拡張アプリケーション204によって表示される通知画面と異なる通知画面であってもよいし同じ通知画面であってもよい。
【0071】
上述した実施形態において、印刷データ編集ユニット208が、ステータス通知アプリケーション211の起動をフォアグラウンドプロセスで行っているが、バックグラウンドプロセスから別アプリを起動可能な環境においては、バックグラウンドプロセスからステータス通知アプリケーション211を起動してもよい。具体的には、
図5のS502において、バックグラウンドプロセスで動作する印刷データ編集ユニット208は、フォアグラウンドプロセスで動作する印刷データ編集ユニット208に対してUI画面の起動指示を行う代わりにステータス通知アプリケーション211を起動させてもよい。この場合、
図6のフローチャートは省略されてよい。
【0072】
(第2の実施形態)
第1の実施形態では、拡張アプリケーション204がローカル印刷用途の印刷データ生成ソフトウェア202と関連付けられて動作するケースについて説明した。本実施形態では、拡張アプリケーション204がクラウド印刷用途の印刷データ生成ソフトウェア202と関連付けられて動作するケースについて説明する。
図3におけるCloud Print Service301は、ホストデバイスと印刷装置102の間で動作してクラウド印刷機能を提供するサービスである。クラウド印刷を行う場合、ホストコンピュータ101等のホストデバイスはCloud Print Service301に印刷ジョブを送信する。そして印刷装置102はCloud Print Service301から印刷ジョブを取得し、印刷を行う。また、印刷ジョブの処理状況や印刷装置102の状態情報は印刷装置102からCloud Print Service301に送信され、Cloud Print Service301を介してホストコンピュータ101に送信される。つまり、従来、クラウド印刷用途の印刷データ生成ソフトウェア202は、Cloud Print Service301からステータス情報を取得し、印刷装置102がエラー状態になったことを検知すると、OSによりトースト通知302を表示していた。そしてユーザにより、トースト通知302が押下されることで、OSは拡張アプリケーション204の通知ユニット209を起動し、通知ユニット209によってステータス通知画面800が表示されていた。
【0073】
本実施形態では、クラウド印刷において、拡張アプリケーション204がCloud Print Service301から印刷装置102のステータス情報を取得し、ステータス通知アプリケーション211に送信する。そしてステータス通知アプリケーション211が印刷装置102のステータス情報を通知する場合について説明する。尚、実施形態1と同じ処理については、本実施形態での説明を省略する。
【0074】
図9は、本システムのシーケンス図である。以降、各装置や、アプリケーション、OSを各処理の主体として説明することもあるが、実際には、対応するプログラムを各装置内のCPUなどのプロセッサが実行することで、対応する機能が実現されることになる。なお、全ての処理は必ずしも一つのプロセス上で逐次的に実行されるものではなく、一度OS側に処理が移り、再度OSから呼び出されるようなケースもあり得る。あくまで主要な処理を、便宜的にわかりやすく示したフローである。
【0075】
図9のシーケンスはユーザによって印刷指示を行うための操作が行われた場合に開始される。なお印刷指示を行うための操作とは、例えば、描画アプリケーション201の画面において拡張アプリケーション204によって開かれる印刷設定画面の印刷ボタン(不図示)が押下される操作である。
【0076】
S901~S905は、S401~S405と同様の処理であるため説明を省略する。
【0077】
S906で、バックグラウンドプロセスで動作する印刷データ編集ユニット208は、Cloud Print Service301に対して印刷データの送信を行う。
【0078】
S907で、バックグラウンドプロセスで動作する印刷データ編集ユニット208は、Cloud Print Service301に対してステータス情報の取得要求を行う。
【0079】
S908で、Cloud Print Service301は、ステータス情報の取得要求の応答としてバックグラウンドプロセスで動作する印刷データ編集ユニット208にステータス情報を送信する。
【0080】
S909で、バックグラウンドプロセスで動作する印刷データ編集ユニット208は、取得したステータス情報を、ステータス通知アプリケーション211に送信する。
【0081】
S910、S911は、
図4のS410、S411と同様の処理であるため説明を省略する。
【0082】
以上により、拡張アプリケーション204がクラウド印刷用途の印刷データ生成ソフトウェア202と関連付けられて動作する場合においても、ステータス通知アプリケーション211を用いたステータス通知を提供することが可能となる。
【0083】
図10は、バックグラウンドプロセスで動作する印刷データ編集ユニット208の処理を示す図である。
図10のフローチャートはOSから起動された場合に開始される。以降、印刷データ編集ユニット208を、各処理の主体として説明することもあるが、実際には、対応するプログラムをCPU111が実行することで、対応する機能が実現されることになる。
【0084】
S1001~S1004の処理は、S501~S504の処理と同様であるため説明を省略する。S1004において、バックグラウンドプロセスで動作する印刷データ編集ユニット208は、印刷データをCloud Print Service301に送信する。
【0085】
S1005において、バックグラウンドプロセスで動作する印刷データ編集ユニット208は、Cloud Print Service301からステータス情報を取得する。
【0086】
S909に相当するS1006において、バックグラウンドプロセスで動作する印刷データ編集ユニット208は、S1005で取得したステータス情報を、ステータス通知アプリケーション211に送信する。ステータス情報の送信における通信方法はプロセス間通信などが考えられるが、これに限定されるものではない。なおステータス通知アプリケーション211は、送信されたステータス情報に基づきステータス通知を行う。
【0087】
S1007において、バックグラウンドプロセスで動作する印刷データ編集ユニット208は、S1005で取得したステータス情報から、印刷装置102が対象の印刷ジョブの印刷処理を終了しているか否かを判定する。印刷データ編集ユニット208は、S1007でYESと判定された場合、S1008に進み、S1007でNOと判定された場合、S1009に進む。
【0088】
S1008において、バックグラウンドプロセスで動作する印刷データ編集ユニット208は、対象の印刷ジョブの印刷処理が終了していることを示す情報をステータス通知アプリケーション211に送信し、本フローチャートの処理を終了する。
【0089】
S1009において、バックグラウンドプロセスで動作する印刷データ編集ユニット208は、印刷ジョブの印刷処理を中断させるための操作が行われたことを示す情報をステータス通知アプリケーション211から取得したか否かを判定する。印刷データ編集ユニット208は、S1009でYESと判定された場合、S1010に進み、S1009でNOと判定された場合、S1005に戻る。
【0090】
S1010で、バックグラウンドプロセスで動作する印刷データ編集ユニット208は、対象の印刷ジョブの印刷処理を中断させるための指示を行う。なお対象の印刷ジョブの印刷処理を中断させるための指示は、印刷データ編集ユニット208がOSに対して印刷処理を中断させるための指示を行うことで、OSを介して印刷装置102に対して指示される。また、バックグラウンドプロセスで動作する印刷データ編集ユニット208が印刷装置102と通信可能である場合は、バックグラウンドプロセスで動作する印刷データ編集ユニット208が印刷装置102に対して印刷処理を中断させるための指示を行ってもよい。なお印刷データ編集ユニット208がCloud Print Service301に対して印刷処理を中断させるための指示情報を送信し、Cloud Print Service301を介して印刷装置102に対して印刷処理の中断が指示されてもよい。
【0091】
図11は、ステータス通知アプリケーション211の処理を示す図である。
図11のフローチャートは、フォアグラウンドプロセスで動作する印刷データ編集ユニット208により起動された場合に開始される。以降、ステータス通知アプリケーション211を、各処理の主体として説明することもあるが、実際には、対応するプログラムをCPU111が実行することで、対応する機能が実現されることになる。
【0092】
S1101において、ステータス通知アプリケーション211は、印刷データ編集ユニット208からステータス情報を取得する。ステータス情報に含まれる情報としては、処理中の印刷ジョブを識別するIDの情報、印刷ジョブの処理状態に関する情報、印刷装置102で発生しているエラーを示す情報、インクの残量情報などが挙げられるが、これらに限定されるものではない。
【0093】
S1102において、ステータス通知アプリケーション211は、対象の印刷ジョブの印刷処理が終了しているか否かを判定する。対象の印刷ジョブが処理中か否かは、起動パラメータとして渡された印刷ジョブの識別情報と、印刷装置102から取得したステータス情報から判定可能である。ステータス通知アプリケーション211は、S1102においてYESと判定された場合、本フローチャートの処理を終了し、S1102においてNOと判定された場合、S1103に進む。
【0094】
S1103において、ステータス通知アプリケーション211は、S1101で取得したステータス情報に基づきステータス通知に関する情報を表示する。なおステータス通知アプリケーション211は、本フローチャートの処理が繰り返し実行されている場合、以前取得したステータス情報を更新して表示する。通知ユニット209により表示されるステータス通知画面は
図8と同様である。
【0095】
S1104において、ステータス通知アプリケーション211は、ユーザによりステータス通知画面を通して印刷処理を中断させるための操作が行われたか否かを判定する。ステータス通知アプリケーション211は、S1104においてYESと判定された場合、S1105に進み、S1104においてNOと判定された場合、S1101に戻る。
【0096】
S1105にて、ステータス通知アプリケーション211は、印刷データ編集ユニット208に対して、印刷ジョブの印刷処理を中断させるための操作が行われたことを示す情報を送信し、本フローチャートの処理を終了する。これにより、S1010において、印刷データ編集ユニット208は指定された印刷ジョブの印刷処理を中断させるための指示を行う。
【0097】
以上、拡張アプリケーション204がクラウド印刷用途の印刷データ生成ソフトウェア202と関連付けられて動作する場合において、エラー状態でない場合においてもステータス通知が可能なステータス通知アプリケーション211を、ユーザの印刷指示に基づいて起動させ、ステータス通知画面を提供する。これにより、印刷装置102がエラー状態でない場合においてもステータス通知を表示することができる。また、ユーザがトースト通知に気が付かず、トースト通知が押下されなかった場合において、ステータス通知が表示されない可能性を軽減できる。さらに、印刷装置102への印刷データ送信後であり、印刷が開始された後の印刷装置102のステータス情報についてもトースト通知を介さずに表示することが可能となる。また、さらに、本構成を用いることで、プリンタを共有して利用する場合にサーバを用いている場合においても、ステータス通知アプリケーション211を用いたステータス通知画面を提供することが可能となる。
【0098】
上述した実施形態では、拡張アプリケーション204がCloud Print Service301から印刷装置102のステータス情報を取得し、ステータス通知アプリケーション211に印刷装置102のステータス情報を送信する形態について説明した。しかしながら、ステータス通知アプリケーション211がCloud Print Service301から印刷装置102のステータス情報を取得可能である場合は、ステータス通知アプリケーション211がCloud Print Service301から印刷装置102のステータス情報を取得してもよい。
【0099】
(第3の実施形態)
第1の実施形態や第2の実施形態では、印刷データ編集ユニット208は、対象の印刷ジョブの印刷データを受信した場合、ステータス通知アプリケーション211を常に起動させる形態について説明した。本実施形態では、ユーザや管理者による設定に応じて、ステータス通知アプリケーション211を起動させるか否かを切り替える方法について説明する。尚、実施形態1や実施形態2と同様の処理については、本実施形態での説明を省略する。
【0100】
図12は、フォアグラウンドで動作する印刷データ編集ユニット208の処理を示す図である。
図12のフローチャートはバックグラウンドで動作する印刷データ編集ユニット208により、UI起動指示が行われた場合に開始される。以降、印刷データ編集ユニット208を、各処理の主体として説明することもあるが、実際には、対応するプログラムをCPU111が実行することで、対応する機能が実現されることになる。
【0101】
S1201~S1203の処理は
図5のS501~S503と同様の処理であるため説明を省略する。
【0102】
S1204で、フォアグラウンドで動作する印刷データ編集ユニット208は、ステータス通知の印刷時起動設定を取得する。ステータス通知の印刷時起動設定は、ステータス通知が印刷ジョブの印刷処理を開始するための操作が行われた場合にステータス情報が通知されるか否かをユーザが設定可能な設定である。そして印刷時起動設定は、拡張アプリケーション204の印刷設定画面拡張ユニットが表示する印刷設定画面上で設定される。印刷時起動設定は、印刷設定を格納するPrintTicketに印刷設定として格納されたり、共有情報210に格納される。例えばステータス通知の印刷時起動設定は、印刷時にステータス通知画面を表示するか否かが、オン/オフの設定で格納される。なおステータス通知の印刷時起動設定が設定されるために表示される場所や設定された情報の格納方法や格納場所はこれに限定されるものではない。
【0103】
S1205において、フォアグラウンドで動作する印刷データ編集ユニット208は、ステータス通知の印刷時起動設定においてステータス通知が印刷ジョブの印刷処理を開始するための操作が行われた場合にステータス情報が通知されるか否かを判定する。つまり、印刷データ編集ユニット208は、印刷時起動設定がオンであるかオフであるかを判定する。S1205においてYESと判定された場合、S1206に進み、S1204においてNOと判定された場合、本フローチャートの処理を終了する。
【0104】
S1206の処理は、S604の処理と同様の処理であるため説明を省略する。
【0105】
以上により、ステータス通知の印刷時起動設定に応じて、印刷ジョブの印刷処理を開始するための操作が行われた場合にステータス通知アプリケーション211を起動させるか否かを切り替えることが可能となる。
【0106】
なお、上述したように、通知ユニット209は、印刷装置102のエラー発生時にトースト通知を行うことが可能である。よって、印刷時起動設定がオンであるかオフであるかに基づいて、トースト通知が行われるか否かが切り替わってもよい。具体的には、通知ユニット209は、ステータス通知の印刷時起動設定を取得し、印刷時起動設定がオンであるかオフであるかを判定する。通知ユニット209は、印刷時起動がオンである場合、ステータス通知アプリケーション211が起動されていると判定し、エラー発生時であってもトースト通知を行わなくてもよい。また通知ユニット209は、印刷時起動がオフである場合、ステータス通知アプリケーション211が起動されていないと判定し、エラー発生時にトースト通知を行ってもよい。これにより、印刷ジョブの印刷処理が行われる度にステータス通知が行われず、かつ印刷装置102のエラー発生時にはトースト通知が行われる形態を実現できる。さらに、ステータス通知アプリケーション211によって行われるステータス通知と、通知ユニット209によって行われるトースト通知のどちらもが表示されることによる煩わしさを軽減できる。または、印刷装置102のエラー発生時においては、印刷時起動設定がオンである場合であっても、ステータス通知アプリケーション211によって行われるステータス通知と、通知ユニット209によって行われるトースト通知のどちらもが表示されてもよい。これにより、ユーザに印刷装置102のエラー発生をより確実に通知することができる。また、印刷時起動設定がオンである場合にステータス通知アプリケーション211が起動されているか否かを判定し、ステータス通知アプリケーション211が起動されていると判定した場合は、通知ユニット209によるトースト通知は行わなくてもよい。また印刷時起動設定がオンである場合にステータス通知アプリケーション211が起動されていないと判定した場合は、通知ユニット209によるトースト通知を行ってもよい。これにより、ユーザに印刷装置102のエラー発生をより確実に通知することができる。
【0107】
(その他の実施形態)
上述したように、第1の実施形態では、ローカル印刷において、ステータス通知アプリケーション211が印刷装置102と直接通信を行い、ステータス情報を取得することで、ステータス通知画面800を表示する方法について説明した。また第2の実施形態では、クラウド印刷において、印刷データ編集ユニット208がステータス情報を取得し、ステータス通知アプリケーション211に送信することで、ステータス通知アプリケーション211が取得したステータス情報に基づいてステータス通知画面800を表示する方法について説明した。本実施形態では、拡張アプリケーション204がローカル印刷用途の印刷データ生成ソフトウェア202とクラウド印刷用途の印刷データ生成ソフトウェア202とのどちらと関連付けられているかを判定し、判定結果に応じて第1の実施形態における処理と第2の実施形態における処理を切り替えてもよい。なお本判定は拡張アプリケーション204における印刷データ編集ユニット208が行ってもよいし、印刷設定画面拡張ユニット205が本判定を行い、判定結果を印刷設定として保存してもよい。
【0108】
上述した実施形態は、以下の処理を実行することによっても実現される。すなわち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(CPUやMPU等)がプログラムを読み出して実行する処理である。また、プログラムは、1つのコンピュータで実行させても、複数のコンピュータで連動させて実行させるようにしてもよい。また、上記した処理の全てをソフトウェアで実現する必要はなく、処理の一部または全部をASIC等のハードウェアで実現するようにしてもよい。また、CPUも1つのCPUで全ての処理を行うものに限らず、複数のCPUが適宜連携をしながら処理を行うものとしてもよい。
【0109】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施例の機能が実現されるだけでない。そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOSなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【符号の説明】
【0110】
101 ホストコンピュータ
102 印刷装置
201 描画アプリケーション
202 印刷データ生成ソフトウェア
203 印刷機能情報
204 拡張アプリケーション