以下、実施の形態について図面を参照して説明する。
図1は、一実施形態に係る電子機器の外観を示す斜視図である。この電子機器は、例えば、ペンまたは指によって手書き入力可能なペン・ベースの携帯型電子機器である。この電子機器は、タブレットコンピュータ、ノートブック型パーソナルコンピュータ、スマートフォン、PDA等として実現され得る。以下では、この電子機器がタブレットコンピュータ10として実現されている場合を想定する。タブレットコンピュータ10は、タブレットまたはストレートコンピュータとも称される携帯型電子機器であり、図1に示すように、本体11とタッチスクリーンディスプレイ17とを備える。タッチスクリーンディスプレイ17は、本体11の上面に重ね合わせるように取り付けられている。
本体11は、薄い箱形の筐体を有している。タッチスクリーンディスプレイ17には、フラットパネルディスプレイと、フラットパネルディスプレイの画面上のペンまたは指の接触位置を検出するように構成されたセンサとが組み込まれている。フラットパネルディスプレイは、例えば、液晶表示装置(LCD)であってもよい。センサとしては、例えば、静電容量方式のタッチパネル、電磁誘導方式のデジタイザなどを使用することができる。以下では、デジタイザとタッチパネルの2種類のセンサの双方がタッチスクリーンディスプレイ17に組み込まれている場合を想定する。
このタッチスクリーンディスプレイ17は、指を使用した画面に対するタッチ操作のみならず、ペン100を使用した画面に対するタッチ操作も検出することができる。ペン100は例えば電磁誘導ペンであってもよい。ユーザは、外部オブジェクト(ペン100又は指)を使用してタッチスクリーンディスプレイ17上で手書き入力操作を行うことができる。手書き入力操作中においては、画面上の外部オブジェクト(ペン100又は指)の動きの軌跡、つまり手書き入力操作によって手書きされるストローク(手書きストロークの軌跡)がリアルタイムに描画され、これによって手書きにより入力された複数のストロークが画面上に表示される。外部オブジェクトが画面に接触されている間の外部オブジェクトの動きの軌跡が1つのストロークに相当する。手書きされた文字、手書きされた図形、手書きされた表、などに対応する多数のストロークの集合が手書き文書を構成する。
本実施形態では、この手書き文書は、イメージデータではなく、各ストロークの軌跡の座標列とストローク間の順序関係を示す時系列情報(手書き文書データ)として記憶媒体に保存される。この時系列情報の詳細は図4を参照して後述するが、この時系列情報は、複数のストロークが手書きされた順を示し、且つ複数のストロークにそれぞれ対応する複数のストロークデータを含む。換言すれば、この時系列情報は、複数のストロークにそれぞれ対応する時系列のストロークデータの集合を意味する。各ストロークデータは、ある一つのストロークに対応し、このストロークの軌跡上の点それぞれに対応する座標データ系列(時系列座標)を含む。これらストロークデータの並びの順序は、ストロークそれぞれが手書きされた順序に相当する。
タブレットコンピュータ10は、記憶媒体から既存の任意の時系列情報を読み出し、この時系列情報に対応する手書き文書、つまりこの時系列情報によって示される複数のストロークを画面上に表示することができる。時系列情報によって示される複数のストロークも、手書きによって入力される複数のストロークである。
さらに、タブレットコンピュータ10は編集機能を有している。この編集機能は、「消しゴム」ツール、範囲選択ツール、および他の各種ツール等を用いたユーザによる編集操作に応じて、範囲選択ツールによって選択される表示中の手書き文書内の任意の部分(手書き文字、手書きマーク、手書き図形、手書き表、等)を削除または移動することができる。またさらに、この編集機能は、選択範囲内に属する手書き部分に対して各種機能、例えば、図整形機能、表整形機能、手書き文字整形機能、等を実行することができる。これら整形機能はクラウドサーバシステムを利用することによって実行することができる。
本実施形態では、手書き文書は、1つまたは複数のページとして管理されうる。この場合、時系列情報(手書き文書データ)を1つの画面に収まる面積単位で区切ることによって、1つの画面に収まる時系列情報のまとまりを1つのページとして記録してもよい。あるいは、ページのサイズを可変できるようにしてもよい。この場合、ページのサイズは1つの画面のサイズよりも大きい面積に広げることができるので、画面のサイズよりも大きな面積の手書き文書を一つのページとして扱うことができる。1つのページ全体をディスプレイに同時に表示できない場合は、そのページを縮小してするようにしてもよいし、縦横スクロールによってページ内の表示対象部分を移動するようにしてもよい。なお、タブレットコンピュータ10によって表示されるべき手書き文書としては、手書きによって記載される複数のストローク(手書きストローク)を含む任意の手書き文書を使用し得る。
図2は、タブレットコンピュータ10と手書き文書変換システム2との連携動作の例を示している。タブレットコンピュータ10は、手書き文書変換システム2と連携することができる。すなわち、タブレットコンピュータ10は、無線LANなどの無線通信デバイスを備えており、インターネット上の手書き文書変換システム2との通信を実行することもできる。手書き文書変換システム2は各種クラウドコンピューティングサービスを実行する1以上のサーバから構成されている。
手書き文書変換システム2は、タブレットコンピュータ10から受信される手書き文書31(複数のストロークデータ)を既存のワードプロセッサソフトウェアまたは既存のプレゼンテーションソフトウェアなどによって閲覧・編集が可能なファイルフォーマットの電子文書に変換するサービスを実行することができる。この変換サービスにおいては、手書き文書31内の手書き文字、手書き図形、手書き表などがそれぞれ整形される。手書き文字列の整形においては、この手書き文字列は文字認識によって幾つかの文字コードに変換される。手書き図形の整形においては、この手書き図形は既存のワードプロセッサソフトウェアまたは既存のプレゼンテーションソフトウェアなどによって閲覧・編集が可能なオブジェクトデータに変換される。例えば、手書きの丸は丸形状の図形オブジェクトに変換される。手書き表の整形においては、この手書き表はこの手書きの表のセル数と同じセル数を含む表オブジェクトに変換される。さらに、手書きの表の各セルに含まれる手書き文字列は幾つかの文字コードに変換される。
タブレットコンピュータ10は、手書き文書31を構成する複数のストロークデータを手書き文書変換システム2に送信し(アップロード)、手書き文書変換システム2に手書き文書31の整形(変換)を要求することができる。そして、タブレットコンピュータ10は、手書き文書31の整形結果である電子文書32を手書き文書変換システム2から受信することができる(ダウンロード)。また、タブレットコンピュータ10は、手書き文書31内の任意の手書き部分だけを文書変換システム2に送信し(アップロード)、手書き文書変換システム2にこの手書き部分の整形(変換)を要求することもできる。
ここで、タブレットコンピュータ10と手書き文書変換システム2との連携動作の例について説明する。タブレットコンピュータ10は手書き文書変換システム2に対してアクセスし、手書き文書変換システム2のインタフェースを介して変換の対象となる手書き文書31を手書き文書変換システム2に送信する。この場合、タブレットコンピュータ10は、手書き文書31の変換後のファイル形式(PDF、イメージデータ、ベクトルデータ、マイクロソフト社のワード(登録商標)、マイクロソフト社のエクセル(登録商標)、マイクロソフト社のパワーポイント(登録商標)、等)を手書き文書変換システム2に指示することもできる。手書き文書31は手書き文書変換システム2のストレージ21に格納される。テキスト/図表整形エンジン22はストレージ21から手書き文書31を受け取り、手書き文書31内の手書き文字列、手書きの図形、手書きの表を認識してこれら手書き文字列、手書きの図形、手書きの表を整形する。電子文書変換エンジン23はテキスト/図表整形エンジン22から整形結果を受信する。そして、電子文書変換エンジン23は、この整形結果を、タブレットコンピュータ10によって指定されたファイル形式の電子文書32に変換し、この電子文書32をストレージ21に格納する。タブレットコンピュータ10は電子文書32をインタフェース20を介して閲覧したり、この電子文書32をインタフェース20を介して手書き文書変換システム2から受信することができる(ダウンロード)。
なお、上述したように、タブレットコンピュータ10は、手書き文書31内の任意の手書き部分を文書変換システム2に送信し、この手書き部分に対応する整形結果を手書き文書変換システム2から受信することもできる。この整形結果に対応するオブジェクトデータは各種ソフトウェアが扱うことができるベクトルデータであってもよいし、あるいはイメージデータであってもよい。
次に、図3および図4を参照して、ユーザによって手書きされたストローク(文字、図形、表など)と時系列情報との関係について説明する。図3は、ペン100などを使用してタッチスクリーンディスプレイ17上に手書きされる手書き文書(手書き文字列)の例を示している。
手書き文書では、一旦手書きによって入力される文字や図形などの上に、さらに別の文字や図形などが手書きによって入力されるというケースが多い。図3においては、「ABC」の手書き文字列が「A」、「B」、「C」の順番で手書きによって入力され、この後に、手書きの矢印が、手書き文字「A」のすぐ近くに手書きによって入力された場合が想定されている。
手書き文字「A」は、ペン100などを使用して手書きされる2つのストローク(「∧」形状の軌跡、「−」形状の軌跡)によって、つまり2つの軌跡によって表現される。最初に手書きされる「∧」形状のペン100の軌跡は例えば等時間間隔でリアルタイムにサンプリングされ、これによって「∧」形状のストロークの時系列座標SD11、SD12、…SD1nが得られる。同様に、次に手書きされる「−」形状のペン100の軌跡も等時間間隔でリアルタイムにサンプリングされ、これによって「−」形状のストロークの時系列座標SD21、SD22、…SD2nが得られる。
手書き文字「B」は、ペン100などを使用して手書きされた2つのストローク、つまり2つの軌跡によって表現される。手書き文字「C」は、ペン100などを使用して手書きされた手書きされた1つのストローク、つまり1つの軌跡によって表現される。手書きの「矢印」は、ペン100などを使用して手書きされた手書きされた2つのストローク、つまり2つの軌跡によって表現される。
図4は、図3の手書き文書に対応する時系列情報200を示している。時系列情報は、複数のストロークデータSD1、SD2、…、SD7を含む。時系列情報200内においては、これらストロークデータSD1、SD2、…、SD7は、これらストロークが手書きされた順に時系列に並べている。
時系列情報200において、先頭の2つのストロークデータSD1、SD2は、手書き文字「A」の2つのストロークをそれぞれ示している。3番目と4番目のストロークデータSD3、SD4は、手書き文字「B」を構成する2つのストロークをそれぞれ示している。5番目のストロークデータSD5は、手書き文字「C」を構成する1つのストロークを示している。6番目と7番目のストロークデータSD6、SD7は、手書き「矢印」を構成する2つのストロークをそれぞれ示している。
各ストロークデータは、一つのストロークに対応する座標データ系列(時系列座標)、つまり一つのストロークの軌跡上の複数の点それぞれに対応する複数の座標を含む。各ストロークデータにおいては、複数の座標はストロークが書かれた順に時系列に並べられている。例えば、手書き文字「A」に関しては、ストロークデータSD1は、手書き文字「A」の「∧」形状のストロークの軌跡上の点それぞれに対応する座標データ系列(時系列座標)、つまりn個の座標データSD11、SD12、…SD1nを含む。ストロークデータSD2は、手書き文字「A」の「−」形状のストロークの軌跡上の点それぞれに対応する座標データ系列、つまりn個の座標データSD21、SD22、…SD2nを含む。なお、座標データの数はストロークデータ毎に異なっていてもよい。
各座標データは、対応する軌跡内のある1点に対応するX座標およびY座標を示す。例えば、座標データSD11は、「∧」形状のストロークの始点のX座標(X11)およびY座標(Y11)を示す。SD1nは、「∧」形状のストロークの終点のX座標(X1n)およびY座標(Y1n)を示す。
さらに、各座標データは、その座標に対応する点が手書きされた時点に対応するタイムスタンプ情報Tを含んでいてもよい。手書きされた時点は、絶対時間(例えば、年月日時分秒)またはある時点を基準とした相対時間のいずれであってもよい。例えば、各ストロークデータに、ストロークが書き始められた絶対時間(例えば、年月日時分秒)をタイムスタンプ情報として付加し、さらに、ストロークデータ内の各座標データに、絶対時間との差分を示す相対時間をタイムスタンプ情報Tとして付加してもよい。
このように、各座標データにタイムスタンプ情報Tが追加された時系列情報を使用することにより、ストローク間の時間的関係をより精度よく表すことができる。
さらに、各座標データには、筆圧を示す情報(Z)を追加してもよい。
図4で説明したような構造を有する時系列情報200は、個々のストロークの筆跡だけでなく、ストローク間の時間的関係も表すことができる。したがって、この時系列情報200を使用することにより、図3に示すようにたとえ手書き「矢印」の先端部が手書き文字「A」上に重ねてまたは手書き文字「A」に近接して書かれたとしても、手書き文字「A」と手書き「矢印」の先端部とを異なる文字または図形として扱うことが可能となる。
さらに、本実施形態では、上述したように、手書き文書データは、イメージまたは文字認識結果ではなく、時系列のストロークデータの集合から構成される時系列情報200として記憶されるので、手書き文字の言語に依存せずに手書き文字を扱うことができる。よって、本実施形態の時系列情報200の構造は、使用言語の異なる世界中の様々な国で共通に使用できる。
図5は、タブレットコンピュータ10のシステム構成を示す図である。
タブレットコンピュータ10は、図5に示されるように、CPU101、システムコントローラ102、主メモリ103、グラフィクスコントローラ105、BIOS−ROM105、不揮発性メモリ106、無線通信デバイス107、エンベデッドコントローラ(EC)108等を備える。
CPU101は、タブレットコンピュータ10内の各種モジュールの動作を制御するプロセッサである。CPU101は、ストレージデバイスである不揮発性メモリ106から主メモリ103にロードされる各種ソフトウェアを実行する。これらソフトウェアには、オペレーティングシステム(OS)201、および各種アプリケーションプログラムが含まれている。アプリケーションプログラムには、手書きノートアプリケーションプログラム202が含まれている。この手書きノートアプリケーションプログラム202は、上述の手書き文書を作成および表示する機能、文書変換システム2と共同して手書き文書を整形する機能、等を有している。
また、CPU101は、BIOS−ROM105に格納された基本入出力システム(BIOS)も実行する。BIOSは、ハードウェア制御のためのプログラムである。
システムコントローラ102は、CPU101のローカルバスと各種コンポーネントとの間を接続するデバイスである。システムコントローラ102には、主メモリ103をアクセス制御するメモリコントローラも内蔵されている。また、システムコントローラ102は、PCI EXPRESS規格のシリアルバスなどを介してグラフィクスコントローラ104との通信を実行する機能も有している。
グラフィクスコントローラ104は、本タブレットコンピュータ10のディスプレイモニタとして使用されるLCD17Aを制御する表示コントローラである。このグラフィクスコントローラ104によって生成される表示信号はLCD17Aに送られる。LCD17Aは、表示信号に基づいて画面イメージを表示する。このLCD17A上にはタッチパネル17Bおよびデジタイザ17Cが配置されている。タッチパネル17Bは、LCD17Aの画面上で入力を行うための静電容量式のポインティングデバイスである。指が接触される画面上の接触位置および接触位置の動き等はタッチパネル17Bによって検出される。デジタイザ17CはLCD17Aの画面上で入力を行うための電磁誘導式のポインティングデバイスである。ペン100が接触される画面上の接触位置および接触位置の動き等はデジタイザ17Cによって検出される。
無線通信デバイス107は、無線LANまたは3G移動通信などの無線通信を実行するように構成されたデバイスである。EC108は、電力管理のためのエンベデッドコントローラを含むワンチップマイクロコンピュータである。EC108は、ユーザによるパワーボタンの操作に応じて本タブレットコンピュータ10を電源オンまたは電源オフする機能を有している。
次に、手書きノートアプリケーションプログラム202によってユーザに提示される幾つかの代表的な画面の例を説明する。
図6は、手書きノートアプリケーションプログラム202によって表示されるデスクトップ/ドロア画面を示す。デスクトップ/ドロア画面は複数の手書き文書データを扱うための基本画面である。以下では、手書き文書データを手書きノートとも称する。
デスクトップ/ドロア画面は、デスクトップ画面領域70とドロア画面領域71とを含む。デスクトップ画面領域70は作業中の複数の手書きノートに対応する複数のノートアイコン801〜805を表示するテンポラリ領域である。ノートアイコン801〜805の各々は、対応する手書きノート内のあるページのサムネイルを表示する。デスクトップ画面領域70は、さらに、ペンアイコン771、カレンダーアイコン772、スクラップノートアイコン773、タグアイコン774を表示する。
ペンアイコン771は、表示画面をデスクトップ/ドロア画面から図8で後述するノートビュー画面に切り替えるためのグラフィカルユーザインタフェース(GUI)である。カレンダーアイコン772は現在の日付を示すアイコンである。このカレンダーアイコン772は、表示画面をデスクトップ/ドロア画面から現在の日付に関連付けられたタイムラインノート画面に切り替えるためのGUIである。スクラップノートアイコン773は、スクラップデータを作成または閲覧するためのGUIである。作成されたスクラップデータはストラップブック(ストラップノート)に登録される。スクラップノートアイコン773は、スクラップブックに登録されている各スクラップデータのサムネイルを表示する。文書変換システム2から受信される電子文書(手書き文書の整形結果)をスクラップデータとしてストラップブックに登録することかできる。ユーザは、スクラップブック内の任意のスクラップデータを作成/編集中の手書きノートにインポートすることができる。タグアイコン774は、任意の手書きノート内の任意のページに付箋紙(タグ)を貼り付けるためのGUIである。
ドロア画面領域71は、作成済みの全ての手書きノートを格納するためのストレージ領域を閲覧するための表示領域である。ドロア画面領域71は、全ての手書きノート内の幾つかの手書きノートに対応するノートアイコン80A,80B,80Cを表示する。ノートアイコン80A,80B,80Cの各々は、対応する手書きノート内のあるページのサムネイルを表示する。手書きノートアプリケーションプログラム202は外部オブジェクトを使用してユーザによって行われるドロア画面領域71上のジェスチャ(例えばスワイプジェスチャ等)を検出することができる。このジェスチャ(例えばスワイプジェスチャ等)の検出に応答して、手書きノートアプリケーションプログラム202は、ドロア画面領域71上の画面イメージを左方向または右方向にスクロールする。これにより、ドロア画面領域71に任意の手書きノートそれぞれに対応するノートアイコンを表示することができる。
さらに、手書きノートアプリケーションプログラム202は外部オブジェクトを使用してユーザによって行われるドロア画面領域71のノートアイコン上のジェスチャ(例えばタップジェスチャ等)を検出することができる。ドロア画面領域71上のあるノートアイコン上のジェスチャ(例えばタップジェスチャ等)の検出に応答して、手書きノートアプリケーションプログラム202は、このノートアイコンをデスクトップ画面領域70の中央部に移動する。そして、手書きノートアプリケーションプログラム202は、このノートアイコンに対応する手書きノートを選択し、そして、デスクトップ/ドロア画面の代わりに、図7に示すデスクトップ画面を表示する。図7のデスクトップ画面は、選択された手書きノート内の任意のページを閲覧可能な画面である。
さらに、手書きノートアプリケーションプログラム202は外部オブジェクトを使用してユーザによって行われるデスクトップ画面領域70上のジェスチャ(例えばタップジェスチャ等)も検出することができる。デスクトップ画面領域70の中央部に位置するノートアイコン上のジェスチャ(例えばタップジェスチャ等)の検出に応答して、手書きノートアプリケーションプログラム202は、中央部に位置するノートアイコンに対応する手書きノートを選択し、そして、デスクトップ/ドロア画面の代わりに、図7に示すデスクトップ画面を表示する。
上述したように、図7のデスクトップ画面は、選択された手書きノート内の任意のページを閲覧可能な画面である。ここでは、ノートアイコン801に対応する手書きノートが選択された場合を想定する。この場合、手書きノートアプリケーションプログラム202は、この手書きノートに含まれる複数のページ902,903,904,905を、これらページ901,902,903,904,905それぞれの少なくとも一部分が視認可能で且つこれらページ901,902,903,904,905が重なった形態で表示する。
デスクトップ画面は、さらに、上述のペンアイコン771、カレンダーアイコン772、スクラップノートアイコン773、タグアイコン774を表示する。
手書きノートアプリケーションプログラム202はユーザによって行われるデスクトップ画面上の様々なジェスチャを検出することができる。例えば、あるジェスチャの検出に応答して、手書きノートアプリケーションプログラム202は、一番上に表示されるべきページを任意のページに変更する(ページ送り、ページ戻し)。また、一番上のページ上で行われるあるジェスチャ(例えばタップジェスチャ)の検出に応答して、またはペンアイコン771上で行われるあるジェスチャ(例えばタップジェスチャ)の検出に応答して、手書きノートアプリケーションプログラム202は、一番上のページを選択し、そしてデスクトップ画面の代わりに、図8に示すノートビュー画面を表示する。
図8のノートビュー画面は、ページ(手書きページ)の新規作成、および既存のページの閲覧および編集が可能な画面である。図7のデスクトップ画面上のページ901が選択された場合には、図8に示すように、ノートビュー画面は、ページ901の内容を表示する。
ノートビュー画面は、さらに、黒ペンボタン501、赤ペンボタン502、マーカーボタン503、選択ボタン504、および消しゴムボタン505を表示する。
例えば、黒ペンボタン501がユーザによるタップジェスチャによって選択された状態で、ペン100を用いた手書き入力操作がノートビュー画面上で行われると、手書きノートアプリケーションプログラム202は、ペン100の動きに合わせて黒色のストローク(軌跡)をノートビュー画面上に表示する。選択ボタン504は、ノートビュー画面上の任意の範囲を選択するための範囲選択ツールを起動するためのボタンである。ユーザによるタップジェスチャによって選択ボタン504が選択された状態で、ペン100を用いた手書き入力操作がノートビュー画面上で行われると、手書きノートアプリケーションプログラム202は、ペン100のドラッグ操作に応じて、ノートビュー画面中に矩形枠または自由枠を描画する。この矩形枠または自由枠によって囲まれる部分が選択範囲として使用される。
図9は、手書きノートアプリケーションプログラム202の機能構成を示す。
手書きノートアプリケーションプログラム202は、手書きデータを扱うことが可能なWYSIWYGアプリケーションであり、ペン軌跡表示処理部301、時系列情報生成部302、ページ保存処理部304、ページ取得処理部305、手書き文書表示処理部306、範囲選択部307、送信部308、受信部309、および整形結果表示処理部310等を備える。
手書きノートアプリケーションプログラム202は、タッチスクリーンディスプレイ17を用いて入力されるストロークデータを使用することによって、手書き文書の作成、表示、編集等を行う。タッチスクリーンディスプレイ17は、「タッチ」、「移動(スライド)」、「リリース」等のイベントの発生を検出するように構成されている。「タッチ」は、画面上に外部オブジェクトが接触したことを示すイベントである。「移動(スライド)」は、画面上に外部オブジェクトが接触されている間に接触位置が移動されたことを示すイベントである。「リリース」は、画面から外部オブジェクトが離されたことを示すイベントである。
ペン軌跡表示処理部301および時系列情報生成部302は、タッチスクリーンディスプレイ17によって発生される「タッチ」または「移動(スライド)」のイベントを受信し、これによって手書き入力操作を検出する。「タッチ」イベントには、接触位置の座標が含まれている。「移動(スライド)」イベントにも、移動先の接触位置の座標が含まれている。したがって、ペン軌跡表示処理部301および時系列情報生成部302は、タッチスクリーンディスプレイ17から、接触位置の動きの軌跡に対応する座標列を受信することができる。
ペン軌跡表示処理部301は、手書きによって入力される複数のストロークをタッチスクリーンディスプレイ17内のLCD17Aの画面上に表示する。より詳しくは、ペン軌跡表示処理部301は、タッチスクリーンディスプレイ17から座標列を受信し、この座標列に基づいて、ペン100等を使用した手書き入力操作によって書かれる手書きオブジェクトに対応する各ストロークをタッチスクリーンディスプレイ17内のLCD17Aの画面上に表示する。このペン軌跡表示処理部301により、画面にペン100が接触している間のペン100の軌跡、つまり各ストロークの軌跡がLCD17Aの画面上に描かれる。
時系列情報生成部302は、タッチスクリーンディスプレイ17から出力される上述の座標列を受信し、この座標列に基づいて、図4で詳述したような構造を有する上述の時系列情報(ストロークデータの集合)を生成する。この場合、時系列情報、つまりストロークの各点に対応する座標およびタイムスタンプ情報は作業メモリ401に一時保存してもよい。
ページ保存処理部304は、生成された時系列情報を手書き文書(手書きページ)として記憶媒体402に保存する。記憶媒体402は、上述したように、タブレットコンピュータ10内のストレージデバイス、パーソナルコンピュータ1内のストレージデバイス、サーバ2のストレージデバイスのいずれであってもよい。
ページ取得処理部305は、記憶媒体402から既に格納されている任意の時系列情報を読み出す。読み出された時系列情報は手書き文書表示処理部306に送られる。手書き文書表示処理部306は、時系列情報を解析し、この解析結果に基づいて、時系列情報によって示される各ストローク(手書きによって入力された各ストローク)を画面上に手書きページとして表示する。
範囲選択部307は、ノートビュー画面上の選択範囲によって指定される手書き部分を手書きページから選択する。この手書き部分の選択は、ユーザによって行われる範囲選択操作に応じて実行される。範囲選択操作は、ノートビュー画面上の手書きページ内の任意の部分、つまり任意の手書き部分を選択するための操作である。ユーザは、例えば「範囲選択」ツールを使用することにより、ペン100の操作によって画面上の任意の部分を矩形枠等によって囲むことができる。範囲選択部307は、矩形枠によって囲まれた選択範囲内に属する手書き部分、つまり選択範囲内に属する複数のストロークを、上述の整形等の機能を実行すべき処理対象手書き部分として選択することができる。
送信部308は、範囲選択部307によって選択される手書き部分を手書き文書変換システム2に送信するように構成されている。より詳しくは、送信部308は、範囲選択部307によって選択される手書き部分(複数のストローク)に対応する複数のストロークデータを手書き文書変換システム2に送信する。受信部309は、上述の手書き部分(複数のストローク)を整形することによって得られる整形結果(1以上のオブジェクトデータ)を手書き文書変換システム2から受信する。整形結果表示処理部310は、整形結果をノートビュー画面上に表示する。これにより、ユーザは、手書きページ内の選択範囲以外の手書き部分それぞれを手書きの状態に維持したまま、手書きページ内の選択範囲に対応する手書き部分のみを整形することができる。
整形結果をノートビュー画面上に表示する処理においては、整形結果表示処理部310は、整形結果と上述の手書き部分とをユーザが容易に見比べられるように、整形結果と上述の手書き部分とを互いに関連づけてノートビュー画面上に表示する。このように、整形結果と上述の手書き部分とを互いに関連づけて表示することにより、手書きページ内の一部分のみを整形する場合でも、整形結果が手書きページ内のどの手書き部分に対応しているかをユーザに分かり易く提示することができる。
図10は、範囲選択部307によって実行される範囲選択動作の例を示す。図10のノートビュー画面においては、複数の手書き文字列と手書きの表601とを含む手書きページが表示されており、この手書きの表601が範囲選択ツールを用いて描画される矩形枠550によって囲まれた場合が想定されている。範囲選択部307は矩形枠550によって示される選択範囲によって指定される手書きの表601を手書きページから選択する。
手書きノートアプリケーションプログラム202は、図11に示すように、ノートビュー画面上に整形ボタン610を表示する。この整形ボタン610がユーザの指またはペン100によってタップされると、送信部308は、範囲選択部307によって選択される手書き部分(ここでは手書きの表601)に対応する複数のストロークデータを手書き文書変換システム2に送信する。受信部309は手書き文書変換システム2から手書きの表601の整形結果を受信する。そして、整形結果表示処理部310は、ノートビュー画面上の手書き部分の表示位置に基づき、手書きの表601と手書きの表601の整形結果とを互いに関連づけてノートビュー画面上に表示することができる。
手書きの表601と整形結果とを互いに関連づけてノートビュー画面上に表示するための表示形態としては、整形前の手書き部分(手書きの表601)と整形結果とをユーザが見比べることが可能な任意の表示形態を使用し得る。
例えば、整形結果表示処理部310は、手書きページの表示形態を、手書きの表601に代えて整形結果が手書きの表601の表示位置に表示される第1の表示形態と、整形結果に代えて手書きの表601が上述の表示位置に表示される第2の表示形態との間で切り替えてもよい。
この場合、整形結果表示処理部310は、まず、図12に示すように、手書き部分の表示位置に基づき、整形結果602を手書きの表601に代えてこの手書きの表601の表示位置に表示する。つまり、整形結果表示処理部310は、手書きページ内の手書きの表601を整形結果602に入れ替える。
整形結果表示処理部310は、図12の整形結果602上で行われるジェスチャ(例えば、ユーザの指によって行われるタップジェスチャ)を検出することができる。図12の整形結果602上で行われるジェスチャの検出に応答して、整形結果表示処理部310は、図13に示すように、表示切り替えボタン621を整形結果602の近くに表示する。表示切り替えボタン621は、手書きページの表示形態を、上述の第1の表示形態と上述の第2の表示形態との間で切り替えるためのユーザインタフェースである。
表示切り替えボタン621がペン100または指によってタップされた時、整形結果表示処理部310は、図14に示すように、手書き部分(手書きの表601)の表示位置に基づき、整形結果602に代えて、手書きの表601を元の表示位置に表示する。手書きの表601の近くには表示切り替えボタン621が表示される。表示切り替えボタン621がペン100または指によって再びタップされた時、整形結果表示処理部310は、図13に示すように、手書き部分の表示位置に基づき、整形結果602を手書きの表601に代えてこの手書きの表601の表示位置に再び表示する。
このように、本実施形態では、ユーザの操作に応じて、手書きページの表示形態を、手書きページ内の選択範囲内の表示内容が整形結果に入れ替えられる図12または図13の表示形態と、選択範囲内の表示内容が元の手書き部分に戻される図14の表示形態との間で切り替えることができる。これにより、ノートビュー画面のサイズに限りがある場合でも、ユーザは、変換前の手書き部分の内容と整形結果の内容とを見比べて整形結果が正しいか否かを容易に確認することができる。整形結果が正しくない場合には、ユーザは、例えば図示しないアンドゥボタンをタップすること等により、ノートビュー画面を範囲選択操作が実行される前の状態に戻すことができる。そして、ユーザは、必要に応じて、範囲選択操作、及び整形ボタン610のタップ操作を再度行うことができる。
整形前の手書き部分(手書きの表601)と整形結果とをユーザが見比べることが可能な任意の表示形態としては、図15に示すように、整形結果602の表示領域と手書きの表601の表示領域とが少なくとも一部重ねて表示される表示形態を使用してもよい。この場合、整形結果表示処理部310は、整形結果602の表示領域を手書きの表601の表示領域の少なくとも一部の上に重ねて表示してもよい。さらに、整形結果表示処理部310は、整形結果602内の複数の文字列および複数の線と手書き部分(手書きの表601)内の複数の手書き文字および手書きの線とが重なり合うことによって整形結果602が見づらくなることを防ぐために、図15に示すように、手書き部分(手書きの表601)に含まれる複数のストロークの線種(太さ、実線/破線、等)または色を変更することもできる。各ストロークの色を変更するための方法としては、各ストロークを薄く表示できる任意の方法を使用し得る。例えば、各ストロークの現在の色の階調レベルを変更してもよい。あるいは、各ストロークの現在の色を、予め決められた特定の薄い色に変更してもよい。
また、複数のストロークの線種(線幅、実線/破線、等)を変更する方法としては、各ストロークを薄く表示することができる任意の方法を使用できる。例えば、(1)これら複数のストロークの線幅を細くしてもよく、あるいは(2)これら複数のストロークを破線にしてもよい。
そして、整形結果表示処理部310は、手書き部分の表示位置に基づき、整形結果602を、図15に示すように、手書きの表601上に重ねて表示する。この場合、必ずしも整形結果602の表示領域全体が手書きの表601の表示領域上に重なる必要は無く、整形結果602の表示領域が部分的に手書きの表601の表示領域上に重なるように、整形結果602の領事領域の表示位置を、手書きの表601の表示領域の表示位置に対して上下方向または左右方向にずらしてもよい。さらに、整形結果表示処理部310は、手書きの表601の表示領域と重なる整形結果602の表示領域で、手書きの表601の少なくとも一部が整形結果602の表示領域を通して透けて見えるように表示する。例えば、、整形結果表示処理部310は、整形結果602の背面にある手書きの表601が整形結果602の背景(整形結果602の表示領域)を通して透けて見えるように整形結果602の背景(整形結果602の表示領域)の透明度を設定してもよい。この場合、整形結果602の背景は透明であってもよい。
さらに、整形結果表示処理部310は、ノートビュー画面上に「OK」ボタン611、「キャンセル」ボタン612を表示してもよい。「OK」ボタン611がユーザによって操作(例えばタップ操作)された時、整形結果表示処理部310は、手書きの表601を整形結果602に入れ替える。この場合、手書きの表601はノートビュー画面から消され、そして整形結果602が元の手書きの表601の表示位置に表示されるように必要に応じて整形結果602の表示位置が移動される。一方、「キャンセル」ボタン612がユーザによって操作(例えばタップ操作)された時、整形結果表示処理部310は、整形結果602をノートビュー画面から消し、手書きの表601に含まれる複数のストロークの線種(太さ、実線/破線、等)または色を元の状態に戻す。
また、整形結果表示処理部310は、整形結果602内の複数の文字列および複数の線と手書きの表601内の複数の手書き文字および手書きの線とが重なり合うことによって整形結果602が見づらくなることを防ぐために、図16に示すように、手書きの表601内の各手書き文字に対応する1以上のストロークの軌跡をノートビュー画面から消してもよい。この場合、手書きの表601の複数の罫線に対応する複数のストロークだけが表示され、手書きの表601の各セルの手書き文字に対応する複数のストロークは表示されない。各セルの手書き文字に対応する複数のストロークを削除することにより、整形結果602の視認性を高めることができる。また、たとえ各セルの手書き文字に対応する複数のストロークを削除しても、ユーザは手書きの表601の複数の罫線と整形結果の複数の罫線とを見比べることができるので、整形結果の縦横の要素(セル)数が手書きの表601の縦横の要素(セル)数と同じであるかどうかなどを確認することができる。
さらに、整形結果表示処理部310は、手書きの表601の複数の罫線に対応する複数のストロークの線種(太さ、実線/破線、等)または色を変更してもよい。これにより、整形結果602の視認性をさらに高めることができる。
そして、整形結果表示処理部310は、手書き文字に対応する複数のストロークが削除された手書きの表601の表示領域と整形結果602の表示領域とを少なくとも一部重ねて表示する。整形結果表示処理部310は、例えば、手書きの表601の表示領域の少なくとも一部上に重ねて整形結果602の表示領域を表示してもよい。この場合、整形結果602の背面にある手書きの表601が整形結果602の背景を通して透けて見えるように整形結果602の背景は例えば透明に設定される。
図16のノートビュー画面上の「OK」ボタン611がユーザによって操作(例えばタップ操作)された時、整形結果表示処理部310は、手書きの表601を整形結果602に入れ替える。この場合、手書きの表601はノートビュー画面から消され、そして整形結果602が元の手書きの表601の表示位置に表示されるように必要に応じて整形結果602の表示位置が移動される。一方、「キャンセル」ボタン612がユーザによって操作(例えばタップ操作)された時、整形結果表示処理部310は、整形結果602をノートビュー画面から消し、手書きの表601に含まれる複数のストロークの線種(太さ、実線/破線、等)または色を元の状態に戻す。さらに、整形結果表示処理部310は、手書きの表601内の各セル上に、削除された手書き文字のストロークを再び表示する。
図17のフローチャートは、手書きノートアプリケーションプログラム202によって実行される手書き文書処理の手順を示す。
手書きノートアプリケーションプログラム202は、ノートビュー画面を表示する(ステップS11)。そして、手書きノートアプリケーションプログラム202は、手書きによって記載される複数のストロークを含む手書き文書をノートビュー画面上に表示する(ステップS12)。ステップS12では、手書き文書を構成する複数のストロークがノートビュー画面上に表示される。これらストロークの表示は、例えば、記憶媒体402から読み出した手書きページデータに基づいて行われても良いし、ノートビュー画面上の手書き入力操作に応じて行われても良い。手書きノートアプリケーションプログラム202は、ノートビュー画面上の選択範囲によって指定される手書き部分(複数のストローク)を手書き文書から選択する(ステップS13)。
ユーザによって整形機能の実行が要求されたならば(ステップS14のYES)、手書きノートアプリケーションプログラム202は、選択される手書き部分を文書変換システム2に送信する(ステップS15)。ステップS15では、選択される手書き部分に含まれる複数のストロークに対応する複数のストロークデータが文書変換システム2に送信される。
そして、手書きノートアプリケーションプログラム202は、手書き部分を整形することによって得られる整形結果(オブジェクトデータ)を文書変換システム2から受信する(ステップS16)。手書きノートアプリケーションプログラム202は、手書き部分の表示位置(表示領域)に基づき、整形結果(オブジェクトデータに対応するオブジェクト)と手書き部分とを互いに関連づけてノートビュー画面上に表示する(ステップS17)。
ステップS17では、図12、図13で説明したように、手書きノートアプリケーションプログラム202は、手書き部分の表示位置に基づき、手書き部分に代えて整形結果を手書き部分の表示位置に表示してもよい。これにより、手書き文書内の選択範囲の表示内容は整形結果に入れ替えられる。そして、手書きノートアプリケーションプログラム202は、図13、図14で説明したように、ユーザによる操作に応じて、手書き文書内の選択範囲に表示すべき内容を、整形結果と元の手書き部分との間で交互に切り替える。
あるいは、図15、図16で説明したように、手書きノートアプリケーションプログラム202は、手書き部分に含まれる複数のストロークの線種または色を変更し、そして手書き部分の表示位置に基づき、手書き部分の表示領域と整形結果の表示領域とを少なくとも一部重ねて表示してもよい。
以上説明したように、本実施形態においては、画面上の選択範囲によって指定される手書き部分がタブレットコンピュータ10から手書き文書変換システム2に送信される。そして、手書き部分と手書き文書変換システム2から受信される整形結果とが互いに関連付けられた画面上に表示される。したがって、手書き文書内の所望の部分を容易に整形することができ、また整形結果をユーザが整形前の手書き部分と整形結果とを見比べることが可能な形態でユーザに提示することができる。
本実施形態の手書き文書に対する各種処理はコンピュータプログラムによって実現することができるので、このコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのコンピュータプログラムを通常のコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。