(57)【要約】      （修正有）【課題】ブロック単位で必要な情報を選択して新たなページへ配置するブロックセレクション機能において、ページを跨ぐ場合にブロックを分割することがある。ページを跨いだために分割されたブロックが再び同じページに移動した場合でも、元の文書データとの差異がないように間締めを行うプログラムを提供する。【解決手段】分割されたブロックが同ページに連続するように配置された場合にブロックを再結合する手段（Ｓ１６０６）を持つことで可読性の低下やデータの劣化を防ぐ。【選択図】図１６
2013131874.tif 000002
【特許請求の範囲】
【請求項１】
文書内の図形や文字列や画像の描画オブジェクトを自動的にブロック化する手段（図４）と、ブロック化されたオブジェクトを印刷時に再レイアウトする手段（図５）を持つ間締め処理プログラムにおいて、
ブロックを分割する手段（図８）と、分割されたブロックが同ページに連続するように配置された場合にブロックを再結合する手段（Ｓ１６０５、Ｓ１６０７、Ｓ１６０８）を持つことを特徴とする間締め処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は間締め処理を行うプログラムに関する。
【背景技術】
【０００２】
近年、用紙の印刷効率を高めるために、電子文書の印刷において、文書の空白部分を取り除き、文書を詰めることで印刷用紙枚数を削減する、間締め印刷の機能が登場した（例えば、特許文献１）。また、図形や表などを含むより複雑な電子文書では、可読性やレイアウトを考慮して、文字列や図形、画像などの描画オブジェクトをブロック化し、ブロック単位で間締め処理を行う技術が用いられるようになった。ブロック化とは、視覚的あるいは内容的にまとまりのある単位で描画オブジェクトをグループ化する技術である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−３１８２３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
間締め処理プログラムの一機能として、ブロック単位で必要な情報を選択して新たなページへ配置するブロックセレクション機能がある。ブロックセレクション機能では、ページを跨ぐ場合、空白領域を少なくするためにブロックが分割されることがある。しかし、ページを跨いだために分割されたブロックが再び同じページに移動した場合、分割されたままでは元の文書データとの差異があり、可読性の低下やデータの劣化が発生する課題があった。
【課題を解決するための手段】
【０００５】
文書内の図形や文字列や画像等の描画オブジェクトを自動的にブロック化する手段（図４）と、ブロック化されたオブジェクトを印刷時に再レイアウトする手段（図５）を持つ間締め処理プログラムにおいて、
ブロックを分割する手段（図８）と、分割されたブロックが同ページに連続するように配置された場合にブロックを再結合する手段（Ｓ１６０５、Ｓ１６０７、Ｓ１６０８）を持つことを特徴とする間締め処理プログラム。
【発明の効果】
【０００６】
ページを跨ぐ場合はブロックを分割することで空白を最小限に抑えることができ、分割されたブロックが再結合されることによって、分割による可読性の低下やデータの劣化を防ぐことが可能となる。
【図面の簡単な説明】
【０００７】
【図１】本発明の実施形態にかかるコンピュータシステム構成図
【図２】ドキュメントとオブジェクトの関係図
【図３】オブジェクトの説明図
【図４】従来のブロック化に関する概要図
【図５】従来の間締め処理に関する概要図
【図６】間締め処理に関する機能ブロック図
【図７】ブロックセレクション機能の概要図
【図８】ページの最後にブロックを配置する際の操作パターン図
【図９】ブロックを縮小して配置した場合を示す図
【図１０】ブロックの分割操作を示す図
【図１１】ブロックを分割して配置した場合を示す図
【図１２】ブロックを次ページに配置した場合を示す図
【図１３】ブロックの削除操作を示す図
【図１４】ブロックの再結合を示す図
【図１５】ブロックセレクション機能におけるデータ構造の概念図
【図１６】ブロックの分割および再結合処理に関するフローチャート
【発明を実施するための形態】
【０００８】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【０００９】
図１は、本発明の実施の形態に係る間締め処理が実行されるコンピュータの構成例を示すブロック図である。間締め処理が実行されるコンピュータには、パーソナルコンピュータ（以下ＰＣと略称）のほか、複合印刷機（マルチファンクションプリンタ、以下ＭＦＰと略称）などがある。
【００１０】
図１において、コンピュータは、システムバス０１０１、ＣＰＵ０１０２、メモリ０１０３、記憶装置０１０４、ビデオインタフェース０１０５、Ｉｎｐｕｔ／Ｏｕｔｐｕｔ（以下Ｉ／Ｏと略称）インタフェース０１０６、通信インタフェース０１０７を備えている。上記各構成要素はシステムバス０１０１に接続されている。
【００１１】
ＣＰＵ０１０２は、システムバス０１０１を介して各構成要素を制御したり、データの計算や加工を行ったりする中央処理装置である。メモリ０１０３はデータやプログラムを記憶する装置で、ランダムアクセスメモリ（ＲＡＭ）やリードオンリーメモリ（ＲＯＭ）から構成される。記憶装置０１０４は、記憶されたデータの書き込み／読み出しを行う。記憶装置には、ハードディスクドライブ０１１１、フロッピー（登録商標）ディスクドライブ０１１２、不揮発性のデータソースとして利用されるＣＤ−ＲＯＭドライブ０１１３がある。図には示されていないが、記憶装置としては磁気テープドライブ、ＤＶＤ−ＲＯＭなども使用されることがある。
【００１２】
プログラムは、記憶装置０１０４から読み込まれ、メモリ０１０３に格納した上で、ＣＰＵ０１０２によって実行される。なお、本実施例ではプログラムを記憶装置０１０４から読み込む構成としているが、ＲＯＭから読み込んだり、通信インタフェース０１０７を介して外部から読み込んだりする構成とすることもできる。
【００１３】
ビデオインタフェース０１０５は、ディスプレイ装置０１１６への表示出力を制御する。ディスプレイ装置０１１６の表示方法には、ＣＲＴや液晶等がある。Ｉｎｐｕｔ／Ｏｕｔｐｕｔ（以下Ｉ／Ｏと略称）インタフェース０１０６には、キーボード０１１４やポインティングデバイス０１１５等の入力装置が接続される。操作者はキーボード０１１４を操作することによりシステムに対する動作指令等を行う。ポインティングデバイス０１１５は、ディスプレイ装置０１１６上のカーソルを移動させてメニューやオブジェクトの選択や操作等を行う。通信インタフェース０１０７は、ＬＡＮ０１１８に接続して外部機器との通信を行う。接続先のネットワークには、ＬＡＮの他にもＷＡＮやインターネットのような公衆回線等がある。また、通信インタフェース０１０７は、ローカルプリンタ０１１７などの出力機器との通信も行う。
【００１４】
図６は、間締め機能に関する機能ブロック図である。空白領域識別部０６０１は、文書上の空白領域や文書に配置されたテキストや画像等のオブジェクト間の余白を識別する。ブロック化部０６０２は、空白領域識別部０６０１で識別された余白情報にもとづいて、オブジェクトのブロック化を行う。間締め処理部０６０３は、空白領域識別部０６０１で識別された空白領域とブロック化部０６０２でブロック化されたブロックのサイズを考慮して間締め処理を行う。
【００１５】
印刷設定判定部０６０４は、印刷時の設定情報を取得する。ブロック分割部０６０５は、印刷設定判定部０６０４で取得した印刷設定情報、空白領域識別部０６０１で識別した空白領域やオブジェクト間の余白を考慮して、ブロックの分割を行う。
【００１６】
図２から図５で従来のブロック化および間締め印刷の概要を説明する。
【００１７】
図２は、間締め処理の対象となるドキュメントと、ドキュメント上のオブジェクトを示す図である。０２０１はテキストオブジェクト、点線０２０２はテキストオブジェクト０２０１の矩形を示す。オブジェクト化する単位はドキュメントフォーマットによって様々であるが、本例では１行単位でオブジェクト化されるＰｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ（以下ＰＤＦと略称）を例に説明を行う。なお、オブジェクトの矩形に関してはドキュメントフォーマットによって扱い方は異なる。フォントの高さと幅を用いて矩形を表すものもあれば、文字を囲うものもある。０２０３は画像オブジェクト、点線０２０４は画像オブジェクト０２０３の矩形を示す。
【００１８】
図３は、ドキュメント上に配置されるオブジェクトの情報を示す図である。０３１０はドキュメントのページ上に設けられた座標軸を示し、０３１１は座標軸上に配置されたオブジェクトを示す。また、０３２０はオブジェクト０３１１の管理情報である。図３では、左上を原点とした座標軸を持ち、オブジェクト０３１１は矩形の左上座標０３２３と右下座標０３２４で位置が指定される。０３２１はオブジェクトが持つＩＤで、オブジェクトのＩＤはドキュメント内でユニークである。０３２２はオブジェクトの種類であり、画像の他にもテキスト、線、長方形や円のような図形などがある。０３２５はオブジェクト固有の情報であり、種別や個々のオブジェクトに応じて異なった情報を保持することが可能である。
【００１９】
図４は、オブジェクトのブロック化に関する図である。ブロック化とはオブジェクトをある単位でグループ化することである。間締め処理は自動で行われることが多いが、無造作に文章を切った場合、ドキュメントのレイアウトが不適切になったり、内容が分断されたりして可読性が低下するといった問題がある。そのため、間締め処理では適切な単位でブロック化を行った上で、ブロック単位でレイアウトの変更を行う。
【００２０】
０４１０はドキュメントのある１ページで、０４２０はページ０４１０のオブジェクトをブロック化したイメージを示している。ページ０４２０は、オブジェクト間の距離や空白部分の大きさから判断し、ブロック０４２１、ブロック０４２２、ブロック０４２３の３つのブロックが作成される。なお、ブロック化のロジックには様々な方法があり、ドキュメントフォーマットによっても異なる。
【００２１】
図５は、従来の間締め処理に関する図である。０５１０はドキュメントのあるページ、０５２０はページ０５１０の次ページである。０５１１はページ０５１０の間締め可能な空白領域である。なお、ブロック間の間隔や用紙のマージン領域は予め決められている。ページ０５２０は図４の０４２０と同様に３つのブロック０５２１、０５２２、０５２３で構成されている。矢印の線０５３１、０５３２はブロック０５２１を０５１１へ間締めしようとした場合の上辺と底辺の位置を示している。
【００２２】
間締め可能領域０５１１が間締めしようとするブロック０５２１を格納可能であれば、間締め処理が行われる。間締め可能領域０５１１にブロック０５２１が収まらない場合は、間締め処理は行われない。
【００２３】
次に本特許の主題となるブロックセレクション機能の概要を説明する。従来の間締め機能では、空白を間締めする処理の他にブロックの移動や削除が可能であったが、ブロックセレクション機能では、必要なブロックだけを別ページに移動あるいはコピーすることが可能となる。ブロックセレクション機能により、必要なブロックを抽出する場合の手間を軽減することができる。
【００２４】
図７はブロックセレクション機能の概要を示した図である。図中の矢印はブロックが移動あるいはコピーされる遷移を示している。図７において、０７００および０７１０はドキュメントのページを示しており、０７０１、０７０２、０７０３、０７１１、０７１２、０７１３はブロック化されたブロックを示している。０７２０は新規ページを示しており、初期は白紙の状態である。図７は、ページ０７００上のブロック０７０２がページ０７２０にコピーされてブロック０７２１が作成され、次にページ０７１０上のブロック０７１２がページ０７２０にコピーされてブロック０７２２が作成されたことを示している。コピー操作の例としてはドラッグ＆ドロップなどがある。ブロック０７０２とブロック０７２１、および、ブロック０７１２とブロック０７２２は同じ内容のブロックである。ブロック０７２１は自動的にページ０７２０の先頭に配置され、ブロック０７２２は自動的にブロック０７２１の下に間締めされた状態で配置される。なお、ブロックは既存ブロックの手前に挿入することも可能である。
【００２５】
ページ０７３０はページ０７２０の次ページである。ページ０７３０は、ページ０７２０にブロックが収まらなくなった時に自動的に表示され、ブロックが配置されるとページデータが生成される。
【００２６】
新しく作成されたページ０７２０、ページ０７３０は、元のドキュメントと同様に、配置されたブロックの移動や削除が可能であり、削除された場合には自動的に間締め処理が実行される。
【００２７】
なお、０７００と０７１０は異なるドキュメントであってもよい。また、０７００および０７０１と、０７２０の用紙サイズは異なっていてもよい。
【００２８】
ブロックセレクション機能によって新しく作成されたデータは、ハードディスクドライブ０１１１、フロッピー（登録商標）ディスクドライブ０１１２、ＣＤ−ＲＯＭドライブ０１１３等の記憶装置に保管することができる。さらに通信インタフェース０１０７を介して外部記憶装置へ保管することも可能である。
【００２９】
次に図８から図１２で、ページの最後にブロックを配置する場合の動作について説明する。
【００３０】
図８で、０８００はブロックを追加する新規ページで、０８１０はこれから追加しようとするブロックを示している。図中の矢印はブロックが移動あるいはコピーされる遷移を示しており、矢印０８１１はページ０８００にブロックを追加する遷移を示す。ページ０８００にブロック０８０１を格納する大きさがあれば、ブロック０８０１はそのままの大きさで追加される。ページ０８００にブロック０８０１を格納する大きさがない場合はブロックを縮小する場合もある。ブロックを縮小して格納した場合の例を図示したのが図９である。図９において、ブロック０８１０は縮小されてページ０８００に追加されている。この際、ブロック０９０１およびブロック０９０２との間隔も再調整され、全体的なバランスを保つように動作する。また、ブロック０８１０の縮小方法は、画像データとテキストデータとで異なる。画像データであれば縦横の比率を保って縮小が行われる。テキストデータであれば、フォントサイズを小さくすることでブロックの大きさを縮小させる。さらにテキストデータの縮小では、ブロック０９０１およびブロック０９０２のフォントサイズも小さくすることで、全体のバランスをとる場合もある。なお、縮小率には制限を設ける場合がある。縮小しすぎて可読性をそこねないよう、縮小率が大きくなる場合には、ブロックを追加させずにエラーメッセージ等を表示する。
【００３１】
図８に戻り、次の遷移について説明する。図８において、線０８０１はブロック分割線、ページ０８０２は次ページを表している。ページ０８００に追加するブロック０８１０を格納する領域が不足している場合には、分割線０８０１と次ページ０８０２が表示される。矢印０８１２はブロック０８１０を分割する遷移を示している。ブロックの分割を示したのが図１０である。図１０において、ブロック０８１０は分割線０８０１と重なり合っており、分割線０８０１の位置でブロック０８１０が分割されることを意味している。分割線の位置を調節することで、適当な位置でブロックを分割することが可能である。なお、画像オブジェクトは分割することが可能であるが、テキストオブジェクトは分割することができないため、文字列の場合は行単位での分割となる。図１０で分割された結果を示すのが図１１である。図１１において、図１０のブロック０８１０はブロック１１０１とブロック１１０２に分割される。分割された上側のブロック１１０１はページ０８００に追加され、下側のブロック１１０２は次ページ０８０２に追加される。
【００３２】
図８に戻り、次の遷移について説明する。矢印０８１３はブロック０８１０を次ページ０８０２に追加する遷移を示している。ブロック０８１０を次ページ０８０２に追加した結果を示すのが図１２である。図１２において、ページ０８００の下領域を残したまま、ブロック０８１０が次ページ０８０２に追加される。
【００３３】
次に図１３から図１５を用いて、ブロックの再結合について説明する。
【００３４】
図１３は、図１１においてブロックが分割された状態から、ブロックを削除することを示している。図１３では分割されたブロック１１０１の手前にあるブロック０９０２は、を削除している。ブロック０９０２が削除された結果を示しているのが図１４である。図１４において、ブロック１４０１は、ブロック１１０１とブロック１１０２が再結合されたブロックである。ブロック０９０２が削除された結果作成された空白領域が間締めされ、ブロック１１０１とブロック１１０２が同じページ０８００に連続して配置されたため再結合処理が行われた。ブロック１４０１は分割前のブロック０８１０と同じ内容のブロックである。
【００３５】
図１５は、ブロックセレクション機能におけるデータ構造の概念図である。１５０１は追加されたブロックの配列、１５０２はブロックに対するページ位置情報を示している。ブロック配列１５０１には、元ドキュメントでブロック化された際のブロック情報が格納されている。１５０１のブロック４は、ページ情報１５０２のページ２とページ３に跨っているが、これはブロック４がページ２とページ３とに分割して表示されていることを意味している。即ち、ページを跨ぐ際に行われるブロック分割では、ブロック情報とページ情報の組み合わせでブロックが分割されていることを表現しており、データ上、ブロックが分割されているわけではない。元ドキュメントにおけるブロック分割では、データ上のブロックを分割するため再結合は行われないが、ブロックセレクション機能におけるページを跨ぐ際のブロック分割では再結合が可能となる。
【００３６】
このような再結合処理によって、元文書のイメージを保持し、分割による可読性の劣化を防ぐことが可能となる。
【００３７】
図１６は、ブロックの分割および再結合処理に関するフローチャートである。図１６のフローチャートで示されるプログラムは、記憶装置０１０４から読み込まれ、メモリ０１０３に格納した上で、ＣＰＵ０１０２によって実行される。
【００３８】
図１６のフローチャートは、新たに作成されたページ上のブロックに変化があった場合、もしくは、間締め処理の実行命令を受信した場合に動作する。Ｓ１６０１でページ数分ループ処理を行うことになるが、ブロックに変化があった際に適宜実行される場合は、変化のあったブロック以下のページが対象となる。また、間締め処理の実行命令を受信した場合には、全ページ、もしくは、指定されたページが対象となる。次にページ単位で間締め処理が実行される（Ｓ１６０２）。Ｓ１６０２はブロックセレクションに限らない共通の間締め処理である。なお、ページ上にブロックが存在しない場合は、Ｓ１６０２の処理でページが削除される。
【００３９】
次にブロックセレクションのデータを参照し、ブロックに対応するページ情報を更新する（Ｓ１６０３）。ページ情報とは、図１５の概念図におけるページ位置情報１５０２を示し、ブロック配列１５０１に対応するページの範囲が更新されることになる。なお、Ｓ１６０２でページが削除された場合にはページ位置情報も削除される。次にページに掛かるブロックを参照してゆく（Ｓ１６０４）。ページに掛かるとは、図１５において、ページ位置情報１５０２が示すページに含まれる部分が存在するブロックを指し、ブロックの一部分である場合も該当する。そして、ブロック内に存在するオブジェクトが全てページ内に含まれているかどうかを判定し（Ｓ１６０５）、全て含まれている場合は、ブロック全体がページ内に収まっているため、そのまま１つのブロックとして表示する（Ｓ１６０６）。また、オブジェクトが全て含まれていない場合は、ブロックが分割されていることを示している。オブジェクトが全て含まれていない場合は、ページに含まれるオブジェクトをグループ化し（Ｓ１６０７）、グループを分割されたブロックとして表示する（Ｓ１６０８）。
【符号の説明】
【００４０】
０１０１  システムバス
０１０２  ＣＰＵ
０１０３  メモリ
【図１】
2013131874.tif 000003
【図２】
2013131874.tif 000004
【図３】
2013131874.tif 000005
【図４】
2013131874.tif 000006
【図５】
2013131874.tif 000007
【図６】
2013131874.tif 000008
【図７】
2013131874.tif 000009
【図８】
2013131874.tif 000010
【図９】
2013131874.tif 000011
【図１０】
2013131874.tif 000012
【図１１】
2013131874.tif 000013
【図１２】
2013131874.tif 000014
【図１３】
2013131874.tif 000015
【図１４】
2013131874.tif 000016
【図１５】
2013131874.tif 000017
【図１６】
2013131874.tif 000018