以下に添付図面を参照して、この発明にかかる文書処理装置、画像形成装置及び文書処理プログラムの最良な実施の形態を詳細に説明する。なお、本実施の形態では、この発明を画像形成装置に適用した場合について説明するが、本発明はこれに限らず、複数の入出力手段から文書を入出力する際に加工処理を行う各種装置に適用することができる。
(第1の実施の形態)
まず、本発明の第1の実施の形態に係る画像形成装置(以下「複合機」と言う)1の概要について図1、図2、図3を用いて説明する。図1は、本実施の形態に係る複合機1を取り巻くネットワーク環境を説明するためのネットワーク図であり、図2は、図1に示した複合機1のハードウェア構成を示すブロック図であり、図3は、図1に示した複合機1のソフトウェアとハードウェアの関係を説明するための概念図である。
図1に示すように、近年のネットワーク化の進展により、オフィスなどに設けられたPC(Personal Computer)などの機器は、LAN(Local Area Network)などのネットワ
ークに接続され、相互に通信することが通常となった。たとえば、本図に示したように、かかるネットワークには、クライアントPC、SMTP(Simple Mail Transfer Protocol)サーバ、FTP(File Transfer Protocol)サーバ、サーバPCなどが接続され、電
子メールの送受信やファイル転送をすることができ、モデム接続された配信サーバは、オフィス外のファックス装置と通信することができる。
このようなネットワーク化の進展に伴い、複合機1もかかるネットワークに接続され、PC等の機器と相互に通信することが可能となり、ハードディスク等の記憶装置を内蔵することで、いわゆるネットワーク複合機へと進化し、ユーザの様々なニーズに応えること
ができるようになった。
具体的には、複合機1は、通常のコピー機能に加えて、クライアントPCからの印刷要求により文書データ等を印刷するプリンタ機能、クライアントPCからのファックス要求により文書データ等をサーバPCに接続されたモデムを経由して他のオフィスのファックス機器に送信するファックス機能、受信したファックス文書やコピー文書を内蔵したハードディスクに蓄積する蓄積機能などを有している。このような多くの機能を実現するために、従来からの複合機に搭載されるソフトウェアは規模が大きくなり、かつ複雑なものとなる。それにともない、それらのソフトウェアの開発と維持管理のための工数も大幅に増大している。そこで本実施の形態にかかる複合機1に搭載されるソフトウェアでは、開発と維持管理のための工数を減少させる。なお、複合機1に搭載されるソフトウェアの構成については後述する。
図2は、かかる複合機1のハードウェア構成を示すブロック図である。本図に示すように、この複合機1は、コントローラ10とエンジン部(Engine)60とをPCI(Peripheral Component Interconnect)バスで接続した構成となる。コントローラ10は、複合
機1全体の制御と描画、通信、図示しない操作部からの入力を制御するコントローラである。エンジン部60は、PCIバスに接続可能なプリンタエンジンなどであり、たとえば白黒プロッタ、1ドラムカラープロッタ、4ドラムカラープロッタ、スキャナまたはファックスユニットなどである。なお、このエンジン部60には、プロッタなどのいわゆるエンジン部分に加えて、誤差拡散やガンマ文書データなどの画像処理部分が含まれる。
コントローラ10は、CPU11と、ノースブリッジ(NB)13と、システムメモリ(MEM−P)12と、サウスブリッジ(SB)14と、ローカルメモリ(MEM−C)17と、ASIC(Application Specific Integrated Circuit)16と、ハードディス
クドライブ(HDD)18とを有し、ノースブリッジ(NB)13とASIC16との間をAGP(Accelerated Graphics Port)バス15で接続した構成となる。また、MEM
−P12は、ROM(Read Only Memory)12aと、RAM(Random Access Memory)12bとをさらに有する。
CPU11は、複合機1の全体制御をおこなうものであり、NB13、MEM−P12およびSB14からなるチップセットを有し、このチップセットを介して他の機器と接続される。
NB13は、CPU11とMEM−P12、SB14、AGP15とを接続するためのブリッジであり、MEM−P12に対する読み書きなどを制御するメモリコントローラと、PCIマスタおよびAGPターゲットとを有する。
MEM−P12は、プログラムやデータの格納用メモリ、プログラムやデータの展開用メモリ、プリンタの描画用メモリなどとして用いるシステムメモリであり、ROM12aとRAM12bとからなる。ROM12aは、プログラムやデータの格納用メモリとして用いる読み出し専用のメモリであり、RAM12bは、プログラムやデータの展開用メモリ、プリンタの描画用メモリなどとして用いる書き込みおよび読み出し可能なメモリである。
SB14は、NB13とPCIデバイス、周辺デバイスとを接続するためのブリッジである。このSB14は、PCIバスを介してNB13と接続されており、このPCIバスには、ネットワークインターフェース(I/F)部なども接続される。
ASIC16は、画像処理用のハードウェア要素を有する画像処理用途向けのIC(In
tegrated Circuit)であり、AGP15、PCIバス、HDD18およびMEM−C17をそれぞれ接続するブリッジの役割を有する。このASIC16は、PCIターゲットおよびAGPマスタと、ASIC16の中核をなすアービタ(ARB)と、MEM−C17を制御するメモリコントローラと、ハードウェアロジックなどにより画像データの回転などをおこなう複数のDMAC(Direct Memory Access Controller)と、エンジン部60
との間でPCIバスを介したデータ転送をおこなうPCIユニットとからなる。このASIC16には、PCIバスを介してFCU(Fax Control Unit)30、USB(Universal Serial Bus)40、IEEE1394(the Institute of Electrical and Electronics Engineers 1394)インターフェース50が接続される。
MEM−C17は、コピー用画像バッファ、符号バッファとして用いるローカルメモリであり、HDD(Hard Disk Drive)18は、画像データの蓄積、プログラムの蓄積、フ
ォントデータの蓄積、フォームの蓄積を行うためのストレージである。
AGP15は、グラフィック処理を高速化するために提案されたグラフィックスアクセラレーターカード用のバスインターフェースであり、MEM−P12に高スループットで直接アクセスすることにより、グラフィックスアクセラレーターカードを高速にするものである。
図3は、かかる複合機1のハードウェアおよびソフトウェアの構成を示した概念図であり、具体的には、後述する本実施の形態の特徴部分であるドキュメントハンドリング部212を含む統合アプリケーション110と、ソフトウェア100およびハードウェア150の階層関係を示している。本図に示すように、ハードウェア150は、ハードウェアリソース151を有し、このハードウェアリソース151は、スキャナ151a、プロッタ151b、HDD(Hard Disk Drive)151c、ネットワーク151dおよびその他の
リソース151eを有する。なお、その他のリソース151eは、151a〜151d以外のハードウェアリソース151のことであり、たとえば、操作パネルなどの入出力デバイスを示す。
図4は、複合機1の操作パネル400の一例を示した図である。本図に示したように、かかる操作パネル400は、初期設定キー401、コピーキー402、コピーサーバーキー403、プリンタキー404、送信キー405、テンキー406、クリア/ストップキー407、スタートキー408、予熱キー409、リセットキー410および液晶タッチパネル420を有する。このような構成を有する操作パネル400でユーザが所定の操作を行った場合に、統合アプリケーション110に含まれている本実施の形態の特徴である各クラスを実体化したオブジェクトが動作する。
例えば、初期設定キー401をタッチすると、液晶タッチパネル420に初期設定用のメニューが表示され、かかるメニューにおいては、収納される用紙サイズなどを設定することができる。また、コピーをしたい場合にはコピーキー402を、コピー結果を複合機1に蓄積したい場合にはコピーサーバーキー403を、プリンタに係る操作をおこないたい場合には、プリンタキー404を、ファックスや蓄積画像などの送信をしたい場合には送信キー405を、それぞれタッチすると、液晶タッチパネル420に対応したメニューが表示される。
図3に戻り、かかるハードウェア150に搭載されるソフトウェア100は階層化されており、オペレーティングシステム103の上層にはサービス層102が構築され、このサービス層102の上層にはアプリケーション層101が構築されている。そして、サービス層102は、各ハードウェアリソース(151a〜151e)を制御するドライバーに相当する、スキャナ制御部102a、プロッタ制御部102b、蓄積制御部102c、
配信/メール送受信制御部102d、FAX送受信制御部102e、ネットワーク通信制御部102fおよびその他の制御部102gを有する。
ここで、図3に示したソフトウェア100が、かかる階層構造をとるに至った経緯について、図22および図23を用いて説明する。図22は、複合機に搭載されるソフトウェア構成の変遷を示す説明図である。図22のサービス層分離前アプリケーション2201に示すように、多機能化した複合機に搭載されるソフトウェアは、コピーアプリケーション、FAXアプリケーション、スキャナアプリケーションなどの機能別に独立したアプリケーションとして作成され、図3に示したオペレーティングシステム103上で動作していた。
しかしながら、これらのアプリケーションは、ハードウェアリソースを制御するドライバー(サービス層102)を含んでいたため、各アプリケーションには重複した処理が存在していた。その結果、各アプリケーションの規模は大きなものとなっていた。
そこで、図22のサービス層分離後アプリケーション2202に示すように、サービス層分離前アプリケーション2201のサービス層相当部分を括りだしてサービス層102にするとともに、各アプリケーションは、このサービス層102の上層であるアプリケーション層101に構築する構成とした。かかる階層化構成をとることで、各アプリケーションはスリム化され開発労力も軽減された。
しかしながら、複合機のネットワーク化、多機能化がさらに進展するに従って、各アプリケーションに共通処理部分が存在することが問題となってきた。具体的には、アプリケーション層101の各アプリケーション、たとえば、コピーアプリケーションやスキャナアプリケーションなどは、それぞれ、スキャナ制御部102aや蓄積制御部102cといったドライバーと通信をおこなう処理や、各種機能が取り扱うデータの流れを制御するストリーム制御などの同様な処理を内部に有していた。このように、同様な処理を各アプリケーションが有していると、各アプリケーションの開発規模が大きくなるとともに、サービス層の仕様変更に対する各アプリケーションの改修規模が大きくなることが問題となってきた。
この問題を解決するため、図22の共通ルーチン分離アプリケーション2203に示すように、かかる同様な処理(共通処理部分)を共通ルーチンとして括りだすことも考えられた。しかしながら、かかる共通ルーチンは、各アプリケーションにおいて微妙に異なる処理を共通化しようとするものであるため、共通ルーチン内部の処理は複雑なものとなってしまう。また、たとえば、プリンタアプリケーションなどの新規アプリケーションを追加する場合においては、かかる新規アプリケーションに適応するために、共通ルーチンの改修が必要となる。
しかし、共通ルーチンの内部処理は複雑であるため、改修要員が処理を把握することが困難となり、改修規模の増大や、改修ミスによる他のアプリケーションへの影響が懸念された。
そこで、図22のオブジェクト指向アプリケーション2204に示すように、オブジェクト指向による設計手法(オブジェクトモデリング)により、かかる複数のアプリケーションを、統合アプリケーション110に統合することとした。具体的には、各アプリケーションの共通処理部分をオブジェクトモデルとして抽出し、このオブジェクトモデルの集合体から、統合アプリケーション110を構成する。そして、従来のコピー機能やスキャナ機能といった機能は、かかるオブジェクトモデルの協調関係によって実現する。
このような構成をとることにより、たとえばプリンタ機能のような新規機能の追加は、かかるオブジェクトモデルに属するクラスのサブクラス化などにより対処できる。このため、改修部分が明確となり、改修による他の機能への影響を小さくすることができる。また、オブジェクトモデリングによるプログラムは、従来の手続き型プログラムに比べて、処理の把握が容易であるため、改修要員が処理を把握することも容易となり、改修規模の削減や、改修ミスによる他のアプリケーションへの影響を小さくすることができる。
図23は、図22に示したサービス層分離後アプリケーション2202の段階における従来のアプリケーションの構成と、かかるアプリケーションとサービス層102の各ドライバーの関係を示した説明図である。本図に示すように、アプリケーション層101Aは、コピーアプリケーション121、スキャナアプリケーション122、ファックスアプリケーション123およびプリンタアプリケーション124を有する。
たとえば、コピーアプリケーション121は、コピー機能を実現するために、スキャナ制御部102a、プロッタ制御部102b、蓄積制御部102cおよびその他の制御部102gとデータの送受信をおこなう。また、ファックスアプリケーション123は、ファックス機能を実現するために、プロッタ制御部102b、蓄積制御部102c、FAX送受信制御部102e、ネットワーク通信制御部102fおよびその他の制御部102gとデータの送受信をおこなう。このように、アプリケーション層101Aの各アプリケーションとサービス層102の各ドライバー間の通信は、複雑なものとなっていた。
図3に戻り、上述したオブジェクトモデリングにより、アプリケーション層101に存在した複数のアプリケーションは、統合アプリケーション110に統合されている。そして、各アプリケーションが重複しておこなっていた各ドライバーとの通信処理は、統合アプリケーション110を構成する所定のオブジェクトモデルにおこなわせるように構成したことにより、アプリケーション層101のアプリケーションと、サービス層102の各ドライバー間の通信は、図23と比較して単純になっている。
次に、統合アプリケーション110の内部構成について説明する。図5は、統合アプリケーション110の内部構成、及び統合アプリケーション110内における後述する本実施の形態の特徴的部分であるドキュメントハンドリング部212の位置を示す説明図である。本図に示すように、統合アプリケーション110は、操作系サブシステム201と、管理系サブシステム202と、実行系サブシステム203とを有する。
操作系サブシステム201は、マンマシンインタフェースを担当するソフトウェア群である。具体的には、この操作系サブシステム201は、ユーザの要求を受け付ける処理と、この要求の実行を指示する処理と、この要求の実行状況と実行結果についての情報をユーザに提供する処理をおこなう。
管理系サブシステム202は、複合機1の資源を管理するソフトウェア群である。具体的には、この管理系サブシステム202は、ハードウェアリソース151およびこのハードウェアリソース151が保持するデータ状態を管理するサービスをおこなう。
実行系サブシステム203は、ユーザからの要求の実行を担当するソフトウェア群である。例えば実行系サブシステム203は、コピー要求がなされた場合、原稿の読み取りから成果物の出力までの処理をおこなう。
操作系サブシステム201、管理系サブシステム202および実行系サブシステム203は、必要に応じて相互に処理を依頼してその結果を送り合う。このようにそれぞれのサブシステムが協調し合って、統合アプリケーション110全体として複合機1に必要とさ
れるサービスの提供をおこなう。
そして、実行系サブシステム203は、本実施の形態の特徴部分であるドキュメントハンドリング部212、そしてリクエスト管理部211及び実行制御部213を有する。このドキュメントハンドリング部212は、リクエスト管理部211からの文書データの処理の要求を受け付け、実行制御部213に対してスキャナ151aの読み取り制御やHDD151c等のローカルストレージからの読み込み制御あるいはプロッタ151bやローカルストレージ等に出力する制御を要求し、入力元や出力先によらず共通する文書データの処理を行う。
図6は、ドキュメントハンドリング部212と、この外部に備えられた構成を示したコンテキストダイアグラムを示した図である。本図に示すようにドキュメントハンドリング部212は、リクエスト管理部211からのリクエスト要求を受け付けて、実行制御部213を通じてデバイス情報管理、通信制御、ストリーム、紙搬送装制御、ファイル制御を制御することが可能になる。これらを制御することで文書の入力処理又は出力処理をドキュメントハンドリング部212が行うことが出来る。そして、ドキュメントハンドリング部212は、処理の終了、中断などが行われた場合、実行経過又は結果としてリクエスト管理部211に報告する。
図7は、図6に示した各サブシステムを、UML(Unified Modeling Language)のク
ラス図(UMLクラス図)に置き換えた図である。ここで、UMLとは、OMG(Object
Management Group)が仕様を策定しているシステムモデリング言語であり、モデリング
の成果を記述する記法を定義したものである。このUMLは、オブジェクト指向によるソフトウェアの設計において広く用いられている。
図7に示すように、統合アプリケーション110は複数のパッケージを有し、また、この統合アプリケーション110自体もひとつのパッケージとなっている。ここで、パッケージとはUMLモデルの各構成要素(シンボル)をグループ化したものであり、このパッケージは、左上にタブのついたフォルダ型のシンボルで表現される。また、各パッケージを相互に結ぶ直線は、各パッケージ間に処理依頼などの関連があることを示している。
図7に示したように、統合アプリケーション110は、操作系サブシステム201、管理系サブシステム202および実行系サブシステム203の3つのパッケージを内部に有するパッケージである。さらに、実行系サブシステム203は、リクエスト管理部211、ドキュメントハンドリング部212及び実行制御部213のパッケージを内部に有するパッケージである。そして、操作系サブシステム201、管理系サブシステム202および実行系サブシステム203を相互に結ぶ直線は、各パッケージ間にメッセージ送受信などの関連があることを示している。なお、操作系サブシステム201、管理系サブシステム202および実行系サブシステム203のタブの右端に記された記号は、かかるパッケージがサブシステムであることを示すUMLのシンボルである。
そして、本実施の形態の特徴部分であるドキュメントハンドリング部212について詳細に説明する。このドキュメントハンドリング部212は、リクエスト管理部211から文書データを処理するリクエストを受け付けた場合に処理を行う。なお、このドキュメントハンドリング部212は、オブジェクト指向に基づいて設計するにあたって、既存の処理を単純にオブジェクト化せず、機能追加や改修をより一層容易におこなうことができるようにオブジェクトモデルを構成した。かかるオブジェクトモデルの構成を導出するまでの経緯について説明する。
従来、複合機においては図23で示したアプリケーション層101に備えられたコピー
アプリケーション121等の各々アプリケーションが処理を行っていた。図20は、従来の複合機においてアプリケーション毎に有するジョブの種類を示した説明図である。本図に示すように複合機の機能を実現するために担当するアプリケーションが、必要に応じて入力の際には「読み取り」、「FAX受信」、「印刷」、「蓄積」あるいは「FAX送信」などのジョブを実行していた。このような構成の場合、アプリケーション毎に「読み取り」等のジョブを備えている必要がある。つまり、複合機の機能として入力元あるいは出力先が増加するとアプリケーション毎に機能を拡張する必要があった。そこで、処理を共通化させるが、どのようなクラスの構成を生成すれば入出力及び加工処理を共通化させることができるのか問題となる。
図21は、従来の複合機においてアプリケーション毎に備えられたジョブを入力と出力により分類した説明図である。本図に示すように、アプリケーション毎に実行される機能が異なる場合でも入力あるいは出力に用いられるジョブが共通していることが確認できる。このため、機能毎にアプリケーションを備えるという概念を排除し、加工処理を共通化させて、入力元及び出力先だけ選択させるオブジェクトモデルを構成することとした。
図8は、本実施の形態の特徴部分であるドキュメントハンドリング部212で行われる処理の概念を示した概念図である。本図に示すように、入力処理された文書データの入力元が紙文書、電子文書、FAX受信文書にかかわらず、入力処理された文書データ(以下入力ドキュメントという)について、加工処理の対象となる所定のサイズの画像に分割する。そして分割された画像について加工処理を行った後で、再度出力処理される文書データとして加工処理された画像を用いて構成され、出力処理の対象となる文書データ(以下、出力ドキュメントという)を生成する。そして生成された文書データを印刷、保存あるいはFAX送信等の出力を行う。
図9は、ドキュメントの構成の概念を示した概念図である。本図で示したように、ドキュメントはページ毎に分割して管理される。そして各ページは画像と、画像の配置を決めるレイアウトで構成されている。つまり、ページとして構成することが可能な所定のサイズに分割した画像を各ページに予め定められたレイアウトに従い順番に当てはめることでドキュメントが構成される。このような構成により画像毎に処理が可能なので加工処理が容易になる。さらに、入力元又は出力先の違いによらず共通した処理が可能になり、昨日が追加された場合でも複数備えられたアプリケーション毎にプログラムを修正する必要が無くなり、プログラム開発が容易となる。なお、ページ毎にレイアウトを設定し、レイアウトにより分割された画像により構成されている文書データを本実施の形態ではドキュメントという。
このような構成とすることで、入力元あるいは出力先によらず共通したフォーマットで文書データを管理することを可能とすると共に、例えば「2 in 1」等の加工処理を容易に行うことが出来る。
図10は、上述したオブジェクトモデリングにより設計されたドキュメントのクラス構成をUMLのクラスで示した図である。本図に示すように、ドキュメントは、ドキュメントクラス1001と、ページクラス1002と、レイアウトクラス1003と、画像クラス1004と、を備えている。このような構成を備えたことで、文書処理が容易になる。
各クラスを示す矩形は3段の区画を有し、上から、クラス名を示す名前区画、クラスが有するデータ(属性)を示す属性区画およびクラスが有する処理(操作)を示す操作区画と呼ばれる。たとえば、ドキュメントクラス1001を示す矩形の名前区画は、かかるクラスのクラス名が「ドキュメント」であることを示し、属性区画は、かかるクラスが有する属性が、「状態」、「文書種類」、「文書名」、「所有者」であることを示している。
なお、操作区画は、かかるクラスが有する操作が無いが、この区画には例えば「開始()」などクラスを呼び出すための操作が示される。
このように、各クラスは、データ(属性)を所持するための属性区画と、かかる属性の書き込みおよび読み出しをおこなう処理(操作)を所持するための操作区画とを有している。これらのクラスは、プログラム(統合アプリケーション110)の一部として含まれるので、あらかじめROM12aに格納されたこのプログラムが実行されると、各クラスはRAM12bの所定領域に実体化され、属性区画に含まれる各データ(属性)がRAM12b上に展開される。したがって、クラスを実体化したオブジェクトは、RAM12b上の各データ(属性)の書き込みおよび読み出しをすることが可能となる。
なお、属性や操作といったクラスの要素の左側に「−」記号を付した場合は、かかる要素は外部のクラスには非公開であることを示し、「+」記号を付した場合は、かかる要素は外部のクラスに公開されていることを示す。また、操作については「開始()」のように「()」記号を付することが通例であり、「(引数1,引数2)」のように、かかる操作に引き渡す引数を記述する場合もある。
ドキュメントクラス1001は、処理の対象となるドキュメントを管理するクラスである。具体的には、ドキュメントクラス1001は、属性として状態1001a、文書種類1001b、文書名1001c、ページ数1001dとを有する。なお、かかるドキュメントクラス1001を実体化したオブジェクトが生成されると、属性として状態1001a、文書種類1001b、文書名1001c、ページ数1001dがRAM12b上に展開されるので、これらのデータ(属性)の書き込みおよび読み出しをすることが可能となる。
状態1001aは、ドキュメントクラス1001の状態を示すものである。この状態はドキュメントハンドリング部212に対して処理が要求された場合などに変更される。
図11は、ドキュメントハンドリング部212に対して課せられている基本機能やサービス項目などの要件定義を表現するユースケース図である。本図においてドキュメントハンドリング部212が有する各機能を示したものである。そして、アクターは文書の処理を要求する人であり、文書処理を要求する人から要求を受け付けた場合にドキュメントハンドリング部212は文書処理を実行する。さらに文書処理を要求する人から文書処理を取り消す要求を受け付けた場合、ドキュメントハンドリング部212は文書処理を取り消す。そして、ドキュメントクラス1001の状態1001aは、これら機能または文書処理に適した状態、例えば「中断」「取消」等の状態が設定される。
図10に戻り、文書種類1001bは、入力元から入力処理される際のフォーマット種類、又は出力先に出力処理する際に変換されるフォーマット種類を保持する。
文書名1001cは、ドキュメントに付けられた名前を保持する。例えば、電子文書等の場合は元のファイル名とし、紙原稿から入力処理されたドキュメントは入力処理した時間等により自動的に生成された名称などが考えられる。
ページ数1001dは、ドキュメントが保持するページ数を保持する。また、ドキュメントクラス1001が保持するページ数だけ、後述するページオブジェクト1002Aが生成される。
ページクラス1002は、ドキュメントクラス1001で管理するドキュメントから分割された各ページを管理するクラスである。ページクラス1002は、レイアウトオブジ
ェクト1003A及び画像オブジェクト1004Aを生成し、入力レイアウトに入力画像を当てはめた構成として管理する。具体的には、このページクラス1002は、属性としてページ番号1002aを有する。なお、かかるページクラス1002を実体化したオブジェクトが生成されると、属性としてページ番号1002aがRAM12b上に展開されるので、これらのデータ(属性)の書き込みおよび読み出しをすることが可能となる。
ページ番号1002aは、このページオブジェクト1002Aが管理するページを示す番号を保持する。つまり、ドキュメントオブジェクト1001Aが保持するページ数1001dだけページオブジェクト1002Aが生成されるので、ページオブジェクト1002Aが割り振られたページの番号をページ番号1002aで保持する。
レイアウトクラス1003は、ページクラス1002で管理するページに画像を当てはめるために用いられるレイアウトを作成して管理するクラスである。具体的には、このレイアウトクラスは、属性として仕切り線種類1003a、とじしろ幅1003b、枠消去幅1003c、並べ順1003dを有する。なお、かかるレイアウトクラス1003を実体化したオブジェクトが生成されると、属性として仕切り線種類1003a、とじしろ幅1003b、枠消去幅1003c、並べ順1003dがRAM12b上に展開されるので、これらのデータ(属性)の書き込みおよび読み出しをすることが可能となる。
仕切り線種類1003aは、配置する画像を仕切るために表示される線の種類を保持する。また、とじしろ幅1003bは、ページに画像を配置する際にページの上下左右の余白の幅を保持する。枠消去幅1003cは、原稿のとじ部あるいは周囲に出来る影を消去するための幅を保持する。そして、並べ順1003dは、各ページで画像を配置する順番を保持する。
画像クラス1004は、ページに対してレイアウトにより定められた配置に当てはまる画像を管理するクラスである。具体的には、画像クラス1004は、上述したドキュメントクラス1001が管理するドキュメントから画像となる範囲の画像の実体を保持する。また、画像クラス1004は、属性として解像度1004a、濃度1004b、カラー1004c、網掛け1004dを有する。なお、かかる画像クラス1004を実体化したオブジェクトが生成されると、読み込んだ画像の実体を特定する情報がRAM12b上に展開されるので、これらのデータ(属性)の書き込みおよび読み出しをすることが可能となる。
解像度1004a、濃度1004b、カラー1004c、網掛け1004dは、読み込んだ画像の実体について情報を保持する。
なお、画像クラス1004が保持する画像は、ドキュメントハンドリングの最小単位に分割された画像とする。ドキュメントハンドリングの最小単位とは、1ページとして構成することが可能な領域をいい、例えば特殊な設定を行っていない場合であれば1ページ全体の領域が入力画像となり、「2 in 1」に設定されている場合であれば1ページを2つに分割した各領域が入力画像となる。また、入力画像は、単なる画像のみならず、レイアウトにより定められた領域に示された文字情報や、図形なども含まれる。
上述したクラス構成を用いて文書処理を行っていくこととなるが、例えば「2 in 1」などの処理を行う場合、入力処理が行われた後の文書データと、出力処理が行われる前の文書データではレイアウトが異なる。そこでドキュメントハンドリング部212は、ページとレイアウトと画像で構成されるドキュメントとして、入力処理が行われた後の文書データから生成された入力ドキュメントと、出力処理が行われる前の文書データから生成された出力ドキュメントを保持することとする。
そして、入力ドキュメント及び出力ドキュメントの間に加工処理の対象となる文書データ(以下、ユーザドキュメントとする)を介することとする。このユーザドキュメントは、入力画像から取得した加工処理の対象となる画像(以下、ユーザ画像とする)で構成される。そしてユーザ画像の加工処理を行った後で出力画像として出力する。なお、ユーザドキュメントは画像毎の加工処理を行うものであるため、ページ及びレイアウトを構成として必要としない。
つまり、入力元から入力された入力ドキュメントから、ページ毎(以下、入力ページという)にレイアウト(以下、入力レイアウト)に従って分割された画像(以下、入力画像)を生成する。そして加工する際に、入力画像から加工対象となる画像(以下、ユーザ画像)を生成し、これらユーザ画像を有するユーザドキュメントを生成する。そして、出力する際にユーザドキュメントが有するユーザ画像から出力画像を作成し、生成された出力画像を出力先に応じた出力レイアウトにページ毎に当てはめて出力ドキュメントを生成する。図12は、本実施の形態に係る文書処理で用いられる入力ドキュメントからユーザドキュメント、そして出力ドキュメントまでの構成の変化を示した説明図である。本図に示すように、入力元によらず入力ドキュメントを、入力ページ、入力レイアウト及び入力画像の組み合わせとして管理し、加工処理を施す際には入力画像から生成されたユーザ画像のみ有するユーザドキュメントとして管理する。ユーザドキュメントが所定サイズに分割されたユーザ画像として有する。これにより、出力ドキュメントとして出力する際に出力レイアウトに従ってユーザ画像より生成された出力画像をユーザの要求に従って柔軟に配置することができる。なお、ユーザ画像から出力画像を生成する際に、出力レイアウトに当てはまるように拡大又は縮小等の処理を行う。
上述したオブジェクトモデリングにより、ドキュメントハンドリング部212は、「入力ドキュメントクラス」、「ユーザドキュメントクラス」及び「出力ドキュメントクラス」を有する構成とした。そして、図12で示した構成から「入力ドキュメントクラス」は「入力ページクラス」を、また「出力ドキュメントクラス」は「出力ページクラス」を保持する。さらに「入力ページクラス」は「入力レイアウトクラス」と「入力画像クラス」を保持し、「出力ページクラス」は「出力レイアウトクラス」と「出力画像クラス」を保持する。そして、「ユーザドキュメントクラス」は「ユーザ画像」を保持する。
そして、「入力ドキュメントクラス」は入力元毎にサブクラスが設けられ、「出力ドキュメントクラス」も同様に出力先毎にサブクラスが設けられる。本実施の形態では、入力元としては、スキャナで読み込まれる「紙」ドキュメント、ネットワークを介して入力される「ネット」ドキュメントそしてハードディスク等のローカルストレージに保存されている「LS」ドキュメントとする。そこで、「入力ドキュメントクラス」のサブクラスとして「入力ネットドキュメントクラス」、「入力紙ドキュメントクラス」及び「入力LSドキュメントクラス」が設けられる。そして、出力先も同様に「紙」、「ネット」及び「LS」とし、「出力ドキュメントクラス」のサブクラスとして「出力ネットドキュメントクラス」、「出力紙ドキュメントクラス」及び「出力LSドキュメントクラス」が設けられる。
そして、上述したオブジェクトモデリングにより設計されたドキュメントハンドリング部212は、リクエスト管理部211から文書データを処理する旨の要求を受け付けた場合に、入力文書(例えば紙文書、電子文書、FAX受信文書等)を入力処理してから加工処理を行い、出力文書(例えば、紙文書、電子文書あるいはFAX送信文書)を出力処理するまでの処理を行う。これらの処理が行われた後、実行系サブシステム203からサービス層102の制御で、ハードウェアリソース151から出力される。
図13は、上述したオブジェクトモデリングにより設計されたドキュメントハンドリング部212のクラス構成をUMLのクラスで示した図である。本図に示すように、ドキュメントハンドリング部212は、ドキュメント操作スケジューラクラス1301と、入力ドキュメントクラス1311と、入力ページクラス1312と、入力レイアウトクラス1313と、入力画像クラス1314と、入力ネットドキュメントクラス1315と、入力紙ドキュメントクラス1316と、入力LSドキュメントクラス1317と、ユーザドキュメントクラス1302と、ユーザ画像クラス1303と、出力ドキュメントクラス1321と、出力ページクラス1322と、出力レイアウトクラス1323と、出力画像クラス1324と、出力ネットドキュメントクラス1325と、出力紙ドキュメントクラス1326と、出力LSドキュメントクラス1327と、を備えている。このような構成を備えたことで、入力元あるいは出力先にかかわらず共通した文書処理を行うことを可能とする。
次に、図13に示した本実施の形態の特徴部分であるドキュメントハンドリング部212が備える各クラスについて説明する。
ドキュメント操作スケジューラクラス1301は、リクエスト管理部211から受け付けたリクエストに対応した文書処理を行うためにドキュメントの管理及び操作するクラスであり、リクエストに応じたユーザドキュメントクラス1302のオブジェクトを生成する。具体的にはドキュメント操作スケジューラクラス1301は、操作としてドキュメント登録()1301aを有する。また、ドキュメント操作スケジューラクラス1301は、リクエスト管理部211からリクエストされた文書処理のスケジューリングを行う。
ドキュメント登録()1301aは、リクエスト管理部211から文書処理の要求を受け付け、受け付けた要求に応じたユーザドキュメントクラス1302のオブジェクトを生成する。また、ドキュメント登録()1301aの引数として受け渡された情報には、ユーザが文書処理を行う際に入力した情報が含まれる。
ユーザドキュメントクラス1302は、入力文書を入力処理してから加工処理を行い、出力先に出力文書(例えば、紙文書、電子文書あるいはFAX送信文書)を出力するまでの工程を管理するクラスである。さらに、ユーザドキュメントクラス1302は、ユーザが複合機1を使用する際に入力した情報からユーザの要求を実現するための仕様を導出し、導出した仕様を満たすよう文書処理の工程を管理する。具体的にはユーザドキュメントクラス1302は、操作として文書処理開始()1302a、終了通知()1302bを有する。また、ユーザドキュメントクラス1302は、文書処理が終了した後に、入力ドキュメントクラス1311のサブクラス及び出力ドキュメントクラス1321のサブクラスのオブジェクトを削除する。
文書処理開始()1302aは、ユーザドキュメントクラス1302が文書処理を開始するためのトリガーを与える処理をおこなう。そして、ユーザドキュメントオブジェクト1302Aは、文書処理開始()1302aで引数として受け渡された情報より入力元を判断し、判断に基づいて入力ネットドキュメントオブジェクト1315A、入力紙ドキュメントオブジェクト1316Aあるいは入力LSドキュメントオブジェクト1317Aを生成し、さらに引数として受け渡された情報より出力先を判断し、判断に基づいて出力ネットドキュメントオブジェクト1325A、出力紙ドキュメントオブジェクト1326Aあるいは出力LSドキュメントオブジェクト1327Aを生成する。
終了通知()1303bは、ユーザドキュメントクラス1302に対して入力処理又は出力処理が終了した旨を通知する処理を行う。
入力ドキュメントクラス1311は、入力元より入力処理された入力ドキュメントを、入力元によらず共通する予め定めたフォーマット、換言すると入力画像と入力レイアウトで構成される入力ページに当てはめて管理するクラスである。入力元とは、例えばスキャナ、ネットワークを介して接続された機器、FAX受信あるいはローカルストレージ等の入力手段が考えられる。この入力ドキュメントクラス1311は、入力ネットドキュメントクラス1315、入力紙ドキュメントクラス1316及び入力LSドキュメントクラス1317の上位クラス(スーパークラス)であり、入力ドキュメントクラス1311自体が実体化されることはないが、入力ドキュメントクラス1311の属性および操作は、下位クラス(サブクラス)である入力ネットドキュメントクラス1315、入力紙ドキュメントクラス1316及び入力LSドキュメントクラス1317に継承される。
また、具体的には入力ドキュメントクラス1311は、属性として状態1311a、文書種類1311b、文書名1311c、ページ数1311dを有し、操作として入力開始()1311e、入力中断()1311f、入力取消()1311g、入力継続()1311h、終了通知()1311iを有する。
状態1311aは、状態情報として「待機中」、「入力中」、「中断中」、「取消中」、「終了中」のいずれか1つが設定されている。状態1311aが変更される条件については後述する。また、属性として有している文書種類1311b、文書名1311cは、図10で説明した文書種類1001b、文書名1001cと同じため説明を省略する。なお、本実施の形態では、入力ドキュメントクラス1311で状態を保持することとしたが、入力紙ドキュメントクラス1316等のサブクラスで保持してもよく、サブクラスで保持した場合は、入力処理する対象毎に具体的な状態を管理することができる。これに対して入力ドキュメントクラス1311で保持した場合は、状態を共通化できるため、管理及び開発の負荷を軽減できる。なお、これは後述する出力ドキュメントクラス1321も同様とする。
ページ数1311dは、入力処理された入力ドキュメントのページ数を保持する。また、入力ドキュメントクラス1311は、保持されたページ数だけ入力ページオブジェクト1312Aを生成する。
入力開始()1311eは、入力ドキュメントクラス1311が文書処理を開始するためのトリガーを与える処理をおこなう。この入力開始()1311eは、サブクラスである入力ネットドキュメントクラス1315、入力紙ドキュメントクラス1316及び入力LSドキュメントクラス1317に継承され、各サブクラスにおける具体的な処理によりオーバーライド(override)される。なお、かかる具体的な処理の説明については、後述する入力ネットドキュメントクラス1315、入力紙ドキュメントクラス1316及び入力LSドキュメントクラス1317の説明でおこなう。
入力中断()1311fは、入力開始()1311eにより開始された文書の入力処理を中断する。また、入力取消()1311gは、入力開始()1311eにより開始された文書の入力処理を取り消す。また、入力継続()1311hは、入力中断()1311fにより中断された文書の入力処理を再開するためのトリガーを与える処理を行う。
終了通知()1311iは、後述する入力ページクラス1312から入力ドキュメントクラス1311にページ毎の処理が終了したことを通知する。
また、入力開始()1311e、入力中断()1311f、入力取消()1311g、入力継続()1311h、終了通知()1311iで行われる処理に応じて状態1311aが変更される。
図14は、入力ドキュメントクラス1311が呼び出された操作により変更される状態を示した状態図である。本図で示したように、入力ドキュメントクラス1311は、開始状態から状態1311aは「待機中」1401に変更される。そして、「待機中」1401から入力開始()1311eにより「入力中」1402に変更され、入力取消()1311gより終了状態となる。そして、状態1311aは「入力中」1402から、呼び出された操作に基づいて「中断中」1403、「取消中」1405、「終了中」1404に変更される。このように操作に基づいて状態1311aが変更される。また、「終了中」1404から終了処理が終了した場合、「取消中」1405から取消処理が終了した場合は終了状態になる。そして、入力ドキュメントクラス1311が上述した操作で呼び出された場合、状態1311aを参照することで、呼び出された操作が適切か否か判断することが可能になる。つまり状態1311aが設定されている値からはあり得ない操作が呼び出された場合、この操作は異常だと判断できるため、適切な入力処理が可能になる。
入力ネットドキュメントクラス1315は、入力ドキュメントクラス1311のサブクラスであり、接続したネットワークの入力元から取得したドキュメントを入力処理した入力ドキュメントをページ毎に分割し、分割したページ毎に入力ページオブジェクト1312Aを生成し、入力ページオブジェクト1312Aに対して該当するページを管理する旨を指示することで入力ドキュメントを管理するクラスである。
具体的には、この入力ネットドキュメントクラス1315は、入力ドキュメントクラス1311から、属性として状態1311a、文書種類1311b、文書名1311c、ページ数1311dを、操作として入力開始()1311e、入力中断()1311f、入力取消()1311g、入力継続()1311h、終了通知()1311iを承継する。さらに、入力ネットドキュメントクラス1315は、属性として、ネットワークを介して入力処理を行うために必要な仕様及び設定を保持するが、図13では省略する。なお、かかる入力ネットドキュメントクラス1315を実体化したオブジェクトが生成されると、属性として保持する入力処理を行うために必要な仕様且つ設定及び状態1311a、文書種類1311b、文書名1311c、ページ数1311dはRAM12b上に展開されるので、これらのデータ(属性)の書き込みおよび読み出しをすることが可能となる。
入力ドキュメントクラス1311から承継した入力開始()1311eは、入力処理を開始するためのトリガーであり、ユーザドキュメントオブジェクト1302Aから呼び出された場合、入力ネットドキュメントクラス1315がネットワークを介してドキュメントを受信し、入力元により異なるフォーマットの入力文書を入力処理し、入力処理した後に入力ドキュメントに変換して管理する制御を行う。なお、入力ドキュメントのフォーマットは、入力元にかかわらず共通したフォーマットとする。
また、入力ネットドキュメントオブジェクト1315Aは、入力開始()1311eによりネットワークを介してドキュメントを受信する際、引数として受け渡された情報より受信するドキュメントを特定し、実行制御部213を介して利用できるFAX送受信制御部102eやネットワーク通信制御部102fを用いてネットワークへ接続してから受信する。
入力紙ドキュメントクラス1316は、入力ドキュメントクラス1311のサブクラスであり入力ドキュメントを管理するクラスである。具体的には、スキャナ151aより読み込まれた原稿を入力処理した入力ドキュメントをページ毎に分割し、分割したページ毎に入力ページオブジェクト1312Aを生成し、入力ページオブジェクト1312Aに対して該当するページを管理する旨を指示する処理を行う。
具体的には、この入力紙ドキュメントクラス1316は、入力ドキュメントクラス1311から、属性として状態1311a、文書種類1311b、文書名1311c、ページ数1311dを、操作として操作として入力開始()1311e、入力中断()1311f、入力取消()1311g、入力継続()1311h、終了通知()1311iを承継する。さらに、入力紙ドキュメントクラス1316は、属性として、用紙枚数1316a、原稿ハンドリングモード1316bを有し、さらに他にもスキャナ151aから原稿を読み取るための設定及び仕様を保持するが図13では省略する。なお、かかる入力紙ドキュメントクラス1316を実体化したオブジェクトが生成されると、属性として状態1311a、文書種類1311b、文書名1311c、ページ数1311d、用紙枚数1316a、原稿ハンドリングモード1316b、保持する原稿を読み取るための設定及び仕様及びはRAM12b上に展開されるので、これらのデータ(属性)の書き込みおよび読み出しをすることが可能となる。
また、用紙枚数1316aは、複合機1に読み取るためにセットされた原稿の枚数を保持する。また、原稿ハンドリングモード1316bは、原稿を読み取る際のハンドリングモードを保持する。ハンドリングモードとしては自動原稿送り装置を用いて自動送りされた原稿から読み込みを行うADFモード、コンタクトガラスに配置された原稿から読み込みを行う圧板モードがある。
入力ドキュメントクラス1311から承継した入力開始()1311eは、入力処理を開始するためのトリガーであり、ユーザドキュメントオブジェクト1302Aから呼び出された場合、入力紙ドキュメントクラス1316がスキャナ151aで原稿を読み取り、読み取った原稿から入力ドキュメントに変換して管理する制御を行う。
また、入力紙ドキュメントクラス1316は、入力開始()1311eによりスキャナ151aで原稿を読み出す際、実行制御部213を介して利用できるスキャナ制御部102aを用いて読み取りを行う。また、入力紙ドキュメントオブジェクト1316Aが紙の表裏に印刷されている原稿を読み取る場合でも、表裏を順番に読み込んだ原稿を入力ドキュメントに変換することになるが、入力ドキュメントに表裏という概念は存在しない。つまり、読み込んだ原稿は、表のみ又は表裏両面の読み込みにかかわらず、読み込まれた順番に入力ページとして割り当てられる。これにより媒体の特性あるいはスキャナ151aによる原稿のハンドリングモードの違いにかかわらず共通した様式で入力ドキュメントを保持するため、入力元の違いに応じて異なる加工処理を必要とせず、加工処理が容易となる。
入力LSドキュメントクラス1317は、入力ドキュメントクラス1311のサブクラスであり、ハードディスク等のローカルストレージより読み込まれた電子文書を入力処理した入力ドキュメントをページ毎に分割し、分割したページ毎に入力ページオブジェクト1312Aを生成し、入力ページオブジェクト1312Aに対して該当するページを管理する旨を指示することで入力ドキュメントを管理するクラスである。
具体的には、この入力LSドキュメントクラス1317は、入力ドキュメントクラス1311から、属性として状態1311a、文書種類1311b、文書名1311c、ページ数1311dを、操作として操作として入力開始()1311e、入力中断()1311f、入力取消()1311g、入力継続()1311h、終了通知()1311iを承継する。さらに、入力LSドキュメントクラス1317は、属性として、ローカルストレージから電子文書を読み込むための設定及び仕様を保持するが、図13では省略する。なお、かかる入力LSドキュメントクラス1317を実体化したオブジェクトが生成されると、属性としてローカルストレージから電子文書を読み込むための設定及び仕様及びページ数1311dはRAM12b上に展開されるので、これらのデータ(属性)の書き込み
および読み出しをすることが可能となる。
入力ドキュメントクラス1311から承継した入力開始()1311eは、入力処理を開始するためのトリガーであり、ユーザドキュメントオブジェクト1302Aから呼び出された場合に入力LSドキュメントクラス1317にローカルストレージから電子文書を読み込み、読み込んだ電子文書から入力ドキュメントに変換して管理する制御を行う。
また、入力LSドキュメントクラス1317は、入力開始()1311eにより電子文書を読み込む際、実行制御部213を介して利用できる蓄積制御部102cを用いて読み込みを行う。
また、入力ネットドキュメントクラス1315、入力紙ドキュメントクラス1316及び入力LSドキュメントクラス1317が管理する入力ドキュメントは、入力元に係わらず共通した入力ページクラス1312、入力レイアウトクラス1313及び入力画像クラス1314等を用いて保持するため、入力元にかかわらず共通した加工処理等を可能とする。次に入力ページクラス1312,入力レイアウトクラス1313及び入力画像クラス1314について説明する。
入力ページクラス1312は、入力ドキュメントクラス1311で管理する入力ドキュメントより分割された各ページを、入力ページとして管理するクラスである。入力ページクラス1312は、入力レイアウトオブジェクト1313A及び入力画像オブジェクト1314Aを生成し、入力レイアウトに入力画像を当てはめた構成として管理する。
また、ページ毎の入力レイアウトの設定する際に、例えばスキャナ151aで読み込む原稿を、ユーザが「2 in 1」の集約原稿であると設定した場合、入力レイアウトは入力画像が2枚当てはめられたレイアウトとなり、この条件を満たした入力レイアウトオブジェクト1313Aが生成されることになる。
具体的には、この入力ページクラス1312は、属性としてページ番号1312aを有し、操作として入力開始()1312b、終了通知()1312cを有する。なお、かかる入力ページクラス1312を実体化したオブジェクトが生成されると、属性としてページ番号1312aがRAM12b上に展開されるので、これらのデータ(属性)の書き込みおよび読み出しをすることが可能となる。
ページ番号1312aは、この入力ページオブジェクト1312Aが管理するページを示す番号を保持する。つまり、入力ドキュメントオブジェクト1311Aが保持するページ数1311dだけ入力ページオブジェクト1312Aを生成するので、入力ページオブジェクト1312Aが割り振られたページの番号をページ番号1312aで保持する。
入力開始()1312bは、入力ページクラス1312がページ処理を開始するためのトリガーを与える処理を行う。この入力開始()1312bが、入力ネットドキュメントオブジェクト1315A等の入力ドキュメントクラス1311のサブクラスのオブジェクトから呼び出された場合に、引数として受け渡されたページ番号に該当する入力ドキュメント中のページの情報を取得し、取得したページの情報に基づいて入力レイアウトオブジェクト1313A及び入力画像オブジェクト1314Aの生成を開始する。
また、入力ページクラス1312は、入力開始()1312bが呼び出された場合、入力ドキュメントクラス1311が管理する入力ドキュメントから該当する入力ドキュメント中のページの情報を取得し、生成した入力レイアウトオブジェクト1313A及び入力画像オブジェクト1314Aを用いて入力ページを管理する。
終了通知()1312cは、各入力画像オブジェクト1314Aが入力ページクラス1312に画像処理が終了したことを通知する処理を行う。この終了通知()1312cが、入力ページクラス1312が生成した全ての入力画像オブジェクト1314Aから呼び出された場合に、入力ページクラス1312はページの処理が全て終了したと判断する。
入力レイアウトクラス1313は、入力ページクラス1312で管理する入力ページに後述する入力画像を当てはめるために用いられるレイアウト(以下、入力レイアウトという)を作成して管理するクラスである。具体的には、この入力レイアウトクラス1313は、属性として仕切り線種類1313a、とじしろ幅1313b、枠消去幅1313c、並べ順1313dを有するが、図10で示した仕切り線種類1003a、とじしろ幅1003b、枠消去幅1003c、並べ順1003dと同様であるため説明を省略する。また、入力レイアウトクラス1313は、操作としてレイアウト作成()1313eを有する。なお、かかる入力レイアウトクラス1313を実体化したオブジェクトが生成されると、属性として仕切り線種類1003a、とじしろ幅1003b、枠消去幅1003c、並べ順1003dがRAM12b上に展開されるので、これらのデータ(属性)の書き込みおよび読み出しをすることが可能となる。
レイアウト作成()1313eは、入力レイアウトオブジェクト1313Aが入力ページに入力画像を適した位置に配置する入力レイアウトを作成する。このレイアウト作成()1313eが、入力ページオブジェクト1312Aから呼び出された場合、引数として受け渡された情報から、属性として仕切り線種類1313a、とじしろ幅1313b、枠消去幅1313c、並べ順1313dを設定することで、入力レイアウトが作成される。そして、並べ順1003dにより、入力ページ内に配置される入力画像の数とこれらの並べ順が決定される。
入力画像クラス1314は、入力ページに対して入力レイアウトにより定められた配置に当てはまる画像(以下、入力画像という)を管理するクラスである。具体的には、入力画像クラス1314は、上述した入力ドキュメントクラス1311のサブクラスのオブジェクトで生成された入力ドキュメントから入力画像となる範囲の画像の実体を読み込み、保持する。また、入力画像クラス1314は、属性として解像度1314a、濃度1314b、カラー1314c、網掛け1314d及び読み込んだ画像の実体を特定する情報を有する。これらは、図10で示した解像度1004a、濃度1004b、カラー1004c、網掛け1004dと同様であるため説明を省略する。また、画像の実体を特定する情報は周知技術のうちどの様な特定方法でも良いため、図13では省略する。また、入力画像クラス1314は、操作として入力開始()1314e、終了通知()1314fを有する。なお、かかる入力画像クラス1314を実体化したオブジェクトが生成されると、解像度1314a、濃度1314b、カラー1314c、網掛け1314d及び読み込んだ画像の実体を特定する情報がRAM12b上に展開されるので、これらのデータ(属性)の書き込みおよび読み出しをすることが可能となる。
入力画像は、入力レイアウトに当てはめられる画像をいい、所定のサイズの画像、本実施の形態ではドキュメントハンドリングの最小単位に分割された画像となる。ドキュメントハンドリングの最小単位は画像クラス1004で説明したので省略する。また、入力画像は、単なる画像のみならず、上述した領域に示された文字情報や、図形なども含まれる。
入力開始()1314eは、入力画像クラス1314が画像処理を開始するためのトリガーを与える処理を行う。この入力開始()1314eが、入力ページオブジェクト1312Aから呼び出された場合に、引数として受け渡された入力レイアウト等の設定により
定められる範囲の画像の実体を読み込み、読み込んだ画像の実体を特定する情報を属性として書き込み、さらに入力画像に対応したユーザ画像を管理するユーザ画像オブジェクト1303Aを生成する。
終了通知()1314fは、実行制御部213が入力画像クラス1314に画像の実体を読み込む処理が終了したことを通知する処理を行う。この終了通知()1314fが呼び出された場合に、入力画像クラス1314は画像処理が全て終了したと判断する。
ユーザ画像クラス1303は、入力画像から生成された加工処理の対象となるユーザ画像を管理し、出力画像を生成するための加工処理を行うクラスである。具体的にはユーザ画像クラス1303は、属性として生成されたユーザ画像を特定する情報を有し、操作として作成()1303a及び利用()1303bを有する。なお、かかるユーザ画像クラス1303を実体化したオブジェクトが生成されると、作成された画像を特定する情報がRAM12b上に展開されるので、これらのデータ(属性)の書き込みおよび読み出しをすることが可能となる。
また、ユーザ画像は加工処理の対象となる画像をいい、所定のサイズの画像、本実施の形態ではドキュメントハンドリングの最小単位に分割された画像となる。ドキュメントハンドリングの最小単位は画像クラス1004で説明したので省略する。ユーザ画像は、単なる画像のみならず、ユーザ画像として所定サイズの領域に示された文字情報や、図形なども含まれる。
作成()1303aは、入力画像クラス1314から呼び出され、ユーザ画像クラス1303が対応する入力画像に基づいてユーザ画像を生成する処理を行う。この作成()1303aが、入力画像オブジェクト1314Aから呼び出された場合に、ユーザ画像の実体を生成するトリガーとなり、この後に入力画像オブジェクト1314Aから送信されてくる画像情報より、ユーザ画像の実体を生成し、生成した実体を特定にする情報を属性に書き込む。
利用()1303bは、後述する出力画像クラス1324から呼び出され、作成()1303aで読み込んだ画像の実体を出力形式に適するように加工処理を行った後、出力画像クラス1324に送信し、出力画像を生成する。加工処理の例としては、1枚毎に入力処理された原稿を「2 in 1」で出力したい場合、ユーザ画像を縮小する処理を行う等が考えられる。
出力ドキュメントクラス1321は、出力先によらず共通する予め定めたフォーマット、換言すると出力画像と出力レイアウトを組み合わせた出力ページで構成される出力ドキュメントを生成し、出力先に出力処理を行うクラスである。出力先とは、例えばプロッタ、プリンタ、ネットワークを介して接続された機器、FAX送信あるいはローカルストレージ等の出力手段が考えられる。この出力ドキュメントクラス1321は、出力ネットドキュメントクラス1325、出力紙ドキュメントクラス1326及び出力LSドキュメントクラス1327の上位クラス(スーパークラス)であり、出力ドキュメントクラス1321自体が実体化されることはないが、出力ドキュメントクラス1321の属性および操作は、下位クラス(サブクラス)である出力ネットドキュメントクラス1325、出力紙ドキュメントクラス1326及び出力LSドキュメントクラス1327に継承される。具体的には出力ドキュメントクラス1321は、属性として状態1321a、文書種類1321b、文書名1321c、ページ数1321dを、操作として出力開始()1321e、出力中断()1321f、出力継続()1321g、出力取消()1321h、出力通知()1321iを有する。
状態1321aは、状態情報として「待機中」、「出力中」、「中断中」、「取消中」、「終了中」のいずれか1つが設定されている。状態1321aが変更される条件については後述する。また、属性として有している文書種類1321b、文書名1321cは、図10で説明した文書種類1001b、文書名1001cと同じため説明を省略する。
ページ数1321dは、出力処理された出力ドキュメントのページ数を保持する。出力ドキュメントのページ数は、複合機1に対して行った出力する際の設定及びユーザドキュメントオブジェクト1302Aが保持するユーザ画像の数から求めることができる。具体的には後述する出力開始()1321eが呼び出された際に、引数として受け渡されたユーザ画像の数や、出力する際の設定より定められる出力レイアウト等からページ数が求められて、ページ数1321dに設定される。例えば、ユーザドキュメントオブジェクト1302Aが保持するユーザ画像の数が4枚であり、ユーザが「2 in 1」で出力するように設定していた場合、ページ数1321dは‘2’と設定される。また、出力ドキュメントクラス1321はページ数だけ出力ページオブジェクト1322Aを生成する。
出力開始()1321eは、出力ドキュメントクラス1321が文書処理を開始するためのトリガーを与える処理をおこなう。この出力開始()1321eは、サブクラスである出力ネットドキュメントクラス1325、出力紙ドキュメントクラス1326及び出力LSドキュメントクラス1327に継承され、各サブクラスにおける具体的な処理によりオーバーライド(override)される。なお、かかる具体的な処理の説明については、後述する出力ネットドキュメントクラス1325、出力紙ドキュメントクラス1326及び出力LSドキュメントクラス1327の説明でおこなう。
出力中断()1321fは、出力開始()1321eにより開始された文書の出力処理を中断する。また、出力取消()1321gは、出力開始()1321eにより開始された文書の出力処理を取り消す。また、出力継続()1321hは、出力中断()1321fにより中断された文書の出力処理を再開するためのトリガーを与える処理を行う。
終了通知()1321iは、後述する出力ページクラス1322から出力ドキュメントクラス1321にページ毎の処理が終了したこと通知する。
また、出力開始()1321e、出力中断()1321f、出力取消()1321g、出力継続()1321h、終了通知()1321iで行われる処理に応じて状態1321aが変更される。
図15は、出力ドキュメントクラス1321が呼び出された操作により変更される状態を示した状態図である。本図で示したように、出力ドキュメントクラス1321は、開始状態から状態1321aは「待機中」1501に変更される。そして、「待機中」1501から出力開始()1321eにより「出力中」1502に変更され、出力取消()1321gより終了状態となる。また、状態1321aは「出力中」1502から、呼び出された操作に基づいて「中断中」1503、「取消中」1505、「終了中」1504に変更される。このように操作に基づいて状態1321aが変更される。また、「終了中」1504から終了処理が終了した場合、「取消中」1505から取消処理が終了した場合は終了状態になる。そして、出力ドキュメントクラス1321が上述した操作で呼び出された場合、状態1321aを参照することで、呼び出された操作が適切か否か判断することが可能になる。つまり状態1321aに設定されている値からはあり得ない操作が呼び出された場合、この操作は異常だと判断できるため、適切な出力処理が可能になる。
出力ネットドキュメントクラス1325は、出力ドキュメントクラス1321のサブクラスであり、出力ドキュメントの出力先にネットワークを介して接続し、出力ページオブ
ジェクト1322Aに対して出力ドキュメントの出力ページ毎に出力処理する指示を行うクラスである。また、出力ネットドキュメントクラス1325は、出力先毎に異なるプロトコル、例えばFAX送信、メール送信あるいはファイルの転送等の違いに応じて、通信を制御するよう実行制御部213に指示し、さらに通信方式に応じた出力ドキュメントのフォーマットを用意し、出力ドキュメントを出力先に応じたフォーマットで整形して出力する処理を行う。このフォーマットはFAX送信等の通信で通常用いられている周知のフォーマットとする。
具体的には、この出力ネットドキュメントクラス1325は、出力ドキュメントクラス1321から、属性として状態1321a、文書種類1321b、文書名1321c、ページ数1321dを、操作として出力開始()1321e、入力中断()1321f、入力取消()1321g、入力継続()1321h、終了通知()1321iを承継する。さらに、出力ネットドキュメントクラス1325は、属性として、ネットワークを介して出力処理を行うために必要な仕様及び設定を保持するが、図13では省略する。なお、かかる出力ネットドキュメントクラス1325を実体化したオブジェクトが生成されると、属性として保持する出力処理を行うために必要な仕様且つ設定及び状態1321a、文書種類1321b、文書名1321c、ページ数1321dはRAM12b上に展開されるので、これらのデータ(属性)の書き込みおよび読み出しをすることが可能となる。
出力ドキュメントクラス1321から承継した出力開始()1321eは、出力処理を開始するためのトリガーであり、ユーザドキュメントオブジェクト1302Aから呼び出された場合、出力ネットドキュメントクラス1325が出力先にネットワークを介して接続し、予め生成されたユーザ画像を利用して出力先に応じたフォーマットで整形した出力ドキュメントを生成して出力する制御を行う。
また、出力ネットドキュメントオブジェクト1325Aは、出力開始()1321eの引数として受け渡された情報よりネットワークを介した出力先を特定し、実行制御部213を介して利用できるFAX送受信制御部102eやネットワーク通信制御部102fを用いてネットワークへ接続し、出力先にこれから出力する出力文書の登録等の処理を行うことで、後述する出力ページクラス1322や出力画像クラス1324が出力する出力文書を構成するための情報、例えば出力レイアウトや出力画像等を出力先に出力することを可能とする。
出力紙ドキュメントクラス1326は、出力ドキュメントクラス1321のサブクラスであり、プロッタ151bを制御して、出力ページオブジェクト1322Aに出力ドキュメントの出力ページ毎に出力処理する指示を行うクラスである。また、出力紙ドキュメントクラス1326は、実行制御部213にプロッタ151bを制御して出力するよう指示すると共に、プロッタ151bで出力するために適したフォーマットを用意し、出力ドキュメントを用意したフォーマットを利用して出力する処理を行う。
具体的には、この出力紙ドキュメントクラス1326は、出力ドキュメントクラス1321から、属性として状態1321a、文書種類1321b、文書名1321c、ページ数1321dを、操作として出力開始()1321e、入力中断()1321f、入力取消()1321g、入力継続()1321h、終了通知()1321iを承継する。さらに、出力紙ドキュメントクラス1326は、属性として、プロッタ151bから原稿を出力するための設定及び仕様を保持するが、図13では省略する。なお、かかる出力紙ドキュメントクラス1326を実体化したオブジェクトが生成されると、属性として原稿を出力するための設定及び仕様及び状態1321a、文書種類1321b、文書名1321c、ページ数1321dはRAM12b上に展開されるので、これらのデータ(属性)の書き込みおよび読み出しをすることが可能となる。
出力ドキュメントクラス1321から承継した出力開始()1321eは、出力処理を開始するためのトリガーであり、ユーザドキュメントオブジェクト1302Aから呼び出された場合に出力紙ドキュメントクラス1326がプロッタ151bで印刷するためのフォーマットを利用して出力ドキュメントを出力する制御を行う。
また、出力紙ドキュメントクラス1326は、出力開始()1321eが呼び出された場合、印刷する際に、実行制御部213を介して利用できるプロッタ制御部102bでプロッタ151bに対して出力する制御を行う。また、出力ページオブジェクト1322Aに対して、印刷に適したレイアウト及び出力画像の配置を定める旨を指示する。これにより媒体の特性あるいはプロッタ151bによる原稿のハンドリングモードの違いにかかわらず共通した加工処理を行うことができる。さらに、出力紙ドキュメントクラス1326は、ユーザにより入力された設定に基づいて、紙の表のみ、あるいは表裏に印刷するか決定し、決定に従うようにプロッタ151bを制御する指示を行う。
出力LSドキュメントクラス1327は、出力ドキュメントクラス1321のサブクラスであり、ハードディスク等のローカルストレージ内の保存場所を定め、出力ページオブジェクト1322Aに対して出力ドキュメントの出力ページ毎に出力処理する指示を行うクラスである。なお、ローカルストレージ内に出力ドキュメントを保存する際の電子文書のフォーマットに制限を設けるものではない。
具体的には、この出力LSドキュメントクラス1327は、出力ドキュメントクラス1321から、属性として状態1321a、文書種類1321b、文書名1321c、ページ数1321dを、操作として出力開始()1321e、入力中断()1321f、入力取消()1321g、入力継続()1321h、終了通知()1321iを承継する。さらに、出力LSドキュメントクラス1327は、属性として、ローカルストレージに保存するための設定及び仕様を保持するが、図13では省略する。なお、かかる出力LSドキュメントクラス1327を実体化したオブジェクトが生成されると、属性としてローカルストレージに保存するための設定及び仕様及び状態1321a、文書種類1321b、文書名1321c、ページ数1321dはRAM12b上に展開されるので、これらのデータ(属性)の書き込みおよび読み出しをすることが可能となる。
出力ドキュメントクラス1321から承継した出力開始()1321eは、出力処理を開始するためのトリガーであり、ユーザドキュメントオブジェクト1302Aから呼び出された場合に出力LSドキュメントクラス1327がローカルストレージの保存場所を特定し、保存する電子文書のファイル名等を登録し、予め生成されたユーザ画像を利用して保存する際のフォーマットで整形した出力ドキュメントを生成して出力する制御を行う。
また、出力LSドキュメントクラス1327は、出力開始()1321eの引数として受け渡された情報より保存先及び電子文書のファイル名を特定し、実行制御部213を介して利用できる蓄積制御部102cを用いてローカルストレージの保存場所に出力文書の登録等の処理を行うことで、後述する出力ページクラス1322や出力画像クラス1324から出力文書に関する情報、例えば出力レイアウトや出力画像等の出力を可能にする。
出力ページクラス1322は、出力ドキュメントクラス1321で生成される出力ドキュメントを構成する各ページを出力ページとして生成し、レイアウト等のページ毎の設定を出力先に出力するクラスである。出力ページクラス1322は、後述する出力レイアウトオブジェクト1323A及び出力画像オブジェクト1324Aを生成し、出力レイアウトに出力画像を当てはめた構成として出力ページを生成する。
具体的には、この出力ページクラス1322は、属性としてページ番号1322aを有し、操作として出力開始()1322b、終了通知()1322cを有する。なお、かかる出力ページクラス1322を実体化したオブジェクトが生成されると、属性としてページ番号1322aがRAM12b上に展開されるので、これらのデータ(属性)の書き込みおよび読み出しをすることが可能となる。
ページ番号1322aは、この出力ページオブジェクト1322Aが生成するページを示す番号を保持する。つまり出力ドキュメントオブジェクト1321Aが保持するページ数1321dだけ出力ページオブジェクト1322Aを生成するので、出力ページオブジェクト1322Aが割り振られたページを特定するためにページ番号1312aを保持することとなる。
出力開始()1322bは、出力ページクラス1322がページ処理を開始するためのトリガーを与える処理を行う。この出力開始()1322bが、出力ネットドキュメントオブジェクト1325A等の出力ドキュメントクラス1321のサブクラスのオブジェクトから呼び出された場合に、引数として受け渡されたページ番号及びユーザにより受け付けられた設定より定められるページの情報を取得し、取得したページの情報に基づいて出力レイアウトオブジェクト1323A及び出力画像オブジェクト1324Aを生成する。
また、出力ページクラス1322は、出力開始()1322bが呼び出された場合、出力ドキュメントクラス1321が管理する出力ドキュメントから該当するページの情報(以下、出力ページとする)を取得することで生成した出力レイアウトオブジェクト1323Aを用いて出力レイアウト等のページ毎の設定を出力先に出力し、その後出力レイアウトに当てはめる出力画像を保持する出力画像オブジェクト1324Aを生成する。
終了通知()1312cは、各出力画像オブジェクト1324Aが出力ページクラス1322に画像処理が終了したことを通知する処理を行う。この終了通知()1322cが、出力ページクラス1322が生成した全ての出力画像オブジェクト1324Aから呼び出された場合に、出力ページクラス1322はページの処理が全て終了したと判断する。
出力レイアウトクラス1323は、出力ページクラス1322で生成される入力ページに出力画像を当てはめるために用いられるレイアウト(以下、出力レイアウトという)を作成して管理するクラスである。具体的には、この出力レイアウトクラス1323は、属性として仕切り線種類1323a、とじしろ幅1323b、枠消去幅1323c、並べ順1323dを有するが、図10で示した仕切り線種類1003a、とじしろ幅1003b、枠消去幅1003c、並べ順1003dと同様であるため説明を省略する。また、出力レイアウトクラス1323は、操作としてレイアウト作成()1323aを有する。なお、かかる出力レイアウトクラス1323を実体化したオブジェクトが生成されると、属性として仕切り線種類1003a、とじしろ幅1003b、枠消去幅1003c、並べ順1003dがRAM12b上に展開されるので、これらのデータ(属性)の書き込みおよび読み出しをすることが可能となる。
レイアウト作成()1323aは、出力レイアウトオブジェクト1323Aが出力ページに出力画像を適した位置に配置するために設定する処理を行う。このレイアウト作成()1323aが、出力ページオブジェクト1322Aから呼び出された場合に、引数として受け渡された情報から、属性として仕切り線種類1323a、とじしろ幅1323b、枠消去幅1323c、並べ順1323dを設定することで、出力レイアウトが作成される。そして、並べ順1323dにより、出力ページ内に配置される出力画像の数とこれらの並べ順が決定される。
出力画像クラス1324は、出力ページに対して出力レイアウトにより定められた配置に当てはまる画像(以下、出力画像という)を生成して出力するクラスである。具体的には、出力画像クラス1324は、上述したユーザ画像オブジェクト1303Aで生成されたユーザ画像に基づいて生成された出力先に適したフォーマットの出力画像を取得する。また、出力画像クラス1324は、属性として解像度1324a、濃度1324b、カラー1324c、網掛け1324d及び読み込んだ画像の実体を特定する情報を有する。これらは、図10で示した解像度1004a、濃度1004b、カラー1004c、網掛け1004dと同様であるため説明を省略する。また、画像の実体を特定する情報は周知技術のうちどの様な特定方法でも良いため、図13では省略する。また、出力画像クラス1324は、操作として出力開始()1324e、終了通知()1324fを有する。なお、かかる出力画像クラス1324を実体化したオブジェクトが生成されると、解像度1324a、濃度1324b、カラー1324c、網掛け1324d及び読み込んだ画像の実体を特定する情報がRAM12b上に展開されるので、これらのデータ(属性)の書き込みおよび読み出しをすることが可能となる。
また、出力画像とは、出力レイアウトに当てはめる画像をいい、上述した入力画像及びユーザ画像と同様に、出力画像は所定のサイズの画像、本実施の形態ではドキュメントハンドリングの最小単位に分割された画像となる。また、出力画像は、単なる画像のみならず、出力レイアウトにより定められた枠内に表示される文字情報や、図形なども含まれる。
出力開始()1324eは、出力画像クラス1324が画像処理を開始するためのトリガーを与える処理を行う。この出力開始()1324eが、出力ページオブジェクト1322Aから呼び出された場合に、引数として受け渡される情報より、対応するユーザ画像を特定し、ユーザ画像オブジェクト1303Aの利用()1303bを呼び出すことで、ユーザ画像から出力レイアウトに当てはまるよう加工処理された出力画像を受信し、受信した出力画像を出力先に出力する。
図16は、本実施の形態のドキュメントハンドリング部212において「2 in 1」の入力ドキュメントから「4 in 1」の出力ドキュメントを生成するまでの工程を示した説明図である。本図に示すように、ドキュメントハンドリング部212は、ドキュメントをページ毎にレイアウトとレイアウトに当てはめる画像の組み合わせを用いることで画像単位での加工処理が容易になった。
次に、各クラス間の関係について説明する。図17に戻り、各クラスを示す矩形を結ぶ直線は、その両端のクラス間に関係があることを表しており、この直線の両端付近の文字はクラスの役割を、数字はクラスの多重度をそれぞれ示している。ここで、役割とは、かかる直線の両端における、一方のクラスからみた、もう一方のクラスの役割や立場のことであり、多重度とは、かかる直線の両端のクラスから生成されるオブジェクト数の対応関係のことである。
たとえば、ドキュメント操作スケジューラクラス1301からみたユーザドキュメントクラス1302の役割は「要求」であり、ユーザドキュメントクラス1302からみたドキュメント操作スケジューラクラス1301の役割は「受付」であり、ドキュメント操作スケジューラクラス1301の多重度は「1」であり、ユーザドキュメントクラス1302の多重度は「1..*」である。ここで、「1..*」は、かかるユーザドキュメントクラス1302の多重度が、1から上限数なしの範囲であることを示している。また、たとえば、「1..3」の記載をした場合には、かかるクラスの多重度が、1〜3の範囲であることを示す。
そして、本図に示したように、ドキュメントハンドリング部212が実行される場面において、ドキュメント操作スケジューラクラス1301をRAM12b上に展開(実体化)したオブジェクトは1個だけ存在し、このドキュメント操作スケジューラクラス1301の文書処理の要求対象となるユーザドキュメントクラス1302を実体化したオブジェクトは0個以上、上限数なしの範囲で存在する。
次に、ユーザドキュメントクラス1302と入力ドキュメントクラス1311とのクラス関係について説明する。入力ドキュメントクラス1311は、ユーザドキュメントクラス1302からみるとユーザドキュメントを生成するために用いられる入力文書としての役割を有しており、一方、ユーザドキュメントクラス1302は、入力ドキュメントクラス1311からみると加工処理が行われるユーザ文書としての役割を有している。このようなクラス関係により入力された文書から加工対象となる対象となるユーザ文書を生成することが可能となる。
また、ユーザドキュメントクラス1302は、ユーザからの要求毎に生成されるものであるのに対して、入力ドキュメントクラス1311は、ユーザ文書を生成する際に必要な文書の数に応じて生成されて入力処理を行うクラスであるため、ユーザドキュメントクラス1302と入力ドキュメントクラス1311とは1対多の関係を有する。1つのユーザドキュメントを生成する際に複数の入力文書を入力処理する場合とは、例えば、ファックス受信文書と予め蓄積していた電子文書を1つにまとめて印刷するよう要求があった場合等が考えられる。また、このように「紙」文書と「ネット」文書のように入力元が異なる文書を1つにまとめて出力したい場合でも良いし、二つの「ネット」文書のように入力元が同じ複数の入力文書を1つにまとめて出力したい場合でも良い。
次に、入力ドキュメントクラス1311と、入力ネットドキュメントクラス1315、入力紙ドキュメントクラス1316及び入力LSドキュメントクラス1317の関係について説明する。入力ドキュメントクラス1311は、入力ネットドキュメントクラス1315、入力紙ドキュメントクラス1316及び入力LSドキュメントクラス1317の上位クラス(スーパークラス)であり、入力ネットドキュメントクラス1315、入力紙ドキュメントクラス1316及び入力LSドキュメントクラス1317は、入力ドキュメントクラス1311の属性および操作を継承する。
また、入力ドキュメントクラス1311と入力ページクラス1312の関係について説明する。入力ページクラス1312は、入力ドキュメントクラス1311が保持するドキュメントのページ毎に生成されるものである。このため、入力ページクラス1312は、入力ドキュメントクラス1311からみるとページとしての役割を有しており、一方、入力ドキュメントクラス1311は、入力ページクラス1312からみると文書としての役割を有している。
また、入力ドキュメントクラス1311は、入力処理される入力文書毎に生成されるものであるのに対して、入力ページクラス1312はページ毎に生成されるクラスであるため、入力ドキュメントクラス1311と入力ページクラス1312とは1対多の関係を有する。また、入力ページクラス1312は、入力ドキュメントクラス1311に集約される関係を有する。
次に、入力ページクラス1312と入力レイアウトクラス1313との関係について説明する。入力ページクラス1312は、ページ毎に生成されるものであり、入力レイアウトクラス1313は、ページ毎に定められるレイアウトである。つまり、入力レイアウトクラス1313は、入力ページクラス1312からみるとページ毎の枠としての役割を有しており、一方、入力ページクラス1312は、入力レイアウトクラス1313からみる
とページとしての役割を有している。このような関係である以上、入力ページクラス1312と入力レイアウトクラス1313は1対1の関係となる。
また、入力ページクラス1312と入力画像クラス1314の関係について説明する。入力画像クラス1314は、入力ページクラス1312が保持するページのレイアウトに従って分割された領域毎に生成されるものである。このため、入力画像クラス1314は、入力ページクラス1312からみるとページが有する枠に当てはめられる枠内構成物としての役割を有しており、一方、入力ページクラス1312は、入力画像クラス1314からみるとページとしての役割を有している。
また、入力ページクラス1312は、入力ドキュメントのページ毎に生成されるものであるのに対して、入力画像クラス1314はページが有するレイアウトに従って分割された数だけ生成されるクラスであるため、入力ページクラス1312と入力画像クラス1314とは1対多の関係を有する。また、入力画像クラス1314は、入力ページクラス1312に集約される関係を有する。
次に、入力画像クラス1314とユーザ画像クラス1303との関係について説明する。入力画像クラス1314はページが有する枠に従って分割された数だけ生成されるものであり、ユーザ画像クラス1303は入力画像に基づいて加工対象として作成されるものである。つまり、ユーザ画像クラス1303は、入力画像クラス1314からみると作成物としての役割を有しており、一方、入力画像クラス1314は、ユーザ画像クラス1303からみると入力物としての役割を有している。
また、ユーザ画像クラス1303は、入力画像クラス1314に基づいて生成されるものであり、入力画像クラス1314及びユーザ画像クラス1303ともにドキュメントハンドリングの最小単位で分割したものであるため、入力画像クラス1314とユーザ画像クラス1303とは1対1の関係を有する。
また、ユーザドキュメントクラス1302とユーザ画像クラス1303の関係について説明する。ユーザ画像クラス1303は、ユーザドキュメントクラス1302が保持するユーザドキュメントを構成するハンドリングの最小単位となる画像毎に生成されるものである。このため、ユーザ画像クラス1303は、ユーザドキュメントクラス1302からみると構成物としての役割を有しており、一方、ユーザドキュメントクラス1302は、ユーザ画像クラス1303からみると文書としての役割を有している。
また、ユーザ画像クラス1303は、文書を構成する画像毎に生成されるものであるのに対して、ユーザドキュメントクラス1302は文書毎に生成されるクラスであるため、ユーザドキュメントクラス1302とユーザ画像クラス1303とは1対多の関係を有する。また、ユーザ画像クラス1303は、ユーザドキュメントクラス1302に集約される関係を有する。
次に、ユーザドキュメントクラス1302と出力ドキュメントクラス1321とのクラス関係について説明する。出力ドキュメントクラス1321は、ユーザドキュメントクラス1302からみるとユーザの要求に応じた出力形式で出力される出力文書としての役割を有しており、一方、ユーザドキュメントクラス1302は、出力ドキュメントクラス1321からみるとユーザ文書としての役割を有している。このようなクラス関係により加工対象となるユーザ文書から出力文書を生成することが可能となる。
また、ユーザドキュメントクラス1302は、ドキュメント操作スケジューラクラス1301から文書処理毎に生成されるものであり、出力ドキュメントクラス1321は、ユ
ーザの要求に応じた文書毎に生成されるものであり、1つの文書処理要求に基づいて複数の文書を出力することは当然可能である。つまり、ユーザドキュメントクラス1302とユーザ画像クラス1303とは1対多の関係を有する。1つの文書処理要求に基づいて複数の文書を出力する場合とは、例えばユーザがスキャナで読み込んだ文書を「印刷+蓄積」する旨の設定を行った場合等が考えられる。
次に、出力画像クラス1324とユーザ画像クラス1303との関係について説明する。出力画像クラス1324は、出力ページが有する枠に当てはめられる数だけ、ユーザ画像を利用して生成されるものである。つまり、出力画像クラス1324は、ユーザ画像クラス1303からみると出力物としての役割を有しており、一方、ユーザ画像クラス1303は、出力画像クラス1324からみると利用物としての役割を有している。
また、出力画像クラス1324は、ユーザ画像クラス1303に基づいて生成されるものであり、出力画像クラス1324及びユーザ画像クラス1303ともにドキュメントハンドリングの最小単位で分割したものである。また、1つのユーザ画像を複数の出力文書毎に利用される場合や、1つの出力文書中に1つのユーザ画像を複数利用する場合も考えられる。このため、ユーザ画像クラス1303と出力画像クラス1324とは1対多の関係を有する。
また、出力ドキュメントクラス1321と、出力ネットドキュメントクラス1325、出力紙ドキュメントクラス1326及び出力LSドキュメントクラス1327の関係は、入力ドキュメントクラス1311と、入力ネットドキュメントクラス1315、入力紙ドキュメントクラス1316及び入力LSドキュメントクラス1317の関係と同様であるため説明を省略する。
また、出力ドキュメントクラス1321と出力ページクラス1322の関係は入力ドキュメントクラス1311と入力ページクラス1312の関係と、出力ページクラス1322と出力レイアウトクラス1323の関係は入力ページクラス1312と入力レイアウトクラス1313の関係と、出力ページクラス1322と出力画像クラス1324の関係は入力ページクラス1312と入力画像クラス1314の関係と同様であるため説明を省略する。
このように、ドキュメント操作スケジューラクラス1301、入力ドキュメントクラス1311、入力ページクラス1312、入力レイアウトクラス1313、入力画像クラス1314、入力ネットドキュメントクラス1315、入力紙ドキュメントクラス1316、入力LSドキュメントクラス1317、ユーザドキュメントクラス1302、ユーザ画像クラス1303、出力ドキュメントクラス1321、出力ページクラス1322、出力レイアウトクラス1323、出力画像クラス1324、出力ネットドキュメントクラス1325、出力紙ドキュメントクラス1326、出力LSドキュメントクラス1327の各オブジェクトは、相互に関連し合い、協調することによりドキュメントハンドリング部212に必要な機能を実現することが可能となる。
図17は、ドキュメント操作スケジューラオブジェクト1301Aが、文書処理の新規リクエストを受け付けた際に、原稿ハンドリングモードが圧板モードで入力処理を行う場合のドキュメント操作スケジューラクラス1301、ユーザドキュメントクラス1302、入力紙ドキュメントクラス1316、入力ページクラス1312、入力レイアウトクラス1313、入力画像クラス1314及びユーザ画像クラス1303のオブジェクトと、オブジェクト間のメッセージの流れを示したUMLのコラボレーション(協調)図である。ここで、メッセージとは、オブジェクトが内部に有する操作の呼び出しのことであり、たとえば、オブジェクトAがオブジェクトBの操作B1を呼び出したときに、オブジェク
トAはオブジェクトBにメッセージを送信した、ということができる。
そして、あるオブジェクトが別のオブジェクトにメッセージを送信することにより、このメッセージを受信したオブジェクトは、内部の属性(データ)を変化させたり、かかるメッセージに対する応答を返信したり、他のメッセージを送信したりする。このようにして、各オブジェクトは協調して処理を進めていく。
図17に示した協調関係を用いて処理を行うための新規リクエストは、たとえば、コンタクトガラスの上に原稿を配置して、図9に示したコピーキー402を押下した後で、スタートキー408を押下したときに発生し、サービス層102のその他の制御部102gドライバーおよび操作系サブシステム201を経由しドキュメント操作スケジューラオブジェクト1301Aに到達する。なお、本図においては説明を解り易くするために、原稿の繰り返し処理が行われた場合などで複数生成される入力ページオブジェクト1312A等の記載は省略している。
まず、本図に付された各記号の説明をする。内部にアンダーラインを伴った文字列を有する矩形はオブジェクトを示し、アンダーラインを伴った文字列のうちコロン(:)を含むものは、コロンより前がオブジェクト名を、コロンより後ろが、かかるオブジェクトが属するクラスを示す。そして、矢印はオブジェクト間のメッセージを示し、この矢印の近辺に記された、たとえば、「1:ドキュメント登録」の文字列は、「1」が本図中におけるメッセージの相対的順序を示し、「ドキュメント登録」がかかるメッセージの内容を示す。また、各オブジェクトを結ぶ線は、各オブジェクトに関係があることを示しており、かかる線に沿って、たとえば、オブジェクト生成メッセージなどのメッセージの送受信がおこなわれる。
まず、ドキュメントの処理を要求する人(ユーザ)が複合機1を操作して、紙文書をネットワーク上のコンピュータに送信する旨を入力すると、操作系サブシステム201は、ユーザが入力した上述した文書処理を行う旨のリクエストをドキュメント操作スケジューラオブジェクト1301Aに送信する(ステップS1701)。具体的には、操作系サブシステム201からの要求をリクエスト管理部211がリクエスト要求として受け付ける。そして、リクエスト管理部211が文書の処理先にリクエストを登録するためにドキュメントハンドリング部212のドキュメント操作スケジューラオブジェクト1301Aのドキュメント登録()1301aを呼び出す。
そして、ドキュメント操作スケジューラオブジェクト1301Aは、文書処理を行うユーザドキュメントクラス1302のオブジェクトを生成し、生成されたユーザドキュメントオブジェクト1302Aの文書処理開始()1302aを呼び出して、文書処理の開始をメッセージとして送信する(ステップS1702)。また、生成は、すべてのオブジェクトが有する操作であり、生成することで各オブジェクトはRAM12b上に実体化される。
文書処理の開始を受信したユーザドキュメントオブジェクト1302Aは、入力開始()1311aで引数として受け渡された情報から入力元を特定し、入力先に応じた入力ドキュメントクラス1311のサブクラスを生成する。なお、本図で示す例としては、入力元が紙文書の場合とし、生成されるオブジェクトは、入力ドキュメントクラス1311のサブクラスである入力紙ドキュメントクラス1316のオブジェクトとする。
そして、ユーザドキュメントオブジェクト1302Aは、生成された入力紙ドキュメントオブジェクト1316Aの入力開始()1311eを呼び出して紙文書の入力処理を開始するメッセージを送信する(ステップS1703)。
入力紙ドキュメントオブジェクト1316Aは、要求に応じて実行制御部213を通じてスキャナ151aを制御し、紙文書を読み込んで入力処理を開始する。そして、入力紙ドキュメントオブジェクト1316Aは、読み込んだ紙文書のページ毎に入力ページオブジェクト1312Aを生成し、生成された入力ページオブジェクト1312Aの入力開始()1312bを呼び出して、読み込んだ紙文書のページ毎の入力処理の開始を要求するメッセージを送信する(ステップS1704)。
次に、入力ページオブジェクト1312Aは、ページの入力処理を開始し、まず入力レイアウトオブジェクト1313Aを生成し、生成された入力レイアウトオブジェクト1313Aのレイアウト作成()1313eを呼び出して、ユーザにより入力された設定に基づいて、生成された入力レイアウトオブジェクト1313Aの属性を設定する(ステップS1705)。そして、入力レイアウトオブジェクト1313Aは、ページ毎に定められる入力画像の配置及び数等のレイアウトに関する情報を、入力ページオブジェクト1312Aにメッセージとして送信する(ステップS1706)。
そして、入力ページオブジェクト1312Aは、入力レイアウトオブジェクト1313Aにより定められた入力ページ毎の入力画像の数だけ、入力画像オブジェクト1314Aを生成し、生成された入力画像オブジェクト1314Aの入力開始()1314eを呼び出して、入力画像オブジェクト1314Aに入力画像の入力処理の開始を要求するメッセージを送信する(ステップS1707)。
次に、入力画像オブジェクト1314Aは、文書処理部(実行系サブシステム203)の入力開始()を呼び出して、紙文書を入力処理した後にこの入力処理された画像情報の送信を要求する旨のメッセージを送信する(ステップS1708)。そして、入力画像オブジェクト1314Aは、入力処理された画像情報に対応するユーザ画像オブジェクト1303Aを生成し、作成()1303aを呼び出して、ユーザ画像の実体の生成を開始する(ステップS1709)。
そして、文書処理部(実行系サブシステム203)は、紙文書を入力処理した画像情報を入力画像オブジェクト1314Aにメッセージとして送信する(ステップS1710)。次に、入力画像オブジェクト1314Aは、受信した画像情報をユーザ画像オブジェクト1303Aに画像情報設定をメッセージとして送信する(ステップS1711)。
そして、文書処理部(実行系サブシステム203)が入力処理した画像情報の送信が終了した場合、入力画像オブジェクト1314Aの終了通知()1314fを呼び出して、画像処理が終了したことを通知する(ステップS1712)。そして入力画像オブジェクト1314Aは、画像処理の終了したことを受信した場合、ユーザ画像オブジェクト1303Aに画像情報の送信を全て終了した後に、入力ページオブジェクト1312Aの終了通知()1312cを呼び出して、画像の入力処理が終了したことをメッセージ送信する(ステップS1713)。
次に、入力ページオブジェクト1312Aは、生成した全ての入力画像オブジェクト1314Aから画像の入力処理が終了したことを受信した場合、入力紙ドキュメントオブジェクト1316Aの終了通知()1311iを呼び出して、ページの入力処理が終了したことをメッセージとして送信する(ステップS1714)。
そして、入力紙ドキュメントオブジェクト1316Aは、ページの入力処理が終了したと判断した場合、次原稿有無確認()1316cを呼び出して、次原稿が存在するか否か確認を開始する(ステップS1715)。
次に、入力紙ドキュメントオブジェクト1316Aは、操作系サブシステム201に対して次の原稿があるかどうか確認を行う(ステップS1716)。そして、ドキュメントの処理を要求する人が、次原稿を設定するか否かにより次の処理が異なる。
ドキュメントの処理を要求する人が、次原稿を設定した場合、操作系サブシステム201から、次原稿有りというメッセージが送信される(ステップS1717)。そして入力紙ドキュメントオブジェクト1316Aが、次原稿有りというメッセージを受信した場合、ステップS1704からステップS1716までの処理を繰り返すことになる。
また、ドキュメントの処理を要求する人が、次原稿を設定せずにログアウトした場合、操作系サブシステム201から、次原稿無しというメッセージが送信される(ステップS1718)。そして、入力紙ドキュメントオブジェクト1316Aが、次原稿無しというメッセージを受信した場合、ユーザドキュメントオブジェクト1302Aの終了通知()1302bを呼び出して、入力処理が終了した旨のメッセージを送信する(ステップS1719)。
そして、ユーザドキュメントオブジェクト1302Aは、入力処理が終了したと判断して出力処理を開始する。
図18は、ドキュメント操作スケジューラオブジェクト1301Aが、文書処理の新規リクエストを受け付けた際に、原稿ハンドリングモードがADFモードで入力処理を行う場合のドキュメント操作スケジューラクラス1301、ユーザドキュメントクラス1302、入力紙ドキュメントクラス1316、入力ページクラス1312、入力レイアウトクラス1313、入力画像クラス1314及びユーザ画像クラス1303のオブジェクトと、オブジェクト間のメッセージの流れを示したUMLコラボレーション図である。
本図に示されたADFモードにおける入力処理は、図17のステップS1701〜S1715と同様にして、リクエストされた文書処理を行うために、文書入力処理部(実行系サブシステム203)から紙文書を入力処理した画像情報をユーザ画像オブジェクト1303Aに送信して終了通知を送信し、さらに次原稿有無確認()1316cを呼び出して、次の原稿があるか否か確認の要求を送信する(ステップS1801〜S1815)。
そして、実行系サブシステム203のデバイス情報管理部は、ステップS1815の次原稿有無確認()1316cと非同期で自動原稿送り装置を制御して次の原稿があるか否か確認している。次の原稿がある場合、デバイス情報管理部が入力紙ドキュメントオブジェクト1316Aに対して、次原稿有りというメッセージを送信する(ステップS1816)。これは非同期であるため、次原稿有無確認()1316cが呼び出される前に送信されている。これにより、入力紙ドキュメントオブジェクト1316Aが、次の原稿があるか否か確認の要求を受信した際、デバイス情報管理部から次原稿有りというメッセージを受信していれば、ステップS1804からステップS1815までの処理を繰り返すことになる。
また、次の原稿がない場合、デバイス情報管理部が入力紙ドキュメントオブジェクト1316Aに対して、次原稿無しというメッセージを送信する(ステップS1817)。これにより、入力紙ドキュメントオブジェクト1316Aが、次原稿があるか否か確認の要求を受信した際、デバイス情報管理部から次原稿無しというメッセージを受信していれば、ユーザドキュメントオブジェクト1302Aに入力処理が終了した旨のメッセージを送信して終了する(ステップS1818)。そして、ユーザドキュメントオブジェクト1302Aは、入力処理が終了したと判断して出力処理を開始する。
図19は、ドキュメント操作スケジューラオブジェクト1301Aが、入力処理が終了した後にローカルストレージ上に出力処理を行う場合のドキュメント操作スケジューラクラス1301、ユーザドキュメントクラス1302、出力LSドキュメントクラス1327、出力ページクラス1322、出力レイアウトクラス1323、出力画像クラス1324及びユーザ画像クラス1303のオブジェクトと、オブジェクト間のメッセージの流れを示したUMLコラボレーション図である。
まず、ユーザドキュメントオブジェクト1302Aは、出力先に応じた出力ドキュメントクラス1321のサブクラスを生成する。なお、本図に示す例としては、出力先がローカルストレージの場合とし、生成されるオブジェクトは、出力ドキュメントクラス1321のサブクラスである出力LSドキュメントオブジェクト1327Aとする。
そして、ユーザドキュメントオブジェクト1302Aは、生成された出力LSドキュメントオブジェクト1327Aの出力開始()1321eを呼び出して電子文書の出力処理を開始するメッセージを送信する(ステップS1901)。
出力LSドキュメントオブジェクト1327Aは、要求に応じて実行制御部213を通じて実行系サブシステム203の蓄積文書管理部に対して文書の登録を要求する(ステップS1902)。そして蓄積文書管理部は、サービス層の蓄積制御部102cを通じて電子文書を登録する。
次に、出力LSドキュメントオブジェクト1327Aは、実行系サブシステム203の蓄積文書管理部に対してページの追加を要求する(ステップS1903)。具体的には出力処理するページ数分の容量を確保するように要求をする。なお、出力処理するページ数は、入力処理したページ数と、「2 in 1」などの利用者が入力した設定から割り出すことが出来る。
次に、出力LSドキュメントオブジェクト1327Aは、出力処理するページ毎に出力ページオブジェクト1322Aを生成し、生成された出力ページオブジェクト1322Aの出力開始()1322bを呼び出して、ページ毎の出力処理の開始を要求するメッセージを送信する(ステップS1904)。
次に、出力ページオブジェクト1322Aは、ページの出力処理を開始し、まず出力レイアウトオブジェクト1323Aを生成し、生成された出力レイアウトオブジェクト1323Aのレイアウト作成()1323eを呼び出して、ユーザにより出力された設定に基づいて、生成された出力レイアウトオブジェクト1323Aの属性を設定する(ステップS1905)。そして、出力レイアウトオブジェクト1323Aは、ページ毎に定められる出力画像の配置及び数等のレイアウトに関する情報を、出力ページオブジェクト1322Aにメッセージとして送信する(ステップS1906)。
そして、出力ページオブジェクト1322Aは、出力レイアウトオブジェクト1323Aにより定められた出力ページ毎の出力画像の数だけ、出力画像オブジェクト1324Aを生成し、生成された出力画像オブジェクト1324Aの出力開始()1324eを呼び出して、出力画像オブジェクト1324Aに出力画像の出力処理の開始を要求するメッセージを送信する(ステップS1907)。
次に、出力画像オブジェクト1324Aは、ユーザ画像オブジェクト1303Aの利用()1303bを呼び出して、入力処理で作成されたユーザ画像を利用する(ステップS1908)。
そして、ユーザ画像オブジェクト1303Aは、出力画像に適した画像変換仕様を用いて画像情報を変換し、出力画像オブジェクト1324Aに利用可能である旨のメッセージを送信する(ステップS1909)。その後、さらにユーザ画像オブジェクト1303Aは、画像情報を送信する。
次に、出力画像オブジェクト1324Aは、受信した画像情報を、実行系サブシステム203の画像処理部に出力する(ステップS1910)。そして、画像処理部は画像情報の受信が終了した後、出力画像オブジェクト1324Aの終了通知()1324fを呼び出して、画像処理が終了した旨を示すメッセージを送信する(ステップS1911)。
そして、出力画像オブジェクト1324Aは、ユーザ画像オブジェクト1303Aに利用が終了した旨を示すメッセージを送信する(ステップS1912)。次に、出力画像オブジェクト1324Aは、出力ページオブジェクト1322Aの終了通知()1322cを呼び出して、画像の出力処理が終了したことをメッセージ送信する(ステップS1913)。
次に、出力ページオブジェクト1322Aは、生成した全ての出力画像オブジェクト1324Aから画像の出力処理が終了したことを受信した場合、出力LSドキュメントオブジェクト1327Aの終了通知()1321iを呼び出して、ページの出力処理が終了したことをメッセージ送信する(ステップS1914)。
そして、ステップS1904〜S1914までの処理を出力処理するページ毎に繰り返し実行する。
出力処理する全てのページに対してステップS1904〜S1914までの処理が終了した場合、出力LSドキュメントオブジェクト1327Aは、蓄積文書管理部に対して終了通知を行う(ステップS1915)。これにより、蓄積文書管理部は、出力処理した全ての画像を含んだ電子文書の書き込みを終了させる。
次に出力LSドキュメントオブジェクト1327Aは、ユーザドキュメントオブジェクト1302Aの終了通知()1302bを呼び出して出力処理を終了する(ステップS1916)。
上述した図17、図18及び図19のコラボレーション図で示したように、本実施の形態では、文書処理を行うにあたり、ドキュメント操作スケジューラクラス1301と、入力ドキュメントクラス1311及びこのサブクラスと、入力ページクラス1312と、入力レイアウトクラス1313と、入力画像クラス1314と、出力ドキュメントクラス1321とこのサブクラスと、出力ページクラス1322と、出力画像クラス1324と、出力レイアウトクラス1323と、ユーザ画像クラス1303とから構成され、各クラスから生成されたオブジェクトで文書の入力処理及び出力処理を行うことで文書処理が可能となる。そして画像毎に文書処理を可能とするため加工処理が容易になる。また、オブジェクト指向設計により、かかるドキュメントハンドリング部212の仕組みを構築し、図7で示したような概念に基づいてオブジェクトモデリングをおこない、文書処理に必要なクラスとして上述したクラスを用いることで、かかるドキュメントハンドリング部212を実現したので、ソフトウェア開発者やソフトウェア保守要員が、ドキュメントハンドリング部212の構成と役割を容易に把握することができるとともに、汎用性及び信頼性の高い文書処理をおこなうことができる。
なお、本実施の形態の画像形成装置で実行される文書処理プログラムは、インストール
可能な形式または実行可能な形式のファイルでCD−ROM(Compact Disc Read Only Memory)、フレキシブルディスク(FD)、CD−R(CD Recordable)、DVD(Digital Versatile Disk)などのコンピュータで読み取り可能な記録媒体に記録して提供するよう構成してもよい。この場合、CPU11が上記記憶媒体から、文書処理プログラムを読み出してMEM−P12上にロードすることで、画像形成装置に、上述した各ステップ、各手段または各部を実現させる。
また、文書処理プログラムを、インターネットなどのネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するよう構成してもよい。さらに、かかる文書処理プログラムをインターネットなどのネットワーク経由で提供または配布するようにしてもよい。
上述した構成は、本発明の文書処理装置、画像形成装置及び文書処理プログラムの一例を示したものであり、上述した構成に制限するものではない。
また、本実施の形態を、ドキュメントを「紙」ドキュメント、「ネット」ドキュメント及び「LS」ドキュメントに制限するものではなく、光あるいは磁気(CD−ROM/RAM、DVD―ROM/RAM、磁気テープ、フロッピーディスク、スマートカード)、赤外線(IrDA等)、音声などでも良い。
本実施の形態のドキュメントハンドリング部212は、文書を保持する構成として、ドキュメントをページ毎に分割し、さらにページにレイアウトを設定し、レイアウトに応じて画像を分割した構成で文書データを保持するため、柔軟に配置の変更等を行うことが可能になったので、利用者の要求に応じた加工処理が容易になる。
そして、本実施の形態のドキュメントハンドリング部212は、オブジェクト毎に分割して設計し、上述した構成を備えることとした。これによりプログラムの変更が生じた場合そのクラス等のみ変更を加えればよい。このため従来は機能が拡張されると設計者の作業量もこれに比例していたが、上述した構成を備えたことで作業量が低減される。
また、従来の文書処理を行う部分は、アプリケーション毎に設計されていたが、上述した構成を備えたことでアプリケーション毎という概念が無くなったため、設計の効率が向上した。また、アプリケーション毎に文書処理を行う場合では、出力先毎に同じ設定を行ったにもかかわらず、アプリケーション毎の処理の違いにより、出力先毎にレイアウトが異なる(より詳細な例としてはヘッダまたはフッタの間隔が異なる)文書が出力されるという問題があった。しかし、本実施の形態にかかるドキュメントハンドリング部212は、上述した構成を備えることでアプリケーション毎に処理を行うという概念が無くなったため、異なるレイアウトの文書が出力されるという問題を解消し、信頼性が向上した。
上述した構成を備えることで、入力元あるいは出力先が増加した場合、従来はアプリケーション毎に入力先あるいは出力先に関する機能を追加する必要があったが、本発明により入力元あるいは出力先に相当する入力ドキュメントクラス1311あるいは出力ドキュメントクラス1321のサブクラスを追加するだけで機能の拡張が可能となる。これにより新機能追加した場合の作業量が低減することとなる。