(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-26
(45)【発行日】2024-03-05
(54)【発明の名称】情報処理装置、制御方法およびプログラム
(51)【国際特許分類】
G06F 3/12 20060101AFI20240227BHJP
【FI】
G06F3/12 362
G06F3/12 303
G06F3/12 328
G06F3/12 356
(21)【出願番号】P 2019239036
(22)【出願日】2019-12-27
【審査請求日】2022-12-08
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100126240
【氏名又は名称】阿部 琢磨
(74)【代理人】
【識別番号】100223941
【氏名又は名称】高橋 佳子
(74)【代理人】
【識別番号】100159695
【氏名又は名称】中辻 七朗
(74)【代理人】
【識別番号】100172476
【氏名又は名称】冨田 一史
(74)【代理人】
【識別番号】100126974
【氏名又は名称】大朋 靖尚
(72)【発明者】
【氏名】塩原 徹矢
【審査官】白石 圭吾
(56)【参考文献】
【文献】特開2009-188505(JP,A)
【文献】特開2001-159961(JP,A)
【文献】特開2010-218338(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/12
B41J 29/38
(57)【特許請求の範囲】
【請求項1】
複数の印刷装置で印刷可能な印刷データを生成するソフトウェアの機能を拡張するアプリケーションを有する情報処理装置であって、
第1の印刷装置を指定して生成された第1印刷ジョブと、前記第1の印刷装置とは異なる第2
の印刷装置を指定して生成された第2印刷ジョブを格納領域に保存する保存処理手段と、
前記第1および第2印刷ジョブが前記格納領域に保存された状態で前記第1の印刷装置に対応する識別情報を含む第3印刷ジョブを受信した場合、前記受信された前記第3印刷ジョブのジョブ名称と前記第1印刷ジョブのジョブ名称が含まれ、かつ、前記第2印刷ジョブのジョブ名称が含まれない画面を表示する表示制御手段を備え
、
前記第1印刷ジョブは、前記第3印刷ジョブの印刷指示により前記アプリケーションが起動する前に前記格納領域に保存されたものであることを特徴とする情報処理装置。
【請求項2】
前記第1の印刷装置を指定して印刷設定画面が表示された場合、前記印刷設定画面を用いて生成された設定内容と前記第1の印刷装置の第1識別情報に基づいて印刷設定情報を生成し、前記第2の印刷装置を指定して印刷設定画面が表示された場合、前記印刷設定画面を用いて生成された設定内容と前記第2の印刷装置の第2識別情報に基づいて印刷設定情報を生成する生成手段を更に備えることを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記表示制御手段は、前記第1および第2印刷ジョブが前記格納領域に保存された状態で前記第1の印刷装置に対応する識別情報を含む第3印刷ジョブを受信した場合、前記第3印刷ジョブから取得される前記識別情報と同じ識別情報が含まれる第1印刷ジョブを取得し、かつ、前記第3印刷ジョブから取得される前記識別情報とは異なる識別情報が含まれる第2印刷ジョブを取得しない取得制御手段を更に備えることを特徴とする請求項2に記載の情報処理装置。
【請求項4】
前記第3印刷ジョブは、前記第1の印刷装置を指定して生成された印刷ジョブであることを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。
【請求項5】
前記第3印刷ジョブは、前記第1および前記第2の印刷装置とは異なる第3の印刷装置を指定して生成された印刷ジョブであることを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。
【請求項6】
前記ソフトウェアは、前記情報処理装置のOSに予め含まれるソフトウェアであることを特徴とする請求項1乃至5のいずれか1項に記載の情報処理装置。
【請求項7】
情報処理装置であって、
複数の印刷ジョブを結合する結合機能および印刷ジョブのプレビュー画像を表示するプレビュー機能が有効化されて第1印刷ジョブが生成された場合、表示維持機能が有効化された状態でプレビュー画面を表示する表示制御手段と、
前記第1印刷ジョブと同じ印刷装置が指定され、かつ、複数の印刷ジョブを結合する結合機能および印刷ジョブのプレビュー画像を表示するプレビュー機能が有効化されて第2印刷ジョブが生成された場合、前記表示維持機能が有効化された状態で表示中の前記プレビュー画面に前記第2印刷ジョブを追加する追加手段を有することを特徴とする情報処理装置。
【請求項8】
複数の印刷装置で印刷可能な印刷データを生成するソフトウェアの機能を拡張するアプリケーションを有する情報処理装置の制御方法であって、
第1の印刷装置を指定して生成された第1印刷ジョブと、前記第1の印刷装置とは異なる第2
の印刷装置を指定して生成された第2印刷ジョブを格納領域に保存する保存処理ステップと、
前記第1および第2印刷ジョブが前記格納領域に保存された状態で前記第1の印刷装置に対応する識別情報を含む第3印刷ジョブを受信した場合、前記受信された前記第3印刷ジョブのジョブ名称と前記第1印刷ジョブのジョブ名称が含まれ、かつ、前記第2印刷ジョブのジョブ名称が含まれない画面を表示する表示制御ステップを備え
、
前記第1印刷ジョブは、前記第3印刷ジョブの印刷指示により前記アプリケーションが起動する前に前記格納領域に保存されたものであることを特徴とする制御方法。
【請求項9】
前記第1の印刷装置を指定して印刷設定画面が表示された場合、前記印刷設定画面を用いて生成された設定内容と前記第1の印刷装置の第1識別情報に基づいて印刷設定情報を生成し、前記第2の印刷装置を指定して印刷設定画面が表示された場合、前記印刷設定画面を用いて生成された設定内容と前記第2の印刷装置の第2識別情報に基づいて印刷設定情報を生成する生成ステップを更に備えることを特徴とする請求項
8に記載の制御方法。
【請求項10】
前記第1および第2印刷ジョブが前記格納領域に保存された状態で前記第1の印刷装置に対応する識別情報を含む第3印刷ジョブが受信された場合、前記第3印刷ジョブから取得される前記識別情報と同じ識別情報が含まれる第1印刷ジョブを取得し、かつ、前記第3印刷ジョブから取得される前記識別情報とは異なる識別情報が含まれる第2印刷ジョブを取得しない取得制御ステップを更に備えることを特徴とする請求項
9に記載の制御方法。
【請求項11】
前記第3印刷ジョブは、前記第1の印刷装置を指定して生成された印刷ジョブであることを特徴とする請求項
8乃至
10のいずれか1項に記載の制御方法。
【請求項12】
前記第3印刷ジョブは、前記第1および前記第2の印刷装置とは異なる第3の印刷装置を指定して生成された印刷ジョブであることを特徴とする請求項
8乃至
10のいずれか1項に記載の制御方法。
【請求項13】
前記ソフトウェアは、前記情報処理装置のOSに予め含まれるソフトウェアであることを特徴とする請求項8乃至12のいずれか1項に記載の制御方法。
【請求項14】
情報処理装置の制御方法であって、
複数の印刷ジョブを結合する結合機能および印刷ジョブのプレビュー画像を表示するプレビュー機能が有効化されて第1印刷ジョブが生成された場合、表示維持機能が有効化された状態でプレビュー画面を表示する表示制御ステップと、
前記第1印刷ジョブと同じ印刷装置が指定され、かつ、複数の印刷ジョブを結合する結合機能および印刷ジョブのプレビュー画像を表示するプレビュー機能が有効化されて第2印刷ジョブが生成された場合、前記表示維持機能が有効化された状態で表示中の前記プレビュー画面に前記第2印刷ジョブを追加する追加ステップを有することを特徴とする制御方法。
【請求項15】
複数の印刷装置で印刷可能な印刷データを生成するソフトウェアの機能を拡張するアプリケーションのプログラムであって、
コンピュータに、
第1の印刷装置を指定して生成された第1印刷ジョブと、前記第1の印刷装置とは異なる第2
の印刷装置を指定して生成された第2印刷ジョブを格納領域に保存する保存処理ステップと、
前記第1および第2印刷ジョブが前記格納領域に保存された状態で前記第1の印刷装置に対応する識別情報を含む第3印刷ジョブを受信した場合、前記受信された前記第3印刷ジョブのジョブ名称と前記第1印刷ジョブのジョブ名称が含まれ、かつ、前記第2印刷ジョブのジョブ名称が含まれない画面を表示する表示制御ステップを実行させ
、
前記第1印刷ジョブは、前記第3印刷ジョブの印刷指示により前記アプリケーションが起動する前に前記格納領域に保存されたものである、プログラム。
【請求項16】
前記コンピュータに、更に、
前記第1の印刷装置を指定して印刷設定画面が表示された場合、前記印刷設定画面を用いて生成された設定内容と前記第1の印刷装置の第1識別情報に基づいて印刷設定情報を生成し、前記第2の印刷装置を指定して印刷設定画面が表示された場合、前記印刷設定画面を用いて生成された設定内容と前記第2の印刷装置の第2識別情報に基づいて印刷設定情報を生成する生成ステップを実行させるための請求項1
5に記載のプログラム。
【請求項17】
前記コンピュータに、更に、
前記第1および第2印刷ジョブが前記格納領域に保存された状態で前記第1の印刷装置に対応する識別情報を含む第3印刷ジョブが受信された場合、前記第3印刷ジョブから取得される前記識別情報と同じ識別情報が含まれる第1印刷ジョブを取得し、かつ、前記第3印刷ジョブから取得される前記識別情報とは異なる識別情報が含まれる第2印刷ジョブを取得しない取得制御ステップを実行させるための請求項1
6に記載のプログラム。
【請求項18】
前記第3印刷ジョブは、前記第1の印刷装置を指定して生成された印刷ジョブであることを特徴とする請求項1
5乃至1
7のいずれか1項に記載のプログラム。
【請求項19】
前記第3印刷ジョブは、前記第1および前記第2の印刷装置とは異なる第3の印刷装置を指定して生成された印刷ジョブであることを特徴とする請求項1
5乃至1
7のいずれか1項に記載のプログラム。
【請求項20】
前記ソフトウェアは、前記コンピュータのOSに予め含まれるソフトウェアであることを特徴とする請求項15乃至19のいずれか1項に記載のプログラム。
【請求項21】
コンピュータに、
複数の印刷ジョブを結合する結合機能および印刷ジョブのプレビュー画像を表示するプレビュー機能が有効化されて第1印刷ジョブが生成された場合、表示維持機能が有効化された状態でプレビュー画面を表示する表示制御ステップと、
前記第1印刷ジョブと同じ印刷装置が指定され、かつ、複数の印刷ジョブを結合する結合機能および印刷ジョブのプレビュー画像を表示するプレビュー機能が有効化されて第2印刷ジョブが生成された場合、前記表示維持機能が有効化された状態で表示中の前記プレビュー画面に前記第2印刷ジョブを追加する追加ステップを実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、制御方法およびプログラムに関する。
【背景技術】
【0002】
従来、複数の印刷ジョブを結合して一つの印刷ジョブとして扱うジョブ結合機能が特許文献1に開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1に開示された印刷システムとは異なる印刷システムにおいても、ジョブ結合機能の実施が求められていた。
【課題を解決するための手段】
【0005】
上述のような課題を解決するための本発明の情報処理装置は、複数の印刷装置で印刷可能な印刷データを生成するソフトウェアの機能を拡張するアプリケーションを有する情報処理装置であって、第1の印刷装置を指定して生成された第1印刷ジョブと、前記第1の印刷装置とは異なる第2の印刷装置を指定して生成された第2印刷ジョブを格納領域に保存する保存制御手段と、前記第1および第2印刷ジョブが前記格納領域に保存された状態で前記第1の印刷装置に対応する識別情報を含む第3印刷ジョブを受信した場合、前記受信された前記第3印刷ジョブのジョブ名称情報と前記第1印刷ジョブのジョブ名称情報が含まれ、かつ、前記第2印刷ジョブのジョブ名称情報が含まれない画面を表示する表示制御手段を備え、前記第1印刷ジョブは、前記第3印刷ジョブの印刷指示により前記アプリケーションが起動する前に前記格納領域に保存されたものであることを特徴とする。
【発明の効果】
【0006】
本発明により、拡張アプリケーションを用いた印刷システムにおいて、ジョブ結合機能を提供することが可能となる。
【図面の簡単な説明】
【0007】
【
図1】印刷システムのハードウェア構成を示すブロック図。
【
図2】印刷におけるデータフローを説明するためのブロック図。
【
図3】実施形態1における印刷設定を行う画面を説明するための模式図。
【
図4】印刷プレビュー機能のユーザインタフェースの模式図。
【
図6】実施形態1におけるプレビューユニット処理のフローチャート。
【
図7】実施形態1におけるジョブ保存処理のフローチャート。
【
図9】実施形態1におけるプレビュー処理のフローチャート。
【
図10】印刷設定変更後の印刷プレビュー画面の模式図。
【
図11】実施形態2におけるセットアップ処理のフローチャート。
【
図12】実施形態2におけるUI起動処理のフローチャート。
【
図13】実施形態2におけるプレビュー処理のフローチャート。
【
図14】実施形態2における印刷設定を行う画面を説明するための模式図。
【
図15】アプリケーション201により提供される画面の一例を示す図。
【発明を実施するための形態】
【0008】
図1は、印刷システムのハードウェア構成を示すブロック図である。本図において、ホストコンピュータ101は、情報処理装置の一例であり、入力インタフェース110、CPU111、ROM112、RAM113、外部記憶装置114、出力インタフェース115、及び入出力インタフェース116を有する。また、入力インタフェース110には、キーボード118、ポインティングデバイス117などの入力デバイスが接続され、出力インタフェース115には、表示部119などの表示デバイスが接続されている。
【0009】
ROM112には、初期化プログラムが格納され、外部記憶装置114には、アプリケーションプログラム群、オペレーティングシステム(OS)、印刷データ生成アプリケーション、その他の各種のデータが格納されている。RAM113は、外部記憶装置114にストアされる各種のプログラムの実行の際のワークメモリ等として使用される。なお、Windows(登録商標)において、プリンタドライバの機能を拡張するための拡張アプリケーションを提供することができる。このアプリケーションはWindows Store Device App(WSDA)と呼ばれる。印刷装置を提供するベンダは、WSDAを提供することで、特定のアプリケーションから印刷する際の印刷設定画面をカスタマイズすることができる。同様に、プリンタドライバ機能を拡張するための拡張アプリケーションとして、Print Workflow Appが存在する。印刷装置を提供するベンダは、Print Workflow AppをWSDAの拡張機能として提供することができる。Print Workflow Appは、プリンタドライバへの印刷指示をトリガーとして起動し、GUIを伴う機能の提供や、印刷データの編集を伴う機能の提供することができる。
【0010】
本実施形態では、CPU111が、ROM112に格納されたプログラムの手順に従って処理を行うことによって、ホストコンピュータ101における後述の機能及び後述するフローチャートに係る処理を実行する。デバイスである印刷装置102は、入出力インタフェース116を介して、ホストコンピュータ101と接続されている。ここでは、ホストコンピュータ101と印刷装置102が分かれて構成されているが、これらが一つの情報処理装置として構成されていても良い。なお、印刷装置102は、インクを紙面上に吐出することで印刷するインクジェットプリンタを例に説明するが、他の方法(例えば電子写真方式)で印刷が実行されても良い。また、ホストコンピュータ101は、デスクトップパソコンでも、スマートフォンでも、ノートパソコンでも構わない。
【0011】
図2は、印刷におけるデータフローを示す図である。
図2(a)は、
図2(b)で後述する拡張アプリケーション203が、アプリケーション201、印刷データ生成ソフトウェア202および印刷装置102と関連付けられていない場合のデータフローを示す図である。ユーザは、アプリケーション201から印刷を指示する。なお、アプリケーション201とは印刷されるコンテンツを作成するソフトウェアであり、例えば、文書作成アプリケーションまたは表計算アプリケーションが相当する。印刷を指示する場合、ユーザは、OS、もしくは印刷データ生成ソフトウェア202が提供する印刷設定画面を使って設定処理を行う。この設定処理により、印刷データ生成ソフトウェアが印刷設定情報を生成する。印刷設定情報には、印刷設定画面を使って設定された設定値に対応する設定情報が含まれる。なお、印刷設定情報をPrintTciketと呼ぶこともある。OSは印刷指示に基づきアプリケーションから出力されたアプリケーションデータに基づいて中間データ(入力データとも呼ぶ)を生成して、印刷データ生成ソフトウェア202に渡す。なお、アプリケーションが印刷用に出力するデータは、Graphic Device Interface形式のデータ(GDI形式データ)またはXML Paper Specification形式のデータ(XPS形式のデータ)である。印刷データ生成ソフトウェア202は、ユーザにより設定された印刷設定情報に基づき中間データから印刷装置が解釈可能な印刷データを生成し、印刷装置102に送信する。印刷装置102は、印刷データ生成ソフトウェア202から送られた印刷データに基づき紙面への印刷を行う。
【0012】
なお、印刷データ生成ソフトウェア202は、複数の印刷装置と関連付けられて使われる共通のソフトウェアである。つまり、印刷装置Aが印刷データ生成ソフトウェア202により生成される印刷データを使って印刷することができる。また、印刷装置Bが印刷データ生成ソフトウェア202により生成される印刷データを使って印刷することもできる。印刷データ生成ソフトウェア202は、印刷装置102と関連付けられると、印刷装置102に対応した印刷キューを生成する。なお、印刷キューが生成されると、ユーザは、例えば
図15のようなアプリケーション201が提供する画面において印刷キュー選択アイテム1501から所望の印刷キューを選択することが可能となる。印刷データ生成ソフトウェア202は、印刷キューを生成する際に、関連付けられる印刷装置102の能力情報を取得する。印刷データ生成ソフトウェア202が印刷装置102から取得する能力情報には、印刷装置がサポートしている用紙サイズや種類や、フチなし印刷のサポート有無、などの情報が含まれる。印刷データ生成ソフトウェア202は、印刷装置102から取得した能力情報を、自身の解釈可能な能力情報データとして保存する。この保存された能力情報データは、GPD(Generic Printer Description)やPDC(Print Device Capabilities)と呼ばれるものがこれに該当するが、それ以外の形式でもよい。印刷データ生成ソフトウェア202は、生成した能力情報データに応じてユーザが設定可能な印刷設定を決定する。これにより、印刷データ生成ソフトウェア202は、複数の印刷装置に対して共通で使用されるソフトウェアでありながら、印刷キューごとに関連付けられた印刷装置102の能力に応じて動作することが可能である。例えば、フチなし印刷をサポートしている印刷装置に対してのみ、フチなし印刷の設定を可能にすることができる。
【0013】
図2(b)は、拡張アプリケーション203が印刷データ生成ソフトウェア202と関連付けられた場合のデータフローを示す図である。本実施形態で説明する拡張アプリケーション203は、前述のWSDAとPrint Workflow Appの機能を備えた構成となっているが、これに限定されるものではない。なお、印刷データ生成ソフトウェア202は、OSに予め含まれるソフトウェアである。つまり、OSが装置にインストールされた段階で印刷データ生成ソフトウェアも使用可能である。一方、拡張アプリケーション203は、OSに予め含まれないソフトウェアである。そのためユーザがホストコンピュータを操作して拡張アプリケーション203を、ネットワークを介してサーバからダウンロードして、インストールする必要がある。また、ホストコンピュータ101に印刷装置102が接続された場合、CPU111が印刷装置102からデバイス識別情報を取得する。そして、CPU111は、取得されたデバイス識別情報に対応する拡張アプリケーション203を、ネットワークを介してサーバから取得してインストールしても良い。つまり、印刷データ生成ソフトウェア202と、拡張アプリケーション203は別ファイルとしてホストコンピュータ101に保持される。なお、印刷データ生成ソフトウェア202および拡張アプリケーション203は、更新されてバージョンアップされることもあるが、この更新処理も別々のタイミングで行われる。つまり、ホストコンピュータ101により印刷データ生成ソフトウェア202が取得されるタイミングと、拡張アプリケーション203が取得されるタイミングは異なる。また、ホストコンピュータ101により印刷データ生成ソフトウェア202が取得されるトリガーと、拡張アプリケーション203が取得されるトリガーも異なる。なお、拡張アプリケーション203がインストールされた場合、OSが、印刷データ生成ソフトウェア202と拡張アプリケーション203を関連付ける。本実施形態で説明する拡張アプリケーション203は、印刷設定画面拡張ユニット204とプレビューユニット205を備える。また、拡張アプリケーション203は、アプリケーション固有のデータ格納領域206を備える。データ格納領域206に保存されるデータは、一般的に拡張アプリケーション203を使用したユーザ毎に区別されて保存される。
【0014】
ユーザは、アプリケーション201から印刷を指示する。具体的には、
図15の画面の印刷ボタン1502がユーザにより押下されることで、印刷が指示される。また、拡張アプリケーション203が印刷データ生成ソフトウェア202と関連付けられた状態でユーザが
図15の画面において「プリンターのプロパティ」1503を押下する。その場合、印刷設定画面拡張ユニット204が、
図3で後述する印刷設定画面を表示する。その際、ユーザは、
図3の印刷設定画面を使って設定処理を行う。この設定処理により、印刷設定画面拡張ユニット204は、印刷設定情報を生成する。印刷設定機能の詳細については
図3を用いて後述する。
【0015】
OSは、
図15の印刷ボタン1502が押下されることにより発行される印刷指示に基づきアプリケーションデータと後述する
図3の印刷設定画面を用いて設定された印刷設定情報に基づいて中間データを生成し、拡張アプリケーション203に出力する。拡張アプリケーション203は、中間データを受信することによりプレビューユニット205を起動する。中間データの中には、印刷されるコンテンツに対応する描画データと印刷設定情報が含まれる。なお、OSは、例えば、アプリケーション201から出力されたGDIデータに基づいて中間データとしてXPS形式のデータを生成する。また、アプリケーション201がアプリケーションデータとしてXPS形式のデータを出力した場合、OSは、当該XPS形式のデータをそのままプレビューユニット205に渡しても良い。また、アプリケーション201がアプリケーションデータとしてXPS形式のデータを出力した場合、OSがアプリケーションデータであるXPS形式のデータに修正を加えたXPS形式のデータを中間データとして生成しても良い。
【0016】
プレビューユニット205は、OSが生成した中間データを取得し、印刷プレビューの表示を行う。ユーザは印刷プレビューによって所望の印刷結果になることを確認した後に、印刷プレビューのUIを用いて印刷開始を指示する。プレビューユニット205は、ユーザからの印刷開始指示を受けた場合、中間データを印刷データ生成ソフトウェア202に出力する。印刷データ生成ソフトウェア202は、中間データに基づき、印刷装置が解釈可能な印刷データを生成し、出力する。印刷データ生成ソフトウェア202から出力された印刷データは印刷装置102に送られる。印刷装置102は、ホストコンピュータ101から送られた印刷データに基づき紙面への印刷を行う。上記の構成によって、ユーザは印刷データ生成ソフトウェア202が有していない印刷プレビュー機能を、拡張アプリケーション203によって使用することが可能となる。
【0017】
なお、プレビューユニット205は、印刷データ生成ソフトウェア202の処理前に動作するものとして説明しているが、印刷データ生成ソフトウェアの処理後に動作する構成も考えられる。その場合、プレビューユニット205は、印刷データ生成ソフトウェアが生成した印刷データに対して処理を行うことになる。プレビューユニット205が、印刷データ生成ソフトウェア202の処理後に動作する構成において、中間データに対して処理を行いたい場合、印刷データ生成ソフトウェア202の処理をスキップさせることが考えられる。その場合、拡張アプリケーション203は、印刷データ生成ソフトウェア202の処理前に動作して、印刷データ生成ソフトウェア202の処理をスキップさせるための指示を行う。また、プレビューユニット205が印刷データ生成ソフトウェアの処理前後どちらでも動作可能な構成も考えられる。
【0018】
ここで印刷データ生成ソフトウェア202の処理をスキップする方法について詳細に説明する。ユーザが
図15の印刷ボタン1502を押下したことに基づいて印刷が指示されたことを拡張アプリケーション203が検知する。そして、拡張アプリケーション203は、アプリケーション201から出力された印刷設定情報に基づいて印刷データ生成ソフトウェア202の処理をスキップするか否かを判定する。例えば、印刷設定情報に2in1などのページの編集が必要な設定情報が含まれている場合、拡張アプリケーション203は、中間データを用いてページを編集するべきと判定する。印刷データ生成ソフトウェア202の処理をスキップすると判定された場合、拡張アプリケーション203は、印刷データ生成ソフトウェア202の処理をスキップするようOSに指示する。OSは、この拡張アプリケーション203からの指示を受けて、アプリケーション201から出力されたアプリケーションデータと印刷設定情報に基づいてスキップ指示を含む中間データを生成する。そして、印刷データ生成ソフトウェア202が、スキップ指示を含む中間データを受信した場合、中間データから印刷データを生成することなく、その受信した中間データを拡張アプリケーション203に送る。以上の処理により、拡張アプリケーション203は、印刷データ生成ソフトウェア202の処理後に動作する構成において中間データに対して処理を行う。なお、OSは、拡張アプリケーション203からスキップ指示を受けた場合、印刷データ生成ソフトウェア202に中間データを送らずに、拡張アプリケーション203に中間データを送っても良い。拡張アプリケーション203は、印刷設定情報に基づいて中間データに対して処理を行った後に、中間データを印刷データ生成ソフトウェア202に送る。そして、印刷データ生成ソフトウェア202は、中間データに基づいて印刷データを生成する。なお、拡張アプリケーション203は、印刷設定情報に基づいて中間データに対して処理を行った後に、自身で印刷データを生成しても良い。
【0019】
図3は、拡張アプリケーション203の印刷設定画面拡張ユニット204が提供する、印刷設定画面の一例である。ユーザは、アプリケーション201から印刷指示を行う際に、本画面を用いて印刷設定情報を設定する。拡張アプリケーション203が印刷データ生成ソフトウェア202などに関連付けられていない場合、OSや印刷データ生成ソフトウェア202が提供する標準の印刷設定画面を用いて印刷設定情報が設定される。標準の印刷設定画面では、印刷データ生成ソフトウェア202が提供する機能に対応する印刷設定情報のみが設定可能である。つまり、拡張アプリケーション203が印刷データ生成ソフトウェア202などに関連付けられていない状態で、
図15のプリンターのプロパティ1503が押下された場合、
図3よりも設定項目が簡素な標準の印刷設定画面が表示される。つまり、
図3のような印刷設定画面は表示されない。それに対して、拡張アプリケーション203が提供する印刷設定画面では、拡張アプリケーション203が提供する拡張機能に対応する印刷設定情報も設定可能となる。
図3の例では、ユーザは、
図3の印刷設定画面を使ってプレビューユニット205で提供される印刷プレビュー機能と、印刷ジョブの保存機能の設定を行うことができる。例えば、印刷プレビュー機能および印刷ジョブの保存機能は、標準の印刷設定画面に含まれない設定項目である。なお、印刷プレビュー機能と印刷ジョブの保存機能は同時に動作できないため、拡張アプリケーション203は印刷プレビュー機能が有効になっている場合は印刷ジョブの保存機能の設定を行えないように制御することが考えられる。また、逆に、拡張アプリケーション203は印刷ジョブの保存機能の設定が有効になっている場合は印刷プレビュー機能の設定を行えないように制御することが考えられる。
【0020】
図4は、拡張アプリケーション203のプレビューユニット205が提供する、印刷プレビュー画面の一例である。表示アイテム401は、印刷ジョブのリストである。リストには、
図4のプレビュー画面で処理可能な印刷ジョブのジョブ名称が表示される。拡張アプリケーション203は、プレビューユニット205が提供する印刷プレビュー機能を通してジョブ結合機能を提供する。そのため、印刷プレビュー画面は、印刷プレビュー上で複数の印刷ジョブを処理対象とできるように印刷ジョブのリストを備え、処理対象となる印刷ジョブがリストに列挙される。表示アイテム402は、印刷プレビュー上で表示するページを変更するために使用される。ユーザは、この表示アイテム402を操作することで表示対象となるページを変更できる。印刷プレビュー領域403には、指定されているページの印刷結果のイメージを示す印刷プレビューが表示される。表示アイテム404は両面印刷の設定をユーザから受け付ける。表示アイテム405は割り付け印刷の設定をユーザから受け付ける。なお、割り付け印刷とは、1枚の用紙の面に指定されたページ数のデータを配置する際に使用される。例えば、ユーザが表示アイテム405を使って「2in1」を指定した場合、1枚の用紙の面に2ページのデータが配置される。ユーザは、表示アイテム404や405を通して、印刷設定の変更を行う。表示アイテム406はジョブ結合を行うか否かを指示する際に使用される。ユーザがジョブ結合をオンに設定した場合、プレビューユニット205は、表示アイテム401にリストアップされた印刷ジョブを1つの印刷ジョブとして扱う。なお、表示アイテム401に3つ以上の印刷ジョブが表示されている場合は、表示アイテム401からユーザが選択した印刷ジョブが結合対象となる。表示アイテム407は印刷を開始するためのボタンである。この表示アイテム407が操作された場合、プレビューユニット205は、表示アイテム401で選択されている印刷ジョブの中間データを印刷データ生成ソフトウェア202に出力する。一方、プレビューユニット205は、表示アイテム401で選択されていない印刷ジョブの中間データを印刷データ生成ソフトウェア202に出力しない。つまり、表示アイテム401で選択されている印刷ジョブのみが印刷対象となる。表示アイテム408はキャンセルボタンであり、ユーザがこのボタンを押下すると、その後の印刷処理はキャンセルされる。なお、
図4に表示されるプレビュー画像は、アプリケーションにより生成されたコンテンツに対応する。さらに、表示アイテム404から406の設定内容が反映されたプレビュー画像が表示される。
【0021】
なお、
図4では後述する本実施形態の処理を実行することで複数の印刷ジョブが表示アイテム401に表示される例を示した。しかし、拡張アプリケーション203は、拡張アプリケーション203に関連付けられた印刷キューに対する印刷指示をトリガーとして起動し、当該印刷指示に対応した印刷ジョブに対して処理を行うと終了する。つまり、拡張アプリケーション203は、印刷ジョブ毎に起動することになるので、複数の印刷ジョブを扱うことができない。その結果、
図2(b)の印刷システムにおいて複数の印刷ジョブを結合することができないおそれが生じる。そこで、実施形態1では印刷ジョブの結合を行うために、拡張アプリケーション203は、結合対象となる印刷ジョブを保存する。なお、拡張アプリケーション203は、
図3のジョブの保存がオンに設定されることに基づいて印刷ジョブをデータ格納領域206に保存する。また、
図4のプレビュー画面上にジョブの保存の設定項目を表示し、そのジョブの保存の設定項目がオンに設定されたことに基づいて、拡張アプリケーション203は、印刷ジョブをデータ格納領域206に保存しても良い。そして保存した印刷ジョブとは別の印刷指示によって起動した拡張アプリケーション203が、保存した印刷ジョブを読み出すことで、複数の印刷ジョブを扱うことを可能とする。
【0022】
前述のように、印刷データ生成ソフトウェア202は複数の印刷装置102と関連づき、関連付けられた印刷装置毎に印刷キューが生成される。一方で拡張アプリケーション203も複数の印刷装置と関連付けることが可能である。つまり、拡張アプリケーション203も、複数の印刷キューと関連付けられて使用される。ここで、拡張アプリケーション203は、データ格納領域206に保存した特定の印刷キューを指定して生成された印刷ジョブに、別の印刷キューから起動した場合でもアクセスすることが可能である。つまり、別々の印刷キューが指定されて生成された複数の印刷ジョブは結合対象となる可能性が低いが、後述する本実施形態の処理を行わない場合、別々の印刷キューが指定された生成された複数の印刷ジョブが結合対象として
図4に表示されるおそれがある。この点について具体例を挙げて説明する。
【0023】
例えば、ユーザが、アプリケーション201を操作して
図15の印刷キュー選択アイテム1501を使ってプリンタAを指定して、
図3の印刷設定画面の表示を指示する。そして、ユーザが
図3の印刷設定画面を使って印刷ジョブの保存を有効化して印刷を指示した場合、拡張アプリケーション203は、アプリケーションデータと印刷設定情報に基づいて生成された第1中間データをデータ格納領域206に保存する。続いて、ユーザが、アプリケーション201を操作して
図15の印刷キュー選択アイテムを使ってプリンタBを指定して、
図3の印刷設定画面の表示を指示する。そして、ユーザが
図3の印刷設定画面を使って印刷プレビュー機能を有効化して印刷を指示する。拡張アプリケーション203は、この指示に基づいて、アプリケーションデータと印刷設定情報に基づいて生成された第2中間データに基づくプレビュー画像を
図4の印刷プレビュー領域403に表示する。この際、拡張アプリケーション203は、データ格納領域206に保存されている第1中間データを取得して、結合対象として
図4の表示アイテム401にリストアップすることが可能となる。しかし、別々の印刷キューを指定して生成された中間データは、結合される可能性が低い。その理由について一例をあげて説明する。例えば、プリンタAとプリンタBでは使用可能な用紙サイズが異なる可能性がある。その結果、例えば、第1中間データを第2中間データと結合して、プリンタBに印刷データを送信すると、第1中間データの印刷設定情報の設定内容が適切に反映された印刷が行われないおそれがある。よって、このケースにおいて、ユーザが
図15の印刷キュー選択アイテム1501においてプリンタBを指定した場合、第1中間データは表示アイテム401に表示されるべきではない。
【0024】
従って、上述したような表示処理を避けるためには、同一の印刷キューが指定された生成された複数の印刷ジョブのみ
図4の画面において使用可能とする必要がある。この点について具体例を挙げて説明する。
【0025】
例えば、
図15の印刷キュー選択アイテム1501を操作してプリンタAを指定することで生成された第1中間データがデータ格納領域206に保存されていたとする。さらに、
図15の印刷キュー選択アイテム1501を操作してプリンタBを指定することで生成された第2中間データもデータ格納領域206に保存されていたとする。この状況で、ユーザが、
図15の印刷キュー選択アイテム1501を操作してプリンタBを指定して、
図3の印刷設定画面の表示を指示する。そして、ユーザが
図3の印刷設定画面を使って印刷プレビュー機能を有効化して新たに印刷を指示する。この新たな印刷の指示により、拡張アプリケーション203は、アプリケーションデータと印刷設定情報に基づいて生成された第3中間データに基づくプレビュー画像を
図4の印刷プレビュー領域403に表示する。この際、拡張アプリケーション203は、データ格納領域206に保存されている第2中間データを取得して、結合対象として
図4の表示アイテム401に表示する。一方、拡張アプリケーション203は、第1中間データを
図4の表示アイテム401に表示しない。
【0026】
上述した表示処理を実現するためには、拡張アプリケーション203は、印刷キューを特定する情報と対応付けて印刷ジョブをデータ格納領域206に保存する必要がある。印刷キューを特定する情報として印刷キューの名称が考えられる。しかし、印刷キューの名称はユーザによって変更可能である。印刷キューの名称が変更された場合、保存したデータを使用できなくなったり、他の印刷キューに対応して保存された印刷ジョブを読み込んだりしてしまう可能性がある。そこで、拡張アプリケーション203は、関連付けられた印刷キューを一意に識別するための印刷キュー識別情報を前述の能力情報データに追加する。そして、拡張アプリケーション203は、この印刷キュー識別情報と印刷ジョブを対応付けてデータ格納領域206に保存する。その結果、拡張アプリケーション203は、対象となる印刷キューに対応した印刷ジョブのみを読み出すことが可能となる。
【0027】
能力情報データへの印刷キューの識別情報の追加は、印刷データ生成ソフトウェア202が印刷装置102と関連付けられ印刷キューを生成するタイミングにおいて拡張アプリケーション203が行うことが考えられるが、これに限定されるものではない。印刷をトリガーとして拡張アプリケーション203が初めて起動されるタイミングや、ユーザが拡張アプリケーション203を単独で起動したタイミングなど、拡張アプリケーション203が動作できるタイミングであれば良い。また、拡張アプリケーション203が印刷キューの識別情報を追加する能力情報データは、本実施形態ではGPDやPDCとして説明するが、これらに限定されるものではない。
【0028】
図5は拡張アプリケーション203が追加する印刷キューの識別情報を示す図である。
図5(a)はPDCに追加する印刷キュー識別情報を示す図である。PDCには、機能と、その機能で設定可能なオプションを記述することでできる。
図5(a)では、拡張アプリケーション203が、QueueIDという機能をPDCに追加する。追加したQueueIDに対して、拡張アプリケーション203は、印刷キュー識別情報として使用する一意なIDをオプションとして追加する。なお、印刷キュー識別情報を追加する能力情報データはPDCに限定されるものではなく、印刷データ生成ソフトウェア202が生成する能力情報データに従うことになる。
【0029】
図5(b)は、
図5(a)の記述が追加されたことによって印刷設定情報であるPrintTicketに追加される情報を示す図である。PDCにおいて追加されQueueIDという機能には1つの「8yte6p24」というオプションが設定されている。PDCにはQueueIDで設定可能オプションを1つしか定義していないため、この設定が変えられることはない。そのため、PrintTicketには常にこのオプションが設定される。つまり、拡張アプリケーション203は、
図3の画面で設定された内容に基づいて印刷設定情報(PrintTicket)を生成する。拡張アプリケーション203は、ここで生成された印刷設定情報に、
図5(a)の記述内容に基づいて
図5(b)の3行を追加する。そして、
図3の画面で設定された内容に基づく印刷設定情報に
図5(b)の3行が追加された印刷設定情報がアプリケーション201に通知される。そして、
図15の印刷ボタン1502が押下されると、アプリケーションデータ(描画データ)と
図5(b)の3行が追加された印刷設定情報を含む中間データが拡張アプリケーション203に通知される。なお、拡張アプリケーション203が、
図5(a)の記述内容に基づいて
図5(b)の3行を印刷設定情報に追加すると記載したが、その限りではない。例えば、拡張アプリケーション203は、
図3の画面で設定された内容に基づいて印刷設定情報を生成する。そして、
図5(b)の3行が含まれない印刷設定情報をOSに出力する。ここでOSが、
図5(a)の記述内容に基づいて
図5(b)の3行を印刷設定情報に追加しても良い。また、上述した例は
図3の画面が表示されたケースについて説明したが、
図3の画面が表示されずに印刷が指示されることもある。この場合、OSが、
図15の印刷キュー選択アイテム1501で選択された印刷キューに対応するデフォルトの印刷設定情報を取得し、
図5(a)の記述内容に基づいて
図5(b)の3行を印刷設定情報に追加しても良い。
【0030】
以上の処理により印刷キュー識別情報が付加された印刷設定情報に基づいて中間データが生成される。そのため、拡張アプリケーション203は、後述するS702において印刷設定情報からQueueIDの設定値を取得することで、印刷キュー識別情報を取得することができる。なお、印刷キュー識別情報は必ずしも印刷キューに対して一意である必要はない。複数の印刷キューで共通して保存ジョブを扱いたい場合、複数の印刷キューに対して共通の識別情報を追加することも考えられる。共通の識別情報を割り当てるかの判断は、能力情報データを参照して共通の能力を持つ印刷装置と関連付けられた印刷キューを対象とする方法などが考えられる。例えば、過去に印刷キューが生成された基準となる印刷装置と同一機能を持つ新たな印刷装置の印刷キューが拡張アプリケーション203に関連付けられたとする。この場合、拡張アプリケーション203は、基準となる印刷装置に付与した印刷キュー識別情報と同じ印刷キュー識別情報を新たな印刷装置の能力情報データに追加する。なお、この方法は一例であり、他の方法でも構わない。
【0031】
図8は、拡張アプリケーション203が印刷ジョブをデータ格納領域206に保存する方法の一例を示す図である。
図8(a)は一つの印刷ジョブに対して保存する情報の一例を示す図である。
【0032】
拡張アプリケーション203は、印刷指示が行われた印刷キューを特定するための印刷キュー識別情報と、ドキュメント名、印刷内容を含む中間データを関連付けて保存する。なお、本実施形態では、印刷キュー識別情報と、ドキュメント名、印刷内容を含む中間データが関連付けられたデータを印刷ジョブと呼ぶこともある。
【0033】
ドキュメント名、及び中間データは、拡張アプリケーション203のプレビューユニット205の処理において取得される。また、印刷キュー識別情報は、拡張アプリケーション203のプレビューユニット205の処理において印刷設定情報(PrintTicket)から取得される。前述の情報を対応付けて保存する方法としては、所定のフォーマットで前述の情報全てを含む1つのバイナリデータにする方法や、命名規則に沿ったファイル名とすることで関連付ける方法、または関連付け情報を別ファイルで管理する方法などが考えられる。しかし、これらに限定されるものではない。また、保存される情報についてもこれらに限定されるもではなく、印刷を行ったアプリケーションの情報などを併せて保存してもよい。
【0034】
図8(b)は、データ格納領域206に印刷ジョブが保存された状態を示す模式図である。拡張アプリケーション203のデータ格納領域206に、3つの印刷ジョブ801~803が保存されている。それぞれ印刷ジョブには、印刷キュー識別情報、ドキュメント名、中間データが対応付けて保存されている。印刷ジョブ802、及び印刷ジョブ803は印刷キュー識別情報が同じであるため、同一印刷キューに対する印刷指示で発生した印刷ジョブであることが分かる。なお、
図3における印刷設定画面においてジョブの保存が有効化された場合、拡張アプリケーション203は、
図8の形態で印刷ジョブをデータ格納領域206に保存する。また、例えば、
図4がジョブの保存機能の設定アイテムを備え、
図4の画面においてジョブの保存機能が有効化されて表示アイテム407が押下された場合、拡張アプリケーション203は、
図8の形態で印刷ジョブをデータ格納領域206に保存しても良い。
【0035】
図6は、実施形態1における拡張アプリケーション203の表示制御処理に関するフローチャートである。以降、拡張アプリケーション203を、各処理の主体として説明することもあるが、実際には、フローチャートに対応するプログラムをCPU111が実行することで、フローチャートの各ステップが実行されることになる。なお、拡張アプリケーション203に関連付けられている印刷キューが
図15の印刷キュー選択アイテム1501において選択された状態で「プリンターのプロパティ」ボタンがユーザにより押下されると
図3の印刷設定画面が表示される。この
図3のOKボタンが押下された後に表示されるアプリケーション201の
図15の画面においてユーザが印刷を指示したことにより(印刷ボタン1502が押下されたことにより)印刷ジョブが生成される。この印刷ジョブを拡張アプリケーション203が受信することで
図6が開始される。
【0036】
まず、拡張アプリケーション203は、ユーザにより設定された印刷設定情報を参照し、印刷ジョブの保存機能がオンであるかを判定する(S601)。上述したように
図6の処理は印刷ジョブを受信することで開始される。この時に受信された印刷ジョブの中間データに含まれる印刷設定情報がS601において参照される。
【0037】
印刷ジョブの保存機能がオンであると判定された場合、拡張アプリケーション203はジョブ保存処理を行う(S602)。
【0038】
図7は、S602のジョブ保存処理に関するフローチャートである。まず、拡張アプリケーション203は、印刷ジョブから中間データ、及びジョブ情報を取得する(S701)。ジョブ情報としては、プレビュー画面の表示アイテム401で表示するドキュメント名などが該当する。次に、拡張アプリケーション203は、中間データに含まれる印刷設定情報から印刷キュー識別情報を取得する(S702)。拡張アプリケーション203は印刷設定情報であるPrintTicketを取得し、
図5(b)のQueueIDの設定値から印刷キュー識別情報を取得する。
図5(b)の例では「8yte6p24」が印刷キュー識別情報として取得される。
【0039】
次に、拡張アプリケーション203は、S701からS702で取得した、中間データ、ジョブ情報、印刷キュー識別情報を関連付けて、拡張アプリケーション203のデータ格納領域206に保存する(S703)。S703の処理により、
図8(b)のような状態で印刷ジョブが保存される。
【0040】
次に、拡張アプリケーション203は、印刷ジョブを保存した旨をユーザに通知し(S704)、OSのプリントシステムに対して印刷ジョブのキャンセルを指示し、当該印刷ジョブの処理を終了する(S705)。
【0041】
S601でNoと判断された場合、拡張アプリケーション203は、印刷プレビュー機能がオンになっているかを判定する(S603)。印刷プレビュー機能がオンになっている場合、拡張アプリケーション203はプレビュー処理を実施する(S604)。
【0042】
図9は、S604のプレビュー処理に関するフローチャートである。まず、拡張アプリケーション203は、起動のトリガーである印刷指示によって生成された印刷ジョブの中間データとジョブ情報を取得する(S901)。なお、拡張アプリケーション203の起動のトリガーである印刷指示は、
図3のOKボタンが押下された後に表示されるアプリケーション201の
図15の画面においてユーザが印刷ボタン1502を指示したことにより発行される。
【0043】
次に、拡張アプリケーション203は、中間データに含まれる印刷設定情報からキュー識別情報を取得する(S902)。
図5(b)の情報が印刷設定情報に格納されていた場合、印刷キュー識別情報として「8yte6p24」が取得される。次に、拡張アプリケーション203は、拡張アプリケーション203のデータ格納領域206を参照し、S902で取得した印刷キュー識別情報と一致する保存ジョブを探索し、該当する保存ジョブのジョブ情報、及び中間データを取得する(S903)。つまり、拡張アプリケーション203は、S902で取得した印刷キュー識別情報と一致する保存ジョブを取得し、S902で取得した印刷キュー識別情報と一致しない保存ジョブを取得しない取得制御処理を実行する。
図8(b)を例に説明すると、保存ジョブ801の持つ印刷キュー識別情報が、S902で取得した印刷キュー識別情報「8yte6p24」と合致することが分かる。つまり、S901で取得した印刷ジョブの生成の際に選択された印刷キューと、保存ジョブ801の生成の際に選択された印刷キューが同じである。一方、S901で取得した印刷ジョブの生成の際に選択された印刷キューと、保存ジョブ802および803の生成の際に選択された印刷キューが異なる。
【0044】
次に、拡張アプリケーション203は、S901~S903で取得したデータに基づき、印刷プレビュー画面の表示を行う(S904)。
図4で示すように、印刷プレビュー画面の表示アイテム401には、S901で取得された印刷ジョブのジョブ情報と、S903で取得された保存ジョブのジョブ情報がリストアップされる。拡張アプリケーション203は、表示した印刷プレビュー画面を介して受け付けたユーザ指示に基づいて動作する。ユーザ指示には表示アイテム404~406を用いた印刷設定の変更、表示アイテム407を用いた印刷指示および表示アイテム408を用いたキャンセル指示などが挙げられる。
【0045】
拡張アプリケーション203は、ユーザから印刷設定の変更指示を受け付けたと判定した場合(S905-Yes)、ユーザの印刷設定の変更指示に基づいて印刷設定情報を変更する(S906)。次に、拡張アプリケーション203は、変更された印刷設定情報に基づいてプレビュー画面の更新を行う(S907)。ユーザは、
図4のプレビュー画面において、表示アイテム405を用いて割り付け設定をオフから2in1へ変更し、表示アイテム401に表示されているDocument1および2を選択して表示アイテム406を用いて印刷ジョブの結合設定を有効化する。以上の変更指示を受け付けたことに基づいて更新されたプレビュー画面が
図10である。
【0046】
拡張アプリケーション203は、ジョブ結合の設定がオン(
図10の408)に変更されたことを受けて、
図4の表示アイテム401において選択された印刷ジョブを結合して1つの結合ジョブを生成する。そのため
図10の表示アイテム401には1つの結合ジョブのみが表示されている。また、
図10において結合ジョブのページ数は、結合対象となった2つの印刷ジョブのページ数を足した値である。また、拡張アプリケーション203は、割り付け設定が2in1(
図10の407)に変更されたことを受けて、印刷プレビュー領域403に表示するプレビュー画像を2in1の設定が反映されたプレビュー画像に更新している。なお、
図10の印刷プレビュー領域403には、結合前のDocument1の最終ページと結合前のDocument2の先頭ページがレイアウトされたプレビュー画像が表示されている。
【0047】
拡張アプリケーション203は、ユーザからキャンセル指示を受け付けたと判定した場合(S908-Yes)、OSのプリントシステムに対して印刷ジョブのキャンセルを指示する(S909)。これによって、S901で取得された印刷ジョブは印刷が行われることなく終了し、プレビュー画面が消去され。
【0048】
拡張アプリケーション203は、ユーザから印刷指示を受け付けたと判定した場合(S910-Yes)、ジョブの結合設定がオンであるか否かを確認する(S911)。ジョブの結合設定がオンであると判定された場合、拡張アプリケーション203は、
図4の表示アイテム401において選択された複数の印刷ジョブの中間データに基づいて1つの中間データを生成する(S912)。次に、拡張アプリケーション203は、生成した中間データを印刷データ生成ソフトウェア202に出力する(S913)。
【0049】
S911でジョブの結合設定がオフである判定された場合、拡張アプリケーション203は、表示アイテム401で選択されている印刷ジョブに対応した中間データを印刷データ生成ソフトウェアに送信する(S914)。
【0050】
S603において印刷プレビュー機能がオンになっていないと判定された場合(S603-No)、拡張アプリケーション203は、中間データを取得して(S605)、印刷データ生成ソフトウェア202に出力する(S606)。上述したように
図6の処理は印刷ジョブを受信することで開始される。この時に受信された印刷ジョブの中間データがS605において取得される。
【0051】
本実施形態により、
図2のようなシステム構成において、複数の印刷ジョブをまとめて1つの印刷ジョブとして印刷することが可能となる。また、S903により、結合対象となる印刷ジョブとして、同じ印刷キューが指定されて生成された印刷ジョブが取得されることで、ユーザの利便性を向上できる。なお、本構成はプレビューユニット205が、印刷データ生成ソフトウェア202の処理後に動作しても同様に実現可能である。その場合、中間データの代わりに印刷データ生成ソフトウェア202が生成した印刷データが使用される。また、プレビューユニット205を、印刷データ生成ソフトウェア202の処理後で動作させる構成において、中間データを扱いたい場合は、印刷データ生成ソフトウェア202の処理をスキップする方法が考えられる。この方法については上述しているため詳細な説明は省略するが、この構成において、最終的な印刷データの生成を印刷データ生成ソフトウェア202が行うことも考えられる。拡張アプリケーション203は、結合対象となる複数の中間データに基づいて結合された中間データを生成する。そして、拡張アプリケーション203は、結合後の中間データを印刷データ生成ソフトウェア202に出力する。この出力を受けて印刷データ生成ソフトウェア202は、結合後の中間データに基づいて印刷データを生成する。
【0052】
<実施形態2>
実施形態1では、拡張アプリケーション203がデータ格納領域206に保存ジョブを保存しておく。そして、別の印刷ジョブの受信をトリガーとして起動した拡張アプリケーション203が、データ格納領域206に保存された保存ジョブを取得することで、複数の印刷ジョブの扱いが可能となり、ジョブ結合を実現した。
【0053】
しかし、実施形態1において、例えば、ユーザは、プリンタAの印刷キューを指定し、印刷プレビュー機能を有効化して印刷を指示する。この指示により中間データAが生成され、中間データAに基づくプレビュー画面が表示される。このプレビュー画面が表示された後に、ユーザが中間データAを後続の中間データBと結合することを希望する。この場合、ユーザは、
図4のプレビュー画面においてジョブの保存を指示し、印刷ボタン407を押下してプレビュー画面を閉じる。そして、拡張アプリケーション203の処理を終了させる。その後、ユーザは、プリンタAの印刷キューを指定し、印刷プレビュー機能を有効化して印刷を指示する。この指示により中間データBが生成され、中間データBに基づくプレビュー画面が表示される。この中間データBに基づくプレビュー画面の表示アイテム401に中間データAのジョブ情報も表示される。つまり、ユーザは、プレビュー画面を表示した後に結合処理を希望した場合、情報処理装置は、拡張アプリケーション203の処理を一旦終了し、再度、起動するという煩雑な制御を行う必要があった。本実施形態は、この点を改善することを目的とする。
【0054】
図14は実施形態2において、拡張アプリケーション203の印刷設定画面拡張ユニット204が提供する、印刷設定画面の一例である。
図14の例では、プレビューユニット205で提供される印刷プレビュー機能の設定に付随する設定として、ジョブ結合を行う設定1401を設けている。ジョブ結合機能は印刷プレビュー機能と併せて行うものとしており、ジョブ結合の設定1401は印刷プレビュー機能がオンに設定されている場合のみ設定可能である。
【0055】
図11は、実施形態2における拡張アプリケーション203の処理を示す図である。なお、
図11は、ユーザが
図15の印刷ボタン1502を押下して印刷を指示した場合に開始される。
【0056】
まず、拡張アプリケーション203は、印刷ボタン1502の押下に基づいて生成された中間データにおける印刷設定情報を用いてプレビュー設定がオンであるかを確認する(S1101)。プレビュー設定がオンであると判定された場合、拡張アプリケーション203は、ジョブ結合設定がオンであるかを確認する(S1102)。S1102も印刷設定情報を用いて行われる。印刷プレビュー機能、及びジョブ結合機能の設定は、ユーザが
図14の印刷設定画面を介して指示する。つまり、
図14の設定内容に基づいて印刷設定情報が生成される。そのため、拡張アプリケーション203は、印刷設定情報を用いてS1101およびS1102を実行できる。
【0057】
ジョブ結合機能および印刷プレビュー機能が設定されている場合(S1102がYesの場合に相当)、拡張アプリケーション203は、印刷ジョブを一つのUIで扱うことを示す同一UI処理設定をオンにする。そして、拡張アプリケーション203は、UI表示リクエストをOSに送信する(S1103)。なお、同一UI処理設定を、表示維持機能と呼ぶこともある。
【0058】
ジョブ結合機能は利用せず、単体の印刷ジョブに対する印刷プレビュー機能が設定されている場合(S1102がNo)、拡張アプリケーション203は、印刷ジョブを一つのUIで扱うことを示す同一UI処理設定をオフにする。そして、拡張アプリケーション203は、UI表示リクエストをOSに送信する(S1104)。
【0059】
S1101において印刷プレビュー機能がオフと判定された場合、S1105およびS1106が実行される。なお、S1105-S1106は、S606-S606と同じ処理であるため詳細な説明は省略する。
【0060】
OSは、拡張アプリケーション203からS1103またはS1104により送信されるUI表示リクエストを受けて、UI起動処理を行う。
図12は、OSのUI起動処理のフローチャートを示す図である。
【0061】
まず、OSは、UI表示リクエストと併せて指定される同一UI処理設定がオンであるかを判定する(S1201)。同一UI処理設定がオフの場合、印刷プレビューは印刷ジョブ毎に表示したいため、新規でUIの起動を行う(S1202)。その結果、拡張アプリケーション203は、
図4の画面を表示する。
【0062】
同一UI処理設定がオンの場合、OSは、同一印刷キューへの印刷指示をトリガーとして起動した拡張アプリケーション203が起動中であるか否かを確認する(S1203)。
同一印刷キューへの印刷指示により起動中の拡張アプリケーション203が存在する場合(S1203-Yes)、OSは、同一UI処理設定を有効にして拡張アプリケーション203がUIを表示しているかを確認する(S1204)。拡張アプリケーションが起動していても、UI表示を行わない処理を行っている、もしくは拡張アプリケーション203が複数の印刷ジョブを対象とした処理をしていない場合、
図12の処理を開始するトリガーとなった印刷ジョブの処理可能な起動済みの拡張アプリケーションが存在しない。そのため、S1204においてNoと判定された場合、OSは新規でUIの起動を行う(S1202)。
【0063】
S1204においてYesと判定された場合、起動中の拡張アプリケーション203が
図12の処理を開始するトリガーとなった印刷ジョブの処理を行えるように、OSは起動中の拡張アプリケーション203にジョブ取得可能通知を発行する(S1205)。
【0064】
図13は、拡張アプリケーション203により実行されるフローチャートを示す図である。これは、UI起動処理において新規でUIの起動が行われた際に拡張アプリケーション203が行う処理である。
【0065】
まず、拡張アプリケーション203は、起動のトリガーとなった印刷ジョブの中間データとジョブ情報を取得する(S1301)。次に、拡張アプリケーション203は、S1301で取得した中間データに基づき、印刷プレビュー画面の表示を行う(S1302)。この時点では、プレビュー画面のジョブリストには1つの印刷ジョブのみが表示されている。実施形態1では、拡張アプリケーション203は、プレビュー画面表示後はユーザ指示に応じて処理を行うが、実施形態2では、ユーザ指示に加えてOSによるジョブ取得可能通知によっても処理を行う。ジョブ取得可能通知は、S1205においてOSによって発行される。
【0066】
拡張アプリケーション203は、S1303でジョブ取得可能通知を受信すると、通知を受けた印刷ジョブの中間データとジョブ情報を取得する(S1304)。具体的には、拡張アプリケーション203がジョブ取得可能通知に基づく処理を実行すると、OSは、ジョブ取得可能通知を発行するトリガーとなった印刷ジョブの中間データとジョブ情報を拡張アプリケーション203に渡す。
【0067】
次に、拡張アプリケーション203は、S1304で取得した印刷ジョブをジョブリストに追加する。また、拡張アプリケーション203は、別の印刷ジョブをトリガーとしたジョブ取得可能通知を受け取ると、S1303~S1305を繰り返して、ジョブリストに印刷ジョブを追加していく。これによって、印刷プレビューにおいて任意数の印刷ジョブを扱うことが可能となる。S1306からS1315は、実施形態1のS905~S914と同処理であるため、説明を省略する。拡張アプリケーション203は、ユーザからの印刷指示を受けて、リスト中の複数の印刷ジョブの中間データを結合した中間データを生成し、印刷データ生成ソフトウェア202に出力する。
【0068】
以上の処理により、本実施形態では、S1303からS1305が実行されることにより、プレビュー画面の表示を維持した状態で(プレビュー画面の表示中に)、印刷ジョブを表示アイテム401に追加することが可能となる。
【0069】
<その他の実施形態>
上述した実施形態は、以下の処理を実行することによっても実現される。すなわち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ(CPU、MPU、プロセッサ等)がプログラムを読み出して実行する処理である。また、プログラムは、1つのコンピュータで実行させても、複数のコンピュータで連動させて実行させるようにしてもよい。また、上記した処理の全てをソフトウェアで実現する必要はなく、処理の一部または全部をASIC等のハードウェアで実現するようにしてもよい。
【0070】
また、CPUも1つのCPUで全ての処理を行うものに限らず、複数のCPUが適宜連携をしながら処理を行うものとしてもよい。
【符号の説明】
【0071】
102 印刷装置
202 印刷データ生成ソフトウェア