(57)【要約】【課題】ページから得られる表ブロックにおける空白部を詰めて、無駄な印刷を抑えることができる情報処理装置、情報処理装置の制御方法、及びコンピュータプログラムを提供する。【解決手段】プロセッサ１１が、ページに配置されるオブジェクトを複数のブロックに分割し、この複数のブロックから表ブロックを抽出する。そして、プロセッサ１１が、上記表ブロックについて、表ブロックに含まれるオブジェクトとオブジェクトとの間の空白部を詰める間締め処理を実行する。【選択図】図１
2011158998.tif 000002
【特許請求の範囲】
【請求項１】
ページに配置されるオブジェクトを複数のブロックに分割する分割手段と、
前記複数のブロックから罫線オブジェクトを含む表ブロックを抽出する抽出手段と、
前記抽出した表ブロックについて、該表ブロックに含まれるオブジェクトとオブジェクトとの間の空白部を検出し、検出した空白部を詰める間締め処理を実行する間締め手段とを備える
ことを特徴とする情報処理装置。
【請求項２】
前記間締め手段は、
前記抽出した表ブロックから罫線オブジェクトと前記罫線オブジェクト以外のオブジェクトとを抽出し、
前記抽出された前記罫線オブジェクト以外のオブジェクト間の空白部を詰める間締め処理を実行し、
前記実行された間締め処理により得られる罫線オブジェクト以外のオブジェクトについての間締め処理結果に基づいて、前記罫線オブジェクトが示す罫線を補正し、
前記間締め処理した罫線オブジェクト以外のオブジェクトと、前記補正した罫線とを合成する
ことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記間締め手段は、更に、前記表ブロックに含まれるオブジェクトのうち、隣接するオブジェクトが有する属性の組み合わせに応じて、前記罫線オブジェクト以外のオブジェクトについての間締め処理を実行する
ことを特徴とする請求項２記載の情報処理装置。
【請求項４】
前記抽出手段は、更に、前記複数のブロックから表ブロック以外のブロックを抽出し、
前記間締め手段は、前記間締め処理が実行された表ブロックの座標と、前記抽出された表ブロック以外のブロックの座標とに基づいて、隣接するブロック間の空白部を詰める処理を実行する
ことを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記間締め手段は、前記ブロック間の空白部を詰める処理が実行された第１のページに含まれる最終のブロックの下端と前記第１のページの下端との間の距離と、前記第１のページの次のページである第２のページに含まれるブロックの座標とに基づいて、前記第２のページに含まれるブロックが前記第１のページに入るかを判断し、前記判断結果に基づいて、前記第２のページに含まれるブロックを前記最終ブロックの下端と前記第１のページの下端との間に配置する
ことを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
ページに配置されるオブジェクトを複数のブロックに分割する分割工程と、
前記複数のブロックから罫線オブジェクトを含む表ブロックを抽出する抽出工程と、
前記抽出した表ブロックについて、該表ブロックに含まれるオブジェクトとオブジェクトとの間の空白部を検出し、検出した空白部を詰める間締め処理を実行する間締め工程とを有する
ことを特徴とする情報処理装置の制御方法。
【請求項７】
請求項６に記載の情報処理装置の制御方法をコンピュータに実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理装置の制御方法、及びコンピュータプログラムに関する。
【背景技術】
【０００２】
印刷データを印刷する場合に、印刷枚数をできる限り削減することによって、省エネ印刷を実行したいというニーズがある。このような省エネ印刷を行う技術として、印刷する際に描画オブジェクトと描画オブジェクトとの間の空白部を検出し、その空白部を詰める間締め処理を行ってから印刷処理を行うことで印刷により出力される用紙枚数を削減するシステムが提案されている。例えば、特許文献１が開示する画像処理システムは、入力したデータに対してＰＤＬ（Page Description Language ）解析を行い、文字、図形、空白の属性判別後にオブジェクト別にブロック単位で分離する。また、この画像処理システムは、予め設定された優先度に応じて移動対象となるオブジェクトを縮小し、新たに生じた空白部分に縮小されたオブジェクトを移動する。そして、この画像処理システムは、上記移動後にデータ上に生じた空白部分を削除して印刷レイアウトの自動変更を行う。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−４８５２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、上記特許文献１が開示する画像処理システムは、ブロック単位でオブジェクトを移動することによって、空白部の間締め処理を行うものであり、ブロック内に存在する空白部については、間締め処理を実行しない。従って、例えば罫線で囲まれた表に対応するブロックである表ブロック内に空白部がある場合であっても、この空白部を詰めることができない。
【０００５】
図１６は、特許文献１が開示する画像処理システムが間締め処理を行う場合の問題点を説明する図である。図１６（Ａ）は、所定のページを示す。まず、図１６（Ａ）のページ内のオブジェクトが図１６（Ｂ）に示すように３個のブロックＢ１，Ｂ２，Ｂ３に分割される。Ｂ１は文字列のオブジェクトと画像のオブジェクトとを含むブロックである。Ｂ２は、罫線のオブジェクトと、この罫線で囲まれた表内に含まれるオブジェクトとを含む表ブロックである。Ｂ３は、文字列のオブジェクトを含むブロックである。そして、隣接するブロック間の空白を詰めた結果、図１６（Ｃ）に示すように、Ｂ１とＢ２との間の空白部と、Ｂ２とＢ３との間の空白部とが詰められる。しかし、表ブロックであるＢ２内のオブジェクト間に存在する空白部が残る。従って、表ブロック内の空白部により無駄な用紙が出力されるおそれがある。
【０００６】
本発明は、ページから得られる表ブロックにおける空白部を詰めて、無駄な印刷を抑えることができる情報処理装置、情報処理装置の制御方法、及びコンピュータプログラムの提供を目的とする。
【課題を解決するための手段】
【０００７】
本発明の一実施形態の情報処理装置は、ページに配置されるオブジェクトを複数のブロックに分割する分割手段と、前記複数のブロックから罫線オブジェクトを含む表ブロックを抽出する抽出手段と、前記抽出した表ブロックについて、該表ブロックに含まれるオブジェクトとオブジェクトとの間の空白部を検出し、検出した空白部を詰める間締め処理を実行する間締め手段とを備えることを特徴とする。
【発明の効果】
【０００８】
本発明の情報処理装置によれば、ページから得られる表ブロックにおける空白部を詰めることができるので、無駄な印刷を抑えることができる。その結果、印刷される総ページ数を削減することが可能となる。
【図面の簡単な説明】
【０００９】
【図１】本実施形態のシステム構成例を示す図である。
【図２】オブジェクトリストの例を示す図である。
【図３】オブジェクトの情報とオブジェクトの配置例とを示す図である。
【図４】オブジェクトの情報を示す図である。
【図５】本実施形態の情報処理装置の動作処理フローの例を示す図である。
【図６】間締め設定画面の例を示す図である。
【図７】ページ領域内間締め処理を説明する図である。
【図８】表ブロック内間締め処理の例を説明する図である。
【図９】間締め位置と間締め量の算出処理の例を説明する図である。
【図１０】表ブロック内間締め処理フローの例を示す図である。
【図１１】補正値による間締め処理を説明する図（１）である。
【図１２】補正値による間締め処理を説明する図（２）である。
【図１３】ページ全体間締め処理を説明する図である。
【図１４】表ブロックの修正とブロック全体間締め処理とを説明する図である。
【図１５】ページ間間締め処理を説明する図である。
【図１６】間締め処理を行う場合の問題点を説明する図である。
【発明を実施するための形態】
【００１０】
図１は、本実施形態のシステム構成例を示す図である。図１に示すシステムは、コンピュータ１と、プリンタ２と、ディスプレイ装置３とを備える。コンピュータ１は、本実施形態の情報処理装置である。コンピュータ１は、対象ページについて間締め処理を実行する。間締め処理は、対象ページに含まれる空白部を詰める処理である。また、コンピュータ１は、プリンタ２に対して上記間締め処理された対象ページの印刷データを送信し、この印刷データを印刷させる。また、コンピュータ１は、ディスプレイ装置３に対して各種の表示データを送信し、この表示データを表示させる。本実施形態において、対象ページは、例えばＰＤＦ（Portable Document Format）等の、ページに配置されるオブジェクトを含むデータである。プリンタ２は、コンピュータ１からの指示に従って印刷データを印刷する。ディスプレイ装置３は、コンピュータ１からの指示に従って表示データを表示する。キーボード４、マウス５は、コンピュータ１のユーザの操作入力に応じた情報を入力する。
【００１１】
コンピュータ１は、プロセッサ１１、Ｉ／Ｏ（Input/Output）インタフェース１２、１６、メモリ１３を備える。また、コンピュータ１は、ＣＤ−ＲＯＭ（Compact Disk Read Only Memory ）ドライブ１４、ビデオインタフェース１５、記憶装置１７を備える。プロセッサ１１は、コンピュータ１全体を制御する。プロセッサ１１は、例えば、ＣＰＵ（Central Processing Unit ）である。本実施形態に特有の動作として、プロセッサ１１は、ページに配置されるオブジェクトを複数のブロックに分割する分割手段として機能する。プロセッサ１１が、対象ページを解析する。この対象ページの解析結果は、例えば、オブジェクトリストを含む。オブジェクトリストは、対象ページに含まれるオブジェクトの情報のリストである。オブジェクトの情報は、例えば、オブジェクトの識別情報と、オブジェクトの属性と、オブジェクトの座標情報とを含む。プロセッサ１１は、オブジェクトリストを記憶装置１７に記憶する。
【００１２】
プロセッサ１１は、例えば、ページ内の各々のオブジェクトに対して外接矩形を作成し、作成した外接矩形のうち、Ｙ座標が重なる複数の矩形を抽出する。そして、プロセッサ１１は、抽出した複数の矩形を囲む外接矩形を作成することによって、１つのブロックを作成する。これにより、Ｙ軸方向で重なり合わない複数の矩形ブロックが作成される。プロセッサ１１は、分割によって得られた各々のブロックの情報を記憶装置１７に記憶する。記憶装置１７に記憶されるブロックの情報は、例えば、ブロックの識別情報と、ブロックの属性と、ブロックの座標情報と、ブロックに含まれるオブジェクトの識別情報とを含む。ブロックの属性は、ブロックが表ブロックであるか、表ブロック以外のブロックであるかを示す。なお、本願では、罫線オブジェクトが含まれるブロックを表ブロックと判定する。プロセッサ１１は、ブロックに含まれるオブジェクトの識別情報を用いて、オブジェクトリストを検索することによって、各々のブロックに含まれるオブジェクトの情報を取得することができる。
【００１３】
また、プロセッサ１１は、上記複数のブロックから罫線オブジェクトを含む表ブロックを抽出するブロック抽出手段として機能する。また、プロセッサ１１は、上記抽出した表ブロックについて、該表ブロックに含まれるオブジェクトとオブジェクトとの間の空白部を検出し、検出した空白部を詰める間締め処理を実行する間締め手段として機能する。
【００１４】
Ｉ／Ｏインタフェース１２は、キーボード４、マウス５が入力した情報をコンピュータ１に入力する。Ｉ／Ｏインタフェース１６は、コンピュータ１からプリンタ２に対する印刷データの送信を媒介する。また、Ｉ／Ｏインタフェース１６は、ネットワークを通じて外部装置と通信する。ネットワークは、例えば、ＬＡＮ（Local Area Network）や、ＷＡＮ（Wide Area Network ）等である。
【００１５】
メモリ１３は、ＲＡＭ（Random Access Memory）とＲＯＭ（Read Only Memory）とを備える記憶手段である。ＲＡＭは、プロセッサ１１が処理に用いる作業領域を有する。ＲＯＭには、プロセッサ１１がコンピュータ１の制御に用いるプログラムとデータとが予め記憶されている。ＣＤ−ＲＯＭドライブ１４は、不揮発性の記憶媒体であるＣＤ−ＲＯＭが格納される装置である。ビデオインタフェース１５は、コンピュータ１からディスプレイ装置３への表示データの送信を媒介する。記憶装置１７は、例えば、ページ、オブジェクトリスト、ブロックの情報を記憶する。図１に示す例では、記憶装置１７は、ＨＤＤ（Hard Disk Drive ）とＦＤＤとを備える。ＦＤＤは、Floppy（登録商標）Disk Driveの略語である。本実施形態の情報処理装置の制御方法とそのコンピュータプログラムは、図１に示すコンピュータが備える各処理部の機能によって実現される。
【００１６】
図２は、オブジェクトリストの例を示す図である。オブジェクトリストに含まれるオブジェクトの情報は、オブジェクトＩＤ、オブジェクト種類、左上座標、右下座標、オブジェクト固有情報を含む。オブジェクトＩＤは、オブジェクトを識別する識別情報を示す。オブジェクト種類は、オブジェクトの種類を示す。例えば、オブジェクトの情報に含まれる「長方形」は、このオブジェクトが長方形のオブジェクトであることを示し、「文字列」は、このオブジェクトが文字列オブジェクトであることを示す。オブジェクト固有情報は、オブジェクトに固有の情報である。図２に示す例では、一つの文字列オブジェクトが複数の文字列に対応するが、オブジェクトリストには、一つの文字列に対応する文字列オブジェクトも含まれる。また、図２に示す例では、オブジェクトリストは、４本の罫線オブジェクトを有する長方形のオブジェクトを含むが、オブジェクトリストには、各々の罫線オブジェクトの情報も含まれる。罫線オブジェクトは、罫線のオブジェクトである。オブジェクトが罫線オブジェクトである場合、このオブジェクトの情報には、オブジェクトＩＤの他、オブジェクト種類として「罫線」、オブジェクト固有情報として、例えば、線の太さや、線種が含まれる。また、このオブジェクトの情報には、罫線の座標情報が含まれる。オブジェクトが文字列オブジェクトである場合、オブジェクト固有情報は、例えば、文字の書体やサイズである。オブジェクトリストに含まれるオブジェクトの種類とオブジェクト固有情報とが、オブジェクトの属性を示す。
【００１７】
図３は、オブジェクトの情報とオブジェクトの配置例とを示す図である。図３（Ａ）に示すオブジェクトの情報が示すオブジェクトは、所定のページにおいて図３（Ｂ）に示す位置に配置される長方形に対応する。
【００１８】
図４は、ＰＤＦフォーマットのページの解析結果から得られるオブジェクトの情報を示す図である。コンピュータ１は、例えば図４（Ａ）に示すＰＤＦを解析して、図４（Ｂ）に示すようなオブジェクトの情報を取得する。
【００１９】
図５は、本実施形態の情報処理装置の動作処理フローの例を示す図である。なお、本願のフローチャートは、コンピュータ１が備えるプロセッサ１１がフローチャートの処理に関連するプログラムを読み込んで実行することによって実現される。まず、プロセッサ１１が、対象ページの印刷処理の開始時に、ディスプレイ装置３に指示して、間締め設定画面を表示する（ステップＳ１）。間締め設定画面は、ユーザが間締め処理（間締め印刷）の指定を行うための画面である。
【００２０】
図６は、間締め設定画面の例を示す図である。間締め処理は、ページに含まれる空白部を所定のサイズまで詰める処理を指す。ユーザが設定欄１０１のチェックをＯＮにすると、間締め処理の指定がされる。ユーザが設定欄１０２のチェックをＯＮにすると、間締め編集を行うことが指定される。間締め編集は、間締め処理において実行される各々の処理の編集である。間締め編集を行うことが指定されると、プロセッサ１１は、間締め処理において実行される各々の処理を編集する編集画面を表示する。この編集画面を通じて、ユーザは、例えば、処理対象のブロックの選択や、間締め量の調整を行うことができる。ユーザが設定欄１０３のチェックをＯＮにすると、プレビュー画面の表示が指定される。プレビュー画面の表示の指定は、間締め処理の結果をプレビューすることの指定である。プレビュー画面の表示が指定されると、プロセッサ１１は、印刷データの印刷処理の前に、間締め処理の結果を表示する。これにより、ユーザが、間締め処理を続行するか否かを確認することができる。ユーザが設定欄１０４のチェックをＯＮにすると、プロセッサ１１は、間締め処理の際に、罫線の太さを間締めの補正値に反映させる。間締めの補正値は、オブジェクトの座標に基づいて決まる間締め量を補正する値である。罫線の太さを反映した間締めの補正値は、例えば、後述する図１０のステップＳ４５２又はステップＳ４５３において用いられる。また、図６の設定画面が、間締め処理により得られる空白部の所定のサイズを受け付けても良い。ここで、例えば、所定のサイズとして「１ｃｍ」を受け付けた場合、プロセッサは、ブロック間の距離が「１ｃｍ」になるまで間締め処理を実行する。
【００２１】
図５に戻って、プロセッサ１１が、間締め処理を行うことが指定されたかを判断する（ステップＳ２）。プロセッサ１１が、間締め処理を行うことが指定されていないと判断した場合は、ステップＳ１１に進む。一方、間締め処理を行うことが指定されていると判断した場合、プロセッサ１１が、記憶装置１７から印刷対象の文書を取得し、取得した文書から間締め処理が実行されていないページの有無を判断する（ステップＳ３）。なお、後述のステップＳ４の処理が実行されたページには、間締め処理の終了フラグが設定される。そのため、Ｓ３の処理は、終了フラグに従い実行される。プロセッサ１１が、間締め処理が実行されていないページがあると判断した場合は、プロセッサ１１は、文書から間締め処理が実行されていないページのページデータを抽出して、ページ領域内間締め処理を実行する（ステップＳ４）。なお、ページデータとは、対象ページのデータである。
【００２２】
次に、プロセッサ１１が、Ｓ４において間締め処理を実行したページの次ページの有無を判断する（ステップＳ５）。プロセッサ１１が、次ページがないと判断した場合は、ステップＳ８に進む。プロセッサ１１が、次ページがあると判断した場合は、プロセッサ１１は、この次ページについてページ領域内間締め処理を実行する（ステップＳ６）。
【００２３】
次に、プロセッサ１１が、ページ間間締め処理を実行する（ステップＳ７）。以上Ｓ３〜Ｓ７の処理が文書における全ページに対して実行される。次に、プロセッサ１１が、プレビュー画面の表示の指定がされているかを判断する（ステップＳ８）。プロセッサ１１が、プレビュー画面の表示の指定がされていないと判断した場合は、ステップＳ１１に進む。プロセッサ１１が、プレビュー画面の表示の指定がされていると判断した場合は、プロセッサ１１が間締め処理の結果をプレビューする（ステップＳ９）。
【００２４】
次に、プロセッサ１１が、ユーザに対して印刷処理を続行するかを問い合わせる画面を表示する。そして、プロセッサ１１が、上記問い合わせに応じたユーザからの操作入力に基づいて、印刷処理を続行するかを判断する（ステップＳ１０）。プロセッサ１１が、印刷処理を続行しないと判断した場合は、処理を終了する。プロセッサ１１が、印刷処理を続行すると判断した場合は、プロセッサ１１が、プリンタ２に対して間締め処理された印刷データを送信して、印刷処理を実行する（ステップＳ１１）。
【００２５】
図７は、図５のステップＳ４又はＳ６におけるページ領域内間締め処理を説明する図である。まず、プロセッサ１１が、ページデータに含まれるオブジェクトをブロックに分割する（ステップＳ４１）。プロセッサ１１は、例えば、図８（Ａ）に示すように、ページデータに含まれるオブジェクトをＢ１乃至Ｂ３の３個のブロックに分割する。例えばＢ１においては、文字オブジェクト「あいうえお・・・」の外接矩形のＹ座標と円形オブジェクトのＹ座標が重なるため両者のオブジェクトは同一ブロックに含まれる。このＹ座標を使ったブロック処理を各オブジェクトについて実行することにより図８（Ａ）が得られる。次に、プロセッサ１１が、処理対象のブロックがあるかを判断する（ステップＳ４２）。プロセッサ１１が、処理対象のブロックがないと判断した場合は、プロセッサ１１が、ページ全体間締め処理を実行する（ステップＳ４５）。なお、後述するステップＳ４４における表ブロック内間締め処理が実行されたブロックには、終了フラグがセットされる。従って、ステップＳ４２の処理は、この終了フラグに従い実行される。
【００２６】
プロセッサ１１が、処理対象のブロックがあると判断した場合は、プロセッサ１１が、ブロックを抽出し、抽出したブロックが表ブロックであるか、すなわち、罫線オブジェクトを含むブロックであるかを判断する（ステップＳ４３）。プロセッサ１１が、抽出したブロックが表ブロックでないと判断した場合は、ステップＳ４２に戻る。抽出したブロックが表ブロックであると判断された場合、プロセッサ１１は、表ブロック内間締め処理を実行する（ステップＳ４４）。
【００２７】
図８は、図７のステップＳ４４における表ブロック内間締め処理の例を説明する図である。図８（Ｂ）中のＢ２は、分割されたブロックから抽出された表ブロックを示す。まず、図８（Ｃ）に示すように、プロセッサ１１が、表ブロックＢ２から罫線部を抽出し、表ブロックＢ２を罫線部と罫線部以外の部分とに分離する。次に、プロセッサ１１が、罫線部以外の部分をブロック分割する。これにより、図８（Ｄ）に示すように、罫線部以外の部分が、例えばＢ２１乃至Ｂ２３の３個のブロックに分割される。なお、このブロック分割の処理は、図７のステップＳ４１と同じ処理である。本実施形態の情報処理装置は、表ブロックについては、表ブロックに含まれる各々のブロックを一つのオブジェクトとしてオブジェクトリスト内で管理する。従って、表ブロックに含まれる各々のブロックは、罫線部以外の部分に含まれるオブジェクトを示す。
【００２８】
次に、図８（Ｅ）に示すように、プロセッサ１１が、間締め位置と、各々の間締め位置に対応する間締め量とを算出する。具体的には、間締め位置は、各ブロックの左上と左下のＹ座標、罫線のＹ座標である。続いて、間締め量の算出方法について説明する。メモリには、間締め処理を実行することで得られる所定の空白サイズが決められている（例えば、ブロック間の距離が「１」になるまで詰める）。そして、現在のブロック間の距離と所定の空白サイズとの差異が間締め量となる。例えば、図８（Ｅ）において、Ｂ２１の下端とＢ２２の上端との間に５の空白があり、所定の空白サイズが１である場合、間締め量は４となる。なお、間締め量の算出処理の詳細については図９を参照して後述する。
【００２９】
続いて、図８（Ｆ）に示すように、プロセッサ１１が、算出した間締め位置と間締め量とに基づいて、罫線オブジェクト以外のオブジェクト間の空白部を詰める間締め処理を実行する。具体的には、プロセッサ１１が、図８（Ｅ）に示すブロックＢ２１乃至Ｂ２３の各ブロックを、各ブロックの間締め位置から間締め量に相当する距離だけＹ軸に沿った方向に移動して、ブロック間の空白部を詰める。プロセッサ１１は、オブジェクトリストにおいて、移動させたブロックに対応するオブジェクトの情報（オブジェクトの座標情報）を更新する。また、図８（Ｇ）に示すように、プロセッサ１１が、算出した間締め位置と間締め量（つまり、罫線オブジェクト以外のオブジェクトについての間締め処理結果）に基づいて、図８（Ｃ）に示す罫線部に含まれる罫線オブジェクトが示す罫線を補正する。プロセッサ１１は、オブジェクトリストにおいて、補正した罫線に対応するオブジェクトの情報（罫線の座標情報）を更新する。そして、図８（Ｈ）に示すように、プロセッサ１１が、間締め処理を実行した罫線部以外の部分（図８（Ｆ）を参照）と、罫線が補正された罫線部（図８Ｇを参照）とを合成する。
【００３０】
図８を参照して説明したように、本実施形態の情報処理装置は、表ブロック内の罫線部と罫線部以外とを分離した後、罫線部以外を間締め処理し、この間締め処理に用いた間締め位置と間締め量とに基づいて罫線部を補正する。そして、本実施形態の情報処理装置は、補正後の罫線部と間締め後処理後の罫線部以外とを合成して、表全体の間締め処理を行う。従って、本実施形態の情報処理装置によれば、罫線で囲まれたブロックに対しても間締め処理を実行することができるので、無駄な印刷を削減することができる。
【００３１】
図９は、間締め位置と間締め量の算出処理の例を説明する図である。なお、ここの説明において、図９（Ａ）はページ内に配置されたオブジェクトを示す図として説明する。図９（Ａ）中のＢ３１乃至Ｂ３３は、プロセッサ１１が罫線部以外の部分についてブロック分割することにより得られるブロック（オブジェクト）である。また、Ｌ１乃至Ｌ４は、罫線部に含まれる罫線オブジェクトが示す罫線を示す。本実施形態においては、プロセッサ１１は、各々のオブジェクトの座標に基づいて、間締め位置と間締め量とを算出する。
【００３２】
まず、プロセッサ１１は、各ブロックの左上と左下のＹ座標を間締め位置として決定する。また、プロセッサ１１は、罫線のＹ座標を間締め位置として決定する。具体的には、プロセッサ１１は、罫線Ｌ１のＹ座標「０」、Ｂ３１のＹ座標「５、１５」、罫線Ｌ２のＹ座標「２０」、Ｂ３２のＹ座標「２５、３５」、Ｂ３３のＹ座標「５０、７０」、罫線Ｌ３のＹ座標「８０」の位置を間締め位置として決定する。また、プロセッサ１１は、間締め位置を使ってブロック間の空白量を算出する。例えば、罫線Ｌ１のＹ座標と罫線Ｌ１に隣接するＢ３１の上端のＹ座標とに基づいて、空白量「５」を算出する。そして、間締め処理を実行することで得られる所定の空白サイズとして、例えば「１」が設定されている場合、罫線Ｌ１とＢ３１との間の空白量「５」を所定の空白サイズ「１」まで詰めるためには「４」だけ詰める必要がある。従って、プロセッサ１１は、罫線Ｌ１とＢ３１との間の空白を詰める間締め量として、間締め量「４」を算出し、この間締め量をＹ座標「０」という間締め位置に対応する間締め量とする。同様に、Ｂ３１と罫線Ｌ２との間の空白量が「５」であるため、プロセッサ１１は、Ｂ３１と罫線Ｌ２との間の空白を詰める間締め量として、間締め量「４」を算出し、この間締め量をＹ座標「１５」という間締め位置に対応する間締め量とする。また、罫線Ｌ２とＢ３２との間の空白量が「５」であるため、プロセッサ１１は、罫線Ｌ２とＢ３２との間の空白を詰める間締め量として、間締め量「４」を算出する。そして、プロセッサ１１は、この間締め量をＹ座標「２０」という間締め位置に対応する間締め量とする。この処理を各ブロック間について実行する。
【００３３】
以上の処理を各ブロック間について実行することで図９（Ａ）のテーブルＴ６が得られる。テーブルＴ６は、各々の間締め位置に対応する間締め量を示す。プロセッサ１１は、得られた間締め位置と間締め量に基づいて、各ブロックを移動する。具体的には、罫線Ｌ１とＢ３１との間の空白を詰める間締め量は「４」であり、Ｂ３１の上端のＹ座標が「５」であるため、間締め処理を実行することによりＢ３１のＹ座標が「１」に変更される。続いて、プロセッサ１１が、間締め処理を実行することにより得られる罫線Ｌ２のＹ座標を算出する。なお、罫線Ｌ２のＹ座標を算出するためには、既に間締め処理が実行されたオブジェクトの移動量も考慮する必要がある。つまり、Ｂ３１と罫線Ｌ２との間の空白を詰める間締め量は「４」であり、既に間締め処理が実行されたＢ３１の移動量が「４」であり、罫線Ｌ２に対応する間締め位置が「２０」である。従って、間締め処理を実行することにより、罫線Ｌ２のＹ座標が「１２」に変更される。
【００３４】
さらに、プロセッサ１１が、間締め処理を実行することにより得られるＢ３２の上端のＹ座標を算出する。罫線Ｌ２とＢ３２との間の空白を詰める間締め量は「４」であり、既に間締め処理が実行されたＢ３１と罫線Ｌ２の移動量の和が「８」であり、Ｂ３２の上端のＹ座標が「２５」である。従って、間締め処理を実行することによりＢ３２の上端のＹ座標が「１３」に変更される。以上の処理を実行することでページ領域内間締め処理が実行される。その結果、例えば、図９（Ａ）の各ブロックと罫線の位置が図９（Ｂ）のブロックＢ３１乃至Ｂ３３と罫線Ｌ１乃至Ｌ４の位置へと変更される。
【００３５】
図１０乃至図１２を参照して、表ブロック内間締め処理の例を説明する。図１０は、表ブロック内間締め処理フローの例を示す。まず、プロセッサ１１が、表ブロックから罫線部を抽出する（ステップＳ４４１）。次に、プロセッサ１１が、表ブロックを罫線部と罫線部以外の部分とに分離する（ステップＳ４４２）。続いて、プロセッサ１１が、処理対象のブロックに罫線オブジェクト以外のオブジェクトがあるかを判断する（ステップＳ４４３）。なお、罫線オブジェクトか否かの判断は、図２に示されるオブジェクト種類を使って実行される。プロセッサ１１が、罫線オブジェクト以外のオブジェクトがないと判断した場合は、図７のステップＳ４２に戻る。プロセッサ１１が、罫線オブジェクト以外のオブジェクトがあると判断した場合は、プロセッサ１１が、罫線部オブジェクト以外のオブジェクトをブロック分割する（ステップＳ４４４）。なお、ここの説明において、図９（Ａ）は表ブロック内に配置されたオブジェクトを示す図として説明する。ステップＳ４４４の処理によって、表ブロックにおける罫線部以外の部分が、図９（Ａ）に示すように、ブロックＢ３１乃至Ｂ３３に分割される。
【００３６】
次に、プロセッサ１１が、罫線部以外の部分について間締め位置、間締め量を算出する（ステップＳ４４５）。ステップＳ４４５においては、プロセッサ１１は、さらに、算出された間締め位置、間締め量を用いて、例えば、図９（Ａ）に示すテーブルＴ６を生成する。続いて、プロセッサ１１が、横罫線オブジェクトを抽出する（ステップＳ４４６）。横罫線オブジェクトは、横罫線を示すオブジェクトである。プロセッサ１１は、例えば、図９（Ａ）の罫線Ｌ１乃至Ｌ４を抽出する。また、プロセッサ１１が、罫線以外のオブジェクトを抽出する（ステップＳ４４７）。プロセッサ１１は、例えば、図９（Ａ）のＢ３１乃至Ｂ３３を抽出する。
【００３７】
次に、プロセッサ１１が、抽出したオブジェクトの位置のＹ座標について昇順、すなわちＹ座標値が小さい順にオブジェクトを並び替える（ステップＳ４４８）。そして、プロセッサ１１が、隣り合う２つのオブジェクトを順次取り出す（ステップＳ４４９）。プロセッサ１１が、隣り合う２つのオブジェクトを取り出すことができない場合は、ステップＳ４５５に進み、補正値による間締め処理を行う。プロセッサ１１が、隣り合う２つのオブジェクトを取り出すことができる場合、プロセッサ１１が、オブジェクトリストを参照して、取り出されたオブジェクトの属性の組み合わせを確認する（ステップＳ４５０）。オブジェクトの属性の組み合わせが、罫線以外と罫線以外である場合は、プロセッサ１１は、第１の補正量を用いた間締め量補正処理を行う（ステップＳ４５１）。第１の補正量は、オブジェクトの属性の組み合わせが罫線以外と罫線以外である場合に、これらのオブジェクト間の空白部を詰める間締め処理に適用される。第１の補正量は、例えば図９（Ｂ）のテーブルＴ７に示すように、予め決められている（後述する第２の補正量と第３の補正量も同様である）。ここで、処理対象のオブジェクトが図９（Ａ）のＢ３２とＢ３３である場合を想定する。この場合、テーブルＴ７を参照すると、第１の補正量は、「０」であることがわかる。一方、図９（Ａ）のテーブルＴ６を参照すると、Ｂ３２とＢ３３との間の空白を詰める間締め量、つまり、Ｙ座標「３５」という間締め位置に対応する間締め量は「１４」であることがわかる。従って、プロセッサ１１は、この間締め量「１４」に第１の補正量「０」を加算した結果得られる「１４」を、Ｙ座標「３５」という間締め位置に対応する補正後の間締め量として決定する。
【００３８】
オブジェクトの属性の組み合わせが、罫線と罫線以外である場合は、プロセッサ１１は、第２の補正量を用いた間締め量補正処理を行う（ステップＳ４５２）。第２の補正量は、オブジェクトの属性の組み合わせが罫線と罫線以外である場合に、これらのオブジェクト間の空白部を詰める間締め処理に適用される。ここで、処理対象のオブジェクトが図９（Ａ）の罫線Ｌ２とＢ３２である場合を想定する。この場合、図９（Ｂ）のテーブルＴ７を参照すると、第２の補正量は、「−１」であることがわかる。一方、図９（Ａ）のテーブルＴ６を参照すると、罫線Ｌ２とＢ３２との間の空白を詰める間締め量、つまり、Ｙ座標「２０」という間締め位置に対応する間締め量は「４」であることがわかる。従って、プロセッサ１１は、この間締め量「４」に第１の補正量「−１」を加算した結果得られる「３」を、Ｙ座標「２０」という間締め位置に対応する補正後の間締め量として決定する。なお、前述した図６に示す間締め設定画面上で、設定欄１０４のチェックがＯＮにされている場合には、プロセッサ１１は、罫線の太さを反映した間締め量補正処理を行う。例えば、処理対象のオブジェクトが図９（Ａ）の罫線Ｌ１とＢ３１であるものとし、罫線Ｌ１の太さが「５」である場合を想定する。この場合、プロセッサ１１は、図９（Ｂ）のテーブルＴ７を参照して、「−３」を第２の補正量として決定する。つまり、オブジェクトの属性の組み合わせが罫線と罫線以外であっても、図６の設定欄１０４の設定欄にチェックがある場合、罫線の太さによって補正量は異なる。
【００３９】
オブジェクトの属性の組み合わせが、罫線と罫線である場合は、プロセッサ１１は、第３の補正量を用いた間締め量補正処理を行う（ステップＳ４５３）。第３の補正量は、オブジェクトの属性の組み合わせが罫線と罫線である場合に、これらのオブジェクト間の空白部を詰める間締め処理に適用される。ここで、処理対象のオブジェクトが図９（Ａ）の罫線Ｌ３と罫線Ｌ４である場合を想定する。この場合、図９（Ｂ）のテーブルＴ７を参照すると、第３の補正量は、「−３」であることがわかる。一方、図９（Ａ）のテーブルＴ６を参照すると、罫線Ｌ３と罫線Ｌ４との間の空白を詰める間締め量、つまり、Ｙ座標「８０」という間締め位置に対応する間締め量は、「１４」であることがわかる。従って、プロセッサ１１は、この間締め量「１４」に第１の補正量「−３」を加算した結果得られる「１１」を、Ｙ座標「８０」という間締め位置に対応する補正後の間締め量として決定する。上述したステップＳ４５１乃至Ｓ４５３の処理の結果、各々の間締め位置に対応する補正後の間締め量が決定される。図９（Ｃ）に示すテーブルＴ８は、補正後の間締め量を示し、所定の記憶手段に記憶される。なお、オブジェクトの組み合わせにより間締め量を補正するか否かも図６の設定画面でユーザが指定しても良い。ユーザがオブジェクトの組み合わせにより間締め量を補正することを指定しなかった場合、Ｓ４４５により算出された間締め量に基づいて罫線以外のオブジェクトに対し、間締め処理が適用される。
【００４０】
次に、プロセッサ１１が、補正後の間締め量に基づいて、縦罫線と横罫線のそれぞれについて、罫線調整値を決定する。プロセッサ１１は、決定した罫線調整値を所定の記憶手段に記憶する。そして、プロセッサ１１が、オブジェクト取出ポインタを更新して（ステップＳ４５４）、上記ステップＳ４４９に戻る。
【００４１】
図１１は、図１０のステップＳ４５５における補正値による間締め処理を説明する図である。まず、プロセッサ１１が、罫線以外のオブジェクトを有するブロックがあるかを判断する（ステップＳ５０１）。プロセッサ１１が、罫線以外のオブジェクトを有するブロックがないと判断した場合は、ステップＳ５０４に進む。プロセッサ１１が、罫線以外のオブジェクトを有するブロックがあると判断した場合は、プロセッサ１１は、このブロックを抽出し、所定の記憶手段から補正後の間締め量を抽出する（ステップＳ５０２）。そして、プロセッサ１１が、抽出した間締め量を用いて、ブロックの座標値を修正することによって、間締め処理を行い（ステップＳ５０３）、ステップＳ５０１に戻る。
【００４２】
図１２（Ａ）を参照して、上記ステップＳ５０３におけるブロックの座標値の修正処理の例について説明する。プロセッサ１１は、図１０を参照して説明した処理により算出された間締め量により各ブロック間の空白を縮小する。図１２（Ａ）に示すテーブルＴ８は、図９（Ｃ）に示すテーブルＴ８と同じテーブルである。テーブルＴ８を参照すると、罫線Ｌ１とＢ３１との間の空白を詰める間締め量は「１」であることが分かる。よって、プロセッサ１１は、Ｂ３１を「１」だけ上方に移動させる。また、例えば、テーブルＴ８を参照すると、Ｂ３１と罫線Ｌ２との間の空白を詰める間締め量は「３」、罫線Ｌ２とＢ３２との間の空白を詰める間締め量は「３」である。すなわち、Ｂ３１とＢ３２との間の空白を詰める間締め量は「６」である。従って、プロセッサ１１は、既に実行された間締め量「１」に上記間締め量「６」を加算し、Ｂ３２を上方に移動させる量として「７」を算出する。そして、プロセッサ１１は、Ｂ３２を「７」だけ上方に移動させる。以上、Ｓ５０１乃至Ｓ５０３の処理により罫線以外のブロックの間締め処理が終了する。
【００４３】
ステップＳ５０４において、プロセッサ１１が、横罫線オブジェクトがあるかを判断する（ステップＳ５０４）。プロセッサ１１が、横罫線オブジェクトがないと判断した場合は、ステップＳ５０７に進む。プロセッサ１１が、横罫線オブジェクトがあると判断した場合は、プロセッサ１１は、横罫線オブジェクトを抽出して、ステップＳ５０５に進む。次に、プロセッサ１１が、抽出した横罫線オブジェクトが示す横罫線に対応する罫線調整値を所定の記憶手段から抽出する（ステップＳ５０５）。そして、プロセッサ１１が、抽出した罫線調整値に基づいて、横罫線を修正して（ステップＳ５０６）、ステップＳ５０４に戻る。
【００４４】
ステップＳ５０７において、プロセッサ１１が、縦罫線オブジェクトがあるかを判断する（ステップＳ５０７）。プロセッサ１１が、縦罫線オブジェクトがあると判断した場合は、プロセッサ１１は、縦罫線オブジェクトを抽出して、ステップＳ５０８に進む。次に、プロセッサ１１が、抽出した縦罫線オブジェクトが示す縦罫線に対応する罫線調整値を所定の記憶手段から抽出する（ステップＳ５０８）。そして、プロセッサ１１が、抽出した罫線調整値に基づいて、縦罫線を修正して（ステップＳ５０９）、ステップＳ５０７に戻る。プロセッサ１１が、縦罫線オブジェクトがないと判断した場合は、ステップＳ５１０に進み、プロセッサ１１は、罫線オブジェクトと、罫線以外のオブジェクトとを合成する（ステップＳ５１０）。図１０乃至１２を参照して説明した表ブロック内間締め処理によって、例えば、図１４（Ａ）に示す表ブロックＢ２が、図１４（Ｂ）に示す表ブロックＢ２００に修正される。
【００４５】
図１２（Ｂ）及び図１２（Ｃ）は、罫線の補正処理を説明する図である。なお、罫線の移動方法は、罫線以外のブロックの移動方法と同じである。例えば、図１２（Ａ）のＴ８を参照すると、Ｂ３１と罫線Ｌ２の間の空白を詰める間締め量は「３」である。よって、既に実行された間締め量「１」にＢ３１と罫線Ｌ２の間の空白を詰める間締め量「３」を加算することで得られる「４」だけ罫線Ｌ２が上方に移動される。すなわち、プロセッサ１１は、罫線Ｌ２に対応する罫線調整値を「−４」とする。そして、プロセッサ１１は、この罫線調整値に基づいて、Ｙ座標が「２０」であった罫線Ｌ２のＹ座標を「１６」に補正する。以上の処理が、罫線Ｌ３、Ｌ４にも実行されることで、それぞれ、「２９」、「４０」だけ上方に移動される。図１２（Ｂ）中のテーブルＴ９は、各々の罫線に対応する罫線調整値を示す。また、テーブルＴ１０は、罫線調整値に基づく補正後の罫線のＹ座標を示す。
【００４６】
また、プロセッサ１１は、テーブルＴ８内の間締め量の総量に基づいて、罫線Ｌ５、Ｌ６についての罫線調整値「−４０」を算出する。図１２（Ｃ）のテーブルＴ１１は、罫線Ｌ５、Ｌ６についての罫線調整値を示す。プロセッサ１１は、罫線Ｌ５、Ｌ６の元のｙ終点（罫線の終点）の座標と罫線調整値とに基づいて、補正後のｙ終点の座標「５５」を算出する。プロセッサ１１は、罫線Ｌ５、Ｌ６についてのｙ始点（罫線の始点）については補正しない。
【００４７】
テーブルＴ１２は、罫線Ｌ５、Ｌ６についての補正後のｙ始点とｙ終点を示す。プロセッサ１１は、テーブルＴ１２内の補正後のｙ始点とｙ終点とに基づいて、罫線Ｌ５とＬ６とを補正する。その結果、罫線Ｌ５とＬ６とのｙ終点が「４０」だけ上方に移動する。
【００４８】
上述した表ブロック内間締め処理において、プロセッサ１１は、表ブロックに含まれるオブジェクトのうち、隣接するオブジェクトが有する属性の組み合わせに基づいて、間締め量を補正する（図１０のステップＳ４５１乃至Ｓ４５３）。そして、プロセッサ１１は、補正された間締め量を用いて、罫線オブジェクト以外のオブジェクトについての間締め処理と、罫線オブジェクトが示す罫線の補正とを実行する（図１１のステップＳ５０１乃至Ｓ５０９）。従って、本実施形態の情報処理装置によれば、表ブロックに含まれるオブジェクトのうち、隣接するオブジェクトが有する属性の組み合わせに応じて、罫線オブジェクト以外のオブジェクトについての間締め処理を実行することができる。
【００４９】
図１３は、図７のステップＳ４５に示すページ全体間締め処理を説明する図である。ページ全体間締め処理は、図７のステップＳ４４における表ブロック内間締め処理によって空白部が詰められて修正された表ブロックと、図７のステップＳ４２において抽出されたブロックのうちの表ブロック以外のブロックとについて実行される。まず、プロセッサ１１が、ページ領域内の全てのオブジェクトをブロック化する（ステップＳ６０１）。ステップＳ６０１の処理によって、ページ領域内のオブジェクトが、例えば、図１４（Ｃ）に示す３個のブロックＢ１乃至Ｂ３にブロック化される。図１４（Ｃ）中のＢ２００は、修正された表ブロックである。プロセッサ１１は、記憶装置１７に記憶されたブロックの情報を更新する。すなわち、プロセッサ１１は、修正前の表ブロックＢ２（図１４（Ａ）参照）の情報を表ブロックＢ２００に対応する情報に更新する。プロセッサ１１が、ブロックをＹ座標について昇順に並び替える（ステップＳ６０２）。次に、プロセッサ１１が、先頭のブロックがあるかを判断する（ステップＳ６０３）。先頭のブロックがない場合は、図５のステップＳ５に進む。先頭のブロックがある場合は、プロセッサ１１は、先頭のブロックを取り出して、ステップＳ６０４に進む。
【００５０】
次に、プロセッサ１１が、ページ領域の上端のＹ座標値と先頭のブロックの上端のＹ座標値とに基づいて、ページ領域の上端とブロックの上端との距離を算出する（ステップＳ６０４）。そして、プロセッサ１１が、先頭のブロックのＹ座標から上記ステップＳ６０４において算出した距離を減算して、先頭のブロックのＹ座標を修正する（ステップＳ６０５）。例えば、ページの上端から先頭のブロックの上端との間の距離が５ピクセルに対応する距離である場合には、先頭のブロックの全てのＹ座標が５ピクセル分減算される。すなわち、上記距離が空白部の大きさを示す。プロセッサ１１がブロックのＹ座標を上記距離分減算することで、この空白部が詰められる（間締め処理される）。
【００５１】
次に、プロセッサ１１が、抽出対象のブロックがあるかを判断する（ステップＳ６０６）。なお、Ｓ６０６において抽出されたブロックには、抽出完了フラグがセットされるので、プロセッサ１１は、抽出完了フラグによりＳ６０６の処理を実行する。抽出対象のブロックがない場合（全ブロックに抽出完了フラグがセットされた場合）には、図５のステップＳ５に進む。抽出対象のブロックがある場合には、プロセッサ１１が、ブロックを抽出し、ステップＳ６０７に進む。ステップＳ６０７の処理において最初にブロックを抽出する時には、プロセッサ１１は上記ステップＳ６０５においてＹ座標が修正された先頭のブロックを抽出する。次に、プロセッサ１１が、次のブロックがあるかを判断する（ステップＳ６０７）。次のブロックがない場合には、図５のステップＳ５に進む。次のブロックがある場合には、プロセッサ１１が、次のブロックを抽出して、ステップＳ６０８に進む。
【００５２】
次に、プロセッサ１１が、ステップＳ６０６において抽出したブロック（第１のブロック）とステップＳ６０７において抽出したブロック（第２のブロック）との間の距離（空白部の大きさ）を算出する（ステップＳ６０８）。ステップＳ６０８においては、プロセッサ１１は、第１のブロックの下端のＹ座標と第２のブロックの上端のＹ座標とに基づいて、第１のブロックと第２のブロックとの間の距離を算出する。第１のブロックと第２のブロックとの間の距離を間締め処理を実行することで得られる所定の空白サイズまで詰める。そして、プロセッサ１１は、第２のブロックのＹ座標から上記ステップＳ６０８において算出した距離を減算することによって、第２のブロックのＹ座標を修正して、ステップＳ６０６に戻る。すなわち、ページ全体間締め処理においては、プロセッサ１１は、間締め処理が実行された表ブロックの座標と、表ブロック以外のブロックの座標とに基づいて、隣接するブロック間の空白部を詰める処理を実行する。
【００５３】
プロセッサ１１が、例えば図１４（Ｃ）に示すような３個のブロックを有するページについて上述したブロック全体間締め処理を実行することによって、ブロック間の空白が詰められる。その結果、このページが、図１４（Ｄ）に示すように間締めされ、無駄な印刷を抑えることができる。
【００５４】
図１５は、図５のステップＳ７に示すページ間間締め処理を説明する図である。以下の説明において、第１のページ、第２のページは、ページ全体間締め処理すなわちブロック間の空白部を詰める処理が実行されたページである。第２のページは、第１のページの次のページである。
【００５５】
まず、プロセッサ１１が、第１のページの次のページである第２のページ内の各ブロックをＹ座標について昇順に並び替える（ステップＳ７１）。次に、プロセッサ１１が、第２のページの先頭のブロックがあるかを判断する（ステップＳ７２）。第２のページの先頭のブロックがない場合は、図５のステップＳ８に進む。第２のページの先頭のブロックがある場合は、プロセッサ１１が、第２のページの先頭のブロックを抽出してステップＳ７３に進む。
【００５６】
次に、プロセッサ１１が、第１のページの下端と、第１のページの最終ブロックとの間の距離を算出する（ステップＳ７３）。続いて、プロセッサ１１が、第２のページの先頭のブロックが第１のページに入るかを判断する（ステップＳ７４）。ステップＳ７４においては、プロセッサ１１は、第２のページの先頭のブロックの座標に基づいて、このブロックのＹ軸方向の幅を算出する。そして、プロセッサ１１は、ブロックの幅の大きさが上記ステップＳ７３において算出した距離未満であるかを判断する。ブロックの幅の大きさが上記ステップＳ７３において算出した距離未満である場合に、プロセッサ１１は、このブロックが第１のページに入ると判断する。ブロックの幅の大きさが上記ステップＳ７３において算出した距離未満でない場合に、プロセッサ１１は、このブロックが第１のページに入らないと判断する。
【００５７】
プロセッサ１１が、第２のページの先頭のブロックが第１のページに入らないと判断した場合は、図５のステップＳ８に進む。プロセッサ１１が、第２のページの先頭のブロックが第２のページに入ると判断した場合は、プロセッサ１１が、第２のページの先頭のブロックの座標を修正して、このブロックを第１のページの最終ブロックとする（ステップＳ７５）。
【００５８】
続いて、プロセッサ１１が、第２のページの次のブロックがあるかを判断する（ステップＳ７６）。第２のページの次のブロックがない場合は、図５のステップＳ８に進む。第２のページの次のブロックがある場合は、プロセッサ１１が、このブロックを抽出して、ステップＳ７７に進む。続いて、プロセッサ１１が、第１のページの下端と、第１のページの最終ブロックとの間の距離を算出する（ステップＳ７７）。続いて、プロセッサ１１が、ステップＳ７６において抽出したブロックが第１のページに入るかを判断する（ステップＳ７８）。プロセッサ１１が、抽出したブロックが第１のページに入らないと判断した場合は、図５のステップＳ８に進む。プロセッサ１１が、抽出したブロックが第１のページに入ると判断した場合は、抽出したブロックの座標を修正して、このブロックを第１のページの最終ブロックとし（ステップＳ７９）、ステップＳ７４に戻る。これにより、第２のページに含まれるブロックが第１のページの最終ブロックの下端と第１のページの下端との間に配置される。
【００５９】
すなわち、プロセッサ１１は、第１のページに含まれる最終のブロックの下端と第１のページの下端との間の距離と、第２のページに含まれるブロックの座標とに基づいて、第２のページに含まれるブロックが前記第１のページに入るかを判断する。そして、プロセッサ１１は、上記判断結果に基づいて、第２のページに含まれるブロックを上記最終ブロックの下端と第１のページの下端との間に配置する。従って、本実施形態の情報処理装置によれば、印刷対象となる複数のページ全体について、無駄な印刷を抑えることができる。なお、上述した間締め処理は、情報処理装置のアプリケーションにより提供されても、プリンタドライバにより提供されても良い。
【００６０】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【符号の説明】
【００６１】
１  コンピュータ
２  プリンタ
【図１】
2011158998.tif 000003
【図２】
2011158998.tif 000004
【図３】
2011158998.tif 000005
【図４】
2011158998.tif 000006
【図５】
2011158998.tif 000007
【図６】
2011158998.tif 000008
【図７】
2011158998.tif 000009
【図８】
2011158998.tif 000010
【図９】
2011158998.tif 000011
【図１０】
2011158998.tif 000012
【図１１】
2011158998.tif 000013
【図１２】
2011158998.tif 000014
【図１３】
2011158998.tif 000015
【図１４】
2011158998.tif 000016
【図１５】
2011158998.tif 000017
【図１６】
2011158998.tif 000018