JPH03110665A - 一般書式作成のための方法及び装置 - Google Patents

一般書式作成のための方法及び装置

Info

Publication number
JPH03110665A
JPH03110665A JP1345008A JP34500889A JPH03110665A JP H03110665 A JPH03110665 A JP H03110665A JP 1345008 A JP1345008 A JP 1345008A JP 34500889 A JP34500889 A JP 34500889A JP H03110665 A JPH03110665 A JP H03110665A
Authority
JP
Japan
Prior art keywords
frame
area
areas
frame area
framed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP1345008A
Other languages
English (en)
Inventor
Michael W Morgan
マイケル ダブリュ.モーガン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SOFT VIEW Inc
Original Assignee
SOFT VIEW Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SOFT VIEW Inc filed Critical SOFT VIEW Inc
Publication of JPH03110665A publication Critical patent/JPH03110665A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/174Form filling; Merging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Processing Or Creating Images (AREA)
  • Document Processing Apparatus (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明は、一般書式を動的に作成し、修正し、格納し、
プリントし、表示る、ために、位相幾何学的2次元区分
手法を具体化る、ための装置及び方法に関る、。
(従来の技術) ここ10年間に書式を作成る、ためにコンピュータを用
いることへの関心が高まっている。書式は多(の異なる
業務に証拠を提供る、コミユテーシヨンの象徴を表現し
てきたし、これからも常にそうであろう。業務がコンピ
ュータを用いてなされようが、用いずになされようが、
書式はどこにでもある。殆どの書式は予め印刷され、作
成され、外部の書式供給者によって供給されている。ビ
ジネス書式マネージメントアソーシエーシヲンは、事前
印刷用紙を作製し印刷る、ために、年に60億から80
億ドルのビジネス費用が費やされていると見積っている
。工業の専門家は、保管され、管理され、印刷されてい
る書式の20倍が、ビジネスに費やされていると見積っ
ている。
書式を作成る、プロセスは、典型的に長いプロセスであ
る。書式が最終的な承認を受は取り、外部プリンタに送
られると、印刷され、割り当てられ、そして書式の数十
万のコピーの目録が作成されて用紙保管所に配送される
。書式が修正されるたびに承認と保管の全てにわたるプ
ロセスが繰り返される。
書式作成のプロセスを節約る、ための努力が行われ、電
子書式ソフトウェアが開発されている。
このようなソフトウェアは、電子出版やビジネスプレゼ
ンテーシ璽ングラフィックスのような高価で専用の単一
目的タイプのビジネス装置によって以前はなされていた
機能が、パーソナルコンピュータによって急速に置き換
えられている別の例である。電子書式は、独立した可変
データが存在る、グラフィックスを組み込み、要求があ
り次第作成され得るコンビコータ生成される書式として
定義される。電子書式ソフトウェアは、高価な写真写植
装置(phototypesetttng)の使用に代
えて、加速的な速度と正確さという付加的な利点を個人
に提供る、。
電子書式はビジネスへの多大なコスト節約を象徴る、。
事前印刷用紙の設計と完了のコストに比較る、と、電子
書式はビジネス費用を節約る、。
即ち、それらは物理的なスペースを必要とせず、それら
は容易に修正され(使用されていない書式の浪費を低減
る、)、そして、それらはしばしばカットシート用紙に
印刷される。カットシート用紙のコンピュータ生成され
た書式を用いるコストは、事前印刷用紙を購入る、より
も低い。書式を完成る、コストは書式のコストの20倍
であると見積られ、組み込み計算と論理チエツクを有る
、ことによって減少されるであろう。
電子書式はコンビコータに格納されているけれども、ユ
ーザは電子書式を用いて、ファイルに入れ、承認し、フ
ァイルし、プリントる、等の、現在では事前印刷用紙で
なされている多くのことをる、ことができる。しかし、
現在のパッケージは適用に於て制限されている。なぜな
ら、これらのパッケージは、ユーザが能率的に空欄を満
たすのを可能にし、きちんとタイプして書式を仕上げる
ための、真のタイピングプログラムであるからである。
他のタイプの書式パッケージは、デザイナが書式をスク
リーン上でデザインし、それを再使用のために保管る、
ことを可能にし、又は現存る、書式用紙を調べることを
可能にし、それは次に完成のためにスクリーン上に表示
される。これらの書式パッケージの利点は、「見えるも
の」と同じものを電子書式に提供る、ことにより、ユー
ザが電子書式に変換る、のを容易にし、電子書式を事前
印刷用紙の正確な仕様に作成し得ることである。
多くのこれらの書式パッケージは知性の高い、整った書
式を生成る、。知性の高い書式とは、一般に、多(の情
報と会話できる書式を含んでいる。
「死んだ書式」に比べ、これらの書式はユーザの入力を
受は入れ、数値を計算し、数値又は量を他の書式へリン
クさせることさえできる。ユーザの入力を受は入れると
いう高度の能力(即ち、フォーマツティング、誤りチエ
ツク等)と、演算及びリンクの能力は、書式パッケージ
とは異なって、かなり改良されている。
これらの現存る、パッケージを考慮した書式生成に於け
る重要な設計の問題は、レイアウトが作成された後の書
式の編集、又は修正に於いてこのパッケージが有る、柔
軟性のレベルである。言葉を変えれば、たとえ書式パフ
ケージが、演算、リンク、データベースとのインターフ
ェイス等の複雑な問題に取り組んでいても、パッケージ
が書式のレイアウトを編集し修正る、能力は、電子書式
生成パッケージの価値を決定る、差し迫った問題である
。問題は、−度生成された書式が、例えば欄を削除し、
欄を小さくし、欄を拡大し、欄を動かし、一方、書式の
残りの部分をこの変更に適応させるように調整る、こと
によって、容易に変更され得るかという段階まで煮詰ま
っている。
(発明が解決しようとる、課題) 今日まで、どのパッケージにも、システムが書式の変更
に対して動的に適応させ調整し得るように「グラフィッ
クインテリジェンス」の概念が組み込まれていない。グ
ラフィックインテリジェンスは、書式内の要素の全てが
互いに向かい合っている位置関係を理解し得る、書式生
成に於けるインテリジェンスのタイプである。そのため
、要素の大きさ、テキストの書体、テキストの大きさ、
配置、形状等に対してなされた変更は、書式の他の部分
の再調整、引き延ばし、移動、又は再配列を位置的に調
整る、ように再編成る、一方、全体に亘る完全な状態、
又は書式の「基本的外観」を維持る、。これに対して、
現存る、書式パッケージでは、ある変更がレイアウトに
施されたときに、新たな設計に適合る、ように書式の他
の個々の要素の引き続く手動による調整が必要とされる
。グラフィックインテリジェンスを組み込むこと無しで
は、書式のグラフィックレイアウトに対る、このような
変更は、デザイナに書式の部分の再線描を要求し、そし
て、ある状況では書式全ての再線描を要求る、。
(課題を解決る、ための手段) 本発明は上述の欠点を減少させ、又は除去る、方法及び
装置を提供る、ものである。
手短に言えば、本発明は、一般書式を動的に作成し、修
正し、格納し、表示し、及びプリントる、ために、位相
幾何学的2次元区分手法を具体化る、ための装置及び方
法を包含している。まず第1に、書式、特に複雑な書式
のグラフィカルレイアウトへの変更は、書式部分、ある
状況下では書式の全体の再線描のためのデザイナの介在
を必要としない。特に本発明は、枠領域の大きさ、テキ
ストの書体、テキストの大きさ、配置、形状等になされ
る変更を調整る、ために、書式内の枠領域の再調整、引
き延ばし、再配列等によって、書式の完全な状態(即ち
、情報の完全な状態、及び構造的に完全な状態)を維持
る、ための方法及び装置を提供る、。
本発明の好ましい実施例は、一般書式をコンピュータに
於いて動的に変更る、ための方法及び装置を含んでいる
。書式は複数の枠領域に分配された2次元の空間として
特徴付けられる。1以上の枠領域はテキストを含んでい
る。テキストは文字の行を含んでいないか、−行又はそ
れ以上を含んでおり、テキストのそれぞれの文字は変更
可能な書体の属性を有している。変更可能な書体の属性
は、書体のタイプ、書体のスタイル、及び書体の大きさ
を含んでいる。書式を動的に変更る、ための好ましい実
施例の方法は、以下の2つのステップに現れる。
第1に、書式の1以上の枠領域に対して、その1以上の
枠領域の大きさが、その1以上の枠領域の調整可能な高
さ及び/又は調整可能な幅を変えることにより変更され
て、その調整された1以上の枠領域は、その書式の他の
1以上の枠領域に重なる。テキストの1以上の行を有る
、枠領域に対しては、テキストの書体属性は、その書式
の他の1以上の枠領域にテキストが重なるように変更さ
れる。
第2に、その書式の1以上の枠領域に対して、テキスト
の調整可能な高さ、及び/又は調整可能な幅、及び/又
は調整可能な書体属性が、重なりが起こらないことを確
実にる、ために、動的に変更される(即ち、増大又は減
少される)。
好ましい実施例では、調整可能な高さ、及び/又は調整
可能な幅、及び/又は変更可能な書体属性を変更る、ス
テップは、枠領域の少なくとも2つの枠領域を整列させ
るステ・ノブを含み、これにより、動的変更のステップ
の結果として生ずるものに注意を払うことなく、枠は整
列状態を維持る、。このステップは、典型的には、少な
くとも2つの枠領域の水平及び垂直方何の枠の整列を含
んでいる。
また、本発明は、コンビコー夕に於て一般書式を表現る
、ための装置及び方法を包含している。
書式は複数の枠領域を有している。枠領域は書式内の基
本的構造単位であると考えられ、他の小さな枠領域、テ
キスト、又はグラフィックを含んでいる。テキストは1
以上の文字からなり、グラフィックは2次元の図(即ち
、線、矢印、円、多角形、フィル(fills)、絵等
)を含んでいる。本発明の好ましい実施例を記述る、た
めに、枠領域はテキスト又は他の枠領域を含むように限
定されるであろうが、本発明はそれに限定されるもので
はない。また、それぞれの枠領域は、より大きな枠領域
内に含まれるかも知れない。書式のそれぞれの枠領域は
、関連る、枠領域の特性を定義る、レコードに結び付け
られている。一般書式を表現る、ための方法は、以下の
2つのステップを有る、。
その書式の枠領域に関連る、各レコードに対して、第1
のステップは、もしあれば、その枠領域を含むより大き
な枠領域を指示る、ことを含み、第2のステップは、も
しあればその枠領域に含まれる複数のより小さな枠領域
を指示る、ことを含んでいる。
更に、この方法は、枠領域の関連る、レコード内に、含
まれるより小さな枠領域が、その枠領域内で水平に配列
されているか垂直に配列されているかを示すステップを
包含している。枠領域の配列方向は、好ましい実施例が
各枠領域の大きさの変化を適切に調整る、のを可能にる
、ために重要である。
また、好ましい実施例は、コンビ二−タ内で一般書式内
の1以上の枠領域の大きさを計算る、ための方法及び装
置を含んでいる。各枠領域の大きさは幅と高さで表され
る。各枠領域はより大きな枠領域に含まれ、そして、各
枠領域は複数の小さな重ならない枠領域又はテキストを
含んでいる。
テキストは文字の行を含まず、又は1以上の行を含んで
いる。枠領域の大きさを計算る、ための方法は、以下の
ステップに示されている。
一般書式の1つの枠領域(現在処理されている枠領域)
の幅が得られる。次に、その枠領域が複数のより小さな
枠領域を含むか、又は枠領域がテキストを含むかに関る
、決定がなされる。枠領域がテキストを含んでいるなら
、次のステップは、O又は1以上の行の文字の積み重ね
の高さを決定る、ことにより、枠領域の高さを決定る、
ことを含む。枠領域が複数のより小さな枠領域を含んで
いるときは、次のステップは、その含まれているより小
さな枠領域が、その枠領域内で水平に配列されているか
、垂直に配列されているかを決定る、ことを含む。その
含まれているより小さな枠領域が水平に配列されている
ときには、次のステ・ツブは、その含まれているより小
さな枠領域のそれぞれの高さを決定る、こと、決定され
た高さの最大の高さを決定る、こと、及びその含まれて
いるより小さな枠領域のそれぞれの幅を決定る、ことを
含む。含まれているより小さな枠領域が垂直に配列され
ているときには、次のステップは、その含まれている枠
領域のそれぞれの高さを決定る、こと、及びその含まれ
る枠領域の全ての累積された高さを決定る、ことを含む
。垂直に配列された含まれるより小さな枠領域の幅は、
現在処理されている枠領域に対して得られる幅に等しい
か、又はそれよりも小さい。
含まれるより小さな枠領域のそれぞれの高さを決定る、
ためのステップは、更にこれらのより小さい枠領域のそ
れぞれの大きさを決定る、ために、上述の方法の1以上
のステップを1以上の回数実行る、ためのステップを包
含している。このプロセスは、書式内の全ての枠領域と
その子孫の枠領域の大きさが決められるまで続けられる
更に、本発明の好ましい実施例では、枠領域の中身の位
置を決定る、ためのコンピュータに於ける方法及び装置
を包含している。枠領域の中身は、複数の重ならないよ
り小さな枠領域、又はO若しくは′1以上のテキストの
行を含む。枠領域は上部、下部、左、及び右の境界位置
を有し、その枠領域はより大きな枠領域に包含され得る
。より小さな枠領域もまた上部、下部、左、及び右の境
界位置を有る、。中身の位置を決定る、ための方法は、
次のステップに示されている。
その中身が配される必要のある枠領域の上部、下部、左
、及び右の境界の位置が得られる。次に、枠領域が複数
のより小さな枠領域又はテキストを含んでいるかどうか
の決定がなされる。枠領域がテキストを含んでいるとき
には、テキストが枠領域の境界の上部、中程、又は下部
の何れに整列されているかの決定がなされる。枠領域が
より小さな枠領域を含んでいるときには、より小さな枠
領域がその枠領域内で水平に配列されているか、垂直に
配列されているかの決定がなされる。枠領域が水平に配
列されたより小さな枠領域を含んでいるならば、その含
まれているより小さな枠領域のそれぞれに対る、左及び
右の境界の位置が決定される。その含まれているより小
さな枠領域のそれぞれ゛の上部の境界の位置は、その枠
領域の上部の境界に揃えられる。その含まれているより
小さな枠領域のそれぞれの下部の境界の位置は、その枠
領域の下部の境界に揃えられる。枠領域が垂直に配列さ
れたより小さな枠領域を含んでいるときには、その含ま
れているより小さな枠領域のそれぞれの上部及び下部の
境界の位置が決定される。その含まれているより小さな
枠領域のそれぞれの左の境界の位置は、その枠領域の左
の境界に揃えられ、その含まれているより小さな枠領域
のそれぞれの右の境界の位置は、その枠領域の右の境界
に揃えられる。
表示された書式は、ディスプレイ上で選択された又は選
択されない複数の画素によって表される。
それぞれの画素は、X、 Y座標アドレスを識別る、。
好ましい実施例では、一般書式内の枠領域のそれぞれは
矩形の形状であり、枠領域のそれぞれは、2組のX、Y
座標アドレスで表される。X。
Y座標アドレスの一方の組は矩形の枠Wi 域ノtつの
角の位置を表し、  X、  Y座標アドレスの他の一
方の組は矩形の枠領域の対向る、角の位置を表わす。枠
領域の位置づける方法は、一般書式のそれぞれの枠領域
に対して、一般書式の枠領域の位置に、それらのxS 
Y座標アドレスを割り当てるステップを更に含んでいる
。このように、枠領域に対る、上部、下部、左、及び右
の境界の位置が定義される。
最後に、本発明の好ましい実施例は、一般書式の枠領域
のそれぞれに対して決定された位置に従って、その一般
書式を表示し、及びプリントる、ための装置及び方法を
包含している。
(実施例) 111区り立旦迭 詳細な記述 (A)導入部 (B)好ましい実施例の詳細な記述 (1)「グラフィックインテリジェンス」への導入部 (2)枠領域レコード及びテキストレコード(3)リサ
イズ/リフォームルーチン(m9図)(4)書式フィツ
トルーチン(第10図)(5)書式線描ルーチン(第1
1図) (6)書式配置ルーチン(第12図) (7)フィツトセルルーチンセット (第13A図〜第13F図) (a)フィツトセルルーチン(第13A図)(b)テキ
ストセルの大きさ計算ルーチン(第13B図) (C)垂直セルの大きさ計算ルーチン (第13C図) (d)水平セルの大きさ計算ルーチン (第13D図) (e)子枠領域幅再配分ルーチン (第13E図) (8)フィツトセルルーチンセットの詳細な実施例(第
1・3A図〜第13E図) (9)セル配置ルーチンセット (第16A図〜第16F図) (a)セル配置ルーチン(第16A図)(b)テキスト
セル配置ルーチン (第16B図) (C)水平セル配置ルーチン (第16C図) (d)垂直セル配置ルーチン (第16D図) (e)垂直配列決定ルーチン (第16E図) (f)適正化ルーチン (第16F図)(10)セル配
置ルーチンの詳細な例 (第16A図〜第16F図) (11)セル線描ルーチンセット (第18A図〜第18D図) (a)セル線描ルーチン(第18A図)(b)枠線描ル
ーチン(第18B図) (C)中身線描ルーチン(第18C図)1皿星呈亘 (A)!AM 本発明の以下の記述は、第1図のコンピュータによって
受は取られ格納されたデータ(第9図〜第18C図)の
処理を表わすアルゴリズム及び記号によって、大部分表
現されている。これらの表現は、データ処理の分野の当
業者が、彼らの概念の性質を他の当業者に伝えるために
用いる手段である。本発明の文脈に於て定義されるよう
に、アルゴリズムは所望の結果へ導くための首尾一貫し
た一連のステップである。このようなステップは物理的
な量の物理的操作を必要とる、。これらの量は、典型的
には、格納され、移送され、結合され、比較され、さも
なければ操作され得る電気信号の形式である。この信号
は、典型的には、ビット、数値、要素、記号、文字、語
句、メモリセル、表示要素等として言及される。しかし
、これらとこれらに類似の用語の全ては、適当な物理量
に関連付けられていること、そしてこのような量に用い
られた単なる便宜上のラベルであることを忘れてはなら
ない。
アルゴリズムによってなされた操作は、人間のオペレー
タによってなされた精神の処理に関係しているけれども
、ここで記述されている本発明を形成る、処理の何れに
於いても、人間のオペレータを゛必要とせず、又は事実
そう望まれている。本発明の処理を遂行る、のに有用な
機械は、一般用のディジタルコンピュータ又は他の同様
な装置である。
また、本発明はこれらの処理を遂行る、ための装置に関
連している。この装置は必要とされる目的のために特別
に構築され、又は一般用のコンピュータ(例えば、IB
M  PC−AT、AppleMacIntoshS 
Compac−386、等)を有していてもよい。しか
し、ここで表現されるアルゴリズムは、必ずしも特定の
コンピュータに関連付けられていないことに注意すべき
である。様々な一般用の機械がここで議論される技術に
用い得、処理の必要とされる手段のステップを遂行る、
ためのより特別な装置を構築る、ことが、更に便利であ
ることが判るであろう。
ここに記述される様々な処理を遂行る、ために、特別な
プログラム言語は示されていないことに注意しなければ
ならない。この省略は、全ての機械又は手法に不変的に
受は入れられるプログラム言語力を無いために、意図的
になされたものである。
本発明の複雑さのために、それについてのコンビコータ
リストをたどることは、長(困難なことである。そのた
め、ここに記述される処理及び手法は、通常の当業者に
本発明を遂行る、ための技法を十分に示した添付の図に
示されている。本発明はここでの図面に示されているア
ルゴリズムの形式で書かれているけれど、公知の回路及
び構造が本発明を「ハード配線された」形式で実行る、
のに用いられ得ることは、当業者にとって明かであろう
第1図は、本発明に従って一般書式を作成る、ためのコ
ンピュータベースシステム2を示している。コンピュー
タ8はこのコンピュータの3つの大きな処理を遂行る、
ためのIJIIIボード6を有している。それらの1つ
は、コンビ1−夕8の他の部分へ、又は他の部分から適
正に構築された書式を伝達る、ための入/出力処理であ
り、2つは、全ての演算処理のための中央処理袋a<c
pυ)(r!!:J示せず)であり、3つは、データを
格納る、ため′のメモリである。本発明による一般書式
の作成は、制御ボード6上のマイクロプロセッサチップ
7によって、又は同様に制御ボード6上に位置る、特定
目的のハード配線された形式のマイクロプロセッサチッ
プ9によって処理される、ソフトウェアプログラムによ
りて実行される。一般書式を作成る、ためのソフトウェ
アプログラムが制御ボード6上に格納されているとき、
又は適切なハード配線された論理を有る、マイクロプロ
セッサチップが制御ボード6を介して装備されていると
き、一般書式を作成る、ためのプラットフォーム(p4
aRorm)又はカード(card)が生成される。
このカードは現在市場で入手し得る様々なコンピュータ
とインターフェイスし得る。
また、第1図は、キーボード10及びマウス12で示さ
れている入力装置の2つの形式を表わしている。入力装
置は、実際には、カード読み取り装置、磁気又はペーパ
ーテープ読み取り装置、又は他の公知の入力装置を含み
得ることは理解されるべきである。また、コンピュータ
システム2は目的コードを格納し、一般書式を表現る、
ために、メモリ装置14を有している。マウス12は、
ユーザがその入力回路を介して公知の方法でコンビコー
タ8にグラフィック情報を入力る、めを許容る、。一般
に、マウス12はディスプレイ手段4内のディスプレイ
スクリーン5上のカーソルの位置を識別る、ためのカー
ソル制御を提供る、。ディスプレイスクリーン5は本発
明によって作成されている一般書式を表示る、ために用
いられている。ディスプレイ手段4は当業者に公知のシ
ステムの何れかであり得る。書式を表示る、ための出力
装置の他の形式はプリンタ11である。書式をプリント
る、のに適した多(の異なる公知のプリンタがある。
ディスプレイスクリーン5の陰極線管(CRT)は、デ
ィスプレイ5上に所望のイメージを明示る、ために、選
択され又は選択されない多くの画素又は絵素を有してい
る。画素はCRT上にわたって位置る、格子を形成し、
そして画素はピットマツプによって識別される。更に詳
細には、画素は2次元配列の唯一のXY座標に従って識
別され得るように組織化されている。ビットマツプの0
.0座標は、典型的にはCRTの左上の隅に位置る、よ
うに選択されている。また、ビットマツプの0、O座標
は、一般書式最初のポイントを示している。CRTの画
素要素は、メモリ14に格納された目的コードに従って
表示され又は表示されない。ピットマツプはCRT上に
予め設定され得るが、それはメモリ14には完全には格
納されず、書式の圧縮コード化された翻訳がメモリ14
に格納されている。圧縮コード化された翻訳は、CRT
上に書式を生成る、のに十分な情報のみからなっている
。矩形の枠領域をコード化る、構成についての詳細な議
論は、以下に示されるであろう。
典型的な書式は、例えばよく知られた1、  RoS、
1040書式のように、テキストで埋められた多くの矩
形の構成要素を有している。書式とワードプロセッサで
作成された文書との主な差異は、書式が多くの構造を有
しているということである。
書式は小さな枠領域又はセルに多くの情報を提供る、と
いう点で特徴的である。好ましい実施例では、書式は複
数のセル又は枠領域に分配された2次元の空間として特
徴付けられる。枠領域は書式内の基本的な構成単位であ
る。枠領域はどんな形状もとり得るが、好ましい実施例
を簡単にる、ために、枠領域は矩形の形状を有している
と仮定されていることに注目すべきである。枠領域は互
いの完全には独立ではなく、むしろそれらは様々なグラ
フィックの、特別な、又は位相幾何学的な関係で互いに
依存している。従って、書式内の1又はそれ以上の枠領
域の配置又は大きさに対る、変更は、その書式の他の領
域部分に影響を与える。
これらの関係を維持る、ために、書式内の枠領域の何れ
か1つが再び大きさを決められると、書式全体が変更さ
れ再配置されることが必要となる。
書式の処理にユニークな、そして本発明にユニークない
くつかの原理が存在る、。書式の完全な状態(即ち、情
報の完全な状態、及び構造的に完全な状態)を維持る、
ために、書式のある位相幾何学的な関係が維持されなけ
ればならない。書式に於ける第1の最も重要な位相幾何
学的関係は、枠領域は互いに重ならないということであ
る。枠領域が互いに重なると考えられるのは、(1)1
つの枠領域のテキストが他の枠領域のテキストに重なる
とき、(2)1つの枠領域のテキストが他の枠領域の枠
に重なるとき、 (3)1つの枠領域の枠が他の枠領域
の枠に重なるときである。このような重なりが起こらな
いことを確実にる、ために、本発明のシステムは、枠領
域の大きさ及び枠領域のテキストの大きさを示す3つの
変数の112又は全てを制御る、。3つの変数は、(1
)枠領域の水平方向の幅、(2)枠領域の垂直方向の長
さ、及び(3)枠領域内のテキストのそれぞれの文字の
書体属性である。属性は書体のスタイル、書体の大きさ
、書体のタイプ等からなる。
更に詳細には、これらの3つの変数(即ち、幅、高さ及
び書体属性)によって制御されている重ならないという
原理は、次の実施例に示されている。
もし枠領域が広くされてその枠領域が他の隣接る、!又
はそれ以上の枠領域に重なったら、隣接る、枠領域の幅
は適当な量だけ増大され、テキストはこのような重なり
を避けるために移動される。
同様に、書式の特定の枠領域の高さが増大されてその枠
領域が他の隣接る、l又はそれ以上の枠領域に重なった
ら、隣接る、枠領域の高さは適当な値まで増大され、テ
キストはこのような重なりを避けるために、上又は下へ
適当な量だけ移動される。また、特定の枠領域のテキス
トが枠領域の枠からはみ出してテキストが隣接る、他の
枠領域に重なったら、テキストの書体の大きさが減少さ
れ、次に、テキストが枠領域の枠からはみ出さないよう
に適当な量だけ移動される。最後に、上述のように隣接
る、枠領域への重なりを避けるために、どんな結合状態
に於いても、l又はそれ以上の変数(即ち、幅、高さ、
書体の大きさ)が変更される(即ち、増大され、減少さ
れ、又は(テキストカリ適当な量だけ移動される)。こ
れにより、重なりが生じないことを確実にし得る。また
、重なりを避けるためのこのようなどのような適正化も
、他の隣接る、枠領域に於ける新たな重なりを生じさせ
る。このことは枠領域が重ならないようになるまで、更
に適正化が必要であることを示している。ここで記述し
た好ましい実施り1は、枠領域の重なりが起こらないこ
とを確実にる、ための特別の装置及び手法に向けられて
いるけれど、これに限定されるものではない。というの
は、書式の完全な状態を確実にる、多くの異なる実施例
が実施され得るからである。
書式のための第2の重要な位相幾何学的関係は、書式の
1以上の枠領域のある枠が、互いに向かい合って水平又
は垂直に整列を維持し、連続した線を生じているという
ことである。例えば、垂直方向に配列された枠領域の欄
は、欄を維持る、ためにそれぞれの左及び/又は右の枠
が互いに整列る、ということを必要とる、。このような
配列の他の例は、いくつかの枠領域から構成される書式
の外側の境界であろう。加えて、整列に対る、必要性は
、書式の枠領域が表、格子等として配列されたときに生
じる。特定の枠領域を整列させるという要求は、書式内
の重なりを維持る、ために、3つの変数(即ち、幅、高
さ、及び書体属性)が用いられる方法に付加的な制約を
加える。
これまで議論した位相幾何学的な関係を維持る、ための
手法は、以下に「グラフィックインテリジェンス」とし
て言及される。グラフィックインテリジェンスの概念は
幾分抽象的で散文で把握る、には困難なため、この概念
が視覚的にどの様に働くかの基本的な例から始めるのが
最も良い。グラフィックインテリジェンスが機能してい
る「寸秒」を提供る、ために、第2図〜第7b図にそれ
がどの様に適用されるかを示す。
第2図を参照すれば、3つの要素又はより小さな枠領域
18.20、及び22を有る、特定の枠領域16が示さ
れている。枠領域16は図示していないより大きな書式
の1列である。グラフィックインテリジェンスを用いる
ことなく、枠領域16の第1の要素18の大きさを調整
る、ために、要素゛20から要素18を分離している垂
直の罫線が右へ移動され、要素20内の情報が、減少し
た要素20の領域に適る、ように手動で再配置される。
枠領域24(第2図)は、要素18及び2゜を分離して
いる垂直罫線を右へ移動させた結果を示している。
もしグラフィックインテリジェンスが用いられ、そして
枠領域16の水平幅の制約がないならば、第3図に示す
枠領域28が結果として得られる。
枠領域18の幅が水平方向に拡張され、枠領域20及び
22の幅が同じであるが、新たに位置る、罫線の右側に
物理的に移動している。しかし、多くの状況では、枠領
域16の全水平方向の幅が一定値となるように強いると
いう水平方向の制約が書式に置かれている。第4図は要
素18及び20の間の罫線が右へ移動された結果を表し
ている。
枠領域16の全水平幅は一定に維持されている。
水平方向の幅を一定に保つために、枠領域32は垂直方
向に下向きに延ばされていることに注意すべきである。
加えて、第2の要素20のテキストは、要素20内のよ
り小さい水平幅に適合る、ように再び改行される。この
実施例は枠領域16に対る、変化のみを示しているが、
もし枠領域工6がより大きな書式の一部分であるならば
、書式の他の部分の配列は影響を受ける。
第5A図は、典型的な1.  R,S、  書式380
0を示す。この書式は標準の幅と書体の大きさで表示さ
れている。書式3800は一連の列及び欄に分解され、
それぞれの列17−42は特定の情報を提供しているo
  rTentative Credlt (−時債権
)」及びrTax Lim1tations (課税限
度)」と題された書式のパート1 (Part 1)及
び2 (Part 2)は、3つの欄44.46、及び
48に分解される。
欄44は質問及び情報と見なされるテキストを含み、欄
46は1から10までの番号フィールドであり、欄48
は金額数値をリストる、。第5B図は、書式テキスト(
「表題テキスト」即ち、44及び46(第5A図、第5
B図及び第6A図))のいくつかの書体の大きさを、9
ポイントから15ポイントへ変えるために、システム2
(第1図)のユ°−ザによって選択されたメニ晶−項目
を表している。第6A図は書体の大きさが15ポイント
まで大きくされた書式3800を表している。この実施
例では、スクリーンディスプレイ5の右又は左に、広が
り又はスクロールしないように、書式は水平方向に制約
されている。このように書式の水平方向の幅は保たれ、
大きな書体は必要に応じてテキストを再び改行させる。
例えば、第5A図及び第5B図のパー) 1  (Pa
rt 1)の下を参照すれば、1行のみを占めているテ
キスト行24、−26.30、及び32が、第6A図に
示されているように次の行まで及んでいる。この結果は
、書式3800は書体の大きさの変更を調整る、ために
、垂直方向に延びるいうことである。ある意味では、書
式3800は、どの方向にでも(この場合には垂直方向
)引き延ばし、引っ張ることができるゴムのシートのよ
うに機能る、。
枠領域の水平方向及び垂直方向の大きさは、互いに独立
に図上で操作され得るということに注目すべきである。
第6B図では、番号フィールド(欄46)は左へ移動さ
れ、パート1 (Part 1)  (欄44)の下の
テキストを更に改行る、ように強いて、減少1.た水平
方向の空間に適合る、ように再調整る、ように強いる。
第6B図では、初めて改行された行(即ち、20及び2
8)と更に改行された行が行24.26.30.及び3
2に現れていることに注意すべきである。
第7A図を参照すれば、欄46の番号フィールドの右の
枠が右に移動され、番号フィールド46の水平方向の幅
が広がり、数字は再び中央に移動される。第7B図を参
照すれば、番号フィー・ルビ46左の枠が更に右へ移動
され、欄46の数字は再び中央に移動され、欄44のテ
キストは自動的に再改行され、欄内の増大された水平方
向の空間を埋め、その結果、書式は垂直方向に縮小(再
配置)される。行17は再び第7B図に見られ、−方、
第7A図では行17は上方にスクロールされている。
第5A図、第5B図、第6A図、第6A図、第7A図及
び第7B図のIR9書式3800に対る、変更に関して
、い(つかの観察が行われ得る。
即ち、枠領域の大きさ、テキストの大きさ、配置、形状
等に対してなされる変更は、書式の全体にわたる完全な
状態、又は基本的外見を維持しつつ変更を位置的に調整
る、ために、他の全ての枠領域の再配置、引き延ばし、
移動、又は再配列を引き起こす。これらの処理を充足る
、好ましい実施例が、第9図から第18c図に示されて
いる。
付加的な観察は次の点を含む。テキストを含む枠領域は
、「再改行」されたテキストによって異なる幅を有して
いる。枠領域を狭める(又は広げる)ために、テキスト
は新たに指定された領域の内側に適合し得るように、あ
る点で破壊される。
枠領域を狭めるために更にテキストの行を必要とし、枠
領域が引き延ばされ、又は垂直方向に高くされる。他方
、枠領域を広げる場合には、テキストの行は少なくされ
、枠領域は縮小され又は短(される。
また、書式は、それ含まれる幾つかの枠領域の境界を調
整る、ことにより、異なる幅を有し得る。
書式を狭め、または広げるために、テキストを含むlま
たはそれ以上の枠領域の幅は、適当な量だけ減少され又
は増加される。それぞれの枠領域に対る、適切な量は、
書式の枠領域のそれぞれの列に対して幅全体を減少させ
るか増大させるかを決め、同じ列内の枠領域のそれぞれ
の中で増大量又は減少量を配分る、ことによって計算さ
れる。枠領域内のテキストは、新たな幅に適合る、よう
に再改行される。枠領域の全ての高さは、再改行された
テキストを含むように適当な量だけ増大(又は減少)さ
れる。最後に、枠領域が重ならないように、全ての枠領
域の位置が調整される。このようにして、書式の高さは
全体として増大(又は減少)る、。
第8A図を参照すれば、1.  R,S、  書式38
00は更に矩形の枠領域に分割されて示されている。特
に、I、  R,S、 書式3800の上部(第8A図
の52)は、幾つかのより小さな枠領域に更に分割され
て示されている。1.  R,S、  書式3800は
階層の木であると考えられ、この階層の木は最高レベル
又は最高ノードと、より低いレベルのノードとを有る、
。最高7−ドは書式の最大の枠鎖域を表し、より低いレ
ベルの7−ドは、最高レベルから分岐し、その最大の枠
領域に含まれるより小さな枠領域を表わす。最高レベル
の枠領域はより低いレベルの子枠領域、即ち、「兄第」
に対る、「親」であると考えることができる。兄第の枠
領域は、また、更に低いレベルの子枠領域に対して、同
様に組枠領域である。いつかは、最高レベルの枠領域か
ら分岐した全ての枝は、テキストを有る、枠領域で終了
る、。兄弟枠領域(同じ組枠領域を有る、子枠領域)の
それぞれのレベルに対して、本発明は、それぞれの兄弟
枠領域の中身(即ち、子孫枠領域又はテキスト)を気に
る、ことなく、兄弟枠領域の何れもが重ならないと仮定
る、。第8B図は第8A図に示されている書式の部分を
表わす階層本構造を示している。この木構造の表現は、
枠領域が他の枠領域に含まれていることを強調している
。第8C図は、第8A図及び第8B図に示す書式を表わ
す表である。この表は、各枠領域の中身が(水平又は垂
直に配列されている)子枠領域、又はテキストを含むか
どうか(即ち、枠領域が互いに水平又は垂直の関係で配
されている兄弟枠領域を含むかどうか、又は中身がテキ
ストであるかどうか)を示している。
第8A図、第8B図及び第8C図を参照すれば、それぞ
れの枠領域54.56及び58はより大きな枠領域52
に含まれている。各枠領域は複数のより小さい枠領域又
はテキストを含んでいる。例えば、枠領域54内の枠領
域60は、よちり小さな枠領域61及び63を含み、枠
領域54内の枠領域62はテキストr Departm
ent of the Treasury(財務省)」
を含んでいる。IR3書式3800(第8A図の50)
の最上部52もまた第8B図に示す階層木構造であると
考えられる。最も大きい枠領域又は「親」枠領域52は
この木構造の最上部又は最初のレベルに示されている。
組枠領域52は、「子」又は「兄第」枠領域54.56
及び58に更に分割されている。枠領域54.56及び
58は、木構造の第2のレベルに示され、それらは(第
8A図及び第8C図に示されているように)枠領域52
内で互いに水平の関係で配列されている。
各枠領域54.56及び58は更により小さな枠領域を
含み、従って、より小さな枠領域の組枠領域であると考
えられる。具体的には、枠領域54は子枠領域60.6
2及び64に対しては組枠領域である。同様に、枠領域
56は子枠領域66及び68に対しては組枠領域である
。枠領域58は子枠領域70,72及び74に対しては
組枠領域である。子枠領域54.56及び58のそれぞ
れは、(第8B図に示されているように)垂直に配列さ
れている。木構造の第3のレベルでは、多くの枠領域は
下部ノード62.64.66.68及び70である。第
8A図を参照すれば、木構造の全ての下部ノードは、テ
キストを含んでいる。
木構造の箪4のレベルを見れば、枠領域60は子枠領域
61及び63に対して組枠領域である。子枠領域61及
び63は、枠領域60内で互いに水平に配列されている
。枠領域61及び63は下部ノー゛ドなので、テキスト
を含む。具体的には、枠領域61はrIR3No、Jと
いう言葉を、枠領域63はr3800Jという数字を含
んでいる。
(2)    レコード びテキストレコード書式の各
枠領域は、その枠領域の特徴を定義る、データのレコー
ドに関連付けられている。レコードの全セットはく第8
A図及び第8B図に示されているように)書式の階層木
構造を定義る、。
レコードは一般書式内の枠のそれぞれを結び付ける。本
発明に組み込まれたシステム(第1図)は、必要な情報
を書式の各枠領域に関連る、レコードに提供る、。各枠
領域に対る、レコードは、もしあれば、枠領域を含むよ
り大きな(親)枠領域の表示を含む。また、レコードは
枠領域が複数のよりちいさな枠領域(子)を含むかどう
かを示している。例えば、枠領域60に関連付けられた
レコードは、それが多くの枠領域(即ち、子枠領域61
及び63)を含んでいるということを示す。
そのレコードは、枠領域60内でそれに含まれているよ
り小さな枠′領域(即ち、63の61)が垂直に配列さ
れているか、又は水平に配列されているかを示している
。例えば、枠領域52のレコードは、枠領域52内で枠
領域54.56及び58が水平に配列されていることを
示す。しかし、枠領域54に対る、レコードは、枠領域
54内で枠領域60.62及び64が垂直に配列されて
いることを示す。また、枠領域58に対る、レコードは
、枠領域58内で枠領域70.72及び74カ垂直に配
列されていることを示す。枠領域の配向は、本発明の好
ましい実施例を、一般書式への変更を適正に調整る、こ
とを可能にる、ために重要である(更にすぐ後で議論さ
れるであろう)。
枠領域のレコードは、その枠領域に他の枠領域のどれが
順に隣接しく水平に配列されている枠領域の前及び次、
垂直に配列されている枠領域の上及び下)、及びどれが
同じ組枠領域に含まれているか(「兄弟」枠領域)を示
している。例えば、枠領域56は枠領域54及び58の
両方に隣接している。また、枠領域62は、枠領域62
の上及び下にある枠領域60及び64に隣接している。
レコードはその枠領域の含まれるより小さな枠領域(子
)の数を含んでいる。例えば、枠領域54は3つの枠領
域60.62及び64を含んでいる。
レコードはその枠領域の「幅」及び「高さ」によって枠
領域の大きさを示す。好ましい実施例では、幅及び高さ
は画素要素の単位で測定される。
好ましい実施例では、書式内の枠領域の配置又は位置も
、その枠領域に関連る、レコードに示されている。その
位置は、画素要素の単位で示された少なくとも1組のX
、Y座標で表される。枠領域の形状が矩形である場合に
は、各枠領域は2組の座標で示され、座標の組の一つは
枠領域の左上の角の位置を定義し、座標の他の組は枠領
域の右下の角の位置を定義る、。枠領域の位置を定義る
、ためには、このようにただ2組の座標の組がメモリに
格納される必要がある。枠領域のこの表現は、枠領域の
コード化された翻訳であると考えられる。この代わりに
、この矩形は枠領域の対向る、角の位置を示す2組の座
標によっても定義され得る。また、レコードは組枠領域
内の子枠領域の序数も示している。例えば、子枠領域5
4.56及び58は組枠領域52に含まれ、子枠領域5
4は第1の位置にあるとして示され、子枠領域56は第
2の位置にあるとして示され、及び子枠領域58は最後
の位置にあるとして示され得る。このレコードはこの情
報のサブセットを含むのみである。子枠領域の序数位置
は、本発明が目的物を処理る、時にそれを子枠領域に示
すのを可能にる、。
−設置穴内の各枠領域は、 (見えるか又は見えない)
枠線によって定義されるある境界を有している。この境
界は、特定の書式の各枠領域の外側の境界を、その枠領
域の形状を気にる、ことなく定義る、。第8A図の実施
例では、枠領域の枠は点線で示されている。枠は、その
太さ、色、ラウンドネス(roundness)、パタ
ーン(実線、点線、破線)等、制限されない様々な属性
を有している。
また、枠に関連る、属性は、その枠領域に関連る、レコ
ードに格納される。
好ましい実施例では、各枠領域レコードは、レコードポ
インタと呼ばれる他のデータ構造によって示・される。
レコードポインタは、レコードデータを含むデータ構造
に対る、アドレスを含んでいる。もし枠領域が子枠領域
を含んでいなければ、枠領域に対る、レコードは、テキ
ストポインタと呼ばれるデータ構造を含むであろう。テ
キストポインタは、他のデータ構造のアドレス、又は枠
領域内に含まれるテキストの特徴を記述る、レコード情
報を含むテキストレコードを含んでいる。
枠領域のテキストを編集る、ために、コンピュータの編
集能力テキストをどこへどの様に表示し、テキストをど
こへ格納る、かを知ることが必要である。表示、格納、
及び情報の編集は、完全な編集環境を定義る、テキスト
レコードに含まれている。例えば、アブブルマフキント
シs (Apple Macintosh)の環境下で
は、テキストが書かれる「目的矩形領域」と、テキスト
が見られる「視野矩形領域」とを指定る、ことにより、
テキストの編集の準備が行われる。テキストレコードは
目的矩形領域及び視野矩形領域の両方を含んでいる。テ
キストレコードの情報は、テキストを構成る、文字の各
′行の高さ、テキストを構成る、文字の総数、枠領域内
のテキストの行の数、文字のスタイル、書体のタイプ、
書体の大きさを示している。各文字は他の文字とは独立
の書体を有している。書体は書体のファミリ(ヘルベチ
力(Helvetlca)、カーリア(Courier
)等)、書体のスタイルの変形(太さ及び傾斜)、(陰
の様な)特別の効果の事象を含んでいる。この情報は、
水平幅内のテキストの改行を調整し、テキストの各行の
高さを積算る、ために枠領域が有しなければならない垂
直方向の長さを決定る、のに重要である。当業者は、特
定の領域のテキストの改行の要求を決定る、ための様々
な手法を熟知している。
テキストの各行のどこで文字が始まるのかを決定る、た
めに、最初の文字の位置がテキストレコードに格納され
ている。また、レコードは、テキストが枠領域の右、左
、上、下、又は中央にきちんと納められるように指示る
、インデイケータを含んでいる。例えばrGenera
l Business Credit (一般ビジネス
債権)」という言葉は、枠領域66の(垂直及び水平方
向の)中央に正しく設定されている。一方、rTent
ative Credit (−時債権)」という言葉
は、枠領域80の(水平方向の)左側に正しく設定され
ている。
3 リサイズ リフォームルーチン  9第9図は書式
の再演算及び線描のためのりサイズ/リフォームルーチ
ンのブロック流れ図である。
本質的にはこのルーチンは、特定の書式の大きさを決め
、線描る、ための他のプログラムを呼び出すための、最
も高いレベルのプログラムである。
具体的には、ブロック84で書式フィツトルーチン(第
10図)が、修正されている書式内の枠領域の大きさを
決めるために呼び出される。次に、ブロック86で表示
スクリーン5(第1図)上に新たに大きさが決められた
書式を表示る、ために、書式線描ルーチン(第1.1図
)が呼び出される。
次に、ブロック88でそのルーチンは処理を完了る、。
(4)  フィツトルーチン  lO 第10図を参照すれば、書式フィツトルーチンのよSり
詳細な議論が行われている。ブロック92では、修正さ
れている書式内の全ての枠領域とそれらの子孫枠領域(
子枠領域)のサイズ(即ち、幅及び高さ)を計算る、た
めに、フィツトセルルーチンセット(第13A図〜第1
3E図)が呼び出される。最初に幅が計算され、次にフ
ィツトセルルーチンセットの処理に従って高さが決めら
れる。書式フィツトルーチン(第9図)は、大きさが決
められるべき枠領域の幅、典型的には基本枠領域と呼ば
れる書式の最大の枠領域の窓表示幅を移行させる。木の
全体(枠領域と呼ばれる子孫の全て)の大きさを決める
フィツトセルルーチンセット(第13A図〜第13E図
)は、再帰的に復帰されることに注意すべきである。ブ
ロック94で、CRTのビットマツプ上の一般書式及び
その子孫枠領域の全ての配置又は位置を計算る、ために
、書式配置ルーチン(第12図)が呼び出される。ブロ
ック96で処理はりサイズ/リフォームルーチン(第9
図)のブロック86に復帰される。
(5)    ルーチン  11 第11図を参照すれば、書式線描ルーチンを表わす流れ
図が示されている。書式線描ルーチンの目的は、書式配
置ルーチン(第10図)によって決定された配置に従っ
て、再び大きさが決められた書式、及びその子孫枠領域
の全てを、ディスプレイスクリーン5上に表示る、こと
である。書式(基本枠領域)の枠が見えているか見えて
いないかく表示されていないか)が、ブロック100で
決定される。もし書式の枠領域が見えていなければ、処
理はブロック104へ続き、そこでセル線描ルーチン(
第18A図)が呼び出される。セル線描ルーチンは書式
の各枠領域の境界と中身を表示る、。書式の枠が見えて
いるときには、処理はブロック102へ続き、そこで書
式を囲む枠が線描される。次に、書式の枠領域のそれぞ
れの枠と中身を表示る、ために、ブロック104でセル
線描ルーチン(第15A図〜第15E図)が呼び出され
る。次にブロック106で処理はりサイズ/リフォーム
ルーチン(第9図)のブロック88へ復帰される。
く6)    ルーチン  12 第12図は書式(基本枠領域)を囲む枠の位置及び配置
を決定る、書式配置ルーチンの流れ図である。基本枠領
域は、例によって書式の最大の枠領域であり、ディスプ
レイの窓の左上の角に、初期座標値0.0を有している
。ブロック110で、基本枠領域に含まれる子孫枠領域
全ての位置を決めるために、セル配置ルーチンセット(
第16A図〜第16F図)が呼び出される。次に、プ0
.2り112で処理は書式フィツトルーチン(第1O図
)のブロック96へ復帰される。
第13A図、第13B図、第13C図、第13D図、及
び第13E図は、フィツトセルルーチンセットを表わす
流れ図である。以下の議論はフィツトセルルーチンセッ
トの働きと原理の要約を提供る、。フィツトセルルーチ
ンがどの様に働(かの詳細な実施例については、セフシ
ロンB(8)で述べる。フィツトセルルーチンセットの
目的は、上述のように、書式の各枠領域の大きさ(即ち
、幅と高さ)を計算る、ことである。フィツトセルルー
チンセットルーチンは、好ましい実施例のルーチンの最
も重要なセットである。なぜなら、それは書式内の変化
を調整る、ために、互い関係る、各枠領域に必要な空白
を決定る、からである。
ディスプレイスクリーン上の利用できる水平方向の窓に
よって、典型的に水平方向に閉じ込められている基本枠
領域の幅は、最初は書式フィツトルーチン(第10図)
からフィツトセルルーチン(第13A図〜第13E図)
へ移行される。基本枠領域内の次のレベルの子枠領域が
テキストを含んでいなければ、フィツトセルルーチンは
これらの子枠領域水平に配列されているか垂直に配列さ
れているかを決定る、。基本枠領域の高さの実際の決定
は、子枠領域の配列方向に依存る、であろう。
しかし、子枠領域の配列方向を気にる、ことなく、基本
枠領域内の第1の子枠領域が指定され、そしてこの子枠
領域の幅が決定される。次に、フィツトセルルーチン(
第13A図)は、第1の子枠領域を示すポインタによっ
て自分自身を再帰的に呼び出し、その構造の最低部のノ
ードへの途中で子孫枠領域の幅を決定して、幅を計算る
、。
最低部のノード(即ち、テキストを含む枠領域)に出会
うと、テキストを含む枠領域の高さが、テキストの行の
数と各行の高さの関数として決定される。ひとたび最低
部の枠領域の高さが決定されると、その枠領域の関連る
、レコードに以前に計算された幅と共に格納される。そ
の枠領域に関連る、兄弟とそれらの子孫枠領域がもしあ
れば、それぞれに対る、大きさは、同様に計算され格納
される。特定の載枠領域の全ての子枠領域の大きさが決
定されると、載枠領域の高さが計算され得る。
次に、載枠領域の高さ及び幅の両方が、載枠領域に関連
る、レコードに格納される。この再帰的プロセスは、基
本枠領域の枠領域又は子孫枠領域の全てが計算されるま
で、縦横に続けられる。最後のステップは、元の基本枠
領域、又は子孫枠領域の高さの計算である。
子枠領域を含む載枠領域の高さは、水平方向に配列され
た子枠領域よりも、垂直方向に配列された子枠領域に対
して決定される。垂直方向に配列された子枠領域を含む
枠領域に対して、各子枠領域の高さが積算され、子枠領
域間の余白、余白(枠領域の内側の空白)、及び枠が同
様に付は加えられる。もし子枠領域が水平に配列されて
いると、最大の高さ(プラス余白と枠)を有る、子枠領
域が載枠領域の高さであるとして決定される。このよう
に、組枠領域は子枠領域に適合し得るように保証されて
いる。また、この最大の高さは、議論されるであろうセ
ル配置ルーチンによって整列の目的で用いられる。
好ましい実施例では、兄弟枠領域に対して垂直に配列さ
れている子枠領域の幅は、その組枠領域より境界分だけ
小さい幅に等しくなるように決定される。他方、水平に
配列された子枠領域の幅は、増加し又は減少した組枠領
域の合計幅と同様の比率で各子枠領域の幅の再分配(増
加又は減少)る、ことによって決定される。要る、に、
書式の木表現の全ての技に於ける各枠領域の幅は、その
枝を下って(即ち、その枝の最低部に到達る、までに)
子枠領域に出会ったときに計算される。しかし、各枠領
域の高さはその枝を戻る(即ち、その枝の最低部のノー
ドに到達した後に)途中で計算される。幅及び高さは、
高さが計算されるとその枠領域に関連る、レコードに格
納される。
(a)フィツトセルルーチン  13A第13A図、第
13B図、第13C図、第13D図、及び第13E図を
参照すれば、フィツトセルルーチンルーチンの詳細な議
論が表されている。
とりわけ、第13A図はフィツトセルルーチンの処理の
最高レベルルーチンを表わす。最初に、基本枠領域のポ
インタがフィツトセルルーチン(第13A図)に移行さ
れる。ブロック116(第13A図)で、2つの境界(
2×(枠子余白))(現在処理されている枠領域内に垂
直に配列された枠領域に対る、上部及び下部の境界、又
は水平に配列された枠領域に対る、左又は右の境界)を
、合計幅から差し引くことにより、この基本枠領域(又
は現在処理されている枠領域)の子枠領域に残された合
計の余白が決定される。次に、ブロック118では、子
枠領域の数より1小さい数に子枠領域間の余白の定数を
掛けて計算る、ことにより、子枠領域間の合計の余白が
決定される。−例として、余白定数は一画素の幅として
定義される。
次に、枠領域がテキストを含むか、又は複数の子枠領域
を含むかの決定が、ブロック120で行われる。枠領域
がテキストを含む場合には、ブロック122でテキスト
セルの大きさ計算ルーチン(第13B図)が呼び出され
る。テキストを含む子枠領域の大きさはテキストセルの
大きさ計算ルーチン(第13B図)によって計算され、
処理はブロック128で書式フィツトルーチン(第10
図)のブロック94に復帰されるか、又は、処理はブロ
ック150の垂直セルの大きさ計算ル−チン(第13c
図)若しくはブロック190の子枠領域幅再配分ルーチ
ン(第13ETIA>の何れかの、フィ・ットセルルー
チン(第13A図)の再帰的な最終呼出の位置に復帰さ
れる。
ブロック120に戻って、もし枠領域の中身が複数のよ
り小さな枠領域であると決定されると、その子枠領域は
水平に配列されているか垂直に配列されているかの決定
が更に行われる。もし子枠領域が垂直に配列されている
なら、処理はブロック126へ続く。ブロック126で
垂直セルの大きさ計算ルーチン(第13C図)が呼び出
される。
垂直セルの大きさ計算ルーチン(第13C図)は現在処
理されている枠領域の高さを決定し、処理はブロック1
28へ続き、書式フィツトルーチン(第10図)のブロ
ック96へ復帰されるか、又は、処理は垂直セルの大き
さ計算ルーチン(第13C図)のブロック150、若し
くは子枠領域幅再配分ルーチン(第13E図)のブロッ
ク190の何れかの、フィツトセルルーチン(第13A
図)の再帰的な最終呼出の位置に復帰される。しかし、
もし含まれる子枠領域が水平に配列されていると決定さ
れるさ、ブロック124で水平セルの大きさ計算ルーチ
ン(第13D図)が呼び出される。
枠領域の大きさが決定されると、処理はブロック12日
で書式フィツトルーチン(第1θ図)のプロ7°り96
へ復帰され、又は、処理は垂直セルの大きさ計算ルーチ
ン(第13C図)のブロック150、若しくは子枠領域
幅再配分ルーチン(第13E図)のブロック190の何
れかの、フィツトセルルーチン(第13A図)の再帰的
な呼出の位置に復帰される。
(b)テキストセルの きさ6 ルーチン工1上l旦盟
L 第13B図にテキストセルの大きさ計算ルーチンが示さ
れている。ブロック132でテキストの配置パラメータ
を計算る、ためにルーチンが呼び出される。このような
パラメータは、テキストの改行の位置、テキストの適正
化、行の数、及び各行の高さ等を含んでいる。テキスト
の改行の実施例は、第6A図及び第6B図に関連して示
されている。「改行」は標準のコンビエー夕のオペレー
ティングシステムによって典型的に提供されるワードプ
ロセシング能力であると考えられ、又は当業者によって
特別に設計され得る。テキスト行の水平の長さが増加し
たときは、テキストは次のテキスト行に改行る、ように
強いられることを思いだしなさい。改行ルーチンは、そ
のルーチンがテキストの各単語のはじめと終わり、及び
テキスト行の長さを知るように設計されている。ここに
示されている実施例では、改行が単語を途中で分割して
起こらないように、さもなければ、改行ポイントにハイ
フンが附されるように設計される。テキストパラメータ
が決定された後、処理はテキストセルの高さを決定る、
ためにブロック133(「テキストの高さ決定(TEX
THITE) J機能)へ続く。テキストを含む枠領域
内に文字の行があるかどうかの決定が、ブロック134
でなされる。もし枠領域内にテキストがなければ、処理
はプロ・ツク136へ続き、ここで高さ積算器が省略値
として一行の高さに等しく設定される。この手法は、空
の枠領域の高さが少なくともテキストの一行の高さであ
ることを保証る、であろう。
枠領域内にテキストの行があれば、処理はブロック13
8へ続き、ここで高さ積算器はテキストの各行の高さの
行数倍に等しく設定される。好ましい実施例では、テキ
ストの各行は同一の一定値を有る、が、本発明の他の実
施例では、テキストの各行は様々な高さを有し、その高
さは合計高さを決定る、ために積算される。セル内にテ
キストが存在る、か存在しないかにかかわらず、処理は
ブロック140に続く。ブロック140では枠領域の幅
がその枠領域に関連る、レコードに格納され、次に、ブ
ロック142で枠領域の高さもまた格納される。また、
好ましい実施例では、枠領域の含まれる余白は計算され
た高さに加えられる。
処理はブロック143へ続き、そこで処理はフィツトセ
ルルーチン(第13A図)のブロック128へ復帰され
る。
第13A図は垂直セルの大きさ計算ルーチンの流れ図で
ある。このルーチンの目的は、垂直に配列された子枠領
域を含む枠領域の合計高さを決定る、ことである。具体
的には、ブロック146で高さ積算器は子枠領域間に用
いられている余白に等し゛く設定される。次に、ブロッ
ク148でポインタが組枠領域の最初の子枠領域に設定
される。
組枠領域に関連る、レコードはその組枠領域内に含まれ
る子枠領域の順序の位置のポインタを含んでいることを
思いだしなさい。次に、ブロック150でフィツトセル
ルーチン(第13A図)が再帰的に呼び出される。この
再帰的呼出の目的は、最初の子枠領域の大きさを決定る
、ことである。
好ましい実施例では、スタックの配置は、大きさが決め
られている現在処理されている枠領域を示し、−時的に
格納されているポインタを維持る、。
これに加えて、最終の呼出のポインタが、フィツトセル
ルーチンが実行される前に、LIFO(後入れ先出し)
スタックに格納される。
子枠領域(及びもしあればその子孫枠領域の全て)の大
きさが呼び出されたフィツトセルルーチンによって決定
され、処理はブロック152に続く。処理が再帰的呼出
からブロック152に復帰されると、現在処理されてい
る枠領域のポインタがスタックからポツプされる。ブロ
ック150で計算された子枠領域の高さは、ブロック1
52で垂直枠領域の高さ積算器に加えられる。ブロック
154でポインタは組枠領域内の次の順序の位置に移さ
れる。組枠領域内の全ての子枠領域の大きさが決定され
たかどうかについての決定が、ブロック156でなされ
る。子枠領域の全ての大きさが決定されていなければ、
処理は各子枠領域の大きさが決定されるまで、ブロック
150,152、154、及び156を継続る、。全て
の子枠領域の大きさが決定されると、処理はブロック1
58に続く。ブロック158では載枠領域の幅がその関
連る、レコードに格納され、次に、ブロック160で載
枠領域の新たに計算された高さが、関連る、レコードに
格納される。好ましい実施例では、載枠領域に含まれる
余白は、積算された子枠領域の高さ及び子枠領域間の余
白に加えられる。処理はブロック162でブロック12
8のフィツトセルルーチン(第13A図)に復帰される
第13D図は水平セルの大きさ計算ルーチンを示す。こ
のルーチンの目的は、子枠領域が垂直に配列されている
載枠領域の大きさを決定る、ことである。具体的には、
ブロック166で最大の高さがゼロに設定される。次に
、ブロック168で各子枠領域の旧の幅が(再び大きさ
が決められる前に)積算され、積算された旧の(合計)
幅が格納される。次に、ブロック170で子枠領域間の
余白(これは第13A図のブロック11gで計算された
)が、子枠領域に残された新たな全余白から推定される
。次に、ブロック172でポインタが組枠領域内の最初
の子枠領域に等しく設定され、ブロック174で子枠領
域幅再配分ルーチン(第13E図)が呼び出される。こ
のルーチンの目的は、個々の子枠領域のそれぞれに新た
な合計幅を配分る、ことである。それに加えて、このル
ーチンは現在処理されている全ての子孫枠領域大きさを
決定し、そしてどの子枠領域が最大の高さを有している
かを決定る、。処理はブロック176に続き、そこでポ
インタは次の子枠領域に移され、次に、再配分されるべ
き載枠領域の他の子枠領域が存在る、かどうかの決定が
、ブロック178でなされる。再配分すべき子枠領域が
まだ存在すれば、全ての子枠領域が再配分されるまで、
処理はブロック174.176、及び178で継続され
る。全ての子枠領域が再配分されると、処理はブロック
180及び182に続く。ブロック180では載枠領域
の幅がその枠領域に相当る、レコードに格納され、ブロ
ック182で載枠領域の高さがその枠領域のレコードに
格納される。先に述べたように、枠領域の高さは議論さ
れるべき子枠領域幅再配分ルーチン(第13E図)で計
算される。
好ましい実施例では、この高さは組枠領域内の余白を含
むように調節される。処理はブロック184でフィツト
セルルーチン(ilaA図)のブロック128に復帰さ
れる。
113E図は子枠領域幅再配分ルーチンの流れ図である
。上述のように、このルーチンの目的は、子枠領域の全
てに用い得る合計幅(粗砕領域幅より余白分生さい)を
、個々の子枠領域に配分る、こ七である。現在指示され
ている子枠領域の新たな幅が、ブロック188で決定さ
れる。これは、子枠領域の旧の幅に、(先にブロック1
68(第13D図)で計算された)載枠領域の旧の合計
幅に対る、、(先にブロック170(第13D図)で計
算された)載枠領域の新たな合計幅の比を掛けることに
より決定される。次に、全ての子孫枠領域の大きさ、及
び現在処理されている子枠領域の高さを計算る、ために
、ブロック190でフィツトセルルーチン(第13A図
)が呼び出される。
次に、呼出は最後の命令の位置に従うて、現在処理され
ている枠領域に復帰され、この同じ情報がスタックから
「ポツプ」される。処理はブロック192へ続き、そこ
で、このときに処理されている組枠領域内の先の子枠領
域の全てより大きな高さを、現在処理している子枠領域
が有しているかどうかの決定がなされる。現在処理され
ている子枠領域がより大きな高さを有しているならば、
処理はブロック194へ続き、そこで子枠領域の高さ(
最大高さ)が、先に決定された最大高さを置き換えて格
納される。処理はプロ・ツク196へ続き、そこで処理
は水平セルの大きさ計算ルーチン(第13D図)のブロ
ック176へ復帰される。
子枠領域幅再配分ルーチンのブロック192に戻って、
もし新たに処理される子枠領域が、先の最大値よりも大
きな高さををしていなければ、処理はブロック196へ
続き、そこで処理は水平セルの大きさ計算ルーチン(第
13D図)のブロック176へ復帰される。
第13A図、第13B図、第13C図、第13D図、第
13E図、第14A図、第14B図、第15A図、第1
5B図、及び第15C図を参照すれば、フィツトセルル
ーチンの動きの詳細な実施例が開示されている。第14
A図は第8A図に示されている書式の左上の角の引き延
ばし版を示している。第8A[の書式は、枠領域の枠を
表わす点線で示されている画素を強調る、ために引き延
ばされている。それに加えて、この実施例のために、書
式(第14A図)は僅かに拡大されているように思われ
る。含まれる多(の枠領域もまた拡大されている。この
実施例は本発明による枠領域の大きさの決定のための手
法を実証している。第14B図は、各枠領域の旧及び新
の幅と各枠領域の中身に従って、書式(第14A図)を
表で表したものである。・全ての情報は絵素又は画素の
単位で表現されている。各枠領域の枠は、1画素の枠と
2画素の余白を含んでいる。余白は各枠領域の枠のすぐ
内側に隣接る、空白からなる。第15A図、第15B図
、及び第15C図は、スタックの中身と現在処理されて
いる枠領域を表にした結果を示している。この表の各列
は、現在処理されている枠領域及び/又はスタックの中
身の変化を表現している。この実施例では、枠領域52
内の枠領域の大きさ決定のみの計算が行われる。書式5
0の残りの大きさの決定は、枠領域52で議論したのと
同様の方法で行われるであろう。
フィツトセルルーチンの詳細な議論の前に、第14A図
に示される書式の上部内の各枠領域の大きさを計算る、
ための全体に亘る働きを記述る、短い要約が議論されて
いる。処理は書式フィツトルーチン(第10図)による
基本枠領域50の新たな幅の決定から始まる。次に、枠
領域52の幅が垂直セルの大きさ決定ルーチン(第13
C図)によって決定される。次に、枠領域54の幅が水
平セルの大きさ決定ルーチン(第13D図)によって決
定される。処理は第8B図に示す階層木構造を枠領域6
0へ向けて下方へ続き、その幅が垂直セルの大きさ決定
ルーチン(第13C図)によって決定される。処理は木
の新たな下方のレベルに続き、そこで枠領域61の幅が
水平セルの大きさ決定ルーチン(第13D図)によって
決定され、次に枠領域61の高さがテキストセルの大き
さ決定ルーチン(第13B図)によって決定され、格納
される。処理は枠領域63に続き、その幅を垂直セルの
大きさ決定ルーチン(第13C図)が決定し、枠領域6
3の高さがテキストセルの大きさ決定ルーチン(第13
B図)によって決定される。
処理は枠領域60に復帰され、その高さが水平セルの大
きさ決定ルーチン(第13D図)によって決定され、格
納される。枠領域61及び63のうち、最大の高さが枠
領域60の高さとして割り当てられる。次に枠領域62
の幅が水平セルの大きさ決定ルーチン(第13D図)に
よって決定され、枠領域62の高さがテキストセルの大
きさ決定ルーチン(第13B図)によって決定される。
同様に、枠領域64の幅が水平セルの大きさ決定ルーチ
ン(第13D図)によって決定され、枠領域64の高さ
がテキストセルの大きさ決定ルーチン(第13B図)に
よって決定される。枠領域54の高さが、枠領域60,
62及び64の高さが積算される垂直セルの大きさ決定
ルーチン(第13C図)によって決定される。枠領域5
6及び58の高さ及び幅が決定されると、枠領域52の
幅が水平セルの大きさ決定ルーチン(第13D図)によ
って決定される。このルーチンでは枠領域54.56又
は58の何れが最大の高さを有しているかが決゛定され
、枠領域52がこの最大値に割り当てられる。最後に、
枠領域51,52.53.55.57等の高さ及び幅が
決定されると、基本枠領域50の高さが、垂直セルの大
きさ決定ルーチン(第13C図)によって、枠領域51
,52.53.55.57等の全ての高さが積算されて
決定される。この時点で、書式全体の大きさが再計算(
reslze)され、即ち、書式内の各枠領域の幅及び
高さが再計算されたことになる。以下はこのプロセスの
より詳細な記述である。
書式フィツトルーチン(第1θ図)を参照すれば、ブロ
ック92で書式の基本枠領域(即ち、最大の枠領域)の
新たな幅が決定される。基本枠領域の幅が520画素、
即ち、表示窓(第14B図の199)の大きさであると
決定される。処理はフィツトセルルーチン(第13A図
)のブロック116へ続(。ブロック116では、枠領
域50内の残りの子枠領域52.51,53.55.5
7.59.61等の合計幅が、514画素(第14B図
の200)であると決定される。プロ・ツク118で、
各子枠領域54.56及び58の間の余白が11画素で
あると決定される。これは、子枠領域の数(12)より
1小さい数に、余白定数1画素を掛けた値である。ブロ
ック120で、枠領域50の中身が垂直に配列されてい
ることが決定される。従って、処理はブロック126へ
続(。
ブロック126では垂直セルの大きさ決定ルーチン(第
13C図)が呼び出される。
ブロック146(第13C図)では、高さ積算器が上で
決定された子枠領域間の余白(11画素)に等しく設定
される。ブロック148では、ポイタが枠領域50の最
初の子枠領域、即ち、枠領域52(第15A図の220
)に設定される。ブロック150でフィツトセルルーチ
ン(第13A図)が再帰的に呼び出される。この再帰的
呼出の間、枠領域52を示すポインタ、及び再帰的呼出
(ブロック150(第13C図))の位置を示すポイン
タは、スタック(第15A図の220)にブツシュされ
る。この時点では、スタックにはただ1つ、即ち、枠領
域52(第15A図の228)Lか存在しない。
処理はフィツトセルルーチン(第13 A図) (7)
ブロック116へ続き、そこで載枠領域52内の残りの
子枠領域の合計幅が、508画素であると決定される。
上述のように、枠領域52の新たな幅は、514画素よ
りその幅の両側の境界分、即ち、6画素(2X1(枠)
+2X2 (余白))だけ小さくなるように決定される
(第14B図の200)。ブロック118で、各子枠領
域52.56及び58の間の余白が2画素であると決定
される。これは、子枠領域の数より1小さい数に、余白
定数1画素を掛けた数である。ブロック120で、枠領
域52の中身が水平に配列されていることが決定される
。従って、処理はブロック124続き、そこで水平セル
の大きさ決定ルーチン(第13D図)が呼び出される。
ブロック166(第13D図)で、最大高さ積算器がゼ
ロに設定される。ブロック168で、枠領域52内の各
子枠領域の旧の幅が積算される。
具体的には、枠領域54の旧の幅(99画素)、枠領域
56の旧の幅(280画素)、枠領域58の旧の幅(9
9画素)が互いに加えられる。子枠領域54.56及び
58の積算された旧の合計幅は、486画素である。こ
の旧の幅は、WIDTHLEF丁と呼ばれる変数に格納
される。処理はブロック170へ続き、そこで子枠領域
間の余白が子枠領域54.56及び58に残された新た
な合計の幅から差し引かれる。子枠領域間の余白は2画
素であり、従つて、合計の余白を除いた残りは506画
素である。新たな合計の幅は、PITLEPTと呼ばれ
る変数に格納される。ブロック172でポインタは枠領
域52内の最初の子枠領域(第15A図の222)に設
定される。最初の子枠領域は枠領域54である。処理は
ブロック174へ続き、そこで子枠領域幅再配分ルーチ
ン(第13E図)が呼び出される。
処理はブロック188へ続き、子枠領域54の新たな幅
が、弐 Old Width (旧の幅) X (PI
TLEPT/WI DTIILEFT)によって計算さ
れる。上記で決定されたように、枠領域54のOld 
Width (旧の幅)は9°9画素、PITLEPT
は506画素、WIDTIILEPTは486画素であ
る。枠領域54の新たな幅は、103画素である(第1
4B図の202)。処理はブロック190へ続き、そこ
でフィツトセルルーチン(第13A図)が再帰的に呼び
出される。再帰的呼出は、スタ・ツクに置かれた枠領域
54を指すポインタ、及びフィツトセルルーチンブロッ
ク190(第13C図)(第15A図の224)を再帰
的に呼び出すためのポインタを要求る、。
第13A図のブロック116を参照すれば、枠領域54
内の子枠領域に残された新たな合計の余白が、枠領域5
4の新たな幅から境界を差し引くことにより計算される
。枠領域54の新たな幅は103画素であり、境界は6
画素である。従って、この子枠領域に残された幅は97
画素である(第14B図の204)処理はブロック11
8へ続き、そこで子枠領域間の余白が2画素であると計
算される。
ブロック120では、枠領域54の中身が垂直に配列さ
れていると決定され、従って、処理はブロック126へ
続く。ブロック126では、垂直セルの大きさ計算ルー
チン(第13C図)が呼び出される。ブロック146(
第13C図)で、高さ積算器が上述で決定されたように
子枠領域間の余白に等しく設定される。ブロック148
でポインタが枠領域54又は枠領域60(第15A図の
226)最初の子枠領域に設定される。次に、プロ・ツ
ク150でフィツトセルルーチン(tlaA図)の再帰
的呼出が行われる。この再帰的呼出の間に、枠領域60
を指すポインタ及びブロック150を指すポインタは、
スタック(第15A図の228)上にブツシュされる。
この時点ではスタック上に3つの入力が存在る、。即ち
、(1)枠領域60、(2)枠領域54、及び(3)枠
領域52(第15A図の202)である。
処理はブロック116(第13A図)へ続き、そこで枠
領域60の子枠領域に残された合計幅が、新たな合計幅
から境界を差し引(ことにより計算される。枠領域60
の新たな合計幅は97画素であり、境界は6画素である
。従って、残された利用できる幅は91画素である。次
に、ブロック118で、子枠領域間で用い尽(された余
白は1画素であると決定される。枠領域60の中身が水
平に配列されていると、ブロック120で決定される。
処理はブロック124へ続き、そこで水平セルの大きさ
決定ルーチン(第13D図)が呼び出される。
処理はブロック166(第13D図)へ続き、そこで最
大高さがゼロに設定される。ブロック168では、子枠
領域61及び63の旧の合計幅が決定される。子枠領域
61の旧の幅は21画素であり(第14B図の210)
、子枠領域63の旧の幅は49画素であった。従って、
旧の合計幅は70画素に設定される。処理はブロック1
70へ続き、そこで子枠領域61及び62の間の余白が
、使用し得る合計幅から差し引かれる。使用される余白
は第13A図のブロック118で1画素と計算され、従
って、残された合計幅は90画素である。ブロック17
2でポインタが子枠領域61(第15A図の230)に
設定される。次に、ブロック゛174で子枠領域幅再配
分ルーチン(第13E図)が呼び出される。
ブロック188(第13E図)では、枠領域61の新た
な幅が27画素であると決定される。処理はブロック1
90へ続き、そこでフィツトセルルーチン(第13A図
)が再帰的に呼び出される。
このとき、スタックはその上に置かれた第4のポインタ
を有し、それは枠領域61及びブロック190(第13
E図)の再帰的呼出の位置を示すポインタである(第1
5A図の232)。
処理はフィツトセルルーチンのブロック116(第13
A図)へ続く。ブロック116では、枠領域61の中身
に残された合計幅が22画素であると決定される。どん
なにテキストを有る、枠領域のための計算に用いられた
余白が無意味でも、そして計算された数値が用いられな
くとも、処理はブロック118へ続(。ブロック122
では、中身がテキストであると決定され、テキストの大
きさ計算ルーチン(第13B図)が呼び出される。
処理はブロック132(第13B図)へ続き、そこで枠
領域内のテキストの配置パラメータが計算される。ブロ
ック134では、枠領域61内にはテキストが存在しな
いことが決定される。処理はブロック13gへ続き、そ
こで各行の高さに行数が掛けられる。各行の高さは13
画素であり行数は2である。枠領域61の合計高さは2
6画素であると計算される。処理はブロック140へ続
き、そこで枠領域61の新たな幅27画素が枠領域61
に関連る、レコードに格納される。ブロック142では
、枠領域61の境界がブロック138で計算された高さ
に加えられる。境界は6画素を含む。従って、合計高さ
は32画素に等しく設定される。高さの値は枠領域61
に関連る、レコードに格納される。ブロック143で、
処理はフィツトセルルーチン(第13A図)のブロック
128へ復帰される。フィツトセルルーチンは再帰的呼
出の間に呼び出され、再帰的呼出が行われた時にどこで
処理が終了る、かを決定る、ために、最後にスタックに
プツシ−されたポインタがポツプされなけらばならない
ことを思い出しなさい(第1’5A図の232)。スタ
ックにブツシュされた最後のポインタは、子枠領域幅再
配分ルーチン(第13E図)のブロック190のフィツ
トセル再帰的呼出である(第15B図の234)。処理
は子枠領域幅再配分ルーチンへ復帰され、ブロック19
2へ続き、そこで枠領域61の計算された高さが最大の
高さであることが決定される。従って、処理はブロック
194へ続き、そこで最大高さ変数が32画素に等しく
設定される。処理はブロック196へ続き、そこで処理
は水平セルの大きさ決定ルーチン(第13D図)のブロ
ック176に復帰される。
ブロック176では、ポインタが枠領域60内の次の枠
領域63へ移される(第15B図の236)。ブロック
178で、枠領域60の全ての子枠領域が再配分されて
いないことが決定され、従って、処理はブロック174
へ続く。ブロック174で、子枠領域幅再配分ルーチン
(第13E図)が呼び出される。
ブロック188で、枠領域63の新たな幅が、旧の幅に
、子枠領域に残された旧の合計幅に対る、新たな合計幅
の比を掛けて計算る、ことにより決定される。残りの新
たな合計幅は90画素であったこと、及び残された旧の
幅が70画素であったことを思い出しなさい。従って、
枠領域63の旧の幅(49画素)に、枠領域63の旧の
合計幅に対る、新たな合計幅の比(90/70)が掛け
られて、結果として64画素が得られる(第14B図の
212)。処理はブロック190へ続き、そこでフィツ
トセルルーチンが再帰的に呼び出される。枠領域63及
びブロック190(第13E図)のフィツトセルルーチ
ン呼出の位置を指すポインタが、スタック上にプツシ−
される(第15B図の238)。処理はフィツトセルル
ーチン(第13A図)のブロック116へ続く。ブロッ
ク116では、枠領域63に残された余白が、63画素
より6画素少ないと計算される。次に、ブロック118
で、枠領域63内には子枠領域が存在しないことがブロ
ック120で決定される。ブロック122でテキストセ
ルの大きさ計算ルーチン(第°13B図)が呼び出され
る。
処理はブロック132(第13B図)へ続き、そこで枠
領域63のテキストの配置パラメータが決定される。次
に、ブロック134で、枠領域63内に1行のテキスト
があることが決定される。
処理はブロック138へ続き、そこでテキストの1行の
高さ、26画素に、行数1が掛けられる。
従って、高さは26画素であると決定される。次に、ブ
ロック140で、枠領域63ために計算された新たな幅
63画素が、枠領域63に関連る、レコードに格納され
る。ブロック142で、境界の6画素がブロック138
で決定された高さに加えられ、従って、高さは32画素
である(第14B図の212)。処理はブロック143
でフィツトセルルーチン(第13A図)のブロック12
8へ復帰される。フィツトセルルーチン(ilaA図)
は再帰的に呼び出され、従って、最後にスタックにブツ
シュされたポインタがポツプされる(第15B図の24
0)。スタック上の最後のポインタは枠領域63のため
にあり、その再帰的呼出が子枠領域幅再配分ルーチン(
第13E図)のブロック190で行われる(第15B図
の238)。
処理は子枠領域幅再配分ルーチン(第13E図)のブロ
ック192へ続(。ブロック192では、枠領域63の
高さが格納されている最大高さと比較され、枠領域63
の高さが最大高さより大きいかどうかが決定される。最
大高さ32画素は枠領域63の高さに等しく、従って、
処理はブロック196へ続く。処理はブロック196で
、水平セルの大きさ計算ルーチン(第13D図)のブロ
ック176へ復帰される。ブロック176で、ポインタ
が枠領域内の次の子枠領域に移される。ブロック178
では、枠領域60内には処理すべき子枠領域が存在しな
いことが決定され、従って、処理はブロック180へ続
く。ブロック180では、枠領域60のために計算され
た新たな幅97画素が、枠領域60に関連る、レコード
に格納される(第14B図の206)。ブロック182
では、枠領域60の境界のためにその高さに6画素が加
えられる。従って、枠領域60の合計高さは38画素と
なる。次に、枠領域60の高さが枠領域60に関連る、
レコードに格納される。処理はブロック180でブロッ
ク128のフィツトセルルーチンへ復帰される。もう−
度フィ・ットセルルーチンが再帰的に呼び出され、復帰
は再帰的である。
スタック上に残された次のポインタがポツプされ、この
ポインタは枠領域60、及び垂直セルの大きさ計算ルー
チン(第13C図)のブロック150のフィツトセルル
ーチン呼出を示すポインタである(第15B図の240
)。
処理は垂直セルの大きさ計算ルーチン(第13C図)へ
復帰され、プロ・2り152へ続く。ソコで枠領域60
の高さが高さ積算器(これは用いられる余白即ち、2画
素に設定されている)に加えられる。次に、ブロック1
54で枠領域54内のポインタが枠領域54の次の子枠
領域に移される。
次の子枠領域は枠領域62である(第15C図の242
)。ブロック156で、処理る、ために残された子枠領
域がまだあることが決定され、処理はブロック150へ
続く。ブロック150でフィツトセルルーチン(第13
A図)が再帰的に呼び出される。この時、枠領域62を
指すポインタは、再帰的呼出の位置を指すポインタ上に
置かれる(第15C図の244)。処理はブロック11
6(第13A図)へ続き、そこで枠領域62の中身に残
された合計幅が、合計幅98画素から境界の6画素を差
し引くことにより、決定される。ブロック118では枠
領域62に含まれる子枠領域がないことが決定される。
枠領域62の中身がブロック120でテキストであると
決定される。処理はブロック122へ続き、そこでテキ
ストセルの大きさ計算ルーチン(第13B図)が呼び出
される。
ブロック132(fi13B図)で、テキストのパラメ
ータが再計算され、ブロック134で、枠領域62内に
少なくとも1行のテキストが存在る、ことが決定される
。処理はブロック138へ続き、そこでテキストの高さ
が26画素であり、各テキストの行の高さが13画素で
あり、2行のテキストがあることが決定される(第14
Blilの206)。処理はブロック140へ続き、そ
こで枠領域62のために新たに計算された幅が、枠領域
62に関連る、レコードに格納される。ブロック142
では、枠領域62の境界のための6画素が高さの26画
素に加えられる。枠領域62の合計高さは32画素であ
る(第14B図の2o6)。
処理はブロック143でフィツトセルルーチン(第13
A図)のブロック128へ復帰される。フィツトセルル
ーチン(第13A図)は再帰的呼出の間に呼び出され、
スタック上の最後のポインタは、フィツトセル再帰的呼
出が枠領域62のために作成された第13C図のブロッ
ク150であることを示す。この入力はスタックからポ
ツプされる(第15C図の246)。処理はブロック1
52へ続き、そこで枠領域62の高さが高さ積算器に加
えられる。高さ積算器は72画素(用いられた余白=2
画素、枠領域60=38画素、枠領域62=32画素)
を有している。ブロック154で、ポインタが枠領域5
4内の次の垂直方向の子枠領域に移される(第15C図
の248)。ブロック156で処理すべき1つの子枠領
域、即ち、枠領域64がまだあることが決定される。処
理はブロック150へ続き、そこで再帰的にフィツトセ
ルルーチン(第15A図ンが呼び出される。枠領域64
を指すポインタ、及びこの再帰的呼出を指すポインタが
、スタックにブツシュされる(第15CEの250)。
処理はブロック116へ続き、そこで枠領域64の中身
に使用し得る残りの幅が、97画素であると決定される
。ブロック1l8で更に含まれる子枠領域の間に用いら
れる余白の大きさがゼロであると決定される。ブロック
120で枠領域64の中身がテキストであることが決定
される。処理はブロック122へ続き、そこでテキスト
セルの大きさ計算ルーチン(第13B図)の呼出が行わ
れる。
ブロック132(第13B図)で、枠領域64内のテキ
ストの配置パラメータが再び計算される。
ブロック134では、少なくとも1行のテキストが存在
る、ことが決定される。ブロック138では、テキスト
の高さが26画素であると決定される。2行のテキスト
があり、それぞれの行の高さはl・3画素である。ブロ
ック140では、新たな幅97画素が枠領域64のレコ
ードに格納される(第14A図の208)。ブロック1
42では6画素の境界が26画素の高さに加えられ、合
計32画素(第14A図の208)となり、これが格納
される。処理はブロック143でフィツトセルルーチン
(第13A図)のブロック128へ復帰される。このル
ーチンは再帰的呼出の間に呼び出され、スタック上の最
後のポインタがポ、ブされる(第15C図の250)。
スタック上のポインタは、垂直セルの大きさ計算ルーチ
ンのブロック150のフィツトセル再帰的呼出、及び枠
領域64を指している。処理は垂直セルの大きさ計算ル
ーチン(第13C図)のブロック152へ続き、そこで
枠領域64の高さが積算された高さに加えられる。積算
された合計の高さは104画素(用いられた余白=2画
素、枠領域60=38画素、枠領域62=32画素、及
び枠領域64=32画素)である。ブロック154で、
ポインタは次の垂直子枠領域に移され、ブロック156
で枠領域54′内にはもう子枠領域が存在しないことが
決定される。
処理はブロック154へ続き、そこで枠領域54の新た
な幅104画素が、枠領域54に関連る、レコードに格
納される(第14B図の202)。
ブロック160で、子枠領域間の余白を含む積算された
高さは、枠領域内の境界6画素に加えられる。枠領域5
4の合計高さは110画素である。
処理はブロック162でフィツトセルルーチン(第13
A図)のブロック128へ1帰される。フィツトセルル
ーチンは再帰的に呼び出され、スタック上の次のポイン
タがポツプされる(第15C図の252)。スタック上
のポインタは枠領域54のためにあり、参照される最後
の命令は、子枠領域幅再配分ルーチン(第13E図)の
ブロック190の再帰的呼出である(第15C図の25
0)。処理+tブロック192へ続き、そこでは最大高
さが枠領域54に対る、110画素に設定される。
ブロック196では、処理は水平セルの大きさ計算ルー
チン(第13D図)のブロック176へ復帰される。ブ
ロック176で、ポインタは枠領域52内の次の子枠領
域に移される(第15C図の254)。次の子枠領域は
枠領域56である。本質的には、このプロセスは枠領域
56及び58の幅及び高さが決定されるまで続けられる
。要約すれば、枠領域56の幅は300画素であると計
算され、枠領域58の幅は103画素であると計算され
る。枠領域54.56及び58の最大高さは、枠領域5
8で計算された140画素である。このように、枠領域
52の新たな幅は514画素であり、高さは146画素
(140画素プラス境界の6画素)である(第14B図
の200)。
第16A図、第16B図、第16C図、第16D図、第
16E図、及び第16F図を参照すれば、セル配置ルー
チンセットが議論される。以下はセル配置ルーチンセッ
トの背景の理論及び原理の要約である。セル配置ルーチ
ンセットの目的は、本発明によって再び大きさが決めら
れ、再線描された書式の各枠領域の位置(XY座標)を
決定る、ことである。枠領域の大きさは書式フィツトル
ーチン(gto図)及びフィツトセルルーチンセット(
第13A図〜第13E図)で決定されることを思い出し
なさい。書式配置ルーチン(第12図)は基本枠領域(
書式の最大の枠領域)を指示し、その境界位置が決定さ
れ、それらはセル配置ルーチンセット(第16A図〜第
16F図)に送られる。セル配置ルーチン(第16A図
)は基本枠領域の境界位置を格納し、基本枠領域内の全
ての子孫枠領域の境界位置を計算る、。このプロセスは
、書式の階層木構造の全てを下って最初に検索る、とき
に現れる。各レベルで、枠領域の中身がテキストである
か子枠領域であるかの決定がなされる。
もし枠領域が子枠領域を含むなら、更にその子枠領域が
垂直に配列されているか、水平に配列されているかの決
定が行われる。
もし子枠領域が水平に配列されているならば、水平に配
列されている各子枠領域の上部及び下部の枠の位置が、
組枠領域内に等しく、組枠領域の境界に丁度の位置に設
定される。各子枠領域の上部の枠は、組枠領域の上部枠
の位置、枠の幅、内側の余白に等しく設定される。各子
枠領域の下部の枠の位置は、組枠領域の下部の枠の位置
に等しく、より小さい枠の幅でより小さい余白で設定さ
れる。水平に配列された子枠領域の枠の位置は、上部及
び下部の粗砕の内側に丁度の位置に故意に互いに一線に
並べられ、子枠領域が組枠領域の上部及び下部の枠の内
側まで延びたように見える。
第8A図を参照すれば、水平に並んだ子枠領域54.5
6及び58の上部及び下部の枠が互いに一直線に並べら
れ、連続した上部及び下部の枠を作り出すようにされて
いることに注意を要る、。
枠領域54.56、及び58の垂直方向の長さ(上部か
ら下部への画素の数で測った長さ)は、(第8A図に示
されているように)これらの枠領域の高さとは子となっ
ていることに注意を要る、。
枠領域54に決められた高さは11010画素14B図
の202)であり、枠領域56に決められた高さは44
画素(第14B図の214)であり、枠領域58に決め
られた高さは14040画素14B図の216)である
ことを思い出しなさい。
上部及び下部の枠が互いに一直線に連続して並ぶことを
確実にる、ために、これらの枠の位置は最大の高さを有
る、兄弟枠領域を含むように選択される。枠領域58は
量大の高さ(14040画素有し、従って、枠領域54
.56及び58の垂直方向の長さは、少なくとも140
40画素ければならない。このことは枠領域54及び5
6に空白のスペースが現れることになる。なぜならそれ
らの中身の高さが14040画素直方向の長さよりも小
さいからである。例えば、枠領域54は垂直に配列され
た子枠領域60.62及び64を含み、それらの積算さ
れた高さが11010画素る。合計で300画素余分の
スペースは、中身が枠領域の上部、下部又は中程に並べ
られるかどうかに基づいて、子枠領域の上部及び下部に
与えられた方法で配分される(第8A図)。
垂直に配列された枠領域の配置の決定は、組枠領域内の
子枠領域の配列を決定る、ことから始められる。子枠領
域は組枠領域の上部、下部又は中程に配列される。この
配列は、(もしあれば)枠領域内の余分なフリースペー
スが、枠領域の上部、下部又は枠領域の間に配置される
かどうかに影響る、であろう。
先に述べたように、書式の枠領域の境界位置は、トップ
ダウンアプローチで決定される。最低部のノード(テキ
ストを含む境界領域)で、表示可能領域とテキスト線描
領域とが計算され格納される。
線描領域とはテキストが描かれる矩形の領域である。表
示可能領域とはその中に実際にテキストが見える矩形の
領域である。線描領域の両側は、テキストの各行のはじ
めと終わりとを決定し、その上部はテキストの最初の行
の位置を決定る、。典型的には、線描領域の右の枠でテ
キストが次の行に改行される。好ましい実施例では、単
語が長すぎて一行に完全に適合しないのでなければ、単
語は行の間に亘って分割されない。表示可能領域とテキ
スト線描領域の決定は、枠領域内のテキストが枠領域内
の上部、下部又は中程にどの様に配列されるかに依存る
、。
(a)セル  ルーチン  16A 配置ルーチン(第16A図、第16B図、第16C図、
第16D図、第16E図、及び第16F図)の詳細な議
論が、ここで行われる。第16A図を参照すれば、セル
配置ルーチンの流れ図が示されている。ブロック262
で現在処理されている枠領域の境界位置が移行され、そ
の枠領域に関連る、レコードに格納される。次に、プロ
・ツク264で現在処理されている枠領域が移動され、
結果として生じる領域の座標が決定される。より詳細に
は、書かれ得ない枠領域の境界の部分(即ち、枠そのも
のと余白)は枠領域から取り除かれ、結果として「内部
矩形」を生じ、この中に子枠領域またはテキストが書か
れる。処理はブロック266へ続き、そこで枠領域の中
身が決定される。もし枠領域の中身がテキストを含むな
らば、処理はブロック268へ続き、そこでテキストセ
ル配置ルーチン(第16B図)が、上記のようにテキス
トのための線描領域と表示可能領域とを決定る、ために
呼び出される。ブロック274で、処理は呼び出された
ルーチン(即ち、書式配置ルーチン、又は水平セル配置
ルーチン(第16C図)のブロック294若しくは垂直
セル配置ルーチン(第16D図)のブロック310の何
れかからのセル配置ルーチンへの再帰的呼出の位置)に
復帰される。
しかし、もし枠領域の中身が垂直に配列された子枠領域
を含むならば、処理はブロック270へ続き、そこで垂
直セル配置ルーチン(第16D図)が呼び出される。垂
直セル配置ルーチン(第16D図)はその垂直の組枠領
域内の関連る、各子枠領域の位置を決定る、。処理はプ
ロ・ツク274へ続き、そこで呼び出されたルーチン(
即ち、書式配置ルーチン、又は水平セル配置ルーチン(
第16C図)のブロック294若しくは垂直セル配置ル
ーチン(第16D図)のブロック310の何れか)に復
帰される。ブロック266へ戻って、もし枠領域の中身
が水平に配列されて子枠領域を含むなら、処理はブロッ
ク272へ続き、そこで水平セル配置ルーチン(第16
C図)が呼び出される。水平セル配置ルーチン(第16
c図)は各子枠領域の上部及び下部の境界のために「内
部矩形」を用い、次に組枠領域内の関連る、各子枠領域
のための左及び右の境界を決定る、。処理はブロック2
74へ続き、そこで処理は呼び出されたプログラム(即
ち、書式配置ルーチン、又は水平セル配置ルーチン(第
16C図)のブロック294若しくは垂直セル配置ルー
チン(第16D図)のブロック310の何れか)に復帰
される。
第16B図を参照すれば、テキストセル配置ルーチンの
流れ図が示されている。プロ・ツク278で表示可能領
域が、セル配置ルーチン(第16A図)のブロック26
4で先に決定された内部矩形に等しく設定される。次に
、ブロック280で、テキストセルの大きさ計算ルーチ
ン(第13B図)のブロック133に示されているよう
に、テキスト高さ決定ルーチンによって、枠領域内のテ
キストの積層された高さが決定される。枠領域内のテキ
ストの積算された高さを決定る、ために、行数に高さ定
数が掛けられる。次に、テキストが載枠領域の上部、中
程、又は下部に整列されているかどうかと、そしてテキ
ストの最上部の行の位置(即ち、線描領域の最初の行の
描きはじめの位置)に戻っているかをチエツクる、ため
に、ブロック282で適正化ルーチン(第16F図)が
呼び出される。組枠領域内のテキストの最上部の行の位
置は、ブロック284で矩形枠の新たな上部内部枠とし
て格納される。次にブロック286で枠領域の線描領域
が、載枠領域の内部矩形に等しく設定される。処理はブ
ロック288でセル配置ルーチン(第16A図)のブロ
ック274へ復帰される。
第16C図を参照すれば、水平セル配置ルーチンの流れ
図が示されている。上述のように、水平セル配置ルーチ
ン(第16C図)は、現在処理されている枠領域内の水
平に配列された兄弟枠領域のそれぞれの左及び右の境界
の位置を決定る、。
ブロック291で枠領域内の最初の子枠領域にポインタ
が設定される。ブロック292で現在処理されている枠
領域の最初の子枠領域の左の境界が、内部矩形の左の境
界に等しく設定される。次に、ブロック293で最初の
子枠領域の右の境界が、その枠領域の左の位置に、(フ
ィツトセルルーチンセラ)(ilaA図〜第13E図)
で決定された)その子枠領域の幅を加えることによって
、決定される。ブロック294で、最初の子枠領域内の
中身の配置を決定る、ために、セル配置ルーチン(第1
6A図)の再帰的呼出が行われる。最初の子枠領域とセ
ル配置ルーチンへの再帰的呼出の位置とを指すポインタ
(第16C図の294)が、フィツトセルルーチンセッ
ト(第13A図〜第13E図)のために導入されたスタ
ックと同じLIFOスタックに置かれる。この再帰的呼
出は、現在処理されている子枠領域の左、右、上部及び
下部の位置を、セル配置ルーチン(第16A図)へ移行
させる。子枠領域の左、上部及び下部の境界は、セル配
置ルーチン(第16A図)のブロック264で先に決定
された組枠領域の内部矩形に等しく設定され、右の境界
はブロック293で計算される。子枠領域の中身(即ち
、全ての子孫枠領域及びテキスト)が全て配置されたら
、処理はブロック296へ続き、そこで現在処理されて
いる組枠領域内の次の兄第枠領域の左の境界が決定され
る。先に処理された子枠領域の右の境界位置(右の境界
=左の境界十幅)に、子枠領域間の余白定数を加えるこ
とにより、次の子枠領域の左の境界が決定される。次に
、ブロック298でポインタは、たった今その左の枠が
決められた次の子枠領域に移される。次にブロック30
0で、全ての子枠領域が配置されたかどうかの決定がな
される。
全ての子枠領域が配置されていない場合には、全ての兄
第枠領域とこれらの子孫枠領域の全ての位置が決定され
るまで、処理はブロック293.294.296.29
8及び30を続ける。全ての兄第枠領域と子レコードら
の子孫枠領域の全ての境界位置が決定されると、処理は
ブロック302へ続く。ブロック302では、処理はセ
ル配置ルーチン(第16A図)のブロック274へ復帰
される。
第16D図を参照すれば、垂直セル配置ルーチンの詳細
が示されている。現在処理されている枠領域内の上部の
子枠領域が、現在処理されている枠領域の上部、下部又
は中程に整列されているかどうかをチエツクる、ために
、ブロック306で垂直配列決定ルーチン(第16E図
)が呼び出される。子枠領域が枠領域の上部、下部又は
中程の何れかに整列されていると、上部枠領域の位置が
戻され、処理はブロック308へ続き、そこでポインタ
が組枠領域の最初の子枠領域に再設定される。次に、ブ
ロック309で、(フィツトセルルーチンセット(第1
3A図〜第13E図)で決定された)その子枠領域の高
さを、その子枠領域の上部の境界位置に加えることによ
り、その子枠領域の下部の枠が決定される。現在処理さ
れている子枠”領域の中身(即ち、全ての子孫枠領域及
びテキスト)の位置を決定る、ために、ブロック310
でセル配置ルーチン(第16A図)が再帰的に呼び出さ
れる。現在処理されている子枠領域を指すポインタは、
この再帰的呼び出しく第16D図の31O)の位置と共
にスタック上に置かれる。
子枠領域の左、右、上部及び下部の境界位置がセル配置
ルーチン(第16A図)に移される。子枠領域の左及び
右の境界位置は、セル配置ルーチン(第16A図)のブ
ロック264で計算された内部矩形に等しくなるように
決定される。上部の枠の位置は垂直配列決定ルーチン(
第16E図)によってブロック328で決定され、下部
の枠の位置はブロック309で決定される。
子枠領域の中身(即ち、枠領域及びテキスト)の全てが
配置され、位置がセル配置ルーチンに格納されたら、処
理はブロック312(第16D図)に復帰される。ブロ
ック312では、垂直に配列された枠領域内の次の子枠
領域の上部の枠が、先に処理された子枠領域の下部の枠
の位置に余白定数を加えることにより、決定される。次
に、ブロック314で、たった今上部の枠が計算された
次の子枠領域にポインタが設定される。ブロック316
では、配置される必要のある子枠領域が更に存在る、か
どうかの決定が行われる。処理されるべき子枠領域とそ
れらの子孫枠領域がまだ存在る、と、全ての子枠領域と
それらの子孫枠領域の境界位置が決定されるまで、処理
はブロック309、310.312.314及び316
で継続される。
全ての子枠領域とそれらの子孫枠領域のそれぞれに対し
て全ての境界の位置が決定されると、次に処理はブロッ
ク318へ続き、そこで処理はセル配置ルーチン(第1
6A図)のブロック274に復帰される。処理された枠
領域が子枠領域を含んでいるときには、各子枠領域の上
部の枠は、各子枠領域の高さと、子枠領域間の余白との
関数として計算される。
第16E図を参照すれば、垂直配列決定ルーチン(′垂
直セル配置ルーチン(第16D図)で呼び出される)の
詳細なブロック流れ図が示されている。上述のように、
このルーチンの目的は、現在処理されている枠領域内に
垂直に配列されている子枠領域の全ての最上部の枠の位
置を決定る、ことである。ブロック322で、枠領域内
の最初の子枠領域に、ポインタが設定される。次に、プ
ロ・ツク324で、最初の子枠領域の上部の枠が組枠領
域の上部の枠に整列されているかどうかの確認が行われ
る。子枠領域が組枠領域の上部の枠に整列されていると
、処理はブロック328へ続く。
ブロック328では、適正化ルーチン(第16F図)が
上部枠の位置を決定る、ために呼び出される。ブロック
324に戻って、もし上部枠が組枠領域の上部枠に整列
されていないと、処理はブロック326へ続き、そこで
各子枠領域の高さ、及び各子枠領域間の余白が積算され
る(「用いられた余白」)。処理はブロック328へ続
き、そこで最上部の枠の位置を決めるために、適正化ル
ーチン(第16F図)が呼び出される。処理はブロック
330で垂直セル配置ルーチン(第16D図)のブロッ
ク308へ復帰される。
(f)    ルーチン   16F 第16F図を参照すれば、適正化ルーチン(垂直配列決
定ルーチン(第16E図)で呼び出される)の詳細なブ
ロック流れ図が示されている。このルーチンの目的は、
載枠領域内の中身(即ち、垂直に配列された子枠領域(
垂直配列決定ルーチン(第16E図)、又はテキスト(
テキストセル配置ルーチン(第16B図)))の上部の
位置を決めることである。このルーチンは、最初に中身
の上部の位置が組枠領域の上部、下部又は中程の何れに
整列されているかを決定る、。好ましい実施例では、垂
直に配列された子枠領域又はテキストを有る、枠領域の
みが、(垂直に配列された子枠領域)の上部の枠、又は
テキストの最初の行の位置を決定る、ために、適正化ル
ーチン(第16F図)を必要としている。
ブロック334を参照すれば、要求される配列が、組枠
領域の上部、下部又は中程(上部でも下部でもない)の
何れであるかの決定がなされる。
中身が組枠領域の上部に配列されるべきであると、上部
の行又は枠の位置が内部矩形の上部の枠の内側であると
決定される。内部矩形は中身を備えた載枠領域内の領域
を定義る、ことを思い出しなさい。上部の大きさは、組
枠領域の上部枠の位置に組枠領域の枠の余白を加えたも
のとなるように決定される。余分スペースが中身の下部
の枠又は行の下に現れるであろう。
ブロック334に戻って、もし中身が組枠領域の下部の
枠に整列されるべきであると決定されると、処理はブロ
ック342へ続く。ブロック342で上部の枠又は行の
位置が、組枠領域の内部矩形の下部の枠から、子枠領域
(ブロック326で計算されたように子枠領域の長さプ
ラス余白)、又はテキスト(ブロック280で計算され
たように)の垂直方向の長さを推定る、ことによって決
定される。内部矩形の下部の枠が、組枠領域の下部の枠
の位置より余白プラス組枠領域の枠の幅だけ小さくなる
ように決定される。中身が置かれる前に、空のフリース
ペースが組枠領域の上部に現れるであろう。
ブロック334へ戻って、もし中身が組枠領域の上部で
もなく下部でもない、即ち、中程に整列されるべきであ
ると決定されると、処理はブロック338へ続(。ブロ
ック338で、子枠領域又はテキストの垂直方向の長さ
に関連しない余分スペースが決定される。余分スペース
は、内部の下部の枠の位置と内部の上部枠の位置との差
から、テキスト又は子枠領域の垂直方向の長さを引(こ
とにより、計算される。結果として得られる大きさは、
組枠領域内の用いられていない、又は余分スペースであ
る。次に、ブロック340で、余分スペースは半分に分
けられる。好ましい実施例では、余分スペースの一方の
半分は、載枠領域の内部の上部枠の位置に加えられ、組
枠領域内の上部枠の位置又はテキストの開始位置が得ら
れる。整列が載枠領域の上部、中程又は下部の何れにな
されるかを気にる、ことなく、処理はブロック344へ
続き、そこで処理は垂直配列決定ルーチン(第16E図
)のブロック330へ復帰される。
適正化ルーチン(第16F図)の他の実施例では、余分
スペースは子枠領域間の間の部分に分配される。このよ
うに、子枠領域間の余白は計算された余分スペースに依
存して変化る、であろう。
最初の子枠領域は、載枠領域の内部矩形の上部枠に整列
され、最後の子枠領域は載枠領域の内部矩形の下部枠の
整列され、そして余分スペースは子枠領域間の空白を埋
める。
第14A図、第16A図〜第16F図、並びに第17A
図、第17B図、第17C図及び第17D図を参照すれ
ば、枠領域の境界位置を決定る、ための詳細な例がここ
で議論される。第14A図は、セル配置ルーチンセット
(第16A図〜第16F図)によって計算された後の各
枠領域に対る、X、  Y座標の組を示している。枠領
域に対る、x1Y座標の組は上部左の角の位置と、下部
布の角の位置(左上部、及び右下部)であると決められ
る。第17A図、第17B図、第17C図及び第17D
図は、スタックと現在処理されている枠領域を指すポイ
ンタの内容の「寸描」を表わす様々な結果の表である。
0.0座標値は、第14A図に示されている書式の左上
の角であると決められる。また、0. 0座標の組は書
式の基本枠領域50の左上の角でもある。これに加えて
、各枠領域の境界は、1画素の枠と2画素の空の余白か
らなると決められる。
セル配置ルーチン(第16A図)のブロック262を参
照すれば、書式配置ルーチン(第12図)から移された
基本枠領域500枠の位置は、枠領域50に関連る、レ
コードに格納される(0,0゜520、−)(第14B
図の199)。書式配置ルーチン(第12図)はこれら
の境界位置をセル配置ルーチン(第16A図)に移行さ
せる。次にブロック284で、基本枠領域50の内部矩
形が決定される(3.3.517、−)。ブロック26
6では、枠領域50の中身がテキストを含むか、垂直に
配列された子枠領域を含むか、又は水平に配列゛された
子枠領域を含むかの決定がなされる。
枠領域50の中身は、垂直に配列された子枠領域(51
,52,53,65,57,59,61゜63.65.
67.69.7!、73等(第8A図))を含んでいる
。処理はブロック270へ続き、そこで垂直セル配置ル
ーチン(第16D図)が呼び出される。
ブロック306(第16D図)で垂直配列決定ルーチン
が呼び出される。ブロック322(第16E図)では、
垂直に配列された子枠領域の最初の子枠領域(枠領域5
2)にポインタが設定される。処理はブロック324へ
続き、そこで枠領域52が基本枠領域50の上部の枠に
整列されていることが決定される。処理はブロック32
8へ続き、そこで適正化ルーチン(第16F図)が呼び
出される。
ブロック334(第16F図)では、枠領域52の中身
が基本枠領域50の上部の枠に整列されていると決定さ
れる。処理はブロック336へ続き、そこで枠領域52
の最上部の枠の位置が、枠領域50の内部矩形の上部の
枠の位置(3)であると決定される。処理はブロック3
44で垂直配列決定ルーチン(第16E図)のブロック
330へ復帰される。ブロック33Gで、処理は垂直セ
ル配置ルーチン(第16DrI!J)のブロック30g
へ復帰される。
ブロック308(第16DH)で、ポインタは最初の子
枠領域、又は基本枠領域50内の枠領域52に設定され
る(第17A図の346)。次に、ブロック309で、
子枠領域52の下部の境界位置が、子枠領域52の高さ
を子枠領域52の上部境界の位置に加えることにより、
決定される。子枠領域52の高さは、フィツトセルルー
チン(第13A図)によって146画素(第14B図の
200)であると決定される(3+146=149)。
ブロック310で、枠領域52の中身(即ち、子孫枠領
域及びテキスト)の境界位置を決定る、ために、セル配
置ルーチンく第16A図)の再帰的呼出が行われる。枠
領域52を指すポインタがスタック上に置かれ、垂直セ
ル配置ルーチン(第16’D図)のブロック310の再
帰的呼出の位置がスタック上に置かれる(第17A図の
348)。
子枠領域52の左及び右の境界位置が移され、それらは
、セル配置ルーチン(第16A図)のブロック264で
枠領域50のために決定された内部矩形の左及び右の枠
に等しく設定される(3.517、−)。適正化ルーチ
ン(第16F図)のブロック336で決定された上部の
枠の位置(3)は移され、ブロック309(第14A図
)で決定された下部の境界位置(149)が移される。
従って、枠領域52の境界位置は(3,3,517,1
49)である(第14B図の200)。
枠領域52の境界位置(3,3,517,149)はセ
ル配置ルーチン(第16A図)に移される。セル配置ル
ーチン(第18A図)のブロック262を参照すれば、
枠領域52の境界位置が枠領域52に関連る、レコード
に格納される。ブロック264で、枠領域52の内部矩
形が(6,6,514,146)であると決定され、ブ
ロック266で、枠領域52の中身がテキストを含むか
、垂直に配列された子枠領域を含むか、又は水平に配列
された子枠領域を含むかの決定がなされる。
枠領域52は水平に配列された子枠領域、即ち、枠領域
54.56及び58を含んでいる。従って、処理はブロ
ック272へ続き、そこで水平セル配置ルーチン(第1
6C図)が呼び出される。
ブロック291 (第16C図)では、枠領域52内の
最初の子枠領域(枠領域54)にポインタが設定される
(第17A図の350)。ブロック292で、最初の子
枠領域の左の境界が枠領域52の内部矩形の左の枠の位
置に等しく設定される。
次に、ブロック293で、枠領域54の左の内部境界の
位置(6)に、フィツトセルルーチン(第13A図)で
決定された枠領域54の幅(103)を加えることによ
り、右の境界が決定される(6+103−109)。枠
領域54の中身の境界位置を決定る、ために、ブロック
294でセル配置ルーチン(第16A図)の再起的呼出
が行われる。
枠領域54を指すポインタがスタックに置かれ、水平セ
ル配置ルーチン(第16C図)のブロック294での再
帰的呼出の位置がスタック上に置かれる(第17A図の
352)。枠領域54の左、上部及び下部の境界が、セ
ル配置ルーチン(第16A図)のブロック264で決定
された内部矩形の左、上部及び下部の枠の位置に等しく
設定される。右の枠はブロック293で決定され、従っ
て、枠領域の位置は(6,6,109,146)である
(第14B図の202)。処理はセル配置ルーチンのブ
ロック262へ続き、そこで新たに計算された枠(6,
6,109,146)が枠領域54に関連る、レコード
に格納される。次に、ブロック264で枠領域54の内
部矩形が(9,9,106,143)と決定される。枠
領域54が垂直に配列された子枠領域を有る、ことがブ
ロック266で決定され、処理はブロック270へ続き
、そこで垂直セル配置ルーチン(第160図)が呼び出
される。
ブロック306(第16D図)で垂直配列決定ルーチン
が呼び出される。ブロック322(第16E図)で、ポ
インタが枠領域54内の最初の子枠領域60に設定され
る。処理はブロック324へ続き、そこで枠領域54の
中身が枠領域54の上部に整列されていないことが決定
される。従って、処理はブロック326へ続き、そこで
枠領域54内の全ての子枠領域に対る、余白と積算され
た高さを加えることによって、垂直方向の長さが積算さ
れる。枠領域60,62及び64に対して積算された高
さは(38+32+32=102画素)である。子枠領
域間の余白は2画素である。
従って、この子枠領域の積算された高さと余白の和は1
04画素に等しい。処理はブロック328は続き、そこ
で適正化ルーチン(第16F図)が呼び出される。
ブロック334(第16F図)で、組枠領域54の中身
が枠領域54の中程に整列されるべきであることが決定
される。ブロック338で、その垂直長さ(子枠領域の
高さプラス余白)に関連しない余分スペースの大きさが
決定される。具体的には、枠領域54の内部の上部及び
下部の位置の差から、その垂直方向の長さ(積算された
高さプラス子枠領域の余白)を引くことにより、余分ス
ペースが決定される(143−9−104=30)。処
理はブロック340へ続き、そこで余分スペースが半分
に分割される(30/2= 15)。子枠領域60の上
部の位置は、内部矩形の上部の位置プラス余分スペース
の一方の半分に等しく設定される(9+15=24)。
処理はブロック344へ続き、そこで処理は垂直配列決
定ルーチン(第16E図)のブロック330へ復帰され
る。ブロック330では、処理は垂直セル配置ルーチン
(第16D図)のブロック308へ復帰される。
ブロック308(第16D図)で、ポインタが枠領域5
4内の最初の子枠領域、即ち、枠領域60に再設定され
る(第17A図の354)。プロ・ツク309では、上
部境界の位置を枠領域60の高さに加えることによって
、枠領域60の下部の境界が計算される(24+38=
62)。次にブロック310でセル配置ルーチン(第1
6A図)の再帰的呼出が行われる。枠領域60を指すポ
インタがスタックに置かれ、この再帰的呼出(第16D
図の310)の位置を指すポインタもスタック上に置か
れる(第17A図の356)。それに加えて、枠領域6
0に対る、左及び右の枠の位置が、組枠領域54のため
に計算された内部の左及び右の大きさに等しく設定され
るく9、− 109、−)。枠領域54の左の内部の枠
又は位置は(9)であることを、及び枠領域54の右の
内部境界は(106)であると決定されたことを思い出
しなさい。枠領域60の上部の境界は、適正化ルーチン
(第16F図)のブロック340で(24)であると決
定され、枠領域60の下部の境界はブロック309で(
62)であると計算された。
従って、枠領域60に対る、座標は(9,24,106
,62)である(第14B図の204)。
処理はセル配置ルーチン(第16A図)のブロック2°
62へ続き、そこで枠領域60に対る、境界位置・(9
,24,106,62)が格納される。
次に、ブロック264で枠領域60の内部矩形が(12
,27,103,59)であると決定される。
ブロック266で枠領域60が水平に並んだ複数の子枠
領域を有る、ことが決定される。処理はブロック272
へ続き、そこで水平セル配置ルーチン(第16c図)が
呼び出される。ブロック292でポインタが、枠領域6
0内の最初の子枠領域である枠領域61に等しく設定さ
れる。ブロック292で枠領域60内の最初の子枠領域
(枠領域61)の左の境界が、内部矩形の左の境界に等
しく設定される。ブロック293で枠領域61の右の境
界が、左の境界位置プラス枠領域61の幅に等しく設定
される(t2+27=39)ブロック294でセル配置
ルーチン(第16A図)の再帰的呼出が行われる。枠領
域61を指すポインタ及びブロック294(第16C図
)の再帰的呼出の位置をさすポインタが、タック上に置
かれる(第17B図の360)。これに加えて、左、上
部、右及び下部の位置がセル配置ルーチン(第16A図
)に移行される。枠領域61の左、上部、及び下部の境
界位置が、枠領域60のために計算された内部の左、上
部、及び下部の境界(12,27,59)に等しく設定
される。右の境界はブロック309で(34)と決定さ
れる。従って、枠領域61の境界位置は(12,27,
39,59)である(第14B図の210)。処理はセ
ル配置ルーチン(第16A図)のブロック262へ続き
、そこで枠領域61の境界位置が枠領域61に関連る、
レコードに格納される。次にブロック264で、枠領域
61の内部矩形位置が(15,30、36.56)であ
ると決定される。ブロック266で枠領域61の中身が
テキストであることが決定される。処理はブロック26
8へ続き、そこでテキストセル配置ルーチン(第16B
図)が呼ヒ出される。
ブロック278(第16B図)で枠領域61の表示可能
領域が、枠領域61の内部矩形の左及び右の枠に等しく
設定される。次に、ブC7ツク280で、枠領域61内
のテキストの全ての行の積算された高さを決定る、ため
に、テキスト高さ決定ルーチン(第13B図の133)
が呼び出される。
テキストの積算された高さは266画素2行X13画素
)であると決定される。次にブロック262で適正化ル
ーチン(第16F図)が呼び出される。ブロック334
(第16F図)でテキストが枠領域61の上部の枠に整
列されるべきであると決定される。テキストの開始位置
が枠領域61の内部上部の数値(30)に等しく設定さ
れる。
処理はテキストセル配置ルーチン(第16B図)のブロ
ック284に復帰され、そこでテキストの最初の行の開
始位置(30)が格納される。次にブロック286で、
テキスト線描領域が枠領域61の内部矩形に等しく設定
され、上部の位置が新たな内部矩形の上部枠の位置(3
0)に等しく設定され、次にテキスト線描領域が格納さ
れる。ブロック288で処理はセル配置ルーチン(第1
6A図)のブロック274へ復帰される。セル配置ルー
チンは、枠領域61の中身の配置の決定に関して、水平
セル配置ルーチン(第16C図)のブロック294で再
帰的に呼び出されることを思い出しなさい。枠領域61
及び再帰的呼出、即ち、ブロック294(第16C図)
の位置を指すポインタが、スタック(第17B図の36
2)から「ポツプ」され、処理はブロック296へ続く
。ブロック296では、枠領域60内に水平に配列され
た兄弟枠領域の次の枠領域の左の境界位置が決定される
。具体的には、枠領域61の右の境界が1画素の余白定
数に加えられる(39+1−40)。従って、枠領域6
3の左の枠の位置は(40)に等しく設定される。ブロ
ック298でポインタが枠領域63(第17B図の36
4)に移行される。処理はブロック300へ続き、そこ
で枠領域63はまだ配置される必要があることが決定さ
れる。処理はブロック293へ続き、そこで枠領域63
の右の境界が、枠領域63の左の境界の位置に枠領域6
3の幅を加えることにより、決定される(40+63=
103)。この左の境界値は(40)であり、枠領域6
3の幅は63画素である。
従って、右の境界の位置は(103)である。
次に、ブロック294でセル配置ルーチン(第16A図
)の再帰的呼出が行われる。枠領域63及び再帰的呼出
(第16c図の294)の位置を指すポインタが、スタ
ック(fi17B図の366)上に格納される。左、上
部、右及び下部の位置がセル配置ルーチン(第16A図
)に移行される。
枠領域63の上部及び下部の境界の位置は、枠領域61
の上部及び下部の境界の位置に同じである。
左及び右の境界はブロック293及び296で計算され
る。従って、ブロック262で枠領域63の位置(40
,27,103,59)(第148図の212)が、枠
領域63に関連る、レコードに格納される。ブロック2
64で枠領域63の内部の大きさは(43,30,10
0,56)であることが決定される。処理はブロック2
66へ続き、そこで枠領域63の中身がテキストである
ことが決定される。ブロック268でテキスト位置ルー
チン(第16B図)が呼び出される。
ブロック278(第16B図)で表示可能領域が枠領域
63の内部の大きさに等しく設定される。
ブロック280でテキスト高さ決定ルーチン(第13B
図の133)が、テキストの高さを決定る、ために呼び
出される。枠領域63内には1行のテキ″ストが存在し
く第14A図のr3800J)、266画素高さ(1行
X26画素(高さ7行))であることが決定される。処
理はブロック282へ続き、そこで適正化ルーチン(第
16F図)が呼び出される。
ブロック334(第16F図)で枠領域63の中身が枠
領域63の上部に整列されるべきであると決定される。
処理はブロック336へ続き、そこでテキストの開始位
置が、枠領域63の上部の内部の枠の位置(30)であ
ることが決定される。
ブロック344では、処理はテキストセル配置ルーチン
(第16B図)のブロック284へ復帰される。処理は
ブロック284へ続き、そこでテキストの最初の行の開
始位置(30)が格納される。
次に、ブロック286で線描領域の位置が枠領域63の
内部の大きさに設定され、上部の位置が新たな内部の数
値(30)に等しく設定され、格納される。ブロック2
88で処理はセル配置ルーチン(第16A図)のブロッ
ク274に復帰される。
セル配置ルーチン(第16A図)は、枠領域63の中′
身が処理されている間に(第178図の366)、ブロ
ック294(第16C図)で再帰的に呼び出されること
を思い出しなさい。再帰的復帰がブロック294(第1
6C図)で行われ、スタックの先頭位置内の同じ情報が
「ポブブ」される(第17B図の368)。
処理は水平セル配列ルーチンのブロック296(第16
C図)へ続き、そこで枠領域60内の次の子枠領域の左
の境界位置が決定される。ブロック298でポインタが
次の枠領域に移される(第178図の368)。枠領域
60の全ての子枠領域が配置されると、処理はブロック
302へ続き、そこで処理はセル配置ルーチン(第16
A図)のブロック274へ復帰される。セル配置ルーチ
ンは再帰的に呼び出され、従って、処理はスタック(第
16D図の310)の先頭の位置に再帰的に復帰される
。スタックの先頭位置の情報(枠領域60及びブロック
310(第16D図)を指すポインタ)は「ポップコさ
れ(第17C図の37o)、処理は垂直セル配置ルーチ
ンのブロック312へ続く。処理のこの段階で、枠領域
52.54.60.61及び63の位置が決定される。
枠領域54内の残された垂直に配列された子枠領域62
及び64の配置は、決定される必要がある。
プロ・ツク312で枠領域54内の次の子枠領域(枠領
域62)の上部の枠が決定される。具体的には、上部の
枠は、子枠領域の間の余白を枠領域60の下部の枠の位
置に加えることにより決定される。枠領域60の下部の
枠の位置は(62)であり、余白は1画素である(62
+1−63)。
従って、子枠領域62の上部枠の位置はく63)である
。ポインタが枠領域62へ移行され、処理はブロック3
16へ続き、そこで処理される子枠領域がまだ存在る、
ことが決定される。処理はブロック309へ続き、そこ
で枠領域62の下部の枠の位置が、枠領域62の高さを
上部の枠の位置に加えることにより、決定される(63
+32−95)。ブロック310でセル配置ルーチン(
第16A図)が再帰的に呼び出される。枠領域62及び
再帰的呼び出しく第16D図の31O)の位置を指すポ
インタがスタック上に置かれる(第17C図の374)
。左、上部布及び下部の枠の位置がセル配置ルーチン(
第16A図)に移行される。枠領域62の左及び右の境
界は、枠領域54の内部の左及び右の数値(9、−10
6、−)に等しく設定される。枠領域62の上部の境界
は、ブロック314で(63)であると決定され、下部
の枠の境界はブロック309で決定される(9.63.
106.95)(第14B図の206)。
処理はセル配置ルーチン(第16A図)のブロック26
2へ続き、そこで枠領域62の境界位置(9,63,1
06,95)が格納される(第14A図)。ブロック2
64で枠領域62の内部の大きさが(12,66,10
3,92)であることが決定される。ブロック266で
枠領域62の中身がテキストであることが決定され、従
って、処理はブロック268へ続き、そこでテキストセ
ル配置ルーチン(第16B図)が呼び出される。
ブロック278で枠領域62内の表示可能領域が枠領域
62の内部矩形に等しく設定され、ブロック280で格
納される。テキスト高さ決定ルーチン(第13B図の1
33)がブロック282で呼び出される。テキストの各
行の高さは13画素であり、2行あるので、テキストの
合計の高さは266画素ある。ブロック282で適正化
ルーチy(第xap図)が呼び出される。プロ・ツク3
34(第16F図)で中身が枠領域62の上部の枠に整
列されるべきことが決定され、処理はプロッり336へ
続き、そこでテキストの開始位置が枠領域62の内部の
上部の数値(66)でることが決定される(第14A図
)。処理はブロック344でテキストセル配置ルーチン
(第16B図)のブロック284へ復帰され、そこで上
部位置(66)がテキストに関連る、レコードに格納さ
れる。
ブロック286で枠領域62の線描領域が枠領域62の
内部矩形に等しく設定され、内部上部位置が(66)と
して設定される。ブロック288で処理はセル配置ルー
チン(第16A図)のブロック274へ復帰される。セ
ル配置ルーチンが原始的に再帰的に呼び出される。スタ
ックの先頭に格納された情報は、枠領域62を指すポイ
ンタを含み、再起的呼出の位置は第16D図のブロック
310である。スタックの先頭の内容が「ポツプ」され
(第17C図の376)、処理は垂直セル配置ルーチン
(第16D図)のブロック312へ続く。
ブロック312(第16D図)で次の子枠領域(枠領域
64)の上部の枠が決定される。枠領域64の上部の枠
は、余白定数を枠領域62の下部の枠の位置に加えるこ
とにより、決定される(95+1=96)。処理はブロ
ック314へ続き、そこでポインタが枠領域64へ移行
される(第17C図の378)。ブロック316で、ま
だ処理すべき1つの枠領域、即ち、枠領域64が存在る
、ことが決定される。
処理はブロック309へ続き、そこで下部の枠の位置が
、枠領域64の高さを上部枠の位置に加えることにより
、決定される。上部枠の位置はく96)であり、枠領域
64の高さは32画素である(96+32=128)。
ブロック310でセル配装置ルーチン(第16A図)が
再起的に呼び出される。枠領域64を指すポインタが再
帰的呼出の位置(第16D図の31O)と共に、スタッ
ク上に置かれる(第i7c図の380)。左、上部、右
及び下部の枠の位置がセル配置ルーチン(第16A図)
に移行される。枠領域63の左及び右の枠の位置が、枠
領域54の内部の左及び右の枠に等しく設定される。枠
領域64の上部の枠はブロック312で計算される。ブ
ロック262で枠領域64の境界位置(9,96,10
6,128)が格納される(第14B図の208)。処
理はブロック264へ続き、そこで枠領域64の内部の
大きさが決定される。ブロック266で枠領域64の中
身がテキストであることが決定され、従って、処理はブ
ロック268へ続き、そこでテキストセル配置ルーチン
(第16B図)が呼び出される。
ブロック278(第16B図)で枠領域64の表示可能
領域が枠領域64の内部の大きさに等しく設定される。
ブロック280でテキスト高さ決定ルーチン(第13B
図の133)が呼び出される。テキストの各行の高さは
13画素であり、2行のテキストが存在る、。従って、
テキストの高さは266画素ある。処理はブロック28
2へ続き、そこで適正化ルーチン(第16F図)が呼び
出される。ブロック334(第16F図)で枠領域64
の中身が枠領域64の上部の枠に整列されていることが
決定される。従って、ブロック336でテキストの開始
位置が内部矩形の上部の枠の位置(99)であることが
決定される。処理はブロック344でテキストセル配置
ルーチンのブロック284へ復帰される。ブロック28
4で新たな内部矩形の上部枠の位置が格納され、プロ・
ツク286で新たな内部矩形の大きさが線描領域に等し
く設定される。処理はブロック288からセル配置ルー
チン(第16A図)のブロック274へ復帰される。セ
ル配置ルーチン(第16A図)は再帰的に呼び出された
ことを思いだしなさい。スタックの先頭位置は枠領域6
4及びブロック31O(第16D図)の位置を指すポイ
ンタを含み、この°ポインタは「ポップコされる(第1
7D図の382)。処理は垂直セル配置ルーチン(第1
6D図)のブロック312へ続(。
ブロック312で次の子枠領域の上部の枠が決定され、
ブロック314でポインタが、枠領域54内の次の子枠
領域に移行される(第17D図の384)。この時点で
、配置の必要な子枠領域は存在しな(なり、従って、ブ
ロック316で枠領域54の中身の処理が完了したこと
が決定される。
処理はブロック318でセル配置ルーチンへ(ブロック
274へ)復帰される。再帰的復帰が水平セル配置ルー
チン(第16C図)のブロック294へ行われる。枠領
域54及び第16C図のブロック294の位置を指すポ
インタが、スタックから「ポツプ」され(第17D図の
386)、処理はブロック296へ続く。ブロック29
6では、枠領域52内の水平方向の次の子枠領域の左の
境界位置が決定される。ポインタはブロック298で枠
領域56へ移行される(第17D図の388)。上述と
同様の処理が、枠領域56及び58並びにぞれらの中身
(即ち、子孫枠領域及びテキスト)が配置されるまで続
けられる。次に、基本枠領域50内の残された垂直方向
の枠領域51,55.57.59.61,83等が配置
される。
第18A図、第18B図及び第18C図を参照すれば、
セル線描ルーチンセットの詳細な記述が議論される。セ
ル線描ルーチンセットの目的は、書式の枠領域及びそれ
らの子孫枠領域を表示る、ことである。最初に、線描領
域が書式線描ルーチン(第11図)からセル線描ルーチ
ンセットへ移行される。線描領域は枠領域よりも大きい
か、枠領域よりも小さいか、又は枠領域と重なることも
ないかの何れかである。もし枠領域が線描領域に重なら
ないことが決定されたならば、線描る、ものは何もない
。もし線描領域の部分が枠領域の外にあるならば、枠領
域に重なる部分のみが描かれる。言い方を変えれば、線
描領域及び枠領域の交差部分のみが描かれる。一般に、
セル線描ルーチンセットの働きは、以下のようである。
もし描かれるべき枠領域がテキストを含まなければ、枠
領域の枠が最初に描かれ、次に、枠領域の子孫枠領域が
描かれ、最後に、下位レベルの枠領域のテキストが描か
れるであろう。言い方を変えれば、階層木構造を下って
線描が行われ、最初の枠からいつかはテキストまで線描
される。
(a)セル  ルーチン  18A 第18A図を参照すれば、セル線描ルーチンの流れ図が
示されている。ブロック402で、現在描かれている特
定の枠領域に対して、線描領域と枠領域の交差部(画素
数で)が存在る、かどうかの決定が行われる。次に、ブ
ロック404で、交差部がゼロよりも大きいかどうかの
付加的な決定が行われる。もし交差部がゼロよりも太き
(なければ、処理はブロック410で呼び出しプログラ
ムに復帰される。しかし、もし交差部がゼロより大きい
と、処理はブロック406へ続き、そこで枠線描ルーチ
ン(第18B図)が呼び出される。
枠線描ルーチンの目的は、表示されるべき又は「オン°
状態の」枠領域の「プリントし得る」及び/又は(議論
される)「プリントし得ない」側を表示る、ことである
。処理はブロック408へ続き、そこで中身線描ルーチ
ン(第18C図)が呼び出される。中身線描ルーチンの
目的は、現在処理されている枠領域の中身(即ち、子孫
枠領域及びテキストの全て)を表示る、ことである。処
理はブロック410で呼び出しプログラム(書式線描ル
ーチン(第11図))へ復帰される。
(b)    ルーチン  18B 第18B図を参照すれば、枠線描ルーチンの詳細なブロ
ック流れ図が示されている。ブロック414で現在処理
されている枠領域の枠が、プリントし得ないトレース線
としてスクリーンディスプレイ5上に表示されるべきか
どうかの決定が行われる。プリントし得ないトレース線
がもし表示されていると、それらは点線の形式で典型的
に示され、それらはユーザにどこに枠領域の外側の境界
線が延びているかを示すために、スクリーンディスプレ
イ5上のみに現れ、ユーザが幅及び/又は高さ又は枠領
域に変化を与えて枠を移動させ、位置決める、のを可能
にる、。もしユーザがプリントし得ない線をプリントる
、のを望めば、ユーザコマンドによってトレース線はプ
リントし得る線に変換される。好ましい実施例では、ス
クリーンディスプレイ5でプリントし得る線は実線で現
れる。もし枠領域のプリントし得ないトレース線がスク
リーンディスプレイ5(第1図)上に表示されるべきで
あると、処理はブロック416へ続(。
ブロック416でトレース線が、点線の形式(この線は
どんな形式でもよい)でスクリーンディスプレイ5(第
1図)上に表示され、処理はプロ・ツク420へ続く。
しかし、枠領域のトレース線がスクリーンディスプレイ
5上に表示されるべきではない場合には、処理はブロッ
ク420へ続く。
ブロック420で、現在処理されている枠領域の上部の
枠がプリントし得る線として示されているか(即ち、枠
領域が実線として表示されるように、そして見えるよう
にプリントされるように)の決定が行われる。その上部
枠がプリントされる(即ち、実線として)べきであると
、処理はプロ・ツク422へ続き、そこで実線が枠領域
の左上の角の位置から、枠領域の右上の位置へ引かれる
。他の実施例では、枠はユーザによって提供された指定
の幅を有る、ことができ、特定のスタイル、例えば点線
、黒の実線等でもよい。
ブロック422に戻って、上部の枠が実線でプリントさ
れるかどうかを気にる、ことなく、処理はブロック42
4へ続き、そこで右の枠がプリントされるべきかどうか
の決定が行われる。右の枠がプリントされるべきである
ことが明らかになると、処理はブロック426へ続き、
そこで枠領域の右上の角の位置から右下の角の位置へ、
実線が引かれる。ブロック424に戻って、枠がプリン
トされるべきか否かを気にる、ことなく、処理はブロッ
ク428へ続く。ブロック428で枠領域の下部の枠が
プリントされるべきかどうかの決定が行われる。下部の
枠がプリントされるべきであることが明らかになると、
処理はブロック430へ続き、そこで枠領域の右下の位
置から枠領域の左下゛の位置へ実線が引かれる。下部の
枠がプリントされるべきか否かを気にる、ことなく、処
理はブロック432へ続く。ブロック432で左の枠が
プリントされるべきかどうかの決定が行われる。
左の枠がプリントされるべきであることが明らかになる
と、処理はブロック430へ続き、そこで枠領域の左下
の角の位置から枠領域の左上の角の位置へ実線が引かれ
る。−再び、左の枠がプリントされるべきか否かを気に
る、ことなく、処理はブロック436へ続く。ブロック
436で処理はセル線描ルーチン(第18A図)のブロ
ック408へ復帰される。
(C)     ルーチン  18C 第1C図を参照すれば、中身線描ルーチンの詳細な流れ
図が示されている。ブロック440で枠領域がテキスト
を含むかどうかの決定が行われる。
枠領域がテキストを含んでいると、線描領域及び枠領域
の交差部にテキストを描(ために、ブロック442が呼
び出される。典型的には、オペレーティングシステムは
特定の領域にテキストを描く性脩を有している。このこ
とは特に、近年のグラフィックの状況では真実である。
オペレーティングシステムのルーチンはアプリケーショ
ンによって呼び出すことができ、コンビコータメーカー
(即ち、IBM、Apple等)及びシステムデイベロ
ツバ(即ち、Microsoft等)によって、特定の
領域に実際のテキストを描くために提供されている。テ
キストが描かれると、処理はブロック444でセル線描
ルーチン(第18A図)のブロック410へ復帰される
。ブロック440へ戻って、枠領域内にテキストが存在
しなければ、処理はブロック446へ続く。枠領域内に
テキストが存在しなければ、枠領域は子孫枠領域を含ん
でいなければならない。従って、ブロック446で枠領
域内の最初の子枠領域を指すポインタが設定される。次
にブロック448で、最初の子枠領域及びその中身(即
ち、子孫枠領域又はテキスト)を描くために、セル線描
ルーチン(第18A図)の再帰的呼出が行われる。最初
の子枠領域及びその中身が描かれると、次に処理はブロ
ック450へ続゛き、そこでポインタが、現在処理され
ている載枠領域内の次の子枠領域に移行される。処理は
ブロック452へ続き、そこで描かれる必要のある子枠
領域(及びそれらの子孫枠領域及びテキスト)が、更に
存在る、かどうかの決定が行われる。
枠領域内に描かれるべき子枠領域がまだ存在る、と、子
孫枠領域及びテキストを含む全ての子枠領域が描かれる
まで、処理はブロック448.450及び452を継続
る、。しかし、もし子孫枠領域及びテキストを含む全て
の子枠領域が描かれていると、処理はブロック444で
セル線描ルーチン(第18A図)のブロック410へ復
帰される。
本発明は、典型的で好ましい実施例として記述されてい
るが、それに限定されるものではない。
本質的な精神及び範囲から逸脱る、ことなく、多くの付
加的な変更及び改良が本発明に行われ得ることを、当業
者は認識る、であろう。例えば、さきに述べたように、
多くの異なるプログラミング技術及び多くの異なるプロ
グラミング言語は、開示された発明を実行る、のに適し
ている。ここで記述された本発明の範囲は先の開示に限
定されず、上述の特許請求の範囲に限定される。
4     の   な4R 第1図は、一般書式を作成し、修正し、格納し、表示し
、及びプリントる、ための、本発明によるコンピュータ
ベースシステム2を表わすブロック図である。
第2図は、3つの要素を有る、枠領域を表し、グラフィ
ックインテリジェンスを用いることなく再配置される様
子を示す図である。
第3図は、第2図に示されている3つの要素を有る、同
様の枠領域を表し、グラフィックインテリジェンスを用
い、そして水平方向の制約が無い場合の再配置を示す図
である。
第4図は、第2図及び第3図に示されている3つの要素
を有る、枠領域を表し、グラフィックインテリジェンス
を用い、そして水平方向の制約がある場合の再配置を示
す図である。
第5A図は、コンピュータベースシステム2(第1図)
のスクリーン表示手段5(第1図)上に表示された典型
的な書式を表わす図である。
第5B図は、書式テキスト(「見出しテキスト」、即ち
、第5A図の欄44及び46)の部分の書体の大きさを
、9ポイントから15ポイントまで変えるための、シス
テム2のユーザによって要求されるメニニー項目を表わ
す図である。
第6A図は、第5A図及び第5B図に示されている書式
の書体の大きさを15ポイントまで増大させ、テキスト
を再改行し、結果として生じる書式の垂直方向の長さが
、画面の上部及び下部をスクロールる、様子を示す図で
ある。
第6B図は、第6A図の書式の番号フィールドが左に動
かされ、テキストが左へ押しやられて再改行され、減少
した水平方向の調整を行うために、垂直方向の長さが調
整される様子を示す図である。
第7A図は、第6B図の書式の番号フィールドの右の枠
が右に動かされ、番号フィールドの幅が水平方向に拡張
され、その結果それらの数字が再び中央に移動される様
子を示す図である。
第7B図は、第7A図の書式の番号フィールドの左゛の
枠が更に右に移動され、テキストが自動的に再改行され
て、追加された水平方向の余白が埋められ、結果として
書式が垂直方向に縮小される様子を示す図である。
第8A図は、第5A図〜第7A図と同様の書式が更に矩
形の枠領域に分割された図である。
第8B図は、第8A図に示す書式の上部部分の階層木構
造を表現る、図である。
第8C図は、第8A図及び第8B図に示されている書式
の上部部分を表わし、枠領域が子枠領域又はテキストを
含むかを示す表である。
第9図は、一般書式の大きさを再び決め、再び線描スる
ための、コンビニ−タベースシステムによって行われる
リサイズ/リフォームルーチンのブロック流れ図である
第10図は、基本書式の枠領域とその子孫枠領域の全て
の大きさと配置を決めるための、リサイズ/リフォーム
ルーチン(第9図)で参照される書式フィツトルーチン
のブロック流れ図である。
第11図は、再び大きさが決められた枠領域及びその子
孫枠領域の全てを、表示スクリーン5(第1図)に表示
る、ための、リサイズ/リフォームルーチン(第9図)
で参照される書式線描ルーチンのブロック流れ図である
第12図は、基本書式の枠領域とそれに含まれる全ての
子孫枠領域との位置づけ又は配置を決めるための、書式
フィツトルーチン(第10図)で参照される書式配置ル
ーチンのブロック流れ図である。
第13A図は、書式の枠領域の大きさを再び決めるため
の、書式フィツトルーチン(第10図)で参照されるフ
ィツトセルルーチンのブロック流れ図である。
第13B図は、テキストを含む枠領域の大きさを計算る
、ための、フィツトセルルーチン(第13A図)で参照
されるテキストセルの大きさ計算ルーチンのブロック流
れ図である。
第13C図は、垂直に配列された子枠領域とそれに含ま
れる全ての子孫枠領域を含む枠領域の大きさを決定る、
ための、フィツトセルルーチン(第13A図)で参照さ
れる垂直セルの大きさ計算ルーチンのブロック流れ図で
ある。
第13D図は、水平に配列された子枠領域とその子孫枠
領域の全てを含む枠領域の大きさを決定る、ための、フ
ィツトセルルーチン(第13A図)で参照される水平セ
ルの大きさ計算ルーチンのブロック流れ図である。
第13E図は、子枠領域とその子孫枠領域の全てのそれ
ぞれの中で利用できる合計幅を配分る、ための、水平セ
ルの大きさ計算ルーチン(第13D)図で参照される子
枠領域幅再配分ルーチンのブロック流れ図である。
第14A図は、第8A図に示す書式の左上の隅の拡大図
である。
第14B図は、第14A図の旧及び新の幅、高さ、矩形
の配置、及びそれぞれの枠領域の中身を表わす表である
第15A図、第15B図、及び第15C図は、フィツト
セルルーチンセット(第13A図〜第13F図)の詳細
な例に従って、スタックの中身と現在の処理されている
枠領域とを示す結果の表である。
第16A図は、現在処理されている枠領域の中身の境界
位置を計算る、ための、書式配置ルーチン(第12図)
で参照されるセル配置ルーチンのブロック流れ図である
第16B図は、現在処理されている枠領域のテキストの
ための表示可能領域及びテキスト線描領域を決定る、た
めの、セル配置ルーチン(第16A図)で参照されるテ
キストセル配置ルーチンのブロック流れ図である。
第16C図は、現在処理されている枠領域に関連る、水
平に配列された子枠領域のそれぞれの左及び右の境界位
置を決定し、その子孫枠領域の全ての配置を決定る、た
めの、セル配置ルーチン(第16A図)で参照される水
平セル配置ルーチンのブロック流れ図である。
第16D図は、現在処理されている枠領域内の垂直に配
列された子枠領域のそれぞれの上及び下の境界位置を決
定し、その子孫枠領域の全ての配置を決定る、ための、
セル配置ルーチン(第16A図)で参照される垂直セル
配置ルーチンのブロック流れ図である。
第16E図は、現在処理されている枠領域内の最初に垂
直に配列されている最上部の枠の垂直位置を決定し、そ
の子孫枠領域の全ての配置を決定る、ための、垂直セル
配置ルーチン(第16D図)で参照される垂直配列決定
ルーチンのブロック流れ図である。
第16F図は、現在処理されている枠領域内で、中身が
書かれるべき開始位置(即ち、垂直配列決定ルーチン(
第16E図)に対る、最初の子枠領域の枠、又はテキス
トセル配置ルーチン(第16B図)に対る、テキストの
最初の行)を計算る、ための、垂直配列決定ルーチン(
第16E図)及びテキストセル配置ルーチン(第16B
図)で参照される適正化ルーチンのブロック流れ図であ
る。
第17A図、第17B図、第17C図、及び第17D図
は、セル配置ルーチンセット(第16A図〜第16F図
)に対る、詳細な例に従って、現在処°理されている枠
領域を指すスタック及びポインタの中身を示す結果の表
である。
第18A図は、書式の枠領域とそれらの子孫枠領域とテ
キストのそれぞれを表示る、ための、書式線描ルーチン
(第11図)で参照されるセル線描ルーチンのブロック
流れ図である。
第18B図は、現在処理されている枠領域のプリントし
得ない及び/又はプリントし得る枠のそれぞれを表示る
、ための、セル線描ルーチン(第18A図)で参照され
る枠線描ルーチンのブロック流れ図である。
第18C図は、現在処理されている枠領域の中身(即ち
、子孫枠領域とテキストのすべて)を表示る、ための、
セル線描ルーチン(第18A図)で参照される中身線描
ルーチンのブロック流れ図である。
2・・・コンピュータベースシステム、5・・・ディス
プレイスクリーン、6・・・制御ボード、7・・・マイ
クロプロセッサ、8・・・コンビエー夕、10・・・キ
ーボード、11・・・プリンタ、12・・・マウス、1
4・・・メモリ、82・・・リサイズ/リフォームルー
チン、90・・・書式フィツトルーチン、98・・・書
式線描ルーチン、108・・・書式配置ルーチン、11
4・・・フィツトセルルーチン、130テキストセルの
大きさ計算ルーチン、144・・・垂直セルの大きさ計
算ルーチン、164・・・水平セルの大きさ計算ルーチ
ン、186・・・子枠領域幅再配分ルーチン。
以上 Fig、 1 S)グ税々・Vクイ;デクジ1)ズとmb・る二と4′
<グ梁Eり5きCk劫11 り77(17クイ;テクジ
ェ上スど/P7ムー、□;シトζ′デ方句の沸髪り、p
c1□°なム1齢区面の浄書(内容に変更なし) 鴨面の沖?!(内容に変更なし) Fig、 8B 2 FIG、  8( 枠傾城 m委懺の中娶り配置 水平 +54.56ぷヅ511) 垂直 (60,62ぶび64) 4 ”F  (61Hat 6]1 斉ヌト ジ−1スト テキスト テキスト 重dL <668rp:ba+ ″:fキヌト テキスト @fi  tフoflJf 72) テキスト 水平 う七Fスト ラ七ぞスト 永IL テキスト テキスト テキスト テキスト (80,82,a4Fiよひ′86) (76δよて〆゛)8) Fig、 9 Fig、 10 Fig、 11 Fig、 12 Fig、13A Flg、13B Fig、 13E FIG。
+5A (?I[i、ljU  ) pig、 16A Fig、 16B Fig。16C JIXI  ・・・・・・ Fig、 16D Fig、 16ε Fig、 16F FIG。
7A 46 枠領域52 (?I[i、1bLI  J FIG、17C FIG。
17D Fig、 18A Fig、 18B Fig、 18C 452・・・・・・・・・・; 手続補正書(方式) 平成2年10月9日 平成1年特許願第345008号 2、発明の名称 −a書式作成のための方法及び装置 3、補正をる、者 事件との関係 特許出願人 住所 アメリカ合衆国 カリフォルニアオックスナード
パシフィック アベニュー1721 名称 ソフトビュー、インコーボレーテ4、代理人 住所 〒540大阪府大阪市中央区域見3033 ラド 5、補正命令の日付(全送日) 6゜ 7゜ 補正の対象 図面(第5A〜8八図、第14B図) 補正の内容 願書に最初に添付した図面の浄書・ 別紙のとおり (内容に変更なし)

Claims (1)

  1. 【特許請求の範囲】 1、一般書式が複数の枠領域に分割された2次元空間と
    して特徴付けられ、該枠領域のそれぞれが調節可能な高
    さ及び調節可能な幅を有し、該書式の該枠領域のそれぞ
    れがテキストを含み、該テキストが、0及び1以上の何
    れかの文字の行を有し、該テキストの該文字のそれぞれ
    が変更可能な書体属性を有し、該変更可能な書体属性が
    書体のタイプ、書体のスタイル、及び書体の大きさを含
    む、一般書式をコンピュータで動的に変更するための方
    法であって、 該書式の1以上の枠領域に対して、該1以上の枠領域の
    調節可能な高さ及び/又は該調節可能な幅を変更するこ
    とによって、該調節された1以上の枠領域が該書式内の
    1以上の他の枠領域と重ならないように、該1以上の枠
    領域の大きさを変更し、及び/又は1以上のテキストを
    有する該枠領域に対して、該テキストが該書式の1以上
    の枠領域に重ならないように、該テキストの変更可能な
    書体属性を変更するステップと、 該重なりが現れないことを確実にするために、該書式の
    1以上の枠領域に対して、該調節可能な高さ、及び/又
    は該調節可能な幅、及び/又は該テキストの該変更可能
    な書体属性を動的に変更するステップと、 を包含する一般書式をコンピュータで動的に変更するた
    めの方法。 2、前記書式の前記枠領域のそれぞれが、少なくとも1
    つの枠を含み、前記調節可能な高さ、及び/又は前記調
    節可能な幅、及び/又は前記変更可能な書体属性を動的
    に変更する前記ステップが、更に該枠領域の少なくとも
    2つの該枠を整列させるステップを包含し、該枠が該動
    的変更のステップを気にすることなく整列を維持する、
    請求項1に記載の方法。 3、前記少なくとも2つの枠領域の前記枠を水平方向に
    整列させるステップを更に包含する、請求項2に記載の
    方法。 4、前記少なくとも2つの枠領域の前記枠を垂直方向に
    整列させるステップを更に包含する、請求項2に記載の
    方法。 5、一般書式が複数の枠領域を有し、該枠領域のそれぞ
    れが、もしあれば該書式のより大きな枠領域に含まれ、
    該枠領域のそれぞれが、もしあれば該書式の複数の重な
    らないより小さな枠領域を有し、該書式の該枠領域のそ
    れぞれがレコードに関連付けられ、該レコードが該関連
    する枠領域の特徴を定義する、一般書式をコンピュータ
    で表現するための方法であって、 該書式の該枠領域に関連する該レコードのそれぞれに対
    して、 もしあれば該枠領域を含む該より大きな枠領域を、該関
    連するレコードに示すステップと、もしあれば該枠領域
    に含まれる該複数のより小さな枠領域を、該関連するレ
    コードに示すステップと、 を包含する一般書式をコンピュータで表現するための方
    法 6、前記含まれるより小さな枠領域を前記関連するレコ
    ードに示す前記ステップが、該含まれるより小さな枠領
    域が前記枠領域内に水平に配列されているか垂直に配列
    されているかを示すステップを更に包含する、請求項5
    に記載の方法。 7、前記枠領域が前記より大きな枠領域に含まれ、該枠
    領域が該より大きな枠領域内に含まれる他の枠領域に関
    して水平に配列されているときに機能し、該枠領域に関
    連する前記レコードに、該より大きな枠領域内の該他の
    枠領域のどれが該枠領域に直接隣接しているかを示すス
    テップを更に包含する、請求項5に記載の方法。 8、前記枠領域が前記より大きな枠領域に含まれ、該枠
    領域が該より大きな枠領域内に含まれる他の枠領域に関
    して垂直に配列されているときに機能し、該枠領域に関
    連する前記レコードに、該より大きな枠領域内の該他の
    枠領域のどれが、該枠領域の上及び/又は下に直接隣接
    しているかを示すステップを更に包含する、請求項5に
    記載の方法。 9、前記枠領域に関連する前記レコード内に、もしあれ
    ば前記含まれる複数のより小さな枠領域を示すステップ
    が、 該枠領域が該複数のより小さな枠領域を含むときに機能
    し、該枠領域内に含まれる該複数のより小さな枠領域の
    数量を示すステップ、 を更に包含する、請求項5に記載の方法。 10、前記枠領域に関連する前記レコード内に、該枠領
    域の幅を示すステップを更に包含する、請求項5に記載
    の方法。 11、前記枠領域に関連する前記レコード内に、該枠領
    域の高さを示すステップを更に包含する、請求項5に記
    載の方法。 12、前記枠領域に関連する前記レコード内に、前記書
    式内の該枠領域の位置を示すステップを更に包含する、
    請求項5に記載の方法。 13、前記枠領域が矩形の枠領域であり、該矩形領域の
    それぞれが2組の座標によって定義され、該座標の組の
    それぞれが前記書式内の位置を定義し、該座標の組の一
    方の組が該矩形領域の左/上の角の位置に関係し、該座
    標の組の他方の組が該矩形領域の右/下の角の位置に関
    係し、前記ステップが、前記関連するレコードに該座標
    の組の座標値を示すステップを包含する、請求項12に
    記載の方法。 14、前記枠領域が矩形の枠領域であり、該矩形領域の
    それぞれが2組の座標によって定義され、該座標の組の
    それぞれが前記書式内の位置を定義し、該座標の組の一
    方の組が該矩形領域の右/上の角の位置に関係し、該座
    標の組の他方の組が該矩形領域の左/下の角の位置に関
    係し、前記ステップが、前記関連するレコードに該座標
    の組の座標値を示すステップを包含する、請求項13に
    記載の方法。 15、前記含まれるより小さな枠領域のそれぞれが前記
    枠領域内の順序の位置に関連し、前記レコード内に、最
    初及び/又は最後の該含まれるより小さな枠領域を示す
    ステップを包含する、請求項5に記載の方法。 16、もしあれば前記含まれるより小さな枠領域を、前
    記枠領域に関連する前記レコードに示す前記ステップが
    、 該含まれるより小さな枠領域が該枠領域に含まれていな
    いときに機能し、該含まれるより小さな枠領域内の該テ
    キストの特徴を、該特徴を定義するためのテキストレコ
    ードに示すステップを更に包含する、請求項5に記載の
    方法。 17、一般書式内に1以上の枠領域を含み、該枠領域の
    それぞれの大きさが幅及び高さによって表現され、該枠
    領域のそれぞれがもしあれば該書式のより大きな枠領域
    内に含まれ、該枠領域のそれぞれが複数の重ならないよ
    り小さな枠領域及びテキストの何れかを含み、該テキス
    トが0及び1以上の何れかの文字の行を含む、一般書式
    内の1以上の枠領域の大きさを計算するためのコンピュ
    ータに於ける方法であって、 該一般書式の該枠領域の1つの幅を得るステップと、 該枠領域が該複数のより小さな枠領域を含むか、又は該
    枠領域が該テキストを含むかを決定するステップと、 該枠領域が該テキストを含むときに機能し、0及び1以
    上の何れかの該文字の行の累積された高さを決定するこ
    とにより、該枠領域の高さを決定するステップと、 該枠領域が該複数のより小さな枠領域を含むときに機能
    し、該含まれるより小さな枠領域が該枠領域内で水平に
    配列されているか、垂直に配列されているかを決定する
    ステップと、 該含まれるより小さな枠領域が該枠領域内で水平に配列
    されているときに機能し、該含まれるより小さな枠領域
    のそれぞれの高さを決定し、該含まれるより小さな枠領
    域の該決定された高さのどれが最大の高さであるかを決
    定し、及び該含まれるより小さな枠領域のそれぞれの幅
    を決定するステップと、 該含まれるより小さな枠領域が該枠領域内で垂直に配列
    されているときに機能し、該含まれるより小さな枠領域
    のそれぞれの高さを決定し、該含まれるより小さな枠領
    域の全ての累積された高さを決定し、該垂直に配列され
    た枠領域の全ての幅を該枠領域の該得られた幅以下とす
    るステップと、を包含する、一般書式内の1以上の枠領
    域の大きさを計算するためのコンピュータに於ける方法
    。 18、前記枠領域が境界を含み、該枠領域の幅を得る前
    記ステップが、該境界の2倍の幅を該枠領域の幅から減
    じるステップを更に包含する、請求項17に記載の方法
    。 19、前記より小さな含まれる枠領域が、複数の更に小
    さな枠領域及びテキストの何れかを有し、該含まれるよ
    り小さな枠領域のそれぞれの大きさを決定する前記ステ
    ップが、該より小さな枠領域のそれぞれの大きさを決定
    するために、前記方法の前記ステップの1以上を1以上
    の回数実行するステップを更に包含する、請求項17に
    記載の方法。 20、前記方法の前記ステップの1以上を実行するステ
    ップが、前記含まれるより小さな枠領域のそれぞれの大
    きさを決定するために、該方法の該ステップの1以上を
    1以上の回数、再帰的に実行するステップを更に包含す
    る、請求項19に記載の方法。 21、枠領域内に中身を有し、該枠領域が一般書式内に
    含まれ、該枠領域が上部、下部、左及び右の境界位置を
    有し、該枠領域がもしあればより大きな枠領域内に含ま
    れ、該枠領域の該中身がもしあれば複数の重ならないよ
    り小さな枠領域及びテキストの何れかを含み、該テキス
    トが0及び1以上の何れかの文字の行を含み、該含まれ
    るより小さな枠領域のそれぞれもまた上部、下部、左及
    び右の境界位置を有する、枠領域の中身の位置を決定す
    るためのコンピュータに於ける方法であって、 該枠領域の上部、下部、左及び右の境界の該位置を得る
    ステップと、 該枠領域の該中身が該複数のより小さな枠領域及び該テ
    キストの何れを含むかを決定するステップと、 該枠領域の該中身が該テキストを含むときに機能し、該
    テキストが該枠領域の該上部及び該下部の何れに整列さ
    れるかを決定するステップと、該枠領域の該中身が該よ
    り小さな枠領域を含むときに機能し、該含まれるより小
    さな枠領域が、該枠領域内で水平に配列されているか、
    垂直に配列されているかを決定するステップと、 該含まれるより小さな枠領域が水平に配列されていると
    きに機能し、該含まれるより小さな枠領域のそれぞれに
    対する該左及び該右の境界の位置を決定し、該含まれる
    より小さな枠領域のそれぞれに対する該上部の境界位置
    が該枠領域の該上部の境界に整列され、該含まれるより
    小さな枠領域のそれぞれに対する該下部の境界位置が該
    枠領域の該下部の境界に整列されるステップと、 該含まれるより小さな枠領域が垂直に配列されていると
    きに機能し、該含まれるより小さな枠領域のそれぞれに
    対する該上部及び該下部の境界の位置を決定し、該含ま
    れるより小さな枠領域のそれぞれの該左の境界位置が該
    枠領域の該左の境界に整列され、該含まれるより小さな
    枠領域のそれぞれの該右の境界位置が該枠領域の該右の
    境界に整列されるステップと、 を包含する、枠領域の中身の位置を決定するためのコン
    ピュータに於ける方法。 22、前記一般書式がディスプレイ上に選択的に表示さ
    れ得る複数の画素によって表現され、該画素のそれぞれ
    がX、Y座標アドレスによって識別され、該書式内の前
    記枠領域のそれぞれが矩形であり、該枠領域のそれぞれ
    がX、Y座標アドレスの2組によって表現され、該X、
    Y座標アドレスの組の一方の組が該矩形枠領域の1つの
    角の位置を表し、該X、Y座標アドレスの組の他の一方
    の組が該矩形枠領域の対向する角の位置を表し、該一般
    書式の該枠領域のそれぞれに対して、該一般書式の該枠
    領域の該位置に、それらに相当するX、Y座標アドレス
    を割当て、それによって前記上部、下部、左及び右の境
    界位置が定義されるステップ、 を更に包含する、請求項21に記載の方法。 23、前記枠領域の前記境界のそれぞれが余白及び枠を
    有し、該枠が該枠領域の外側の境界線を定義し、該余白
    が該枠領域内の該枠に直接隣接し、該余白が該枠領域内
    の相当する画素が表示状態ではない領域を定義し、該枠
    領域の前記境界への該整列された位置を決定する前記ス
    テップが、該整列された位置が該枠領域の直接隣接する
    該境界であることを決定するステップを更に包含する、
    請求項22に記載の方法。 24、1以上の前記含まれるより小さな枠領域が、更に
    複数のより小さな枠領域及びテキストの何れかを有し、
    該更に含まれるより小さな枠領域及び該テキストの何れ
    かの位置を決定するために、前記方法の先に列挙された
    ステップの1以上を実行するためのステップを更に包含
    する、請求項21に記載の方法。 25、1以上の前記含まれるより小さな枠領域が、更に
    複数のより小さな枠領域及びテキストの何れかを有し、 該含まれるより小さな枠領域のそれぞれに対して、該含
    まれるより小さな枠領域の中身が、該複数の更により小
    さな枠領域及び該テキストの何れを有するかを決定する
    ステップ、を包含する、請求項21に記載の方法。 26、前記含まれる複数のより小さな枠領域が水平に配
    列され、該含まれるより小さな枠領域のそれぞれが予め
    決められた幅を有し、該含まれるより小さな枠領域のそ
    れぞれに対する該左及び該右の境界の位置を決定するた
    めの前記ステップが、前記枠領域内の最も左に位置する
    該含まれるより小さな枠領域に対して、該最も左に位置
    する含まれるより小さな枠領域の前記左の境界の位置を
    、該枠領域の前記左の境界に直接隣接する位置として割
    り当てるステップと、 該最も左に位置する含まれるより小さな枠領域の前記右
    の境界の位置を、該最も左に位置する含まれるより小さ
    な枠領域の該割り当てられた左の境界に、該最も左に位
    置する含まれるより小さな枠領域の該予め決められた幅
    を加えた位置として、割り当てるステップと、 を更に包含する、請求項21に記載の方法。 27、前記含まれる複数のより小さな枠領域が垂直に配
    列され、前記含まれるより小さな枠領域のそれぞれが予
    め決められた幅を有し、該含まれるより小さな枠領域の
    それぞれに対する該上部及び該下部の境界の位置を決定
    するためのステップが、 該含まれる複数のより小さな枠領域の全ての最上部の境
    界が、前記枠領域の前記上部の境界に整列されているか
    を決定するステップと、 該含まれる複数のより小さな枠領域の全ての最下部の境
    界が、前記枠領域の前記下部の境界に整列されているか
    を決定するステップと、 を更に包含する、請求項21に記載の方法。 28、前記コンピュータが関連する出力手段を有し、該
    出力手段がディスプレイ手段を有し、該出力手段が該コ
    ンピュータ内に格納された該一般書式を表示し、ユーザ
    が前記枠の位置決めを行い該枠を動かして、該枠の位置
    に変化を施すのを助けるために、前記上部、下部、左及
    び右の境界位置のそれぞれが前記枠領域のプリントし得
    ない枠の側部の位置を定義し、該プリントし得ない枠の
    側部のそれぞれが該枠領域の外側の境界線を定義し、該
    枠の側部のそれぞれが該ディスプレイ手段上に表示され
    た状態及び表示されない状態の何れかであり、 該枠領域のそれぞれに対して、該枠領域の該プリントし
    得ない枠の側部の1以上が表示されているか否かを決定
    するステップ、 を更に包含する、請求項21に記載の方法。 29、一般書式が複数の枠領域に分割された2次元空間
    として特徴付けられ、該枠領域のそれぞれが調節可能な
    高さ及び調節可能な幅を有し、該書式の該枠領域のそれ
    ぞれがテキストを含み、該テキストが、0及び1以上の
    何れかの文字の行を有し、該テキストの該文字のそれぞ
    れが変更可能な書体属性を有し、該変更可能な書体属性
    が書体のタイプ、書体のスタイル、及び書体の大きさを
    含む、一般書式をコンピュータで変更するための装置で
    あって、 該書式の1以上の枠領域に対して、該枠領域の調節可能
    な高さ及び/又は該調節可能な幅を変更することによっ
    て、該調節された1以上の枠領域が該書式内の1以上の
    他の枠領域と重ならないように、該1以上の枠領域の大
    きさを変更する手段、及び/又は1以上のテキストを有
    する該枠領域に対して、該テキストが該書式の1以上の
    枠領域に重ならないように、該テキストの変更可能な書
    体属性を変更する手段と、 該重なりが現れないことを確実にするために、該書式の
    1以上の枠領域に対して、該調節可能な高さ、及び/又
    は該調節可能な幅、及び/又は該テキストの該変更可能
    な書体属性を動的に変更する手段と、 を有する一般書式をコンピュータで動的に変更するため
    の装置。 30、前記書式の前記枠領域のそれぞれが、少なくとも
    1つの枠を含み、前記調節可能な高さ、及び/又は前記
    調節可能な幅、及び/又は前記変更可能な書体属性を動
    的に変更する前記手段が、更に該枠領域の少なくとも2
    つの該平坦な枠を整列させるステップを包含し、該平坦
    な枠が該書式になされる変更を気にすることなく整列を
    維持する、請求項29に記載の装置。 31、前記少なくとも2つの枠領域の前記枠を水平方向
    に整列させる手段を更に包含する、請求項30に記載の
    装置。 32、前記少なくとも2つの枠領域の前記枠を垂直方向
    に整列させる手段を更に包含する、請求項29に記載の
    装置。 33、一般書式が複数の枠領域を有し、該枠領域のそれ
    ぞれが、もしあれば該書式のより大きな枠領域に含まれ
    、該枠領域のそれぞれが、もしあれば該書式の複数の重
    ならないより小さな枠領域を有し、該書式の該枠領域の
    それぞれがレコードに関連付けられ、該レコードが該関
    連する枠領域の特徴を定義する、一般書式をコンピュー
    タで表現するための装置であって、 該書式の該枠領域に関連する該レコードのそれぞれに対
    して、 もしあれば該枠領域を含む該より大きな枠領域を、該関
    連するレコードに示す手段と、 もしあれば該枠領域に含まれる該複数のより小さな枠領
    域を、該関連するレコードに示す手段と、を包含する一
    般書式をコンピュータで表現するための装置。 34、前記含まれるより小さな枠領域を前記関連するレ
    コードに示す前記手段が、該含まれるより小さな枠領域
    が前記枠領域内に水平に配列されているか垂直に配列さ
    れているかを示す手段を更に包含する、請求項33に記
    載の装置。 35、前記枠領域が前記より大きな枠領域に含まれ、該
    枠領域が該より大きな枠領域内に含まれる他の枠領域に
    関して水平に配列されているときに機能し、該枠領域に
    関連する前記レコードに、該より大きな枠領域内の該他
    の枠領域のどれが該枠領域に直接隣接しているかを示す
    手段を更に包含する、請求項33に記載の装置。 36、前記枠領域が前記より大きな枠領域に含まれ、該
    枠領域が該より大きな枠領域内に含まれる他の枠領域に
    関して垂直に配列されているときに機能し、該枠領域に
    関連する前記レコードに、該より大きな枠領域内の該他
    の枠領域のどれが、該枠領域の上及び/又は下に直接隣
    接しているかを示す手段を更に包含する、請求項33に
    記載の装置。 37、前記枠領域に関連する前記レコード内に、もしあ
    れば前記含まれる複数のより小さな枠領域を示す手段が
    、 該枠領域が該複数のより小さな枠領域を含むときに機能
    し、該枠領域内に含まれる該複数のより小さな枠領域の
    数量を示す手段、 を更に包含する、請求項33に記載の装置。 38、前記枠領域に関連する前記レコード内に、該枠領
    域の幅を示す手段を更に包含する、請求項33に記載の
    装置。 39、前記枠領域に関連する前記レコード内に、該枠領
    域の高さを示す手段を更に包含する、請求項33に記載
    の装置。 40、前記枠領域に関連する前記レコード内に、前記書
    式内の該枠領域の位置を示す手段を更に包含する、請求
    項33に記載の装置。 41、前記枠領域が矩形の枠領域であり、該矩形領域の
    それぞれが2組の座標によって定義され、該座標の組の
    それぞれが前記書式内の位置を定義し、該座標の組の一
    方の組が該矩形領域の左/上の角の位置に関係し、該座
    標の組の他方の組が該矩形領域の右/下の角の位置に関
    係し、前記手段が、前記関連するレコードに該座標の組
    の座標値を示す手段を包含する、請求項40に記載の装
    置。 42、前記枠領域が矩形の枠領域であり、該矩形領域の
    それぞれが2組の座標によって定義され、該座標の組の
    それぞれが前記書式内の位置を定義し、該座標の組の一
    方の組が該矩形領域の右/上の角の位置に関係し、該座
    標の組の他方の組が該矩形領域の左/下の角の位置に関
    係し、前記手段が前記関連するレコードに該座標の組の
    座標値を示す手段を包含する、請求項41に記載の装置
    。 43、前記コンピュータが出力手段を含み、該出力手段
    がディスプレイ手段及びプリンタ手段を含み、前記枠領
    域のそれぞれがプリントし得ない枠によって定義され、
    該枠が該ディスプレイ手段上に表示されるべきかを前記
    レコードに示す手段を包含する、請求項33に記載の装
    置。 44、前記含まれるより小さな枠領域のそれぞれが前記
    枠領域内の順序の位置に関連し、前記レコード内に、最
    初及び/又は最後の該含まれるより小さな枠領域を示す
    手段を包含する、請求項33に記載の装置。 45、もしあれば前記含まれるより小さな枠領域を、前
    記枠領域に関連する前記レコードに示す前記手段が、 該含まれるより小さな枠領域が該枠領域に含まれていな
    いときに機能し、該含まれるより小さな枠領域内の該テ
    キストの特徴を、該特徴を定義するためのテキストレコ
    ードに示す手段を更に包含する、請求項33に記載の装
    置。 46、一般書式内に1以上の枠領域を含み、該枠領域の
    それぞれの大きさが幅及び高さによって表現され、該枠
    領域のそれぞれがもしあれば該書式のより大きな枠領域
    内に含まれ、該枠領域のそれぞれが複数の重ならないよ
    り小さな枠領域及びテキストの何れかを含み、該テキス
    トが0及び1以上の何れかの文字の行を含む、一般書式
    内の1以上の枠領域の大きさを計算するためのコンピュ
    ータに於ける装置であって、 該一般書式の該枠領域の1つの幅を得る手段と、該枠領
    域が該複数のより小さな枠領域を含むか、又は該枠領域
    が該テキストを含むかを決定する手段と、 該枠領域が該テキストを含むときに機能し、0及び1以
    上の何れかの該文字の行の累積された高さを決定するこ
    とにより、該枠領域の高さを決定する手段と、 該枠領域が該複数のより小さな枠領域を含むときに機能
    し、該含まれるより小さな枠領域が該枠領域内で水平に
    配列されているか、垂直に配列されているかを決定する
    手段と、 該含まれるより小さな枠領域が該枠領域内で水平に配列
    されているときに機能し、該含まれるより小さな枠領域
    のそれぞれの高さを決定する手段、該含まれるより小さ
    な枠領域の該決定された高さのどれが最大の高さである
    かを決定する手段、及び該含まれるより小さな枠領域の
    それぞれの幅を決定する手段と、 該含まれるより小さな枠、領域が該枠領域内で垂直に配
    列されているときに機能し、該含まれるより小さな枠領
    域のそれぞれの高さを決定する手段、及び該含まれるよ
    り小さな枠領域の全ての累積された高さを決定し、該垂
    直に配列された枠領域の全ての幅を、該決定された大き
    さを有する該枠領域の該得られた幅以下とする手段と、 を包含する、一般書式内の1以上の枠領域の大きさを計
    算するためのコンピュータに於ける装置。 47、前記枠領域が境界を含み、該枠領域の幅を得る前
    記手段が、該境界の2倍の幅を該枠領域の幅から減じる
    手段を更に包含する、請求項46に記載の装置。 48、前記より小さな含まれる枠領域が、複数の更に小
    さな枠領域及びテキストの何れかを有し、該含まれるよ
    り小さな枠領域のそれぞれの大きさを決定する前記手段
    が、該より小さな枠領域のそれぞれの大きさを決定する
    ために、前記装置の前記手段の1以上を1以上の回数実
    行する手段を更に包含する、請求項46に記載の装置。 49、前記装置の前記手段の1以上を実行する手段が、
    前記含まれるより小さな枠領域のそれぞれの大きさを決
    定するために、該装置の該手段の1以上を1以上の回数
    、再帰的に実行する手段を更に包含する、請求項48に
    記載の装置。 50、前記含まれるより小さな枠領域のそれぞれの高さ
    を決定する前記手段が、 該含まれるより小さな枠領域が複数の更に小さな枠領域
    を含むか、又は該含まれるより小さな枠領域がテキスト
    を含むかを決定する手段、 を更に包含する、請求項46に記載の装置。 51、前記枠領域の高さを計算する前記手段に先だって
    、該枠領域の幅を得る前記手段と、該枠領域が前記複数
    のより小さな枠領域を含むかを決定する前記手段とを実
    行するための手段を更に包含する、請求項46に記載の
    装置。 52、テキストを有する前記枠領域の高さを計算するた
    めの前記手段が、該テキストの0及び1以上の何れかの
    前記行のそれぞれの高さを決定するための手段を更に包
    含する、請求項46に記載の装置。 53、テキストを有する前記枠領域の前記累積された高
    さを決定するための前記手段が、該テキストが文字の行
    を有さないときに機能し、該枠領域の高さを該テキスト
    の1行の高さに等しく決めるための手段、 を更に包含する、請求項46に記載の装置。 54、前記含まれるより小さな枠領域のそれぞれの間に
    余白が含まれ、 該含まれるより小さな枠領域が垂直に配列されていると
    きに機能し、前記累積された高さに、該含まれる複数の
    より小さな枠領域の間の該余白を加える手段、 を更に包含する、請求項46に記載の装置。 55、前記枠領域が該枠領域内に境界を含み、前記含ま
    れるより小さな枠領域が垂直に配列されているときに機
    能し、該枠領域の高さに、該枠領域内の該境界を加える
    手段、 を更に包含する、請求項46に記載の装置。 56、枠領域内に中身を有し、該枠領域が一般書式内に
    含まれ、該枠領域が上部、下部、左及び右の境界位置を
    有し、該枠領域がもしあればより大きな枠領域内に含ま
    れ、該枠領域の該中身がもしあれば複数の重ならないよ
    り小さな枠領域及びテキストの何れかを含み、該テキス
    トが0及び1辺上の何れかの文字の行を含み、該含まれ
    るより小さな枠領域のそれぞれもまた上部、下部、左及
    び右の境界位置を有する、枠領域の中身の位置を決定す
    るためのコンピュータに於ける装置であって、 該枠領域の上部、下部、左及び右の境界の該位置を得る
    手段と、 該枠領域の該中身が該複数のより小さな枠領域及び該テ
    キストの何れを含むかを決定する手段と、該枠領域の該
    中身が該テキストを含むときに機能し、該テキストが該
    枠領域の該上部及び該下部の何れに整列されるかを決定
    する手段と、 該枠領域の該中身が該より小さな枠領域を含むときに機
    能し、該含まれるより小さな枠領域が、該枠領域内で水
    平に配列されているか、垂直に配列されているかを決定
    する手段と、 該含まれるより小さな枠領域が水平に配列されていると
    きに機能し、該含まれるより小さな枠領域のそれぞれに
    対する該左及び該右の境界の位置を決定し、該含まれる
    より小さな枠領域のそれぞれに対する該上部の境界位置
    が該枠領域の該上部の境界に整列され、該含まれるより
    小さな枠領域のそれぞれに対する該下部の境界位置が該
    枠領域の該下部の境界に整列される手段と、 該含まれるより小さな枠領域が垂直に配列されていると
    きに機能し、該含まれるより小さな枠領域のそれぞれに
    対する該上部及び該下部の境界の位置を決定し、該含ま
    れるより小さな枠領域のそれぞれの該左の境界位置が該
    枠領域の該左の境界に整列され、該含まれるより小さな
    枠領域のそれぞれの該右の境界位置が該枠領域の該右の
    境界に整列される手段と、 を包含する、枠領域の中身の位置を決定するためのコン
    ピュータに於ける装置。 57、前記一般書式がディスプレイ上に選択的に表示さ
    れ得る複数の画素によって表現され、該画素のそれぞれ
    がX、Y座標アドレスによって識別され、該書式内の前
    記枠領域のそれぞれが矩形であり、該枠領域のそれぞれ
    がX、Y座標アドレスの2組によって表現され、該X、
    Y座標アドレスの組の一方の組が該矩形枠領域の1つの
    角の位置を表し、該X、Y座標アドレスの組の他の一方
    の組が該矩形枠領域の対向する角の位置を表し、該一般
    書式の該枠領域のそれぞれに対して、該一般書式の該枠
    領域の該位置に、それらに相当するX、Y座標アドレス
    を割当て、それによって前記上部、下部、左及び右の境
    界位置が定義される手段、 を更に包含する、請求項56に記載の装置。 58、前記枠領域の前記境界のそれぞれが余白及び枠を
    有し、該枠が該枠領域の外側の境界線を定義し、該余白
    が該枠領域内の該枠に直接整列され、該余白が該枠領域
    内の相当する画素が表示状態ではない領域を定義し、該
    枠領域の前記境界への該整列された位置を決定する前記
    手段が、該整列された位置が該枠領域の直接整列された
    該境界であることを決定する手段を更に包含する、請求
    項57に記載の装置。 59、1以上の前記含まれるより小さな枠領域が、更に
    複数のより小さな枠領域及びテキストの何れかを有し、
    該更に含まれるより小さな枠領域及び該テキストの何れ
    かの位置を決定するために、前記装置の先に列挙された
    手段の1以上を実行するための手段を更に包含する、請
    求項56に記載の装置。 60、1以上の前記含まれるより小さな枠領域が、更に
    複数のより小さな枠領域及びテキストの何れかを有し、 該含まれるより小さな枠領域のそれぞれに対して、該含
    まれるより小さな枠領域の中身が、該複数の更により小
    さな枠領域及び該テキストの何れを有するかを決定する
    手段、 を包含する、請求項56に記載の装置。 61、前記含まれる複数のより小さな枠領域が水平に配
    列され、該含まれるより小さな枠領域のそれぞれが予め
    決められた幅を有し、該含まれるより小さな枠領域のそ
    れぞれに対する該左及び該右の境界の位置を決定するた
    めの前記手段が、前記枠領域内の最も左に位置する該含
    まれるより小さな枠領域に対して、該最も左に位置する
    含まれるより小さな枠領域の前記左の境界の位置を、該
    枠領域の前記左の境界に直接整列された位置として割り
    当てる手段と、 該最も左に位置する含まれるより小さな枠領域の前記右
    の境界の位置を、該最も左に位置する含まれるより小さ
    な枠領域の該割り当てられた左の境界に、該最も左に位
    置する含まれるより小さな枠領域の該予め決められた幅
    を加えた位置として、割り当てる手段と、 を更に包含する、請求項56に記載の装置。 62、前記含まれる複数のより小さな枠領域が垂直に配
    列され、前記含まれるより小さな枠領域のそれぞれが予
    め決められた幅を有し、該含まれるより小さな枠領域の
    それぞれに対する該上部及び該下部の境界の位置を決定
    するための手段が、該含まれる複数のより小さな枠領域
    の全ての最上部の境界が、前記枠領域の前記上部の境界
    に整列されているかを決定する手段と、 該含まれる複数のより小さな枠領域の全ての最下部の境
    界が、前記枠領域の前記下部の境界に整列されているか
    を決定する手段と、 を更に包含する、請求項56に記載の装置。 63、前記コンピュータが関連する出力手段を有し、該
    出力手段がディスプレイ手段を有し、該出力手段が該コ
    ンピュータ内に格納された該一般書式を表示し、ユーザ
    が前記枠の位置決めを行い該枠を動かして、該枠の位置
    に変化を施すのを助けるために、前記上部、下部、左及
    び右の境界位置のそれぞれが前記枠領域のプリントし得
    ない枠の側部の位置を定義し、該プリントし得ない枠の
    側部のそれぞれが該枠領域の外側の境界線を定義し、該
    枠の側部のそれぞれが該ディスプレイ手段上に表示され
    た状態及び表示されない状態の何れかであり、 該枠領域のそれぞれに対して、該枠領域の該プリントし
    得ない枠の側部の1以上が表示されているか否かを決定
    する手段、 を更に包含する、請求項56に記載の装置。
JP1345008A 1988-12-30 1989-12-28 一般書式作成のための方法及び装置 Pending JPH03110665A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/292,611 US5144693A (en) 1988-12-30 1988-12-30 Method and apparatus for generic form generation
US292,611 1988-12-30

Publications (1)

Publication Number Publication Date
JPH03110665A true JPH03110665A (ja) 1991-05-10

Family

ID=23125424

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1345008A Pending JPH03110665A (ja) 1988-12-30 1989-12-28 一般書式作成のための方法及び装置

Country Status (5)

Country Link
US (1) US5144693A (ja)
EP (1) EP0376420A3 (ja)
JP (1) JPH03110665A (ja)
AU (1) AU4700189A (ja)
CA (2) CA1330123C (ja)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0451485A3 (en) * 1990-04-11 1992-12-30 International Business Machines Corporation A form authoring toolkit
US5379372A (en) * 1990-09-13 1995-01-03 Wu; William C. Apparatus and method for designing a form structure using column and row rules
US7051273B1 (en) 1990-11-30 2006-05-23 Microsoft Corporation Customizing forms in an electronic mail system utilizing custom field behaviors and user defined operations
US5557723A (en) * 1990-11-30 1996-09-17 Microsoft Corporation Method and system for customizing forms in an electronic mail system
US5490243A (en) * 1990-12-13 1996-02-06 F3 Software Corporation Data processing system for multi-platform print control and electronic data fill
US5384886A (en) * 1991-04-01 1995-01-24 Xerox Corporation Process for electronically printing envelopes
US5649216A (en) * 1991-05-17 1997-07-15 Joseph S. Sieber Method and apparatus for automated layout of text and graphic elements
JPH0721754B2 (ja) * 1991-11-08 1995-03-08 インターナショナル・ビジネス・マシーンズ・コーポレイション グラフィカル・ユーザ・インターフェース
EP0541237A1 (en) * 1991-11-08 1993-05-12 International Business Machines Corporation Data entry field modification in a graphical user interface
US5267303A (en) * 1992-03-20 1993-11-30 Xerox Corporation Using a form to request automatic creation of form with fields for requesting operations in relation to items
ATE190149T1 (de) * 1993-04-30 2000-03-15 Ibm Bereich-layout in einer sicht auf einem grafischen anzeigeschirm
US5364608A (en) * 1993-07-30 1994-11-15 Eaton Corporation Method of converting a silicon nitride from alpha-phase to beta-phase, apparatus used therefor, and silicon nitride material made therefrom
IL110811A0 (en) * 1993-09-07 1994-11-11 Jetform Corp Electronic forms generation system and method
US5796402A (en) * 1993-12-03 1998-08-18 Microsoft Corporation Method and system for aligning windows on a computer screen
US5878198A (en) * 1994-12-21 1999-03-02 Canon Kabushiki Kaisha Information processing apparatus and method and memory medium storing information processing program
US6807676B1 (en) * 1995-07-14 2004-10-19 General Instrument Corporation Methods of formatting data to maximize the readability and the amount of song identification information displayed on a limited number of lines
US6037944A (en) * 1996-11-07 2000-03-14 Natrificial Llc Method and apparatus for displaying a thought network from a thought's perspective
US6012070A (en) * 1996-11-15 2000-01-04 Moore Business Forms, Inc. Digital design station procedure
US6144974A (en) * 1996-12-13 2000-11-07 Adobe Systems Incorporated Automated layout of content in a page framework
US6243721B1 (en) * 1997-01-31 2001-06-05 Microsoft Corporation Method and apparatus for providing automatic layout capabilities for computer forms
US6321243B1 (en) * 1997-06-27 2001-11-20 Microsoft Corporation Laying out a paragraph by defining all the characters as a single text run by substituting, and then positioning the glyphs
JP3560447B2 (ja) * 1997-07-28 2004-09-02 シャープ株式会社 画像処理装置
JP4077909B2 (ja) * 1997-10-03 2008-04-23 富士通株式会社 帳票処理装置
US6076080A (en) * 1997-11-04 2000-06-13 The Standard Register Company Forms order entry system
US6236938B1 (en) 1999-08-05 2001-05-22 Amadeus Consulting Group, Inc. Systems and methods for creating maps using GPS systems
FR2803056B1 (fr) * 1999-12-23 2002-03-29 Roland Tomasi Dispositif informatique et procede pour le remplissage d'imprimes d'ordinateur
JP2002222183A (ja) * 2001-01-24 2002-08-09 Seiko Instruments Inc 印刷テンプレート作成用のユーザーインターフェース
DE10138323C1 (de) * 2001-08-10 2003-04-17 Danfoss As Messendurchflußmeßgerät und Verfahren zum Messen eines Massendurchflusses
US7444302B2 (en) * 2002-06-14 2008-10-28 Ellie Mae, Inc. Online system for fulfilling loan applications from loan originators
US7076733B2 (en) 2002-07-12 2006-07-11 Pace Micro Technology Plc Electronic program guide and method for programming and editing items therein
US7472089B2 (en) * 2002-08-15 2008-12-30 Ellie Mae, Inc. Loan origination system interface for online loan application processing
US20050235202A1 (en) * 2004-04-20 2005-10-20 Tsu-Wang Chen Automatic graphical layout printing system utilizing parsing and merging of data
US8990254B2 (en) 2004-07-02 2015-03-24 Ellie Mae, Inc. Loan origination software system for processing mortgage loans over a distributed network
US20060059422A1 (en) * 2004-09-16 2006-03-16 Ting-Hu Wu Desktop application implemented with web paradigm
US20060101023A1 (en) * 2004-11-05 2006-05-11 Ellie Mae, Inc. Universal computing paradigm with single-code base utilizing a flexible distributed computing architecture
EP1710715A1 (fr) * 2005-04-06 2006-10-11 Amadeus s.a.s Méthode dynamique de rendu visuel de fenetres d'affichage et de saisie de données sur un écran d'ordinateur
JP4944434B2 (ja) * 2005-12-06 2012-05-30 キヤノン株式会社 レイアウト方法及びプログラム
US9430455B2 (en) * 2005-12-15 2016-08-30 Simpliance, Inc. Methods and systems for intelligent form-filling and electronic document generation
US8600798B1 (en) 2007-09-21 2013-12-03 Ellie Mae, Inc. Loan screening

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5916075A (ja) * 1982-07-20 1984-01-27 Dainippon Printing Co Ltd 帳票デザインシステム
JPS5994789A (ja) * 1982-11-24 1984-05-31 株式会社東芝 文書編集装置
JPS61255460A (ja) * 1985-05-08 1986-11-13 Casio Comput Co Ltd 表罫線補間方式
JPS6289988A (ja) * 1985-06-19 1987-04-24 株式会社東芝 文書作成装置
JPS62200458A (ja) * 1986-02-28 1987-09-04 Casio Comput Co Ltd 表作成装置
JPS62267858A (ja) * 1986-05-15 1987-11-20 Nec Corp 矩形内文字列作成編集装置
JPS63109577A (ja) * 1986-10-28 1988-05-14 Dainippon Printing Co Ltd 画面上での商品割付装置
JPS63111565A (ja) * 1986-10-29 1988-05-16 Mitsubishi Electric Corp 組版システム
JPS63240678A (ja) * 1987-03-27 1988-10-06 Mitsubishi Electric Corp 組版システム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4823108A (en) * 1984-05-02 1989-04-18 Quarterdeck Office Systems Display system and memory architecture and method for displaying images in windows on a video display
US4658366A (en) * 1984-08-09 1987-04-14 Posh David R Methods and apparatus for accurately completing pre-printed forms
US4736308A (en) * 1984-09-06 1988-04-05 Quickview Systems Search/retrieval system
US4962475A (en) * 1984-12-26 1990-10-09 International Business Machines Corporation Method for generating a document utilizing a plurality of windows associated with different data objects
US4829294A (en) * 1986-06-25 1989-05-09 Hitachi, Ltd. Document processing method and system using multiwindow
GB8618664D0 (en) * 1986-07-31 1986-09-10 British Telecomm Computer aided design system
US4788538A (en) * 1986-11-17 1988-11-29 Lotus Development Corporation Method and apparatus for determining boundaries of graphic regions
US4763356A (en) * 1986-12-11 1988-08-09 AT&T Information Systems, Inc. American Telephone and Telegraph Company Touch screen form entry system
JPH01174463A (ja) * 1987-12-28 1989-07-11 Sharp Corp ドットパターン補正方法
JPH01183784A (ja) * 1988-01-19 1989-07-21 Toshiba Corp 文書画像処理装置

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5916075A (ja) * 1982-07-20 1984-01-27 Dainippon Printing Co Ltd 帳票デザインシステム
JPS5994789A (ja) * 1982-11-24 1984-05-31 株式会社東芝 文書編集装置
JPS61255460A (ja) * 1985-05-08 1986-11-13 Casio Comput Co Ltd 表罫線補間方式
JPS6289988A (ja) * 1985-06-19 1987-04-24 株式会社東芝 文書作成装置
JPS62200458A (ja) * 1986-02-28 1987-09-04 Casio Comput Co Ltd 表作成装置
JPS62267858A (ja) * 1986-05-15 1987-11-20 Nec Corp 矩形内文字列作成編集装置
JPS63109577A (ja) * 1986-10-28 1988-05-14 Dainippon Printing Co Ltd 画面上での商品割付装置
JPS63111565A (ja) * 1986-10-29 1988-05-16 Mitsubishi Electric Corp 組版システム
JPS63240678A (ja) * 1987-03-27 1988-10-06 Mitsubishi Electric Corp 組版システム

Also Published As

Publication number Publication date
CA1330123C (en) 1994-06-07
EP0376420A3 (en) 1991-04-24
AU4700189A (en) 1990-07-05
CA1341309C (en) 2001-10-23
EP0376420A2 (en) 1990-07-04
US5144693A (en) 1992-09-01

Similar Documents

Publication Publication Date Title
JPH03110665A (ja) 一般書式作成のための方法及び装置
US5208906A (en) Method and apparatus for representing bordered areas of a generic form with records
US5680629A (en) Method and system for previewing computer output
US8539342B1 (en) Read-order inference via content sorting
US5148520A (en) Determining the locations of the contents of bordered areas of a generic form
EP0632408B1 (en) Method of generating a visual design
US5652901A (en) Method and system for previewing computer output
US20020031386A1 (en) System and method for printing sequences of indicia
US7453474B2 (en) Flexibly resizeable vector graphics
JP3292247B2 (ja) デスクトップ文書作成システム
JPH04148475A (ja) 文書処理方法及び装置
JP3527615B2 (ja) レイアウト組版方法
JP2002133360A (ja) 表計算処理におけるセルのレイアウトによる入出力方法及びそのプログラムを記録した記録媒体
Williams Font creation with FontForge
CN105701073A (zh) 版式文件的生成方法及装置
JP2000293592A (ja) レイアウトデータ変換方法及、装置及び記憶媒体
JPH0863472A (ja) 文字組版装置
JPH0554114A (ja) 画像表示装置
JP3071801B2 (ja) 文字編集システム
Calder Building user interfaces with lightweight objects
CA1340593C (en) Method and apparatus for determing the size of bordered areas of a generic form
JPH087012A (ja) データの出力様式編集方法および装置
JP3142854B2 (ja) 文字編集システム
JP4467832B2 (ja) レイアウトデータ作成方法およびシステム
JPH03194649A (ja) 表構造管理方式