(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-21
(45)【発行日】2024-07-01
(54)【発明の名称】情報処理装置および制御方法、制御プログラム
(51)【国際特許分類】
G06F 3/12 20060101AFI20240624BHJP
【FI】
G06F3/12 355
G06F3/12 328
G06F3/12 356
G06F3/12 305
(21)【出願番号】P 2019093739
(22)【出願日】2019-05-17
【審査請求日】2022-05-10
(31)【優先権主張番号】P 2018125176
(32)【優先日】2018-06-29
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100126240
【氏名又は名称】阿部 琢磨
(74)【代理人】
【識別番号】100223941
【氏名又は名称】高橋 佳子
(74)【代理人】
【識別番号】100159695
【氏名又は名称】中辻 七朗
(74)【代理人】
【識別番号】100172476
【氏名又は名称】冨田 一史
(74)【代理人】
【識別番号】100126974
【氏名又は名称】大朋 靖尚
(72)【発明者】
【氏名】齋藤 和之
【審査官】征矢 崇
(56)【参考文献】
【文献】特開2017-194766(JP,A)
【文献】特開2012-194966(JP,A)
【文献】特開2018-092583(JP,A)
【文献】特開2008-269160(JP,A)
【文献】特開2011-039628(JP,A)
【文献】特開2016-167140(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F3/12
B41J29/00-29/70
(57)【特許請求の範囲】
【請求項1】
プリンタで印刷可能な印刷データを生成する汎用プリンタドライバと、当該汎用プリンタドライバに提供される印刷設定を設定する印刷設定画面を提供するアプリケーションを有する情報処理装置であって、
前記情報処理装置のオペレーティングシステムにより提供される他の印刷設定画面を介して所定の操作がなされたことに従って、前記アプリケーションを用いて前記プリンタに対応する設定値の組合せに関する情報を前記プリンタから取得する取得手段と、
取得した情報に基づき特定される禁則情報に基づき、前記アプリケーションにより提供される前記印刷設定画面で設定される前記印刷設定に所定の設定値の組合せが含まれないよう制御する制御手段と、
前記所定の設定値の組合せを含まないよう制御された印刷設定に基づき印刷データを生成する生成手段と、
生成した前記印刷データを前記プリンタに送信する送信手段と、
を有することを特徴とする情報処理装置。
【請求項2】
前記所定の操作がなされたことに従って、前記プリンタに対応する禁則情報が記憶手段に記憶されているかを判定する判定手段をさらに有し、
前記取得手段は、前記判定手段が前記プリンタに対応する禁則情報が前記記憶手段に記憶されていないと判定した場合、前記情報を取得することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記取得手段は、前記判定手段が前記プリンタに対応する禁則情報が前記記憶手段に記憶されていると判定した場合、前記情報を取得しないことを特徴とする請求項2に記載の情報処理装置。
【請求項4】
前記取得手段は、前記プリンタからの前記情報の受信に失敗したことに基づき、サーバ装置から前記情報を取得することを特徴とする請求項1乃至3のいずれか一項に記載の情報処理装置。
【請求項5】
前記汎用プリンタドライバは、前記情報処理装置のオペレーティングシステムにより提供されるプリンタドライバであることを特徴とする請求項1乃至4のいずれか一項に記載の情報処理装置。
【請求項6】
前記制御手段は、ユーザにより選択された印刷設定に前記所定の設定値の組合せが含まれているかを前記禁則情報に基づき判定し、前記所定の設定値の組合せが含まれていると判定した場合、前記組合せに含まれる設定値の一つを変更することで、前記印刷設定に前記所定の設定値の組合せが含まれないよう制御することを特徴とする請求項1乃至5のいずれか一項に記載の情報処理装置。
【請求項7】
前記取得手段は、前記プリンタの能力情報を取得し、
前記印刷設定画面は、取得した前記プリンタの能力情報に基づき表示されることを特徴とする請求項1乃至6のいずれか一項に記載の情報処理装置。
【請求項8】
前記印刷設定画面は、前記印刷データのプレビュー画像を含む画面であることを特徴とする請求項1乃至7のいずれか一項に記載の情報処理装置。
【請求項9】
前記所定の操作は、前記印刷設定画面を表示させるための指示であることを特徴とする請求項1乃至8のいずれか一項に記載の情報処理装置。
【請求項10】
プリンタが印刷可能な印刷データを生成する汎用プリンタドライバを有する情報処理装置に記憶され、前記汎用プリンタドライバに提供される印刷設定を設定するための印刷設定画面を提供するアプリケーションであって、
前記アプリケーションが実行されることで、
前記情報処理装置のオペレーティングシステムにより提供される他の印刷設定画面を介して所定の操作がなされたことに従って
発行される要求を受信する受信工程と、
前記受信工程における前記要求を受信したことに基づき、前記アプリケーションを用いて前記プリンタに対応する設定値の組合せに関する情報を前記プリンタから取得する取得工程と、
前記印刷設定画面を介してユーザからの印刷設定の入力を受け付ける受付工程と、
前記取得工程において取得した情報に基づき特定される禁則情報に基づき、前記
受付工程において受け付けた印刷設定に所定の設定値の組合せが含まれないよう制御する制御工程と、
を実行させることを特徴とするアプリケーション。
【請求項11】
前記汎用プリンタドライバに関する前記所定の操作がなされたことに従って、前記プリンタに対応する禁則情報が記憶手段に記憶されているかを判定する判定工程をさらに有し、
前記判定工程において前記プリンタに対応する禁則情報が前記記憶手段に記憶されていないと判定された場合、前記取得工程を実行することを特徴とする請求項10に記載のアプリケーション。
【請求項12】
前記判定工程において前記プリンタに対応する禁則情報が前記記憶手段に記憶されていると判定された場合、前記取得工程を実行しないことを特徴とする請求項11に記載のアプリケーション。
【請求項13】
前記取得工程における前記情報の取得に失敗した場合、サーバ装置から前記禁則情報を取得する他の取得工程を実行することを特徴とする請求項
10乃至12のいずれか一項に記載のアプリケーション。
【請求項14】
前記汎用プリンタドライバは、前記情報処理装置のオペレーティングシステムにより提供されるプリンタドライバであることを特徴とする請求項
10乃至13のいずれか一項に記載のアプリケーション。
【請求項15】
前記制御工程において、前記禁則情報に基づきユーザにより設定された印刷設定に前記所定の設定値の組合せが含まれるかを判定し、ユーザにより設定された前記印刷設定に前記組合せが含まれると判定された場合、前記組合せに含まれる設定値の少なくとも1つを変更する、ことを特徴とする請求項
10乃至14のいずれか一項に記載のアプリケーション。
【請求項16】
前記印刷設定画面は、前記プリンタから取得した能力情報に基づく印刷設定画面であることを特徴とする請求項
10乃至15のいずれか一項に記載のアプリケーション。
【請求項17】
前記所定の
操作は、前記アプリケーションとは異なるソフトウェアが提供するユーザインタフェースを介して受け付けられる操作であって、前記印刷設定画面の表示指示
に対応する操作であることを特徴とする請求項
10乃至16のいずれか一項に記載のアプリケーション。
【請求項18】
前記印刷設定画面は、前記アプリケーションとは異なるソフトウェアが提供する前記ユーザインタフェースにおいて、設定することが出来ない設定項目の設定を受け付ける画面であることを特徴とする請求項17に記載のアプリケーション。
【請求項19】
前記アプリケーションは、前記汎用プリンタドライバから独立したアプリケーションであることを特徴とする請求項
10乃至18のいずれか一項に記載のアプリケーション。
【請求項20】
前記印刷設定画面を介した前記印刷設定の入力が完了したことを示す操作を受け付けたことに応じて、前記印刷設定画面から前記他の印刷設定画面に戻ることを特徴とする請求項10乃至19のいずれか一項に記載のアプリケーション。
【請求項21】
前記印刷設定画面は複数の印刷設定を選択可能に表示されるものであって、前記複数の印刷設定のうち1つの印刷設定の設定値が選択されたことに基づいて、前記制御工程を実行させることを特徴とする請求項10乃至20のいずれか一項に記載のアプリケーション。
【請求項22】
前記制御工程は、前記1つの印刷設定の設定値を変更前に戻すことで、前記所定の設定値の組合せが含まれないよう制御することを特徴とする請求項21に記載のアプリケーション。
【請求項23】
前記制御工程において設定値の変更を行う場合に警告画面を表示することを特徴とする請求項15または22のいずれか一項に記載のアプリケーション。
【請求項24】
プリンタが印刷可能な印刷データを生成する汎用プリンタドライバと、前記汎用プリンタドライバに提供される印刷設定を設定するための印刷設定画面を提供するアプリケーションが記憶された情報処理装置の制御方法であって、
前記情報処理装置のオペレーティングシステムにより提供される他の印刷設定画面を介して所定の操作がなされたことに従って、前記アプリケーションを用いて前記プリンタに対応する設定値の組合せに関する情報を前記プリンタから取得する取得工程と、
前記取得工程において取得した情報に基づき特定される禁則情報に基づき、前記汎用プリンタドライバに提供される印刷設定に所定の設定値の組合せが含まれないよう制御する制御工程と、
を実行させることを特徴とする制御方法。
【請求項25】
前記汎用プリンタドライバに関する前記所定の操作がなされたことに従って、前記プリンタに対応する禁則情報が記憶手段に記憶されているかを判定する判定工程をさらに有し、
前記判定工程において前記プリンタに対応する禁則情報が前記記憶手段に記憶されていないと判定された場合、前記取得工程を実行することを特徴とする請求項2
4に記載の制御方法。
【請求項26】
前記判定工程において前記プリンタに対応する禁則情報が前記記憶手段に記憶されていると判定された場合、前記取得工程を実行しないことを特徴とする請求項2
5に記載の制御方法。
【請求項27】
前記取得工程における前記情報の取得に失敗した場合、サーバ装置から前記禁則情報を取得する他の取得工程を実行することを特徴とする請求項2
4乃至2
6のいずれか一項に記載の制御方法。
【請求項28】
前記汎用プリンタドライバは、前記情報処理装置のオペレーティングシステムにより提供されるプリンタドライバであることを特徴とする請求項2
4乃至2
7のいずれか一項に記載の制御方法。
【請求項29】
前記制御工程において、前記禁則情報に基づきユーザにより設定された印刷設定に前記所定の設定値の組合せが含まれるかを判定し、ユーザにより設定された前記印刷設定に前記組合せが含まれると判定された場合、前記組合せに含まれる設定値の少なくとも1つを変更する、ことを特徴とする請求項2
4乃至2
8のいずれか一項に記載の制御方法。
【請求項30】
前記印刷設定画面は、前記プリンタから取得した能力情報に基づく印刷設定画面であることを特徴とする請求項2
4乃至2
9のいずれか一項に記載の制御方法。
【請求項31】
前記所定の
操作は、前記アプリケーションとは異なるソフトウェアが提供するユーザインタフェースを介して受け付けられる操作であって、前記印刷設定画面の表示指示
に対応する操作であることを特徴とする請求項2
4乃至
30のいずれか一項に記載の制御方法。
【請求項32】
前記印刷設定画面は、前記アプリケーションとは異なるソフトウェアが提供する前記ユーザインタフェースにおいて、設定することが出来ない設定項目の設定を受け付ける画面であることを特徴とする請求項
31に記載の制御方法。
【請求項33】
前記アプリケーションは、前記汎用プリンタドライバから独立したアプリケーションであることを特徴とする請求項2
4乃至
32のいずれか一項に記載の制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理装置の制御方法、および制御プログラムに関する。例えば、印刷設定を処理できるシステム等に関する。
【背景技術】
【0002】
画像形成装置の制御用ソフトウェアとして、ホストコンピュータにインストールされたプリンタドライバを利用し、ホストコンピュータに接続された画像形成装置に対して印刷を行う構成がある。ホストコンピュータには、基本ソフトウェアであるオペレーティングシステム(以下、OSと呼ぶ)がインストールされており、プリンタドライバはそのOSの規定する仕様に従って構成される。画像形成装置を提供するベンダは、OSの仕様に適合するプリンタドライバを提供することにより、画像形成装置に対して印刷指示する手段を得ることができる。
【0003】
しかし、近年OS側が汎用的なプリンタドライバを用意し、IPP(InternetPrinting Protocol)のような業界標準のプロトコルを用いて印刷指示する手段を提供するようになっている。
【0004】
従来、プリンタベンダが用意したプリンタドライバであれば、禁則情報は、プリンタドライバ内部に包含することができた。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
スマートフォンやタブレットを含むモバイルデバイスにも対応可能なプラットホーム環境を構築するため、汎用OSまたは汎用デバイスドライバから周辺機器に依存する部分を削減したいというニーズがある。このようなプラットホーム環境では、各周辺機器の仕様に依存する処理は、汎用OSや汎用デバイスドライバの中に包含させることが困難であるという問題点がある。また、プリンタドライバ等の禁則処理に必要な処理やデータを汎用OSや汎用デバイスドライバの中に包含させることは困難であるという問題点がある。
【0007】
本発明は、上記問題点の少なくともひとつを鑑みてなされたものである。本実施形態の一つの目的は、各周辺機器の仕様に依存する処理を、汎用OSや汎用デバイスドライバの中から削減する仕組みを提供することを目的とする。
【0008】
本実施形態のさらなる別の目的は、例えばスマートフォンやタブレットを含むモバイルデバイスにも対応可能なプラットホーム環境に関する仕組みを提供することである。
【課題を解決するための手段】
【0009】
本発明の一つの側面は、プリンタで印刷可能な印刷データを生成する汎用プリンタドライバと、当該汎用プリンタドライバに提供される印刷設定を設定する印刷設定画面を提供するアプリケーションを有する情報処理装置であって、前記情報処理装置のオペレーティングシステムにより提供される他の印刷設定画面を介して所定の操作がなされたことに従って、前記アプリケーションを用いて前記プリンタに対応する設定値の組合せに関する情報を取得する取得手段と、取得した情報に基づき特定される禁則情報に基づき、前記アプリケーションにより提供される前記印刷設定画面で設定される前記印刷設定に所定の設定値の組合せが含まれないよう制御する制御手段と、前記所定の設定値の組合せを含まないよう制御された印刷設定に基づき印刷データを生成する生成手段と、生成した前記印刷データを前記プリンタに送信する送信手段と、を有することを特徴とする。
【発明の効果】
【0010】
本発明の一つの側面によれば、各周辺機器の仕様に依存する処理を、汎用OSまたは汎用デバイスドライバの中から削減する仕組みを提供することができる。
【0011】
本発明の別の側面によれば、モバイルデバイスにも対応可能なプラットホーム環境に関する仕組みを提供することができる。
【図面の簡単な説明】
【0012】
【
図2】クライアントコンピュータのハードウェア構成の一例を示す図である。
【
図3】クライアントコンピュータのソフトウェア構成の一例を示す図である。
【
図4】第1実施形態に係る汎用プリンタドライバ等による処理の一例を示すフローチャートである。
【
図5】第1実施形態に係る汎用プリンタドライバの印刷設定処理の一例を示すフローチャートである。
【
図6】第1実施形態に係る拡張印刷アプリの処理の一例を示すフローチャートである。
【
図7】第1実施形態に係る拡張印刷アプリの処理の一例を示すフローチャートである。
【
図8】第2実施形態に係る拡張印刷アプリの処理の一例を示すフローチャートである。
【
図9】第2実施形態に係る拡張印刷アプリの処理の一例を示すフローチャートである。
【
図10】タッチアプリ及び汎用プリンタドライバのUIの一例を示す模式図である。
【
図11】拡張印刷設定UIの一例を示す模式図である。
【発明を実施するための形態】
【0013】
以下、本発明を実施するための最良の形態について図面及び表を用いて説明する。
【0014】
(第1実施形態)
まず、
図1を用いて、本実施形態に係るシステムの構成について説明する。
図1は、本実施形態に係るシステム構成の概略を表す模式図を示す。本実施形態に係るシステムは、クライアントコンピュータ101と、サーバ104と、プリンタ102を備える。クライアントコンピュータ101は、情報処理装置の一例である。サーバ104は、クライアントコンピュータ101へ対してデータを配信する。プリンタ102は、ページ記述言語(Page Description Language、以下PDLと呼ぶ)形式の印刷データを受信し印刷を行う。各装置は、Wide Area Network(WAN)を含むネットワーク103を通じて相互に通信可能である。なお、プリンタ102は、印刷機能のみを備えるシングルファンクションプリンタであってもよく、印刷機能、スキャン機能、複写機能を備えるマルチファンクションプリンタであってもよい。また、クライアントコンピュータ101は、ネットワーク103に対し一台に限らず、複数台接続されていてもよい。
【0015】
図2は、
図1のクライアントコンピュータ101のハードウェア構成を示すブロック図である。クライアントコンピュータ101において、中央演算処理装置(CPU201)は、ランダムアクセスメモリ(RAM202)に記憶されているプログラムに従って、システムバスに接続される各デバイスを制御する。なお、クライアントコンピュータ101は、少なくとも1つのCPU201を備えるものとする。加えて、CPU201が外部メモリ209に記憶されているプログラムに基づき処理を実行することによって、クライアントコンピュータ101のソフトウェア構成及び後述するフローチャートの各ステップの処理が実現される。RAM202は、CPU201の主メモリ、ワークエリア等として機能する。リードオンリーメモリ(ROM)203は、ブートプログラムや基本入出力システム(BIOS)等の各種プログラムが書き込まれてある。操作入力装置インターフェース(I/F)204は、キーボードやポインティングデバイス(マウス)タッチUI(User Interface)などの操作入力装置205を制御するインターフェースである。操作入力装置205は、ユーザからの操作を受け付ける受付部として機能する。ディスプレイI/F206はディスプレイ207への画面表示を制御する。ディスプレイ207は、ユーザに対して情報を表示する表示部として機能する。外部メモリI/F208は、例えばハードディスク(HD)、ソリッドステートディスク(SSD)等の外部メモリ209とのアクセスを制御する。外部メモリ209は、オペレーティングシステムプログラム(OS)210をはじめ、アプリケーション実行環境213、タッチパネル、デスクトップそれぞれに対応した複数の各種アプリケーション212や各種ファイル等を記憶する。そして、クライアントコンピュータ101が読み取り可能な記憶媒体として機能する。ネットワークI/F215は、ネットワーク103を介してプリンタ102に接続され通信制御処理を行う。尚、サーバ104もクライアントコンピュータ101のハードウェア構成と同じ構成を内包しており、同様に動作する。
図2の複数の各種アプリケーション212は、少なくとも
図3の拡張印刷アプリ300、デスクトップアプリ302、タッチアプリ301を含む。プリンタドライバ211は、汎用プリンタドライバ320を含む。これら複数のプログラムの命令列は、CPU201の制御下でRAM202に読み出され実行される。そして、後述する図で説明するフローチャートの処理を引き起こす。
【0016】
次に、
図3では、本実施例の印刷システムのブロック図を示す。ユーザはデスクトップアプリ、もしくはタッチアプリから印刷処理を実行する。印刷処理はプリンタの選択、印刷設定の作成、描画データの変換と3つの処理を順番に行うことで実行する。
【0017】
本実施例では、クライアントコンピュータ101内のソフトウェアは、デスクトップアプリ302やタッチアプリ301や印刷拡張アプリ300などの各種アプリケーションアプリケーションなどから構成される。それらのソフトウェアはOS210上にて動作する。以下で各種構成を説明する。OS210は、プリントマネージャ331、I/Oモニタ332、XMSスプールファイル330、レジストリ333を含みうる。汎用印刷管理部321は、後述する汎用印刷ドライバ内の各種モジュールの制御やデータの受け渡しを管理する。また、印刷設定情報の生成、変更も行う。レジストリ323は、OS210の設定群が記述されている領域である。プリントマネージャ331は、印刷処理のスケジュール管理を行う。I/Oモニタ332は、プリンタ102に対して通信を行う。汎用印刷設定UI322は、汎用プリンタドライバに属する印刷設定や変更をおこなうUIである。GDItoXPS変換処理部328は、デスクトップアプリ302から印刷される場合の描画データである描画データをXPSに変換してXPSスプールファイル330を生成してOS3210内のスプーラに渡す。レンダリング処理部329は、XPSスプールファイル330をレンダリングしてPDLに変換する。タッチアプリ301は、インターネット上で公開されるアプリケーション配布システムを通じて、ユーザ自身が選択し、クライアントコンピュータ101にインストールする。印刷拡張アプリ300は、タッチアプリ301の一種であり、OS210がアプリケーション配布システムからインターネットを経由して取得しクライアントコンピュータ101にインストールする。アプリケーションデータ領域307は、アプリケーション毎に利用する独自データを保存する領域である。ただし、他のアプリケーションからのアクセスはできないように構成されうる。禁則情報有無判定モジュール301は、印刷拡張アプリに関連付いたプリンタ102の禁則情報340がアプリケーションデータ領域307に保存されているか否かを判定する。禁則情報保存モジュール342は、印刷拡張アプリに関連付いたプリンタ102の禁則情報340をアプリケーションデータ領域307に保存する。
図3に示したように、プリンタ102は異なる機種を複数接続することができ、その場合は、プリンタ毎に禁則情報340をアプリケーションデータ領域307に保存する。タイルアプリ部303は、印刷拡張アプリ300を起動するというユーザ操作をきっかけにして、タイル形式のUIを表示する。拡張印刷設定UI部306は、OS210によって発行された拡張印刷設定イベントの受信をきっかけに、拡張印刷設定用のUIを表示する。拡張印刷設定UI部306は、OS210から渡された印刷設定情報と、プリンタ102と独自に通信して得た印刷能力情報に基づき、拡張印刷設定用のUIを生成する。拡張印刷設定UI部306は、ユーザの入力に応じて印刷設定情報の値を変更した後に、印刷設定情報をOS210に返却する。印刷時起動アプリケーション305は、所定のユーザ操作などを契機としてプリントに関する処理を実行させるWorkflow(WF)と呼ばれる機能を提供する。また、印刷時起動アプリケーション305は、OS210から印刷イベントが発行された際に、フォアグラウンドタスクである編集&プレビュー機能部306を起動するための、バックグラウンドタスクである。印刷時起動アプリケーション305は、OS210に対し、編集&プレビュー機能部306の起動の要求を行う。また、印刷時起動アプリケーション305は、アプリケーションデータ領域307を介して、編集&プレビュー機能部306と印刷設定情報の受け渡しをする。編集&プレビュー機能部306は、印刷設定情報の取得と設定の変更を行う。本実施形態において、編集&プレビュー機能部306は、禁則情報340の取得や保存、禁則判定処理の実行なども行う。
図12は、禁則情報340の一例であり、印刷機能の定義と、機能の無効な組み合わせが記載されたテキストファイルである。
【0018】
禁則情報取得モジュール342は、デバイス接続モジュール308やクラウド接続モジュール309を介して対象となるプリンタやクラウドサーバから印刷能力情報や禁則情報340などの情報を取得する。デバイス接続モジュールは、プリンタ102と通信するモジュールである。クラウド接続モジュールは、所定のクラウドサーバ105と通信するモジュールである。禁則判定モジュール343は、印刷設定の入力に対して禁則情報340を用いて印刷設定に競合が発生しているか否かを判定する。
【0019】
次に、汎用プリンタドライバではできない印刷設定の禁則判定処理を印刷拡張アプリで行う仕組みを、
図4、5、6、7を用いて説明する。CPU201は、格納制御手段の一例である。
【0020】
尚、各アプリケーション及びモジュールは、外部メモリ209に格納されており、必要に応じてRAM202にロードされ、クライアントコンピュータ101上のCPU201で実行される。
図4に示すフローは、所定のアプリケーションから印刷設定要求イベントが発生したところから始まる。所定のアプリケーションは表計算や文書編集アプリケーション、ペイントアプリケーションなどを含むがこれらに限定されない。
図2のアプリケーション212に含まれうる。なお、印刷設定要求イベントを引き起こすアプリケーションは、タッチアプリ301であっても、デスクトップアプリ302であってもかまわない。
【0021】
本実施形態では、タッチアプリ301(
図10)を用いて説明を行う。
図10(A)は、タッチアプリ321が起動された模式図である。タッチアプリ301は、メニュー・アイコンボタン1000をタップされることで、メニューの選択肢の一覧を羅列する。次に、メニューの選択肢である印刷アイテム1001がユーザ操作によって選択されることで、タッチアプリ301は、OS210に汎用プリンタドライバのUI表示の要求を依頼し、汎用刷設定UI327を表示する。
図10(B)は、OS210によって生成される汎用プリンタドライバの汎用印刷設定UI322である。汎用印刷設定UI322は、印刷設定部1020とイベント発生部1030から構成される。印刷設定部1020には、簡易的な印刷設定の一覧が表示される。1021は、選択されているプリントキューの名称であり、1022は、設定されている印刷設定の例である。汎用印刷設定UI322は、表示後にユーザ操作を受け付ける。この処理はこの処理はS403に対応する。印刷イベント発生部1030の印刷ボタン1032が押される(S406)。これにより印刷イベントを発生させる。印刷イベントは、S407の処理を引きおこす。以下フローに従い詳細に説明する。
【0022】
図4のフローは、ユーザの指示を、例えば、アプリケーションを介して、汎用プリンタドライバ322が受け付けることに応じて開始する。具体的には、例えば、メニューの選択肢である印刷アイテム1001が選択されることに応じてS401が始まる。
図4のフローは汎用プリンタドライバ322により制御されてもよい。ユーザの指示は、汎用プリンタドライバに対してOS201から入力されてもよい。
【0023】
まず、ステップS401にて、汎用刷設定UI327が起動される。次に、ステップS402にて、汎用プリンタドライバ322の汎用印刷設定管理部321は、印刷設定情報を初期化する。次に、ステップS403にて、汎用プリンタドライバ322は、汎用プリンタドライバの汎用印刷設定UI322を介してユーザからの印刷設定の入力を受け付ける。次に、ステップS404にて、もし、汎用プリンタドライバ322が、「その他の設定」ボタン1031の押下を検知したら、ステップS405にて、印刷拡張アプリ300による拡張印刷設定処理が実行される。本処理は、重要な役割を占めるため、
図5にて後述する。次に、印刷拡張アプリ300の拡張印刷設定UI306から汎用プリンタドライバ322の汎用印刷設定UI322に戻った後、ステップS406に進む。ステップS406にて、汎用プリンタドライバが「印刷」ボタンの押下を検知したら、ステップS407にて、印刷設定情報をOS210に渡し、印刷設定要求の処理を終了する。
【0024】
次に印刷拡張アプリ300による拡張印刷設定処理の動作を、
図5を用いて説明する。
【0025】
図5のフローは、ユーザが「その他の設定」ボタン1031を押下したことで、汎用プリンタドライバ322が、OS210に対して印刷拡張アプリ300の拡張印刷設定UI306の起動を要求することに応じてステップS501が始まる。
図5のフローは印刷拡張アプリ300の制御下にて引き起こされてもよい。印刷拡張アプリは制御プログラムの一例である。
【0026】
まずステップS501にて、印刷拡張アプリ300の拡張印刷設定UI306は、OS210によって起動される。拡張印刷設定UI306の一例を
図11の模式図で示す。1101は拡張印刷設定UI306の一例であり、1102や1103は各種印刷機能を表示し、1104や1105のトグルによってオプションやオン/オフを切り替える。1106は拡張印刷設定UI306から汎用印刷設定UI322に戻るための「OK」ボタンである。次に、ステップS502にて、印刷拡張アプリ300はOS210から、汎用プリンタドライバで設定した印刷設定情報を受け取る。次に、ステップS503にて、印刷拡張アプリ300の拡張印刷設定UI306は、禁則情報有無判定モジュール301を用いて、アプリケーションデータ領域307に禁則情報340が有るか否かを判定する。もし、アプリケーションデータ領域307に禁則情報340が無い場合は、ステップS504にて、印刷拡張アプリ300のデバイス接続モジュール308が、プリンタ102から禁則情報340を取得する。そして、ステップS505にて、印刷拡張アプリ300の禁則情報保存モジュール341は禁則情報取得モジュール342を介して取得した禁則情報340をアプリケーションデータ領域307に保存する。次に、ステップS506にて、印刷拡張アプリ300の拡張印刷設定UI306は、アプリケーションデータ領域307に保存されている禁則情報340を取得する。次に、ステップS507にて、拡張印刷設定UI306を介してユーザからの印刷設定の入力を受け付ける。次に、ステップS508にて、拡張印刷設定UI306は、禁則判定モジュール343を介して、印刷設定の入力に対して禁則情報340を用いて禁則判定処理を行う。次に、ステップS509にて、拡張印刷設定UI306は、禁則判定処理の結果に応じて処理を分岐する。もし、印刷設定に競合が発生している場合は、ステップS510にて、拡張印刷設定UI306は、印刷設定を変更前に戻す。そして、再度ステップS507にて、印刷拡張アプリ300は拡張印刷設定UI306を介してユーザからの印刷設定の入力を受け付ける。例えば、
図11の模式図において、ユーザが出力用紙サイズ1102に対し「はがき」1104を選択し、さらに両面印刷設定1103をオン1105に設定しようとすると、拡張印刷設定UI306は禁則判定モジュール343を用いて禁則判定処理を行う。この例の場合は、印刷設定に競合が発生しているため、拡張印刷設定UI306は、両面印刷の設定を変更前のオフに戻すとともに警告画面1110を表示し、ユーザのOKボタン1111の入力を受け付け後、印刷設定の入力を受け付けるUIに戻る。もし、印刷設定に競合が発生していない場合は、ステップS511に進む。ステップS511にて、拡張印刷設定UI306は、「OK」ボタン1106が押下されたか否かを判定する。もし、ステップS511にて、印刷拡張アプリ300が「OK」ボタン1106が押下されたことを検知した場合は、ステップS512にて、印刷設定情報を更新する。次に、ステップS513にて、印刷拡張アプリ300は印刷設定情報をOS210に渡し、拡張印刷設定処理を終了し、汎用印刷設定UI322に戻る。
【0027】
汎用プリンタドライバでの印刷設定が確定したら、ユーザはアプリケーションから印刷処理を実行する。デスクトップアプリ302から印刷する場合は、GDItoXPS変換処理部328に描画データが送られ、XPSスプールファイル330が作成される。このときGDItoXPS変換処理部206は汎用印刷管理部321を呼び出し、印刷設定情報をOS独自の形式から汎用印刷用の形式に変換する。(例えば、DEVMODE構造体からPrintTicketに変換する。)タッチアプリ301から印刷する場合は、XPSファイルをタッチアプリ自身が生成するのと、OSがタッチアプリからの命令に応じてXPSファイルを生成するのと2通りの方法があるが、どちらもXPSスプールファイル330を生成する。
【0028】
以下でタッチアプリ301から印刷要求を受けた場合の動作を、
図6を用いて説明する。
【0029】
図6のフローは、ユーザの指示として印刷ボタン1032押下により印刷イベントが開始され、XPSスプールファイル330が生成されたことに応じて、ステップS601が開始される。
【0030】
ステップS601では、XPSスプールファイル330が生成されたことにより、一旦OS210に処理を渡し、OS210がレジストリ330の設定を読み込む。次に、ステップS602にて、OS210は、レジストリ330に印刷時起動アプリケーション305を起動することが設定されているか否かをチェックする。もし、レジストリ330に印刷時起動アプリ304を起動することが設定されていない場合は、汎用プリンタドライバ320に処理をOS210は渡す。そして、次のレンダリング処理にS604に進む。もし、レジストリ330に印刷時起動アプリ304を起動することが設定されている場合は、ステップS603の印刷拡張アプリ300の編集&プレビュー処理に進む。なお、ステップS603の処理の詳細は
図7を用いて後述する。S603は印刷拡張アプリ300が行う処理である。次に、ステップS604にて、OS210から汎用プリンタドライバ320に処理が渡される。これにより、レンダリング処理部329の処理に進む。S604ではレンダリング処理部329は、XPSスプールファイル330をレンダリングしてPDLに変換する。またこの時、印刷設定データもOS独自の形式の印刷設定情報から、業界標準の印刷設定情報への変換処理が実行される。次に、ステップS605にて、再度処理がOS210に渡される。OS210は、レジストリ330の設定を読み込む。ステップS606にてOS210は、レジストリ330に印刷時起動アプリ304を起動することが設定されているか否かをチェックする。もし、レジストリ330に印刷時起動アプリ304を起動することが設定されていない場合は、次のPDL送信処理S609に進む。もし、レジストリ330に印刷時起動アプリ304を起動することが設定されている場合は、ステップS608の印刷拡張アプリの編集&プレビュー処理に進む。なお、ステップS603の処理の詳細についても
図7を用いて後述する。ステップS609では汎用印刷管理部がPDLデータを印刷処理のスケジュール管理を行うプリントマネージャ331に渡し、キュー(待ち行列)に印刷ジョブが次々と登録される。プリンタ102が印刷できる状態になったら、キューに登録した順にPDLデータをI/Oモニタ332を通して送信する。
【0031】
次に印刷拡張アプリの編集&プレビュー処理の詳細を、
図7を用いて説明する。
【0032】
図7のフローは、OS210が印刷拡張アプリ300の起動指示を行ったことに応じて、ステップS701が開始される。ここで、OS210は、レジストリ330の情報から起動要否を判断し、印刷時起動アプリ304を起動すべきと判断した場合、起動指示を行う。
【0033】
ステップS701で、印刷拡張アプリ300の印刷時起動アプリ304が、OS210によって起動される。次に、ステップS702で、印刷時起動アプリは、OS210から印刷設定情報を受け取る。次に、ステップS703で、印刷時起動アプリ304は、編集&プレビュー機能305を起動し、印刷設定情報を編集&プレビュー機能305に渡す。次に、ステップS704にて、編集&プレビュー機能305は禁則情報有無判定モジュール301を介して、アプリケーションデータ領域307に禁則情報340が有るか否かを判定する。もし、アプリケーションデータ領域307に、禁則情報340が無い場合は、ステップS705にて、印刷拡張アプリ300の禁則情報取得モジュール342が、プリンタ102から禁則情報340を取得する。そして、ステップS706にて、禁則情報保存モジュール341は取得した禁則情報340をアプリケーションデータ領域307に保存する。次に、ステップS707にて、印刷拡張アプリ300は、アプリケーションデータ領域307に保存されている禁則情報340を取得する。次に、ステップS708にて、編集&プレビュー機能305のUIを介してユーザからの印刷設定の入力を受け付ける。次に、ステップS709にて、印刷拡張アプリ300は禁則情報判定モジュール343を介して、印刷設定の入力に対して禁則情報340を用いて禁則判定処理を行う。次に、ステップS710にて、印刷拡張アプリ300は、禁則判定処理の結果に応じて処理を分岐する。もし、印刷設定に競合が発生している場合は、ステップS711にて、印刷拡張アプリ300の編集&プレビュー機能305は、印刷設定を変更前に戻す。そして、再度ステップS708にて、編集&プレビュー機能305のUIを介してユーザからの印刷設定の入力を受け付ける。もし、印刷設定に競合が発生していない場合は、ステップS712にすすむ。ステップS712にて、印刷拡張アプリ300は「OK」ボタン1106が押下されたか否かを判定する。もし、ステップS712にて、印刷拡張アプリ300の編集&プレビュー機能305が「OK」ボタン1106が押下されたことを検知した場合は、ステップS713にて、印刷設定情報を更新する。次に、ステップS713にて、印刷拡張アプリ300は印刷設定情報をOS210に渡し、編集&プレビュー機能を終了し、
図6に示す処理フローに戻る。
【0034】
以上、本実施形態によれば、印刷拡張アプリ300は、次のタイミングで禁則情報の有無判定を行う。例えば、印刷設定要求処理時に拡張印刷設定UI306が起動した際である。もしくは印刷要求処理時に編集&プレビュー機能305が起動した際である。このタイミングで、アプリケーションデータ領域307の禁則情報340の有無が判定される。そして、もし禁則情報340が無い場合は、プリンタ102から禁則情報340を取得してアプリケーションデータ領域307に保存する。そしてそれを用いて禁則判定処理を行う。そのため、汎用プリンタドライバからの印刷においても、プリンタベンダやプリンタに固有の禁則処理が可能となる。
【0035】
(第2実施形態)
第1実施形態では、印刷設定処理ならびに印刷処理の際に、印刷拡張アプリ300の拡張印刷設定UI306の起動時や編集&プレビュー機能305の起動時における、禁則情報340の有無の判定や禁則情報340の取得の仕組みについて説明した。
【0036】
本実施形態では、印刷拡張アプリ300のもう一つの機能である、タイルアプリ303によってアプリケーションデータ領域307における禁則情報340の有無の判定やプリンタ102からの取得を行う仕組みについて説明する。
【0037】
本実施形態に係る具体的な処理について、
図8を用いて説明する。尚、各アプリケーション及びモジュールは、外部メモリ209に格納されており、必要に応じてRAM202にロードされ、クライアントコンピュータ101上のCPU201で実行される。また、既に説明済みの番号は、その詳細な説明を省略する。
【0038】
図8のフローは、ユーザが印刷拡張アプリ300を直接起動することに応じてステップS901が始まる。
【0039】
まず、ステップS801にて、印刷拡張アプリ300のタイルアプリ機能303が起動される。次に、ステップS802にて、印刷拡張アプリ300のタイルアプリ機能303は、禁則情報有無判定モジュール301を介して、印刷拡張アプリ300のアプリケーションデータ領域307に禁則情報340が有るか否かを判定する。もし、アプリケーションデータ領域307に禁則情報340が無い場合は、ステップS803にて、印刷拡張アプリ300の禁則情報取得モジュール342が、プリンタ102から禁則情報340を取得する。そして、ステップS804にて、印刷拡張アプリ300の禁則情報保存モジュール341は取得した禁則情報340をアプリケーションデータ領域307に保存する。
【0040】
以上、本実施形態によれば、印刷拡張アプリ300は、タイルアプリ303を用いても、アプリケーションデータ領域307の禁則情報340の有無の判定や、プリンタ102から禁則情報340の取得が可能となる。そのため、タイルアプリ303を使用した場合は、印刷設定処理や印刷処理の際に別途プリンタ102から禁則情報340を取得する手間を排除することが可能となる。
図8の処理は、本実施形態に記載の
図8とは別の処理とは非同期で、または独立に、印刷拡張アプリ300を起動することに応じて禁則情報340を更新または追加することができる。
【0041】
(第3実施形態)
第1実施形態では、印刷拡張アプリ300が禁則情報340をプリンタ102から取得を行う仕組みについて説明した。
【0042】
本実施形態では、禁則情報340をプリンタ本体以外の場所から取得する仕組みについて説明する。以下前述の実施形態との差分を中心に説明する。
【0043】
本実施形態に係る具体的な処理について、
図9を用いて説明する。尚、各アプリケーション及びモジュールは、外部メモリ209に格納されており、必要に応じてRAM202にロードされ、クライアントコンピュータ101上のCPU201で実行される。また、既に説明済みの番号は、その詳細な説明を省略する。また、本実施形態では、拡張印刷設定UI306や編集&プレビュー機能305の例を示しているが、第2実施形態で示したとおり、タイルアプリ303でも同様の仕組みは可能である。なお、印刷拡張アプリ300で拡張印刷設定を行う前後の汎用プリンタドライバ322における処理は
図4で示したステップS401~ステップS407と同様の処理であるため、その詳細な説明を省略する。
図9のフローは、ユーザが「その他の設定」ボタン1031を押下したことで、汎用プリンタドライバ322が、OS210に対して印刷拡張アプリ300の拡張印刷設定UI306の起動を要求することに応じてステップS901が始まる。
【0044】
まずステップS901にて、印刷拡張アプリの拡張印刷設定UI306が、OS210によって起動される。次に、ステップS902で、印刷設定UI機能時起動アプリは、OS210から印刷設定情報を受け取る。次に、ステップS903にて、印刷拡張アプリ300の拡張印刷設定UI306は、禁則情報有無判定モジュール301を介して、印刷拡張アプリ300のアプリケーションデータ領域307に禁則情報340が有るか否かを判定する。もし、アプリケーションデータ領域307に禁則情報340が無い場合は、ステップS904にて、印刷拡張アプリ300の禁則情報取得モジュール342が、プリンタ102から禁則情報340を取得する。次に、ステップS905にて、印刷拡張アプリ300の禁則情報保存モジュール341は、プリンタ102からの禁則情報340の取得に成功したか否かを判定する。もし、禁則情報340の取得に失敗した場合は、ステップS906にて、印刷拡張アプリ300の禁則情報取得モジュール342が、あらかじめ定めた所定のクラウドサーバからプリンタ102に対応する禁則情報340を取得する。そして、ステップS907にて、印刷拡張アプリ300の禁則情報保存モジュール341は取得した禁則情報340をアプリケーションデータ領域307に保存する。次に、ステップS908にて、印刷拡張アプリ300は、アプリケーションデータ領域307に保存されている禁則情報340を取得する。なお、ステップS909~ステップS915の処理は、
図5で示したステップS507~ステップS513と同様の処理であるため、その詳細な説明を省略する。
【0045】
以上、本実施形態によれば、印刷拡張アプリ300は、プリンタ本体以外の場所からも禁則情報340を取得することが可能となる。そのため、プリンタの製造年月日が古い場合や廉価版である場合などのように、プリンタ本体に禁則情報340が無い場合においても、禁則情報340を取得し、禁則処理が可能となる。
【0046】
本実施形態では、以下を説明した。オペレーティングシステム上で動作するアプリケーションからの指示に基づきプリンタドライバを実行して印刷データを生成する情報処理装置を説明した。情報処理装置の一例はクライアントコンピュータ101である。
【0047】
印刷設定を処理するアプリケーションの一例は、拡張印刷アプリ300である。例えば301の制御下にて、プリンタドライバに対して入力するべき設定の競合を解消するための禁則情報340に基づき、印刷設定の競合または不整合を解消することを示した。コンフリクト解消情報の一例は、禁則情報340である。そして、解消された印刷設定を、310からプリンタドライバに対して入力することも説明した。プリンタドライバの一例は、汎用プリンタドライバ320である。
【0048】
また、アプリケーションデータ領域307内のコンフリクト解消情報の有無を判定することも説明した。画像形成装置の一例はプリンタ102である。308は、プリンタからコンフリクト解消情報を取得する。また、CPU201は、308が取得したコンフリクト解消情報を前記アプリケーションデータ領域へ格納する。
【0049】
アプリケーションデータ領域へ保存した禁則情報340を用いて印刷設定の競合を例えば300は解消する。
【0050】
300が実行されるタイミングは例えば次がある。タイルアプリケーションの起動時、拡張印刷設定のためのユーザーインターフェースプログラムの起動時である。または、プレビューまたは編集機能の起動のタイミングである。
【0051】
プリンタ102から禁則情報を取得できなかった場合に、さらに、あらかじめ定めた外部情報処理装置からコンフリクト解消情報を取得してもよい。外部情報処理装置の一例としては、クラウドサーバ105がある。
【0052】
オペレーティングシステムの一例はOS201である。また、OS201上で動作する文書編集アプリケーションからの指示に基づき汎用プリンタドライバを実行して印刷データを生成してもよい。そして、300は、汎用プリンタドライバが引き起こす所定のイベントを受け付ける。300は、汎用プリンタドライバが引き起こす所定のイベントを前記受け付け手段が受け付けた後、次の処理をする。つまり300は、CPU201に実行される。そして、300の制御下にて、前記汎用プリンタドライバに対して入力するべき設定の競合を解消するためのコンフリクト解消情報に基づき、印刷設定の競合または不整合を解消する。300は所定の拡張印刷設定を処理するアプリケーションの一例である。そして、解消された印刷設定を、300からプリンタドライバに対して入力すればよい。