(57)【特許請求の範囲】
【請求項１】
画像形成装置において原稿の読み取りを実行し読み取られた画像データからレイアウト画像データを生成して印刷する処理要求を、登録する登録手段と、
ネットワークを介して接続される画像形成装置が前記登録手段により登録された前記処理要求に基づいて読み取った画像データを受信し、画像データ記憶手段に記録する画像データ受信手段と、
前記画像データ記憶手段に記録された前記画像データに含まれる複数の画像について、所定の配置領域に対するレイアウトを生成するレイアウト生成手段と、
前記レイアウトが所定の条件を満たす場合に前記レイアウトに従って前記画像が配置されたレイアウト画像データを生成するレイアウト画像生成手段と、
前記レイアウト画像データを前記画像形成装置に印刷させる印刷制御手段とを有する画像処理装置。
【請求項２】
ユーザが前記画像形成装置において前記登録手段に登録した処理要求の実行を選択したことに応じて、該処理要求に基づき、前記画像データ受信手段、前記レイアウト生成手段、前記レイアウト画像生成手段、前記印刷制御手段による処理を実行する請求項１に記載の画像処理装置。
【請求項３】
前記画像データを複数の矩形領域に分け、それぞれの矩形領域を単位画像として抽出する抽出手段を更に有し、
前記レイアウト生成手段は、
前記抽出手段により抽出された複数の単位画像を、高さが大きい順にソートするとともに、
所定の配置領域に対して、左上隅からソート順に前記単位画像を右方向に配置していき、同じ行において、前記所定の配置領域の右端に収まらなくなった場合に、該収まらなくなった残りの単位画像を、直前に配置した単位画像と同じ行に属する単位画像であって左端に配置された単位画像の下側に、前記ソート順に、左詰めで右方向に配置していく処理を繰り返し行い、
所定の配置領域に収まらず、ページを跨ぐブロックが発生した場合に、当該ページを跨ぐブロック以降のブロックから、当該ページ内に収まるブロックを探索し、当該ページを跨ぐブロックと入れ替えて配置する請求項１または２に記載の画像処理装置。
【請求項４】
前記レイアウト画像生成手段は、
前記ソート順に所定の配置領域に配置していくことで、所定の用紙サイズについて、Ｎページ分が前記単位画像によって満たされ、Ｎ＋１ページ目に跨った場合に、前記レイアウトに従って前記単位画像が配置されたＮページ分のレイアウト画像を生成する請求項３に記載の画像処理装置。
【請求項５】
前記レイアウト画像生成手段は、Ｎ＋１ページ目に跨っていなかった場合には、前記Ｎページの中で、受信された時期が最も早い画像データに係る前記単位画像が含まれているページについて、前記レイアウト画像データを生成する請求項3記載の画像処理装置。
【請求項６】
前記レイアウト画像生成手段は、Ｎ＋１ページ目に跨っていなかった場合には、前記Ｎのページの中で、前記単位画像の密度が最も高いページについて、前記レイアウト画像データを生成する請求項3記載の画像処理装置。
【請求項７】
前記抽出手段は、前記画像データ受信手段によって受信された画像データより抽出した単位画像を前記画像データ記憶手段に記録する請求項３記載の画像処理装置。
【請求項８】
画像形成装置とプログラムとを有する画像処理システムであって、
前記プログラムは、
画像形成装置において原稿の読み取りを実行し読み取られた画像データからレイアウト画像データを生成して印刷する処理要求を、登録する登録手順と、
ネットワークを介して接続される画像形成装置が前記登録手順において登録された前記処理要求に基づいて読み取った画像データを受信し、画像データ記憶手段に記録する画像データ受信手順と、
前記画像データ記憶手段に記録された前記画像データに含まれる複数の画像について、所定の配置領域に対するレイアウトを生成するレイアウト生成手順と、
前記レイアウトが所定の条件を満たす場合に前記レイアウトに従って前記画像が配置されたレイアウト画像データを生成するレイアウト画像生成手順と、
前記レイアウト画像データを前記画像形成装置に印刷させる印刷制御手順、を前記画像形成装置とネットワークを介して接続されるコンピュータに実行させる画像処理システム。
【請求項９】
コンピュータが、
画像形成装置において原稿の読み取りを実行し読み取られた画像データからレイアウト画像データを生成して印刷する処理要求を、登録する登録手順と、
ネットワークを介して接続される画像形成装置が前記登録手順において登録された前記処理要求に基づいて読み取った画像データを受信し、画像データ記憶手段に記録する画像データ受信手順と、
前記画像データ記憶手段に記録された前記画像データに含まれる複数の画像について、所定の配置領域に対するレイアウトを生成するレイアウト生成手順と、
前記レイアウトが所定の条件を満たす場合に前記レイアウトに従って前記画像が配置されたレイアウト画像データを生成するレイアウト画像生成手順と、
前記レイアウト画像データを前記画像形成装置に印刷させる印刷制御手順、を実行する画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理システム、及び画像処理方法に関し、特に原稿より読み取られた画像を出力させる画像処理装置、画像処理システム、及び画像処理方法に関する。
【背景技術】
【０００２】
従来、複写機を利用して原稿を等倍で複写する場合、原稿１枚に対して１枚の複写物が得られる。但し、原稿の特性上、必ずしも等倍で複写される必要の無いものもある。斯かる原稿については集約機能を利用すると便利である（例えば、特許文献１）。集約機能によれば、複数枚の原稿を１枚に収めることができる。その結果、用紙やトナー等を節約することができると共に、複写物の枚数を削減させ、携帯性を向上させることができる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかしながら、集約機能には複写物の利便性を考慮して各種の制約が有る。例えば、集約後の原稿の配置順は、原稿の順番に従う。また、集約範囲は、１つのジョブについて入力された原稿に限定される。
【０００４】
したがって、以上のような制約を課す必要のない原稿から読み取られた画像の出力（印刷）については、更なる効率化の余地が考えられる。
【０００５】
本発明は、上記の点に鑑みてなされたものであって、原稿より読み取られた画像の出力態様を効率化することのできる画像処理装置、画像処理システム、及び画像処理方法の提供を目的とする。
【課題を解決するための手段】
【０００６】
そこで上記課題を解決するため、本発明は、画像形成装置において原稿の読み取りを実行し読み取られた画像データからレイアウト画像データを生成して印刷する処理要求を、登録する登録手段と、ネットワークを介して接続される画像形成装置が前記登録手段により登録された前記処理要求に基づいて読み取った画像データを受信し、画像データ記憶手段に記録する画像データ受信手段と、前記画像データ記憶手段に記録された前記画像データに含まれる複数の画像について、所定の配置領域に対するレイアウトを生成するレイアウト生成手段と、前記レイアウトが所定の条件を満たす場合に前記レイアウトに従って前記画像が配置されたレイアウト画像データを生成するレイアウト画像生成手段と、前記レイアウト画像データを前記画像形成装置に印刷させる印刷制御手段と有する。
【０００７】
このような画像処理装置では、原稿より読み取られた画像の出力態様を効率化することができる。
【発明の効果】
【０００８】
本発明によれば、原稿より読み取られた画像の出力態様を効率化することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施の形態における画像処理システムの構成例を示す図である。
【図２】本発明の実施の形態における画像形成装置のハードウェア構成例を示す図である。
【図３】本発明の実施の形態におけるユーザ端末のハードウェア構成例を示す図である。
【図４】ウィジェット、ウィジェットマネージャ、及びプロバイダアプリの機能構成例を示す図である。
【図５】スキャンレイアウトウィジェットのウィジェット情報の送信時の処理手順を説明するためのシーケンス図である。
【図６】スキャンレイアウトウィジェットのウィジェット情報の例を示す図である。
【図７】ユーザ管理テーブルの構成例を示す図である。
【図８】スキャンレイアウトウィジェット実行時の処理手順を説明するためのシーケンス図である。
【図９】ユーザ選択画面の表示例を示す図である。
【図１０】ウィジェットマネージャからプロバイダアプリに送信されるスキャンレイアウトウィジェットのウィジェット情報の構成例を示す図である。
【図１１】ウィジェット選択画面の表示例を示す図である。
【図１２】スキャンレイアウトウィジェットのロジック部の機能構成例を示す図である。
【図１３】スキャンレイアウトウィジェットのロジック部による処理手順を説明するためのフローチャートである。
【図１４】単位画像の切り出し範囲の判定方法の第一の例を説明するための図である。
【図１５】単位画像の切り出し範囲の判定方法の第二の例を説明するための図である。
【図１６】単位画像のレイアウト生成の概要を説明するための図である。
【図１７】レイアウト生成処理の概要を説明するためのフローチャートである。
【図１８】ＦＦＤＨによる単位画像の配置方法の一例を説明するためのフローチャートである。
【図１９】単位画像の最密充填レイアウトの一例を示す図である。
【図２０】配置領域に対する単位画像の配置に基づくブロック及び行の例を示す図である。
【図２１】１ページ分のレイアウトデータの出力処理を説明するためのフローチャートである。
【図２２】２ページ目にかかるブロックの例を示す図である。
【図２３】ページレイアウトの生成処理を説明するためのフローチャートである。
【図２４】ページを跨ぐブロックが有る場合に他のブロックを繰り上げて１ページ目に充填する例を示す図である。
【図２５】印刷ウィジェットのウィジェット情報の送信時の処理手順を説明するためのシーケンス図である。
【図２６】印刷ウィジェットのウィジェット情報の例を示す図である。
【図２７】印刷ウィジェットにジョブが投入された場合のウィジェット選択画面の表示例を示す図である。
【図２８】印刷ウィジェットの実行時の処理手順を説明するためのシーケンス図である。
【発明を実施するための形態】
【００１０】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、本発明の実施の形態における画像処理システムの構成例を示す図である。同図の画像処理システム１において、一台以上の画像形成装置１０と、一台以上のユーザ端末２０とは、ＬＡＮ（Local Area Network）又はインターネット等のネットワーク（有線又は無線の別は問わない。）を介して接続されている。
【００１１】
画像形成装置１０は、スキャン、印刷、コピー、及びＦＡＸ送受信等の機能を一台の筐体によって実現する複合機である。本実施の形態において、画像形成装置１０は、スキャン機能及び印刷機能の双方を備えているのが好適である。但し、スキャン機能又は印刷機能のいずれか一方を備える機器が画像形成装置１０として用いられてもよい。この場合、画像処理システム１に含まれる他の画像形成装置１０によって、当該機器が備えていない機能（印刷機能又はスキャン機能）が補完されればよい。
【００１２】
ユーザ端末２０は、ユーザが利用する個人端末であり、ソフトウェアプログラムのインストール及び実行が可能であり、通信機能を有するものであれば、特定の装置に限定されない。ユーザ端末２０の具体例として、デスクトップ型のＰＣ（Personal Computer）、ノートＰＣ、ＰＤＡ（Personal Digital Assistance）、又は携帯電話等が挙げられる。本実施の形態において、ユーザ端末２０は、画像処理装置の一例として機能する。
【００１３】
ユーザ端末２０のソフトウェア構成について説明する。図１において、ユーザ端末２０は、スキャンレイアウトウィジェット２１ａ、印刷ウィジェット２１ｂ、ウィジェットマネージャ２２、文書アプリ２３、プリンタドライバ２４、及びＯＳ２５等を有する。
【００１４】
スキャンレイアウトウィジェット２１ａ及び印刷ウィジェット２１ｂは、本実施の形態において、「ウィジェット２１」として総称されるアプリケーションプログラムである。近年では、ウィジェット（Ｗｉｄｇｅｔ）又はガジェット（Ｇａｄｇｅｔ）とよばれる手軽なアプリケーションが流通している。本実施の形態では、手軽にインストールして利用可能なアプリケーションという程度の意味においてこれらのアプリケーションをウィジェット２１と呼ぶ（すなわち、技術的な意義において限定する趣旨ではない）。但し、本実施の形態において、各ウィジェット２１は、画像形成装置１０の機能を利用して所定の処理フロー（例えば、ワークフロー等の一連の処理フロー）を実現するという点において共通する。
【００１５】
スキャンレイアウトウィジェット２１ａは、画像形成装置１０にスキャンを実行させ、スキャンされた画像データをユーザ端末２０に蓄積する。スキャンレイアウトウィジェット２１ａは、蓄積された画像データによって表現される複数の画像について、所定の配置領域に対するレイアウトを生成し、生成されたレイアウトによって当該複数の画像が配置された画像データを生成する。なお、「画像データによって表現される画像」とは、画像データがコンピュータによって処理されることにより、表示装置又は印刷媒体等に形成されうる２次元の情報をいう。但し、本実施の形態で「画像」というとき、当該画像の状態は、必ずしも表示装置又は印刷媒体等に形成された具体的な状態に限定されない。「画像」には、画像データ内に記録された情報によって表現される抽象的な状態の画像も含まれる。
【００１６】
印刷ウィジェット２１ｂは、所定の論理プリンタに対して生成された印刷データについて、画像形成装置１０に印刷ジョブを実行させる。
【００１７】
ウィジェットマネージャ２２は、ウィジェット２１のフレームワークとして位置付けられ、ウィジェット２１と画像形成装置１０との間の通信の仲介等を行う。各ウィジェット２１は、ウィジェットマネージャ２２によって規定されるインタフェース及び処理手順を備える必要がある。換言すれば、ウィジェットマネージャ２２と協調して動作するアプリケーションが、本実施の形態におけるウィジェット２１である。
【００１８】
文書アプリ２３は、ワープロソフト、表計算ソフト等、印刷対象となりうる電子的な文書データを作成するアプリケーションである。図中、文書アプリ２３は一つのブロックによって表現されているが、文書アプリ２３は、文書データのデータ形式に応じて複数の種類が存在しうる。
【００１９】
プリンタドライバ２４は、いわゆるプリンタドライバであり、各種の文書アプリ２３によって生成された文書データに関する印刷データを生成する。印刷ウィジェット２１ｂに対応する論理プリンタが印刷先として指定された場合、プリンタドライバ２４は、当該論理プリンタに対して出力先として設定されている所定のファイル名の中間ファイルを生成し、当該中間ファイルに印刷データを出力する。
【００２０】
ＯＳ２５は、いわゆるＯＳ（Operating System）である。ユーザ端末２０上の各ソフトウェアは、ＯＳ２５上においてプロセス又はスレッドとして動作する。
【００２１】
画像形成装置１０のソフトウェア構成について説明する。図１において、画像形成装置１０は、標準アプリ１２１、ＳＤＫアプリ１２２、ＳＤＫプラットフォーム１２３、コントロールサービス１２４、及びＯＳ１２５等を有する。
【００２２】
標準アプリ１２１は、画像形成装置１０に標準的に（出荷時に予め）実装されているアプリケーションの集合である。同図では、スキャンアプリ１２１１、印刷アプリ１２１２、コピーアプリ１２１３、及びＦＡＸアプリ１２１４が例示されている。スキャンアプリ１２１１は、スキャンジョブを実行する。印刷アプリ１２１２は印刷ジョブを実行する。コピーアプリ１２１３は、コピージョブを実行する。ＦＡＸアプリ１２１４は、ＦＡＸの送信ジョブ又は受信ジョブを実行する。
【００２３】
コントロールサービス１２４は、各種のハードウェアリソース等を制御するための機能を上位アプリケーション等に対して提供するソフトウェアモジュール群であり、例えば、ネットワーク通信に関する機能、スキャナの制御機能、プリンタの制御機能、メモリの管理機能等を有する。
【００２４】
ＳＤＫアプリ１２２は、画像形成装置１０の出荷後において、画像形成装置１０の機能拡張を図るためのプラグインとして追加的にインストールされるアプリケーションである。同図では、ＳＤＫアプリ１２２として、プロバイダアプリ１２２１が例示されている。プロバイダアプリ１２２１は、ウィジェット２１を画像形成装置１０より操作可能とするための処理を実行する。
【００２５】
ＳＤＫプラットフォーム１２３は、ＳＤＫアプリ１２２の実行環境を提供する。各ＳＤＫアプリ１２２は、ＳＤＫプラットフォーム１２３が提供するＡＰＩ（Application Program Interface）を利用して開発される。例えば、ＳＤＫプラットフォーム１２３は、スキャン機能を利用させるためのインタフェース、印刷機能を利用させるためのインタフェース、コピー機能を利用させるためのインタフェース等をＳＤＫアプリ１２２に提供する。なお、ＳＤＫプラットフォーム１２３のＡＰＩは公開されており、サードベンダ等によってもＳＤＫアプリ１２２は開発されうる。
【００２６】
ＯＳ１２５は、いわゆるＯＳ（Operating System）である。画像形成装置１０上の各ソフトウェアは、ＯＳ１２５上においてプロセス又はスレッドとして動作する。
【００２７】
続いて、各装置のハードウェア構成について説明する。図２は、本発明の実施の形態における画像形成装置のハードウェア構成例を示す図である。図２において、画像形成装置１０は、コントローラ１１、スキャナ１２、プリンタ１３、モデム１４、操作パネル１５、ネットワークインタフェース１６、及びＳＤカードスロット１７等のハードウェアを有する。
【００２８】
コントローラ１１は、ＣＰＵ１１１、ＲＡＭ１１２、ＲＯＭ１１３、及びＨＤＤ１１４等を有する。ＲＯＭ１１３には、各種のプログラムやプログラムによって利用されるデータ等が記録されている。ＲＡＭ１１２は、プログラムをロードするための記憶領域や、ロードされたプログラムのワーク領域等として用いられる。ＣＰＵ１１１は、ＲＡＭ１１２にロードされたプログラムを処理することにより、各種の機能を実現する。ＨＤＤ１１４には、プログラムやプログラムが利用する各種のデータ等が記録される。
【００２９】
スキャナ１２は、原稿より画像データを読み取るためのハードウェアである。プリンタは１３、印刷データを印刷用紙に印刷するためのハードウェアである。モデム１４は、電話回線に接続するためのハードウェアであり、ＦＡＸ通信による画像データの送受信を実行するために用いられる。操作パネル１５は、ユーザからの入力の受け付けを行うめのボタン等の入力手段や、液晶パネル等の表示手段を備えたハードウェアである。ネットワークインタフェース１６は、ＬＡＮ等のネットワーク（有線又は無線の別は問わない。）に接続するためのハードウェアである。ＳＤカードスロット１７は、ＳＤカード８０に記録されたプログラムを読み取るために利用される。すなわち、画像形成装置１０では、ＲＯＭ１１３に記録されたプログラムだけでなく、ＳＤカード８０に記録されたプログラムもＲＡＭ１１２にロードされ、実行されうる。なお、他の記録媒体（例えば、ＣＤ−ＲＯＭ又はＵＳＢ（Universal Serial Bus）メモリ等）によってＳＤカード８０が代替されてもよい。すなわち、ＳＤカード８０の位置付けに相当する記録媒体の種類は、所定のものに限定されない。この場合、ＳＤカードスロット１７は、記録媒体の種類に応じたハードウェアによって代替されればよい。
【００３０】
図３は、本発明の実施の形態におけるユーザ端末のハードウェア構成例を示す図である。図３のユーザ端末２０は、それぞれバスＢで相互に接続されているドライブ装置２００と、補助記憶装置２０２と、メモリ装置２０３と、ＣＰＵ２０４と、インタフェース装置２０５と、表示装置２０６と、入力装置２０７とを有する。
【００３１】
ユーザ端末２０での処理を実現するプログラムは、ＣＤ−ＲＯＭ又はメモリカード等の記録媒体２０１によって提供される。プログラムを記録した記録媒体２０１がドライブ装置２００にセットされると、プログラムが記録媒体２０１からドライブ装置２００を介して補助記憶装置２０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体２０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置２０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００３２】
メモリ装置２０３は、プログラムの起動指示があった場合に、補助記憶装置２０２からプログラムを読み出して格納する。ＣＰＵ２０４は、メモリ装置２０３に格納されたプログラムに従ってユーザ端末２０に係る機能を実現する。インタフェース装置２０５は、ネットワーク接続用のインタフェース、ＵＳＢ（Universal Serial Bus）接続用のインタフェース、Ｂｌｕｅｔｏｏｔｈ等の無線通信用のインタフェース等、各種通信用のインタフェースである。表示装置２０６はプログラムによるＧＵＩ（Graphical User Interface）等を表示する。入力装置２０７はキーボード、マウス、又はボタン等で構成され、様々な操作指示を入力させるために用いられる。
【００３３】
続いて、ウィジェット２１、ウィジェットマネージャ２２、及びプロバイダアプリ１２２１について更に詳しく説明する。図４は、ウィジェット、ウィジェットマネージャ、及びプロバイダアプリの機能構成例を示す図である。
【００３４】
同図に示されるように、各ウィジェット２１は、ウィジェットＵＩ部２１１、ウィジェット情報送信部２１２、連携部２１３、ロジック部２１４、及び属性情報管理ファイル２１５等を有する。
【００３５】
ウィジェットＵＩ部２１１は、ウィジェット２１に関する各種の表示画面をユーザ端末２０の表示装置２０６に表示させる。ウィジェット情報送信部２１２は、ウィジェット２１が起動されたとき等に、ウィジェット情報（ウィジェット２１の属性情報）の登録要求をウィジェットマネージャ２２に送信する。連携部２１３は、プロバイダアプリ１２２１との連携のための通信（情報のやりとり等）を制御する。属性情報管理ファイル２１５は、ウィジェット２１対する属性情報を格納するファイルである。属性情報には、ウィジェット２１に対する設定情報も含まれる。設定情報は、ウィジェット２１の振る舞い又はウィジェット２１によって実行されるジョブの内容を規定するパラメータの集合である。ロジック部２１４は、各ウィジェット２１に固有の機能が実装される部分である。例えば、スキャンレイアウトウィジェット２１ａのロジック部２１５は、スキャンされた画像データによって表現される画像のレイアウトの生成処理等を実行する。印刷ウィジェット２１ｂのロジック部２１５は、所定の論理プリンタに対して生成された印刷データについて、画像形成装置１０に印刷ジョブを実行させるための処理を実行する。
【００３６】
なお、ウィジェット２１に含まれる各部について、スキャンレイアウトウィジェット２１ａに属するものと印刷ウィジェット２１ｂに属するものとを区別する場合、前者については「ａ」を、後者については「ｂ」を参照番号の末尾に付加する。例えば、スキャンレイアウトウィジェット２１ａのロジック部２１４は、「ロジック部２１４ａ」と表記される。
【００３７】
ウィジェットマネージャ２２は、ウィジェット情報登録部２２１、広告部２２２、ウィジェット情報提供部２２３、仲介部２２４、及びウィジェット情報管理テーブル２２７等を有する。
【００３８】
ウィジェット情報登録部２２１は、ウィジェット２１より送信されるウィジェット情報の登録要求を受信し、当該ウィジェット情報をウィジェット情報管理テーブル２２７に保存する。ウィジェット情報管理テーブル２２７には、ユーザ端末２０において起動されている各ウィジェット２１のウィジェット情報が登録されるテーブルであり、ユーザ端末２０の補助記憶装置２０２に記録される。
【００３９】
広告部２２２は、ウィジェット情報登録部２２１によって受信されたウィジェット情報に含まれるユーザＩＤ等をネットワーク上に広告（ブロードキャスト又はマルチキャスト等）する。広告は、ユーザ単位（ユーザＩＤ単位）で発行される。具体的には、ユーザ端末２０内における或るウィジェット２１の起動に応じてユーザＡに関して広告が発行された後、当該ユーザ端末２０内において、他のウィジェット２１が起動されたとしても当該ウィジェット情報に応じた広告は発行されない。本実施の形態では、便宜上、ユーザ端末２０とユーザとは一対一に対応する。したがって、広告部２２２による広告は、何らかのウィジェット２１を利用可能になったユーザが新たに発生したことを画像形成装置１０に通知するための情報であるといえる。但し、ウィジェット情報単位で広告が行われてもよい。この場合、同一ユーザについて重複して広告が発行されることになるが、重複の排除は画像形成装置１０側で行えばよい。
【００４０】
ウィジェット情報提供部２２３は、画像形成装置１０からの要求に応じ、ウィジェット情報管理テーブル２２７に登録されているウィジェット情報を画像形成装置１０に提供（送信）する。仲介部２２４は、ウィジェット２１とプロバイダアプリ１２２１との通信を仲介又は中継する。
【００４１】
プロバイダアプリ１２２１は、ユーザ検知部１３１、ＵＩ制御部１３２、ウィジェット情報取得部１３３、ウィジェット連携部１３４、機能制御部１３５、及びユーザ管理テーブル１３６等を有する。
【００４２】
ユーザ検知部１３１は、ウィジェットマネージャ２２より発行される広告に基づいて、ウィジェット２１を利用可能なユーザの存在を検知し、広告に含まれているユーザＩＤ等をユーザ管理テーブル１３６に登録する。ユーザ管理テーブル１３６は、利用可能なウィジェット２１がネットワーク上に存在するユーザの一覧を管理するテーブルである。
【００４３】
ＵＩ制御部１３２は、ユーザよりウィジェット２１の操作指示等の入力を受け付ける。すなわち、ウィジェット２１は、ユーザ端末２０に配置されているが、画像形成装置１０の操作パネルからも操作されうる。ウィジェット情報取得部１３３は、ユーザ管理テーブル１３６に登録されているユーザの中から選択されたユーザに属するウィジェット２１のウィジェット情報をウィジェットマネージャ２２より取得する。ウィジェット連携部１３４は、ウィジェットマネージャ２２との通信を制御する。機能制御部１３５は、ウィジェット２１から要求された機能の実行を制御する。機能を実現するための処理は、標準アプリ１２１や他のＳＤＫアプリ１２２に委譲される。
【００４４】
以下、画像処理システム１の処理手順について説明する。図５は、スキャンレイアウトウィジェットのウィジェット情報の送信時の処理手順を説明するためのシーケンス図である。
【００４５】
ユーザ端末２０においてユーザによって入力されるスキャンレイアウトウィジェット２１ａの起動指示に応じ、スキャンレイアウトウィジェット２１ａは自らの属性情報管理ファイル２１５ａよりウィジェット情報を取得し、当該ウィジェット情報の登録要求をウィジェットマネージャ２２に送信する（Ｓ１１１）。なお、各ウィジェット２１には、ウィジェットマネージャ２２と通信するための識別情報（例えば、ウィジェットマネージャ２２のＵＲＬ（Uniform Resource Locator）等）が予め設定されている。
【００４６】
図６は、スキャンレイアウトウィジェットのウィジェット情報の例を示す図である。同図において、スキャンレイアウトウィジェット２１ａのウィジェット情報は、ウィジェットＩＤ、ユーザＩＤ、連携機能識別子、ウィジェットアドレス、表示名、及び設定情報等を含む。
【００４７】
ウィジェットＩＤは、各ウィジェット２１を一意に識別する識別情報である。ユーザＩＤは、スキャンレイアウトウィジェット２１ａの所有者であるユーザの識別情報である。連携機能識別子は、スキャンレイアウトウィジェット２１ａと連携する画像形成装置１０が有している必要のある機能（換言すれば、スキャンレイアウトウィジェット２１ａが利用する機能）を識別するための情報である。連携機能識別子の一例として「ｐｒｉｎｔ」、「ｓｃａｎ」等が挙げられる。「ｐｒｉｎｔ」は、印刷機能を示す。「ｓｃａｎ」は、スキャン機能を示す。スキャンレイアウトウィジェット２１ａは、画像形成装置１０のスキャン機能を利用する。したがって、図６の例では、「ｓｃａｎ」が連携機能識別子とされている。ウィジェットアドレスは、ネットワーク通信において各ウィジェットを一意に識別するための識別情報（例えば、ＵＲＬ等）である。表示名は、スキャンレイアウトウィジェット２１ａの名前の表示用の文字列である。
【００４８】
設定情報は、ウィジェット２１の振る舞いを既定するパラメータであり、その内容はウィジェット２１の種類ごとにことなる。例えば、スキャンレイアウトウィジェット２１ａの場合、スキャン条件（解像度、カラー及びモノクロの別等）等が設定情報に含まれる。
【００４９】
ステップＳ１１１において、スキャンレイアウトウィジェット２１ａのウィジェット情報送信部２１２ａより送信されたウィジェット情報は、ウィジェットマネージャ２２のウィジェット情報登録部２２１によって受信される。ウィジェット情報登録部２２１は、受信されたウィジェット情報に含まれているユーザＩＤに対応するウィジェット情報管理テーブル２２７に当該ウィジェット情報を登録する。当該ユーザＩＤに対応するウィジェット情報管理テーブル２２７が存在しない場合、ウィジェット情報登録部２２１は、当該ユーザＩＤに対応するウィジェット情報管理テーブル２２７を生成し、生成されたウィジェット情報管理テーブル２２７にウィジェット情報を登録する（Ｓ１１２）。
【００５０】
ウィジェット情報管理テーブル２２７が新たに生成された場合（すなわち、受信されたウィジェット情報に含まれているユーザＩＤに係るユーザについて、初めてウィジェット情報が登録された場合）、広告部２２２は、受信されたウィジェット情報に含まれているユーザＩＤと、ウィジェット情報取得用ＵＲＬ（Uniform Resource Locator）とを含む広告をネットワーク上に発行する（Ｓ１１３）。ウィジェット情報取得用ＵＲＬとは、ウィジェット情報管理テーブル２２７ごとに一意なＵＲＬである。例えば、ウィジェット情報登録部２２１は、ウィジェット情報管理テーブル２２７を生成した際に、当該ウィジェット情報管理テーブル２２７に対するウィジェット情報取得用ＵＲＬを生成する。ここで、ウィジェット情報管理テーブル２２７は、ユーザごとに生成される。したがって、ウィジェット情報取得用ＵＲＬはユーザごとに一意となる。
【００５１】
続いて、プロバイダアプリ１２２１のユーザ検知部１３１は、広告を受信すると、当該広告に含まれているユーザＩＤ及びウィジェット情報取得用ＵＲＬをユーザ管理テーブル１３６に登録する（Ｓ１１４）。
【００５２】
図７は、ユーザ管理テーブルの構成例を示す図である。同図に示されるように、ユーザ管理テーブル１３６は、ユーザＩＤとウィジェット情報取得用ＵＲＬとの組（ペア）を管理する。同図では、ユーザＡ及びユーザＢについてレコードが登録されている例が示されている。なお、ユーザ管理テーブル１３６は、例えば、ＨＤＤ１１４に記憶されている。
【００５３】
一方、スキャンレイアウトウィジェット２１ａは、ウィジェット情報を送信した後、画像形成装置１０において画像データがスキャンされたことを確認するためのポーリングを行い、画像データの転送（返信）を待機する。具体的には、スキャンレイアウトウィジェット２１ａの連携部２１３ａは、スキャンされた画像データ（スキャン画像データ）の取得要求をウィジェットマネージャ２２の仲介部２２４に送信する（Ｓ１１５）。仲介部２２４は、当該取得要求に対する応答を行う（Ｓ１１６）。この段階では、画像データはスキャンされていないため、スキャン画像データは無いことを示す応答が返信される。その後もスキャン画像データの取得要求（Ｓ１１５）は一定間隔ごとに繰り返し行われる。スキャン画像データの取得要求には、ウィジェットＩＤを含めるようにしてもよい。
【００５４】
ユーザ端末２０においてスキャンレイアウトウィジェット２１ａを起動させた後、ユーザは、スキャンレイアウトウィジェット２１ａを利用するために画像形成装置１０の設置場所へ移動する。なお、複数の画像形成装置１０がネットワークに接続されている場合、同一の広告が各画像形成装置１０のユーザ検知部１３１によって受信され、それぞれの画像形成装置１０のユーザ管理テーブル１３６にユーザＩＤ及びウィジェット情報取得用ＵＲＬが登録される。したがって、ユーザは、スキャン機能を備えた画像形成装置１０であれば、複数の画像形成装置１０のいずれからもスキャンレイアウトウィジェット２１ａを利用することができる。
【００５５】
続いて、画像形成装置１０におけるユーザによる操作に応じて実行される処理について説明する。図８は、スキャンレイアウトウィジェット実行時の処理手順を説明するためのシーケンス図である。
【００５６】
ユーザによって操作パネル１５を介してプロバイダアプリ１２２１の利用指示が入力されると（Ｓ２０１）、プロバイダアプリ１２２１のＵＩ制御部１３２は、ユーザ管理テーブル１３６に登録されている情報に基づいてユーザ選択画面を操作パネル１５に表示させる（Ｓ２０２）。
【００５７】
図９は、ユーザ選択画面の表示例を示す図である。同図に示されるユーザ選択画面６１０には、ユーザＩＤごとにボタンが表示されている。同図では、ユーザＡに対応するボタン６１１とユーザＢに対応するボタン６１２とが表示されている。
【００５８】
続いて、ユーザは、ユーザ選択画面６１０において自らのユーザＩＤに対応するボタンを押下する（Ｓ２０３）。ボタンの押下に応じ、ウィジェット情報取得部１３３は、選択されたボタンに対応するユーザＩＤに関連付けられているウィジェット情報取得用ＵＲＬをユーザ管理テーブル１３６より取得する。なお、ユーザＩＤに対応するボタンの押下に応じ、ユーザの認証を行い、ユーザが認証された場合にのみ以降の処理が実行されるようにしてもよい。
【００５９】
続いて、ウィジェット情報取得部１３３は、選択されたユーザＩＤに対応するウィジェット情報取得用ＵＲＬ宛に、ウィジェット情報の取得要求を送信する（Ｓ２０４）。ウィジェット情報の取得要求は、ウィジェットマネージャ２２のウィジェット情報提供部２２３によって受信される。ウィジェット情報提供部２２３は、ウィジェット情報取得用ＵＲＬに対応するウィジェット情報管理テーブル２２７（すなわち、画像形成装置１０を操作中のユーザに対応するウィジェット情報管理テーブル２２７）に登録されているウィジェット情報の一覧を取得し、当該一覧をプロバイダアプリ１２２１に返信する（Ｓ２０５）。ウィジェット情報の一覧の送信に際し、ウィジェット情報提供部２２３は、プロバイダアプリ１２２１と各ウィジェット２１との通信を中継するためのＵＲＬ（以下、「ウィジェット中継用ＵＲＬ」という。）をウィジェットごと（ウィジェット情報ごと）に一意に生成する。ウィジェット情報提供部２２３は、ウィジェットごとに生成されたウィジェット中継用ＵＲＬを、各ウィジェットに対応するウィジェット情報に付加し、ウィジェット中継用ＵＲＬが付加されたウィジェット情報の一覧をプロバイダアプリ１２２１に送信する。したがって、ステップＳ２０５において送信されるウィジェット情報は、例えば、図１０に示されるような構成を有する。
【００６０】
図１０は、ウィジェットマネージャからプロバイダアプリに送信されるスキャンレイアウトウィジェットのウィジェット情報の構成例を示す図である。
【００６１】
図１０に示されるウィジェット情報は、図６のウィジェット情報に対してウィジェット中継用ＵＲＬが付加されたものである。ステップＳ２０５では、同図に示されるようなウィジェット情報の一覧が送信される。ここでは、ウィジェット情報が一つしか含まれないものもウィジェット情報の一覧という。
【００６２】
続いて、プロバイダアプリ１２２１のＵＩ制御部１３２は、受信されたウィジェット情報の一覧をＲＡＭ１１２に記録しておき、当該ウィジェット情報の一覧に基づいて、ユーザに利用可能なウィジェット２１の一覧を含む画面（ウィジェット選択画面）を表示させる（Ｓ２０６）。
【００６３】
図１１は、ウィジェット選択画面の表示例を示す図である。同図においてウィジェット選択画面６２０には、スキャンレイアウトウィジェット２１ａに対応するボタン６２１が表示されている。
【００６４】
画像形成装置１０に１枚以上の原稿がセットされ、ウィジェット選択画面６２０において、スキャンレイアウトウィジェット２１ａに対応するボタン６２１が選択されると（Ｓ２０７）、プロバイダアプリ１２２１のウィジェット連携部１３４は、押下されたボタンに対応するウィジェット情報（以下、「カレントウィジェット情報」という。）に含まれている連携機能識別子（「ｓｃａｎ」）に基づいて、スキャンを実行すべきことを認識する。そこで、ウィジェット連携部１３４は、スキャンの実行を機能制御部１３５に要求する。
【００６５】
機能制御部１３５は、カレントウィジェット情報に含まれている設定情報に基づくスキャンジョブをスキャンアプリ１２１１に実行させる（Ｓ２０８）。スキャンアプリ１２１１は、画像形成装置１０にセットされた原稿に対するスキャンをスキャナ１２に実行させ、その結果得られる画像データ（以下「スキャン画像データ」という。）をウィジェット連携部１３４に出力する。
【００６６】
ウィジェット連携部１３４は、スキャン画像データをカレントウィジェット情報に含まれているウィジェット中継用ＵＲＬ宛に送信する（Ｓ２０９）。ウィジェット中継用ＵＲＬ宛に送信されたスキャン画像データは、ウィジェットマネージャ２２の仲介部２２４によって受信される。続いて、仲介部２２４は、スキャン画像データの受信後に受信される、当該ウィジェット中継用ＵＲＬに対応するスキャンレイアウトウィジェット２１ａの連携部２１３ａからのスキャン画像データの取得要求（Ｓ１１５）に応じ、スキャン画像データを連携部２１３ａに返信する（Ｓ１２１）。
【００６７】
連携部２１３ａは、スキャン画像データを受信すると、当該スキャン画像データをロジック部２１４ａに入力する。ロジック部２１４ａは、スキャン画像データを処理対象として、自らに実装されている処理（ロジック）を実行する（Ｓ１２２）。当該処理内容の詳細については後述する。
【００６８】
続いて、連携部２１３ａは、次のスキャンレイアウトウィジェット２１ａの実行に備えて、スキャン画像データ取要求のポーリングを再開し（Ｓ１１５）、スキャン画像データの転送を待機する。
【００６９】
なお、ステップＳ１２２において処理対象とされる画像データは、必ずしもスキャン画像データに限定されない。ユーザ端末２０に保存されている画像ファイルに格納されている画像データであってもよい。この場合、例えば、スキャンレイアウトウィジェット２１ａが起動後に表示装置２０６に表示させているアイコンに対して、当該画像ファイルのアイコンがユーザの操作に従ってドラッグ＆ドロップされる。スキャンレイアウトウィジェット２１ａは、ドロップされた画像ファイルに格納されている画像データに対してステップＳ１２２に係る処理を実行する。
【００７０】
続いて、ステップＳ１２２の処理の詳細について説明する。図１２は、スキャンレイアウトウィジェットのロジック部の機能構成例を示す図である。同図において、ロジック部２１４ａは、単位画像切り出し部２１４１、単位画像蓄積部２１４２、レイアウト生成部２１４３、レイアウト画像生成部２１４４、及びレイアウト画像出力部２１４５等を有する。
【００７１】
単位画像切り出し部２１４１は、画像形成装置１０においてスキャンされた画像データより、画像領域を切り出す（抽出する）。一つの画像データから一以上の画像領域が切り出される。単位画像切り出し部２１４１は、切り出された画像領域係る画像（以下、「単位画像」という。）ごとに画像データ（以下、「単位画像データ」という。）を生成し、単位画像データを単位画像蓄積部２１４２に記録する。
【００７２】
単位画像蓄積部２１４２は、補助記憶装置２０２又はメモリ生成部２０３において、単位画像を蓄積又はバッファリングするための記憶領域である。レイアウト生成部２１４３は、単位画像蓄積部２１４２に蓄積された単位画像データによって表現される単位画像について、所定の配置領域に対するレイアウト（配置情報）を生成する。生成されたレイアウトが所定の条件（以下、「出力条件」という。）を満たす場合、レイアウト生成部２１４３は、当該レイアウト結果において１ページ分のレイアウトを示すレイアウトデータを出力する。生成されたレイアウトが出力条件を満たさない場合、レイアウトデータは出力されない。所定の配置領域のサイズは、スキャンレイアウトウィジェット２１ａにとっての１ページのサイズ（すなわち、スキャンレイアウトウィジェット２１ａはどのような範囲を１ページとして扱うか）に基づいて定まる。当該１ページのサイズは、（例えば、Ａ４、Ａ５、又は幅及び高さの指定によって規定されるサイズ）は、スキャンレイアウトウィジェット２１ａの設定情報において指定されている。
【００７３】
レイアウト画像生成部２１４４は、レイアウト生成部２１４３よりレイアウトデータが出力された場合に、当該レイアウトデータに基づいてレイアウト画像データを生成する。レイアウト画像データとは、レイアウトデータに従って単位画像が配置された画像を表現する画像データをいう。レイアウト画像出力部２１４５は、レイアウト画像生成部２１４４によって生成されたレイアウト画像データの出力処理を実行する。出力処理の一例として、プリンタドライバ２４を利用した画像形成装置１０に対する印刷要求、又は所定のフォルダへの保存等が挙げられる。
【００７４】
上記の説明より明らかなように、スキャンレイアウトウィジェット２１ａは、単位画像蓄積部２１４２に蓄積された単位画像データに係る単位画像について、出力条件を満たすようなレイアウトが生成された場合に印刷を実行させる。換言すれば、スキャンレイアウトウィジェット２１ａは、出力条件が満たされるようなレイアウトが生成されるまで、単位画像データをバッファリングする。
【００７５】
図１３は、スキャンレイアウトウィジェットのロジック部による処理手順を説明するためのフローチャートである。
【００７６】
ステップＳ１２２１において、単位画像切り出し部２１４１は、スキャン画像データによって表現される画像（スキャン画像）より単位画像を切り出す。単位画像の切り出し範囲は、例えば、次のような方法に基づいて判定される。
【００７７】
図１４は、単位画像の切り出し範囲の判定方法の第一の例を説明するための図である。第一の例では、まず、スキャン画像データが二値化される。図１４の例では、二値化されたスキャン画像５１０には、黒塗りの矩形５１１及び矩形５１２が含まれている。矩形５１１の幅はｗ１であり、高さはｈ１である。矩形５１２の幅はｗ２であり、高さはｈ２である。
【００７８】
続いて、スキャン画像５１０の主走査方向（幅方向）及び副走査方向（高さ方向）のそれぞれについて、黒画素の分布が一次元化される。すなわち、主走査方向及び副走査方向のそれぞれについて、黒画素の論理和が１次元に投影される。図１４には、黒画素の分布の一元化の結果として、主走査方向の黒画素の分布を示す分布５１５と、副走査方向の黒画素の分布を示す分布５１６とが示されている。
【００７９】
続いて、分布５１５及び分布５１６が重複する矩形領域が単位画像の切り出し範囲として判定される。具体的には、ｗ１＋αの幅を有し、ｈ１の高さを有する矩形５１１ａに係る範囲と、ｗ２＋βの幅を有し、ｈ２の高さを有する矩形５１１ｂに係る範囲とが単位画像の切り出し範囲とされる。
【００８０】
また、図１５は、単位画像の切り出し範囲の判定方法の第二の例を説明するための図である。第二の例では、まず、スキャン画像が二値化される。続いて、二値化されたスキャン画像５２０において、主走査方向の黒ラン（黒画素の連続部分）が抽出される。図中（１）では、黒ラン５２１ａ〜５２１ｋが抽出された例が示されている。なお、同図では、便宜上、スキャン画像５２０の一部のみが示されている。
【００８１】
続いて、副走査方向に隣接している黒ラン同士がグループ化される。図中（２）には、グループ化の結果が示されている。すなわち、黒ラン５２１ａ、５２１ｂ、５２１ｅ、５２１ｇ、及び５２１ｈは、グループＧ１としてグループ化されている。また、黒ラン５２１ｃ、５２１ｆ、及び５２１ｋは、グループＧ２としてグループ化されている。また、黒ラン５２１ｄは、単独でグループＧ３としてグループ化されている。
【００８２】
続いて、各グループに属する黒ランを含む最小の矩形に係る範囲が単位画像の切り出し範囲として判定される。したがって、図１５の例では、グループＧ１に係る矩形、グループＧ２に係る矩形、グループＧ３に係る矩形（厳密には線分）が、単位画像の切り出し範囲とされる。
【００８３】
なお、単位画像の切り出し範囲の判定には、他の公知技術が用いられてもよい。例えば、ＯＣＲ（Optical Character Recognition）処理の過程において判定されるＯＣＲ範囲が単位画像の切り出し範囲として判定されてもよい。
【００８４】
また、単位画像の切り出し範囲は、ユーザによって指定されてもよい。例えば、単位画像切り出し部２１４１は、スキャン画像を含む編集画面を表示装置２０６に表示させる。単位画像切り出し部２１４１は、当該編集画面において指定された一つ以上の矩形領域を単位画像の切り出し範囲として認識する。
【００８５】
また、単位画像の切り出し処理は、画像形成装置１０において行われてもよい。この場合、プロバイダアプリ１２２１の機能制御部１３５は、図８のステップＳ２０８に続いて、画像形成装置１０に実装されている画像処理プログラムを用いて、スキャン画像からの単位画像の切り出し処理を実行する。続いて、機能制御部１３５は、切り出された単位画像を表現する単位画像データをウィジェット連携部１３４に出力する。その結果、ステップＳ２０９では、単位画像データがウィジェットマネージャ２２に転送される。なお、複数の単位画像が切り出された場合、複数の単位画像データが同時に転送されてもよいし、順番に転送されてもよい。
【００８６】
ステップＳ１２２１に続いて、単位画像切り出し部２１４１は、切り出された単位画像データを表現する画像データ（単位画像データ）を生成し、生成された単位画像データを単位画像蓄積部２１４２に保存する（Ｓ１２２２）。この際、各単位画像データには、当該単位画像データの生成時期（生成日時）が関連付けられて記録される。
【００８７】
なお、単位画像の切り出しは、必ずしも実行されなくてもよい。すなわち、スキャン画像データがそのまま単位画像蓄積部２１４２に保存されてもよい。この場合、以降の処理では、スキャン画像が単位画像として扱われる。すなわち、非画像領域（余白領域）も含む、１つのスキャン画像が単位画像とされる。このような扱いは、所定の配置領域の元となる１ページのサイズが、スキャン画像のサイズに比べて大きい場合に有効である。例えば、スキャン画像のサイズがはがきサイズであり、所定の配置領域の元となる１ページサイズがＡ４サイズ等である場合である。
【００８８】
続いて、レイアウト生成部２１４３は、単位画像蓄積部２１４２に蓄積されている単位画像データについて、レイアウトの生成処理を実行し、生成されたレイアウトが出力条件を満たす場合、レイアウトデータを出力する（Ｓ１２２３）。出力条件は、後述されるように、様々なものが採用されうる。但し、いずれの条件についても、所定の配置領域に対して所定のレイアウト規則（配置規則）に従って単位画像を配置した場合に、少なくとも所定の用紙サイズ１ページ分が単位画像によって満たされたことが条件とされる点において共通する。したがって、本実施の形態では、少なくとも１ページ分の単位画像が蓄積された場合に印刷が実行される。なお、「１ページ分が単位画像によって満たされた」とは、所定のレイアウト規則に従った場合に、それ以上当該ページ内に配置可能な単位画像が単位画像蓄積部２１４２に無い状態をいう。
【００８９】
レイアウト生成部２１４３よりレイアウトデータが出力されない場合（Ｓ１２２４でＮｏ）、図１３の処理は終了する。一方、レイアウト生成部２１４３よりレイアウトデータが出力された場合（Ｓ１２２４でＹｅｓ）、レイアウト画像生成部２１４４は、レイアウト生成部２１４３によって生成されたレイアウトデータに従って単位画像が配置された１ページ分のレイアウト画像データを、当該単位画像に係る単位画像データを用いて生成する（Ｓ１２２５）。続いて、レイアウト画像生成部２１４４は、レイアウト画像データの生成に用いられた単位画像データ（すなわち、１ページ内にレイアウトされた単位画像に係る単位画像データ）を単位画像蓄積部２１４２より削除する（Ｓ１２２６）。
【００９０】
続いて、レイアウト画像出力部２１４５は、レイアウト画像データの印刷データをプリンタドライバ２４に生成させる（Ｓ１２２７）。具体的には、レイアウト画像出力部２１４５は、レイアウト画像データを格納したファイルのファイル名が引数に指定されたコマンドラインによってレイアウト画像データのデータ形式に対応する文書アプリ２３をバックグラウンドで起動させ、当該文書アプリ２３に印刷指示を入力する。その結果、プリンタドライバ２４によってレイアウト画像データの印刷データが生成される。
【００９１】
プリンタドライバ２４によって生成された印刷データは、ＯＳ２５を介して画像形成装置１０に送信される。画像形成装置１０の印刷アプリ１２１２は、当該印刷データに基づいて印刷ジョブを実行する。その結果、１ページ分のレイアウト画像が印刷される。
【００９２】
図８及び図１３の処理手順より明らかなように、ユーザから見ると、画像形成装置１０においてスキャンレイアウトウィジェット２１ａを実行対象として選択した場合に、スキャンされた画像（スキャン画像）より切り出された単位画像に対するレイアウトが出力条件を満たすときは、その場で１ページ分のレイアウト画像が印刷される。一方、当該レイアウトが出力条件を満たさないときは、単位画像データはユーザ端末２０に蓄積され、印刷は実行されない。
【００９３】
続いて、ステップＳ１２２３におけるレイアウト生成処理の詳細について説明する。
【００９４】
図１６は、単位画像のレイアウト生成の概要を説明するための図である。同図に示されるように、レイアウト生成部２１４３は、様々な大きさ（幅×高さ）を有する複数の矩形の単位画像を、幅Ｗ、高さＨの配置領域７００（所定の配置領域）上に配置する際のレイアウトを生成する。ここで、幅Ｗは有限の値を持ち、高さＨは、無限大の値を持つものとする。配置領域７００の幅Ｗの値は、例えば、スキャンレイアウトウィジェット２１ａの設定情報において指定されている１ページのサイズに基づいて決定される。なお、レイアウトとは、配置領域７００上における単位画像の配置を示し、レイアウトデータは、レイアウトにおける単位画像の配置を示す情報（例えば座標情報）からなるものとする。また、ページとは、一度に表示を行うための領域をいい、以下では、幅Ｗを持つ配置領域７００を、一度に表示を行う所定の高さｈ毎に区切った各領域をページと呼ぶ。
【００９５】
図１７は、レイアウト生成処理の概要を説明するためのフローチャートである。
【００９６】
ステップＳ７０１において、レイアウト生成部２１４３は、単位画像蓄積部２１４２に蓄積されている全ての単位画像データを取得する。続いて、レイアウト生成部２１４３は、取得された単位画像データに基づき、最密充填レイアウトを生成する（Ｓ７０２）。続いて、レイアウト生成部２１４３は、生成された最密充填レイアウトが出力条件を満たす場合、当該最密充填レイアウトに基づいて１ページ分のレイアウトデータを出力する（Ｓ７０３）。
【００９７】
図１７のステップＳ７０２における最密充填レイアウトの生成処理の詳細について説明する。最密充填レイアウトの生成処理では、予め決められた幅を持ち、高さが無限の領域に対して、下記の条件を満たし、且つ、高さを最小にするように複数の単位画像を配置する問題として考えて、各単位画像のレイアウトが決定される。
（１）単位画像の形状が矩形であって、幅及び高さが有理数値である。
（２）回転を許容しない。
（３）各単位画像が互いに重ならない。
【００９８】
なお、単位画像は、様々な形状が想定されうるが、本実施の形態では、説明のため、単位画像による画像が矩形であるものとする。また、単位画像に対してマージン等を付加された矩形がレイアウト対象とされてもよい。
【００９９】
ここで、（３）の各単位画像が互いに重ならないという条件は、２つの単位画像Ｃｉ及びＣｊについて、下記の式(１)〜式（４）のうち少なくとも１つが成立することと等価である。なお、式(１)〜式（４）において、値ｗ及び値ｈは、それぞれ単位画像の幅及び高さ、値ｘ及び値ｙは、それぞれ単位画像の一端（例えば左下隅）のｘ座標及びｙ座標である。
ｘｉ＋ｗｉ≦ｘｊ    …（１）
ｘｊ＋ｗｊ≦ｘｉ    …（２）
ｙｉ＋ｈｉ≦ｙｊ    …（３）
ｙｊ＋ｈｊ≦ｙｉ    …（４）
【０１００】
各単位画像に対して、式(１)〜式(４)のうち何れを採用するかを決める場合、単純に見積もって４(n(n-1)/2)通りの可能性があるといえる。この問題は、一般的に箱詰め問題と称され、ＮＰ困難に属しており、実用的な演算時間で解決することが極めて困難であると考えられる。そこで、本実施の形態では、最適解に近似する最適近似解をできるだけ簡単な手順で求める手法を用いて、最密充填レイアウトの生成を行う。
【０１０１】
このような問題を解決するために、上述の各条件を満たし、且つ、評価値すなわち最適解からの外れ度が定まっている基本的なアルゴリズムとして、ＦＦＤＨ(First-Fit Decreasing-Height)やＮＦＤＨ(Next-Fit Decreasing-Height)等が知られている。本実施の形態では、ＦＦＤＨを用いて最密充填レイアウトの生成を行う。ＦＦＤＨについては、「E.G.Coffman, JR., M.R.Garey, D.S.Johonson, R.E.Tarjan(Bell Lab.&Stanford Univ.) "Performance bounds for level-oriented two-dimensional packing algorithms", SIAM J. Comput, vol.9., pp808-826, No.4, 1980.」に記載がある。
【０１０２】
図１８は、ＦＦＤＨによる単位画像の配置方法の一例を説明するためのフローチャートである。ＦＦＤＨによれば、先ず、単位画像を高さの大きい順にソートして、ソート順に配置領域７００への配置が行われる。以下では、説明の便宜上、配置開始位置を配置領域７００の左上隅とする。
【０１０３】
図１８のフローチャートによる処理の開始に先立って、何らかの単位画像（例えばソート順で１番目の単位画像）が配置領域７００に配置されているものとする。これを最後に配置された単位画像として、図１８のフローチャートによる処理が開始される。ステップＳ７１０において、レイアウト生成部２１４３は、全ての単位画像について配置が完了したか否かを判定する。完了していない場合（Ｓ７１０でＮｏ）、レイアウト生成部２１４３は、直前に選択した単位画像に対してソート順で次の単位画像を選択する（Ｓ７１１）。続いて、レイアウト生成部２１４３は、ステップＳ７１１で選択された単位画像（以下、「カレント単位画像」という。）が、最後に配置した単位画像の右隣に配置可能か否かを判定する（Ｓ７１２）。すなわち、最後に配置した単位画像の右端から配置領域７００の右端までの幅が、カレント単位画像の幅以上であれば、当該選択された単位画像は配置可能であると判定される。配置可能であると判定された場合（Ｓ７１２でＹｅｓ）、レイアウト生成部２１４３は、最後に配置した単位画像の右隣にカレント単位画像を配置する（Ｓ７１３）。各単位画像の配置位置を示す情報（配置位置情報）は、例えばメモリ装置１０３に記録される。続いて、処理はステップＳ７１０に戻される。
【０１０４】
一方、ステップＳ７１２において配置不可であると判定された場合（Ｓ７１２でＮｏ）、レイアウト生成部２１４３は、カレント単位画像がソート順で最後の単位画像か否かを判定する（Ｓ７１４）。カレント画像がソート順で最後の単位画像である場合（Ｓ７１４でＹｅｓ）、レイアウト生成部２１４３は、未配置の単位画像のうち、ソート順が最も早い（すなわち高さが最も高い）単位画像を、最後に配置した単位画像に対して幅方向の左端に配置される単位画像の下に、配置領域に対して左詰めで配置する（Ｓ７１５）。すなわち、当該ソート順が最も早い単位画像は、後述されるブロック単位において、次のブロックの左端に配置される。
【０１０５】
ステップＳ７１５に続いて、又はステップＳ７１４においてカレント単位画像は最後の単位画像ではないと判定された場合（Ｓ７１４でＮｏ）、処理はステップＳ７１０に戻される。
【０１０６】
図１８による処理の結果、例えば、単位画像は例えば図１９に示されるように配置される。図１９は、単位画像の最密充填レイアウトの一例を示す図である。同図では、幅が「１０」の配置領域７００に、８個の単位画像が配置されている。図１８の処理を実行することにより生成される最密充填レイアウトを、以下「初期レイアウト」という。
【０１０７】
図１９及び図１８のフローチャートによる処理より明らかなように、ＦＦＤＨによる最密充填レイアウトでは、単位画像の右隣には、当該単位画像と高さが同じ又は低い単位画像が配置される。また、左端の単位画像については、当該単位画像の下には当該単位画像と高さが同じ又は低い単位画像が配置される。以下、配置領域７００の幅を持ち、左端の単位画像の上下端で高さ及び配置領域における高さ方向の位置が規定される領域を、「ブロック」という。また、ブロックとブロックとの区切りを「行」という。
【０１０８】
図２０は、配置領域に対する単位画像の配置に基づくブロック及び行の例を示す図である。同図の例では、ブロックごとに、各単位画像は上端を揃えて一列に配置されている。但し、左端のブロックに対して右方向に一列に配置される一連のブロックは、上下端が左端のブロックの上端及び下端からなる範囲を越えなければ、他の態様で配置されてもよい。
【０１０９】
なお、ＦＦＤＨでは、最適解に対する評価値が下記の式(５)のようになることが知られている。式(５)は、単位画像の高さと幅とをそれぞれ「１」に正規化した場合の例である。また、式(５)において、値ＨalgはＦＦＤＨにより求められる高さ、値Ｈoptは最適解を表す。
Ｈalg≦１.７×Ｈopt＋１    …（５）
続いて、図１７のステップＳ７０３の詳細について説明する。図２１は、１ページ分のレイアウトデータの出力処理を説明するためのフローチャートである。
【０１１０】
ステップＳ７２１において、レイアウト生成部２１４３は、初期レイアウトが出力条件を満たしているか否かを判定する。ここでは、「少なくとも一部が２ページ目の領域にかかっているブロックが有ること」を出力条件とする。したがって、配置領域７００の上端から最下段のブロックの底辺（すなわち、最終行）までの長さが１ページの高さを超えているか否かが判定される。なお、１ページの高さは、スキャンレイアウトウィジェット２１ａの設定情報において指定されている１ページのサイズに基づいて決定される。
【０１１１】
図２２は、２ページ目にかかるブロックの例を示す図である。同図において、配置領域７００に配置されたブロック３０１〜３０４のうち、ブロック３０３の一部は、２ページ目にかかっている。また、ブロック３０４の全部は２ページ目に含まれている。したがって、初期レイアウトが同図に示されるようなものである場合、初期レイアウトは出力条件を満たすと判定される。
【０１１２】
初期レイアウトが出力条件を満たす場合（Ｓ７２１でＹｅｓ）、レイアウト生成部２１４３は、１ページ目の領域内に配置された各単位画像の配置位置情報を含むレイアウトデータを出力（生成）する（Ｓ７２２）。レイアウトデータには、１ページ目の領域内に配置された単位画像ごとに、識別情報（例えば、当該単位画像データを格納するファイルのファイル名）と配置位置情報とが含まれる。なお、２ページ目にかかるブロックに属する単位画像であっても、当該単位画像の全部が１ページ目の領域に含まれる場合、当該単位画像も１ページ目の領域内に配置された単位画像として扱われる。例えば、図２２において、ブロック３０３に属する４×２の単位画像は、１ページ目の領域内に配置された単位画像として扱われる。なお、１ページ目の領域内に配置された単位画像に係る単位画像データは、図１３のステップ１２２５においてレイアウト画像データの生成に用いられ、ステップＳ１２２６において単位画像蓄積部２１４２より削除される。
【０１１３】
一方、初期レイアウトが出力条件を満たさない場合（Ｓ７２１でＮｏ）、レイアウト生成部２１４３は、レイアウトデータの出力は行わない。
【０１１４】
図２１の処理において、レイアウトデータの対象に含められなかった単位画像データは、次回に図１３の処理が実行される際に改めてレイアウト生成部２１４３によって処理対象とされる。
【０１１５】
なお、出力条件を、「少なくとも一部がＮページ目の領域にかかっているブロックが有ること」とし、Ｎの値を可変としてもよい。例えば、Ｎの値をスキャンレイアウトウィジェット２１ａの設定情報において指定可能としてもよい。例えば、Ｎの値が「３」の場合、２ページ分を満たす単位画像データが蓄積されるまでレイアウトデータの出力は抑制される。このことは、Ｎの値が２の場合（図２１において説明した例）よりも多くの単位画像の集合（２ページ分のバッファ）に基づいて最密充填レイアウトが生成されることを意味する。したがって、より効率的なレイアウトが生成される可能性を高めることができる。すなわち、Ｎの値を大きくすればする程、レイアウトの効率性を高めることができる。但し、Ｎの値を大きくすればする程、レイアウト画像データが印刷されるまでの期間が長期化する。したがって、レイアウトの効率性と、レイアウト画像データが印刷されるタイミングとを比較考量し、実際の運用に適した値をＮの値として採用すればよい。
【０１１６】
Ｎの値が３以上となる場合、初期レイアウトに基づいて複数のページごとのレイアウト（ページレイアウト）を生成した後に、レイアウトデータの生成対象とするページレイアウト（ページ）を選択すればよい。ページレイアウトを生成は、図２１の実行前に行われればよい。図２３は、ページレイアウトの生成処理を説明するためのフローチャートである。
【０１１７】
ステップＳ７３０において、ページレイアウト生成部２１４３は、対象ページのページレイアウトを取得する。なお、対象ページのページレイアウトとは、初期レイアウトにおいて、対象ページに係るブロックからなるレイアウトである。ステップＳ７３０が最初に実行される場合、対象ページは１ページ目となる。
【０１１８】
続いて、レイアウト生成部２１４３は、対象ページのページレイアウトにおいてページを跨ぐブロックがあるか否かを判定する（Ｓ７３１）。ページを跨ぐブロックが有る場合（Ｓ７３１でＹｅｓ）、レイアウト生成部２１４３は、対象ページのレイアウト中においてページを跨ぐブロックが、対象ページの次のページの先頭に配置されるように、当該ブロックおよび当該ブロックの下に配置される各ブロックを下方へずらして再配置する（Ｓ７３２）。
【０１１９】
対象ページのページレイアウトにおいてページを跨ぐブロックが無い場合（Ｓ７３１でＮｏ）、又はステップＳ７３２に続いて、レイアウト生成部２１４３は、現在のブロックの配置状態に従い、対象ページにおけるページレイアウトを生成し、当該対象ページのページレイアウトを決定する（Ｓ７３３）。続いて、レイアウト生成部２１４３は、初期レイアウトの全てのページについてページレイアウトが決定されたか否かを判定する（Ｓ７３４）。ページレイアウトが決定されていないページが存在する場合（Ｓ７３４でＮｏ）、処理はステップＳ７３０に戻され、ステップＳ７３３でページレイアウトが決定された次のページを対象ページとして、処理が繰り返される。
【０１２０】
一方、ステップＳ７３４で、全てのページについてページレイアウトが決定されたと判定され場合（Ｓ７３４でＹｅｓ）、図２３の処理は終了する。
【０１２１】
レイアウトデータの生成対象とするページレイアウトの選択は、各ページレイアウトに含まれる単位画像の生成時期に基づいて判定するとよい。具体的には、最も古い単位画像が属するページのページレイアウト（すなわち、１ページ分のページレイアウト）についてレイアウトデータを生成するようにすればよい。そうすることにより、スキャンされた画像データが長時間経過しても印刷されないといった事態の発生を回避することができる。なお、最も古い単位画像データとは、当該単位画像データの生成時期が最も早い単位画像データをいう。換言すれば、連携部２１３ａによってスキャン画像データが受信された時期が最も早いスキャン画像データに含まれていた（当該スキャン画像データより切り出された）単位画像データをいう。
【０１２２】
または、単位画像の密度が最も高いページレイアウトをレイアウトデータの生成対象として選択するようにしてもよい。単位画像の密度は、１ページ内に配置された全ての画像の面積（以下、「画像面積」という。）の総和を１ページの面積（以下、「ページ面積」という。）によって除することによって求めてもよいし、ページ面積から画像面積を引くことによって求めてもよい。後者の場合、余白部分の面積が求められることになる。したがって、値が大きいほど密度は低い。
【０１２３】
但し、２ページ分以上のページレイアウトデータが生成されてもよい。また、スキャンレイアウトウィジェット２１ａに対するユーザによる指示入力に応じ、出力条件が満たされない場合であっても強制的にその時点におけるページレイアウトに基づいて全ページが印刷されるようにしてもよい。
【０１２４】
ところで、図１８を用いて説明した最密充填レイアウトの生成方法によれば、新しいブロックの形成時には、その時点で未配置の単位画像の中で高さが最大の単位画像が当該ブロックの左端に配置されることになる。そのため、ブロックは、下方に配置されるに従い高さが単調に減少（または非増加）する。したがって、あるブロックがページを跨いで配置された場合、当該ブロックの下に、当該ブロックと配置を交換することでブロックがページを跨ぐ事態を解消可能な高さのブロックが存在している可能性がある。そこで、ページを跨ぐブロックが存在する場合に、当該ブロック以降のブロックから１ページ目に収まるブロックを探索し、探索されたブロックを繰り上げて１ページ目に充填するようにしてもよい。
【０１２５】
より詳しくは、或るブロックがページを跨いで配置された場合、当該ブロックの下に位置するブロックから順次、対象ブロックと配置を交換した場合にページ内に収まるか否かを判定する。ページ内に収まる高さのブロックが存在したら、当該ブロックの配置と、ページを跨るブロックの配置とを入れ替える。斯かる処理は、図１７のステップＳ７０２とステップＳ７０３との間に実行されればよい。
【０１２６】
図２４は、ページを跨ぐブロックが有る場合に他のブロックを繰り上げて充填する例を示す図である。同図では、図２２においてページを跨っていたブロック３０３と、ブロック３０４とが入れ替えられた例が示されている。その結果、ブロック３０４に属する全ての単位画像が、１ページ目に充填される。その結果、より効率的に単位画像データを１ページ目に充填することができる。
【０１２７】
なお、レイアウト生成部２１４３によるレイアウトの生成処理は、必ずしもＦＦＤＨに従わなくてもよい。例えば、高さでソートされた順ではなく、古い単位画像から順に、図１８の処理が実行されてもよい。この場合ステップＳ７１２では、カレント画像が、最後に配置した単位画像より高さが低く、かつ、最後に配置した単位画像の右隣に配置可能な否かを判定すればよい。
【０１２８】
また、図１３の処理を実行する前までに、文字を示す画像（文字画像）であるか、絵柄（イメージ）を示す画像データであるか、モノクロ画像であるか、又はカラー画像であるか等、画像の内容に応じて単位画像をグループに分類し、グループごとに並列的に図１３が実行されるようにしてもよい。ここで、並列的にとは、時間的に並列であることに限定されない。時間的に直列的であっても、図１７の処理が実行されるタイミングにおいて、グループごとに図１７の処理が実行されればよい。
【０１２９】
そうすることにより、レイアウト画像データは、画像の内容が近似した単位画像データに基づいて生成される。その結果、各単位画像（文字又は絵柄）に適した画質による印刷を可能としたり、トナーの消費量の節約を可能としたりすることができる。なお、画像内容に基づく画像データの分類は、像域分離処理等、公知の技術を用いて行えばよい。
【０１３０】
上述したように、本実施の形態によれば、スキャン画像データに含まれる画像（単位画像）のレイアウトが出力条件を満たすまで、スキャン画像データはバッファリングされる。また、単位画像のレイアウトは、効率的に単位画像が配置される規則に基づいて生成される。更に、単位画像のレイアウトは、複数のスキャン画像データを跨って行われうる。したがって、柔軟かつ効率的にスキャン画像の出力（印刷）を実行することができる。
【０１３１】
また、本実施の形態によれば、レイアウト画像データの生成は、スキャンレイアウトウィジェット２１ａによって行われる。上述したように、スキャンレイアウトウィジェット２１ａを利用する場合に操作対象となりうる画像形成装置１０は、画像処理システム１内において特定の画像形成装置１０に限定されない。したがって、複数の画像形成装置１０においてスキャンされたスキャン画像データが、同一のスキャンレイアウトウィジェット２１ａに転送されうる。その結果、複数の画像形成装置１０においてスキャンされたスキャン画像が混在したレイアウト画像データを生成及び出力することが可能となる。
【０１３２】
次に、図１３のステップＳ１２２７において、印刷ウィジェット２１ｂを用いてレイアウト画像データを印刷させる例について説明する。
【０１３３】
まず、印刷ウィジェット２１ｂの基本的な動作について説明する。図２５は、印刷ウィジェットのウィジェット情報の送信時の処理手順を説明するためのシーケンス図である。
【０１３４】
ユーザ端末２０において、文書アプリ２３を操作しているユーザによって印刷指示が入力されると、プリンタドライバ２４は、文書アプリ２３によって生成された文書データに関する印刷データを生成する。印刷ウィジェット２１ｂに対応する論理プリンタが印刷先として指定された場合、プリンタドライバ２４は、当該論理プリンタに対して出力先として設定されている所定のファイル名の中間ファイルを生成し、当該中間ファイルに印刷データを出力する（Ｓ３０１）。
【０１３５】
一方、印刷ウィジェット２１ｂは、起動された後、所定のファイル名の中間ファイルが生成されるのを待機している。具体的には、印刷ウィジェット２１ｂは、中間ファイルの有無を確認するため所定のフォルダ内の所定のファイル名のファイルをポーリングしている。印刷ウィジェット２１ｂは、中間ファイルが生成されたことを検知すると、当該中間ファイルより印刷データを読み込む（Ｓ３０２）。これによって、印刷ウィジェット２１ｂに対してジョブが投入されたことになる。
【０１３６】
なお、印刷ウィジェット２１ｂが複数起動される可能性があるユーザ端末２０では、印刷ウィジェット２１ｂごとに論理プリンタを設定しておき、各論理プリンタが出力する中間ファイルのファイル名を異なるものとしておけばよい。各印刷ウィジェット２１ｂは、自らに対応する論理プリンタが出力する中間ファイルの生成を待機することで、同一の中間ファイルに対する複数の印刷ウィジェット２１ｂによる競合が回避される。なお、複数の印刷ウィジェット２１ｂを起動する意義としては、各印刷ウィジェット２１ｂに設定されている印刷設定情報を異なるものとし、所望する印刷態様に応じて利用対象とする印刷ウィジェット２１ｂを切り替えることが一例としてあげられる。ユーザは、各印刷ウィジェット２１ｂに対応する論理プリンタを選択することで、利用対象とする印刷ウィジェット２１ｂを選択することができる。
【０１３７】
続いて、印刷ウィジェット２１ｂのウィジェット情報送信部２１２ｂは、属性情報管理ファイル２１５ｂより印刷設定情報を読み込む（Ｓ３０３）。続いて、ウィジェット情報送信部２１２ｂは、印刷設定情報と印刷データとを含むウィジェット情報の登録要求をウィジェットマネージャ２２に送信する（Ｓ３０４）。なお、印刷ウィジェット２１ｂのウィジェット情報は、投入されたジョブに関する属性情報に相当する。
【０１３８】
図２６は、印刷ウィジェットのウィジェット情報の例を示す図である。同図に示されるウィジェット情報の構成は、図６において説明したスキャンレイアウトウィジェット２１ａのウィジェット情報の構成とほぼ同様である。但し、印刷ウィジェット２１ｂのウィジェット情報には、スキャンレイアウトウィジェット２１ａの設定情報の代わりに、印刷設定情報と印刷データとが含まれている。
【０１３９】
ステップＳ３０４において、印刷ウィジェット２１ｂのウィジェット情報送信部２１２ｂより送信されたウィジェット情報は、ウィジェットマネージャ２２のウィジェット情報登録部２２１によって受信される。ウィジェット情報登録部２２１は、受信されたウィジェット情報に含まれているユーザＩＤに対応するウィジェット情報管理テーブル２２７に当該ウィジェット情報を登録する（Ｓ３０５）。なお、同一ユーザによってスキャンレイアウトウィジェット２１ａが既に起動されている場合、スキャンレイアウトウィジェット２１ａの起動時に生成されたウィジェット情報管理テーブル２２７に印刷ウィジェット２１ｂのウィジェット情報も登録される。また、スキャンレイアウトウィジェット２１ａの起動に応じて広告が発行されている場合、印刷ウィジェット２１ｂのウィジェット情報の登録に応じて、同一ユーザに関して改めて広告は発行されない。
【０１４０】
なお、印刷ウィジェット２１ｂは、ウィジェット情報の登録後、中間ファイルのポーリングを再開する。
【０１４１】
ユーザ端末２０において印刷ウィジェット２１ｂに対してジョブを投入後、ユーザは、印刷ウィジェット２１ｂを利用するために画像形成装置１０の設置場所へ移動する。なお、スキャンレイアウトウィジェット２１ａと同様、ユーザは、広告を受信している複数の画像形成装置１０のいずれからも印刷ウィジェット２１ｂを利用することができる。
【０１４２】
ユーザによって操作パネル１５を介してプロバイダアプリ１２２１の利用指示が入力され、ウィジェット選択画面６２０が表示されるまでは、図８のステップＳ２０１からＳ２０６において説明した通りである。但し、同一ユーザに関して（同一のユーザ端末２０において）スキャンレイアウトウィジェット２１ａが起動され、印刷ウィジェット２１ｂに対してジョブが投入されている場合、ステップＳ２０５において、ウィジェットマネージャ２２のウィジェット情報提供部２２３によってプロバイダアプリ１２２１に転送されるウィジェット情報の一覧の中には、スキャンレイアウトウィジェット２１ａのウィジェット情報（図１０参照）に加え、印刷ウィジェット２１ｂのウィジェット情報も含まれる。なお、ここで転送される印刷ウィジェット２１ｂのウィジェット情報は、図２６に示されるウィジェット情報に対してウィジェット中継用ＵＲＬが付加されたものとなる。
【０１４３】
したがって、この場合、ステップＳ２０６において表示されるウィジェット選択画面６２０の表示内容は、図２７に示されるようなものとなる。
【０１４４】
図２７は、印刷ウィジェットにジョブが投入された場合のウィジェット選択画面の表示例を示す図である。図２７中、図１１と同一部分には同一符号を付している。図２７に示されるウィジェット選択画面６２０には、印刷ウィジェット２１ｂに投入されたジョブに対応するボタン６２２が表示されている。ボタン６２２には、印刷ウィジェット２１ｂの表示名に加え、投入されたジョブにおいて印刷対象とされている文書データの文書名（「文書Ａ」）が表示されている。
【０１４５】
ウィジェット選択画面６２０においてボタン６２２が押下され、操作パネル１５のスタートキーが押下されると、図２８に示される処理が開始される。
【０１４６】
図２８は、印刷ウィジェットの実行時の処理手順を説明するためのシーケンス図である。
【０１４７】
ウィジェット連携部１３４は、押下されたボタン６２２に対応するウィジェット情報（以下、「カレントウィジェット情報」という。）に含まれている連携機能識別子（「ｐｒｉｎｔ」）に基づいて、印刷を実行すべきことを認識する。印刷を実行するためには印刷設定情報及び印刷データを入手する必要がある。そこで、ウィジェット連携部１３４は、印刷設定情報及び印刷データの送信要求をカレントウィジェット情報に含まれているウィジェット中継用ＵＲＬ宛に送信する（Ｓ４０１）。
【０１４８】
ウィジェット中継用ＵＲＬ宛の印刷設定情報及び印刷データの送信要求は、ウィジェットマネージャ２２の仲介部２２４によって受信される。仲介部２２４は、ウィジェット情報管理テーブル２２７に登録されているウィジェット情報の中で、当該ウィジェット中継用ＵＲＬが対応するウィジェット情報より印刷設定情報及び印刷データを取得する。仲介部２２４は、取得された印刷設定情報及び印刷データをプロバイダアプリ１２２１のウィジェット連携部１３４に返信する（Ｓ４０２）。
【０１４９】
ウィジェット連携部１３４は、受信された印刷設定情報及び印刷データを機能制御部１３５に入力する。続いて、機能制御部１３５は、入力された印刷設定情報及び印刷データに基づく印刷ジョブを印刷アプリ１２１２に実行させる（Ｓ４０３）。その結果、当該印刷設定情報及び印刷データに基づく印刷画像が印刷された印刷用紙がプリンタ１３より出力される。
【０１５０】
以上のように動作する印刷ウィジェット２１ｂを利用してレイアウト画像データの印刷を実行する場合、スキャンレイアウトウィジェット２１ａのレイアウト画像出力部２１４５は、図１３のステップＳ１２２７において、レイアウト画像データを格納したファイルのファイル名が引数に指定されたコマンドラインによってレイアウト画像データのデータ形式に対応する文書アプリ２３をバックグラウンドで起動させ、当該文書アプリ２３に印刷指示を入力する。その結果、プリンタドライバ２４によってレイアウト画像データの印刷データが生成される。ここで、当該プリンタドライバ２４の印刷先を印刷ウィジェット２１ｂに対応する論理プリンタに設定しておけばよい。そうすることにより、当該プリンタドライバ２４は、当該論理プリンタに対して出力先として設定されている所定のファイル名の中間ファイルを生成し、当該中間ファイルに印刷データを出力する。その結果、当該中間ファイルの生成に応じ、図２５のステップＳ３０２以降が実行される。
【０１５１】
また、レイアウト画像データのデータ形式が、画像形成装置１０によって印刷可能なデータ形式である場合、スキャンレイアウトウィジェット２１ａのレイアウト画像出力部２１４５は、図１３のステップＳ１２２７において、レイアウト画像データを格納したファイルを印刷ウィジェット２１ｂのポーリング対象の中間ファイルとして出力してもよい。この場合も同様に、当該中間ファイルの生成に応じ、図２５のステップＳ３０２以降が実行される。
【０１５２】
印刷ウィジェット２１ｂを利用してレイアウト画像データの印刷を実行する場合（すなわち、スキャンレイアウトウィジェット２１ａと印刷ウィジェット２１ｂとを連携させる場合）、ユーザは、画像形成装置１０において、以下のような操作を行うことになる。
【０１５３】
ユーザは、まず、プロバイダアプリ１２２１の利用指示を入力する。その結果、ユーザ選択画面６１０（図９参照）が操作パネル１５に表示される。ユーザが、ユーザ選択画面６１０において自らに対応するボタンを押下すると、ウィジェット選択画面６２０（図１１参照）が操作パネル１５に表示される。ユーザは、ボタン６２１を押下して、スキャンレイアウトウィジェット２１ａを実行させる。続いて、ユーザは改めてウィジェット選択画面６２０を表示させる。この際、ユーザ端末２０側において出力条件が満たされ、レイアウト画像データが生成されていれば、ウィジェット選択画面６２０の表示内容は図２７に示されるようになる。そこで、ユーザがボタン６２２を押下すると、操作対象の画像形成装置１０よりレイアウト画像が印刷された印刷用紙が出力される。
【０１５４】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【０１５５】
１            画像処理システム
１０          画像形成装置
１１          コントローラ
１２          スキャナ
１３          プリンタ
１４          モデム
１５          操作パネル
１６          ネットワークインタフェース
１７          ＳＤカードスロット
２０          ユーザ端末
２１ａ        スキャンレイアウトウィジェット
２１ｂ        印刷ウィジェット
２２          ウィジェットマネージャ
２３          文書アプリ
２４          プリンタドライバ
２５          ＯＳ
８０          ＳＤカード
１１１        ＣＰＵ
１１２        ＲＡＭ
１１３        ＲＯＭ
１１４        ＨＤＤ
１２１        標準アプリ
１２２        ＳＤＫアプリ
１２３        ＳＤＫプラットフォーム
１２４        コントロールサービス
１２５        ＯＳ
１３１        ユーザ検知部
１３２        ＵＩ制御部
１３３        ウィジェット情報取得部
１３４        ウィジェット連携部
１３５        機能制御部
１３６        ユーザ管理テーブル
２００        ドライブ装置
２０１        記録媒体
２０２        補助記憶装置
２０３        メモリ装置
２０４        ＣＰＵ
２０５        インタフェース装置
２０６        表示装置
２０７        入力装置
２１１        ウィジェットＵＩ部
２１２        ウィジェット情報送信部
２１３        連携部
２１４        ロジック部
２１５        属性情報管理ファイル
２２１        ウィジェット情報登録部
２２２        広告部
２２３        ウィジェット情報提供部
２２４        仲介部
２２７        ウィジェット情報管理テーブル
１２１１      スキャンアプリ
１２１２      印刷アプリ
１２１３      コピーアプリ
１２１４      ＦＡＸアプリ
１２２１      プロバイダアプリ
２１４１      単位画像切り出し部
２１４２      単位画像蓄積部
２１４３      レイアウト生成部
２１４４      レイアウト画像生成部
２１４５      レイアウト画像出力部
【先行技術文献】
【特許文献】
【０１５６】
【特許文献１】特開２００７−１５０６９８号公報
【図１】
0005482208.tif 000002
【図２】
0005482208.tif 000003
【図３】
0005482208.tif 000004
【図４】
0005482208.tif 000005
【図５】
0005482208.tif 000006
【図６】
0005482208.tif 000007
【図７】
0005482208.tif 000008
【図８】
0005482208.tif 000009
【図９】
0005482208.tif 000010
【図１０】
0005482208.tif 000011
【図１１】
0005482208.tif 000012
【図１２】
0005482208.tif 000013
【図１３】
0005482208.tif 000014
【図１４】
0005482208.tif 000015
【図１５】
0005482208.tif 000016
【図１６】
0005482208.tif 000017
【図１７】
0005482208.tif 000018
【図１８】
0005482208.tif 000019
【図１９】
0005482208.tif 000020
【図２０】
0005482208.tif 000021
【図２１】
0005482208.tif 000022
【図２２】
0005482208.tif 000023
【図２３】
0005482208.tif 000024
【図２４】
0005482208.tif 000025
【図２５】
0005482208.tif 000026
【図２６】
0005482208.tif 000027
【図２７】
0005482208.tif 000028
【図２８】
0005482208.tif 000029