(57)【特許請求の範囲】
【請求項１】
表示画面上の表示を制御する表示制御装置であって、
前記表示画面上の領域を指定する領域指定手段と、
前記領域指定手段により指定された領域内に表示された複数のオブジェクトの画像を抽出するとともに、該各オブジェクトに外接する外接矩形領域を算出する抽出手段と、
前記領域指定手段により指定された領域が変形されることにより、前記抽出手段により算出された外接矩形領域の一部が、変形後の領域内に含まれなくなると判定された場合に、変形後の領域内に含まれるようにするための各外接矩形領域の配置を決定し、各外接矩形領域の位置を算出する算出手段と、
前記算出手段により算出された位置に、前記各オブジェクトの画像を表示する表示手段と
を備えることを特徴とする表示制御装置。
【請求項２】
前記複数のオブジェクトは、所定の方向に配列されることで行を構成しており、
前記算出手段は、前記抽出手段により算出された複数の前記外接矩形領域に対して、改行位置を変更することにより、前記変更後の領域内に含まれるようにするための前記各外接矩形領域の配置を決定することを特徴とする請求項１に記載の表示制御装置。
【請求項３】
隣り合って位置する前記外接矩形領域間の間隔を定義した位置規則に関する情報を保持する位置規則保持手段を更に備え、
前記算出手段は、前記位置規則に関する情報に基づいて、前記各外接矩形領域の位置を算出することを特徴とする請求項２に記載の表示制御装置。
【請求項４】
前記オブジェクトの画像の大きさを変更する場合の変更量及び隣り合って位置する前記外接矩形領域間の間隔を変更する場合の変更量が定義された変更規則に関する情報を保持する変更規則保持手段と、
前記算出手段において、前記各外接矩形領域の配置を決定することができなかった場合に、前記変更後の領域内に含まれるように、前記変更規則に関する情報に基づいて、前記オブジェクトの画像の大きさまたは前記外接矩形領域の間隔を変更する変更手段と
を更に備えることを特徴とする請求項１に記載の表示制御装置。
【請求項５】
表示画面上の表示を制御する表示制御装置における表示制御方法であって、
領域指定手段が、前記表示画面上の領域を指定する領域指定工程と、
抽出手段が、前記領域指定工程において指定された領域内に表示された複数のオブジェクトの画像を抽出するとともに、該各オブジェクトに外接する外接矩形領域を算出する抽出工程と、
算出手段が、前記領域指定工程において指定された領域が変形されることにより、前記抽出工程において算出された外接矩形領域の一部が、変形後の領域内に含まれなくなると判定された場合に、変形後の領域内に含まれるようにするための各外接矩形領域の配置を決定し、各外接矩形領域の位置を算出する算出工程と、
表示手段が、前記算出工程において算出された位置に、前記各オブジェクトの画像を表示する表示工程と
を備えることを特徴とする表示制御方法。
【請求項６】
請求項５に記載の表示制御方法の各工程をコンピュータに実行させるための制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、表示画面上の表示を制御する表示制御技術に関するものである。
【背景技術】
【０００２】
従来より、フォントデータで表現される文字を表示画面上の任意の領域へ配置する技術が知られており、例えば、文書作成アプリケーション等において一般に利用されている。
【０００３】
また、最近では、バリアブルプリントと呼ばれる自動編集機能も提案されており、当該自動編集機能によれば、指定された文字列を所定の領域に配置するにあたり、当該領域の大きさや形状に連動させることができる。つまり、領域の大きさや形状に基づいて、文字の配置や大きさ、文字列を構成する文字の間隔、行間隔などを自動的に計算し、領域内に収まるように編集される。
【０００４】
なお、同様の自動編集機能は文書作成アプリケーションにおいても適用されている。具体的には、文字列を配置する領域を作成する機能を搭載させることで、当該領域の形状を変更した場合でも、変更後の形状に合わせて文字列の配置を自動的に調整できるようになっている。
【０００５】
一方で、このような自動編集機能は、通常、フォントデータで表現される文字列を対象としており、フォントデータを持ち合わせていない手書き入力の文字や図形等に対しては、利用することができなかった。
【０００６】
一般に、手書き入力の文字や図形等に対して実現される自動編集機能は限られており、例えば、下記特許文献１、２等においても、手書き入力された文字の位置や大きさを変更することが開示されているにとどまる。
【０００７】
このため、これまでユーザは、文字認識手段等を用いて手書き入力された文字等を文字認識させ、フォントデータに変換したうえで上記自動編集機能を利用しなければならなかった。
【特許文献１】特開平６−２３１３０８号公報
【特許文献２】特開平７−１８２４４９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、手書き入力された文字や図形等を文字認識させたうえで自動編集機能を利用しようとすると、当該文字を正しく認識できなかった場合に、表示画面上に正確に文字を表示させることができないという問題がある。また、文字以外の手書き入力された図形等、フォントデータとして認識することができないオブジェクトについては、そもそも上記自動編集機能を利用することができないという問題もある。
【０００９】
本発明は、上記課題に鑑みてなされたものであり、表示画面上の所定の領域に表示される手書き入力されたオブジェクトを、該領域の大きさ及び形状に連動させて、自動的に編集できるようにすることを目的とする。
【課題を解決するための手段】
【００１０】
上記の目的を達成するために本発明に係る表示制御装置は以下のような構成を備える。即ち、
表示画面上の表示を制御する表示制御装置であって、
前記表示画面上の領域を指定する領域指定手段と、
前記領域指定手段により指定された領域内に表示された複数のオブジェクトの画像を抽出するとともに、該各オブジェクトに外接する外接矩形領域を算出する抽出手段と、
前記領域指定手段により指定された領域が変形されることにより、前記抽出手段により算出された外接矩形領域の一部が、変形後の領域内に含まれなくなると判定された場合に、変形後の領域内に含まれるようにするための各外接矩形領域の配置を決定し、各外接矩形領域の位置を算出する算出手段と、
前記算出手段により算出された位置に、前記各オブジェクトの画像を表示する表示手段とを備える。
【発明の効果】
【００１１】
本発明によれば、表示画面上の所定の領域に表示される手書き入力されたオブジェクトを、該領域の大きさ及び形状に連動させて、自動的に編集することが可能となる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照しながら各実施形態の詳細について説明する。なお、以下の説明において、「ストロークデータ配置領域」とは、ストローク入力により表示画面上に表示された手書きのオブジェクトのうち、編集処理の対象とするオブジェクトを指定した領域をいう。また、「一時データテーブル」とは、指定されたストロークデータ配置領域の座標が登録されたテーブルをいう。また、「入力オブジェクトリスト」とは、ストロークデータ配置領域に含まれるオブジェクトに関する情報（文字画像情報及び文字列構成情報）が登録されたリストをいう。
【００１３】
また、「位置規則テーブル」とは、ストロークデータ配置領域が変形されることで、該ストロークデータ配置領域に含まれるオブジェクトの配置が変更される場合のオブジェクトの位置に関する規則（行間隔や文字間隔等）が定義されたテーブルをいう。また、「変更規則テーブル」とは、ストロークデータ配置領域が変形されることで、該ストロークデータ配置領域に含まれるオブジェクトの大きさやオブジェクト間の間隔が変更される場合の規則（優先順位や変更内容）が定義されたテーブルをいう。
【００１４】
［第１の実施形態］
１．ネットワークシステムの構成
図１は、本発明の第１の実施形態に係る表示制御装置を備えるネットワークシステムを示す図である。ネットワークシステム１００は各種情報の伝送媒体となるネットワーク１２０上に複数の表示制御装置１０１〜１０５が接続されることで構成される。なお、ネットワーク１２０としては、例えばＥｔｈｅｒｎｅｔ（登録商標）のようなＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）の他、インターネットのような広域情報通信網を用いてもよい。
【００１５】
各表示制御装置１０１〜１０５は図２を用いて後述するネットワークＩ／Ｆ部２０７を介して、ネットワーク１２０に接続されている。更に、表示装置Ｉ／Ｆ部２０５を介して、それぞれの表示装置１１１〜１１５に接続されている。
【００１６】
なお、表示制御装置１０１〜１０５は、それぞれ同様の構成を備えているため、以下では、表示制御装置１０１について詳説する。
【００１７】
２．表示制御装置１０１のハードウェア構成
図２は、表示制御装置１０１のハードウェア構成を示す図である。図２において２０１は、ＣＰＵであり、各種処理のための演算や論理判断等を行い、バス２０８を介して接続された各構成要素（２０２〜２０７）を制御する。
【００１８】
２０２は読み出し専用の固定メモリＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）であり、ＣＰＵ２０１にて実行される各種制御プログラムを記憶する。
【００１９】
２０３は書き込み可能なＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）であり、各構成要素から送信される各種情報（後述する入力オブジェクトリスト２２１、一時データテーブル２２２等）の一時記憶装置として用いられる。
【００２０】
２０４は入力装置Ｉ／Ｆ部であり、マウス、キーボード等の入力装置（不図示）と接続され、該入力装置を介して入力された指示を受け付ける。
【００２１】
２０５は陰極線管ＣＲＴや液晶パネル等からなる画像表示機能と、デジタイザペン等のポインティングデバイスにより指示された位置情報を検出するデジタイザ機能とを備える表示装置１１１と接続するための表示装置Ｉ／Ｆ部である。
【００２２】
表示装置１１１に表示される画像は表示装置Ｉ／Ｆ部２０５を介して表示装置１１１に送信され、また、表示装置１１１のデジタイザ機能により検出された位置情報は、表示装置Ｉ／Ｆ部２０５を介して受信される。
【００２３】
２０６は外部記憶装置であり、本発明の第１の実施形態にかかる表示制御方法を実現するための制御プログラム２１１や該制御プログラム２１１の実行に際して用いられるテーブル（後述する変更規則テーブル２１２、位置規則テーブル２１３等）が格納される。つまり、外部記憶装置２０６は変更規則保持手段および位置規則保持手段として機能する。その他、各種装置（入力装置、表示装置等）を動作させるためのドライバ等（不図示）が格納される。
【００２４】
なお、これらの情報を格納する記憶媒体としては、ＲＯＭ、フロッピー（登録商標）ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、メモリカード、光磁気ディスクなどを用いることができる。
【００２５】
２０８はネットワークＩ／Ｆ部であり、ネットワーク１２０に接続され、ネットワークシステム１００内の他の表示制御装置（１０２〜１０５）との通信を可能にする。
【００２６】
上記各構成要素（２０１〜２０７）を備える表示制御装置１０１は、入力装置Ｉ／Ｆ部２０４において受け付けた所定の指示又はネットワークＩ／Ｆ部２０７から提供されるネットワーク１２０経由の所定の指示に応じて作動する。入力装置Ｉ／Ｆ部２０４やネットワークＩ／Ｆ部２０７を介して所定の指示が入力されると、インタラプト信号がＣＰＵ２０１に送信され、ＣＰＵ２０１が外部記憶装置２０６内に記憶された制御プログラム２１１を読み出す。そして、制御プログラム２１１が実行されることにより、本実施形態にかかる表示制御方法が実現される。
【００２７】
なお、上記説明では、本実施形態にかかる表示制御方法を実現するための制御プログラム２１１やテーブル（変更規則テーブル２１２、位置規則テーブル２１３）を外部記憶装置２０６に格納する構成としているが、本発明はこれに限られない。例えば、制御プログラム２１１等を格納した記憶媒体をネットワークシステム１００又は表示制御装置１０１に供給し、表示制御装置１０１のコンピュータが該記憶媒体に格納された制御プログラム２１１等を読み出すことで実行させる構成としてもよい。
【００２８】
３．表示制御装置１０１の機能構成
図３は、表示制御装置１０１の制御プログラム２１１が実行されることにより実現される各機能を示す機能ブロック図である。図３に示すように、制御プログラム２１１が実行されることにより表示制御装置１０１では、入力部３０１、表示部３０２、入力データ解析部３０３、配置位置算出部３０４、入力データ変更部３０５の各機能が実現される。
【００２９】
入力部３０１は、操作者がデジタイザペン等のポインティングデバイスを用いて表示装置１１１の表示画面上を指示することにより入力されたストローク入力の情報（具体的には位置情報）を表示装置Ｉ／Ｆ部２０５を介して受け付ける。また、操作者が入力装置を用いて入力したストロークデータ配置領域変更指示等の情報を入力装置Ｉ／Ｆ部２０４を介して受け付ける。
【００３０】
表示部３０２は、入力されたストローク入力の情報や、ストロークデータ配置領域変更指示に基づく編集処理の結果に基づいて画像を生成し、表示装置Ｉ／Ｆ部２０５を介して表示装置１１１に該画像を表示する。
【００３１】
入力データ解析部３０３は、入力部３０１において受け付けたストローク入力の情報に基づいて生成された手書き文字（オブジェクト）の画像を抽出し、文字画像情報を作成する。また、作成された一連の文字画像情報に含まれるそれぞれの文字を文字列として認識し、文字列構成情報を作成する。作成した文字画像情報および文字列構成情報は入力オブジェクトリスト２２１としてＲＡＭ２０３に登録される。
【００３２】
配置位置算出部３０４は、入力部３０１において受け付けたストロークデータ配置領域変更の指示において指定された変更後のストロークデータ配置領域内に、算出された外接矩形領域が含まれるように、該外接矩形領域の配置を決定する。また、決定された配置における該外接矩形領域の位置を算出する。なお、外接矩形領域の位置は、入力オブジェクトリスト２２１と位置規則テーブル２１３とを用いて算出する。
【００３３】
また、変更後のストロークデータ配置領域が小さく、変更前のストロークデータ配置領域内にあった手書き文字の画像を含む外接矩形領域をすべて配置することができないと判定された場合には、入力データ変更部３０５にオーバフローが生じたことを通知する。
【００３４】
入力データ変更部３０５は、配置位置算出部３０４からオーバフロー通知を受け取ると、変更規則テーブル２１２に基づいて入力オブジェクトリスト２２１の値を変更する。
【００３５】
４．表示画面の構成及び操作手順
次に、デジタイザペンによるストローク入力が可能であって、ストロークデータ配置領域を指定することにより、当該ストローク入力により得られた手書き文字を自動編集することが可能な表示画面の構成について図４を用いて説明する。また、合わせて、当該表示画面４００に対する操作者の編集操作の手順について簡単に説明する。
【００３６】
図４において、４０１は表示領域であり、ストローク入力により得られた手書き文字４０２や、操作モードを変更するための操作アイコン４０３が表示される領域である。操作アイコン４０３は、鉛筆アイコン４０４、矩形アイコン４０５、変形アイコン４０６から構成される。
【００３７】
鉛筆アイコン４０４が選択された場合、表示領域４０１は、操作者からのストローク入力の受け付けが可能な状態となる。また、矩形アイコン４０５が選択された場合、表示領域４０１は、任意のストロークデータ配置領域を指定する指示の受け付けが可能な状態となる（領域指定手段として機能する）。また、変形アイコン４０６が選択された場合、表示領域４０１は、指定されたストロークデータ配置領域に対する変更指示の受け付けが可能な状態となる。
【００３８】
以下、図４を用いて、ストローク入力により得られた手書き文字４０２を、変更指示により指定された変更後のストロークデータ配置領域内に配置させる場合の、表示画面４００に対する操作者の編集操作の手順について簡単に説明する。
【００３９】
はじめに、操作者は鉛筆アイコン４０４を選択する。これにより、表示領域４０１は、ストローク入力の受け付けが可能な状態となる（図３（ａ））。そこで、操作者は、デジタイザペン等のポインティングデバイスを用いて表示領域４０１上を指示することにより、ストローク入力を行う。図３（ａ）の例は、操作者がストローク入力することで、手書き文字“イタリアンレストラン”が所定の方向に配列されて行を構成している状態を示している。
【００４０】
ストローク入力が完了すると、次に、操作者は矩形アイコン４０５を選択する。これにより、表示領域４０１は、ストロークデータ配置領域を指定する指示の受け付けが可能な状態となる。ここで、操作者は、配置変更を行おうとする手書き文字（ここでは手書き文字４０２）を含むようにストロークデータ配置領域を作成する。この結果、手書き文字４０２を含むストロークデータ配置領域４０７が表示される（図４（ｂ））。
【００４１】
ストロークデータ配置領域４０７の指定が完了すると、操作者は変形アイコン４０６を選択する。これにより、表示領域４０１は指定したストロークデータ配置領域４０７を変形させることが可能な状態となり、変形方向を示す矢印４０８が表示される（図４（ｂ））。ここで、操作者は、変形方向を示す矢印４０８を操作することにより、ストロークデータ配置領域４０７を所望の形状に変形させることで変形後のストロークデータ配置領域４０７（図４（ｃ））を指定する。この結果、変形後のストロークデータ配置領域４０７(図４（ｃ））に連動して配置された手書き文字４０２を得ることができる（図４（ｃ）の４０２）。
【００４２】
５．表示制御装置１０１における編集処理の流れ
図５は、ストローク入力により得られた手書き文字４０２が表示された表示画面４００において、当該手書き文字４０２を自動編集する際の、表示制御装置１０１における編集処理の流れを示すフローチャートである。表示画面４００上の矩形アイコン４０５が選択されることにより図５の編集処理が開始される。
【００４３】
ステップＳ５０１では、操作者により指定されたストロークデータ配置領域４０７を取得する。
【００４４】
ステップＳ５０２では、ステップＳ５０１において取得されたストロークデータ配置領域４０７内に含まれる手書き文字４０２を解析し、文字画像情報作成処理および文字列構成処理を行う。文字画像情報作成処理により作成された文字画像情報、および文字列構成処理により作成された文字列構成情報は、入力オブジェクトリスト２２１に登録される（図１４参照）。なお、これらの処理の詳細は、図６を用いて後述する。
【００４５】
ステップＳ５０３では、取得したストロークデータ配置領域４０７内に、ステップＳ５０２において取得された手書き文字４０２の画像が含まれる外接矩形領域が全て収まるように、文字列構成情報を参照しながら、該外接矩形領域の配置を決定する。更に、外接矩形領域の位置を、図１５において詳述する位置規則テーブル２１３に基づいて算出する。ステップＳ５０３における配置の決定ならびに位置の算出（以下、配置位置算出処理と称す）の詳細は、図８を用いて後述する。
【００４６】
ステップＳ５０４では、ステップＳ５０３における外接矩形領域の配置位置算出処理の結果、オーバフローが生じたか否かを判定する。ステップＳ５０４においてオーバフローが発生していると判定された場合には、ステップＳ５０５に進む。一方、オーバフローが発生していないと判定された場合には、ステップＳ５０７に進む。
【００４７】
ステップＳ５０５では、図１３を用いて詳述する変更規則テーブル２１２に基づき、位置規則テーブル２１３もしくは入力オブジェクトリスト２２１の値が変更可能か否かを判定する。ステップＳ５０５において、変更可能であると判定された場合には、ステップＳ５０６へ進む。一方、変更不可能であると判定された場合にはオーバフローとして処理を終了する。
【００４８】
ステップＳ５０６では、位置規則テーブル２１３もしくは入力オブジェクトリスト２２１の値を変更した後、ステップＳ５０３に戻る。なお、変更処理の詳細は、図１２を用いて後述する。
【００４９】
ステップＳ５０７では、入力オブジェクトリスト２２１の文字画像情報および文字列構成情報を取得し、取得した文字列構成情報に基づいて文字画像情報により表わされる手書き文字４０２の画像を表示画面４００に表示する。
【００５０】
６．文字画像情報作成処理の流れ
図６は、文字画像情報作成処理及び文字列構成処理（図５のステップＳ５０２）の詳細な流れを示すフローチャートである。
【００５１】
ステップＳ６０１では、ストローク入力により得られた手書き文字を切り出し、文字の大きさ（幅、高さ）を示す外接矩形領域を算出する。外接矩形領域算出処理は、既存の文字切り出し技術を用いて行うものとする。なお、算出された外接矩形領域の幅、高さ、位置は文字列構成情報として入力オブジェクトリスト２２１に登録される。
【００５２】
図７は、手書き文字を切り出し、外接矩形領域を算出した算出結果の一例を示す図である。図７（ａ）の４０１は、表示画面の表示領域を示す。図７（ｂ）の７０２は、実際に切り出された手書き文字の外接矩形領域である。座標７０３は、外接矩形領域７０２を特定するための座標である。
【００５３】
ステップＳ６０２では、ステップＳ６０１で切り出された手書き文字の画像を、文字画像情報として入力オブジェクトリスト２２１に登録する。なお、当該文字画像情報は、ラスタグラフィックスとして登録されてもよいし、文字のアウトラインを算出したうえでベクタグラフィックスとして登録されてもよい。
【００５４】
ステップＳ６０３では、ステップＳ６０１で切り出された手書き文字の認識処理を行う。ステップＳ６０３における認識結果は、文字列構成情報として入力オブジェクトリスト２２１に登録される。図７（ｂ）における例では、外接矩形領域７０２、７０３内に表示されているオブジェクトはそれぞれ“レ”および“ス”と認識されることになる。
【００５５】
７．配置位置算出処理の流れ
図８は表示制御装置１０１における配置位置算出処理（図５のステップＳ５０３）の詳細な流れを示すフローチャートである。
【００５６】
ステップＳ８０１では、一時データ初期化処理を行う。初期化処理では、手書き文字の画像が含まれる外接矩形領域を配置する、変更後のストロークデータ配置領域４０７を取得する。なお、ストロークデータ配置領域４０７に関する情報は、図９に示す一時データテーブルに保存される。
【００５７】
一時データテーブルは、取得したストロークデータ配置領域の座標を登録する配置領域９０１と、該ストロークデータ配置領域に含まれる外接矩形領域の左上の座標を登録するカレント座標９０２とを備える。また、ストロークデータ配置領域内に含まれる外接矩形領域の行幅、行間隔、文字間隔を登録する項目を備える（行幅９０３、行間隔９０４、文字間隔９０５）。
【００５８】
なお、初期化処理においては、行幅９０３には０（ゼロ）が登録される。また、行間隔９０４、文字間隔９０５には、図１５において詳述する位置規則テーブル２１３から取得される値が登録される。
【００５９】
ステップＳ８０２では、図１４において後述する入力オブジェクトリスト２２１内に、処理されていない文字画像情報が存在するか否かを判定する。存在すると判定された場合には、ステップＳ８０３へ進む。一方、存在しないと判定された場合には、処理を終了する。
【００６０】
ステップＳ８０３では、処理されていない文字画像情報についての文字列構成情報を入力オブジェクトリスト２２１から取得する。
【００６１】
ステップＳ８０４では、文字画像情報により表わされる手書き文字の画像が含まれる外接矩形領域について、ストロークデータ配置領域内の配置処理を行う。
【００６２】
配置処理では、まず図９に示す一時データテーブルからカレント座標９０２を取得する。次に、当該カレント座標９０２をステップＳ８０２で取得した文字画像情報により表わされる手書き文字の画像が含まれる外接矩形領域の左上の座標として、該外接矩形領域を配置する。図９（ａ）および図１０を用いて外接矩形領域の配置例を説明する。図９（ａ）においてカレント座標９０２は（３００，４００）である。
【００６３】
ここで、図１０の手書き文字の画像“レ”が含まれた外接矩形領域を配置する場合を考える。手書き文字の画像“レ”が含まれる外接矩形領域の幅は“３０”、高さは“４０”であるので、当該外接矩形領域を配置した結果、当該座標は、左上が（３００，４００）、右下が（３３０，４４０）となる。
【００６４】
ステップＳ８０５では、ステップＳ８０３における処理の結果、外接矩形領域がステップＳ８０１で取得したストロークデータ配置領域内に収まっているか否かを判定する。ステップＳ８０４における判定の結果、ストロークデータ配置領域内に収まっていると判定された場合は、ステップＳ８０９へ進む。
【００６５】
ステップＳ８０９では、一時データテーブルのカレント座標９０２の更新処理を行う。新たなカレント座標は、ステップＳ８０３で算出した外接矩形領域の幅に一時データテーブルの文字間隔９０５の値を乗算した値を、カレント座標９０２に加えることにより算出される。
【００６６】
図９および図１０を用いてカレント座標９０２の更新処理の一例を説明する。ステップＳ８０４において図１０のように外接矩形領域の座標が算出されていた場合を考える。この場合、該外接矩形領域の幅は“３０”、文字間隔は“１．０”であるので、図９（ａ）のカレント座標９０２は図９（ｂ）のように更新される。
【００６７】
ステップＳ８１０では、一時データテーブルの行幅更新処理を行う。行幅更新処理では、一時データテーブルから行幅９０３を取得する。
【００６８】
次に、取得した行幅が、外接矩形領域の高さより大きいか否かを判定する。判定の結果、行幅が外接矩形領域の高さより小さいと判定された場合、一時データテーブルの行幅を当該外接矩形領域の高さの値に更新する。
【００６９】
一方、ステップＳ８０５において収まっていないと判定された場合には、ステップＳ８０６へ進み、改行位置を変更する改行処理を行う。まず、一時データテーブルから行幅９０３、行間隔９０４および配置領域９０１の左側を示すｘ１座標を取得する。次に、一時データテーブルのカレント座標９０２を更新する。カレント座標のｘ座標の更新値は、先に取得したストロークデータ配置領域４０７の配置領域９０１の左側を示すｘ１座標である。
【００７０】
また、カレント座標９０２のｙ座標の更新値は、更新前のカレント座標のｙ座標に、行幅９０３と行間隔９０４とを乗算した値を加えた値である。カレント座標更新後は、一時データテーブルの行幅の値を０（ゼロ）にする。
【００７１】
図９を用いて改行処理の具体例を説明する。図９（ａ）の場合を考える。カレント座標９０２が（ｘ，ｙ）＝（３００，４００）であり、行幅９０３が“４０”、行間隔９０４が“１．０”なので、新しいカレント座標のｙ座標は、旧ｙ座標＋行幅×行間隔、すなわち４００＋４０×１．０＝４４０となる。カレント座標のｘ座標はストロークデータ配置領域のｘ１座標と同じなので、新しいカレント座標は、（ｘ、ｙ）＝（３００、４４０）となる（図９（ｃ））。
【００７２】
ステップＳ８０７では、ステップＳ８０４における処理と同様に、外接矩形領域の配置処理を行う。
【００７３】
ステップＳ８０９では、ステップＳ８０８の処理の結果、外接矩形領域がステップＳ８０１で取得したストロークデータ配置領域内に収まっているか否かを判定する。判定の結果、ストロークデータ配置領域内に収まっていると判定された場合には、ステップＳ８０５へ進む。一方、ストロークデータ配置領域内に収まっていないと判定された場合には、処理結果としてオーバフローである旨を出力して、処理を終了する。
【００７４】
図１１は図８の配置位置算出処理によって配置が決定され位置が算出されていく様子を示す図である。上述したように配置位置算出処理では、外接矩形領域の上側が揃うように、該外接矩形領域をストロークデータ配置領域内に横方向に配置していく。そして、横方向に配置できなくなると改行して同様の処理を行う。改行の幅は、行内に配置された外接矩形領域のうち、最大高さの外接矩形領域に合わせる。改行しても配置できない場合は、オーバフローとして処理を終了する。
【００７５】
図１１（ａ）は、初期化処理ステップＳ８０１が終了した状態、すなわち外接矩形領域を配置していない状態を示す。１１０１は表示領域４０１上に指定されたストロークデータ配置領域である。図１１（ｂ）は、ステップＳ８０２からＳ８０５を３回繰り返し３文字分（“イ”、“タ”、“リ”）の位置を算出した状態を示している。
【００７６】
図１１（ｃ−１）は、手書き文字の画像“レ”を含む外接矩形領域を配置するとストロークデータ配置領域１１０１からはみ出してしまうことを示している。図１１（ｃ−２）は、図１１（ｃ−１）の状態を避けるように改行を行うことで、手書き文字の画像“レ”を含む外接矩形領域を配置した状態を示している。
【００７７】
図１１（ｄ）は、すべての文字（“イ”、“タ”、“リ”、“ア”、“ン”、“レ”、“ス”、“ト”、“ラ”、“ン”）の配置位置算出処理が終わった状態を示している。
【００７８】
８．変更処理の流れ
図１２は表示制御装置１０１における変更処理（図５のステップＳ５０６）の詳細な処理の流れを示す図である。
【００７９】
ステップＳ１２０１では、図１３に示す変更規則テーブル２１２に変更可能な項目がリストアップされているか否かを判定する。ステップＳ１２０１において、変更可能な項目がリストアップされていないと判定された場合には、処理を終了する。一方、変更可能な項目がリストアップされていると判定された場合には、ステップＳ１２０２へ進む。
【００８０】
ステップＳ１２０２では、図１３に示す変更規則テーブル２１２の優先度１３０１からデータを変更する項目を決定する。図１３（ａ）では、優先度“１”となっている変更項目は“文字画像”であるため、手書き文字の画像を変更することに決定する（ここでは、優先度の値が小さいものを高優先度としている）。
【００８１】
ステップＳ１２０３では、ステップＳ１２０２で決定した項目の値を変更する。変更処理は、図１３に示す変更規則テーブル２１２の変更割合１３０３に基づいて行う。変更項目が“文字画像”の場合は、入力オブジェクトリスト２２１の値を更新する。
【００８２】
一方、変更項目が“行間隔”もしくは“文字間隔”の場合は、位置規則テーブル２１３の値を更新する。一例として、図１３（ａ）の場合を考える。変更項目は“文字画像”であり変更割合が２％であるので、入力オブジェクトリスト２２１の文字幅１４０２、文字高さ１４０３の値を２％ずつ減少させる。
【００８３】
次に、減少した文字幅、文字高さに合わせて手書き文字の画像を縮小させる。手書き文字の画像の縮小は、既存の画像縮小技術を用いて行う。このように変更項目が“文字画像”の場合は、手書き文字の画像を縮小させる。また、変更項目が“行間隔”もしくは“文字間隔”の場合は、手書き文字の画像の間隔が狭められる。
【００８４】
ステップＳ１２０４では、図１３に示す変更規則テーブル２１２の現在値１３０４の値を変更割合１３０３の分だけ減少させる。減少させた結果が最小値１３０５と等しくなった場合、変更規則テーブル２１２から最小値まで達した項目を削除する。
【００８５】
図１３（ａ）の例では、現在値１３０４が“１００％”、変更割合１３０３が“２％”であるので、新しい現在値の値は“９８％”となる（図１３（ｂ））。
【００８６】
９．変更規則テーブルの構成
図１３は表示制御装置１０１における変更規則テーブル２１２の一例を示す図である。変更規則テーブル２１２は、優先度１３０１、変更内容を表わす変更項目１３０２、変更量を示す変更割合１３０３、現在値１３０４、最小値１３０５から構成される。
【００８７】
優先度１３０１は、変更項目の優先度を示す。値が小さいほど優先度が高いことを示している。変更項目１３０２は、値を変更する項目を示す。
【００８８】
変更割合１３０３は、変更する割合を示す。例えば、変更割合が“２％”の場合、変更項目の値は２％減少させられる。
【００８９】
現在値１３０４は、初期値からのどの程度値が減少しているかを示す。例えば、現在値が“７５％”の場合、初期値の状態から７５％まで減少していることを示す。
【００９０】
最小値１３０５は、減少可能な最小値を示す。例えば、最小値が“５０％”の場合、値を減少させることが許されるのは初期値の半分までとなる。
【００９１】
１０．入力オブジェクトリストの構成
図１４は表示制御装置１０１において用いられる入力オブジェクトリスト２２１の一例である。入力オブジェクトリスト２２１は、文字列構成情報である入力文字１４０１、文字幅１４０２、文字高さ１４０３、文字位置１４０４と、文字画像情報１４０５とから構成される。
【００９２】
入力文字１４０１は、手書き文字を文字認識した結果を示す。文字幅１４０２は、手書き文字の画像が含まれる外接矩形領域の幅を示す。文字高さ１４０３は、手書き文字の画像が含まれる外接矩形領域の高さを示す。
【００９３】
文字位置１４０４は、手書き文字の外接矩形領域を特定するための座標を示す。外接矩形領域の左上の座標と右下の座標から構成される。例えば、手書き文字の画像“イ”は、（ｘ１，ｙ１）＝（１２０，２００）、（ｘ２，ｙ２）＝（１５０，２３０）で示される外接矩形領域となる。
【００９４】
文字画像情報１４０５は、手書き文字の画像である。手書き文字の画像は、ラスタグラフィックデータとして保持してもよいし、文字のアウトラインを算出してベクタグラフィックとして保持してもよい。また、圧縮などの処理が行われていてもよい。
【００９５】
文字列の情報は、行の順番で表される。図１４における例では、“イタリアンレストラン・・・”という文字列が表現されている。ここでは、文字認識をした結果を文字列として表現しているが、手書き文字の画像の順番が表現されていれば他の表現形式を用いても問題ない。
【００９６】
換言すると、文字認識を行わなくても手書き文字の画像の順番を保持できるようになっていれば、本実施形態における処理を実現することができる。したがって、文字認識が正しく行われない場合も手書き文字の画像をストロークデータ配置領域の形状に連動させて配置を変更させることは可能である。例えば、○や△などの記号を手書き入力した場合も○や△を示す文字画像情報と該文字画像情報の順番さえ保持していれば、本実施形態は実現可能である。
【００９７】
１１．位置規則テーブルの構成
図１５は本実施形態における位置規則テーブル２１３の一例である。位置規則テーブルは、行間隔１５０１、文字間隔１５０２から構成される。
【００９８】
行間隔１５０１は、改行時の間隔を示す。“１．０”が隣り合う行が重ならない状態を示し、値が減少する毎に行の間隔が狭められる。
【００９９】
文字間隔１５０２は、文字と文字の間隔を示す。“１．０”が隣り合う文字が重ならない状態を示し、値が減少する毎に文字と文字の間隔が狭められる。
【０１００】
ここでは、行間隔と文字間隔としたが、手書き文字の画像から文字認識を行った結果に対して、行頭禁則文字や行末禁則文字などの規則を用いてもよい。
【０１０１】
以上の説明から明らかなように、本実施形態では、操作者にストロークデータ配置領域が指定された場合、該領域内に表示された手書き文字の画像を抽出するとともに、該手書き文字の画像に外接する外接矩形領域を算出する構成とした。
【０１０２】
この結果、ストロークデータ配置領域の変更により、外接矩形領域がストロークデータ配置領域に含まれなくなった場合に、該ストロークデータ配置領域内に含まれるように、外接矩形領域の配置を変更させるよう構成することが可能となった。
【０１０３】
また、配置の変更だけではオーバーフローしてしまう場合にあっては、手書き文字の画像の大きさや外接矩形領域間の間隔を変更することで、対応する構成することが可能となった。
【０１０４】
つまり、手書き入力された文字や図形等においても、ストロークデータ配置領域に連動させて自動編集させることが可能となった。
【０１０５】
［他の実施形態］
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェース機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【０１０６】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給するよう構成することによっても達成されることはいうまでもない。この場合、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行することにより、上記機能が実現されることとなる。なお、この場合、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【０１０７】
プログラムコードを供給するための記録媒体としては、例えば、フロッピ（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【０１０８】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現される場合に限られない。例えば、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１０９】
さらに、記録媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、前述した実施形態の機能が実現される場合も含まれる。つまり、プログラムコードがメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって実現される場合も含まれる。
【図面の簡単な説明】
【０１１０】
【図１】本発明の第１の実施形態に係る表示制御装置を備えるネットワークシステムを示す図である
【図２】表示制御装置１０１のハードウェア構成を示す図である。
【図３】表示制御装置１０１の制御プログラム２１１が実行されることにより実現される機能を示す機能ブロック図である。
【図４】表示画面の一例を示す図である。
【図５】表示制御装置１０１における編集処理の流れを示す図である。
【図６】文字画像情報作成処理及び文字列構成処理（図５のステップＳ５０２）の詳細な流れを示すフローチャートである。
【図７】手書き文字を切り出し、外接矩形領域を算出した算出結果の一例を示す図である。
【図８】配置位置算出処理（図５のステップＳ５０３）の詳細な流れを示すフローチャートである。
【図９】ストロークデータ配置領域に関する情報が保存される一時データテーブルの一例を示す図である。
【図１０】取得した外接矩形領域の一例を示す図である。
【図１１】配置位置算出処理の流れを示す図である。
【図１２】変更処理（図５のステップＳ５０６）の詳細な処理の流れを示すフローチャートである。
【図１３】変更規則テーブルの一例を示す図である。
【図１４】入力オブジェクトリストの一例を示す図である。
【図１５】位置規則テーブルの一例を示す図である。
【符号の説明】
【０１１１】
１０１  表示制御装置
１２０  ネットワーク
２０１  ＣＰＵ
２０２  ＲＯＭ
２０３  ＲＡＭ
２０４  入力装置Ｉ／Ｆ部
２０５  表示装置Ｉ／Ｆ部
２０６  外部記憶装置
２０７  ネットワークＩ／Ｆ部
４０１  入力部
４０２  表示部
４０３  入力データ解析部
４０４  配置位置算出部
４０５  入力データ更新部
【図１】
0005123588.tif 000002
【図２】
0005123588.tif 000003
【図３】
0005123588.tif 000004
【図４】
0005123588.tif 000005
【図５】
0005123588.tif 000006
【図６】
0005123588.tif 000007
【図７】
0005123588.tif 000008
【図８】
0005123588.tif 000009
【図９】
0005123588.tif 000010
【図１０】
0005123588.tif 000011
【図１１】
0005123588.tif 000012
【図１２】
0005123588.tif 000013
【図１３】
0005123588.tif 000014
【図１４】
0005123588.tif 000015
【図１５】
0005123588.tif 000016