IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ キヤノンファインテック株式会社の特許一覧

<>
  • 特許-画像データ作成方法、およびプログラム 図1
  • 特許-画像データ作成方法、およびプログラム 図2
  • 特許-画像データ作成方法、およびプログラム 図3
  • 特許-画像データ作成方法、およびプログラム 図4
  • 特許-画像データ作成方法、およびプログラム 図5
  • 特許-画像データ作成方法、およびプログラム 図6
  • 特許-画像データ作成方法、およびプログラム 図7
  • 特許-画像データ作成方法、およびプログラム 図8
  • 特許-画像データ作成方法、およびプログラム 図9
  • 特許-画像データ作成方法、およびプログラム 図10
  • 特許-画像データ作成方法、およびプログラム 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-31
(45)【発行日】2024-11-11
(54)【発明の名称】画像データ作成方法、およびプログラム
(51)【国際特許分類】
   G06F 40/109 20200101AFI20241101BHJP
   G06F 3/0481 20220101ALI20241101BHJP
【FI】
G06F40/109
G06F3/0481
【請求項の数】 3
(21)【出願番号】P 2020026442
(22)【出願日】2020-02-19
(65)【公開番号】P2021131702
(43)【公開日】2021-09-09
【審査請求日】2023-02-10
(73)【特許権者】
【識別番号】000208743
【氏名又は名称】キヤノンファインテックニスカ株式会社
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(74)【代理人】
【識別番号】100076428
【弁理士】
【氏名又は名称】大塚 康徳
(74)【代理人】
【識別番号】100115071
【弁理士】
【氏名又は名称】大塚 康弘
(74)【代理人】
【識別番号】100112508
【弁理士】
【氏名又は名称】高柳 司郎
(74)【代理人】
【識別番号】100116894
【弁理士】
【氏名又は名称】木村 秀二
(74)【代理人】
【識別番号】100130409
【弁理士】
【氏名又は名称】下山 治
(74)【代理人】
【識別番号】100134175
【弁理士】
【氏名又は名称】永川 行光
(72)【発明者】
【氏名】新田 大地
(72)【発明者】
【氏名】伊藤 航也
【審査官】長 由紀子
(56)【参考文献】
【文献】特開2009-070214(JP,A)
【文献】米国特許出願公開第2010/0131839(US,A1)
【文献】特開平11-096157(JP,A)
【文献】特開2006-309706(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 40/00-58
G06F 3/0481
(57)【特許請求の範囲】
【請求項1】
所定行数分の印刷されるべき領域が予め印刷された記録媒体に記録する、文字列を含む画像データを作成する情報処理装置において実行される画像データ作成方法であって、
前記情報処理装置が、ユーザによる前記文字列の最大行数の設定として、前記所定行数を超えない行数を受け付ける最大行数設定工程と、
前記情報処理装置が、ユーザによる前記文字列の入力を受け付ける入力工程と、
前記情報処理装置が、前記入力工程で入力された前記文字列を表示する表示工程と、
前記情報処理装置が、前記表示工程で表示する前記文字列の行数が前記最大行数を超えず、前記画像データによる前記文字列の印刷が前記印刷されるべき領域を超えないように、前記文字列のフォントを縮小するフォント縮小工程と、
を有することを特徴とする画像データ作成方法。
【請求項2】
前記最大行数の初期値が予め設定されていることを特徴とする請求項1に記載の画像データ作成方法。
【請求項3】
コンピュータに、請求項1に記載の画像データ作成方法の各工程を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、テキストデータを表示する画像データ作成方法、およびプログラムに関する。
【背景技術】
【0002】
アプリケーションによりテキストデータをテキストオブジェクト内に描画して表示する場合、その描画領域に、例えば、描画領域の大きさ・描画に使用するフォントの種類およびサイズが予め指定されている場合がある。テキストオブジェクトに対して、キーボード入力やデータベース参照によってテキストデータを入力することで、テキストデータの描画処理が実現される。
【0003】
その描画処理において、テキストデータの入力内容とテキストオブジェクトに設定されているフォントの種類およびサイズの組み合わせによっては、テキストオブジェクトに設定されている描画領域にテキストの描画結果が収まらない場合がある。その場合、テキストデータを描画領域に合わせて改行したり、描画に使用するフォントを縮小したりすることで、描画領域内にテキストの描画を収める技術が知られている(特許文献1)。
【0004】
一方、アプリケーションの用途によっては、テキストオブジェクトに予め最大行数が設定されている場合がある。例えば、4行分の罫線がプレ印刷された領域を持つ用紙にテキストを印刷する場合、描画されるテキストは描画領域内に収まるだけでなく、描画結果の行数が4行以内に収まる必要がある。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2005‐193433号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1では、描画領域に最大行数を指定することができず、そのため、テキストオブジェクト内にテキストデータを描画して表示する際、最大行数に適合した表示を実現することについては言及されていない。
【0007】
本発明の目的は、このような従来の問題点を解決することにある。上記の点に鑑み、本発明は、最大行数に適合した表示を実現する画像データ作成方法、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
上記課題を解決するため、本発明に係る画像データ作成方法は、所定行数分の印刷されるべき領域が予め印刷された記録媒体に記録する、文字列を含む画像データを作成する情報処理装置において実行される画像データ作成方法であって、前記情報処理装置が、ユーザによる前記文字列の最大行数の設定として、前記所定行数を超えない行数を受け付ける最大行数設定工程と、前記情報処理装置が、ユーザによる前記文字列の入力を受け付ける入力工程と、前記情報処理装置が、前記入力工程で入力された前記文字列を表示する表示工程と、前記情報処理装置が、前記表示工程で表示する前記文字列の行数が前記最大行数を超えず、前記画像データによる前記文字列の印刷が前記印刷されるべき領域を超えないように、前記文字列のフォントを縮小するフォント縮小工程とを有することを特徴とする。
【発明の効果】
【0009】
本発明によれば、最大行数が定められたテキストオブジェクトに適合した表示を実現することができる。
【図面の簡単な説明】
【0010】
図1】印刷システムの概略構成を示す図である。
図2】テキストオブジェクトを示す図である。
図3】テキストの入力から描画までの処理を示すフローチャートである。
図4】S301の改行自動挿入処理を示すフローチャートである。
図5】S303のテキスト分割処理を示すフローチャートである。
図6】S304のフォントサイズ更新処理を示すフローチャートである。
図7】S303のテキスト分割処理を示すフローチャートである。
図8】テキストの入力から描画までの処理を説明するための図である。
図9】テキストの入力から描画までの処理を説明するための図である。
図10】効果を説明するための図である。
図11】英語のテキストの入力から描画までの処理を説明するための図である。
【発明を実施するための形態】
【0011】
以下、添付図面を参照して実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態で説明されている特徴の組み合わせの全てが発明に必須のものとは限らない。実施形態で説明されている複数の特徴のうち二つ以上の特徴が任意に組み合わされてもよい。また、同一若しくは同様の構成には同一の参照番号を付し、重複した説明は省略する。
【0012】
[第1実施形態]
図1は、本実施形態における情報処理装置を含む、印刷システムの概略構成を示す図である。印刷システムは、情報処理装置101とプリンタ107とを含み、有線ネットワーク、無線ネットワーク、若しくはそれらの両方を含むネットワークを介して相互に通信可能に接続されている。
【0013】
情報処理装置101は、プリンタ107に印刷データを送信する。CPU102は、情報処理装置101を統括的に制御し、例えば、ROM104に記憶された制御プログラムに基づいて、通信インタフェース(IF)部105を介してプリンタ107に送信する印刷データの作成、編集の処理を制御する。RAM103は、主としてCPU102のワークエリアを提供するメモリである。操作部106は、各種情報を表示又は入力するためのモニターなどの表示部、ユーザ操作を受付可能なキーボードおよびマウスを含んで構成される。プリンタ107は、インクジェット記録方式や電子写真方式等の記録方式により、記録媒体に記録を行う印刷装置であり、例えば、通信IF部105から送信された印刷データを受信し、受信した印刷データに基づいて記録媒体に画像を記録する。
【0014】
本実施形態のアプリケーションプログラムは、例えばROM104に記憶された制御プログラムの1つとして動作し、印刷データを作成、編集し、通信IF部106を介してプリンタ107への送信、印刷を実行させる。
【0015】
本実施形態では、情報処理装置101は、行数・フォント・フォントサイズ・描画領域幅が予め設定されたテキストオブジェクトにテキストを描画する。情報処理装置101は、テキストの入力を受け付けると、まず、描画領域幅に従ってテキストに改行を自動挿入し、指定のフォントサイズで描画領域幅内にテキストを収めて描画することを試みる。改行を自動挿入することによって設定された行数よりもテキストの行数が超える場合、情報処理装置101は、一旦改行を全て削除し、テキストに含まれる文字列の文字数に応じて、設定された行数と同じ数にテキストを分割する。例えば、指定のフォントサイズで9文字分の描画領域幅で3行分の描画領域に30文字のテキストを描画する場合、テキスト全体を3等分し、10文字ずつに分割する。即ち、分割された各々は、設定された行数の各一行分に相当する。そして、情報処理装置101は、分割したテキストを再び改行コードで結合し、その結果得られたテキストを描画した際の描画幅とテキストオブジェクトに予め設定された描画領域幅とを比較し、フォントの縮小率を決定する。そして、情報処理装置101は、決定した縮小率でフォントサイズを更新し、テキストオブジェクトにテキストを描画する。
【0016】
図2は、行数を設定可能なテキストオブジェクトの一例を示す図である。テキストオブジェクト201は、入力されたテキストの描画対象となるオブジェクトであり、例えば、印刷対象の文書データ内で定義されるテキストボックスである。最大行数202は、テキストオブジェクト201に設定される行数である。フォント種類203は、テキストオブジェクト201に設定されたフォントの種類である。フォントサイズ204は、テキストオブジェクト201に設定されたフォントサイズである。描画領域幅205は、テキストオブジェクト201に設定された描画領域幅を表す。図2では、一例として、最大行数が4、フォント種類がメイリオ、フォントサイズが36ポイント、描画領域幅が16.5cmで設定されたテキストオブジェクトが示されている。
【0017】
本実施形態では、フォント種類203とフォントサイズ204を用いてテキストオブジェクト201にテキストが描画される。描画するテキストの描画幅が描画領域幅205を超える場合は、テキストに改行コードを挿入してテキストが描画領域幅からはみ出して描画されることを防ぐ。改行した結果取得される行数が最大行数202を超える場合、フォントサイズをフォントサイズ204よりも小さく変更するとともに改行位置を変更し、テキストが最大行数202を超えて描画されることを防ぐ。
【0018】
図3は、テキストが入力されてからテキストを描画するまでの処理を示すフローチャートである。図3の処理は、例えば、CPU102がROM104に記憶されたプログラムをRAM103に読み出して実行することにより実現される。図3の処理は、例えば、操作部106の表示部に表示された、印刷対象の文書データの編集画面上で、テキストオブジェクト201にテキストが入力された際に開始される。
【0019】
S301において、CPU102は、テキストの入力を受け付けると、後述する改行自動挿入処理を行う。ここでは、テキストオブジェクトの描画領域幅に基づいて改行を挿入する。なお、S304までは、表示部に表示される描画は行われず、RAM103上の仮想領域内での描画が行われ、S305において最終結果のみが表示部に表示されてユーザが視認可能となる。
【0020】
S302において、CPU102は、改行された結果のテキストの行数Yが予め設定された最大行数Xよりも大きいか否かを判定する。テキストの行数Yが最大行数Xより大きいと判定された場合、S303へ進む。一方、テキストの行数Yが最大行数X以下であると判定された場合、S305へ進む。
【0021】
図8は、テキストが入力されてからテキストを描画するまでの処理を説明するための図である。図8(a)は、S302でテキストの行数Yが最大行数Xより大きいと判定された場合の仮想領域801を示している。図8(a)に示すように、予め設定された描画領域幅802を用いてS301で改行の挿入が行われた結果、行数が4で最大行数3より大きくなり、テキストオブジェクトの領域からはみ出ている。なお、図8(a)では、描画に用いられるフォントサイズは36ポイントであり、予め設定された描画領域幅は12cmとして示されている。
【0022】
S303において、CPU102は、後述するテキストの分割処理を行う。ここでは、改行コードが一旦削除され、テキストが最大行数Xに収めるために、テキスト全体が最大行数Xで分割される。
【0023】
S304において、CPU102は、後述するフォントサイズの更新処理を行う。ここでは、分割したテキストのフォントサイズが1行の描画領域幅に合わせてサイズ変更される。
【0024】
S305において、CPU102は、S304で更新されたフォントサイズを用いてテキストの描画が表示部に行われる。また、S302でテキストの行数Yが最大行数X以下であると判定された場合には、S305では、予め設定されたフォントサイズによりテキストの描画が行われる。S305の後、図3の処理を終了する。
【0025】
図4は、S301の改行自動挿入処理を示すフローチャートである。S401において、CPU102は、予め設定されたフォント種類とフォントサイズを用いてテキストを描画する。この時、描画処理の途中経過をユーザに視認させないよう、内部処理として仮想領域への描画が行われる。しかしながら、仮想領域ではなくユーザに視認可能に表示させるよう描画が行われても良い。
【0026】
S402において、CPU102は、S401で描画した結果の描画幅とテキストオブジェクトに設定された描画領域幅とを比較する。描画幅の方が大きいと判定された場合はS403へ進む。一方、描画領域幅の方が大きいと判定された場合は図4の処理を終了する。S403において、CPU102は、S403の描画結果とテキストオブジェクトに予め設定された描画領域幅とを用いて、描画時に描画領域の境界線にかかる文字を特定する。
【0027】
S404において、CPU102は、S403で特定された文字の直前に改行コードを挿入する。その後、S401に戻り、CPU102は、後続する行について、仮想領域にテキストを描画する。S401~S404の処理が、S402で描画領域幅が描画幅より大きいと判定されるまで繰り返されることで、入力テキストへの改行自動挿入が行われる。
【0028】
図5は、S303のテキスト分割処理を示すフローチャートである。S501において、CPU102は、S301で挿入された改行コードを全て削除する。S502において、CPU102は、入力テキストの文字数をカウントする。
【0029】
S503において、CPU102は、S502でカウントした文字数を予め設定された最大行数Xで除算する。CPU102は、除算した結果の商を後段の工程で用いる分割文字数としてRAM103等の記憶領域に記憶する。S504において、CPU102は、テキストの分割処理用のループで用いるループカウンタNをRAM103等の記憶領域に定義する。ここで、ループカウンタNの初期値を1とする。
【0030】
S505において、CPU102は、ループカウンタNが最大行数Xと等しいか否かを判定する。ループカウンタNが最大行数Xと等しいと判定された場合、ループ処理を終了してS509へ進む。一方、ループカウンタNが最大行数Xと等しくない、つまり小さいと判定された場合、S506へ進む。
【0031】
S506において、CPU102は、テキストの先頭から、S503で算出された分割文字数分のテキストをN番目のテキストとしてRAM103等の記憶領域に記憶する。S507において、CPU102は、次のループ処理において残りのテキストを分割するために、S506で記憶したテキストを元のテキストから除外する。S508において、CPU102は、ループカウンタNを1インクリメントする。その後、S505の処理から繰り返す。
【0032】
S505~S508のループ処理が終了すると、S509において、CPU102は、S507の結果残ったテキストを最終行のテキストとしてRAM103等の記憶領域に記憶する。S510において、CPU102は、S505~S509で分割した行毎のテキストを、改行コードで結合する。その後、図5の処理を終了する。
【0033】
図6は、S304のフォントサイズ更新処理を示すフローチャートである。S601において、CPU102は、予め設定されたフォント種類とフォントサイズを用いて仮想領域にテキストを描画する。この時、描画対象となるテキストは、S303、即ち図5の処理で分割が行われたテキストである。
【0034】
図8(b)は、S601の描画結果の一例を示す仮想領域803を示している。図8(b)は、入力されたテキストの文字数が29である例を示しているので、最大行数3で描画するため、S303、即ち図5の処理で分割が行われた結果、10文字毎にテキストが分割されている。
【0035】
S602において、CPU102は、予め設定された描画領域幅をS601で描画した結果の描画幅で除算した値を算出する。本工程に到達する前に、S303におけるテキスト分割処理で1行に描画するテキストの文字数(=描画幅)が、分割前に比べて増えているので、S602での算出結果は、1.0よりも小さい値になる。CPU102は、算出結果を後段の工程で用いる縮小率としてRAM103等の記憶領域に記憶する。図8(b)では、予め設定された描画領域幅12cmをS601で描画した結果の描画幅12.7cm(36ポイント×10文字)で除算した値、即ち12/12.7=0.945が縮小率として算出される。
【0036】
S603において、CPU102は、予め設定されたフォントサイズにS602で算出された縮小率を乗じてフォントサイズを更新する。S602の算出結果は、1.0よりも小さいので、フォントサイズは予め設定されたフォントサイズよりも小さくなる。図8(c)では、S603の描画結果の一例を示す仮想領域805を示している。図8(c)に示すように、描画に用いられるフォントサイズは、予め設定されたフォントサイズ36ポイントに縮小率0.945を乗じた34ポイントとなる。その結果、テキストは描画領域に収まり、且つ、予め設定された最大行数以下の行数で、なるべく大きなフォントサイズを用いて描画することができる。S603の後、図6の処理を終了する。
【0037】
図10は、本実施形態による効果を説明するための図である。図10のテキストオブジェクト1001、1002、1003はテキスト4行分の描画領域を有している。つまり、テキストオブジェクト1001、1002、1003それぞれに固有に定められている行数は4行である。図10(a)は、表示部に表示されるユーザインタフェース画面上でユーザが設定可能な項目である最大行数1004の「4」に応じて描画された結果のテキストオブジェクト1001を示している。図10(a)に示すように、改行されたテキストが3行であり、最大行数1004の「4」に満たないため、フォントサイズが縮小されることなく指定した36ポイントで描画される。図10(a)は、ユーザが設定した最大行数がテキストオブジェクト1001の描画領域の行数と等しい。また、特にユーザが最大行数を設定しない場合はテキストオブジェクト1001の描画領域の行数と最大行数は等しい。
【0038】
図10(b)は、表示部に表示されるユーザインタフェース画面上でユーザが設定可能な項目である最大行数1005の「2」に応じて描画された結果のテキストオブジェクト1002を示している。図10(b)に示すように、最大行数1005の「2」に収まるよう、テキストオブジェクト1001よりも小さなフォントサイズに縮小された上でテキストが描画される。このように、最大行数をユーザが変更可能にすることで、ユーザは、描画領域の行数を超えない範囲で、例えば図10の例における4行を超えない範囲で、テキストを入力可能な行数を設定することができる。また、図10(b)では描画領域の左上からテキストを描画する場合の最大行数の設定例を示しているが、描画領域の右下を基準として、例えば3行目から4行目を入力可能な範囲としても良い。また、描画領域の上下中心位置に2行分の入力が可能になるようにしても良い。図10(b)のフォントサイズ欄は設定したフォントサイズを表示しているが、実際に描画している縮小したフォントサイズを表示するようにしても良い。
【0039】
図10(c)は、最大行数1006の「1」に応じて描画されたテキストオブジェクト1003を示している。図10(c)に示すように、最大行数1006の「1」に収まるよう、テキストオブジェクト1002よりも更に小さなフォントサイズに縮小された上でテキストが描画される。また、図10(c)では描画領域の左上からテキストを描画する場合の最大行数の設定例を示しているが、描画領域の右下を基準として、例えば4行目だけを入力可能な範囲としても良い。また、描画領域の上下中心位置に1行分の入力が可能になるようにしても良い。図10(c)のフォントサイズ欄も設定したフォントサイズを表示しているが、実際に描画している縮小したフォントサイズを表示するようにしても良い。
【0040】
以上のように、本実施形態によれば、行数が設定されたテキストオブジェクトにテキストを描画する際に、描画領域内に収まり、かつ設定された行数以下の行数で、なるべく大きなフォントサイズを用いて描画することができる。
【0041】
[第2実施形態]
第1実施形態では、文字毎の幅が同じテキストについて説明した。本実施形態では、第1実施形態と同様に改行の自動挿入・テキスト分割・フォントサイズ更新を行うが、テキストの分割処理において、テキストの文字数ではなく、テキストの描画幅に応じて分割を行う。そのような構成により、例えば、文字毎の幅が異なるプロポーショナルフォントを用いる場合であっても、第1の実施形態と同様の効果を得ることができる。以下、第2実施形態について第1実施形態と異なる点について説明する。
【0042】
図7は、本実施形態における、図3のS303のテキスト分割処理を示すフローチャートである。S701において、CPU102は、S301で挿入された改行コードを全て削除する。S702において、CPU102は、予め設定されたフォント種類とフォントサイズを用いて仮想領域にテキストを描画する。
【0043】
S703において、CPU102は、S702で描画した結果の描画幅を予め設定された最大行数Xで除算した値を算出する。CPU102は、その算出結果を後段の工程で用いる分割幅数としてRAM103等の記憶領域に記憶する。S704において、CPU102は、テキストの分割処理用のループで用いるループカウンタNをRAM103等の記憶領域に定義する。ここで、ループカウンタNの初期値を1とする。
【0044】
S705において、CPU102は、ループカウンタNが最大行数Xと等しいか否かを判定する。ループカウンタNが最大行数Xと等しいと判定された場合、ループ処理を終了してS710へ進む。一方、ループカウンタNが最大行数Xと等しくない、つまり小さいと判定された場合、S706へ進む。
【0045】
S706において、CPU102は、テキストの先頭から、S703で算出された分割幅分の位置にかかる文字を特定する。S707において、CPU102は、テキストの先頭からS706で特定した文字までのテキストをN番目のテキストとしてRAM103等の記憶領域に記憶する。S708において、CPU102は、次のループ処理において残りのテキストを分割するために、S707で記憶したテキストを元のテキストから除外する。S709において、CPU102は、ループカウンタNを1インクリメントする。その後、S705の処理から繰り返す。
【0046】
S705~S709のループ処理が終了すると、S710において、CPU102は、S708の結果残ったテキストを最終行のテキストとしてRAM103等の記憶領域に記憶する。S711において、CPU102は、S705~S710で分割した行毎のテキストを、改行コードで結合する。その後、図7の処理を終了する。
【0047】
図9は、本実施形態における、テキストが入力されてからテキストを描画するまでの処理を説明するための図である。
【0048】
図9(a)は、S302でテキストの行数Yが最大行数Xより大きいと判定された場合の仮想領域901を示している。図9(a)に示すように、予め設定された描画領域幅902の値を用いてS301で改行の挿入が行われた結果、行数が4で最大行数3より大きくなり、テキストオブジェクトの領域からはみ出ている。なお、図9(a)では、描画に用いられるフォントサイズは36ポイントであり、予め設定された描画領域幅は10cmとして示されている。
【0049】
図9(b)は、S702の描画結果の一例を示す仮想領域903を示している。分割幅905は、描画幅904を予め設定された最大行数「3」で除算した値、即ち32.4cm÷3=10.8cmである。図9(b)では、先頭の「あ」から10.8cmの位置にかかっている「し」までが1行目のテキストとなる。
【0050】
図9(c)は、S706およびS707の描画結果の一例を示す仮想領域906を示している。即ち、1行目のテキストを除外したテキストの先頭の「す」から10.8cmの位置にかかっている「ぬ」までが2行目のテキストとなる。
【0051】
図9(d)は、仮想領域907は、S601の描画結果の一例を示す仮想領域907を示している。描画幅908は、3行に分割されたテキストの内で最も描画幅の大きい12cmとなる。そして、予め設定された描画領域幅902を描画幅908で除算した値がフォントの縮小率になるので、縮小率は10÷12=0.833となる。なお、描画幅908は、3行に分割されたテキストの内で最も描画幅の大きいもの以上の値であれば良く、その結果、描画領域幅902に、いずれの行も収まることになる。また、行ごとに縮小率を算出しても良い。
【0052】
図9(e)は、テキストオブジェクト909は、最終的な描画結果の一例を示すテキストオブジェクト909を示している。描画に用いられるフォントサイズは、予め設定されたフォントサイズに縮小率をかけた36pt×0.833=30ptとなる。その結果、描画領域内に収まり、且つ、予め設定された最大行数以下の行数で、なるべく大きなフォントサイズを用いて描画することができる。
【0053】
[第3の実施形態]
以下、第3実施形態について第1及び第2実施形態と異なる点について説明する。第1、第2の実施形態では、日本語のように1文字ずつ改行しても意味が通じる言語の場合について説明した。本実施形態では、英語など単語の途中で改行すると意味が通じにくくなる言語の場合について説明する。
【0054】
図11は、英語のテキストが入力されてからテキストを描画するまでの処理を説明するための図である。図11(a)は、図3のS302でテキストの行数Yが最大行数Xより大きいと判定された場合の仮想領域を示している。図11(a)に示すように、予め設定された描画領域幅1101を用いてS301で改行の挿入が行われた結果、行数が5で最大行数4より大きくなり、テキストオブジェクトの領域からはみ出ている。
【0055】
英語など単語単位でスペースで区切る言語の場合は、単語の途中で改行を自動挿入することは望ましくない。そのため、図11(b)に示すように、テキストが最大行数内に収まるように且つ単語単位で改行位置を挿入するように、図11(a)の仮想領域を文字列方向に広げる。例えば、図11(a)では、行の終端が“card”で区切られているところ、図11(b)では、単語単位で改行位置が挿入された結果、行の終端が“printers”で区切られる。そして、最大行数4にテキストが収まった時の描画幅1102および改行自動挿入位置をRAM103等の記憶領域に記憶する。そして、予め設定された描画領域幅1101をRAM103等の記憶領域に記憶された描画幅1102で割った結果をフォント縮小率として、S304のフォントサイズ更新処理を実行する。図11(c)はフォントサイズ更新処理を実行した結果、表示部に表示されるテキストを示している。このように英語の場合は、単語単位で改行位置を再設定して、最大行数に収まるようにフォントサイズを縮小し、描画して表示する。なお、本実施形態を日本語のような1文字単位で改行しても意味が通じる言語に適用することも可能である。
【0056】
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0057】
発明は上記の実施形態に制限されるものではなく、発明の要旨の範囲内で、種々の変形・変更が可能である。
【符号の説明】
【0058】
101 情報処理装置: 102 CPU: 103 RAM: 104 ROM: 107 プリンタ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11