JPH06266337A - 文字列描画処理方法 - Google Patents

文字列描画処理方法

Info

Publication number
JPH06266337A
JPH06266337A JP5055484A JP5548493A JPH06266337A JP H06266337 A JPH06266337 A JP H06266337A JP 5055484 A JP5055484 A JP 5055484A JP 5548493 A JP5548493 A JP 5548493A JP H06266337 A JPH06266337 A JP H06266337A
Authority
JP
Japan
Prior art keywords
character
character string
driver
error
line
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
JP5055484A
Other languages
English (en)
Inventor
Yutaka Ishihata
由多可 石畠
Nobuhiko Minamoto
信彦 源
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.)
PFU Ltd
Original Assignee
PFU Ltd
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 PFU Ltd filed Critical PFU Ltd
Priority to JP5055484A priority Critical patent/JPH06266337A/ja
Publication of JPH06266337A publication Critical patent/JPH06266337A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 本発明は、文字列描画処理方法に関し、ディ
スプレイ上に表示又はプリンタへ印刷した場合に見栄え
がよく自然な表示を得ることを目的とする。 【構成】 文字位置揃え部5は所定の手段により文字列
の先頭文字の描画位置の誤差をその初期値として求め、
この誤差の初期値を用いて文字列の文字の描画位置につ
いての誤差管理を行ないつつ文字列の文字を描画する。
罫線補間部8は文字列のスケーリングが行なわれている
か否かを調べ、行なわれている場合に補間パターン3の
スケーリングを行なう。ドライバ4はこのスケーリング
された補間パターンを用いて罫線である文字列を補間す
る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、文字列描画処理方法に
関し、特に、ビットマップメモリ上へ文字列を描画する
場合においてこれを表示した場合に自然な表示が得られ
るようにした文字列描画処理方法に関する。
【0002】ビットマップメモリへは1画素単位での書
込み(描画)が可能であるので、アプリケーション(プ
ログラム)から任意の文字パターンを描画することがで
きる。この描画の際に、いくつかの不自然さが発生する
ため、これを表示した場合に見栄えを悪くする原因とな
っている。
【0003】
【従来の技術】図10(A)は、従来のビットマップメ
モリ上への文字列の描画について示す。この例は、文字
列の書出し位置(X座標)0.0,文字幅10.0,文
字間隔5.1として文字列を描画した場合を示す。な
お、図において、「□」は文字枠であり、また、Y座標
は省略してある。
【0004】ビットマップメモリの解像度は有限である
ため、各文字(文字枠)の書出し位置は、図示の如く、
正の整数に限られる場合がある。一方、文字幅又は文字
間隔として、前述の例の如く、少数点以下の値までが指
定される場合がある。
【0005】このため、ビットマップメモリ上における
文字列の位置(物理的位置)と、描画指示に従って本来
文字列があるべき位置(論理的位置)との間に、図示の
如き誤差が生じる。例えば、2文字目の「2」は、本来
座標「15.1」から書出されるべきところ、座標「1
5.0」から書出されている。即ち、誤差は「−0.
1」である。
【0006】この誤差は、その値が所定値(この場合
は、−0.4〜0.5)以下となるように(誤差の値を
4捨5入することによって)される。例えば、6文字目
の「6」の誤差が「−0.5」となるのを防ぐため、誤
差分を書出し位置に反映させる。即ち、書出し位置を
「75」ではなく「76」とすると共に、誤差を「−
0.5」ではなく「0.5」とする。これにより、描画
指示に近い結果を得ようとしている。
【0007】図11は、文字が罫線である場合のビット
マップメモリ上への文字列の描画について示す。この描
画は文字列として与えられる罫線と罫線との間を補間し
つつ行なわれる。即ち、図10(A)の場合と同じく、
文字幅等により文字枠が定まり、この文字枠内に罫線パ
ターンが存在する。そこで、文字枠と文字枠との間(文
字間隔により定まる)を、同一の罫線パターンで補間す
る。
【0008】図11(A)は、ラスタフォントの罫線文
字描画における補間の方法である終端ドットコピー方式
を示す。この方式は、文字枠内のフォントの終端の1ド
ット(1ライン)分を、次の文字枠までの領域にくり返
しコピーすることによって、文字枠間を補間する。
【0009】図11(B)も、ラスタフォントの補間方
法の一例であり、補間パターンを用いる方式を示す。こ
の方式は、文字枠内の罫線パターンを認識し、このパタ
ーンと一致する補間パターンにより文字枠間を補間す
る。
【0010】図11(A)の方式は「実線」の補間に用
いられ、図11(B)の補間は「破線」等の補間に用い
られる。これらの方式は、必要に応じて使い分けされ
る。なお、図10(A)において、図に示す誤差は参考
的に示したものであり、従来、物理的位置と論理的位置
との間の誤差は管理されていない。即ち、各文字(文字
枠)の書出し位置を決定する場合にその誤差が考慮され
るのみであって、この決定の後(例えば、描画中等にお
いて)は、誤差が考慮されることはない。
【0011】
【発明が解決しようとする課題】図10(A)に示す文
字列の描画の場合、各文字毎に誤差が累積するため、図
10(B)に示す如く、行間の文字の位置揃えができな
くなってしまうという問題があった。
【0012】図10(B)において、1行目を図10
(A)と同様に描画した後、2行目を描画する。2行目
の描画の際、その書出し位置は「30.0」,文字幅は
「10.0」,文字間隔は「5.1」である。従って、
2行目の1文字目の「一」についての誤差は「0.0」
となり、2文字目以降について図示の如く誤差が累積さ
れる。
【0013】この結果、同一の桁にある1行目の文字
「6」と2行目の文字「四」との間で、位置が不揃いと
なってしまう。即ち、「6」については、誤差が所定値
より大きい「−0.5」となるので、これを切上げるこ
とにより、書出し位置は「75」ではなく「76」とさ
れる。一方、「四」については、誤差が所定値に達しな
いので、書出し位置は「75」のままである。次の文字
「7」と「五」についても同様である。
【0014】このようなビットマップメモリ上への描画
における文字位置の不揃いは、当該文字列を表示した場
合にそのまま表示位置のずれとなって表れる。このた
め、文字列の不特定の一部分がずれて見え、見栄えが悪
く不自然な表示となるという問題があった。
【0015】図11(B)に示す罫線の補間を伴う描画
の場合、等倍の文字列のみを対象とする際には問題ない
が、拡大縮小等のスケーリングを伴う際には、図12に
示す如く、罫線パターンが不揃いとなってしまうという
問題があった。
【0016】図12において、元のラスタフォントが
(1.2倍などの整数倍以外の倍率を含む)任意のスケ
ーリングにより、例えば縦横が2倍に拡大される。これ
により、文字枠内の罫線パターンは縦横が2倍のサイズ
(ドット数)とされる。
【0017】ところが、文字枠の間の補間部分について
は、元の罫線の文字コードから導き出される補間パター
ンが、拡大された文字間隔の部分をそのまま補間するだ
けである。即ち、元の文字枠内の罫線パターンが、文字
間隔の部分に嵌込まれるだけである。
【0018】このため、同一の罫線について、線種が不
揃いの状態でビットマップメモリ上に描画される。従っ
て、表示の際、不統一な罫線によって表等が構成される
ことになり、見栄えが悪く不自然な表示となるという問
題があった。
【0019】本発明は、ディスプレイ表示又はプリンタ
印刷を行った場合に見栄えがよく自然な表示/印刷結果
を得るのに適したビットマップメモリ上への文字列描画
処理方法を提供することを目的とする。
【0020】また、本発明は、ビットマップメモリ上に
おいて文字位置を揃えて描画できる文字列描画処理方法
を提供することを目的とする。また、本発明は、スクー
リングを伴う罫線補間の際に、ビットマップメモリ上に
おいて罫線の線種を揃えて描画できる文字列描画処理方
法を提供することを目的とする。
【0021】
【課題を解決するための手段】図1は本発明の原理構成
図であり、本発明によるデータ処理装置を示す。このデ
ータ処理装置は、ビットマップディスプレイ12又はプ
リンタ装置13と、このためのビットマップメモリ11
と、ビットマップメモリ11へ文字列を描画するドライ
バ4とを備える。
【0022】また、このデータ処理装置は、異なる行の
文字列における文字の位置を揃える文字位置揃え部5
と、文字列が罫線である場合に罫線の補間を前記ビット
マップメモリ11上において行なう罫線補間部8とを備
える。
【0023】文字位置揃え部5は所定の手段により文字
列の先頭文字の描画位置の誤差をその初期値として求
め、この誤差の初期値を用いて文字列の文字の描画位置
についての誤差管理を行ないつつ文字列の文字を描画す
る。
【0024】罫線補間部8は前記文字列のスケーリング
が行なわれているか否かを調べ、行なわれている場合に
補間パターン3のスケーリングを行なう。ドライバ4が
このスケーリングされた補間パターン3を用いて罫線で
ある文字列を補間する。
【0025】
【作用】図2は本発明の作用説明図であり、特に図2
(A)は図10(B)と、図2(B)は図12と対比さ
れるものである。
【0026】文字位置揃え部5は、図2(A)におい
て、2行目の文字列の先頭の文字「一」の描画位置の誤
差「−0.2」を求め、これを誤差の初期値とする。従
って、文字「一」についてみると、その描画位置(座
標)は「30(ドット)」で図2(A)と図10(B)
とで同じであるが、その誤差は図2(A)では「−0.
2」であるのに対し図10(B)では「0.0」であ
る。
【0027】この結果、2行目の文字を順にビットマッ
プメモリ11上に描画していくと、文字「四」におい
て、累積される誤差が「−0.5」となるので、切上げ
て描画位置に反映させる。即ち、描画位置を「75」か
ら「76」とする。この描画位置「76」は、1行目の
同一桁にある文字「6」の描画位置と一致する。また、
文字「7」と「五」の位置も一致する。
【0028】以上により、ビットマップメモリ11上へ
複数行の文字列を描画する場合に文字の描画位置を揃え
ることができ、当該文字列をビットマップディスプレイ
12上に表示した場合に、ずれがなく、見栄えのよい自
然な表示が得られる。
【0029】罫線補間部8は、元の罫線パターンの文字
コードから同一線種の補間パターン3を読出し、この補
間パターン3をスケーリングした上で文字列を補間す
る。この結果、図2(B)に示す如く、文字列をスケー
リングした場合であっても、同一の罫線についてその線
種を揃えた状態でビットマップメモリ11上へ描画する
ことができる。これにより、表示の際にきれいで自然な
罫線の表示が可能となる。
【0030】
【実施例】図1において、処理装置1はCPU(中央処
理装置)とメモリとからなる。メモリは、ビットマップ
ディスプレイ12又はプリンタ装置13のためのビット
マップメモリ11、主メモリ(図示せず)等を含む。
【0031】ドライバ4は、ビットマップメモリ11上
への文字列描画処理を行なうものであり、CPUと主メ
モリ上に存在する処理プログラムとからなる。この文字
列描画処理は、アプリケーションプログラム2がドライ
バ4に対して所定のインタフェースに従って依頼する。
アプリケーションプログラム2はメモリ上に存在する。
【0032】文字位置揃え処理部5及び罫線補間部8は
ドライバ4に設けられその一部を構成する。従って、文
字列描画処理において、その処理の一部として文字位置
揃え処理及び罫線補間処理が行なわれる。
【0033】アプリケーションプログラム2からの依頼
に応じて、ドライバ4は、描画すべき文字コードに対応
するフォントをフォント格納部(図示せず)から読出
し、これをビットマップメモリ11に描画する(書込
む)。また、ある文字について拡大又は縮小(スケーリ
ング)が指示されている場合、ドライバ4は、読出した
当該文字のフォント(ラスタフォント)を指示された倍
率に従ってスケーリングした上で、ビットマップメモリ
11に描画する。
【0034】この文字列描画処理において、文字位置揃
え処理部5は、描画すべき文字の各々についてその(ビ
ットマップメモリ11上での)描画位置を定め、その位
置に描画する。描画位置を、文字列の先頭文字の位置に
依存することなく、正確に(位置が不揃いにならないよ
うに)定めるために、文字の各々についての誤差管理が
行なわれる。この誤差管理を行なうために、誤差Eの初
期値EO が求められる。
【0035】誤差Eの初期値EO は、後述する所定の手
段により求まる。この手段は、アプリケーションプログ
ラム2との間のインタフェースに応じて定まる。初期値
Oは、文字列(ビットマップメモリ11における一行
の文字列)の各々について求められる。初期値EO は、
その文字列の先頭文字の描画位置の誤差と等しい。
【0036】求められた初期値EO は、誤差初期値設定
部6により、例えば主メモリ上の所定の領域に設定され
る。設定された初期値EO を用いて、誤差管理部7が、
文字列の文字の各々の描画位置についての誤差管理処理
を行なう。
【0037】この誤差管理処理は、文字列の各々の文字
について行なわれ、各文字(文字枠)について、そのビ
ットマップメモリ11上における実際の描画位置と、ア
プリケーションプログラム2からの指示から定まる位置
との差を誤差Eとして管理するものである。この誤差E
は、ビットマップメモリ11が整数の座標指定インタフ
ェースを持つのに対し、アプリケーションプログラム2
が文字間隔等を「5.1」の如く指定するために生じ
る。
【0038】罫線補間部8は、文字列描画処理におい
て、文字列が罫線である場合に、ビットマップメモリ1
1上に描画された各々の文字(文字枠)の間を補間す
る。このために、罫線補間部8は、描画した文字の文字
コードを用いて、これに対応する(同一の線種の)補間
パターン3を読出し、補間パターン3をビットマップメ
モリ11上の各々の文字の間に描画する。
【0039】補間パターン3は、処理装置1のメモリ上
に予め用意され、フォント格納部に用意された複数種類
の罫線の各々に対応して、複数種類用意される。従っ
て、文字列について拡大縮小のスケーリングをしていな
い場合には補間パターン3による補間で十分であるが、
スケーリングしている場合には罫線の線種が異なって見
えてしまう。
【0040】そこで、補間パターン3の描画に先立っ
て、罫線補間部8の判定部9が、文字列毎にそのスケー
リングが行なわれているか否かを調べる。具体的には、
アプリケーションプログラム2がドライバ4へ指示した
データを調べることによって、スケーリングの有無及び
倍率(スケーリング係数)を知る。
【0041】この判定処理の結果に基づいて、スケーリ
ング部10は、スケーリングが行なわれている場合に、
文字列のスケーリングと同一の倍率で補間パターン3を
スケーリングし、このスケーリングした補間パターン
3’で補間を行なう。即ち、ビットマップメモリ11上
の文字列の各々の文字間に、スケーリングした補間パタ
ーン3’を描画する。
【0042】図3乃至図5は文字位置揃え処理フローで
あり、各々、アプリケーションプログラム2からドライ
バ4に対するインタフェースが異なる場合について示
す。図3又は図4の処理フローによる位置揃えの状態を
図6(A)に、図5の処理フローによる位置揃えの状態
を図6(B)に示す。
【0043】図3(A)及び(B)は、各々、アプリケ
ーションプログラム2及びドライバ4の実行する処理を
示す。図3(A)において、アプリケーションプログラ
ム2は、自己が描画位置の誤差管理を行なっているか否
かを調べる(S1)。
【0044】行なっていない場合、アプリケーションプ
ログラム2は、ドライバ4(の誤差管理部7)へ誤差を
問合せる(S2)。行なっている場合、S2を省略す
る。
【0045】次に、アプリケーションプログラム2は、
文字列の先頭文字の描画位置(以下、文字列の書出し位
置ともいう)と誤差の初期値とをドライバ4に対して通
知し、文字列の描画を依頼する(S3)。
【0046】この後、図3(B)に示す文字列描画処理
がドライバ4により実行される(S4)。図3(B)に
おいて、依頼を受けたドライバ4の誤差初期値設定部6
が、誤差の初期値EO をアプリケーションプログラム2
から指示された値に設定する(S5)。
【0047】次に、誤差管理部7が誤差管理を行ないな
がら、文字位置揃え部5(又はドライバ4)が文字列の
各文字をビットマップメモリ11上へ描画(展開)する
(S6)。
【0048】以上より判るように、図3の場合のアプリ
ケーションプログラム2とドライバ4は、そのインタフ
ェースとして、文字列の書出し位置、文字幅、文字間
隔、文字コード(以上は従来のインタフェースである)
に、誤差の初期値を加えたインタフェースを有する。あ
るいは、インタフェースのうち、特に文字列の書出し位
置のインタフェースに、書出し位置それ自体の他に誤差
の初期値を加えている。
【0049】なお、誤差の初期値は、後述するように、
初期値自体に限らず、初期値を求めることができるパラ
メタであればよい。また、図3の場合は、ドライバ4と
の間のインタフェースとして、誤差の問合せインタフェ
ースをも備える。即ち、アプリケーションプログラム2
は、それ自体が誤差管理部7を持つ場合(高級な場合)
もあるが、持たない場合もある。そこで、誤差の初期値
をインタフェースに加えるために、誤差の問合せのイン
タフェースが用意される。
【0050】図3の処理フローによると、図6(A)の
如き描画結果が得られる。まず、1行目の文字列につい
てS3が実行される。即ち、前述のインタフェースに従
い、例えば、文字列の書出し位置「0.0」、文字幅
「10.0」、文字間隔「5.1」、文字コード(文字
「1」,「2」…等のコード)、誤差の初期値「0.
0」がドライバ4に通知される。
【0051】これに応じて、S6が実行され、1行目の
文字列「1,2,3…」が描画される。この時、誤差管
理部7による誤差管理が以下の如く実行される。即ち、
誤差管理部7は、前述インタフェースに従って定まる論
理的な位置(座標)を、各文字毎に求める。例えば、文
字「3」についてみると、0.0+(10.0×2)+
(5.1×2)=30.2と求まる。
【0052】次に、誤差管理部7は、この結果に基づい
て、物理的な位置(座標)、即ち、ビットマップメモリ
11上における実際の描画位置を、各文字毎に求める。
例えば、文字「3」については、「30(ドット)」を
物理的位置として割当てる。これにより、文字「3」の
描画位置における誤差は、30−30.2=−0.2と
求まる。
【0053】この物理的位置(描画位置)の決定におい
て、誤差管理部7は、誤差が所定の範囲、例えば−0.
4〜0.5に収まるようにする。例えば、文字「6」に
ついて、その描画位置を「75」とすると誤差が「−
0.5」となる。即ち、論理位置が「75.5」である
ので、これを切上げて、描画位置を「76」とする。こ
れにより誤差は「0.5」となる。
【0054】誤差管理部7は、各文字について、その描
画位置及び誤差Eを記憶する。例えば、3文字目の文字
「3」について、描画位置「30」及び誤差「−0.
2」を記憶する。なお、誤差Eは、その値(−0.2)
を直接に記憶しても、また、描画位置及び論理位置を記
憶することにより間接に記憶してもよい。
【0055】次に、2行目の文字列について、S2が実
行される。即ち、アプリケーションプログラム2は、誤
差の問合せのインタフェースに従い、誤差をドライバ4
の誤差管理部7に問合せる。2行目の文字列の先頭文字
「一」はその行の先頭から3文字目であるから、誤差の
問合せのインタフェースとして「3文字目」を指定して
問合せる。これに応じて、誤差管理部7は、3文字目の
文字「3」についての誤差「−0.2」をアプリケーシ
ョンプログラム2に通知する。
【0056】この誤差「−0.2」により、S3の実行
の際、前述のインタフェースにおける誤差の初期値が
「−0.2」とされる。また、文字の書出し位置は「3
0.0」とされる。
【0057】この初期値「−0.2」がS5において初
期値EO として設定された後、これを用いてS6が実行
される。例えば文字「四」について、その描画位置を
「75」とすると誤差が「−0.5」となる。即ち、描
画位置が「75」に対し、論理位置は、書出し位置「3
0.0」と誤差の初期値「−0.2」とを用いて、(3
0.0−(−0.2))+(10.0×3)+(5.1
×3)=75.5となる。
【0058】こそで、誤差管理部7は、描画位置「7
5」を「76」に変更し、誤差を「0.5」とする。こ
れにより、2行目の文字「四」は、1行目の文字「6」
と、その描画位置が揃う。
【0059】図4(A)及び(B)は、各々、アプリケ
ーションプログラム2及びドライバ4の実行する処理を
示す。図4(A)において、アプリケーションプログラ
ム2は、文字列の先頭文字の描画位置と、誤差の初期値
O を求めることが可能なパラメタである当該先頭文字
が当該行の先頭から何文字目に相当するかを示すパラメ
タとをドライバ4に通知し、文字列の描画を依頼する
(S7)。
【0060】この後、図4(B)に示す文字列描画処理
がドライバ4により実行される(S8)。図4(B)に
おいて、依頼を受けたドライバ4の文字位置揃え部5
が、前記パラメタを用いて誤差の初期値を求める(S
9)。この誤差の初期値は、前記パラメタを用いて誤差
管理部7に対応する誤差を問合せることによって求ま
る。
【0061】誤差初期値設定部6が、誤差の初期値EO
をS9で求められた値に設定する(S10)。次に、誤
差管理部7が、S6と同様にして、文字列の文字をビッ
トマップメモリ11上へ描画する(S11)。
【0062】以上より判るように、図4の場合のアプリ
ケーションプログラム2とドライバ4は、そのインタフ
ェースとして、図3の場合のインタフェースにおいて
「誤差の初期値」を「誤差の初期値を求めることが可能
なパラメタ」に置換したインタフェースを持つ。
【0063】パラメタとしては、文字列の先頭文字が当
該行の先頭から何文字目に相当するかを示す情報が用い
られる。このパラメタは、文字列の先頭文字が当該行の
先頭から何ドット目に描画されるかを示す情報であって
もよい。なお、図4の場合は、図3の如き誤差の問合せ
のインタフェースは持たない。
【0064】図4の処理フローによっても、図6(A)
の如き描画結果が得られる。まず、1行目の文字列
「1,2,3・・・」が図3の場合と同様にして描画さ
れる。この処理において、前述の如く、誤差管理部7
は、例えば文字「3」について、描画位置は「30」、
誤差は「−0.2」と記憶する。
【0065】次に、2行目の文字列についてS7が実行
される。即ち、アプリケーションプログラム2は、前述
のインタフェースにおけるパラメタとして、先頭文字
「一」が行の先頭から「3文字目」であることを設定し
て、これをドライバ4に通知する。
【0066】そこで、文字位置揃え部5は、S9の実行
において、このパラメタ「3文字目」を指定して誤差管
理部7に誤差を問合せる。誤差管理部7は、3文字目が
文字「3」であるから、その誤差「−0.2」を文字位
置揃え部5に通知する。
【0067】この初期値「−0.2」がS10において
初期値EO として設定された後、これを用いてS11が
実行される。即ち、S6と同様の処理により、図6
(A)の如き描画位置の揃った文字列を得る。
【0068】図5(A)はアプリケーションプログラム
2により、図5(B)及び(C)はドライバ4により、
各々、実行される処理を示す。図5(A)において、ア
プリケーションプログラム2は、所定のインタフェース
に従って、ドライバ4に対し、ビットマップメモリ11
上における2行桁の座標の定義を依頼する(S12)。
【0069】次に、アプリケーションプログラム2は、
文字列の描画位置として行桁をドライバ4に通知し、文
字列の描画を依頼する(S13)。この後、図5(C)
に示す文字列描画処理がドライバ4により実行される
(S14)。
【0070】図5(B)において、行桁定義の依頼を受
けたドライバ4は、行桁で指定される座標がビットマッ
プメモリ11上のどの座標と対応するかを定義する(S
15)。
【0071】図5(C)において、文字列描画の依頼を
受けたドライバ4は、S15における定義に従って、S
13で通知された「行桁」に対応する位置に文字列の各
文字を描画する(S16)。
【0072】以上より判るように、図5の場合のアプリ
ケーションプログラム2とドライバ4は、そのインタフ
ェースとして、行桁定義インタフェースと文字列描画イ
ンタフェースとの2つを持つ。
【0073】行桁定義インタフェースは、各行及び各桁
について、ビットマップメモリ11上における座標を直
接指定するものであってよく、また、間接に指定するも
のであってもよい。
【0074】間接に指定する場合、行桁定義インタフェ
ースにおいて、行桁の座標位置決定のためのパラメタが
指定される。このパラメタとしては、文字列の書出し位
置、文字幅、文字間隔が用いられる。即ち、これらを用
いることにより、誤差管理処理と同様にして、各文字即
ち各桁の座標(X座標)を定めることができる。各行に
ついても同様である。
【0075】行桁定義インタフェースにおいて、複数の
行桁定義を行ってもよく、また、一旦設定した定義を切
替えてもよい。複数定義する場合、行又は桁毎に適用す
る定義を予め指定するか、または、行又は桁毎に所望の
定義を呼出して適用する。定義を切替える場合、行又は
桁毎に所望の定義に切替る。
【0076】文字列描画インタフェースは、行桁と文字
コードとを指定するものである。即ち、予め行桁定義を
行っているので、行桁を指定することにより、文字列の
描画位置を定めうる。
【0077】図5の処理フローによると、図6(B)の
如き描画結果が得られる。まず、S12及びS15の行
桁定義が実行される。これにより、例えば、1桁目は
「0」、3桁目は「30」、6桁目は「76」の如く各
桁の描画位置が定まる。なお、行についても同様であ
る。
【0078】次に、1行目の文字列が描画される。この
時、例えば1文字目の「1」が1桁目と指定されている
とすると、図6(B)の如く、「1」が1桁目、即ち座
標「0」から描画される。
【0079】次に、2行目の文字列が描画される。この
時、1文字目の「一」は3桁目であり、4文字目の
「四」は6桁目であると指定される。そこで、行桁定義
に従って、文字「一」は座標「30」から、文字「四」
は座標「76」から描画される。これにより、図6
(B)の如き描画位置の揃った文字列を得る。
【0080】なお、図5の処理による場合も、行桁定義
において誤差管理を行っていると言える。即ち、行桁定
義は、描画位置と誤差とを合せて定義するものであり、
誤差管理そのものである。
【0081】例えば、文字列の書出し位置「0.0」,
文字幅「10.0」,文字間隔「5.1」という条件下
で3桁目の描画位置を「30」と定義することは、論理
的位置が「30.2」であるのに対し、物理的位置を
「30.0」とすることに等しい。従って、その誤差
「−0.2」が、論理的位置と物理的位置とを記憶する
ことにより記憶され、管理される。
【0082】この例において、各桁(及び行)の座標を
直接指定する場合、アプリケーションプログラム2が誤
差管理部7を持ち、誤差管理を行なう。ドライバ4が誤
差管理部7を備えてよいことは言うまでもない。
【0083】一方、各桁(及び行)の座標を間接指定す
る場合、ドライバ4の誤差管理部7が図3の場合等と同
様にして誤差を管理する。この場合、アプリケーション
プログラム2は、誤差管理を行なっても行なわなくても
よい。
【0084】図7及び図8は罫線補間処理フローであ
り、主に罫線補間部8が実行する処理を示す。前述の如
く、ドライバ4は、アプリケーションプログラム2から
の依頼を受けてビットマップメモリ11上に文字列を描
画するが、この際、必要に応じて補間処理を行なう。
【0085】図7において、ドライバ4は、描画する文
字列(文字)が補間処理の必要な文字か否かを調べる
(S17)。具体的には、前述のインタフェースにおい
て渡された文字の文字コードを調べることによって、罫
線のコードか否か及び罫線であるとすればどの線種であ
るかを知ることができる。
【0086】補間処理が必要な文字である(罫線であ
る)場合、ドライバ4は、更にX方向の補間が必要か否
かを調べる(S18)。これも文字コードを調べること
によって知ることができる。
【0087】X方向の補間が必要である(横方向の罫線
である)場合、ドライバ4は、罫線補間部8にX方向の
補間処理を依頼する(S19)。これに応じて、図8に
示す処理が実行される。
【0088】X方向の補間が必要でない場合、S19は
省略される。次に、ドライバ4は、Y方向の補間が必要
か否かを調べる(S20)。これも文字コードを調べる
ことによって知ることができる。
【0089】Y方向の補間が必要である(縦方向の罫線
である)場合、ドライバ4は、罫線補間部8にY方向の
補間処理を依頼する。これに応じて、図8に示す処理が
実行される(S21)。
【0090】Y方向の補間が必要でない場合、S21は
省略される。また、S17において、補間処理が必要で
ない場合には、S18乃至S21が省略される。
【0091】S19及びS21の処理結果を用いて、ド
ライバ4が文字列の文字の間(補間部分)をビットマッ
プメモリ11上に描画して補間する(S22)。図8に
おいて、ドライバ4から(X方向の)補間処理を依頼さ
れた罫線補間部8は、文字コードを用いて、文字パター
ンに相当する罫線の補間パターン3を読出す(S2
3)。
【0092】次に、罫線補間部8の判定部9が、文字の
スケーリングが行なわれているか否かを調べる(S2
4)。行なわれている場合、罫線補間部8のスケーリン
グ部10が、(X方向の)スケーリング係数(拡大縮小
の倍率)を求め(S25)、このスケーリング係数を用
いてS23で読出した補間パターン3をスケーリングす
る(S26)。
【0093】S24で文字のスケーリングが行なわれて
いない場合、S25及びS26は省略される。なお、Y
方向の補間処理についても同様である。
【0094】従って、ドライバ4は、罫線補間部8に対
して、文字コード、スケーリングの有無、スケーリング
係数をインタフェースとして渡す。そして、ドライバ4
は、罫線補間部8から、文字コードに対応した補間パタ
ーン3又はこの補間パターンをスケーリングした補間パ
ターン3’を得る。この補間パターン3又は3’を用い
てドライバ4がビットマップメモリ11への描画を行な
う。
【0095】図9は補間パターン3のスケーリングの一
例を示す。この例は、16ドット×16ドットで構成さ
れている補間パターン3を、17ドット×17ドットに
スケーリングする例である。即ち、X方向(図中横方
向)に17/16倍にスケーリングし、Y方向(図中縦
方向)にも17/16倍にスケーリングする例を示す。
【0096】補間パターン3は、S23において、文字
コードにより読出される。そして、S26において、X
方向が17/16倍にスケーリングされる。具体的に
は、補間パターン3の8ビット目のラインと9ビット目
のラインとの論理和をとることによって1ライン分のパ
ターンを得る。この1ライン分のパターンを、補間パタ
ーン3の8ビット目のラインと9ビット目のラインとの
間に挿入する。これにより、X方向を17ドットに拡大
する。
【0097】次に、同様にしてY方向を16ドットから
17ドットに拡大する。以上により、X及びY方向の1
7/16のスケーリングが終了し、スケーリング後の補
間パターン3’が得られる。そして、この補間パターン
3’を用いて、S22において、ビットマップメモリ1
1上の補間部分が描画される。
【0098】ここで、スケーリング部10の採用するス
ケーリング則は、スケーリング係数に応じて予め定めら
れており、文字列のスケーリングにおいて採用される規
則と同一の内容とされる。これにより、文字列の文字部
分と補間部分とで同種のパターンを連続させることがで
きる。
【0099】例えば、図2(B)に示した如く縦横共に
2倍にスケーリングする場合には、X方向及びY方向に
おいて、1ビット目のラインをコピーして得た1ライン
分のパターンを1ビット目のラインと2ビット目のライ
ンの間に挿入し、以下同様の処理をくり返すことによ
り、縦横を2倍のドット数に拡大すればよい。
【0100】
【発明の効果】以上説明したように、本発明によれば、
文字列描画処理において、文字列の先頭文字の誤差をそ
の初期値として求めこれを用いて誤差管理を行なうこと
によって、異なる行の文字列の各文字の誤差を等しいも
のにできるので、文字列の描画位置を揃えることがで
き、見栄えのよい自然な表示が可能な文字列をビットマ
ップメモリ上に描画又はプリンタへ印刷することができ
る。
【0101】また、文字が罫線であってこれがスケーリ
ングされている場合に補間パターンをスケーリングして
これを用いて補間を行なうことによって、スケーリング
された文字(罫線)と補間部分とを同一のパターンにす
ることができるので、同一線種の連続した罫線にでき
る、見栄えのよい自然な表示が可能な文字列をビットマ
ップメモリ上に描画することができる。
【図面の簡単な説明】
【図1】本発明の原理構成図である。
【図2】本発明の作用説明図である。
【図3】文字位置揃え処理フローである。
【図4】文字位置揃え処理フローである。
【図5】文字位置揃え処理フローである。
【図6】位置揃え状態を示す図である。
【図7】罫線補間処理フローである。
【図8】罫線補間処理フローである。
【図9】補間パターンのスケーリング説明図である。
【図10】従来技術説明図である。
【図11】従来技術説明図である。
【図12】従来技術の問題点説明図である。
【符号の説明】
1 処理装置(CPU/メモリ) 2 アプリケーションプログラム 3 補間パターン 4 ドライバ 5 文字位置揃え部 6 誤差初期値設定部 7 誤差管理部 8 罫線補間部 9 判定部 10 スケーリング部 11 ビットマップメモリ 12 ビットマップディスプレイ

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 ビットマップメモリ(11)と、 前記ビットマップメモリ(11)へ文字列を描画するド
    ライバ(4)とを備えたデータ処理装置における文字列
    描画処理方法において、 異なる行の文字列における文字の位置を揃える文字位置
    揃え部(5)を設け、 前記文字位置揃え部(5)が、所定の手段により前記文
    字列の先頭文字の描画位置の誤差をその初期値として求
    め、この誤差の初期値を用いて前記文字列の文字の描画
    位置についての誤差管理を行ないつつ前記文字列の文字
    を描画することを特徴とする文字列描画処理方法。
  2. 【請求項2】 前記ドライバ(4)に対して前記ビット
    マップメモリ(11)への文字列の描画を依頼するアプ
    リケーションプログラム(2)を備え、 前記文字位置揃え部(5)を前記ドライバ(4)に設
    け、 前記アプリケーションプログラム(2)が、前記文字列
    の先頭文字の描画位置と前記誤差の初期値とを前記ドラ
    イバ(4)の文字位置揃え部(5)に通知することを特
    徴とする請求項1記載の文字列描画処理方法。
  3. 【請求項3】 前記ドライバ(4)に対して前記ビット
    マップメモリ(11)への文字列の描画を依頼するアプ
    リケーションプログラム(2)を備え、 前記文字位置揃え部(5)を前記ドライバ(4)に設
    け、 前記アプリケーションプログラム(2)が、前記文字列
    の先頭文字の描画位置と当該先頭の文字が当該行の先頭
    から何文字目に相当するかを示すパラメタとを前記ドラ
    イバ(4)の文字位置揃え部(5)に通知し、 前記文字位置揃え部(5)が、前記文字列の先頭の文字
    の描画位置と前記パラメタとを用いて、前記誤差の初期
    値を求めることを特徴とする請求項1記載の文字列描画
    処理方法。
  4. 【請求項4】 ビットマップメモリ(11)と、 前記ビットマップメモリ(11)へ文字列を描画するド
    ライバ(4)とを備えたデータ処理装置における文字列
    描画処理方法において、 異なる行の文字列における文字の位置を揃える文字位置
    揃え部(5)を前記ドライバ(4)に設け、 前記ドライバ(4)に対して前記ビットマップメモリ
    (11)への文字列の描画を依頼するアプリケーション
    プログラム(2)を備え、 前記ドライバ(4)が、前記アプリケーションプログラ
    ム(2)からの依頼により、前記ビットマップメモリ
    (11)上の座標と行桁で指定される座標との対応を予
    め定義し、 前記アプリケーションプログラム(2)が前記文字列の
    文字の描画位置を前記行桁により前記ドライバ(4)の
    文字位置揃え部(5)に通知し、 前記文字位置揃え部(5)が前記定義に従って当該通知
    された行桁を用いて前記文字列の文字を描画することを
    特徴とする文字列描画処理方法。
  5. 【請求項5】 ビットマップメモリ(11)と、 前記ビットマップメモリ(11)へ文字列を描画するド
    ライバ(4)とを備えたデータ処理装置における文字列
    描画処理方法において、 前記文字列が罫線である場合に罫線の補間を前記ビット
    マップメモリ(11)上において行なう罫線補間部
    (8)を設け、 前記罫線補間部(8)が前記文字列のスケーリングが行
    なわれているか否かを調べ、行なわれている場合に補間
    パターン(3)のスケーリングを行ない、 前記ドライバ(4)がこのスケーリングされた補間パタ
    ーン(3’)を用いて前記罫線である文字列を補間する
    ことを特徴とする文字列描画処理方法。
