(57)【要約】【課題】入力元及び出力先の違いを吸収して文書の加工処理を共通化すること。【解決手段】機能に応じて複数の入力元及び複数の出力先を備えた複合機において、処理対象となる文書情報として、入力元又は出力先によらず共通するフォーマットで複数個保持可能なドキュメントクラスと、ページ毎に生成された複数個保持可能なページクラスと、ページ内の構成を定める際に用いられる枠情報として保持可能なレイアウトクラスと、ページクラスに対応付けられ、且つレイアウトクラスにより定められるページ内の構成に従い分割された画像情報として複数保持可能な画像クラスと、を備えた。【選択図】        図１０
2006229582.tif 000002
【特許請求の範囲】
【請求項１】
機能に応じて複数の入力手段及び複数の出力手段を備えた文書処理装置において、
処理対象となる文書情報として、前記入力手段又は前記出力手段によらず共通する予め定められた形式で複数個保持可能な文書手段と、
前記文書手段が保持する文書情報のページ毎に生成されるページ情報として複数個保持可能なページ手段と、
前記ページ手段が保持するページ情報についてページ内の構成を定める際に用いられる枠情報として保持可能なレイアウト手段と、
前記ページ手段に対応付けられ、且つ前記レイアウト手段により定められるページ内の構成に従い分割された画像情報として複数保持可能な画像手段と、
を備えたことを特徴とする文書処理装置。
【請求項２】
前記文書手段は、文書情報として処理が行われている状態を示す状態情報を管理していることを特徴とする請求項１に記載の文書処理装置。
【請求項３】
機能に応じて複数の入力手段及び複数の出力手段を備えた文書処理装置において、
前記入力手段から入力処理された後の入力文書情報として、前記入力手段によらず共通する予め定められた形式に変換されて複数個保持可能な入力文書手段と、
前記入力文書手段が保持する前記入力文書情報のページ毎に生成される入力ページ情報として複数個保持可能な入力ページ手段と、
前記入力ページ手段が保持するページ情報についてページ内の構成を定める際に用いられる入力枠情報として保持可能な入力レイアウト手段と、
前記入力ページ手段に対応付けられ、且つ前記入力レイアウト手段により定められるページ内の構成に従い分割された画像情報として複数個保持可能な入力画像手段と、
を備えたことを特徴とする文書処理装置。
【請求項４】
前記入力文書手段が有する機能を含み、紙原稿の入力処理を制御可能な紙入力文書手段を、さらに備えたことを特徴とする請求項３に記載の文書処理装置。
【請求項５】
前記入力文書手段は、入力処理が行われている状態を示す状態情報を保持していることを特徴とする請求項３又は４に記載の文書処理装置。
【請求項６】
前記出力手段から出力する形式に整形して出力される出力文書情報として複数個保持な出力文書手段と、
前記出力文書手段が保持する前記出力文書情報のページ毎に生成される出力ページ情報として複数個保持可能な出力ページ手段と、
前記出力ページ手段が保持するページ情報についてページ内の構成を定める際に用いられる出力枠情報として保持可能な出力レイアウト手段と、
前記出力ページ手段に対応付けられ、且つ前記入力画像手段から加工処理された画像情報を用いて前記出力レイアウト手段により定められるページ内の構成に従い配置された画像情報として複数個保持可能な出力画像手段と、をさらに備え、
前記出力文書手段は、前記出力画像手段を用いて前記出力手段から出力する形式に整形して出力することを特徴とする請求項３乃至５のいずれか１つに記載の文書処理装置。
【請求項７】
前記出力文書手段が有する機能を含み、紙原稿の出力処理を制御可能な紙出力文書手段を、さらに備えたことを特徴とする請求項６に記載の文書処理装置。
【請求項８】
前記出力文書手段は、出力処理が行われている状態を示す状態情報を保持していることを特徴とする請求項６又は７に記載の文書処理装置。
【請求項９】
機能に応じて複数の入力手段及び複数の出力手段を備えた画像形成装置において、
処理対象となる文書情報として、前記入力手段又は前記出力手段によらず共通する予め定められた形式で複数個保持可能な文書手段と、
前記文書手段が保持する文書情報のページ毎に生成されるページ情報として複数個保持可能なページ手段と、
前記ページ手段が保持するページ情報についてページ内の構成を定める際に用いられる枠情報として保持可能なレイアウト手段と、
前記ページ手段に対応付けられ、且つ前記レイアウト手段により定められるページ内の構成に従い分割された画像情報として複数保持可能な画像手段と、
を備えたことを特徴とする画像形成装置。
【請求項１０】
機能に応じて複数の入力手段及び複数の出力手段を備えたコンピュータ上で実行可能な文書処理プログラムにおいて、
処理対象となる文書情報として、前記入力手段又は前記出力手段によらず共通する予め定められた形式で複数個保持可能な文書手段と、
前記文書手段が保持する文書情報のページ毎に生成されるページ情報として複数個保持可能なページ手段と、
前記ページ手段が保持するページ情報についてページ内の構成を定める際に用いられる枠情報として保持可能なレイアウト手段と、
前記ページ手段に対応付けられ、且つ前記レイアウト手段により定められるページ内の構成に従い分割された画像情報として複数保持可能な画像手段と、
を備えたことを特徴とする文書処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書処理装置、画像形成装置及び文書処理プログラムに関するものであり、利用者から文書を処理する要求を受け付けた際に処理の対象となる文書の構成に関するものである。
【背景技術】
【０００２】
従来、プリンタ、コピーおよびスキャナなどの複数の機能を一つの筐体内に収納した複合機が知られている。かかる複合機では、ＵＮＩＸ（Ｒ）などの汎用ＯＳ上に、プリンタアプリ、コピーアプリおよびスキャナアプリと呼ばれる複数のアプリケーションを搭載し、これらのアプリケーションの実行処理を切替えながら複数の機能を実現していた。
【０００３】
ところが、上記プリンタアプリ、コピーアプリおよびスキャナアプリは、それぞれエンジン制御、メモリ制御およびシステム制御などを別個におこなっているので、重複処理という無駄が生じていた。
【０００４】
このため、特許文献１では、複合機に搭載される複数のアプリケーションがそれぞれ担っていたエンジン制御、メモリ制御およびシステム制御などの処理を共通処理部分（プラットホーム）として各アプリケーションから括り出すことにより、アプリケーションの開発効率の向上を図っている。
【０００５】
また、特許文献２では、印刷装置に搭載される印刷制御ソフトウェアを、オブジェクト指向設計による複数のソフトウェア部品から構成し、かかる部品群の協調動作により印刷処理をおこなうこととしている。
【０００６】
【特許文献１】特開２００２−０８４３８３号公報
【特許文献２】特開平１１−３２７８８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、この特許文献１で開示されている発明は、ハードウェアを制御する処理部分を共通化するものであり、各アプリケーションの内部処理全般を共通化するものではなく、さらには共通化した上で内部処理を機能に応じたクラスに分割していないため、内部処理全般の開発効率が良くないという問題がある。つまり、複合機上のアプリケーションには、開発効率の向上を図るためには内部処理を共通化して特徴のある機能をクラスとして分割することで改善の余地が残されている。
【０００８】
例えば、ユーザが複合機で文書に対して処理を行おうとした場合、処理の種類に応じて異なるアプリケーションが起動し、アプリケーション毎に異なるジョブで処理が行われていたため、加工処理が容易になるように抽象化して設計された文書の構成を用いて処理を共通化していなかった。
【０００９】
また、特許文献２で開示されている発明は、印刷制御ソフトウェアをオブジェクト指向設計による複数のソフトウェア部品から構成したものであり、処理対象となる文書の構成を示すソフトウェア部品を開示したものではない。したがって、多機能化により複数の入力元及び出力先を有する複合機において、従来はユーザが要求処理に応じて異なるアプリケーション毎のジョブで処理を行っていたため、特許文献２で開示されている発明を応用して入力元から入力処理してから出力先に出力処理を行うまでの処理に対応するソフトウ
ェア部品を作成したとしても、アプリケーション毎に異なっていた処理を共通化して、処理を容易にする文書の構成を導き出すことは容易でない。
【００１０】
これらのことから、複合機に搭載されるアプリケーションにおいて入力から出力までの処理を共通化して、処理を容易にする文書情報の構成をいかにして設計するかが大きな課題となっている。なお、かかる課題は複合機についてのみ生じるものではなく、複数の入力元と出力先を備えて、１つ以上の入力元から入力処理された文書情報に対して加工処理を行った後で１つ以上の出力先から出力する場合にも同様に生ずる課題である。
【００１１】
本発明は、上述した従来技術による問題点を解消するためになされたものであり、文書情報に対する処理を共通化して文書処理を容易にする文書処理装置、画像形成装置及び文書処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
上述した課題を解決し、目的を達成するために、請求項１にかかる発明は、機能に応じて複数の入力手段及び複数の出力手段を備えた文書処理装置において、処理対象となる文書情報として、前記入力手段又は前記出力手段によらず共通する予め定められた形式で複数個保持可能な文書手段と、前記文書手段が保持する文書情報のページ毎に生成されるページ情報として複数個保持可能なページ手段と、前記ページ手段が保持するページ情報についてページ内の構成を定める際に用いられる枠情報として保持可能なレイアウト手段と、前記ページ手段に対応付けられ、且つ前記レイアウト手段により定められるページ内の構成に従い分割された画像情報として複数保持可能な画像手段と、を備えたことを特徴とする。
【００１３】
また、請求項２にかかる発明は、請求項１にかかる発明において、前記文書手段は、文書情報として処理が行われている状態を示す状態情報を管理していることを特徴とする。
【００１４】
また、請求項３にかかる発明は、機能に応じて複数の入力手段及び複数の出力手段を備えた文書処理装置において、前記入力手段から入力処理された後の入力文書情報として、前記入力手段によらず共通する予め定められた形式に変換されて複数個保持可能な入力文書手段と、前記入力文書手段が保持する前記入力文書情報のページ毎に生成される入力ページ情報として複数個保持可能な入力ページ手段と、前記入力ページ手段が保持するページ情報についてページ内の構成を定める際に用いられる入力枠情報として保持可能な入力レイアウト手段と、前記入力ページ手段に対応付けられ、且つ前記入力レイアウト手段により定められるページ内の構成に従い分割された画像情報として複数個保持可能な入力画像手段と、を備えたことを特徴とする。
【００１５】
また、請求項４にかかる発明は、請求項３にかかる発明において、前記入力文書手段が有する機能を含み、紙原稿の入力処理を制御可能な紙入力文書手段を、さらに備えたことを特徴とする。
【００１６】
また、請求項５にかかる発明は、請求項３又は４にかかる発明において、前記入力文書手段は、入力処理が行われている状態を示す状態情報を保持していることを特徴とする。
【００１７】
また、請求項６にかかる発明は、請求項３〜５のいずれか１つにかかる発明において、前記出力手段から出力する形式に整形して出力される出力文書情報として複数個保持な出力文書手段と、前記出力文書手段が保持する前記出力文書情報のページ毎に生成される出力ページ情報として複数個保持可能な出力ページ手段と、前記出力ページ手段が保持するページ情報についてページ内の構成を定める際に用いられる出力枠情報として保持可能な出力レイアウト手段と、前記出力ページ手段に対応付けられ、且つ前記入力画像手段から
加工処理された画像情報を用いて前記出力レイアウト手段により定められるページ内の構成に従い配置された画像情報として複数個保持可能な出力画像手段と、をさらに備え、前記出力文書手段は、前記出力画像手段を用いて前記出力手段から出力する形式に整形して出力することを特徴とする。
【００１８】
また、請求項７にかかる発明は、請求項６にかかる発明において、前記出力文書手段が有する機能を含み、紙原稿の出力処理を制御可能な紙入力文書手段を、さらに備えたことを特徴とする。
【００１９】
また、請求項８にかかる発明は、請求項６又は７にかかる発明において、前記文書手段は、出力処理が行われている状態を示す状態情報を保持していることを特徴とする。
【００２０】
また、請求項９にかかる発明は、請求項７又は８にかかる発明において、機能に応じて複数の入力手段及び複数の出力手段を備えた画像形成装置において、処理対象となる文書情報として、前記入力手段又は前記出力手段によらず共通する予め定められた形式で複数個保持可能な文書手段と、前記文書手段が保持する文書情報のページ毎に生成されるページ情報として複数個保持可能なページ手段と、前記ページ手段が保持するページ情報についてページ内の構成を定める際に用いられる枠情報として保持可能なレイアウト手段と、前記ページ手段に対応付けられ、且つ前記レイアウト手段により定められるページ内の構成に従い分割された画像情報として複数保持可能な画像手段と、を備えたことを特徴とする。
【００２１】
また、請求項１０にかかる発明は、機能に応じて複数の入力手段及び複数の出力手段を備えたコンピュータ上で実行可能な文書処理プログラムにおいて、処理対象となる文書情報として、前記入力手段又は前記出力手段によらず共通する予め定められた形式で複数個保持可能な文書手段と、前記文書手段が保持する文書情報のページ毎に生成されるページ情報として複数個保持可能なページ手段と、前記ページ手段が保持するページ情報についてページ内の構成を定める際に用いられる枠情報として保持可能なレイアウト手段と、前記ページ手段に対応付けられ、且つ前記レイアウト手段により定められるページ内の構成に従い分割された画像情報として複数保持可能な画像手段と、を備えたことを特徴とする。
【発明の効果】
【００２２】
請求項１にかかる発明によれば、入力手段又は出力手段によらず、文書データを予め定められた形式で、各ページをレイアウトで分割した画像毎に処理を行うことを可能にしたため、加工処理を共通化することができるという効果を奏する。
【００２３】
また、請求項２にかかる発明によれば、状態情報という現実世界に近い概念を用いて文書処理を管理することで、フラグ等で管理した場合と比べて予めしていなかった事態が生じても適切に処理を行うことが可能になるという効果を奏する。
【００２４】
また、請求項３にかかる発明によれば、入力処理の際、文書データを予め定められた形式で、各ページをレイアウトで分割した画像毎に入力処理を行うことで、画像単位で加工処理が行われることになるため、画像毎に配置を変更できるなど、加工処理が容易になるという効果を奏する。
【００２５】
また、請求項４にかかる発明によれば、紙原稿を入力処理された文書データを予め定められた形式で、各ページをレイアウトで分割した画像毎に加工処理を可能にしたので、紙原稿の場合でも加工処理が容易になるという効果を奏する。
【００２６】
また、請求項５にかかる発明によれば、入力処理が行われている状態情報を保持することで、状態情報という現実世界に近い概念を用いて入力処理を管理することで、フラグ等で管理した場合と比べて予めしていなかった事態が生じても適切に処理を行うことが可能になるという効果を奏する。
【００２７】
また、請求項６にかかる発明によれば、出力処理まで文書データを予め定められた形式で、各ページをレイアウトで分割した画像単位で処理することで、出力処理を行うまでの処理を共通化できるという効果を奏する。
【００２８】
また、請求項７にかかる発明によれば、紙原稿として出力処理を行うまで文書データを予め定められた形式で、各ページをレイアウトで分割した画像単位で処理することで、出力処理を行うまでの処理を共通化できるという効果を奏する。
【００２９】
請求項８にかかる発明によれば、出力処理が行われている状態情報を保持することで、状態情報という現実世界に近い概念を用いて出力処理を管理することで、フラグ等で管理した場合と比べて予めしていなかった事態が生じても適切に処理を行うことが可能になるという効果を奏する。
【００３０】
請求項９にかかる発明によれば、入力手段又は出力手段によらず、文書データを予め定められた形式で、各ページをレイアウトで分割した画像毎に処理を行うことを可能にしたため、加工処理を共通化することができるという効果を奏する。
【００３１】
また、請求項１０にかかる発明によれば、入力手段又は出力手段によらず、文書データを予め定められた形式で、各ページをレイアウトで分割した画像毎に処理を行うことを可能にしたため、加工処理を共通化することができるという効果を奏する。
【発明を実施するための最良の形態】
【００３２】
以下に添付図面を参照して、この発明にかかる文書処理装置、画像形成装置及び文書処理プログラムの最良な実施の形態を詳細に説明する。なお、本実施の形態では、この発明を画像形成装置に適用した場合について説明するが、本発明はこれに限らず、複数の入出力手段から文書を入出力する際に加工処理を行う各種装置に適用することができる。
【００３３】
（第１の実施の形態）
まず、本発明の第１の実施の形態に係る画像形成装置（以下「複合機」と言う）１の概要について図１、図２、図３を用いて説明する。図１は、本実施の形態に係る複合機１を取り巻くネットワーク環境を説明するためのネットワーク図であり、図２は、図１に示した複合機１のハードウェア構成を示すブロック図であり、図３は、図１に示した複合機１のソフトウェアとハードウェアの関係を説明するための概念図である。
【００３４】
図１に示すように、近年のネットワーク化の進展により、オフィスなどに設けられたＰＣ（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)１２ｂとをさらに有する。
【００３９】
ＣＰＵ１１は、複合機１の全体制御をおこなうものであり、ＮＢ１３、ＭＥＭ−Ｐ１２およびＳＢ１４からなるチップセットを有し、このチップセットを介して他の機器と接続される。
【００４０】
ＮＢ１３は、ＣＰＵ１１とＭＥＭ−Ｐ１２、ＳＢ１４、ＡＧＰ１５とを接続するためのブリッジであり、ＭＥＭ−Ｐ１２に対する読み書きなどを制御するメモリコントローラと、ＰＣＩマスタおよびＡＧＰターゲットとを有する。
【００４１】
ＭＥＭ−Ｐ１２は、プログラムやデータの格納用メモリ、プログラムやデータの展開用メモリ、プリンタの描画用メモリなどとして用いるシステムメモリであり、ＲＯＭ１２ａとＲＡＭ１２ｂとからなる。ＲＯＭ１２ａは、プログラムやデータの格納用メモリとして用いる読み出し専用のメモリであり、ＲＡＭ１２ｂは、プログラムやデータの展開用メモリ、プリンタの描画用メモリなどとして用いる書き込みおよび読み出し可能なメモリである。
【００４２】
ＳＢ１４は、ＮＢ１３とＰＣＩデバイス、周辺デバイスとを接続するためのブリッジである。このＳＢ１４は、ＰＣＩバスを介してＮＢ１３と接続されており、このＰＣＩバスには、ネットワークインターフェース（Ｉ／Ｆ）部なども接続される。
【００４３】
ＡＳＩＣ１６は、画像処理用のハードウェア要素を有する画像処理用途向けのＩＣ（In
tegrated 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 １」等の加工処理を容易に行うことが出来る。
【００７７】
図１０は、上述したオブジェクトモデリングにより設計されたドキュメントのクラス構成をＵＭＬのクラスで示した図である。本図に示すように、ドキュメントは、ドキュメントクラス１００１と、ページクラス１００２と、レイアウトクラス１００３と、画像クラス１００４と、を備えている。このような構成を備えたことで、文書処理が容易になる。
【００７８】
各クラスを示す矩形は３段の区画を有し、上から、クラス名を示す名前区画、クラスが有するデータ（属性）を示す属性区画およびクラスが有する処理（操作）を示す操作区画と呼ばれる。たとえば、ドキュメントクラス１００１を示す矩形の名前区画は、かかるクラスのクラス名が「ドキュメント」であることを示し、属性区画は、かかるクラスが有する属性が、「状態」、「文書種類」、「文書名」、「所有者」であることを示している。
なお、操作区画は、かかるクラスが有する操作が無いが、この区画には例えば「開始（）」などクラスを呼び出すための操作が示される。
【００７９】
このように、各クラスは、データ（属性）を所持するための属性区画と、かかる属性の書き込みおよび読み出しをおこなう処理（操作）を所持するための操作区画とを有している。これらのクラスは、プログラム（統合アプリケーション１１０）の一部として含まれるので、あらかじめＲＯＭ１２ａに格納されたこのプログラムが実行されると、各クラスはＲＡＭ１２ｂの所定領域に実体化され、属性区画に含まれる各データ（属性）がＲＡＭ１２ｂ上に展開される。したがって、クラスを実体化したオブジェクトは、ＲＡＭ１２ｂ上の各データ（属性）の書き込みおよび読み出しをすることが可能となる。
【００８０】
なお、属性や操作といったクラスの要素の左側に「−」記号を付した場合は、かかる要素は外部のクラスには非公開であることを示し、「＋」記号を付した場合は、かかる要素は外部のクラスに公開されていることを示す。また、操作については「開始（）」のように「（）」記号を付することが通例であり、「（引数１，引数２）」のように、かかる操作に引き渡す引数を記述する場合もある。
【００８１】
ドキュメントクラス１００１は、処理の対象となるドキュメントを管理するクラスである。具体的には、ドキュメントクラス１００１は、属性として状態１００１ａ、文書種類１００１ｂ、文書名１００１ｃ、ページ数１００１ｄとを有する。なお、かかるドキュメントクラス１００１を実体化したオブジェクトが生成されると、属性として状態１００１ａ、文書種類１００１ｂ、文書名１００１ｃ、ページ数１００１ｄがＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込みおよび読み出しをすることが可能となる。
【００８２】
状態１００１ａは、ドキュメントクラス１００１の状態を示すものである。この状態はドキュメントハンドリング部２１２に対して処理が要求された場合などに変更される。
【００８３】
図１１は、ドキュメントハンドリング部２１２に対して課せられている基本機能やサービス項目などの要件定義を表現するユースケース図である。本図においてドキュメントハンドリング部２１２が有する各機能を示したものである。そして、アクターは文書の処理を要求する人であり、文書処理を要求する人から要求を受け付けた場合にドキュメントハンドリング部２１２は文書処理を実行する。さらに文書処理を要求する人から文書処理を取り消す要求を受け付けた場合、ドキュメントハンドリング部２１２は文書処理を取り消す。そして、ドキュメントクラス１００１の状態１００１ａは、これら機能または文書処理に適した状態、例えば「中断」「取消」等の状態が設定される。
【００８４】
図１０に戻り、文書種類１００１ｂは、入力元から入力処理される際のフォーマット種類、又は出力先に出力処理する際に変換されるフォーマット種類を保持する。
【００８５】
文書名１００１ｃは、ドキュメントに付けられた名前を保持する。例えば、電子文書等の場合は元のファイル名とし、紙原稿から入力処理されたドキュメントは入力処理した時間等により自動的に生成された名称などが考えられる。
【００８６】
ページ数１００１ｄは、ドキュメントが保持するページ数を保持する。また、ドキュメントクラス１００１が保持するページ数だけ、後述するページオブジェクト１００２Ａが生成される。
【００８７】
ページクラス１００２は、ドキュメントクラス１００１で管理するドキュメントから分割された各ページを管理するクラスである。ページクラス１００２は、レイアウトオブジ
ェクト１００３Ａ及び画像オブジェクト１００４Ａを生成し、入力レイアウトに入力画像を当てはめた構成として管理する。具体的には、このページクラス１００２は、属性としてページ番号１００２ａを有する。なお、かかるページクラス１００２を実体化したオブジェクトが生成されると、属性としてページ番号１００２ａがＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込みおよび読み出しをすることが可能となる。
【００８８】
ページ番号１００２ａは、このページオブジェクト１００２Ａが管理するページを示す番号を保持する。つまり、ドキュメントオブジェクト１００１Ａが保持するページ数１００１ｄだけページオブジェクト１００２Ａが生成されるので、ページオブジェクト１００２Ａが割り振られたページの番号をページ番号１００２ａで保持する。
【００８９】
レイアウトクラス１００３は、ページクラス１００２で管理するページに画像を当てはめるために用いられるレイアウトを作成して管理するクラスである。具体的には、このレイアウトクラスは、属性として仕切り線種類１００３ａ、とじしろ幅１００３ｂ、枠消去幅１００３ｃ、並べ順１００３ｄを有する。なお、かかるレイアウトクラス１００３を実体化したオブジェクトが生成されると、属性として仕切り線種類１００３ａ、とじしろ幅１００３ｂ、枠消去幅１００３ｃ、並べ順１００３ｄがＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込みおよび読み出しをすることが可能となる。
【００９０】
仕切り線種類１００３ａは、配置する画像を仕切るために表示される線の種類を保持する。また、とじしろ幅１００３ｂは、ページに画像を配置する際にページの上下左右の余白の幅を保持する。枠消去幅１００３ｃは、原稿のとじ部あるいは周囲に出来る影を消去するための幅を保持する。そして、並べ順１００３ｄは、各ページで画像を配置する順番を保持する。
【００９１】
画像クラス１００４は、ページに対してレイアウトにより定められた配置に当てはまる画像を管理するクラスである。具体的には、画像クラス１００４は、上述したドキュメントクラス１００１が管理するドキュメントから画像となる範囲の画像の実体を保持する。また、画像クラス１００４は、属性として解像度１００４ａ、濃度１００４ｂ、カラー１００４ｃ、網掛け１００４ｄを有する。なお、かかる画像クラス１００４を実体化したオブジェクトが生成されると、読み込んだ画像の実体を特定する情報がＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込みおよび読み出しをすることが可能となる。
【００９２】
解像度１００４ａ、濃度１００４ｂ、カラー１００４ｃ、網掛け１００４ｄは、読み込んだ画像の実体について情報を保持する。
【００９３】
なお、画像クラス１００４が保持する画像は、ドキュメントハンドリングの最小単位に分割された画像とする。ドキュメントハンドリングの最小単位とは、１ページとして構成することが可能な領域をいい、例えば特殊な設定を行っていない場合であれば１ページ全体の領域が入力画像となり、「２ in １」に設定されている場合であれば１ページを２つに分割した各領域が入力画像となる。また、入力画像は、単なる画像のみならず、レイアウトにより定められた領域に示された文字情報や、図形なども含まれる。
【００９４】
上述したクラス構成を用いて文書処理を行っていくこととなるが、例えば「２ in １」などの処理を行う場合、入力処理が行われた後の文書データと、出力処理が行われる前の文書データではレイアウトが異なる。そこでドキュメントハンドリング部２１２は、ページとレイアウトと画像で構成されるドキュメントとして、入力処理が行われた後の文書データから生成された入力ドキュメントと、出力処理が行われる前の文書データから生成された出力ドキュメントを保持することとする。
【００９５】
そして、入力ドキュメント及び出力ドキュメントの間に加工処理の対象となる文書データ（以下、ユーザドキュメントとする）を介することとする。このユーザドキュメントは、入力画像から取得した加工処理の対象となる画像（以下、ユーザ画像とする）で構成される。そしてユーザ画像の加工処理を行った後で出力画像として出力する。なお、ユーザドキュメントは画像毎の加工処理を行うものであるため、ページ及びレイアウトを構成として必要としない。
【００９６】
つまり、入力元から入力された入力ドキュメントから、ページ毎（以下、入力ページという）にレイアウト（以下、入力レイアウト）に従って分割された画像（以下、入力画像）を生成する。そして加工する際に、入力画像から加工対象となる画像（以下、ユーザ画像）を生成し、これらユーザ画像を有するユーザドキュメントを生成する。そして、出力する際にユーザドキュメントが有するユーザ画像から出力画像を作成し、生成された出力画像を出力先に応じた出力レイアウトにページ毎に当てはめて出力ドキュメントを生成する。図１２は、本実施の形態に係る文書処理で用いられる入力ドキュメントからユーザドキュメント、そして出力ドキュメントまでの構成の変化を示した説明図である。本図に示すように、入力元によらず入力ドキュメントを、入力ページ、入力レイアウト及び入力画像の組み合わせとして管理し、加工処理を施す際には入力画像から生成されたユーザ画像のみ有するユーザドキュメントとして管理する。ユーザドキュメントが所定サイズに分割されたユーザ画像として有する。これにより、出力ドキュメントとして出力する際に出力レイアウトに従ってユーザ画像より生成された出力画像をユーザの要求に従って柔軟に配置することができる。なお、ユーザ画像から出力画像を生成する際に、出力レイアウトに当てはまるように拡大又は縮小等の処理を行う。
【００９７】
上述したオブジェクトモデリングにより、ドキュメントハンドリング部２１２は、「入力ドキュメントクラス」、「ユーザドキュメントクラス」及び「出力ドキュメントクラス」を有する構成とした。そして、図１２で示した構成から「入力ドキュメントクラス」は「入力ページクラス」を、また「出力ドキュメントクラス」は「出力ページクラス」を保持する。さらに「入力ページクラス」は「入力レイアウトクラス」と「入力画像クラス」を保持し、「出力ページクラス」は「出力レイアウトクラス」と「出力画像クラス」を保持する。そして、「ユーザドキュメントクラス」は「ユーザ画像」を保持する。
【００９８】
そして、「入力ドキュメントクラス」は入力元毎にサブクラスが設けられ、「出力ドキュメントクラス」も同様に出力先毎にサブクラスが設けられる。本実施の形態では、入力元としては、スキャナで読み込まれる「紙」ドキュメント、ネットワークを介して入力される「ネット」ドキュメントそしてハードディスク等のローカルストレージに保存されている「ＬＳ」ドキュメントとする。そこで、「入力ドキュメントクラス」のサブクラスとして「入力ネットドキュメントクラス」、「入力紙ドキュメントクラス」及び「入力ＬＳドキュメントクラス」が設けられる。そして、出力先も同様に「紙」、「ネット」及び「ＬＳ」とし、「出力ドキュメントクラス」のサブクラスとして「出力ネットドキュメントクラス」、「出力紙ドキュメントクラス」及び「出力ＬＳドキュメントクラス」が設けられる。
【００９９】
そして、上述したオブジェクトモデリングにより設計されたドキュメントハンドリング部２１２は、リクエスト管理部２１１から文書データを処理する旨の要求を受け付けた場合に、入力文書（例えば紙文書、電子文書、ＦＡＸ受信文書等）を入力処理してから加工処理を行い、出力文書（例えば、紙文書、電子文書あるいはＦＡＸ送信文書）を出力処理するまでの処理を行う。これらの処理が行われた後、実行系サブシステム２０３からサービス層１０２の制御で、ハードウェアリソース１５１から出力される。
【０１００】
図１３は、上述したオブジェクトモデリングにより設計されたドキュメントハンドリング部２１２のクラス構成をＵＭＬのクラスで示した図である。本図に示すように、ドキュメントハンドリング部２１２は、ドキュメント操作スケジューラクラス１３０１と、入力ドキュメントクラス１３１１と、入力ページクラス１３１２と、入力レイアウトクラス１３１３と、入力画像クラス１３１４と、入力ネットドキュメントクラス１３１５と、入力紙ドキュメントクラス１３１６と、入力ＬＳドキュメントクラス１３１７と、ユーザドキュメントクラス１３０２と、ユーザ画像クラス１３０３と、出力ドキュメントクラス１３２１と、出力ページクラス１３２２と、出力レイアウトクラス１３２３と、出力画像クラス１３２４と、出力ネットドキュメントクラス１３２５と、出力紙ドキュメントクラス１３２６と、出力ＬＳドキュメントクラス１３２７と、を備えている。このような構成を備えたことで、入力元あるいは出力先にかかわらず共通した文書処理を行うことを可能とする。
【０１０１】
次に、図１３に示した本実施の形態の特徴部分であるドキュメントハンドリング部２１２が備える各クラスについて説明する。
【０１０２】
ドキュメント操作スケジューラクラス１３０１は、リクエスト管理部２１１から受け付けたリクエストに対応した文書処理を行うためにドキュメントの管理及び操作するクラスであり、リクエストに応じたユーザドキュメントクラス１３０２のオブジェクトを生成する。具体的にはドキュメント操作スケジューラクラス１３０１は、操作としてドキュメント登録（）１３０１ａを有する。また、ドキュメント操作スケジューラクラス１３０１は、リクエスト管理部２１１からリクエストされた文書処理のスケジューリングを行う。
【０１０３】
ドキュメント登録（）１３０１ａは、リクエスト管理部２１１から文書処理の要求を受け付け、受け付けた要求に応じたユーザドキュメントクラス１３０２のオブジェクトを生成する。また、ドキュメント登録（）１３０１ａの引数として受け渡された情報には、ユーザが文書処理を行う際に入力した情報が含まれる。
【０１０４】
ユーザドキュメントクラス１３０２は、入力文書を入力処理してから加工処理を行い、出力先に出力文書（例えば、紙文書、電子文書あるいはＦＡＸ送信文書）を出力するまでの工程を管理するクラスである。さらに、ユーザドキュメントクラス１３０２は、ユーザが複合機１を使用する際に入力した情報からユーザの要求を実現するための仕様を導出し、導出した仕様を満たすよう文書処理の工程を管理する。具体的にはユーザドキュメントクラス１３０２は、操作として文書処理開始（）１３０２ａ、終了通知（）１３０２ｂを有する。また、ユーザドキュメントクラス１３０２は、文書処理が終了した後に、入力ドキュメントクラス１３１１のサブクラス及び出力ドキュメントクラス１３２１のサブクラスのオブジェクトを削除する。
【０１０５】
文書処理開始（）１３０２ａは、ユーザドキュメントクラス１３０２が文書処理を開始するためのトリガーを与える処理をおこなう。そして、ユーザドキュメントオブジェクト１３０２Ａは、文書処理開始（）１３０２ａで引数として受け渡された情報より入力元を判断し、判断に基づいて入力ネットドキュメントオブジェクト１３１５Ａ、入力紙ドキュメントオブジェクト１３１６Ａあるいは入力ＬＳドキュメントオブジェクト１３１７Ａを生成し、さらに引数として受け渡された情報より出力先を判断し、判断に基づいて出力ネットドキュメントオブジェクト１３２５Ａ、出力紙ドキュメントオブジェクト１３２６Ａあるいは出力ＬＳドキュメントオブジェクト１３２７Ａを生成する。
【０１０６】
終了通知（）１３０３ｂは、ユーザドキュメントクラス１３０２に対して入力処理又は出力処理が終了した旨を通知する処理を行う。
【０１０７】
入力ドキュメントクラス１３１１は、入力元より入力処理された入力ドキュメントを、入力元によらず共通する予め定めたフォーマット、換言すると入力画像と入力レイアウトで構成される入力ページに当てはめて管理するクラスである。入力元とは、例えばスキャナ、ネットワークを介して接続された機器、ＦＡＸ受信あるいはローカルストレージ等の入力手段が考えられる。この入力ドキュメントクラス１３１１は、入力ネットドキュメントクラス１３１５、入力紙ドキュメントクラス１３１６及び入力ＬＳドキュメントクラス１３１７の上位クラス（スーパークラス）であり、入力ドキュメントクラス１３１１自体が実体化されることはないが、入力ドキュメントクラス１３１１の属性および操作は、下位クラス（サブクラス）である入力ネットドキュメントクラス１３１５、入力紙ドキュメントクラス１３１６及び入力ＬＳドキュメントクラス１３１７に継承される。
【０１０８】
また、具体的には入力ドキュメントクラス１３１１は、属性として状態１３１１ａ、文書種類１３１１ｂ、文書名１３１１ｃ、ページ数１３１１ｄを有し、操作として入力開始（）１３１１ｅ、入力中断（）１３１１ｆ、入力取消（）１３１１ｇ、入力継続（）１３１１ｈ、終了通知（）１３１１ｉを有する。
【０１０９】
状態１３１１ａは、状態情報として「待機中」、「入力中」、「中断中」、「取消中」、「終了中」のいずれか１つが設定されている。状態１３１１ａが変更される条件については後述する。また、属性として有している文書種類１３１１ｂ、文書名１３１１ｃは、図１０で説明した文書種類１００１ｂ、文書名１００１ｃと同じため説明を省略する。なお、本実施の形態では、入力ドキュメントクラス１３１１で状態を保持することとしたが、入力紙ドキュメントクラス１３１６等のサブクラスで保持してもよく、サブクラスで保持した場合は、入力処理する対象毎に具体的な状態を管理することができる。これに対して入力ドキュメントクラス１３１１で保持した場合は、状態を共通化できるため、管理及び開発の負荷を軽減できる。なお、これは後述する出力ドキュメントクラス１３２１も同様とする。
【０１１０】
ページ数１３１１ｄは、入力処理された入力ドキュメントのページ数を保持する。また、入力ドキュメントクラス１３１１は、保持されたページ数だけ入力ページオブジェクト１３１２Ａを生成する。
【０１１１】
入力開始（）１３１１ｅは、入力ドキュメントクラス１３１１が文書処理を開始するためのトリガーを与える処理をおこなう。この入力開始（）１３１１ｅは、サブクラスである入力ネットドキュメントクラス１３１５、入力紙ドキュメントクラス１３１６及び入力ＬＳドキュメントクラス１３１７に継承され、各サブクラスにおける具体的な処理によりオーバーライド（override）される。なお、かかる具体的な処理の説明については、後述する入力ネットドキュメントクラス１３１５、入力紙ドキュメントクラス１３１６及び入力ＬＳドキュメントクラス１３１７の説明でおこなう。
【０１１２】
入力中断（）１３１１ｆは、入力開始（）１３１１ｅにより開始された文書の入力処理を中断する。また、入力取消（）１３１１ｇは、入力開始（）１３１１ｅにより開始された文書の入力処理を取り消す。また、入力継続（）１３１１ｈは、入力中断（）１３１１ｆにより中断された文書の入力処理を再開するためのトリガーを与える処理を行う。
【０１１３】
終了通知（）１３１１ｉは、後述する入力ページクラス１３１２から入力ドキュメントクラス１３１１にページ毎の処理が終了したことを通知する。
【０１１４】
また、入力開始（）１３１１ｅ、入力中断（）１３１１ｆ、入力取消（）１３１１ｇ、入力継続（）１３１１ｈ、終了通知（）１３１１ｉで行われる処理に応じて状態１３１１ａが変更される。
【０１１５】
図１４は、入力ドキュメントクラス１３１１が呼び出された操作により変更される状態を示した状態図である。本図で示したように、入力ドキュメントクラス１３１１は、開始状態から状態１３１１ａは「待機中」１４０１に変更される。そして、「待機中」１４０１から入力開始（）１３１１ｅにより「入力中」１４０２に変更され、入力取消（）１３１１ｇより終了状態となる。そして、状態１３１１ａは「入力中」１４０２から、呼び出された操作に基づいて「中断中」１４０３、「取消中」１４０５、「終了中」１４０４に変更される。このように操作に基づいて状態１３１１ａが変更される。また、「終了中」１４０４から終了処理が終了した場合、「取消中」１４０５から取消処理が終了した場合は終了状態になる。そして、入力ドキュメントクラス１３１１が上述した操作で呼び出された場合、状態１３１１ａを参照することで、呼び出された操作が適切か否か判断することが可能になる。つまり状態１３１１ａが設定されている値からはあり得ない操作が呼び出された場合、この操作は異常だと判断できるため、適切な入力処理が可能になる。
【０１１６】
入力ネットドキュメントクラス１３１５は、入力ドキュメントクラス１３１１のサブクラスであり、接続したネットワークの入力元から取得したドキュメントを入力処理した入力ドキュメントをページ毎に分割し、分割したページ毎に入力ページオブジェクト１３１２Ａを生成し、入力ページオブジェクト１３１２Ａに対して該当するページを管理する旨を指示することで入力ドキュメントを管理するクラスである。
【０１１７】
具体的には、この入力ネットドキュメントクラス１３１５は、入力ドキュメントクラス１３１１から、属性として状態１３１１ａ、文書種類１３１１ｂ、文書名１３１１ｃ、ページ数１３１１ｄを、操作として入力開始（）１３１１ｅ、入力中断（）１３１１ｆ、入力取消（）１３１１ｇ、入力継続（）１３１１ｈ、終了通知（）１３１１ｉを承継する。さらに、入力ネットドキュメントクラス１３１５は、属性として、ネットワークを介して入力処理を行うために必要な仕様及び設定を保持するが、図１３では省略する。なお、かかる入力ネットドキュメントクラス１３１５を実体化したオブジェクトが生成されると、属性として保持する入力処理を行うために必要な仕様且つ設定及び状態１３１１ａ、文書種類１３１１ｂ、文書名１３１１ｃ、ページ数１３１１ｄはＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込みおよび読み出しをすることが可能となる。
【０１１８】
入力ドキュメントクラス１３１１から承継した入力開始（）１３１１ｅは、入力処理を開始するためのトリガーであり、ユーザドキュメントオブジェクト１３０２Ａから呼び出された場合、入力ネットドキュメントクラス１３１５がネットワークを介してドキュメントを受信し、入力元により異なるフォーマットの入力文書を入力処理し、入力処理した後に入力ドキュメントに変換して管理する制御を行う。なお、入力ドキュメントのフォーマットは、入力元にかかわらず共通したフォーマットとする。
【０１１９】
また、入力ネットドキュメントオブジェクト１３１５Ａは、入力開始（）１３１１ｅによりネットワークを介してドキュメントを受信する際、引数として受け渡された情報より受信するドキュメントを特定し、実行制御部２１３を介して利用できるＦＡＸ送受信制御部１０２ｅやネットワーク通信制御部１０２ｆを用いてネットワークへ接続してから受信する。
【０１２０】
入力紙ドキュメントクラス１３１６は、入力ドキュメントクラス１３１１のサブクラスであり入力ドキュメントを管理するクラスである。具体的には、スキャナ１５１ａより読み込まれた原稿を入力処理した入力ドキュメントをページ毎に分割し、分割したページ毎に入力ページオブジェクト１３１２Ａを生成し、入力ページオブジェクト１３１２Ａに対して該当するページを管理する旨を指示する処理を行う。
【０１２１】
具体的には、この入力紙ドキュメントクラス１３１６は、入力ドキュメントクラス１３１１から、属性として状態１３１１ａ、文書種類１３１１ｂ、文書名１３１１ｃ、ページ数１３１１ｄを、操作として操作として入力開始（）１３１１ｅ、入力中断（）１３１１ｆ、入力取消（）１３１１ｇ、入力継続（）１３１１ｈ、終了通知（）１３１１ｉを承継する。さらに、入力紙ドキュメントクラス１３１６は、属性として、用紙枚数１３１６ａ、原稿ハンドリングモード１３１６ｂを有し、さらに他にもスキャナ１５１ａから原稿を読み取るための設定及び仕様を保持するが図１３では省略する。なお、かかる入力紙ドキュメントクラス１３１６を実体化したオブジェクトが生成されると、属性として状態１３１１ａ、文書種類１３１１ｂ、文書名１３１１ｃ、ページ数１３１１ｄ、用紙枚数１３１６ａ、原稿ハンドリングモード１３１６ｂ、保持する原稿を読み取るための設定及び仕様及びはＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込みおよび読み出しをすることが可能となる。
【０１２２】
また、用紙枚数１３１６ａは、複合機１に読み取るためにセットされた原稿の枚数を保持する。また、原稿ハンドリングモード１３１６ｂは、原稿を読み取る際のハンドリングモードを保持する。ハンドリングモードとしては自動原稿送り装置を用いて自動送りされた原稿から読み込みを行うＡＤＦモード、コンタクトガラスに配置された原稿から読み込みを行う圧板モードがある。
【０１２３】
入力ドキュメントクラス１３１１から承継した入力開始（）１３１１ｅは、入力処理を開始するためのトリガーであり、ユーザドキュメントオブジェクト１３０２Ａから呼び出された場合、入力紙ドキュメントクラス１３１６がスキャナ１５１ａで原稿を読み取り、読み取った原稿から入力ドキュメントに変換して管理する制御を行う。
【０１２４】
また、入力紙ドキュメントクラス１３１６は、入力開始（）１３１１ｅによりスキャナ１５１ａで原稿を読み出す際、実行制御部２１３を介して利用できるスキャナ制御部１０２ａを用いて読み取りを行う。また、入力紙ドキュメントオブジェクト１３１６Ａが紙の表裏に印刷されている原稿を読み取る場合でも、表裏を順番に読み込んだ原稿を入力ドキュメントに変換することになるが、入力ドキュメントに表裏という概念は存在しない。つまり、読み込んだ原稿は、表のみ又は表裏両面の読み込みにかかわらず、読み込まれた順番に入力ページとして割り当てられる。これにより媒体の特性あるいはスキャナ１５１ａによる原稿のハンドリングモードの違いにかかわらず共通した様式で入力ドキュメントを保持するため、入力元の違いに応じて異なる加工処理を必要とせず、加工処理が容易となる。
【０１２５】
入力ＬＳドキュメントクラス１３１７は、入力ドキュメントクラス１３１１のサブクラスであり、ハードディスク等のローカルストレージより読み込まれた電子文書を入力処理した入力ドキュメントをページ毎に分割し、分割したページ毎に入力ページオブジェクト１３１２Ａを生成し、入力ページオブジェクト１３１２Ａに対して該当するページを管理する旨を指示することで入力ドキュメントを管理するクラスである。
【０１２６】
具体的には、この入力ＬＳドキュメントクラス１３１７は、入力ドキュメントクラス１３１１から、属性として状態１３１１ａ、文書種類１３１１ｂ、文書名１３１１ｃ、ページ数１３１１ｄを、操作として操作として入力開始（）１３１１ｅ、入力中断（）１３１１ｆ、入力取消（）１３１１ｇ、入力継続（）１３１１ｈ、終了通知（）１３１１ｉを承継する。さらに、入力ＬＳドキュメントクラス１３１７は、属性として、ローカルストレージから電子文書を読み込むための設定及び仕様を保持するが、図１３では省略する。なお、かかる入力ＬＳドキュメントクラス１３１７を実体化したオブジェクトが生成されると、属性としてローカルストレージから電子文書を読み込むための設定及び仕様及びページ数１３１１ｄはＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込み
および読み出しをすることが可能となる。
【０１２７】
入力ドキュメントクラス１３１１から承継した入力開始（）１３１１ｅは、入力処理を開始するためのトリガーであり、ユーザドキュメントオブジェクト１３０２Ａから呼び出された場合に入力ＬＳドキュメントクラス１３１７にローカルストレージから電子文書を読み込み、読み込んだ電子文書から入力ドキュメントに変換して管理する制御を行う。
【０１２８】
また、入力ＬＳドキュメントクラス１３１７は、入力開始（）１３１１ｅにより電子文書を読み込む際、実行制御部２１３を介して利用できる蓄積制御部１０２ｃを用いて読み込みを行う。
【０１２９】
また、入力ネットドキュメントクラス１３１５、入力紙ドキュメントクラス１３１６及び入力ＬＳドキュメントクラス１３１７が管理する入力ドキュメントは、入力元に係わらず共通した入力ページクラス１３１２、入力レイアウトクラス１３１３及び入力画像クラス１３１４等を用いて保持するため、入力元にかかわらず共通した加工処理等を可能とする。次に入力ページクラス１３１２，入力レイアウトクラス１３１３及び入力画像クラス１３１４について説明する。
【０１３０】
入力ページクラス１３１２は、入力ドキュメントクラス１３１１で管理する入力ドキュメントより分割された各ページを、入力ページとして管理するクラスである。入力ページクラス１３１２は、入力レイアウトオブジェクト１３１３Ａ及び入力画像オブジェクト１３１４Ａを生成し、入力レイアウトに入力画像を当てはめた構成として管理する。
【０１３１】
また、ページ毎の入力レイアウトの設定する際に、例えばスキャナ１５１ａで読み込む原稿を、ユーザが「２ in １」の集約原稿であると設定した場合、入力レイアウトは入力画像が２枚当てはめられたレイアウトとなり、この条件を満たした入力レイアウトオブジェクト１３１３Ａが生成されることになる。
【０１３２】
具体的には、この入力ページクラス１３１２は、属性としてページ番号１３１２ａを有し、操作として入力開始（）１３１２ｂ、終了通知（）１３１２ｃを有する。なお、かかる入力ページクラス１３１２を実体化したオブジェクトが生成されると、属性としてページ番号１３１２ａがＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込みおよび読み出しをすることが可能となる。
【０１３３】
ページ番号１３１２ａは、この入力ページオブジェクト１３１２Ａが管理するページを示す番号を保持する。つまり、入力ドキュメントオブジェクト１３１１Ａが保持するページ数１３１１ｄだけ入力ページオブジェクト１３１２Ａを生成するので、入力ページオブジェクト１３１２Ａが割り振られたページの番号をページ番号１３１２ａで保持する。
【０１３４】
入力開始（）１３１２ｂは、入力ページクラス１３１２がページ処理を開始するためのトリガーを与える処理を行う。この入力開始（）１３１２ｂが、入力ネットドキュメントオブジェクト１３１５Ａ等の入力ドキュメントクラス１３１１のサブクラスのオブジェクトから呼び出された場合に、引数として受け渡されたページ番号に該当する入力ドキュメント中のページの情報を取得し、取得したページの情報に基づいて入力レイアウトオブジェクト１３１３Ａ及び入力画像オブジェクト１３１４Ａの生成を開始する。
【０１３５】
また、入力ページクラス１３１２は、入力開始（）１３１２ｂが呼び出された場合、入力ドキュメントクラス１３１１が管理する入力ドキュメントから該当する入力ドキュメント中のページの情報を取得し、生成した入力レイアウトオブジェクト１３１３Ａ及び入力画像オブジェクト１３１４Ａを用いて入力ページを管理する。
【０１３６】
終了通知（）１３１２ｃは、各入力画像オブジェクト１３１４Ａが入力ページクラス１３１２に画像処理が終了したことを通知する処理を行う。この終了通知（）１３１２ｃが、入力ページクラス１３１２が生成した全ての入力画像オブジェクト１３１４Ａから呼び出された場合に、入力ページクラス１３１２はページの処理が全て終了したと判断する。
【０１３７】
入力レイアウトクラス１３１３は、入力ページクラス１３１２で管理する入力ページに後述する入力画像を当てはめるために用いられるレイアウト（以下、入力レイアウトという）を作成して管理するクラスである。具体的には、この入力レイアウトクラス１３１３は、属性として仕切り線種類１３１３ａ、とじしろ幅１３１３ｂ、枠消去幅１３１３ｃ、並べ順１３１３ｄを有するが、図１０で示した仕切り線種類１００３ａ、とじしろ幅１００３ｂ、枠消去幅１００３ｃ、並べ順１００３ｄと同様であるため説明を省略する。また、入力レイアウトクラス１３１３は、操作としてレイアウト作成（）１３１３ｅを有する。なお、かかる入力レイアウトクラス１３１３を実体化したオブジェクトが生成されると、属性として仕切り線種類１００３ａ、とじしろ幅１００３ｂ、枠消去幅１００３ｃ、並べ順１００３ｄがＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込みおよび読み出しをすることが可能となる。
【０１３８】
レイアウト作成（）１３１３ｅは、入力レイアウトオブジェクト１３１３Ａが入力ページに入力画像を適した位置に配置する入力レイアウトを作成する。このレイアウト作成（）１３１３ｅが、入力ページオブジェクト１３１２Ａから呼び出された場合、引数として受け渡された情報から、属性として仕切り線種類１３１３ａ、とじしろ幅１３１３ｂ、枠消去幅１３１３ｃ、並べ順１３１３ｄを設定することで、入力レイアウトが作成される。そして、並べ順１００３ｄにより、入力ページ内に配置される入力画像の数とこれらの並べ順が決定される。
【０１３９】
入力画像クラス１３１４は、入力ページに対して入力レイアウトにより定められた配置に当てはまる画像（以下、入力画像という）を管理するクラスである。具体的には、入力画像クラス１３１４は、上述した入力ドキュメントクラス１３１１のサブクラスのオブジェクトで生成された入力ドキュメントから入力画像となる範囲の画像の実体を読み込み、保持する。また、入力画像クラス１３１４は、属性として解像度１３１４ａ、濃度１３１４ｂ、カラー１３１４ｃ、網掛け１３１４ｄ及び読み込んだ画像の実体を特定する情報を有する。これらは、図１０で示した解像度１００４ａ、濃度１００４ｂ、カラー１００４ｃ、網掛け１００４ｄと同様であるため説明を省略する。また、画像の実体を特定する情報は周知技術のうちどの様な特定方法でも良いため、図１３では省略する。また、入力画像クラス１３１４は、操作として入力開始（）１３１４ｅ、終了通知（）１３１４ｆを有する。なお、かかる入力画像クラス１３１４を実体化したオブジェクトが生成されると、解像度１３１４ａ、濃度１３１４ｂ、カラー１３１４ｃ、網掛け１３１４ｄ及び読み込んだ画像の実体を特定する情報がＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込みおよび読み出しをすることが可能となる。
【０１４０】
入力画像は、入力レイアウトに当てはめられる画像をいい、所定のサイズの画像、本実施の形態ではドキュメントハンドリングの最小単位に分割された画像となる。ドキュメントハンドリングの最小単位は画像クラス１００４で説明したので省略する。また、入力画像は、単なる画像のみならず、上述した領域に示された文字情報や、図形なども含まれる。
【０１４１】
入力開始（）１３１４ｅは、入力画像クラス１３１４が画像処理を開始するためのトリガーを与える処理を行う。この入力開始（）１３１４ｅが、入力ページオブジェクト１３１２Ａから呼び出された場合に、引数として受け渡された入力レイアウト等の設定により
定められる範囲の画像の実体を読み込み、読み込んだ画像の実体を特定する情報を属性として書き込み、さらに入力画像に対応したユーザ画像を管理するユーザ画像オブジェクト１３０３Ａを生成する。
【０１４２】
終了通知（）１３１４ｆは、実行制御部２１３が入力画像クラス１３１４に画像の実体を読み込む処理が終了したことを通知する処理を行う。この終了通知（）１３１４ｆが呼び出された場合に、入力画像クラス１３１４は画像処理が全て終了したと判断する。
【０１４３】
ユーザ画像クラス１３０３は、入力画像から生成された加工処理の対象となるユーザ画像を管理し、出力画像を生成するための加工処理を行うクラスである。具体的にはユーザ画像クラス１３０３は、属性として生成されたユーザ画像を特定する情報を有し、操作として作成（）１３０３ａ及び利用（）１３０３ｂを有する。なお、かかるユーザ画像クラス１３０３を実体化したオブジェクトが生成されると、作成された画像を特定する情報がＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込みおよび読み出しをすることが可能となる。
【０１４４】
また、ユーザ画像は加工処理の対象となる画像をいい、所定のサイズの画像、本実施の形態ではドキュメントハンドリングの最小単位に分割された画像となる。ドキュメントハンドリングの最小単位は画像クラス１００４で説明したので省略する。ユーザ画像は、単なる画像のみならず、ユーザ画像として所定サイズの領域に示された文字情報や、図形なども含まれる。
【０１４５】
作成（）１３０３ａは、入力画像クラス１３１４から呼び出され、ユーザ画像クラス１３０３が対応する入力画像に基づいてユーザ画像を生成する処理を行う。この作成（）１３０３ａが、入力画像オブジェクト１３１４Ａから呼び出された場合に、ユーザ画像の実体を生成するトリガーとなり、この後に入力画像オブジェクト１３１４Ａから送信されてくる画像情報より、ユーザ画像の実体を生成し、生成した実体を特定にする情報を属性に書き込む。
【０１４６】
利用（）１３０３ｂは、後述する出力画像クラス１３２４から呼び出され、作成（）１３０３ａで読み込んだ画像の実体を出力形式に適するように加工処理を行った後、出力画像クラス１３２４に送信し、出力画像を生成する。加工処理の例としては、１枚毎に入力処理された原稿を「２ in １」で出力したい場合、ユーザ画像を縮小する処理を行う等が考えられる。
【０１４７】
出力ドキュメントクラス１３２１は、出力先によらず共通する予め定めたフォーマット、換言すると出力画像と出力レイアウトを組み合わせた出力ページで構成される出力ドキュメントを生成し、出力先に出力処理を行うクラスである。出力先とは、例えばプロッタ、プリンタ、ネットワークを介して接続された機器、ＦＡＸ送信あるいはローカルストレージ等の出力手段が考えられる。この出力ドキュメントクラス１３２１は、出力ネットドキュメントクラス１３２５、出力紙ドキュメントクラス１３２６及び出力ＬＳドキュメントクラス１３２７の上位クラス（スーパークラス）であり、出力ドキュメントクラス１３２１自体が実体化されることはないが、出力ドキュメントクラス１３２１の属性および操作は、下位クラス（サブクラス）である出力ネットドキュメントクラス１３２５、出力紙ドキュメントクラス１３２６及び出力ＬＳドキュメントクラス１３２７に継承される。具体的には出力ドキュメントクラス１３２１は、属性として状態１３２１ａ、文書種類１３２１ｂ、文書名１３２１ｃ、ページ数１３２１ｄを、操作として出力開始（）１３２１ｅ、出力中断（）１３２１ｆ、出力継続（）１３２１ｇ、出力取消（）１３２１ｈ、出力通知（）１３２１ｉを有する。
【０１４８】
状態１３２１ａは、状態情報として「待機中」、「出力中」、「中断中」、「取消中」、「終了中」のいずれか１つが設定されている。状態１３２１ａが変更される条件については後述する。また、属性として有している文書種類１３２１ｂ、文書名１３２１ｃは、図１０で説明した文書種類１００１ｂ、文書名１００１ｃと同じため説明を省略する。
【０１４９】
ページ数１３２１ｄは、出力処理された出力ドキュメントのページ数を保持する。出力ドキュメントのページ数は、複合機１に対して行った出力する際の設定及びユーザドキュメントオブジェクト１３０２Ａが保持するユーザ画像の数から求めることができる。具体的には後述する出力開始（）１３２１ｅが呼び出された際に、引数として受け渡されたユーザ画像の数や、出力する際の設定より定められる出力レイアウト等からページ数が求められて、ページ数１３２１ｄに設定される。例えば、ユーザドキュメントオブジェクト１３０２Ａが保持するユーザ画像の数が４枚であり、ユーザが「２ in １」で出力するように設定していた場合、ページ数１３２１ｄは‘２’と設定される。また、出力ドキュメントクラス１３２１はページ数だけ出力ページオブジェクト１３２２Ａを生成する。
【０１５０】
出力開始（）１３２１ｅは、出力ドキュメントクラス１３２１が文書処理を開始するためのトリガーを与える処理をおこなう。この出力開始（）１３２１ｅは、サブクラスである出力ネットドキュメントクラス１３２５、出力紙ドキュメントクラス１３２６及び出力ＬＳドキュメントクラス１３２７に継承され、各サブクラスにおける具体的な処理によりオーバーライド（override）される。なお、かかる具体的な処理の説明については、後述する出力ネットドキュメントクラス１３２５、出力紙ドキュメントクラス１３２６及び出力ＬＳドキュメントクラス１３２７の説明でおこなう。
【０１５１】
出力中断（）１３２１ｆは、出力開始（）１３２１ｅにより開始された文書の出力処理を中断する。また、出力取消（）１３２１ｇは、出力開始（）１３２１ｅにより開始された文書の出力処理を取り消す。また、出力継続（）１３２１ｈは、出力中断（）１３２１ｆにより中断された文書の出力処理を再開するためのトリガーを与える処理を行う。
【０１５２】
終了通知（）１３２１ｉは、後述する出力ページクラス１３２２から出力ドキュメントクラス１３２１にページ毎の処理が終了したこと通知する。
【０１５３】
また、出力開始（）１３２１ｅ、出力中断（）１３２１ｆ、出力取消（）１３２１ｇ、出力継続（）１３２１ｈ、終了通知（）１３２１ｉで行われる処理に応じて状態１３２１ａが変更される。
【０１５４】
図１５は、出力ドキュメントクラス１３２１が呼び出された操作により変更される状態を示した状態図である。本図で示したように、出力ドキュメントクラス１３２１は、開始状態から状態１３２１ａは「待機中」１５０１に変更される。そして、「待機中」１５０１から出力開始（）１３２１ｅにより「出力中」１５０２に変更され、出力取消（）１３２１ｇより終了状態となる。また、状態１３２１ａは「出力中」１５０２から、呼び出された操作に基づいて「中断中」１５０３、「取消中」１５０５、「終了中」１５０４に変更される。このように操作に基づいて状態１３２１ａが変更される。また、「終了中」１５０４から終了処理が終了した場合、「取消中」１５０５から取消処理が終了した場合は終了状態になる。そして、出力ドキュメントクラス１３２１が上述した操作で呼び出された場合、状態１３２１ａを参照することで、呼び出された操作が適切か否か判断することが可能になる。つまり状態１３２１ａに設定されている値からはあり得ない操作が呼び出された場合、この操作は異常だと判断できるため、適切な出力処理が可能になる。
【０１５５】
出力ネットドキュメントクラス１３２５は、出力ドキュメントクラス１３２１のサブクラスであり、出力ドキュメントの出力先にネットワークを介して接続し、出力ページオブ
ジェクト１３２２Ａに対して出力ドキュメントの出力ページ毎に出力処理する指示を行うクラスである。また、出力ネットドキュメントクラス１３２５は、出力先毎に異なるプロトコル、例えばＦＡＸ送信、メール送信あるいはファイルの転送等の違いに応じて、通信を制御するよう実行制御部２１３に指示し、さらに通信方式に応じた出力ドキュメントのフォーマットを用意し、出力ドキュメントを出力先に応じたフォーマットで整形して出力する処理を行う。このフォーマットはＦＡＸ送信等の通信で通常用いられている周知のフォーマットとする。
【０１５６】
具体的には、この出力ネットドキュメントクラス１３２５は、出力ドキュメントクラス１３２１から、属性として状態１３２１ａ、文書種類１３２１ｂ、文書名１３２１ｃ、ページ数１３２１ｄを、操作として出力開始（）１３２１ｅ、入力中断（）１３２１ｆ、入力取消（）１３２１ｇ、入力継続（）１３２１ｈ、終了通知（）１３２１ｉを承継する。さらに、出力ネットドキュメントクラス１３２５は、属性として、ネットワークを介して出力処理を行うために必要な仕様及び設定を保持するが、図１３では省略する。なお、かかる出力ネットドキュメントクラス１３２５を実体化したオブジェクトが生成されると、属性として保持する出力処理を行うために必要な仕様且つ設定及び状態１３２１ａ、文書種類１３２１ｂ、文書名１３２１ｃ、ページ数１３２１ｄはＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込みおよび読み出しをすることが可能となる。
【０１５７】
出力ドキュメントクラス１３２１から承継した出力開始（）１３２１ｅは、出力処理を開始するためのトリガーであり、ユーザドキュメントオブジェクト１３０２Ａから呼び出された場合、出力ネットドキュメントクラス１３２５が出力先にネットワークを介して接続し、予め生成されたユーザ画像を利用して出力先に応じたフォーマットで整形した出力ドキュメントを生成して出力する制御を行う。
【０１５８】
また、出力ネットドキュメントオブジェクト１３２５Ａは、出力開始（）１３２１ｅの引数として受け渡された情報よりネットワークを介した出力先を特定し、実行制御部２１３を介して利用できるＦＡＸ送受信制御部１０２ｅやネットワーク通信制御部１０２ｆを用いてネットワークへ接続し、出力先にこれから出力する出力文書の登録等の処理を行うことで、後述する出力ページクラス１３２２や出力画像クラス１３２４が出力する出力文書を構成するための情報、例えば出力レイアウトや出力画像等を出力先に出力することを可能とする。
【０１５９】
出力紙ドキュメントクラス１３２６は、出力ドキュメントクラス１３２１のサブクラスであり、プロッタ１５１ｂを制御して、出力ページオブジェクト１３２２Ａに出力ドキュメントの出力ページ毎に出力処理する指示を行うクラスである。また、出力紙ドキュメントクラス１３２６は、実行制御部２１３にプロッタ１５１ｂを制御して出力するよう指示すると共に、プロッタ１５１ｂで出力するために適したフォーマットを用意し、出力ドキュメントを用意したフォーマットを利用して出力する処理を行う。
【０１６０】
具体的には、この出力紙ドキュメントクラス１３２６は、出力ドキュメントクラス１３２１から、属性として状態１３２１ａ、文書種類１３２１ｂ、文書名１３２１ｃ、ページ数１３２１ｄを、操作として出力開始（）１３２１ｅ、入力中断（）１３２１ｆ、入力取消（）１３２１ｇ、入力継続（）１３２１ｈ、終了通知（）１３２１ｉを承継する。さらに、出力紙ドキュメントクラス１３２６は、属性として、プロッタ１５１ｂから原稿を出力するための設定及び仕様を保持するが、図１３では省略する。なお、かかる出力紙ドキュメントクラス１３２６を実体化したオブジェクトが生成されると、属性として原稿を出力するための設定及び仕様及び状態１３２１ａ、文書種類１３２１ｂ、文書名１３２１ｃ、ページ数１３２１ｄはＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込みおよび読み出しをすることが可能となる。
【０１６１】
出力ドキュメントクラス１３２１から承継した出力開始（）１３２１ｅは、出力処理を開始するためのトリガーであり、ユーザドキュメントオブジェクト１３０２Ａから呼び出された場合に出力紙ドキュメントクラス１３２６がプロッタ１５１ｂで印刷するためのフォーマットを利用して出力ドキュメントを出力する制御を行う。
【０１６２】
また、出力紙ドキュメントクラス１３２６は、出力開始（）１３２１ｅが呼び出された場合、印刷する際に、実行制御部２１３を介して利用できるプロッタ制御部１０２ｂでプロッタ１５１ｂに対して出力する制御を行う。また、出力ページオブジェクト１３２２Ａに対して、印刷に適したレイアウト及び出力画像の配置を定める旨を指示する。これにより媒体の特性あるいはプロッタ１５１ｂによる原稿のハンドリングモードの違いにかかわらず共通した加工処理を行うことができる。さらに、出力紙ドキュメントクラス１３２６は、ユーザにより入力された設定に基づいて、紙の表のみ、あるいは表裏に印刷するか決定し、決定に従うようにプロッタ１５１ｂを制御する指示を行う。
【０１６３】
出力ＬＳドキュメントクラス１３２７は、出力ドキュメントクラス１３２１のサブクラスであり、ハードディスク等のローカルストレージ内の保存場所を定め、出力ページオブジェクト１３２２Ａに対して出力ドキュメントの出力ページ毎に出力処理する指示を行うクラスである。なお、ローカルストレージ内に出力ドキュメントを保存する際の電子文書のフォーマットに制限を設けるものではない。
【０１６４】
具体的には、この出力ＬＳドキュメントクラス１３２７は、出力ドキュメントクラス１３２１から、属性として状態１３２１ａ、文書種類１３２１ｂ、文書名１３２１ｃ、ページ数１３２１ｄを、操作として出力開始（）１３２１ｅ、入力中断（）１３２１ｆ、入力取消（）１３２１ｇ、入力継続（）１３２１ｈ、終了通知（）１３２１ｉを承継する。さらに、出力ＬＳドキュメントクラス１３２７は、属性として、ローカルストレージに保存するための設定及び仕様を保持するが、図１３では省略する。なお、かかる出力ＬＳドキュメントクラス１３２７を実体化したオブジェクトが生成されると、属性としてローカルストレージに保存するための設定及び仕様及び状態１３２１ａ、文書種類１３２１ｂ、文書名１３２１ｃ、ページ数１３２１ｄはＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込みおよび読み出しをすることが可能となる。
【０１６５】
出力ドキュメントクラス１３２１から承継した出力開始（）１３２１ｅは、出力処理を開始するためのトリガーであり、ユーザドキュメントオブジェクト１３０２Ａから呼び出された場合に出力ＬＳドキュメントクラス１３２７がローカルストレージの保存場所を特定し、保存する電子文書のファイル名等を登録し、予め生成されたユーザ画像を利用して保存する際のフォーマットで整形した出力ドキュメントを生成して出力する制御を行う。
【０１６６】
また、出力ＬＳドキュメントクラス１３２７は、出力開始（）１３２１ｅの引数として受け渡された情報より保存先及び電子文書のファイル名を特定し、実行制御部２１３を介して利用できる蓄積制御部１０２ｃを用いてローカルストレージの保存場所に出力文書の登録等の処理を行うことで、後述する出力ページクラス１３２２や出力画像クラス１３２４から出力文書に関する情報、例えば出力レイアウトや出力画像等の出力を可能にする。
【０１６７】
出力ページクラス１３２２は、出力ドキュメントクラス１３２１で生成される出力ドキュメントを構成する各ページを出力ページとして生成し、レイアウト等のページ毎の設定を出力先に出力するクラスである。出力ページクラス１３２２は、後述する出力レイアウトオブジェクト１３２３Ａ及び出力画像オブジェクト１３２４Ａを生成し、出力レイアウトに出力画像を当てはめた構成として出力ページを生成する。
【０１６８】
具体的には、この出力ページクラス１３２２は、属性としてページ番号１３２２ａを有し、操作として出力開始（）１３２２ｂ、終了通知（）１３２２ｃを有する。なお、かかる出力ページクラス１３２２を実体化したオブジェクトが生成されると、属性としてページ番号１３２２ａがＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込みおよび読み出しをすることが可能となる。
【０１６９】
ページ番号１３２２ａは、この出力ページオブジェクト１３２２Ａが生成するページを示す番号を保持する。つまり出力ドキュメントオブジェクト１３２１Ａが保持するページ数１３２１ｄだけ出力ページオブジェクト１３２２Ａを生成するので、出力ページオブジェクト１３２２Ａが割り振られたページを特定するためにページ番号１３１２ａを保持することとなる。
【０１７０】
出力開始（）１３２２ｂは、出力ページクラス１３２２がページ処理を開始するためのトリガーを与える処理を行う。この出力開始（）１３２２ｂが、出力ネットドキュメントオブジェクト１３２５Ａ等の出力ドキュメントクラス１３２１のサブクラスのオブジェクトから呼び出された場合に、引数として受け渡されたページ番号及びユーザにより受け付けられた設定より定められるページの情報を取得し、取得したページの情報に基づいて出力レイアウトオブジェクト１３２３Ａ及び出力画像オブジェクト１３２４Ａを生成する。
【０１７１】
また、出力ページクラス１３２２は、出力開始（）１３２２ｂが呼び出された場合、出力ドキュメントクラス１３２１が管理する出力ドキュメントから該当するページの情報（以下、出力ページとする）を取得することで生成した出力レイアウトオブジェクト１３２３Ａを用いて出力レイアウト等のページ毎の設定を出力先に出力し、その後出力レイアウトに当てはめる出力画像を保持する出力画像オブジェクト１３２４Ａを生成する。
【０１７２】
終了通知（）１３１２ｃは、各出力画像オブジェクト１３２４Ａが出力ページクラス１３２２に画像処理が終了したことを通知する処理を行う。この終了通知（）１３２２ｃが、出力ページクラス１３２２が生成した全ての出力画像オブジェクト１３２４Ａから呼び出された場合に、出力ページクラス１３２２はページの処理が全て終了したと判断する。
【０１７３】
出力レイアウトクラス１３２３は、出力ページクラス１３２２で生成される入力ページに出力画像を当てはめるために用いられるレイアウト（以下、出力レイアウトという）を作成して管理するクラスである。具体的には、この出力レイアウトクラス１３２３は、属性として仕切り線種類１３２３ａ、とじしろ幅１３２３ｂ、枠消去幅１３２３ｃ、並べ順１３２３ｄを有するが、図１０で示した仕切り線種類１００３ａ、とじしろ幅１００３ｂ、枠消去幅１００３ｃ、並べ順１００３ｄと同様であるため説明を省略する。また、出力レイアウトクラス１３２３は、操作としてレイアウト作成（）１３２３ａを有する。なお、かかる出力レイアウトクラス１３２３を実体化したオブジェクトが生成されると、属性として仕切り線種類１００３ａ、とじしろ幅１００３ｂ、枠消去幅１００３ｃ、並べ順１００３ｄがＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込みおよび読み出しをすることが可能となる。
【０１７４】
レイアウト作成（）１３２３ａは、出力レイアウトオブジェクト１３２３Ａが出力ページに出力画像を適した位置に配置するために設定する処理を行う。このレイアウト作成（）１３２３ａが、出力ページオブジェクト１３２２Ａから呼び出された場合に、引数として受け渡された情報から、属性として仕切り線種類１３２３ａ、とじしろ幅１３２３ｂ、枠消去幅１３２３ｃ、並べ順１３２３ｄを設定することで、出力レイアウトが作成される。そして、並べ順１３２３ｄにより、出力ページ内に配置される出力画像の数とこれらの並べ順が決定される。
【０１７５】
出力画像クラス１３２４は、出力ページに対して出力レイアウトにより定められた配置に当てはまる画像（以下、出力画像という）を生成して出力するクラスである。具体的には、出力画像クラス１３２４は、上述したユーザ画像オブジェクト１３０３Ａで生成されたユーザ画像に基づいて生成された出力先に適したフォーマットの出力画像を取得する。また、出力画像クラス１３２４は、属性として解像度１３２４ａ、濃度１３２４ｂ、カラー１３２４ｃ、網掛け１３２４ｄ及び読み込んだ画像の実体を特定する情報を有する。これらは、図１０で示した解像度１００４ａ、濃度１００４ｂ、カラー１００４ｃ、網掛け１００４ｄと同様であるため説明を省略する。また、画像の実体を特定する情報は周知技術のうちどの様な特定方法でも良いため、図１３では省略する。また、出力画像クラス１３２４は、操作として出力開始（）１３２４ｅ、終了通知（）１３２４ｆを有する。なお、かかる出力画像クラス１３２４を実体化したオブジェクトが生成されると、解像度１３２４ａ、濃度１３２４ｂ、カラー１３２４ｃ、網掛け１３２４ｄ及び読み込んだ画像の実体を特定する情報がＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込みおよび読み出しをすることが可能となる。
【０１７６】
また、出力画像とは、出力レイアウトに当てはめる画像をいい、上述した入力画像及びユーザ画像と同様に、出力画像は所定のサイズの画像、本実施の形態ではドキュメントハンドリングの最小単位に分割された画像となる。また、出力画像は、単なる画像のみならず、出力レイアウトにより定められた枠内に表示される文字情報や、図形なども含まれる。
【０１７７】
出力開始（）１３２４ｅは、出力画像クラス１３２４が画像処理を開始するためのトリガーを与える処理を行う。この出力開始（）１３２４ｅが、出力ページオブジェクト１３２２Ａから呼び出された場合に、引数として受け渡される情報より、対応するユーザ画像を特定し、ユーザ画像オブジェクト１３０３Ａの利用（）１３０３ｂを呼び出すことで、ユーザ画像から出力レイアウトに当てはまるよう加工処理された出力画像を受信し、受信した出力画像を出力先に出力する。
【０１７８】
図１６は、本実施の形態のドキュメントハンドリング部２１２において「２ in １」の入力ドキュメントから「４ in １」の出力ドキュメントを生成するまでの工程を示した説明図である。本図に示すように、ドキュメントハンドリング部２１２は、ドキュメントをページ毎にレイアウトとレイアウトに当てはめる画像の組み合わせを用いることで画像単位での加工処理が容易になった。
【０１７９】
次に、各クラス間の関係について説明する。図１７に戻り、各クラスを示す矩形を結ぶ直線は、その両端のクラス間に関係があることを表しており、この直線の両端付近の文字はクラスの役割を、数字はクラスの多重度をそれぞれ示している。ここで、役割とは、かかる直線の両端における、一方のクラスからみた、もう一方のクラスの役割や立場のことであり、多重度とは、かかる直線の両端のクラスから生成されるオブジェクト数の対応関係のことである。
【０１８０】
たとえば、ドキュメント操作スケジューラクラス１３０１からみたユーザドキュメントクラス１３０２の役割は「要求」であり、ユーザドキュメントクラス１３０２からみたドキュメント操作スケジューラクラス１３０１の役割は「受付」であり、ドキュメント操作スケジューラクラス１３０１の多重度は「１」であり、ユーザドキュメントクラス１３０２の多重度は「１．．＊」である。ここで、「１．．＊」は、かかるユーザドキュメントクラス１３０２の多重度が、１から上限数なしの範囲であることを示している。また、たとえば、「１．．３」の記載をした場合には、かかるクラスの多重度が、１〜３の範囲であることを示す。
【０１８１】
そして、本図に示したように、ドキュメントハンドリング部２１２が実行される場面において、ドキュメント操作スケジューラクラス１３０１をＲＡＭ１２ｂ上に展開（実体化）したオブジェクトは１個だけ存在し、このドキュメント操作スケジューラクラス１３０１の文書処理の要求対象となるユーザドキュメントクラス１３０２を実体化したオブジェクトは０個以上、上限数なしの範囲で存在する。
【０１８２】
次に、ユーザドキュメントクラス１３０２と入力ドキュメントクラス１３１１とのクラス関係について説明する。入力ドキュメントクラス１３１１は、ユーザドキュメントクラス１３０２からみるとユーザドキュメントを生成するために用いられる入力文書としての役割を有しており、一方、ユーザドキュメントクラス１３０２は、入力ドキュメントクラス１３１１からみると加工処理が行われるユーザ文書としての役割を有している。このようなクラス関係により入力された文書から加工対象となる対象となるユーザ文書を生成することが可能となる。
【０１８３】
また、ユーザドキュメントクラス１３０２は、ユーザからの要求毎に生成されるものであるのに対して、入力ドキュメントクラス１３１１は、ユーザ文書を生成する際に必要な文書の数に応じて生成されて入力処理を行うクラスであるため、ユーザドキュメントクラス１３０２と入力ドキュメントクラス１３１１とは１対多の関係を有する。１つのユーザドキュメントを生成する際に複数の入力文書を入力処理する場合とは、例えば、ファックス受信文書と予め蓄積していた電子文書を１つにまとめて印刷するよう要求があった場合等が考えられる。また、このように「紙」文書と「ネット」文書のように入力元が異なる文書を１つにまとめて出力したい場合でも良いし、二つの「ネット」文書のように入力元が同じ複数の入力文書を１つにまとめて出力したい場合でも良い。
【０１８４】
次に、入力ドキュメントクラス１３１１と、入力ネットドキュメントクラス１３１５、入力紙ドキュメントクラス１３１６及び入力ＬＳドキュメントクラス１３１７の関係について説明する。入力ドキュメントクラス１３１１は、入力ネットドキュメントクラス１３１５、入力紙ドキュメントクラス１３１６及び入力ＬＳドキュメントクラス１３１７の上位クラス（スーパークラス）であり、入力ネットドキュメントクラス１３１５、入力紙ドキュメントクラス１３１６及び入力ＬＳドキュメントクラス１３１７は、入力ドキュメントクラス１３１１の属性および操作を継承する。
【０１８５】
また、入力ドキュメントクラス１３１１と入力ページクラス１３１２の関係について説明する。入力ページクラス１３１２は、入力ドキュメントクラス１３１１が保持するドキュメントのページ毎に生成されるものである。このため、入力ページクラス１３１２は、入力ドキュメントクラス１３１１からみるとページとしての役割を有しており、一方、入力ドキュメントクラス１３１１は、入力ページクラス１３１２からみると文書としての役割を有している。
【０１８６】
また、入力ドキュメントクラス１３１１は、入力処理される入力文書毎に生成されるものであるのに対して、入力ページクラス１３１２はページ毎に生成されるクラスであるため、入力ドキュメントクラス１３１１と入力ページクラス１３１２とは１対多の関係を有する。また、入力ページクラス１３１２は、入力ドキュメントクラス１３１１に集約される関係を有する。
【０１８７】
次に、入力ページクラス１３１２と入力レイアウトクラス１３１３との関係について説明する。入力ページクラス１３１２は、ページ毎に生成されるものであり、入力レイアウトクラス１３１３は、ページ毎に定められるレイアウトである。つまり、入力レイアウトクラス１３１３は、入力ページクラス１３１２からみるとページ毎の枠としての役割を有しており、一方、入力ページクラス１３１２は、入力レイアウトクラス１３１３からみる
とページとしての役割を有している。このような関係である以上、入力ページクラス１３１２と入力レイアウトクラス１３１３は１対１の関係となる。
【０１８８】
また、入力ページクラス１３１２と入力画像クラス１３１４の関係について説明する。入力画像クラス１３１４は、入力ページクラス１３１２が保持するページのレイアウトに従って分割された領域毎に生成されるものである。このため、入力画像クラス１３１４は、入力ページクラス１３１２からみるとページが有する枠に当てはめられる枠内構成物としての役割を有しており、一方、入力ページクラス１３１２は、入力画像クラス１３１４からみるとページとしての役割を有している。
【０１８９】
また、入力ページクラス１３１２は、入力ドキュメントのページ毎に生成されるものであるのに対して、入力画像クラス１３１４はページが有するレイアウトに従って分割された数だけ生成されるクラスであるため、入力ページクラス１３１２と入力画像クラス１３１４とは１対多の関係を有する。また、入力画像クラス１３１４は、入力ページクラス１３１２に集約される関係を有する。
【０１９０】
次に、入力画像クラス１３１４とユーザ画像クラス１３０３との関係について説明する。入力画像クラス１３１４はページが有する枠に従って分割された数だけ生成されるものであり、ユーザ画像クラス１３０３は入力画像に基づいて加工対象として作成されるものである。つまり、ユーザ画像クラス１３０３は、入力画像クラス１３１４からみると作成物としての役割を有しており、一方、入力画像クラス１３１４は、ユーザ画像クラス１３０３からみると入力物としての役割を有している。
【０１９１】
また、ユーザ画像クラス１３０３は、入力画像クラス１３１４に基づいて生成されるものであり、入力画像クラス１３１４及びユーザ画像クラス１３０３ともにドキュメントハンドリングの最小単位で分割したものであるため、入力画像クラス１３１４とユーザ画像クラス１３０３とは１対１の関係を有する。
【０１９２】
また、ユーザドキュメントクラス１３０２とユーザ画像クラス１３０３の関係について説明する。ユーザ画像クラス１３０３は、ユーザドキュメントクラス１３０２が保持するユーザドキュメントを構成するハンドリングの最小単位となる画像毎に生成されるものである。このため、ユーザ画像クラス１３０３は、ユーザドキュメントクラス１３０２からみると構成物としての役割を有しており、一方、ユーザドキュメントクラス１３０２は、ユーザ画像クラス１３０３からみると文書としての役割を有している。
【０１９３】
また、ユーザ画像クラス１３０３は、文書を構成する画像毎に生成されるものであるのに対して、ユーザドキュメントクラス１３０２は文書毎に生成されるクラスであるため、ユーザドキュメントクラス１３０２とユーザ画像クラス１３０３とは１対多の関係を有する。また、ユーザ画像クラス１３０３は、ユーザドキュメントクラス１３０２に集約される関係を有する。
【０１９４】
次に、ユーザドキュメントクラス１３０２と出力ドキュメントクラス１３２１とのクラス関係について説明する。出力ドキュメントクラス１３２１は、ユーザドキュメントクラス１３０２からみるとユーザの要求に応じた出力形式で出力される出力文書としての役割を有しており、一方、ユーザドキュメントクラス１３０２は、出力ドキュメントクラス１３２１からみるとユーザ文書としての役割を有している。このようなクラス関係により加工対象となるユーザ文書から出力文書を生成することが可能となる。
【０１９５】
また、ユーザドキュメントクラス１３０２は、ドキュメント操作スケジューラクラス１３０１から文書処理毎に生成されるものであり、出力ドキュメントクラス１３２１は、ユ
ーザの要求に応じた文書毎に生成されるものであり、１つの文書処理要求に基づいて複数の文書を出力することは当然可能である。つまり、ユーザドキュメントクラス１３０２とユーザ画像クラス１３０３とは１対多の関係を有する。１つの文書処理要求に基づいて複数の文書を出力する場合とは、例えばユーザがスキャナで読み込んだ文書を「印刷＋蓄積」する旨の設定を行った場合等が考えられる。
【０１９６】
次に、出力画像クラス１３２４とユーザ画像クラス１３０３との関係について説明する。出力画像クラス１３２４は、出力ページが有する枠に当てはめられる数だけ、ユーザ画像を利用して生成されるものである。つまり、出力画像クラス１３２４は、ユーザ画像クラス１３０３からみると出力物としての役割を有しており、一方、ユーザ画像クラス１３０３は、出力画像クラス１３２４からみると利用物としての役割を有している。
【０１９７】
また、出力画像クラス１３２４は、ユーザ画像クラス１３０３に基づいて生成されるものであり、出力画像クラス１３２４及びユーザ画像クラス１３０３ともにドキュメントハンドリングの最小単位で分割したものである。また、１つのユーザ画像を複数の出力文書毎に利用される場合や、１つの出力文書中に１つのユーザ画像を複数利用する場合も考えられる。このため、ユーザ画像クラス１３０３と出力画像クラス１３２４とは１対多の関係を有する。
【０１９８】
また、出力ドキュメントクラス１３２１と、出力ネットドキュメントクラス１３２５、出力紙ドキュメントクラス１３２６及び出力ＬＳドキュメントクラス１３２７の関係は、入力ドキュメントクラス１３１１と、入力ネットドキュメントクラス１３１５、入力紙ドキュメントクラス１３１６及び入力ＬＳドキュメントクラス１３１７の関係と同様であるため説明を省略する。
【０１９９】
また、出力ドキュメントクラス１３２１と出力ページクラス１３２２の関係は入力ドキュメントクラス１３１１と入力ページクラス１３１２の関係と、出力ページクラス１３２２と出力レイアウトクラス１３２３の関係は入力ページクラス１３１２と入力レイアウトクラス１３１３の関係と、出力ページクラス１３２２と出力画像クラス１３２４の関係は入力ページクラス１３１２と入力画像クラス１３１４の関係と同様であるため説明を省略する。
【０２００】
このように、ドキュメント操作スケジューラクラス１３０１、入力ドキュメントクラス１３１１、入力ページクラス１３１２、入力レイアウトクラス１３１３、入力画像クラス１３１４、入力ネットドキュメントクラス１３１５、入力紙ドキュメントクラス１３１６、入力ＬＳドキュメントクラス１３１７、ユーザドキュメントクラス１３０２、ユーザ画像クラス１３０３、出力ドキュメントクラス１３２１、出力ページクラス１３２２、出力レイアウトクラス１３２３、出力画像クラス１３２４、出力ネットドキュメントクラス１３２５、出力紙ドキュメントクラス１３２６、出力ＬＳドキュメントクラス１３２７の各オブジェクトは、相互に関連し合い、協調することによりドキュメントハンドリング部２１２に必要な機能を実現することが可能となる。
【０２０１】
図１７は、ドキュメント操作スケジューラオブジェクト１３０１Ａが、文書処理の新規リクエストを受け付けた際に、原稿ハンドリングモードが圧板モードで入力処理を行う場合のドキュメント操作スケジューラクラス１３０１、ユーザドキュメントクラス１３０２、入力紙ドキュメントクラス１３１６、入力ページクラス１３１２、入力レイアウトクラス１３１３、入力画像クラス１３１４及びユーザ画像クラス１３０３のオブジェクトと、オブジェクト間のメッセージの流れを示したＵＭＬのコラボレーション（協調）図である。ここで、メッセージとは、オブジェクトが内部に有する操作の呼び出しのことであり、たとえば、オブジェクトＡがオブジェクトＢの操作Ｂ１を呼び出したときに、オブジェク
トＡはオブジェクトＢにメッセージを送信した、ということができる。
【０２０２】
そして、あるオブジェクトが別のオブジェクトにメッセージを送信することにより、このメッセージを受信したオブジェクトは、内部の属性（データ）を変化させたり、かかるメッセージに対する応答を返信したり、他のメッセージを送信したりする。このようにして、各オブジェクトは協調して処理を進めていく。
【０２０３】
図１７に示した協調関係を用いて処理を行うための新規リクエストは、たとえば、コンタクトガラスの上に原稿を配置して、図９に示したコピーキー４０２を押下した後で、スタートキー４０８を押下したときに発生し、サービス層１０２のその他の制御部１０２ｇドライバーおよび操作系サブシステム２０１を経由しドキュメント操作スケジューラオブジェクト１３０１Ａに到達する。なお、本図においては説明を解り易くするために、原稿の繰り返し処理が行われた場合などで複数生成される入力ページオブジェクト１３１２Ａ等の記載は省略している。
【０２０４】
まず、本図に付された各記号の説明をする。内部にアンダーラインを伴った文字列を有する矩形はオブジェクトを示し、アンダーラインを伴った文字列のうちコロン（：）を含むものは、コロンより前がオブジェクト名を、コロンより後ろが、かかるオブジェクトが属するクラスを示す。そして、矢印はオブジェクト間のメッセージを示し、この矢印の近辺に記された、たとえば、「１：ドキュメント登録」の文字列は、「１」が本図中におけるメッセージの相対的順序を示し、「ドキュメント登録」がかかるメッセージの内容を示す。また、各オブジェクトを結ぶ線は、各オブジェクトに関係があることを示しており、かかる線に沿って、たとえば、オブジェクト生成メッセージなどのメッセージの送受信がおこなわれる。
【０２０５】
まず、ドキュメントの処理を要求する人（ユーザ）が複合機１を操作して、紙文書をネットワーク上のコンピュータに送信する旨を入力すると、操作系サブシステム２０１は、ユーザが入力した上述した文書処理を行う旨のリクエストをドキュメント操作スケジューラオブジェクト１３０１Ａに送信する（ステップＳ１７０１）。具体的には、操作系サブシステム２０１からの要求をリクエスト管理部２１１がリクエスト要求として受け付ける。そして、リクエスト管理部２１１が文書の処理先にリクエストを登録するためにドキュメントハンドリング部２１２のドキュメント操作スケジューラオブジェクト１３０１Ａのドキュメント登録（）１３０１ａを呼び出す。
【０２０６】
そして、ドキュメント操作スケジューラオブジェクト１３０１Ａは、文書処理を行うユーザドキュメントクラス１３０２のオブジェクトを生成し、生成されたユーザドキュメントオブジェクト１３０２Ａの文書処理開始（）１３０２ａを呼び出して、文書処理の開始をメッセージとして送信する（ステップＳ１７０２）。また、生成は、すべてのオブジェクトが有する操作であり、生成することで各オブジェクトはＲＡＭ１２ｂ上に実体化される。
【０２０７】
文書処理の開始を受信したユーザドキュメントオブジェクト１３０２Ａは、入力開始（）１３１１ａで引数として受け渡された情報から入力元を特定し、入力先に応じた入力ドキュメントクラス１３１１のサブクラスを生成する。なお、本図で示す例としては、入力元が紙文書の場合とし、生成されるオブジェクトは、入力ドキュメントクラス１３１１のサブクラスである入力紙ドキュメントクラス１３１６のオブジェクトとする。
【０２０８】
そして、ユーザドキュメントオブジェクト１３０２Ａは、生成された入力紙ドキュメントオブジェクト１３１６Ａの入力開始（）１３１１ｅを呼び出して紙文書の入力処理を開始するメッセージを送信する（ステップＳ１７０３）。
【０２０９】
入力紙ドキュメントオブジェクト１３１６Ａは、要求に応じて実行制御部２１３を通じてスキャナ１５１ａを制御し、紙文書を読み込んで入力処理を開始する。そして、入力紙ドキュメントオブジェクト１３１６Ａは、読み込んだ紙文書のページ毎に入力ページオブジェクト１３１２Ａを生成し、生成された入力ページオブジェクト１３１２Ａの入力開始（）１３１２ｂを呼び出して、読み込んだ紙文書のページ毎の入力処理の開始を要求するメッセージを送信する（ステップＳ１７０４）。
【０２１０】
次に、入力ページオブジェクト１３１２Ａは、ページの入力処理を開始し、まず入力レイアウトオブジェクト１３１３Ａを生成し、生成された入力レイアウトオブジェクト１３１３Ａのレイアウト作成（）１３１３ｅを呼び出して、ユーザにより入力された設定に基づいて、生成された入力レイアウトオブジェクト１３１３Ａの属性を設定する（ステップＳ１７０５）。そして、入力レイアウトオブジェクト１３１３Ａは、ページ毎に定められる入力画像の配置及び数等のレイアウトに関する情報を、入力ページオブジェクト１３１２Ａにメッセージとして送信する（ステップＳ１７０６）。
【０２１１】
そして、入力ページオブジェクト１３１２Ａは、入力レイアウトオブジェクト１３１３Ａにより定められた入力ページ毎の入力画像の数だけ、入力画像オブジェクト１３１４Ａを生成し、生成された入力画像オブジェクト１３１４Ａの入力開始（）１３１４ｅを呼び出して、入力画像オブジェクト１３１４Ａに入力画像の入力処理の開始を要求するメッセージを送信する（ステップＳ１７０７）。
【０２１２】
次に、入力画像オブジェクト１３１４Ａは、文書処理部（実行系サブシステム２０３）の入力開始（）を呼び出して、紙文書を入力処理した後にこの入力処理された画像情報の送信を要求する旨のメッセージを送信する（ステップＳ１７０８）。そして、入力画像オブジェクト１３１４Ａは、入力処理された画像情報に対応するユーザ画像オブジェクト１３０３Ａを生成し、作成（）１３０３ａを呼び出して、ユーザ画像の実体の生成を開始する（ステップＳ１７０９）。
【０２１３】
そして、文書処理部（実行系サブシステム２０３）は、紙文書を入力処理した画像情報を入力画像オブジェクト１３１４Ａにメッセージとして送信する（ステップＳ１７１０）。次に、入力画像オブジェクト１３１４Ａは、受信した画像情報をユーザ画像オブジェクト１３０３Ａに画像情報設定をメッセージとして送信する（ステップＳ１７１１）。
【０２１４】
そして、文書処理部（実行系サブシステム２０３）が入力処理した画像情報の送信が終了した場合、入力画像オブジェクト１３１４Ａの終了通知（）１３１４ｆを呼び出して、画像処理が終了したことを通知する（ステップＳ１７１２）。そして入力画像オブジェクト１３１４Ａは、画像処理の終了したことを受信した場合、ユーザ画像オブジェクト１３０３Ａに画像情報の送信を全て終了した後に、入力ページオブジェクト１３１２Ａの終了通知（）１３１２ｃを呼び出して、画像の入力処理が終了したことをメッセージ送信する（ステップＳ１７１３）。
【０２１５】
次に、入力ページオブジェクト１３１２Ａは、生成した全ての入力画像オブジェクト１３１４Ａから画像の入力処理が終了したことを受信した場合、入力紙ドキュメントオブジェクト１３１６Ａの終了通知（）１３１１ｉを呼び出して、ページの入力処理が終了したことをメッセージとして送信する（ステップＳ１７１４）。
【０２１６】
そして、入力紙ドキュメントオブジェクト１３１６Ａは、ページの入力処理が終了したと判断した場合、次原稿有無確認（）１３１６ｃを呼び出して、次原稿が存在するか否か確認を開始する（ステップＳ１７１５）。
【０２１７】
次に、入力紙ドキュメントオブジェクト１３１６Ａは、操作系サブシステム２０１に対して次の原稿があるかどうか確認を行う（ステップＳ１７１６）。そして、ドキュメントの処理を要求する人が、次原稿を設定するか否かにより次の処理が異なる。
【０２１８】
ドキュメントの処理を要求する人が、次原稿を設定した場合、操作系サブシステム２０１から、次原稿有りというメッセージが送信される（ステップＳ１７１７）。そして入力紙ドキュメントオブジェクト１３１６Ａが、次原稿有りというメッセージを受信した場合、ステップＳ１７０４からステップＳ１７１６までの処理を繰り返すことになる。
【０２１９】
また、ドキュメントの処理を要求する人が、次原稿を設定せずにログアウトした場合、操作系サブシステム２０１から、次原稿無しというメッセージが送信される（ステップＳ１７１８）。そして、入力紙ドキュメントオブジェクト１３１６Ａが、次原稿無しというメッセージを受信した場合、ユーザドキュメントオブジェクト１３０２Ａの終了通知（）１３０２ｂを呼び出して、入力処理が終了した旨のメッセージを送信する（ステップＳ１７１９）。
【０２２０】
そして、ユーザドキュメントオブジェクト１３０２Ａは、入力処理が終了したと判断して出力処理を開始する。
【０２２１】
図１８は、ドキュメント操作スケジューラオブジェクト１３０１Ａが、文書処理の新規リクエストを受け付けた際に、原稿ハンドリングモードがＡＤＦモードで入力処理を行う場合のドキュメント操作スケジューラクラス１３０１、ユーザドキュメントクラス１３０２、入力紙ドキュメントクラス１３１６、入力ページクラス１３１２、入力レイアウトクラス１３１３、入力画像クラス１３１４及びユーザ画像クラス１３０３のオブジェクトと、オブジェクト間のメッセージの流れを示したＵＭＬコラボレーション図である。
【０２２２】
本図に示されたＡＤＦモードにおける入力処理は、図１７のステップＳ１７０１〜Ｓ１７１５と同様にして、リクエストされた文書処理を行うために、文書入力処理部（実行系サブシステム２０３）から紙文書を入力処理した画像情報をユーザ画像オブジェクト１３０３Ａに送信して終了通知を送信し、さらに次原稿有無確認（）１３１６ｃを呼び出して、次の原稿があるか否か確認の要求を送信する（ステップＳ１８０１〜Ｓ１８１５）。
【０２２３】
そして、実行系サブシステム２０３のデバイス情報管理部は、ステップＳ１８１５の次原稿有無確認（）１３１６ｃと非同期で自動原稿送り装置を制御して次の原稿があるか否か確認している。次の原稿がある場合、デバイス情報管理部が入力紙ドキュメントオブジェクト１３１６Ａに対して、次原稿有りというメッセージを送信する（ステップＳ１８１６）。これは非同期であるため、次原稿有無確認（）１３１６ｃが呼び出される前に送信されている。これにより、入力紙ドキュメントオブジェクト１３１６Ａが、次の原稿があるか否か確認の要求を受信した際、デバイス情報管理部から次原稿有りというメッセージを受信していれば、ステップＳ１８０４からステップＳ１８１５までの処理を繰り返すことになる。
【０２２４】
また、次の原稿がない場合、デバイス情報管理部が入力紙ドキュメントオブジェクト１３１６Ａに対して、次原稿無しというメッセージを送信する（ステップＳ１８１７）。これにより、入力紙ドキュメントオブジェクト１３１６Ａが、次原稿があるか否か確認の要求を受信した際、デバイス情報管理部から次原稿無しというメッセージを受信していれば、ユーザドキュメントオブジェクト１３０２Ａに入力処理が終了した旨のメッセージを送信して終了する（ステップＳ１８１８）。そして、ユーザドキュメントオブジェクト１３０２Ａは、入力処理が終了したと判断して出力処理を開始する。
【０２２５】
図１９は、ドキュメント操作スケジューラオブジェクト１３０１Ａが、入力処理が終了した後にローカルストレージ上に出力処理を行う場合のドキュメント操作スケジューラクラス１３０１、ユーザドキュメントクラス１３０２、出力ＬＳドキュメントクラス１３２７、出力ページクラス１３２２、出力レイアウトクラス１３２３、出力画像クラス１３２４及びユーザ画像クラス１３０３のオブジェクトと、オブジェクト間のメッセージの流れを示したＵＭＬコラボレーション図である。
【０２２６】
まず、ユーザドキュメントオブジェクト１３０２Ａは、出力先に応じた出力ドキュメントクラス１３２１のサブクラスを生成する。なお、本図に示す例としては、出力先がローカルストレージの場合とし、生成されるオブジェクトは、出力ドキュメントクラス１３２１のサブクラスである出力ＬＳドキュメントオブジェクト１３２７Ａとする。
【０２２７】
そして、ユーザドキュメントオブジェクト１３０２Ａは、生成された出力ＬＳドキュメントオブジェクト１３２７Ａの出力開始（）１３２１ｅを呼び出して電子文書の出力処理を開始するメッセージを送信する（ステップＳ１９０１）。
【０２２８】
出力ＬＳドキュメントオブジェクト１３２７Ａは、要求に応じて実行制御部２１３を通じて実行系サブシステム２０３の蓄積文書管理部に対して文書の登録を要求する（ステップＳ１９０２）。そして蓄積文書管理部は、サービス層の蓄積制御部１０２ｃを通じて電子文書を登録する。
【０２２９】
次に、出力ＬＳドキュメントオブジェクト１３２７Ａは、実行系サブシステム２０３の蓄積文書管理部に対してページの追加を要求する（ステップＳ１９０３）。具体的には出力処理するページ数分の容量を確保するように要求をする。なお、出力処理するページ数は、入力処理したページ数と、「２ in １」などの利用者が入力した設定から割り出すことが出来る。
【０２３０】
次に、出力ＬＳドキュメントオブジェクト１３２７Ａは、出力処理するページ毎に出力ページオブジェクト１３２２Ａを生成し、生成された出力ページオブジェクト１３２２Ａの出力開始（）１３２２ｂを呼び出して、ページ毎の出力処理の開始を要求するメッセージを送信する（ステップＳ１９０４）。
【０２３１】
次に、出力ページオブジェクト１３２２Ａは、ページの出力処理を開始し、まず出力レイアウトオブジェクト１３２３Ａを生成し、生成された出力レイアウトオブジェクト１３２３Ａのレイアウト作成（）１３２３ｅを呼び出して、ユーザにより出力された設定に基づいて、生成された出力レイアウトオブジェクト１３２３Ａの属性を設定する（ステップＳ１９０５）。そして、出力レイアウトオブジェクト１３２３Ａは、ページ毎に定められる出力画像の配置及び数等のレイアウトに関する情報を、出力ページオブジェクト１３２２Ａにメッセージとして送信する（ステップＳ１９０６）。
【０２３２】
そして、出力ページオブジェクト１３２２Ａは、出力レイアウトオブジェクト１３２３Ａにより定められた出力ページ毎の出力画像の数だけ、出力画像オブジェクト１３２４Ａを生成し、生成された出力画像オブジェクト１３２４Ａの出力開始（）１３２４ｅを呼び出して、出力画像オブジェクト１３２４Ａに出力画像の出力処理の開始を要求するメッセージを送信する（ステップＳ１９０７）。
【０２３３】
次に、出力画像オブジェクト１３２４Ａは、ユーザ画像オブジェクト１３０３Ａの利用（）１３０３ｂを呼び出して、入力処理で作成されたユーザ画像を利用する（ステップＳ１９０８）。
【０２３４】
そして、ユーザ画像オブジェクト１３０３Ａは、出力画像に適した画像変換仕様を用いて画像情報を変換し、出力画像オブジェクト１３２４Ａに利用可能である旨のメッセージを送信する（ステップＳ１９０９）。その後、さらにユーザ画像オブジェクト１３０３Ａは、画像情報を送信する。
【０２３５】
次に、出力画像オブジェクト１３２４Ａは、受信した画像情報を、実行系サブシステム２０３の画像処理部に出力する（ステップＳ１９１０）。そして、画像処理部は画像情報の受信が終了した後、出力画像オブジェクト１３２４Ａの終了通知（）１３２４ｆを呼び出して、画像処理が終了した旨を示すメッセージを送信する（ステップＳ１９１１）。
【０２３６】
そして、出力画像オブジェクト１３２４Ａは、ユーザ画像オブジェクト１３０３Ａに利用が終了した旨を示すメッセージを送信する（ステップＳ１９１２）。次に、出力画像オブジェクト１３２４Ａは、出力ページオブジェクト１３２２Ａの終了通知（）１３２２ｃを呼び出して、画像の出力処理が終了したことをメッセージ送信する（ステップＳ１９１３）。
【０２３７】
次に、出力ページオブジェクト１３２２Ａは、生成した全ての出力画像オブジェクト１３２４Ａから画像の出力処理が終了したことを受信した場合、出力ＬＳドキュメントオブジェクト１３２７Ａの終了通知（）１３２１ｉを呼び出して、ページの出力処理が終了したことをメッセージ送信する（ステップＳ１９１４）。
【０２３８】
そして、ステップＳ１９０４〜Ｓ１９１４までの処理を出力処理するページ毎に繰り返し実行する。
【０２３９】
出力処理する全てのページに対してステップＳ１９０４〜Ｓ１９１４までの処理が終了した場合、出力ＬＳドキュメントオブジェクト１３２７Ａは、蓄積文書管理部に対して終了通知を行う（ステップＳ１９１５）。これにより、蓄積文書管理部は、出力処理した全ての画像を含んだ電子文書の書き込みを終了させる。
【０２４０】
次に出力ＬＳドキュメントオブジェクト１３２７Ａは、ユーザドキュメントオブジェクト１３０２Ａの終了通知（）１３０２ｂを呼び出して出力処理を終了する（ステップＳ１９１６）。
【０２４１】
上述した図１７、図１８及び図１９のコラボレーション図で示したように、本実施の形態では、文書処理を行うにあたり、ドキュメント操作スケジューラクラス１３０１と、入力ドキュメントクラス１３１１及びこのサブクラスと、入力ページクラス１３１２と、入力レイアウトクラス１３１３と、入力画像クラス１３１４と、出力ドキュメントクラス１３２１とこのサブクラスと、出力ページクラス１３２２と、出力画像クラス１３２４と、出力レイアウトクラス１３２３と、ユーザ画像クラス１３０３とから構成され、各クラスから生成されたオブジェクトで文書の入力処理及び出力処理を行うことで文書処理が可能となる。そして画像毎に文書処理を可能とするため加工処理が容易になる。また、オブジェクト指向設計により、かかるドキュメントハンドリング部２１２の仕組みを構築し、図７で示したような概念に基づいてオブジェクトモデリングをおこない、文書処理に必要なクラスとして上述したクラスを用いることで、かかるドキュメントハンドリング部２１２を実現したので、ソフトウェア開発者やソフトウェア保守要員が、ドキュメントハンドリング部２１２の構成と役割を容易に把握することができるとともに、汎用性及び信頼性の高い文書処理をおこなうことができる。
【０２４２】
なお、本実施の形態の画像形成装置で実行される文書処理プログラムは、インストール
可能な形式または実行可能な形式のファイルでＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ（CD Recordable）、ＤＶＤ（Digital Versatile Disk）などのコンピュータで読み取り可能な記録媒体に記録して提供するよう構成してもよい。この場合、ＣＰＵ１１が上記記憶媒体から、文書処理プログラムを読み出してＭＥＭ−Ｐ１２上にロードすることで、画像形成装置に、上述した各ステップ、各手段または各部を実現させる。
【０２４３】
また、文書処理プログラムを、インターネットなどのネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するよう構成してもよい。さらに、かかる文書処理プログラムをインターネットなどのネットワーク経由で提供または配布するようにしてもよい。
【０２４４】
上述した構成は、本発明の文書処理装置、画像形成装置及び文書処理プログラムの一例を示したものであり、上述した構成に制限するものではない。
【０２４５】
また、本実施の形態を、ドキュメントを「紙」ドキュメント、「ネット」ドキュメント及び「ＬＳ」ドキュメントに制限するものではなく、光あるいは磁気（ＣＤ−ＲＯＭ／ＲＡＭ、ＤＶＤ―ＲＯＭ／ＲＡＭ、磁気テープ、フロッピーディスク、スマートカード）、赤外線（ＩｒＤＡ等）、音声などでも良い。
【０２４６】
本実施の形態のドキュメントハンドリング部２１２は、文書を保持する構成として、ドキュメントをページ毎に分割し、さらにページにレイアウトを設定し、レイアウトに応じて画像を分割した構成で文書データを保持するため、柔軟に配置の変更等を行うことが可能になったので、利用者の要求に応じた加工処理が容易になる。
【０２４７】
そして、本実施の形態のドキュメントハンドリング部２１２は、オブジェクト毎に分割して設計し、上述した構成を備えることとした。これによりプログラムの変更が生じた場合そのクラス等のみ変更を加えればよい。このため従来は機能が拡張されると設計者の作業量もこれに比例していたが、上述した構成を備えたことで作業量が低減される。
【０２４８】
また、従来の文書処理を行う部分は、アプリケーション毎に設計されていたが、上述した構成を備えたことでアプリケーション毎という概念が無くなったため、設計の効率が向上した。また、アプリケーション毎に文書処理を行う場合では、出力先毎に同じ設定を行ったにもかかわらず、アプリケーション毎の処理の違いにより、出力先毎にレイアウトが異なる（より詳細な例としてはヘッダまたはフッタの間隔が異なる）文書が出力されるという問題があった。しかし、本実施の形態にかかるドキュメントハンドリング部２１２は、上述した構成を備えることでアプリケーション毎に処理を行うという概念が無くなったため、異なるレイアウトの文書が出力されるという問題を解消し、信頼性が向上した。
【０２４９】
上述した構成を備えることで、入力元あるいは出力先が増加した場合、従来はアプリケーション毎に入力先あるいは出力先に関する機能を追加する必要があったが、本発明により入力元あるいは出力先に相当する入力ドキュメントクラス１３１１あるいは出力ドキュメントクラス１３２１のサブクラスを追加するだけで機能の拡張が可能となる。これにより新機能追加した場合の作業量が低減することとなる。
【産業上の利用可能性】
【０２５０】
以上のように、本発明にかかる文書処理装置、画像形成装置及び文書処理プログラムは、文書処理に有用であり、特に、入出力処理を行う際の文書データの構成を定めることで処理手順を共通化する技術に適している。
【図面の簡単な説明】
【０２５１】
【図１】実施の形態に係る複合機を取り巻くネットワーク環境を説明するためのネットワーク図である。
【図２】実施の形態に係る複合機のハードウェア構成を示すブロック図である。
【図３】実施の形態に係る複合機のソフトウェアとハードウェアの関係を説明するための概念図である。
【図４】実施の形態に係る複合機の操作パネルの一例を示した図である。
【図５】実施の形態に係る複合機の統合アプリケーションの内部構成、及び統合アプリケーション内におけるドキュメントハンドリング部の位置を示す説明図である。
【図６】実施の形態に係る複合機のドキュメントハンドリング部と、この外部に備えられた構成を示したコンテキストダイアグラムを示した図である。
【図７】実施の形態に係る複合機の統合アプリケーションの内部構成として示した各サブシステムについてのＵＭＬクラス図である。
【図８】複合機が備えたドキュメントハンドリング部で行われる処理の概念を示した概念図である。
【図９】ドキュメントの構成の概念を示した概念図である。
【図１０】オブジェクトモデリングにより設計されたドキュメントのクラス構成をＵＭＬのクラスで示した図である。
【図１１】ドキュメントハンドリング部に対して課せられている基本機能やサービス項目などの要件定義を表現するユースケース図である。
【図１２】本実施の形態に係る文書処理で用いられる入力ドキュメントからユーザドキュメント、そして出力ドキュメントまでの構成の変化を示した説明図である。
【図１３】オブジェクトモデリングにより設計されたドキュメントハンドリング部のクラス構成をＵＭＬのクラスで示した図である。
【図１４】ドキュメントハンドリング部が備えた入力ドキュメントクラスが呼び出された操作により変更される状態を示した状態図である。
【図１５】ドキュメントハンドリング部が備えた出力ドキュメントクラスが呼び出された操作により変更される状態を示した状態図である。
【図１６】実施の形態に係るドキュメントハンドリング部において「２ in １」の入力ドキュメントから「４ in １」の出力ドキュメントを生成するまでの工程を示した説明図である。
【図１７】ドキュメント操作スケジューラオブジェクトが、文書処理の新規リクエストを受け付けた際に、原稿ハンドリングモードが圧板モードで入力処理を行う場合のドキュメント操作スケジューラクラス、ユーザドキュメントクラス、入力紙ドキュメントクラス、入力ページクラス、入力レイアウトクラス、入力画像クラス、ユーザ画像クラスのオブジェクト、オブジェクト間のメッセージの流れを表現したＵＭＬのコラボレーション図である。
【図１８】ドキュメント操作スケジューラオブジェクトが、文書処理の新規リクエストを受け付けた際に、原稿ハンドリングモードがＡＤＦモードで入力処理を行う場合のドキュメント操作スケジューラクラス、ユーザドキュメントクラス、入力紙ドキュメントクラス、入力ページクラス、入力レイアウトクラス、入力画像クラス及びユーザ画像クラスのオブジェクトと、オブジェクト間のメッセージの流れを示したＵＭＬコラボレーション図である。
【図１９】ドキュメント操作スケジューラオブジェクトが、入力処理が終了した後にローカルストレージ上に出力処理を行う場合のドキュメント操作スケジューラクラス、ユーザドキュメントクラス、出力ＬＳドキュメントクラス、出力ページクラス、出力レイアウトクラス、出力画像クラス及びユーザ画像クラスのオブジェクトと、オブジェクト間のメッセージの流れを示したＵＭＬコラボレーション図である。
【図２０】従来の複合機においてアプリケーション毎に有するジョブの種類を示した説明図である。
【図２１】従来の複合機においてアプリケーション毎に備えられたジョブを入力と出力により分類した説明図である。
【図２２】複合機に搭載されるソフトウェア構成の変遷を説明するための説明図である。
【図２３】従来の複合機のソフトウェアとハードウェアの関係を説明するための説明図である。
【符号の説明】
【０２５２】
１  複合機
１０  コントローラ
１１  ＣＰＵ
１２  システムメモリ（ＭＥＭ−Ｐ）
１２ａ  ＲＯＭ
１２ｂ  ＲＡＭ
１３  ノースブリッジ（ＮＢ）
１４  サウスブリッジ（ＳＢ）
１５  ＡＧＰバス
１６  ＡＳＩＣ
１７  ローカルメモリ（ＭＥＭ−Ｃ）
１８  ハードディスクドライブ（ＨＤＤ）
２０  キーボード
３０  ＦＣＵ
４０  ＵＳＢ
５０  ＩＥＥＥ１３９４インターフェース
６０  エンジン部
１００、１００Ａ  ソフトウェア
１０１、１０１Ａ  アプリケーション層
１０２  サービス層
１０２ａ  スキャナ制御部
１０２ｂ  プロッタ制御部
１０２ｃ  蓄積制御部
１０２ｄ  配信／メール送受信制御部
１０２ｅ  ＦＡＸ送受信制御部
１０２ｆ  ネットワーク通信制御部
１０２ｇ  その他の制御部
１０３  オペレーティングシステム
１１０  統合アプリケーション
１２１  コピーアプリケーション
１２２  スキャナアプリケーション
１２３  ファックスアプリケーション
１２４  プリンタアプリケーション
１５０  ハードウェア
１５１  ハードウェアリソース
１５１ａ  スキャナ
１５１ｂ  プロッタ
１５１ｃ  ＨＤＤ
１５１ｄ  ネットワーク
１５１ｅ  その他のリソース
２０１  操作系サブシステム
２０２  管理系サブシステム
２０３  実行系サブシステム
２１１  リクエスト管理部
２１２  ドキュメントハンドリング部
２１３  実行制御部
４００  操作パネル
４０１  初期設定キー
４０２  コピーキー
４０３  コピーサーバーキー
４０４  プリンタキー
４０５  送信キー
４０６  テンキー
４０７  クリア／ストップキー
４０８  スタートキー
４０９  予熱キー
４１０  リセットキー
４２０  液晶タッチパネル
１００１  ドキュメントクラス
１００１ａ  状態
１００１ｂ  文書種類
１００１ｃ  文書名
１００１ｄ  ページ数
１００１Ａ  ドキュメントオブジェクト
１００２  ページクラス
１００２ａ  ページ番号
１００２Ａ  ページオブジェクト
１００３  レイアウトクラス
１００３ａ  仕切り線種類
１００３ｂ  とじしろ幅
１００３ｃ  枠消去幅
１００３ｄ  並べ順
１００３Ａ  レイアウトオブジェクト
１００４  画像クラス
１００４ａ  解像度
１００４ｂ  濃度
１００４ｃ  カラー
１００４ｄ  網掛け
１００４Ａ  画像オブジェクト
１３０１  ドキュメント操作スケジューラクラス
１３０１ａ  ドキュメント登録（）
１３０１Ａ  ドキュメント操作スケジューラオブジェクト
１３０２  ユーザドキュメントクラス
１３０２ａ  文書処理開始（）
１３０２ｂ  終了通知（）
１３０２Ａ  ユーザドキュメントオブジェクト
１３０３  ユーザ画像クラス
１３０３ａ  作成（）
１３０３ｂ  利用（）
１３０３Ａ  ユーザ画像オブジェクト
１３１１  入力ドキュメントクラス
１３１１ａ  状態
１３１１ｂ  文書種類
１３１１ｃ  文書名
１３１１ｄ  ページ数
１３１１ｅ  入力開始（）
１３１１ｆ  入力中断（）
１３１１ｇ  入力取消（）
１３１１ｈ  入力継続（）
１３１１ｉ  終了通知（）
１３１１Ａ  入力ドキュメントオブジェクト
１３１２  入力ページクラス
１３１２ａ  ページ番号
１３１２ｂ  入力開始（）
１３１２ｃ  終了通知（）
１３１２Ａ  入力ページオブジェクト
１３１３  入力レイアウトクラス
１３１３ａ  線種類
１３１３ｂ  とじしろ幅
１３１３ｃ  枠消去幅
１３１３ｄ  並べ順
１３１３ｅ  レイアウト作成（）
１３１３Ａ  入力レイアウトオブジェクト
１３１４  入力画像クラス
１３１４ａ  解像度
１３１４ｂ  濃度
１３１４ｃ  カラー
１３１４ｄ  網掛け
１３１４ｅ  入力開始（）
１３１４Ａ  入力画像オブジェクト
１３１５  入力ネットドキュメントクラス
１３１５Ａ  入力ネットドキュメントオブジェクト
１３１６  入力紙ドキュメントクラス
１３１６ａ  用紙枚数
１３１６ｂ  原稿ハンドリングモード
１３１６ｃ  次原稿有無確認（）
１３１６Ａ  入力紙ドキュメントオブジェクト
１３１７  入力ＬＳドキュメントクラス
１３１７Ａ  入力ＬＳドキュメントオブジェクト
１３２１  出力ドキュメントクラス
１３２１ａ  状態
１３２１ｂ  文書種類
１３２１ｃ  文書名
１３２１ｄ  ページ数
１３２１ｅ  出力開始（）
１３２１ｆ  出力中断（）
１３２１ｇ  出力継続（）
１３２１ｈ  出力取消（）
１３２１ｉ  終了通知（）
１３２１Ａ  出力ドキュメントオブジェクト
１３２２  出力ページクラス
１３２２ａ  ページ番号
１３２２ｂ  出力開始（）
１３２２ｃ  終了通知（）
１３２２Ａ  出力ページオブジェクト
１３２３  出力レイアウトクラス
１３２３ａ  仕切り線種類
１３２３ｂ  とじしろ幅
１３２３ｃ  枠消去線
１３２３ｄ  並べ順
１３２３ｅ  レイアウト作成（）
１３２３Ａ  出力レイアウトオブジェクト
１３２４  出力画像クラス
１３２４ａ  解像度
１３２４ｂ  濃度
１３２４ｃ  カラー
１３２４Ａ  出力画像オブジェクト
１３２５  出力ネットドキュメントクラス
１３２５Ａ  出力ネットドキュメントオブジェクト
１３２６  出力紙ドキュメントクラス
１３２６Ａ  出力紙ドキュメントオブジェクト
１３２７  出力ＬＳドキュメントクラス
１３２７Ａ  出力ＬＳドキュメントクラス
２２０１  サービス層分離前アプリケーション
２２０２  サービス層分離後アプリケーション
２２０３  共通ルーチン分離アプリケーション
２２０４  オブジェクト指向アプリケーション
【図１】
2006229582.tif 000003
【図２】
2006229582.tif 000004
【図３】
2006229582.tif 000005
【図４】
2006229582.tif 000006
【図５】
2006229582.tif 000007
【図６】
2006229582.tif 000008
【図７】
2006229582.tif 000009
【図８】
2006229582.tif 000010
【図９】
2006229582.tif 000011
【図１０】
2006229582.tif 000012
【図１１】
2006229582.tif 000013
【図１２】
2006229582.tif 000014
【図１３】
2006229582.tif 000015
【図１４】
2006229582.tif 000016
【図１５】
2006229582.tif 000017
【図１６】
2006229582.tif 000018
【図１７】
2006229582.tif 000019
【図１８】
2006229582.tif 000020
【図１９】
2006229582.tif 000021
【図２０】
2006229582.tif 000022
【図２１】
2006229582.tif 000023
【図２２】
2006229582.tif 000024
【図２３】
2006229582.tif 000025