図1は、第1の実施形態の情報処理装置のハードウェア構成と、機能ブロック図の例を示す図である。図1(A)は、第1の実施形態の情報処理装置のハードウェア構成の例を示す。図1(A)に示す情報処理装置1は、オブジェクトを有する文書について間締め処理し、間締め処理後の文書を出力(印刷又は表示)する。本実施形態において、間締め処理は、文書中のオブジェクトをブロック化して1又は複数のブロックを生成し、生成されたブロック間の空白を詰める処理である。ブロック化は、オブジェクトをある単位でグループ化することである。また、情報処理装置1は、間締め処理された文書の出力時に、該文書に含まれるブロックに対応づけて、このブロックの間締め処理前の文書における位置情報を表示する。情報処理装置1は、例えば、PC(Personal Computer :パーソナルコンピュータ)、MFP(Multi Function Printer:複合印刷機)等である。情報処理装置1は、PC、MFPに限定されず、文書を間締め処理して出力することができる任意の処理装置であればよい。
情報処理装置1は、CPU(Central Processing Unit )102、メモリ103、記憶装置104、ビデオインタフェース105を備える。また、情報処理装置1は、I/O(Input/Output)インタフェース106、通信インタフェース107を備える。上記各構成要素はシステムバス101に接続されている。また、情報処理装置1は、キーボード114、ポインティングデバイス115、ディスプレイ装置116を備える。
CPU102は、情報処理装置全体を制御する。CPU102は、システムバス101を介して各構成要素を制御したり、データの計算や加工を行ったりする。メモリ103は、データやプログラムを記憶する記憶手段である。メモリ103は、例えばランダムアクセスメモリ(RAM)やリードオンリーメモリ(ROM)から構成される。記憶装置104は、記憶されたデータの書き込み/読み出しを行う。記憶装置104は、ハードディスクドライブ(Hard Disk Drive:HDD)111、FDD112、CD−ROMドライブ113を備える。FDDは、Floppy(登録商標)Disk Driveの略語である。記憶装置が、磁気テープドライブ、DVD−ROM等を備えるようにしてもよい。
本実施形態の情報処理装置の制御方法を実現するコンピュータプログラムは、記憶装置104に記憶されている。CPU102が、このコンピュータプログラムを記憶装置104から読み込み、メモリ103に格納した上で実行する。すなわち、このコンピュータプログラムは、情報処理装置1の制御方法をコンピュータに実行させることを特徴とする。CPU102が、このコンピュータプログラムを通信インタフェース107及びLAN(Local Area Network)118を介して情報処理装置1の外部から読み込むようにしてもよい。
ビデオインタフェース105は、ディスプレイ装置116への表示出力を制御する。ディスプレイ装置116は、例えば、CRT(Cathode Ray Tube)や液晶等を備える。I/Oインタフェース106には、キーボード114やポインティングデバイス115等の入力装置が接続される。情報処理装置1のユーザは、キーボード114を操作することにより情報処理装置1に対する動作指令等を行う。ポインティングデバイス115は、ディスプレイ装置116上のカーソルを移動させてメニューやオブジェクトの選択や操作等を行う。通信インタフェース107は、ネットワーク(例えばLAN118)に接続して外部機器との通信を行う。通信インタフェース107の接続先のネットワークは、LAN118の他に、例えばWAN(Wide Area Network )やインターネットのような公衆回線等であってもよい。また、通信インタフェース107は、プリンタ117などの出力機器と通信する。
図1(B)は、第1の実施形態の情報処理装置の機能ブロック図の例を示す。なお、これらの機能はアプリケーションにより提供されても、プリンタドライバにより提供されても良い。図1(B)に示すように、情報処理装置1は、空白領域検出部11、ブロック化部12、間締め処理部13、出力設定取得部14、ページ番号設定部15、出力部16、ブロック編集部17を備える。空白領域検出部11は、印刷データに含まれる空白領域を検出して、該空白領域に関する情報を取得する。本実施形態では、印刷データは、オブジェクトを有する文書である。オブジェクトは、例えば、文字列や画像等である。空白領域検出部11は、記憶装置104に予め記憶された印刷データ、又はCPU102がLAN118及び通信インタフェース107を介して外部装置から受信した印刷データについて、空白領域の検出処理を実行する。空白領域検出部11は、例えば、文書に含まれる所定の大きさ以上の空白部分と、各々のオブジェクト間の余白の領域とを上記空白領域として検出する。
ブロック化部12は、空白領域検出部11によって取得された空白領域に関する情報に基づいて、オブジェクトをブロック化して1又は複数のブロックを生成する。具体的には、ブロック化部12は、空白領域に関する情報に含まれる各々のオブジェクト間の余白の情報に基づいて、所定の基準を用いてオブジェクトをブロック化する。ブロック化部12は、例えば、余白の大きさが所定の大きさ以上の箇所でオブジェクトを区切ることによって、オブジェクトをブロック化する。また、ブロック化部12は、生成されたブロックの上記文書における位置情報を含む位置管理情報をメモリ103に記憶する。上記ブロックの文書における位置情報は、例えば、ブロックが元原稿(間締め処理前の文書)において配置されているページ(元ページ)を示すページ番号(以下、ブロックの元ページ番号と記述)である。すなわち、ブロック化部12及びメモリ103は、文書に含まれるオブジェクトをブロック化して1又は複数のブロックを生成し、生成されたブロックの上記文書における位置情報を記憶する記憶手段として機能する。
間締め処理部13は、上記文書についてブロック間の空白を詰める間締め処理を実行する間締め処理手段として機能する。例えば、間締め処理部13は、空白領域検出部11が取得した空白領域に関する情報とブロックの大きさとに基づいて、ブロック間の空白を詰める。出力設定取得部14は、文書の出力設定に関する出力設定情報を取得する取得手段として機能する。出力設定取得部14は、例えば、文書の印刷設定情報を取得する。
ページ番号設定部15は、位置管理情報に基づいて、間締め処理された文書の出力時に該文書に含まれるブロックに対応づけて表示される、該ブロックの間締め処理される前の文書における位置情報を決定する。具体的には、ページ番号設定部15は、ブロック毎に、該ブロックの元ページ番号をテキストオブジェクトとして印刷データに追加して、出力部16に渡す。
出力部16は、出力手段として機能し、ページ番号設定部15から渡された印刷データを出力設定取得部14によって取得された出力設定情報に従って出力(印刷又は表示)する。すなわち、ページ番号設定部15及び出力部16は、記憶手段に記憶された位置情報に基づいて、間締めされた文書の出力時に上記文書に含まれるブロックに対応づけて、上記間締め処理が実行される前の文書における位置情報を出力する出力手段として機能する。なお印刷時においては、出力部16は、図1(A)に示すプリンタ117に指示して、印刷データに基づく印刷ジョブを出力する。これにより、間締め処理された文書が出力される。出力部16は、間締め処理された文書の出力時に、該文書に含まれるブロックに対応づけて、ページ番号設定部15によって決定された位置情報(例えば、ブロックの元ページ番号)を表示する。ブロック編集部17は、ユーザの操作入力に従って、ブロックを編集するブロック編集手段として機能する。例えば、ブロック編集部17は、ブロックの編集によって複数のブロックを一つのブロックに結合する。また、例えば、ブロック編集部17は、ブロックの編集によってブロックを複数のブロックに分割する。
図1(B)に示す情報処理装置1が備える各処理部の機能は、情報処理装置1が備えるCPU102が、記憶装置104に記憶されたコンピュータプログラムを実行することによって実現される。また、後述する他の実施形態の情報処理装置のハードウェア構成、機能ブロック図は、それぞれ、図1(A)に示すハードウェア構成、図1(B)に示す機能ブロック図と同様である。
図2は、文書に含まれるオブジェクトを説明する図である。図2(A)は、間締め処理の対象となる文書と、この文書に含まれるオブジェクトを示す。図2(A)には、テキストオブジェクト201、テキストオブジェクト201の矩形202が含まれる。オブジェクトの単位はドキュメントフォーマットによって様々である。本実施形態の情報処理装置1は、例えば、1行単位でオブジェクト化されるPortable Document Format(以下PDFと記述)の文書を間締め処理する。なお、オブジェクトの矩形に関しては、ドキュメントフォーマットによって扱い方が異なる。フォントの高さと幅を用いて矩形を表すものもあれば、文字を囲うものもある。また、図2(A)は、画像オブジェクト203、画像オブジェクト203の矩形204を含む。
図2(B)は、文書上におけるオブジェクトの配置を示す。図2(B)は、文書のページ上の座標軸310と座標軸上に配置されたオブジェクト311を示す。図2(C)はオブジェクト311に関するオブジェクト情報320である。オブジェクト311は、左上座標323と右下座標324で位置が指定される。オブジェクト情報320はオブジェクトを一意に識別するID321、オブジェクトの種類322、オブジェクト固有の情報(固有情報)325を含む。オブジェクトの種類として、例えば、画像、テキスト、線、長方形、円等の図形がある。固有情報325は、オブジェクトの種類や個々のオブジェクトに応じて、異なった情報を保持することが可能である。
図3は、位置管理情報のデータ構造の例を示す図である。位置管理情報は、ブロック情報1100とオブジェクト情報1110とを含む。位置管理情報は、ブロック(のID)に対応付けられて記憶手段に記憶される。すなわち、位置管理情報は、ブロック毎に設けられる。ブロック情報1100は、文書に含まれるブロックに関する情報である。ブロック情報1100は、ElementList1101、Rect1102、元ページ情報1103を含む。ElementList1101は、ブロック情報1100に対応するブロックに含まれるオブジェクトの配列情報である。Rect1102は、ブロックの位置情報である。1103は、元ページ情報である。元ページ情報1103は、ブロックの間締め処理される前の文書における位置情報である。元ページ情報1103は、例えばブロックの元ページ番号を含む。
オブジェクト情報1110は、ブロック情報1100に対応するブロックに含まれるオブジェクトに関する情報である。オブジェクト情報1110は、UINTtype1111、Rect1112、元ページ情報1113を含む。UINTtype1111は、オブジェクト情報1110に対応するオブジェクトの種別である。UINTtype1111は、図2(C)中の種別322に対応する。Rect1112は、オブジェクトの位置情報であり、図2(C)中の左上座標323と右下座標324とに対応する。元ページ情報1113はオブジェクトの間締め処理される前の文書における位置情報である。元ページ情報113は、例えば、オブジェクトが元原稿(間締め処理前の文書)において配置されているページを示すページ番号(以下、オブジェクトの元ページ番号と記述)を含む。情報処理装置1が備えるブロック化部12は、オブジェクトをブロック化したときに、元ページ情報1103、1113に情報を設定する。
図4は、情報処理装置が実行するブロック化と間締め処理とを説明する図である。図4(A)は、情報処理装置1が備えるブロック化部12が実行するオブジェクトのブロック化を示す。図4(A)において、文書の任意のページ410に対してブロック化が実行されると、ページ410からページ420が生成される。ブロック化部12は、オブジェクト間の余白に関する情報や文書中の空白部分の大きさに基づいて、ページ410内のオブジェクトをブロック421、ブロック422、ブロック423という3つのブロックにブロック化する。なお、オブジェクトをブロック化するロジックには様々な方法が提案されており、ドキュメントフォーマットによっても異なる。
図4(B)は、情報処理装置1が備える間締め処理部13が実行する間締め処理を示す。図4(B)は、文書がページ510と、ページ510の次ページであるページ520を含むことを示す。ページ510は、他のブロックを配置可能な空白領域511を含む。なお、ブロック間の間隔や用紙のマージン領域は予め決められているものとする。ページ520は、3つのブロック521、522、523を含む。矢印531、532は、間締め処理部13がブロック521を空白領域511へ配置しようとした場合の、ブロック521の上辺と底辺の位置を示す。
間締め処理部13が、空白領域511にブロック521を配置可能であると判断した場合、間締め処理部13が間締め処理を行う。これにより、ブロック521が空白領域511に移動する。また、ブロック522、523がページ520における上方に順次移動する。間締め処理部13が、空白領域511にブロック521を格納可能でないと判断した場合、間締め処理部13は間締め処理を行わない。
次に、図5及び図6を参照して、印刷対象の文書に含まれるブロックの元ページ番号の表示について説明する。図5は、ブロック化部の処理を説明する図である。図5(A)は、オブジェクトがブロック化される前の文書のページを示す。図5(A)中の700は間締め処理前の文書の7ページ目と8ページ目とを示す。図5(B)は、ブロック化部12が図5(A)に示す文書に含まれるオブジェクトのブロック化を行った後の状態を示す。図5(A)に示すページ700は、ブロック化によってブロック801乃至806の6ブロックに分割される。ブロック化部12は、ブロック化を行うとともに、ブロック化によって生成されたブロックに対応するブロック情報(図3を参照)に、このブロックの元ページ情報を設定する。図5(A)に示す各々のブロック内に記述された番号は、ブロックの元ページ情報を示す。例えば、ブロック801に対応するブロック情報に、7ページの1番目のブロックという元ページ情報が格納される。
図6は、間締め処理とブロックの元ページ番号の表示を説明する図である。図6(A)は、間締め処理された後の文書のページの例を示す。この例では、間締め処理部13が図5(B)のページを含む文書に対して間締め処理を実行した場合を想定する。図6(A)は、間締め処理後の文書の3ページ目900と4ページ目とを示す。間締め処理前に文書の7ページ目と8ページ目にあったブロック802乃至806(図5(B)を参照)は、間締め処理された結果、図6(A)に示すように、3ページ目と4ページ目に移動している。ブロック801(図5(B)を参照)は3ページ目よりも前に移動した。また、ブロック901は、8ページ目より後のページから4ページ目に移動している。
図6(B)はブロックの元ページ番号の表示例を示す。ページ番号設定部15は、例えば図6(A)に示す各々のブロックに対応するブロック情報を取得する。具体的には、ページ番号設定部15は、所定の記憶手段からブロックに対応する位置管理情報を抽出し、抽出した位置管理情報に含まれるブロック情報を取得する。ページ番号設定部15は、取得したブロック情報に含まれる元ページ情報に基づいて、ブロックに対応付けるブロックの元ページ番号を決定する。そして、出力部16が、文書の出力時に、ブロックに対応付けて、上記決定されたブロックの元ページ番号を表示する。図6(B)に示す例では、出力部16は、各々のブロックの右下にブロックの元ページ番号を表示する。なお、元ページ番号の表示位置は、ブロックの右下に限定されるものではなく、ブロックに対応付けられる任意の位置であればよい。
図7は、情報処理装置が実行する間締め処理フローの例を示す図である。ブロック化部12が、文書を1ページ目から順に参照して(ステップS1)、ページに含まれるオブジェクトのブロック化を行う(ステップS2)。また、ブロック化部12が、オブジェクトのブロック化を行った際に、ブロックを順に参照し(ステップS3)、ブロックに対応するブロック情報に元ページ情報を設定する(ステップS4)。続いて、ブロック化部12が、ブロックに含まれるオブジェクトを順に参照し(ステップS5)、このオブジェクトに対応するオブジェクト情報に元ページ情報を設定する(ステップS6)。なお、オブジェクト情報に予め元ページ情報が設定されている場合がある。その場合には、上記ステップS5及びS6の処理は行われない。ブロックの元ページ情報とオブジェクトの元ページ情報が設定された後、間締め処理部13がブロックの間締め処理を実行する(ステップS7)。
図8は、表示対象とする元ページ番号の決定処理フローを示す図である。元ページ番号設定部15が、予め決められた元ページ番号の表示位置を示す情報(表示位置情報)を取得する(ステップS12)。例えば、ブロックの右下の位置を示す情報を元ページ番号の表示位置情報として取得する。続いて、元ページ番号設定部15が、ページとブロックを順に参照する(ステップS12、S13)。元ページ番号設定部15が、記憶手段から処理対象のブロックに対応する位置管理情報を抽出し、この位置管理情報に含まれるブロック情報に設定された元ページ情報を取得する(ステップS14)。そして、元ページ番号設定部15が、ページに含まれる各々のブロックに対応付けて表示される元ページ番号を決定する(ステップS15)。ステップS15においては、元ページ番号設定部15は、ブロック上の上記表示位置情報が示す表示位置に元ページ番号が設定されたテキストオブジェクトを印刷データに設定する。出力部16が、このテキストオブジェクトが設定された印刷データを出力することによって、例えば、ブロックの右下にこのブロックに対応する元ページ番号が表示される。本実施形態の情報処理装置は、文書の出力時にブロックの元ページ番号を表示するので、文書の間締め処理によってブロックが配置されるページが変わった場合にも、ブロックの元々のページ位置を確認することが可能となる。
図9は、第2の実施形態を説明する図である。第2の実施形態では、位置管理情報に含まれるブロック情報に設定された元ページ情報が、元ページにおいてブロックが配置された領域に関する情報も含む。そして、本実施形態の出力手段(ページ番号設定部15及び出力部16)が、上記元ページにおいてブロックが配置された領域に関する情報を、間締め処理された文書の出力時に該文書に含まれるブロックに対応づけて表示する。本実施形態における、元ページにおいてブロックが配置された領域に関する情報の表示処理は、他の実施形態に適用することができる。
具体的には、情報処理装置1のブロック化部12が、文書に含まれるオブジェクトをブロック化したときに、図9(A)、(B)に示すように、この文書のページを複数の領域(例えば上、中、下の3つの領域)に分割する。図9(A)、(B)に示す例では、ブロック化部12は、各々のページの領域からヘッダ部とフッタ部の領域を除外した領域を3つの領域に分割する。例えば、上の領域は、ページの分割によって得られる3つの領域のうち、最も上方に位置する領域である。下の領域は、最も下方に位置する領域である。中の領域は、上の領域と下の領域との間に位置する領域である。ブロック化部12が、ページに含まれるブロックが上、中、下のどの領域に位置していたかを判断し、判断結果を含む情報を元ページ情報としてブロック情報に設定する。
図9(A)、(B)中に示すブロック1201、1301は、間締め処理前のページにおけるブロックを示す。ブロック1201、1301は、それぞれ8ページ目に配置されているものとする。ページはヘッダとフッタを除いて上、中、下に3分割されている。図9(A)に示すように、ブロック1201は全ての領域がページの上の領域に含まれている。従って、ブロック化部12は、ブロック1201のブロック情報内の元ページ情報として、ブロック1201がページの上の領域に位置することを示す情報(例えば、8上等)を設定する。
一方、図9(B)を参照すると、ブロック1301は、ページの中の領域と下の領域にまたがって配置されている。ブロック化部12は、例えば、領域に含まれるブロック1301の高さが最も大きい領域を、ブロック1301が位置する領域と判断する。ブロックがまたがる2つの領域に含まれる高さが同じ場合は、ブロック化部12は、ブロックが2つの領域のうち、上側の領域に位置すると判断する。従って、図9(B)に示す例では、ブロック化部12は、ブロック1301がページの中の領域に位置すると判断する。そして、ブロック化部12は、ブロック1301に対応するブロック情報内の元ページ情報として、ブロック1301がページの中の領域に位置することを示す情報を設定する。例えば、ブロック化部12は、元ページ情報として、ブロック1301が8ページ目の中の領域に位置することを示す情報である「8中」等を設定する。なお、本実施形態では、ブロック化部12は、領域に含まれるブロックの高さに基づいてブロックが位置するページの領域を判断しているが、ブロック化部12が他の判断方法を用いてブロックが位置する元ページの領域を決定するようにしてもよい。例えば、ブロック化部12が、ブロックの先頭位置が含まれる領域をこのブロックが位置するページの領域と判断するようにしてもよい。
図9(C)は、第2の実施形態におけるブロックの元ページ情報の表示例を示す。第2の実施の形態では、ブロック情報の元ページ情報内に、ブロックが位置する元ページの領域を示す情報が含まれている。従って、ページ番号設定部15は、この元ページ情報内の、ブロックが位置する元ページの領域に関する情報を取得し、取得した情報を文書の出力時に該文書に含まれるブロックに対応づけて表示される位置情報として決定する。これにより、出力部16は、文書の出力時に、この文書のページに含まれる各々のブロックの元ページ情報を図9(C)に示すように表示する。図9(C)中のページ情報1401乃至1406が、各々のブロックに対応付けて表示される元ページ情報を示す。例えば、元ページ情報1401が示す「7上」は、この元ページ情報に対応するブロックが間締め処理が実行される前において7ページ目の上の領域に位置していたことを示す。元ページ情報1402、1403は、対応するブロックが、間締め処理が実行される前において8ページ目の上の領域に位置していたことを示す。同様に、元ページ情報1404、1405、1406は、対応するブロックがそれぞれ8ページ目の中の領域、8ページ目の下の領域、9ページ目の上の領域に位置していたことを示す。
図10は、ブロックが位置する元ページの領域の決定処理フローの例を示す図である。まず、ブロック化部12が、ページの分割情報を取得する(ステップS21)。分割情報は、ページの領域をどのように分割するかを定義した情報であり、予め定められている。図9(A)、(B)に示す例では、分割情報は、ページを上、中、下という3つの領域に分割することを示す。ブロック化部12は、分割情報に従ってページを分割し、分割によって得られる各々の領域の位置情報を取得する。そして、ブロック化部12は、分割されるページの領域の数分、以下のステップS23乃至26の処理を繰り返す(ステップS22)。
ブロック化部12が、処理対象の領域(対象領域)の位置情報とブロックの位置情報とを比較する(ステップS23)。ブロック化部12が、対象領域の位置情報とブロックの位置情報との比較結果に基づいて、ブロックの少なくとも一部が対象領域に含まれているかを判断する(ステップS24)。ステップS24においては、ブロック化部12は、更に、ブロックが対象領域に含まれている高さを算出する。ブロック化部12が、ブロックの少なくとも一部が対象領域に含まれていないと判断した場合は、このブロックの位置情報と次の対象領域の位置情報とを比較する。
ブロック化部12が、ブロックの少なくとも一部が対象領域に含まれていると判断した場合は、ステップS25に進む。ブロック化部12が、現在の対象領域(現対象領域)に含まれるブロックの高さが、所定のバッファ内に設定されたブロックの高さの最大値(バッファ設定値)より大きいかを判断する(ステップS25)。バッファ設定値は、現対象領域より前に比較対象となった対象領域に含まれるブロックの高さの最大値である。現対象領域に含まれるブロックの高さがバッファ設定値より大きくない場合は、ブロック化部12が、このブロックの位置情報と次の対象領域の位置情報とを比較する。現対象領域に含まれるブロックの高さがバッファ設定値より大きい場合は、ブロック化部12は、現対象領域に含まれるブロックの高さの値をバッファ設定値とし、現対象領域に対応づけてバッファに設定する(ステップS26)。これにより、バッファ内のバッファ設定値が更新される。対象領域の位置情報とブロックの位置情報との比較が終了した場合、ブロック化部12は、以下の処理を実行する。すなわち、ブロック化部12は、上記バッファ内のバッファ設定値に対応づけられた領域を確認する。この確認された領域が、処理対象のブロックが位置する元ページの領域である。そして、ブロック化部12は、処理対象のブロックに対応するブロック情報内の元ページ情報として、上記確認された領域に関する情報を設定する(ステップS27)。例えば、上記確認された領域が8ページ目の上の領域である場合、ブロック化部12は、元ページ情報として8ページ目の上の領域を示す情報を設定する。出力部16は、文書の出力時に、ブロック情報内の元ページ情報に設定された、ブロックが位置する元ページの領域に関する情報を含む情報を表示対象とする。従って、第2の実施形態によれば、出力される文書のページに含まれるブロックが元々どのページのどの領域に位置していたのかを表示することが可能となる。
図11は、第3の実施形態を説明する図である。第3の実施形態では、ページ番号設定部15が、記憶手段(メモリ103)に記憶された位置管理情報に基づいて、間締め処理された文書に含まれるブロックの元ページ番号を取得する。そして、ページ番号設定部15が、印刷設定取得部14によって取得された出力設定情報である印刷設定情報に基づいて、取得された元ページ番号のうち、ブロックに対応づけて表示される元ページ番号を決定する。出力部16は、ページ番号設定部15が決定した元ページ番号を表示する。これにより、ページ番号設定部15が取得した元ページ番号のうち、ブロックに対応づけて表示される元ページ番号以外の元ページ番号については、その表示が省略される。
図11(A)は、第3の実施形態におけるブロックの元ページ番号の表示例を示す。この例では、印刷設定取得部14が取得する印刷設定情報が、文書を1in1で印刷することを示すものとする。1in1で印刷することは1ページを1枚の用紙の面に印刷することである。ページ番号設定部15は、この印刷設定情報を印刷設定取得部14から受けとり、以下のように表示対象の元ページ番号を決定する。ページ番号設定部15が、位置管理情報に含まれるブロック情報に設定された元ページ情報を参照し、元ページ情報に含まれるブロックの元ページ番号を取得する。そして、ページ番号設定部15が、同じ元ページ番号に対応する複数のブロックが存在するかを判断し、同じ元ページ番号に対応する複数のブロックが存在する場合は、各々のページにおける最初(先頭)のブロックに対応する元ページ番号を表示対象とする。例えば、前述した図6(B)中に示す元ページ番号に対応するブロックの中に、元ページ番号「8」に対応する複数のブロックが存在する。従って、ページ番号設定部15は、図6(B)中の同一の元ページ番号1002乃至1005のうち、各々のページにおける先頭のブロックに対応する、元ページ番号1002、1005を表示対象とする。その結果、図11(A)に示すように、出力部16は、元ページ番号「8」については、ページ番号1002、1005にて表示し、図6(B)中の元ページ番号1003、1004を省略する。その結果、同一ページにおいて同じ元ページ番号の繰り返しが、防止される。
図11(B)は第3の実施形態におけるブロックの元ページ番号の他の表示例を示す。この例では、印刷設定取得部14が取得する印刷設定情報が、1枚の用紙の面に複数のページを配置することを示す情報を含む。例えば、印刷設定情報が、文書をNin1で印刷することを示すものとする。Nin1での印刷は、1枚の用紙の面にNページを印刷することである。
この例では、ページ番号設定部15は、同じ元ページ番号に対応するブロックが複数存在する場合は、同一の紙面の先頭ブロックに対応する元ページ番号を表示対象とする。つまり、本実施形態の出力手段は、印刷設定情報に用紙の面に複数のページを配置することを示す情報が含まれ、かつ、間締め処理が実行された後の文書の印刷結果として同一用紙の面に配置された複数のブロックの位置情報が同じである場合、以下の処理を行う。出力手段は、複数のブロックにおいて先頭のブロックについて位置情報を表示し、上記複数のブロックにおけるその他のブロックについては位置情報を表示しない。例えば、ページ番号設定部15は、図6(B)中の同一の元ページ番号1002乃至1005のうち、図11(B)に示す1枚の用紙の面における先頭のブロックに対応する、元ページ番号1002を表示対象とする。その結果、図11(B)に示すように、出力部16は、元ページ番号「8」については、ページ番号1002を表示し、図6(B)中の元ページ番号1003乃至1005の表示を省略する。すなわち、出力手段として機能するページ番号設定部15及び出力部16は、間締め処理が実行された後の文書の同一ページに配置された複数のブロックの位置情報が同じである場合、上記複数のブロックにおいて先頭のブロックについて上記位置情報を表示する。出力手段は、複数のブロックにおけるその他のブロックについては位置情報を表示しない。その結果、印刷結果として同一用紙の面において同じ元ページ番号の繰返しが、防止される。
図11(C)は第3の実施形態におけるブロックの元ページ番号の他の表示例を示す。この例では、ページ番号設定部15が、印刷設定出力部14が取得した印刷設定情報に基づいて、ブロックの元ページ番号すなわち間締め処理された文書に含まれるブロックの間締め処理される前の文書における位置情報の表示位置を決定する。そして、出力部16が、この元ページ番号を上記決定された表示位置に表示する。この例におけるブロックの位置情報の表示位置の表示処理は、他の実施形態に適用することができる。印刷設定取得部14が取得する印刷設定情報は、文書を見開き印刷することを示すものとする。以下では、見開き印刷の対象となるページを見開きページと記述する。見開きページでは、綴じ方によっては内側に元ページ番号があると見にくい場合がある。従って、この例においては、ページ番号設定部15は、見開きページに含まれる左側のページについては、ブロックの左下の位置を元ページ番号の表示位置として決定する。また、ページ番号設定部15は、見開きページに含まれる右側のページについては、ブロックの右下の位置を元ページ番号の表示位置として決定する。また、この例においては、ページ番号設定部15は、同じ元ページ番号に対応するブロックが複数存在する場合は、同一の紙面の先頭ブロックに対応する元ページ番号を表示対象として決定する。出力部16は、表示対象として決定された元ページ番号を対応する表示位置に表示する。その結果、図11(C)に示す元ページ番号1501、1502がブロックの左下の位置に表示され、元ページ番号1503がブロックの右下の位置に表示される。なお、出力部16が、元ページ番号の表示を省略することなく、印刷対象の文書に含まれるブロックの全ての元ページ番号を、対応する表示位置に表示してもよい。
図12は、印刷設定情報に基づく元ページ番号の決定処理フローの例を示す図である。まず、印刷開始時に、出力設定取得部14が印刷設定情報を取得し(ステップS31)、ページ番号設定部15に渡す。ページ番号設定部15が、ページとブロックとを順に参照し(ステップS32、S33)、以下の処理を実行する。ページ番号設定部15が、処理対象のブロック(現ブロック)の元ページ番号と、現ブロックの前に処理対象となったブロック(前ブロック)の元ページ番号とを比較して、現ブロックと前ブロックとが同じ元ページ番号であるかを判断する(ステップS34)。現ブロックと前ブロックとで元ページ番号が異なっている場合、ページ番号設定部15が、現ブロックに対応する元ページ番号を表示対象として決定する(ステップS38)。具体的には、ページ番号設定部15が、元ページ番号が入力されたテキストオブジェクトを印刷データに設定する。
現ブロックと前ブロックとが同じ元ページ番号である場合、ページ番号設定部15が、上記ステップS31において取得された印刷設定情報に基づいて、印刷設定を確認する(ステップS35)。印刷設定が1in1である場合、ページ番号設定部15が、現ブロックがページ内で先頭のブロックであるかを判断する(ステップS37)。現ブロックがページ内で先頭のブロックである場合は、ステップS38に進む。現ブロックがページ内で先頭のブロックでない場合は、次のブロックの処理に進む。すなわち、現ブロックがページ内で先頭のブロックでない場合は、現ブロックの元ページ番号は同じ紙面上の前ブロックの元ページ番号と同じであるので、現ブロックに対応する元ページ番号は表示対象とされない。これにより、現ブロックに対応する元ページ番号の表示が省略される。
印刷設定が1in1でなく、Nin1である場合、ページ番号設定部15が、現ブロックが用紙の面において先頭のブロックであるかを判断する(ステップS36)。現ブロックが用紙の面において先頭のブロックである場合は、ステップS38に進む。現ブロックが用紙の面において先頭のブロックでない場合は、次のブロックの処理に進む。すなわち、現ブロックが用紙の面において先頭のブロックでない場合は、現ブロックの元ページ番号は同じ用紙の面における前ブロックの元ページ番号と同じであるので、現ブロックに対応する元ページ番号は表示対象とされない。第3の実施形態によれば、ブロック情報に含まれるブロックの元ページ番号のうち、印刷設定情報に基づいて表示対象として決定された元ページ番号以外の元ページ番号の表示を省略することができる。
図13は、第4の実施形態を説明する図である。第4の実施形態では、出力手段がブロック編集部17を含む。このブロック編集部17が、ユーザの操作に従って、ブロックを編集する。例えば、ブロックを編集することによって複数のブロックが結合された場合、ブロック編集部17は、結合された各々のブロックの結合前における元ページ番号に基づいて、結合後のブロックに対応する位置管理情報を生成して記憶手段に記憶する。具体的には、ブロック編集部17が、結合された複数のブロックの元ページ番号を確認する。結合された複数のブロックの元ページ番号が同じである場合、ブロック編集部17は、結合後の新たなブロックに対応する位置管理情報を生成するとともに、この位置管理情報に含まれるブロック情報の元ページ情報に結合前のブロックの元ページ番号を格納する。これにより、ブロックの結合後も、結合後のブロックと元ページ番号とを対応づけることができる。また、ブロック編集部17は、新たなブロックに含まれるオブジェクトに対応するオブジェクト情報を生成する。ブロック編集部17は、このオブジェクト情報に含まれる元ページ情報に、結合前のブロックに含まれるオブジェクトのオブジェクト情報に格納されていた、オブジェクトの元ページ番号を格納する。
結合された複数のブロックの元ページ番号が同じでない場合、つまり、間締め処理が実行される前において異なるページに配置されていた複数のブロックが結合された場合に、本実施形態の出力手段は以下の処理を行う。すなわち、ブロック編集部17が、結合後の新たなブロックに対応する位置管理情報を生成する。ブロック編集部17が、位置管理情報が含むブロック情報の元ページ情報に、結合後のブロックが、元ページ番号が異なるブロックを結合することにより生成されたブロックであることを示す情報を格納する。また、ブロック編集部17は、新たなブロックに含まれるオブジェクトに対応するオブジェクト情報を生成する。ブロック編集部17は、上記オブジェクト情報に含まれる元ページ情報に、結合前のブロックに含まれる各々のオブジェクトのオブジェクト情報に格納されていた、オブジェクトの元ページ番号を格納する。
図13は、ブロックが結合された場合の元ページ番号の表示例を示す。図13中のブロック1601は、元ページ番号が同じである複数のブロックを結合することにより生成されたブロックである。ブロック1602は、元ページ番号が異なる複数のブロックを結合することにより生成されたブロックである。ページ番号設定部15は、ブロック1601に対応するブロック情報に格納された元ページ情報を参照して、このブロック1601の元ページ番号が7ページ目を示すことを確認する。従って、ページ番号設定部15は、この元ページ番号「7」を表示対象として決定する。出力部16は、ブロック1601に対応付けて、この元ページ番号「7」を表示する。
また、ページ番号設定部15は、ブロック1602に対応するブロック情報に格納された元ページ情報を参照して、ブロック1602が、元ページ番号が異なるブロックが結合されたブロックであることを確認する。ページ番号設定部15は、異なるページに配置されていた複数のブロックが結合されたことを示す文字情報である「合」を表示対象として決定する。出力部16は、ブロック1602に対応付けて、この文字情報「合」を表示する。これにより、文書が出力された時に、ブロック1602が、元ページ番号が異なるブロックが結合されたブロックであることがわかる。なお、出力部16が、結合された新たなブロックに対応する結合前の各々のブロックに対応する元ページ番号を新たなブロックに対応付け、列挙して表示するようにしてもよい。なお、元ページ番号が異なる複数のブロックが結合されたことが認識できる表示であれば、どのような表示でも良い。本実施形態における、異なるページに配置されていた複数のブロックが結合されたことを示す情報の表示処理は、他の実施形態に適用することができる。
ブロックの編集によって該ブロックが複数のブロックに分割された場合には、ブロック編集部17は、以下の処理を行う。ブロック編集部17は、分割元のブロックに対応する位置管理情報内のオブジェクト情報を参照して、分割元のブロックに含まれる各々のオブジェクトに対応する元ページ番号を取得する。そして、ブロック編集部17は、取得した元ページ番号に基づいて、分割後の各々のブロックに対応する位置管理情報を生成して記憶手段に記憶する。具体的には、ブロック編集部17は、上記取得した各々のオブジェクトに対応する元ページ番号に基づいて、分割後のブロックに含まれるオブジェクトの元ページ番号を決定する。ブロック編集部17は、決定したオブジェクトの元ページ番号が全て同じであるかを判断する。決定したオブジェクトの元ページ番号が全て同じである場合には、ブロック編集部17は、分割後のブロックに対応するブロック情報に、上記決定したオブジェクトの元ページ番号を格納する。これにより、ブロックの分割後も、分割後のブロックと元ページ番号とを対応づけることができる。また、ブロック編集部17は、分割後のブロックに含まれるオブジェクトに対応するオブジェクト情報に、上記決定したオブジェクトの元ページ番号を格納する。そして、出力部16は、文書の出力時に、この元ページ番号を分割後のブロックに対応付けて表示する。
上記決定したオブジェクトの元ページ番号の中に、互いに異なる元ページ番号が含まれている場合、ブロック編集部17は、以下の処理を実行する。ブロック編集部17は、分割後のブロックに対応するブロック情報に、この分割後のブロックが、元ページ番号が異なる複数のオブジェクトを含むことを示す情報を格納する。また、ブロック編集部17は、分割後のブロックに含まれるオブジェクトに対応するオブジェクト情報に、上記決定したオブジェクトの元ページ番号を格納する。そして、出力部16は、文書の出力時に、分割後のブロックに対応付けて、この分割後のブロックが、元ページ番号が異なる複数のオブジェクトを含むことを示す情報を表示する。これにより、文書が出力された時に、分割後のブロックが、元ページ番号が異なる複数のオブジェクトを含むことがわかる。
図14は、第5の実施形態を説明する図である。第5の実施形態においては、ページ番号設定部15が、予め決められたブロックの元ページ番号の表示形式に関する情報(以下、元ページ番号の書式定義情報と記述)に基づいて、ブロックに対応づけて表示される元ページ番号の表示形式を決定する。そして、出力部16が、ブロックに対応付けて、表示対象の元ページ番号を上記決定された表示形式で表示する。本実施形態における元ページ番号の表示形式の決定処理と決定された表示形式での元ページ番号の表示処理は、他の実施形態に適用することができる。
図14(A)は、元ページ番号の書式定義情報が示す元ページ番号の書式形式の例を説明する図である。この例では、書式は2段階で定義されている。書式1701は、現在のページと元ページとの関係を定義する。書式1702、1703は、元ページを定義する。書式1701における“Page”は、現在のページ番号を設定する部分である。“OrgPage”は、元ページ番号を設定する部分である。“OrgPage”には、書式1702又は1703に従った形式で元ページ番号が設定される。“OrgPage”には、書式1701に従って、元ページ番号が括弧で囲われて設定される。書式1702は、現在のページに含まれるブロックに対応する元ページ番号の最小値と最大値とをハイフンで結んで設定することを定義している。書式1703は、各ブロックの元ページ番号を小さい順に列挙して表示することを定義している。なお、書式1703の類似書式として、例えば、ブロック順に元ページ番号を列挙して表示することを定義する書式や、複数のブロックが同じページ番号を有する場合には、所定のページ番号の表示を省略することを定義する書式を用いることもできる。図14(A)に示す元ページ番号の書式定義情報に従うと、元ページ番号が、現在のページ番号と併記されるように表示される。
図14(B)は、図14(A)に示す元ページ番号の書式定義情報に従う元ページ番号の表示例を示す。ページ番号設定部15は、図14(A)に示す元ページ番号の書式定義情報に基づいて、現在のページ番号と現在のページに含まれるブロックの元ページ番号の最小値及び最大値とが併記して表示される表示形式を元ページ番号の表示形式として決定する。出力部16が、表示対象の元ページ番号を上記決定された表示形式で表示する。これにより、図14(B)に示すように、現在のページ番号「4」と、元ページ番号の最小値及び最大値(8及び9)とが併記して表示される。第5の実施形態によれば、予め決められた元ページ番号の書式定義情報に従った表示形式で元ページ番号を表示することができる。
図15は、第6の実施形態を説明する図である。第6の実施形態においては、出力部16が、ページ番号設定部15によって表示対象として決定された元ページ番号に対応する枠線(ページ枠)を表示する。元ページ番号が同じであるブロックが、連続する2つの印刷対象のページに跨がる形で含まれる場合には、出力部16は、以下の処理を行う。出力部16は、ページの先頭に配置されるブロックの元ページ番号に対応するページ枠として、上辺がないページ枠を表示する。上辺がないページ枠は、このページ枠が示す元ページ番号に対応するブロックが、現在のページの前のページにも含まれていることを示す。また、出力部16は、ページの最後に配置されるブロックの元ページ番号に対応するページ枠として、底辺がないページ枠を表示する。底辺がないページ枠は、このページ枠が示す元ページ番号に対応するブロックが現在のページの次のページにも含まれていることを示す。本実施形態における、元ページ番号に対応する枠線の表示処理は、他の実施形態に適用することができる。
図15中の2101は、元ページ番号「7」に対応するページ枠を示す。2102と2103は、元ページ番号「8」に対応するページ枠を示す。2104は、元ページ番号「9」に対応するページ枠を示す。3ページ目に表示されているページ枠2101には上辺がない。従って、元ページ番号「7」に対応するブロックが2ページ目にも含まれていることがわかる。また、ページ枠2102には底辺がない。従って、元ページ番号「8」に対応するブロックが4ページ目にも含まれていることがわかる。第6の実施形態によれば、元ページ番号に対応するブロックの範囲を識別し易くすることができる。また、元ページ番号が同じであるブロックが前ページから続いている、あるいは、次のページへ続くかどうかも識別できるようになる。
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。