(57)【特許請求の範囲】
【請求項１】
座標空間に表示対象要素を配置したレイアウトの出力処理方法において、
出力範囲取得手段としてＣＰＵが、レイアウトの少なくとも一部を切り出す出力範囲であり、複数の表示対象要素が含まれる出力範囲の情報を得る出力範囲取得ステップと、
出力範囲変更判断手段としてＣＰＵが、上記切り出す出力範囲の境界によって出力範囲外に分割される表示対象要素の大きさが、基準の大きさ（零を除く）以上、あるいは表示対象要素の大きさに対して基準の割合（零を除く）以上になる場合には、縮小表示せずに表示対象要素が全て出力範囲に含まれているように出力範囲の大きさまたは位置を変更できるか否かを判断する出力範囲変更判断ステップと、
前記出力範囲変更判断ステップにおいて、出力範囲の情報が変更できると判断された場合に、出力範囲変更手段としてＣＰＵが、出力範囲の大きさまたは位置を自動変更する出力範囲変更ステップと、を有することを特徴とする出力処理方法。
【請求項２】
前記出力範囲取得ステップにおいて、出力範囲取得手段としてＣＰＵが、既に取得済みの出力範囲と隣接するもしくは一部重なる出力範囲を得ることを特徴とする請求項１に記載の出力処理方法。
【請求項３】
前記出力範囲変更ステップにおいて、出力範囲変更手段としてＣＰＵが、既に取得済みの出力範囲と隣接するもしくは一部重なる出力範囲に自動変更することを特徴とする請求項１または２に記載の出力処理方法。
【請求項４】
前記出力範囲変更ステップにおいて、出力範囲変更手段としてＣＰＵが、出力する表示対象要素を出力範囲変更ステップの実行対象とするかどうかを識別する情報を、表示対象要素に持たせることを特徴とする請求項１、２、３のいずれか一項に記載の出力処理方法。
【請求項５】
座標空間に表示対象要素を配置したレイアウトの出力処理方法において、
出力範囲取得手段としてＣＰＵが、レイアウトの少なくとも一部を切り出す出力範囲であり、複数の表示対象要素が含まれる出力範囲の情報を得る出力範囲取得ステップと、
上記切り出す出力範囲に含まれる表示対象要素が、該出力範囲から所定の割合あるいは所定の大きさ（いずれも零を除く）以上はみ出す場合には、出力変換手段としてＣＰＵが、その出力範囲に含まれる表示対象要素を縮小表示せずに他の出力に置き換える出力変換ステップと、を有することを特徴とする出力処理方法。
【請求項６】
前記出力変換ステップにおいて、出力変換手段としてＣＰＵが、前記出力範囲に含まれる表示対象要素を、所定の割合あるいは所定の大きさに応じた他の出力に置き換えることを特徴とする請求項５に記載の出力処理方法。
【請求項７】
前記出力変換ステップにおいて、出力する表示対象要素を出力変換ステップの実行対象とするかどうかを識別する情報を表示対象要素に持たせることを特徴とする請求項６に記載の出力処理方法。
【請求項８】
前記レイアウト出力において、前記出力範囲のスクロールがなされることを特徴とする請求項１または５に記載の出力処理方法。
【請求項９】
座標空間に表示対象要素を配置したレイアウトの少なくとも一部を切り出す出力範囲であり、複数の表示対象要素が含まれる出力範囲の情報が入力される出力範囲取得手段と、
上記切り出す出力範囲の境界によって出力範囲外に分割される表示対象要素の大きさが、基準の大きさ（零を除く）以上、あるいは表示対象要素の大きさに対して基準の割合（零を除く）以上になる場合には、縮小表示せずに表示対象要素が全て出力範囲に含まれているように出力範囲の情報を変更できるか否かを判断する出力範囲変更判断手段と、
出力範囲変更判断手段が出力範囲の情報を変更できると判断した場合に、出力範囲取得手段に入力された出力範囲の大きさまたは位置を変更する出力範囲変更手段と、を有することを特徴とする出力処理装置。
【請求項１０】
座標空間に表示対象要素を配置したレイアウトの少なくとも一部を切り出す出力範囲であり、複数の表示対象要素が含まれる出力範囲の情報を得る出力範囲取得手段と、
上記切り出す出力範囲に含まれる表示対象要素が、該出力範囲から所定の割合あるいは所定の大きさ（いずれも零を除く）以上はみ出す場合には、その出力範囲に含まれる表示対象要素を縮小表示せずに他の出力に置き換える出力変換手段と、を含むことを特徴とする出力処理装置。
【請求項１１】
請求項１ないし８のいずれか一項に記載の出力処理方法が備える各ステップをコンピュータに実行させるための出力処理プログラム。
【請求項１２】
請求項９または１０に記載の出力処理装置が備える各手段として、コンピュータを機能させるための出力処理プログラム。
【請求項１３】
請求項１１または１２に記載の出力処理プログラムを記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、文字、文字列または画像等の表示対象要素を二次元または三次元の座標空間にレイアウト（配置）して、表示装置、印刷装置等の出力装置に出力する方法、その方法を実施するための装置、プログラムおよびプログラム媒体に関する。
【０００２】
【従来の技術】
従来より、例えば文字や画像が混在した文書を表示する文書閲覧ソフトウェアとして、ＷＷＷ（Ｗｏｒｌｄ Ｗｉｄｅ Ｗｅｂ）ブラウザなどが存在する。多くのＷＷＷブラウザでは、例えば画面の表示サイズを越える横長の画像については、画面に併せて表示される横スクロールバーをユーザが操作し、画面をスクロールするなどして、画面の表示サイズを越える画像全体を見ることができるようになっている。
【０００３】
このような画像をスクロールで見る場合、画像全体を一覧できない、操作が面倒であるなどの欠点があるが、特開２０００−１１５５２７号公報では、表示領域に画像幅が入り切らない場合は、画像を縮小して表示する装置が述べられている。
【０００４】
【発明が解決しようとする課題】
しかし、一覧すべきひとまとまりの表示対象要素が、表示画面や印刷用紙などの表示サイズを越える大きさを持っているために、表示対象要素の一部が出力先の表示可能領域から切れてしまう場合、あるいは、表示対象要素の大きさは表示可能領域より小さいが、指定された出力範囲が適切ではないため、表示対象要素の一部が表示可能領域からはみ出す場合、従来の文書表示方法によって表示画面や印刷用紙などに表示された表示対象要素について、表示対象要素の詳細、若しくは未表示部分自体、未表示部分の有無、未表示部分の割合等のような未表示部分に関する情報をユーザが得るには、余計な操作が必要になるという問題を有している。
【０００５】
例えば、上記公報のように、表示可能領域から切れてしまう画像などを縮小すると、画像の詳細が得られなくなるため、さらに詳細な情報を得るためには、結局、縮小していない画像を画面に呼び出す操作と、画面をスクロールする操作とが必要である。
【０００６】
また、複数の縮小した画像が表示可能領域に存在し、その内のどれかが表示可能領域からさらに切れて表示される場合には、画像の詳細が分からない上に、表示可能領域から切れた縮小画像の未表示部分について全く何の情報も得られないことになる。
【０００７】
また、たとえ文書中にレイアウトされた画像の一つ一つは表示領域サイズ（表示可能範囲）を越えない場合であっても、例えばＷＷＷブラウザを用いて文書全体をスクロールして見る際、スクロール位置によっては、画像が表示領域上で一部しか表示されないことがある。その場合、画像がそのままでは一覧できないので、一覧するためには余計なスクロール操作を行って、表示領域サイズ内に画像を移動させる必要がある。
【０００８】
スクロールできる場合はまだよいが、印刷などのように出力結果をスクロールできない場合、分割された画像が複数のページに分かれて印刷されてしまい、画像全体を把握するためには複数のページを繋ぎ合わせて見るなどしなければならず、この場合にも扱いが面倒になるという欠点がある。
【０００９】
また、画像の大きさが表示領域サイズを越えたり、指定した出力範囲が適切でなかったりする場合に、画像の一部を表示する方法では、未表示部分がどれだけあるのか、若しくは未表示部分が有るのか無いのか、つまり、画像の端部が表示領域サイズの端部と偶然に一致した表示状態になっているのかどうかが分からない欠点もある。この場合にも、やはり、画面をスクロールするなどして、画像の未表示部分を確認する操作が必要になる。
【００１０】
本発明の目的は、上記の問題点に鑑みて、一覧すべきひとまとまりの表示対象要素の大きさが表示領域サイズを越えたり、指定した出力範囲が適切でなかったりする場合に、画面をスクロールするなどの余計な操作をしなくても、表示対象要素に関する詳細な情報を得たり、未表示部分に関する情報を即座に得ることができるレイアウトの出力処理方法、その方法を実施するための装置、プログラムおよびプログラム媒体を提供することにある。
【００１１】
【課題を解決するための手段】
本発明に係る出力処理方法は、上記の課題を解決するために、座標空間に表示対象要素を配置したレイアウトの出力処理方法において、レイアウトの少なくとも一部を切り出す出力範囲の情報を得る出力範囲取得ステップと、上記切り出す出力範囲の境界によって出力範囲外に分割される表示対象要素の大きさが、基準の大きさ以上、あるいは表示対象要素の大きさに対して基準の割合以上になる場合には、該境界を含まないように出力範囲の情報を変更できるか否かを判断する出力範囲変更判断ステップと、変更できると判断した場合に、出力範囲の情報を自動変更する出力範囲変更ステップと、を有することを特徴とする。
【００１２】
ここで、表示対象要素とは、文字、文字列、画像などのレイアウトされる単位を意味し、レイアウトとは、二次元または三次元の座標空間における表示対象要素の配置を意味する。したがって、本発明に係る出力処理方法によれば、座標空間における表示対象要素の配置、すなわちレイアウトに従って、出力先の表示装置、印刷装置等における出力／表示媒体に、表示対象要素が出力／表示される。分かり易くする為に「表示対象要素」と呼んでいるが、必ずしも「表示」だけに限らず、印刷やデータ出力、ファイル出力などのあらゆる出力に関わる要素を含むものである。なお、以降、単に「要素」と述べた場合は、「表示対象要素」を意味する。
【００１３】
また、表示対象要素の数は、レイアウトの枠組みの中に１つ以上あれば、特に限定されない。例えば、出力先の表示媒体が印刷用紙の場合に、白い紙面中の一部領域に写真が１枚、あるいは文字が１文字、レイアウトされるような場合や、２枚の紙面にまたがるように写真が１枚、レイアウトされるような場合にも本発明が適用される。
【００１４】
さらに、出力範囲の情報とは、レイアウトの少なくとも一部を切り出す範囲に関し、レイアウトの枠組みに対する位置、大きさ、形状などの属性を特定する情報である。また、当該属性は、出力先の出力／表示媒体における出力／表示可能領域の大きさ、形状などに依存して決めることもできるし、ユーザーなどが指定することもある。
【００１５】
また、出力先は、レイアウトに従って表示対象要素が出力される対象であって、モニターなどの表示デバイス、プリンターなどの印刷デバイス、あるいはＰＤＦ（portable document format）の様に表示対象要素データをレイアウト情報を伴った形で記録するようなフォーマットをもつデータやファイル、３次元プリンタなどの３次元物体形成デバイスなどに当たる。
【００１６】
そこで、本発明に係る出力処理方法によれば、出力範囲取得ステップによって出力範囲の情報を得るので、レイアウトの枠組みの中のどの部分を切り出して出力先の出力／表示媒体における出力／表示可能領域に出力／表示させるかが決まる。
【００１７】
このとき、レイアウトの枠組みに対する位置、大きさ、形状などの属性に応じて、出力範囲の境界によって出力範囲外に分割される表示対象要素の大きさが、基準の大きさ以上、あるいは表示対象要素の大きさに対して基準の割合以上になる場合がある。この場合に、表示対象要素が、そのような状態で境界を含まないように、出力範囲の情報、すなわちレイアウトの枠組みに対する位置、大きさ、形状などの属性の一つまたは適宜の組み合わせを変更できるか否かを判断する出力範囲変更判断ステップが実行され、出力範囲の情報変更が可能と判断された場合に、出力範囲の自動変更が実行される。
【００１８】
これによって、表示対象要素の出力が、出力範囲の境界で所定の割合あるいは所定の大きさ以上に分割された未表示部分を持つことがなくなり、縮小表示などせずに詳細に表示対象要素全体を一覧できる出力を作成できる効果が出てくる。
【００１９】
また、スクロール操作などの余計な操作をユーザが行わなくても、表示対象要素全体を一覧できるような出力を自動的に作成できる効果が出てくる。
【００２０】
同様に、スクロール操作ができないような出力形式においても、表示対象要素が分割されて出力されることがなくなるという効果が出てくる。例えば、スクロール操作ができないような出力形式として印刷の例でいえば、表示対象要素が複数のページに分かれて印刷されることがなく、印刷する用紙を大きくしたり、２枚のページにまたがる表示対象要素をどちらかのページにまとめて表示したりすることができる。
【００２１】
また、ユーザあるいはコンテンツ作成者が、表示対象要素を分割して出力したくないという要望を満たすことができる効果が出てくる。例えば、表示対象要素の一部が見えてしまうことによって、その表示対象要素を見ることの面白さが半減したり、インパクトが薄れるといった問題を回避することができる。
【００２２】
本発明に係る出力処理方法は、上記の課題を解決するために、前記出力範囲変更ステップにおいて、出力範囲の大きさを変更することを特徴とする。
【００２３】
上記の構成により、前述の出力範囲変更判断ステップでは、表示対象要素の出力が出力範囲の境界で所定の割合あるいは所定の大きさ以上に分割される場合に、出力範囲の大きさを変更することで、表示対象要素が出力範囲の境界を含まなくなるか否かが判断される。そして、出力範囲の大きさを変更できると判断された場合に、出力範囲変更ステップで、出力範囲の大きさを自動的に変更することで、変更前の出力範囲の境界で分割されていた表示対象要素の出力が、変更後の出力範囲の境界で分割されなくすることができる。
【００２４】
すなわち、表示対象要素の大きさが出力範囲の大きさより大きい場合は、出力範囲の位置をどんなに変えてもその表示対象要素は分割して出力されてしまうが、出力範囲の大きさ自体を変えることで、たとえ表示対象要素の大きさが出力範囲よりも大きい場合でも表示対象要素全体を出力させることができる効果が出てくる。例えば、ウィンドウシステムならば表示するウィンドウの大きさを変えたり、印刷ならば印刷する用紙の大きさを変えたりすることに相当する。
【００２５】
本発明に係る出力処理方法は、上記の課題を解決するために、前記出力範囲変更ステップにおいて、レイアウトの枠組みにおける出力範囲の位置を変更することを特徴とする。
【００２６】
上記の構成により、前述の出力範囲変更判断ステップでは、表示対象要素の出力が出力範囲の境界で所定の割合あるいは所定の大きさ以上に分割される場合に、出力範囲の位置を変更することで、表示対象要素が出力範囲の境界を含まなくなるか否かが判断される。そして、出力範囲の位置を変更できると判断された場合に、出力範囲変更ステップで、出力範囲の位置を変更することで、変更前の出力範囲の境界で分割されていた表示対象要素の出力が変更後の出力範囲の境界で分割されなくすることができる。
【００２７】
出力範囲で分割されてしまう要素を避けるように出力範囲の位置をずらすことで、出力範囲の大きさが固定であっても、要素が分割して出力されてしまうことを抑制することができる効果が出てくる。一般に出力範囲の大きさは固定となっていることが多いので、先に説明した出力範囲の大きさを変更する方法を取れないことが多い。
【００２８】
そこで、出力範囲の大きさは変えず、位置を変えることで表示対象要素の分割を避けることができれば、同様の効果が得られる。出力範囲の位置を変えるとは、例えば、ＷＷＷブラウザのようにスクロール操作で閲覧するような場合は、画像などの要素が分割されないようなスクロール位置にしたり、印刷ならば分割されてしまう要素をどちらかの用紙にまとめてしまうことに相当する。
【００２９】
なお、出力範囲変更判断ステップで出力範囲の大きさおよび位置双方の適宜の変更を組み合わせることによって、表示対象要素の出力が出力範囲の境界を含まないようにできるかを判断してもよい。その場合、出力範囲の大きさまたは位置のいずれか一方の変更を他方に対して優先させてもよいし、両方の変更量ができるだけ小さくなるように、変更の組み合わせを決めるようにしてもよい。
【００３０】
本発明に係る出力処理方法は、上記の課題を解決するために、前記出力範囲取得ステップにおいて、既に取得済みの出力範囲と隣接するもしくは一部重なる出力範囲を得ることを特徴とする。
【００３１】
上記の構成により、既に取得済みの出力範囲と隣接するもしくは一部重なる出力範囲を出力範囲取得ステップで得て、それに基づいて上記出力処理を行うことで、最終的に出力される出力範囲が、既に取得済みの出力範囲と隣接するもしくは一部重なる可能性が高くなる。なお、出力範囲の位置や大きさが出力範囲変更ステップによって変更される可能性があるので、必ず隣接するもしくは一部重なるとは言い切れない。
【００３２】
しかし、これによって、出力処理結果をできるだけ連続して見ることができ、内容的に途切れることなく理解できる可能性が高まるという効果が出てくる。例えば、ＷＷＷブラウザなどスクロールして閲覧するような場合は、上下にページめくりスクロールをする操作に相当し、印刷などの場合は、用紙に順に印刷する処理に相当する。
【００３３】
本発明に係る出力処理方法は、上記の課題を解決するために、前記出力範囲変更ステップにおいて、既に取得済みの出力範囲と隣接するもしくは一部重なる出力範囲に自動変更することを特徴とする。
【００３４】
先に説明した、出力範囲取得ステップで以前の出力範囲と隣接するもしくは一部重なる出力範囲を得る方法では、出力範囲変更ステップで出力範囲が変更されない場合は連続性が保証されるが、変更された場合は必ずしも連続性が保証されないかもしれない。そこで、出力範囲変更ステップで出力範囲が変更された後でも以前の出力範囲と隣接するもしくは一部重なる出力範囲にすることで、連続性が保証される効果が出てくる。
【００３５】
本発明に係る出力処理方法は、上記の課題を解決するために、出力する表示対象要素を出力範囲変更ステップの実行対象とするかどうかを識別する情報を表示対象要素に持たせることを特徴とする。
【００３６】
本発明に係る出力処理方法によれば、表示対象要素に持たせた上記情報によって、表示対象要素が出力範囲変更ステップの実行対象とすると識別できる時は、その表示対象要素が出力範囲で分割されないように出力範囲変更ステップで出力範囲を変更する。一方、実行対象としないと識別できる時は、その要素に対して出力範囲変更ステップの対象とはせず、分割されてもそのまま出力する。
【００３７】
これによって、上記情報を表示対象要素に持たせるか持たせないかで、出力範囲変更ステップでの処理を行なうかどうかを指定できることになり、例えば、ユーザや著作者が要素が分割して出力することを認めるかどうかを指定できるなどの効果が出てくる。
【００３８】
また、上記情報を表示対象要素に持たせるか否かを表示対象要素毎に設定する場合には、例えば、ユーザや著作者が要素毎に分割して出力することを認めるかどうかを指定できる効果も出てくる。
【００３９】
なお、指定は、例えば、要素の種類（文字、画像、写真等）によって変えることもできるし、種類に関係なく個別に指定することもできる。例えば、写真は分割して出力して欲しくないが文字は構わないなどというような場合は要素の種類で指定することになり、他の図はよいがこの図だけは部分的ではなく一度に見て欲しいと著作者が思った場合などは個別に指定することになる。
【００４０】
本発明に係る出力処理方法は、上記の課題を解決するために、座標空間に表示対象要素を配置したレイアウトの出力処理方法において、レイアウトの少なくとも一部を切り出す出力範囲の情報を得る出力範囲取得ステップと、上記切り出す出力範囲に含まれる表示対象要素が、該出力範囲の境界を所定の割合あるいは所定の大きさ以上含む場合には、その出力範囲に含まれる表示対象要素を他の出力に置き換える出力変換ステップを有することを特徴とする。
【００４１】
本発明に係る出力処理方法によれば、出力範囲取得ステップによって出力範囲の情報を得るので、レイアウトの枠組みの中のどの部分を切り出して出力先の出力／表示媒体における出力／表示可能領域に出力／表示させるかが決まる。
【００４２】
このとき、レイアウトの枠組みに対する位置、大きさ、形状などの属性に応じて、出力範囲の境界によって出力範囲外に分割される表示対象要素の大きさが、基準の大きさ以上、あるいは表示対象要素の大きさに対して基準の割合以上になる場合がある。この場合に、その表示対象要素の出力範囲に含まれる部分の出力を他の出力に置き換える出力変換ステップが自動実行される。
【００４３】
これによって、何も処理を行わなければ分割して表示されるだけで、未表示部分に関する情報が何も得られない表示対象要素の出力を、他の出力に置き換えることができる。この結果、出力範囲の境界部分に接して表示されている表示対象要素の出力が、実質的に分割はされていなくて、たまたま出力範囲の境界ぎりぎりの出力なのか、許容量以上に分割して出力されているのかという未表示部分に関する情報をユーザが余計な操作をしなくてもひと目で知ることができる効果が出てくる。また、出力されていない部分を見るためには、例えばスクロールやページめくりなどの操作を必要とするか否かをユーザーがひと目で知ることができる効果もさらに出てくる。
【００４４】
なお、置き換えの仕方を様々に変えることで、例えば、分割されていることを自然な形で知らせたり、どの方向に分割されているかを自然な形で知らせたり、分割されているかどうか以上の未表示部分に関する情報をユーザに伝えることができる効果が出てくる。
【００４５】
例えば、図２２のように要素の輪郭線だけを表示したり、図２３のように要素の輪郭線を点線で表示したり、図２４のように要素の輪郭線の出力範囲付近を点線で表示したり、図２５のように分割の方向と未表示部分の割合を示す記号、数字等を表示したり、図２６のように要素のコントラストを落して表示したりすることで、分割されていることや分割の方向を自然な形で知らせることができる効果もある。
【００４６】
本発明に係る出力処理方法は、上記の課題を解決するために、前記出力変換ステップにおいて、前記出力範囲に含まれる表示対象要素を、所定の割合あるいは所定の大きさに応じた他の出力に置き換えることを特徴とする。
【００４７】
これにより、出力範囲取得手段から得た出力範囲の境界を所定の割合あるいは所定の大きさ以上含む表示対象要素の場合、出力変換ステップでその割合あるいは大きさに応じた出力を作成して出力することで、許容量以上の未表示部分があるかどうかだけではなく、未表示部分の大きさに関する付加情報をユーザにひと目で伝えることができる効果が出てくる。
【００４８】
例えば、特に図２５のように分割されて出力されていない部分の割合を表示したりすることで、どのくらいの割合しか表示されていないのか、あるいは未表示部分がどのくらいあるのかを知ることができる効果が出てくる。さらにそれを知ることで、どのくらいスクロールすればよいかなどを知ることができる効果も出てくる。
【００４９】
また、例えば図２７のように要素自体の表示と他の出力の表示とを重ねたりすることで、現在表示されている部分とその割合から要素全体の様子を推測する手助けをすることができるという効果も出てくる。
【００５０】
本発明に係る出力処理方法は、上記の課題を解決するために、前記出力変換ステップにおいて、出力する表示対象要素を出力変換ステップの実行対象とするかどうかを識別する情報を表示対象要素に持たせることを特徴とする。
【００５１】
これによる作用と効果は、前述の出力範囲変更ステップに関して、識別する情報を要素に持たせる場合の作用、効果の説明とほぼ同様である。
【００５２】
本発明に係る出力処理装置は、上記の課題を解決するために、座標空間に表示対象要素を配置したレイアウトの少なくとも一部を切り出す出力範囲の情報が入力される出力範囲取得手段と、上記切り出す出力範囲の境界によって出力範囲外に分割される表示対象要素の大きさが、基準の大きさ以上、あるいは表示対象要素の大きさに対して基準の割合以上になる場合には、該境界を含まないように出力範囲の情報を変更できるか否かを判断する出力範囲変更判断手段と、出力範囲変更判断手段が変更できると判断した場合に、出力範囲取得手段に入力された出力範囲の情報を変更する出力範囲変更手段と、を有することを特徴とする。
【００５３】
上記の構成によれば、出力範囲取得手段に出力範囲の情報が入力されるので、レイアウトの枠組みの中のどの部分を切り出して出力先の出力／表示媒体における出力／表示可能領域に出力／表示させるかが決まる。
【００５４】
なお、出力範囲取得手段は、出力範囲の情報を、出力処理装置が内蔵する内部メモリ、出力処理装置に装着される据え置き型ないし可搬型の外部メモリ、あるいは出力処理装置に接続されたネットワーク等から読み取られるプログラムから得てもよいし、ユーザの操作によりマウス、キーボード等の入力装置から入力されたデータとして得てもよいし、出力処理装置に接続されたプリンタ、ディスプレイ等の出力／表示装置、内部メモリ、外部メモリ、ネットワーク等からデータとして得てもよく、入力の形態は特に限定されない。
【００５５】
ところで、出力範囲の情報が取得された場合、レイアウトの枠組みに対する位置、大きさ、形状などの属性に応じて、出力範囲の境界によって出力範囲外に分割される表示対象要素の大きさが、基準の大きさ以上、あるいは表示対象要素の大きさに対して基準の割合以上になる場合がある。この場合に、表示対象要素が、そのような状態で境界を含まないように、出力範囲変更判断手段が、出力範囲の情報、すなわちレイアウトの枠組みに対する位置、大きさ、形状などの属性の一つまたは適宜の組み合わせを変更できるか否かを判断する。
【００５６】
そして、出力範囲変更判断手段が変更可能と判断した場合に、出力範囲変更手段が出力範囲の情報を変更する処理を実行する。
【００５７】
これによる種々の効果は、上記出力処理装置の構成に対応する出力処理方法による効果として、前述したとおりである。
【００５８】
本発明に係る出力処理装置は、上記の課題を解決するために、座標空間に表示対象要素を配置したレイアウトの少なくとも一部を切り出す出力範囲の情報を得る出力範囲取得手段と、上記切り出す出力範囲に含まれる表示対象要素が、該出力範囲の境界を所定の割合あるいは所定の大きさ以上含む場合には、その出力範囲に含まれる表示対象要素を他の出力に置き換える出力変換手段と、を含むことを特徴とする。
【００５９】
上記の構成によれば、前述の出力処理装置と同様に、出力範囲取得手段によって取得された出力範囲の境界によって出力範囲外に分割される表示対象要素の大きさが、基準の大きさ以上、あるいは表示対象要素の大きさに対して基準の割合以上になる場合に、出力変換手段が、その表示対象要素の出力範囲に含まれる部分の出力を他の出力に置き換える処理を実行する。
【００６０】
これによる種々の効果は、上記出力処理装置の構成に対応する出力処理方法による効果として、前述したとおりである。
【００６１】
本発明に係る出力処理プログラムは、上記の課題を解決するために、上記出力処理方法が備える各ステップをコンピュータに実行させることを特徴とする。
【００６２】
また、本発明に係る出力処理プログラムは、上記の課題を解決するために、上記出力処理装置が備える各手段として、コンピュータを機能させることを特徴とする。
【００６３】
さらに、本発明に係る記録媒体は、上記の課題を解決するために、上記出力処理プログラムを記録したことを特徴とする。
【００６４】
これにより、上記記録媒体、またはネットワークを介して、一般的なコンピュータに出力処理プログラムをインストールすることによって、該コンピュータを用いて上記の出力処理方法を実現する、言い換えれば、該コンピュータを出力処理装置として機能させることができる。
【００６５】
【発明の実施の形態】
〔実施形態１〕
以下、本発明の実施の形態を図面を参照して説明する。
【００６６】
（用語およびその概念）
「出力範囲」は、出力範囲の情報として、大きさ、形状、レイアウトの枠組みにおける位置、などの属性を持ち、これらの属性は出力先や使用状況によって異なる。例えば大きさは、表示装置に出力する時には、表示装置の表示部または表示可能領域の大きさである。また、その表示部または表示可能領域が、ウィンドウシステムを使ったＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）上で動作する表示処理プログラムによって制御されているならば、「出力範囲」の大きさは、表示する部分のウィンドウの大きさとなる。
【００６７】
また、ページなどに分割して表示レイアウトを記録するような記録形式として、例えばＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ ）やプリントデバイスのページ記述言語／命令、ＤＴＰ（ＤｅｓｋＴｏｐ  Ｐｕｂｌｉｓｈｉｎｇ）ソフトの記録フォーマットなどがあるが、これらの記録形式でファイルやメモリなどの記憶手段、出力デバイスなどに出力する場合は、ページの大きさが出力範囲の大きさとなる。また、紙などに印刷する場合は、紙の大きさが出力範囲の大きさとなる。なお、これらに余白部分がある場合は、余白部分を除いた大きさとしてもよいし、余白部分を含めた大きさとしてもよい。
【００６８】
出力範囲の大きさや形状は、例えば電子書籍装置などの専用装置では固定となる場合が多いが、表示処理プログラムによって制御されたウィンドウならば、ウィンドウサイズを変更することで出力範囲の大きさを変更することができる。また、出力形式が印刷ならば、出力する用紙サイズを変更することで出力範囲の大きさを変更することができる。
【００６９】
出力範囲の大きさの単位は、出力先によって異なり、例えばドット、インチ、ｃｍ（センチメータ）、ｐｔ（ポイント）などがある。また、表示倍率が変われば、出力範囲の大きさも変わることになる。レイアウトで内部的に使われる論理座標系（座標空間）と出力デバイスの解像度に依存する出力座標系とでは、単位系や倍率が異なることがあるが、１対１対応関係で相互に変換可能なので、出力範囲は、どちらかの座標系における単位系や倍率に統一して考えておけば問題無い。
【００７０】
次に、出力範囲の位置とは、出力したいデータの全レイアウト中（レイアウトの枠組み）のどの部分を出力するかを特定する情報を指し、例えば、上記論理座標系における座標で表される。また、ＷＷＷブラウザのように表示画面をスクロールしてレイアウトの全体を表示する場合は、スクロールバーによって指定された表示範囲のレイアウトの枠組みにおける位置であり、ページに分割して出力する形式では、何ページ目かを特定する情報である。なお、詳細は図２のレイアウトの説明で述べる。
【００７１】
出力範囲の形状は矩形が最も一般的だが、任意の形状でも、本発明の出力処理方法は基本的に一緒である。
【００７２】
図２は、「レイアウト」の概念を説明するものである。レイアウト全体枠１は、表示対象の全要素が上記論理座標系上に配置、すなわちレイアウトされた全体の範囲（枠組み）である。
【００７３】
説明のため、レイアウト全体枠１の左上隅を上記論理座標系の原点Ｏとし、右側にＸ軸、下側にＹ軸を取るとする。以降、「上」はＹ軸の負の方向、「下」はＹ軸の正の方向を意味するとする。
【００７４】
「表示対象要素」（以下、単に「要素」と呼ぶことがある）とは、レイアウトされる単位を指し、例えば、図や写真が入った文書データでは、それぞれの文字、文字列や、図、写真のような画像などが、表示対象要素となる。レイアウトされた要素は位置、大きさ、形状、出力表現形式を持つデータである。
【００７５】
以降では、説明を簡単にするため、要素の形状は全て矩形とし、位置は矩形の左上の点の座標（Ｘ、Ｙ）で表現し、大きさは幅と高さ（Ｗ×Ｈ）で表現することとする。
【００７６】
上記出力表現形式とは、例えば文字要素の場合はその文字の字形、写真要素ならばビットマップのような画像データ形式のことである。以降、図面上で特に説明なく単なる矩形で示されている場合には、任意の要素と解釈することにする。
【００７７】
ここでのレイアウトデータは、論理座標系（２次元または３次元）における表示対象要素の位置、大きさ、形状等を定めるデータであり、出力処理装置から出力される際は、レイアウト全体枠１から出力先の表示可能領域の大きさに切り出されて出力される。
【００７８】
図２に示す出力範囲６、１１、１２は、後でも説明するように、キーボード、マウス等の入力手段を介したユーザの操作や、出力処理装置に格納された文書表示プログラムや、プリンタ等の出力先の装置によって指定された出力範囲を示している。この矩形は説明のためのもので、レイアウト上存在しているものではなく、従って、出力先の表示可能領域にこの矩形枠は表示されない。
【００７９】
また、以降の説明では、出力範囲６等の幅はレイアウト全体枠１と同じとするが、線が重なって分かりにくいため、便宜上、図面ではレイアウト全体枠１より少し左右にはみ出して書いてある。実際に出力される際は、出力範囲６、１１、１２の内部に含まれる要素が出力される。
【００８０】
なお、出力範囲も位置と大きさと形状がある。図２の例では、形状は矩形であり、例えば出力範囲６では、矩形の左上の点が（０、Ｙ１）、幅と高さが（Ｗ１×Ｈ１）となる。なお、図２の例では、Ｘ１を０としている。以降も特に断りがない限り、処理手順としてはＸ軸も見ている、すなわちＸ座標もデータ処理の対象としているが、本例では出力範囲のＸ軸の位置は０としてある。
【００８１】
また、ここでは説明を簡単にするため、レイアウト全体枠１と出力範囲６の幅を同じにしてあるが、同じでない場合もある。その場合、いわゆる横スクロールを使って表示させたり、別のページとして出力させたりということになる。
【００８２】
取得する出力範囲はレイアウトが含まれている範囲なら任意の範囲が可能であり、例えばＷＷＷブラウザでのリンクジャンプ機能の場合は、指定された要素を中心もしくは先頭に含むような出力範囲が得られることになる。ジャンプでなく、表示形式がいわゆる「ページめくり」、「スクロール」と呼ばれるような場合には、前回取得した、あるいは既に取得済みの出力範囲と隣接または一部重なる領域を出力範囲とすることになる。
【００８３】
出力範囲の大きさを変えない場合、例えば図２に示す出力範囲６の下に隣接した出力範囲１１の位置は（０、Ｙ１＋Ｈ１）となり、出力範囲６の上に隣接した出力範囲１２は、位置（０、Ｙ１−Ｈ１）となる。但し、Ｙ１−Ｈ１＜０の場合は、出力範囲１２の上部が、レイアウト全体枠１の上端から外にはみ出した状態となる。すなわち、レイアウト全体枠１の上端から外には要素が存在しないので、空白を出力することになってしまう。ワードプロセッサやＷＷＷブラウザなどでも、文書の最初を表示する際は表示範囲の最初から表示するのが一般的であり、上部に空白が出力されるような出力範囲はスクロールバーなどでは設定できないようになっていることがほとんどである。このような表示の仕方の慣習から、文書先頭の上部に空白が出力されてしまうような出力範囲の場合は、出力範囲１２の位置を（０、０）とした方が操作する側に取ってなじみやすいという効果も出てくる。
【００８４】
なお、隣接する出力範囲の場合、取得済みの出力範囲と重複する部分がないので、情報出力という点では効率的であるが、人間が理解する場合には内容が多少重複していないと理解しにくい場合もあり得る。紙面に印刷するなど、前後の出力結果を同時に眺めることができる場合には問題ないが、そうでない場合には多少重複していた方がよい場合もあり得る。
【００８５】
以上のようにレイアウトされた表示対象要素を出力先の装置に対し出力する場合に、ひとまとまりの表示対象要素が、分割されて表示されないように、かつ表示対象要素の詳細出力情報が失われないように、出力範囲を変更する出力処理方法について以下に説明する。
【００８６】
図１は、本発明の実施の一形態に係る出力処理方法を示すフローチャート図である。
【００８７】
まずステップ１（以下、Ｓ１と略記する）で出力範囲（レイアウトにおける切り出し位置、大きさおよび形状のデータ）を取得し、Ｓ２に進む。出力範囲は、上記で用語に関して説明したように、固定であったり可変であったりするが、ここでは矩形形状の出力範囲に関し、所定の位置と大きさとを得るとする。例えば、図２の出力範囲６、１１、１２などのいずれか１つがＳ１で特定される。
【００８８】
図３は、出力範囲を互いに隣接させるのではなく、互いに一部重複するようにした場合を示している。出力範囲の大きさは変えず、重複する高さをＨ５とした場合、出力範囲６の下部と一部重複する出力範囲１３の位置は（０、Ｙ１＋Ｈ１−Ｈ５）となる一方、出力範囲６の上部と一部重複する出力範囲１４の位置は、（０、Ｙ１−Ｈ１＋Ｈ５）となる。
【００８９】
Ｓ２では、Ｓ１で取得された出力範囲についてレイアウトを得てＳ３へ進む。レイアウトは、上記で用語に関して説明したように、複数の表示対象要素からなる。したがって、レイアウトを得るとは、レイアウトを構成する全ての表示対象要素について、前記した位置、大きさ、形状、出力表現形式等に関するデータ（以下、レイアウトデータと呼ぶ）を取得することである。
【００９０】
Ｓ３では、Ｓ２で得られたレイアウトの表示対象要素の中から、最初の表示対象要素を得てカレント要素とし、Ｓ４へ進む。レイアウトされた要素は何らかの順番で順序付けされていて、順にアクセスできるとする。
【００９１】
図７は、レイアウトデータを配列の形で表現した例である。各行が各要素のレイアウトデータを表す。項目としては、位置「Ｘ」、「Ｙ」、大きさ「Ｗ」、「Ｈ」を含む。これらは先に説明した通りである。「分割」項は、要素を分割して出力してよいかどうかを判断するフラグで、詳しくはＳ６で説明する。「Ｔｙｐｅ」項は、要素の型（種類）を示している。文字要素（ＣＨＡＲ）なのか、画像要素（ＩＭＡＧＥ）なのか、線分要素（ＬＩＮＥ）なのかなどを示す。「Ｄａｔａ」項は、「Ｔｙｐｅ」項によって様々に解釈される。例えば文字要素の場合は、フォント情報や文字コードなどを特定するデータが入っていたり、画像要素の場合は、ビットマップデータが入っていたりする。図７の例では、それらのデータにアクセスするメモリポインタの値を格納している。これらの要素はインデックス番号によってアクセスできるとする。
【００９２】
したがって、Ｓ３では、カレント要素のカレントインデックス番号ｃｉを０に設定し、インデックス番号が０の要素を図７のレイアウトデータから得ればよい。
【００９３】
なお、以降の処理では、最初の要素から最後の要素まで全ての要素について判断を行っているが、その要素のＳ６などでの判断を簡単な方法で事前に行えるならば、ループ処理の対象とする要素を絞り込むことで、高速な処理を行うことが可能となる。例えば、要素をまとめる「行」の様なデータ構造が存在し、出力範囲として何行目から何行目ということが分かるなら、その行の中の要素だけを処理対象とすれば良い。
【００９４】
Ｓ４では、Ｓ３で得たカレント要素が全要素中の最後の要素かどうかを判断し、最後の場合は、Ｓ１で取得した出力範囲についての処理を終了し、最後でない場合はＳ５へ進む。図７の例で言えば、カレントインデックス番号ｃｉと全要素数ｎとを比較して、ｎ≦ｃｉならば、最後と判断すればよい。
【００９５】
Ｓ５では、カレント要素の大きさが出力範囲の大きさ以下かどうかを判定し、以下ならばＳ６へ進み、出力範囲よりも大きいのならばＳ１０へ進む。カレント要素の方が出力範囲の大きさより大きい場合には、出力範囲の大きさを変えないとすれば、出力範囲の位置をどう動かしてみても、カレント要素は必ず分割されてしまうので、この方法で分割を回避することはできなくなる。
【００９６】
但し、出力範囲の大きさを可変とした場合には、Ｓ５でカレント要素の大きさが現在の出力範囲の大きさより大きい場合に、さらに、カレント要素の大きさが出力範囲の最大の大きさ以下かどうかを判定する。そして、カレント要素の大きさが出力範囲の最大の大きさ以下ならばＳ６へ進み、出力範囲の最大の大きさよりも大きいのならばＳ１０へ進み、そのカレント要素を分割して出力する。
【００９７】
なお、Ｓ５からＳ１１へ進むようにして、出力範囲の最大の大きさよりも大きいカレント要素の出力をスキップし、表示できないようにしてもよい。
【００９８】
次に、Ｓ６では、カレント要素の範囲が出力範囲の完全に外かどうかを、判定し、完全に外の場合にはＳ１１へ進み、完全に外で無い場合、すなわちカレント要素が出力範囲の境界を含む（出力範囲の境界によって分割される）か、あるいはカレント要素が出力範囲の中に完全に含まれる場合にはＳ７へ進む。但し、Ｓ５とＳ６とは、処理の順番を入れ替えてもよい。
【００９９】
なお、この判定方法では、カレント要素が一部でも出力範囲の境界を含んでいたら出力範囲にかかっているとしたが、例えば１ドットだけ出力範囲の外に出ているとか、１％だけ外に出ている場合など、出力範囲を変更する処理をわざわざ行なわなくてもよいケース、言い換えれば、実質的に出力範囲の境界を含んでいないとみなせるケースも考えられる。
【０１００】
そこで、Ｓ６で、カレント要素の範囲が出力範囲の完全に外かどうかを判定する代わりに、またはＳ５でカレント要素の大きさが出力範囲の大きさより大きいと判断した場合に、出力範囲の境界によって出力範囲外に分割される表示対象要素の大きさが、基準の大きさ以上、あるいは表示対象要素の大きさに対して基準の割合以上になるか否かを判断してもよい。
【０１０１】
これにより、カレント要素が出力範囲の境界を含む場合でも、あるいはカレント要素の大きさが出力範囲の大きさより大きい場合でも、基準量以上分割されなければ、すなわち、分割の影響が小さい場合には、出力範囲の変更処理をスキップすることもできるし、基準の設定の仕方によって、表示対象要素が僅かでも出力範囲の境界を含む場合には、出力範囲の変更処理を行うようにすることもできる。
【０１０２】
このように、Ｓ５およびＳ６の処理は、出力範囲の境界によって出力範囲外に分割される表示対象要素の大きさが、所定の大きさ以上、あるいは表示対象要素の大きさに対して所定の割合以上になる場合には、該境界を含まないように出力範囲の情報を変更できるか否かを判断する出力範囲変更判断ステップに相当している。
【０１０３】
ところで、カレント要素の範囲が出力範囲の完全に外かどうかの判定は、カレント要素の一部でも出力範囲に含まれているかどうかで判定する。例えば出力範囲の形状が矩形の場合、位置（Ｘ２、Ｙ２）、大きさ（Ｗ２×Ｈ２）の要素があり、出力範囲の位置が（Ｘ１、Ｙ１）、大きさ（Ｗ１×Ｈ１）であったとする。このとき、Ｘ２＋Ｗ２＜Ｘ１、あるいはＸ１＋Ｗ１＜Ｘ２、あるいはＹ２＋Ｈ２＜Ｙ１、あるいはＹ１＋Ｈ１＜Ｙ２のいずれかを満たしている時、完全に外であると判定する。図２の例では、出力範囲６に対して要素２、３は完全に外であり、要素５は出力範囲６の内部、要素４は完全に外ではない。
【０１０４】
また、出力範囲の境界によって出力範囲外に分割されるカレント要素の大きさが、所定の大きさ以上、あるいはカレント要素の大きさに対して所定の割合以上になるか否かの判定は、カレント要素の出力範囲外に分割される面積、またはカレント要素の出力範囲外に分割される面積のカレント要素の面積に対する割合を閾値と比較して行えばよい。
【０１０５】
例えば、境界に一部がかかっている大きさ（Ｗ２×Ｈ２）のカレント要素において、境界内部に含まれる要素の大きさが（Ｗｉ×Ｈｉ）だとする。境界の外に出ている面積が閾値Ｔ１以上の場合、すなわちＴ１＜Ｗ２×Ｈ２−Ｗｉ×Ｈｉの場合、出力範囲の境界を含んでいると判定すればよい。
【０１０６】
あるいは割合を閾値として、境界の外に出ている面積の割合が閾値Ｔ２以上の場合、すなわちＴ２＜１−（Ｗｉ×Ｈｉ）／（Ｗ２×Ｈ２）の場合、カレント要素が出力範囲の境界を含んでいると判定すればよい。
【０１０７】
Ｓ７では、カレント要素が分割禁止かどうかを判断し、分割禁止の場合にはＳ８へ進み、分割禁止でない場合にはＳ１０へ進む。分割禁止かどうかは、例えば、分割して表示して欲しくないような要素があるならばコンテンツデータ（レイアウトデータを作成した元のデータ）側で分割禁止の属性を持たせるように指定する場合などが考えられる。
【０１０８】
図７に示すレイアウトデータで「分割」の列は、元のデータ側で指定された分割禁止の属性に基づいて設定された分割の可否を示している。「ＯＫ」は分割可能、「ＮＧ」は分割禁止を意味する。文字要素（ＣＨＡＲ）と線分要素（ＬＩＮＥ）は分割可能、画像要素（ＩＭＡＧＥ）は分割禁止とした場合、図７のように分割データ６０、６１、６３はＯＫ、分割データ６２はＮＧとなっている。
【０１０９】
なお、この例では要素の種類によって分けているが、種類に関わらず個別要素に対して、分割の可否を指定してもよい。あるいは出力範囲の大きさに応じて一括分割禁止にしたり、ユーザが見易いと思うように出力範囲の大きさに応じて分割禁止を設定する場合も考えられる。
【０１１０】
Ｓ８では、カレント要素の範囲が出力範囲の境界を含んでいるかどうかを判定し、含んでいる場合は連結点Ｐ１を経由してＳ９へ進み、含んでいない場合はＳ１０へ進む。
【０１１１】
含んでいるかどうかは、カレント要素が全て出力範囲に含まれているかどうかで判定できる。例えば位置（Ｘ２、Ｙ２）、大きさ（Ｗ２×Ｈ２）の要素があり、出力範囲の位置が（Ｘ１、Ｙ１）、大きさ（Ｗ１×Ｈ１）であったとする。このとき、（条件１）Ｘ２＜Ｘ１、かつＸ１＋Ｗ１＜Ｘ２、（条件２）Ｙ２＜Ｙ１、かつＹ１＋Ｈ１＜Ｙ２、の（条件１）、（条件２）をいずれも満たしている場合、含んでいないと判定する。図２の要素４は境界を含んでいて、要素５は境界を含んでいない。
【０１１２】
Ｓ９では、Ｓ５およびＳ６で、出力範囲の変更が可能と判断され、Ｓ７で分割禁止と判断された出力範囲の境界を含むカレント要素について、出力範囲の変更処理を行う。
【０１１３】
その後、連結点Ｐ２を経てＳ３へ進む。出力範囲を変更したので、最初の要素からまたやり直しとなる。処理の詳細は、後で述べる。
【０１１４】
なお、出力範囲の変更の仕方によっては、必ずしも最初からやり直さなくても良い場合もある。変更前の出力範囲と変更後の出力範囲でだぶっている部分で、どちらも出力範囲境界にかかっていない要素は、その要素を出力するかどうかの判断は変わらないはずなので、それらの処理については変更前の処理結果を再利用することで、処理を省くことが可能である。
【０１１５】
Ｓ１０では、カレント要素の出力表現形式を出力先に出力して、Ｓ１１へ進む。出力表現形式は動作環境、出力先、要素の種類などによって異なる。例えば文字要素ならば文字の輪郭データを出力したり、文字のビットマップデータを別途得て、ビットマップとして出力したりする。それらの出力データは要素のレイアウト位置に出力される。
【０１１６】
例えば印刷の場合は、印刷用紙の対応する位置に文字が印刷されることになる。グラフィックシステムを持ったシステムならば、ＶＲＡＭ（Ｖｉｄｅｏ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）上に画素データとして書き込まれ、モニターに表示されることになる。ＰＤＦならば、対応する位置に文字を配置するデータをＰＤＦファイルに書き込むことになる。
【０１１７】
なお、カレント要素の出力表現形式を出力先に直接、出力すると、Ｓ９で出力範囲を変更した結果、Ｓ３に戻って処理を再度実行する際に、Ｓ１０で既に出力してしまった要素の扱いが問題となる。モニター表示やＰＤＦなどへのデータ出力ならば、そのデータを再表示したり破棄するだけで済むが、印刷などの場合はＳ１０の処理に従って出力範囲の一部が先に印刷された紙を破棄しなければいけない。用途によっては破棄できない場合もあるかもしれないし、モニター等における再表示にしても、表示が無用にちらついてしまう問題もある。
【０１１８】
これらの問題を防ぐ為に、出力先に直接出力せず、出力バッファに一旦出力し、Ｓ４で最後の要素まで処理が済んだ後に、すなわち出力範囲に含まれる要素の出力の仕方が確定した後に、出力バッファ中の出力表現形式のデータを出力先に出力するようにする方法が考えられる。この場合、Ｓ１０での処理を「出力バッファへ出力」に変更し、Ｓ４での判断がＹＥＳの場合に、「出力バッファから出力先に出力」するステップを追加すればよい。
【０１１９】
Ｓ１１では、カレント要素の次の要素を得て、カレント要素として設定して、Ｓ４へ進む。次の要素に進めることは、カレントインデックス番号ｃｉを１増やすことに当たる。
【０１２０】
図１のＳ９の処理、すなわち出力範囲の変更の仕方はいくつか考えられる。
【０１２１】
図４は図２の出力範囲の大きさはそのままで、位置を変更した例である。すなわち、出力範囲６の位置を上にずらす演算処理によって、要素４を含まないような出力範囲７に自動変更している。これによって、出力範囲６で分割されるところであった要素４が、変更処理によって新たに生成された出力範囲７で分割されなくなる効果が出てくる。
【０１２２】
また、この変更処理によって、分割出力を禁止したい要素４の直前までの要素を全て表示した後で、前の出力範囲に隣接する次の出力範囲を出力したとすると、要素４が分割されずに一度に表示され、要素４の全体を一度に表示する効果や、要素４の表示にインパクトを持たせる効果を得ることができる。
【０１２３】
図２、図４で示されるように、出力範囲６の内部に分割される要素４の高さをＨ３とすれば、上にずらす量が最も少ない出力範囲７の位置は、（０、Ｙ１−Ｈ３）と求められる。
【０１２４】
上からページをスクロールして見ている時に、分割して表示して欲しくない要素４がある場合、その手前でスクロール範囲（出力範囲）が設定されるので、前回の出力範囲と重複する部分が多くなってしまうが、出力内容が飛ぶ部分はなくなり、要素４が分割して表示されることが無くなるという効果がある。
【０１２５】
図８は、図１のＳ９の処理の一方法を説明するフローチャート図であり、図４に示す出力範囲の変更処理に対応している。
【０１２６】
まず、連結点Ｐ１から続くＳ５０で、分割される要素４の出力範囲６内の高さを得て、Ｓ５１へ進む。図４では、その高さはＨ３である。
【０１２７】
Ｓ５１では、Ｓ５０で得られた値Ｈ３だけ出力範囲６の位置を上にずらし、連結点Ｐ２へ抜ける。図３ではＨ３だけ上にずらすので、位置は（０、Ｙ１−Ｈ３）となる。なお、ここではＸ軸を０に固定してＹ軸だけを扱っているが、Ｘ軸とＹ軸と両方処理する場合でも、それぞれ同様の処理を行なえばよい。以降の例でも同様である。
【０１２８】
図５は、別の変更例である。出力範囲６を下にずらす演算処理によって、要素４を含まないような出力範囲８に自動変更している。下にずらす量を最も少なくした場合は、出力範囲８の位置は、（０、Ｙ１＋Ｈ１＋Ｈ４−Ｈ３）と求められる。なお、出力範囲８では、文字要素は出力範囲８の境界にかかっているが、ここでは図７のように画像要素を分割不可、文字要素を分割可能としているためである。
【０１２９】
図９は、図１のＳ９の処理の他の方法を説明するフローチャート図であり、図５に示す出力範囲の変更処理に対応している。
【０１３０】
まず、連結点Ｐ１から続くＳ６０で、出力範囲６の大きさ（高さ）を得てＳ６１へ進む。図５では、その高さはＨ１である。Ｓ６１では、分割される要素４の出力範囲６の外の高さを得て、Ｓ６２へ進む。図５では、出力範囲６の外の高さは（Ｈ４−Ｈ３）である。
【０１３１】
Ｓ６２では、Ｓ６０で得られた値とＳ６１で得られた値を足しただけ出力範囲６の位置を下にずらす演算を行い、連結点Ｐ２へ抜ける。図５ではＨ１＋Ｈ４−Ｈ３だけ下にずらすので、位置は（０、Ｙ１＋Ｈ１＋Ｈ４−Ｈ３）と求められる。
【０１３２】
図１０は、さらに別の変更例である。出力範囲６を下にずらす演算処理によって、要素４を全て含むような出力範囲１０に自動変更している。下にずらす量が最も少なくなる出力範囲１０の位置は、（０、Ｙ１＋Ｈ４−Ｈ３）と求められる。
【０１３３】
図１１は、図１のＳ９の処理のさらに他の方法を説明するフローチャート図であり、図１０に示す出力範囲の変更処理に対応している。
【０１３４】
連結点Ｐ１から続くＳ７０で、分割される要素４の出力範囲６の外の高さを得て、Ｓ７１へ進む。図１０では、その高さはＨ４−Ｈ３である。Ｓ７１では、Ｓ７０で得られた値だけ出力範囲６の位置を下にずらし、連結点Ｐ２へ抜ける。図１０ではＨ４−Ｈ３だけ下にずらすので、位置は（０、Ｙ１＋Ｈ４−Ｈ３）となる。
【０１３５】
次に、図６は、図２の出力範囲６の位置は（０、Ｙ１）そのままで、大きさを変更した例である。すなわち、出力範囲６の大きさを、出力範囲６外にはみ出した要素４の高さだけ下に拡張する演算処理によって、要素４を全て含むような出力範囲９に自動変更している。これにより、出力範囲９の大きさは、（Ｗ１×（Ｈ１＋Ｈ４−Ｈ３））と求められる。
【０１３６】
これによって、出力範囲６で分割されるところだった要素４が出力範囲９で分割されなくなる効果が出てくる。さらに、上もしくは下からページをスクロールしてみている時に、分割して表示して欲しくない要素４がある場合、出力範囲自体が自動的に拡張されて要素４を全て含むようになり、出力範囲９の位置（０、Ｙ１）は出力範囲６と変わらないので、出力内容が飛ぶ部分が無く、かつ、要素４が分割して表示されることが無くなるという効果がある。
【０１３７】
先に出力範囲の説明で述べた通り、ウィンドウシステムや印刷用紙のサイズ変更など出力範囲が自由に変更できる場合には、このように出力範囲自体を変更することで、要素４を分割しないようにすることができる。
【０１３８】
なお、図４、図５の場合と異なり、図６で、上からスクロールしている場合には、出力範囲の変更処理によって、より先の内容を自動的に見ることができる。
【０１３９】
なお、図１のフローでは、Ｓ５で表示対象要素が最大の出力範囲より大きい場合はＳ１０へ進み、その要素を分割して出力するようにしているが、Ｓ５で最大の出力範囲とカレント要素の大きさとを比較するのではなく、Ｓ１で取得した出力範囲をそのままでカレント要素の大きさと比較する場合には、Ｓ５からＳ９へ進むようにして、Ｓ１で取得した出力範囲の大きさをＳ９で変えるようにしてもよい。
【０１４０】
その際は、Ｓ５とＳ６の処理順を入れ替え、Ｓ４からＳ６に向かい、完全に出力範囲外とは判断されなかった場合にＳ５へ進むようにする必要がある。また、Ｓ９で、カレント要素が分割されないようにＳ１で取得した出力範囲の大きさを変更できない場合には、Ｓ１０へ進み、カレント要素を分割して出力してもよいし、Ｓ９からＳ１１へ進み、出力範囲より大きなカレント要素の出力をスキップするようにしてもよい。
【０１４１】
ところで、図６の出力範囲９のように出力範囲を大きくするだけでなく、逆に小さくする方法も可能である。図６の出力範囲６５は、要素４が出力範囲６内に分割される高さだけ出力範囲６を小さくした例である。これにより、出力範囲６５の大きさは、（Ｗ１×（Ｈ１−Ｈ３））と求められる。
【０１４２】
図１２は、本発明の実施の一形態に係り、上述した出力処理方法を実施する出力処理装置を示す構成図である。
【０１４３】
すなわち、出力処理装置の要部を、出力範囲取得手段５１、出力範囲変更手段５２、レイアウト取得手段５３、出力手段５４、および出力範囲変更判断手段５５の主要な機能ブロックに展開して示すことができる。
【０１４４】
また、これら各手段５１〜５５間のデータの授受の観点では、出力範囲変更手段５２は、図１のＳ１に従って、出力範囲取得手段５１から、レイアウトを切り出す出力範囲のデータを得、Ｓ２に従って、レイアウト取得手段５３から図７に示すようなレイアウトデータを得る。続いて、出力範囲変更判断手段５５は、Ｓ５、Ｓ６に従って、レイアウトデータに含まれる要素の大きさと出力範囲の大きさとを比べ、要素の大きさが出力範囲の大きさより大きい場合に、出力範囲の大きさを変更できるか否か判断する。
【０１４５】
そして、出力範囲変更手段５２は、Ｓ７、Ｓ８に従って、要素が出力範囲の境界を基準以上含むと判断した場合に、Ｓ９に従って、出力範囲の境界を要素が含まなくなるように、出力範囲の大きさおよび位置の少なくとも一方を変更する。この出力範囲の変更処理によって、出力範囲の境界を含まなくなった要素のレイアウトデータが、Ｓ８およびＳ１０に従って、出力範囲変更手段５２から出力手段５４に送られ、出力手段５４から出力される。
【０１４６】
出力範囲変更手段５２での具体的な変更処理方法は、図８、９、１１のフローチャートで説明した処理方法と同じでよい。
【０１４７】
図１３は、図１２の各手段５１〜５５を具体的に実現する装置の構成例である。
【０１４８】
ＣＰＵ（central processing unit）７０は、上記出力範囲取得手段５１、出力範囲変更手段５２、レイアウト取得手段５３、出力手段５４、および出力範囲変更判断手段５５として機能し、これら各手段５１〜５５による処理手順が記述されたプログラムを主記憶７４、外部記憶７５、ネットワーク７７などから得る。また、ＣＰＵ７０は、ＣＰＵ７０を含めてバス７８を通じ相互に接続されたグラフィックデバイス７１、マウス７２、キーボード７３、主記憶７４、外部記憶７５、プリンタ７６、ネットワーク７７とデータのやりとりを行ないながら、既に説明した各処理を行なう。
【０１４９】
なお、データのやりとりをバス７８を介して行う場合に限らず、データを送受信できるものならば、通信ケーブルや無線通信装置などを介してもよい。また、各手段５１〜５５の実現手段としては、ＣＰＵに限らず、ＤＳＰ(digital signal processor)や処理手順が回路として組み込まれているロジック回路などを用いることもできる。
【０１５０】
主記憶７４は、通常はＤＲＡＭ（dynamic random access memory）やフラッシュメモリなどのメモリデバイスで構成される。外部記憶７５は、ＨＤＤ（hard disk drive）やＰＣ（personal computer) カードなどの装脱着可能な記憶手段である。あるいはＣＰＵ７０とネットワーク７７を介して有線または無線で接続された他のネットワーク機器に取り付けられた主記憶や外部記憶を外部記憶７５として用いることもできる。
【０１５１】
ユーザの操作を入力する手段として、マウス７２やキーボード７３などがある。この他にもボタンやタッチパネル、マイクによる音声入力など、様々な手段が使用可能である。
【０１５２】
グラフィックデバイス７１は、通常はグラフィックカードなどによって実現され、ＶＲＡＭ（video random access memory）を有し、ＶＲＡＭ上のデータを表示信号に変換して、グラフィックデバイス７１に接続されたモニタ７９に送り、モニタ７９は表示信号を画像として表示する。
【０１５３】
プリンタ７６は、バス７８を介して得た印刷データを用紙に印刷する。ネットワーク７７は、ネットワークカードなどにより実現され、無線や有線などにより接続された他のネットワーク機器とデータをやりとりする。
【０１５４】
図１２の出力範囲取得手段５１としてのＣＰＵ７０は、出力範囲のデータを主記憶７４、外部記憶７５、ネットワーク７７などから読み取られるプログラムから得たり、ユーザの操作によりマウス７２、キーボード７３から入力されたデータとして得たり、グラフィックデバイス７１、主記憶７４、外部記憶７５、プリンタ７６、ネットワーク７７からデータとして得たりする。
【０１５５】
例えばモニタ７９上に表示されているウィンドウのサイズを出力範囲とするならば、ＣＰＵ７０は、主記憶７４上のウィンドウサイズデータを参照したり、ウィンドウサイズ取得ＡＰＩを呼び出すなどして出力範囲のデータを得る。また印刷ならば、プリンタ７６、あるいは用紙設定が記録された主記憶７４や外部記憶７５上の用紙設定データをＣＰＵ７０が参照したり、用紙サイズ取得ＡＰＩを呼び出すなどして用紙サイズを得ればよい。
【０１５６】
出力範囲取得手段５１の処理は、図１のフローチャートではＳ１に相当する。
【０１５７】
レイアウト取得手段５３としてのＣＰＵ７０は、主記憶７４、外部記憶７５、ネットワーク７７などからレイアウトデータを得る。レイアウトデータは、ＷＷＷブラウザのレイアウト処理など他のプログラムなどによって既に作成されているとする。レイアウトデータの形式としては先に説明した図７のような構造が考えられる。レイアウト処理と本発明の出力処理とを逐次的に行なうことももちろん可能である。レイアウト取得手段５３の処理は、図１のフローチャートではＳ２に相当する。
【０１５８】
出力範囲変更判断手段５５としてのＣＰＵ７０による処理は、主記憶７４、外部記憶７５、ネットワーク７７などから出力処理プログラムを読み込み、出力範囲取得手段５１から得た出力範囲とレイアウト取得手段５３から得たレイアウトデータとから、出力処理プログラムに従い処理し、出力範囲変更手段５２に判断を出力することで行なわれる。出力処理プログラムの中身は、フローチャートなどを元に説明してきた処理になる。
【０１５９】
出力範囲変更判断手段５５は、図１のフローチャートでは主にＳ５、Ｓ６に相当する。
【０１６０】
出力範囲変更手段５２としてのＣＰＵ７０による処理は、主記憶７４、外部記憶７５、ネットワーク７７などから出力処理プログラムを読み込み、レイアウト取得手段５３から得たレイアウトデータを出力処理プログラムに従い処理し、必要に応じて変更した出力範囲に含まれる要素のレイアウトデータを出力手段５４に出力することで行なわれる。出力処理プログラムの中身は、フローチャートなどを元に説明してきた処理になる。
【０１６１】
なお、ＣＰＵやＤＳＰは処理手順をプログラムとして読み込むが、ロジック回路などのように処理手順が回路として組み込まれている場合はプログラムを読み込む必要はなくなる。
【０１６２】
出力範囲変更手段５２は、図１のフローチャートでは主にＳ７、Ｓ８、Ｓ９とループ処理のＳ３、Ｓ４、Ｓ１１などに相当する。
【０１６３】
出力手段５４は、変更された出力範囲内部にレイアウトされた要素の出力表現形式を出力先（グラフィックデバイス７１およびモニタ７９、またはプリンタ７６等）に出力する。出力表現形式は図１のＳ１０で説明したように、例えばモニタ７９に表示する場合、グラフィックデバイス７１のＶＲＡＭ上に画素データとして書き込まれ、モニタ７９に表示される。一方、例えば印刷の場合には、プリンタ７６に印刷データとして送られ、プリンタ７６が印刷データを解釈して、用紙に印刷する。ＰＤＦならば、対応する位置に文字を配置するデータをＰＤＦデータとして書き込み、主記憶７４や外部記憶７５、ネットワーク７７などを通じて記録される。
【０１６４】
出力手段５４の処理は、図１のフローチャートでは主にＳ１０とループ処理のＳ３、Ｓ４、Ｓ１１などに相当する。
【０１６５】
図１４は、出力処理装置の外観例を示している。本体２０上に表示部２１、スクロールボタン２２、２３がある。表示部２１は出力先の装置に相当し、また表示部２１の大きさが出力範囲（表示可能領域）の大きさとなる。スクロールボタン２２、２３はユーザ操作入力として、図１３のマウス７２やキーボード７３などに相当する。
【０１６６】
上スクロール用のスクロールボタン２２を押すことによって、現在の出力範囲の上の部分の出力範囲を得、下スクロール用のスクロールボタン２３を押すことによって、現在の出力範囲の下の部分の出力範囲を得る。これらのいわゆるページめくりやスクロール操作を行なって得られた新たな出力範囲は、図１２の出力範囲取得手段５１に渡されることになる。
【０１６７】
図１５はウィンドウシステム上での表示画面例を示している。ウィンドウ２４上に表示部２５、スクロールバー２６、スクロールバー２６上に全レイアウト中での表示範囲を示すスクロール範囲ボタン２７がある。ウィンドウ２４は出力先の表示領域に相当し、ウィンドウ２４の大きさが出力範囲の大きさとなる。スクロールバー２６、スクロール範囲ボタン２７はユーザ操作入力として、図１３のマウス７２やキーボード７３などに相当する。スクロール範囲ボタン２７を上下に移動させることで、上下の出力範囲を得る。
【０１６８】
ここで、図１６は、スクロール操作と出力処理とを連動させた場合について説明する図である。最初に出力範囲１２が位置（０、Ｙ１−Ｈ１）、大きさ（Ｗ１×Ｈ１）であったとする。この時、出力範囲１２で出力された結果が、図１７である。
【０１６９】
次に、ユーザがスクロールボタン２３を押すなどして、出力範囲１２の下に隣接する部分のレイアウトの出力を要求したとする。単純な処理では、Ｈ１だけ下の位置（０、Ｙ１）の出力範囲６を得る（図１６では点線で示している）。
【０１７０】
図１８は、本発明の手法を使わずに、図１６の出力範囲６を出力したものである。図１８の画像３０は、図２の要素４が分割されて出力されたものである。このように何も処理せずにそのまま出力してしまうと、要素４が分割して出力されてしまう。
【０１７１】
そこで要素４が分割されないように、出力範囲６の位置を変更して、位置（０、Ｙ１−Ｈ３）の出力範囲７を得る。この時の出力範囲７で出力されたものが図１９である。ここでは要素４が含まれないので、当然、要素４は分割して出力されてはいない。また、出力範囲７と出力範囲１２とは、高さＨ３の部分が重複しているので、内容的に飛ぶことも無い。図１７と図１９を比べると、「Ｄ」や「Ｅ」の行の辺りが重複しているのが分かる。
【０１７２】
なお、要素４が分割されないように要素４をぎりぎり含むような位置（０、Ｙ１＋Ｈ４−Ｈ３−Ｈ１）の出力範囲１０（図１０参照）を得るように出力範囲１２を下方にずらした場合、出力範囲１２と出力範囲１０との間にＨ４−Ｈ３の空きができてしまい、内容的に飛んでしまう問題があるので、下にスクロールする場合には、出力範囲７のように一部を重複させる範囲にすることが好ましい。
【０１７３】
続いて図１６の出力範囲７が出力された後に、再びユーザが下スクロールボタンを押すなどして、出力範囲７の下に隣接する部分のレイアウトの出力を要求したとする。次は単純にＨ１だけ下の位置（０、Ｙ１−Ｈ３＋Ｈ１）の出力範囲３２とすればよい。この時、出力範囲３２で出力されたものが図２０である。要素４が全て出力範囲３２に含まれるので分割されることもなく、また出力範囲７と隣接しているので、内容が飛んでしまうことも無い。下から上にスクロールする場合も考え方は同様である。
【０１７４】
なお、ここでは、全要素をレイアウト後、すなわち全要素のレイアウトデータを取得した後に、出力範囲を変更するようにしているが、必要と思われる範囲だけのレイアウトデータを取得する毎に出力範囲を変更したり、各要素をレイアウトしながら図１のフロー処理を行なっても同様である。
【０１７５】
なお、Ｓ８で、要素の大きさが出力範囲の大きさより大きい場合は問題となる。出力範囲の大きさをその要素を全て含むように変更できる時はよいが、全て含むように変更できない時は、その要素を含んだ出力範囲を出力できなくなってしまう。その場合、要素が出力範囲の境界を含んでいないと判断して、分割出力した方がよい場合がある。また、前述したように、出力範囲の大きさより大きい要素が出力範囲の境界を含んでいると判断した上で、分割禁止か否かを確認し、分割禁止でなければ、そのまま分割された要素を出力してもよい。
【０１７６】
〔実施形態２〕
以下、本発明の他の実施形態を図面を参照して説明する。用語などは、特に説明がない限り、実施形態１と同じ定義とする。
【０１７７】
図２１は、本実施の形態に係る出力処理方法を示すフローチャート図である。図１と同じ記号の処理ステップは同じ処理内容であることを示しており、その重複する説明を省略する。図２１のフローは図１のフローとほぼ同様だが、Ｓ９の出力範囲変更処理に代えて、Ｓ３０で置換出力の処理を行い、Ｓ１１に進む点で異なっている。Ｓ３０では、カレント要素の出力表現形式を他の出力に置き換えて、出力先に出力して、Ｓ１１へ進む。
【０１７８】
図２２は、Ｓ３０で、出力範囲６内に分割されたカレント要素の部分について、その出力表現形式を他の出力に置き換えた一例である。この例では、要素４が分割出力された図１８の要素３０を、要素３０の存在を示す単なる枠線／輪郭線で表示している。
【０１７９】
これによって、ユーザには、この枠線／輪郭線内に何か要素出力があるが、分割表示を避けるために代替表示させていることが分かる。なお、枠線を図２３のように点線にすると、ユーザに代替表示させていることが伝わり易くなる効果が出てくる。
【０１８０】
要素の本来の表示出力を見たい場合は、スクロールさせるなどして、画面に収まりきるような出力範囲を指定してやればよい。
【０１８１】
図２４は、図２２と図２３とを混合したもので、要素が下方で分割されて続いていることを下方の点線でユーザに視覚的に示している。
【０１８２】
図２７は、同様に、要素が上下右に分割されている場合に、要素が上方、下方、右方で分割されて続いていることを上方、下方、右方を指す矢印でユーザに視覚的に示している。
【０１８３】
図２６は、本来の要素出力を見にくくなるように出力した例である。見にくくなるような出力形式としては、例えば、コントラストを落す、輝度／濃度を落す、白点や黒点を一部にまぜる（例えば１ドット置きなど）、これらの組合せなどが考えられる。
【０１８４】
図２５は、下向きの矢印と下方で分割されて表示されていない部分の割合を数字で示している。この場合、要素の８０％が出力表示されていて、残り２０％が表示されていないことを示している。また、その上の部分は要素の本来の出力を分割して表示するようにしてもよいし、他の出力で置換するようにしてもよい。図では分かり易いように出力範囲の外にはみでて表示されていない要素の２０％の部分を仮想的に点線で示してあるが、これは実際には出力されない。
【０１８５】
これらの矢印や割合表示によって、要素のどの程度が分割されて表示されていないかがユーザにひと目で分かり易くなり、どのくらいスクロールしたらよいかなどの情報を得ることができる。また、割合と共に要素の本来の出力を分割して表示するようにすれば、分割して出力されている部分から全体像を類推したり、分割して出力されている部分の内容を類推したりする補助となる効果が得られる。
【０１８６】
図２７は、同様に、上下右に分割されている場合に、要素が上方、下方、右方で分割されて続いていることを示す上方、下方、右方の前記矢印を表示するのに加えて、要素の未表示部分の割合を表示することで、未表示部分に関する詳細情報を表示するための操作をユーザに課すことなく、その詳細情報をユーザに視覚的に示している。図２５と同様、分割されて出力されていない部分を出力範囲の外に仮想的な点線で示してある。また、それ以外の部分は要素の本来の出力が分割されて表示されている。
【０１８７】
実施形態１のＳ８の補足説明でも説明したように、出力範囲より大きい要素が存在する場合、分割して出力せざるを得ないことはある。出力範囲に収まりきるように縮小表示を代替表示させる方法もあるが、詳細を見たい時は、結局、出力範囲より大きな要素表示をスクロールして見ざるを得ない。この時、図２２、図２３、図２４、図２５のように、要素が分割された出力を全く表示しない場合は、出力範囲より大きい要素が存在する時に、要素を全く表示することができないので問題となる。しかし、図２７のように、分割された出力を一部でもよいから、未表示部分の有無および割合に関する詳細情報と一緒に表示するようにしておけば、必要に応じてスクロールさせるなどして要素の出力の全てを得ることができる。
【０１８８】
出力範囲より小さな要素の場合は、スクロール位置などを調整することで要素全体を出力させることができるので、その場合は図２２、図２３、図２４、図２５のように、要素が分割された出力を全く表示しないようにするなど、適宜組み合わせて使うこともできる。
【０１８９】
図２８は、本実施形態に係る出力処理装置の構成を示す機能ブロック図である。実施形態１における図１２の出力処理装置の構成と比較すると、出力範囲変更判断手段５５が無くなり、出力範囲変更手段５２が出力変換手段５６に置き換わっている点が相違している。その他の各手段５１、５３、５４については既に説明した通りである。
【０１９０】
出力範囲取得手段５１から出力範囲を得て、レイアウト取得手段５３からレイアウトデータを得、レイアウトされた要素が出力範囲の境界を含む場合は、出力変換手段５６でその要素の出力を他の出力に置き換えて出力し、それ以外の出力範囲に含まれる要素はその要素の出力表現形式を、出力手段５４に出力する。出力変換手段５６での処理方法は、図２１のフローチャートで説明した処理方法と同じでよい。なお、出力変換手段５６の機能は前記ＣＰＵ７０が担うことになる。また、出力変換手段５６は、図２１のフローチャートでは、Ｓ３０に相当する。
【０１９１】
また、実施形態１、２の方法を組み合わせて使用することもできる。例えば、出力範囲より大きい要素が存在する時に、未表示部分の割合が最も小さくなるように、出力範囲の位置および／または大きさを変更し、併せて、未表示部分の存在する方向を示す前記矢印や、未表示部分の割合を示す前記数字を表示するようにしてもよい。
【０１９２】
この他、例えば分割して出力したくない複数の要素がレイアウト上で接近していて、出力先の表示可能領域が、その全てを分割せずに表示するだけの大きさを持たない場合に、その複数の要素の内、前回の出力範囲に最も近い要素を優先的に表示するように、出力範囲の位置および／または大きさを変更し、それによって分割されてしまう他の要素については、実施形態２のように、他の出力に置き換えるようにしてもよい。
【０１９３】
さらに、分割して出力したくない要素について、実施形態１のように出力範囲の変更処理を実行するか、実施形態２のように出力範囲の置換出力処理を実行するかを、ユーザが選択して設定できるようにしてもよい。また、文字要素、画像要素等の要素の種類に応じて、出力範囲の変更処理と置換出力処理とを適宜設定し分けるようにすることもできる。
【０１９４】
なお、今までの説明では、すべてのレイアウトを行なった後に出力処理を行なっている例で説明したが、もちろん、レイアウトしながら出力処理を逐次的に行なってもよい。
【０１９５】
また、ここでは２次元平面上に平面要素をレイアウトする例で説明しているが、３次元空間上に３次元要素をレイアウトする場合でも同様の処理方法が適用可能である。
【０１９６】
【発明の効果】
本発明に係る出力処理方法は、以上のように、座標空間に表示対象要素を配置したレイアウトの出力処理方法において、レイアウトの少なくとも一部を切り出す出力範囲の情報を得る出力範囲取得ステップと、上記切り出す出力範囲の境界によって出力範囲外に分割される表示対象要素の大きさが、基準の大きさ以上、あるいは表示対象要素の大きさに対して基準の割合以上になる場合には、該境界を含まないように出力範囲の情報を変更できるか否かを判断する出力範囲変更判断ステップと、変更できると判断した場合に、出力範囲の情報を自動変更する出力範囲変更ステップと、を有することを特徴とする。
【０１９７】
これによって、表示対象要素の出力が、出力範囲の境界で所定の割合あるいは所定の大きさ以上に分割された未表示部分を持つことがなくなり、縮小表示などせずに詳細に表示対象要素全体を一覧できる出力を作成できる効果が出てくる。
【０１９８】
また、スクロール操作などの余計な操作をユーザが行わなくても、表示対象要素全体を一覧できるような出力を自動的に作成できる効果が出てくる。
【０１９９】
同様に、スクロール操作ができないような出力形式においても、表示対象要素が分割されて出力されることがなくなるという効果が出てくる。例えば、スクロール操作ができないような出力形式として印刷の例でいえば、表示対象要素が複数のページに分かれて印刷されることがなく、印刷する用紙を大きくしたり、２枚のページにまたがる表示対象要素をどちらかのページにまとめて表示したりすることができる。
【０２００】
また、ユーザあるいはコンテンツ作成者が、表示対象要素を分割して出力したくないという要望を満たすことができる効果が出てくる。例えば、表示対象要素の一部が見えてしまうことによって、その表示対象要素を見ることの面白さが半減したり、インパクトが薄れるといった問題を回避することができる。
【０２０１】
本発明に係る出力処理方法は、以上のように、前記出力範囲変更ステップにおいて、出力範囲の大きさを変更することを特徴とする。
【０２０２】
上記の構成により、分割された未表示部分を持つことがなくなる効果に加えて（以降に説明するそれぞれの手法でも同様なので、この効果に関しては以下の個々の方法で説明することは省く）、表示対象要素の大きさが出力範囲の大きさより大きい場合は、出力範囲の位置をどんなに変えてもその表示対象要素は分割して出力されてしまうが、出力範囲の大きさ自体を変えることで、たとえ表示対象要素の大きさが出力範囲よりも大きい場合でも表示対象要素全体を出力させることができる効果が出てくる。例えば、ウィンドウシステムならば表示するウィンドウの大きさを変えたり、印刷ならば印刷する用紙の大きさを変えたりすることに相当する。
【０２０３】
本発明に係る出力処理方法は、以上のように、前記出力範囲変更ステップにおいて、レイアウトの枠組みにおける出力範囲の位置を変更することを特徴とする。
【０２０４】
これにより、出力範囲で分割されてしまう要素を避けるように出力範囲の位置をずらすことで、出力範囲の大きさが固定であっても、要素が分割して出力されてしまうような出力を抑制することができる効果が出てくる。
【０２０５】
一般に出力範囲の大きさは固定となっていることが多いので、先に説明した出力範囲の大きさを変更する方法を取れないことが多い。そこで、出力範囲の大きさは変えず、位置を変えることで表示対象要素の分割を避けることができれば、同様の効果が得られる。
【０２０６】
出力範囲の位置を変えるとは、例えば、ＷＷＷブラウザのようにスクロール操作で閲覧するような場合は、画像などの要素が分割されないようなスクロール位置にしたり、印刷ならば分割されてしまう要素をどちらかの用紙にまとめてしまうことに相当する。
【０２０７】
本発明に係る出力処理方法は、以上のように、前記出力範囲取得ステップにおいて、既に取得済みの出力範囲と隣接するもしくは一部重なる出力範囲を得ることを特徴とする。
【０２０８】
これによって、出力処理結果をできるだけ連続して見ることができ、内容的に途切れることなく理解することができる可能性が高まるという効果が出てくる。例えば、ＷＷＷブラウザなどスクロールして閲覧するような場合は、上下にページめくりスクロールをする操作に相当し、印刷などの場合は、用紙に順に印刷する処理に相当する。
【０２０９】
本発明に係る出力処理方法は、以上のように、前記出力範囲変更ステップにおいて、既に取得済みの出力範囲と隣接するもしくは一部重なる出力範囲に自動変更することを特徴とする。
【０２１０】
先に説明した、出力範囲取得ステップで以前の出力範囲と隣接するもしくは一部重なる出力範囲を得る方法では、出力範囲変更ステップで出力範囲が変更されない場合は連続性が保証されるが、変更された場合は必ずしも連続性が保証されないかもしれない。そこで、出力範囲変更ステップで出力範囲が変更された後でも以前の出力範囲と隣接するもしくは一部重なる出力範囲にすることで、連続性が保証される効果が出てくる。
【０２１１】
本発明に係る出力処理方法は、以上のように、出力する表示対象要素を出力範囲変更ステップの実行対象とするかどうかを識別する情報を表示対象要素に持たせることを特徴とする。
【０２１２】
これによって、上記情報を表示対象要素に持たせるか持たせないかで、出力範囲変更ステップでの処理を行なうかどうかを指定できることになり、例えば、ユーザや著作者が要素が分割して出力することを認めるかどうかを指定できるなどの効果が出てくる。
【０２１３】
また、上記情報を表示対象要素に持たせるか待たせないかを要素毎に設定する場合には、例えば、ユーザや著作者が要素毎に分割して出力することを認めるかどうかを指定できる効果も出てくる。
【０２１４】
なお、指定は、例えば、要素の種類によって変えることもできるし、種類に関係なく個別に指定することもできる。例えば、写真は分割して出力して欲しくないが文字は構わないなどというような場合は要素の種類で指定することになり、他の図はよいがこの図だけは部分的ではなく一度に見て欲しいと著作者が思った場合などは個別に指定することになる。
【０２１５】
本発明に係る出力処理方法は、以上のように、座標空間に表示対象要素を配置したレイアウトの出力処理方法において、レイアウトの少なくとも一部を切り出す出力範囲の情報を得る出力範囲取得ステップと、上記切り出す出力範囲に含まれる表示対象要素が、該出力範囲の境界を所定の割合あるいは所定の大きさ以上含む場合には、その出力範囲に含まれる表示対象要素を他の出力に置き換える出力変換ステップを有することを特徴とする。
【０２１６】
これによって、何も処理を行わなければ分割して表示されるだけで、未表示部分に関する情報が何も得られない表示対象要素の出力を、他の出力に置き換えることができる。この結果、出力範囲の境界部分に接して表示されている表示対象要素の出力が、実質的には分割はされていないくて、たまたま出力範囲の境界ぎりぎりの出力なのか、許容量以上に分割して出力されているのかという未表示部分に関する情報をユーザが余計な操作をしなくてもひと目で知ることができる効果が出てくる。また、出力されていない部分を見るためには例えばスクロールやページめくりなどの操作を必要とするか否かをユーザーがひと目で知ることができる効果もさらに出てくる。
【０２１７】
また、置き換えの仕方を様々に変えることで、例えば、分割されていることを自然な形で知らせたり、どの方向に分割されているかを自然な形で知らせたり、分割されているかどうか以上の未表示部分に関する情報をユーザに伝えることができる効果が出てくる。
【０２１８】
本発明に係る出力処理方法は、以上のように、前記出力変換ステップにおいて、前記出力範囲に含まれる表示対象要素を、所定の割合あるいは所定の大きさに応じた他の出力に置き換えることを特徴とする。
【０２１９】
これにより、出力範囲取得手段から得た出力範囲の境界を所定の割合あるいは所定の大きさ以上含む表示対象要素の場合、出力変換ステップでその割合あるいは大きさに応じた出力を作成して出力することで、許容量以上の未表示部分があるかどうかだけではなく、未表示部分の大きさに関する付加情報をユーザにひと目で伝えることができる効果が出てくる。
【０２２０】
本発明に係る出力処理方法は、以上のように、前記出力変換ステップにおいて、出力する表示対象要素を出力変換ステップの実行対象とするかどうかを識別する情報を表示対象要素に持たせることを特徴とする。
【０２２１】
これによる効果は、前述の出力範囲変更ステップに関して、識別する情報を要素に持たせる場合の効果と同様の効果を奏する。
【０２２２】
本発明に係る出力処理装置は、以上のように、座標空間に表示対象要素を配置したレイアウトの少なくとも一部を切り出す出力範囲の情報が入力される出力範囲取得手段と、上記切り出す出力範囲の境界によって出力範囲外に分割される表示対象要素の大きさが、基準の大きさ以上、あるいは表示対象要素の大きさに対して基準の割合以上になる場合には、該境界を含まないように出力範囲の情報を変更できるか否かを判断する出力範囲変更判断手段と、出力範囲変更判断手段が変更できると判断した場合に、出力範囲取得手段に入力された出力範囲の情報を自動変更する出力範囲変更手段と、を有することを特徴とする。
【０２２３】
これによる種々の効果は、上記出力処理装置の構成に対応する出力処理方法による効果として、前述したとおりである。
【０２２４】
本発明に係る出力処理装置は、以上のように、座標空間に表示対象要素を配置したレイアウトの少なくとも一部を切り出す出力範囲の情報を得る出力範囲取得手段と、上記切り出す出力範囲に含まれる表示対象要素が、該出力範囲の境界を所定の割合あるいは所定の大きさ以上含む場合には、その出力範囲に含まれる表示対象要素を他の出力に置き換える出力変換手段と、を含むことを特徴とする。
【０２２５】
これによる種々の効果は、上記出力処理装置の構成に対応する出力処理方法による効果として、前述したとおりである。
【０２２６】
本発明に係る出力処理プログラムは、以上のように、上記出力処理方法が備える各ステップをコンピュータに実行させることを特徴とする。
【０２２７】
また、本発明に係る出力処理プログラムは、以上のように、上記出力処理装置が備える各手段として、コンピュータを機能させることを特徴とする。
【０２２８】
さらに、本発明に係る記録媒体は、以上のように、上記出力処理プログラムを記録したことを特徴とする。
【０２２９】
これにより、上記記録媒体、またはネットワークを介して、一般的なコンピュータに出力処理プログラムをインストールすることによって、該コンピュータを用いて上記の出力処理方法を実現する、言い換えれば、該コンピュータを出力処理装置として機能させることができる。
【図面の簡単な説明】
【図１】本発明の出力処理方法による出力範囲変更処理の手順を示すフローチャート図である。
【図２】レイアウト全体の概念を説明する図である。
【図３】上記レイアウトに対して、隣り合う出力範囲を互いに重複させた例を示す説明図である。
【図４】上記レイアウトに対して、出力範囲の大きさはそのままで、位置を上に変更した例を示す説明図である。
【図５】上記レイアウトに対して、出力範囲の大きさはそのままで、位置を下に変更した例を示す説明図である。
【図６】上記レイアウトに対して、出力範囲の位置はそのままで、大きさを変更した例を示す説明図である。
【図７】レイアウトデータの配列例を示す説明図である。
【図８】図４の出力範囲変更処理の手順を示すフローチャート図である。
【図９】図５の出力範囲変更処理の手順を示すフローチャート図である。
【図１０】上記レイアウトに対して、出力範囲の大きさはそのままで、位置を下に変更した例を示す説明図である。
【図１１】図１０の出力範囲変更処理の手順を示すフローチャート図である。
【図１２】本発明の出力処理装置の機能的な構成を示すブロック図である。
【図１３】上記出力処理装置の一実施形態における構成例を示すブロック図である。
【図１４】上記出力処理装置の外観例を示す模式的な斜視図である。
【図１５】ウィンドウシステムの出力処理プログラムによる表示例を示す説明図である。
【図１６】スクロール操作と出力処理とを連動させた場合の出力範囲の変更について説明する図である。
【図１７】図１６のレイアウトに対して最初に指定された出力範囲における出力例を示す説明図である。
【図１８】図１６のレイアウトに対して次に指定された出力範囲について、変更処理を行わない場合の出力例を示す説明図である。
【図１９】図１６のレイアウトに対して次に指定された出力範囲について、変更処理を行った場合の出力例を示す説明図である。
【図２０】図１６のレイアウトに対して次に指定された出力範囲について、変更処理を行った場合の他の出力例を示す説明図である。
【図２１】本発明の出力処理方法による出力変換処理の手順を示すフローチャート図である。
【図２２】分割表示される要素について、枠線出力変換処理をした例を示す説明図である。
【図２３】分割表示される要素について、点線枠線出力変換処理をした例を示す説明図である。
【図２４】分割表示される要素について、［点線＋枠線］出力変換処理をした例を示す説明図である。
【図２５】分割表示される要素について、［点線＋枠線＋矢印＋割合数字］出力変換処理をした例を示す説明図である。
【図２６】分割表示される要素について、見えにくくする出力変換処理をした例を示す説明図である。
【図２７】分割表示される要素について、［点線＋枠線＋矢印＋割合数字＋要素出力］の出力変換処理をした例を示す説明図である。
【図２８】本発明の他の出力処理装置の機能的な構成を示すブロック図である。
【符号の説明】
１  レイアウト全体枠
２  要素（表示対象要素）
３  要素（表示対象要素）
４  要素（表示対象要素）
５  要素（表示対象要素）
６  出力範囲
７  出力範囲
８  出力範囲
９  出力範囲
１０  出力範囲
１１  出力範囲
１２  出力範囲
１３  出力範囲
１４  出力範囲
３２  出力範囲
５１  出力範囲取得手段
５２  出力範囲変更手段
５５  出力範囲変更判断手段
５６  出力変換手段
６５  出力範囲
７０  ＣＰＵ（出力範囲取得手段、出力範囲変更判断手段、出力範囲変更手
段、出力変換手段）
【図１】
0003813499.tif 000002
【図２】
0003813499.tif 000003
【図３】
0003813499.tif 000004
【図４】
0003813499.tif 000005
【図５】
0003813499.tif 000006
【図６】
0003813499.tif 000007
【図７】
0003813499.tif 000008
【図８】
0003813499.tif 000009
【図９】
0003813499.tif 000010
【図１０】
0003813499.tif 000011
【図１１】
0003813499.tif 000012
【図１２】
0003813499.tif 000013
【図１３】
0003813499.tif 000014
【図１４】
0003813499.tif 000015
【図１５】
0003813499.tif 000016
【図１６】
0003813499.tif 000017
【図１７】
0003813499.tif 000018
【図１８】
0003813499.tif 000019
【図１９】
0003813499.tif 000020
【図２０】
0003813499.tif 000021
【図２１】
0003813499.tif 000022
【図２２】
0003813499.tif 000023
【図２３】
0003813499.tif 000024
【図２４】
0003813499.tif 000025
【図２５】
0003813499.tif 000026
【図２６】
0003813499.tif 000027
【図２７】
0003813499.tif 000028
【図２８】
0003813499.tif 000029