(57)【要約】【課題】  禁則が必要となるタイミングで、印刷拡張アプリが禁則情報３４０を用いて禁則判定を行うことができる情報処理装置を提供する。【解決手段】  情報処理装置は、アプリケーションデータ領域３０７における禁則情報３４０の有無を判定する、禁則情報有無判定手段３０１と、プリンタ１０２からデバイス接続モジュール３０８を介して禁則情報３４０を取得する禁則情報取得手段３４２と、取得した禁則情報３４０をアプリケーションデータ領域３０７に保存する禁則情報保存手段３４１と、アプリケーションデータ領域３０７に保存した禁則情報３４０を用いて禁則判定を行う禁則判定手段３４３を備える。【選択図】  図５
2020009420.tif 000002
【特許請求の範囲】
【請求項１】
オペレーティングシステム上で動作するアプリケーションからの指示に基づきプリンタドライバを実行して印刷データを生成する情報処理装置において、
印刷設定を処理するアプリケーションの制御下にて、プリンタドライバに対して入力するべき設定の競合を解消するためのコンフリクト解消情報に基づき、印刷設定の競合または不整合を解消する解消手段と、
前記解消手段により解消された印刷設定を、前記アプリケーションからプリンタドライバに対して入力する入力手段と、
を備える情報処理装置。
【請求項２】
所定のアプリケーションデータ領域におけるコンフリクト解消情報の有無を判定する判定手段と、
画像形成装置からコンフリクト解消情報を取得する取得手段と、
前記取得手段が取得したコンフリクト解消情報を前記アプリケーションデータ領域へ格納する格納制御手段と、
前記アプリケーションデータ領域へ保存したコンフリクト解消情報を用いて前記解消手段は印刷設定の競合を解消する請求項１に記載の情報処理装置。
【請求項３】
タイルアプリケーションの起動時、拡張印刷設定のためのユーザーインターフェースプログラムの起動時、プレビューまたは編集機能の起動に応じて、前記印刷設定を処理するアプリケーションを実行することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記取得手段は、前記画像形成装置からコンフリクト解消情報を取得できなかった場合に、さらに、あらかじめ定めた外部情報処理装置からコンフリクト解消情報を取得することを特徴とする請求項１に記載の情報処理装置。
【請求項５】
オペレーティングシステム上で動作する文書編集アプリケーションからの指示に基づき汎用プリンタドライバを実行して印刷データを生成する情報処理装置において、
前記汎用プリンタドライバが引き起こす所定のイベントを受け付ける受付手段と、
前記汎用プリンタドライバが引き起こす所定のイベントを前記受け付け手段が受け付けた後、所定の拡張印刷設定を処理するアプリケーションの制御下にて、前記汎用プリンタドライバに対して入力するべき設定の競合を解消するためのコンフリクト解消情報に基づき、印刷設定の競合または不整合を解消する解消手段と、
前記解消手段により解消された印刷設定を、前記所定の拡張印刷設定を処理するアプリケーションからプリンタドライバに対して入力する入力手段と、
を備える情報処理装置。
【請求項６】
オペレーティングシステム上で動作するアプリケーションからの指示に基づきプリンタドライバを実行して印刷データを生成する情報処理装置の制御方法において、
印刷設定を処理するアプリケーションの制御下にて、プリンタドライバに対して入力するべき設定の競合を解消するためのコンフリクト解消情報に基づき、印刷設定の競合または不整合を解消する解消工程と、
前記解消工程により解消された印刷設定を、前記アプリケーションからプリンタドライバに対して入力する入力工程と、
をコンピュータに実行させる情報処理装置の制御方法。
【請求項７】
所定のアプリケーションデータ領域におけるコンフリクト解消情報の有無を判定する判定工程と、
画像形成装置からコンフリクト解消情報を取得する取得工程と、
前記取得工程が取得したコンフリクト解消情報を前記アプリケーションデータ領域へ格納する格納制御工程と、
前記アプリケーションデータ領域へ保存したコンフリクト解消情報を用いて前記解消工程は印刷設定の競合を解消する請求項６に記載の制御方法。
【請求項８】
タイルアプリケーションの起動時、拡張印刷設定のためのユーザーインターフェースプログラムの起動時、プレビューまたは編集機能の起動に応じて、前記印刷設定を処理するアプリケーションを実行することを特徴とする請求項６に記載の制御方法。
【請求項９】
前記取得工程は、前記画像形成装置からコンフリクト解消情報を取得できなかった場合に、さらに、あらかじめ定めた外部情報処理装置からコンフリクト解消情報を取得することを特徴とする請求項６に記載の制御方法。
【請求項１０】
オペレーティングシステム上で動作する文書編集アプリケーションからの指示に基づき汎用プリンタドライバを実行して印刷データを生成する情報処理装置の制御方法において、
前記汎用プリンタドライバが引き起こす所定のイベントを受け付ける受付工程と、
前記汎用プリンタドライバが引き起こす所定のイベントを前記受け付け工程が受け付けた後、所定の拡張印刷設定を処理するアプリケーションの制御下にて、前記汎用プリンタドライバに対して入力するべき設定の競合を解消するためのコンフリクト解消情報に基づき、印刷設定の競合または不整合を解消する解消工程と、
前記解消工程により解消された印刷設定を、前記所定の拡張印刷設定を処理するアプリケーションからプリンタドライバに対して入力する入力工程と、
をコンピュータに実行させる制御方法。
【請求項１１】
請求項６乃至１０のいずれか１項に記載の方法をコンピュータに実行させる制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理装置の制御方法、および制御プログラムに関する。例えば、印刷設定を処理できるシステム等に関する。
【背景技術】
【０００２】
画像形成装置の制御用ソフトウェアとして、ホストコンピュータにインストールされたプリンタドライバを利用し、ホストコンピュータに接続された画像形成装置に対して印刷を行う構成がある。ホストコンピュータには、基本ソフトウェアであるオペレーティングシステム（以下、ＯＳと呼ぶ）がインストールされており、プリンタドライバはそのＯＳの規定する仕様に従って構成される。画像形成装置を提供するベンダは、ＯＳの仕様に適合するプリンタドライバを提供することにより、画像形成装置に対して印刷指示する手段を得ることができる。
【０００３】
しかし、近年ＯＳ側が汎用的なプリンタドライバを用意し、ＩＰＰ（ＩｎｔｅｒｎｅｔＰｒｉｎｔｉｎｇ  Ｐｒｏｔｏｃｏｌ）のような業界標準のプロトコルを用いて印刷指示する手段を提供するようになっている。
【０００４】
従来、プリンタベンダが用意したプリンタドライバであれば、禁則情報は、プリンタドライバ内部に包含することができた。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１４−２０９３１６
【発明の概要】
【発明が解決しようとする課題】
【０００６】
スマートフォンやタブレットを含むモバイルデバイスにも対応可能なプラットホーム環境を構築するため、汎用ＯＳまたは汎用デバイスドライバから周辺機器に依存する部分を削減したいというニーズがある。このようなプラットホーム環境では、各周辺機器の仕様に依存する処理は、汎用ＯＳや汎用デバイスドライバの中に包含させることが困難であるという問題点がある。また、プリンタドライバ等の禁則処理に必要な処理やデータを汎用ＯＳや汎用デバイスドライバの中に包含させることは困難であるという問題点がある。
【０００７】
本発明は、上記問題点の少なくともひとつを鑑みてなされたものである。本実施形態の一つの目的は、各周辺機器の仕様に依存する処理を、汎用ＯＳや汎用デバイスドライバの中から削減する仕組みを提供することを目的とする。
【０００８】
本実施形態のさらなる別の目的は、例えばスマートフォンやタブレットを含むモバイルデバイスにも対応可能なプラットホーム環境に関する仕組みを提供することである。
【課題を解決するための手段】
【０００９】
本発明の一つの側面は、オペレーティングシステム上で動作するアプリケーションからの指示に基づきプリンタドライバを実行して印刷データを生成する情報処理装置において、
印刷設定を処理するアプリケーションの制御下にて、プリンタドライバに対して入力するべき設定の競合を解消するためのコンフリクト解消情報に基づき、印刷設定の競合または不整合を解消する解消手段と、
前記解消手段により解消された印刷設定を、前記アプリケーションからプリンタドライバに対して入力する入力手段と、
を備える情報処理装置であることを特徴とする。
【発明の効果】
【００１０】
本発明の一つの側面によれば、各周辺機器の仕様に依存する処理を、汎用ＯＳまたは汎用デバイスドライバの中から削減する仕組みを提供することができる。
【００１１】
本発明の別の側面によれば、モバイルデバイスにも対応可能なプラットホーム環境に関する仕組みを提供することができる。
【図面の簡単な説明】
【００１２】
【図１】システム構成を示す図である。
【図２】クライアントコンピュータのハードウェア構成の一例を示す図である。
【図３】クライアントコンピュータのソフトウェア構成の一例を示す図である。
【図４】第１実施形態に係る汎用プリンタドライバ等による処理の一例を示すフローチャートである。
【図５】第１実施形態に係る汎用プリンタドライバの印刷設定処理の一例を示すフローチャートである。
【図６】第１実施形態に係る拡張印刷アプリの処理の一例を示すフローチャートである。
【図７】第１実施形態に係る拡張印刷アプリの処理の一例を示すフローチャートである。
【図８】第２実施形態に係る拡張印刷アプリの処理の一例を示すフローチャートである。
【図９】第２実施形態に係る拡張印刷アプリの処理の一例を示すフローチャートである。
【図１０】タッチアプリ及び汎用プリンタドライバのＵＩの一例を示す模式図である。
【図１１】拡張印刷設定ＵＩの一例を示す模式図である。
【図１２】禁則情報の一例を示す図である。
【発明を実施するための形態】
【００１３】
以下、本発明を実施するための最良の形態について図面及び表を用いて説明する。
【００１４】
（第１実施形態）
まず、図１を用いて、本実施形態に係るシステムの構成について説明する。図１は、本実施形態に係るシステム構成の概略を表す模式図を示す。本実施形態に係るシステムは、クライアントコンピュータ１０１と、サーバ１０４と、プリンタ１０２を備える。クライアントコンピュータ１０１は、情報処理装置の一例である。サーバ１０４は、クライアントコンピュータ１０１へ対してデータを配信する。プリンタ１０２は、ページ記述言語（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ、以下ＰＤＬと呼ぶ）形式の印刷データを受信し印刷を行う。各装置は、Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＷＡＮ）を含むネットワーク１０３を通じて相互に通信可能である。なお、プリンタ１０２は、印刷機能のみを備えるシングルファンクションプリンタであってもよく、印刷機能、スキャン機能、複写機能を備えるマルチファンクションプリンタであってもよい。また、クライアントコンピュータ１０１は、ネットワーク１０３に対し一台に限らず、複数台接続されていてもよい。
【００１５】
図２は、図１のクライアントコンピュータ１０１のハードウェア構成を示すブロック図である。クライアントコンピュータ１０１において、中央演算処理装置（ＣＰＵ２０１）は、ランダムアクセスメモリ（ＲＡＭ２０２）に記憶されているプログラムに従って、システムバスに接続される各デバイスを制御する。なお、クライアントコンピュータ１０１は、少なくとも１つのＣＰＵ２０１を備えるものとする。加えて、ＣＰＵ２０１が外部メモリ２０９に記憶されているプログラムに基づき処理を実行することによって、クライアントコンピュータ１０１のソフトウェア構成及び後述するフローチャートの各ステップの処理が実現される。ＲＡＭ２０２は、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。リードオンリーメモリ（ＲＯＭ）２０３は、ブートプログラムや基本入出力システム（ＢＩＯＳ）等の各種プログラムが書き込まれてある。操作入力装置インターフェース（Ｉ／Ｆ）２０４は、キーボードやポインティングデバイス（マウス）タッチＵＩ（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）などの操作入力装置２０５を制御するインターフェースである。操作入力装置２０５は、ユーザからの操作を受け付ける受付部として機能する。ディスプレイＩ／Ｆ２０６はディスプレイ２０７への画面表示を制御する。ディスプレイ２０７は、ユーザに対して情報を表示する表示部として機能する。外部メモリＩ／Ｆ２０８は、例えばハードディスク（ＨＤ）、ソリッドステートディスク（ＳＳＤ）等の外部メモリ２０９とのアクセスを制御する。外部メモリ２０９は、オペレーティングシステムプログラム（ＯＳ）２１０をはじめ、アプリケーション実行環境２１３、タッチパネル、デスクトップそれぞれに対応した複数の各種アプリケーション２１２や各種ファイル等を記憶する。そして、クライアントコンピュータ１０１が読み取り可能な記憶媒体として機能する。ネットワークＩ／Ｆ２１５は、ネットワーク１０３を介してプリンタ１０２に接続され通信制御処理を行う。尚、サーバ１０４もクライアントコンピュータ１０１のハードウェア構成と同じ構成を内包しており、同様に動作する。図２の複数の各種アプリケーション２１２は、少なくとも図３の拡張印刷アプリ３００、デスクトップアプリ３０２、タッチアプリ３０１を含む。プリンタドライバ２１１は、汎用プリンタドライバ３２０を含む。これら複数のプログラムの命令列は、ＣＰＵ２０１の制御下でＲＡＭ２０２に読み出され実行される。そして、後述する図で説明するフローチャートの処理を引き起こす。
【００１６】
次に、図３では、本実施例の印刷システムのブロック図を示す。ユーザはデスクトップアプリ、もしくはタッチアプリから印刷処理を実行する。印刷処理はプリンタの選択、印刷設定の作成、描画データの変換と３つの処理を順番に行うことで実行する。
【００１７】
本実施例では、クライアントコンピュータ１０１内のソフトウェアは、デスクトップアプリ３０２やタッチアプリ３０１や印刷拡張アプリ３００などの各種アプリケーションアプリケーションなどから構成される。それらのソフトウェアはＯＳ２１０上にて動作する。以下で各種構成を説明する。ＯＳ２１０は、プリントマネージャ３３１、Ｉ／Ｏモニタ３３２、ＸＭＳスプールファイル３３０、レジストリ３３３を含みうる。汎用印刷管理部３２１は、後述する汎用印刷ドライバ内の各種モジュールの制御やデータの受け渡しを管理する。また、印刷設定情報の生成、変更も行う。レジストリ３２３は、ＯＳ２１０の設定群が記述されている領域である。プリントマネージャ３３１は、印刷処理のスケジュール管理を行う。Ｉ／Ｏモニタ３３２は、プリンタ１０２に対して通信を行う。汎用印刷設定ＵＩ３２２は、汎用プリンタドライバに属する印刷設定や変更をおこなうＵＩである。ＧＤＩｔｏＸＰＳ変換処理部３２８は、デスクトップアプリ３０２から印刷される場合の描画データである描画データをＸＰＳに変換してＸＰＳスプールファイル３３０を生成してＯＳ３２１０内のスプーラに渡す。レンダリング処理部３２９は、ＸＰＳスプールファイル３３０をレンダリングしてＰＤＬに変換する。タッチアプリ３０１は、インターネット上で公開されるアプリケーション配布システムを通じて、ユーザ自身が選択し、クライアントコンピュータ１０１にインストールする。印刷拡張アプリ３００は、タッチアプリ３０１の一種であり、ＯＳ２１０がアプリケーション配布システムからインターネットを経由して取得しクライアントコンピュータ１０１にインストールする。アプリケーションデータ領域３０７は、アプリケーション毎に利用する独自データを保存する領域である。ただし、他のアプリケーションからのアクセスはできないように構成されうる。禁則情報有無判定モジュール３０１は、印刷拡張アプリに関連付いたプリンタ１０２の禁則情報３４０がアプリケーションデータ領域３０７に保存されているか否かを判定する。禁則情報保存モジュール３４２は、印刷拡張アプリに関連付いたプリンタ１０２の禁則情報３４０をアプリケーションデータ領域３０７に保存する。図３に示したように、プリンタ１０２は異なる機種を複数接続することができ、その場合は、プリンタ毎に禁則情報３４０をアプリケーションデータ領域３０７に保存する。タイルアプリ部３０３は、印刷拡張アプリ３００を起動するというユーザ操作をきっかけにして、タイル形式のＵＩを表示する。拡張印刷設定ＵＩ部３０６は、ＯＳ２１０によって発行された拡張印刷設定イベントの受信をきっかけに、拡張印刷設定用のＵＩを表示する。拡張印刷設定ＵＩ部３０６は、ＯＳ２１０から渡された印刷設定情報と、プリンタ１０２と独自に通信して得た印刷能力情報に基づき、拡張印刷設定用のＵＩを生成する。拡張印刷設定ＵＩ部３０６は、ユーザの入力に応じて印刷設定情報の値を変更した後に、印刷設定情報をＯＳ２１０に返却する。印刷時起動アプリケーション３０５は、所定のユーザ操作などを契機としてプリントに関する処理を実行させるＷｏｒｋｆｌｏｗ（ＷＦ）と呼ばれる機能を提供する。また、印刷時起動アプリケーション３０５は、ＯＳ２１０から印刷イベントが発行された際に、フォアグラウンドタスクである編集＆プレビュー機能部３０６を起動するための、バックグラウンドタスクである。印刷時起動アプリケーション３０５は、ＯＳ２１０に対し、編集＆プレビュー機能部３０６の起動の要求を行う。また、印刷時起動アプリケーション３０５は、アプリケーションデータ領域３０７を介して、編集＆プレビュー機能部３０６と印刷設定情報の受け渡しをする。編集＆プレビュー機能部３０６は、印刷設定情報の取得と設定の変更を行う。本実施形態において、編集＆プレビュー機能部３０６は、禁則情報３４０の取得や保存、禁則判定処理の実行なども行う。図１２は、禁則情報３４０の一例であり、印刷機能の定義と、機能の無効な組み合わせが記載されたテキストファイルである。
【００１８】
禁則情報取得モジュール３４２は、デバイス接続モジュール３０８やクラウド接続モジュール３０９を介して対象となるプリンタやクラウドサーバから印刷能力情報や禁則情報３４０などの情報を取得する。デバイス接続モジュールは、プリンタ１０２と通信するモジュールである。クラウド接続モジュールは、所定のクラウドサーバ１０５と通信するモジュールである。禁則判定モジュール３４３は、印刷設定の入力に対して禁則情報３４０を用いて印刷設定に競合が発生しているか否かを判定する。
【００１９】
次に、汎用プリンタドライバではできない印刷設定の禁則判定処理を印刷拡張アプリで行う仕組みを、図４、５、６、７を用いて説明する。ＣＰＵ２０１は、格納制御手段の一例である。
【００２０】
尚、各アプリケーション及びモジュールは、外部メモリ２０９に格納されており、必要に応じてＲＡＭ２０２にロードされ、クライアントコンピュータ１０１上のＣＰＵ２０１で実行される。図４に示すフローは、所定のアプリケーションから印刷設定要求イベントが発生したところから始まる。所定のアプリケーションは表計算や文書編集アプリケーション、ペイントアプリケーションなどを含むがこれらに限定されない。図２のアプリケーション２１２に含まれうる。なお、印刷設定要求イベントを引き起こすアプリケーションは、タッチアプリ３０１であっても、デスクトップアプリ３０２であってもかまわない。
【００２１】
本実施形態では、タッチアプリ３０１（図１０）を用いて説明を行う。図１０（Ａ）は、タッチアプリ３２１が起動された模式図である。タッチアプリ３０１は、メニュー・アイコンボタン１０００をタップされることで、メニューの選択肢の一覧を羅列する。次に、メニューの選択肢である印刷アイテム１００１がユーザ操作によって選択されることで、タッチアプリ３０１は、ＯＳ２１０に汎用プリンタドライバのＵＩ表示の要求を依頼し、汎用刷設定ＵＩ３２７を表示する。図１０（Ｂ）は、ＯＳ２１０によって生成される汎用プリンタドライバの汎用印刷設定ＵＩ３２２である。汎用印刷設定ＵＩ３２２は、印刷設定部１０２０とイベント発生部１０３０から構成される。印刷設定部１０２０には、簡易的な印刷設定の一覧が表示される。１０２１は、選択されているプリントキューの名称であり、１０２２は、設定されている印刷設定の例である。汎用印刷設定ＵＩ３２２は、表示後にユーザ操作を受け付ける。この処理はこの処理はＳ４０３に対応する。印刷イベント発生部１０３０の印刷ボタン１０３２が押される（Ｓ４０６）。これにより印刷イベントを発生させる。印刷イベントは、Ｓ４０７の処理を引きおこす。以下フローに従い詳細に説明する。
【００２２】
図４のフローは、ユーザの指示を、例えば、アプリケーションを介して、汎用プリンタドライバ３２２が受け付けることに応じて開始する。具体的には、例えば、メニューの選択肢である印刷アイテム１００１が選択されることに応じてＳ４０１が始まる。図４のフローは汎用プリンタドライバ３２２により制御されてもよい。ユーザの指示は、汎用プリンタドライバに対してＯＳ２０１から入力されてもよい。
【００２３】
まず、ステップＳ４０１にて、汎用刷設定ＵＩ３２７が起動される。次に、ステップＳ４０２にて、汎用プリンタドライバ３２２の汎用印刷設定管理部３２１は、印刷設定情報を初期化する。次に、ステップＳ４０３にて、汎用プリンタドライバ３２２は、汎用プリンタドライバの汎用印刷設定ＵＩ３２２を介してユーザからの印刷設定の入力を受け付ける。次に、ステップＳ４０４にて、もし、汎用プリンタドライバ３２２が、「その他の設定」ボタン１０３１の押下を検知したら、ステップＳ４０５にて、印刷拡張アプリ３００による拡張印刷設定処理が実行される。本処理は、重要な役割を占めるため、図５にて後述する。次に、印刷拡張アプリ３００の拡張印刷設定ＵＩ３０６から汎用プリンタドライバ３２２の汎用印刷設定ＵＩ３２２に戻った後、ステップＳ４０６に進む。ステップＳ４０６にて、汎用プリンタドライバが「印刷」ボタンの押下を検知したら、ステップＳ４０７にて、印刷設定情報をＯＳ２１０に渡し、印刷設定要求の処理を終了する。
【００２４】
次に印刷拡張アプリ３００による拡張印刷設定処理の動作を、図５を用いて説明する。
【００２５】
図５のフローは、ユーザが「その他の設定」ボタン１０３１を押下したことで、汎用プリンタドライバ３２２が、ＯＳ２１０に対して印刷拡張アプリ３００の拡張印刷設定ＵＩ３０６の起動を要求することに応じてステップＳ５０１が始まる。図５のフローは印刷拡張アプリ３００の制御下にて引き起こされてもよい。印刷拡張アプリは制御プログラムの一例である。
【００２６】
まずステップＳ５０１にて、印刷拡張アプリ３００の拡張印刷設定ＵＩ３０６は、ＯＳ２１０によって起動される。拡張印刷設定ＵＩ３０６の一例を図１１の模式図で示す。１１０１は拡張印刷設定ＵＩ３０６の一例であり、１１０２や１１０３は各種印刷機能を表示し、１１０４や１１０５のトグルによってオプションやオン／オフを切り替える。１１０６は拡張印刷設定ＵＩ３０６から汎用印刷設定ＵＩ３２２に戻るための「ＯＫ」ボタンである。次に、ステップＳ５０２にて、印刷拡張アプリ３００はＯＳ２１０から、汎用プリンタドライバで設定した印刷設定情報を受け取る。次に、ステップＳ５０３にて、印刷拡張アプリ３００の拡張印刷設定ＵＩ３０６は、禁則情報有無判定モジュール３０１を用いて、アプリケーションデータ領域３０７に禁則情報３４０が有るか否かを判定する。もし、アプリケーションデータ領域３０７に禁則情報３４０が無い場合は、ステップＳ５０４にて、印刷拡張アプリ３００のデバイス接続モジュール３０８が、プリンタ１０２から禁則情報３４０を取得する。そして、ステップＳ５０５にて、印刷拡張アプリ３００の禁則情報保存モジュール３４１は禁則情報取得モジュール３４２を介して取得した禁則情報３４０をアプリケーションデータ領域３０７に保存する。次に、ステップＳ５０６にて、印刷拡張アプリ３００の拡張印刷設定ＵＩ３０６は、アプリケーションデータ領域３０７に保存されている禁則情報３４０を取得する。次に、ステップＳ５０７にて、拡張印刷設定ＵＩ３０６を介してユーザからの印刷設定の入力を受け付ける。次に、ステップＳ５０８にて、拡張印刷設定ＵＩ３０６は、禁則判定モジュール３４３を介して、印刷設定の入力に対して禁則情報３４０を用いて禁則判定処理を行う。次に、ステップＳ５０９にて、拡張印刷設定ＵＩ３０６は、禁則判定処理の結果に応じて処理を分岐する。もし、印刷設定に競合が発生している場合は、ステップＳ５１０にて、拡張印刷設定ＵＩ３０６は、印刷設定を変更前に戻す。そして、再度ステップＳ５０７にて、印刷拡張アプリ３００は拡張印刷設定ＵＩ３０６を介してユーザからの印刷設定の入力を受け付ける。例えば、図１１の模式図において、ユーザが出力用紙サイズ１１０２に対し「はがき」１１０４を選択し、さらに両面印刷設定１１０３をオン１１０５に設定しようとすると、拡張印刷設定ＵＩ３０６は禁則判定モジュール３４３を用いて禁則判定処理を行う。この例の場合は、印刷設定に競合が発生しているため、拡張印刷設定ＵＩ３０６は、両面印刷の設定を変更前のオフに戻すとともに警告画面１１１０を表示し、ユーザのＯＫボタン１１１１の入力を受け付け後、印刷設定の入力を受け付けるＵＩに戻る。もし、印刷設定に競合が発生していない場合は、ステップＳ５１１に進む。ステップＳ５１１にて、拡張印刷設定ＵＩ３０６は、「ＯＫ」ボタン１１０６が押下されたか否かを判定する。もし、ステップＳ５１１にて、印刷拡張アプリ３００が「ＯＫ」ボタン１１０６が押下されたことを検知した場合は、ステップＳ５１２にて、印刷設定情報を更新する。次に、ステップＳ５１３にて、印刷拡張アプリ３００は印刷設定情報をＯＳ２１０に渡し、拡張印刷設定処理を終了し、汎用印刷設定ＵＩ３２２に戻る。
【００２７】
汎用プリンタドライバでの印刷設定が確定したら、ユーザはアプリケーションから印刷処理を実行する。デスクトップアプリ３０２から印刷する場合は、ＧＤＩｔｏＸＰＳ変換処理部３２８に描画データが送られ、ＸＰＳスプールファイル３３０が作成される。このときＧＤＩｔｏＸＰＳ変換処理部２０６は汎用印刷管理部３２１を呼び出し、印刷設定情報をＯＳ独自の形式から汎用印刷用の形式に変換する。（例えば、ＤＥＶＭＯＤＥ構造体からＰｒｉｎｔＴｉｃｋｅｔに変換する。）タッチアプリ３０１から印刷する場合は、ＸＰＳファイルをタッチアプリ自身が生成するのと、ＯＳがタッチアプリからの命令に応じてＸＰＳファイルを生成するのと２通りの方法があるが、どちらもＸＰＳスプールファイル３３０を生成する。
【００２８】
以下でタッチアプリ３０１から印刷要求を受けた場合の動作を、図６を用いて説明する。
【００２９】
図６のフローは、ユーザの指示として印刷ボタン１０３２押下により印刷イベントが開始され、ＸＰＳスプールファイル３３０が生成されたことに応じて、ステップＳ６０１が開始される。
【００３０】
ステップＳ６０１では、ＸＰＳスプールファイル３３０が生成されたことにより、一旦ＯＳ２１０に処理を渡し、ＯＳ２１０がレジストリ３３０の設定を読み込む。次に、ステップＳ６０２にて、ＯＳ２１０は、レジストリ３３０に印刷時起動アプリケーション３０５を起動することが設定されているか否かをチェックする。もし、レジストリ３３０に印刷時起動アプリ３０４を起動することが設定されていない場合は、汎用プリンタドライバ３２０に処理をＯＳ２１０は渡す。そして、次のレンダリング処理にＳ６０４に進む。もし、レジストリ３３０に印刷時起動アプリ３０４を起動することが設定されている場合は、ステップＳ６０３の印刷拡張アプリ３００の編集＆プレビュー処理に進む。なお、ステップＳ６０３の処理の詳細は図７を用いて後述する。Ｓ６０３は印刷拡張アプリ３００が行う処理である。次に、ステップＳ６０４にて、ＯＳ２１０から汎用プリンタドライバ３２０に処理が渡される。これにより、レンダリング処理部３２９の処理に進む。Ｓ６０４ではレンダリング処理部３２９は、ＸＰＳスプールファイル３３０をレンダリングしてＰＤＬに変換する。またこの時、印刷設定データもＯＳ独自の形式の印刷設定情報から、業界標準の印刷設定情報への変換処理が実行される。次に、ステップＳ６０５にて、再度処理がＯＳ２１０に渡される。ＯＳ２１０は、レジストリ３３０の設定を読み込む。ステップＳ６０６にてＯＳ２１０は、レジストリ３３０に印刷時起動アプリ３０４を起動することが設定されているか否かをチェックする。もし、レジストリ３３０に印刷時起動アプリ３０４を起動することが設定されていない場合は、次のＰＤＬ送信処理Ｓ６０９に進む。もし、レジストリ３３０に印刷時起動アプリ３０４を起動することが設定されている場合は、ステップＳ６０８の印刷拡張アプリの編集＆プレビュー処理に進む。なお、ステップＳ６０３の処理の詳細についても図７を用いて後述する。ステップＳ６０９では汎用印刷管理部がＰＤＬデータを印刷処理のスケジュール管理を行うプリントマネージャ３３１に渡し、キュー（待ち行列）に印刷ジョブが次々と登録される。プリンタ１０２が印刷できる状態になったら、キューに登録した順にＰＤＬデータをＩ／Ｏモニタ３３２を通して送信する。
【００３１】
次に印刷拡張アプリの編集＆プレビュー処理の詳細を、図７を用いて説明する。
【００３２】
図７のフローは、ＯＳ２１０が印刷拡張アプリ３００の起動指示を行ったことに応じて、ステップＳ７０１が開始される。ここで、ＯＳ２１０は、レジストリ３３０の情報から起動要否を判断し、印刷時起動アプリ３０４を起動すべきと判断した場合、起動指示を行う。
【００３３】
ステップＳ７０１で、印刷拡張アプリ３００の印刷時起動アプリ３０４が、ＯＳ２１０によって起動される。次に、ステップＳ７０２で、印刷時起動アプリは、ＯＳ２１０から印刷設定情報を受け取る。次に、ステップＳ７０３で、印刷時起動アプリ３０４は、編集＆プレビュー機能３０５を起動し、印刷設定情報を編集＆プレビュー機能３０５に渡す。次に、ステップＳ７０４にて、編集＆プレビュー機能３０５は禁則情報有無判定モジュール３０１を介して、アプリケーションデータ領域３０７に禁則情報３４０が有るか否かを判定する。もし、アプリケーションデータ領域３０７に、禁則情報３４０が無い場合は、ステップＳ７０５にて、印刷拡張アプリ３００の禁則情報取得モジュール３４２が、プリンタ１０２から禁則情報３４０を取得する。そして、ステップＳ７０６にて、禁則情報保存モジュール３４１は取得した禁則情報３４０をアプリケーションデータ領域３０７に保存する。次に、ステップＳ７０７にて、印刷拡張アプリ３００は、アプリケーションデータ領域３０７に保存されている禁則情報３４０を取得する。次に、ステップＳ７０８にて、編集＆プレビュー機能３０５のＵＩを介してユーザからの印刷設定の入力を受け付ける。次に、ステップＳ７０９にて、印刷拡張アプリ３００は禁則情報判定モジュール３４３を介して、印刷設定の入力に対して禁則情報３４０を用いて禁則判定処理を行う。次に、ステップＳ７１０にて、印刷拡張アプリ３００は、禁則判定処理の結果に応じて処理を分岐する。もし、印刷設定に競合が発生している場合は、ステップＳ７１１にて、印刷拡張アプリ３００の編集＆プレビュー機能３０５は、印刷設定を変更前に戻す。そして、再度ステップＳ７０８にて、編集＆プレビュー機能３０５のＵＩを介してユーザからの印刷設定の入力を受け付ける。もし、印刷設定に競合が発生していない場合は、ステップＳ７１２にすすむ。ステップＳ７１２にて、印刷拡張アプリ３００は「ＯＫ」ボタン１１０６が押下されたか否かを判定する。もし、ステップＳ７１２にて、印刷拡張アプリ３００の編集＆プレビュー機能３０５が「ＯＫ」ボタン１１０６が押下されたことを検知した場合は、ステップＳ７１３にて、印刷設定情報を更新する。次に、ステップＳ７１３にて、印刷拡張アプリ３００は印刷設定情報をＯＳ２１０に渡し、編集＆プレビュー機能を終了し、図６に示す処理フローに戻る。
【００３４】
以上、本実施形態によれば、印刷拡張アプリ３００は、次のタイミングで禁則情報の有無判定を行う。例えば、印刷設定要求処理時に拡張印刷設定ＵＩ３０６が起動した際である。もしくは印刷要求処理時に編集＆プレビュー機能３０５が起動した際である。このタイミングで、アプリケーションデータ領域３０７の禁則情報３４０の有無が判定される。そして、もし禁則情報３４０が無い場合は、プリンタ１０２から禁則情報３４０を取得してアプリケーションデータ領域３０７に保存する。そしてそれを用いて禁則判定処理を行う。そのため、汎用プリンタドライバからの印刷においても、プリンタベンダやプリンタに固有の禁則処理が可能となる。
【００３５】
（第２実施形態）
第１実施形態では、印刷設定処理ならびに印刷処理の際に、印刷拡張アプリ３００の拡張印刷設定ＵＩ３０６の起動時や編集＆プレビュー機能３０５の起動時における、禁則情報３４０の有無の判定や禁則情報３４０の取得の仕組みについて説明した。
【００３６】
本実施形態では、印刷拡張アプリ３００のもう一つの機能である、タイルアプリ３０３によってアプリケーションデータ領域３０７における禁則情報３４０の有無の判定やプリンタ１０２からの取得を行う仕組みについて説明する。
【００３７】
本実施形態に係る具体的な処理について、図８を用いて説明する。尚、各アプリケーション及びモジュールは、外部メモリ２０９に格納されており、必要に応じてＲＡＭ２０２にロードされ、クライアントコンピュータ１０１上のＣＰＵ２０１で実行される。また、既に説明済みの番号は、その詳細な説明を省略する。
【００３８】
図８のフローは、ユーザが印刷拡張アプリ３００を直接起動することに応じてステップＳ９０１が始まる。
【００３９】
まず、ステップＳ８０１にて、印刷拡張アプリ３００のタイルアプリ機能３０３が起動される。次に、ステップＳ８０２にて、印刷拡張アプリ３００のタイルアプリ機能３０３は、禁則情報有無判定モジュール３０１を介して、印刷拡張アプリ３００のアプリケーションデータ領域３０７に禁則情報３４０が有るか否かを判定する。もし、アプリケーションデータ領域３０７に禁則情報３４０が無い場合は、ステップＳ８０３にて、印刷拡張アプリ３００の禁則情報取得モジュール３４２が、プリンタ１０２から禁則情報３４０を取得する。そして、ステップＳ８０４にて、印刷拡張アプリ３００の禁則情報保存モジュール３４１は取得した禁則情報３４０をアプリケーションデータ領域３０７に保存する。
【００４０】
以上、本実施形態によれば、印刷拡張アプリ３００は、タイルアプリ３０３を用いても、アプリケーションデータ領域３０７の禁則情報３４０の有無の判定や、プリンタ１０２から禁則情報３４０の取得が可能となる。そのため、タイルアプリ３０３を使用した場合は、印刷設定処理や印刷処理の際に別途プリンタ１０２から禁則情報３４０を取得する手間を排除することが可能となる。図８の処理は、本実施形態に記載の図８とは別の処理とは非同期で、または独立に、印刷拡張アプリ３００を起動することに応じて禁則情報３４０を更新または追加することができる。
【００４１】
（第３実施形態）
第１実施形態では、印刷拡張アプリ３００が禁則情報３４０をプリンタ１０２から取得を行う仕組みについて説明した。
【００４２】
本実施形態では、禁則情報３４０をプリンタ本体以外の場所から取得する仕組みについて説明する。以下前述の実施形態との差分を中心に説明する。
【００４３】
本実施形態に係る具体的な処理について、図９を用いて説明する。尚、各アプリケーション及びモジュールは、外部メモリ２０９に格納されており、必要に応じてＲＡＭ２０２にロードされ、クライアントコンピュータ１０１上のＣＰＵ２０１で実行される。また、既に説明済みの番号は、その詳細な説明を省略する。また、本実施形態では、拡張印刷設定ＵＩ３０６や編集＆プレビュー機能３０５の例を示しているが、第２実施形態で示したとおり、タイルアプリ３０３でも同様の仕組みは可能である。なお、印刷拡張アプリ３００で拡張印刷設定を行う前後の汎用プリンタドライバ３２２における処理は図４で示したステップＳ４０１〜ステップＳ４０７と同様の処理であるため、その詳細な説明を省略する。図９のフローは、ユーザが「その他の設定」ボタン１０３１を押下したことで、汎用プリンタドライバ３２２が、ＯＳ２１０に対して印刷拡張アプリ３００の拡張印刷設定ＵＩ３０６の起動を要求することに応じてステップＳ９０１が始まる。
【００４４】
まずステップＳ９０１にて、印刷拡張アプリの拡張印刷設定ＵＩ３０６が、ＯＳ２１０によって起動される。次に、ステップＳ９０２で、印刷設定ＵＩ機能時起動アプリは、ＯＳ２１０から印刷設定情報を受け取る。次に、ステップＳ９０３にて、印刷拡張アプリ３００の拡張印刷設定ＵＩ３０６は、禁則情報有無判定モジュール３０１を介して、印刷拡張アプリ３００のアプリケーションデータ領域３０７に禁則情報３４０が有るか否かを判定する。もし、アプリケーションデータ領域３０７に禁則情報３４０が無い場合は、ステップＳ９０４にて、印刷拡張アプリ３００の禁則情報取得モジュール３４２が、プリンタ１０２から禁則情報３４０を取得する。次に、ステップＳ９０５にて、印刷拡張アプリ３００の禁則情報保存モジュール３４１は、プリンタ１０２からの禁則情報３４０の取得に成功したか否かを判定する。もし、禁則情報３４０の取得に失敗した場合は、ステップＳ９０６にて、印刷拡張アプリ３００の禁則情報取得モジュール３４２が、あらかじめ定めた所定のクラウドサーバからプリンタ１０２に対応する禁則情報３４０を取得する。そして、ステップＳ９０７にて、印刷拡張アプリ３００の禁則情報保存モジュール３４１は取得した禁則情報３４０をアプリケーションデータ領域３０７に保存する。次に、ステップＳ９０８にて、印刷拡張アプリ３００は、アプリケーションデータ領域３０７に保存されている禁則情報３４０を取得する。なお、ステップＳ９０９〜ステップＳ９１５の処理は、図５で示したステップＳ５０７〜ステップＳ５１３と同様の処理であるため、その詳細な説明を省略する。
【００４５】
以上、本実施形態によれば、印刷拡張アプリ３００は、プリンタ本体以外の場所からも禁則情報３４０を取得することが可能となる。そのため、プリンタの製造年月日が古い場合や廉価版である場合などのように、プリンタ本体に禁則情報３４０が無い場合においても、禁則情報３４０を取得し、禁則処理が可能となる。
【００４６】
本実施形態では、以下を説明した。オペレーティングシステム上で動作するアプリケーションからの指示に基づきプリンタドライバを実行して印刷データを生成する情報処理装置を説明した。情報処理装置の一例はクライアントコンピュータ１０１である。
【００４７】
印刷設定を処理するアプリケーションの一例は、拡張印刷アプリ３００である。例えば３０１の制御下にて、プリンタドライバに対して入力するべき設定の競合を解消するための禁則情報３４０に基づき、印刷設定の競合または不整合を解消することを示した。コンフリクト解消情報の一例は、禁則情報３４０である。そして、解消された印刷設定を、３１０からプリンタドライバに対して入力することも説明した。プリンタドライバの一例は、汎用プリンタドライバ３２０である。
【００４８】
また、アプリケーションデータ領域３０７内のコンフリクト解消情報の有無を判定することも説明した。画像形成装置の一例はプリンタ１０２である。３０８は、プリンタからコンフリクト解消情報を取得する。また、ＣＰＵ２０１は、３０８が取得したコンフリクト解消情報を前記アプリケーションデータ領域へ格納する。
【００４９】
アプリケーションデータ領域へ保存した禁則情報３４０を用いて印刷設定の競合を例えば３００は解消する。
【００５０】
３００が実行されるタイミングは例えば次がある。タイルアプリケーションの起動時、拡張印刷設定のためのユーザーインターフェースプログラムの起動時である。または、プレビューまたは編集機能の起動のタイミングである。
【００５１】
プリンタ１０２から禁則情報を取得できなかった場合に、さらに、あらかじめ定めた外部情報処理装置からコンフリクト解消情報を取得してもよい。外部情報処理装置の一例としては、クラウドサーバ１０５がある。
【００５２】
オペレーティングシステムの一例はＯＳ２０１である。また、ＯＳ２０１上で動作する文書編集アプリケーションからの指示に基づき汎用プリンタドライバを実行して印刷データを生成してもよい。そして、３００は、汎用プリンタドライバが引き起こす所定のイベントを受け付ける。３００は、汎用プリンタドライバが引き起こす所定のイベントを前記受け付け手段が受け付けた後、次の処理をする。つまり３００は、ＣＰＵ２０１に実行される。そして、３００の制御下にて、前記汎用プリンタドライバに対して入力するべき設定の競合を解消するためのコンフリクト解消情報に基づき、印刷設定の競合または不整合を解消する。３００は所定の拡張印刷設定を処理するアプリケーションの一例である。そして、解消された印刷設定を、３００からプリンタドライバに対して入力すればよい。
【図１】
2020009420.tif 000003
【図２】
2020009420.tif 000004
【図３】
2020009420.tif 000005
【図４】
2020009420.tif 000006
【図５】
2020009420.tif 000007
【図６】
2020009420.tif 000008
【図７】
2020009420.tif 000009
【図８】
2020009420.tif 000010
【図９】
2020009420.tif 000011
【図１０】
2020009420.tif 000012
【図１１】
2020009420.tif 000013
【図１２】
2020009420.tif 000014