(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-18
(45)【発行日】2023-12-26
(54)【発明の名称】サポートプログラム、情報処理装置、および印刷方法
(51)【国際特許分類】
G06F 3/12 20060101AFI20231219BHJP
【FI】
G06F3/12 328
G06F3/12 304
G06F3/12 355
G06F3/12 356
G06F3/12 345
G06F3/12 343
(21)【出願番号】P 2022175373
(22)【出願日】2022-11-01
(62)【分割の表示】P 2019063907の分割
【原出願日】2019-03-28
【審査請求日】2022-11-22
(73)【特許権者】
【識別番号】000005267
【氏名又は名称】ブラザー工業株式会社
(72)【発明者】
【氏名】山田 和孝
【審査官】豊田 真弓
(56)【参考文献】
【文献】特開2018-049579(JP,A)
【文献】特開2016-219029(JP,A)
【文献】特開2008-186254(JP,A)
【文献】特開2016-062405(JP,A)
【文献】特開2020-071816(JP,A)
【文献】特開2020-009420(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/12
(57)【特許請求の範囲】
【請求項1】
ドライバを用いない印刷を実行可能な汎用印刷プログラムがオペレーティングシステムにあらかじめ組み込まれた情報処理装置のコンピュータによって実行可能であり、前記情報処理装置と接続するプリンタに対応するサポートプログラムであって、
前記コンピュータに、
印刷対象の画像の加工に用いる加工設定を受け付ける受付処理と、
前記情報処理装置に組み込まれているアプリケーションプログラムからの指示に基づき前記汎用印刷プログラムにより生成された中間画像データを、前記受付処理にて受け付けた前記加工設定に基づき加工する加工処理と、
を実行させ
さらに前記コンピュータに、
プレビュー表示する場合、前記加工が施された加工済みデータを、前記アプリケーションプログラムがプレビュー表示するように前記アプリケーションプログラムに向けて出力させ、
印刷する場合、前記加工が施された加工済みデータを印刷用に処理させる、
ことを特徴とするサポートプログラム。
【請求項2】
請求項1に記載するサポートプログラムにおいて、
前記加工処理では、前記
中間画像データが示す画像に前記加工設定に基づき特定画像を合成する
よう前記中間画像データを加工する、
ことを特徴とするサポートプログラム。
【請求項3】
請求項2に記載するサポートプログラムにおいて、
前記特定画像はウォーターマークである、
ことを特徴とするサポートプログラム。
【請求項4】
請求項1から請求項3のいずれか1項に記載するサポートプログラムにおいて、
前記プレビュー表示する場合、前記汎用印刷プログラムは、前記サポートプログラムにより出力された前記加工済みデータを受け前記アプリケーションプログラムに出力する、
ことを特徴とするサポートプログラム。
【請求項5】
情報処理装置にプリンタが接続され、
前記情報処理装置のオペレーティングシステムには、ドライバを用いない印刷を実行可能な汎用印刷プログラムがあらかじめ組み込まれており、
前記情報処理装置には、前記情報処理装置と接続するプリンタに対応するサポートプログラムと、前記汎用印刷プログラムを介して前記プリンタに画像の印刷を行わせる印刷指示の入力が可能なアプリケーションプログラムと、が組み込まれており、
前記情報処理装置で生成された印刷データに基づく印刷を、前記プリンタに実行させる印刷方法において、
印刷対象の画像の加工に用いる加工設定を受け付ける受付ステップと、
前記情報処理装置に組み込まれているアプリケーションプログラムからの指示に基づき前記汎用印刷プログラムにより生成された中間画像データを、前記受付
ステップにて受け付けた前記加工設定に基づき前記サポートプログラムが加工する加工ステップと、を備え、
前記加工が施された加工済みデータは、
プレビュー表示の場合、前記アプリケーションプログラムがプレビュー表示するように前記アプリケーションプログラムに向けて出力され、
印刷の場合、印刷用に処理される、
ことを特徴とする印刷方法。
【発明の詳細な説明】
【技術分野】
【0001】
パーソナルコンピュータ等の情報処理装置からプリンタを制御する技術として、情報処理装置にプリンタドライバをインストールし、プリンタドライバによって印刷データを生成し、その印刷データをプリンタに送信する構成が広く知られている(例えば、特許文献1)。プリンタドライバは、プリンタのメーカから提供され、そのプリンタが有する各種の機能に対応しており、そのプリンタを十分に利用することができる。
【先行技術文献】
【特許文献】
【0002】
【発明の概要】
【発明が解決しようとする課題】
【0003】
近年、前述したプリンタドライバを利用せず、オペレーティングシステム(OS)に標準に組み込まれている汎用印刷プログラムによってプリンタを制御する技術が実用化されている。この技術では、OSがプリンタを検知するとOS標準の汎用印刷プログラムとの関連付けを行い、以後、そのプリンタに対する印刷指示を受け付けた場合に、プリンタドライバを用いずに、OS標準の汎用印刷プログラムによる印刷が可能になる。
【0004】
前述したOS標準の汎用印刷プログラムによる印刷であっても、プリンタドライバと同様に画像データに拡縮処理や合成処理等の加工を施した印刷データを生成する加工機能をサポートすることが望まれる。このような加工機能をサポートした場合、ユーザの設定ミス等によってユーザの意図しない加工が施される可能性があるが、そのような加工が施された印刷データをプリンタに送信してもユーザの希望する印刷物が出力されず、消耗品を無駄に消費してしまう。
【0005】
本明細書は、OS標準の汎用印刷プログラムが組み込まれた情報処理装置において、ユーザの意図しない加工が施された画像に基づく印刷を低減する技術を開示する。
【課題を解決するための手段】
【0006】
上述した課題の解決を目的としてなされたサポートプログラムは、情報処理装置のコンピュータによって実行可能であり、前記情報処理装置と接続するプリンタに対応するサポートプログラムであって、前記コンピュータに、前記情報処理装置に組み込まれているアプリケーションプログラムにて印刷対象とする画像が指定されている状態で、前記情報処理装置のオペレーティングシステムにあらかじめ組み込まれた汎用印刷プログラムに対して前記アプリケーションプログラムから特定指示があった場合に、指定された前記画像の加工に用いる加工設定を受け付ける受付処理を実行させ、さらに前記コンピュータに、指定された前記画像を示す画像データであって、前記汎用印刷プログラムが出力する中間画像データに、前記受付処理にて受け付けた前記加工設定に基づく加工を施し、前記加工が施された前記中間画像データである加工済み中間画像データを前記汎用印刷プログラムに出力する加工処理を実行させ、前記汎用印刷プログラムは、前記加工処理が実行された後、前記加工済み中間画像データに基づいて印刷データを生成し、生成した前記印刷データを前記プリンタに送信する場合と、印刷データを前記プリンタに送信することなく前記アプリケーションプログラムに応答をする場合とがある、ことを特徴とする。
【0007】
上記構成のサポートプログラムは、アプリから特定指示が出力された際、加工済み中間画像データに基づく印刷データが生成されず、つまり、プリンタ2に印刷データを送信せず、アプリに加工済み中間画像データを応答する場合がある。そのため、加工済み中間画像データに示される画像を印刷前にユーザが確認する機会が増え、その結果として、ユーザの意図しない加工が施された画像に基づく印刷を回避できる可能性が高まる。
【0008】
上記装置の機能を実現するための制御方法、コンピュータプログラム、および当該コンピュータプログラムを格納するコンピュータにて読取可能な記憶媒体も、新規で有用である。
【発明の効果】
【0009】
本明細書に開示される技術によれば、OS標準の汎用印刷プログラムが組み込まれた情報処理装置において、ユーザの意図しない加工が施された画像に基づく印刷を低減する技術が実現される。
【図面の簡単な説明】
【0010】
【
図1】第1実施形態の印刷システムの電気的構成を示すブロック図である。
【
図2】各プログラムによる動作の順序の例を示すシーケンス図である。
【
図3】各プログラムによる動作の順序の例を示すシーケンス図である。
【
図6】第2実施形態の印刷システムに用いられる各プログラムによる動作の順序の例を示すシーケンス図である。
【発明を実施するための形態】
【0011】
(第1実施形態)
第1実施の形態のプログラムを利用する印刷システムについて、添付図面を参照しつつ詳細に説明する。本形態は、パーソナルコンピュータ(以下、「PC」とする)とプリンタとを含む印刷システムを具体化した実施の形態を開示するものである。
【0012】
第1実施形態のプログラムが実行される印刷システムの構成の例を、
図1に示す。
図1に示すシステムには、PC1と、プリンタ2と、プリンタ3と、が含まれる。PC1は、情報処理装置の一例である。プリンタ2およびプリンタ3は、印刷機能を有する装置であり、ローカル通信またはネットワーク通信を介して、PC1と通信可能である。なお、PC1には、複数のプリンタ2が接続されてもよい。
【0013】
PC1は、例えば、
図1に示すように、コントローラ10と、ユーザインタフェース(以下、「UI」とする)20と、通信インタフェース(以下、「通信IF」とする)30と、を備えている。UI20及び通信IF30は、コントローラ10に電気的に接続されている。
【0014】
UI20は、各種の表示を行い、ユーザの指示入力を受け付けるハードウェアを含む。
UI20は、表示機能と入力受付機能との両方の機能を有するタッチパネルであっても良いし、表示機能を有するディスプレイと入力受付機能を有するキーボードやマウス等との組合せであっても良い。
【0015】
通信IF30は、プリンタ2やプリンタ3との通信を行うためのハードウェアや、インターネットへのアクセスを行うためのハードウェアを含む。通信IF30は、通信方式の異なる複数のインタフェースを含んでいても良い。通信方式としては、例えば、ネットワーク通信、USB通信がある。また、有線通信であっても無線通信であってもよい。
【0016】
コントローラ10は、CPU11と、メモリ12と、を含む。CPU11は、コンピュータの一例である。メモリ12は、ROMと、RAMと、不揮発性メモリと、CPU11のバッファと、を含み、各種のアプリケーションプログラム(以下、「アプリ」とする)などのプログラムや各種のデータなどを記憶する。なお、本明細書では、メモリの詳細を区別しない。CPU11は、メモリ12から読み出したプログラムに従って、また、ユーザの指示に基づいて、各種の処理を実行する。なお、
図1中のコントローラ10は、PC1の制御に利用されるハードウェアやソフトウェアを纏めた総称であって、実際にPC1に存在する単一のハードウェアを表すとは限らない。
【0017】
メモリ12の一例は、コンピュータが読み取り可能なストレージ媒体であってもよい。
コンピュータが読み取り可能なストレージ媒体とは、non-transitoryな媒体である。non-transitoryな媒体には、上記の例の他に、CD-ROM、DVD-ROM等の記録媒体も含まれる。また、non-transitoryな媒体は、tangibleな媒体でもある。一方、インターネット上のサーバなどからダウンロードされるプログラムを搬送する電気信号は、コンピュータが読み取り可能な媒体の一種であるコンピュータが読み取り可能な信号媒体であるが、non-transitoryなコンピュータが読み取り可能なストレージ媒体には含まれない。
【0018】
メモリ12には、例えば、
図1に示すように、汎用印刷プログラム41を含むオペレーティングシステム(以下、「OS」とする)21と、補助プログラム42と、編集アプリ43と、が記憶されている。補助プログラム42は、サポートプログラムの一例である。
補助プログラム42は、例えば、マイクロソフト社が公開した仕様に基づいてプリンタベンダによって作成された、ハードウェアサポートアプリ(略称、HSA)である。OS21は、例えば、マイクロソフトウィンドウズ(登録商標)、MacOS(登録商標)、Linux(登録商標)である。なお、メモリ12には、図示したもの以外にも、接続されているプリンタの情報を含む各種のデータや、ブラウザ等の各種のプログラムが記憶されている。
【0019】
汎用印刷プログラム41は、PC1からプリンタ2等の各種のプリンタで印刷を実行させるためのアプリであり、OS21にあらかじめ組み込まれているOS標準の印刷プログラムである。本形態の汎用印刷プログラム41は、印刷対象の画像データに基づいて、プリンタが対応可能な印刷データを生成するプログラムである。
【0020】
汎用印刷プログラム41は、各プリンタのベンダによって提供される複数種類のモデルのプリンタに適用可能な汎用のアプリであり、各モデルに共通する動作を各プリンタに行わせるプログラムである。あるいは、汎用印刷プログラム41は、OS21にあらかじめ組み込むために、各プリンタのベンダによってOS21のベンダに提供されるプログラム、例えば、OS21にあらかじめ組み込むために提供されるプリンタドライバの一種であっても良い。
【0021】
補助プログラム42は、汎用印刷プログラム41の起動に付随してOS21からの指示に基づいて処理を実行するプログラムであり、対象のハードウェア、例えばプリンタ2等の制御をサポートするアプリである。補助プログラム42は、例えば、汎用印刷プログラム41から起動される。補助プログラム42は、プリンタ2等のベンダによってプリンタのタイプごとに用意されるプログラムである。例えば、インクジェットプリンタ用の補助プログラム42やレーザプリンタ用の補助プログラム42が用意される。プリンタのタイプごとに限らず、プリンタのモデルごとやプリンタのモデルのシリーズごとに用意される補助プログラム42が有っても良い。
【0022】
プリンタのベンダは、OS21のベンダが指定する手順に従って、補助プログラム42をOS21のベンダが提供するプラットフォームに登録する。OS21は、PC1に新たにプリンタ2が接続され、そのプリンタ2に対応する補助プログラム42がプラットフォームに登録されている場合には、当該補助プログラム42を補助プログラム42が格納されているサーバからダウンロードしてPC1に組み込む。
【0023】
そして、OS21は、組み込んだ補助プログラム42の識別情報を新たに接続されたプリンタのプリンタ情報に対応付けて、メモリ12に記憶させる。複数のモデルのプリンタが接続されているPC1では、各モデルのタイプに対応するそれぞれの補助プログラムが組み込まれ、各プリンタと各補助プログラムとを対応付ける情報がメモリ12に記憶される。つまり、メモリ12には、PC1に接続されている各プリンタのプリンタ情報として、当該プリンタのモデル情報やアクセス情報とともに、対応する補助プログラム42の情報が記憶される。
【0024】
編集アプリ43は、例えば、画像データや文書データの作成や編集を行うためのアプリである。編集アプリ43は、例えば、マイクロソフト ワード(登録商標)、パワーポイント(登録商標)である。また、プリンタ2やプリンタ3のベンダから提供されるアプリであってもよい。編集アプリ43は、プリンタ2に所定の動作を行わせる指示を含むユーザ操作を受け付ける。具体的には、編集アプリ43は、UI20を介して、例えば、プリンタ2に印刷を実行させる印刷指示を受け付ける。また、編集アプリ43は、UI20を介して、印刷する画像をプレビュー表示するプレビュー指示を受け付ける。
【0025】
なお、実施の形態における処理およびフローチャートの各処理ステップは、基本的に、補助プログラム42などのプログラムに記述された命令に従ったCPU11の処理を示す。すなわち、以下の説明における「判断」、「抽出」、「選択」、「算出」、「決定」、「特定」、「取得」、「受付」、「制御」等の処理は、CPU11の処理を表している。
CPU11による処理は、OS21のAPIを用いたハードウェア制御も含む。本明細書では、OS21の詳細な記載を省略して各プログラムの動作を説明する。すなわち、以下の説明において、「プログラムBがハードウェアCを制御する」という趣旨の記載は、「プログラムBがOS21のAPIを用いてハードウェアCを制御する」ことを指してもよい。また、プログラムに記述された命令に従ったCPU11の処理を、省略した文言で記載することがある。例えば、「CPU11が行う」のようにプログラムを省略して記載することがある。また、プログラムに記述された命令に従ったCPU11の処理を、「プログラムAが行う」のようにCPUを省略した文言で記載することがある。
【0026】
なお、「取得」は要求を必須とはしない概念で用いる。すなわち、CPU11が要求することなくデータを受信するという処理も、「CPU11がデータを取得する」という概念に含まれる。また、本明細書中の「データ」とは、コンピュータに読取可能なビット列で表される。そして、実質的な意味内容が同じでフォーマットが異なるデータは、同一のデータとして扱われるものとする。本明細書中の「情報」についても同様である。また、「要求する」、「指示する」とは、要求していることを示す情報や、指示していることを示す情報を相手に出力することを示す概念である。また、要求していることを示す情報や指示していることを示す情報のことを、単に、「要求」、「指示」とも記載する。
【0027】
また、CPU11による、情報Aは事柄Bであることを示しているか否かを判断する処理を、「情報Aから、事柄Bであるか否かを判断する」のように概念的に記載することがある。CPU11による、情報Aが事柄Bであることを示しているか、事柄Cであることを示しているか、を判断する処理を、「情報Aから、事柄Bであるか事柄Cであるかを判断する」のように概念的に記載することがある。
【0028】
次に、本形態の補助プログラム42の構成、および補助プログラム42の動作を含む印刷手順の一例について、
図2、
図3のシーケンス図を参照して説明する。ここでは、PC1がUI20を介して、例えば、編集アプリ43にて、印刷対象の画像データが指定された状態で、汎用印刷プログラム41を介してのプリンタ2での印刷実行の指示を受け付けた場合であって、プリンタ2のモデルのタイプに対応する補助プログラム42がPC1に組み込まれている場合について説明する。
【0029】
補助プログラム42は、実行命令を受け付けるインタフェースとして、第1インタフェースと第2インタフェースを備える。第1インタフェースは、編集アプリ43等が補助プログラム42に対応するプリンタ2を指定した印刷指示を受け付け、編集アプリ等から汎用印刷プログラム41に印刷実行通知があった場合に、汎用印刷プログラム41が出力する実行通知を受け付けるインタフェースである。第2インタフェースは、編集アプリ43等がプレビュー指示を受け付け、編集アプリ等から汎用印刷プログラム41に、補助プログラム42を起動する起動依頼があった場合に、汎用印刷プログラム41が出力する実行通知を受け付けるインタフェースである。印刷指示は、特定指示、第1指示の一例であり、プレビュー指示は、特定指示、第2指示の一例である。
【0030】
図2に示すように、編集アプリ43は、UI20を介して、画像編集画面を表示する(矢印A)。画像編集画面は、例えば、編集アプリ43にて編集された文書や、編集アプリ43にて読み込んだ写真などが、画像として表示される。また、編集アプリ43は、画像編集画面にて、印刷設定画面を表示させる指示を受け付けると、印刷を実行するプリンタの選択や、用紙サイズや画質などの印刷パラメータの設定を受け付けるための印刷設定画面を表示させる。印刷設定画面には、例えば、印刷を指示する印刷指示ボタンと、印刷イメージの表示を指示するプレビューボタンが表示される。編集アプリ43は、UI20を介して印刷ボタンが操作されることにより、印刷指示を受け付ける(矢印B)。また、編集アプリ43は、UI20を介してプレビューボタンが操作されることにより、プレビュー指示を受け付ける(矢印B)。
【0031】
なお、印刷パラメータには、汎用印刷プログラム41が対応可能な汎用パラメータと、汎用印刷プログラム41が対応できない、プリンタに固有の固有パラメータとがある。汎用パラメータは、例えば、用紙サイズや、画質や、カラー/モノクロなどの設定である。
また、固有パラメータは、例えば、ウォータマーク、ステープルなどの設定である。編集アプリ43は、印刷設定画面にて、汎用パラメータのみを受け受けてもよいし、汎用パラメータと固有パラメータの両方を受け付けてもよい。
【0032】
編集アプリ43は、印刷指示を受け付けた場合、その印刷指示の内容を含み、汎用印刷プログラム41に印刷処理を行わせる印刷実行通知を、OS21に渡す。また、編集アプリ43は、プレビュー指示を受け付けた場合、そのプレビュー指示の内容を含み、補助プログラム42を起動させることを依頼する起動依頼を、OS21に渡す。なお、
図2では、OS21の動作を省略して示している。
【0033】
OS21は、印刷実行通知又は起動依頼を受け付けた場合、汎用印刷プログラム41を実行させ、汎用印刷プログラム41に印刷実行通知又は起動依頼を渡す(矢印C)。汎用印刷プログラム41は、印刷実行通知又は起動依頼にて、印刷指示又はプレビュー指示に含まれる各種の情報を取得できる。例えば、画像編集画面に表示されている画像の画像データを、印刷対象又はプレビュー対象にする画像の画像データとして取得する。また、印刷を行うプリンタを示す情報、印刷設定画面に入力された印刷パラメータを示す情報、印刷を指示したユーザを識別する情報を、汎用印刷プログラム41は取得できる。なお、後述するように、これらの情報は、補助プログラム42でも使用可能とされる。
【0034】
汎用印刷プログラム41は、印刷実行通知又は起動依頼に含まれる画像データの形式を中間画像データの形式に変換することで中間画像データを生成し、中間画像データを含む印刷ジョブデータを生成する(矢印D)。編集アプリ43に含まれる画像データは種々のタイプのものであり、汎用印刷プログラム41は、受け取った画像データを、印刷データの生成に適した中間画像データに変換する。汎用印刷プログラム41は、汎用パラメータだけ使用して中間画像データを生成する。なお、印刷実行通知に含まれる画像データが印刷データの生成に適したデータであれば、中間画像データの生成を省略し、そのまま中間画像データとしても良い。中間画像データは、例えば、XPSデータである。なお、印刷ジョブデータには、中間画像データの他、編集アプリ43にて設定された印刷パラメータも含まれる。
【0035】
さらに、汎用印刷プログラム41は、印刷実行通知に含まれる情報に基づいて、印刷を実行させる装置として指定されているプリンタを特定する。汎用印刷プログラム41は、例えば、プリンタ2が指定されている場合、メモリ12に記憶されているプリンタ情報に含まれるプリンタのモデル情報に基づいて、プリンタ2のモデルを特定する。そして、印刷指示にて指定されたプリンタであるプリンタ2に対応する補助プログラム42がメモリ12に記憶されていることから、汎用印刷プログラム41は、補助プログラム42の処理の実行命令を出力し、汎用印刷プログラム41による印刷データの生成を開始する前に、補助プログラム42を動作させる(矢印E)。
【0036】
汎用印刷プログラム41は、印刷実行通知を受け付けた場合、補助プログラム42の第1インタフェースに実行命令を渡す。一方、汎用印刷プログラム41は、起動依頼を受け付けた場合、補助プログラム42の第2インタフェースに実行命令を渡す。なお、補助プログラム42が、実行命令を受け付けるインタフェースを1つだけ備え、汎用印刷プログラム41が、そのインタフェースに対して、印刷実行通知を受け付けた場合には、印刷実行通知を受けたことを示すオプションを付した実行命令を渡し、起動依頼を受け付けた場合には、起動依頼を受け付けたことを示すオプションを付けた実行命令を渡すようにしてもよい。
【0037】
補助プログラム42は、第1インタフェース又は第2インタフェースに実行命令を渡されると、印刷パラメータの設定を受けつける印刷パラメータ編集画面を表示し、UI20を用いた操作によって印刷パラメータを受け付ける(矢印F)。矢印Fは受付処理の一例であり、矢印Fで受け付けた印刷パラメータは加工設定の一例である。補助プログラム42は、例えば、補助プログラム42に対応するプリンタ2の固有パラメータの設定を受け付ける印刷パラメータ編集画面を、UI20を用いて表示し、固有パラメータを受け付ける。なお、補助プログラム42は、印刷パラメータ編集画面を用いて、汎用パラメータと固有パラメータの両方を受け付けてもよい。また、補助プログラム42は、汎用パラメータを受け付ける場合と、固有パラメータを受け付ける場合とで、異なる印刷パラメータ編集画面を表示してもよい。
【0038】
固有パラメータを受け付けるための印刷パラメータ編集画面として、例えば、補助プログラム42は、
図4(a)に示すウォータマーク編集画面200をUI20に表示させる。補助プログラム42は、例えば、UI20を介したウォータマーク編集画面200への操作によって指示された、ウォータマークの固有パラメータをウォータマーク編集画面200へ表示させ、印刷ボタン201がUI20を用いて操作されると、ウォータマーク編集画面200に表示されている固有パラメータをメモリ12に記憶することによって、ウォータマークの設定を受け付ける。
【0039】
補助プログラム42は、印刷パラメータ編集画面にて受け付けた印刷パラメータに基づいて、実行命令に付された印刷パラメータを加工する。例えば、補助プログラム42は、新たに受け付けた印刷パラメータを実行命令に付された印刷パラメータに付加したり、新たに受け付けた印刷パラメータで実行命令に付された印刷パラメータを書き換えたりする。なお、実行命令に付された印刷パラメータを、そのまま受け付けてもよい。
【0040】
印刷パラメータを受け付けた補助プログラム42は、通信IF30を用いてプリンタ2から、プリンタ2の現在の状態や設定を示す現況情報を取得する(矢印G)。現況情報は、プリンタ2の現在の状態を示すステータス情報や、プリンタ2の内部メモリに現在記憶されている設定情報などである。ステータス情報は、例えば、印刷動作に関するジョブ情報や、ステープルの針の有無などである。設定情報は、例えば、各トレイの用紙サイズや、フィニッシャの有無などである。
【0041】
補助プログラム42は、メッセージ表示条件を満たすか否かを判断する(矢印I)。具体的には、例えば、補助プログラム42は、印刷パラメータが特定の設定を含むかチェックする。補助プログラム42は、メッセージを表示する特定の設定を予め記憶している。
例えば、「はがき」などの高級紙の設定を特定の設定として記憶している。補助プログラム42は、印刷パラメータが特定の設定である「はがき」を含む場合に、表示条件を満たすと判断する。この場合、補助プログラム42は、
図5(a)に示すダイアログ110をUI20に表示させ、印刷を続行するか否かを確認するメッセージ114を表示する(矢印J)。
【0042】
また例えば、補助プログラム42は、矢印Fにて受け付け印刷パラメータと、矢印Gにて取得した現況情報とを比較し、印刷パラメータと現況情報とが合致するか否かをチェックする。例えば、補助プログラム42は、印刷パラメータの用紙種が光沢紙であるのに対して、現況情報に含まれる用紙種が普通紙であり、両者が合致しない場合に、表示条件を満たすと判断する。この場合、補助プログラム42は、
図5(b)に示すダイアログ120をUI20に表示させ、不一致を知らせるメッセージ124を表示する(矢印J)。
【0043】
ダイアログ110,120には、続行ボタン111、121と、キャンセルボタン112、122と、再設定ボタン113、123が含まれている。ユーザは、はがきに印刷する場合や、普通紙への印刷を許可する場合、続行ボタン111、121をUI20を介して操作する。
【0044】
図3に示すように、補助プログラム42は、続行ボタン111又は続行ボタン121の操作を受け付けた場合、加工済み中間画像データを生成する(矢印K)。例えば、矢印Fにてウォータマークの設定を受け付けた場合、補助プログラム42は、ウォータマークの設定に応じて、汎用印刷プログラム41が生成した中間画像データにウォータマークを合成する加工を行う。なお、印刷パラメータをチェックしても、メッセージ表示条件を満たさない場合、例えば、印刷パラメータが特定の設定を含まない場合や、印刷パラメータと現況情報が合致している場合、補助プログラム42は、矢印Jの処理を行わず、矢印Kの処理を行ってもよい。なお、
図3では、キャンセルボタン112,122と再設定ボタン113,123が操作された場合の処理の記載を省略している。
【0045】
続行ボタン111又は続行ボタン121の操作に応じて加工済み中間画像データを生成した補助プログラム42は、確認画面を表示する(矢印L)。例えば、補助プログラム42は、
図4(b)に示すダイアログ150を表示し、印刷を実施するか否かの最終的な確認を行う。ダイアログ150には、実行ボタン151と、キャンセルボタン152と、再設定ボタン153が含まれている。なお、
図5(a)又は
図5(b)を表示した場合、続行ボタン111又は続行ボタン121の操作により印刷の意思を確認済みなので、矢印Lの処理は省略してもよい。この場合、補助プログラム42は、続行ボタン111、121が操作された場合には実行ボタン151が操作された場合と同様に、キャンセルボタン112,122が操作された場合にはキャンセルボタン152が操作された場合と同様に、再設定ボタン113,123が操作された場合にはキャンセルボタン152が操作された場合と同様に、それぞれ動作する。
【0046】
図3に示すように、補助プログラム42は、実行ボタン151がUI20を用いて操作された場合、汎用印刷プログラム41から、編集アプリ43からの印刷指示に基づく実行命令を受け付けたのか、プレビュー指示に基づく実行命令を受け付けたのかを判断する(矢印M)。具体的には、補助プログラム42は、汎用印刷プログラム41から第1インタフェースに実行命令が渡された場合に、印刷指示に基づく実行命令を受け付けたと判断する。一方、補助プログラム42は、汎用印刷プログラム41から第2インタフェースに実行命令が渡された場合に、プレビュー指示に基づく実行命令を受け付けたと判断する。なお、補助プログラム42は、インタフェースを1つだけ備える場合には、実行命令に付されたオプションに基づいて同様の判断を行うことができる。
【0047】
補助プログラム42は、印刷指示に基づく実行命令を受け付けたと判断した場合、印刷実施の内容をセットした終了通知を、汎用印刷プログラム41に出力する(矢印N)。汎用印刷プログラム41は、その終了通知に付された印刷実施の内容に応じて印刷データを生成する(矢印O)。例えば、汎用印刷プログラム41は、終了通知に付された加工済み中間画像データに基づいて印刷データを生成する。汎用印刷プログラム41によって生成される印刷データは、各種のプリンタにて印刷に使用できる形式の印刷データである。印刷データは、例えば、PWGRasterデータまたはPDFデータである。
【0048】
汎用印刷プログラム41は、印刷データを生成すると、プリンタ2に対して印刷命令を送信する(矢印P)。プリンタ2は、印刷命令に付された印刷データに従って印刷を実行する。
【0049】
なお、補助プログラム42は、汎用印刷プログラム41が生成した印刷データを汎用印刷プログラム41から受け付け、編集してもよい。例えば、補助プログラム42は、プリンタ2に特有な機能を実行させるためのコマンドを印刷データに付加してもよい。プリンタ2に特有な機能としては、例えば、トナーセーブ設定、フィニッシャの設定、がある。
プリンタ2が自身でウォータマークやヘッダ/フッタ等を画像に付加できる機能を有している場合、補助プログラム42は、これらの機能を実行させるコマンドを印刷データに付加しても良い。補助プログラム42が印刷データを編集する場合は、編集された印刷データを補助プログラム42が汎用印刷プログラム41に出力し、編集した印刷データの印刷命令を汎用印刷プログラム41がプリンタ2に送信してもよい。
【0050】
これに対して、補助プログラム42は、プレビュー指示に基づく実行命令を受け付けたと判断した場合、処理終了の内容をセットした終了通知を、汎用印刷プログラム41に出力する(矢印Q)。その終了通知には、加工済み中間画像データが含まれる。汎用印刷プログラム41は、プレビュー指示があった後、処理終了の内容をセットした終了通知を補助プログラム42から受け付けることにより、印刷データを生成する必要がないと判断する。この場合、汎用印刷プログラム41は、印刷データを生成せずに、編集アプリ43に応答通知を出力する(矢印R)。汎用印刷プログラム41は、終了通知に含まれていた加工済み中間画像データを応答通知に付して、応答通知を出力する。
【0051】
編集アプリ43は、応答通知に応じて、プレビュー表示を行う(矢印S)。すなわち、編集アプリ43は、応答通知に付された加工済み中間画像データをUI20を用いて表示する。加工済み中間画像データは、印刷実行時と同様、補助プログラム42によって生成されたものであるので、編集アプリ43は、印刷結果に近いプレビュー表示を行うことができる。
【0052】
なお、補助プログラム42が、矢印Fにて受け付けた印刷パラメータを終了通知に付し、汎用印刷プログラム41が、その加工済み印刷パラメータを含む応答通知を編集アプリ43に渡してもよい。編集アプリ43は、矢印Sのプレビュー表示後、次の印刷指示を受け付けた場合に、その加工済み印刷パラメータを印刷実行通知に付してもよい。この場合、加工済み印刷パラメータは、印刷実行通知のベンダ領域に設定される。汎用印刷プログラム41は、その加工済み印刷パラメータと中間画像データを付した実行命令を、補助プログラム42の第1インタフェースに対して出力してもよい。この場合、補助プログラム42は、実行命令に付された印刷パラメータを印刷パラメータ編集画面に反映させるとよい。これによれば、ユーザが同じ印刷設定を繰り返し行う手間を低減し、使い勝手を向上させることができる。
【0053】
また、編集アプリ43は、プレビュー表示後に、画像編集画面にて画像の編集を行ったり、印刷設定画面にて印刷設定を行ったりする場合、加工済み印刷パラメータを画像の編集や印刷設定に反映させ、表示してもよい。これによれば、ユーザの意図に反する設定が繰り返し行われることを回避できる可能性が高くなる。
【0054】
上記に対して、補助プログラム42は、ダイアログ150のキャンセルボタン152がUI20を用いて操作された場合、処理終了の内容をセットした終了通知を汎用印刷プログラム41に対して出力する(矢印T)。この場合、補助プログラム42は、印刷データを生成する必要がないので、加工済み中間画像データを終了通知に付加しない。汎用印刷プログラム41は、その終了通知に応じて、印刷データを生成する前に印刷を中止する(矢印U)。そして、汎用印刷プログラム41は、キャンセル通知を編集アプリ43に出力する(矢印V)。これによれば、ユーザが意図しない無駄な印刷が回避されることを、期待できる。
【0055】
なお、キャンセル通知を受け付けた編集アプリ43は、画像編集画面をUI20に表示させ、印刷対象の画像や、印刷設定画面に入力された印刷パラメータなどの修正を、受け付けてもよい。そして、編集アプリ43は、印刷指示又はプレビュー指示を受け付け直してもよい。
【0056】
また、キャンセル通知には、矢印Rの応答通知と同様に、加工済み中間画像データが付されていてもよい。この場合、編集アプリ43は、矢印Sと同様にプレビュー表示を行った後、画像編集画面に戻り、印刷対象の画像や、印刷設定画面に入力された印刷パラメータなどの修正を、受け付けてもよい。
【0057】
一方、補助プログラム42は、再設定ボタン153がUI20を用いて操作された場合、再設定の内容をセットした終了通知を、汎用印刷プログラム41に出力する(矢印W)。汎用印刷プログラム41は、その終了通知に付された印刷設定の内容に応じて、印刷パラメータの再設定を受け付ける(矢印X、E)。すなわち、例えば、補助プログラム42は、印刷設定画面を再表示する。これによれば、ユーザが印刷パラメータを変更し、ユーザの意図に反する印刷が未然に回避されることを、期待できる。
【0058】
印刷パラメータ編集画面を再表示する場合、再設定ボタン153の操作時に受け付けた印刷パラメータを、表示に反映させてもよい。この場合、ユーザは、先の印刷パラメータを確認しながら設定変更を行うことができ、使い勝手がよい。なお、再表示された印刷パラメータ編集画面にはデフォルト値を表示させてもよい。
【0059】
なお、矢印Jにて、
図5(a)又は(b)に示すように、メッセージ114、124を表示した場合に、例えば、はがきに印刷しない場合や、普通紙に印刷しない場合、ユーザは、キャンセルボタン112、122又は再設定ボタン113、123をUI20を用いて操作する。この場合、補助プログラム42は、上述したキャンセルボタン152の操作時と同様の動作、又は、再設定ボタン153の操作時と同様の動作を行い、ユーザの意図に反する無駄な印刷を未然に回避できる。
【0060】
以上説明したように、第1実施形態の補助プログラム42は、プレビュー指示に基づく実行命令を受け付けたと判断した場合、加工済み中間画像データに基づく印刷データを汎用印刷プログラム41に生成させない。つまり、プリンタ2に印刷データが送信されない。この場合、汎用印刷プログラム41は、編集アプリ43に加工済み中間画像データを付した応答通知を出力する。そのため、加工済み中間画像データに示される画像を印刷前に編集アプリ43に表示させることが可能になり、ユーザが印刷画像を確認する機会が増える。その結果として、ユーザの意図しない加工が施された画像に基づく印刷を回避できる可能性が高くなる。
【0061】
また、編集アプリ43が、印刷を実施する場合と同様に生成された加工済み中間画像データに基づいて、プレビュー表示を行うので、編集アプリ43によるプレビュー表示は、編集アプリ43が補助プログラム42を使用せずにプレビュー表示を行う場合より、ウォータマークの設定を正確に反映したプレビュー表示を行うことが可能になる。よって、編集アプリ43によるプレビュー表示を確認してユーザが印刷指示を入力しても、印刷結果がユーザの意図に反する可能性が低く、印刷のやり直しを抑制できる。
【0062】
更に、補助プログラム42は、印刷指示に基づく実行命令を受け付けた場合には、印刷実施をセットした終了通知を出力し、プレビュー指示に基づく実行命令を受け付けた場合には、処理終了を示す終了通知を出力する。つまり、編集アプリ43が受ける指示の種類に応じて、補助プログラム42が汎用印刷プログラム41に出力する終了通知の応答値が異なる。汎用印刷プログラム41は、終了通知の応答値に応じて、印刷データを生成してプリンタ2に送信する、あるいは、編集アプリ43に応答する。そのため、補助プログラム42は、編集アプリ43が受け付けた指示に応じて汎用印刷プログラム41から出力される実行命令に応じて、加工済み中間画像データを編集アプリ43に渡すか否かを制御できる。
【0063】
(第2実施形態)
続いて、本発明の第2実施形態のプログラムを利用する印刷システムについて、
図6のシーケンス図を参照しながら説明する。第2実施形態は、補助プログラム42が印刷指示とプレビュー指示を受け付ける点が、第1実施形態と相違している。ここでは、第1実施形態と相違する点を説明する。なお、
図6において、
図2、
図3と共通する処理については、
図2、
図3同じ符号を使用する。
【0064】
実行命令を受け付けた補助プログラム42は、印刷パラメータの設定を受け付ける印刷パラメータ編集画面を表示する(矢印a)。例えば、補助プログラム42が表示する印刷パラメータ編集画面の一例であるウォータマーク編集画面200には、
図4(a)に示すように、印刷ボタン201と、キャンセルボタン202と、プレビューボタン203が含まれている。
【0065】
補助プログラム42は、UI20を用いて、プレビューボタン203の操作を受け付けた場合、加工済み中間画像データを生成し(矢印K)、プレビュー表示を行う(矢印b)。例えば、矢印Fにてウォータマークの設定を受け付けた場合、補助プログラム42は、その設定に応じて、
図4(c)に示す確認画面160をUI20に表示させる。確認画面160には、実行ボタン161と、キャンセルボタン162と、再設定ボタン163とプレビュー画像164が含まれている。
【0066】
補助プログラム42は、UI20を用いて、キャンセルボタン162の操作を受け付けた場合、処理終了の内容をセットした終了通知を汎用印刷プログラム41に出力する(矢印c)。このとき、補助プログラム42は、プレビュー表示時に生成した加工済み中間画像データを終了通知に付加する。
【0067】
汎用印刷プログラム41は、加工済み中間画像データを含む終了通知を受け付けると、印刷データを生成せずに印刷を中止する(矢印d)。そして、汎用印刷プログラム41は、加工済み中間画像データが終了通知に付されていることから、加工済み中間画像データを含む応答通知を編集アプリ43に対して出力する(矢印e)。
【0068】
編集アプリ43は、加工済み中間画像データを含む応答通知を受け付けることにより、印刷が中止されたことを検知する。この場合、編集アプリ43は、加工済み中間画像データをプレビュー表示した後、画像編集画面を表示して画像や印刷パラメータの修正を受け付けてもよい。
【0069】
これに対して、補助プログラム42は、UI20を用いて、実行ボタン161の操作を受け付けた場合、矢印N~Pの処理を行い、印刷を実行する。また、補助プログラム42は、UI20を用いて、再設定ボタン163の操作を受け付けた場合、確認画面160の表示を終了させて矢印W,X,Eの処理を実行し、印刷パラメータの再設定を受け付ける。
【0070】
実行ボタン161を操作しないことは、画像応答条件の一例である。プレビュー表示後に実行ボタン161が操作された場合に出力される終了通知(矢印N)は、第1情報の一例である。プレビュー表示後にキャンセルボタン162が操作された場合に出力される終了通知(矢印c)は、第2情報の一例である。
【0071】
なお、補助プログラム42は、UI20を用いて、矢印aにて表示されるウォータマーク編集画面200に含まれる印刷ボタン201の操作を受け付けた場合、加工済み中間画像データを生成し(矢印K)、矢印N~Pの処理を行い、印刷を実行する。
【0072】
なお、補助プログラム42は、UI20を用いて、矢印aにて表示されるウォータマーク編集画面200に含まれるキャンセルボタン202の操作を受け付けた場合、矢印T~Vの処理を行い、汎用印刷プログラム41が印刷データを生成する前に、当該印刷ジョブを中止させる。
【0073】
以上説明したように、第2実施形態では、プレビューボタン203が操作されると、補助プログラム42がプレビュー表示を行い、そのプレビュー表示後に実行ボタン161が操作された場合、汎用印刷プログラム41が、印刷データを生成してプリンタ2に送信し、そのプレビュー表示後にキャンセルボタン162が操作された場合、汎用印刷プログラム41が加工済み中間画像データに基づく印刷データを生成せず、加工済み中間画像データを含む応答通知を編集アプリ43に対して出力する。そのため、加工済み中間画像データに示される画像を印刷前にユーザが確認する機会が増え、その結果として、ユーザの意図しない加工が施された画像に基づく印刷を回避できる可能性が高まる。
【0074】
第2実施形態の補助プログラム42は、プレビュー表示後に実行ボタン161が操作される場合と、プレビュー表示後に実行ボタン161が操作されない場合とで、汎用印刷プログラム41に出力する終了通知の応答値を異ならせる。汎用印刷プログラム41は、終了通知の応答値に応じて、編集アプリ43に応答する応答態様を分けている。そのため、補助プログラム42は、実行ボタン161の操作に応じて、加工済み中間画像データを編集アプリ43に渡すか否かを制御できる。
【0075】
なお、本実施の形態は単なる例示にすぎず、本発明を何ら限定するものではない。したがって本発明は当然に、その要旨を逸脱しない範囲内で種々の改良、変形が可能である。
例えば、PC1に接続される装置は、プリンタに限らず、複合機、複写機、FAX装置、等印刷機能を有する装置であればよい。また、PC1に接続されるプリンタは、図示の例に限らず、1台でも良いし、3台以上でもよい。
【0076】
また、本形態の各処理を実行するモジュールは、補助プログラム42に限らず、OS21の汎用印刷プログラム41にて印刷を行う際に、OS21から指示を受け付けるプログラムであればよい。例えば、マイクロソフト社が仕様公開した印刷ワークフローアプリ(Print workflow)でも良い。
【0077】
補助プログラム42は、
図3に示す矢印Kの処理後、プレビュー表示してから、ダイアログ150を表示してもよい(矢印L)。また、
図3の矢印Lの処理では、
図4(b)に示すダイアログ150の代わりに、
図4(c)に示す確認画面160を表示してもよい。
これらによれば、プレビュー画像に基づいて印刷を実行するか否かをユーザに確認させるので、ユーザの意図に反した印刷の抑制が期待できる。また、プレビュー表示又は確認画面160の表示は、編集アプリ43への印刷指示に基づく実行命令を受け付けた場合に行い、プレビュー指示に基づく実行命令を受け付けた場合には行わなくてもよい。
【0078】
図3の矢印Kにて、加工済み中間画像データの生成に失敗した場合に、印刷パラメータに問題があると判断し、矢印Lの処理を行ってもよい。
【0079】
確認画面は、印刷パラメータ編集画面と別個に表示しなくてもよい。例えば、
図4(a)に示すウォータマーク編集画面200の印刷ボタン201が操作された場合、補助プログラム42は、印刷指示に基づく実行命令を受け付けたと判断する場合には、
図3の矢印M~Sの処理を実行し、プレビュー指示に基づく実行命令を受け付けたと判断する場合には、矢印Q~Sの処理を実行してもよい。例えば矢印Rの応答通知に加工済み中間画像データを付加しなくてもよい。
【0080】
図2、
図3の処理に、
図6に示すように、補助プログラム42がプレビューボタン203の操作に応じてプレビュー表示を行い、プレビュー表示する確認画面160のボタン161~163の操作に応じて、汎用印刷プログラム41が印刷データを生成してプリンタ2に送信する、あるいは、汎用印刷プログラム41が印刷データをプリンタ2に送信せずに、編集アプリ43に応答するようにしてもよい。
【0081】
また、実施の形態に開示されている任意のフローチャートにおいて、任意の複数のステップにおける複数の処理は、処理内容に矛盾が生じない範囲で、任意に実行順序を変更できる、または並列に実行できる。
【0082】
また、実施の形態に開示されている処理は、単一のCPU、複数のCPU、ASICなどのハードウェア、またはそれらの組み合わせで実行されてもよい。また、実施の形態に開示されている処理は、その処理を実行するためのプログラムを記録した記録媒体、または方法等の種々の態様で実現することができる。
【符号の説明】
【0083】
1 PC
2 プリンタ
11 CPU
20 UI
21 OS
30 通信IF
41 汎用印刷プログラム
42 補助プログラム