JPH04148475A - 文書処理方法及び装置 - Google Patents

文書処理方法及び装置

Info

Publication number
JPH04148475A
JPH04148475A JP2272161A JP27216190A JPH04148475A JP H04148475 A JPH04148475 A JP H04148475A JP 2272161 A JP2272161 A JP 2272161A JP 27216190 A JP27216190 A JP 27216190A JP H04148475 A JPH04148475 A JP H04148475A
Authority
JP
Japan
Prior art keywords
page
typesetting
display
font
document
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.)
Granted
Application number
JP2272161A
Other languages
English (en)
Other versions
JP3083314B2 (ja
Inventor
Haruo Shimizu
清水 治夫
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.)
Canon Inc
Original Assignee
Canon 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 Canon Inc filed Critical Canon Inc
Priority to JP02272161A priority Critical patent/JP3083314B2/ja
Priority to US07/774,254 priority patent/US6189020B1/en
Priority to DE69131921T priority patent/DE69131921T2/de
Priority to EP91309391A priority patent/EP0480755B1/en
Publication of JPH04148475A publication Critical patent/JPH04148475A/ja
Application granted granted Critical
Publication of JP3083314B2 publication Critical patent/JP3083314B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/106Display of layout of documents; Previewing

Landscapes

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

Abstract

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

Description