JP5055484A 1993-03-16 1993-03-16 文字列描画処理方法 Pending JPH06266337A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5055484A JPH06266337A (ja) 1993-03-16 1993-03-16 文字列描画処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5055484A JPH06266337A (ja) 1993-03-16 1993-03-16 文字列描画処理方法

Publications (1)

Publication Number Publication Date
JPH06266337A true JPH06266337A (ja) 1994-09-22

Family

ID=12999902

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5055484A Pending JPH06266337A (ja) 1993-03-16 1993-03-16 文字列描画処理方法

Country Status (1)

Country Link
JP (1) JPH06266337A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200010024A (ko) * 2018-07-20 2020-01-30 가부시키가이샤 스크린 홀딩스 묘화 장치 및 묘화 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200010024A (ko) * 2018-07-20 2020-01-30 가부시키가이샤 스크린 홀딩스 묘화 장치 및 묘화 방법

Similar Documents

Publication Publication Date Title
JP3833212B2 (ja) 画像処理装置、画像処理プログラムおよび可読記録媒体
JPH03273368A (ja) 図形処理装置
JPS6233948B2 (ja)
JP2005326756A (ja) 文字画像生成装置,文字画像生成方法,表示制御装置,文字画像生成プログラムおよび表示制御プログラム
JPH06266337A (ja) 文字列描画処理方法
JPS61141480A (ja) 拡大文字処理方法
JP3189345B2 (ja) 文字表示処理方法
JP2004184718A (ja) 画像処理装置および画像処理方法
JPH03156668A (ja) 文書作成装置
JPS63217394A (ja) 文字輪郭線生成方式
JP3129717B2 (ja) 画像処理装置および画像処理方法
JPH09127925A (ja) 文字列出力装置
JPH04348388A (ja) 文字出力方式
JP2958417B2 (ja) 文字列出力装置
JP3863416B2 (ja) 描画装置およびその制御方法
JPH0333895A (ja) フォント描画装置
JP3087511B2 (ja) データ変換装置
JPS61141479A (ja) 縮小文字処理方法
JP3443840B2 (ja) 罫線出力方法及び罫線出力装置
JPH0566759A (ja) 修飾文字出力装置
JP2713219B2 (ja) 図形表示装置
JPH0752338B2 (ja) グラフ出力制御方法
JP2909076B2 (ja) 画像処理方法及び装置
JPH0451192A (ja) アウトライン文字生成方法およびその装置
JPH06110442A (ja) 文字図形処理装置、及び文字または図形の変形処理方法