(57)【要約】【課題】複数の拡張機能を追加可能なプリンタドライバにおいて、追加した拡張機能により、望ましい順序で処理が行われるようにする。【解決手段】情報処理装置は、画像処理装置に画像処理の要求を行うプリンタドライバを実行する情報処理装置であって、前記プリンタドライバからの要求に応じて所定の処理を実行する複数の処理実行部と、前記処理実行部の各々が実行する処理に関する処理情報を記憶する記憶部と、前記記憶部に記憶された前記処理情報に基づいて、前記複数の処理実行部が実行する処理の前記プリンタドライバにおける実行順序を決定する決定部と、を有し、前記プリンタドライバは、前記決定部で決定された前記実行順序に従って、前記処理実行部に処理の実行を要求する要求部として前記情報処理装置を機能させる。【選択図】図７
2018084978.tif 000002
【特許請求の範囲】
【請求項１】
画像処理装置に画像処理の要求を行うプリンタドライバを実行する情報処理装置であって、
前記プリンタドライバからの要求に応じて所定の処理を実行する複数の処理実行部と、
前記処理実行部の各々が実行する処理に関する処理情報を記憶する記憶部と、
前記記憶部に記憶された前記処理情報に基づいて、前記複数の処理実行部が実行する処理の前記プリンタドライバにおける実行順序を決定する決定部と、
を有し、
前記プリンタドライバは、
前記決定部で決定された前記実行順序に従って、前記処理実行部に処理の実行を要求する要求部として前記情報処理装置を機能させる情報処理装置。
【請求項２】
前記プリンタドライバは、
前記画像処理の対象となるデータを、前記画像処理装置で処理可能な描画データに変換する描画データ生成部として前記情報処理装置を機能させる請求項１に記載の情報処理装置。
【請求項３】
前記複数の処理実行部が実行する処理は、
前記描画データに変更を加える第１の処理、前記描画データから情報を読出する第２の処理、及び前記描画データを転送先に転送する第３の処理のうち、少なくとも１つの処理を含む請求項２に記載の情報処理装置。
【請求項４】
前記決定部は、
前記複数の処理実行部が実行する処理が、前記第１の処理及び前記第２の処理を含む場合、前記第１の処理が前記第２の処理より前に実行されるように前記実行順序を決定する請求項３に記載の情報処理装置。
【請求項５】
前記決定部は、
前記複数の処理実行部が実行する処理が、前記第２の処理及び前記第３の処理を含む場合、前記第２の処理が前記第３の処理より前に実行されるように前記実行順序を決定する請求項３又は４に記載の情報処理装置。
【請求項６】
前記決定部は、
前記複数の処理実行部が実行する処理が、前記第１の処理及び前記第３の処理を含む場合、前記第１の処理が前記第３の処理より前に実行されるように前記実行順序を決定する請求項３乃至５のいずれか一項に記載の情報処理装置。
【請求項７】
前記決定部は、
前記複数の処理実行部が実行する処理が、複数の前記第１の処理を含む場合、前記複数の前記第１の処理が順次に実行されるように前記実行順序を決定する請求項３乃至６のいずれか一項に記載の情報処理装置。
【請求項８】
前記決定部は、
前記複数の処理実行部が実行する処理が、複数の前記第２の処理を含む場合、前記複数の前記第２の処理が並行又は順次に実行されるように前記実行順序を決定する請求項３乃至７のいずれか一項に記載の情報処理装置。
【請求項９】
前記決定部は、
前記複数の処理実行部が実行する処理が、複数の前記第３の処理を含む場合、前記複数の前記第３の処理が並行又は順次に実行されるように前記実行順序を決定する請求項３乃至８のいずれか一項に記載の情報処理装置。
【請求項１０】
前記プリンタドライバは、
前記複数の処理実行部が実行する処理のうち、前記描画データに対して実行する処理を選択する設定画面を表示するＵＩ部として前記情報処理装置を機能させる請求項３乃至９のいずれか一項に記載の情報処理装置。
【請求項１１】
前記要求部は、
前記複数の処理実行部が実行する処理のうち、前記設定画面で選択された処理の実行を前記複数の処理実行部に要求する請求項１０に記載の情報処理装置。
【請求項１２】
前記プリンタドライバは、
前記決定部として前記情報処理装置を機能させる請求項１乃至１１のいずれか一項に記載の情報処理装置。
【請求項１３】
前記情報処理装置は、前記プリンタドライバと連携する連携プログラムを実行し、
前記連携プログラムは、
前記複数の処理実行部を、前記プリンタドライバからアクセス可能な記憶領域に配置する配置部と、
前記プリンタドライバが、前記複数の処理実行部に処理を実行するために用いる前記処理情報を前記記憶部に保存する処理情報保存部と、
として前記情報処理装置を機能させる請求項１乃至１１のいずれか一項に記載の情報処理装置。
【請求項１４】
前記連携プログラムは、
前記決定部として前記情報処理装置を機能させる請求項１３に記載の情報処理装置。
【請求項１５】
画像処理装置と、前記画像処理装置に画像処理の要求を行うプリンタドライバを実行する情報処理装置とを含む情報処理システムであって、
前記プリンタドライバからの要求に応じて所定の処理を実行する複数の処理実行部と、
前記処理実行部の各々が実行する処理に関する処理情報を記憶する記憶部と、
前記記憶部に記憶された前記処理情報に基づいて、前記複数の処理実行部が実行する処理の前記プリンタドライバにおける実行順序を決定する決定部と、
を有し、
前記プリンタドライバは、
前記決定部で決定された前記実行順序に従って、前記処理実行部に処理の実行を要求する要求部として前記情報処理装置を機能させることを特徴とする情報処理システム。
【請求項１６】
画像処理装置に画像処理の要求を行うプリンタドライバを実行する情報処理装置における情報処理方法であって、
前記情報処理装置が、
前記プリンタドライバからの要求に応じて所定の処理を実行する複数の処理実行部を記憶するステップと、
前記処理実行部の各々が実行する処理に関する処理情報を記憶するステップと、
前記記憶された前記処理情報に基づいて、前記複数の処理実行部が実行する処理の前記プリンタドライバにおける実行順序を決定するステップと、
前記プリンタドライバにより、前記決定された前記実行順序に従って前記処理実行部に処理の実行を要求するステップと、
を含む情報処理方法。
【請求項１７】
画像処理装置に画像処理の要求を行う情報処理装置を、
プリンタドライバからの要求に応じて所定の処理を実行する複数の処理実行部と、
前記処理実行部の各々が実行する処理に関する処理情報を記憶する記憶部と、
前記記憶部に記憶された前記処理情報に基づいて、前記複数の処理実行部が実行する処理の前記プリンタドライバにおける実行順序を決定する決定部と、
前記決定部で決定された前記実行順序に従って、前記処理実行部に処理の実行を要求する要求部と、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理システム、情報処理方法、及びプログラムに関する。
【背景技術】
【０００２】
Ｗｉｎｄｏｗｓ（登録商標）２０００からＷｉｎｄｏｗｓ７までのＷｉｎｄｏｗｓＯＳ（Operating System）では、Ｖｅｒｓｉｏｎ３（以降「Ｖ３」と称する）プリンタドライバと呼ばれるプリンタドライバのアーキテクチャが採用されている。また、Ｗｉｎｄｏｗｓ８以降のＷｉｎｄｏｗｓＯＳでは、Ｖ３プリンタドライバに加え、Ｖｅｒｓｉｏｎ４（以降「Ｖ４」と称する）プリンタドライバと呼ばれる新しいプリンタドライバのアーキテクチャが採用されている。
【０００３】
また、プリンタドライバに、拡張機能をプラグインとして後から追加する技術が知られている（例えば、特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
プリンタドライバに後から複数の拡張機能（プラグイン、拡張プログラム等）を追加して使用する場合、拡張機能を実行する順序を考慮しないと、印刷データに対する望ましい（拡張機能を追加することによって想定されていた）処理を行えないことがある。
【０００５】
例えば、印刷データ編集を行う拡張機能Ａと印刷データのプレビューを行う拡張機能Ｂがあるものとする。このとき、拡張機能Ｂを実行した後に、拡張機能Ａを実行してしまうと、拡張機能Ｂのプレビューでは拡張機能Ａで印刷データが編集される前の印刷データの画像が表示されることになるため、実際の印刷物の内容が相違してしまう。
【０００６】
本発明の実施の形態は、上記の問題点に鑑みてなされたものであって、複数の拡張機能を追加可能なプリンタドライバにおいて、追加した拡張機能により、望ましい順序で処理が行われるようにすることを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するため、本発明の一実施形態に係る情報処理装置は、画像処理装置に画像処理の要求を行うプリンタドライバを実行する情報処理装置であって、前記プリンタドライバからの要求に応じて所定の処理を実行する複数の処理実行部と、前記処理実行部の各々が実行する処理に関する処理情報を記憶する記憶部と、前記記憶部に記憶された前記処理情報に基づいて、前記複数の処理実行部が実行する処理の前記プリンタドライバにおける実行順序を決定する決定部と、を有し、前記プリンタドライバは、前記決定部で決定された前記実行順序に従って、前記処理実行部に処理の実行を要求する要求部として前記情報処理装置を機能させる。
【発明の効果】
【０００８】
本発明の一実施形態によれば、複数の拡張機能を追加可能なプリンタドライバにおいて、追加した拡張機能により、望ましい順序で処理が行われるようにすることができる。
【図面の簡単な説明】
【０００９】
【図１】一実施形態に係る情報処理システムの一例のシステム構成を示す図である。
【図２】一実施形態に係るクライアント装置及びサーバ装置の一例のハードウェア構成を示す図である。
【図３】一実施形態に係る画像形成装置の一例のハードウェア構成を示す図である。
【図４】クライアント装置の一例のソフトウェア構成を示す図である。
【図５】Ｖ４プリンタドライバ及びストアデバイスアプリがアクセス可能な記憶領域について説明するための図である。
【図６】一実施形態に係るクライアント装置の機能構成図である。
【図７】第１の実施形態に係る描画部、及び連携プログラムの機能構成図である。
【図８】第１の実施形態に係る処理情報の例を示す図である。
【図９】第１の実施形態に係る描画部の処理の例を示すフローチャートである。
【図１０】第１の実施形態に係る実行順序の決定処理の例を示すフローチャートである。
【図１１】第１の実施形態に係る処理の実行順序の例を示す図である。
【図１２】第１の実施形態に係る要求処理の例を示すシーケンス図である。
【図１３】第２の実施形態に係る描画部、ＵＩ部及び連携プログラムの機能構成図である。
【図１４】第２の実施形態に係る設定画面の例を示す図である。
【図１５】第２の実施形態に係る印刷処理の例を示すシーケンス図である。
【図１６】第２の実施形態に係る要求処理の例を示すフローチャートである。
【図１７】第３の実施形態に係る描画部、及び連携プログラムの機能構成図である。
【図１８】第３の実施形態に係る連携プログラムのインストール処理の例を示すフローチャートである。
【図１９】第３の実施形態に係る処理情報の例を示す図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
【００１１】
＜システム構成＞
まず、本実施形態に係る情報処理システム１のシステム構成について、図１を用いて説明する。図１は、一実施形態に係る情報処理システム１の一例のシステム構成を示す図である。
【００１２】
図１に示すように、本実施形態に係る情報処理システム１は、１台以上のクライアント装置１０と、１台以上の画像形成装置２０と、サーバ装置３０とを含み、これら装置はＬＡＮ（Local Area Network）等のネットワークＮを介して互いに通信可能に接続されている。
【００１３】
クライアント装置１０は、例えばＰＣ（パーソナルコンピュータ）、スマートフォン、タブレット端末等である。クライアント装置１０は、例えば、ユーザからの印刷指示を受け付けて、印刷対象データから印刷データを作成した上で、印刷データを画像形成装置２０に送信する。又は、クライアント装置１０は、例えば、ユーザからの印刷指示を受け付けて、印刷対象データをサーバ装置３０に送信する。
【００１４】
なお、印刷対象データとは、例えば、画像データや文書データ等の印刷可能な電子データである。また、印刷データとは、例えば、印刷対象データを、画像形成装置２０が印刷可能なＰＤＬ（Page Description Language）形式に変換した電子データである。
【００１５】
画像形成装置２０は、例えばプリンタ、印刷機能を備えたＭＦＰ（Multifunction Peripheral）等である。画像形成装置２０は、クライアント装置１０又はサーバ装置３０から受信した印刷データを印刷する。
【００１６】
サーバ装置３０は、例えばＰＣ等である。サーバ装置３０は、例えば、クライアント装置１０から受信した印刷対象データから印刷データを作成して、作成した印刷データを画像形成装置２０に送信する。
【００１７】
また、サーバ装置３０は、ファイルサーバとして機能しても良い。すなわち、サーバ装置３０は、例えば、クライアント装置１０から受信した印刷データを記憶しておき、画像形成装置２０からの要求に応じて、記憶した印刷データを要求元の画像形成装置２０に送信しても良い。
【００１８】
なお、以降では、１台以上のクライアント装置１０について、各々を区別するときは、「クライアント装置１０−１」、「クライアント装置１０−２」等と表す。同様に、１台以上の画像形成装置２０について、各々を区別するときは、「画像形成装置２０−１」、「画像形成装置２０−２」等と表す。
【００１９】
＜ハードウェア構成＞
次に、本実施形態に係る情報処理システム１に含まれるクライアント装置１０、画像形成装置２０、及びサーバ装置３０のハードウェア構成について、図２及び図３を用いて説明する。
【００２０】
≪クライアント装置１０及びサーバ装置３０≫
図２は、一実施形態に係るクライアント装置１０及びサーバ装置３０の一例のハードウェア構成を示す図である。なお、クライアント装置１０及びサーバ装置３０は、同様のハードウェア構成を有しているため、以降では、クライアント装置１０のハードウェア構成について説明する。
【００２１】
図２に示すように、本実施形態に係るクライアント装置１０は、入力装置１０１と、表示装置１０２と、外部Ｉ／Ｆ１０３と、ＲＡＭ（Random Access Memory）１０４とを有する。また、クライアント装置１０は、ＲＯＭ（Read Only Memory）１０５と、ＣＰＵ（Central Processing Unit）１０６と、通信Ｉ／Ｆ１０７と、ＨＤＤ（Hard Disk Drive）１０８とを有する。これらのハードウェアは、バスＢで互いに接続されている。
【００２２】
入力装置１０１は、キーボードやマウス、タッチパネル等を含み、ユーザが各操作信号を入力するのに用いられる。表示装置１０２は、ディスプレイ等を含み、クライアント装置１０による処理結果を表示する。なお、入力装置１０１及び表示装置１０２の少なくとも一方は、必要なときにクライアント装置１０に接続して利用する形態であっても良い。
【００２３】
通信Ｉ／Ｆ１０７は、クライアント装置１０をネットワークＮに接続するインタフェースである。クライアント装置１０は、通信Ｉ／Ｆ１０７を介して通信を行うことができる。
【００２４】
ＨＤＤ１０８は、プログラムやデータを格納している不揮発性の記憶装置である。ＨＤＤ１０８に格納されるプログラムやデータには、クライアント装置１０全体を制御する基本ソフトウェアであるＯＳ（Operating System）、ＯＳ上において各種機能を提供するアプリケーションソフトウェア等がある。
【００２５】
なお、クライアント装置１０は、ＨＤＤ１０８に代え、記憶媒体としてフラッシュメモリを用いるドライブ装置（例えばソリッドステートドライブ：ＳＳＤ）を有して良い。また、ＨＤＤ１０８は、格納しているプログラムやデータを所定のファイルシステムやＤＢにより管理している。
【００２６】
外部Ｉ／Ｆ１０３は、外部装置とのインタフェースである。外部装置には、記録媒体１０３ａ等がある。クライアント装置１０は、外部Ｉ／Ｆ１０３を介して記録媒体１０３ａの読み取りや書き込みを行うことができる。記録媒体１０３ａには、フレキシブルディスク、ＣＤ、ＤＶＤ、ＳＤメモリカード、ＵＳＢメモリ等がある。
【００２７】
ＲＯＭ１０５は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。ＲＯＭ１０５には、ＯＳ設定、ネットワーク設定等のプログラムやデータ、及びクライアント装置１０の起動時に実行されるＢＩＯＳ（Basic Input/Output System）が格納されている。ＲＡＭ１０４は、プログラムやデータを一時保持する揮発性の半導体メモリである。
【００２８】
ＣＰＵ１０６は、ＲＯＭ１０５やＨＤＤ１０８等の記憶装置からプログラムやデータをＲＡＭ１０４上に読み出し、当該プログラムやデータに基づく処理を実行することで、クライアント装置１０全体の制御やその他の機能を実現する演算装置である。
【００２９】
本実施形態に係るクライアント装置１０及びサーバ装置３０は、図２に示すハードウェア構成を有することにより、後述するような各種処理を実現できる。
【００３０】
≪画像形成装置２０≫
図３は、一実施形態に係る画像形成装置２０の一例のハードウェア構成を示す図である。
【００３１】
図３に示すように、本実施形態に係る画像形成装置２０は、コントローラ２０１と、操作パネル２０２と、外部Ｉ／Ｆ２０３と、通信Ｉ／Ｆ２０４と、プロッタ２０５を有する。また、コントローラ２０１は、ＣＰＵ２１１と、ＲＡＭ２２１と、ＲＯＭ２３１と、ＮＶＲＡＭ２４１と、ＨＤＤ２５１とを有する。
【００３２】
ＲＯＭ２３１は、各種プログラムやデータを格納している不揮発性の半導体メモリである。ＲＡＭ２２１は、プログラムやデータを一時保持する揮発性の半導体メモリである。ＮＶＲＡＭ２４１は、例えば設定情報等を格納している。また、ＨＤＤ２５１は、各種プログラムやデータを格納している不揮発性の記憶装置である。
【００３３】
ＣＰＵ２１１は、ＲＯＭ２３１やＮＶＲＡＭ２４１、ＨＤＤ２５１等からプログラムやデータ、設定情報等をＲＡＭ２２１上に読み出し、当該プログラムやデータに基づく処理を実行することで、画像形成装置２０全体の制御やその他の機能を実現する演算装置である。
【００３４】
操作パネル２０２は、ユーザからの入力を受け付ける入力部と、表示を行う表示部とを有する。外部Ｉ／Ｆ２０３は、外部装置とのインタフェースである。外部装置には、記録媒体２０３ａ等がある。画像形成装置２０は、外部Ｉ／Ｆ２０３を介して記録媒体２０３ａの読み取りや書き込みを行うことができる。なお、記録媒体２０３ａには、例えば、ＩＣカード、フレキシブルディスク、ＣＤ、ＤＶＤ、ＳＤメモリカード、ＵＳＢメモリ等がある。
【００３５】
通信Ｉ／Ｆ２０４は、画像形成装置２０をネットワークＮに接続するインタフェースである。画像形成装置２０は、通信Ｉ／Ｆ２０４を介して通信を行うことができる。プロッタ２０５は、印刷データを印刷する印刷装置である。
【００３６】
本実施形態に係る画像形成装置２０は、図３に示すハードウェア構成を有することにより、後述するような各種処理を実現できる。
【００３７】
＜クライアント装置１０のソフトウェア構成＞
次に、本実施形態に係るクライアント装置１０のソフトウェア構成について、図４を用いて説明する。図４は、クライアント装置１０の一例のソフトウェア構成を示す図である。
【００３８】
図４に示すように、本実施形態に係るクライアント装置１０は、アプリケーション３０１と、ＯＳ３０２と、プリンタドライバ３０３と、ストアデバイスアプリ３０４とを有する。
【００３９】
アプリケーション３０１は、例えば文書作成ソフト、画像閲覧・編集ソフト、ブラウザ等、ユーザの印刷指示に応じて、ＯＳ３０２に印刷の指示（要求）を行うことができるアプリケーションソフトである。アプリケーション３０１には、ストアアプリ３１１と、デスクトップアプリ３２１とが含まれる。
【００４０】
ストアアプリ３１１は、例えば、Ｗｉｎｄｏｗｓ（登録商標）８／ＷｉｎｄｏｗｓＲＴ及びそれ以降のバージョンのＷｉｎｄｏｗｓＯＳにアプリケーションを提供する「Ｗｉｎｄｏｗｓストア」から、入手可能なアプリケーションである。ストアアプリ３１１では、「ストアアプリ  ＵＩ」が用いられる。なお、Ｗｉｎｄｏｗｓ８及びＷｉｎｄｏｗｓ８．１では、ＯＳ３０２によって提供される「Ｍｏｄｅｒｎ  ＵＩ」又は「Ｍｅｔｒｏ  ＵＩ」とも称されるＵＩからストアアプリ３１１が呼び出される。
【００４１】
一方、デスクトップアプリ３２１は、例えば、Ｗｉｎｄｏｗｓ７以前のバージョンのＷｉｎｄｏｗｓＯＳにおいても使用可能なアプリケーションである。
【００４２】
ＯＳ３０２は、Ｗｉｎｄｏｗｓ８／ＷｉｎｄｏｗｓＲＴ及びそれ以降のバージョンのＷｉｎｄｏｗｓＯＳである。
【００４３】
プリンタドライバ３０３は、例えば、Ｖｅｒｓｉｏｎ４プリンタドライバ（以降では、「Ｖ４プリンタドライバ」と表す。）である。Ｖ４プリンタドライバとは、Ｗｉｎｄｏｗｓ８／ＷｉｎｄｏｗｓＲＴから採用されたアーキテクチャに基づくプリンタドライバである。以降では、プリンタドライバ３０３を「Ｖ４プリンタドライバ３０３」とも表す。
【００４４】
なお、Ｗｉｎｄｏｗｓ８以降のＷｉｎｄｏｗｓＯＳでは、Ｗｉｎｄｏｗｓ２０００からＷｉｎｄｏｗｓ７で使用されていたＶｅｒｓｉｏｎ３プリンタドライバ（以降では、「Ｖ３プリンタドライバ」と表す。）に加えて、Ｖ４プリンタドライバも使用可能である。
【００４５】
プリンタドライバ３０３は、拡張設定部３１３と、設定制御部３２３と、描画部３３３とを含む。
【００４６】
拡張設定部３１３は、プリンタ拡張とも称され、デスクトップアプリ３２１から印刷を行う場合に、ベンダ独自の印刷設定画面を表示する。
【００４７】
設定制御部３２３は、禁則スクリプトとも称され、例えば、印刷設定の組み合わせが正当であるか否かを検証する。拡張設定部３１３は、例えば、設定制御部３２３により正当でないと検証された印刷設定の組み合わせを非表示にすること等ができる。
【００４８】
また、設定制御部３２３は、アプリケーション３０１やＯＳ３０２等からの要求に応じて、プリンタドライバ３０３が設定可能な機能の情報を示すＰｒｉｎｔＣａｐａｂｉｌｉｔｙを返信する。更に、設定制御部３２３は、アプリケーション３０１やＯＳ３０２等からの要求に応じて、プリンタドライバ３０３に設定されている各種機能の設定値をＤｅｖｍｏｄｅＰｒｏｐｅｒｔｙＢａｇから取得し、取得した設定値を示すＰｒｉｎｔＴｉｃｋｅｔを返信する。また、設定制御部３２３は、ＰｒｉｎｔＴｉｃｋｅｔで示された設定値をＤｅｖｍｏｄｅＰｒｏｐｅｒｔｙＢａｇに保存する。
【００４９】
なお、ＯＳ３０２に返信されたＰｒｉｎｔＣａｐａｂｉｌｉｔｙやＰｒｉｎｔＴｉｃｋｅｔは、例えば、拡張設定部３１３が表示する印刷設定画面における各機能の現在値の表示、選択肢の表示等に利用される。
【００５０】
描画部３３３は、アプリケーション３０１において印刷指示が行われた印刷対象データから印刷データを作成する。
【００５１】
ストアデバイスアプリ３０４は、ストアアプリ３１１から印刷を行う場合に、ベンダ独自の印刷設定画面を表示する。なお、ストアデバイスアプリ３０４は、ストアアプリ３１１と同様に、「Ｗｉｎｄｏｗｓストア」から入手可能なアプリケーションである。
【００５２】
デスクトップアプリ３２１から印刷を行う場合、プリンタドライバ３０３は、拡張設定部３１３により表示された印刷設定画面で設定された設定内容に基づいて、印刷データを作成することができる。一方で、ストアアプリ３１１から印刷を行う場合、プリンタドライバ３０３は、ストアデバイスアプリ３０４により表示された印刷設定画面で設定された設定内容に基づいて、印刷データを作成することができる。
【００５３】
拡張設定部３１３及びストアデバイスアプリ３０４は、ベンダ独自の印刷設定画面を表示するＵＩ部３０５を構成する。
【００５４】
＜Ｖ４プリンタドライバ３０３及びストアデバイスアプリ３０４がアクセス可能な記憶領域＞
次に、Ｖ４プリンタドライバ３０３及びストアデバイスアプリ３０４がアクセス可能な記憶領域について、図５を用いて説明する。図５は、Ｖ４プリンタドライバ３０３及びストアデバイスアプリ３０４がアクセス可能な記憶領域について説明するための図である。
【００５５】
図５に示すように、拡張設定部３１３、設定制御部３２３、描画部３３３、及びストアデバイスアプリ３０４は、ＰｒｏｐｅｒｔｙＢａｇ４００と呼ばれる記憶領域にアクセスすることができる。なお、このような記憶領域へのアクセスは、ＯＳ３０２によって提供されるＡＰＩ（Application Programming Interface）を用いて行うことができる。
【００５６】
図５に示すように、ＰｒｏｐｅｒｔｙＢａｇ４００には、ＤｒｉｖｅｒＰｒｏｐｅｒｔｙＢａｇ４１０と、ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ４２０と、ＵｓｅｒＰｒｏｐｅｒｔｙＢａｇ４３０とが含まれる。
【００５７】
ＤｒｉｖｅｒＰｒｏｐｅｒｔｙＢａｇ４１０は、Ｖ４プリンタドライバ３０３を作成するときに決定された構成情報等を記憶する記憶領域である。拡張設定部３１３、設定制御部３２３、描画部３３３、及びストアデバイスアプリ３０４は、ＤｒｉｖｅｒＰｒｏｐｅｒｔｙＢａｇ４１０から各種情報の読み出しが可能である。一方で、拡張設定部３１３、設定制御部３２３、描画部３３３、及びストアデバイスアプリ３０４は、ＤｒｉｖｅｒＰｒｏｐｅｒｔｙＢａｇ４１０に対して、情報の書き込みを行うことはできない。
【００５８】
ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ４２０は、論理プリンタ（プリンタアイコン）毎の設定情報等を記憶する記憶領域である。拡張設定部３１３及びストアデバイスアプリ３０４は、ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ４２０に対して、各種情報の読み出し及び書き込みが可能である。また、設定制御部３２３及び描画部３３３は、ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ４２０に対して、各種情報の読み出しが可能である。
【００５９】
なお、論理プリンタとは、例えば、ＯＳ３０２のプリンタフォルダ等にプリンタアイコンとして表示される仮想的なプリンタである。例えば、クライアント装置１０の利用者は、１つの画像形成装置２０に対して、設定情報（例えば、用紙サイズや向き、印刷品質等）が異なる複数の論理プリンタを作成することができる。
【００６０】
ＵｓｅｒＰｒｏｐｅｒｔｙＢａｇ４３０は、論理プリンタ毎に、ユーザ毎の設定情報等を記憶する記憶領域である。拡張設定部３１３、設定制御部３２３、及びストアデバイスアプリ３０４は、ＵｓｅｒＰｒｏｐｅｒｔｙＢａｇ４３０に対して、各種情報の読み出し及び書き込みが可能である。
【００６１】
また、拡張設定部３１３及び描画部３３３は、更に、独自記憶領域５００に対して、各種情報の読み出し及び書き込みが可能である。
【００６２】
独自記憶領域５００は、例えばレジストリやファイル等を用いて実現され、ＰｒｏｐｅｒｔｙＢａｇ４００とは異なる記憶領域である。独自記憶領域５００は、Ｖ４プリンタドライバ３０３を提供するベンダ等によって定義される。
【００６３】
ストアデバイスアプリ３０４は、ＯＳ３０２の課す制約により、ＰｒｏｐｅｒｔｙＢａｇ４００以外の記憶領域に対してアクセスすることはできない。また、設定制御部３２３は、上述したＤｅｖｍｏｄｅＰｒｏｐｅｒｔｙＢａｇ及びＰｒｏｐｅｒｔｙＢａｇ４００以外の記憶領域に対してアクセスすることはできない。すなわち、ストアデバイスアプリ３０４及び設定制御部３２３は、独自記憶領域５００に対して、各種情報の読み出しや書き込み等を行うことができない。
【００６４】
このことは、ストアアプリ３１１に課されている制約と同様であり、例えば、ストアデバイスアプリ３０４及び設定制御部３２３が、ＯＳ３０２が使用するレジストリ等を変更し、ＯＳ３０２の動作に悪影響を与えることを防ぐためである。このような技術は、「サンドボックス」等と称されている。
【００６５】
＜機能構成＞
（クライアント装置の機能構成）
図６は、一実施形態に係るクライアント装置の機能構成図である。
【００６６】
クライアント装置（情報処理装置）１０は、画像形成装置（画像処理装置）２０、サーバ装置３０とネットワーク等を介して接続され、画像形成装置２０に印刷（画像処理）の要求を行うプリンタドライバを実行する情報処理装置である。
【００６７】
クライアント装置１０は、例えば、図２のＣＰＵ１０６でプログラムを実行することにより、アプリケーション３０１、ＯＳ３０２、ＵＩ部３０５、描画部３３３、ランゲージモニタ６０１、ポートモニタ６０２、処理情報記憶部６０３、１つ以上の連携プログラム６０４、及び複数の処理実行部６０５等を実現している。このうち、アプリケーション３０１、ＯＳ３０２、ＵＩ部３０５、及び描画部３３３は、図４に示すアプリケーション３０１、ＯＳ３０２、ＵＩ部３０５、及び描画部３３３に対応している。
【００６８】
ランゲージモニタ６０１は、例えば、図２のＣＰＵ１０６等で実行されるＤＬＬ（Dynamic Link Library）等によって実現され、双方向通信に対応する画像形成装置２０から、例えば、印刷状態等を示す状態情報を受信する。
【００６９】
ポートモニタ６０２は、例えば、図２のＣＰＵ１０６等で実行されるＤＬＬ等によって実現され、プリンタポートの種類（ＵＳＢ、ＴＣＰ／ＩＰ等）に合わせて、印刷データの出力処理を行う。
【００７０】
連携プログラム６０４は、例えば、図２のＣＰＵ１０６等で実行され、クライアント装置１０で実行されるプリンタドライバ３０３と連携して、例えば、印刷データ（描画データ）の変更処理、読出処理、転送処理等の様々な拡張機能を提供するプログラムである。
【００７１】
連携プログラム６０４は、例えば、クライアント装置１０にインストールされたとき等に、クライアント装置１０のプログラム領域６０６に複数の処理実行部６０５を配置（コピー）する。また、連携プログラム６０４は、複数の処理実行部６０５の各々が実行する処理に関する処理情報を、処理情報記憶部６０３に記憶する。
【００７２】
処理実行部６０５は、例えば、図２のＣＰＵ１０６で実行されるＤＬＬ等によって実現されるプラグインであり、描画部３３３等からの制御に従って、例えば、印刷データの変更処理、読出処理、又は転送処理等の様々な拡張機能を実行する。
【００７３】
処理情報記憶部（記憶部）６０３は、例えば、図５の独自記憶領域５００や、ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ４２０等によって実現され、複数の処理実行部６０５の各々が実行する処理に関する情報である処理情報を記憶する。独自記憶領域５００の一例としては、例えば、通常のＷｉｎｄｏｗｓアプリケーションで使用されるレジストリＨＫＬＭ（HKEY_LOCAL_MACHINE）等が用いられる。
【００７４】
続いて、いくつかの実施形態を例示して、クライアント装置１０の具体的な機能構成と、処理の流れについて説明する。
【００７５】
［第１の実施形態］
図７は、第１の実施形態に係る描画部、及び連携プログラムの機能構成図である。
【００７６】
（描画部の機能構成）
描画部３３３は、例えば、図２のＣＰＵ１０６で実行されるプログラム（プリンタドライバ３０３）によって実現され、設定情報取得部７１１、描画データ生成部７１２、処理情報取得部７１３、決定部７１４、及び要求部７１５等を含む。
【００７７】
設定情報取得部７１１は、例えば、アプリケーション３０１から渡されるＰｒｉｎｔＴｉｃｋｅｔや、図５のＰｒｏｐｅｒｔｙＢａｇ４００に等に含まれる印刷設定情報を取得する。
【００７８】
描画データ生成部７１２は、設定情報取得部７１１が取得した印刷設定情報に基づいて、印刷（画像処理）の対象となるデータを、画像形成装置２０で処理可能な描画データ（印刷データ）に変換する。
【００７９】
処理情報取得部７１３は、処理情報記憶部６０３から、プリンタドライバ３０３に対応する処理情報７０１を取得する。なお、処理情報７０１の例については、図８を用いて後述する。
【００８０】
決定部７１４は、処理情報取得部７１３が取得した処理情報７０１に基づいて、複数の処理実行部６０５−１〜６０５−３が実行する処理のプリンタドライバ３０３における実行順序を決定する。なお、決定部７１４による実行順序の決定処理の例については、図１０を用いて後述する。
【００８１】
要求部７１５は、決定部７１４で決定された処理の実行順序に従って、複数の処理実行部６０５−１〜６０５−３に処理の実行を要求する。なお、要求部７１５による要求処理の例については、図１２を用いて後述する。
【００８２】
（連携プログラムの機能構成）
連携プログラム６０４は、例えば、図２のＣＰＵ１０６で実行されるプログラムによって実現され、処理情報保存部７２１、配置部７２２、及び処理部７２３等を含む。
【００８３】
配置部７２２は、例えば、連携プログラム６０４がクライアント装置１０にインストールされたとき等に、様々な拡張機能を実行する複数の処理実行部６０５−１〜６０５−３を、クライアント装置のプログラム領域６０６に配置する。例えば、配置部７２２は、クライアント装置１０のプログラム領域６０６に、複数の処理実行部６０５−１〜６０５−３をコピーして、プリンタドライバ３０３の描画部３３３からアクセスできるようにする。
【００８４】
なお、以下の説明の中で、複数の処理実行部６０５−１〜６０５−３のうち、任意の処理実行部６０５を示す場合、「処理実行部６０５」を用いる。また、図に示す処理実行部６０５の数は一例であり、処理実行部６０５の数は２つ以上の他の数であっても良い。
【００８５】
処理情報保存部７２１は、配置部７２２がプログラム領域６０６に配置した複数の処理実行部６０５−１〜６０５−３の各々が実行する処理に関する情報である処理情報７０１を、処理情報記憶部６０３に記憶する。
【００８６】
処理部７２３は、連携プログラム６０４で実行する様々な処理、例えば、連携プログラム６０４の設定処理、ログの収集処理、他の連携プログラムとの調整処理等を実行する。
【００８７】
（処理実行部の機能構成）
処理実行部６０５は、例えば、図２のＣＰＵ１０６で実行されるプログラム（ＤＬＬ等）によって実現され、処理制御部７３１、及び処理部７３２等を含む。
【００８８】
処理部７３２は、例えば、印刷データ（描画データ）に変更を加える変更処理（第１の処理）、印刷データから情報を読出する読出処理（第２の処理）、及び印刷データを転送する転送処理（第３の処理）のうち、少なくとも１つの処理を実行する。
【００８９】
処理制御部７３１は、描画部３３３からの処理要求を受付し、受付した処理要求に従って、処理部７３２に処理を実行させる。
【００９０】
（処理実行部が実行する処理の例）
処理実行部６０５が実行する処理の例を表１に示す。
【００９１】
【表１】
2018084978.tif 000003
表１に示すように、処理実行部６０５が実行する処理は、例えば、変更（Modifi）、読出（Read）、又は転送（Transfer）の３つの処理種別に分けられる。
【００９２】
処理種別が「変更（Modifi）」の処理（以下、変更処理と呼ぶ）は、処理内容として印刷データの変更を行う処理、例えば、カラー→モノクロ変換処理、認証処理等が含まれる。[0]
【００９３】
処理種別が「読出（Read）」の処理（以下、読出処理と呼ぶ）は、処理内容として印刷データの参照（情報の取得）を行う処理、例えば、ログ収集処理、課金予測処理、プレビュー処理等が含まれる。
【００９４】
処理種別「転送（Transfer）」の処理（以下、転送処理と呼ぶ）は、処理内容として、印刷データの転送を行う処理、例えば、共有フォルダへの保存処理、クラウドへのアップロード処理、プリンタドライバ３０３への返却処理等が含まれる。
【００９５】
（処理情報の例）
図８は、第１の実施形態に係る処理情報の例を示す図である。図８（ａ）は、変更処理の処理情報８１０の一例のイメージを示している。変更処理の処理情報８１０には、処理実行部６０５の名前を示す情報８１１、処理実行部６０５が格納されたパスを示す情報８１２、及び処理実行部６０５の処理種別を示す情報８１３等が含まれている。図８（ａ）に示すように、変更処理の処理情報８１０の処理種別を示す情報８１３には、「modify」の文字列が含まれる。
【００９６】
また、図８（ｂ）は、読出処理の処理情報８２０の一例のイメージが示されており、読出処理の処理情報８２０の処理種別を示す情報には、「read」の文字列が含まれている。同様に、図８（ｃ）は、転送処理の処理情報８３０の一例のイメージが示されており、転送処理の処理情報８３０の処理種別を示す情報には、「transfer」の文字が含まれている。
【００９７】
なお、上記の説明は、プリンタドライバ３０３がＶ４プリンタドライバであるものとして説明を行ったが、これらの構成は、Ｖ４プリンタドライバに限られず、Ｖ３プリンタドライバでも同様の構成とすることで、本発明の効果が得られる。プリンタドライバ３０３がＶ３プリンタドライバである場合、図７の処理情報記憶部６０３として、レジストリＨＫＬＭを用いることができる。
【００９８】
＜処理の流れ＞
次に、第１の実施形態に係る情報処理方法の処理の流れについて説明する。
【００９９】
（描画部の処理）
図９は、第１の実施形態に係る描画部の処理の例を示すフローチャートである。この処理は、プリンタドライバ３０３の描画部３３３が、アプリケーション３０１等から印刷を要求する描画命令を受付したときに実行する処理の例を示している。
【０１００】
ステップＳ９０１において、描画部３３３は、アプリケーション３０１等から描画命令を受付すると、ステップＳ９０２以降の処理を実行する。
【０１０１】
ステップＳ９０２において、描画部３３３の設定情報取得部７１１は、印刷設定情報を取得する。例えば、設定情報取得部７１１は、アプリケーション３０１から渡される印刷の設定情報であるＰｒｉｎｔＴｉｃｋｅｔ等から印刷設定情報を取得する。
【０１０２】
ステップＳ９０３において、描画部３３３の描画データ生成部７１２は、設定情報取得部７１１が取得した印刷設定情報に従って、印刷の対象となるデータを、画像形成装置２０で印刷可能な印刷データ（描画データ）に変換する。
【０１０３】
ステップＳ９０４において、描画部３３３の処理情報取得部７１３は、処理情報記憶部６０３から、プリンタドライバ３０３に対応する処理情報７０１を取得する。
【０１０４】
なお、ステップＳ９０４〜Ｓ９０６の処理は、ステップＳ９０３の処理と並行して行われるものであっても良い。
【０１０５】
ステップＳ９０５において、描画部３３３は、処理情報取得部７１３が、処理情報７０１を取得できたか否か（処理情報７０１があるか否か）に応じて、処理を分岐させる。
【０１０６】
処理情報取得部７１３が、処理情報記憶部６０３からプリンタドライバ３０３に対応する処理情報７０１を取得した場合、すなわち、プリンタドライバ３０３に対応する処理情報７０１がある場合、描画部３３３は処理をステップＳ９０６に移行させる。
【０１０７】
一方、処理情報取得部７１３が、処理情報記憶部６０３からプリンタドライバ３０３に対応する処理情報７０１を取得できない場合、すなわち、プリンタドライバ３０３に対応する処理情報７０１がない場合、描画部３３３は処理をステップＳ９０９に移行させる。
【０１０８】
ステップＳ９０６に移行すると、描画部３３３の決定部７１４は、処理情報取得部７１３が取得した処理情報７０１に基づいて、プリンタドライバ３０３における、複数の処理実行部６０５が実行する処理の実行順序を決定する。
【０１０９】
ステップＳ９０７において、描画部３３３の要求部７１５は、決定部７１４で決定された実行順序に従って、複数の処理実行部６０５に処理の実行を要求する。これにより、印刷データに対する様々な拡張機能の実行が実現される。
【０１１０】
ステップＳ９０８において、描画部３３３は、印刷を実行する印刷データ（描画データ）があるかを判断する。
【０１１１】
例えば、ステップＳ９０７において、処理実行部６０５により、印刷データが描画部３３３に返却されない場合、例えば、処理実行部６０５により、印刷データがサーバ装置３０に転送された場合、描画部３３３は、印刷を実行する印刷データがないと判断する。この場合、描画部３３３は、処理を終了させる。
【０１１２】
一方、ステップＳ９０７において、処理実行部６０５により、印刷データが描画部３３３に返却された場合、描画部３３３は、印刷を実行する印刷データがあると判断する。この場合、描画部３３３は、ステップＳ９０９において、印刷データ（描画データ）を画像形成装置２０に出力する。
【０１１３】
上記の処理により、プリンタドライバ３０３の描画部３３３は、複数の処理実行部６０５を用いて、印刷データに様々な処理（拡張機能）を実行させることができるようになる。
【０１１４】
（実行順序の決定処理）
決定部７１４は、例えば、表２に示すような実行順序、及び実行方法の情報に従って、複数の処理実行部６０５が実行する処理の実行順序を決定する。
【０１１５】
【表２】
2018084978.tif 000004
表２の例では、変更処理の実行順序は、読出し処理及び転送処理より前であることが定められている。これは、読出し処理では、変更処理を実行した後の情報を読み出しする必要があり、転送処理では、変更処理を実行した後の印刷データを転送する必要があるためである。また、変更処理の実行方法は直列に実行すること、すなわち、複数の処理を順次に実行することが定められている。これは、印刷データに全ての変更を反映させるためには、印刷データに対して順次に処理を実行する必要があるためである。
【０１１６】
また、表２の例では、読出処理の実行順序は、転送処理より前であり、変更処理より後であることが定められている。これは、読出し処理は、変更処理を実行した後の情報を読み出しする必要があり、転送処理が行われると印刷データが削除されてしまう恐れがあるためである。また、読出し処理の実行方法は、並列又は直列に実行すること、すなわち、複数の処理を並行して処理できることが定められている。これは、読出処理では、印刷データが変更されないので、複数の情報を並行して読出しても問題がないためである。
【０１１７】
さらに、表２の例では、転送処理の実行順序は、変更処理及び読出処理より後であることが定められている。これは、転送処理では、変更、読出が行われた印刷データを転送する必要があるためである。また、転送処理の実行方法は、並列又は直列に実行すること、すなわち、複数の処理を並行して処理できることが定められている。これは、転送処理では、印刷データの内容が変更されないので、複数の転送先に並行して印刷データを送信しても問題がないためである。
【０１１８】
図１０は、第１の実施形態に係る実行順序の決定処理の例を示すフローチャートである。この処理は、図９のステップＳ９０６において、描画部３３３の決定部７１４が、表２に示す実行順序、及び実行方法の情報に従って、複数の処理実行部６０５が実行する処理の実行順序を決定する処理の例を示している。
【０１１９】
ステップＳ１００１において、描画部３３３の決定部７１４は、処理情報取得部７１３が取得した処理情報７０１の中に、変更処理があるかを判断する。例えば、決定部７１４は、図８（ａ）に示すように、処理種別を示す情報８１３に「modify」の文字列を含む変更処理の処理情報８１０があるかを判断する。
【０１２０】
変更処理がない場合、決定部７１４は、処理をステップＳ１００３に移行させる。一方、変更処理がある場合、決定部７１４は、処理をステップＳ１００２に移行させる。
【０１２１】
ステップＳ１００２に移行すると、決定部７１４は、処理情報取得部７１３が取得した処理情報７０１に含まれる変更処理を、他の処理種別（読出処理、転送処理）より前に実行するように実行順序を決定する。また、決定部７１４は、複数の変更処理がある場合、複数の変更処理を直列に（順次に）実行するように、複数の変更処理の実行順序を決定する。なお、複数の変更処理の実行順序は、一例として、処理情報７０１に記載された順序に従って決定する。
【０１２２】
ステップＳ１００３に移行すると、描画部３３３の決定部７１４は、処理情報取得部７１３が取得した処理情報７０１の中に、読出処理があるかを判断する。例えば、決定部７１４は、図８（ｂ）に示すように、処理種別を示す情報に「read」の文字列を含む読出処理の処理情報８２０があるかを判断する。
【０１２３】
読出処理がない場合、決定部７１４は、処理をステップＳ１００５に移行させる。一方、読出処理がある場合、決定部７１４は、処理をステップＳ１００４に移行させる。
【０１２４】
ステップＳ１００４に移行すると、決定部７１４は、処理情報取得部７１３が取得した処理情報７０１に含まれる読出処理を、変更処理の後に実行するように処理順序を決定する。また、決定部７１４は、複数の読出処理がある場合、複数の読出処理を並列又は直列に実行するように、複数の読出処理の実行順序を決定する。
【０１２５】
好ましくは、決定部７１４は、複数の読出処理がある場合、複数の読出処理を並列に（並行して）実行するように、複数の読出処理の実行順序を決定する。
【０１２６】
ステップＳ１００５に移行すると、描画部３３３の決定部７１４は、処理情報取得部７１３が取得した処理情報７０１の中に、転送処理があるかを判断する。例えば、決定部７１４は、図８（ｃ）に示すように、処理種別を示す情報に「transfer」の文字列を含む転送処理の処理情報８３０があるかを判断する。
【０１２７】
転送処理がない場合、決定部７１４は、処理を終了させる。一方、転送処理がある場合、決定部７１４は、処理をステップＳ１００６に移行させる。
【０１２８】
ステップＳ１００６に移行すると、決定部７１４は、処理情報取得部７１３が取得した処理情報７０１に含まれる転送処理を、他の処理種別の処理（変更処理、読出処理）の後に実行するように処理順序を決定する。また、決定部７１４は、複数の転送処理がある場合、複数の転送処理を並列又は直列に実行するように、複数の転送処理の実行順序を決定する。
【０１２９】
好ましくは、決定部７１４は、複数の転送処理がある場合、複数の転送処理を並列に（並行して）実行するように、複数の読出処理の実行順序を決定する。
【０１３０】
上記の処理により、複数の処理実行部６０５が実行する処理の実行順序が決定される。
【０１３１】
図１１は、第１の実施形態に係る処理の実行順序の例を示す図である。図１１（ａ）は、直列に実行する処理情報１１１０の一例のイメージを示している。図１１（ａ）に示されるように、直列に実行される処理情報（変更処理１１１２、１１１３）は、例えば、角括弧１１１１内にカンマ「，」を介して列記される。
【０１３２】
また、図１１（ｂ）は、並列に実行する処理情報１１２０の一例のイメージを示している。図１１（ｂ）に示されるように、並列に実行される処理情報（読出処理１１２２、１１２４）の各々は、角括弧１１２１、１１２３で閉じられて、カンマ「，」を介して列記される。
【０１３３】
決定部７１４は、例えば、このように、処理情報を直列、又は並列に列記することにより、実行順序が決定された処理情報を作成する。
【０１３４】
なお、図１０に示す処理は、決定部７１４による実行順序の決定処理の一例である。例えば、決定部７１４は、図１０のような処理の順番（変更→読出→転送）で処理の実行順序を決定することを前提に、１つの処理実行部６０５による処理の実行順序が決定した段階で、要求部７１５による処理実行部６０５の呼び出しを行うものであっても良い。
【０１３５】
この場合、変更処理の実行順序を決定する際には、決定部７１４は、前に変更処理の実行を要求した処理実行部６０５における変更処理が完了した後で、次に処理の実行を要求する処理実行部６０５を決定する。
【０１３６】
別の一例として、決定部７１４は、前に変更処理の実行を要求した処理実行部６０５における変更処理の完了を待たずに、次に変更処理の実行を要求する処理実行部６０５を決定するものであっても良い。この場合、要求部７１５は、前に変更処理の実行を要求した処理実行部６０５における変更処理の完了を待ってから、次の処理実行部６０５に処理の実行を要求する。
【０１３７】
また、読出処理の実行順序を決定する際には、決定部７１４は、前に読出処理の実行を要求した処理実行部６０５における読出処理の完了を待たずに、次に読出処理の実行を要求する処理実行部６０５を決定する。
【０１３８】
さらに、転送処理の実行順序を決定する際には、決定部７１４は、読出処理の実行順序の決定の際と同様に、前に転送処理の実行を要求した処理実行部６０５における転送処理の完了を待たずに、次に転送処理の実行を要求する処理実行部６０５を決定する。
【０１３９】
（要求処理）
図１２は、第１の実施形態に係る要求処理の例を示すシーケンス図である。この処理は、図９のステップＳ９０７において、要求部７１５が、決定部７１４によって決定された実行順序に従って、複数の処理実行部６０５−１〜６０５−６に処理の実行を要求する処理の例を示している。ここでは、一例として、変更処理、読出処理、及び転送処理が２つずつある場合の要求処理の例を示す。
【０１４０】
ステップＳ１２０１において、描画部３３３の決定部７１４は、例えば、図１０に示すような実行順序の決定処理を実行する。
【０１４１】
ステップＳ１２０２において、描画部３３３の要求部７１５は、決定部７１４によって決定された実行順序に従って、処理実行部６０５−１に変更処理１（例えば、カラー→モノクロ変換等）の実行を要求する処理要求を送信する。この処理要求には、描画データ生成部７１２によって生成された描画データ（以下、描画データＡと呼ぶ）が含まれる。
【０１４２】
ステップＳ１２０３において、処理実行部６０５−１は、処理要求に従って、描画データＡに変更処理１を実行し、変更処理１が実行された描画データ（以下、描画データＢと呼ぶ）を生成する。
【０１４３】
ステップＳ１２０４において、処理実行部６０５−１は、変更処理１が完了したことを示す完了通知を、描画部３３３に返信する。この完了通知には、例えば、描画データＢが含まれる。
【０１４４】
ステップＳ１２０５において、描画部３３３の要求部７１５は、決定部７１４によって決定された実行順序に従って、処理実行部６０５−２に変更処理２（例えば、ユーザ名のマスク処理等）の実行を要求する処理要求を送信する。この処理要求には、変更処理１が実行された描画データＢが含まれる。
【０１４５】
ステップＳ１２０６において、処理実行部６０５−２は、処理要求に従って、描画データＢに変更処理２を実行し、変更処理１、及び変更処理２が実行された描画データ（以下、描画データＣと呼ぶ）を生成する。
【０１４６】
ステップＳ１２０７において、処理実行部６０５−２は、変更処理２が完了したことを示す完了通知を、描画部３３３に返信する。この完了通知には、例えば、描画データＣが含まれる。
【０１４７】
このように、要求部７１５は、変更処理を実行する処理実行部６０５−１、６０５−２に順次に変更処理を要求し、変更処理１、及び変更処理２が実行された描画データＣを生成する。
【０１４８】
ステップＳ１２０８において、描画部３３３の要求部７１５は、決定部７１４によって決定された実行順序に従って、処理実行部６０５−３に読出処理１（例えば、ログ収集処理等）の実行を要求する処理要求を送信する。この処理要求には、変更処理１、及び変更処理２が実行された描画データＣが含まれる。
【０１４９】
また、ステップＳ１２０９において、描画部３３３の要求部７１５は、ステップＳ１２０８の処理と並行して、処理実行部６０５−４に読出処理２（例えば、課金予測処理等）の実行を要求する処理要求を送信する。この処理要求には、変更処理１、及び変更処理２が実行された描画データＣが含まれる。
【０１５０】
ステップＳ１２１０において、処理実行部６０５−３は、読出処理１を実行する。また、ステップＳ１２１１において、処理実行部６０５−４は、ステップＳ１２１０の処理と並行して、読出処理２を実行する。
【０１５１】
このように、要求部７１５は、読出処理を実行する処理実行部６０５−３、６０５−４に、並行して読出し処理を要求する処理要求を送信することができる。
【０１５２】
また、要求部７１５は、読出処理を実行する処理実行部６０５−３、６０５−４に処理要求を送信した後、応答を待たずに、転送処理を実行する処理実行部６０５−５、６０５−６に、処理要求を送信することができる。
【０１５３】
ステップＳ１２１２において、描画部３３３の要求部７１５は、決定部７１４によって決定された実行順序に従って、処理実行部６０５−５に転送処理１（例えば、共有フォルダに保存した後、描画部３３３に返却する処理）の実行を要求する処理要求を送信する。この処理要求には、変更処理１、及び変更処理２が実行された描画データＣが含まれる。
【０１５４】
また、ステップＳ１２１３において、描画部３３３の要求部７１５は、ステップＳ１２１２の処理と並行して、処理実行部６０５−６に転送処理２（例えば、クラウドへのアップロード等）の実行を要求する処理要求を送信する。この処理要求には、変更処理１、及び変更処理２が実行された描画データＣが含まれる。
【０１５５】
ステップＳ１２１４において、処理実行部６０５−５は、転送処理１を実行する。また、ステップＳ１２１５において、処理実行部６０５−６は、ステップＳ１２１４の処理と並行して、転送処理２を実行する。
【０１５６】
ステップＳ１２１５において、処理実行部６０５−６は、描画データＣを含む完了通知を、描画部３３３に送信する。
【０１５７】
ステップＳ１２１７において、描画部３３３は、描画データＣを、ランゲージモニタ６０１、ポートモニタ６０２等を介して、画像形成装置２０に出力する。
【０１５８】
このように、描画部３３３の要求部７１５は、決定部７１４によって決定された実行順序に従って、複数の処理実行部６０５−１〜６０５−６に、処理の実行を要求する。
【０１５９】
本実施形態によれば、Ｖ４プリンタドライバ、又は同様の制限を有するプリンタドライバ３０３において、利用者の利便性を維持しつつ、プリンタドライバ３０３に独自の拡張機能を容易に追加することができるようになる。
【０１６０】
［第２の実施形態］
第２の実施形態では、複数の処理実行部６０５が実行する処理のうち、描画データ（印刷データ）に対して実行する処理を、利用者が選択できるようにする場合の例について説明する。
【０１６１】
＜機能構成＞
図１３は、第２の実施形態に係る描画部、ＵＩ部、及び連携プログラムの機能構成図である。図１３示す機能構成図には、図７に示す第１の実施形態の機能構成に加えて、ＵＩ部３０５が含まれている。なお、図１３に示す描画部３３３、連携プログラム６０４、複数の処理実行部６０５、及び処理情報記憶部６０３等の構成は、図７に示す第１の実施形態の構成と同様なので、ここでは第１の実施形態との相違点を中心に説明を行う。
【０１６２】
ＵＩ部３０５は、図４に示すＵＩ部３０５に対応しており、拡張機能設定部１３０１を有している。
【０１６３】
拡張機能設定部１３０１は、複数の処理実行部６０５が実行する処理のうち、描画データ生成部７１２が生成した描画データ（印刷データ）に対して実行する処理を選択する設定画面を提供する。
【０１６４】
拡張機能設定部１３０１は、例えば、論理プリンタのアイコンを右クリックしたときに表示されるコンテキストメニューに表示される操作の一覧等から呼び出され、例えば、図１４に示すような設定画面を、表示装置１０２に表示させる。
【０１６５】
図１４は、第２の実施形態に係る設定画面の例を示す図である。
【０１６６】
図１４（ａ）は、拡張機能設定部１３０１が表示する拡張機能の設定画面１４１０の例を示している。拡張機能の設定画面１４１０には、連携プログラム６０４に関する設定を行うための「ソリューション連携」ボタン１４１１が含まれる。利用者は、「ソリューション連携」ボタン１４１１を選択することにより、例えば、図１４（ｂ）に示すような拡張機能の選択画面１４２０を表示させることができる。
【０１６７】
図１４（ｂ）に示す拡張機能の選択画面１４２０には、複数の処理実行部６０５で実行可能な処理の一覧１４２１が表示され、利用者は各処理のチェックボックス１４２２により、処理を実行するか否かを選択することができる。図１４（ｂ）の例では、処理の名前が「データ監視」、「クラウド転送」の処理が実行され、「個人認証」の処理が実行されないように設定されている場合の例が示されている。
【０１６８】
このように、第２の実施形態では、利用者は、図１４（ｂ）に示すような拡張機能の選択画面１４２０を用いて、複数の処理実行部６０５が実行する処理のうち、実行する処理を選択することができる。
【０１６９】
＜処理の流れ＞
（印刷処理の例）
図１５は、第２の実施形態に係る印刷処理の例を示すシーケンス図である。この処理は、印刷処理の全体の流れを示している。なお、図１５の開始時点において、クライアント装置１０には１つ以上の連携プログラム６０４がインストールされているものとする。
【０１７０】
ステップＳ１５０１において、アプリケーション３０１は、ＯＳ３０２に対して印刷設定の確認を要求する。
【０１７１】
ステップＳ１５０２において、ＯＳ３０２は、例えば、ＶａｌｉｄａｔｅＰｒｉｎｔＴｉｃｋｅｔ等のＡＰＩを用いて、設定制御部（禁則スクリプト）３２３に、設定情報の取得を要求する。
【０１７２】
ステップＳ１５０３において、設定制御部３２３は、プリンタドライバ３０３に設定されている各種機能の設定値を取得し、取得した設定値を示すＰｒｉｎｔＴｉｃｋｅｔを生成する。
【０１７３】
ステップＳ１５０４において、設定制御部３２３は、生成したＰｒｉｎｔＴｉｃｋｅｔを含む完了通知をＯＳ３０２に通知する。
【０１７４】
ステップＳ１５０４において、ＯＳ３０２は、ＰｒｉｎｔＴｉｃｋｅｔを含む完了通知をアプリケーション３０１に通知する。
【０１７５】
上記の処理により、アプリケーション３０１は、プリンタドライバ３０３の現在の設定情報を取得することができる。また、アプリケーション３０１は、設定情報の設定（変更）を行う場合、ステップＳ１５０６〜Ｓ１５１４の処理を実行する。
【０１７６】
ステップＳ１５０６において、アプリケーション３０１は、印刷設定の表示をＯＳ３０２に要求する。
【０１７７】
ステップＳ１５０７において、ＯＳ３０２は、設定制御部３２３に設定情報の取得を要求する。
【０１７８】
ステップＳ１５０８において、設定制御部３２３は、ＰｒｉｎｔＴｉｃｋｅｔを生成し、ステップＳ１５０９において、ＰｒｉｎｔＴｉｃｋｅｔを含む完了通知を、ＯＳ３０２に通知する。
【０１７９】
ステップＳ１５１０において、ＯＳ３０２は、ＵＩ部３０５に、設定画面の表示を要求する起動要求を通知する。この起動要求には、ステップＳ１５０９で取得したＰｒｉｎｔＴｉｃｋｅｔが含まれる。
【０１８０】
ステップＳ１５１１において、ＵＩ部３０５は、設定情報の設定画面を表示させ、ステップＳ１５１２において、利用者による設定操作を受付する。例えば、ＵＩ部３０５の拡張機能設定部１３０１は、図１４（ｂ）に示すような拡張機能の選択画面１４２０に対する拡張機能の選択操作を受付する。
【０１８１】
このタイミングで拡張機能の設定操作を受付することにより、例えば、ジョブ毎に転送するか、通常の印刷を行うかを変更するか等、１つの論理プリンタでジョブ毎に処理を変更することが可能となる。
【０１８２】
ステップＳ１５１３において、ＵＩ部３０５は、設定情報の変更が反映されたＰｒｉｎｔＴｉｃｋｅｔを含む完了通知を、ＯＳ３０２に通知する。
【０１８３】
ステップＳ１５１４において、ＯＳ３０２は、設定情報の変更が反映されたＰｒｉｎｔＴｉｃｋｅｔを含む完了通知を、アプリケーション３０１に通知する。
【０１８４】
上記の処理により、アプリケーション３０１は、複数の処理実行部６０５が実行する処理のうち、実行する処理の情報を含む設定情報を取得することができる。
【０１８５】
ステップ１５１５において、アプリケーション３０１は、ステップＳ１５１４で取得したＰｒｉｎｔＴｉｃｋｅｔを用いて、ＯＳ３０２に印刷の実行を要求する。
【０１８６】
ステップＳ１５１６において、ＯＳ３０２は、アプリケーション３０１から通知されたＰｒｉｎｔＴｉｃｋｅｔを含む描画命令を、プリンタドライバ３０３の描画部３３３に通知する。
【０１８７】
ステップＳ１５１７において、プリンタドライバ３０３の描画部３３３は、例えば、図９に示すような描画部の処理を実行する。
【０１８８】
なお、第２の実施形態では、図９のステップＳ９０７において、描画部３３３の要求部７１５は、決定部７１４によって決定された実行順序と、設定情報取得部７１１が取得した設定情報とに基づいて、複数の処理実行部６０５に処理の実行を要求する。
【０１８９】
図１６は、第２の実施形態に係る要求処理の例を示すフローチャートである。
【０１９０】
ステップＳ１６０１において、描画部３３３の要求部７１５は、決定部７１４が実行順序を決定した処理情報の中に変更処理があるかを判断する。
【０１９１】
変更処理がない場合、要求部７１５は、処理をステップＳ１６０５に移行させる。一方、変更処理がある場合、要求部７１５は、処理をステップＳ１６０２に移行させる。
【０１９２】
ステップＳ１６０２に移行すると、要求部７１５は、決定部７１４が実行順序を決定した処理情報に含まれる変更処理の各々に対して、順次にステップＳ１６０３、Ｓ１６０４の処理を実行する。
【０１９３】
ステップＳ１６０３において、要求部７１５は、設定情報取得部７１１が取得した設定情報を用いて、処理の対象となる変更処理の連携が選択されているかを判断する。
【０１９４】
当該変更処理の連携が選択されている場合、要求部７１５は、ステップＳ１６０４において、当該変更処理の実行を処理実行部６０５に要求する。一方、当該変更処理の連携が選択されていない場合、要求部７１５は、当該変更処理の実行を処理実行部６０５に要求しない。この処理により、要求部７１５は、決定部７１４が実行順序を決定した変更処理のうち、例えば、図１４（ｂ）に示す拡張機能の選択画面１４２０で、「連携する」のチェックボックス１４２２が選択された変更処理のみを、実行させることができるようになる。
【０１９５】
ステップＳ１６０５に移行すると、要求部７１５は、決定部７１４が実行順序を決定した処理情報の中に読出処理があるかを判断する。
【０１９６】
読出処理がない場合、要求部７１５は、処理をステップＳ１６０９に移行させる。一方、読出処理がある場合、要求部７１５は、処理をステップＳ１６０６に移行させる。
【０１９７】
ステップＳ１６０６に移行すると、要求部７１５は、決定部７１４が実行順序を決定した処理情報に含まれる読出処理の各々に対して、ステップＳ１６０７、Ｓ１６０８の処理を実行する。
【０１９８】
ステップＳ１６０６において、要求部７１５は、設定情報取得部７１１が取得した設定情報を用いて、処理の対象となる読出処理の連携が選択されているかを判断する。
【０１９９】
当該読出処理の連携が選択されている場合、要求部７１５は、ステップＳ１６０８において、当該読出処理の実行を処理実行部６０５に要求する。一方、当該読出処理の連携が選択されていない場合、要求部７１５は、当該読出処理の実行を処理実行部６０５に要求しない。この処理により、要求部７１５は、決定部７１４が実行順序を決定した読出処理のうち、例えば、図１４（ｂ）に示す拡張機能の選択画面１４２０で、「連携する」のチェックボックス１４２２が選択された読出処理のみを、実行させることができるようになる。
【０２００】
ステップＳ１６０９に移行すると、要求部７１５は、決定部７１４が実行順序を決定した処理情報の中に転送処理があるかを判断する。
【０２０１】
転送処理がない場合、要求部７１５は、処理を終了させる。一方、転送処理がある場合、要求部７１５は、処理をステップＳ１６１０に移行させる。
【０２０２】
ステップＳ１６１０に移行すると、要求部７１５は、決定部７１４が実行順序を決定した処理情報に含まれる転送処理の各々に対して、ステップＳ１６１１、Ｓ１６１２の処理を実行する。
【０２０３】
ステップＳ１６１１において、要求部７１５は、設定情報取得部７１１が取得した設定情報を用いて、処理の対象となる転送処理の連携が選択されているかを判断する。
【０２０４】
当該転送処理の連携が選択されている場合、要求部７１５は、ステップＳ１６１２において、当該転送処理の実行を処理実行部６０５に要求する。一方、当該転送処理の連携が選択されていない場合、要求部７１５は、当該転送処理の実行を処理実行部６０５に要求しない。この処理により、要求部７１５は、決定部７１４が実行順序を決定した転送処理のうち、例えば、図１４（ｂ）に示す拡張機能の選択画面１４２０で、「連携する」のチェックボックス１４２２が選択された転送処理のみを、実行させることができるようになる。
【０２０５】
ここで、図１５に戻り、印刷処理のシーケンスの説明を続ける。
【０２０６】
ステップＳ１５１７の描画部の処理において、描画部３３３から描画データが出力されると、描画部３３３は、画像形成装置２０に印刷を指示する描画命令を送信する。
【０２０７】
ステップＳ１５１９において、画像形成装置２０は、描画データの印刷を実行する。
【０２０８】
ステップＳ１５２０〜Ｓ１５２２において、印刷の完了を示す完了通知が、描画部３３３、ＯＳ３０２、アプリケーション３０１等に通知される。
【０２０９】
以上、本実施形態に係るクライアント装置１０によれば、利用者は、複数の処理実行部６０５が実行する処理のうち、利用したい機能を選択的に実行させることができるようになる。
【０２１０】
Ｖ３プリンタドライバでは、例えば、描画データをクラウドにアップロードするような拡張機能は、ポートモニタ６０２等で実現されていた。しかし、印刷時に複数のポートモニタ６０２を選択することはできないので、従来の技術では、複数の拡張機能を組み合わせて、実行することは困難である。
【０２１１】
一方、本実施形態によれば、複数の拡張機能の中から、任意の拡張機能を組み合わせて実行することができるようになる。
【０２１２】
［第３の実施形態］
第１、２の実施形態では、複数の処理実行部６０５が実行する処理の実行順序を決定する決定部７１４が、プリンタドライバ３０３の描画部３３３に含まれる場合の例について説明を行った。
【０２１３】
第３の実施形態では、複数の処理実行部６０５が実行する処理の実行順序を決定する決定部７１４が、連携プログラム６０４に含まれる場合の例について説明する。
【０２１４】
＜機能構成＞
図１７は、第３の実施形態に係る描画部、及び連携プログラムの機能構成図である。図１７に示す描画部３３３は、図７に示す第１の実施形態に係る描画部３３３に含まれる機能構成のうち、決定部７１４を有していない。また、図１７に示す連携プログラム６０４は、図７に示す第１の実施形態に係る連携プログラム６０４の機能構成に加えて、決定部７１４を有している。
【０２１５】
上記の構成により、連携プログラム６０４の決定部７１４は、例えば、クライアント装置１０にインストールされたとき等に、複数の処理実行部６０５で実行する処理の実行順序を決定する。また、連携プログラム６０４の処理情報保存部７２１は、決定部７１４によって処理の実行順序が決定された処理情報７０１を、処理情報記憶部６０３に記憶する。
【０２１６】
＜処理の流れ＞
図１８は、第３の実施形態に係る連携プログラムのインストール処理の例を示すフローチャートである。
【０２１７】
ステップＳ１８０１において、クライアント装置１０に連携プログラム６０４をインストールすると、連携プログラム６０４は、ステップＳ１８０２以降の処理を実行する。
【０２１８】
ステップＳ１８０２において、連携プログラム６０４の配置部７２２は、複数の処理実行部６０５をプログラム領域６０６に配置する。例えば、配置部７２２は、複数の処理実行部６０５を、所定のフォルダ（例えば、C:\ProgramFiles等）に保存する。
【０２１９】
ステップＳ１８０３において、連携プログラム６０４は、処理情報記憶部６０３に既に処理情報７０１が記憶されているか否かに応じて、処理を分岐させる。
【０２２０】
処理情報記憶部６０３に処理情報７０１が記憶されていない場合、連携プログラム６０４の処理情報保存部７２１は、処理情報７０１を処理情報記憶部６０３に保存する。なお、本実施形態に係る処理情報７０１は、複数の処理実行部６０５が実行する処理の実行順序が予め定められているものとする。
【０２２１】
一方、処理情報記憶部６０３に処理情報７０１が記憶されている場合、連携プログラム６０４は、処理をステップＳ１８０５に移行させる。
【０２２２】
ステップＳ１８０５に移行すると、連携プログラム６０４の決定部７１４は、処理情報記憶部６０３に記憶されている処理情報７０１を読出する。
【０２２３】
ステップＳ１８０６において、決定部７１４は、連携プログラム６０４の処理情報に、処理情報記憶部６０３から読出した処理情報７０１を加えて、例えば、図１０に示すような実行順序の決定処理を実行する。
【０２２４】
ステップＳ１８０７において、処理情報保存部７２１は、ステップＳ１８０６で実行順序が決定された処理情報７０１を、処理情報記憶部６０３に保存する。
【０２２５】
上記の処理により、連携プログラム６０４は、クライアント装置１０にインストールされたとき等に、複数の処理実行部６０５が実行する処理の実行順序を決定し、実行順序が決定された処理情報７０１を処理情報記憶部６０３に保存することができるようになる。
【０２２６】
（処理情報の例）
図１９は、第３の実施形態に係る処理情報の例を示す図である。図１９の例では、処理情報７０１には、変更処理１９０１、読出処理１９０２、及び転送処理１９０３が、カンマ「，」を介して列記されており、３つの処理が直列に（順次に）実行されるように記述されている。このように、第３の実施形態に係る処理情報７０１では、複数の処理実行部６０５が実行する処理の実行順序が予め定められている。
【０２２７】
なお、図１９に示す処理情報７０１は一例であり、各処理は、並列に実行されるように実行順序が定められていても良いし、直列に実行される処理と並列に実行される処理とが混在しているものであっても良い。
【０２２８】
好適な一例として、処理情報７０１には、処理が実行される条件を示す情報１９０４が含まれていても良い。図１９の例では、変更処理１９０１は、処理が実行される条件を示す情報１９０４を含み、処理が実行される条件として「color==color」の文字列が含まれている。この「color==color」の文字列は、印刷の設定が「カラー印刷」の場合にのみ、処理を実行することを示している。
【０２２９】
つまり、図１９に示す処理情報７０１に含まれる変更処理１９０１、読出処理１９０２、及び転送処理１９０３のうち、変更処理１９０１と読出処理１９０２とは、印刷の設定が「カラー印刷」であるときに実行される。これにより、例えば、カラー印刷のときのみ、認証処理（変更処理１９０１の一例）と、ログ取得処理（読出処理１９０２の一例）を実行させることができるようになる。
【０２３０】
このように、本実施形態によれば、処理情報記憶部６０３に記憶された処理情報７０１に、処理の実行順序や、実行条件等が予め設定されているので、プリンタドライバ３０３の負荷を低減させることができる。
【０２３１】
以上、本発明の各実施形態によれば、Ｖ４プリンタドライバ、又は同様の制限を有するプリンタドライバにおいて、利用者の利便性を維持しつつ、プリンタドライバに独自の拡張機能を容易に追加することができるようになる。
【符号の説明】
【０２３２】
１          情報処理システム
１０        クライアント装置（情報処理装置）
２０        画像形成装置（画像処理装置）
３０        サーバ装置
３０１      アプリケーション
３０２      ＯＳ
３０３      プリンタドライバ
３０４      ストアデバイスアプリ
３０５      ＵＩ部
３１１      ストアアプリ
３１３      拡張設定部
３２１      デスクトップアプリ
３２３      設定制御部
３３３      描画部
４００      ＰｒｏｐｅｒｔｙＢａｇ
４２０      ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ
６０３      処理情報記憶部（記憶部）
６０４      連携プログラム
６０５      処理実行部
７０１      処理情報
７１２      描画データ生成部
７１４      決定部
７１５      要求部
７２１      処理情報保存部
７２２      配置部
【先行技術文献】
【特許文献】
【０２３３】
【特許文献１】特開２０１０−２１８３０９号公報
【図１】
2018084978.tif 000005
【図２】
2018084978.tif 000006
【図３】
2018084978.tif 000007
【図４】
2018084978.tif 000008
【図５】
2018084978.tif 000009
【図６】
2018084978.tif 000010
【図７】
2018084978.tif 000011
【図８】
2018084978.tif 000012
【図９】
2018084978.tif 000013
【図１０】
2018084978.tif 000014
【図１１】
2018084978.tif 000015
【図１２】
2018084978.tif 000016
【図１３】
2018084978.tif 000017
【図１４】
2018084978.tif 000018
【図１５】
2018084978.tif 000019
【図１６】
2018084978.tif 000020
【図１７】
2018084978.tif 000021
【図１８】
2018084978.tif 000022
【図１９】
2018084978.tif 000023