JP4492082B2 - 画像出力制御方法および装置並びにプログラム - Google Patents

画像出力制御方法および装置並びにプログラム Download PDF

Info

Publication number
JP4492082B2
JP4492082B2 JP2003345962A JP2003345962A JP4492082B2 JP 4492082 B2 JP4492082 B2 JP 4492082B2 JP 2003345962 A JP2003345962 A JP 2003345962A JP 2003345962 A JP2003345962 A JP 2003345962A JP 4492082 B2 JP4492082 B2 JP 4492082B2
Authority
JP
Japan
Prior art keywords
character
font
unit
image
drawn
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.)
Expired - Fee Related
Application number
JP2003345962A
Other languages
English (en)
Other versions
JP2005111718A (ja
Inventor
寿夫 山崎
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation Corp
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 Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP2003345962A priority Critical patent/JP4492082B2/ja
Publication of JP2005111718A publication Critical patent/JP2005111718A/ja
Application granted granted Critical
Publication of JP4492082B2 publication Critical patent/JP4492082B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Document Processing Apparatus (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Dot-Matrix Printers And Others (AREA)
  • Record Information Processing For Printing (AREA)

Description

本発明は、ディジタル書体を表示出力あるいは印刷出力する画像出力制御方法および装置並びにプログラムに関する。より詳細には、フォントデータを自装置に予め保有しておき、受け取った文書データで指定されているフォントが自装置に搭載されていないときに、自装置に搭載されているフォントの中から適用なフォントを選択して置換して、そのフォントに対応した文字の出力処理を行なう技術に関する。
表示装置や印刷装置などの出力装置が出力する文字などの書体には数多くの種類が存在する。一般に明朝体やゴシック体というのは書体の系統を表すものである。そして、明朝体系やゴシック体系の中に多くの書体が存在する。すなわち、同じ明朝体系の書体であっても、基本的には明朝体であるが、太さが異なっていたりデザインが異なっていたりする。そして、表示装置や印刷装置などの出力において、1つの文書中で複数の書体を使用するというケースが頻繁に発生する。
このため、表示装置や印刷装置の備えるフォントフォーマットは、ユーザの要求する様々な書体(フォント)に対応するために、一般に複数のフォントデータを備えている。そしてユーザは、このフォントフォーマットの備える書体を指定して画像表示や印刷を指示することにより、所望の書体による出力を得ている。
しかしながら、従来の表示装置や印刷装置などにおいて、文字などを印刷する場合は、指定された書体を印刷装置が必ず備えているということが前提であった。そして、ユーザの指定する書体を備えていない場合は、その書体で出力すべき部分を「空白」あるいは「ゲタマーク」で出力してしまう。たとえば、明朝Aのみを備えるフォントフォーマットで、明朝Bを指定した場合などが挙げられる。
また、従来の出力装置では、文字などを出力する場合、指定された書体中に出力すべき文字コードに対応するデータが全て存在していなければならない。そして、ユーザの要求する文字コードに該当するデータがない場合は、やはり「空白」あるいは「ゲタマーク」が記録されてしまう。これはたとえば、漢字でJIS第1水準しかない書体指定中に、JIS第2水準の文字を出力しようとした場合などが考えられる。
以上のように、従来の出力装置で出力された文書に空白やゲタマークが記録されてしまうということは致命的であり、記録媒体が無駄になるという問題がある。たとえば、フィルム出力を行なっている場合では、フィルムが無駄になる。さらに、指定書体の修正と再印刷などの「やり直し」が頻繁に必要となり、再出力のために時間を浪費するという問題がある。また、表示装置においてもある部分の文字などが「空白」や「ゲタマーク」に化けるので、実際には何が表示されるべきものなのかが判らないという問題がある。
たとえば、パソコンなどのコンピュータ装置で電子的に作成し、その作成したドキュメントをコンピュータ装置とたとえばネットワークを介して接続された表示装置、たとえばPDA(Personal Digital Assistant)などの携帯情報端末にて表示する、といったことが広く行なわれている。携帯情報端末は、一般的にドキュメントを作成したコンピュータ装置と同じ構成であるので、ドキュメントを表示するにはコンピュータ装置が行なうと同じ処理を行なう。その処理は、一般的に、メモリやストレージに保存されたドキュメントを解釈し、その解釈結果から描画命令を生成し、その描画命令を基にテキストやグラフィックスなどの図形を描画することになる。
テキストを描画する場合は、テキストとして描画されるフォントの属性と、テキストと、テキストの描画位置の各情報がドキュメントから解釈され、これらの指定情報に基づいて携帯情報端末はテキスト描画を行なうのが一般的である。
その際、携帯情報端末は、そのリソース、メモリ容量、あるいはストレージ容量などが制限されていることが多々あるため、ドキュメントで指定されたフォントが全て携帯情報端末に搭載されているとは限らない。
このように、指定されたフォントが携帯情報端末に搭載されていない場合、ある部分の文字などが「空白」や「ゲタマーク」に化けるので、実際には何が表示されるべきものなのかが判らないという問題が生じる。
このような問題を解決する一手法として、指定された書体を持たない場合に、書体管理テーブルを参照して、装置が保有している複数フォントの中から適当なフォントを選んで書体の置換を行ない、文字の出力を行なう技術が提案されている(たとえば特許文献1参照)。
特開平6−130930号公報
この特許文献1に記載の技術では、具体的には、複数のフォントの各々に対してそれぞれの書体名とスタイル情報(太さ・字形・ファミリ)とを対応付けて格納しておき、指定されたフォントや文字コードが存在しない場合は、書体名およびスタイル情報を基に形状情報を最も良く満足するフォントを代替フォントとして選択し置換して描画することで、フォントや文字コードが装置に搭載されていない場合の文字描画を実現可能にしている。
しかしながら、特許文献1に記載の技術のように、指定されたフォントが存在しない場合に、単に別のフォントに置換して描画する手法を採ると、携帯情報端末などの差し替えるフォントが少ない環境においては、フォントの種類が少ないため、
1)指定フォントを装置搭載のフォントに置換する処理が頻繁に発生し、出力処理のパフォーマンスに悪影響を与える、つまり判定処理の処理速度が遅く、出力されるまでに時間が掛かる、
2)サイズ変更や太文字化などの文字修飾の変更を要する場合には、フォントの拡大処理や縮小処理(纏めて拡縮処理もしくは変倍処理ともいう)あるいは文字修飾処理も発生し、出力処理のパフォーマンスに一層悪影響を与える、あるいは、
3)フォントの変形処理の結果、文字品質が低下する、フォントの視認性が落ちる、あるいはレイアウトが崩れる、
4)特に、ビットマップフォントに対して変倍処理を行なう場合に2),3)の問題が大きい、
5)異なるサイズのフォントに置換するとレイアウトが崩れる、
6)異なるスタイル(太字/細字や斜体か否かなど)のフォントに置換すると視認性が低下する、
などの不都合が生じることが分かった。
たとえば、携帯情報端末に1つのビットマップフォントしか搭載されていない場合に、ドキュメントで指定されたフォントをそのフォントへ置換して描画する手法を採ると、指定されたフォントが変倍され出力処理パフォーマンスが劣化することや、フォントの表示品質や視認性が悪くなるように(文字の見栄えが悪く)描画されてしまうことがある。
図12は、これらの問題を説明する図である。たとえば、図12(A)に示すように、“今日は”という文字を2箇所に表示する場合において、指定されたフォント名がともにゴシック体で、かつフォントサイズが8ポイントと16ポイントである場合において、装置には明朝体の8および16ポイントが搭載されている場合には、サイズ変更は必要ないものの、書体名の変更によるフォント変形が起こる。この場合、2つのフォントサイズの“今日は”は、視認性の落ちない描画が可能となる。
これに対して、指定された書体名およびサイズの何れもが装置に搭載されていなければ、書体名(フォント名)の置換と拡縮を要する。たとえば、図12(B)に示すように、“今日は”という文字を2箇所に表示する場合において、指定されたフォント名がともにゴシック体で、かつフォントサイズが8ポイントと16ポイントである場合において、装置には1つのサイズ(ここでは16ポイントとする)のビットマップフォントのみが搭載されている場合には、サイズが合う16ポイント側についてはフォント名の置換が起きても視認性良く描画されるが、サイズが合わない8ポイント側は、フォント名の置換と画像処理による縮小処理(具体的にはビットマップイメージの縮小処理)により視認性が落ちてしまう。
なお、図12(B)では、文字サイズの大きい方(16ポイント側)のビットマップフォントが装置に搭載されている事例で示したが、これとは逆に、文字サイズの小さい方(8ポイント側)のビットマップフォントが装置に搭載されている場合には、サイズが合う8ポイント側についてはフォント名の置換が起きても視認性良く描画されるが、サイズが合わない16ポイント側については、フォント名の置換と画像処理による拡大処理(具体的にはビットマップイメージの拡大処理)により視認性が落ちてしまう。
また、指定フォントが、書体名(フォント名)=ゴシック体、フォントサイズ=12ポイント、スタイル指定なし、書体名(フォント名)=明朝体、フォントサイズ=12ポイント、スタイル指定あり(太文字化、斜体)が混在する場合に、装置には書体名(フォント名)=明朝体、フォントサイズ=12ポイントのみが搭載されていて、スタイル指定については画像処理で対応するものである場合、ゴシック体で指定されている部分は、変倍処理を伴わないものの、書体名が指定とは異なるフォントで代用しなければならない。また、スタイル指定(太文字化、斜体)のある部分は、フォント名やサイズは指定されたとおりであるものの、画像処理によってスタイルを合わせなければならない。
このため、このケースでは、サイズには変わりがないので、図12(A)に示したケースと似通っているが、画像処理による文字変形を伴うので、装置に用意されているフォントがTrueTypeフォントなどの文字の形が輪郭線で表現されているアウトラインフォント(Outline Font)でないケースでは、フォントとして予め用意されているスタイルのものを使う場合に比べて、文字の表示品質が低下することや、フォントの視認性が落ちることが生じてしまう。
たとえば、アウトラインフォントであれば、フォントデータは幾つかの座標を結ぶ線のデータから成り立っており、演算による拡大や縮小が可能なため、文字サイズを変更しても、ギザギザの出ないきれいな文字として表示や印刷することができる。これに対して、ビットマップフォントの場合、アウトラインフォントに比べて高速な出力が可能であるが、文字を構成するドットの数が決まっているため、特定のサイズでは美しく出力することができるが、それ以外のサイズに拡大もしくは縮小すると、ギザギザが目立ったり、バランスが崩れたりするからである。
また、文書ファイルとして指定されたフォント(フォント名、フォントサイズ、フォントスタイルの何れも)が装置に存在するケースであっても、ユーザの好みに応じて出力サイズやスタイルを変えて出力する場合には、そのサイズやスタイルのフォントが装置に搭載されていなければ、画像処理により変倍して出力する必要があり、前述同様に文字の表示品質が低下することや、フォントの視認性が落ちることが生じてしまう。
本発明は、上記事情に鑑みてなされたものであり、受け取った文書データで指定されているフォントが自装置に搭載されていないときに、適用なフォントを選択して置換して、そのフォントに対応した文字の出力処理を行なうに際して、出力処理のパフォーマンスと、文字の出力品質、視認性、あるいはレイアウト再現性とのバランスを採ることのできる仕組みを提供することを目的とする。
本発明に係る画像出力制御方法は、受け取った文書データで指定されているフォントが自装置に搭載されていないときに、自装置に搭載されているフォントに置換し、この置換したフォントのビットマップイメージに基づいて前記文書データに対応した画像を出力する画像出力制御方法であって、前記置換したフォントのビットマップイメージを変形するか否かの指示をユーザより受け付け、前記変形を行なう旨の指示を受け付けたときには置換するフォントである近似フォントに対して前記変形の処理を許可し、前記変形を行なう旨の指示を受け付けていないときには前記近似フォントに対して前記変形の処理を不許可にするとともに、描画する文字ごとに拡縮率を特定し、特定された描画する文字ごとの拡縮率に基づいて、実際に描画する文字ごとに描画位置を修正することとした。
つまり、従来は、置換するフォントに対してフォント変形(形状変形とフォント名の変更の何れでもよい)が強制的に発生されていたが、本発明では、このフォント変形の可否をユーザが指定できるようにした。
本発明に係る画像出力制御装置は、受け取った文書データで指定されているフォントが自装置に搭載されていないときに、自装置に搭載されているフォントに置換し、この置換したフォントのビットマップイメージに基づいて前記文書データに対応した画像を出力する画像出力制御装置であって、自装置において使用可能なフォントの情報を格納するフォントデータ記憶部と、前記置換したフォントのビットマップイメージを変形するか否かの指示を受け付けるフォント変形実行指定部と、前記フォント変形実行指定部が前記変形を行なう旨の指示を受け付けたときには置換するフォントである前記フォントデータ記憶部から読み出した近似フォントに対して前記変形の処理を許可し、前記フォント変形実行指定部が前記変形を行なう旨の指示を受け付けていないときには前記近似フォントに対して前記変形の処理を不許可にする文字描画処理制御部であって、描画する文字ごとに拡縮率を特定する描画文字拡縮率特定部と、前記描画文字拡縮率特定部が特定した、描画される文字ごとの拡縮率に基づいて、実際に描画する文字ごとに描画位置を修正する文字描画位置修正部とを有する文字描画処理制御部とを備えるものとした。
また従属項に記載された発明は、本発明に係る画像出力制御装置のさらなる有利な具体例を規定する。さらに、本発明に係るプログラムは、本発明に係る画像出力制御装置を、電子計算機(コンピュータ)を用いてソフトウェアで実現するために好適なものである。なお、プログラムは、コンピュータ読取り可能な記憶媒体に格納されて提供されてもよいし、有線あるいは無線による通信手段を介して配信されてもよい。
本発明に依れば、変形を行なう旨の指示を受け付けたときには置換するフォントである近似フォントに対して変形の処理を許可し、変形を行なう旨の指示を受け付けていないときには近似フォントに対して変形の処理を不許可にすることとした。つまり、フォント変形(形状変形とフォント名の変更の何れでもよい)の可否をユーザが自由に指定できるようにした。
これにより、任意のフォントを特定する情報とそのフォントの属性情報を元にしたフォントの使用要求に対応して、それぞれ書体が異なる複数フォントの中から所望の書体のフォントを選択し、選択したフォントを用いて、文字コードと文字描画位置情報を元に文字を出力するに当たって、フォント変形を実行するか否か指定することにより、指定されたフォントを別のフォントに置換して描画することを抑制することで、視認性のよい文字表示とレイアウト通りの文字表示を両立させることができるようになった。
また、フォントの拡大縮小処理に代表されるフォント変形処理が頻繁に発生することを抑えることができ、出力パフォーマンスに悪影響を与えることもない。よって、出力処理のパフォーマンスと、出力品質、視認性、レイアウト再現性とのバランスを採ることができるようになる。加えて、常に予め決められた条件でフォント変形するのではないので、変形するか否かや、変形する際はその条件を指定することができ、使い勝手がよい。
以下、図面を参照して本発明に係る画像出力制御装置およびその処理手順の実施形態について詳細に説明する。
<システム構成の概要>
図1は、本発明に係る画像出力制御装置の一実施形態を備えた画像処理システムの概要を示す図である。この画像処理システム1は、画像出力制御装置2とホストコンピュータ装置8とがネットワーク9により接続されて構成されている。
ホストコンピュータ装置8は、画像入力端末としての役割を持っており、デジタルドキュメント(以下電子ドキュメントという)DOCを作成し、また編集などの処理をする。なお、画像入力端末としては、画像出力制御装置2側で画像出力に供し得る画像情報を取得し得るものであればよく、ホストコンピュータ装置8に限らず、たとえばパソコン(パーソナルコンピュータ)、カラースキャナ、デジタルカメラ、またはハードディスク装置や光磁気ディスク装置あるいは光ディスク装置などのデータ格納装置、さらにはFAX装置など、任意数の画像入力ソースを含み得る。
ホストコンピュータ装置8を始めとする画像入力端末のそれぞれには、電子ドキュメントDOC作成用のアプリケーションプログラムなどが組み込まれる。ホストコンピュータ装置8側にて用意される電子ドキュメントDOCを表す電子データは、アプリケーション独自のフォーマットで画像出力端末の役割を持つ画像出力制御装置2側に送信されてもよいし、画像出力制御装置2で処理可能な画像フォーマット(たとえば、JPEG、BMP、PNGなど)で画像出力制御装置2に送信されてもよい。
画像出力制御装置2は、画像出力端末の役割を持っており、本体3の他に、画像表示システムとして稼働させるためのCRTや液晶(LCD)あるいは有機ELなどで構成されるディスプレイ4と、この画像出力制御装置2を操作するためのキーボード5やマウス6などの入力指示デバイスを備えている。
この画像出力制御装置2は、先ず、画像表示に関わる処理を行なう機能部分として、本体3内部に、描画展開処理機能をなす機能部分(詳細は後述する)が設けられている。この描画展開処理機能部分は、描画展開したデータに基づいて可視像をディスプレイ4にて表示出力する。描画展開処理機能部分は、ディスプレイ4とともに使用される本体3の内部に、ソフトウェアあるいは専用もしくは汎用のハードウェアで組み込むとよい。
描画展開処理機能部分は、電子ドキュメントDOCが入力されると、電子ドキュメントDOCに含まれている描画コマンドに基づいて、周知技術に従って、複数、好ましくは最低3つの分解色を表すデータを生成しレンダリング(ラスタデータに展開)する。たとえばYCrCb表色系から、たとえばRGB表色系へのマッピングをし、表示出力用に色分解されたラスタデータを生成する。また描画展開処理機能部分は、このようなラスタデータ化の処理に際して、オペレータの好みに応じた色補正処理など、所定の出力処理を行なってもよい。この構成により、画像出力制御装置2は、描画展開処理機能部分にて信号変換処理されたカラー画像をディスプレイ4にて可視像として出力する。
<画像出力制御装置の構成>
図2は、画像出力制御装置2の詳細な構成例を示すブロック図である。
本実施形態の画像出力制御装置2は、ホストコンピュータ装置8などの画像入力端末においてワードプロセッサアプリケーションなどを利用して作成された電子ドキュメントDOCを、そのホストコンピュータ装置8などの画像入力端末からネットワーク9を介して受信すると、受信した電子ドキュメントDOC中に記述された描画コマンド(直線、曲線、フォント、ラスタ画像、塗りつぶしなどの描画命令)を解釈して図形描画処理を行ない、描画された図形をビットマップイメージとして生成し、描画終了後に生成されたラスタ状の図形データを、ディスプレイ4にて表示するものである。
このために、画像出力制御装置2は、本体3内に、描画展開処理機能をなす機能部分が設けられている。本実施形態において、この描画展開処理機能部分は、ソフトウェアで組み込む構成としている。この場合、その機能を実現するプログラムコードに基づいて電子計算機(コンピュータ)を用いてソフトウェア的に実現するようになる。よって、本発明に係る画像出力制御方法や装置を、電子計算機(コンピュータ)を用いてソフトウェアで実現するために好適なプログラムあるいはこのプログラムを格納したコンピュータ読取可能な記憶媒体を発明として抽出することもできる。ソフトウェアにより実行させる仕組みとすることで、ハードウェアの変更を伴うことなく、処理手順などを容易に変更できる利点を享受できるようになる。
一連の表示制御処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ(組込マイコンなど)、あるいは、CPU(Central Processing Unit ;中央処理部)、論理回路、記憶装置などの機能を1つのチップ上に搭載して所望のシステムを実現するSOC(System On a Chip:システムオンチップ)、または、各種のプログラムをインストールすることで各種の機能を実行することが可能な汎用のパーソナルコンピュータなどに、記録媒体やネットワーク9を介してインストールされる。
記録媒体は、コンピュータのハードウェア資源に備えられている読取装置に対して、プログラムの記述内容に応じて、磁気、光、電気などのエネルギの変化状態を引き起こして、それに対応する信号の形式で、読取装置にプログラムの記述内容を伝達できるものである。たとえば、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD−ROM(Compact Disc-Read Only Memory )、DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini Disc )を含む)、または半導体メモリなどよりなるパッケージメディア(可搬型の記憶媒体)により構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM(Read Only Memory)やRAM(Random Access Memory)あるいはハードディスクなどで構成されてもよい。または、ソフトウェアを構成するプログラムが、有線あるいは無線などの通信網を介して提供されてもよい。
たとえば、表示制御に関わる描画展開処理機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、ハードウェアにて構成する場合と同様の効果は達成される。この場合、記憶媒体から読み出されたプログラムコード自体が描画展開処理の機能を実現することになる。
また、コンピュータが読み出したプログラムコードを実行することにより、描画展開処理を行なう機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム;基本ソフト)などが実際の処理の一部または全部を行ない、その処理によって描画展開処理を行なう機能が実現される場合であってもよい。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行ない、その処理によって描画展開処理を行なう機能が実現される場合であってもよい。
なお、描画展開処理を行なう機能を実現するプログラムコードを記述したファイルとしプログラムが提供されるが、この場合、一括のプログラムファイルとして提供されることに限らず、コンピュータで構成されるシステムのハードウェア構成に応じて、個別のプログラムモジュールとして提供されてもよい。以下具体的に説明する。
図2に示すように、画像出力制御装置2は、画像出力制御装置2全体の動作制御やその他の演算や制御の各処理機能をなすCPU10と、不揮発性の記憶部の一例であるROM30と、書換可能な記憶部の一例であるRAM40と、ディスプレイ4との間のインタフェース(Inter Face)機能をなすディスプレイI/F(インタフェース)部50と、キーボード5やマウス6との間のインタフェース機能をなす入力I/F部52と、プリンタ7との間のインタフェース機能をなすプリンタI/F部54と、ネットワーク9との間のインタフェース機能をなすネットワークI/F部70と、これらを互いに接続する内部バス80とを備えている。
CPU10は、画像出力制御装置2全体の動作制御のほかに、ネットワークI/F部70を介して受け取った電子ドキュメントDOCを解釈して、その解釈結果に基づいて図形や文字やイメージの描画処理を行なう。この描画処理を行なうために、CPU10は、描画展開処理部12と、本実施形態特有の構成である文字描画処理制御部20とを有する。
描画展開処理部12は、電子ドキュメントDOCに含まれている描画コマンドを解釈する図形描画命令解釈部(電子ドキュメント解釈部)14と、描画処理を行なう図形描画処理部16およびラスタイメージ描画処理部18とを有する。
文字描画処理制御部20は、ネットワーク9を介してホストコンピュータ装置8から送られてきた電子ドキュメント中の文字描画命令を図形描画命令解釈部14より受け取り、文字描画処理を行なう文字描画命令処理部22と、カレントフォントの文字コードに該当する文字のビットマップイメージを生成するビットマップイメージ生成部24と、書体の選択を行なう書体選択部26と、フォント変形の実行を指示するフォント変形実行指定部28とを有する。なお、この図では、フォント変形実行指定部28を文字描画処理制御部20内に取り込んでいるが、文字描画処理制御部20とは別にフォント変形実行指定部28を設けてもよい。
ROM30は、内部に、CPU10が各種処理を行なうための制御プログラムが格納されるプログラム記憶領域32、文字描画のためのフォントデータを格納するフォントデータ記憶領域34、およびCPU10が各種処理を行なうために必要とするその他のデータ記憶領域を有する。
たとえば、ROM30は、CPU10が描画処理を行なうのに必要となる描画プログラムをプログラム記憶領域32に予め格納している。さらに、プログラム記憶領域32は、図示されないOS(Operating Systems ;基本ソフト)やGUI(Graphical User Interface)処理などのプログラムをも格納している。CPU10は、OSやGUI処理を利用しつつ、ROM30内の描画プログラムを実行することによって、上述した各部の機能を実現するようになっている。
RAM40は、CPU10が各種処理を実行する際のワークメモリとして用いられる作業領域であって、内部に、ドキュメント記憶領域42、ディスプレイ4に表示するためあるいはプリンタ7にて印刷出力するためのラスタデータ(ビットマップイメージ)を格納するページバッファ44、文字の拡縮率のを格納する拡縮率テーブル46、および個々の文字のビットマップイメージを格納するビットマップ領域48、あるいはその他のデータ記憶領域を有する。
ネットワークI/F部70は、図形や文字やイメージを描画する描画コマンドが含まれている電子ドキュメントDOCをホストコンピュータ装置8からネットワーク9を介して受信する。
たとえば、フォントデータ記憶領域34は、ビットマップイメージ生成部24が文字描画を行なう、すなわち文字のビットイメージデータを生成するためのフォントデータを1つもしくは複数格納している。このフォントデータは、少なくとも、フォント名(書体名)もしくはファミリ名と、文字の太さに関する情報、文字の傾きに関する情報、文字の大きさに関する情報などの、文字形状の変形に関わる仕様を示す属性情報とを含む(後述する図3を参照)。
書体選択部26は、文字描画命令処理部22により指定された文字列描画命令とフォント指定命令(後述する図3を参照)とフォントデータ記憶領域34に格納されているフォント情報とに基づいて使用する書体を選択する。具体的には、指定された形状情報を最も良く満足する書体を代替えのフォント(近似フォント)として選択し、カレントフォントとして、RAM40の所定の記憶領域に格納しておく。
フォント変形実行指定部28は、文字描画に際して文字サイズ変更処理(拡縮処理、変倍処理)を行なうか否か、文字太さ変更処理(太文字化処理もしくは細文字化処理)を行なうか否か、あるいは文字傾き変更処理(斜体化処理)を行なうか否か、あるいは装置が自動的に選択した置換フォントの変更の指示(以下纏めてフォント変形とも言う)をユーザから受け付け、その指示をビットマップイメージ生成部24に通知する。
ビットマップイメージ生成部24は、文字描画命令処理部22の指令の下で、書体選択部26で選択されたフォントデータをフォントデータ記憶領域34から読み出して、文字列描画命令に対応する文字(記号などの事実上文字のカテゴリーに含まれるものも含む)のビットマップイメージを生成し、生成したビットマップイメージをRAM40のビットマップ領域48に書き込む。このとき、ビットマップイメージ生成部24は、フォントの属性情報に従って展開文字(記号)の大きさを決定し、またフォント変形実行指定部28から通知されたフォント変形指示情報に基づいて、必要に応じて、回転や傾斜化あるいは太文字化など、公知の画像処理技術を利用した文字変形処理を加える。
文字描画命令処理部22は、フォントデータ記憶領域34にて生成されビットマップ領域48に格納された各文字のビットマップイメージを使用して、1画面分あるいは1ページ分のビットイメージデータを展開してページバッファ44に格納する。
ディスプレイI/F部50は、CPU10(詳しくは文字描画処理制御部20)による制御に従いつつ、RAM40内のページバッファ44に展開されたラスタデータを、ディスプレイ4に渡す。これにより、ディスプレイ4は、文字データに基づくラスタデータを表示するようになる。同様に、プリンタI/F部54は、文字描画処理制御部20による制御に従いつつ、RAM40内のページバッファ44に展開されたラスタデータを、プリンタ7に渡す。これにより、プリンタ7は、文字データに基づくラスタデータに従って、所定の記録媒体上に文字を印刷出力するようになる。
<文字描画命令>
図3は、電子ドキュメントDOCに含まれている文字描画命令を説明する図である。図3(A)に示すように、文字描画命令は、フォント指定命令と文字列描画命令とからなる。フォント指定命令は、フォント名(書体名)およびファミリ名と言った専らフォントそのものの基本情報に関わるフォント情報と、文字の太さ、文字の傾斜、あるいは文字のサイズと言った文字の出力形態(形状)やその変形に関わる情報である属性情報(一般にスタイル情報と言われる)とからなっている。文字のサイズは、図3(B)に示すように、各々の文字の横(行)あるいは縦(列)の各方向の幅を示すものである。
たとえば、フォント名としては、公知のように、明朝A、明朝B、ゴシックA、ゴシックB、ゴシックC、欧文X−Roman、欧文X−Bold、欧文X−Italic、欧文Y−Roman、欧文Y−Italicなどが該当する。ファミリ名は、そのフォントのデザインの属する系統を表す。
これら各フォント名に対して属性情報が格納される。属性情報としては、前述のように、たとえば、その書体の文字幅や太さや傾きなどを表す形状情報を含む。たとえば、日本語フォントおよび欧文フォントの如何に関わらず、形状情報として文字の太さを用い、さらに欧文フォントでは、Italic/Roman (直立/傾斜)の字形情報を利用する。
文字列描画命令は、文字数、描画位置、文字コード配列(文字コード×文字数)、および文字描画位置配列(文字描画位置×文字数)を含む。ここで、文字数は、横(行)および縦(列)のそれぞれに文字数であり、文字コード配列および文字描画位置配列に利用される。描画位置は、図3(B)に示すように、横(行)あるいは縦(列)の各方向における各々の文字の描画開始位置を示す。ここで、横(行)について各文字の描画開始位置を結ぶ線が横方向のベースラインである。なお、図示しないが、縦(列)について各文字の描画開始位置を結ぶ線が縦方向のベースラインとなる。
文字コード配列は、文字列情報の中に文字コードが文字数分格納されている、という配列の意味を表わしており、文字列情報が文字数分連続で格納されていて、それだけのデータの容量が必要である、ということを表わしている。文字描画位置配列に関しても、同様に、文字特有のピッチデータ(X方向の増分)が文字数分連続で格納されている、という配列の意味を表わしている。
文字描画処理制御部20は、図3に示したフォント指定命令をホストコンピュータ装置8から受け取ると、先ず書体選択部26が書体の選択を行なう。書体選択部26は、指定されたフォントが存在すればそのフォントをカレントフォントとしてRAM40の所定の記憶領域に設定し、存在しないのであれば、前述のようにして適切な近似フォントに置換して、すなわち指定された形状情報を良く満足する書体のものを近似フォントとして選択してカレントフォントとしてRAM40の所定の記憶領域に設定する。
続いて、文字描画命令処理部22は、文字列描画命令を受け取ると、ビットマップイメージ生成部24に対して、カレントフォントの文字コードに該当する文字についてビットマップイメージの生成を指示する。
なお、ビットマップイメージ生成部24は、カレントフォントの文字コードに該当する文字のビットマップイメージを生成するとき、フォント変形実行指定部28で指定された状態を元にビットマップイメージの変形を行なう。
続いて、ビットマップイメージ生成部24にて描画対象の文字列のビットマップイメージが生成されビットマップ領域48に記憶されると、文字描画命令処理部22は、生成されたビットマップイメージを所定の文字描画位置(後述する説明を参照)に描画する。この際、文字描画命令処理部22は、フォントの拡縮率とフォント変形実行指定部28で指定された状態とに基づいて文字描画位置を修正する。
文字描画処理制御部20は、以上の処理を全ての描画コマンドについて繰り返し実行し、全ての描画コマンドの描画が終了したら、ディスプレイI/F部50部を介してディスプレイ4にラスタデータを出力して1ページ分の表示出力処理を終了させる。あるいは、プリンタI/F部54を介してプリンタ7にラスタデータを出力して1ページ分の印刷出力処理を終了させる。
<拡縮率テーブル>
図4は、RAM40に登録される拡縮率テーブル46の一例を説明する図である。拡縮率テーブル46は、カレントフォントに対応する置換前のフォント指定命令、すなわち置換前のフォント情報と属性情報、並びに、出現した文字コードとそれに対応する拡縮率(変倍率)L1を含む拡縮率情報で構成されている。この拡縮率テーブル46は、文字列描画命令単位で生成し、描画終了後破棄してもよいし、ページ描画単位で生成し、ページ描画終了後に破棄してもよいし、ジョブ描画単位で生成し、破棄してもよい。また、拡縮率情報は、出現した文字コード分だけ存在する必要がある。
<フォントデータの一例>
図5は、フォントデータの一例を示す図である。ここでは前提として、フォントデータは、フォント名とファミリ名を含むフォント情報とその属性情報を含むフォント指定情報と、文字コード、文字を構成するアウトラインデータ、および文字の幅と高さを含むフォントボディとで構成される。
たとえば、フォント名と、ファミリ名と、属性情報で示されるフォントの傾き指定があるか否かのフラグ(一般的にItalicと呼ばれる)と、フォントの太さ指定があるか否かのフラグ(一般的にBoldと呼ばれる)とで表現され、各々のフォント内に含まれる文字は文字コードとその文字を描画するデータと文字の幅と高さで構成される。さらに、複数のフォントに対応するため、フォントボディは複数存在する。なお、図中では、フォントボディがアウトラインデータとなっているが、ビットマップデータやストロークデータの場合であってもよい。
<書体選択部の動作の詳細>
図6は、書体選択部26の処理手順の詳細例を示すフローチャートである。ここでは前提として、図5に示したフォントデータを対象として処理する。
書体選択部26は、先ず、フォント指定命令よりフォント名を取得する(S200)。続いて書体選択部26は、取得されたフォント名と一致するフォント名を持つフォントデータが存在するか否か検索し(S202)、検索したフォントデータについて、フォント名が一致したフォントがフォントデータ内に存在するか否か判定する(S204)。
書体選択部26は、一致したフォントが存在したなら(S204−YES)、フォント指定命令より指定されたフォント名をカレントフォントとしてRAM40の所定の記憶領域に登録し(S206)、また、フォント置換発生せずとしてRAM40の所定の記憶領域に登録し、書体選択処理を終了する(S208)。
一方、一致したフォントが存在しないならば(S204−NO)、書体選択部2、フォント指定命令よりファミリ名を取得する(S210)。続いて書体選択部26は、ROM30のフォントデータ記憶領域34に登録されているフォントデータ内に取得されたファミリ名と一致するファミリ名を持つフォントデータが存在するか否か検索し(S212)、検索したフォントデータについて、ファミリ名が一致したフォントがフォントデータ内に存在するか否かを判定する(S214)。
ファミリ名が一致したフォントが存在したなら(S214−YES)、書体選択部26は、ファミリ名が一致したフォントデータの中に、フォント指定命令より指定された太さおよび傾斜が等しいフォントが存在するか否かを判定する(S216)。太さおよび傾斜が等しいフォントが存在する場合には(S216−YES)、書体選択部26は、そのフォントデータを選択する(S218)。一方、太さおよび傾斜が等しいフォントが存在しない場合には(S216−NO)、書体選択部26は、ファミリ内で形状情報を最も良く満足する書体を選択する(S220)。そして、書体選択部26は、選択したフォントをカレントフォントとしてRAM40の所定の記憶領域に登録し(S222)、さらに置換前のフォントをカレント置換前フォントとしてRAM40の所定の記憶領域に登録する。そして最後に、書体選択部26は、フォント置換発生としてRAM40の所定の記憶領域に登録し、書体選択処理を終了する(S224)。
一方、ファミリ名が一致したフォントがフォントデータ内に存在しない場合には(S214−NO)、書体選択部26は、適当なフォントを選択する(S230)。ここで、「適当なフォント」とは、たとえば、形状情報を最も良く満足する書体のものである。続いて、書体選択部26は、選択したフォントをカレントフォントとしてRAM40の所定の記憶領域に登録し(S222)、さらに置換前のフォントをカレント置換前フォントとしてRAM40の所定の記憶領域に登録する。そして最後に、書体選択部26は、フォント置換発生としてRAM40の所定の記憶領域に登録し、書体選択処理を終了する(S224)。
<フォント変形実行指定部の動作の詳細>
図7は、フォント変形実行指定部28が利用するGUIの一例を示す図である。フォント変形実行指定部28は、図2には示さないOSやマルチウィンドウシステムなどのGUIを利用して、電子ドキュメントDOCの表示処理とは独立にフォント変形実行指定を実行する。
この際、フォント変形実行指定部28は、一般的なGUI処理により、たとえば図7に示すような、“FontのBoldを実行する”、“Fontのイタリックを実行する”、“Fontの拡大縮小を実行する”と言った選択メニューをディスプレイ4に表示させる。ユーザは、この表示に基づき、チェックボックスへの指定により希望の条件を指示する。フォント変形実行指定部28は、これらフォント変形に関わる可否の指示を受け付けると、ユーザより指定された状態をRAM40の所定の記憶領域に保存する。文字描画処理制御部20の各部(たとえばビットマップイメージ生成部24や書体選択部26)は、RAM40に保存されたフォント変形に関わるユーザ指示を電子ドキュメント表示処理の際に使用する。
たとえば、フォント変形実行指定部28は、“FontのBoldを実行する”にチェックマークが付与されたことを検知すると、文字の太文字化処理を許可する旨をビットマップイメージ生成部24に通知する。一方、チェックマークが付与されてなければ、太文字化処理を禁止する旨をビットマップイメージ生成部24に通知する。
同様に、フォント変形実行指定部28は、“Fontのイタリックを実行する”にチェックマークが付与されたことを検知すると、文字の斜体化処理を許可する旨をビットマップイメージ生成部24に通知する。一方、チェックマークが付与されてなければ、斜体化処理を禁止する旨をビットマップイメージ生成部24に通知する。
また、フォント変形実行指定部28は、“Fontの拡大縮小を実行する”にチェックマークが付与されたことを検知すると、文字の変倍処理を許可する旨をビットマップイメージ生成部24に通知する。一方、チェックマークが付与されてなければ、変倍処理を禁止する旨をビットマップイメージ生成部24に通知する。
ビットマップイメージ生成部24は、文字描画命令処理部22の指令の下で、書体選択部26で選択されたフォントデータをフォントデータ記憶領域34から読み出して、文字列描画命令に対応する文字(記号などの事実上文字の範疇に含まれるものも含む)のビットマップイメージを生成し、生成したビットマップイメージをRAM40のビットマップ領域48に書き込む。このとき、ビットマップイメージ生成部24は、フォントの属性情報に従って展開文字(記号)の大きさを決定し、またフォント変形実行指定部28がユーザより受け付けたフォント変形指示情報に基づいて、必要に応じて、回転や傾斜化あるいは太文字化など、公知の画像処理技術を利用した文字変形処理を加える。
たとえば、電子ドキュメントDOCにて指定されているフォントサイズを変更すると見難くなるケースがある。特に、ビットマップフォントのケースで顕著である。同様に、電子ドキュメントDOCでは太文字化されていないのに太文字化された文字に置換して出力する、イタリック指定がないのにイタリック体の文字に置換して出力するなど、電子ドキュメントDOCにて指定されているフォントデータが装置に搭載されていないときに、装置に搭載されているフォントデータの中から指定された形状情報を最も良く満足する書体を代替えのフォント(近似フォント)として使用するとしても、出力された文字の品位が崩れる。また、CPU10にて、自動的に近似フォントを判定する場合、判定ミスが生じることもあるし、フォント名を変えるだけでも見栄えが悪くなるケースがあり得る。
これに対して、本実施形態の構成では、ユーザは、拡縮処理を行なうか否か、太文字化処理を行なうか否か、斜体化処理を行なうか否かを、フォント変形実行指定部28を通じて文字描画処理制御部20に指示することができる。このことにより、ユーザの希望に応じて、指定されたフォントを別のフォントに置換して描画することを抑制して、視認性のよい文字表示とレイアウト通りの文字表示を両立させることができる。常に予め決められた条件で変形するのではないので、変形するか否かや、変形する際にはその条件を指定することができ、使い勝手がよい。
また、フォント変形実行指定部28は、太文字化、斜体化、あるいは変倍といったフォント変形に関わる可否の指示を受け付けると、その指示を書体選択部26にも通知するようにしてもよい。こうすることで、書体選択部26は、電子ドキュメントDOCにて指定されたフォントがフォントデータ記憶領域34に登録されていないときに近似フォントを選択する際、予め選択候補を絞り込むことができる。なお、この図7に示したGUIでは、フォント変形に対する指示とフォント選択に対する指示とが兼用されることになるが、これに限らず、それぞれを独立に指示できるような表示メニューにしてもよい。
たとえば、太文字化や斜体化の指定のないフォントが指定されているときに、ユーザより太文字化処理が禁止されていれば、近似フォントとしては、太字フォントを選択対象から外し、同様に、ユーザより斜体化処理が禁止されていれば、近似フォントとしては、斜体フォントを選択対象から外す。また、太文字化や斜体化が禁止されている場合において、指定されたフォントが存在しない場合に、フォントの属性情報のうち、指定されたフォントの太さや斜体を最優先として、次に、サイズを適用して、指定されたフォントに最も形状が近いフォントを近似フォントとして選択する。なお、太文字化や斜体化のないフォントが指定されている場合、近似フォントとしては、太文字化や斜体化のないフォントを選択するものとする。
また、変倍処理がユーザより禁止されている場合において、指定されたフォントが存在しない場合に、フォントの属性情報のうち、指定されたフォントのサイズを最優先として、次に、太さや斜体を適用し、指定されたフォントに最も形状が近いフォントを近似フォントとして選択する。
このように、近似フォントの選択条件をユーザにより指示できるようにすることで、ユーザの希望に応じて、指定されたフォントを別のフォントに置換して描画することを抑制して、視認性のよい文字表示とレイアウト通りの文字表示を両立させることができる。常に予め決められた条件のみで近似フォントを選択するのではなく、ユーザにより近似フォントの選択条件を指示できるので、たとえば見易さを考慮して過剰な文字変形が生じないようなフォントを近似フォントとして選択させることもでき、使い勝手がよい。
<文字描画命令処理部の詳細構成例>
図8は、文字描画命令処理部22の詳細構成例を示すブロック図である。図示するように、文字描画命令処理部22は、描画される文字や文字間の状態(纏めて描画文字の状態とも言う)を特定する描画文字状態特定部222と、描画文字状態特定部222が特定した描画文字の状態に基づいて、隣接する文字間の距離や各文字の傾きや太さなど、実際に描画する文字の描画状態を修正する描画状態修正部228とを有する。
なお、本明細書において、描画される文字や文字間の状態(描画文字の状態)には、メインの文字そのものやメインの文字同士の間隔の状態だけでなく、メインの文字に付与される、たとえば小さな文字と一緒に並べてレイアウトするいわゆる「ルビ」などの修飾文字や修飾文字同士の間隔も含む。
本実施形態においては、描画文字状態特定部222は、複数の文字からなる文字列について、隣接する描画文字の間隔を算出する文字間隔算出部226を有する文字間状態予測部224を備えている。文字間状態予測部224は、文字間隔算出部226が算出した算出結果を、予測した文字間の状態とする。描画状態修正部228は、必要に応じて、文字間状態予測部224が予測した文字間の状態、すなわち、文字間隔算出部226が算出した算出結果に基づいて、実際に描画する文字の描画状態(本例では描画位置)を修正する文字描画位置変更部229を有している。
ここで、「必要に応じて」とは、たとえば、指定されたフォントが装置に搭載されておらず、近似フォントで代用した際に、レイアウトが崩れないように、また間延びした状態とならないように、文字の重なりが生じないように、あるいは、文字列の後半部が出力エリアからはみ出さないようにする必要がある場合など、より見易いあるいは見栄えのよい状態となるようにする要求に応じることを意味する。これらの必要性の判断は、ユーザが判断して、装置に指示を与えてもよいし、予め判定条件を定義しておき、その判定条件に従って自動的に処理するようにしてもよい。
たとえば、電子ドキュメントDOCにて指定されているフォントと異なる、装置に搭載の何れかのフォントであって、指定されたファミリ名が一致する書体(概ね、指定フォントと形状情報を比較的良く満足する書体である)、あるいはファミリ名が異なるが指定された形状情報を良く満足する書体を近似フォントとして選択して代用(代替使用)すると、場合によっては、文字サイズ、太文字化の有無、あるいは斜体化の有無が、電子ドキュメントDOCで指定されたものと異なるものとなる。
これらの場合、描画される文字ピッチが電子ドキュメントDOCで指定されたものと異なる状態となり、1つ1つの文字だけで見れば比較的見易い状態であったとしても、文字列の全体として見れば、レイアウトが崩れたり、間延びした状態となったり、文字の重なりが生じたり、あるいは、文字列の後半部が出力エリアからはみ出して出力されない(以下尻切れ出力ともいう)などの不都合が生じ得る。
このような場合、描画状態修正部228の文字描画位置変更部229は、より見易い状態となるように、文字間隔算出部226が算出した算出結果に基づいて、実際の描画時の文字ピッチを調整する。
本実施形態の構成では、変形を行なう旨の指示を受け付けたときには置換するフォントである近似フォントに対して変形の処理を許可し、変形を行なう旨の指示を受け付けていないときには近似フォントに対して変形の処理を不許可にする、つまり、フォント変形の可否をユーザが自由に指定できるようにすることで、表示速度を上げるという利点を得るようにしている。ただし、こうすると、ページ内でレイアウトのずれが生じ得る。
この問題を解決するため、文字間状態予測部224は、文字間隔算出部226により描画文字と次回の描画文字との間の文字間隔を算出し、この算出結果を今回の描画文字と次回の描画文字との文字間の状態予測の予測結果とする。そして、描画状態修正部228の文字描画位置変更部229は、文字間隔算出部226が算出した文字間隔が基準値よりも小のとき、今回の描画文字を横書きの場合は横方向に、縦書きの場合は縦方向に文字描画位置を変更する。
ただし、このような文字描画位置の修正処理を行なうと、必要以上の文字列内レイアウトずれ(ページ内のレイアウトずれとは異なる)が発生し得る。この問題を解消するため、フォント変形実行指定部28は、文字描画に際して、太文字化処理を行なうか否かや斜体化処理を行なうか否かを指定することで、描画位置を修正する。この指示は、文字列内レイアウトずれを自動的に判断し、その判断結果に基づいて行なってもよいし、ユーザからの要求を受けて行なうようにしてもよい。
つまり、フォント置換を行なって文字描画すれば、文字の大きさが正しい大きさ(受け取ったデータで指定されている大きさ)で表示されないこととなるので、全体的なページ内のレイアウトを保つのか、局所的な文字の並び(文字列内レイアウト)を保つのか、相容れないどちらかを選ぶしかない。そこで、描画状態修正部228の文字描画位置変更部229は、文字間隔算出部226が算出した文字間隔が「基準位置よりも小さい」という単純な判断で、この相反する処理のうちより良い処理を選ぶことによって、中庸的な解決を見出している。
より具体的に説明すると、拡大や縮小を行なわないで、装置に搭載している自前のフォント(たとえばビットマップフォント)を使用すると、本来表示されるべきであったページ内のレイアウトのピッチ位置が不明になってしまう。描画文字と次回の描画文字との間の文字間隔を算出し今回の描画文字と次回の描画文字との文字間の状態を予測して描画位置を修正するという本実施形態の手法を採らなければ、文字変形を行なわなかった場合に、小さくなったら小さくなったなりに、大きくなったら大きくなったなりにピッチが変動するだけで、他にコントロールできなくなり、たとえば本来の位置よりはみ出して描画されてしまう。これに対して、本実施形態の手法を採り描画位置を修正可能にすることで、ページ内レイアウトを保持したり、間延びを防いだり、文字の重なりを防いだり、尻切れ出力を防いだりすることができる。
なお、文字間状態予測部224は、文字間隔算出部226による計算結果の他、たとえば、「等幅指定」や「均等割付け」などの隣り合う文字とは関係のないピッチ算出方法など、文字の状態や隣接するピッチ以外で文字やピッチに変化をつける要因となる文字のレイアウト系の処理を利用することで得た結果を予測結果として利用することもできる。これらは、各フォントの最大値にピッチを強制的に固定し、または文字列の表示領域の長さを文字数で割ってピッチを算出することにより、文字の間隔が均等になるような計算をする。
また、たとえば、「ルビ」などで文字に特別な修飾をつける場合も、その修飾文字(前例ではルビの小文字部分)のピッチなどを考慮してメイン文字のピッチを決めなければならないので、メインの文字についてのみ隣接文字を参考にする場合と、最終的なピッチの計算が違ってくる。修飾文字のピッチなどを考慮してメイン文字のピッチを決めるようにすれば、ユーザが指定したページ内の文字レイアウトをより良く反映した形で出力ができるようになる。
本実施形態では、上述のような観点から、描画文字状態特定部222と描画状態修正部228とが協働して、実際に文字描画を行なうに先立って、描画文字状態特定部222にて各描画対象の文字の状態を特定し、文字描画位置変更部229は、この描画文字状態特定部222が特定した描画文字の状態に基づいて、実際に描画する文字の描画状態を修正することで、レイアウトが崩れないように、また間延びした状態とならないように、文字の重なりが生じないように、あるいは、尻切れ出力がないように、それぞれの文字の描画位置、すなわち描画文字ピッチを調整する。
なお上記説明では、文字間隔算出部226が算出した算出結果に基づいて、文字描画位置変更部229にて、実際の描画時の文字ピッチを調整することについて述べたが、文字の描画状態の修正の態様は、必ずしもこれに限定されない。たとえば、1つ1つの文字について、傾きの度合いや太文字化の程度が文字サイズに拘わらず同じであっても、文字サイズとの兼ね合いで見難くなることも生じる。このような場合、文字描画命令処理部22の描画文字状態特定部222は、個々の文字の傾きや太字の程度を特定し、描画状態修正部228は、描画文字状態特定部222が特定した文字の傾きや太さの程度に基づいて、より見易い状態となるように、実際の描画時の文字の傾きや太さの程度を調整する。また、太文字化の程度によっては文字幅が変更される場合もある。このような場合、描画状態修正部228は、文字描画命令処理部22にて太さの程度を特定し、描画状態修正部228にて、事前に設定した描画文字ピッチを特定した太さの程度に応じて修正すればよい。
<文字描画状態修正処理の概要>
図9および図10は、描画文字状態特定部222と描画状態修正部228との協働作業による、文字描画状態修正処理の概要を示す図である。ここで、図9は、電子ドキュメントDOCにて指定されているフォントについて、そのフォントの属性情報として指定されているサイズよりも小さな文字サイズのフォントを近似フォントとして使用する場合を示している。これに対して、図10は、フォントの属性情報として指定されているサイズよりも大きな文字サイズのフォントを近似フォントとして使用する場合を示している。
また、何れも、図(A)は、指定されている元のフォントサイズで描画する際の各文字の描画位置を示す。図(B)は、近似フォントのフォントサイズで描画する際の各文字の描画位置、すなわち予め定められている基準の文字幅に従って計算された描画位置を示す。図(C)は、近似フォントのフォントサイズで描画した図(B)に示す文字位置を、所定の条件に従って修正した際の各文字の描画位置を示す。図(D)は、拡縮率を元にした、描画位置の修正後の状態を示す。
文字描画命令処理部22は、書体選択部26によって選択されたフォントに対応する文字を当該フォントの文字コードおよび文字描画位置情報を基に描画する。この際、先ず、文字間隔算出部226は、隣接する描画文字の間隔を算出する。文字間状態予測部224は、文字間隔算出部226が算出した算出結果を、予測の文字間の状態とする。
近似フォントを使用せずに指定されたフォントそのものを使用できる場合には、文字間隔算出部226が算出した描画文字の間隔は、指定された元の文字間隔(横方向はhx0、縦方向はhy0)と同じになる。これに対して、近似フォントを使用する場合には、文字間隔算出部226が算出した描画文字の間隔は、指定された元の文字間隔と同じにはならない。
そこで、近似フォントを使用する場合は、描画状態修正部228の文字描画位置変更部229は、文字間状態予測部224が予測した文字間の状態、すなわち、文字間隔算出部226が算出した算出結果に基づいて、実際に描画する文字の描画位置を、元の文字間隔(横方向はhx0、縦方向はhy0)で規定される描画位置とは異なる位置に修正する。
たとえば、指定された文字サイズよりも小さな文字サイズのフォントを近似フォントとして使用する場合、文字描画命令処理部22は、先ず、図9に示すように、横書きの場合、1つ前に描画する文字位置(x1@,y1@)(αは1つ前の描画対象文字の描画順;0が初期値)、横方向の文字幅hx1とし、それぞれの文字描画位置を(x1@+hx1,y1@)に修正する。たとえば、横方向の1番目の文字については、計算された描画位置(x11,y11)は、(x10+hx1,y10)となる。なお、見栄えのために何らかの修正項(定数xc)を加算して(x1@+hx1+xc,y1@)としてもよい。
また図では示さないが、縦書きの場合には、1つ前に描画された文字位置(x1@,y1@)、縦方向の文字幅hy1とすると、それぞれの文字描画位置を(x1@,y1@+hy1)とする。見栄えのために修正項(定数yc)を加算して(x1@,y1@+hy1+yc)としてもよい。
ここで、1つ1つの文字の出力品質に問題がなくて見栄えが良く、かつ文字列の全体としても、レイアウト崩れ、間延び、文字重なり、あるいは尻切れなどに、全体としての見栄えに不都合がなければ、文字描画命令処理部22は、このままの状態で1ページ分の描画処理を完結させてよい。
たとえば、指定された文字サイズよりも小さな文字サイズのフォントを近似フォントとして使用する場合において、元の文字間隔(横方向はhx0、縦方向はhy0)で規定される描画位置に、近似フォントの小さな文字サイズで描画すると、レイアウト崩れ、文字重なり、あるいは尻切れなどは生じないが、サイズを小さくした分だけ間延びした状態で出力される。これに対して、図9(B)から分かるように、文字間隔算出部226が算出した算出結果に基づいて実際に描画する文字の描画位置を修正することで、実際に使用する文字サイズに応じて描画位置を順次変更して(適正サイズで詰めて)描画するので、間延びした状態となるのを避けることができる。
なお、描画状態修正部228は、図9(B)に示した描画態様に限らず、所定の条件に基づいて、さらに描画位置を修正してもよい。たとえば、文字描画位置変更部229は、文字間隔算出部226が算出した文字間隔が基準値よりも小のとき、横書きの場合は横方向に、縦書きの場合は縦方向に、今回の描画文字の文字描画位置を変更する。図9(C)は、その一例を示している。
ここで、「基準値」は、元の文字における隣接描画位置の描画位置を指している。たとえば、図9に書き込まれている値で言うと、2文字目の基準値は前の文字の終了座標であるx01という値である。これは、後述する図10の場合でも同様である。
文字間隔算出部226が算出した2文字目の開始位置の値はx11になるので、「文字間隔算出部226が算出した文字間隔が基準値よりも小」であるのか否かに基づいて、描画位置を元の位置のものを使用するか否かを制御する。
たとえば、図9(C)に示すように、文字描画位置変更部229は、計算した1つ前に描画された文字位置を(x1n−1,y1n−1)とし、元々指定されていた文字描画位置を(x0n,y0n)としたとき、横書きであれば、x0n≧x1n−1であれば元々の文字描画位置(x0n,y0n)の位置へ描画し、x0n<x1n−1であれば、計算された1つ前に描画された文字位置(x1n−1,y1n−1)へ描画する。
図示しないが、縦書きであれば、y0n≧y1n−1であれば元々の文字描画位置(x0n,y0n)の位置へ描画し、y0n<y1n−1であれば、計算された1つ前に描画された文字位置(x1n−1,y1n−1)へ描画する。指定された文字サイズよりも小さな文字サイズのフォントを近似フォントとして使用する場合には、常にx0n≧x1n−1あるいはy0n≧y1n−1を満たすので、結局は、元々指定されていた文字描画位置に描画する。
こうすることで、指定された文字サイズよりも小さな文字サイズのフォントを近似フォントとして使用する場合に拡大処理を行なわなくても、必要以上に文字ピッチが小さくなることを防ぐことができる。実際よりもページ内の狭い範囲にレイアウトが固まってしまい本来の文字位置情報が失われるという状態を防ぐことができる。
図9(B)に示すようにすることで間延びした状態を防止するのがよいのか、狭い範囲にレイアウトが固まるのを防止するのがよいのか、あるいは後述する図10(C)のように飛出しが生じないようにするのがよいのかは、ページ全体のレイアウトを考慮して決めるのがよい。たとえば、元のページ内レイアウトを頑なに守った方が局所的な文字列内の文字の並び具合よりも優先される場合も考えられる。具体的には、グラフや図などに含まれる説明文字などは、その表示される位置が意味を表わしていたりして重要だったりするので、その位置がずれるよりも文字が間延びしていた方が良い例であると言える。位置情報と見栄えのどちらが優先なのかを装置にて自動で切り替えることは不可能ではないにしても困難であるから、この切替制御はユーザの指示に従うのがよい。
また、指定された文字サイズよりも大きな文字サイズのフォントを近似フォントとして使用する場合にも、同様にして描画の文字位置を修正すればよい。たとえば、文字描画命令処理部22は、先ず、図10(B)に示すように、横書きの場合、1つ前に描画する文字位置(x1@,y1@)(αは1つ前の描画対象文字の描画順;0が初期値)、横方向の文字幅hx1とし、それぞれの文字描画位置を(x1@+hx1,y1@)とする。縦書きの場合にも同様にして考えればよい。
ここで、1つ1つの文字の出力品質に問題がなくて見栄えが良く、かつ文字列の全体としても、レイアウト崩れ、間延び、文字重なり、あるいは尻切れなど、全体としての見栄えに不都合がなければ、文字描画命令処理部22は、このままの状態で1ページ分の描画処理を完結させてよい。
たとえば、指定された文字サイズよりも大きな文字サイズのフォントを近似フォントとして使用する場合において、元の文字間隔(横方向はhx0、縦方向はhy0)で規定される描画位置に、近似フォントの大きな文字サイズで描画すると、レイアウト崩れや間延びした状態などは生じないが、サイズを大きくした分だけ隣接部での文字重なりが生じ、また文字列が長いケースでは尻切れのある状態で出力され得る。
これに対して、図10(B)から分かるように、文字間隔算出部226が算出した算出結果に基づいて実際に描画する文字描画位置を修正することで、実際に使用する文字サイズに応じて描画位置を順次変更して(適正サイズで広げて)描画するので、文字重なりを避けることができる。ただし、この場合、描画文字ピッチを広げた分だけ、尻切れの状態が助長される。
この問題を避けるには、描画状態修正部228は、図10(B)に示した描画態様に限らず、所定の条件に基づいて、さらに描画位置を修正してもよい。たとえば、文字描画位置変更部229は、文字間隔算出部226が算出した文字間隔が基準値よりも小のとき、横書きの場合は横方向に、縦書きの場合は縦方向に、今回の描画文字の文字描画位置を変更する。図10(C)は、その一例を示している。
文字間隔算出部226が算出した2文字目の開始位置の値はx11になるので、「文字間隔算出部226が算出した文字間隔が基準値よりも小」であるのか否かに基づいて、描画位置を元の位置のものを使用するか否かを制御する。具体的には、その文字が本来ページ内でレイアウトされる位置より右(横書きの場合)あるいは下(縦書きの場合)に飛び出してないかどうかを文字単位で判別し、必要に応じて(「基準値よりも小のとき」に相当)描画位置を元の位置に戻すことで飛出しが生じないようにする。
たとえば、図10(C)に示すように、文字描画位置変更部229は、計算した1つ前に描画された文字位置を(x1n−1,y1n−1)とし、元々指定されていた文字描画位置を(x0n,y0n)としたとき、横書きであれば、x0n≧x1n−1であれば元々の文字描画位置(x0n,y0n)の位置へ描画し、x0n<x1n−1であれば、計算された1つ前に描画された文字位置(x1n−1,y1n−1)へ描画する。
図示しないが、縦書きであれば、y0n≧y1n−1であれば元々の文字描画位置(x0n,y0n)の位置へ描画し、y0n<y1n−1であれば、計算された1つ前に描画された文字位置(x1n−1,y1n−1)へ描画する。指定された文字サイズよりも大きな文字サイズのフォントを近似フォントとして使用する場合には、常にx0n≧x1n−1あるいはy0n≧y1n−1を満たすとは限らず、所定の文字順以降は、常にx0n<x1n−1あるいはy0n<y1n−1を満たすようになる。図示した例では、5番目以降の文字からx0n<x1n−1を満たす。
このように、x0n≧x1n−1あるいはy0n≧y1n−1を満たすか否かに応じて実際の文字描画位置を修正することで、概ね元の描画位置に描画するようになり、文字重なりが生じるものの、尻切れの状態を解消することができる。
なお、x0n<x1n−1の場合に、計算された1つ前に描画された文字位置(x1n−1,y1n−1)へ実際の文字描画位置を修正するのは、視認性を良くする目的で拡大縮小を行なわなかったために発生する文字のページ内レイアウト変化を防いで、より良く元のページレイアウトを保つためである。
図10(C)に示す例では、文字単位に尻切れを起こしていて異常に見えるが、文字を本来よりも大きく書いてそのまま見栄え良くつないだ場合は図10(B)のように文字列の右の方にさらに大きな尻切れ(この例では5文字目が表示されていない)あるいはその文字列の右にある非常に重要な表示部分を覆い隠すという結果にもなり兼ねない。そのような事態を防ぐために、文字単位での尻切れや重なりを許している。個々の文字については重なりによって品質の低い出力となるが、このような品質の低い状態であっても、たとえば「□□□」のように文字として何が書かれている分らなくても「何か文字が3文字表示されている」と認識できるだけで十分意味がある場合も多く、図10(C)のように表示される事で、この特許の全ての利点を否定しているとは思えません。
また、処理対象の文字列はピッチと文字の大きさが元から奇麗に見えるように並んでいるとは限らず、元からピッチが広く空きすぎているもの、あるいは不自然にピッチが詰まっているものなど、世の中のドキュメントの中には多数のいびつな文字の大きさとピッチの関係が存在する。元々の文字に隙間がある場合は、本来よりも大きい文字を書いてもピッチはそのままにできるし、文字が元々重なって表示されている場合には、本来よりも小さい文字にしてもピッチはそのままでも問題がないという場合もある。
あるいは、1つの文字列に縮小あるいは拡大がどちらか一方しか含まれていないことに限定することはできず、実際は1つの文字列に拡大と縮小が混在しているものもある。この場合は、文字列の最初の部分で文字を小さくしてピッチを詰めた分、後の方の文字列で文字を大きくした場合にピッチをつめなくて良いというような良好な結果が得られる。
つまり、図9や図10の例では、文字列の最初でも後の方でも常に条件式を同じように満たしてしまうが、一般的にはそうとは言い切れない。この点からも、本実施形態のように、元の表示位置と計算後の描画位置を比べ、「計算値が基準値(元の指定位置)よりも座標が小さい(左にある/上にある)」という判断条件式を含むことによって、その結果に基づいて実際の描画位置を修正することで、右にはみ出すことなく、かといってはみ出すのを制するあまりに文字ピッチの文字列内のレイアウトが必要以上に崩れることを防ぐことができ、全体として、良好な出力結果が得られるようになる。
<文字描画処理制御部の動作の詳細>
図11は、文字描画処理制御部20における具体的な処理手順の一例を示すフローチャートである。先ず、CPU10は、ホストコンピュータ装置8からネットワーク9を介して画像出力制御装置2に送られてきた電子ドキュメントを、一旦RAM40上のドキュメント記憶領域に保持する。そして、描画展開処理部12は、所定のタイミングで、描画コマンドを解釈し、その結果に基づいて、図形描画処理部16とラスタイメージ描画処理部18にて、ページバッファ44へラスタデータとして描画する。このとき、図形描画処理部16およびラスタイメージ描画処理部18は、グラフィックスやラスタイメージをラスタデータへ変換することで描画する。以下、具体的に説明する。
先ず、文字描画命令処理部22は、フォント指定命令か文字列描画命令かを判定する(S300)。フォント指定命令であったら(S300−YES)、書体選択部26は、前述の図6に示した手順に従って、そのフォント指定に応じた書体を選択し(S302)、選択した書体をカレントフォントとしてRAM40の所定の記憶領域に登録しておく(S304)。
また、文字描画命令処理部22は、文字列描画命令の場合(S300−NO)、カレントフォントにフォントの置換が発生しているか否かを判定する(S310)。フォント置換が発生していないなら(S310−NO)、文字描画命令処理部22は、文字コードを取得し、これをビットマップイメージ生成部24に設定する(S312)。ビットマップイメージ生成部24は、書体選択部26により選択・設定されたカレントフォントを用いて、フォントデータ記憶領域34より文字コードに対応するフォントデータを得て、その文字コードに対応する文字のビットマップイメージを生成し、生成したビットマップイメージをRAM40のビットマップ領域48に格納する(S314)。この際、ビットマップイメージ生成部24は、必要に応じて、文字サイズ、傾斜、回転などに関する情報を用いてビットイメージへの展開を実行し、ビットマップイメージを生成する。
文字描画命令処理部22は、ビットマップイメージ生成部24にて生成されたビットマップイメージをビットマップ領域48から読み出して、ページバッファ44の所定位置へ描画する(S316)。この際、文字描画命令処理部22は、描画した文字の描画位置と文字幅をRAM40の所定の記憶領域に保存しておく。
続いて、文字描画命令処理部22は、文字列内の全ての文字の描画が終了したか否か判定する(S318)。そして、終了していないならば(S318−NO)、文字描画命令処理部22とビットマップイメージ生成部24は、ステップS312〜S316の処理を繰り返す。一方、終了したならば(S318−YES)、文字描画処理制御部20は、文字描画命令処理を終了する。
これに対して、フォント置換が発生していたならば(S310−YES)、先ず、文字描画命令処理部22は、置換前のフォント情報(フォント指定命令として指定された情報)と、置換が発生したという情報をRAM40の所定の記憶領域に登録しておく(S320)。この後、文字描画命令処理部22は、各々の文字に対する拡縮率を算出し(S322)、全ての文字について、算出した拡縮率を拡縮率テーブル46(図4参照)としてRAM40に登録しておく。
文字描画命令処理部22は、拡縮率テーブル46を生成した後、図形描画命令解釈部14から文字コードを取得し、さらに、拡縮率テーブル46から、今描画する文字の、置換前のフォント情報や属性情報(すなわちフォント指定命令)と、文字コードに合致する拡縮率テーブル46に登録されている拡縮率L1とを取得し、それらをビットマップイメージ生成部24に設定する(S324)。
これを受けてビットマップイメージ生成部24は、書体選択部26により選択・設定されたカレントフォントを用いて、フォントデータ記憶領域34より文字コードに対応するフォントデータを得て、その文字コードに対応する文字のビットマップイメージを生成を生成する(S326)。
この際、フォント変形実行指定部28で指定された状態(図7参照)に基づいて拡大縮小処理を行なうか否かを判断して、指示があるときにのみ対応する拡大縮小処理を行なう。具体的には、ビットマップイメージ生成部24は、ビットマップイメージを生成する際に必要な文字サイズをステップS326で取得した拡縮率L1で修正して、実際の拡縮率L2を求める。
ここで、拡縮率L1は、最初に表示するべくドキュメントに指示されているフォントをどれだけ拡縮すれば正しい大きさに出るかを表わす値である。この拡縮率L1は、元のフォントがアウトラインフォントであっても概念的な倍率は存在する。一方、拡縮率L2は、近似フォントへのフォント置換後に、近似フォントをどれだけ拡大すれば正しい画像が得られるかを表わしている。拡縮を行なわないとき拡縮率L2が1.0になる。
フォント置換が発生すると、基本的には(例外もあるが)、拡縮率L1と拡縮率L2は変化するので、置換が起こった後に拡縮率L1を使うと正しい大きさの文字が得られない。拡縮率テーブル46に登録してある拡縮率L1を修正して拡縮率L2を求めて、計算した拡縮率L2を用いて拡大縮小を行なうことにより、正しい大きさの文字を得ることができるようになる。
また、文字描画命令処理部22は、ステップS326では、文字の拡大処理や縮小処理(すなわち変倍処理)の他に、必要であれば太文字化処理や斜体化処理を行なってもよい。この際も、フォント変形実行指定部28で指定された状態(図7参照)に基づいて太文字化処理や斜体化処理を行なうか否かを判断して、指示があるときにのみ対応する処理を行なう。
次に、ビットマップイメージ生成部24は、生成したフォントのビットマップイメージをRAM40のビットマップ領域48に格納する。
文字描画命令処理部22は、ビットマップイメージ生成部24により生成されたフォントのビットマップイメージをビットマップ領域48から読み出して、ページバッファ44の指定位置へ描画する(S340)。
この際、文字描画命令処理部22は、フォント変形実行指定部28で指定された状態(図7参照)を参照し、拡縮されていないのであれば、図9(B)や図10(B)に示したように、1つ前に描画された文字の位置(x1@,y1@)とその文字の幅hx1,hy1から、たとえば横書きの場合は(x1@+hx1,y1@)あるいは(x1@+hx1+xc,y1@)、縦書きの場合は(x1@,y1@+hy1)あるいは(x1@,y1@+hy1+yc)というように、文字描画位置を求める(S332)。拡縮されている場合は、その文字の幅として拡縮後の文字幅を使用すればよい。
続いて、文字描画命令処理部22は、今描画する文字の位置と求められた文字描画位置を比較し(S334)、求められた文字描画位置に不都合がなければ(S332−YES)、求められた文字描画位置にてページバッファ44へ文字を描画する(S336)。
求められた文字描画位置に不都合がある場合(S332−NO)、文字描画命令処理部22は、図9(C)や図10(C)に示したようにして、x0n≧x1n−1あるいはy0n≧y1n−1を満たすか否かに応じ、実際の文字描画位置を修正する(S338)。
次に、文字描画命令処理部22は、前述の拡縮率L2を元に指定位置を修正し(S339)、ページバッファ44へ修正後の指定位置にて描画する(S340)。続いて、文字描画命令処理部22は、描画した文字の描画位置と文字幅をRAM40の所定の記憶領域に保存しておく。
ここで、「拡縮率L2を元に指定位置を修正」する意義を説明すると以下の通りである。先ず、文字描画を行なうときには、図3(B)に示したように、文字の左下(ぐらい)の描画開始位置を基準に文字を書く。しかし、この描画開始位置の基準は、実際の機械の文字データのビットマップデータが格納される位置とは異なることがある。具体的には、左上位置を基準にビットマップデータが格納されていることがあり、この場合、奇麗な並びで文字が出るように描画開始位置にオフセットを加えて正しいビットマップデータの左上座標を計算しなければならない。
このときに、データの中に格納されている調整座標値(この値はフォントのデータ部には示していない)と拡縮率L2を積算して、その値を基準位置に加算することで、最終的なメモリ内の位置を得る。
この処理は、拡縮を行なうか、行なわないかに関わらず共通の処理になる。拡縮を行なわないときは拡縮率L2が1.0になる。たとえば、図7の「Fontの拡大縮小を実行する」の画面でチェックを入れたときと、入れないときの違いは、実際には「Fontの拡大縮小を実行する」がチェックされていない場合には計算する最終的な倍率であるL2を1.0に固定する(1.0倍にする=拡縮を行なわない)ことで処理が実現される。
この後、文字描画命令処理部22は、文字列内の全ての文字の描画が終了したか否か判定する(S342)。そして、終了していないならば(S342−NO)、文字描画処理制御部20は、ステップS324〜S328の処理を繰り返す。一方、終了したならば(S330−YES)、文字描画処理制御部20は、文字描画命令処理を終了する。
以上、説明したように、上記実施形態の画像出力制御装置2の構成およびその処理手順に依れば、任意のフォントを特定する情報とそのフォントの属性情報を元にしたフォントの使用要求に対応して、それぞれ書体が異なる複数フォントの中から所望の書体のフォントを選択し、選択したフォントを用いて、文字コードと文字描画位置情報を元に文字を出力するに際して、先ず、拡縮、太文字化、斜体化などのフォント変形を実行するか否かや、置換候補の近似フォントの選択範囲を、ユーザが指定することを可能に構成した。
このことにより、ユーザの希望に応じて、指定されたフォントを別のフォントに置換して描画することを抑制して、視認性のよい文字表示とレイアウト通りの文字表示を両立させることができるようになった。常に予め決められた条件でフォント変形する、あるいは常に装置で定められているフォント置換の条件で置換するのではないので、フォント変形やフォント置換をするか否かや、変形や置換をする際にはその条件をユーザの好みに応じて自由に指定することができ、使い勝手がよい。
また、指定されたフォントを別のフォントに置換して描画することを抑制することで、フォントの拡大縮小処理に代表されるフォント変形処理が頻繁に発生することを抑えることができるから、出力パフォーマンスに悪影響を与えることもない。
なお、上記実施形態では、太文字化や斜体化のないフォントが指定されているい場合、近似フォントとしては、太文字化や斜体化のないフォントを近似フォントとして選択するものとし、たとえば、図7では、太文字化されていないフォントに対しての太文字化や斜体化されていないフォントに対しての斜体化の可否をユーザより受け付けるようにしていたが、これに限らず、太文字化されているフォントに対しての細字化や斜体化されているフォントに対しての正立化の可否をユーザより受け付けるようにしてもよい。
本発明に係る画像出力制御装置の一時実施形態を備えた画像処理システムの概要を示す図である。 画像処理システムを構成する、画像出力制御装置の詳細な構成例を示すブロック図である。 電子ドキュメントに含まれている文字描画命令を説明する図である。 RAMに登録される拡縮率テーブルの一例を説明する図である。 フォントデータの一例を示す図である。 書体選択部の処理手順の詳細例を示すフローチャートである。 フォント変形実行指定部が利用するGUIの一例を示す図である。 文字描画命令処理部の詳細構成例を示すブロック図である。 文字描画状態修正処理の概要を示す図である。(小サイズの近似フォントを使用の場合) 文字描画状態修正処理の概要を示す図である。(大サイズの近似フォントを使用の場合) 文字描画処理制御部における具体的な処理手順の一例を示すフローチャートである。 従来のフォント置換における出力結果の問題点を説明する図である。
符号の説明
1…画像処理システム、2…画像出力制御装置、3…本体、4…ディスプレイ、5…キーボード、6…マウス、7…プリンタ、8…ホストコンピュータ装置、9…ネットワーク、10…CPU、12…描画展開処理機能部、14…図形描画命令解釈部、16…図形描画処理部、18…ラスタイメージ描画処理部、20…文字描画処理制御部、22…文字描画命令処理部、24…ビットマップイメージ生成部、26…書体選択部、28…フォント変形実行指定部、30…ROM、32…プログラム記憶領域、34…フォントデータ記憶領域、40…RAM、42…ドキュメント記憶領域、44…ページバッファ、46…拡縮率テーブル、48…ビットマップ領域、50…ディスプレイI/F部、52…入力I/F部、54…プリンタI/F部、70…ネットワークI/F部、80…内部バス、222…描画文字状態特定部、224…文字間状態予測部、226…文字間隔算出部、228…描画状態修正部、229…文字描画位置変更部