【発明の詳細な説明】 【産業上の利用分野】
本発明は文章情報を入力し、組版を行って表示出力する
文書処理装置に関するものである。
【従来の技術】
DTPの分野においては、文字のページ内での最適配置
を計算する処理、即ち組版処理の形態には2種類がある
。このうちの1つは、WYSIWY G (What 
You See Is What You Get)シ
ステムであり、広く普及しているワードプロセッサ等が
これに対応している。このシステムは、文書作成者が最
終印刷形態を画面上で見1ながら、対応する位置に対応
する文字サイズで文字入力するシステムである。 このシステムの特徴として、 [長所] ■ユーザが最終画面を見ながら文字を入力できるのでほ
ぼ自分の思い通りの文書が作成できる。 ■ユーザ・インターフェースに優れている。 ■短い文書作成が容易である。 [短所〕 ■大部の文書での統一的な取り扱いに難がある。 ■目次や、索引作成にはバッチ的処理が必要。 ■他システムでの文書再利用が困難。 ■専用の装置が必要。 もう1つはバッチ型システムで、スタンフォード大学の
Kunth氏によって作成されたTEXや、AT/Tで
開発されたroffシステム等がこれに対応している(
文献二木村泉“文書整形言語”情報処理、p559〜p
564.6月、1981)。 これらのシステムは、第2図に示すように、文書を組版
する指示を含むソースファイル51をテキストエディタ
50で作成して、それをコンパイル52して組版した中
間ファイル53を作成し、その結果を画面上で表示54
したり、プリンタで印刷55したりする。 このシステムの特徴としては、 [長所] ■大部の文書で統一的な取扱いが容易。 ■目次や、索引作成の機能を取り込みやすい。 ■文書のソースファイルは別システムでも再利用が容易
。 ■通常のテキスト端末を使用しても作成できる。 [短所] ■文書をプログラムするような形態であるため、素人に
は難しい。 ■処理結果は、コンパイルして表示しないとわからない
。 ■短い文書の場合では、WYSIWYGを用いて作成し
たほうが簡単である。 この比較で見るように、WYSIWYGやバッチ型の文
書処理システムには、それぞれの長所があるが、例えば
WYSIWYG型のシステムに目次や索引の一括処理機
能を導入したり、スタイルシートを導入して全ページに
亙って同じページスタイルで文書を作成するといったバ
ッチ型システムの長所を取り入れることも考えられてい
る。 方、バッチ型のシステムでは、文書をプログラムするこ
とを直接ユーザに実行させる代りに、構造化エディタを
かぶせて、ユーザに次にどのようなコマンドを入力でき
るかをアイコン等で示して、組版言語に精通する必要を
なくしている。 このようにして、最近の文書組版処理は、WYSIWY
Gとバッチ型のハイブリッドな様相を呈してきている。
【発明が解決しようとする課題】
このようにして、バッチ処理型の文書処理システムでは
、このシステムの欠点はかなり解決されてきているが、
まだ未解決の課題が残されている。それは、従来のバッ
チ処理系では、最終文書イメージが、ソースファイルを
コンパイルした後、表示または印刷という工程を経て可
視化されるため、非常にターンアラウンド時間が長くユ
ーザにとって不満が大きかった。また、文章イメージの
表示に関しては、物理的なイメージを示すのみで、情報
間のつながりを明示できるようなしくみにはなっていな
かった。更に、表示される画面の数が1つ又は2つとい
うように同定されている場合が多(、より多くの画面の
ページレイアウトを同時に見ることが不可能であった。 本発明は上記従来例に鑑みてなされたもので、組版処理
と表示処理との間でのデータのやり取りを可能にして、
組版した結果を迅速に表示できる文書処理装置を提供す
ることを目的とする。
【課題を解決するための手段] 上記目的を達成するために本発明の文書処理装置は以下
の様な構成からなる。即ち、 文書情報を入力し、組版処理を行って表示出力する文書
処理装置であって、文書情報の組版処理を行う組版手段
と、前記組版手段により組版が行われた文書情報をペー
ジ単位で受取って表示する表示手段とを有する。 【作用】 以上の構成において、文書情報の組版処理を行う組版手
段により組版が行われた文書情報を、逐次ページ単位で
受取って表示することができる。
【実施例】
以下、添付図面を参照して本発明の詳細な説明例を詳細
に説明する。 〈文書処理システムの説明 (第1図)〉第1図は本発
明の第1実施例の文書処理システムの構成を示すブロッ
ク図である。 図において、1は本システムの処理手順を記憶するため
の記憶部、2は本システムの処理に必要な情報を記憶す
るための記憶部、3は本システムの入力または出力デー
タを記憶するための外部記憶装置、4は記憶部1に記憶
されている処理手順に従って処理を行うためのCPUで
ある。6は本システムの処理結果を表示するためのマル
チウィンドウ表示部、7は本システムの処理結果を印刷
するためのプリンタ、8はユーザからの指令を入力する
マウスである。9はキーボード(KB)で、ユーザがプ
ログラムを作成したり、本システムに指令を入力するの
に使用される。 記憶部1において、11は文書フォーマツタで、組版ソ
ースファイル31から人力されるソースファイルと、フ
ォントメトリックデータ32を入力として、組版結果フ
ァイル(DVI)34を出力する組版プログラムである
。12はプレピュアで、文書フォーマツタ11によって
作成されたDVIファイル34とフォントパターン33
とフォントメトリックデータ32を入力として、組版結
果をマルチウィンドウ表示部6に表示するプログラムで
ある。13はプリンタドライバで、組版結果をプリンタ
7に出力する印刷プログラムである。14はウィンドウ
サーバで、ウィンドウ表示部6を動作させるためのプロ
グラムである。15はスプーラで、印刷の命令が発行さ
れた場合、その起動順序に従って印刷を行うスプーラプ
ログラムである。 記憶部3において、31は組版ソースファイルで、組版
を行う際に、その命令十文書情報を含んでいる。32は
フォントメトリックデータで、文字組版を行う際に必要
な文字のメトリック情報(文字高さ、文字深さ、文字幅
)を含むファイルである。33はフォントパターンで、
文書データを表示・印刷する際に必要となる文字のドツ
トパターンを記憶している。34は組版結果ファイルで
、組版処理の結果を格納するD V I (DeVic
e Independent)ファイルである。 次に、記憶部2において、21はイベントキューで、マ
ウス8やキーボード9により入力されるユーザーよりの
要求をキューイングする。22はバッチメモリで、ウィ
ンドウ表示部6にデータを表示する際、直接VRAM6
1をアクセスするのではなく、−日、このバッキングス
トアメモリ22に描画した後、VRAM61にマツピン
グするのに使用される。 まず、組版機能について説明する。 本プログラムではスタンフォード大学のり、 Kunt
h氏によって作成されたTEXを基本として利用してい
る。(Donald E、Kunth、”The TE
Xbo。 k”、 Adclison−Wesley、 1984
)組版は基本的に2つの概念を用いて実際のページ整形
を行っている。1つはbox (箱)という概念であり
、文字フォントのようにページのどの部分にあってもそ
の高さ、幅方向のサイズが変化しないものである。2つ
目はglue(糊しろ)という概念であり、行末合せ等
を行うためにす。 X間の伸び縮みしつるスペース量である。 これら2つの概念を用いて、まずboxおよびglu6
を組み合せて、文字を行方向に最適位置となるような配
置を決定する。 次に、この行方向に最適配置が行なわれた文字列がペー
ジ全体にうまく当てはまるように、文字列間のバランス
を調整する。 ここではまず、文字の行方向の最適配置のアルゴリズム
を、上述のbox及びglueを利用して説明する。例
えば下の2つの文の行末を合せる場合を考える。 It is fine today、 isn’t i
t?     (22)This is just a
n example、       (20)ここでは
簡単化のためにBoxとしての文字幅をすべて固定ピッ
チとし、単語内の文字間には空白がないとし、さらに以
下のような値を持つと仮定する。 文字サイズ=10pt 行幅   =250pt glue  =固定幅  (LOpt)伸び可能量(2
0p t) 縮み可能量(5pt) 但し実際には、フォント毎にフォント・メト2゜クック
データ32から文字のメトリック情報をツカする。 こうすると最初の行の自然長は、 10(pt)x22(文字数) ”10 (pt) ×
5 (”j日数)=270(pt)となり 次の行の自然長は、 10(pt)X20(文字数) + 10 (pt)x
4 (空白数)=240 (pt)となる。 最終的な行幅は250ptであるため、最初の行はgl
ueを縮め、後者はglueを伸ばす必要がある。その
量はそれぞれ、 (270−250)15=4pt (250−240)/4=2.5ptとなる。 こうして得られた結果を第3図に示す。この第3図では
、1行めの文章の単語間スペースは4pt縮められて6
ptとなり、2行めの文意のスペースは2.5pt伸ば
されて、12.5ptとなっている。 ここで、この行方向の最適配置のアルゴリズムを第4図
のフローチャートを参照して簡単に説明するが、まず変
数に関して説明する。 Xは水平方向の文字位置、(b  w)は行内のbox
の幅のトータル値、(g  w)は行内のglueの自
然幅のトータル値、(g  st  w)は行内のgl
ueの伸び量のトータル値、(gsh  w)は行内の
glueの縮み量のトータル値、そして(Aw)は組版
する行幅とする。 まず、ステップSlで、1行の水平方向の最適位置を決
定するために利用される変fi(xbw、g  w、g
  st、g  sh  w、I2  w)をクリアす
る。次にステップS2に進み、ラインを構成する要素で
あるboxまたはglueを順次読込み、もし要素が終
了していた際にはステップS3へ、そうでない時はステ
ップS4に進む。 ステップS4では入力された要素がbOXかどうかを判
定し、boxであるときはステップs6に進み、そのb
oxの幅を(b  w)に加算する(文字の際には第1
図のフォント・メトリックデータ32より文字幅を取出
す)。また、glueの時にはステップS5に進み、g
lueの幅、伸び量、縮み量をそれぞれ(g  w)、
  (g  stw)、(g  sh  w)に加算す
る。こうしてlライン分の情報を入力し終えるとステッ
プs3に進み、このラインはglue量を伸ばすのが、
縮めるのか、又はそのままでいいかを判定する。 それは(I2 w)と(g  w+b  w)の大小判
定を行い、前者が大きければglueの拡大(ステップ
S8)、さもなければglueの縮小(ステップS7)
となる。 この時のglueの拡大率eは、e=((nw)−(g
  w+b  w))/(g  w)また、縮小率rは
、r=((g  w十b  w)−(I2 w))/(
g  w)により求められる。 ただし、ここで拡大する際に(9w−(gw+h  w
))>g  st  wとなると、伸びつるglue量
以上の伸長を行うことになり、b。 X間の間隔が広がり、最適な配置とは言えなくなる。一
方、縮小の場合は、拡大と異なり事態は深刻で、前後の
boxが重なってしまうとも限らない。これに対処すべ
くラインブレーク処理でglueの縮小率が1,0を越
えないように計算しなければならない。このようにして
、行毎のglueの拡大、縮小率を保持して、後のbo
xの最適位置の計算時に利用する。 しかし、現実的にはこのように簡単ではなく行末ぞろえ
を行う際にユーザから入力された文字列に対してどこで
行を区切るかという問題(ラインブレーク)が存在する
。 ラインブレークの問題はいろんな方法によって解決でき
るが、ここでは行毎にラインブレーク位置を決定して行
く最も簡単な方法を説明する。これ以外にDynami
c Programmingによって、ラインブレーク
を計算する方法があり、それを利用するともつとよい結
果が得られる。 ラインブレークは基本的にglue位置でしか起こりえ
ない、即ち英語の単語のようにboxがらのみ構成され
、glueのないものは単語内でラインブレークが発生
しない(ハイフオネーションは除()。これに対し、日
本語のように文字(b o x)間にglueが入る場
合は、どの文字間でもラインブレークは起りつる(ただ
し、行頭、行末禁則の場合は除()。 以下、第5図を用いて最適ラインブレーク計算のアルゴ
リズムを紹介する。 まずステップSllで、本アルゴリズムで使用する各種
変数をクリアした後、文章の構成要素をポインタ(pt
r)を利用して読込み、現在の要素がboxかglue
かをみる。boxの際にはステップS13に進み、第4
図で示したのと同じ手法でglueの拡大・縮小率の計
算を行う。 一方、ステップS12でglueの時にはステップS1
4に進み、ラインブレークを行えるのか評価するための
値を計算する。ここでは、その1例として、 Na1=(ratio) 2+ (penalty) 
2とする。 ここで、ratioはglueの拡大・縮小率であり、
penaltyはそこでブレークをするとまずい時のペ
ナルティ値である。例えば日本語の際に、句読点が現在
のglue位置の後にあると禁則処理のためこのペナル
ティ値を太き(し、容易にラインブレークが句読点の前
で発生しないようにする。この評価式はいろんな関数が
考えられるが、ここでは−例を挙げるに留める。 次に、ステップS15でこの評価値(Nal)がライン
ブレークの許容値(s t d)以内にあるかどうかを
判定し、許容値内にあればステップ816に進み、少な
くとも1つの最適のラインブレーク位置が見つかったと
いうフラグ(found )に1をセットする。そして
ステップS17で、評価値と今までの評価の最小値mi
nを比較し、Na1O方が小さい時にはステップS18
に進み、m1nにNalの値をセットし、最適ブレーク
位置を示すbest  ptrが現在のglue位置を
指すようにする。 一方、ステップS15で評価結果(Nal)が基準内に
ない時はステップS19に進み、今までに最適ブレーク
位置があったかどうか判定する。 あればステップS20に進み、best  ptrのポ
インタで指されるglueの所までが最適のブレーク位
置となり、次の行のための準備としてスキャンするpt
rの位置を、このminのglueの次に来るbox位
置へと移動させCステップ521)、次行のための準備
を行う。 こうして、ラインブレークと行内での水平方向の配置を
決定するための計算が行われる。 次の手順は行毎のboxをページ内に垂直方向に配置す
る計算であるが、これは前述した水平方向の配置計算と
同じ手順によって実行できる。ここでは、文字boxと
文字間glueの代りに、行高さ、行間glueと置き
換えて実行すればよいので説明は省略する。 こうして最終的にすべてのboxが水平、垂直方向に配
置された状態を第6図に示す。boxの基準位置は・ 
(61)で示している。ここです。 xには2種類あり、boxのベースライン(基準位置)
を水平方向にそろえて並べるものをhb。 x、boxの基準位置を縦方向にそろえて並べるものを
vboxと呼ぶ。 最終的に第6図に示すような最外枠のvboxから再帰
的に以下のbox配置処理をvboxhboxに応じて
実行する。 vboxでは、内包するboxの基準位置のX座標は同
一であり、X座標の値が変化していく。 内包するデータがboxの際には、X座標がす。 x高さ分ずつ、現在の基準位置に加算される。これに対
し、glueの場合は、本来のglue幅値に拡大・縮
小率に応じたスペース分を現在の基準位置に追加してい
くことによって基準位置を更新することができる。 同様に、hboxの場合には、基準位置のX座標は固定
されていて、X座標はbOX幅を現在の基準位置に加算
して得られる。また、glueには、本来のglue幅
値に拡大・縮小率に応じたスペース量を現在の基準位置
に加算することにより得られる。このようにして組版さ
れた結果は、第1図の組版結果ファイル(DVIファイ
ル)34に格納される。DVIの名称は組版結果を出力
するプリンタや表示部等の解像度やフォントに依存しな
い形態で保持する必要があり、その結果どのマシンで実
行しても同じ結果が保証されることに由来する。この中
間結果ファイルの例として第7図に示すような例があげ
られる。 71はDVIファイルである事を示すための識別子であ
り、72はページヘッダで、組版された各ページの情報
、例えばそのページ内に含まれるフォント名称やサイズ
、実際のページの組版情報へのポインタからなり、ペー
ジ数分このヘッダが存在する。73はページ情報部で、
実際に組版された情報を含み、基本的に以下のような情
報が格納される。 ・フォント切換え(タイプフェース+サイズ)命令 文字コード 水平方向の移動量 垂直方向の移動量 矩形描画(現在位置に指定された幅、 高さで表 示される)命令等が含まれる。 組版位置を計算する際の基本単位は、例えば2−16p
t (ptは1/72インチ)とし、整数単位で計算し
ても誤差がほとんど出ない単位として計算する。そこで
上述の水平、垂直方向の移動量のパラメータは2−18
 p を単位としている。 最終的に今までの組版アルゴリズムをまとめてフローチ
ャートとして第8図に示す。 次に、本実施例の第2の主要な構成要素となる組版結果
の表示プログラム(プレピュアに)ついて説明する。こ
のプレピュア12は、最近Xウィンドウに代表されるよ
うなマルチフォント、図形描画機能を持つウィンドウシ
ステムの出現により、組版結果をプリントアウトして確
認する前に、画面上に高速にかつ安価に組版結果を確認
できることを特徴としている。 このプログラムは前述の組版処理と比較すると簡単に実
現できるが、以下にそのアルゴリズムの概略を第9図の
フローチャートを参照して説明する。 まずステップS51で組版結果を表示するウィンドウの
表示枠全体のサイズを決定する。通常、このサイズは表
示し得る限りの最大サイズとなるよう設定するとよい。 次にステップS52で、実際に表示するためのウィンド
ウ領域を確保すると共に、表示画面の初期化等を実行す
る。この場合、実際の印刷イメージとCRTの表示画面
とでは解像度が異なるため、文字フォントなどはプリン
ト用に使われるフォントを縮小する必要が生ずる。この
縮小倍率をステップ353で決定するが、それは表示画
面の縦、横方向のドツトサイズと利用するフォントが作
成された解像度でのオリジナル文書の縦、横方向のドツ
トサイズの比率となる。 これらの準備が終了した後ステップS54に進み、文書
フォーマツタ11で作成した表示したいDVIファイル
をオーブンし、表示したいページ情報のありかを第7図
のページヘッダ71を参照することによってファイル内
をシークする(ステップ555)。 次にステップS56で、ページ内の組版情報73を1コ
マンドずつスキャンして、ステップS57でページが終
了するまで対応した処理ルーチン(ステップ358〜8
66)を実行する。 これらの処理ルーチンは大別すると以下の5つに分類で
きる。 (1)文字コマンド(ステップ358,559)文字コ
マンドは文字コードをパラメータとして持ち、現在のフ
ォント種、サイズで指定された文字コードを現在位置に
表示する。 このフォントはフォント切換時に指定されたフォントを
利用するもので、切換時に1バイト(英語)、2バイト
(日本語)フォントへのアクセス方法に関する処理手順
へのポインタが得られている。その結果、このステップ
S59では、ポインタで示される関数に文字コード及び
現在位置情報を与えることによってウィンドウ上に文字
が表示される。しかし、ウィンドウ表示部6の形式に従
い、文字表示の方法は色々と異なる。例えば、Xウィン
ドウのようなサーバ・クライアントモデルでも、表示す
るためのフォントがクライアント側に存在する場合とサ
ーバ側に存在する場合、利用方法が異なる。大きな相違
点はクライアントにフォントがある場合、そのフォント
を一旦縮小して、ウィンドウ上で表示するのに最適なフ
ォントサイズに変換した後、フォントイメージをサーバ
に送出する。 それとは逆にサーバにフォントがある場合、フォントの
拡大、縮小はクライアントから容易に実行できないため
、サーバ内でのフォントのうち最も近いフォントを選択
して、コードのみクライアントから送出する。 (2)矩形コマンド(ステップSho、561)本矩形
コマンドは、アンダライン、オーバライン、囲み枠、ケ
イ線等の構成要素となるもので、四角の矩形を描くため
に、現在位置からの幅、高さ情報をコマンドのパラメー
タとして持つ。どのようなウィンドウシステムでも大体
矩形描画コマンドを持っているため現在位置、幅、高さ
をウィンドウ上のそれとなるように縮小率をかけて変換
しく但し、幅、高さは最低でも1ドツト幅となるように
する。)、その結果をウィンドウ表示部6に対して指示
すればよい。 (3)位置移動コマンド(ステップS62,56現在位
置の(x、y)座標を内部的に保持している変数り、v
に、縦又は横の移動量に応じた量を加算して、現在位置
(x、y)を保持する。 (4)フォント切換(ステップS64,565)印字す
るためのフォント(タイプフェース、サイズ情報を含む
)を切り換える命令が入力されると、例えばXウィンド
ウのクライアント側にフォントがある系だと、クライア
ント内のフォントアクセスのための関数へのポインタを
切り換える。 逆に、サーバ側にフォントがある際には、最適フォント
に切換える命令をクライアントからサーバに送り、その
サーバ内部でフォント切換にともなう処理を実行する。 (5)その他の処理(ステップ566)上述の4つの処
理以外にも、下に列挙するようなコマンドをも処理する
必要がある。 ☆5pecialコマンド(一般化されていない特殊コ
マンド) ☆現在位置のpush、pop命令 以上説明した組版機能と組版結果プレビュー(表示)機
能を利用して、本実施例では、更に両者のプログラム間
で相互交信を行ってインタラクティブな組版環境を提供
している。このプログラム間での相互交信の手段として
は、例えばtlnix(AT/Tの登録商標)での°’
 5ocket”や°’pipe”システムコール、ま
たはプログラム間の共有メモリ機能等がある。 組版プログラムと表示プログラム間でのデータ交信の方
法として、以下に述べるような2通りの方法が考えられ
る。 (1)組版結果たれ流し 組版プログラムが組版した結果を、順次”5ocket
”や”pipe”で作成された通信路を通して表示プロ
グラムへ送る方式である。この結果1表示プログラム側
では送られてきたデータをファイルにバッファリングし
ながら、もし表示可能なデータが存在すると、そのデー
タを表示することができる。 (2)テンポラリ・ページ情報ファイル作成組版プログ
ラムが組版した結果を、ページ単位でバッファリングし
て、ページ単位のファイルが作成されると、そのファイ
ル名を表示プログラムに報知する。これにより表示プロ
グラムが、そのファイルをオーブンしてページの内容を
表示する。 ここでは前者の方式を用いたインタラクティブな組版表
示の場合で説明する。向、本実施例において、組版プロ
グラム11は、前述した組版プログラム(第8図)を利
用し、それ程変更を加えないようにした。 まず、そのアルゴリズムを第10図(A)のフローチャ
ートを参照して説明する。組版プログラムは表示プログ
ラム(プレピュア)12に対して組版結果の送り手とな
るので、例えばUnixの持つ5ocket+ bin
d十connectシステムコールを発生して1表示プ
ログラム12とのデータ伝送の通信路を設定する(ステ
ップ571)。そしてステップ372〜S75では、前
述の組版アルゴリズムと同様にして、ページが最適位置
でブレークされる。 次にステップS77で、ページ内の各要素(文字box
やg l ue)を最適な位置に割り振り、ステップS
78でDVIファイルに書き込むだけでなく、上記ステ
ップS71で設定された通信路を通して、表示プログラ
ム12に組版結果のデータを送出するのである。そして
ステップS80でページの最後になるとページ終了マー
クを付け、表示プログラムにページの終了を報知する。 文書の最後になるとステップS80に進んで、ページの
終了と同じようにステップ376と同様の処理を実行し
、最後にステップS81でデータ終了のマークを付加し
て、表示プログラムにブタ伝送を行う。 次に、表示プログラム12の処理概要を第1O図(B)
を用いて説明する。 このプログラム12は組版プログラム11より組版した
結果を受取って表示するため、まずステップS91で組
版プログラムとの通信経路なセ・ソトする。その手順と
して前述と同様に、例えばLlnixシステムでは5o
cket、 bind、 1isnter、 acce
ptのシステムコールな発行する。こうして組版プログ
ラムからの通信路を確立した後、ステップS92で表示
画面に関する初期設定を行う。本実施例では一度にウィ
ンドウ上に表示できるベージ計をこの表示プログラムの
起動時に指定できるようにする。例えば、簡単化のため
に分割数=n、表示の段数を2、表示画面の縦、横有効
ドツトサイズをv、hとすると、実際の1ページの有効
縦、横ドツト数のそれぞれ■ドツト、Hドツトは、■ド
ツト=■/2 Hドツトサイズ((n+1)/2)となる。 これと実際の印刷イメージの縦、横方向のドツトサイズ
との比から、実際の画面上での縮小比率が求まる。こう
して縮小率も求められると、まず表示用の初期画面を生
成して、その画面をクリアした(ステップ592)後、
組版プログラムよりのデータを得るべ(ポーリングを行
う(ステップ593)。もし組版データが入力されると
、データを外部記憶装置3または内部記憶部2に格納し
て、再表示の場合にも利用できるよう対処する(ステッ
プ594)。 次にステップS95で現在表示すべき状態にあるかどう
かを判定し、そうであればステップ896に進んで実際
のウィンドウ上への表示を実行する。なお、第10図(
B)のステップS95及び896は本実施例の中心部分
であるので、第11図を参p、r3. シてより詳しく
説明する。 本プログラムでは組版データの入力と表示のために、以
下に示す変数を持つ。 (in ptr)は、組版データを外部又は内部記憶部
へ格納する際に使用されるポインタで、次にデータを格
納すべき場所を指示する。(cur ptr)は、現在
のpreviewを行っている情報部へのポインタであ
る。(in page)は、人力している組版データの
属するページ番号、(cur page)は1現在ウイ
ンドウに表示中のページ番号を示す。 これらの変数はステップ5101でクリアされ、組版プ
ログラムよりのデータをポーリングする(ステップ51
02)。そして、入力されたデータにページ終了命令が
存在すると、(in page)カウンタを更新して現
在入力中のページ番号を最新にする(ステップ3103
.5104)。次にステップ5105に進み、データが
人力すると、データを外部又は内部記憶部に格納すると
共に、データを格納したサイズ分だけ(in ptr)
を更新する。 次にステップ5106に進み、ユーザからキーボード9
やマウス8を通しての各種指令が人力されたかを調べ、
イベントキュー21に格納されたものを順次処理してい
く。これらの処理は、例えばウィンドウ上に複数ページ
の表示が可能だが、全てのページ分が表示されていて新
規に表示できない時、例えばユーザが現在表示している
全てのページを消去して新規のページから表示したり、
最初に表示されたページを消去して残りのページをシフ
トさせて新規のページを表示したりする場合等に、入力
される指令等を読取るのに必要である。 ステップ8106でユーザからの指令がイベントキュー
21に格納されているか判断し、1つでもイベントが存
在するとその中で最も古いイベントを取り出し、そのイ
ベントに応じた処理をステップ8107〜ステツプSl
 10で実行する。例えば、ステップ5107でユーザ
が現在表示中のページを全てクリアするための指令を入
力すると、ステップ5108で表示中の全画面をクリア
して、新しいページを表示するための準備を行う。 また、ステップ5108でページシフトコマンドが入力
されると、ステップ5109で最も古(表示されたペー
ジを消去し、表示現在表示中のページをシフトして新規
ページ表示用の空領域を作成する。このような表示デー
タの移動を効率的に行うため、nパー9分の表示を同時
に行う際に、nパー9分のパツキンゲス)・アメモリ2
2を保持し、表示イメージは直接ウィンドウに描くので
はな(、バッキングストアメモリ22に描画する。 そして、このバッキングストアメモリ22から実際にウ
ィンドウとして表示するVRAMエリア61にビットマ
ツプ展開する形式を取る。通常、このバッキングストア
メモリは、ウィンドウ表示部のサーバ側が管理し、クラ
イアント側はこの各ページに対応するバッキングストア
メモリ22をVRAM61  (x、y)の位置に幅W
、高さh分コピーするよう指令を出すと非常に効率的と
なる。 また、こうすることにより、ウィンドウ間の上下関係が
変更された時、再描画しなくても、状態が変化した部分
のイメージのみ再表示すればよいというメリットがある
。 ただし、この方式ではウィンドウのVRAM61以外に
バッキングストアメモリ22が必要であり、メモリ等の
記憶容量は増大するが、メモリが安くなった現在では、
それほど問題となる訳ではない。 また、別の選択肢としてステップ5110でウィンドウ
表示終了の指令が入力されると、組版プログラムとの間
に設定された通信路を閉じるとともに、現在表示中の画
面をクローズして表示プログラムを終了させる。 次に、実際の表示に関するアルゴリズムを説明する。ス
テップ5111で(cur page)がユーザの表示
しているページで、かつ現在そのページを表示し得るか
どうかを判定し、もし表示し得ない時は画面の全クリア
か、表示ページのシフト処理をユーザにうながすべ(、
ステップ5112でウィンドウ上に警告を出す。 一方、表示可能状態にあればステップ5113に進み、
ウィンドウ上に組版結果の表示を行う(詳しいアルゴリ
ズムは後述する)。そして、ステップ5114で現在表
示中のページが終了すればステップ5115に進み、(
cur pag6)の変数を加算して、次のデータ読み
込みのためのポーリング状態に入る。 ウィンドウ上での表示アルゴリズム概要に関しては既に
第9図を用いて説明をしているが、ここでは前記で説明
されていない文字描画の機能詳細に関して第12図を用
いて説明する。 まず、ステップ5120でオリジナルの組版サイズに対
してウィンドウ画面上に表示する1ペ一ジ分のサイズの
比率ratioを計算する。そして、このratioを
利用して、ある解像度において作成されたフォントイメ
ージのサイズ(orig 5ize)から実際に画面に
表示するフォントのサイズ(realsize)を計算
する(ステップ5121)。 (real size)=(orig 5ize) *
 rati。 ステップ5122,3123において、組版上での現在
位置の計算を行ってから、縮小したページにおける表示
位置を計算する。これはバッキングストアメモリ22に
おける印字位置となる。ここで、文字を縮小した結果文
字サイズが小さすぎて表示できない場合は、文字サイズ
領域いっばいのbox (ロ)で印字する(ステップ5
L25)方、文字が表示可能なサイズである場合には、
文字パターンがウィンドウ表示部6のタライアンドかサ
ーバのいずれに持っているかに従って処理が異なる(ス
テップ3126)。即ち、サーバ側に存在する時にはス
テップ5129に進み、サーバ内に存在する最適フォン
トをサーチして、そのフォントを現在の指定フォントと
してサーバ内にロードして(ステップ3130)、文字
表示のための準備を完了する。そして最終的に現在位置
と指定した文字コードをサーバに送出して(ステップ3
131)、ウィンドウ内に文字を表示する。 一方、クライアント側にフォントが存在している時には
、オリジナルフォントを縮小率ratioに従って縮小
しくステップ5127)、得られたビットマツプを画像
と同じプロトコルでサーバ側に送出して、文字の表示を
行う(ステップ8128)。 こうして文字描画が終った後、次の印字位置を決定する
ために、印字した文字が文字幅移動を伴うか否かを判定
する(ステップ3132)。文字幅移動を伴うときはフ
ォント・メトリックデータ32より幅情報を抽出して、
現在位置に加算し、次の印字位置を求める(ステップ8
134)。 [他の実施例] 本発明の他の実施例の基本アルゴリズムを第13図(A
)(B)に示す。 第10図に示した前述の実施例と基本的にはほぼ同様で
ある。即ち、第13図(A)のステップ8141〜51
51は、第10図(A)のステップS71〜S80と、
また、第13図(B)のステップ8161〜8166は
、第10図(B)のステップ391〜S97と基本的に
同じである。 但し、前述のフローチャートでは組版した結果のデータ
を表示プログラムに対してたれ流す形式となっていたの
に対し、本例ではステップ8148で組版した結果をペ
ージ毎に別のファイルに格納し、ステップ5149で表
示プログラムに対し、このファイル名称のみを伝送する
ようにしている。これによって、表示プログラム側で対
応するファイルをオーブンして表示する構成になってい
る。 ここでページ毎のファイル名を、例えばaaa、bbb
とし、aaaとはUnixなどのO8で用いられるプロ
セス番号で、組版プログラムに与えられたものとし、b
bbとは組版内におけるページ番号を表すことにすれば
、ユニークにファイル名称を与えられることが可能であ
る。 また、本実施例では、1つの組版プロセスで複数個の組
版ページファイルと1個のDVIファイルが存在するた
め、表示プログラムの終了時点で複数個の組版ページフ
ァイルを消去する(ステップ8167)。 また、この実施例では組版プログラムと表示プログラム
間のデータのやり取りのための手段として、プロセス間
通信を例にしたが、この代りにプログラム間の共有メモ
リ機能を利用しても同等な機能が実現できる。 以上説明したように本実施例によれば、従来のバッチ処
理型文書処理システムと比較して、処理結果が組版処理
と並行して表示されるため、組版の間違いを検出するた
めの時間が短縮され、非常に操作性が良(、かつ効率的
な文書処理システムが提供できる。 さらに、ウィンドウ上に表示できるページ画面の数を任
意に設定できることにより、操作性が向上する。更に、
画面上に表示されたイメージをダンプし、そのイメージ
を印刷することによって、ゲラ刷りよりももつと簡易な
組版機能の確認を行える。 【発明の効果] 以上説明したように本発明によれば、組版処理と表示処
理との間でのデータのやり取りを可能にして、組版した
結果を迅速に表示できる効果がある。
【図面の簡単な説明】
第1図は本実施例の文書処理システムの基本構成を示す
ブロック図、 第2図は従来のバッチシステムの基本構成を示す図、 第3図は文字列の行末合せの例を示す図、第4図は行内
水平方向の文字最適配置アルゴリズムを示すフローチャ
ート、 第5図はラインブレークのアルゴリズムを説明するだめ
のフローチャート、 第6図はhbox、vboxの配置列を説明するための
図、 第7図は組版処理結果を格納するDVIファイルのデー
タ形式を示す図、 第8図は本実施例の基本となる組版処理の概要を示すフ
ローチャート、 第9図は本実施例の基本となる表示処理の概要を示すフ
ローチャート、 第10図は本実施例の基本アルゴリズムを示すフローチ
ャートで、第10図(A)は第8図の処理に変更を加え
た組版処理アルゴリズムを示すフローチャート、第10
図(B)は第8図の処理に変更を加えた表示処理アルゴ
リズムを示すフローチャート、 第11図は表示プログラムにおける核の部分の詳細アル
ゴリズムを示すフローチャート、第12図は文字表示の
詳細を示すフローチャート、そして 第13図は他の実施例の基本アルゴリズムを示すフロー
チャートで、第13図(A)は組版アルゴリズムの他の
実施例を示すフローチャート、第13図(B)は表示ア
ルゴリズムの他の実施例を示すフローチャートである。 図中、12・・・内部記憶装置、3・・・外部記憶装置
、4・・・CPU、6・・・マルチウィンドウ表示部、
7・・・プリンタ、8・・・マウス、9・・・キーボー
ド、11・・・文書フォーマツタ、12・・プレピュア
、13・・・プリンタドライバ、14・・・ウィンドウ
サーバ、15・・・スプーラ、21・・・イベントキュ
ー、22・・・バッキングストアメモリ、31・・・組
版ソースファイル、32・・・フォント・メトリックデ
ータ、33・・・フォントパターン、34・・・組版結
果ファイルである。 特許出願人  キャノン株式会社 第 2図 第6図 第 7図 (A) 第10図 (B) 第0図 第 3図 (B)

Claims (3)

    【特許請求の範囲】
  1. (1)文書情報を入力し、組版処理を行つて表示出力す
    る文書処理装置であつて、 文書情報の組版処理を行う組版手段と、 前記組版手段により組版が行われた文書情報をページ単
    位で受取つて表示する表示手段と、を有することを特徴
    とする文書処理装置。
  2. (2)前記組版手段は前記文書情報をページ単位にバッ
    チ処理して組版を行うようにしたことを特徴とする請求
    項第1項に記載の文書処理装置。
  3. (3)前記表示手段は複数の表示用ウィンドウを有し、
    ユーザからの指示に従つて組版された各ページを表示で
    きることを特徴とする請求項第1項に記載の文書処理装
    置。
JP02272161A 1990-10-12 1990-10-12 文書処理方法及び装置 Expired - Fee Related JP3083314B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP02272161A JP3083314B2 (ja) 1990-10-12 1990-10-12 文書処理方法及び装置
US07/774,254 US6189020B1 (en) 1990-10-12 1991-10-10 Document processing method and apparatus using batch process
DE69131921T DE69131921T2 (de) 1990-10-12 1991-10-11 Dokumentverarbeitungsverfahren und -gerät
EP91309391A EP0480755B1 (en) 1990-10-12 1991-10-11 Document processing method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP02272161A JP3083314B2 (ja) 1990-10-12 1990-10-12 文書処理方法及び装置

Publications (2)

Publication Number Publication Date
JPH04148475A true JPH04148475A (ja) 1992-05-21
JP3083314B2 JP3083314B2 (ja) 2000-09-04

Family

ID=17509939

Family Applications (1)

Application Number Title Priority Date Filing Date
JP02272161A Expired - Fee Related JP3083314B2 (ja) 1990-10-12 1990-10-12 文書処理方法及び装置

Country Status (4)

Country Link
US (1) US6189020B1 (ja)
EP (1) EP0480755B1 (ja)
JP (1) JP3083314B2 (ja)
DE (1) DE69131921T2 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6247011B1 (en) * 1997-12-02 2001-06-12 Digital-Net, Inc. Computerized prepress authoring for document creation
JPH11282829A (ja) * 1998-03-31 1999-10-15 Fuji Photo Film Co Ltd フォント共有システムおよび方法ならびにフォント共有方法を実行するためのプログラムを格納した記録媒体
US6510441B1 (en) * 1998-12-11 2003-01-21 Adobe Systems Incorporated Optimal line break determination
FR2804231B1 (fr) 2000-01-25 2002-11-08 Vistaprint Usa Inc Impression centralisee de documents commerciaux en faibles volumes sur des machines auparavant limitees a des tres gros tirages
EP1259887A4 (en) 2000-01-25 2003-08-13 Vistaprint Usa Inc Managing print jobs
US7072055B1 (en) * 2000-03-31 2006-07-04 Hewlett-Packard Development Company, L.P. Encapsulated pdf direct printing
US7444586B1 (en) 2000-09-27 2008-10-28 Adobe Systems Incorporated Inhibiting space compression or expansion in automated paragraph layouts
US7197695B2 (en) * 2000-11-22 2007-03-27 Adobe Systems Incorporated Automated paragraph layout
US7401290B2 (en) 2001-03-05 2008-07-15 Adobe Systems Incorporated Inhibiting hypenation clusters in automated paragraphs layouts
US7219309B2 (en) * 2001-05-02 2007-05-15 Bitstream Inc. Innovations for the display of web pages
AU2002316067A1 (en) * 2001-05-02 2002-11-11 Bitstream Inc. Methods, systems, and programming for producing and displaying subpixel-optimized font bitmaps using non-linear color balancing
JP2006201935A (ja) * 2005-01-19 2006-08-03 Fuji Xerox Co Ltd 画像データ処理装置
US10216708B2 (en) * 2009-10-05 2019-02-26 Adobe Systems Incorporated Paginated viewport navigation over a fixed document layout

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4057849A (en) * 1974-09-23 1977-11-08 Atex, Incorporated Text editing and display system
US4587631A (en) * 1981-06-16 1986-05-06 International Business Machines Corp. Automatic text adjustment
JPS57209537A (en) 1981-06-19 1982-12-22 Sanyo Electric Co Ltd Japanese language word processor
US4491933A (en) * 1982-03-18 1985-01-01 Wordtronix Inc. Word processor
US4523294A (en) * 1982-05-27 1985-06-11 Southwest Research Institute Character spaced justification method and apparatus
US4498147A (en) * 1982-11-18 1985-02-05 International Business Machines Corporation Methodology for transforming a first editable document form prepared with a batch text processing system to a second editable document form usable by an interactive or batch text processing system
US4692042A (en) * 1983-06-13 1987-09-08 Digitext, Inc. Computerized printing system
JPS60108883A (ja) 1983-11-18 1985-06-14 株式会社日立製作所 文書編集装置
JPS61141029A (ja) 1984-12-14 1986-06-28 Toshiba Corp ワ−ドプロセツサ用レイアウト印刷制御装置
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
JPS63172328A (ja) * 1987-01-09 1988-07-16 Sharp Corp コンピユ−タ装置を備える編集タイプライタ
JPS63187331A (ja) 1987-01-30 1988-08-02 Hitachi Ltd マルチウインドウによるデ−タ表示方式
US4896289A (en) * 1987-07-29 1990-01-23 Xitron, Inc. Expansion interface board system for connecting several personal computers to an electronic typesetter connected to a host personal computer
US5001697A (en) * 1988-02-10 1991-03-19 Ibm Corp. Method to automatically vary displayed object size with variations in window size
US5562350A (en) * 1988-04-18 1996-10-08 Canon Kabushiki Kaisha Output apparatus that selects a vector font based on character size
JP3245655B2 (ja) * 1990-03-05 2002-01-15 インキサイト ソフトウェア インコーポレイテッド 作業スペースの表示処理方法
US5133051A (en) * 1990-12-13 1992-07-21 Handley George E Automatic high speed publishing system

Also Published As

Publication number Publication date
DE69131921D1 (de) 2000-02-24
DE69131921T2 (de) 2000-06-15
EP0480755A3 (en) 1993-11-10
JP3083314B2 (ja) 2000-09-04
EP0480755B1 (en) 2000-01-19
US6189020B1 (en) 2001-02-13
EP0480755A2 (en) 1992-04-15

Similar Documents

Publication Publication Date Title
JPH03110665A (ja) 一般書式作成のための方法及び装置
JPH04148475A (ja) 文書処理方法及び装置
JPH04128970A (ja) 文書処理システム
US5689723A (en) Method for allowing single-byte character set and double-byte character set fonts in a double-byte character set code page
JP3076348B2 (ja) 文書整形装置及び文書整形方法
JP3029822B2 (ja) 文書処理装置、文書処理方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
JP4574347B2 (ja) 画像処理装置、方法及びプログラム
JPH08293033A (ja) 情報処理装置
JPH0696070A (ja) 文書入力方式
JPH03194649A (ja) 表構造管理方式
JPH04127265A (ja) 文書処理装置および文書処理方法
JPH0573544A (ja) 文章編集装置
JPH07304148A (ja) 文字組版装置
JPH025176A (ja) 文書論理構造編集装置
JPS6231470A (ja) 文書作成装置のリンキング方式
JPH08287050A (ja) レイアウトデザイン装置
JPH07152737A (ja) 文書作成装置
JPS61229161A (ja) 文書作成編集装置
JPH04111054A (ja) 文書処理装置
JPH0567108A (ja) 文字入力編集装置
JPH07295973A (ja) 文書書式の設定方法
JPS62186355A (ja) 文書作成方式
JPH03160571A (ja) 画像処理方法
JPH0573545A (ja) 文章編集装置
JP2001043214A (ja) 自動作表方法

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees