(57)【特許請求の範囲】
【請求項１】
用紙に適用されるフィニッシング処理として折り処理を設定する設定手段と、
前記設定手段により設定されたフィニッシング処理である折り処理が実行される位置と、オブジェクトとが重なるか否かを判定する判定手段と、
前記判定手段により前記フィニッシング処理である折り処理が実行される位置と前記オブジェクトとが重なると判定された場合、前記フィニッシング処理である折り処理が実行される位置と前記オブジェクトとが重なる位置に前記オブジェクトの印刷が適用されない回避領域を配置する配置手段を備え、
前記配置手段は、前記フィニッシング処理である折り処理が実行される位置と前記オブジェクトとの重なりを解消するために必要な前記フィニッシング処理である折り処理が実行される位置の移動量が所定の範囲内に収まらないと判定した場合、前記回避領域を前記オブジェクト内の前記フィニッシング処理である折り処理が実行される位置に配置し、
前記回避領域のサイズは、前記用紙の厚みに基づいて決定されることを特徴とする情報処理装置。
【請求項２】
前記フィニッシング処理である折り処理が実行される位置と前記オブジェクトとの重なりを解消するために必要な前記フィニッシング処理である折り処理が実行される位置の移動量が所定の範囲内に収まる場合、前記フィニッシング処理である折り処理が実行される位置を前記移動量に従って変更する変更手段をさらに備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記フィニッシング処理である折り処理が前記印刷された用紙における水平方向を折り線として折る折り処理であり、前記オブジェクトが垂直方向のテキストデータである場合、前記配置手段により配置された回避領域を境に前記テキストデータを段組み形式に編集する編集手段を更に備えることを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
用紙に適用されるフィニッシング処理として折り処理を設定する設定工程と、
前記設定工程により設定されたフィニッシング処理である折り処理が実行される位置と、オブジェクトとが重なるか否かを判定する判定工程と、
前記判定工程により前記フィニッシング処理である折り処理が実行される位置と前記オブジェクトとが重なると判定された場合、前記フィニッシング処理である折り処理が実行される位置と前記オブジェクトとが重なる位置に前記オブジェクトの印刷が適用されない回避領域を配置する配置工程を備え、
前記配置工程は、前記フィニッシング処理である折り処理が実行される位置と前記オブジェクトとの重なりを解消するために必要な前記フィニッシング処理である折り処理が実行される位置の移動量が所定の範囲内に収まらないと判定した場合、前記回避領域を前記オブジェクト内の前記フィニッシング処理である折り処理が実行される位置に配置し、
前記回避領域のサイズは、前記用紙の厚みに基づいて決定されることを特徴とする制御方法。
【請求項５】
前記フィニッシング処理である折り処理が実行される位置と前記オブジェクトとの重なりを解消するために必要な前記フィニッシング処理である折り処理が実行される位置の移動量が所定の範囲内に収まる場合、前記フィニッシング処理である折り処理が実行される位置を前記移動量に従って変更する変更工程をさらに備えることを特徴とする請求項４に記載の制御方法。
【請求項６】
前記フィニッシング処理である折り処理が前記印刷された用紙における水平方向を折り線として折る折り処理であり、前記オブジェクトが垂直方向のテキストデータである場合、前記配置工程により配置された回避領域を境に前記テキストデータを段組み形式に編集する編集工程を更に備えることを特徴とする請求項４または５に記載の制御方法。
【請求項７】
用紙に適用されるフィニッシング処理として折り処理を設定する設定工程と、
前記設定工程により設定されたフィニッシング処理である折り処理が実行される位置と、オブジェクトとが重なるか否かを判定する判定工程と、
前記判定工程により前記フィニッシング処理である折り処理が実行される位置と前記オブジェクトとが重なると判定された場合、前記コンテンツデータが配置される領域の位置と前記オブジェクトとが重なる位置に前記オブジェクトの印刷が適用されない回避領域を配置する配置工程をコンピュータに実行させ、
前記配置工程は、前記フィニッシング処理である折り処理が実行される位置と前記オブジェクトとの重なりを解消するために必要な前記フィニッシング処理である折り処理が実行される位置の移動量が所定の範囲内に収まらないと判定した場合、前記回避領域を前記オブジェクト内の前記フィニッシング処理である折り処理が実行される位置に配置し、
前記回避領域のサイズは、前記用紙の厚みに基づいて決定されることを特徴とするプログラム。
【請求項８】
前記フィニッシング処理である折り処理が実行される位置と前記オブジェクトとの重なりを解消するために必要な前記フィニッシング処理である折り処理が実行される位置の移動量が所定の範囲内に収まる場合、前記フィニッシング処理である折り処理が実行される位置を前記移動量に従って変更する変更工程をさらに備えることを特徴とする請求項７に記載のプログラム。
【請求項９】
前記フィニッシング処理である折り処理が前記印刷された用紙における水平方向を折り線として折る折り処理であり、前記オブジェクトが垂直方向のテキストデータである場合、前記配置工程により配置された回避領域を境に前記テキストデータを段組み形式に編集する編集工程を更に備えることを特徴とする請求項７または８に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自動レイアウトシステムにおける装置/媒体、および印刷手法に関するものである。
【背景技術】
【０００２】
Ｏｎｅ−ｔｏ−Ｏｎｅマーケティングはデータベース・マーケティングの一種で、顧客の年齢、性別、趣味、嗜好、購買履歴等の個人属性情報に基づいて、顧客のニーズに合った提案を行うものである。その代表的な手法としてバリアブルプリントが挙げられる。ここ最近、バリアブルプリントにおいて顧客毎に異なるコンテンツを最適に自動レイアウトする技術が知られている。【０００３】
本技術をダイレクトメールなどに活用する際には、折りなどのフィニッシング処理と組み合わせて印刷物を作成し、郵便物として送付するといったユースケースがある。しかし、フィニッシング位置と印刷物のコンテンツが重なるとドキュメントの可読性が低下するなどの問題が発生するおそれがあった。それを解決するための技術として、用紙に対する綴じ位置を検出し、綴じ位置に画像が存在する場合に画像全体を移動する技術が特許文献１に開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平０６−２１９６２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術のようにフィニッシング位置とコンテンツとの重なり避けるために画像を移動する場合、その重なりを避けるための移動量が大きくなり所望とするレイアウト結果を得ることができなくなるおそれがある。【０００６】
また、所望とするレイアウト結果を得るためにコンテンツを移動しない場合、当該コンテンツとフィニッシング処理が重なることによりトナーの剥離等が生じるおそれがあった。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明は次のような構成からなる。すなわち、用紙に適用されるフィニッシング処理として折り処理を設定する設定手段と、前記設定手段により設定されたフィニッシング処理である折り処理が実行される位置と、オブジェクトとが重なるか否かを判定する判定手段と、前記判定手段により前記フィニッシング処理である折り処理が実行される位置と前記オブジェクトとが重なると判定された場合、前記フィニッシング処理である折り処理が実行される位置と前記オブジェクトとが重なる位置に前記オブジェクトの印刷が適用されない回避領域を配置する配置手段を備え、前記配置手段は、前記フィニッシング処理である折り処理が実行される位置と前記オブジェクトとの重なりを解消するために必要な前記フィニッシング処理である折り処理が実行される位置の移動量が所定の範囲内に収まらないと判定した場合、前記回避領域を前記オブジェクト内の前記フィニッシング処理である折り処理が実行される位置に配置し、前記回避領域のサイズは、前記用紙の厚みに基づいて決定されることを特徴とする。
【発明の効果】
【０００８】
フィニッシング位置とコンテンツとの重なりを回避し、かつ、所望とする印刷物を得ることが可能となる。
【図面の簡単な説明】
【０００９】
【図１】コンピュータモジュールの概略図の一例を示す。
【図２】本発明のテンプレートの一例を示す。
【図３】本発明のリンクを作成するフローを示している。
【図４】リンク作成時のＵＩ図例を示している。
【図５】本発明におけるレイアウト計算の全体フローを示している。
【図６】本発明におけるレイアウト計算の、詳細フローを示している。
【図７】本発明における図６のフローに対応するＵＩ例である。
【図８】本発明のコンテナの集合を説明するための一例を示す。
【図９】本発明におけるＵＩ例を示している。
【図１０】本発明の実施例１における全体フローを示している。
【図１１】本発明の実施例１におけるサブフローを示している。
【図１２】本発明の実施例１におけるフィニッシング移動量の一例を示す。
【図１３】本発明の実施例１における回避用コンテナを配置した結果の一例を示す。
【図１４】本発明の実施例３におけるフローを示している。
【図１５】本発明の実施例３におけるフィニッシング可能位置を示している。
【図１６】本発明の実施例３におけるフィニッシングパターンの変更例を示している。
【図１７】本発明の実施例３におけるコンテナサイズ変更判定フローを示している。
【図１８】本発明の実施例３におけるコンテナとフィニッシング位置の重なりの一例を示す。
【図１９】本発明の実施例２におけるフローを示している。
【図２０】本発明の実施例２におけるコンテナとフィニッシング位置の重なりの一例を示す。
【図２１】本発明の実施例２における段組みへの変更結果の一例を示す。
【図２２】本発明の実施例２における段組みへの変更結果の一例を示す。
【発明を実施するための形態】
【００１０】
本発明の実施例を適用するのに好適である実施例について説明を行う。
【００１１】
本発明の実施例を説明する前に、本発明を適用可能なシステム構成、およびアプリケーション構成について説明する。
【００１２】
＜システム構成図＞
図１においてコンピュータ（情報処理装置）１０１はキーボード１３２やマウス１３３のようなポインティングデバイスなどの入力装置、ディスプレイ装置１４４、プリンタ１４５を含む出力装置と通信できる。
【００１３】
入力／出力インターフェース１３８は、コンピュータ１０１をネットワーク接続１０７を介して他のコンピュータ装置に接続するためのインターフェースである。そのネットワーク接続１０７の典型はローカルエリアネットワーク（ＬＡＮ）、あるいはワイドエリアネットワーク（ＷＡＮ）である。
【００１４】
コンピュータ１０１は少なくとも１つのプロセッサーユニット１３５、例えば半導体のランダムアクセスメモリ（ＲＡＭ）やリードオンリーメモリ（ＲＯＭ）から構成されるメモリユニット１３６を備える。また、コンピュータ１０１は、ビデオインタフェース１３７を含むＩＮＰＵＴ／ＯＵＴＰＵＴ（Ｉ／Ｏ）インターフェース、キーボード１３２やマウス１３３と接続するためのＩ／Ｏインターフェース１４３を含んでいる。
【００１５】
記憶装置１３９は典型的にハードディスクドライブ１４０やフロッピー（登録商標）ディスクドライブ１４１を含んでいる。図には示されていないが磁気テープドライブもまた使用される可能性がある。ＣＤ−ＲＯＭドライブ１４２は不揮発性のデータソースとして提供される。
【００１６】
コンピュータ１０１はＧＮＵ／ＬＩＮＵＸやマイクロソフトウィンドウズ（登録商標）のようなオペレーションシステムを備える。
【００１７】
また、上述した各モジュールは、相互接続バス１３４を介して通信できる。レイアウト編集アプリケーションはハードディスクドライブ１４０に常駐し、プロセッサ１３５により実行される。
【００１８】
あるいは、レイアウト編集アプリケーションはネットワーク接続１０７を介して読みこまれても良い。
【００１９】
図２は、ユーザによって生成されたテンプレートを表示するウィンドウ３０１の一例である。ツールバーエリア３０３は少なくとも、次のユーザにより選択可能な『ボタン』を持つ。
【００２０】
選択ツールボタン４０３は、コンテナの辺を選択、移動、サイズ変更、リサイズそしてロック・ロック解除するために使われる。テキストコンテナツールボタン４０４は、テキストデータが割り当てられるコンテナ（領域）を作成するために使われる。
【００２１】
イメージコンテナツールボタン４０５は、イメージデータが割り当てられるコンテナ（領域）を作成するために使われる。
【００２２】
リンクツールボタン４０６は、コンテナ間の距離を制御するために使われる。
【００２３】
なお、コンテナとはコンテンツデータが割り当てられる領域を指す。つまり、イメージコンテナは、コンテンツデータとしてイメージデータが割り当てられる領域であり、テキストコンテナは、コンテンツデータとしてテキストデータが割り当てられる領域である。
【００２４】
また、図２は１ページのドキュメントテンプレート３０９上に表示することが可能なオブジェクトの例である。それらは、コンテナ４０７、４０８と、任意に適用するアンカーアイコン４０９と固定されていない辺４１０、リンク４１２そしてスライダー４１３を持つ。
【００２５】
新規テキストコンテナとイメージコンテナは、テキストコンテナツール４０４、あるいはイメージコンテナツール４０５をマウス１３３でクリックし、テンプレート３０９に四角形をドラッグすることによって作成される。また、適切なツール４０４、４０５をアクティブにした後に、ドキュメントテンプレート３０９上でクリックすることによって単純に作成されても良い。
【００２６】
なお、コンテナのサイズはユーザの指定により可変にすることも固定にすることもできる。
【００２７】
[リンクの設定方法]
図３はリンクの設定方法を示したフロー図である。また図４Ａ−ＣはＵＩ例を示している。それらを用いてコンテナにリンクを設定する方法について説明をする。なお、本願のフローチャートは、プロセッサ１３５が本願を実現するレイアウト編集アプリケーションプログラムをメモリから読み出して実行することにより実現される。
【００２８】
まず、レイアウト編集アプリケーションは、ユーザの指示に従いリンクを設定するためのコンテナ（最低２つ）を作成する（０６０１）。
【００２９】
次にレイアウト編集アプリケーションは、ユーザの指示に従い前述したリンクツールを選択した状態にする（０６０２）。図４Ａ−Ｃは、コンテナを作成し、リンクツールが選択されていた状態から、リンクを設定する動作を示している。図４Ａ−Ｃを順に説明していく。
【００３０】
図４Ａの０７０１と０７０２はコンテナである。また、０７０３と０７０４は、アンカーを意味し、アンカーが設定されている辺が固定であることを示す。０７０５はマウスポインタを意味している。
【００３１】
レイアウト編集アプリケーションは、ユーザの指示に従いリンクを設定する片方のコンテナを選択する（０６０３）。
【００３２】
次に図４Ｂで示されるように、レイアウト編集アプリケーションは、ユーザの指示に従い他方のコンテナを選択する（０６０４）。図４Ｂの０７０６は図４Ａでクリックをした位置と移動したマウスポインタを結んだ線を示しており、どの位置にリンクが設定されるのかをユーザに示すＵＩである。処理０６０４が終わった後、レイアウト編集アプリケーションは設定した場所にリンクＵＩ０７０７を表示する（０６０５）。その結果、コンテナは図４Ｃの状態になる。また、リンクが設定されたことにより、コンテナのＵＩも自動的に変更される（０６０６）。０７０８は、点線で示されている辺であり、可変の辺を示している。図４Ｃのようにコンテナの辺の状態が変化したのは、リンクを設定したことにより、コンテナの辺を可変にする必要があるためである。リンクを設定したにもかかわらず、全ての辺が固定という矛盾を引き起こすことを防ぐために、自動的に行われる処理である。また、０７０９は、リンクを設定したことによりコンテナが変化できる方向をユーザに視覚的に示すマークである。図４Ｃの例では、左のコンテナの右辺と右のコンテナの左辺が可変に変化したが、これは一例である。
【００３３】
[レイアウト計算方法（全体フロー）]
図５はレイアウト計算のフローを示している。
【００３４】
レイアウト編集アプリケーションは、ユーザの指示に従いプレビューモードを選択する（０８０１）。レイアウト編集アプリケーションは、テンプレートを作成するコンテナ作成モードと、作成したテンプレートにレコードのコンテンツデータを挿入してレイアウト結果をプレビューするプレビューモードを備える。このプレビューモードにおいて、レイアウト編集アプリケーションは、実際のレコードのコンテンツデータをテンプレートの各コンテナに挿入してレイアウトを計算する。ただし、プレビューモードは、表示上でのレイアウト計算である。実際に印刷する場合においても、レコードを挿入してレイアウトを計算する。その際の計算方法も同じである。
【００３５】
プレビューモードになったら、レイアウト編集アプリケーションは、プレビューするレコードを選択して挿入し（０８０２）、そのレコードをレイアウトするために計算を行い（０８０３）、処理０８０３で計算されたレイアウト結果を表示する（０８０４）。
【００３６】
レイアウト編集アプリケーションは、他のレコードについてもプレビューを行うかどうかを判断する（０８０５）。処理０８０５で、他のレコードについてプレビューを行う必要がないと判断した場合は、プレビューモードを終了する（０８０７）。他のレコードについてプレビューを行うのであれば、レイアウト編集アプリケーションは、他のレコードを選択して再度レイアウト計算を行い、プレビューを行う（０８０６）。プレビューモードでなく印刷時においては、印刷するレコード全てについて順にレイアウトの計算を行う。したがって、処理０８０５、０８０７は存在しない。全てのレコードについて印刷が終了した時点で終了する。
【００３７】
[レイアウト計算方法]
図６はレイアウト計算の詳細を示したフロー図である。また、図７はそのときのＵＩ表示例を示した図である。
【００３８】
レイアウト編集アプリケーションは、レイアウトを計算するコンテナの集合を求める（０９０１）。レイアウト計算は、リンクにより関連付けられたコンテナを１つの集合として計算を行う。例えば図８を参照すると、ページ上に４つのコンテナがレイアウトされており、各コンテナが関連付けられている。この場合、コンテナＡとコンテナＢ、そしてコンテナＣとコンテナＤがリンクによって関連付けされている。したがって、コンテナＡ・Ｂが集合１、コンテナＣ・Ｄが集合２となる。１１０１はアンカー、１１０２は固定された辺、１１０３はコントローラー、１１０４は可変の辺の変化方向を示している矢印、１１０５は可変の辺、１１０６はリンク、そして１１０７はスライダーを示している。
【００３９】
次に、レイアウト編集アプリケーションは、０９０１で求めたコンテナの集合から、レイアウトを計算するために一つの集合を選択する（０９０２）。そして、レイアウト編集アプリケーションは選択したコンテナの集合について、レイアウトの計算を行う。ここでは、レイアウトされるコンテナのサイズが、実際のコンテンツのサイズとできる限り差が少なくなるように、レイアウト編集アプリケーションはレイアウトの最適化を行う（０９０３）。レイアウトの最適化をするためにレイアウト編集アプリケーションは、リンクにより関連付けられた各コンテナに挿入されるコンテンツデータのサイズの変化量が同じになるように各コンテナのサイズを計算する。レイアウトの最適化を行いルールに違反していた場合、レイアウト編集アプリケーションは、再度ルールを違反しないように計算をする（０９０４）。ここで記述したルールとは、レイアウト作成時にユーザによって設定される制限であり、コンテナのサイズと位置、リンクの長さなどである。ルールを違反しないようにレイアウトが計算されたら、その集合のレイアウトは完成される。そして、０９０２〜０９０４のステップをページ上のすべての集合について施し、ページ全体のレイアウトを計算する（０９０５）。
【００４０】
図７のＡ〜Ｃはレイアウト計算時のＵＩ例である。
【００４１】
図７Ａは、あるレコードのコンテンツデータが挿入されレイアウトが決定されている状態を表している。１００１と１００２はアンカー、１００３と１００４は固定された辺、１００５は可変の辺、１００６は可変の辺の変化方向を示している矢印、１００８はリンクをそれぞれ示している。この状態において、レコードを変更し、異なったサイズのコンテンツデータを挿入する。図７Ｂは図７Ａに新しいコンテンツデータのサイズを重ねて示している。１００９はそれぞれのコンテナに挿入されるコンテンツデータのサイズを表している。そして、レイアウト計算が行われる。図７Ｃはレイアウト計算された結果を示している。計算後の各コンテナのサイズは、実際挿入されるコンテンツデータのサイズと同等に差異があるように計算され、且つ前述したルールを違反しないように計算される。つまりリンクにより関連付けられたコンテナの変化量は同じとなるようにレイアウト計算が実行される。図７−Ｃで示されるように、図７Ｂで示した挿入されるコンテンツサイズ（１００９）と計算後のコンテンツサイズ（１０１０）は、双方において同等な差異がある。
【００４２】
[実施例１]
本発明の実施例について説明する。
【００４３】
[全体フロー]
図９、１０は本発明の全体フローとその説明ＵＩを示している。
【００４４】
図１０のフローの各ステップを図９のＵＩ１３０１と合わせながら説明する。
【００４５】
まず、図９の１３０３で示すアイコンが押下されることによって、レイアウト編集アプリケーションは、コンテナ作成モードへと遷移する（１４０１）。そして、ユーザの指示に従い、レイアウト編集アプリケーションはコンテナを作成する（１３０７−１３１０）。
【００４６】
レイアウト編集アプリケーションは、コンテンツデータ１３０６とコンテナとを関連付ける（１４０２）。なお、関連付けは、データの各フィールド情報と各コンテナを指定して関連付けるようにしても、データファイルを指定し、そこからシーケンシャルに関連付けるようにしても良いのは言うまでもない。
【００４７】
レイアウト編集アプリケーションは、１３０５の指示に従い本コンテンツをレイアウトして印刷する際のフィニッシング処理の選択を行う。フィニッシング処理とは印刷後に行なわれる後処理を指す。本実施例では、フィニッシング処理として、“折り”（２つ折り、３つ折り、4つ折りなど）設定を適用するケースについて説明を行っている（１４０３）。
【００４８】
レイアウト編集アプリケーションは、選択されたコンテナにフィニッシング回避属性を設定する（１４０４）。フィニッシング回避属性とはコンテナとフィニッシング処理とが重なる場合に、その重なりを回避するための処理を実行することを示す属性である。ここまでの設定を行った後に、１３１１の実行ボタンが押下されることに従い、レイアウト編集アプリケーションはレイアウト計算を実行する（１４０５）。以降の処理は、内部処理であるためＵＩの対比なく説明を行う。
【００４９】
ステップ１４０６において、レイアウト編集アプリケーションが、図５〜図６にて上述した処理を実行することで、ステップ１４０２で関連付けたコンテンツデータに基づいて各コンテナのサイズとそのコンテナの位置を算出する。
【００５０】
ステップ１４０７において、レイアウト編集アプリケーションは、ステップ１４０３で選択したフィニッシング処理が実行されるフィニッシング位置とアジャスト範囲を特定する。ここでは、レイアウト編集アプリケーションが、フィニッシング処理に対応する能力をプリンタに問い合わせることでＳ１４０７の処理が実現される。なお、アジャスト範囲とはプリンタがフィニッシング位置を移動できる範囲を指し、移動量とも呼ばれる。また、プリンタの能力取得は、出力先のプリンタドライバが用意しているＡＰＩ（ＳＤＫ）経由で取得してもデバイスから取得しても、プリンタの能力を管理しているデータベースから読みこむようにしても良い。
【００５１】
下記は、読み込んだプリンタの能力の一例である。
【００５２】
用紙サイズ    折り位置（用紙端からの距離）  アジャスト範囲
2つ折り    A4縦              148.5mm                    ±10（Y）
3つ折り    A4縦              99、198mm                  ±５（Y）
ステップ１４０８において、レイアウト編集アプリケーションは、ステップ１４０６の算出結果とステップ１４０７により特定されたフィニッシング位置とに基づいて、コンテナ上にフィニッシング処理が重なるか判断する。一例として、レイアウト編集アプリケーションは、Ｓ１４０６にて算出されたコンテナのサイズと位置を示す座標情報とフィニッシングが適用される位置を示す座標情報とを比較することでＳ１４０８の処理を実行する。
【００５３】
Ｓ１４０８の判定の結果、コンテナ上にフィニッシング処理が重なると判断された場合、ステップ１４０９へ進む。
【００５４】
ステップ１４０９において、レイアウト編集アプリケーションは、Ｓ１４０８にてフィニッシング処理が重なると判定されたコンテナのコンテナ属性を参照し、読み込んだコンテナ属性にフィニッシング回避属性が設定されているか否かを判定する（Ｓ１４１０）。回避属性がＯＮの場合には、ステップ１４１１へ進む。また、回避属性がＯＦＦであれば、回避処理を行わないため、レイアウト結果を表示するステップ１４１２へ進む。
【００５５】
図１１は、ステップ１４１１の詳細を説明するためのフローチャートである。
【００５６】
ステップ１５０１において、レイアウト編集アプリケーションは、コンテナとフィニッシング処理の位置の重なりを解消するために必要なフィニッシング処理の移動量を算出する。ここで、Ｓ１５０１の処理を図１２を使って具体的に説明する。図１２は、フィニッシング処理の位置をコンテナ外に移動する移動量を示す例である。Ｙ０の位置が  移動量＝０の現状のフィニッシング位置である。現状のフィニッシング位置がコンテナに重ならないように移動すべき移動量は、上方向がＹ１と下方向がＹ２となる。図１２の例では、レイアウト編集アプリケーションが、現状のフィニッシング処理が実行される座標とそのフィニッシング処理が重なるコンテナの上端の座標との差分を計算することによりＹ１を算出する。さらに、レイアウト編集アプリケーションが、現状のフィニッシング処理が実行される座標とそのフィニッシング処理が重なるコンテナの下端の座標との差分を計算することによりＹ２を算出する。以上の処理によりＳ１５０１が実現される。
【００５７】
ステップ１５０２において、レイアウト編集アプリケーションは、ステップ１５０１で算出されたフィニッシング移動量が、プリンタのフィニッシング移動量の範囲内に収まっているか判定する。図１２を用いて具体的に説明すると、Ｙ０の位置を中心にフィニッシング位置の移動量の範囲は±Ｙ３である。この場合、レイアウト編集アプリケーションは、Ｙ２がフィニッシング位置の移動量の範囲に収まるので、フィニッシングの位置を変更可能と判定する。
【００５８】
Ｓ１５０２において、フィニッシングの位置を変更可能と判定されなかった場合、Ｓ１５０５へと処理が進む。
【００５９】
ステップ１５０５において、レイアウト編集アプリケーションは、フィニッシング位置に回避用コンテナ（回避領域）を挿入する。回避用コンテナとは、フィニッシング位置に対してコンテンツが印刷されないように、コンテンツを印刷できないエリアを定義するために使用される。なお、回避用コンテナは、コンテンツに限らず全てのデータが印刷されない領域であっても良い。また、レイアウト編集アプリケーションは、回避用コンテナが配置されるコンテナの位置およびサイズを変更せずに、回避用コンテナを配置する。例えば、図１３では、回避用コンテナ１７０６が配置される前後においてコンテナ１７０２のサイズが変更されていないことが示されている。
【００６０】
図１３の１７０５はコンテナ１７０２にフィニッシング１７０３が重なる場合に挿入された回避用コンテナである。なお、フィニッシング処理が折りである場合、回避用コンテナのサイズの高さ１７０６は、用紙の厚みに基づいて決定される。なお、回避用コンテナ１７０６はコンテナ１７０２とは別コンテナとして挿入されるため、コンテナ１７０２に対する印刷属性は回避用コンテナ１７０６に適用されない。例えば、コンテナ１７０２の全体に透明トナーを載せることが設定されていた場合であっても、回避用コンテナ１７０６には透明トナー属性は適用されない。
【００６１】
ステップ１５０３において、レイアウト編集アプリケーションは、コンテンツをテンプレートに挿入することで生成されるページ数を判定し、ページ数が１ページであれば、ステップ１５０４に進む。
【００６２】
また、Ｓ１５０３において複数ページが生成されると判定された場合、全てのページのフィニッシング移動量が同じ場合には、ステップ１５０４へ進み、１ページでも移動量が異なるページがある場合には、ステップ１５０５へ進む。
【００６３】
ここで図１３を用いて本実施例１の効果について説明する。例えばコンテナ１７０２の全体に透明トナーが載せられていた場合、図１３のレイアウト結果１７０１の印刷物を折り位置１７０３で折ると、透明トナーが剥離するおそれがあった。また、透明トナーが載らない場合であっても、折り位置に配置された文字がかすれるおそれがあった。これに対し、本実施例を適用することで得られるレイアウト結果１７０４では、コンテナ１７０２の中に回避用コンテナ１７０５が配置される。そのため、上述したような透明トナーが剥離されたり、文字がかすれるおそれを回避することが可能となる。さらに、回避用コンテナを使って上記課題を解決するため、コンテンツデータが配置される領域であるコンテナ１７０２の位置と大きさも変更されないので、ユーザが所望とするレイアウト結果を得ることができる。
【００６４】
なお、図１３のコンテナ１７０２内における水平方向の矢印は、テキストデータが水平方向に配置されることを示す。
【００６５】
なお、回避用コンテナを配置することでコンテンツがコンテナ１７０２から溢れる場合、レイアウト編集アプリケーションは、当該コンテンツがイメージデータであればサイズを縮小する。一方、溢れるコンテンツがテキストデータであれば、レイアウト編集アプリケーションは、フォントサイズ、文字間、行間を縮小する。
【００６６】
[実施例２]
実施例１では、回避用コンテナを挿入することでフィニッシング処理とコンテンツデータとの重なりを回避しているが、回避用コンテナを挿入することで文字の可読性が低下するおそれがある。本実施例２ではこの課題を解決する方法について説明する。
【００６７】
本実施例２について図１９を使って説明する。なお、図１９は図１１にて上述したＳ１５０５の処理を実行する際に実行される。
【００６８】
ステップ２１０１において、レイアウト編集アプリケーションは、フィニッシング処理が実行される位置に回避用コンテナを挿入する。
【００６９】
ステップ２１０２において、レイアウト編集アプリケーションは回避用コンテナを挿入するコンテナがテキストデータが割り当てられるコンテナか否かを判定する。なお、Ｓ２１０１の判定は、レイアウト編集アプリケーションが、メモリに記憶されているコンテナの属性を参照することで実現される。
【００７０】
ステップ２１０１においてテキストであると判定された場合、ステップ２１０３において、レイアウト編集アプリケーションは、テキストのレイアウト方向と折り方向とを比較する。ここで、テキストのレイアウト方向がフィニッシング方向（折り方向）と異なる場合、ステップ２１０４へ進む。また、テキストのレイアウト方向が折り方向と同じであればステップ２１０９へ進み、レイアウト編集アプリケーションがコンテンツの流し込み処理を行う。
【００７１】
ステップ２１０４において、レイアウト編集アプリケーションは、コンテナのフィニッシング位置により分断される後段の領域の高さと文字サイズから、後段の領域に配置できる文字数を算出する。この処理を図２０を用いて具体的に説明する。
【００７２】
図２０はコンテナ２５０１とフィニッシング処理２５０４が重なるレイアウト結果を図示したものであり、コンテナ２５０１が折り処理により前段の領域２５０２と、後段の領域２５０３に分けられる。ここで後段の領域の高さを文字サイズの縦方向の長さで除算することにより、１列当たりに配置される文字数を算出でき、この文字数を列数で乗算することで後段の領域２５０３に配置される文字数を算出できる。例えば、図２０において、後段の領域１列当たりに配置できる文字数が１文字であると算出された場合、図２０ではテキストが７列に渡って配置されるのでレイアウト編集アプリケーションは７文字を算出する。なお、図２０では、テキストのレイアウト方向が垂直方向であり、折り方向を示す折り線は水平方向であるため、レイアウト編集アプリケーションはＳ２１０３で方向が異なると判定する。
【００７３】
ステップ２１０５においてレイアウト編集アプリケーションは、Ｓ２１０４にて算出した文字数とあらかじめ定義されている文字数（閾値）とを比較する。ここで、Ｓ２１０４にて算出された文字数が閾値より大きい場合、Ｓ２１０９においてレイアウト編集アプリケーションは、折り位置で段組みされるようにテキストデータを編集する。その結果、図２１のような結果が得られる。
【００７４】
一方、Ｓ２１０５の判定の結果、文字数が閾値よりも小さい場合、レイアウト編集アプリケーションは、ステップ２１０６へと処理を進める。
【００７５】
ステップ２１０６において、レイアウト編集アプリケーションは、後段の領域の高さが短い場合に変更される段組みコンテナのサイズを算出する。ここで算出方法の具体例を図２０を使って説明する。なお、図２０では３つ折りが想定されている。レイアウト編集アプリケーションは、Ｓ２１０４により算出された「文字数」と縦方向の文字サイズとの乗算の結果を折り位置２５０４から折り位置２５０５の高さで除算することで変更後の段組みの幅を算出する。例えば、Ｓ２１０４により算出された文字数が７文字であり（文字サイズは１ｃｍ×１ｃｍ）、折り位置２５０４から折り位置２５０５の高さが７ｃｍであれば、幅は１ｃｍと算出され、高さ７ｃｍ×横１ｃｍを後段の段組みコンテナのサイズとして決定する。なお、「文字数」と縦方向の文字サイズとの乗算の結果を折り位置２５０４から折り位置２５０５の高さで除算した結果が整数にならない場合は、小数点以下を繰り上げる。
【００７６】
Ｓ２１０７において、レイアウト編集アプリケーションはＳ２１０６において決定された段組みコンテナサイズのコンテナに、前段の領域から溢れたテキストデータを配置する。その結果が図２２である。
【００７７】
以上、本実施例では、例えば図２１のように回避用コンテナ２６０１を境にテキストデータを段組みの形式に編集することで、回避用コンテナを挿入するにより生じる文字の可読の低下を防ぐ。
【００７８】
また、後段の領域に配置される文字数が少ない場合に、Ｓ２１０６の処理を行い後段の段組み領域のサイズを変更することで可読性が損なわれないレイアウト結果を出力できる。
【００７９】
なお、図２０〜図２２におけるコンテナ内の縦方向の矢印はテキストデータのレイアウトを示しており、図２２の２７０１は回避用コンテナを示す。
【００８０】
[実施例３]
実施例１では回避用コンテナを挿入することで回避処理を実行していたが、回避用コンテナを挿入することでコンテンツが入りきらなくなるおそれもある。この課題を解決するために本実施例３では、実施例１のステップ１４１１の処理に対してフィニッシングパターンを変更する事でコンテナにおけるフィニッシング処理とコンテナの重なりを回避する。なお、図１４は、本実施例３のフローチャートである。
【００８１】
本実施例３では、図１０のステップ１４１１の回避処理について詳細に説明する。
【００８２】
ステップ１７０１において、レイアウト編集アプリケーションは、フィニッシング可能位置を特定する。具体的には、レイアウト編集アプリケーションが、図５、図６におけるレイアウト結果において各コンテナ間のスペース部分をフィニッシング可能位置として判断する。
【００８３】
図１５は、コンテナ以外の部分をフィニッシング可能位置として判断し、当該エリアを斜線で表示した例である。
【００８４】
ステップ１７０２において、レイアウト編集アプリケーションは、フィニッシングパターン数の読み込みを行うステップである。本ステップでは、フィニッシングとして折りが指定されていた場合、プリンタの能力として登録されている折りパターン数を読み込むものである。たとえば、登録されているパターンが、「２つ折り」、「３つ折り」、「４つ折り」であった場合、レイアウト編集アプリケーションは、パターン数として３を読み込む。また、ステイプル処理であれば、例えばプリンタが「左上」、「左下」、「右上」、「右下」にステイプル処理を適用できるのであれば、レイアウト編集アプリケーションは、パターン数として４を読み込む。
【００８５】
ステップ１７０３において、レイアウト編集アプリケーションは、Ｓ１７０２で読み込まれたパターン数分処理を繰り返すためのカウンタ処理を行う。
【００８６】
ステップ１７０４において、レイアウト編集アプリケーションは、Ｓ１７０１にて読み込まれた各フィニッシング処理によるフィニッシング位置の読み込を行う。ここで言う、フィニッシング位置とは、用紙に対してどの位置に折り処理が実行されるかを示す情報であり、図１６はその一例である。
【００８７】
ステップ１７０５において、レイアウト編集アプリケーションは、Ｓ１７０４において読み込まれたフィニッシング位置がコンテナに重なるか否かを判断し、判断結果をメモリに記憶する。例えば、「３つ折り」が実行される位置がフィニッシング可能位置であり、「４つ折り」が実行される位置がフィニッシング可能位置でなければ、「３つ折り」がＳ１７０５にて記憶される。
【００８８】
ステップ１７０２に読み込んだ全てのパターンに対してＳ１７０５の判定が終わった場合、ステップ１７０６に進む。
【００８９】
ステップ１７０６において、レイアウト編集アプリケーションは、Ｓ１７０５の判定結果に基づいてフィニッシング可能位置に合致するフィニッシングパターンがあった場合、ステップ１７０７に処理を進める。
【００９０】
ステップ１７０７において、レイアウト編集アプリケーションは、Ｓ１７０５においてフィニッシング可能位置に合致するフィニッシングパターンにフィニッシング方法を変更する。なお、Ｓ１７０５において複数のフィニッシングパターンがフィニッシング可能位置に合致すると判定された場合、図９のＵＩ等を用いてあらかじめ設定されたコスト優先、パフォーマンス優先といった処理モードに従ってフィニッシング処理を選択する。図９のＵＩを用いて、たとえばコスト優先が設定されていた場合、コンテンツを送付時に小さな封筒で処理できるよう、折り数が最も多いフィニッシング処理を選択する。一方、パフォーマンス優先であれば、折り数の数が最小になるフィニッシング処理を選択する。
【００９１】
ステップ１７０８は、合致パターンが見つからなかった場合の処理であり、図１７を使って詳細に説明する。
【００９２】
ステップ１９０１において、レイアウト編集アプリケーションは、フィニッシング領域に該当するコンテナの検出する。ステップ１９０２において、レイアウト編集アプリケーションは、フィニッシング領域に該当したコンテナに対してフィニッシングを回避するためのコンテナサイズを算出する。
【００９３】
図１８（Ａ）は、オリジナルコンテナに対してフィニッシングが重なっている一例である。このオリジナルコンテナに対してフィニッシングが重ならないように、フィニッシング重なり量分、コンテナのサイズを変更した結果が図１８（Ｂ）である。
【００９４】
ステップ１９０３において、レイアウト編集アプリケーションは、コンテナサイズの拡縮率としてフィニッシング回避用コンテナサイズ/オリジナルコンテナサイズを算出する。
【００９５】
ステップ１９０４において、レイアウト編集アプリケーションは、コンテナ内のコンテンツの種類を判定する。コンテンツの種類がテキストの場合、レイアウト編集アプリケーションは、ステップ１９０５に進み、ステップ１９０３で算出した拡縮率に基づき、文字サイズを変更する。また、ステップ１９０６において、レイアウト編集アプリケーションは、画像サイズを拡縮率にしたがい拡縮する。
【００９６】
なお、拡縮率が大きすぎるとドキュメントの構成が適切でなくなるケースもあるため、あらかじめ拡縮率の上限値を決めておき、上限値を超える場合には処理を適用しないといった方法を取っても本特許は有効である。
【００９７】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述の実施形態の機能を実現するソフトウェア（プログラム）を、ネットワークまたは各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【符号の説明】
【００９８】
１０１  コンピュータ
１３２  キーボード
１３３  マウス
【図１】
0005419979.tif 000002
【図２】
0005419979.tif 000003
【図３】
0005419979.tif 000004
【図４】
0005419979.tif 000005
【図５】
0005419979.tif 000006
【図６】
0005419979.tif 000007
【図７】
0005419979.tif 000008
【図８】
0005419979.tif 000009
【図９】
0005419979.tif 000010
【図１０】
0005419979.tif 000011
【図１１】
0005419979.tif 000012
【図１２】
0005419979.tif 000013
【図１３】
0005419979.tif 000014
【図１４】
0005419979.tif 000015
【図１５】
0005419979.tif 000016
【図１６】
0005419979.tif 000017
【図１７】
0005419979.tif 000018
【図１８】
0005419979.tif 000019
【図１９】
0005419979.tif 000020
【図２０】
0005419979.tif 000021
【図２１】
0005419979.tif 000022
【図２２】
0005419979.tif 000023