Claims (11)

  1. 受け取った文書データで指定されているフォントが自装置に搭載されていないときに、自装置に搭載されているフォントに置換し、この置換したフォントのビットマップイメージに基づいて前記文書データに対応した画像を出力する画像出力制御方法であって、
    前記置換したフォントのビットマップイメージを変形するか否かの指示をユーザより受け付け、
    前記変形を行なう旨の指示を受け付けたときには置換するフォントである近似フォントに対して前記変形の処理を許可し、前記変形を行なう旨の指示を受け付けていないときには前記近似フォントに対して前記変形の処理を不許可にするとともに、描画する文字ごとに拡縮率を特定し、特定された描画する文字ごとの拡縮率に基づいて、実際に描画する文字ごとに描画位置を修正する
    ことを特徴とする画像出力制御方法。
  2. 受け取った文書データで指定されているフォントが自装置に搭載されていないときに、自装置に搭載されているフォントに置換し、この置換したフォントのビットマップイメージに基づいて前記文書データに対応した画像を出力する画像出力制御装置であって、
    自装置において使用可能なフォントの情報を格納するフォントデータ記憶部と、
    前記置換したフォントのビットマップイメージを変形するか否かの指示を受け付けるフォント変形実行指定部と、
    前記フォント変形実行指定部が前記変形を行なう旨の指示を受け付けたときには置換するフォントである前記フォントデータ記憶部から読み出した近似フォントに対して前記変形の処理を許可し、前記フォント変形実行指定部が前記変形を行なう旨の指示を受け付けていないときには前記近似フォントに対して前記変形の処理を不許可にする文字描画処理制御部であって、描画する文字ごとに拡縮率を特定する描画文字拡縮率特定部と、前記描画文字拡縮率特定部が特定した、描画される文字ごとの拡縮率に基づいて、実際に描画する文字ごとに描画位置を修正する文字描画位置修正部とを有する文字描画処理制御部と
    を備えたことを特徴とする画像出力制御装置。
  3. 複数の文字からなる文字列について、各文字間の状態を予測する文字間状態予測部
    をさらに有し、
    前記文字描画位置修正部は、前記文字間状態予測部が予測した文字間の状態に基づいて、実際に描画する文字ごとに描画位置を修正する
    ことを特徴とする請求項に記載の画像出力制御装置。
  4. 前記文字間状態予測部は、
    隣接する描画文字の間隔を算出する文字間隔算出部を有し、
    当該文字間隔算出部の算出結果を前記予測した文字間の状態とする
    ことを特徴とする請求項に記載の画像出力制御装置。
  5. 前記文字描画位置修正部は、前記文字間隔算出部が算出した文字間隔が所定の基準値よりも小のとき、文字の配列方向に文字描画位置を変更する
    ことを特徴とする請求項に記載の画像出力制御装置。
  6. 前記フォントデータ記憶部は、フォントの各々に対してそのフォント名と文字形状に関わる属性情報とを対応付けて格納し、
    前記フォント変形実行指定部は、前記文字形状に関わる属性情報に対応した文字形状の変更の指示を受け付け可能である
    ことを特徴とする請求項2からのうちの何れか1項に記載の画像出力制御装置。
  7. 前記フォントデータ記憶部は、前記文字形状に関わる属性情報として、文字の太さに関する情報を格納し、
    前記フォント変形実行指定部は、前記文字の太さに関する情報に対応した文字太さ変更処理の指示を受け付け可能である
    ことを特徴とする請求項に記載の画像出力制御装置。
  8. 前記フォントデータ記憶部は、前記文字形状に関わる属性情報として、文字の傾きに関する情報を格納し、
    前記フォント変形実行指定部は、前記文字の傾きに関する情報に対応した文字傾き変更処理の指示を受け付け可能である
    ことを特徴とする請求項またはに記載の画像出力制御装置。
  9. 前記フォントデータ記憶部は、前記文字形状に関わる属性情報として、文字の大きさに関する情報を格納し、
    前記フォント変形実行指定部は、前記文字の大きさに関する情報に対応した文字サイズ変更処理の指示を受け付け可能である
    ことを特徴とする請求項からのうちの何れか1項に記載の画像出力制御装置。
  10. 前記フォントデータ記憶部は、フォントの各々に対してそのフォント名と文字形状に関わる属性情報とを対応付けて格納し、
    前記フォント変形実行指定部は、前記フォント名についての変更の可否を受け付け可能である
    ことを特徴とする請求項2からのうちの何れか1項に記載の画像出力制御装置。
  11. 受け取った文書データで指定されているフォントが自装置に搭載されていないときに、自装置に搭載されているフォントに置換し、この置換したフォントのビットマップイメージに基づいて前記文書データに対応した画像を出力する画像出力制御方法をコンピュータにて実行するためのプログラムであって、
    コンピュータを、
    前記置換したフォントのビットマップイメージを変形するか否かの指示を受け付けるフォント変形実行指定部と、
    前記フォント変形実行指定部が前記変形を行なう旨の指示を受け付けたときには置換するフォントである前記フォントデータ記憶部から読み出した近似フォントに対して前記変形の処理を許可し、前記フォント変形実行指定部が前記変形を行なう旨の指示を受け付けていないときには前記近似フォントに対して前記変形の処理を不許可にする文字描画処理制御部であって、描画する文字ごとに拡縮率を特定する描画文字拡縮率特定部と、前記描画文字拡縮率特定部が特定した、描画される文字ごとの拡縮率に基づいて、実際に描画する文字ごとに描画位置を修正する文字描画位置修正部とを有する文字描画処理制御部と
    して機能させることを特徴とするプログラム。
JP2003345962A 2003-10-03 2003-10-03 画像出力制御方法および装置並びにプログラム Expired - Fee Related JP4492082B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003345962A JP4492082B2 (ja) 2003-10-03 2003-10-03 画像出力制御方法および装置並びにプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003345962A JP4492082B2 (ja) 2003-10-03 2003-10-03 画像出力制御方法および装置並びにプログラム

Publications (2)

Publication Number Publication Date
JP2005111718A JP2005111718A (ja) 2005-04-28
JP4492082B2 true JP4492082B2 (ja) 2010-06-30

Family

ID=34539076

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003345962A Expired - Fee Related JP4492082B2 (ja) 2003-10-03 2003-10-03 画像出力制御方法および装置並びにプログラム

Country Status (1)

Country Link
JP (1) JP4492082B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4363371B2 (ja) 2005-07-08 2009-11-11 ブラザー工業株式会社 画像形成データ生成装置、その方法、及び、そのプログラム
JP4978304B2 (ja) * 2007-05-15 2012-07-18 村田機械株式会社 印刷制御装置および印刷制御プログラム
JP4956366B2 (ja) * 2007-10-16 2012-06-20 キヤノン株式会社 画像処理装置
JP2009245092A (ja) * 2008-03-31 2009-10-22 Toray Eng Co Ltd 印刷データ変換方法
JP5185159B2 (ja) * 2009-03-02 2013-04-17 東芝テック株式会社 情報処理装置及び変換情報変更プログラム
JP6038568B2 (ja) * 2012-09-21 2016-12-07 理想科学工業株式会社 画像形成装置
JP6812141B2 (ja) 2016-05-31 2021-01-13 キヤノン株式会社 情報処理装置、情報処理方法およびプログラム
JP2018185380A (ja) * 2017-04-25 2018-11-22 セイコーエプソン株式会社 電子機器、プログラム及び電子機器の制御方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS633380A (ja) * 1986-06-23 1988-01-08 Nec Corp 形状変形方式
JPH02230419A (ja) * 1989-03-03 1990-09-12 Canon Inc 文字処理装置及び方法
JPH06130930A (ja) * 1992-10-16 1994-05-13 Just Syst Corp ビットイメージデータ生成方法及び装置
JPH07323620A (ja) * 1994-06-02 1995-12-12 Canon Inc 文字セット出力装置および文字セット出力方法
JPH08190369A (ja) * 1995-01-12 1996-07-23 Brother Ind Ltd 文字データ出力装置
JPH08263043A (ja) * 1995-03-28 1996-10-11 Canon Inc 画像処理装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS649753A (en) * 1987-07-02 1989-01-13 Minolta Camera Kk Character image generator

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS633380A (ja) * 1986-06-23 1988-01-08 Nec Corp 形状変形方式
JPH02230419A (ja) * 1989-03-03 1990-09-12 Canon Inc 文字処理装置及び方法
JPH06130930A (ja) * 1992-10-16 1994-05-13 Just Syst Corp ビットイメージデータ生成方法及び装置
JPH07323620A (ja) * 1994-06-02 1995-12-12 Canon Inc 文字セット出力装置および文字セット出力方法
JPH08190369A (ja) * 1995-01-12 1996-07-23 Brother Ind Ltd 文字データ出力装置
JPH08263043A (ja) * 1995-03-28 1996-10-11 Canon Inc 画像処理装置

Also Published As

Publication number Publication date
JP2005111718A (ja) 2005-04-28

Similar Documents

Publication Publication Date Title
JP3483946B2 (ja) フォント処理装置及びフォント処理方法
US7791589B2 (en) Method and apparatus for displaying electronic document including handwritten data
US5943680A (en) Output apparatus in which a plurality of images having a plurality of accuracy of colors are output to output devices having different accuracy of colors
US5703962A (en) Image processing method and apparatus
KR970008546B1 (ko) 문자 또는 도형의 처리방법
JP4492082B2 (ja) 画像出力制御方法および装置並びにプログラム
US6753862B1 (en) Outline smoothing method and system
JPH06328785A (ja) 文字生成方法及びその装置
JP3037854B2 (ja) 文字生成方法及びその装置
JP4785601B2 (ja) 画像形成装置
JP2004184718A (ja) 画像処理装置および画像処理方法
JP4297815B2 (ja) 情報処理装置および処理方法およびプログラムおよび記録媒体
JP2010009046A (ja) 画像表示装置及び画像表示方法
JP3220437B2 (ja) 出力制御装置及び方法
JPH09254459A (ja) 文字処理装置、文字処理方法、及び、メモリ
JPH08101675A (ja) フォント展開装置
JP3863416B2 (ja) 描画装置およびその制御方法
JP3350325B2 (ja) キャラクタ出力装置
JP3437293B2 (ja) 文字出力方法及び文字処理装置
JP2803746B2 (ja) 文字処理方法及びその装置
JP2014206712A (ja) 文字情報出力装置
JP2008173946A (ja) 画像処理装置、画像処理方法、及び画像処理プログラム
JP2976671B2 (ja) データ展開方法
JPH10334256A (ja) 表示装置及びその制御方法
JP2001117910A (ja) 文書書式自動修正装置及び方法並びに文書書式自動修正プロブラムを記憶した記憶媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060921

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20091009

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091020

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091215

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100316

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100329

R150 Certificate of patent or registration of utility model

Ref document number: 4492082

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130416

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130416

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140416

Year of fee payment: 4

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees