(57)【要約】【課題】スムーズな手書き入力操作を実現すること。【解決手段】実施形態によれば、電子機器は、複数の罫線が第１間隔で表示されている領域上に、手書きで入力される複数のストロークを入力するための入力手段と、複数のストロークに対応する１以上の文字が第１間隔のｎ倍に対応する場合には、第１間隔のｎ倍の大きさに応じて、複数のストロークの形状を調整するための第１処理を実行し、複数のストロークに対応する１以上の文字が第１間隔のｍ（ただしｍ≠ｎ）倍に対応する場合には、第１間隔のｍ倍の大きさに応じて、複数のストロークの形状を調整するための第２処理を実行する処理手段と、第１処理によって調整された複数のストローク又は、第２処理によって調整された複数のストロークの一方を画面上に表示する表示制御手段と、を具備する。【選択図】図６
2015162088.tif 000002
【特許請求の範囲】
【請求項１】
複数の罫線が第１間隔で表示されている領域上に、手書きで入力される複数のストロークを入力するための入力手段と、
前記複数のストロークに対応する１以上の文字が前記第１間隔のｎ倍に対応する場合には、前記第１間隔のｎ倍の大きさに応じて、前記複数のストロークの形状を調整するための第１処理を実行し、
前記複数のストロークに対応する１以上の文字が前記第１間隔のｍ（ただしｍ≠ｎ）倍に対応する場合には、前記第１間隔のｍ倍の大きさに応じて、前記複数のストロークの形状を調整するための第２処理を実行する処理手段と、
前記第１処理によって調整された複数のストローク又は、前記第２処理によって調整された複数のストロークの一方を画面上に表示する表示制御手段と、
を具備する電子機器。
【請求項２】
前記第１処理は、ｎ＋１本の罫線に挟まれる領域に収まるように、前記複数のストロークの形状を調整するものであって、
前記第２処理は、ｍ＋１本の罫線に挟まれる領域に収まるように、前記複数のストロークの形状を調整するものである請求項１に記載の電子機器。
【請求項３】
前記処理手段は、
前記第１処理又は前記第２処理を実行した後に、ユーザの操作に応じて、前記複数のストロークの形状をさらに調整するための第３処理を実行する請求項１に記載の電子機器。
【請求項４】
前記表示制御手段は、１以上の入力ストロークに応じた１以上の入力候補であるストローク群を前記画面上に表示し、
前記処理手段は、
１以上の入力候補であるストローク群の１つが選択された場合であって、前記１以上の入力ストロークが対応する１以上の文字が前記第１間隔のｎ倍に対応する場合には、前記第１間隔のｎ倍の大きさに応じて、選択された入力候補であるストローク群の形状を調整するための第４処理を実行する請求項１に記載の電子機器。
【請求項５】
前記処理手段は、
前記第４処理を実行した後に、前記調整されたストローク群が前記１以上の入力ストローク近辺の領域に収まらない場合には、前記調整されたストローク群の位置を調整する請求項４に記載の電子機器。
【請求項６】
複数の罫線が第１間隔で表示されている領域上に、手書きで入力される複数のストロークを入力することと、
前記複数のストロークに対応する１以上の文字が前記第１間隔のｎ倍に対応する場合には、前記第１間隔のｎ倍の大きさに応じて、前記複数のストロークの形状を調整するための第１処理を実行し、
前記複数のストロークに対応する１以上の文字が前記第１間隔のｍ（ただしｍ≠ｎ）倍に対応する場合には、前記第１間隔のｍ倍の大きさに応じて、前記複数のストロークの形状を調整するための第２処理を実行することと、
前記第１処理によって調整された複数のストローク又は、前記第２処理によって調整された複数のストロークの一方を画面上に表示することと、
を具備する方法。
【請求項７】
前記第１処理は、ｎ＋１本の罫線に挟まれる領域に収まるように、前記複数のストロークの形状を調整するものであって、
前記第２処理は、ｍ＋１本の罫線に挟まれる領域に収まるように、前記複数のストロークの形状を調整するものである請求項６に記載の方法。
【請求項８】
前記第１処理又は前記第２処理を実行することは、
前記第１処理又は前記第２処理を実行した後に、ユーザの操作に応じて、前記複数のストロークの形状をさらに調整するための第３処理を実行する請求項６に記載の方法。
【請求項９】
前記表示することは、１以上の入力ストロークに応じた１以上の入力候補であるストローク群を前記画面上に表示し、
前記第１処理又は前記第２処理を実行することは、
１以上の入力候補であるストローク群の１つが選択された場合であって、前記１以上の入力ストロークが対応する１以上の文字が前記第１間隔のｎ倍に対応する場合には、前記第１間隔のｎ倍の大きさに応じて、選択された入力候補であるストローク群の形状を調整するための第４処理を実行する請求項６に記載の方法。
【請求項１０】
前記第１処理又は前記第２処理を実行することは、
前記第４処理を実行した後に、前記調整されたストローク群が前記１以上の入力ストローク近辺の領域に収まらない場合には、前記調整されたストローク群の位置を調整する請求項９に記載の方法。
【請求項１１】
コンピュータにより実行されるプログラムであって、前記プログラムは前記コンピュータを、
複数の罫線が第１間隔で表示されている領域上に、手書きで入力される複数のストロークを入力するための入力手段と、
前記複数のストロークに対応する１以上の文字が前記第１間隔のｎ倍に対応する場合には、前記第１間隔のｎ倍の大きさに応じて、前記複数のストロークの形状を調整するための第１処理を実行し、
前記複数のストロークに対応する１以上の文字が前記第１間隔のｍ（ただしｍ≠ｎ）倍に対応する場合には、前記第１間隔のｍ倍の大きさに応じて、前記複数のストロークの形状を調整するための第２処理を実行する処理手段と、
前記第１処理によって調整された複数のストローク又は、前記第２処理によって調整された複数のストロークの一方を画面上に表示する表示制御手段として動作させるプログラム。
【請求項１２】
前記第１処理は、ｎ＋１本の罫線に挟まれる領域に収まるように、前記複数のストロークの形状を調整するものであって、
前記第２処理は、ｍ＋１本の罫線に挟まれる領域に収まるように、前記複数のストロークの形状を調整するものである請求項１１に記載のプログラム。
【請求項１３】
前記処理手段は、
前記第１処理又は前記第２処理を実行した後に、ユーザの操作に応じて、前記複数のストロークの形状をさらに調整するための第３処理を実行する請求項１１に記載のプログラム。
【請求項１４】
前記表示制御手段は、１以上の入力ストロークに応じた１以上の入力候補であるストローク群を前記画面上に表示し、
前記処理手段は、
１以上の入力候補であるストローク群の１つが選択された場合であって、前記１以上の入力ストロークが対応する１以上の文字が前記第１間隔のｎ倍に対応する場合には、前記第１間隔のｎ倍の大きさに応じて、選択された入力候補であるストローク群の形状を調整するための第４処理を実行する請求項１１に記載のプログラム。
【請求項１５】
前記処理手段は、
前記第４処理を実行した後に、前記調整されたストローク群が前記１以上の入力ストローク近辺の領域に収まらない場合には、前記調整されたストローク群の位置を調整する請求項１４に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、電子機器、方法及びプログラムに関する。
【背景技術】
【０００２】
近年、タブレット、ＰＤＡ、スマートフォンといった種々の電子機器が開発されている。この種の電子機器の多くは、ユーザによる入力操作を容易にするために、タッチスクリーンディスプレイを備えている。
【０００３】
また最近では、手書き文字列を扱うことが可能な電子機器も開発されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平７−３１１８１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、スムーズな手書き入力操作を実現するための技術については考慮されていないという現状がある。
【０００６】
本発明の一形態の目的は、スムーズな手書き入力操作を実現することができる電子機器、方法及びプログラムを提供することである。
【課題を解決するための手段】
【０００７】
実施形態によれば、電子機器は、複数の罫線が第１間隔で表示されている領域上に、手書きで入力される複数のストロークを入力するための入力手段と、前記複数のストロークに対応する１以上の文字が前記第１間隔のｎ倍に対応する場合には、前記第１間隔のｎ倍の大きさに応じて、前記複数のストロークの形状を調整するための第１処理を実行し、前記複数のストロークに対応する１以上の文字が前記第１間隔のｍ（ただしｍ≠ｎ）倍に対応する場合には、前記第１間隔のｍ倍の大きさに応じて、前記複数のストロークの形状を調整するための第２処理を実行する処理手段と、前記第１処理によって調整された複数のストローク又は、前記第２処理によって調整された複数のストロークの一方を画面上に表示する表示制御手段と、を具備する。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施形態に係る電子機器の外観の一例を示す斜視図である。
【図２】図２は、同実施形態の電子機器と外部装置との連携動作を示す図である。
【図３】図３は、同実施形態の電子機器のディスプレイ上に手書きされる手書きページの例を示す図である。
【図４】図４は、図３の手書きページに対応する時系列情報を説明するための図である。
【図５】図５は、同実施形態の電子機器のシステム構成を示すブロック図である。
【図６】図６は、同実施形態の電子機器内の手書きノートアプリケーションプログラムの機能構成の例を示すブロック図である。
【図７】図７は、手書きノートアプリケーションプログラムによる代表的な手書きページ整形処理を説明するための図である。
【図８】図８は、手書きノートアプリケーションプログラムによる代表的な手書きページ整形処理を説明するための図である。
【図９】図９は、手書きノートアプリケーションプログラムによりディスプレイ上に表示される拡縮アイコンを説明するための図である。
【図１０】図１０は、手書きノートアプリケーションプログラムによる候補提示処理と連動して実行される手書きページ整形処理を説明するための図である。
【図１１】図１１は、手書きノートアプリケーションプログラムによる候補提示処理と連動して実行される手書きページ整形処理を説明するための図である。
【図１２】図１２は、手書きノートアプリケーションプログラムによる候補提示処理と連動して実行される別の手書きページ整形処理を説明するための図である。
【図１３】図１３は、手書きノートアプリケーションプログラムによる候補提示処理と連動して実行される別の手書きページ整形処理を説明するための図である。
【図１４】図１４は、手書きノートアプリケーションプログラムによるもう１つの手書きページ整形処理を説明するための図である。
【図１５】図１５は、手書きノートアプリケーションプログラムによるもう１つの手書きページ整形処理を説明するための図である。
【図１６】図１６は、手書きノートアプリケーションプログラムによる手書きページ整形処理の変形例を説明するための図である。
【図１７】図１７は、手書きノートアプリケーションプログラムによる手書きページ整形処理の変形例を説明するための図である。
【図１８】図１８は、手書きノートアプリケーションプログラムによる代表的な手書きページ整形処理の手順の一例を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、実施の形態について図面を参照して説明する。
【００１０】
図１は、一実施形態に係る電子機器の外観を示す斜視図である。この電子機器は、例えば、ペンまたは指によって手書き入力可能なペン・ベースの携帯型電子機器である。この電子機器は、タブレットコンピュータ、ノートブック型パーソナルコンピュータ、スマートフォン、ＰＤＡ等として実現され得る。以下では、この電子機器がタブレットコンピュータ１０として実現されている場合を想定する。タブレットコンピュータ１０は、タブレットまたはスレート（Slate）コンピュータとも称される携帯型電子機器であり、図１に示すように、本体１１とタッチスクリーンディスプレイ１７とを備える。タッチスクリーンディスプレイ１７は、本体１１の上面に重ね合わせるように取り付けられている。
【００１１】
本体１１は、薄い箱形の筐体を有している。タッチスクリーンディスプレイ１７には、フラットパネルディスプレイと、フラットパネルディスプレイの画面上のペンまたは指の接触位置を検出するように構成されたセンサとが組み込まれている。フラットパネルディスプレイは、例えば、液晶表示装置（ＬＣＤ）であってもよい。センサとしては、例えば、静電容量方式のタッチパネル、電磁誘導方式のデジタイザ等を使用することができる。以下では、デジタイザとタッチパネルの２種類のセンサの双方がタッチスクリーンディスプレイ１７に組み込まれている場合を想定する。
【００１２】
このタッチスクリーンディスプレイ１７は、指を使用した画面に対するタッチ操作のみならず、ペン１００を使用した画面に対するタッチ操作も検出することができる。ペン１００は例えばデジタイザペン（電磁誘導ペン）であってもよい。ユーザは、ペン１００を使用してタッチスクリーンディスプレイ１７上で手書き入力操作を行うことができる。手書き入力操作中においては、画面上のペン１００の動きの軌跡、つまり手書き入力操作によって手書きされるストローク（手書きストロークの軌跡）がリアルタイムに描画され、これによって手書きにより入力された複数のストロークが画面上に表示される。ペン１００が画面に接触されている間のペン１００の動きの軌跡が１つのストロークに相当する。手書きされた文字、手書きされた図形、手書きされた表、などに対応する多数のストロークの集合が手書きページを構成する。
【００１３】
本実施形態では、この手書きページは、イメージデータではなく、各ストロークの軌跡の座標列とストローク間の順序関係を示す時系列情報（手書きページデータ）として記憶媒体に保存される。この時系列情報の詳細は図４を参照して後述するが、この時系列情報は、複数のストロークが手書きされた順を示し、かつ複数のストロークにそれぞれ対応する複数のストロークデータを含む。換言すれば、この時系列情報は、複数のストロークにそれぞれ対応する時系列のストロークデータの集合を意味する。各ストロークデータは、ある一つのストロークに対応し、このストロークの軌跡上の点それぞれに対応する座標データ系列（時系列座標）を含む。これらストロークデータの並びの順序は、ストロークそれぞれが手書きされた順序に相当する。
【００１４】
タブレットコンピュータ１０は、記憶媒体から既存の任意の時系列情報を読み出し、この時系列情報に対応する手書きページ、つまりこの時系列情報によって示される複数のストロークを画面上に表示することができる。時系列情報によって示される複数のストロークも、手書きによって入力される複数のストロークである。
【００１５】
さらに、本実施形態のタブレットコンピュータ１０は、ペン１００を使用せずに、指で手書き入力操作を行うためのタッチ入力モードも有している。タッチ入力モードが有効な場合、ユーザは、指を使用してタッチスクリーンディスプレイ１７上で手書き入力操作を行うことができる。手書き入力操作中においては、画面上の指の動きの軌跡、つまり手書き入力操作によって手書きされるストローク（手書きストロークの軌跡）がリアルタイムに描画され、これによって手書きにより入力された複数のストロークが画面上に表示される。
【００１６】
さらに、タブレットコンピュータ１０は編集機能を有している。この編集機能は、「消しゴム」ツール、範囲選択ツール、および他の各種ツール等を用いたユーザによる編集操作に応じて、範囲選択ツールによって選択される表示中の手書きページ内の任意の手書き部分（手書き文字、手書きマーク、手書き図形、手書き表、等）を削除または移動することができる。またさらに、範囲選択ツールによって選択される手書きページ内の任意の手書き部分を、手書きページを検索するための検索キーとして指定することもできる。またさらに、範囲選択ツールによって選択される手書きページ内の任意の手書き部分に対して、手書き文字認識／手書き図形認識／手書き表認識のような認識処理を実行することもできる。
【００１７】
本実施形態では、手書きページは、１つまたは複数のページとして管理されうる。この場合、時系列情報（手書きページデータ）を１つの画面に収まる面積単位で区切ることによって、１つの画面に収まる時系列情報のまとまりを１つのページとして記録してもよい。あるいは、ページのサイズを可変できるようにしてもよい。この場合、ページのサイズは１つの画面のサイズよりも大きい面積に広げることができるので、画面のサイズよりも大きな面積の手書きページを一つのページとして扱うことができる。１つのページ全体をディスプレイに同時に表示できない場合は、そのページを縮小してするようにしてもよいし、縦横スクロールによってページ内の表示対象部分を移動するようにしてもよい。
【００１８】
図２は、タブレットコンピュータ１０と外部装置との連携動作の例を示している。タブレットコンピュータ１０は、パーソナルコンピュータ１やクラウドと連携することができる。すなわち、タブレットコンピュータ１０は、無線ＬＡＮなどの無線通信デバイスを備えており、パーソナルコンピュータ１との無線通信を実行することができる。さらに、タブレットコンピュータ１０は、インターネット上のサーバ２との通信を実行することもできる。サーバ２はオンラインストレージサービス、他の各種クラウドコンピューティングサービスを実行するサーバであってもよい。
【００１９】
パーソナルコンピュータ１はハードディスクドライブ（ＨＤＤ）のようなストレージデバイスを備えている。タブレットコンピュータ１０は、時系列情報（手書きページデータ）をネットワーク越しにパーソナルコンピュータ１に送信して、パーソナルコンピュータ１のＨＤＤに記録することができる（アップロード）。タブレットコンピュータ１０とパーソナルコンピュータ１との間のセキュアな通信を確保するために、通信開始時には、パーソナルコンピュータ１がタブレットコンピュータ１０を認証するようにしてもよい。この場合、タブレットコンピュータ１０の画面上にユーザに対してＩＤまたはパスワードの入力を促すダイアログを表示してもよいし、タブレットコンピュータ１０のＩＤ等を自動的にタブレットコンピュータ１０からパーソナルコンピュータ１に送信してもよい。
【００２０】
これにより、タブレットコンピュータ１０内のストレージの容量が少ない場合でも、タブレットコンピュータ１０が多数の時系列情報あるいは大容量の時系列情報を扱うことが可能となる。
【００２１】
さらに、タブレットコンピュータ１０は、パーソナルコンピュータ１のＨＤＤに記録されている任意の１以上の時系列情報を読み出し（ダウンロード）、その読み出した時系列情報によって示されるストロークをタブレットコンピュータ１０のディスプレイ１７の画面に表示することができる。この場合、複数の時系列情報それぞれのページを縮小することによって得られるサムネイルの一覧をディスプレイ１７の画面上に表示してもよいし、これらサムネイルから選ばれた１ページをディスプレイ１７の画面上に通常サイズで表示してもよい。
【００２２】
さらに、タブレットコンピュータ１０が通信する先はパーソナルコンピュータ１ではなく、上記したように、ストレージサービスなどを提供するクラウド上のサーバ２であってよい。タブレットコンピュータ１０は、時系列情報（手書きページデータ）をネットワーク越しにサーバ２に送信して、サーバ２のストレージデバイス２Ａに記録することができる（アップロード）。さらに、タブレットコンピュータ１０は、サーバ２のストレージデバイス２Ａに記録されている任意の時系列情報を読み出して（ダウンロード）、その時系列情報によって示されるストロークそれぞれの軌跡をタブレットコンピュータ１０のディスプレイ１７の画面に表示することができる。
【００２３】
このように、本実施形態では、時系列情報が保存される記憶媒体は、タブレットコンピュータ１０内のストレージデバイス、パーソナルコンピュータ１内のストレージデバイス、サーバ２のストレージデバイス２Ａのいずれであってもよい。
【００２４】
次に、図３及び図４を参照して、ユーザによって手書きされたストローク（文字、図形、表など）と時系列情報との関係について説明する。図３は、ペン１００等を使用してタッチスクリーンディスプレイ１７上に手書きされる手書きページ（手書き文字列）の例を示している。
【００２５】
手書きページでは、一旦手書きによって入力される文字や図形などの上に、さらに別の文字や図形などが手書きによって入力されるというケースが多い。図３においては、「ＡＢＣ」の手書き文字列が「Ａ」、「Ｂ」、「Ｃ」の順番で手書きによって入力され、この後に、手書きの矢印が、手書き文字「Ａ」のすぐ近くに手書きによって入力された場合が想定されている。
【００２６】
手書き文字「Ａ」は、ペン１００等を使用して手書きされる２つのストローク（「∧」形状の軌跡、「−」形状の軌跡）によって、つまり２つの軌跡によって表現される。最初に手書きされる「∧」形状のペン１００の軌跡は例えば等時間間隔でリアルタイムにサンプリングされ、これによって「∧」形状のストロークの時系列座標ＳＤ１１、ＳＤ１２、…ＳＤ１ｎが得られる。同様に、次に手書きされる「−」形状のペン１００の軌跡も等時間間隔でリアルタイムにサンプリングされ、これによって「−」形状のストロークの時系列座標ＳＤ２１、ＳＤ２２、…ＳＤ２ｎが得られる。
【００２７】
手書き文字「Ｂ」は、ペン１００等を使用して手書きされた２つのストローク、つまり２つの軌跡によって表現される。手書き文字「Ｃ」は、ペン１００等を使用して手書きされた手書きされた１つのストローク、つまり１つの軌跡によって表現される。手書きの「矢印」は、ペン１００等を使用して手書きされた２つのストローク、つまり２つの軌跡によって表現される。
【００２８】
図４は、図３に示した手書き文書に対応する時系列情報２００を示している。時系列情報は、複数のストロークデータＳＤ１、ＳＤ２、…、ＳＤ７を含む。時系列情報２００内においては、これらストロークデータＳＤ１、ＳＤ２、…、ＳＤ７は、これらストロークが手書きされた順に時系列に並べている。
【００２９】
時系列情報２００において、先頭の２つのストロークデータＳＤ１、ＳＤ２は、手書き文字「Ａ」の２つのストロークをそれぞれ示している。３番目と４番目のストロークデータＳＤ３、ＳＤ４は、手書き文字「Ｂ」を構成する２つのストロークをそれぞれ示している。５番目のストロークデータＳＤ５は、手書き文字「Ｃ」を構成する１つのストロークを示している。６番目と７番目のストロークデータＳＤ６、ＳＤ７は、手書き「矢印」を構成する２つのストロークをそれぞれ示している。
【００３０】
各ストロークデータは、一つのストロークに対応する座標データ系列（時系列座標）、つまり一つのストロークの軌跡上の複数の点それぞれに対応する複数の座標を含む。各ストロークデータにおいては、複数の座標はストロークが書かれた順に時系列に並べられている。例えば、手書き文字「Ａ」に関しては、ストロークデータＳＤ１は、手書き文字「Ａ」の「∧」形状のストロークの軌跡上の点それぞれに対応する座標データ系列（時系列座標）、つまりｎ個の座標データＳＤ１１、ＳＤ１２、…ＳＤ１ｎを含む。ストロークデータＳＤ２は、手書き文字「Ａ」の「−」形状のストロークの軌跡上の点それぞれに対応する座標データ系列、つまりｎ個の座標データＳＤ２１、ＳＤ２２、…ＳＤ２ｎを含む。なお、座標データの数はストロークデータ毎に異なっていてもよい。
【００３１】
各座標データは、対応する軌跡内のある１点に対応するＸ座標及びＹ座標を示す。例えば、座標データＳＤ１１は、「∧」形状のストロークの始点のＸ座標（Ｘ１１）及びＹ座標（Ｙ１１）を示す。ＳＤ１ｎは、「∧」形状のストロークの終点のＸ座標（Ｘ１ｎ）及びＹ座標（Ｙ１ｎ）を示す。
【００３２】
さらに、各座標データは、その座標に対応する点が手書きされた時点に対応するタイムスタンプ情報Ｔを含んでいてもよい。手書きされた時点は、絶対時間（例えば、年月日時分秒）またはある時点を基準とした相対時間のいずれであってもよい。例えば、各ストロークデータに、ストロークが書き始められた絶対時間（例えば、年月日時分秒）をタイムスタンプ情報として付加し、さらに、ストロークデータ内の各座標データに、絶対時間との差分を示す相対時間をタイムスタンプ情報Ｔとして付加してもよい。
【００３３】
このように、各座標データにタイムスタンプ情報Ｔが追加された時系列情報を使用することにより、ストローク間の時間的関係をより精度よく表すことができる。
【００３４】
さらに、各座標データには、筆圧を示す情報（Ｚ）を追加してもよい。
【００３５】
図４で説明したような構造を有する時系列情報２００は、個々のストロークの筆跡だけでなく、ストローク間の時間的関係も表すことができる。したがって、この時系列情報２００を使用することにより、図３に示すようにたとえ手書き「矢印」の先端部が手書き文字「Ａ」上に重ねてまたは手書き文字「Ａ」に近接して書かれたとしても、手書き文字「Ａ」と手書き「矢印」の先端部とを異なる文字または図形として扱うことが可能となる。
【００３６】
さらに、本実施形態では、上述したように、手書きページデータは、イメージまたは文字認識結果ではなく、時系列のストロークデータの集合から構成される時系列情報２００として記憶されるので、手書き文字の言語に依存せずに手書き文字を扱うことができる。よって、本実施形態の時系列情報２００の構造は、使用言語の異なる世界中の様々な国で共通に使用できる。
【００３７】
図５は、タブレットコンピュータ１０のシステム構成を示す図である。
【００３８】
タブレットコンピュータ１０は、図５に示されるように、ＣＰＵ１０１、システムコントローラ１０２、主メモリ１０３、グラフィクスコントローラ１０４、ＢＩＯＳ−ＲＯＭ１０５、不揮発性メモリ１０６、無線通信デバイス１０７、エンベデッドコントローラ（ＥＣ）１０８等を備える。
【００３９】
ＣＰＵ１０１は、タブレットコンピュータ１０内の各種モジュールの動作を制御するプロセッサである。ＣＰＵ１０１は、ストレージデバイスである不揮発性メモリ１０６から主メモリ１０３にロードされる各種ソフトウェアを実行する。これらソフトウェアには、オペレーティングシステム（ＯＳ）２０１、および各種アプリケーションプログラムが含まれている。アプリケーションプログラムには、手書きノートアプリケーションプログラム２０２が含まれている。この手書きノートアプリケーションプログラム２０２は、上記手書きページデータを作成及び表示する機能、手書きページデータを編集する機能、所望の手書き部分を含む手書きページデータや、ある手書きページデータ内の所望の手書き部分を検索する機能を有している。
【００４０】
また、ＣＰＵ１０１は、ＢＩＯＳ−ＲＯＭ１０５に格納された基本入出力システム（ＢＩＯＳ）も実行する。ＢＩＯＳは、ハードウェア制御のためのプログラムである。
【００４１】
システムコントローラ１０２は、ＣＰＵ１０１のローカルバスと各種コンポーネントとの間を接続するデバイスである。システムコントローラ１０２には、主メモリ１０３をアクセス制御するメモリコントローラも内蔵されている。また、システムコントローラ１０２は、ＰＣＩ  ＥＸＰＲＥＳＳ規格のシリアルバス等を介してグラフィクスコントローラ１０４との通信を実行する機能も有している。
【００４２】
グラフィクスコントローラ１０４は、本タブレットコンピュータ１０のディスプレイモニタとして使用されるＬＣＤ１７Ａを制御する表示コントローラである。このグラフィクスコントローラ１０４によって生成される表示信号はＬＣＤ１７Ａに送られる。ＬＣＤ１７Ａは、表示信号に基づいて画面イメージを表示する。タッチパネル１７Ｂ、ＬＣＤ１７Ａ及びデジタイザ１７Ｃは互いに重ね合わされている。タッチパネル１７Ｂは、ＬＣＤ１７Ａの画面上で入力を行うための静電容量式のポインティングデバイスである。指が接触される画面上の接触位置及び接触位置の動き等はタッチパネル１７Ｂによって検出される。デジタイザ１７ＣはＬＣＤ１７Ａの画面上で入力を行うための電磁誘導式のポインティングデバイスである。ペン（デジタイザペン）１００が接触される画面上の接触位置及び接触位置の動き等はデジタイザ１７Ｃによって検出される。
【００４３】
無線通信デバイス１０７は、無線ＬＡＮまたは３Ｇ移動通信などの無線通信を実行するように構成されたデバイスである。ＥＣ１０８は、電力管理のためのエンベデッドコントローラを含むワンチップマイクロコンピュータである。ＥＣ１０８は、ユーザによるパワーボタンの操作に応じて本タブレットコンピュータ１０を電源オンまたは電源オフする機能を有している。
【００４４】
次に、図６を参照して、手書きノートアプリケーションプログラム２０２の機能構成について説明する。
【００４５】
手書きノートアプリケーションプログラム２０２は、表示処理部３０１、時系列情報生成部３０２、編集処理部３０３、ページ保存処理部３０４、ページ取得処理部３０５及び手書きページ表示処理部３０６等を備えている。また、表示処理部３０１は、手書きデータ入力部３０１Ａ、筆跡描画部３０１Ｂ、候補提示処理部３０１Ｃ及びページ整形処理部３０１Ｄをさらに含んでいる。
【００４６】
手書きノートアプリケーションプログラム２０２は、タッチスクリーンディスプレイ１７を用いて入力されるストロークデータを使用することによって、手書きページの作成、表示、編集等を行う。タッチスクリーンディスプレイ１７は、「タッチ」、「移動（スライド）」、「リリース」等のイベントの発生を検出するように構成されている。「タッチ」は画面上に外部オブジェクトが接触したことを示すイベントである。「移動（スライド）」は、画面上に外部オブジェクトが接触されている間に接触位置が移動されたことを示すイベントである。「リリース」は、画面から外部オブジェクトが離されたことを示すイベントである。
【００４７】
表示処理部３０１及び時系列情報生成部３０２は、タッチスクリーンディスプレイ１７によって発生される「タッチ」または「移動（スライド）」のイベントを受信し、これによって手書き入力操作を検出する。「タッチ」イベントには、接触位置の座標が含まれている。「移動（スライド）」イベントにも、移動先の接触位置の座標が含まれている。したがって、表示処理部３０１及び時系列情報生成部３０２は、タッチスクリーンディスプレイ１７から、接触位置の動きの軌跡に対応する座標列を受信することができる。
【００４８】
手書きノートアプリケーションプログラム２０２は、手書きページの作成時、表示時、編集時に、所望の間隔毎に引かれた複数の罫線を画面上に表示することができる。これら罫線の表示のオン／オフはユーザが任意に切り替えることができる。また、罫線間の長さはユーザが任意に設定することができる。手書きノートアプリケーションプログラム２０２は、罫線に代えて、所望の間隔毎に引かれたグリッド線を画面上に表示することもできる。このグリッド線の表示のオン／オフもユーザが任意に切り替えることができる。以下では、手書きページの作成時、表示時、編集時には、複数の罫線が第１間隔毎に画面上に表示されているものとして説明する。
【００４９】
後述する手書きページ整形処理は、画面上に複数の罫線が表示されている場合に実行されてもよいし、画面上に複数の罫線が表示されていなくても手書きノートアプリケーションプログラム２０２が認識可能な論理罫線が設定されている場合に実行されてもよい。また、後述する手書きページ整形処理は、ストロークの１画目が所定の閾値以上の長さである場合、これはユーザが意図して記載したものであると判断して実行されなくてもよい。
【００５０】
表示処理部３０１は、デジタイザ１７Ｃを用いて検出される画面上のオブジェクト（ペン１００）の動きに応じて手書きストロークを画面上に表示する。この表示処理部３０１により、画面にペン１００が接触している間のペン１００の軌跡、つまり各ストロークの軌跡がＬＣＤ１７Ａの画面上に表示される。
【００５１】
時系列情報生成部３０２は、タッチスクリーンディスプレイ１７から出力される上記座標列を受信し、この座標列に基づいて、図４で詳述したような構造を有する上記時系列情報を生成する。この場合、時系列情報、つまりストロークの各点に対応する座標及びタイムスタンプ情報は作業メモリ４０１に一時保存してもよい。
【００５２】
編集処理部３０３は現在表示中の手書きページを編集するための処理を実行する。すなわち、編集処理部３０３は、タッチスクリーンディスプレイ１７上でユーザによって行われる編集操作に応じて、表示されている複数のストロークのうちの１以上のストロークを削除または移動等するための編集処理を実行する。さらに、編集処理部３０３は、編集処理の結果を表示中の時系列情報に反映するためにこの時系列情報を更新する。
【００５３】
ページ保存処理部３０４は、生成された時系列情報を手書きページとして記憶媒体４０２内の手書きノートデータベース（以下、「手書きノートＤＢ」と表記）４０２Ａに保存する。記憶媒体４０２は、上記したように、タブレットコンピュータ１０内のストレージデバイス、パーソナルコンピュータ１内のストレージデバイス、サーバ２のストレージデバイス２Ａのいずれであってもよい。
【００５４】
ページ取得処理部３０５は、記憶媒体４０２内の手書きノートＤＢ４０２Ａから既に格納されている任意の時系列情報を読み出す。読み出された時系列情報は手書きページ表示処理部３０６に送られる。手書きページ表示処理部３０６は、時系列情報を解析し、この解析結果に基づいて、時系列情報によって示される各ストロークの軌跡を画面上に手書きページとして表示する。
【００５５】
ここで、上記した表示処理部３０１の詳細について説明する。
【００５６】
上記したように、タッチスクリーンディスプレイ１７は、画面に対するタッチ操作（手書き入力操作）をタッチパネル１７Ｂまたはデジタイザ１７Ｃで検出する。手書きデータ入力部３０１Ａは、タッチパネル１７Ｂまたはデジタイザ１７Ｃから出力される検出信号を入力するモジュールである。検出信号には、タッチ位置の座標情報（Ｘ，Ｙ）が含まれている。このような検出信号を時系列順に入力することによって、手書きデータ入力部３０１Ａは、例えばディスプレイ上で手書きされるストロークに対応するストロークデータを入力する。手書きデータ入力部３０１Ａによって入力されたストロークデータは、手書き入力操作を確定させる旨の操作がなされた場合、筆跡描画部３０１Ｂに供給され、手書き入力操作を確定させる旨の操作がなされていない場合、候補提示処理部３０１Ｃに供給され、手書き入力操作を確定させる旨の操作がなされておらず且つストロークデータに対応する複数の手書きストロークに対応する１以上の文字が第１間隔のｎ倍またはｍ（ただしｍ≠ｎ）倍に対応する場合、候補提示処理部３０１Ｃ及びページ整形処理部３０１Ｄに供給される。なお、上記ｎの正確な値や上記ｍの正確な値は、手書きデータ入力部３０１Ａにストロークデータが入力された時点では判別できなくて構わない。ここでは、ストロークデータに対応する複数の手書きストロークに対応する１以上の文字が第１間隔より大きいまたは小さいということが判別できればよい。
【００５７】
筆跡描画部３０１Ｂは、手書き入力の軌跡（筆跡）を描画してタッチスクリーンディスプレイ１７のＬＣＤ１７Ａに表示するモジュールである。筆跡描画部３０１Ｂは、手書きデータ入力部３０１Ａ、候補提示処理部３０１Ｃまたはページ整形処理部３０１Ｄからのストロークデータに基づき、手書き入力の軌跡（筆跡）に対応する線分を描画する。
【００５８】
候補提示処理部３０１Ｃは、候補提示処理を実行するように構成されたモジュールである。具体的には、候補提示処理部３０１Ｃは、手書きされたストローク（手書きデータ入力部３０１Ａから供給されたストロークデータ）に対応する１以上のストローク列（手書き文字列）を、過去に入力されたストロークの集合（手書きページ情報）から取得する。そして、候補提示処理部３０１Ｃは、取得されたストローク列を、入力可能なストロークの候補（候補ストローク）として画面上に表示するための処理を実行する。
【００５９】
すなわち、候補提示処理部３０１Ｃは、入力されるストロークと手書きページ情報とに基づいて、ユーザが手書きしようとしているストローク列を予測する。そして、候補提示処理部３０１Ｃは、予測によって得られるいくつかのストローク列（ストローク群）を候補ストロークとしてユーザに提示する。
【００６０】
例えば、ストローク「ａ」が手書きによって入力された場合には、手書き文字「ａｄｄ」または「ａｃｃｅｓｓ」のような候補がユーザに提示されてもよい。もしユーザによって手書き文字「ａｃｃｅｓｓ」が選択されたならば、この手書き文字「ａｃｃｅｓｓ」が、入力されたストローク列となる。よって、ユーザは手書き文字「ａｃｃｅｓｓ」のストローク列を容易に入力することができる。
【００６１】
手書きページ情報として格納されるストローク列（手書き文字列）の言語はどのような言語であってもよい、利用可能な言語の例は、英語、日本語、中国語、及び他の様々な言語を含む。英語のストローク列に関しては、ストローク列はブロック体で記載された文字に対応するストローク列であってもよいし、筆記体で記載された文字に対応するストローク列であってもよい。筆記体で記載された単語は１つのストロークから構成される場合がある。したがって、候補提示処理において手書きページ情報から取得されるストローク列は、必ずしも複数のストロークを含んでいる必要はなく、１つのストロークであってもよい。
【００６２】
入力されたストロークに対応するストローク列の例には、入力されたストロークに類似するストロークを含む複数のストロークや、入力されたストロークに類似するストローク部分を含む１つのストロークがある。例えば、先頭のストローク（または先頭のストローク部分）が、入力されたストロークに類似しているストローク列が手書きページ情報から取得される。
【００６３】
なお、入力されたストロークに対応するストローク列を手書きページ情報から容易に取得できるようにするために、候補提示処理部３０１Ｃは、手書きノートＤＢ４０２Ａに格納されているストロークの集合に基づいて、候補ストロークデータベース（以下、「候補ストロークＤＢ」と表記）４０２Ｂを作成してもよい。この候補ストロークＤＢ４０２Ｂには、例えば、単語のような意味のある文字列単位で、ストローク列と、このストローク列に対応する文字認識結果（文字列）とが格納されてもよい。
【００６４】
この場合、候補提示処理部３０１Ｃは、まず、ユーザによって入力されたストロークを文字認識する。そして、候補提示処理部３０１Ｃは、候補ストロークＤＢ４０２Ｂを参照して、この入力されたストロークの文字認識結果（文字列）に前方一致する文字列を見つけ出す。その後、候補提示処理部３０１Ｃは、見つけ出した文字列に対応するストローク列を、入力されたストロークに対応するストローク列として候補ストロークＤＢ４０２Ｂから取得する。
【００６５】
あるいは、候補ストロークＤＢ４０２Ｂには、例えば、単語のような意味のある文字列単位で、ストローク列と、このストローク列に対応する各ストロークの特徴量とが格納されていてもよい。あるストロークの特徴量としては、このストロークの手書き特徴を表すことができる任意の特徴を使用することができる。具体的には、特徴量としては、ストロークの形状、ストロークの筆画方向、ストロークの傾斜、等を表す特徴量データを使用してもよい。この場合、候補提示処理部３０１Ｃは、入力されたストロークの特徴量に類似する特徴量を有するストローク列を候補ストロークＤＢ４０２Ｂから取得してもよい。
【００６６】
また、候補ストロークＤＢ４０２Ｂには、例えば、単語のような意味のある文字列単位で、ストローク列と、このストローク列に対応する文字認識結果（文字列）と、このストローク列に対応する各ストロークの特徴量とが格納されていてもよい。
【００６７】
総括すると、候補提示処理部３０１Ｃは、入力されたストロークと、候補ストロークＤＢ４０２Ｂとに基づいて、ユーザが入力しようとしているストローク列を予測する。この予測処理では、候補提示処理部３０１Ｃは、入力されたストロークに対応するいくつかのストローク列（ストローク群）を候補ストロークＤＢ４０２Ｂから取得する。そして、候補提示処理部３０１Ｃは、これらストローク列を、入力が予測されるストローク列の候補（候補ストローク）として画面上に表示するための処理を実行する。
【００６８】
ページ整形処理部３０１Ｄは、ストロークデータに対応する手書きストロークを整形する手書きページ整形処理を実行するモジュールである。具体的には、ページ整形処理部３０１Ｄは、（手書きデータ入力部３０１Ａまたは手書きデータ入力部３０１Ａと候補提示処理部３０１Ｃとの両者から供給された）ストロークデータに対応する複数の手書きストロークに対応する１以上の文字が第１間隔のｎ倍（またはｍ倍）に対応する場合に、第１間隔のｎ倍（またはｍ倍）の大きさに応じて、ｎ＋１（またはｍ＋１）本の罫線に挟まれる領域に収まるように（ｎ＋１本（またはｍ＋１本）の罫線にあわせて）複数の手書きストロークの形状を調整して、これを画面上に表示するための手書きページ整形処理を実行する。すなわち、ページ整形処理部３０１Ｄは、手書きストロークが複数行にわたって記載されている（または手書きストロークが第１間隔よりかなり小さく記載されている）場合に、これら手書きストロークの形状を調整して、これを画面上に表示するための処理を実行する。なお本実施形態では、上記ｎは１以上の値を想定し、上記ｍは１未満の値を想定する。
【００６９】
ここで、図７及び図８を参照して、代表的な手書きページ整形処理の詳細について説明する。
【００７０】
図７及び図８は、代表的な手書きページ整形処理を説明するために用いられる図である。ページ整形処理部３０１Ｄは、図７に示すように、ストロークデータに対応する複数の手書きストロークのうちの手書きストローク５０１〜５０３に対応する手書き文字「ｅｘ」が第１間隔のｎ倍に対応する場合、まずこれら手書きストローク５０１〜５０３に対応する手書き文字「ｅｘ」を矩形枠で囲む処理を実行する。その後、ページ整形処理部３０１Ｄは、上記矩形枠（外接矩形）の左上の座標、右下の座標、高さ、重心等をそれぞれ算出する。図７では、外接矩形の左上の座標（Ｘ１，Ｙ１）が（８００，７０）であり、右下の座標（Ｘ２，Ｙ２）が（１０００，２２０）であり、算出される外接矩形の高さが１５０（＝Ｙ２−Ｙ１）であり、算出される外接矩形の重心が７５（＝高さ／２）の高さにある（位置する）場合を想定している。また、図７では、第１間隔が１００に設定されている場合を想定する。なお、図７では、手書きページ整形処理の対象となる手書きストローク５０１〜５０３に対応する手書き文字「ｅｘ」を囲む矩形枠が画面上に表示されるとしたが、矩形枠は必ずしも画面上に表示されなくてもよい。また、図７では、矩形枠内の手書きストローク５０１〜５０３は他の手書きストロークと区別するために網掛け表示されるとしたが、矩形枠内の手書きストロークの表示手法は網掛け表示に限定されるものではない。例えば、矩形枠内の手書きストロークの下に下線が表示されてもよいし、矩形枠内の手書きストロークは斜体で表示されてもよい。
【００７１】
ページ整形処理部３０１Ｄは、上記した各種パラメータを算出すると、算出された外接矩形の高さと第１間隔とから上記したｎの値（またはｍの値）を算出する。この場合、手書き文字「ｅｘ」を囲んだ外接矩形の高さが「１５０」であり、第１間隔が「１００」であるため、ページ整形処理部３０１Ｄは、１．５（＝１５０／１００）を上記ｎの値として算出する。そして、ページ整形処理部３０１Ｄは、外接矩形の重心を含む２（＝１．５＋１の整数部分）本の罫線に挟まれる領域に収まるように、手書きストローク５０１〜５０３の形状を整形する。すなわち、ページ整形処理部３０１Ｄは、図８に示すように、手書き文字「ｅｘ」を構成する手書きストローク５０１〜５０３の大きさを、外接矩形の重心を含む２本の罫線に挟まれる領域に収まる大きさに調整する。ページ整形処理部３０１Ｄは、手書きストローク５０１〜５０３を整形すると、整形後の手書き文字「ｅｘ」の軌跡に対応する座標列を含むストロークデータを新たなストロークデータとして作業メモリ４０１に記録する。また、この新たなストロークデータは筆跡描画部３０１Ｂに供給される。
【００７２】
なお、上記したページ整形処理部３０１Ｄによる手書きページ整形処理後に、ユーザは図９に示す拡縮アイコン６０１をタップし、ピンチイン／ピンチアウト等の操作手法を用いて手動で手書きストローク５０１〜５０３の大きさをさらに調整することもできる。この場合、手書きノートアプリケーションプログラム２０２は、ディスプレイ上に次のストロークが記載された場合に、手書きストローク５０１〜５０３を確定させる処理を実行する。
【００７３】
さらに、ページ整形処理部３０１Ｄは、上記した手書きページ整形処理の他に、候補提示処理部３０１Ｃによる候補提示処理と連動した手書きページ整形処理を実行することもできる。
【００７４】
ここで、図１０及び図１１を参照して、候補提示処理と連動して実行される手書きページ整形処理について説明する。
【００７５】
図１０及び図１１は、候補提示処理と連動して実行されるページ整形処理を説明するために用いられる図である。ここでは、手書き文字「Ｔｈｅ  ｃｈｏｉｃｅ」に対応する手書きストロークが入力された後に、手書き文字「ｏｆ」に対応する手書きストローク５０４〜５０６が入力された場合を想定している。
【００７６】
まず候補提示処理部３０１Ｃは、入力された（ストロークデータに対応する）手書きストローク５０４〜５０６に対応するいくつかのストローク列（ストローク群）を候補ストロークＤＢ４０２Ｂから取得する。その後、候補提示処理部３０１Ｃは、取得したストローク列それぞれを候補ストロークリスト６０２上に表示する。図１０では、３つのストローク列「ｏｆｆ」、「ｏｆｔｅｎ」、「ｏｆｆｅｒ」が候補ストロークとして候補ストロークリスト６０２上に表示された場合を示す。候補ストロークリスト６０２上に表示されたこれら３つの候補ストロークリストは、過去にユーザによって入力されたストローク列である。
【００７７】
そして、ユーザの操作に応じて候補ストロークリスト６０２から所望のストローク列が選択された場合であって、手書きストローク５０４〜５０６に対応する手書き文字「ｏｆ」が第１間隔のｎ倍に対応する場合、候補提示処理部３０１Ｃは、選択されたストローク列に対応するストロークデータをページ整形処理部３０１Ｄに供給する。ここでは、ストローク列「ｏｆｆｅｒ」が選択され、このストローク列に対応するストロークデータがページ整形処理部３０１Ｄに供給される場合を想定する。
【００７８】
ユーザの操作に応じて候補ストロークリスト６０２から選択されたストローク列に対応するストロークデータが候補提示処理部３０１Ｃから供給されると、まずページ整形処理部３０１Ｄは、手書きストローク５０４〜５０６に対応する手書き文字「ｏｆ」を矩形枠で囲む処理を実行し、この矩形枠の左上の座標、右下の座標、高さ、重心をそれぞれ算出する。そして、ページ整形処理部３０１Ｄは、算出された矩形枠の高さと第１間隔とに基づいて上記ｎの値を算出した後に、候補提示処理部３０１Ｃから供給されたストロークデータに対応するストロークの形状を、算出された矩形枠の重心を含むｎ＋１本の罫線に挟まれる領域に収まるように調整する。これにより、ページ整形処理部３０１Ｄは、筆跡描画部３０１Ｂを介して、図１１に示す画面をＬＣＤ１７Ａに表示させることができる。
【００７９】
なお、上記した候補提示処理部３０１Ｃから供給されたストロークデータに対応するストロークの大きさを調整するときに、図１２に示すように、整形後のストロークの末尾がページ内に収まりきらないと予測される場合、ページ整形処理部３０１Ｄは、図１３に示すように、整形後のストロークを次の行の先頭に描画することもできる。
【００８０】
さらに、ページ整形処理部３０１Ｄは、上記した手書きページ整形処理とは異なる手書きページ整形処理を実行することもできる。具体的には、ページ整形処理部３０１Ｄは、複数の手書きストロークに対応する１以上の文字が第１間隔のｎ倍（ここではｎ＞２を想定する）に対応する場合、第１間隔のｎ倍の大きさに応じて、複数の手書きストロークの形状を、ｎ＋１本の罫線に挟まれる領域に収まるように整形する手書きページ整形処理を実行することもできる。すなわち、ページ整形処理部３０１Ｄは、複数行にわたって記載された手書きストロークの大きさを、１行ではなく複数行の行間に収まる大きさに調整する処理を実行することができる。
【００８１】
以下に、図１４及び図１５を参照して、手書きストロークの大きさを、複数の行間に収まる大きさに整形（調整）する手書きページ整形処理について説明する。
【００８２】
図１４及び図１５は、手書きストロークの大きさを、複数の行間に収まる大きさに整形（調整）する手書きページ整形処理を説明するために用いられる図である。ここでは、手書き文字「Ｔｈｅ  ｃｈｏｉｃｅ  ｏｆ」に対応する手書きストロークが入力された後に、手書き文字「ｅｘ」に対応する手書きストローク５０７〜５０９が、手書き文字「Ｔｈｅ  ｃｈｏｉｃｅ  ｏｆ」に対応する手書きストロークとは異なる行に入力された場合を想定している。
【００８３】
まずページ整形処理部３０１Ｄは、図１４に示すように、手書きストローク５０７〜５０９に対応する手書き文字「ｅｘ」が第１間隔のｎ倍に対応する場合、これら手書きストローク５０７〜５０９に対応する手書き文字「ｅｘ」を矩形枠で囲む処理を実行する。その後、ページ整形処理部３０１Ｄは、上記矩形枠の左上の座標、右下の座標、高さ、重心をそれぞれ算出する。上記矩形枠に関する各種パラメータが算出されると、ページ整形処理部３０１Ｄは、上記矩形枠の高さと第１間隔とから上記したｎの値を算出する。ここでは、手書き文字「ｅｘ」を囲んだ矩形枠の高さが「２５０」であり、第１間隔が「１００」である場合を想定する。つまり、上記したｎの値は２．５（＝２５０／１００）となる。上記したｎの値を算出すると、ページ整形処理部３０１Ｄは、上記矩形枠の重心を含む３（＝２．５＋１の整数部分）本の罫線に挟まれる領域に収まるように、手書きストローク５０７〜５０９の形状を整形する。この場合、手書き文字「ｅｘ」を囲んだ矩形枠の高さ「２５０」を３本の罫線に挟まれる領域「２００」に収まるように調整すればよいため、手書きストローク５０７〜５０９は、図１５に示すように、４／５（＝２００／２５０）倍の大きさに縮小される。これにより、手書きストロークの大きさを、常に１行分の行間に収まる大きさに調整するのではなく、ユーザが意図した大きさに近い大きさの行間に収めるように調整することができる。
【００８４】
なお、本実施形態では、複数の罫線が引かれたページ内に手書きストロークを記載した場合の手書きページ整形処理について主に説明したが、例えば氏名欄等、特定の属性を有したページ内に手書きストロークが記載された場合であっても、上記した各種手書きページ整形処理を適用することができる。例えば、図１６に示すように、氏名欄６０３に手書きの語「Ｊｈｏｎ」に対応する手書きストロークが記載され、これら手書きストロークが氏名欄６０３に収まっていない場合を想定する。この場合、ページ整形処理部３０１Ｄは、氏名欄６０３を構成する線分６０４，６０５を罫線と見立てて上記した代表的な手書きページ整形処理を実行して、図１７に示すように、手書きの語「Ｊｈｏｎ」に対応する手書きストロークを氏名欄６０３（線分６０４と線分６０５との間）に収まる大きさに整形（調整）することができる。
【００８５】
なお、図１６及び図１７に示した氏名欄６０３等に手書きストロークが記載された場合、候補提示処理部３０１Ｃは、氏名に関連したストローク列を優先的に候補ストロークとしてユーザに提示してもよい。
【００８６】
次に、図１８を参照して、手書きノートアプリケーションプログラム２０２による代表的な手書きページ整形処理の手順の一例について説明する。
【００８７】
始めに、手書きデータ入力部３０１Ａは、ディスプレイ上で手書きされるストロークに対応するストロークデータを入力する（ブロック１００１）。続いて、手書きデータ入力部３０１Ａは、入力されたストロークデータに対応する複数の手書きストロークに対応する１以上の文字が第１間隔のｎ倍に対応しているか否か（上記複数の手書きストロークが複数行にわたって記載されているか否か）を判断する（ブロック１００２）。なお、上記手書きストロークに対応する１以上の文字が第１間隔のｎ倍に対応していない場合（ブロック１００２のＮＯ）、手書きデータ入力部３０１Ａは、入力されたストロークデータを筆跡描画部３０１Ｂに供給する。筆跡描画部３０１Ｂは、手書きデータ入力部３０１Ａから供給されたストロークデータに対応する複数の手書きストロークを画面上に描画し（ブロック１００３）、手書きページ整形処理を終了させる。つまり、手書きページ整形処理の対象となる手書きストロークがないため、手書きページ整形処理を終了させる。
【００８８】
一方で、上記手書きストロークに対応する１以上の文字が第１間隔のｎ倍に対応している場合（ブロック１００２のＹＥＳ）、手書きデータ入力部３０１Ａは、入力されたストロークデータをページ整形処理部３０１Ｄに供給する（ブロック１００４）。
【００８９】
なお、ここでは代表的な手書きページ整形処理の手順について説明するため、ブロック１００４において、手書きデータ入力部３０１Ａは、ページ整形処理部３０１Ｄにだけストロークデータを供給するとしたが、候補提示処理と連動した手書きページ整形処理を実行する場合、手書きデータ入力部３０１Ａは、候補提示処理部３０１Ｃにもストロークデータを供給する。
【００９０】
次に、ページ整形処理部３０１Ｄは、手書きデータ入力部３０１Ａから供給されたストロークデータに対応する複数の手書きストロークのうち、手書きページ整形処理の対象となる手書きストロークに対応する１以上の文字を矩形枠で囲む処理を実行する（ブロック１００５）。続いて、ページ整形処理部３０１Ｄは、上記矩形枠の左上の座標、右下の座標、高さ、重心をそれぞれ算出する（ブロック１００６）。
【００９１】
次に、ページ整形処理部３０１Ｄは、算出された矩形枠の高さと第１間隔とから上記したｎの値を算出する。その後、ページ整形処理部３０１Ｄは、上記矩形枠内の手書きストロークの大きさを、算出された矩形枠の重心を含むｎ＋１本の罫線に挟まれる領域に収まるように整形（調整）し、整形後の手書きストロークに対応したストロークデータを筆跡描画部３０１Ｂに供給する（ブロック１００７）。
【００９２】
しかる後、筆跡描画部３０１Ｂは、ページ整形処理部３０１Ｄから供給されたストロークデータに対応する複数の手書きストロークを画面上に描画し（ブロック１００８）、手書きページ整形処理を終了させる。
【００９３】
以上説明した一実施形態によれば、手書きノートアプリケーションプログラム２０２は、罫線に沿って手書き入力された手書きストロークが複数行にわたって記載されている場合に、この手書きストロークを、手書き入力位置近辺の行の行間に収まる大きさで画面上に表示するための処理を実行するページ整形処理部３０１Ｄを備えている。したがって、スムーズな手書き入力操作を実現することができる。
【００９４】
なお、本実施形態の処理は、コンピュータプログラムによって実現することができるので、このコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのコンピュータプログラムをコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
【００９５】
なお、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００９６】
１７Ａ…ＬＣＤ、２０２…手書きノートアプリケーション、３０１…表示処理部、３０１Ａ…手書きデータ入力部、３０１Ｂ…筆跡描画部、３０１Ｃ…候補提示処理部、３０１Ｄ…ページ整形処理部、３０２…時系列情報生成部、３０３…編集処理部、３０４…ページ保存処理部、３０５…ページ取得処理部、３０６…手書きページ表示処理部、４０１…作業メモリ、４０２…記憶媒体
【図１】
2015162088.tif 000003
【図２】
2015162088.tif 000004
【図３】
2015162088.tif 000005
【図４】
2015162088.tif 000006
【図５】
2015162088.tif 000007
【図６】
2015162088.tif 000008
【図７】
2015162088.tif 000009
【図８】
2015162088.tif 000010
【図９】
2015162088.tif 000011
【図１０】
2015162088.tif 000012
【図１１】
2015162088.tif 000013
【図１２】
2015162088.tif 000014
【図１３】
2015162088.tif 000015
【図１４】
2015162088.tif 000016
【図１５】
2015162088.tif 000017
【図１６】
2015162088.tif 000018
【図１７】
2015162088.tif 000019
【図１８】
2015162088.tif 000020