以下、本発明の好適な実施形態について添付の図面を参照して詳細に説明する。
<動作概要>
まず、実施形態による差し替え用ページのプリント処理の概要を説明する。例えば、図36の(A)に示すように、あるドキュメントのバージョンVer1.0のプリントアウトを行った紙原稿が手元にあるとする。このドキュメントのプリントアウトを行った後に、このドキュメントに対して図35の(A),(B)で説明したの同じ内容の修正が加わり、ドキュメントのバージョンがVer1.1になったとする。
まず、VER1.0の紙原稿をスキャンし、変更部分の認識を自動的に行う。そして、変更の無かった部分に関しては、出来る限り紙原稿と同様なページレイアウトとなるように、レイアウトの構成を変更する。その結果、図36の(B)に示すように、Ver1.1での修正部分として必要なページは、1から3ページであることがわかる。すなわち、4ページ目以降は既にプリントアウトを行っているVer1.0の紙原稿中に同様の内容で記載されている為、新たなプリントアウトの必要は無い。また、本実施形態では、Ver1.1の4ページ目以降が紙原稿の3ページ目以降と同様のページレイアウトとなるように、ページレイアウトが調整される。
よって、紙原稿の1ページ目と2ページ目を廃棄し、電子データとして出来上がっているVer1.1の1から3ページまでのプリントアウトを行って差し替えを行えばよいことになる。しかし、この状態では、図36の(C)に示すように、紙原稿の3ページ目と新たに出力を行ったVer1.1の3ページ目とが存在し、ページ番号の重複が起こってしまう。
その為、本実施形態では、差し替え用のページのプリントアウトを行う際にページ番号の重複を避けるために、独自のアルゴリズムによりサブナンバーを使用することとした。その結果、差し替え用のプリントアウトでは、ページ番号は図36の(D)に示されるように付与され、ページ番号の重複が防止されると供に、差し替え時の挿入場所を明確に作業者に伝えることが可能となる。
よって、本実施形態のプリントシステムにおいて、手持ちのドキュメントの紙原稿を最新のバージョンに差し替えを行う際の作業内容は、図37のフローチャートに示すようになる。
まず、ステップS3701において、プリントシステムの使用者により、紙原稿がスキャナのオートドキュメントフィーダー(以降ADFとする)にセットされ、所定の設定が行われる。その後、ステップS3702において、全原稿がスキャンされる。該装置は、スキャン終了後、最新バージョンの電子データとスキャンして得た原稿画像とを比較し、ステップS3703において、操作部の表示部に紙原稿から廃棄対象となるページ番号を表示する。なお、挿入するべきページ(差し替え用としてプリントされるページ)を併せて表示するようにしてもよい。そして、ステップS3704において、最新バージョンのドキュメントへ差し替えるために必要となるページのプリントアウトが行われる。プリントアウトが終了すると、使用者は表示部によって指示されたページを紙原稿から取り除き、ステップS3704で新たにプリントアウトされた出力原稿を、付与されているページ番号を元に手持ちの紙原稿に挿入していく。こうして差し替えの作業を完了することとなる。また、実施形態においては、紙原稿からの差し替えが最小限となるようにページレイアウトがなされる。また、差し替え用のページのプリントアウトを行う際には、差し替えを行う必要のあるページの前後のページナンバーから、新たにプリントアウトを行うページの番号が決定される。そして、ページ番号は、紙原稿の廃棄されないページのページ番号と重複しないように設定される。以下、上記の処理について詳細に説明する。
(第1実施形態)
<プリントシステム>
図1は本実施形態のシステムの基本となるプリントシステムの構成を示す図である。
ネットワーク103には、記録装置としてのMFP(マルチファンクション複合機)100、MFP100を制御するマネージメントPC101が接続されている。また、ネットワーク103には、ドキュメント作成等を行うPC107、画像管理サーバ105、画像管理サーバ105のための画像データベース104が接続されている。なお、本実施形態では、MFP100とマネージメントPC101は、専用のインターフェース102を介して直接接続されているものとする。また、画像管理サーバ105と画像データベース104は、専用のインターフェース106を介して直接接続されているものとする。
MFP100は、原稿から読み取った入力画像に対する画像処理の一部を担当し、処理結果としての画像データはインターフェース102を通じてマネージメントPC101に入力される。マネージメントPC101は、画像記憶部、画像処理部、表示部、入力部等を含む通常のコンピュータである。本実施形態では、マネージメントPC101とMFP100を別々の装置でシステムを構成しているが、これらは1つの装置で構成されても構わない。なお、本実施形態では、MFP100において下記に記載のブロックセレクション処理や、パターンマッチング処理などが実行されるものとするがこれに限られるものではない。例えば、マネージメントPC101で実行するようにしてもよい。
<MFP100について>
図2はMFP100の構成を説明するブロック図である。図2において、MFP100は、図示しない自動原稿供給装置(ADF)を有する画像読み取り部200を備える。画像読み取り部200は、ADFにより読取位置へ搬送された原稿を光源で照射し、その反射画像をレンズで固体撮像素子上に結像する。固体撮像素子は所定解像度(例えば600dpi)および所定濃度レベル(例えば8ビット)の画像読み取り信号を生成する。そして、この画像読み取り信号から、ラスターデータよりなる画像データが構成され、記憶装置201に格納される。
MFP100は、記憶装置201および記録装置202を有する。通常の複写機能を実行する際には、データ処理装置205は、画像読取部200で得られた画像データを画像処理して記録信号に変換し、記録装置202に順次出力して、記録紙上に記録画像を形成する。また、複数枚を複写する場合には、1ページ分の記録信号を一旦記憶装置201に記憶保持し、記録装置202に順次出力して記録画像を形成していく。
また、MFP100は、ネットワーク103との接続のためのネットワークI/F204を有し、PC107からネットワーク103を介してイメージデータを取得し、記録装置202を用いて記録紙上に記録することができる。すなわち、PC107から出力されたイメージデータはネットワーク103からネットワークI/F204を経てMFP100に取り込まれる。データ処理装置205は、このイメージデータを記録装置202で記録可能な記録信号に変換し、記録装置202を用いて記録紙上に記録画像として記録する。
MFP100は、MFP100に設けられたキー操作部(入力装置203)、あるいはマネージメントPC101の入力装置(キーボード、ポインティングデバイス等)を通じて操作される。これらの操作のために、データ処理装置205 は内部の制御部(不図示)によって所定の制御を実行する。また、MFP100は表示装置206を有し、操作入力の状態と、処理すべきイメージデータとを、表示装置206によって表示する。
なお、記憶装置201は外部I/F207、専用インターフェース102を介して、マネージメントPC101から直接制御され得る。専用インターフェース102は、MFP100とマネージメントPC101との間のデータの授受、制御信号の授受に用いられる。
<画像データベースと画像管理サーバ>
画像データベース104は、PC107で作成されたドキュメント内で使用されている文章や表、図や階調画像などの画像データを格納する。画像データベース104には、各画像データに関して、後に記載を行う各種付加情報も一緒に格納されている。また、画像管理サーバ105は、画像データや付加情報の管理を行う。
以上が、本実施形態にて使用されるプリントシステムの構成と、各部分の役割となる。次に、データ処理装置205、もしくはマネージメントPC101で行われる幾つかの画像処理に関しての説明を行う。
<ブロックセレクション処理>
ブロックセレクション処理について図3を参照して説明する。ブロックセレクション処理(領域分割処理)は、入力された、図3の(A)に示すような1ページの画像データについて解析を行い、図3の(B)に示すように、入力画像を属性ごとに矩形ブロックに分類する処理である。矩形ブロックには、例えば、文字領域(TEXT)、表領域(TABLE)、画像領域(IMAGE)等がある。以下、ブロックセレクション処理の例について詳細な説明を行う。
本実施形態のブロックセレクション処理においては、まず入力画像を白黒に2値化し、黒画素輪郭で囲まれる画素塊を抽出する。さらに、このように抽出された黒画素塊の大きさを評価し、大きさが所定値以上の黒画素塊の内部にある白画素塊に対する輪郭追跡を行う。白画素塊に対する大きさ評価、内部黒画素塊の追跡というように、内部の画素塊が所定値以上である限り、再帰的に内部画素塊の抽出、輪郭追跡を行う。画素塊の大きさは、例えば画素塊の面積によって評価される。
このようにして得られた画素塊に外接する矩形ブロックを生成し、矩形ブロックの大きさ、形状に基づきその属性を判定する。例えば、縦横比が1に近く、大きさが一定の範囲の矩形ブロックは文字領域矩形ブロックの可能性がある文字相当ブロックとする。そして、近接する文字相当ブロックが規則正しく整列している場合は、これら文字相当ブロックを纏めた新たな矩形ブロックを生成し、この新たな矩形ブロックを文字領域矩形ブロックとする。また、一定大きさ以上でかつ四角形の白画素塊を整列よく内包する黒画素塊を表領域矩形ブロック、それ以外の不定形の画素塊を画像領域矩形ブロックとする。
<ブロック情報抽出処理>
ブロック情報抽出処理では、上述のブロックセレクション処理によって、図3(B)のように生成された矩形ブロックのそれぞれについて、図4に示すようなブロック情報を取得し、入力ファイル情報を生成する。すなわち、各ブロックはブロック情報と、当該ブロックの画像情報とを含む。
図4の401〜408に示すように、ブロック情報は各ブロックについて、ブロック番号、属性、位置(座標X、座標Y)、大きさ(幅W、高さH)、内容(カラーかモノクロデータか、及び文字が含まれているか否か)を示す情報を含む。また、ブロック情報は、ブロックの属性がTEXTやTABLEであればそれらブロック内のテキスト内容を示す情報を、その他の情報409として含む。或いは、ブロックの属性がIMAGEであれば、当該イメージのヒストグラム情報や、線画であるか階調画像であるかの区別等を、その他の情報409として含む。
本実施形態におけるブロックの属性(402)は文字領域(TEXT)、表領域(TABLE)、画像領域(IMAGE)で与えられる。また、座標X(403)、座標Y(404)は入力画像における各矩形ブロックの始点のX、Y座標(左上角の座標)である。本実施形態では、X座標を横方向、Y座標を縦方向とする。なお、本実施形態では、ブロック番号(401)は、Y座標の値が小さいものから順に、Y座標の値が同じ場合はX座標の値の小さいものから順に小さなブロック番号を付与していくこととする。また、ブロックの大きさを表す幅W(405)は矩形ブロックのX座標方向の大きさであり、高さH(406)は矩形ブロックのY座標方向の大きさである。
また、ブロック情報には、ブロック内の画像がカラーかモノクロかを示す情報(407)が含まれる。また、各ブロック内に文字が存在すると判断した場合は、その文字に対してOCR処理を実行する。このため、ブロック情報には、ブロック内に文字データが含まれているか否かを示す情報(408)が含まれている。また、その他の情報(409)として、後に説明を行うパターンマッチング時に使用する各種情報の抽出を行い、画像データと供に格納しておく。各種情報とは、文字領域、表領域、画像領域のそれぞれの属性によって異なる情報を持つこととなる。
例えば、文字領域に関しては、領域内の文字データに対してOCR処理を行った結果のテキストデータがその他の情報409として含まれる。表領域に関しては、文字データが含まれる場合には表領域内の文字データに対して、OCR処理を行った結果のテキストデータが含まれる。画像領域に関しては、領域内の画像データのヒストグラムや、ヒストグラムから想定した線画像もしくは階調画像の区別などが含まれる。
図5は、ブロック情報抽出処理を示すフローチャートである。
まず、ステップS501において、ブロックセレクション処理が行われた結果を入力する。ブロックセレクション処理が行われた結果には、各ブロックの属性、座標X、座標Y及び、幅W、高さH、ブロック内の文字有無といった情報が含まれる。これらは図4のブロック情報にそのまま用いることができる。次に、ステップS502において、座標X、座標Y及び、幅W、高さHの情報を元に、ページ内の情報抽出対象となるブロックの画像データをメモリ内から切り出す。以下、順次切り出したブロックの画像データに関して、各種情報の抽出を行う。
まず、ステップS503において、カラー/モノクロ判定を行う。この判定は、画像データ内のRGBデータの値を元に行われるう。例えば、各色のデータ値をRn、Gn、Bnとした場合、Rn−Gn、Gn−Bn、Bn−Rnの各値の絶対値が、それぞれ予め設定された値(ΔNr-g、ΔNg-b、ΔNb-r)よりも小さい場合はモノクロ画像、大きい場合はカラー画像であると判断する。なお、本実施形態では、このような方法によりカラー/モノクロ判定を行っているが、回路規模やソフトでの処理速度を考慮して、より簡略化した方法で行っても良い。或いは、カラー/モノクロの判定精度を高めるために、より高度な方法によって判定を行っても良い。
ブロック情報のその他の情報に関しては、各領域の属性ごとに異なる情報を取るので、ブロック(画像データ)の属性に応じてフローが分岐する。
まず、切り出した画像データが文字領域(属性がTEXT)と判断されている場合、処理はステップS504からステップS505へ進む。ステップS505では、画像データに対してOCR処理を行い、そのブロック内の文字情報をテキストデータとして認識する。そして、ステップS506において、OCR処理で得られたテキストデータをその他の情報409として、すなわち文字領域の情報として登録する。なお、このとき、文字の有無を示す情報(408)を「有」とする。
ステップS502で切り出されたブロックが文字領域でなく表領域(属性がTABLE)と判断された場合は、ステップS504、ステップS507を経てステップS508に処理が進む。ステップS508では、その領域内に文字データが存在するか否かを判断する。ステップS508で領域内に文字データが存在すると判断された場合、処理はステップS509に進み、当該画像データについてOCR処理を行う。こうして、そのブロック内の文字情報をテキストデータとして認識し、それをその他の情報409としてブロック情報に登録する。なお、このとき、文字の有無を示す情報(408)を「有」とする。
ステップS508において領域内に文字データが存在しないと判断された場合、処理はステップS508からステップS511へ進む。ステップS511では、表領域であるがその領域内に文字データが存在しないと判断された画像に関して、表の行と列がそれぞれ幾つずつあるかをカウントする。そして、ステップS510において、その情報を当該表領域のその他の情報409として、表領域の情報としてブロック情報に登録する。こうして、表領域のデータ(ブロック情報)の作成が行われる。なお、この場合、文字の有無を示す情報(408)は「無」となる。
ステップS502で切り出されたブロックが文字領域でも表領域でもないと判断された場合、当該ブロックは画像領域(属性がIMAGE)であると認識され、処理はステップS504、S507を経てステップS512へ進む。ステップS512では、当該ブロックの画像データについてヒストグラムを作成する。そして、ステップS513では、当該ブロックの画像データが線画像もしくは階調画像の何れであるかが判断される。その後、ステップS514では、ステップS512で作成されたヒストグラムやステップS513の判定結果をその他の情報409としてブロック情報に記録する。こうして画像領域のデータ(ブロック情報)の作成が行われる。
ここで、ステップS512におけるヒストグラムの作成に関して、図6を参照して説明する。本実施形態におけるヒストグラムの作成方法は以下のとおりである。
RGB画像データのそれぞれに関して、0から255の輝度レベルが何画素ずつ含まれているかをカウントし、図6のように線グラフで表せるようにする。具体的には、0から255までの値ごとに、それぞれカウンタを持たせ、メモリ内の画像データを1画素ずつ順次入力し、その画素値に対応するカウンタをインクリメントしていく。全ての画素のカウントが終了した時点で、ヒストグラム用のデータが集計できたことになる。
また、線画像か階調画像かの判断は、例えば、上記ヒストグラムのデータを用いて行うことが出来る。階調画像の場合、画像中に使用されているRGBの値は階調性を持って変化するため、ヒストグラムは図6に示すようにカーブが全体的に連続した状態で表される。一方、線画像の場合、RGBの値が一定の色によって構成されるため、図7に示されるようにある値が突出した形となる。よって、ヒストグラムのデータから、上記2つの特徴を見分けることによって、線画像である階調画像であるかの判断が出来る。
より具体的には、本実施形態では、ヒストグラムのピークとなっている点をデータ内から抽出し、その前後数レベル以内に、全体の画素数のうちの何パーセントの画素が含まれているかを各ピークごとに算出し、それらの合計値を算出する。そして、算出された合計値をピークとして抽出された場所の個数で割った値が予め設定してある値より大きければ線画像、小さければ階調画像と判断する。
なお、本実施形態では、以上の項目をそれぞれの領域におけるその他の情報としたがこれに限られるものではない。例えば、文字領域や表領域中の文字に関する文字数、フォントの種類、文字サイズ、表領域の各列、各行の幅、表を構成する線の幅、画像領域のエッジ情報などを、その他の情報の項目として加えても良い。それによって、後に上記の各種情報を元に行われるパターンマッチング処理をより迅速且つ正確に行うことが可能となる。
<複数ページに渡るブロックセレクションと情報抽出処理>
本実施形態では、複数ページから構成されているドキュメントに対してブロックセレクション及び、情報抽出処理を行い、その後のパターンマッチングやページレイアウト時のデータとして使用する。そこで、図8及び図9を用いて、複数ページに渡ってブロックセレクション処理を行った場合の情報管理方法について説明する。
図8において、(A)は複数ページの画像データを表した図であり、(B)はそれに対してブロックセレクション処理を実行した場合の各領域へのブロック番号の振られ方を示した図である。本例では、ブロック番号は全ページに渡って通し番号で振られるものとする。そして、各ページ内では、上述したように、各矩形ブロックの位置(X、Y座標)から、Y座標の値が小さいものから小さなブロック番号を、Y座標の値が同じ場合は、X座標の値の小さいものから小さなブロック番号を付与していく。
図9は、各ページ内の各ブロックに関して情報抽出処理を行った結果の例を示す図である。抽出されるブロック情報に関しては、図4において説明を行っている1ページ内の各ブロックの情報とほぼ同じである。但し、複数ページに渡るブロックセレクションにおいては「ページ番号」という項目が追加される。この情報は、後に詳細な説明を行うページ間のレイアウト変更処理において利用されることになる。
<画像のパターンマッチング>
画像データに関する各種情報から画像の類似度判定を行い、複数の画像データの中から、目的の画像と一致する画像を選択する処理をパターンマッチング処理という。
本実施形態では、ドキュメントの変更時に、更新されたドキュメントのブロックセレクション処理により得られた各矩形ブロック内の画像データと画像データベース中の画像データとの間でパターンマッチング処理を行なう。或いは、紙原稿を最新バージョンのものと差し替えるときに、紙原稿をスキャンして得られた画像データをブロックセレクション処理して得られた各矩形ブロック内の画像データと画像データベース中の画像データとの間でパターンマッチング処理を行う。
本実施形態では、パターンマッチングを行う為に使用する画像情報は、先に説明を行ったブロック情報抽出処理によって抽出された情報を使用する。また、本実施形態におけるパターンマッチングでは、判定を行う情報が、ブロックセレクションによって認識された属性ごとに違うため、文字領域、表領域、画像領域でそれぞれ異なる方法でパターンマッチングを行うことになる。
画像データベースに格納されている複数の画像データから、ブロックセレクション処理によって認識された各種ブロック情報を元に、一致する画像データの絞込みを行っていく。この場合、絞り込む処理が早く出来るように、最初は簡単な比較で判断できる情報を使用する。元画像が文字領域の場合のパターンマッチングの処理フローを図10に示す。
まず、ステップS1001において、属性による絞込みを行う。ここでは、文字領域のパターンマッチングを行うので、画像データベース内の全ての画像データから、属性が文字領域と判断されたブロックを選択する。次に、ステップS1002において、文字領域内に、カラー画像のデータが含まれているか否かで、元画像のデータと一致するものを選択する。
次に、ステップS1003において、ブロックの情報の幅Wの値によって絞込みを行う。本実施形態では、以下の式(1)を満たす画像データを選択する。
W−n ≦ Wx ≦ W+n …(1)
上記式(1)において、Wはパターンマッチングにおける元画像の幅、Wxは画像データベース内にある各画像の幅である。また、nはあらかじめ設定された値であり、nを大きくすればそれだけ多くの画像データの候補が選択されることになる。
同様に、ステップS1004において、ブロックの情報の高さHの値によって絞込みを行う。この場合、下記の式(2)を満たす画像デーが選択される。
H−m ≦ Hx ≦ H+m …(2)
上記式(2)において、Hはパターンマッチングにおける元画像の高さ、Hxは画像データベース内にある画像の高さである。また、mはあらかじめ設定された値であり、mを大きくすればそれだけ多くの一致画像データの候補が選択されることになる。
次に、ステップS1005において、ブロック情報に含まれているテキストデータ(OCR結果)を用いて、元画像と画像データベース内の画像との類似度を判定する。すなわち、ステップS1001〜S1004の全ての絞込条件を満たしている画像データベース内の各画像のテキスト情報と、元画像にOCR処理を行って得られたテキスト情報とを比較し類似度を判定する。そして、ステップS1006において、ステップS1005の類似度判定結果に基づいて元画像と一致する画像を画像データベースから抽出する。
次に、元画像が表領域であった場合のパターンマッチングの処理を図11のフローチャートを参照して説明する。
まず、ステップS1101において、画像データベース内の全ての画像から、属性が表領域と判断されたものを選択する。続くステップS1102〜S1104による絞込みは、ステップS1002〜S1004と同様である。
次に、ステップS1105において、処理対象の表領域に文字が含まれているか否かにより、処理を分岐する。表領域中に文字が含まれている場合は、ステップS1106へ進む。ステップS1106では、ステップS1101〜S1104の絞込み条件を全て満足する画像から更に文字を含む画像を選択することにより絞込みを行う。そして、選択された画像のテキスト情報と、元画像にOCR処理を行って得られたテキスト情報とを比較して類似度を判定する。そして、ステップS1107において、ステップS1106で得られた類似度が最高の画像を、元画像と一致する画像として画像データベースから抽出する。
一方、元画像の表領域中に文字が含まれていない場合は、ステップS1108において、ステップS1101〜S1104の絞込み条件を全て満足する画像から更に文字を含まない画像を選択することにより絞込みを行う。そして、選択された画像と元画像との間で、表の行・列の個数をそれぞれ比較する。そして、ステップS1107において、表中の行・列の個数が一致するものを、元画像と一致する画像として画像データベースから抽出する。
次に、元画像が画像領域であった場合のパターンマッチングの処理を図12のフローチャートを参照して説明する。
まず、ステップS1201において、画像データベース内の全ての画像データから、属性が画像領域と判断されたものを選択することにより絞込みを行う。続くステップS1202〜S1204による絞込みは、ステップS1002〜S1004と同様である。
次に、ステップS1205において、ブロック内の情報のうち、線画像であるか階調画像であるかの情報を用いて更に絞込みを行う。すなわち、線画像であるか階調画像であるかが元画像と一致する画像が画像データベースから選択される。そして、ステップS1206において、ステップS1201〜S1205の絞込み条件を全て満足する画像と元画像との間でヒストグラムを比較し、類似度を判定する。そして、ステップS1207において、ステップS1206の類似度判定で最も高い類似度の画像を選択し、画像データベースから抽出する。
なお、「ブロック情報抽出処理」で取得されるその他の情報409は上記実施形態で説明したものにかぎらるものではない。例えば、文字領域や表領域中の文字数、フォントの種類、文字サイズ、表領域中の各列、各行の幅、表を構成する線の幅、画像領域のエッジ情報などを、その他の情報409の項目として加えてもよい。そして、それらの各種情報を使用してパターンマッチング処理を行うことにより、より迅速で且つ正確な判定が期待できる。
<ページレイアウト処理>
次に、本実施形態のページレイアウト処理に関して、図13から図15を用いて説明する。
すでにプリントアウトされている紙原稿(Ver1.0)が、図13の(A)のようなページ構成になっているものとする。この状態のドキュメントデータがPCを用いて修正されて図13の(B)のようなページ構成となったとする(Ver1.1)。この例では、Ver1.0のドキュメントデータにおいて、「ブロック−05」が削除され、「ブロック−03」が修正され、「ブロック−06」の後ろに「ブロック−06 Add-01」、「ブロック−06 Add-02」が追加されている。この場合、紙原稿からページ番号やブロックの重複が無いように差し替えを行うには、内容の修正が入った2、3、4ページ目と、ページ内のレイアウトが変わった5ページ目以降を差し替える必要がある。すなわち、図13(B)のページレイアウトのままでは、2ページ目以降の全ての紙原稿を差し替える必要がある。
そこで、本実施形態では図13の(C)に示すように電子データ上でページレイアウト処理を行うことにより、差し替える必要のある紙原稿の枚数を出来る限り少なくする。すなわち、ページ毎のブロックのレイアウトを出来る限り紙原稿と一致させることにより、差し替えるべき紙原稿の枚数を少なくする。
本実施形態におけるページレイアウト処理の詳細を、図14、図15を参照して説明する。
図13の(A)に示される紙原稿についてスキャンを行ったページ番号と各ページに含まれているブロックの情報は図14の(A)のようになる。このドキュメントデータを図13の(B)のように修正してページ毎に詰めてレイアウトしていくと、ブロック情報は図14の(B)のようになる。この状態では、図14の(A)と比較すると、2ページ以降の全ページにおいて、各ページ内に含まれるブロックが紙原稿と異なっている。
そこで、図15の(B)に示すようにレイアウト処理を行なう。このレイアウト処理においては、まず、紙原稿のページレイアウトによるブロック情報と修正を行ったドキュメントのブロック情報の比較を行い、ブロックの変更を行わなくても良いページのレイアウトを決める。図15の例の場合、修正を行ったドキュメントデータのうち、1ページ目と5ページ目以降の各ページでは、ページ内のブロックは修正されていない。そこで、1ページ目と5ページ目以降の各ページについては、紙原稿と同様の構成でもってページレイアウトを決定する。その後、修正が行われているブロック、およびそのブロックと同じページ内に含まれていた修正の行われていないブロック(本実施形態の場合、ブロック−03〜ブロック−06 Add-02)に関してページレイアウトを決定する。なお、このとき、ドキュメントの先頭側のブロックからページレイアウトを行っていく。
図15Bは、本実施形態によるページレイアウト処理の一例を説明するフローチャートである。ステップS1501において、2つのバージョン間でブロックを比較し、旧バージョンの文書におけるブロックのうち、変更されたブロック(変更ブロック)、削除されたブロック(削除ブロック)を判別する。図15Aの(A)(B)では、ブロック−03が変更ブロックに、ブロック−05が削除ブロックに該当する。次にステップS1502において、旧バージョンの文書から、ステップS1501で判別した変更ブロックや削除ブロックを含むページを抽出する。図15Aの(A)では、2ページ目と3ページ目が該当する。次にステップS1503において、ステップS1502で抽出されたページに含まれている未変更のブロックを抽出する。図15Aの(A)では、ブロック−04、ブロック−06が該当する。次に、ステップS1504において、新バージョンの文書から、変更されたブロック(変更ブロック)と追加されたブロック(追加ブロック)を取得する。図15Aの(B)では、ブロック−03、ブロック−06 Add-01及びブロック−06 Add-02が該当する。そして、ステップS1505において、ステップS1503で取得した未変更ブロックとステップS1504で取得した変更ブロック及び追加ブロックを用いて新たなページを構成する。このとき、新バージョン全体のブロックの並びを維持するようにページを構成する。図15Aの(B)では、2〜4ページが該当する。なお、このとき、新たに生成されるページ数が最小となるように、ブロックを配置するのが好ましい。
以上のようなページレイアウト処理により、図13の(C)に示すように、修正を行ったドキュメントのうち、1ページ目と5ページ目以降の全てのページは紙原稿のページレイアウトと一致することになる。
<ページ番号付与処理>
上述のページレイアウト処理により、図15Aの(A)に示す紙原稿のページレイアウトは図15Aの(B)に示すページレイアウトとなる。しかし、図15Aの(A)と(B)に示されるページレイアウトを比較すると、各ページ内に含まれているブロックは一致しているが、ページ番号は一致しない。
例えば、図15Aの(A)においてブロック−07とブロック−08が含まれているページの番号は「4」であるのに対し、図15Aの(B)においてブロック−07とブロック−08が含まれているページの番号は「5」となっている。よって、図15Aの(B)のレイアウト状態で内容に変更のあったページのみ差し替えを行うべくプリントアウトを行うと、ページ「4」が重複してしまい、差し替えを行った後の紙原稿の内容がわかりにくくなってしまう。
そこで、上記の課題を改善するため、本実施形態では、独自のアルゴリズムの採用により、差し替え時に付与するページ番号を図15Aの(C)のように付与することにより、ページ番号の重複を防ぐ。以下、本実施形態によるページ番号の付与処理について、図16〜図20を参照して説明する。
まず、本実施形態では、ページ番号を付与するにあたり、図16(A)に示すようにページ番号に関する定義を定める。通常使用しているページ番号「1」、「2」、「3」といった番号は第1の番号ブロックのみを使用しているページ番号とする。そして、その番号に必要に応じてサブの番号ブロックを追加していく。サブの番号ブロックは必要に応じて複数付加することができる。
つまり、「1−0」、「1−1」、「1−2」は、第1の番号ブロックと第2の番号ブロックで構成されたページ番号となる。また、「2−1−0」、「2−1−1」、「2−1−2」は、第1〜第3の番号ブロックで構成されたページ番号となる。
また、図16の(B)に示すように、同じ数の番号ブロックで構成されている場合は、値の大きいほうが後ろのページを表すこととなる。また、図16の(C)に示すように、小さい番号ブロック(第1番号ブロックが最優先となる)の番号を優先的に考慮してページの前後の判断を行う。図16の(D)に示すように、使用している番号ブロックの数が少ないほうが前のページを表す。以上の定義に従ってページ番号が紙原稿と重複しないよう、新たにプリントアウトを行う出力に対してページ番号を付与していく。
次に、ページレイアウトを行った結果、ページの削除、ページの追加等が起きた場合のページ番号の付与方法を説明する。以下では、ページの削除のみが行われた場合、ページの追加のみが行われた場合、ページの削除と追加が行われた場合の3つの場合に分けて、それぞれ詳細な説明を行う。
図17は、ページレイアウト処理を行った結果、ページの削除のみが行われた場合の例を示した図である。ページの削除のみが行われる場合は、すでに出力されている紙原稿から不要となるページの削除を行うのみで対応できるので、新たなプリントアウトは必要が無い。すなわち、図17の例では、5ページ、6ページ目を廃却するのみで、新たなプリントアウトは行わず、差し替え後は、差し替え前から5ページ、6ページ目が無くなった状態となる。
図18、図19は、ページレイアウトを行った結果、ページの追加のみが行われる場合の例を示した図である。ページの追加のみが行われた場合は、すでに出力されている紙原稿からの不要ページの廃棄は発生せず、紙原稿の間に新たにプリントアウトされたページを差し込んでいくことになる。このとき、新たにプリントアウトされたページには、既存の紙原稿のページとの重複が発生しないようにページ番号が付与される。図18では、紙原稿の最後にページが追加される場合が示されている。また、図19では、紙原稿の途中にページが付与される場合が示されている。この場合、最後のページ番号の最も小さな番号ブロックに対して、昇順に番号を付けていく事によって、プリントアウトのページ番号を付与することとする。
図18の(A)の例では、紙原稿の最後のページである4ページの後ろに新たにプリントアウトされたページが追加される。この場合、新たにプリントされるページには「5」、「6」と言うようにページ番号が付与される。また、図18(B)の例は、紙原稿の最後のページである「1−2」ページの後ろに新たなプリントアウトを追加する場合の例である。この場合、最後のページ番号の最も小さな番号ブロックに対して、昇順に番号を付けていくため、「2」、「3」と言うようにページ番号が付与されることになる。
図19では、紙原稿の途中にページが追加される場合が示されている。この場合、以下の規則に従ってページ番号が付与される。
[規則a]追加ページの1つ前のページのページ番号に番号ブロックを1つ追加し、追加した番号ブロックに0から昇順に番号を振っていく。
[規則b]規則aにより付与されたページ番号がすでに出力されている紙原稿内に存在する番号となってしまう場合には、更に番号ブロックを1つ追加し、追加した番号ブロックに0から昇順に番号を付けていく。
[規則c]規則bにより付与されたページ番号が、図16の(D)に示した規則「使用しているブロック数が少ないほうが前のページを表す」を維持できなくなる場合は以下のように処理する。
〈c−1〉 規則を維持できなくなる挿入ページの直前のページから番号ブロックを追加し、追加した番号ブロックの番号を「0」として、当該直前のページに番号を振る。(必要であればこの新たなページ番号を有するページをプリントする。)
〈c−2〉 挿入されたページに、上記追加された番号ブロックに昇順の番号を付したページ番号を割り当てる。
[規則d]追加する場所の直前と直後のページのページ番号がそれぞれn個の番号ブロックとn+1個の番号ブロックを有し、且つ、直後のページのページ番号のn+1番目の番号ブロックの値が0のときは、次のように処理する。まず、直前のページを出力しなおす。このとき、ページ番号は、更にその直前のページ番号に番号ブロックを追加し、追加された番号ブロックの番号を0としたものとにする。そして、追加ページには、前記追加された番号ブロックに昇順の番号を付与したページ番号を用いる。
図19の(A)の例は、紙原稿の「1−1」と「2」ページの間に、2ページ分の追加を行う場合である。この場合、上記規則aによりブロックが1つ加えられ、「1−1−0」、「1−1−1」というようにページ番号が付与される。
図19の(B)の例は、紙原稿の「2」と「2−1」ページの間に、2ページ分の追加を行う場合である。この場合、規則aに従えば「2−0」、「2−1」というようにページ番号を付与することになるが、「2−1」はすでに前の差し替え時に使用されている番号で、すでに紙原稿中に存在する。このため、規則bにより、更に1ブロックを追加して、「2−0−0」と番号を付与することとなる。そして、「2−0−0」以降の追加ページのページ番号は、3番目のブロックについて昇順に番号を付したものとする。例えば、図19の(B)において4枚のページが追加された場合に付与されるページ番号は、「2−0」、「2−0−0」、「2−0−1」、「2−0−2」というようになる。
図19の(C)の例では、紙原稿の「2」と「2−0」ページの間に、2ページ分の追加を行う場合であり、規則aを適用すると「2−0」、「2−1」というページ番号が付与されることになる。この場合、「2−0」はすでに前の差し替え時に使用されている番号で、すでに紙原稿中に存在するため、規則bが適用され、1ブロック追加されて、「2−0−0」と番号が付与される。しかしながら、この場合、「2」、「2−0−0」、「2−0」というページ番号の並びとなってしまう。これは、「使用しているブロック数が少ないほうが前のページを表す」という規則に違反している。従って、規則cによりページ番号の割り振りを行う。すなわち、紙原稿の2ページ目と同じ内容でページ番号を「1−0」としたものをプリントアウトし、追加される1ページのページ番号を「1−1」としてプリントアウトし、紙原稿との差し替えを行う。この結果、図19の(C)に示されるようなページ番号構成のドキュメントが得られることになる。
図20は、紙原稿においてページの削除と、当該削除位置へのページの追加がなされる場合のページ番号付与を説明する図である。この場合、削除を行うページ数と追加を行うページ数の大小関係によって処理方法が異なるため、それぞれの場合に分けて説明を行うこととする。
図20の(A)は、削除するページ数と追加するページ数が同じ枚数の場合の例を示している。削除するページ数と追加するページ数が同じ枚数の場合は、「削除したページの範囲では削除したページと同じ番号を付与していく」という規則に従ってページ番号が付与される。この結果、ページ番号は差し替え前後で同じ構成となる。図20の(A)では、紙原稿の4ページ目と5ページ目の2枚が削除され、あらたに2ページが追加されるので、新たにプリントアウトするページの番号は「4」、「5」となる。
図20の(B)は、削除するページ数が追加するページ数が多い場合の例を示した図である。削除するページ数が追加するページ数よい多い場合は、「削除したページの範囲では削除したページと同じ番号を付与していく」という規則に従ってページ番号が付与される。この結果、ページ番号は差し替え前後で、ページ数が足らなくなり抜けが出来ることになる。しかしながら、ページ番号が重複してページの前後関係がわかりにくくなるのとは違って、単に欠番が発生するだけなので、ドキュメントの内容の認識にはそれほど影響はないものと考え、本実施形態では、そのままにしておく。
図20の(B)では、紙原稿の3〜5ページ目の3枚を削除し、あらたに2ページが追加されている。このため、新たにプリントアウトするページの番号は、「3」、「4」となり、差し替え後の紙原稿の5ページ目はこの時点で無くなる。
図20の(C)は、削除するページ数より追加するページ数が多い場合の例を示した図である。この場合のページ番号の付与手順は、以下のようになる。
(1)「削除したページの範囲では削除したページと同じ番号を付与していく」という規則に従ってページ番号を付与する。
(2)削除したページ番号を使い切った後は、「削除したページの最後の番号に対して、最も後ろの番号ブロックに昇順に番号を付けていく」という規則に従ってページ番号を付与する。
(3)この結果、紙原稿に存在する番号と同じ番号或いはそれよりも大きい番号が付与されてしまう場合には、番号ブロックを1つ追加し、追加した番号ブロックに0から昇順に番号を付けていく。
(4)削除したページの最後のページ番号がn個の番号ブロックで、その次のページのページ番号がn+1個の番号ブロックでそれぞれ構成され、両ページのn番目までの番号ブロックが一致し、n+1番目の番号ブロックが0の場合は、多少処理が複雑になる。この場合、ページ番号を次のように決定される。
(4−1)削除したページの最後のページ番号のn番目の番号ブロックの番号から1を引いてこれをn番目の番号ブロックの番号とする。
(4−2)上記最後のページのページ番号に番号ブロックを1つ追加し、n+1個の番号ブロックからなるページ番号構成とし、追加した番号ブロックに0から昇順に番号を付けていく。
図20の(C−1)の例は、紙原稿の「2」と「2−0」を削除し、その部分に、4ページの追加う行う場合である。この場合、手順(1)により「2」と「2−0」が付与される。その後、手順(2)により、最も後ろの番号ブロック(ここでは2番目の番号ブロック)に対して昇順の番号が付与される。すなわち、残りの2つのページには、「2−1」、「2−2」というページ番号が付与される。
図20の(C−2)の例は、紙原稿の「2」と「2−0」を削除し、その部分に、4ページ分の追加を行う場合で、削除されたページに続くページが「2−1」となっている。この場合、手順(1)により、最初の2枚には「2」と「2−0」が付与される。このように、削除したページと同じ番号を付けた後、その後のページには手順(2)により「2−1」、「2−2」と言うようにページ番号が付与される。しかしながら、「2−1」がすでに紙原稿中に存在するため、手順(3)により、番号ブロックを1つ追加し、「2−0−0」「2−0−1」というようにページ番号が付与される。
図20の(C−3)の例は、紙原稿の「2」と「3」を削除し、その部分に、4ページ分の追加を行う場合で、ここでは削除されたページに続くページが「3−0」となっている。この場合、手順(1)により、追加ページのうちの2枚に「2」と「3」が付与される。すなわち、削除したページと同じ番号が付与されていく。その後、手順(2)(3)により、「3−0」「3−1」と番号を付与していくところだが、「3−0」がすでに紙原稿中に存在する。このため、手順(3)によれば「3−0−0」「3−0−1」が割り当てられることになるが、ページ番号「3−0」の手前のページに「3−0−0」「3−0−1」が付与されることになり図16(D)の規則に違反してしまう。このような、不具合は、削除したページの最後のページ番号がn個のブロック番号で構成され、その次のページのページ番号がn+1個の番号ブロックで構成され、両ページのn番目の番号ブロックまでが一致し、n+1番目の番号ブロックが0の場合に生じる。従って、手順(4)を採用することで、「2」の後ろからは「2−0」、「2−1」、「2−2」と言うようにページ番号が付与されることになる。
以上のようなページ番号付与処理により、差し替えを行った際にページ番号が重複することを防ぐとともに、差し替えを行う作業者が容易に差し替えの場所を認識できるようなページ番号を付与していくことが可能となる。
<プリントシステムにおける処理の流れ>
以上のようなプリントシステム及び、各種画像処理技術を用いた、本実施形態におけるプリント処理について説明する。
本実施形態のプリントシステムを使用するにあたり作業者は、画像データベースに対して、ドキュメントのデータを登録及び更新していく作業を行う。また、出力された紙原稿を最新の状態に維持するために、最新の状態のプリントアウトと差し替える作業が行われることになる。また、最初のドキュメント作成時にプリントアウトを行う作業、修正がすべて終了し、完成したドキュメントのプリントアウトを行うという作業も存在する。以下に、上述の各作業の詳細な説明を行う。
まず、画像データベースに対する作業の説明を行う。画像データベースに関しては、最初の初期データ登録作業と、修正を進めていく時の更新作業の2つの作業がある。
<初期データ登録作業の説明>
最初に作業者が行う作業として、ドキュメントの作成と作成したドキュメントのデータを画像データベースに登録する作業がある。この作業では、図21の(A)に示すようにPC上のアプリケーションによって作成したドキュメントに対して、ブロックセレクション処理を行い、図21の(B)に示すようにブロックに分割し、各ブロックについてブロック情報抽出処理を行う。そして、図21の(C)に示すように、各ブロックの画像データとブロック情報を画像データベース及び画像管理サーバに格納する。
上述の初期データ登録作業について図22のフローチャートを参照して説明する。なお、以下で説明する画像サーバへの初期データの登録はMFP100が行うものとするが、マネージメントPC101やPC107によって行われてもよい。
PC107等においてドキュメントの作成が行われる。ここで作成されるドキュメントのバージョンは、本実施形態では「Ver1.0」としておく。MFP100は、ステップS2201においてネットワーク103を介してこのドキュメントを受信する。ドキュメントを受信すると、このドキュメントの内容をブロックに分けるブロックセレクション処理を行なうために、ステップS2202において、当該ドキュメントの各ページをビットマップデータに展開する。すなわち、MFP100は、ネットワーク103を介して受信したドキュメントデータをデータ処理装置205により1ページずつビットマップデータに展開する。そして、得られたビットマップデータをMFP100内の記憶装置201に記憶する。
次に、ステップS2203において、記憶装置201内のビットマップデータに対して、ブロックセレクション処理を行い、文字領域、表領域、画像領域のブロックに領域分割する。そして、ステップS2204において、各領域に対してブロック情報抽出処理を行い、ブロック情報を各領域のパターンマッチング用のデータとして抽出する。その後、ステップS2205において、各ブロックの画像データと抽出したブロック情報を、ネットワーク103を介して画像データベース104及び画像管理サーバ105へ転送する。画像データは画像データベース104に格納され、ブロック情報は画像管理サーバ105により格納、管理される。
以上のステップS2202〜S2205の処理を作成されたドキュメントの全てのページについて完了したならば、処理はステップS2206からステップS2207へ進み、初期データ登録の作業を終了する。まだ残っているページがある場合にはステップS2206からステップS2202に戻り、上述した処理が繰り返される。
なお、上記初期データ登録作業を行う際の各ブロックのバージョンには、作業者がわかりやすい番号を一律全てのブロックに付ければ良い。本実施形態では、自動的に、全てのブロックに一律に「Ver1.0」というバージョンを付与するものとする。
<画像データベースの更新作業の説明>
次に作業者が行う作業として、ドキュメントの修正と修正したドキュメントのデータを元に、画像データベースの更新を行う作業がある。例えば、図23の(A)に示されるようにPC107上のアプリケーションによって修正され、Ver1.0からVer1.1となったドキュメントに対して、ブロックセレクション処理を行う。図23(A)のドキュメントのブロックセレクション処理の結果は図23(B)に示すようになる。各ブロックについて分割や修正、ブロックの追加や削除があった場合は、ブロック情報の変更が行われる。そして、図23の(C)に示されるように、修正等が行われたブロックの画像データとブロック情報を画像データベース及び画像管理サーバに格納する処理を行う。
図24は、上述の初期データ登録作業に関する詳細な処理を示すフローチャートである。まず、PC107において、ドキュメントの修正が行われる。ここで修正されたドキュメントのバージョンを、本実施形態では「Ver1.1」とする。修正されたドキュメントは、ネットワーク103を介してMFP100に送信される。
MFP100は、ステップS2401においてネットワーク103を介してこのドキュメントを受信する。ドキュメントを受信すると、このドキュメントの内容をブロックに分けるブロックセレクション処理を行なうために、ステップS2402において、当該ドキュメントの各ページをビットマップデータに展開する。すなわち、MFP100は、ネットワーク103を介して受信したドキュメントデータをデータ処理装置205により1ページずつビットマップデータに展開する。そして、得られたビットマップデータをMFP100内の記憶装置201に記憶する。
次に、ステップS2403において、記憶装置201内のビットマップデータに対して、ブロックセレクション処理を行い、文字領域、表領域、画像領域のブロックに領域分割する。そして、ステップS2404において、各領域に対してブロック情報抽出処理を行い、ブロック情報を各領域のパターンマッチング用のデータとして抽出する。
次に、ステップS2405において、ブロック毎に画像データベース内に格納されているブロックのデータとの間で、図10〜図12で説明したパターンマッチングを行う。そして、ステップS2406において、MFP100の表示装置206にパターンマッチング結果を表示する。すなわち、各ブロックについて一致/不一致情報を表示する。ステップS2407では、表示装置206に表示されたパターンマッチング結果を元に、MFPの入力装置を使用して修正の行われたブロックのデータの更新を行う。そして、ステップS2408において、画像データベース104のデータの更新を行う。
以上のステップS2402〜S2408の処理が展開した1ページの全てのブロックについて終了したら、ステップS2409において、受信したドキュメントの全てのページに関して終了したかどうか判断する。ドキュメントの全ページについて終了したならば、ステップS2410へ進み、画像データベースの更新作業を終了する。未処理のページが残っている場合には、ドキュメントの次のページのデータについて同様の処理を繰り返す。
なお、上記画像データベースの更新を行う際の各ブロックのバージョンに関しては、図23の(C)に示されるように、ブロックの内容の修正が行われた場合には、同じブロック番号でバージョン番号をアップする。また、あるブロックの後ろに新たなブロックが追加された場合には、そのブロック番号の後ろに、「Add-01」「Add-02」のように、追加されたブロックであることを示すようなブロック名を付与して新たにバージョンを振っていく。削除されたブロックに関しては、バージョン番号を「00」とすることにより画像サーバ内の画像データ管理用データの更新を行う。
ここで、上記フローチャートにおける、MFP100の表示装置206によるパターンマッチング結果の一致/不一致情報の表示処理(ステップS2406)について詳細に説明する。また、表示装置206に示されたパターンマッチング結果を元にMFP100の入力装置を使用して修正の行われたブロックのデータの更新を行う処理(ステップS2407)について詳細に説明する。
図25は、MFP100の表示装置206によって、パターンマッチング結果の、一致/不一致情報の表示を行った場合の表示例を示す図である。本実施形態では、MFP100の操作部として、表示部206と入力部203がまとめて配置されているものとする。また、表示装置206としては液晶画面を使用し、パターンマッチング結果を表示する場合は、パターンマッチングの元となる画像データを左側に、パターンマッチングの結果の表示を右側に行う。その他、現在表示を行っているページ数表示2501や、前のページ、次のページなどへ表示を移動させるボタン2502,2503なども表示される。
入力部203により構成される操作部には、電源のON/OFFを行うボタン2510、数字等の入力を行う為のテンキー2511及び動作のスタートボタン2512が含まれる。更に操作部には、設定のクリアやリセットを行うボタン2513,2514、入力場所の選定を行う方向キー2515などが含まれる。また、上記各種ボタンの代わりに、表示装置206の液晶画面が、タッチパネル式となっていて画面を押すことによって、各種設定や値の入力が行われるような操作部としても良い。
次に、図26、図27、図28を参照して、表示装置206を用いた、パターンマッチング結果の表示と画像データベースの内容の修正の具体的な方法について説明する。
図26は、PC107によってドキュメントの内容の修正が行われた電子データと、画像データベース内に格納されている画像データとのパターンマッチングを行った結果の例を示す図である。図26の例では、パターンマッチングの結果、上から3段目のブロックと、一番下の右側のブロックに関して画像データベース内に一致するデータが含まれていなかったという結果の表示となっている。
そこで、上記2つのブロックに関して、内容が修正されたブロックか、追加されたブロックであるかといった情報の入力を行う。その場合、まず、操作部を使用して、不一致のブロックを選択する。例えば、上から3段目のブロックを選択すると、図27に示されるように、選択されたブロックの拡大表示とそのブロックの情報の修正を行う為の入力画面が表示される。なお、選択操作では、不一致のブロック2601を指で触れることにより、タッチパネルがこれを検出するものとする。図27において、表示されているブロックのブロック番号、追加されたブロックの場合は「Add」されたブロックとしての番号、バージョン番号、などの新たな情報の入力を行う。各番号の入力は、フィールドを指で触れることによって選択し、入力装置203のテンキーにより番号を入力することで行われる。本実施形態の場合、不一致のブロックはブロック7の後ろに追加されたブロックAdd1のVer.01であるとする。このような入力が行われた結果、図26で不一致となっていた3段目の新たなブロック情報が反映されて、表示装置206には図28に示されるような表示が行われる。そして、同様な手順で各ページ内の不一致のブロックの情報の修正を行っていく。
ブロックの修正及び、追加に関する情報の修正が全てのページに関して終了したら、次に、削除を行ったブロックに関する画像データベースの更新を行う。ここでは、画像データベースには含まれていて、マッチング用の元画像には含まれていないブロックを、削除されたブロックであると判断する。この判断は自動的に行われる。例えば、図23の例では、ブロック−05のデータが、修正を行った電子データに含まれていないと認識され、ブロック−05のバージョンナンバーを「00」とする。
全てのブロックまた、全てのページの修正、追加及び、削除の情報の修正が終了したならば、画像データベースの情報の更新を行い、作業を終了する。
次に、紙原稿に関する作業を説明する。紙原稿に関しては、最初のプリントアウト作業、更新時の差し替え作業、ドキュメント完成時の最終プリントアウト作業の3つの作業がある。
<「最初のプリントアウト作業」の説明>
最初にドキュメントの作成を行ったときには、今後の紙原稿の元となるドキュメントデータのプリントアウトを行う。本実施形態では、図21で説明を行ったように、最初のバージョンを、Ver1.0として作成し、そのドキュメントデータをMFP100によってプリントアウトする。このプリントアウトが、今後の差し替え作業の大元の紙原稿となる。
<「更新時の差し替え作業」の説明>
紙原稿の更新時の差し替え作業に関する詳細な処理を図29のフローチャートを参照して説明する。
ステップS2901〜S2904では、第1のバージョンの文書データの各ページについて領域分割処理を行って得られた各ページのブロック情報が取得される。まず最初に、ステップS2901において、MFP100の画像読み取り部200によって(第1のバージョンの)紙原稿をスキャンし、紙原稿の内容を電子データとして入力する。そして、ステップS2902において、MFP100内の記憶装置201に格納する。ここでスキャンを行うドキュメントのバージョンは、本実施形態では「Ver1.0」としておく。次に、ステップS2903において、ステップS2902で記憶装置201に格納された画像データにブロックセレクション処理を行い、文字領域、表領域、画像領域のブロックに領域分割する。そして、ステップS2904において、各領域に対して図5に示した如きブロック情報抽出処理を行う。
ステップS2905〜S2909により、各ブロックごとに画像データベース内に格納されているブロックのデータとパターンマッチングを行う。本実施形態ではブロックの属性毎にパターンマッチングを行う情報が異なる。すなわち、ブロックの属性が文字領域と認識された場合は、ステップS2905からステップS2906へ進み、文字領域に関するパターンマッチング処理が実行される。また、ブロックの属性が表領域と認識された場合は、ステップS2905,S2907を経てステップS2908へ進み、表領域に関するパターンマッチング処理が実行される。また、ブロックの属性が画像領域と認識された場合は、ステップS2905、S2907を経てステップS2909へ進み、画像領域に関するパターンマッチング処理を実行する。こうして、第2のバージョン(本例では最新のバージョン)の文書データの各ページについて領域分割処理を経て得られたブロック情報と、ステップS2904取得された第1のバージョンのブロック情報が取得される。そして、両バージョン間で一致するブロックと一致しないブロックとが判別されることになる。
以上のステップS2901〜ステップS2909に示された、紙原稿のスキャンからブロック単位のパターンマッチングを、紙原稿の全ページの全部ロックについて行う。その後、処理はステップS2910へ進む。
ステップS2910では、パターンマッチングの結果から、スキャンされた紙原稿に含まれているブロックの番号やバージョンを認識し、修正や追加、削除の行われたブロックを認識する。ステップS2911では、最新のドキュメント構成を作成する。そのままのドキュメント構成では、各ページ毎に含まれているブロックが異なるため、効率の良い差し替えは出来ない。よって、ステップS2912において、図15A,Bで説明したページレイアウト処理を行い、出来る限り紙原稿を利用する形での出力を行うようレイアウトの修正を行う。すなわち、まず、第1のバージョンの文書データ中の一致しないと判別されたブロックを含むページに存在する一致すると判別されたブロックと、第2のバージョンの文書データ中の一致しないと判別されたブロックとが抽出される。そして、抽出されたブロックを第2のバージョンの文書データの全体におけるブロックの並びが維持されるようにレイアウトしてページを生成する。このとき、生成されるページ数が最小となるようにレイアウトが決定される。その後、ステップS2913において、紙原稿に挿入すべくプリントアウトされるページに対して、ページ番号の重複が起こらないように上述した方法によりページ番号の付与を行う。なお、元ドキュメントにおける各ページのページ番号は、ステップS2901で入力されたスキャンデータよりOCR処理により取得されるものとする。
ステップS2914において、作業者に紙原稿のどのページを削除し、どのプリントアウトを紙原稿の何処に差し込むこととなるかの指示を与える画面の表示装置206により表示する。そして、ステップS2915において、紙原稿中に差し込むべき新たなプリントアウトを出力する。
図30を用いて、図29のフローチャートで示したバージョン認識(ステップS2910)について詳細に説明する。
紙原稿は、先に図21を用いて説明を行った内容で、Ver1.0としてプリントアウトされているものとする。この紙原稿のスキャンを行い、パターンマッチングした結果は図30の(A)のようなブロック番号及びバージョン番号となる。また、このときのドキュメントデータは、Ver1.0から図23のように修正され、画像データベース内の各ブロックのバージョンはVer1.1となり、その内容は図30の(B)のような状態となっているとする。この状態で、図30(A)の各ブロックのパターンマッチングを行うと、スキャンしたデータは全て画像データベース内のデータとマッチングが取られることになる。
しかし、ブロック−05に関しては、ブロック情報によってマッチングが取れたデータのバージョンが、ドキュメントのVer1.1への修正によって、Ver.00となっている。このバージョン番号の認識によって、ブロック−05はVer1.1への修正時に削除されていることが認識できる。
また、ブロック−03に関しては、画像データベース内のVer.01とマッチングがとれるが、ブロック−03に関しては、Ver.01の他にVer.02というバージョンが画像データベース内に存在する。従って、ブロック−03はVer1.1への修正時にバージョンがアップされていることが認識できる。
また、ブロック−06 Add-01及び、ブロック−06 Add-02は、紙原稿をスキャンした結果、紙原稿内に含まれていないこと、バージョン番号がVer.00でないことがわかる。従って、これらブロックはVer1.1への修正時に付け加えられたブロックであるということが認識できる。
以上のように、スキャンした紙原稿のデータと、画像データベース内のデータとのパターンマッチング及び、ブロック番号、バージョン番号の認識を行うことにより、ドキュメントのバージョンアップで修正、追加、削除されたブロックを認識できる。このようにして、各ブロックのバージョン認識を行った結果に基づき、ドキュメントのVer1.1で使用するブロックおよびそのブロックの最新バージョンを認識する。そして、その認識結果からページレイアウト処理、パージ番号付与の処理を実行し、差し替え用のドキュメントデータの作成を行う。
図31は、図30によって説明を行ったVer1.1のドキュメントに対し、紙原稿と差し替えを行うのに最も効率の良い差し替えが実現できるようにページレイアウト処理を実行した結果とページ番号付与を示した図である。
次に、図29のフローチャートにおける、MFP100の表示装置206によって差し替えページの指示を行う処理(ステップS2913)について説明する。表示装置206部の液晶画面を使用し、図32に示すように、ドキュメントのページ構成3201において廃棄するページのページ番号を明示する。更に、追加するページがある場合は、追加ページ3202として明示し、その挿入場所を矢印3203により明示する。なお、追加ページ3202には、プリントアウトされてくる出力のページ番号が示される。このような表示により、作業者は容易に差し替えの作業を行えるようになる。なお、廃棄するページは、例えば、上述の図15BのステップS1502で抽出したページを示せばよい。
<「最終プリントアウト作業」の説明>
次に、図33を用いて、最終プリントアウトに関する説明を行う。
以上の構成により紙原稿の差し替えによって更新を続けると、ドキュメント内の内容の重複やページ番号の重複の無い状態で紙原稿をそろえていくことが出来る。しかしながら、ページ番号には追加されたブロックが付与されていたり、ページ内に大きな空き領域が残ったりすることになる。そのため、ドキュメントの作成が完成し、最終的なプリントアウトが必要な場合には、紙原稿と差し替えることを考慮させずに、PC107で作成したドキュメントデータのプリントアウトを行う必要がある。
つまり、図33に示すように、通常通りに作成したドキュメントのプリントアウトを行う。すなわち、全てのブロックを最新のバージョンとして各ページにつめた状態でレイアウトし、Block1のみを使用してページ番号を付与し、最初のぺーじから最後のページまでの全てのページをプリントアウトする。こうして、ドキュメントの最終結果のプリントアウトが得られる。
以上、説明を行ってきた内容について、図34を参照して説明する。
まず、作業者はPC107によって、最初のドキュメント(Ver1.0)の作成を行う(3401)。このとき、当該ドキュメントのプリントアウトを行う(3403)と供に、画像データベースに初期データの登録を行う(3402)。
次に、PC107によって、ドキュメント内容の修正が行われ、ドキュメントのバージョンがVer1.1になったとする(3404)。そのとき、作業者は画像データベースの内容をVer1.1の構成に合うように修正する(3405)。更に、PC107によって、ドキュメント内容の修正が行われ、バージョンがVer1.2となったとする(3407)。このとき、作業者は画像データベースの内容をVer1.2の構成に合うように修正を行う(3408)。そして、PC107によって、ドキュメント内容の最終的な修正が行われ、完成版のVer2.0が出来上がったとする(3410)。このとき、作業者は画像データベースの内容をVer2.0の構成に合うように修正する(3411)。
最初にプリントアウトを行ったVer1.0の紙原稿(3403)に対してVer1.1への差し替えを行いたい場合を考える。この場合は、Ver1.0の紙原稿をスキャンして得た画像データと、Ver1.1の時点での画像データベース(3405)を元にして、先に説明を行った各種処理を行いVer1.1に相当する差し替え後の紙原稿(3406)を得ることが出来る。
また、最初にプリントアウトを行ったVer1.0の紙原稿(3403)に対してVer1.2への差し替えを行いたい場合を考える。この場合は、Ver1.0の紙原稿をスキャンして得た画像データと、Ver1.2の時点での画像データベース(3408)を元にして、先に説明を行った各種処理を行いVer1.2に相当する差し替え後の紙原稿(3409)を得ることが出来る。
最初にプリントアウトを行ったVer1.0の紙原稿(3403)に対してVer2.0への差し替えを行いたい場合を考える。この場合、Ver1.0の紙原稿をスキャンして得た画像データと、Ver2.0の時点での画像データベース(3411)を元にして、先に説明を行った各種処理を行いVer2.0に相当する差し替え後の紙原稿(3412)を得ることが出来る。
差し替えを行ってVer1.0の紙原稿からVer1.1相当となった紙原稿(3406)に対して、Ver1.2への差し替えを行いたい場合を考える。この場合、Ver1.1相当となった紙原稿(3406)をスキャンして得た画像データと、Ver1.2の時点での画像データベース(3408)を元にして、Ver1.2に相当する差し替え後の紙原稿(3409)を得ることが出来る。
差し替えを行ってVer1.0の紙原稿からVer1.1相当となった紙原稿(3406)に対して、Ver2.0への差し替えを行いたい場合を考える。この場合、Ver1.1相当となった紙原稿(3406)をスキャンして得た画像データと、Ver2.0の時点での画像データベース(3411)を元にして、Ver2.0に相当する差し替え後の紙原稿(3412)を得ることが出来る。
差し替えを行ってVer1.0の紙原稿からVer1.1相当となった紙原稿(3406)に対して、Ver1.2への差し替えを行ってVer1.2相当となった紙原稿(3409)に対して、Ver2.0への差し替えを行いたい場合を考える。この場合、Ver1.2相当となった紙原稿(3409)をスキャンして得た画像データと、Ver2.0の時点での画像データベース(3411)を元にして、Ver2.0に相当する差し替え後の紙原稿(3412)を得ることが出来る。
同様にプリントアウトを行ったVer1.1の紙原稿(3413)に対してVer1.2への差し替えを行いたい場合を考える。この場合、Ver1.1の紙原稿(3413)をスキャンして得た画像データと、Ver1.2の時点での画像データベース(3408)を元にして、Ver1.2に相当する差し替え後の紙原稿(3412)を得ることが出来る。
同様にプリントアウトを行ったVer1.1の紙原稿(3413)に対してVer2.0への差し替えを行いたい場合を考える。この場合、Ver1.1の紙原稿(3413)をスキャンして得た画像データと、Ver2.0の時点での画像データベース(3411)を元にして、Ver2.0に相当する差し替え後の紙原稿(3412)を得ることが出来る。
同様にプリントアウトを行ったVer1.2の紙原稿(3414)に対してVer2.0への差し替えを行いたい場合を考える。この場合、Ver1.2の紙原稿(3414)をスキャンして得た画像データと、Ver2.0の時点での画像データベース(3411)を元にして、Ver2.0に相当する差し替え後の紙原稿(3412)を得ることが出来る。
以上のように、パターンマッチングにより各ブロック毎に一致・不一致を認識し、ブロック毎に最新の画像データに置き換え、紙原稿の差し替えが行われる。このため、これまで差し替えを行ってきた紙原稿でも、更新途中のドキュメントのデータをプリントアウトした紙原稿でも、差し替えの元原稿として使用することが可能となる。よって、作業者は自分が手にしている紙原稿のバージョンを特に意識しなくても、差し替えの作業が出来るようになる。
そして、最後に完成したドキュメントの出力を行う場合には、完成したドキュメントのデータ(3410)から通常のプリントアウトを行うことにより最終版のドキュメントのプリントアウト(3415)を得ることが出来る。
以上のように第1実施形態によれば、使用者は表示部で指示されたページを手持ちの紙原稿から削除し、新たにプリントアウトされた出力をこれに付与されているページ番号を元に紙原稿に挿入していくことで新バージョンに対応させることができる。このような簡単な作業により、紙原稿の更新作業を完了でき、余分なプリントアウトを行う必要がなくなるため、紙資源や経費の削減に貢献することとなる。
なお、上記のように任意のバージョンの紙原稿から任意のバージョンの紙原稿のための差し替えページを印刷するためには、各バージョン毎のブロックの情報を、例えば図14(A),(B)のように保持してお句必要がある。
(第2実施形態)
第1実施形態では、手持ちの紙原稿の差し替えを行う際に、紙原稿のスキャン、内容の認識、その時点での最新データへの更新をさせることにより手持ちの紙原稿のバージョンを意識せずに、最新バージョンへの差し替えが可能であった。また、各バージョンの各ページ内のブロックなどのドキュメント情報の管理が必要ないという利点があった。しかし、全ての紙原稿のスキャン、内容の認識には時間が掛かる。また、常に最新のバージョンへの差し替え処理しか行えないといった不利な部分がある。
そこで、第2実施形態では、各バージョンのページレイアウト、各ページ内のブロックのバージョンなどのドキュメント情報の管理を行うことによって、紙原稿のスキャン及び、内容の認識等を行わずに、第1実施形態と同様な差し替え作業が行えるようにする。また、第2実施形態では、ドキュメントの全てのバージョンの内容を管理しておくことにより、最新バージョンだけでなく、途中のバージョンへの紙原稿の差し替えも可能とする。
第2実施形態において、第1実施形態と異なる点は以下の3つが行われる点である。すなわち、
(1)ドキュメントの各バージョンの作成時に、パターンマッチング用の情報以外にページレイアウトの情報を画像管理サーバ内に記憶する。
(2)紙原稿の差し替えを行う場合に、手持ちの紙原稿のドキュメントのバージョン及び、差し替えを行いたいバージョンを入力する。
(3)2つのバージョンのページレイアウト情報から差し替えに最適なページレイアウト処理を行う。
の3点である。以下に、上記3点に関しての詳細な説明を行う。
まず、図38を参照して、「(1)ドキュメントの各バージョンの作成時に、パターンマッチング用の情報以外にページレイアウトの情報を画像管理サーバ内に記憶する」に関する詳細な説明を行う。
作業者はPC107によって、最初のドキュメント(Ver1.0)の作成を行う(3801)。そのとき、画像データベースに初期データの登録を行う(3802)とともに、Ver1.0のドキュメントのページレイアウトの情報の登録を画像管理サーバに行う(3803)。
次に、PC107によって、ドキュメント内容の修正が行われ、Ver1.1となったとする(3804)。そのとき、作業者は、Ver1.1の構成に合うように画像データベースの内容を修正する(3805)とともに、Ver1.1のドキュメントのページレイアウトの情報を画像管理サーバに登録する(3806)。
次に、PC107によって、ドキュメント内容の修正が行われ、Ver1.2となったとする(3807)。そのとき、作業者は、Ver1.2の構成に合うように画像データベースの内容を修正する(3808)とともに、Ver1.2のドキュメントのページレイアウトの情報を画像管理サーバ登録する(3809)。
更に、PC107によって、最終のドキュメント内容の修正が行われ、Ver2.0となったとする(3804)。そのとき、作業者は、Ver2.0の構成に合うように画像データベースの内容を修正する(3811)とともに、Ver2.0のドキュメントのページレイアウトの情報を画像管理サーバに登録する(3812)。
図38における各バージョンでのドキュメントのレイアウト情報の例を、図40に示す。図40の(A)に示すページレイアウト情報は、Ver1.0での各ページに含まれているブロックとそのバージョンの情報を含む。ここでは、初期データとなるため、各ブロックの番号は、01から順に付けられ、それらのバージョンは全てVer01となっている。
図40の(B)に示すページレイアウト情報は、Ver1.1での各ページに含まれているブロックとそのバージョンの情報である。ここでは、Ver1.0の状態からブロック−03の内容が変更されているが、ページ構成に関しては変更が無い。
図40の(C)に示すページレイアウト情報は、Ver1.2での各ページに含まれているブロックとそのバージョンの情報である。ここでは、Ver1.1の状態から、ブロック−06とブロック−07の間にブロックが1つ追加されている。追加されたブロックは、「ブロック−06 Add-01 Ver.01」であり、ページ構成も変更された状態となっている。
図40の(D)に示すページレイアウト情報は、Ver2.0での各ページに含まれているブロックとそのバージョンの情報である。ここでは、Ver1.2の状態からブロック−05が削除されており、ページ構成も変更された状態となっている。
以上のようなページレイアウト情報が、第1の実施形態に加わった状態で、紙原稿からのページの差し替え作業を行う。
次に、図39のフローチャートを参照して、第2実施形態によるページ差し替え時の処理を説明する。
ユーザがMFP100の入力装置203から動作モードを紙原稿の更新作業のモードに設定すると、ステップS3901ではこれを受けて、自身の動作モードを更新作業モードに切り替える。次に、入力装置203から更新すべきドキュメントファイルが指定されると、ステップS3902において、これを受け付ける。更に、ユーザが、入力装置203を介して手持ちの紙原稿のドキュメントのバージョンを入力を行う、ステップS3903においてこれを受け付ける。バージョンの入力を受け付けると、ステップS3904において、入力されたバージョン以降に更新されて登録されているドキュメントの全てのバージョンを表示装置206に一覧表として表示する。ユーザはこの一覧表から、自分が差し替えを行いたいバージョンを選択することができる。ステップS3905ではユーザによって一覧表から選択されたバージョンを受け付ける。
次に、ステップS3906において、ステップS3903で受け付けたバージョン(手持ちの紙原稿のバージョン)と、ステップS3905で受け付けたバージョン(出力を行うべきバージョン)のページレイアウト情報を画像管理サーバ105から取得する。そして、ステップS3907において、出力を行うために最適となるようにページレイアウトの最適化処理を行う。ページレイアウト処理としては図15Aの処理を適用できる。
最適化が行われた結果、紙原稿のページ削除及び、プリントアウトの追加を行った場合には、ページ番号の重複等が起こらないように、ステップS3908にて、第1実施形態と同様にページ番号の付与を行う。そして、ユーザに差し替えの指示を表示装置206に表示する。そして、ステップS3910にて、差し替え用のページのプリントアウトを行う。
作業者は、第1実施形態と同様に、表示装置206に表示された差し替えの指示に従って、手持ちの紙原稿のページの廃棄、プリントアウトされた出力ページの挿入を行い、所望のバージョンの差し替え原稿を得ることとなる。
次に、図39におけるページレイアウトの最適化(3907)での処理の詳細を、図41から図44によって説明する。
図41は、図40におけるVer1.0からVer1.1へと差し替えを行う場合のページレイアウトの最適化を説明する図である。(A)に示すVer1.0から(B)に示すVer1.1への変更に関しては、ブロック−03に関して内容の変更がされているが、ページ構成に関しては変更が無い。従って、紙原稿の2ページ目のみ食い違うこととなるため、紙原稿の2ページ目を削除し、Ver1.1のドキュメントデータの2ページ目をそのままプリントアウトし、差し替えれば良い。
図42は、図40におけるVer1.0からVer1.2へと差し替えを行う場合のページレイアウトの最適化を説明する図である。(A)に示すVer1.0から(B)に示すVer1.2への変更においては、ブロック−03に関して内容が変更され、ブロック−06とブロック−07の間にブロックが1つ追加されている。ブロックが追加されたため、2つのバージョン間にはページ内でのブロックのレイアウトに違いが生じている。
そのため、第1実施形態と同様にページレイアウトの最適化処理を行うことにより、ブロック−06 Add-01 Ver.01を1つのブロックで1ページとし、紙原稿の流用が最大限に出来るようなレイアウトとする。こうして、ページ番号の重複の発生を防止してページ番号の付与を行うことにより、(B)に示すように、Ver1.2のドキュメントデータの2ページ目と、3−1ページ目をプリントアウトする。そして、紙原稿の2ページ目を、プリントアウトされた2ページ目と3−1ページ目に差し替えればよい。
図43は、図40におけるVer1.0からVer2。0へと差し替えを行う場合のページレイアウトの最適化を説明する図である。(A)に示すVer1.0から(B)に示すVer2.0への変更において、ブロック−03の内容が変更され、ブロック−06とブロック−07の間にブロックが1つ追加され、ブロック−05が削除されている。
ブロックの追加及び削除が発生しているため、2つのバージョン間にはページ内でのブロックのレイアウトに違いが出ている。しかしながら、変更が必要なページは2ページ目と3ページ目のみであり、他のページはそのまま紙原稿の流用が可能となっている。そのため特にレイアウトの最適化を行う必要は無い。よって、Ver2.0のドキュメントデータの2ページ目と3ページ目をプリントアウトし、紙原稿(Ver1.0)の2ページ目と3ページ目をプリントアウトした2ページ目と3ページ目に差し替えれば良い。
図44は、図40におけるVer1.1からVer2.0へと差し替えを行う場合のページレイアウトの最適化を説明する図である。(A)に示すVer1.1から(B)に示すVer2.0への変更においては、ブロック−06とブロック−07の間にブロックが1つ追加され、ブロック−05が削除されている。
ブロックの追加及び削除のため、2つのバージョン間にはページ内でのブロックのレイアウトに違いが出てしまっているが、変更が必要なページは、3ページ目のみとなり、他のページはそのまま紙原稿の流用が可能となっている。そのため特にレイアウトの最適化を行う必要は無い。そして、Ver2.0のドキュメントデータの3ページ目をプリントアウトし、紙原稿の3ページ目をプリントアウトした3ページ目の原稿に差し替えれば良い。
以上のように、第2実施形態によれば、紙原稿のスキャン及び、内容の認識等を行わずに、第1実施形態と同様な差し替え作業が可能となる。また、第2実施形態によれば、ドキュメントの全てのバージョンの内容を管理しておくことにより、最新バージョンだけでなく、途中のバージョンへの紙原稿の差し替えも可能となる。
なお、第2実施形態では、ドキュメントの修正時に、そのバージョンのページレイアウト情報をデータとして管理する。このため、第1実施形態のように、一度手持ちの紙原稿の差し替えを行った状態の紙原稿からの差し替えによるバージョンアップは実施できない。
(第3実施形態)
第2実施形態では、紙原稿の差し替えを行う場合に、手持ちの紙原稿のドキュメントの種類及びバージョン、また差し替えを行いたいバージョンは、入力装置から入力される。しかし、本システムでは、ブロックセレクション処理、OCR処理などの画像処理を行うことができる環境であるので、ドキュメントの種類の指定やバージョンの認識に関しては、それらの処理を行うことによって認識することも可能である。
そこで、第3実施形態では、第2実施形態においてMFPやPCの入力装置から行っていた手持ちの紙原稿のドキュメントの指定やバージョンの入力を、スキャナによって読み込ませた画像データによって行う。
図45は、第3実施形態におけるページ差し替え時の処理を説明するフローチャートである。なお、第3実施形態におけるドキュメントの形態として、表紙にタイトルとバージョンが記載されていることを前提とする。
ユーザによりMFP100の入力装置203から動作モードを紙原稿の更新作業モードが設定されると、MFP100はステップS4501でこれを受け付ける。そして、ステップS4502において、更新を行いたいドキュメントの表紙を画像読取部200によりスキャンし、表紙部分の画像データをMFP100内の記憶装置201に記憶する。
続いて、ステップS4503において、ステップS4502で記憶装置201に記憶された画像データに対してブロックセレクション処理を実行する。そして、ステップS4504において、ブロックセレクション処理によって文字部分と認識された領域に関してOCR処理を行い、その結果からドキュメントのタイトルと、バージョンを認識する。ステップS4505では、ステップS4504で認識したバージョン以降に更新され、登録されているドキュメントの全てのバージョンを表示装置206に一覧表として表示する。
ユーザは表示された一覧の中から、自分が差し替えを行いたい所望のバージョンを選択することができる。ユーザからバージョンが指示されると、ステップS4506でこれを受け付ける。次に、MFP100は、ステップS4507において、ステップS4504で認識した手持ちの紙原稿のバージョンと、ステップS4506で指定された出力を行うべきバージョンのページレイアウト情報を画像管理サーバ105から入力する。そして、ステップS4508において、これらページレイアウト情報から出力を行うために最適となるようにページレイアウトの最適化処理を行う。最適化が行われた結果、紙原稿のページ削除及びプリントアウトの追加が行割れた場合は、ステップS4509において、ページ番号の重複等が起こらないように、第1実施形態と同様に、ページ番号の付与を行う。そして、ステップS4510において、表示装置206上に差し替えの指示を表示し、ステップS4511において、差し替え用のページをプリントアウトする。
作業者は、第1実施形態と同様に、表示部に表示された差し替えの指示に従って、手持ちの紙原稿の廃棄と、プリントアウトされた出力の挿入を行うことにより、所望のバージョンの差し替え原稿を得る。
次に、図45におけるドキュメントとバージョンの認識(ステップS4504)の処理の詳細を、図46を参照して説明する。
図46の(A)はドキュメントの表紙の例を示す図であり、(B)はその表紙に対してブロックセレクション処理を行った結果を示した図である。第1実施形態にて詳細に説明したのと同様な方法により、図46の(A)の画像データについてブロックセレクション処理を行うと、図46の(B)のようになる。そして、このようなブロックセレクション処理の結果から、ドキュメントの種類とそのバージョンを以下の方法で認識する。
まず、最も大きなフォントにて書かれている文字領域はドキュメントのタイトルが書かれている部分であるとし、こうして得られたタイトルに基づいてドキュメントの種類を認識する。また、そのドキュメントのバージョンに関してはOCR処理の結果より「Ver」という文字列を含む文字領域を抽出する。そして、文字列「Ver」が含まれている文字領域の「Ver」以外の文字を、そのドキュメントのバージョンであると認識する。
なお、第3実施形態では、例としてあげている表紙の形態の特徴から、上述のような方法でドキュメントの種類とバージョンの認識を行ったが、これに限られるものではない。実際には様々な形態への対応を要るため、他の情報を使用し、他のアルゴリズムによる認識を行っても良い。
以上のように、第3実施形態では、表紙のスキャン画像データの認識処理を行うことにより、紙原稿のドキュメントの種類とバージョンの認識を行う。このため、第2実施形態ではドキュメントの種類及びバージョンを作業者が手入力していたが、第3実施形態ではこれらの入力操作が不要となる。
なお、上記第1及び第2実施形態では1つのドキュメントについて複数のバージョンが存在する場合を説明したが、画像データベースには複数のドキュメントが存在してもかまわない。この場合、画像データベースにはドキュメント毎にブロック情報を保持し、差し替え印刷を行うに先立ってドキュメントを指定するように構成すればよい。第3実施形態では、そのようなドキュメントの指定がOCR処理によってなされることになる。
(他の実施形態)
以上、実施形態を詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
尚、本発明は、ソフトウェアのプログラムをシステム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによって前述した実施形態の機能が達成される場合を含む。この場合、供給されるプログラムは実施形態で図に示したフローチャートに対応したプログラムである。
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であっても良い。
プログラムを供給するための記録媒体としては以下が挙げられる。例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などである。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムをハードディスク等の記録媒体にダウンロードすることが挙げられる。この場合、ダウンロードされるプログラムは、圧縮され自動インストール機能を含むファイルであってもよい。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布するという形態をとることもできる。この場合、所定の条件をクリアしたユーザに、インターネットを介してホームページから暗号を解く鍵情報をダウンロードさせ、その鍵情報を使用して暗号化されたプログラムを実行し、プログラムをコンピュータにインストールさせるようにもできる。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどとの協働で実施形態の機能が実現されてもよい。この場合、OSなどが、実際の処理の一部または全部を行ない、その処理によって前述した実施形態の機能が実現される。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれて前述の実施形態の機能の一部或いは全てが実現されてもよい。この場合、機能拡張ボードや機能拡張ユニットにプログラムが書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行なう。