(57)【要約】【課題】入力元及び出力先の違いを吸収して文書の加工処理の共通化し、さらに利用者に対して文書処理を容易に設定できるインターフェースを提供する。【解決手段】入力元に対応付けられ、入力処理された文書情報を示す入力ドキュメントクラスと、出力先に対応付けられ、出力処理される文書情報を示す出力ドキュメントクラスと、ユーザ要求と入力ドキュメントの種類と出力ドキュメントの種類とを対応付けて管理して、利用者からのユーザ要求を受け付けた場合、このユーザ要求と管理しているユーザ要求を比較して、ユーザ要求と対応付けられた入力ドキュメントのサブクラスと出力ドキュメントのサブクラスを生成して制御を行うユーザドキュメントクラスと、を備える。【選択図】        図１１
2006259872.tif 000002
【特許請求の範囲】
【請求項１】
文書情報を入力処理する入力手段及び文書情報を出力処理する出力手段を複数備えた文書処理装置において、
制御する対象となる前記入力手段毎に対応付けられ、予め定められた形式に変換された文書情報として複数個生成されることを可能とする入力文書手段と、
制御する対象となる前記出力手段毎に対応付けられ、前記入力文書手段が保持する文書情報に基づいて出力処理される文書情報として複数個生成されることを可能とする出力文書手段と、
利用者から受け付ける文書処理の要求情報と、前記入力手段毎に対応付けられた前記入力文書手段を制御するか否かを示す入力文書制御情報と、前記出力手段毎に対応付けられた前記出力文書手段を制御するか否かを示す出力文書制御情報と、を対応付けて管理して、利用者からの文書処理の要求を示した利用者要求情報を受け付けた場合、該利用者要求情報と該対応付けから制御する前記入力文書手段及び前記出力文書手段を特定し、特定された前記入力文書手段及び前記出力文書手段を生成して制御を行う利用者文書手段と、
を備えたことを特徴とする文書処理装置。
【請求項２】
前記入力文書手段が有する機能を含み、紙文書を入力処理する入力紙文書手段と、
前記入力文書手段が有する機能を含み、記憶媒体に記憶された電子文書を入力処理する入力電子文書手段と、
前記入力文書手段が有する機能を含み、電子文書を通信回線から入力処理する入力通信文書手段と、を備え、
前記利用者文書手段は、利用者から受け付ける文書処理の要求情報と前記入力紙文書手段を制御するか否かを示す入力紙文書制御情報と前記入力電子文書手段を制御するか否かを示す入力電子文書制御情報と前記入力通信文書手段を制御するか否かを示す入力通信文書制御手段とを対応付けて管理して、前記利用者要求情報を受け付けた場合、前記利用者要求情報と該対応付けから、制御する前記入力紙文書手段、前記入力電子文書手段及び前記入力通信文書手段のいずれか１つ又は複数を特定してから制御を行うこと
を特徴とする請求項１に記載の文書処理装置。
【請求項３】
前記出力文書手段が有する機能を含み、紙文書として出力処理する出力紙文書手段と、
前記出力文書手段が有する機能を含み、記憶媒体に電子文書を出力処理する出力電子文書手段と、
前記出力文書手段が有する機能を含み、電子文書を通信回線へ出力処理する出力通信文書手段と、を備え、
前記利用者文書手段は、利用者から受け付ける文書処理の要求情報と前記出力紙文書手段を制御するか否かを示す出力紙文書制御情報と前記出力電子文書手段を制御するか否かを示す出力電子文書制御情報と前記出力通信文書手段を制御するか否かを示す出力通信文書制御情報とを対応付けて管理して、前記利用者要求情報を受け付けた場合、前記利用者要求情報と該対応付けから、制御する前記出力紙文書手段、前記出力電子文書手段及び前記出力通信文書手段のいずれか１つ又は複数を特定してから制御を行うこと
を特徴とする請求項１又は２に記載の文書処理装置。
【請求項４】
文書情報を入力処理する入力手段及び文書情報を出力処理する出力手段を複数備えた画像形成装置において、
制御する対象となる前記入力手段毎に対応付けられ、予め定められた形式に変換された文書情報として複数個生成されることを可能とする入力文書手段と、
制御する対象となる前記出力手段毎に対応付けられ、前記入力文書手段が保持する文書情報に基づいて出力処理される文書情報として複数個生成されることを可能とする出力文書手段と、
利用者から受け付ける文書処理の要求情報と、前記入力手段毎に対応付けられた前記入力文書手段を制御するか否かを示す入力文書制御情報と、前記出力手段毎に対応付けられた前記出力文書手段を制御するか否かを示す出力文書制御情報と、を対応付けて管理して、利用者からの文書処理の要求を示した利用者要求情報を受け付けた場合、該利用者要求情報と該対応付けから制御する前記入力文書手段及び前記出力文書手段を特定し、特定された前記入力文書手段及び前記出力文書手段を生成して制御を行う利用者文書手段と、
を備えたこと特徴とする画像形成装置。
【請求項５】
文書情報を入力処理する入力手段及び文書情報を出力処理する出力手段を複数備えた文書処理プログラムにおいて、
制御する対象となる前記入力手段毎に対応付けられ、予め定められた形式に変換された文書情報として複数個生成されることを可能とする入力文書手段と、
制御する対象となる前記出力手段毎に対応付けられ、前記入力文書手段が保持する文書情報に基づいて出力処理される文書情報として複数個生成されることを可能とする出力文書手段と、
利用者から受け付ける文書処理の要求情報と、前記入力手段毎に対応付けられた前記入力文書手段を制御するか否かを示す入力文書制御情報と、前記出力手段毎に対応付けられた前記出力文書手段を制御するか否かを示す出力文書制御情報と、を対応付けて管理して、利用者からの文書処理の要求を示した利用者要求情報を受け付けた場合、該利用者要求情報と該対応付けから制御する前記入力文書手段及び前記出力文書手段を特定し、特定された前記入力文書手段及び前記出力文書手段を生成して制御を行う利用者文書手段と、
を備えたこと特徴とする文書処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書処理を共通化した文書処理装置、画像形成装置及び文書処理プログラムに関するものであり、利用者の要求に応じて入出力を設定する技術に関するものである。
【背景技術】
【０００２】
従来、プリンタ、コピー及びスキャナなどの複数の機能を一つの筐体内に収納した複合機が知られている。かかる複合機では、ＵＮＩＸ（Ｒ）などの汎用ＯＳ上に、プリンタアプリ、コピーアプリ及びスキャナアプリと呼ばれる複数のアプリケーションを搭載し、これらのアプリケーションの実行処理を切替えながら複数の機能を実現していた。
【０００３】
ところが、上記プリンタアプリ、コピーアプリ及びスキャナアプリは、それぞれエンジン制御、メモリ制御及びシステム制御などを別個におこなっているので、重複処理という無駄が生じていた。
【０００４】
このため、特許文献１では、複合機に搭載される複数のアプリケーションがそれぞれ担っていたエンジン制御、メモリ制御及びシステム制御などの処理を共通処理部分（プラットホーム）として各アプリケーションから括り出すことにより、アプリケーションの開発効率の向上を図っている。
【０００５】
また、特許文献２では、印刷装置に搭載される印刷制御ソフトウェアを、オブジェクト指向設計による複数のソフトウェア部品から構成し、かかる部品群の協調動作により印刷処理を行うこととしている。
【０００６】
【特許文献１】特開２００２−０８４３８３号公報
【特許文献２】特開平１１−３２７８８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、この特許文献１で開示されている発明は、ハードウェアを制御する処理部分を共通化するものであり、各アプリケーションの内部処理全般を共通化するものではなく、さらには共通化した上で内部処理を機能に応じたクラスに分割していないため、内部処理全般の開発効率が良くないという問題がある。つまり、複合機上のアプリケーションには、開発効率の向上を図るためには内部処理を共通化して特徴のある機能をクラスとして分割することで改善の余地が残されている。
【０００８】
例えば、ユーザが複合機においてＦＡＸあるいはスキャナ等の複数の入力元から入力された文書を、プリンタ、ローカルストレージあるいはＦＡＸ等から出力する場合では、コピーあるいはＦＡＸなどのアプリケーション毎に含まれたジョブで入力から出力まで実現されているため、アプリケーション毎に異なるジョブで加工処理がなされることとなり、入力された文書に対する加工処理を共通化されていなかった。
【０００９】
また、特許文献２で開示されている発明は、印刷制御ソフトウェアをオブジェクト指向設計による複数のソフトウェア部品から構成したものであり、入力された文書を出力するまでを共通化した加工処理についての流れを制御するソフトウェア部品を開示したものではない。したがって、多機能化により複数の入力元及び出力先を有する複合機において、特許文献２で開示されている発明を応用して、入力された文書を出力するまでの加工処理に対応するソフトウェア部品を作成したとしても、従来はユーザが要求処理に応じて異なるアプリケーション毎のジョブで処理を行っていたため、全てのアプリケーションにまたがる処理を共通化して加工処理を効率よく制御することは容易でない。
【００１０】
これらのことから、複合機に搭載されるアプリケーションにおいて入力元及び出力先の違いを吸収して文書の加工処理の共通化をいかにして効率よく実現するかが大きな課題となっている。なお、かかる課題は複合機についてのみ生じるものではなく、たとえば、複数の入力手段を有し、入力元から入力された文書に対して、例えば「２ in １」等の加工処理を行った後、複数備えられた出力先のうち一つ又は複数から出力する場合にも同様に生ずる課題である。
【００１１】
さらに、アプリケーションという概念を廃止し、加工処理を共通化すると複数の入力元及び出力先を設定するだけで文書処理が行われることになる。この場合、従来の手法になれている利用者が利用する際にとまどうことも考えられるという問題がある。
【００１２】
本発明は、上述した従来技術による問題点を解消するためになされたものであり、入力元及び出力先の違いを吸収して文書の加工処理を共通化し、さらに利用者に対して文書処理を容易に設定できるインターフェースを提供できる文書処理装置、画像形成装置及び文書処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
上述した課題を解決し、目的を達成するために、請求項１にかかる発明は、文書情報を入力処理する入力手段及び文書情報を出力処理する出力手段を複数備えた文書処理装置において、制御する対象となる前記入力手段毎に対応付けられ、予め定められた形式に変換された文書情報として複数個生成されることを可能とする入力文書手段と、制御する対象となる前記出力手段毎に対応付けられ、前記入力文書手段が保持する文書情報に基づいて出力処理される文書情報として複数個生成されることを可能とする出力文書手段と、利用者から受け付ける文書処理の要求情報と、前記入力手段毎に対応付けられた前記入力文書手段を制御するか否かを示す入力文書制御情報と、前記出力手段毎に対応付けられた前記出力文書手段を制御するか否かを示す出力文書制御情報と、を対応付けて管理して、利用者からの文書処理の要求を示した利用者要求情報を受け付けた場合、該利用者要求情報と該対応付けから制御する前記入力文書手段及び前記出力文書手段を特定し、特定された前記入力文書手段及び前記出力文書手段を生成して制御を行う利用者文書手段と、を備えたことを特徴とする。
【００１４】
また、請求項２にかかる発明は、請求項１にかかる発明において、前記入力文書手段が有する機能を含み、紙文書を入力処理する入力紙文書手段と、前記入力文書手段が有する機能を含み、記憶媒体に記憶された電子文書を入力処理する入力電子文書手段と、前記入力文書手段が有する機能を含み、電子文書を通信回線から入力処理する入力通信文書手段と、を備え、前記利用者文書手段は、利用者から受け付ける文書処理の要求情報と前記入力紙文書手段を制御するか否かを示す入力紙文書制御情報と前記入力電子文書手段を制御するか否かを示す入力電子文書制御情報と前記入力通信文書手段を制御するか否かを示す入力通信文書制御手段とを対応付けて管理して、前記利用者要求情報を受け付けた場合、前記利用者要求情報と該対応付けから、制御する前記入力紙文書手段、前記入力電子文書手段及び前記入力通信文書手段のいずれか１つ又は複数を特定してから制御を行うことを特徴とする。
【００１５】
また、請求項３にかかる発明は、請求項１又は２にかかる発明において、前記出力文書手段が有する機能を含み、紙文書として出力処理する出力紙文書手段と、前記出力文書手段が有する機能を含み、記憶媒体に電子文書を出力処理する出力電子文書手段と、前記出力文書手段が有する機能を含み、電子文書を通信回線へ出力処理する出力通信文書手段と、を備え、前記利用者文書手段は、利用者から受け付ける文書処理の要求情報と前記出力紙文書手段を制御するか否かを示す出力紙文書制御情報と前記出力電子文書手段を制御するか否かを示す出力電子文書制御情報と前記出力通信文書手段を制御するか否かを示す出力通信文書制御情報とを対応付けて管理して、前記利用者要求情報を受け付けた場合、前記利用者要求情報と前記対応付けから、制御する前記出力紙文書手段、前記出力電子文書手段及び前記出力通信文書手段のいずれか１つ又は複数を特定してから制御を行うことを特徴とする。
【００１６】
また、請求項４にかかる発明は、文書情報を入力処理する入力手段及び文書情報を出力処理する出力手段を複数備えた画像形成装置において、制御する対象となる前記入力手段毎に対応付けられ、予め定められた形式に変換された文書情報として複数個生成されることを可能とする入力文書手段と、制御する対象となる前記出力手段毎に対応付けられ、前記入力文書手段が保持する文書情報に基づいて出力処理される文書情報として複数個生成されることを可能とする出力文書手段と、利用者から受け付ける文書処理の要求情報と、前記入力手段毎に対応付けられた前記入力文書手段を制御するか否かを示す入力文書制御情報と、前記出力手段毎に対応付けられた前記出力文書手段を制御するか否かを示す出力文書制御情報と、を対応付けて管理して、利用者からの文書処理の要求を示した利用者要求情報を受け付けた場合、該利用者要求情報と該対応付けから制御する前記入力文書手段及び前記出力文書手段を特定し、特定された前記入力文書手段及び前記出力文書手段を生成して制御を行う利用者文書手段と、を備えたこと特徴とする。
【００１７】
また、請求項５にかかる発明は、文書情報を入力処理する入力手段及び文書情報を出力処理する出力手段を複数備えた文書処理プログラムにおいて、制御する対象となる前記入力手段毎に対応付けられ、予め定められた形式に変換された文書情報として複数個生成されることを可能とする入力文書手段と、制御する対象となる前記出力手段毎に対応付けられ、前記入力文書手段が保持する文書情報に基づいて出力処理される文書情報として複数個生成されることを可能とする出力文書手段と、利用者から受け付ける文書処理の要求情報と、前記入力手段毎に対応付けられた前記入力文書手段を制御するか否かを示す入力文書制御情報と、前記出力手段毎に対応付けられた前記出力文書手段を制御するか否かを示す出力文書制御情報と、を対応付けて管理して、利用者からの文書処理の要求を示した利用者要求情報を受け付けた場合、該利用者要求情報と該対応付けから制御する前記入力文書手段及び前記出力文書手段を特定し、特定された前記入力文書手段及び前記出力文書手段を生成して制御を行う利用者文書手段と、を備えたこと特徴とする。
【発明の効果】
【００１８】
請求項１にかかる発明によれば、異なる入力手段から入力処理された場合でも予め定めた形式に変換するため加工処理などを共通化できるとともに、文書処理の要求情報、入力文書手段情報及び出力文書手段情報を対応付けているため、利用者からどのような文書処理の要求を受け付けた場合でも、対応関係から文書処理に用いる入力文書手段及び出力文書手段を特定することができるため、利用者に対して文書処理を容易に設定できるインターフェースを提供することができるという効果を奏する。
【００１９】
また、請求項２にかかる発明によれば、入力媒体毎に異なる入力紙文書手段、入力電子文書手段、通信入力手段を備えて、利用者の要求に応じてこれらが制御されることで入力媒体に適した入力処理を可能にするという効果を奏する。
【００２０】
また、請求項３にかかる発明によれば、出力媒体毎に異なる出力紙文書手段、出力電子文書手段、通信出力手段を備えて、利用者の要求に応じてこれらが制御されることで出力媒体に適した出力処理を可能にするという効果を奏する。
【００２１】
また、請求項４にかかる発明によれば、異なる入力手段から入力処理された場合でも予め定めた形式に変換するため加工処理などを共通化できるとともに、文書処理の要求情報、入力文書手段情報及び出力文書手段情報を対応付けているため、利用者からどのような文書処理の要求を受け付けた場合でも、対応関係から文書処理に用いる入力文書手段及び出力文書手段を特定することができるため、利用者に対して文書処理を容易に設定できるインターフェースを提供することができるという効果を奏する。
【００２２】
また、請求項５にかかる発明によれば、異なる入力手段から入力処理された場合でも予め定めた形式に変換するため加工処理などを共通化できるとともに、文書処理の要求情報、入力文書手段情報及び出力文書手段情報を対応付けているため、利用者からどのような文書処理の要求を受け付けた場合でも、対応関係から文書処理に用いる入力文書手段及び出力文書手段を特定することができるため、利用者に対して文書処理を容易に設定できるインターフェースを提供することができるという効果を奏する。
【発明を実施するための最良の形態】
【００２３】
以下に添付図面を参照して、この発明にかかる文書処理装置、画像形成装置及び文書処理プログラムの最良な実施の形態を詳細に説明する。なお、本実施の形態では、この発明を画像形成装置に適用した場合について説明するが、本発明はこれに限らず、複数の入出力部から入出力した文書に対して加工処理を行う各種装置に適用することができる。
【００２４】
（第１の実施の形態）
まず、本発明の第１の実施の形態に係る画像形成装置（以下「複合機」と言う）１の概要について図１、図２、図３、図４、図２１及び図２２を用いて説明する。図１は、本実施の形態に係る複合機１を取り巻くネットワーク環境を説明するためのネットワーク図であり、図２は、図１に示した複合機１のハードウェア構成を示すブロック図であり、図３は、図１に示した複合機１のソフトウェアとハードウェアの関係を説明するための概念図である。図４は、複合機１の操作パネル４００の一例を示した図である。そして図２１は、複合機に搭載されるソフトウェア構成の変遷を説明するための説明図であり、図２２は、従来の複合機のソフトウェアとハードウェアの関係を説明するための説明図である。
【００２５】
図１に示すように、近年のネットワーク化の進展により、オフィスなどに設けられたＰＣ（Personal Computer）などの機器は、ＬＡＮ（Local Area Network）などのネットワークに接続され、相互に通信することが通常となった。たとえば、本図に示したように、かかるネットワークには、クライアントＰＣ、ＳＭＴＰ（Simple Mail Transfer Protocol）サーバ、ＦＴＰ（File Transfer Protocol）サーバ、サーバＰＣなどが接続され、電子メールの送受信やファイル転送をすることができ、モデム接続された配信サーバは、オフィス外のファックス装置と通信することができる。
【００２６】
このようなネットワーク化の進展に伴い、複合機１もかかるネットワークに接続され、ＰＣ等の機器と相互に通信することが可能となり、ハードディスク等の記憶装置を内蔵することで、いわゆるネットワーク複合機へと進化し、ユーザの様々なニーズに応えることができるようになった。
【００２７】
具体的には、複合機１は、通常のコピー機能に加えて、クライアントＰＣからの印刷要求により文書データ等を印刷するプリンタ機能、クライアントＰＣからのファックス要求により文書データ等をサーバＰＣに接続されたモデムを経由して他のオフィスのファックス機器に送信するファックス機能、受信したファックス文書やコピー文書を内蔵したハードディスクに蓄積する蓄積機能などを有している。このような多くの機能を実現するために、従来からの複合機に搭載されるソフトウェアは規模が大きくなり、かつ複雑なものとなる。それにともない、それらのソフトウェアの開発と維持管理のための工数も大幅に増大している。そこで本実施の形態にかかる複合機１に搭載されるソフトウェアでは、開発と維持管理のための工数を減少させる。なお、複合機１に搭載されるソフトウェアの構成については後述する。
【００２８】
図２は、かかる複合機１のハードウェア構成を示すブロック図である。本図に示すように、この複合機１は、コントローラ１０とエンジン部（Engine）６０とをＰＣＩ（Peripheral Component Interconnect）バスで接続した構成となる。コントローラ１０は、複合機１全体の制御と描画、通信、操作部２０からの入力を制御するコントローラである。エンジン部６０は、ＰＣＩバスに接続可能なプリンタエンジンなどであり、たとえば白黒プロッタ、１ドラムカラープロッタ、４ドラムカラープロッタ、スキャナまたはファックスユニットなどである。なお、このエンジン部６０には、プロッタなどのいわゆるエンジン部分に加えて、誤差拡散やガンマ文書データなどの画像処理部分が含まれる。
【００２９】
コントローラ１０は、ＣＰＵ１１と、ノースブリッジ（ＮＢ）１３と、システムメモリ（ＭＥＭ−Ｐ）１２と、サウスブリッジ（ＳＢ）１４と、ローカルメモリ（ＭＥＭ−Ｃ）１７と、ＡＳＩＣ（Application Specific Integrated Circuit）１６と、ハードディスクドライブ（ＨＤＤ）１８とを有し、ノースブリッジ（ＮＢ）１３とＡＳＩＣ１６との間をＡＧＰ（Accelerated Graphics Port）バス１５で接続した構成となる。また、ＭＥＭ−Ｐ１２は、ＲＯＭ（Read Only Memory）１２ａと、ＲＡＭ(Random Access Memory)１２ｂとをさらに有する。
【００３０】
ＣＰＵ１１は、複合機１の全体制御を行うものであり、ＮＢ１３、ＭＥＭ−Ｐ１２及びＳＢ１４からなるチップセットを有し、このチップセットを介して他の機器と接続される。
【００３１】
ＮＢ１３は、ＣＰＵ１１とＭＥＭ−Ｐ１２、ＳＢ１４、ＡＧＰ１５とを接続するためのブリッジであり、ＭＥＭ−Ｐ１２に対する読み書きなどを制御するメモリコントローラと、ＰＣＩマスタ及びＡＧＰターゲットとを有する。
【００３２】
ＭＥＭ−Ｐ１２は、プログラムやデータの格納用メモリ、プログラムやデータの展開用メモリ、プリンタの描画用メモリなどとして用いるシステムメモリであり、ＲＯＭ１２ａとＲＡＭ１２ｂとからなる。ＲＯＭ１２ａは、プログラムやデータの格納用メモリとして用いる読み出し専用のメモリであり、ＲＡＭ１２ｂは、プログラムやデータの展開用メモリ、プリンタの描画用メモリなどとして用いる書き込み及び読み出し可能なメモリである。
【００３３】
ＳＢ１４は、ＮＢ１３とＰＣＩデバイス、周辺デバイスとを接続するためのブリッジである。このＳＢ１４は、ＰＣＩバスを介してＮＢ１３と接続されており、このＰＣＩバスには、ネットワークインターフェース（Ｉ／Ｆ）部なども接続される。
【００３４】
ＡＳＩＣ１６は、画像処理用のハードウェア要素を有する画像処理用途向けのＩＣ（Integrated Circuit）であり、ＡＧＰ１５、ＰＣＩバス、ＨＤＤ１８及びＭＥＭ−Ｃ１７をそれぞれ接続するブリッジの役割を有する。このＡＳＩＣ１６は、ＰＣＩターゲット及びＡＧＰマスタと、ＡＳＩＣ１６の中核をなすアービタ（ＡＲＢ）と、ＭＥＭ−Ｃ１７を制御するメモリコントローラと、ハードウェアロジックなどにより画像データの回転などを行う複数のＤＭＡＣ（Direct Memory Access Controller）と、エンジン部６０との間でＰＣＩバスを介したデータ転送を行うＰＣＩユニットとからなる。このＡＳＩＣ１６には、ＰＣＩバスを介してＦＣＵ（Fax Control Unit）３０、ＵＳＢ（Universal Serial Bus）４０、ＩＥＥＥ１３９４（the Institute of Electrical and Electronics Engineers 1394）インターフェース５０が接続される。
【００３５】
ＭＥＭ−Ｃ１７は、コピー用画像バッファ、符号バッファとして用いるローカルメモリであり、ＨＤＤ（Hard Disk Drive）１８は、画像データの蓄積、プログラムの蓄積、フォントデータの蓄積、フォームの蓄積を行うためのストレージである。
【００３６】
ＡＧＰ１５は、グラフィック処理を高速化するために提案されたグラフィックスアクセラレーターカード用のバスインターフェースであり、ＭＥＭ−Ｐ１２に高スループットで直接アクセスすることにより、グラフィックスアクセラレーターカードを高速にするものである。
【００３７】
図３は、かかる複合機１のハードウェア及びソフトウェアの構成を示した概念図であり、具体的には、後述する本実施の形態の特徴部分であるドキュメントハンドリング部２１２を含む統合アプリケーション１１０と、ソフトウェア１００及びハードウェア１５０の階層関係を示している。本図に示すように、ハードウェア１５０は、ハードウェアリソース１５１を有し、このハードウェアリソース１５１は、スキャナ１５１ａ、プロッタ１５１ｂ、ＨＤＤ（Hard Disk Drive）１５１ｃ、ネットワーク１５１ｄ及びその他のリソース１５１ｅを有する。なお、その他のリソース１５１ｅは、１５１ａ〜１５１ｄ以外のハードウェアリソース１５１のことであり、たとえば、操作パネルなどの入出力デバイスを示す。
【００３８】
図４は、複合機１の操作パネル４００の一例を示した図である。本図に示したように、かかる操作パネル４００は、初期設定キー４０１、コピーキー４０２、コピーサーバーキー４０３、プリンタキー４０４、送信キー４０５、テンキー４０６、クリア／ストップキー４０７、スタートキー４０８、予熱キー４０９、リセットキー４１０、スキャナキー４１１及び液晶タッチパネル４２０を有する。このような構成を有する操作パネル４００でユーザが所定の操作を行った場合に、統合アプリケーション１１０に含まれている本実施の形態の特徴である各クラスを実体化したオブジェクトが動作する。
【００３９】
例えば、初期設定キー４０１をタッチすると、液晶タッチパネル４２０に初期設定用のメニューが表示され、かかるメニューにおいては、収納される用紙サイズなどを設定することができる。また、コピーをしたい場合にはコピーキー４０２を、コピー結果を複合機１に蓄積したい場合にはコピーサーバーキー４０３を、プリンタに係る操作をおこないたい場合には、プリンタキー４０４を、ファックスや蓄積画像などの送信をしたい場合には送信キー４０５を、それぞれタッチすると、液晶タッチパネル４２０に対応したメニューが表示される。
【００４０】
図３に戻り、かかるハードウェア１５０に搭載されるソフトウェア１００は階層化されており、オペレーティングシステム１０３の上層にはサービス層１０２が構築され、このサービス層１０２の上層にはアプリケーション層１０１が構築されている。そして、サービス層１０２は、各ハードウェアリソース（１５１ａ〜１５１ｅ）を制御するドライバーに相当する、スキャナ制御部１０２ａ、プロッタ制御部１０２ｂ、蓄積制御部１０２ｃ、配信／メール送受信制御部１０２ｄ、ＦＡＸ送受信制御部１０２ｅ、ネットワーク通信制御部１０２ｆ及びその他の制御部１０２ｇを有する。
【００４１】
ここで、図３に示したソフトウェア１００が、かかる階層構造をとるに至った経緯について、図２１及び図２２を用いて説明する。図２１は、複合機に搭載されるソフトウェア構成の変遷を示す説明図である。図２１のサービス層分離前アプリケーション１８０１に示すように、多機能化した複合機に搭載されるソフトウェアは、コピーアプリケーション、ＦＡＸアプリケーション、スキャナアプリケーションなどの機能別に独立したアプリケーションとして作成され、図３に示したオペレーティングシステム１０３上で動作していた。
【００４２】
しかしながら、これらのアプリケーションは、ハードウェアリソースを制御するドライバー（サービス層１０２）を含んでいたため、各アプリケーションには重複した処理が存在していた。その結果、各アプリケーションの規模は大きなものとなっていた。
【００４３】
そこで、図２１のサービス層分離後アプリケーション１８０２に示すように、サービス層分離前アプリケーション１８０１のサービス層相当部分を括りだしてサービス層１０２にするとともに、各アプリケーションは、このサービス層１０２の上層であるアプリケーション層１０１に構築する構成とした。かかる階層化構成をとることで、各アプリケーションはスリム化され開発労力も軽減された。
【００４４】
しかしながら、複合機のネットワーク化、多機能化がさらに進展するに従って、各アプリケーションに共通処理部分が存在することが問題となってきた。具体的には、アプリケーション層１０１の各アプリケーション、たとえば、コピーアプリケーションやスキャナアプリケーションなどは、それぞれ、スキャナ制御部１０２ａや蓄積制御部１０２ｃといったドライバーと通信を行う処理や、各種機能が取り扱うデータの流れを制御するストリーム制御などの同様な処理を内部に有していた。このように、同様な処理を各アプリケーションが有していると、各アプリケーションの開発規模が大きくなるとともに、サービス層の仕様変更に対する各アプリケーションの改修規模が大きくなることが問題となってきた。
【００４５】
この問題を解決するため、図２１の共通ルーチン分離アプリケーション１８０３に示すように、かかる同様な処理（共通処理部分）を共通ルーチンとして括りだすことも考えられた。しかしながら、かかる共通ルーチンは、各アプリケーションにおいて微妙に異なる処理を共通化しようとするものであるため、共通ルーチン内部の処理は複雑なものとなってしまう。また、たとえば、プリンタアプリケーションなどの新規アプリケーションを追加する場合においては、かかる新規アプリケーションに適応するために、共通ルーチンの改修が必要となる。
【００４６】
しかし、共通ルーチンの内部処理は複雑であるため、改修要員が処理を把握することが困難となり、改修規模の増大や、改修ミスによる他のアプリケーションへの影響が懸念された。
【００４７】
そこで、図２１のオブジェクト指向アプリケーション１８０４に示すように、オブジェクト指向による設計手法（オブジェクトモデリング）により、かかる複数のアプリケーションを、統合アプリケーション１１０に統合することとした。具体的には、各アプリケーションの共通処理部分をオブジェクトモデルとして抽出し、このオブジェクトモデルの集合体から、統合アプリケーション１１０を構成する。そして、従来のコピー機能やスキャナ機能といった機能は、かかるオブジェクトモデルの協調関係によって実現する。
【００４８】
このような構成をとることにより、たとえばプリンタ機能のような新規機能の追加は、かかるオブジェクトモデルに属するクラスのサブクラス化などにより対処できる。このため、改修部分が明確となり、改修による他の機能への影響を小さくすることができる。また、オブジェクトモデリングによるプログラムは、従来の手続き型プログラムに比べて、処理の把握が容易であるため、改修要員が処理を把握することも容易となり、改修規模の削減や、改修ミスによる他のアプリケーションへの影響を小さくすることができる。
【００４９】
図２２は、図２１に示したサービス層分離後アプリケーション１８０２の段階における従来のアプリケーションの構成と、かかるアプリケーションとサービス層１０２の各ドライバーの関係を示した説明図である。本図に示すように、アプリケーション層１０１Ａは、コピーアプリケーション１２１、スキャナアプリケーション１２２、ファックスアプリケーション１２３及びプリンタアプリケーション１２４を有する。
【００５０】
たとえば、コピーアプリケーション１２１は、コピー機能を実現するために、スキャナ制御部１０２ａ、プロッタ制御部１０２ｂ、蓄積制御部１０２ｃ及びその他の制御部１０２ｇとデータの送受信を行う。また、ファックスアプリケーション１２３は、ファックス機能を実現するために、プロッタ制御部１０２ｂ、蓄積制御部１０２ｃ、ＦＡＸ送受信制御部１０２ｅ、ネットワーク通信制御部１０２ｆ及びその他の制御部１０２ｇとデータの送受信を行う。このように、アプリケーション層１０１Ａの各アプリケーションとサービス層１０２の各ドライバー間の通信は、複雑なものとなっていた。
【００５１】
図３に戻り、上述したオブジェクトモデリングにより、アプリケーション層１０１に存在した複数のアプリケーションは、統合アプリケーション１１０に統合されている。そして、各アプリケーションが重複しておこなっていた各ドライバーとの通信処理は、統合アプリケーション１１０を構成する所定のオブジェクトモデルにおこなわせるように構成したことにより、アプリケーション層１０１のアプリケーションと、サービス層１０２の各ドライバー間の通信は、図２２と比較して単純になっている。
【００５２】
次に、統合アプリケーション１１０の内部構成について説明する。図５は、統合アプリケーション１１０の内部構成、及び統合アプリケーション１１０内における後述する本実施の形態の特徴的部分であるドキュメントハンドリング部２１２の位置を示す説明図である。本図に示すように、統合アプリケーション１１０は、操作系サブシステム２０１と、管理系サブシステム２０２と、実行系サブシステム２０３とを有する。
【００５３】
操作系サブシステム２０１は、マンマシンインタフェースを担当するソフトウェア群である。具体的には、この操作系サブシステム２０１は、ユーザの要求を受け付ける処理と、この要求の実行を指示する処理と、この要求の実行状況と実行結果についての情報をユーザに提供する処理を行う。
【００５４】
管理系サブシステム２０２は、複合機１の資源を管理するソフトウェア群である。具体的には、この管理系サブシステム２０２は、ハードウェアリソース１５１及びこのハードウェアリソース１５１が保持するデータ状態を管理するサービスを行う。
【００５５】
実行系サブシステム２０３は、ユーザからの要求の実行を担当するソフトウェア群である。例えば実行系サブシステム２０３は、コピー要求がなされた場合、原稿の読み取りから成果物の出力までの処理を行う。
【００５６】
操作系サブシステム２０１、管理系サブシステム２０２及び実行系サブシステム２０３は、必要に応じて相互に処理を依頼してその結果を送り合う。このようにそれぞれのサブシステムが協調し合って、統合アプリケーション１１０全体として複合機１に必要とされるサービスの提供を行う。
【００５７】
そして、実行系サブシステム２０３は、本実施の形態の特徴部分であるドキュメントハンドリング部２１２、そしてリクエスト管理部２１１及び実行制御部２１３を有する。このドキュメントハンドリング部２１２は、リクエスト管理部２１１からの文書データの処理の要求を受け付け、実行制御部２１３に対してスキャナ１５１ａの読み取り制御やＨＤＤ１５１ｃ等のローカルストレージからの読み込み制御あるいはプロッタ１５１ｂやローカルストレージ等に出力する制御を要求し、入力元や出力先によらず共通する文書データの処理を行う。
【００５８】
図６は、図５に示した各サブシステムを、ＵＭＬ（Unified Modeling Language）のクラス図（ＵＭＬクラス図）に置き換えた図である。ここで、ＵＭＬとは、ＯＭＧ（Object Management Group）が仕様を策定しているシステムモデリング言語であり、モデリングの成果を記述する記法を定義したものである。このＵＭＬは、オブジェクト指向によるソフトウェアの設計において広く用いられている。
【００５９】
図６に示すように、統合アプリケーション１１０は複数のパッケージを有し、また、この統合アプリケーション１１０自体もひとつのパッケージとなっている。ここで、パッケージとはＵＭＬモデルの各構成要素（シンボル）をグループ化したものであり、このパッケージは、左上にタブのついたフォルダ型のシンボルで表現される。また、各パッケージを相互に結ぶ直線は、各パッケージ間に処理依頼などの関連があることを示している。
【００６０】
図６に示したように、統合アプリケーション１１０は、操作系サブシステム２０１、管理系サブシステム２０２及び実行系サブシステム２０３の３つのパッケージを内部に有するパッケージである。さらに、実行系サブシステム２０３は、リクエスト管理部２１１、ドキュメントハンドリング部２１２及び実行制御部２１３のパッケージを内部に有するパッケージである。そして、操作系サブシステム２０１、管理系サブシステム２０２及び実行系サブシステム２０３を相互に結ぶ直線は、各パッケージ間にメッセージ送受信などの関連があることを示している。なお、操作系サブシステム２０１、管理系サブシステム２０２及び実行系サブシステム２０３のタブの右端に記された記号は、かかるパッケージがサブシステムであることを示すＵＭＬのシンボルである。
【００６１】
そして、本実施の形態の特徴部分であるドキュメントハンドリング部２１２について詳細に説明する。このドキュメントハンドリング部２１２は、リクエスト管理部２１１から文書データを処理するリクエストを受け付けた場合に処理を行う。なお、このドキュメントハンドリング部２１２は、オブジェクト指向に基づいて設計するにあたって、既存の処理を単純にオブジェクト化せず、機能追加や改修をより一層容易に行うことができるようにオブジェクトモデルを構成した。かかるオブジェクトモデルの構成を導出するまでの経緯について説明する。
【００６２】
従来、複合機においては図２２で示したアプリケーション層１０１に備えられたコピーアプリケーション１２１等の各々アプリケーションが処理を行っていた。図１９は、従来の複合機においてアプリケーション毎に有するジョブの種類を示した説明図である。本図に示すように複合機の機能を実現するために担当するアプリケーションが、必要に応じて入力の際には「読み取り」、「ＦＡＸ受信」、「印刷」、「蓄積」あるいは「ＦＡＸ送信」などのジョブを実行していた。このような構成の場合、アプリケーション毎に「読み取り」等のジョブを備えている必要がある。つまり、複合機の機能として入力元あるいは出力先が増加するとアプリケーション毎に機能を拡張する必要があった。そこで、処理を共通化させるが、どのようなクラスの構成を生成すれば入出力及び加工処理を共通化させることができるのか問題となる。
【００６３】
図２０は、従来の複合機においてアプリケーション毎に備えられたジョブを入力と出力により分類した説明図である。本図に示すように、アプリケーション毎に実行される機能が異なる場合でも入力あるいは出力に用いられるジョブが共通していることが確認できる。このため、機能毎にアプリケーションを備えるという概念を排除し、加工処理を共通化させて、入力元及び出力先だけ選択させるオブジェクトモデルを構成することとした。
【００６４】
図７は、本実施の形態の特徴部分であるドキュメントハンドリング部２１２で行われる処理の概念を示した概念図である。本図に示すように、入力処理された文書データの入力元が紙文書、電子文書、ＦＡＸ受信文書にかかわらず、入力処理された文書データ（以下入力ドキュメントという）から、ページとして構成することが可能な所定のサイズに分割した加工処理の対象となる画像を求め、これら加工処理の対象となる画像で構成される文書データ（以下、ユーザドキュメントという）を生成する。そして、生成されたユーザドキュメントを出力先に応じて整形した文書データ（以下、出力ドキュメントという）を生成して、印刷、保存あるいはＦＡＸ送信等の出力を行う。このような構成を備えることで入力元及び出力先について変更あるいは追加される場合、複数備えられたアプリケーション毎にプログラムを修正する必要が無くなり、プログラム開発が容易となる。
【００６５】
また、入力元あるいは出力先によらず共通して加工処理を行うためには、予めフォーマットを用意しておき、このフォーマットに入力ドキュメントあるいは出力ドキュメントを当てはめて管理することで、入力元あるいは出力先にかかわらず共通して管理することを可能とし、さらには容易に加工処理を行うことを可能とする。
【００６６】
図８は、本実施の形態において入力ドキュメント及び出力ドキュメントを管理するための構成の概念を示した概念図である。本図で示したように、入力ドキュメント及び出力ドキュメントはページ毎に分割して管理される。そして各ページは画像と、画像の配置を決めるレイアウトで構成されている。つまり、ページとして構成することが可能な所定のサイズに分割した画像を各ページに予め定められたレイアウトに従い順番に当てはめることで入力ドキュメント又は出力ドキュメントとなる。
【００６７】
このような構成とすることで、入力元あるいは出力先によらず共通したフォーマットで文書データを管理することを可能とすると共に、例えば「２ in １」等の加工処理を容易に行うことが出来る。
【００６８】
つまり、入力元から入力された入力ドキュメントから、ページ毎（以下、入力ページという）にレイアウト（以下、入力レイアウト）に従って分割された画像（以下、入力画像）を生成する。そして加工する際に、入力画像から加工対象となる画像（以下、ユーザ画像）を生成し、これらユーザ画像を有するユーザドキュメントを生成する。そして、出力する際にはユーザドキュメントが有するユーザ画像から出力画像を作成し、生成された出力画像を出力先に応じた出力レイアウトにページ毎に当てはめて出力ドキュメントを生成する。図９は、本実施の形態に係る文書処理で用いられる入力ドキュメントからユーザドキュメント、そして出力ドキュメントまでの構成の変化を示した説明図である。本図に示すように、入力元によらず入力ドキュメントを、入力ページ、入力レイアウト及び入力画像の組み合わせとして管理し、加工処理を施す際には入力画像から生成されたユーザ画像のみ有するユーザドキュメントとして管理する。ユーザドキュメントが所定サイズに分割されたユーザ画像として有する。これにより、出力ドキュメントとして出力する際に出力レイアウトに従ってユーザ画像より生成された出力画像をユーザの要求に従って柔軟に配置することができる。なお、ユーザ画像から出力画像を生成する際に、出力レイアウトに当てはまるように拡大又は縮小等の処理を行う。
【００６９】
上述したオブジェクトモデリングにより、ドキュメントハンドリング部２１２は、「入力ドキュメントクラス」、「ユーザドキュメントクラス」及び「出力ドキュメントクラス」を有する構成とした。そして、図８で示した構成から「入力ドキュメントクラス」は「入力ページクラス」を、また「出力ドキュメントクラス」は「出力ページクラス」を保持する。さらに「入力ページクラス」は「入力レイアウトクラス」と「入力画像クラス」を保持し、「出力ページクラス」は「出力レイアウトクラス」と「出力画像クラス」を保持する。そして、「ユーザドキュメントクラス」は「ユーザ画像」を保持する。
【００７０】
そして、「入力ドキュメントクラス」は入力元毎にサブクラスが設けられ、「出力ドキュメントクラス」も同様に出力先毎にサブクラスが設けられる。本実施の形態では、入力元としては、スキャナで読み込まれる「紙」ドキュメント、ネットワークを介して入力される「ネット」ドキュメントそしてハードディスク等のローカルストレージに保存されている「ＬＳ」ドキュメントとする。そこで、「入力ドキュメントクラス」のサブクラスとして「入力ネットドキュメントクラス」、「入力紙ドキュメントクラス」及び「入力ＬＳドキュメントクラス」が設けられる。そして、出力先も同様に「紙」、「ネット」及び「ＬＳ」とし、「出力ドキュメントクラス」のサブクラスとして「出力ネットドキュメントクラス」、「出力紙ドキュメントクラス」及び「出力ＬＳドキュメントクラス」が設けられる。
【００７１】
そして、上述したオブジェクトモデリングにより設計されたドキュメントハンドリング部２１２は、リクエスト管理部２１１から文書データを処理する旨の要求を受け付けた場合に、入力文書（例えば紙文書、電子文書、ＦＡＸ受信文書等）を入力処理してから加工処理を行い、出力文書（例えば、紙文書、電子文書あるいはＦＡＸ送信文書）を出力処理するまでの処理を行う。これらの処理が行われた後、実行系サブシステム２０３からサービス層１０２による制御により、ハードウェアリソース１５１から出力される。
【００７２】
上述したオブジェクトモデリングにより設計されたドキュメントハンドリング部２１２は、例えば紙文書、電子文書、ＦＡＸ受信文書等の入力文書から入力処理の対象を選択して、例えば紙文書、電子文書あるいはＦＡＸ送信文書等の出力文書から出力処理の対象を選択することになるが、この場合、従来の複合機１を利用していたユーザが、本発明の複合機１を使用する場合にとまどうことになる。そこで、本発明ではユーザが使用することを容易にするインターフェースを提供する。図１０は、本実施の形態に係る複合機１の利用者からの要求から入力元及び出力先が決定されるまでの処理の概念を示した概念図である。本図に示すように、利用者が選択した項目に応じて入力元と出力先が定められるような対応関係を保持することで、利用者の要求に応じたインターフェースを提供することができる。
【００７３】
図１１は、上述したオブジェクトモデリングにより設計されたドキュメントハンドリング部２１２のクラス構成をＵＭＬのクラスで示した図である。本図に示すように、ドキュメントハンドリング部２１２は、ドキュメント操作スケジューラクラス１１０１と、入力ドキュメントクラス１１１１と、入力ページクラス１１１２と、入力レイアウトクラス１１１３と、入力画像クラス１１１４と、入力ネットドキュメントクラス１１１５と、入力紙ドキュメントクラス１１１６と、入力ＬＳドキュメントクラス１１１７と、ユーザドキュメントクラス１１０２と、ユーザ画像クラス１１０３と、出力ドキュメントクラス１１２１と、出力ページクラス１１２２と、出力レイアウトクラス１１２３と、出力画像クラス１１２４と、出力ネットドキュメントクラス１１２５と、出力紙ドキュメントクラス１１２６と、出力ＬＳドキュメントクラス１１２７と、を備えている。このような構成を備えたことで、入力元あるいは出力先にかかわらず共通した文書処理を行うことを可能とする。
【００７４】
各クラスを示す矩形は３段の区画を有し、上から、クラス名を示す名前区画、クラスが有するデータ（属性）を示す属性区画及びクラスが有する処理（操作）を示す操作区画と呼ばれる。たとえば、入力ドキュメントクラス１１１１を示す矩形の名前区画は、かかるクラスのクラス名が「入力ドキュメント」であることを示し、属性区画は、かかるクラスが有する属性が、「ページ数」であることを示し、操作区画は、かかるクラスが有する操作が、「入力開始（）」、「ページ追加（）」、「終了通知（）」であることを示している。
【００７５】
このように、各クラスは、データ（属性）を所持するための属性区画と、かかる属性の書き込み及び読み出しを行う処理（操作）を所持するための操作区画とを有している。これらのクラスは、プログラム（統合アプリケーション１１０）の一部として含まれるので、あらかじめＲＯＭ１２ａに格納されたこのプログラムが実行されると、各クラスはＲＡＭ１２ｂの所定領域に実体化され、属性区画に含まれる各データ（属性）がＲＡＭ１２ｂ上に展開される。したがって、クラスを実体化したオブジェクトは、ＲＡＭ１２ｂ上の各データ（属性）の書き込み及び読み出しをすることが可能となる。
【００７６】
なお、属性や操作といったクラスの要素の左側に「−」記号を付した場合は、かかる要素は外部のクラスには非公開であることを示し、「＋」記号を付した場合は、かかる要素は外部のクラスに公開されていることを示す。また、操作については「入力開始（）」のように「（）」記号を付することが通例であり、「（引数１，引数２）」のように、かかる操作に引き渡す引数を記述する場合もある。
【００７７】
次に、図１１に示した本実施の形態の特徴部分であるドキュメントハンドリング部２１２が備える各クラスについて説明する。
【００７８】
ドキュメント操作スケジューラクラス１１０１は、リクエスト管理部２１１から受け付けたリクエストに対応した文書処理を行うためにドキュメントの管理及び操作するクラスであり、リクエストに応じたユーザドキュメントクラス１１０２のサブクラスのオブジェクトを生成する。具体的にはドキュメント操作スケジューラクラス１１０１は、操作として登録（）１１０１ａを有する。また、ドキュメント操作スケジューラクラス１１０１は、リクエスト管理部２１１からリクエストされた文書処理のスケジューリングを行う。
【００７９】
登録（）１１０１ａは、リクエスト管理部２１１から文書処理の要求を受け付け、受け付けた要求に応じたユーザドキュメントクラス１１０２のオブジェクトを生成する。また、登録（）１１０１ａの引数として受け渡された情報には、ユーザが文書処理に対して設定した情報が含まれる。
【００８０】
ユーザドキュメントクラス１１０２は、入力文書を入力処理してから加工処理を行い、出力先に出力文書（例えば、紙文書、電子文書あるいはＦＡＸ送信文書）を出力するまでの工程を管理するクラスである。さらに、ユーザドキュメントクラス１１０２は、ユーザが複合機１を使用する際に設定した情報からユーザの要求を実現するための仕様を導出し、導出した仕様を満たすように入力ドキュメントクラス１１１１や出力ドキュメントクラス１１２１に開始等を指示して制御を行うクラスとする。具体的にはユーザドキュメントクラス１１０２は、属性としてユーザ要求１１０２ａ、入力ドキュメントの種類１１０２ｂ、出力ドキュメントの種類１１０２ｃ、入出力のタイミング１１０２ｄを有し、操作として開始（）１１０２ｅ、終了通知（）１１０２ｆを有する。また、ユーザドキュメントクラス１１０２のサブクラスは、文書処理が終了した後に、入力ドキュメントクラス１１１１のサブクラス及び出力ドキュメントクラス１１２１のサブクラスのオブジェクトを削除する。なお、ユーザ要求１１０２ａと、入力ドキュメントの種類１１０２ｂと出力ドキュメントの種類１１０２ｃの対応関係は、本発明の要求情報と入力紙文書手段を制御するか否かと入力電子文書手段を制御するか否かと入力通信文書手段を制御するか否かと出力紙文書手段を制御するか否かと出力電子文書手段を制御するか否かと出力通信文書手段を制御するか否かとの対応付けに相当する。
【００８１】
ユーザ要求１１０２ａは、利用者の操作パネル４００やネットワークを介して接続されたＰＣ等から入力した文書処理要求である。そして、ユーザドキュメントクラス１１０２は、このユーザ要求１１０２ａと、この文書処理要求に用いられる入力ドキュメントクラス１１１１のサブクラスの種類を示す入力ドキュメントの種類１１０２ｂ、この文書処理要求に用いられる出力ドキュメントクラス１１２１のサブクラスの種類を示す出力ドキュメントの種類１１０２ｃを対応付けて保持する。この入力ドキュメントの種類１１０２ｂ及び出力ドキュメントの種類１１０２ｃで特定された入力ドキュメントクラス１１１１のサブクラス及び出力ドキュメントクラス１１２１のサブクラスをユーザドキュメントオブジェクト１１０２Ａが制御することになる。つまり、この入力ドキュメントの種類１１０２ｂは換言すれば入力文書制御情報に相当し、出力ドキュメントの種類１１０２ｃは換言すれば出力文書制御情報に相当する。
【００８２】
図１２は、本実施の形態のユーザドキュメントクラス１１０２が保持するユーザ要求１１０２ａ、入力ドキュメントの種類１１０２ｂ、出力ドキュメントの種類１１０２ｃの対応付けの一例を示した図である。本図の「入力」の「紙」が入力紙ドキュメント１１１６を、「ＬＳ」が入力ＬＳドキュメントクラス１１１７を、「ネット」が入力ネットドキュメントクラス１１１５を示している。また本図の「出力」の「紙」が出力紙ドキュメント１１２６を、「ＬＳ」が出力ＬＳドキュメントクラス１１２７を、「ネット」が出力ネットドキュメントクラス１１２５を示している。本図に示すように、ユーザドキュメントオブジェクト１１０２Ａが受け付けたユーザ要求に基づいて文書処理に用いられる入力ドキュメントクラス１１１１のサブクラス及び出力ドキュメントクラス１１２１のサブクラスが決定される。また、本図の「入力」の「紙」、「ＬＳ」、「ネット」は、換言すると入力紙文書制御情報、入力電子文書制御情報、入力通信文書制御手段に相当する。さらに本図の「出力」の「紙」、「ＬＳ」、「ネット」は、換言すると出力紙文書制御情報、出力電子文書制御情報、出力通信文書制御手段に相当する。
【００８３】
図１３は、操作パネル４００のコピーサーバーキー４０３を押下した場合に表示される液晶タッチパネル４２０の画面例を示した図である。本図で示したように液層タッチパネル４２０には、ローカルストレージに蓄積された文書データが表示されている。この表示されている「文書名」欄１３０１を押下して、文書データを選択すると、文書データの名称を示す文書名の色が反転する。そして、文書データを選択した状態で、図４で示したプリンタキー４０４を押下することで指定された印刷条件に従って、選択文書に応じた蓄積画像の印刷出力を可能にする。この場合、ユーザ要求として「蓄積画像の印刷」が選択されることになる。そして、図１２で示した対応関係より、入力ＬＳドキュメントクラス１１１７及び出力紙ドキュメントクラス１１２６のオブジェクトが生成されることになる。さらに「原稿読み取り」ボタン１３０２を押下していた場合、ユーザ要求として「紙原稿＋蓄積原稿の印刷」が選択されたことになる。これにより入力紙ドキュメントクラス１１１６、入力ＬＳドキュメントクラス１１１７及び出力紙ドキュメントクラス１１２６のオブジェクトが生成されることになる。
【００８４】
図１４は、操作パネル４００のスキャナキー４１１を押下した場合に表示される液晶タッチパネル４２０の画面例を示した図である。本図で示された画面が表示されている際に、送信者表示欄１４０１から送信者を選択して、スキャナ１５１ａで紙文書をセットして、送信キー４０５を押下することで、ユーザ要求として「紙原稿の送信」が選択されることになる。さらに本図で示された画面が表示されている際に、「蓄積文書」ボタン１４０２を押下して、蓄積されている文書データ一覧から文書データを選択して、再度この画面に戻ってきてから、送信キー４０５を押下することで、ユーザ要求として「紙原稿＋蓄積原稿の送信」が選択されたことになる。そして、図１２で示した対応関係より生成されるオブジェクトが決定される。
【００８５】
図１５は、本実施の形態の変形例における液晶タッチパネル４２０に表示される画面例を示した図である。本図に示された画面例で文書処理の対象として紙原稿か電子原稿を選択して、出力先を選択することで、適したユーザ要求が選択されて文書処理を行うことも可能である。電子原稿を選択した場合は、さらにローカルストレージかネットワーク上かを詳細に設定する画面が表示される。本図で示した画面例では、すでに「電子原稿」と「印刷する」と「保存する」が選択されているため、電子文書の印刷及び保存する処理を行うことになる。また、上述した詳細な設定する画面でローカルストレージ上の電子文書を選択した場合は、ユーザ要求として「蓄積原稿の印刷＋複製」が選択されることになる。このように、文書処理を行う際に用いられるインターフェースがどの様なものであっても適切に処理に用いられる入力ドキュメントクラス１１１１のサブクラス及び出力ドキュメントクラス１１２１のサブクラスが決定される。
【００８６】
なお、上述した図１３、図１４、図１５で示した例では、どのボタンを押下するとどのユーザ要求が選択されるのかは、予め設定されているものとする。
【００８７】
入出力のタイミング１１０２ｄは、文書処理を行う際に入力ドキュメントクラス１１１１のサブクラスに対して入力を開始する旨、または出力ドキュメントクラス１１２１のサブクラスに対して出力を開始する旨のタイミングを保持する。このタイミングを保持することで、ユーザ要求から１つ又は複数の入力元からの入力処理、または１つ又は複数の出力先への出力処理を可能にする。
【００８８】
なお、ユーザドキュメントクラス１１０２の仕様を有するサブクラスを設け、この設けられたサブクラスで上述した属性を保持しても良い。
【００８９】
開始（）１１０２ｅは、ユーザドキュメントクラス１１０２が文書処理を開始するためのトリガーを与える処理を行う。そして、ユーザドキュメントオブジェクト１１０２Ａは、上述したユーザ要求１１０２ａ、入力ドキュメントの種類１１０２ｂ、出力ドキュメントの種類１１０２ｃの対応関係と、開始（）１１０２ｅで引数として受け渡されたユーザ要求から、生成する入力ドキュメントクラス１１１１のサブクラス、出力ドキュメントクラス１１２１のサブクラスを決定する。
【００９０】
次に、開始（）１１０２ｅは、この決定に基づいて入力ネットドキュメントオブジェクト１１１５Ａ、入力紙ドキュメントオブジェクト１１１６Ａあるいは入力ＬＳドキュメントオブジェクト１１１７Ａを生成し、さらに、この決定に基づいて出力ネットドキュメントオブジェクト１１２５Ａ、出力紙ドキュメントオブジェクト１１２６Ａあるいは出力ＬＳドキュメントオブジェクト１１２７Ａを生成する。そして、開始（）１１０２ｅは、入出力のタイミング１１０２ｄで、入力ドキュメントクラス１１１１のサブクラスの入力開始（）１１１１ｂあるいは出力ドキュメントクラス１１２１のサブクラスの出力開始（）１１２１ｂを呼び出す。
【００９１】
終了通知（）１１０２ｆは、ユーザドキュメントクラス１１０２に対して入力処理又は出力処理が終了した旨を通知する処理を行う。
【００９２】
入力ドキュメントクラス１１１１は、入力元より入力処理された入力ドキュメントを、入力元によらず共通する予め定めたフォーマット、換言すると入力画像と入力レイアウトで構成される入力ページに当てはめて管理するクラスである。入力元とは、例えばスキャナ、ネットワークを介して接続された機器、ＦＡＸ受信あるいはローカルストレージ等の入力手段が考えられる。この入力ドキュメントクラス１１１１は、入力ネットドキュメントクラス１１１５、入力紙ドキュメントクラス１１１６及び入力ＬＳドキュメントクラス１１１７の上位クラス（スーパークラス）であり、入力ドキュメントクラス１１１１自体が実体化されることはないが、入力ドキュメントクラス１１１１の属性及び操作は、下位クラス（サブクラス）である入力ネットドキュメントクラス１１１５、入力紙ドキュメントクラス１１１６及び入力ＬＳドキュメントクラス１１１７に継承される。具体的には入力ドキュメントクラス１１１１は、属性としてページ数１１１１ａを、操作として入力開始（）１１１１ｂ、ページ追加（）１１１１ｃ、終了通知（）１１１１ｄを有する。
【００９３】
ページ数１１１１ａは、入力処理された入力ドキュメントのページ数を保持する。また、入力ドキュメントクラス１１１１は、保持されたページ数だけ入力ページオブジェクト１１１２Ａを生成する。
【００９４】
入力開始（）１１１１ｂは、入力ドキュメントクラス１１１１が文書処理を開始するためのトリガーを与える処理を行う。この入力開始（）１１１１ｂは、サブクラスである入力ネットドキュメントクラス１１１５、入力紙ドキュメントクラス１１１６及び入力ＬＳドキュメントクラス１１１７に継承され、各サブクラスにおける具体的な処理によりオーバーライド（override）される。なお、かかる具体的な処理の説明については、後述する入力ネットドキュメントクラス１１１５、入力紙ドキュメントクラス１１１６及び入力ＬＳドキュメントクラス１１１７の説明で行う。
【００９５】
ページ追加（）１１１１ｃは、入力ドキュメントクラス１１１１のサブクラスのオブジェクトが管理する入力ドキュメントに対してページを追加する。例えば、ユーザが次の紙原稿をコンタクトガラス上に配置して読み取りを行うことで、入力ドキュメントクラス１１１１のサブクラスのオブジェクトが管理する入力ドキュメントにページが追加される場合等に呼び出されることが考えられる。
【００９６】
終了通知（）１１１１ｄは、後述する入力ページクラス１１１２から入力ドキュメントクラス１１１１にページ毎の処理が終了したことを通知する。
【００９７】
入力ネットドキュメントクラス１１１５は、入力ドキュメントクラス１１１１のサブクラスであり、接続したネットワークの入力元から取得したドキュメントを入力処理した入力ドキュメントをページ毎に分割し、分割したページ毎に入力ページオブジェクト１１１２Ａを生成し、入力ページオブジェクト１１１２Ａに対して該当するページを管理する旨を指示することで入力ドキュメントを管理するクラスである。
【００９８】
具体的には、この入力ネットドキュメントクラス１１１５は、入力ドキュメントクラス１１１１から、属性としてページ数１１１１ａを、操作として入力開始（）１１１１ｂ、ページ追加（）１１１１ｃ、終了通知（）１１１１ｄを承継する。さらに、入力ネットドキュメントクラス１１１５は、属性として、ネットワークを介して入力処理を行うために必要な仕様を保持するが、従来から利用されている仕様を保持することとし、図１１では省略する。なお、かかる入力ネットドキュメントクラス１１１５を実体化したオブジェクトが生成されると、属性として保持する入力処理を行うために必要な仕様及びページ数１１１１ａはＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込み及び読み出しをすることが可能となる。
【００９９】
入力ドキュメントクラス１１１１から承継した入力開始（）１１１１ｂは、入力処理を開始するためのトリガーであり、ユーザドキュメントオブジェクト１１０２Ａから呼び出された場合、入力ネットドキュメントクラス１１１５がネットワークを介してドキュメントを受信し、入力元により異なるフォーマットの入力文書を入力処理し、入力処理した後に入力ドキュメントに変換して管理する制御を行う。なお、入力ドキュメントのフォーマットは、入力元にかかわらず共通したフォーマットとする。
【０１００】
また、入力ネットドキュメントオブジェクト１１１５Ａは、入力開始（）１１１１ｂによりドキュメントの入力処理を行うためにネットワークを介してドキュメントを受信する際、引数として受け渡された情報よりネットワークを介して入力されるドキュメントを特定し、実行制御部２１３を介して利用できるＦＡＸ送受信制御部１０２ｅやネットワーク通信制御部１０２ｆを用いてネットワークへ接続してから受信する。
【０１０１】
入力紙ドキュメントクラス１１１６は、入力ドキュメントクラス１１１１のサブクラスであり、スキャナ１５１ａより読み込まれた原稿を入力処理した入力ドキュメントをページ毎に分割し、分割したページ毎に入力ページオブジェクト１１１２Ａを生成し、入力ページオブジェクト１１１２Ａに対して該当するページを管理する旨を指示することで入力ドキュメントを管理するクラスである。
【０１０２】
具体的には、この入力紙ドキュメントクラス１１１６は、入力ドキュメントクラス１１１１から、属性としてページ数１１１１ａを、操作として入力開始（）１１１１ｂ、ページ追加（）１１１１ｃ、終了通知（）１１１１ｄを承継する。さらに、入力紙ドキュメントクラス１１１６は、属性として、用紙枚数１１１６ａと、スキャナ１５１ａから原稿を読み取るための設定及び仕様を有し、操作として、次原稿有無確認（）１１１６ｂを有する。なお、スキャナ１５１ａから原稿を読み取るための設定及び仕様は従来からある設定又は仕様を用いることとし、図１１では省略する。なお、かかる入力紙ドキュメントクラス１１１６を実体化したオブジェクトが生成されると、属性として保持する原稿を読み取るための設定及び仕様及びページ数１１１１ａはＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込み及び読み出しをすることが可能となる。
【０１０３】
用紙枚数１１１６ａは、複合機１に読み取るためにセットされた原稿の枚数を保持する。そして、次原稿有無確認（）１１１６ｂは、実行制御部２１３に対して自動原稿送り装置等に対して入力処理する紙文書がセットされているか否か入力を要求することで、次原稿があるか否か確認を行う。
【０１０４】
入力ドキュメントクラス１１１１から承継した入力開始（）１１１１ｂは、入力処理を開始するためのトリガーであり、ユーザドキュメントオブジェクト１１０２Ａから呼び出された場合、入力紙ドキュメントクラス１１１６がスキャナ１５１ａで原稿を読み取り、読み取った原稿から入力ドキュメントに変換して管理する制御を行う。
【０１０５】
また、入力紙ドキュメントクラス１１１６は、入力開始（）１１１１ｂによりスキャナ１５１ａで原稿を読み出す際、実行制御部２１３を介して利用できるスキャナ制御部１０２ａを用いて読み取りを行う。また、入力紙ドキュメントオブジェクト１１１６Ａが紙の表裏に印刷されている原稿を読み取る場合でも、表裏を順番に読み込んだ原稿を入力ドキュメントに変換することになるが、入力ドキュメントに表裏という概念は存在しない。つまり、読み込んだ原稿は、表のみ又は表裏両面の読み込みにかかわらず、読み込まれた順番に入力ページとして割り当てられた入力ドキュメントとなる。これにより媒体の特性あるいはスキャナ１５１ａによる原稿のハンドリングモードの違いにかかわらず共通した様式で入力ドキュメントを保持するため、入力元の違いに応じて異なる加工処理を行わなくてよくなり、加工処理が容易となる。
【０１０６】
入力ＬＳドキュメントクラス１１１７は、入力ドキュメントクラス１１１１のサブクラスであり、ハードディスク等のローカルストレージより読み込まれた電子文書を入力処理した入力ドキュメントをページ毎に分割し、分割したページ毎に入力ページオブジェクト１１１２Ａを生成し、入力ページオブジェクト１１１２Ａに対して該当するページを管理する旨を指示することで入力ドキュメントを管理するクラスである。
【０１０７】
具体的には、この入力ＬＳドキュメントクラス１１１７は、入力ドキュメントクラス１１１１から、属性として保持するページ数１１１１ａを承継し、操作として入力開始（）１１１１ｂ、ページ追加（）１１１１ｃ、終了通知（）１１１１ｄを承継する。さらに、入力ＬＳドキュメントクラス１１１７は、属性として、ローカルストレージから電子文書を読み込むための設定及び仕様を保持するが、従来から用いられている設定及び仕様を保持することとし、図１１では省略する。なお、かかる入力ＬＳドキュメントクラス１１１７を実体化したオブジェクトが生成されると、属性としてページ数１１１１ａ、ローカルストレージから電子文書を読み込むための設定及び仕様及びページ数１１１１ａはＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込み及び読み出しをすることが可能となる。
【０１０８】
入力ドキュメントクラス１１１１から承継した入力開始（）１１１１ｂは、入力処理を開始するためのトリガーであり、ユーザドキュメントオブジェクト１１０２Ａから呼び出された場合に入力ＬＳドキュメントクラス１１１７にローカルストレージから電子文書を読み込み、読み込んだ電子文書から入力ドキュメントに変換して管理する制御を行う。
【０１０９】
また、入力ＬＳドキュメントクラス１１１７は、入力開始（）１１１１ｂにより電子文書を読み込む際、実行制御部２１３を介して利用できる蓄積制御部１０２ｃを用いて読み込みを行う。
【０１１０】
また、入力ネットドキュメントクラス１１１５、入力紙ドキュメントクラス１１１６及び入力ＬＳドキュメントクラス１１１７が管理する入力ドキュメントは、入力元にかかわらず共通した入力ページクラス１１１２、入力レイアウトクラス１１１３及び入力画像クラス１１１４等を用いて保持するため、入力元にかかわらず共通した加工処理等を可能とする。次に入力ページクラス１１１２、入力レイアウトクラス１１１３及び入力画像クラス１１１４について説明する。
【０１１１】
入力ページクラス１１１２は、入力ドキュメントクラス１１１１で管理する入力ドキュメントより分割された各ページを、入力ページとして管理するクラスである。入力ページクラス１１１２は、入力レイアウトオブジェクト１１１３Ａ及び入力画像オブジェクト１１１４Ａを生成し、入力レイアウトに入力画像を当てはめた構成として管理する。
【０１１２】
また、ページ毎の入力レイアウトを設定する際に、例えばスキャナ１５１ａで読み込む原稿を、ユーザが「２ in １」の集約原稿であると設定した場合、入力レイアウトは入力画像が２枚当てはめられたレイアウトとなり、この条件を満たした入力レイアウトオブジェクト１１１３Ａが生成されることになる。
【０１１３】
具体的には、この入力ページクラス１１１２は、属性としてページ番号１１１２ａを有し、操作として入力開始（）１１１２ｂ、終了通知（）１１１２ｃを有する。なお、かかる入力ページクラス１１１２を実体化したオブジェクトが生成されると、属性としてページ番号１１１２ａがＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込み及び読み出しをすることが可能となる。
【０１１４】
ページ番号１１１２ａは、この入力ページオブジェクト１１１２Ａが管理するページを示す番号を保持する。つまり、入力ドキュメントクラス１１１１のサブクラスのオブジェクトが保持するページ数１１１１ａだけ入力ページオブジェクト１１１２Ａを生成するので、入力ページオブジェクト１１１２Ａが割り振られたページの番号をページ番号１１１２ａで保持する。
【０１１５】
入力開始（）１１１２ｂは、入力ページクラス１１１２がページ処理を開始するためのトリガーを与える処理を行う。この入力開始（）１１１２ｂが、入力ネットドキュメントオブジェクト１１１５Ａ等の入力ドキュメントクラス１１１１のサブクラスのオブジェクトから呼び出された場合に、引数として受け渡されたページ番号に該当する入力ドキュメント中のページの情報を取得し、取得したページの情報に基づいて入力レイアウトオブジェクト１１１３Ａ及び入力画像オブジェクト１１１４Ａの生成を開始する。
【０１１６】
また、入力ページクラス１１１２は、入力開始（）１１１２ｂが呼び出された場合、入力ドキュメントクラス１１１１が管理する入力ドキュメントから該当する入力ドキュメント中のページの情報を取得し、生成した入力レイアウトオブジェクト１１１３Ａ及び入力画像オブジェクト１１１４Ａを用いて入力ページを管理する。
【０１１７】
終了通知（）１１１２ｃは、後述する各入力画像オブジェクト１１１４Ａが入力ページクラス１１１２に画像処理が終了したことを通知する際に呼び出される。この終了通知（）１１１２ｃが、入力ページクラス１１１２が生成した全ての入力画像オブジェクト１１１４Ａから呼び出された場合、入力ページクラス１１１２はページの処理が全て終了したと判断する。
【０１１８】
入力レイアウトクラス１１１３は、入力ページクラス１１１２で管理する入力ページに後述する入力画像を当てはめるために用いられるレイアウト（以下、入力レイアウトという）を作成して管理するクラスである。具体的には、この入力レイアウトクラス１１１３は、属性として外枠や内枠あるいはオフセット位置などの情報を有するが、従来から用いられている情報を用いるので図１１では省略する。また、入力レイアウトクラス１１１３は、操作としてレイアウト作成（）１１１３ａを有する。なお、かかる入力レイアウトクラス１１１３を実体化したオブジェクトが生成されると、属性として外枠や内枠あるいはオフセット位置などの情報がＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込み及び読み出しをすることが可能となる。
【０１１９】
レイアウト作成（）１１１３ａは、入力レイアウトオブジェクト１１１３Ａが入力ページに入力画像を適した位置に配置する入力レイアウトを作成する。このレイアウト作成（）１１１３ａが、入力ページオブジェクト１１１２Ａから呼び出された場合、引数として受け渡された情報から、属性としてユーザの要求に応じた外枠や内枠あるいはオフセット位置を設定することで、入力レイアウトが作成される。これにより、入力ページ内の入力画像の数が決定される。つまり、入力ページを入力画像というドキュメントハンドリングの最小単位に分割することが可能となる。
【０１２０】
入力画像クラス１１１４は、入力ページに対して入力レイアウトにより定められた配置に当てはまる画像（以下、入力画像という）を管理するクラスである。具体的には、入力画像クラス１１１４は、上述した入力ドキュメントクラス１１１１のサブクラスのオブジェクトで生成された入力ドキュメントから入力画像となる範囲の画像の実体を読み込み、保持する。また、入力画像クラス１１１４は、属性として読み込んだ画像の実体を特定する情報を有し、操作として入力開始（）１１１４ａを有する。なお、かかる入力画像クラス１１１４を実体化したオブジェクトが生成されると、読み込んだ画像の実体を特定する情報がＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込み及び読み出しをすることが可能となる。
【０１２１】
入力画像は、入力レイアウトに当てはめられる画像をいい、所定のサイズの画像、本実施の形態ではドキュメントハンドリングの最小単位に分割された画像となる。ドキュメントハンドリングの最小単位とは、１ページとして構成することが可能な領域をいい、例えば特殊な設定を行っていない場合であれば１ページ全体の領域が入力画像となり、「２ in １」に設定されている場合であれば１ページを２つに分割した各領域が入力画像となる。また、入力画像は、単なる画像のみならず、上述した領域に示された文字情報や、図形なども含まれる。
【０１２２】
入力開始（）１１１４ａは、入力画像クラス１１１４が画像処理を開始するためのトリガーを与える処理を行う。この入力開始（）１１１４ａが、入力ページオブジェクト１１１２Ａから呼び出された場合に、引数として受け渡された入力レイアウト等の設定により定められる範囲の画像の実体を読み込み、読み込んだ画像の実体を特定する情報を属性として書き込み、さらに入力画像に対応したユーザ画像を管理するユーザ画像オブジェクト１１０３Ａを生成する。
【０１２３】
ユーザ画像クラス１１０３は、入力画像から生成された加工処理の対象となるユーザ画像を管理し、出力画像を生成するための加工処理を行うクラスである。具体的にはユーザ画像クラス１１０３は、属性として生成されたユーザ画像を特定する情報を有し、操作として作成（）１１０３ａ及び利用（）１１０３ｂを有する。なお、かかるユーザ画像クラス１１０３を実体化したオブジェクトが生成されると、作成された画像を特定する情報がＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込み及び読み出しをすることが可能となる。
【０１２４】
また、ユーザ画像は加工処理の対象となる画像をいい、所定のサイズの画像、本実施の形態ではドキュメントハンドリングの最小単位に分割された画像となる。ドキュメントハンドリングの最小単位は入力画像で説明したので省略する。ユーザ画像は、単なる画像のみならず、ユーザ画像として所定サイズの領域に示された文字情報や、図形なども含まれる。
【０１２５】
作成（）１１０３ａは、入力画像クラス１１１４から呼び出され、ユーザ画像クラス１１０３が対応する入力画像に基づいてユーザ画像を生成する処理を行う。この作成（）１１０３ａが、入力画像オブジェクト１１１４Ａから呼び出された場合に、入力画像の実体を読み込み、読み込んだ画像をユーザ画像としてこの画像の実体を特定にする情報を属性に書き込む。
【０１２６】
利用（）１１０３ｂは、後述する出力画像クラス１１２４から呼び出され、作成（）１１０３ａで読み込んだ画像の実体を出力形式に適するように加工処理を行った後、出力画像クラス１１２４に送信し、出力画像を生成する。加工処理の例としては、１枚毎に入力処理された原稿を「２ in １」で出力したい場合、ユーザ画像を縮小する処理を行う等が考えられる。
【０１２７】
出力ドキュメントクラス１１２１は、出力先によらず共通する予め定めたフォーマット、換言すると出力画像と出力レイアウトを組み合わせた出力ページで構成される出力ドキュメントを生成し、出力先に出力処理を行うクラスである。出力先とは、例えばプロッタ、プリンタ、ネットワークを介して接続された機器、ＦＡＸ送信あるいはローカルストレージ等の出力手段が考えられる。この出力ドキュメントクラス１１２１は、出力ネットドキュメントクラス１１２５、出力紙ドキュメントクラス１１２６及び出力ＬＳドキュメントクラス１１２７の上位クラス（スーパークラス）であり、出力ドキュメントクラス１１２１自体が実体化されることはないが、出力ドキュメントクラス１１２１の属性及び操作は、下位クラス（サブクラス）である出力ネットドキュメントクラス１１２５、出力紙ドキュメントクラス１１２６及び出力ＬＳドキュメントクラス１１２７に継承される。具体的には出力ドキュメントクラス１１２１は、属性としてページ数１１２１ａを、操作として出力開始（）１１２１ｂ、ページ追加（）１１２１ｃ、終了通知（）１１２１ｄを有する。
【０１２８】
ページ数１１２１ａは、出力処理された出力ドキュメントのページ数を保持する。出力ドキュメントのページ数は、複合機１に対して行った出力する際の設定及びユーザドキュメントオブジェクト１１０２Ａが保持するユーザ画像の数から求めることができる。具体的には後述する出力開始（）１１２１ｂが呼び出された際に、引数として受け渡されたユーザ画像の数や、出力する際の設定より定められる出力レイアウト等からページ数が求められて、ページ数１１２１ａに設定される。例えばユーザドキュメントオブジェクト１１０２Ａが保持するユーザ画像の数が４枚であり、ユーザが「２ｉｎ１」で出力するように設定していた場合、ページ数１１２１ａは‘２’と設定される。また、出力ドキュメントクラス１１２１はページ数だけ出力ページオブジェクト１１２２Ａを生成する。また、ページ数１１２１ａは、後述するページ追加（）１１２１ｃを呼び出すことで、すでにページ数１１２１ａが定められていた場合でも、さらに入力処理が行われた等の理由で入力処理されたページの数が増加する場合でも、ページ数１１２１ａを追加することができる。
【０１２９】
出力開始（）１１２１ｂは、出力ドキュメントクラス１１２１が文書処理を開始するためのトリガーを与える処理を行う。この出力開始（）１１２１ｂは、サブクラスである出力ネットドキュメントクラス１１２５、出力紙ドキュメントクラス１１２６及び出力ＬＳドキュメントクラス１１２７に継承され、各サブクラスにおける具体的な処理によりオーバーライド（override）される。なお、かかる具体的な処理の説明については、後述する出力ネットドキュメントクラス１１２５、出力紙ドキュメントクラス１１２６及び出力ＬＳドキュメントクラス１１２７の説明で行う。
【０１３０】
ページ追加（）１１２１ｃは、ユーザドキュメントクラス１１０２から呼び出され、ページ数１１２１ａを追加する処理を行う。
【０１３１】
終了通知（）１１２１ｄは、後述する出力ページクラス１１２２から出力ドキュメントクラス１１２１にページ毎の処理が終了したことを通知する。
【０１３２】
出力ネットドキュメントクラス１１２５は、出力ドキュメントクラス１１２１のサブクラスであり、出力ドキュメントの出力先にネットワークを介して接続し、出力ページオブジェクト１１２２Ａに対して出力ドキュメントの出力ページ毎に出力処理する指示を行うクラスである。また、出力ネットドキュメントクラス１１２５は、出力先毎に異なるプロトコル、例えばＦＡＸ送信、メール送信あるいはファイルの転送等の違いに応じて、通信を制御するよう実行制御部２１３に指示し、さらに通信方式に応じた出力ドキュメントのフォーマットを用意し、出力ドキュメントを出力先に応じたフォーマットで整形して出力する処理を行う。このフォーマットはＦＡＸ送信等の通信で通常用いられている周知のフォーマットとする。
【０１３３】
具体的には、この出力ネットドキュメントクラス１１２５は、出力ドキュメントクラス１１２１から、属性としてページ数１１２１ａを、操作として出力開始（）１１２１ｂ、ページ追加（）１１２１ｃ、終了通知（）１１２１ｄを承継する。さらに、出力ネットドキュメントクラス１１２５は、属性として、ネットワークを介して出力処理を行うために必要な仕様及び設定を保持するが、図１１では省略する。なお、かかる出力ネットドキュメントクラス１１２５を実体化したオブジェクトが生成されると、属性として保持する出力処理を行うために必要な仕様及び設定及びページ数１１２１ａはＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込み及び読み出しをすることが可能となる。
【０１３４】
出力ドキュメントクラス１１２１から承継した出力開始（）１１２１ｂは、出力処理を開始するためのトリガーであり、ユーザドキュメントオブジェクト１１０２Ａから呼び出された場合、出力ネットドキュメントクラス１１２５が出力先にネットワークを介して接続し、予め生成されたユーザ画像を利用して出力先に応じたフォーマットで整形した出力ドキュメントを生成して出力する制御を行う。
【０１３５】
また、出力ネットドキュメントオブジェクト１１２５Ａは、出力開始（）１１２１ｂの引数として受け渡された情報よりネットワークを介した出力先を特定し、実行制御部２１３を介して利用できるＦＡＸ送受信制御部１０２ｅやネットワーク通信制御部１０２ｆを用いてネットワークへ接続し、出力先にこれから出力する出力文書の登録等の処理を行うことで、後述する出力ページクラス１１２２や出力画像クラス１１２４が出力する出力文書を構成するための情報、例えば出力レイアウトや出力画像等を出力先に出力することを可能とする。
【０１３６】
出力紙ドキュメントクラス１１２６は、出力ドキュメントクラス１１２１のサブクラスであり、プロッタ１５１ｂを制御して、出力ページオブジェクト１１２２Ａに出力ドキュメントの出力ページ毎に出力処理する指示を行うクラスである。また、出力紙ドキュメントクラス１１２６は、実行制御部２１３にプロッタ１５１ｂを制御して出力するよう指示すると共に、プロッタ１５１ｂで出力するために適したフォーマットを用意し、出力ドキュメントを用意したフォーマットを利用して出力する処理を行う。
【０１３７】
具体的には、この出力紙ドキュメントクラス１１２６は、出力ドキュメントクラス１１２１から、属性としてページ数１１２１ａを、操作として出力開始（）１１２１ｂ、ページ追加（）１１２１ｃ、終了通知（）１１２１ｄを承継する。また、出力紙ドキュメントクラス１１２６は、属性として、プロッタ１５１ｂから原稿を出力するための設定及び仕様をさらに有する。なお、プロッタ１５１ｂから原稿を出力するための設定及び仕様は従来からある設定又は仕様を用いることとし、図１１では省略する。なお、かかる出力紙ドキュメントクラス１１２６を実体化したオブジェクトが生成されると、属性として原稿を出力するための設定及び仕様及びページ数１１１１ａはＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込み及び読み出しをすることが可能となる。
【０１３８】
出力ドキュメントクラス１１２１から承継した出力開始（）１１２１ｂは、出力処理を開始するためのトリガーであり、ユーザドキュメントオブジェクト１１０２Ａから呼び出された場合に出力紙ドキュメントクラス１１２６がプロッタ１５１ｂで印刷するためのフォーマットを利用して出力ドキュメントを出力する制御を行う。
【０１３９】
また、出力紙ドキュメントクラス１１２６は、出力開始（）１１２１ｂが呼び出された場合、印刷する際に、実行制御部２１３を介して利用できるプロッタ制御部１０２ｂでプロッタ１５１ｂに対して出力する制御を行う。また、出力ページオブジェクト１１２２Ａに対して、印刷に適したレイアウト及び出力画像の配置を定める旨を指示する。これにより媒体の特性あるいはプロッタ１５１ｂによる原稿のハンドリングモードの違いにかかわらず共通した加工処理を行うことができる。さらに、出力紙ドキュメントクラス１１２６は、ユーザにより入力された設定に基づいて、紙の表のみ、あるいは表裏に印刷するか決定し、決定に従うようにプロッタ１５１ｂを制御する指示を行う。
【０１４０】
出力ＬＳドキュメントクラス１１２７は、出力ドキュメントクラス１１２１のサブクラスであり、ハードディスク等のローカルストレージ内の保存場所を定め、出力ページオブジェクト１１２２Ａに対して出力ドキュメントの出力ページ毎に出力処理する指示を行うクラスである。なお、ローカルストレージ内に出力ドキュメントを保存する際の電子文書のフォーマットに制限を設けるものではない。
【０１４１】
具体的には、この出力ＬＳドキュメントクラス１１２７は、出力ドキュメントクラス１１２１から、属性としてページ数１１２１ａを、操作として出力開始（）１１２１ｂ、ページ追加（）１１２１ｃ、終了通知（）１１２１ｄを承継する。さらに、出力ＬＳドキュメントクラス１１２７は、属性として、ローカルストレージに保存するための設定及び仕様を保持するが、従来から用いられている設定及び仕様を用いるため図１１では省略する。なお、かかる出力ＬＳドキュメントクラス１１２７を実体化したオブジェクトが生成されると、属性としてローカルストレージに保存するための設定及び仕様及びページ数１１２１ａはＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込み及び読み出しをすることが可能となる。
【０１４２】
出力ドキュメントクラス１１２１から承継した出力開始（）１１２１ｂは、出力処理を開始するためのトリガーであり、ユーザドキュメントオブジェクト１１０２Ａから呼び出された場合に出力ＬＳドキュメントクラス１１２７がローカルストレージの保存場所を特定し、保存する電子文書のファイル名等を登録し、予め生成されたユーザ画像を利用して保存する際のフォーマットで整形した出力ドキュメントを生成して出力する制御を行う。
【０１４３】
また、出力ＬＳドキュメントクラス１１２７は、出力開始（）１１２１ｂの引数として受け渡された情報より保存先及び電子文書のファイル名を特定し、実行制御部２１３を介して利用できる蓄積制御部１０２ｃを用いてローカルストレージの保存場所に出力文書の登録等の処理を行うことで、後述する出力ページクラス１１２２や出力画像クラス１１２４から出力文書に関する情報、例えば出力レイアウトや出力画像等の出力を可能にする。
【０１４４】
出力ページクラス１１２２は、出力ドキュメントクラス１１２１で生成される出力ドキュメントを構成する各ページを出力ページとして生成し、レイアウト等のページ毎の設定を出力先に出力するクラスである。出力ページクラス１１２２は、後述する出力レイアウトオブジェクト１１２３Ａ及び出力画像オブジェクト１１２４Ａを生成し、出力レイアウトに出力画像を当てはめた構成として出力ページを生成する。
【０１４５】
具体的には、この出力ページクラス１１２２は、属性としてページ番号１１２２ａを有し、操作として出力開始（）１１２２ｂ、終了通知（）１１２２ｃを有する。なお、かかる出力ページクラス１１２２を実体化したオブジェクトが生成されると、属性としてページ番号１１２２ａがＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込み及び読み出しをすることが可能となる。
【０１４６】
ページ番号１１２２ａは、この出力ページオブジェクト１１２２Ａが生成するページを示す番号を保持する。つまり出力ドキュメントクラス１１２１のサブクラスのオブジェクトが保持するページ数１１２１ａだけ出力ページオブジェクト１１２２Ａを生成するので、出力ページオブジェクト１１２２Ａが割り振られたページを特定するためにページ番号１１２２ａを保持することとなる。
【０１４７】
出力開始（）１１２２ｂは、出力ページクラス１１２２がページ処理を開始するためのトリガーを与える処理を行う。この出力開始（）１１２２ｂが、出力ネットドキュメントオブジェクト１１２５Ａ等の出力ドキュメントクラス１１２１のサブクラスのオブジェクトから呼び出された場合に、引数として受け渡されたページ番号及びユーザにより受け付けられた設定より定められるページの情報を取得し、取得したページの情報に基づいて出力レイアウトオブジェクト１１２３Ａ及び出力画像オブジェクト１１２４Ａを生成する。
【０１４８】
また、出力ページクラス１１２２は、出力開始（）１１２２ｂが呼び出された場合、出力ドキュメントクラス１１２１が管理する出力ドキュメントから該当するページの情報（以下、出力ページとする）を取得することで生成した出力レイアウトオブジェクト１１２３Ａを用いて出力レイアウト等のページ毎の設定を出力先に出力し、その後出力レイアウトに当てはめる出力画像を保持する出力画像オブジェクト１１２４Ａを生成する。
【０１４９】
終了通知（）１１２２ｃは、各出力画像オブジェクト１１２４Ａが出力ページクラス１１２２に画像処理が終了したことを通知する処理を行う。この終了通知（）１１２２ｃが、出力ページクラス１１２２が生成した全ての出力画像オブジェクト１１２４Ａから呼び出された場合に、出力ページクラス１１２２はページの処理が全て終了したと判断する。
【０１５０】
出力レイアウトクラス１１２３は、出力ページクラス１１２２で生成される出力ページに出力画像を当てはめるために用いられるレイアウト（以下、出力レイアウトという）を作成して管理するクラスである。具体的には、この出力レイアウトクラス１１２３は、属性として外枠や内枠あるいはオフセット位置などの情報を有するが、従来から用いられている情報を用いるので図１１では省略する。また、出力レイアウトクラス１１２３は、操作としてレイアウト作成（）１１２３ａを有する。なお、かかる出力レイアウトクラス１１２３を実体化したオブジェクトが生成されると、属性として外枠や内枠あるいはオフセット位置などの情報がＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込み及び読み出しをすることが可能となる。
【０１５１】
レイアウト作成（）１１２３ａは、出力レイアウトオブジェクト１１２３Ａが出力ページに出力画像を適した位置に配置するために設定する処理を行う。このレイアウト作成（）１１２３ａが、出力ページオブジェクト１１２２Ａから呼び出された場合に、引数として受け渡された情報から、属性として有する外枠や内枠あるいはオフセット位置を設定する。この設定により出力ページ内の出力画像の数が決定される。これにより、出力ページに出力画像というドキュメントハンドリングの最小単位を当てはめることが可能となる。
【０１５２】
出力画像クラス１１２４は、出力ページに対して出力レイアウトにより定められた配置に当てはまる画像（以下、出力画像という）を生成して出力するクラスである。具体的には、出力画像クラス１１２４は、上述したユーザ画像オブジェクト１１０３Ａで生成されたユーザ画像に基づいて生成された出力先に適したフォーマットの出力画像を取得する。また、出力画像クラス１１２４は、属性として出力画像を保持するための情報を有し、操作として出力開始（）１１２４ａを有する。なお、かかる出力画像クラス１１２４を実体化したオブジェクトが生成されると、出力画像を保持するための情報がＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込み及び読み出しをすることが可能となる。
【０１５３】
また、出力画像とは、出力レイアウトに当てはめる画像をいい、上述した入力画像及びユーザ画像と同様に、出力画像は所定のサイズの画像、本実施の形態ではドキュメントハンドリングの最小単位に分割された画像となる。また、出力画像は、単なる画像のみならず、出力レイアウトにより定められた枠内に表示される文字情報や、図形なども含まれる。
【０１５４】
出力開始（）１１２４ａは、出力画像クラス１１２４が画像処理を開始するためのトリガーを与える処理を行う。この出力開始（）１１２４ａが、出力ページオブジェクト１１２２Ａから呼び出された場合に、引数として受け渡される情報より、対応するユーザ画像を特定し、ユーザ画像オブジェクト１１０３Ａの利用（）１１０３ｂを呼び出すことで、ユーザ画像から出力レイアウトに当てはまるよう加工処理された出力画像を受信し、受信した出力画像を出力先に出力する。
【０１５５】
図１６は、本実施の形態のドキュメントハンドリング部２１２において「２ in １」の入力ドキュメントから「４ in １」の出力ドキュメントを生成するまでの工程を示した説明図である。本図に示すように、ドキュメントハンドリング部２１２は、ドキュメントをページ毎にレイアウトとレイアウトに当てはめる画像の組み合わせを用いることで画像単位での加工処理が容易になった。
【０１５６】
次に、図１１に戻り、各クラス間の関係について説明する。本図に示したように、各クラスを示す矩形を結ぶ直線は、その両端のクラス間に関係があることを表しており、この直線の両端付近の文字はクラスの役割を、数字はクラスの多重度をそれぞれ示している。ここで、役割とは、かかる直線の両端における、一方のクラスからみた、もう一方のクラスの役割や立場のことであり、多重度とは、かかる直線の両端のクラスから生成されるオブジェクト数の対応関係のことである。
【０１５７】
たとえば、ドキュメント操作スケジューラクラス１１０１からみたユーザドキュメントクラス１１０２の役割は「要求」であり、ユーザドキュメントクラス１１０２からみたドキュメント操作スケジューラクラス１１０１の役割は「受付」であり、ドキュメント操作スケジューラクラス１１０１の多重度は「１」であり、ユーザドキュメントクラス１１０２の多重度は「０．．＊」である。ここで、「０．．＊」は、かかるユーザドキュメントクラス１１０２の多重度が、０から上限数なしの範囲であることを示している。また、たとえば、「１．．３」の記載をした場合には、かかるクラスの多重度が、１〜３の範囲であることを示す。
【０１５８】
そして、本図に示したように、ドキュメントハンドリング部２１２が実行される場面において、ドキュメント操作スケジューラクラス１１０１をＲＡＭ１２ｂ上に展開（実体化）したオブジェクトは１個だけ存在し、このドキュメント操作スケジューラクラス１１０１の文書処理の要求対象となるユーザドキュメントクラス１１０２を実体化したオブジェクトは０個以上、上限数なしの範囲で存在する。
【０１５９】
次に、ユーザドキュメントクラス１１０２と入力ドキュメントクラス１１１１とのクラス関係について説明する。入力ドキュメントクラス１１１１は、ユーザドキュメントクラス１１０２からみるとユーザドキュメントを生成するために用いられる入力文書としての役割を有しており、一方、ユーザドキュメントクラス１１０２は、入力ドキュメントクラス１１１１からみると加工処理が行われるユーザ文書としての役割を有している。このようなクラス関係により入力された文書から加工対象となるユーザ文書を生成することが可能となる。
【０１６０】
また、ユーザドキュメントクラス１１０２は、ユーザからの要求毎に生成されるものであるのに対して、入力ドキュメントクラス１１１１は、ユーザ文書を生成する際に必要な文書の数に応じて生成されて入力処理を行うクラスである。このため、ユーザドキュメントクラス１１０２と入力ドキュメントクラス１１１１とは１対多の関係を有する。１つのユーザドキュメントを生成する際に複数の入力文書を入力処理する場合とは、例えば、ファックス受信文書と予め蓄積していた電子文書を１つにまとめて印刷する要求があった場合等が考えられる。また、このように「紙」文書と「ネット」文書のように入力元が異なる文書を１つにまとめて出力したい場合でも良いし、２つの「ネット」文書のように入力元が同じ複数の入力文書を１つにまとめて出力したい場合でも良い。
【０１６１】
次に、入力ドキュメントクラス１１１１と、入力ネットドキュメントクラス１１１５、入力紙ドキュメントクラス１１１６及び入力ＬＳドキュメントクラス１１１７の関係について説明する。入力ドキュメントクラス１１１１は、入力ネットドキュメントクラス１１１５、入力紙ドキュメントクラス１１１６及び入力ＬＳドキュメントクラス１１１７の上位クラス（スーパークラス）であり、入力ネットドキュメントクラス１１１５、入力紙ドキュメントクラス１１１６及び入力ＬＳドキュメントクラス１１１７は、入力ドキュメントクラス１１１１の属性及び操作を継承する。
【０１６２】
また、入力ドキュメントクラス１１１１と入力ページクラス１１１２の関係について説明する。入力ページクラス１１１２は、入力ドキュメントクラス１１１１が保持するドキュメントのページ毎に生成されるものである。このため、入力ページクラス１１１２は、入力ドキュメントクラス１１１１からみるとページとしての役割を有しており、一方、入力ドキュメントクラス１１１１は、入力ページクラス１１１２からみると文書としての役割を有している。
【０１６３】
また、入力ドキュメントクラス１１１１は、入力処理される入力文書毎に生成されるものであるのに対して、入力ページクラス１１１２はページ毎に生成されるクラスであるため、入力ドキュメントクラス１１１１と入力ページクラス１１１２とは１対多の関係を有する。また、入力ページクラス１１１２は、入力ドキュメントクラス１１１１に集約される関係を有する。
【０１６４】
次に、入力ページクラス１１１２と入力レイアウトクラス１１１３との関係について説明する。入力ページクラス１１１２は、ページ毎に生成されるものであり、入力レイアウトクラス１１１３は、ページ毎に定められるレイアウトである。つまり、入力レイアウトクラス１１１３は、入力ページクラス１１１２からみるとページ毎の枠としての役割を有しており、一方、入力ページクラス１１１２は、入力レイアウトクラス１１１３からみるとページとしての役割を有している。このような関係である以上、入力ページクラス１１１２と入力レイアウトクラス１１１３は１対１の関係となる。
【０１６５】
また、入力ページクラス１１１２と入力画像クラス１１１４の関係について説明する。入力画像クラス１１１４は、入力ページクラス１１１２が保持するページのレイアウトに従って分割された領域毎に生成されるものである。このため、入力画像クラス１１１４は、入力ページクラス１１１２からみるとページが有する枠に当てはめられる枠内構成物としての役割を有しており、一方、入力ページクラス１１１２は、入力画像クラス１１１４からみるとページとしての役割を有している。
【０１６６】
また、入力ページクラス１１１２は、入力ドキュメントのページ毎に生成されるものであるのに対して、入力画像クラス１１１４はページが有するレイアウトに従って分割された数だけ生成されるクラスであるため、入力ページクラス１１１２と入力画像クラス１１１４とは１対多の関係を有する。また、入力画像クラス１１１４は、入力ページクラス１１１２に集約される関係を有する。
【０１６７】
次に、入力画像クラス１１１４とユーザ画像クラス１１０３との関係について説明する。入力画像クラス１１１４はページが有する枠に従って分割された数だけ生成されるものであり、ユーザ画像クラス１１０３は入力画像に基づいて加工対象として作成されるものである。つまり、ユーザ画像クラス１１０３は、入力画像クラス１１１４からみると作成物としての役割を有しており、一方、入力画像クラス１１１４は、ユーザ画像クラス１１０３からみると入力物としての役割を有している。
【０１６８】
また、ユーザ画像クラス１１０３は、入力画像クラス１１１４に基づいて生成されるものであり、入力画像クラス１１１４及びユーザ画像クラス１１０３ともにドキュメントハンドリングの最小単位で分割したものであるため、入力画像クラス１１１４とユーザ画像クラス１１０３とは１対１の関係を有する。
【０１６９】
また、ユーザドキュメントクラス１１０２とユーザ画像クラス１１０３の関係について説明する。ユーザ画像クラス１１０３は、ユーザドキュメントクラス１１０２が保持するユーザドキュメントを構成するハンドリングの最小単位となる画像毎に生成されるものである。このため、ユーザ画像クラス１１０３は、ユーザドキュメントクラス１１０２からみると構成物としての役割を有しており、一方、ユーザドキュメントクラス１１０２は、ユーザ画像クラス１１０３からみると文書としての役割を有している。
【０１７０】
また、ユーザ画像クラス１１０３は、文書を構成する画像毎に生成されるものであるのに対して、ユーザドキュメントクラス１１０２は文書毎に生成されるクラスであるため、ユーザドキュメントクラス１１０２とユーザ画像クラス１１０３とは１対多の関係を有する。また、ユーザ画像クラス１１０３は、ユーザドキュメントクラス１１０２に集約される関係を有する。
【０１７１】
次に、ユーザドキュメントクラス１１０２と出力ドキュメントクラス１１２１とのクラス関係について説明する。出力ドキュメントクラス１１２１は、ユーザドキュメントクラス１１０２からみるとユーザの要求に応じた出力形式で出力される出力文書としての役割を有しており、一方、ユーザドキュメントクラス１１０２は、出力ドキュメントクラス１１２１からみるとユーザ文書としての役割を有している。このようなクラス関係により加工対象となるユーザ文書から出力文書を生成することが可能となる。
【０１７２】
また、ユーザドキュメントクラス１１０２は、ドキュメント操作スケジューラクラス１１０１から文書処理毎に生成されるものであり、出力ドキュメントクラス１１２１は、ユーザ要求に基づいて出力先に出力される文書毎に生成されるものであり、１つのユーザ要求に基づいて複数の文書を出力することは当然可能である。つまり、ユーザドキュメントクラス１１０２と出力ドキュメントクラス１１２１とは１対多の関係を有する。１つのユーザ要求に基づいて複数の文書を出力する場合とは、例えばユーザがスキャナで読み込んだ文書を「印刷＋蓄積」する旨の設定を行った場合等が考えられる。
【０１７３】
次に、出力画像クラス１１２４とユーザ画像クラス１１０３との関係について説明する。出力画像クラス１１２４は、出力ページが有する枠に当てはめられる数だけ、ユーザ画像を利用して生成されるものである。つまり、出力画像クラス１１２４は、ユーザ画像クラス１１０３からみると出力物としての役割を有しており、一方、ユーザ画像クラス１１０３は、出力画像クラス１１２４からみると利用物としての役割を有している。
【０１７４】
また、出力画像クラス１１２４は、ユーザ画像クラス１１０３に基づいて生成されるものであり、出力画像クラス１１２４及びユーザ画像クラス１１０３ともにドキュメントハンドリングの最小単位で分割したものである。また、１つのユーザ画像を複数の出力文書毎に利用される場合や、１つの出力文書中に１つのユーザ画像を複数利用する場合も考えられる。このため、ユーザ画像クラス１１０３と出力画像クラス１１２４とは１対多の関係を有する。
【０１７５】
また、出力ドキュメントクラス１１２１と、出力ネットドキュメントクラス１１２５、出力紙ドキュメントクラス１１２６及び出力ＬＳドキュメントクラス１１２７の関係は、入力ドキュメントクラス１１１１と、入力ネットドキュメントクラス１１１５、入力紙ドキュメントクラス１１１６及び入力ＬＳドキュメントクラス１１１７の関係と同様であるため説明を省略する。
【０１７６】
また、出力ドキュメントクラス１１２１と出力ページクラス１１２２の関係は入力ドキュメントクラス１１１１と入力ページクラス１１１２の関係と、出力ページクラス１１２２と出力レイアウトクラス１１２３の関係は入力ページクラス１１１２と入力レイアウトクラス１１１３の関係と、出力ページクラス１１２２と出力画像クラス１１２４の関係は入力ページクラス１１１２と入力画像クラス１１１４の関係と同様であるため説明を省略する。
【０１７７】
このように、ドキュメント操作スケジューラクラス１１０１、入力ドキュメントクラス１１１１、入力ページクラス１１１２、入力レイアウトクラス１１１３、入力画像クラス１１１４、入力ネットドキュメントクラス１１１５、入力紙ドキュメントクラス１１１６、入力ＬＳドキュメントクラス１１１７、ユーザドキュメントクラス１１０２、ユーザ画像クラス１１０３、出力ドキュメントクラス１１２１、出力ページクラス１１２２、出力レイアウトクラス１１２３、出力画像クラス１１２４、出力ネットドキュメントクラス１１２５、出力紙ドキュメントクラス１１２６、出力ＬＳドキュメントクラス１１２７の各オブジェクトは、相互に関連し合い、協調することによりドキュメントハンドリング部２１２に必要な機能を実現することが可能となる。
【０１７８】
次に、図１１に示した各クラスの操作の実行手順について例をあげて説明する。まずはドキュメントハンドリング部２１２が、複数の入力手段から入力処理を行う場合の例について説明する。図１７は、ドキュメントハンドリング部２１２が紙文書と、ローカルストレージ上に記憶されていた電子文書を入力処理するまでの処理手順を示すＵＭＬシーケンス図である。
【０１７９】
ここで、ＵＭＬシーケンス図について説明しておく。図１７の上部に並んだ矩形は、それぞれがクラスのオブジェクトを示している。各オブジェクトから下方に伸びた線は、各オブジェクトが生存していることを示す線（ライフライン）であり、上方から下方に向かって時間が流れているものとみなされる。この線上に存在する細長い矩形は、当該のオブジェクトが実際に活動している期間（活性期間）を示す。
【０１８０】
各ライフラインの間を結ぶ横向きの矢印は、オブジェクトに含まれる操作の実行を示す。具体的には、この矢印は、矢印の元のオブジェクトが、矢印の先のオブジェクトに含まれる操作を呼び出すことを示す。また、矢印が自分自身のオブジェクトを指している場合は、オブジェクトが自分に含まれる操作を自身で呼び出すことを意味する。
【０１８１】
図１７に示すように、ユーザが複合機１を操作して、文書処理を行う旨を入力すると、操作系サブシステム２０１は、ユーザが入力した文書処理のユーザ要求を示したリクエストをドキュメント操作スケジューラオブジェクト１１０１Ａに登録する（ステップＳ１５０１）。具体的には、操作系サブシステム２０１からのユーザ要求をリクエスト管理部２１１がリクエスト要求として受け付ける。そして、リクエスト管理部２１１がドキュメントハンドリング部２１２のドキュメント操作スケジューラオブジェクト１１０１Ａの登録（）１１０１ａを呼び出して、ユーザ要求を受け渡す。
【０１８２】
ドキュメント操作スケジューラオブジェクト１１０１Ａは、文書処理を行うユーザ要求を受け付けたので、ユーザ要求に対応するユーザドキュメントクラス１１０２のオブジェクトを生成し、生成したユーザドキュメントオブジェクト１１０２Ａの開始（）１１０２ｅを呼び出して、文書処理のユーザ要求を受け渡す（ステップＳ１５０２）。生成は、すべてのオブジェクトが有する操作であり、生成することで各オブジェクトはＲＡＭ１２ｂ上に実体化される。
【０１８３】
ユーザドキュメントオブジェクト１１０２Ａは、ユーザ要求を受け付けたので、ユーザ要求１１０２ａと、入力ドキュメントの種類１１０２ｂ、出力ドキュメントの種類１１０２ｃとの対応関係より、生成する入力ドキュメントクラス１１１１のサブクラス及び生成する出力ドキュメントクラス１１２１のサブクラスを決定する（ステップＳ１５０３）。なお、本シーケンス図では、生成する入力ドキュメントクラス１１１１のサブクラスとして、入力紙ドキュメントクラス１１１６、入力ＬＳドキュメントクラス１１１７に決定したものとする。また、ステップＳ１５０３により、出力ドキュメントクラス１１２１のサブクラスも決定されるが、決定された出力ドキュメントクラス１１２１のサブクラスで行われる処理については図１８で説明する。そして、ユーザドキュメントオブジェクト１１０２Ａは、決定された入力ドキュメントクラス１１１１のサブクラス及び出力ドキュメントクラス１１２１のサブクラスを生成する。なお、ユーザドキュメントオブジェクト１１０２Ａが生成されたオブジェクトを呼び出すタイミングは、入出力のタイミング１１０２ｄより決定される。
【０１８４】
そして、ユーザドキュメントオブジェクト１１０２Ａは、入力紙ドキュメントオブジェクト１１１６Ａの入力開始（）１１１１ｂを呼び出して、入力開始を要求する（ステップＳ１５０４）。
【０１８５】
次に、入力紙ドキュメントオブジェクト１１１６Ａは、要求に応じて実行制御部２１３を通じてスキャナ１５１ａを制御し、紙文書があることを確認すると、ページ追加（）１１１１ｃを呼び出して、ページ数１１１１ａにページ数を追加する（ステップＳ１５０５）。
【０１８６】
そして、入力紙ドキュメントオブジェクト１１１６Ａは、追加したページ数に対応した入力ページオブジェクト１１１２Ａを生成し、生成した入力ページオブジェクト１１１２Ａの入力開始（）１１１２ａを呼び出して、紙文書のページ毎の入力処理の開始を要求する（ステップＳ１５０６）。
【０１８７】
次に、入力ページオブジェクト１１１２Ａは、ページの入力処理を開始し、まず入力レイアウトオブジェクト１１１３Ａを生成し、生成された入力レイアウトオブジェクト１１１３Ａのレイアウト作成（）１１１３ａを呼び出して、ユーザにより入力された設定に基づいて、生成された入力レイアウトオブジェクト１１１３Ａの属性を設定する（ステップＳ１５０７）。そして、入力レイアウトオブジェクト１１１３Ａは、ページ毎に定められる入力画像の配置及び数等のレイアウトに関する情報を、入力ページオブジェクト１１１２Ａにメッセージとして送信する。
【０１８８】
そして、入力ページオブジェクト１１１２Ａは、入力レイアウトオブジェクト１１１３Ａにより定められる入力ページ毎の入力画像の数だけ、入力画像オブジェクト１１１４Ａを生成し、生成された入力画像オブジェクト１１１４Ａの入力開始（）１１１４ａを呼び出して、入力画像オブジェクト１１１４Ａに入力画像の入力処理の開始を要求する（ステップＳ１５０８）。
【０１８９】
次に、入力画像オブジェクト１１１４Ａは、スキャナ１５１ａを用いて入力処理された紙文書の画像を管理する紙文書入力処理部に対して、入力開始（）を呼び出して、入力レイアウトにより定められた領域の画像を送信する旨要求する（ステップＳ１５０９）。なお、紙文書入力処理部は、実行系サブシステム２０３内に備えられた構成とする。そして、紙文書入力処理部は、入力画像オブジェクト１１１４Ａに対して、入力レイアウトにより定められた領域の画像情報を送信する（ステップＳ１５１０）。これにより入力画像オブジェクト１１１４Ａは、入力画像の実体を保持することとなる。
【０１９０】
そして、入力画像オブジェクト１１１４Ａは、ユーザ画像オブジェクト１１０３Ａを生成し、生成されたユーザ画像オブジェクト１１０３Ａの作成（）１１０３ａを呼び出す（ステップＳ１５１１）。これにより、入力画像オブジェクト１１１４Ａが保持する入力画像の実体に基づいて、ユーザ画像オブジェクト１１０３Ａが保持するユーザ画像が作成される。
【０１９１】
そして、入力画像オブジェクト１１１４Ａは、ユーザ画像の作成後に、入力ページオブジェクト１１１２Ａの終了通知（）１１１２ｃを呼び出して、画像の処理が終了したことを通知する（ステップＳ１５１２）。なお、このステップＳ１５０９〜ステップＳ１５１２までの処理は生成された入力画像オブジェクト１１１４Ａ毎に行われる。
【０１９２】
次に、入力紙ドキュメントオブジェクト１１１６Ａは、生成した全ての入力画像オブジェクト１１１４Ａから画像の処理が終了したことを受信した場合、入力紙ドキュメントオブジェクト１１１６Ａの終了通知（）１１１１ｄを呼び出して、ページの処理が終了したことを通知する（ステップＳ１５１３）。
【０１９３】
また、入力紙ドキュメントオブジェクト１１１６Ａは、デバイス情報管理部からセット原稿有りの通知を上述した処理と非同期で受信している（ステップＳ１５１４）。
【０１９４】
そして、入力紙ドキュメントオブジェクト１１１６Ａは、生成した全ての入力ページオブジェクト１１１２Ａからページの処理が終了した旨を受け取った際、次原稿有無確認（）１１１６ｂを呼び出して、入力処理する紙文書があるか否か判断する（ステップＳ１５１５）。そして、ステップＳ１５１４よりセット原稿有りの通知を受信していた場合は、入力処理する紙文書があると判断して、入力紙ドキュメントオブジェクト１１１６Ａは、ページ追加（）１１１１ｃを呼び出して、ステップＳ１５０５以降の処理を再び開始する。
【０１９５】
そして、ステップＳ１５１４よりセット原稿有りの通知を受信していなかった場合、入力紙ドキュメントオブジェクト１１１６Ａは、ユーザドキュメントオブジェクト１１０２Ａの終了通知（）１１０２ｆを呼び出して、紙文書の入力処理が終了したことを通知する（ステップＳ１５１６）。
【０１９６】
そして、ユーザドキュメントオブジェクト１１０２Ａは、紙文書の入力処理が終了した旨を示した通知を受信した場合、ステップＳ１５０３で生成していた入力ＬＳドキュメントオブジェクト１１１７Ａの入力開始（）１１１１ｂを呼び出して、入力開始を要求する（ステップＳ１５１７）。
【０１９７】
次に、入力ＬＳドキュメントオブジェクト１１１７Ａは、入力処理を行う電子文書が保持するページ数分の入力ページオブジェクト１１１２Ａを生成し、生成した入力ページオブジェクト１１１２Ａの入力開始（）１１１２ｂを呼び出して、電子文書のページ毎の入力処理の開始を要求する（ステップＳ１５１８）。なお、入力処理を行う電子文書のページ数を取得する処理は実行系サブシステム２０３を通じて行われることとする。
【０１９８】
また、ステップＳ１５１７で生成された入力ページオブジェクト１１１２Ａは、入力ＬＳドキュメントオブジェクト１１１７Ａに集約される関係にあるのに対し、ステップＳ１５０６で生成された入力ページオブジェクト１１１２Ａは、入力紙ドキュメントオブジェクト１１１６Ａに集約される関係にある点で異なる。さらに後述する処理で生成される入力レイアウトオブジェクト１１１３Ａ、入力画像オブジェクト１１１４Ａは、入力ＬＳドキュメントオブジェクト１１１７Ａに集約される入力ページオブジェクト１１１２Ａに集約される関係にあり、上述した入力レイアウトオブジェクト１１１３Ａ、入力画像オブジェクト１１１４Ａとは集約される対象が異なるオブジェクトとする。
【０１９９】
次に、入力ページオブジェクト１１１２Ａは、ページの入力処理を開始し、まず入力レイアウトオブジェクト１１１３Ａを生成し、生成された入力レイアウトオブジェクト１１１３Ａのレイアウト作成（）１１１３ａを呼び出して、ユーザにより入力された設定に基づいて、生成された入力レイアウトオブジェクト１１１３Ａの属性を設定する（ステップＳ１５１９）。そして、入力レイアウトオブジェクト１１１３Ａは、ページ毎に定められる入力画像の配置及び数等のレイアウトに関する情報を、入力ページオブジェクト１１１２Ａにメッセージとして送信する。
【０２００】
そして、入力ページオブジェクト１１１２Ａは、入力レイアウトオブジェクト１１１３Ａにより定められる入力ページ毎の入力画像の数だけ、入力画像オブジェクト１１１４Ａを生成し、生成された入力画像オブジェクト１１１４Ａの入力開始（）１１１４ａを呼び出して、入力画像オブジェクト１１１４Ａに入力画像の入力処理の開始を要求する（ステップＳ１５２０）。
【０２０１】
次に、入力画像オブジェクト１１１４Ａは、ローカルストレージ上に記憶された電子文書の画像を管理する蓄積文書入力処理部に対して、入力開始（）を呼び出して、入力レイアウトにより定められた領域の画像を送信する旨要求する（ステップＳ１５２１）。なお、蓄積文書入力処理部は、実行系サブシステム２０３内に備えられた構成とする。そして、蓄積文書入力処理部は、入力画像オブジェクト１１１４Ａに対して、入力レイアウトにより定められた領域の画像情報を送信する（ステップＳ１５２２）。これにより入力画像オブジェクト１１１４Ａは、入力画像の実体を保持することとなる。
【０２０２】
そして、入力画像オブジェクト１１１４Ａは、ユーザ画像オブジェクト１１０３Ａを生成し、生成されたユーザ画像オブジェクト１１０３Ａの作成（）１１０３ａを呼び出す（ステップＳ１５２３）。これにより、入力画像オブジェクト１１１４Ａが保持する入力画像の実体に基づいて、ユーザ画像オブジェクト１１０３Ａが保持するユーザ画像が作成される。つまり、ユーザドキュメントオブジェクト１１０２Ａは、紙原稿から入力処理されたユーザ画像オブジェクト１１０３Ａと電子文書から入力処理されたユーザ画像オブジェクト１１０３Ａの両方を集約する関係になる。
【０２０３】
そして、入力画像オブジェクト１１１４Ａは、ユーザ画像の作成後に、入力ページオブジェクト１１１２Ａの終了通知（）１１１２ｃを呼び出して、画像の処理が終了したことを通知する（ステップＳ１５２４）。このステップＳ１５２１〜ステップＳ１５２４までの処理は生成された入力画像オブジェクト１１１４Ａ毎に行われる。
【０２０４】
次に、入力ページオブジェクト１１１２Ａは、生成した全ての入力画像オブジェクト１１１４Ａから画像の処理が終了したことを受信した場合は、入力ＬＳドキュメントオブジェクト１１１７Ａの終了通知（）１１１１ｄを呼び出して、ページの処理が終了したことを通知する（ステップＳ１５２５）。
【０２０５】
そして、入力ＬＳドキュメントオブジェクト１１１７Ａは、生成した全ての入力ページオブジェクト１１１２Ａからページの処理が終了した旨を受け取った場合、ユーザドキュメントオブジェクト１１０２Ａの終了通知（）１１０２ｆを呼び出して、ローカルストレージ上の電子文書の入力処理が終了したことを通知する（ステップＳ１５２６）。
【０２０６】
上述した処理手順により、紙文書及び電子文書から入力処理したユーザ画像を生成することが可能になる。なお、上述した処理手順は、本実施の形態による入力処理の一例を示したものであり、本発明をこの処理手順に制限するものではない。例えば、紙文書あるいは電子文書のどちらか一方のみ入力処理を行っても良い。他の例としては、紙文書とネットワーク上の電子文書を入力処理、ローカルストレージ上の電子文書とネットワーク上の電子文書の入力処理、あるいは紙文書とローカルストレージ上の電子文書とネットワーク上の電子文書の全てを入力処理しても良い。
【０２０７】
次に、ドキュメントハンドリング部２１２が、複数の出力手段から出力処理を行う場合の例について説明する。図１８は、ドキュメントハンドリング部２１２が紙文書と、ローカルストレージ上に記憶されていた電子文書を出力処理するまでの処理手順を示すＵＭＬシーケンス図である。なお、図１８で示される出力処理は、図１７で示した入力処理などの処理手順が行われたことを前提に説明する。
【０２０８】
具体的には、図１７のステップＳ１５０３で示されるように処理に用いられる出力ドキュメントクラス１１２１のサブクラスが決定され、すでに生成されているものとする。具体的には、図１８で示す処理手順では、処理に用いる出力ドキュメントクラス１１２１のサブクラスを、出力紙ドキュメントオブジェクト１１２６Ａ及び出力ＬＳドキュメントオブジェクト１１２７Ａとする。また、ユーザ画像オブジェクト１１０３Ａも既に生成され、ユーザ画像の実体を保持している。
【０２０９】
まずは、ユーザドキュメントオブジェクト１１０２Ａは、属性として有する入出力のタイミング１１０２ｄに基づいて、出力紙ドキュメントオブジェクト１１２６Ａの出力開始（）１１２１ｂを呼び出して、出力紙ドキュメントオブジェクト１１２６Ａに対してプロッタ１５１ｂから紙文書の出力処理の開始を要求する（ステップＳ１６０１）。この出力開始（）１１２１ｂで呼び出された際に、出力紙ドキュメントオブジェクト１１２６Ａのページ数１１２１ａが設定される。
【０２１０】
そして、出力紙ドキュメントオブジェクト１１２６Ａは、要求に応じて実行制御部２１３を通じて利用できるプロッタ制御部１０２ｂを用いて紙文書が出力可能か確認してから、プロッタ１５１ｂから出力処理する文書を管理する紙文書出力処理部に出力処理する文書を登録する（ステップＳ１６０２）。なお、紙文書出力処理部は、実行系サブシステム２０３に備えられているものとする。
【０２１１】
そして、出力紙ドキュメントオブジェクト１１２６Ａは、ページ数１１２１ａの数だけ出力ページオブジェクト１１２２Ａを生成し、生成された出力ページオブジェクト１１２２Ａの出力開始（）１１２２ｂを呼び出して、電子文書のページ毎の出力処理の開始を要求する（ステップＳ１６０３）。
【０２１２】
次に、出力ページオブジェクト１１２２Ａは、ページの出力処理を開始する。まずは、ユーザにより入力された形式で出力するために、出力レイアウトオブジェクト１１２３Ａを生成し、生成された出力レイアウトオブジェクト１１２３Ａのレイアウト作成（）１１２３ａを呼び出し、ユーザにより入力された形式で出力するために最適な属性値を、生成された出力レイアウトオブジェクト１１２３Ａの属性に設定する（ステップＳ１６０４）。
【０２１３】
そして、出力レイアウトオブジェクト１１２３Ａは、当てはめられる出力画像の数やレイアウトについて出力先のコンピュータに送信する情報を、出力ページオブジェクト１１２２Ａにメッセージとして送信する。そして、出力ページオブジェクト１１２２Ａは、出力ページの必要な情報を紙文書出力処理部に送信して、ページ登録を行う（ステップＳ１６０５）。
【０２１４】
そして、出力ページオブジェクト１１２２Ａは、出力レイアウトオブジェクト１１２３Ａにより定められる出力ページに当てはめられる出力画像の数だけ、出力画像オブジェクト１１２４Ａを生成し、生成された出力画像オブジェクト１１２４Ａの出力開始（）１１２４ａを呼び出して、出力画像オブジェクト１１２４Ａに出力画像の出力処理の開始を要求する（ステップＳ１６０６）。
【０２１５】
次に、出力画像オブジェクト１１２４Ａは、出力開始（）１１２４ａの引数として受け渡された情報、例えばページ番号やページ内で何番目の出力画像か等の情報により対応関係が特定されるユーザ画像オブジェクト１１０３Ａの利用（）１１０３ｂを呼び出す（ステップＳ１６０７）。すると、ユーザ画像オブジェクト１１０３Ａが、対応する画像情報を出力画像オブジェクト１１２４Ａに送信する（ステップＳ１６０８）。その際、ユーザ画像オブジェクト１１０３Ａは、予め送信する画像情報で特定される画像の実体に対して、出力レイアウトに当てはまるよう拡大あるいは縮小などの加工処理を行う必要がある。これにより出力画像オブジェクト１１２４Ａは画像の実体を保持することができる。
【０２１６】
そして、出力画像オブジェクト１１２４Ａは、受信した出力画像の実体を、紙文書出力処理部に出力処理を開始する（ステップＳ１６０９）。次に、出力処理が終了した場合、出力画像オブジェクト１１２４Ａは、出力ページオブジェクト１１２２Ａの終了通知（）１１２２ｃを呼び出して、画像処理を終了する（ステップＳ１６１０）。なお、このステップＳ１６０７〜ステップＳ１６１０での処理は生成された出力画像オブジェクト１１２４Ａ毎に行われる。
【０２１７】
次に、出力ページオブジェクト１１２２Ａは、生成した全ての出力画像オブジェクト１１２４Ａから画像処理が終了したことを受信した場合、出力紙ドキュメントオブジェクト１１２６Ａの終了通知（）１１２１ｄを呼び出して、ページの処理が終了したことを通知する（ステップＳ１６１１）。
【０２１８】
そして、出力紙ドキュメントオブジェクト１１２６Ａは、生成した全ての出力ページオブジェクト１１２２Ａからページの処理が終了した旨を受け取った場合、出力する画像全て送信したことを示すメッセージを紙文書出力処理部に送信してから、ユーザドキュメントオブジェクト１１０２Ａの終了通知（）１１０２ｆを呼び出して、紙文書の出力処理が終了したことを通知する（ステップＳ１６１２）。これにより紙文書出力処理部から、プロッタ１５１ｂから紙文書の出力処理が実行されることになる。
【０２１９】
そして、ユーザドキュメントオブジェクト１１０２Ａは、紙文書の出力処理が終了した旨を示した通知を受信した場合、図１７のステップＳ１５０３で生成していた出力ＬＳドキュメントオブジェクト１１２７Ａの出力開始（）１１２１ｂを呼び出して、出力開始を要求する（ステップＳ１６１３）。この出力開始（）１１２１ｂで呼び出された際に、出力ＬＳドキュメントオブジェクト１１２７Ａのページ数１１２１ａが設定される。
【０２２０】
出力ＬＳドキュメントオブジェクト１１２７Ａは、文書蓄積処理部に出力する電子文書のファイル名等を送信して、文書蓄積処理部にローカルストレージに保存する電子文書を登録する（ステップＳ１６１４）。
【０２２１】
そして、出力ＬＳドキュメントオブジェクト１１２７Ａは、ページ数１１２１ａの数だけ出力ページオブジェクト１１２２Ａを生成し、生成された出力ページオブジェクト１１２２Ａの出力開始（）１１２２ｂを呼び出して、電子文書のページ毎の出力処理の開始を要求する（ステップＳ１６１５）。
【０２２２】
また、ステップＳ１６１５で生成された出力ページオブジェクト１１２２Ａは、出力ＬＳドキュメントオブジェクト１１２７Ａに集約される関係にあるのに対し、ステップＳ１６０３で生成された出力ページオブジェクト１１２２Ａは、出力紙ドキュメントオブジェクト１１２６Ａに集約される関係にある点で異なる。さらに後述する処理で生成される出力レイアウトオブジェクト１１２３Ａ、出力画像オブジェクト１１２４Ａは、出力ＬＳドキュメントオブジェクト１１２７Ａに集約される出力ページオブジェクト１１２２Ａに集約される関係にあり、上述した出力レイアウトオブジェクト１１２３Ａ、出力画像オブジェクト１１２４Ａとは集約される対象が異なるオブジェクトとする。
【０２２３】
次に、出力ページオブジェクト１１２２Ａは、ページの出力処理を開始する。まずは、ユーザにより入力された形式で出力するために、出力レイアウトオブジェクト１１２３Ａを生成し、生成された出力レイアウトオブジェクト１１２３Ａのレイアウト作成（）１１２３ａを呼び出し、ユーザにより入力された形式で出力するために最適な属性値を、生成された出力レイアウトオブジェクト１１２３Ａの属性に設定する（ステップＳ１６１６）。
【０２２４】
そして、出力レイアウトオブジェクト１１２３Ａは、当てはめられる出力画像の数やレイアウトについて出力先のコンピュータに送信する情報を、出力ページオブジェクト１１２２Ａにメッセージとして送信する。そして、出力ページオブジェクト１１２２Ａは、出力ページの必要な情報を文書蓄積処理部に送信して、ページ登録を行う（ステップＳ１６１７）。
【０２２５】
そして、出力ページオブジェクト１１２２Ａは、出力レイアウトオブジェクト１１２３Ａにより定められる出力ページに当てはめられる出力画像の数だけ、出力画像オブジェクト１１２４Ａを生成し、生成された出力画像オブジェクト１１２４Ａの出力開始（）１１２４ａを呼び出して、出力画像オブジェクト１１２４Ａに出力画像の出力処理の開始を要求する（ステップＳ１６１８）。
【０２２６】
次に、出力画像オブジェクト１１２４Ａは、出力開始（）１１２４ａの引数として受け渡された情報、例えばページ番号やページ内で何番目の出力画像か等の情報により対応関係が特定されるユーザ画像オブジェクト１１０３Ａの利用（）１１０３ｂを呼び出す（ステップＳ１６１９）。すると、ユーザ画像オブジェクト１１０３Ａが、対応する画像情報を出力画像オブジェクト１１２４Ａに送信する（ステップＳ１６２０）。その際、ユーザ画像オブジェクト１１０３Ａは、予め送信する画像情報で特定される画像の実体に対して、出力レイアウトに当てはまるよう拡大あるいは縮小などの加工処理を行う必要がある。これにより出力画像オブジェクト１１２４Ａは画像の実体を保持することができる。
【０２２７】
そして、出力画像オブジェクト１１２４Ａは、受信した出力画像の実体を、文書蓄積処理部に出力処理を開始する（ステップＳ１６２１）。次に、出力処理が終了した場合、出力画像オブジェクト１１２４Ａは、出力ページオブジェクト１１２２Ａの終了通知（）１１２２ｃを呼び出して、画像処理を終了する（ステップＳ１６２２）。なお、このステップＳ１６１９〜ステップＳ１６２２までの処理は生成された出力画像オブジェクト１１２４Ａ毎に行われる。
【０２２８】
次に、出力ページオブジェクト１１２２Ａは、生成した全ての出力画像オブジェクト１１２４Ａから画像処理が終了したことを受信した場合、出力ＬＳドキュメントオブジェクト１１２７Ａの終了通知（）１１２１ｄを呼び出して、ページの処理が終了したことを通知する（ステップＳ１６２３）。
【０２２９】
そして、出力ＬＳドキュメントオブジェクト１１２７Ａは、生成した全ての出力ページオブジェクト１１２２Ａからページの処理が終了した旨を受け取った場合、出力する画像全て送信したことを示すメッセージを文書蓄積処理部に送信してから、ユーザドキュメントオブジェクト１１０２Ａの終了通知（）１１０２ｆを呼び出して、電子文書のローカルストレージ上への出力処理が終了したことを通知する（ステップＳ１６２４）。これにより文書蓄積処理部からローカルストレージ上に電子文書が保存される。
【０２３０】
そして、ユーザドキュメントオブジェクト１１０２Ａは、出力処理が終了したものとして、生成した入力紙ドキュメントオブジェクト１１１６Ａ、入力ＬＳドキュメントオブジェクト１１１７Ａ、出力紙ドキュメントオブジェクト１１２６Ａ、出力ＬＳドキュメントオブジェクト１１２７Ａを削除して処理を終了する。
【０２３１】
上述した処理手順により、生成されたユーザ画像から紙文書及び電子文書を出力処理することが可能になる。なお、上述した処理手順は、本実施の形態による出力処理の一例を示したものであり、本発明をこの処理手順に制限するものではない。例えば、紙文書あるいは電子文書のどちらか一方のみ出力処理を行っても良い。他の例としては、紙文書とネットワーク上に電子文書を出力処理、ローカルストレージ上の電子文書とネットワーク上の電子文書の出力処理、あるいは紙文書とローカルストレージ上の電子文書とネットワーク上の電子文書の全てを出力処理しても良い。
【０２３２】
上述した図１７及び図１８のシーケンス図で示したように、本実施の形態では、文書処理を行うにあたり、ドキュメント操作スケジューラクラス１１０１と、ユーザドキュメントクラス１１０２と、入力ドキュメントクラス１１１１及びこのサブクラスと、入力ページクラス１１１２と、入力レイアウトクラス１１１３と、入力画像クラス１１１４と、出力ドキュメントクラス１１２１とこのサブクラスと、出力ページクラス１１２２と、出力画像クラス１１２４と、出力レイアウトクラス１１２３と、ユーザ画像クラス１１０３とから構成され、各クラスから生成されたオブジェクトで文書の入力処理から出力処理までを行うことでユーザの要求に応じた加工処理が容易となる。また、オブジェクト指向設計により、かかるドキュメントハンドリング部２１２の仕組みを構築し、図７で示したような概念に基づいてオブジェクトモデリングをおこない、文書処理に必要なクラスとして上述したクラスを用いることで、かかるドキュメントハンドリング部２１２を実現したので、ソフトウェア開発者やソフトウェア保守要員が、ドキュメントハンドリング部２１２の構成と役割を容易に把握することができるとともに、汎用性及び信頼性の高い文書処理を行うことができる。
【０２３３】
なお、本実施の形態の画像形成装置で実行される文書処理プログラムは、インストール可能な形式または実行可能な形式のファイルでＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ（CD Recordable）、ＤＶＤ（Digital Versatile Disk）などのコンピュータで読み取り可能な記録媒体に記録して提供するよう構成してもよい。この場合、ＣＰＵ１１が上記記録媒体から、文書処理プログラムを読み出してＭＥＭ−Ｐ１２上にロードすることで、画像形成装置に、上述した各ステップ、各手段または各部を実現させる。
【０２３４】
また、文書処理プログラムを、インターネットなどのネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するよう構成してもよい。さらに、かかる文書処理プログラムをインターネットなどのネットワーク経由で提供または配布するようにしてもよい。
【０２３５】
上述した構成は、本発明の文書処理装置、画像形成装置及び文書処理プログラムの一例を示したものであり、上述した構成に制限するものではない。
【０２３６】
また、本実施の形態を、ドキュメントを「紙」ドキュメント、「ネット」ドキュメント及び「ＬＳ」ドキュメントに制限するものではなく、光あるいは磁気（ＣＤ−ＲＯＭ／ＲＡＭ、ＤＶＤ―ＲＯＭ／ＲＡＭ、磁気テープ、フレキシブルディスク、スマートカード、光磁気ディスク）、赤外線（ＩｒＤＡ等）、音声などでも良い。
【０２３７】
本実施の形態のドキュメントハンドリング部２１２は、入力元及び出力先によらず処理を共通化したので、入力元及び出力先に応じたアプリケーションを作成する必要が無くなり、ソフトウェアを作成する負担を軽減することができる。そして、アプリケーションの概念を廃したことで利用者が使用する際に手順が従来の手順と異なるが、本実施の形態で示すようにユーザ要求１１０２ａ、入力ドキュメントの種類１１０２ｂ、出力ドキュメントの種類１１０２ｃを対応付けて保持しているため、どのようなユーザの要望であっても予め対応関係を保持することで入力ドキュメントクラス１１１１のサブクラス及び出力ドキュメントクラス１１２１のサブクラスを特定できるので、利用者に対してどのようなインターフェースでも提供できるので、利用者の利便性が向上する。
【０２３８】
そして、本実施の形態のドキュメントハンドリング部２１２は、オブジェクト毎に分割して設計し、上述した構成を備えることとした。これによりプログラムの変更が生じた場合、該当するクラスのみ変更を加えればよい。このため従来は機能が拡張されると設計者の作業量もこれに比例していたが、上述した構成を備えたことで作業量が低減される。
【０２３９】
また、従来の文書処理を行う部分は、アプリケーション毎に設計されていたが、上述した構成を備えたことでアプリケーション毎という概念が無くなったため、設計の効率が向上した。また、アプリケーション毎に文書処理を行う場合では、出力先毎に同じ設定を行ったにもかかわらず、アプリケーション毎の処理の違いにより、出力先毎にレイアウトが異なる（より詳細な例としてはヘッダまたはフッタの間隔が異なる）文書が出力されるという問題があった。しかし、本実施の形態にかかるドキュメントハンドリング部２１２は、上述した構成を備えることでアプリケーション毎に処理を行うという概念が無くなったため、異なるレイアウトの文書が出力されるという問題を解消し、信頼性が向上した。
【０２４０】
上述した構成を備えることで、入力元あるいは出力先が増加した場合、従来はアプリケーション毎に入力元あるいは出力先に関する機能を追加する必要があったが、本発明により入力元あるいは出力先に相当する入力ドキュメントクラス１１１１あるいは出力ドキュメントクラス１１２１のサブクラスを追加するだけで機能の拡張が可能となる。これにより新機能追加した場合の作業量が低減することとなる。さらにその際に、ユーザドキュメントオブジェクト１１０２Ａが保持しているユーザ要求１１０２ａと入力ドキュメントの種類１１０２ｂと出力ドキュメントの種類１１０２ｃの対応関係を修正することで、優勢下対応関係におけるユーザ要求１１０２ａに対応した表示をインターフェースに追加することで、機能を拡張した際に利用者が混乱しないインターフェースを提供できる。
【産業上の利用可能性】
【０２４１】
以上のように、本発明にかかる文書処理装置、画像形成装置及び文書処理プログラムは、文書処理を共通化する技術として有用であり、特に、文書処理を共通化した際に利用者に適した文書処理についてのインターフェースを提供する技術に適している。
【図面の簡単な説明】
【０２４２】
【図１】実施の形態に係る複合機を取り巻くネットワーク環境を説明するためのネットワーク図である。
【図２】実施の形態に係る複合機のハードウェア構成を示すブロック図である。
【図３】実施の形態に係る複合機のソフトウェアとハードウェアの関係を説明するための概念図である。
【図４】実施の形態に係る複合機の操作パネルの一例を示した図である。
【図５】実施の形態に係る複合機の統合アプリケーションの内部構成、及び統合アプリケーション内におけるドキュメントハンドリング部の位置を示す説明図である。
【図６】実施の形態に係る複合機の統合アプリケーションの内部構成として示した各サブシステムについてのＵＭＬクラス図である。
【図７】実施の形態に係る複合機が有するドキュメントハンドリング部で行われる処理の概念を示した概念図である。
【図８】実施の形態において入力ドキュメント及び出力ドキュメントを管理するための構成の概念を示した概念図である。
【図９】実施の形態に係る文書処理で用いられる入力ドキュメントからユーザドキュメント、そして出力ドキュメントまでの構成の変化を示した説明図である。
【図１０】実施の形態に係る複合機の利用者からの要求から入力元及び出力先が決定されるまでの処理の概念を示した概念図である。
【図１１】オブジェクトモデリングにより設計されたドキュメントハンドリング部のクラス構成をＵＭＬのクラスで示した図である。
【図１２】実施の形態に係るユーザドキュメントクラスが保持するユーザ要求、入力ドキュメントの種類、出力ドキュメントの種類の対応付けの一例を示した図である。
【図１３】操作パネルのコピーサーバーキーを押下した場合に表示される液晶タッチパネルの画面例を示した図である。
【図１４】操作パネルのスキャナキーを押下した場合に表示される液晶タッチパネルの画面例を示した図である。
【図１５】本実施の形態の変形例における表示される液晶タッチパネルの画面例を示した図である。
【図１６】実施の形態に係るドキュメントハンドリング部において「２ in １」の入力ドキュメントから「４ in １」の出力ドキュメントを生成するまでの工程を示した説明図である。
【図１７】実施の形態に係るドキュメントハンドリング部が紙文書と、ローカルストレージ上に記憶されていた電子文書を入力処理するまでの処理手順を示すＵＭＬシーケンス図である。
【図１８】実施の形態に係るドキュメントハンドリング部が紙文書と、ローカルストレージ上に記憶されていた電子文書を出力処理するまでの処理手順を示すＵＭＬシーケンス図である。
【図１９】従来の複合機においてアプリケーション毎に有するジョブの種類を示した説明図である。
【図２０】従来の複合機においてアプリケーション毎に備えられたジョブを入力と出力により分類した説明図である。
【図２１】複合機に搭載されるソフトウェア構成の変遷を説明するための説明図である。
【図２２】従来の複合機のソフトウェアとハードウェアの関係を説明するための説明図である。
【符号の説明】
【０２４３】
１  複合機
１０  コントローラ
１１  ＣＰＵ
１２  システムメモリ（ＭＥＭ−Ｐ）
１２ａ  ＲＯＭ
１２ｂ  ＲＡＭ
１３  ノースブリッジ（ＮＢ）
１４  サウスブリッジ（ＳＢ）
１５  ＡＧＰバス
１６  ＡＳＩＣ
１７  ローカルメモリ（ＭＥＭ−Ｃ）
１８  ハードディスクドライブ（ＨＤＤ）
２０  操作部
３０  ＦＣＵ
４０  ＵＳＢ
５０  ＩＥＥＥ１３９４インターフェース
６０  エンジン部
１００、１００Ａ  ソフトウェア
１０１、１０１Ａ  アプリケーション層
１０２  サービス層
１０２ａ  スキャナ制御部
１０２ｂ  プロッタ制御部
１０２ｃ  蓄積制御部
１０２ｄ  配信／メール送受信制御部
１０２ｅ  ＦＡＸ送受信制御部
１０２ｆ  ネットワーク通信制御部
１０２ｇ  その他の制御部
１０３  オペレーティングシステム
１１０  統合アプリケーション
１２１  コピーアプリケーション
１２２  スキャナアプリケーション
１２３  ファックスアプリケーション
１２４  プリンタアプリケーション
１５０  ハードウェア
１５１  ハードウェアリソース
１５１ａ  スキャナ
１５１ｂ  プロッタ
１５１ｃ  ＨＤＤ
１５１ｄ  ネットワーク
１５１ｅ  その他のリソース
２０１  操作系サブシステム
２０２  管理系サブシステム
２０３  実行系サブシステム
２１１  リクエスト管理部
２１２  ドキュメントハンドリング部
２１３  実行制御部
４００  操作パネル
４０１  初期設定キー
４０２  コピーキー
４０３  コピーサーバーキー
４０４  プリンタキー
４０５  送信キー
４０６  テンキー
４０７  クリア／ストップキー
４０８  スタートキー
４０９  予熱キー
４１０  リセットキー
４１１  スキャナキー
４２０  液晶タッチパネル
１１０１  ドキュメント操作スケジューラクラス
１１０１ａ  登録（）
１１０１Ａ  ドキュメント操作スケジューラオブジェクト
１１０２  ユーザドキュメントクラス
１１０２ａ  ユーザ要求
１１０２ｂ  入力ドキュメントの種類
１１０２ｃ  出力ドキュメントの種類
１１０２ｄ  入出力のタイミング
１１０２ｅ  開始（）
１１０２ｆ  終了通知（）
１１０２Ａ  ユーザドキュメントオブジェクト
１１０３  ユーザ画像クラス
１１０３ａ  作成（）
１１０３ｂ  利用（）
１１０３Ａ  ユーザ画像オブジェクト
１１１１  入力ドキュメントクラス
１１１１ａ  ページ数
１１１１ｂ  入力開始（）
１１１１ｃ  ページ追加（）
１１１１ｄ  終了通知（）
１１１２  入力ページクラス
１１１２ａ  ページ番号
１１１２ｂ  入力開始（）
１１１２ｃ  終了通知（）
１１１２Ａ  入力ページオブジェクト
１１１３  入力レイアウトクラス
１１１３ａ  レイアウト作成（）
１１１３Ａ  入力レイアウトオブジェクト
１１１４  入力画像クラス
１１１４ａ  入力開始（）
１１１４Ａ  入力画像オブジェクト
１１１５  入力ネットドキュメントクラス
１１１５Ａ  入力ネットドキュメントオブジェクト
１１１６  入力紙ドキュメントクラス
１１１６ａ  用紙枚数
１１１６ｂ  次原稿有無確認（）
１１１６Ａ  入力紙ドキュメントオブジェクト
１１１７  入力ＬＳドキュメントクラス
１１１７Ａ  入力ＬＳドキュメントオブジェクト
１１２１  出力ドキュメントクラス
１１２１ａ  ページ数
１１２１ｂ  出力開始（）
１１２１ｃ  ページ追加（）
１１２１ｄ  終了通知（）
１１２２  出力ページクラス
１１２２ａ  ページ番号
１１２２ｂ  出力開始（）
１１２２ｃ  終了通知（）
１１２２Ａ  出力ページオブジェクト
１１２３  出力レイアウトクラス
１１２３ａ  レイアウト作成（）
１１２３Ａ  出力レイアウトオブジェクト
１１２４  出力画像クラス
１１２４ａ  出力開始（）
１１２４Ａ  出力画像オブジェクト
１１２５  出力ネットドキュメントクラス
１１２５Ａ  出力ネットドキュメントオブジェクト
１１２６  出力紙ドキュメントクラス
１１２６Ａ  出力紙ドキュメントオブジェクト
１１２７  出力ＬＳドキュメントクラス
１１２７Ａ  出力ＬＳドキュメントオブジェクト
１３０１  「文書名」欄
１３０２  「原稿の読み取り」ボタン
１４０１  送信者表示欄
１４０２  「蓄積文書」ボタン
１８０１  サービス層分離前アプリケーション
１８０２  サービス層分離後アプリケーション
１８０３  共通ルーチン分離アプリケーション
１８０４  オブジェクト指向アプリケーション
【図１】
2006259872.tif 000003
【図２】
2006259872.tif 000004
【図３】
2006259872.tif 000005
【図４】
2006259872.tif 000006
【図５】
2006259872.tif 000007
【図６】
2006259872.tif 000008
【図７】
2006259872.tif 000009
【図８】
2006259872.tif 000010
【図９】
2006259872.tif 000011
【図１０】
2006259872.tif 000012
【図１１】
2006259872.tif 000013
【図１２】
2006259872.tif 000014
【図１３】
2006259872.tif 000015
【図１４】
2006259872.tif 000016
【図１５】
2006259872.tif 000017
【図１６】
2006259872.tif 000018
【図１７】
2006259872.tif 000019
【図１８】
2006259872.tif 000020
【図１９】
2006259872.tif 000021
【図２０】
2006259872.tif 000022
【図２１】
2006259872.tif 000023
【図２２】
2006259872.tif 000024