<本実施形態における表示装置のフォントの選択例>
例えば、店頭に手書きメニューが置かれる場合がある(メニューとはディスプレー上に表示される操作項目の一覧である)。手書きメニューは店員がその日のおすすめのメニューを手書きしたものであるが、デザイン性などある程度のスキルを有する者が書くことが好ましいとされている。つまり、誰でも書けるわけではなかった。一方、本実施形態の表示装置は手書きデータを文字認識するので、だれでも清書された文字を入力して表示できる。しかし、このようなメニューはお店のブランドイメージに関わるので、お店の雰囲気や料理ジャンルなどに適したフォントで文字等を表示することが好ましい。
しかしながら、お店のブランドイメージに適したフォントとして店員はどのフォントを選べばよいか分からないという不都合がある。一般的なワープロソフトウェアなどではフォント名がそのフォントスタイルで表示され、ユーザーがフォントを選択できるようになっているが、フォントスタイルを見てもお店のブランドイメージなどに適したフォントを選べるとは限らない。また、そもそもお店のブランドイメージにあったフォントがどのようなものかを分かっていないため選択すること自体が容易でない。
そこで、本実施形態の表示装置は、ユーザーが業務又は業種を選択すると業種又は業種のイメージに適したフォントセットを自動的に選択することを可能にした。フォントセットとは複数のフォントが1セットになったものである。また、フォントセット内のフォントの切り替えを、ユーザーが手書きする文字のサイズで行うことができる。
図1は、本実施形態の表示装置がフォントを切り替える動作又は処理を説明する図である。
(1) ユーザーは予め決まっているキーワードを手書きする。図1では「ぎょうむ」が手書きされた。
(2) 表示装置は「ぎょうむ」が後述する操作コマンドであると判定し、フォントが用意されている業務の選択肢301(「フードメニュー」「図面」「レポート」「表作成」。これらは操作コマンドである。)、及び、文字列候補539を表示する。操作コマンドとは表示装置が実行する命令である。表示装置は命令に応じた処理を実行する。
(3) ユーザーは選択肢301から手書きデータが使用される業務を選択する。図1では「フードメニュー」が選択された。これにより、ユーザーが保持するペン2500に対応付けられたペンID制御データ(後述する)にフードメニューというフォントセットが設定される。フォントセットには複数のフォントが含まれ、フォントにはフォントスタイル(フォントスタイルとはフォントのデザインである)が含まれる(フォントセットには複数のフォントスタイルが含まれる)。
(4) 業務の選択により操作ガイド500はいったん消去され、ユーザーが手書きデータを入力すると、文字列候補539が表示される。図1では「ランチ」と手書きしたため、「ランチ」「ランチメニュー」「ランチョン」「ランチャー」という文字列候補539が表示されている。
(5) ユーザーが「ランチ」を選択すると、表示装置は「ランチ」というテキストデータ(後述する文字列オブジェクト302)を、(3)で選択した業務に応じて用意されているフォントセットが有するフォントの1つで表示する。表示装置は例えば、手書きされた「ランチ」の文字のサイズに応じて、「ランチ」という文字列オブジェクト302(テキストデータ)のフォントを切り替える。あくまで一例であるが、表示装置は以下のように切り替える。
小:教科書体
中:丸ゴシック体
大:ポップ体
このように表示装置は、ユーザーが手書きした文字のサイズに応じてフォントセットからフォントを自動的に切り替えて表示できる。
図2は、表示装置が手書き看板として使用された場合に、業務に応じて設定されたフォントセットで表示された文字の表示例を示す。この手書き看板は見出し欄311、メニュー欄312、及び、説明欄313の3つの領域を有している。領域を区分する境界線もユーザーが手書きしたものであるが、領域に分けられている必要はない。ペン2500に対応付けられたペンID制御データにフードメニューというフォントセットが設定された状態で、ユーザーは見出し欄311には大きい文字で、メニュー欄312には中くらいの文字、説明欄313には小さい文字で手書きする。従って、見出し欄311の文字はポップ体で表示され、メニュー欄312の文字は丸ゴシック体で表示され、説明欄313の文字は教科書体で表示される。
このように、ユーザーは自分の業務を選択することで、自分の業務のイメージに適したフォントセット(複数のフォントを有するフォントの集まりである)に切り替えて文字を表示できる。また、ユーザーは手書きする場合の文字のサイズを調整することで、業務にあったフォントセットから文字サイズに適したフォントで表示できる。ユーザーはフォントを直接選択する必要がなく、お店のブランドイメージにあったフォントが何かを検討する必要もない。このように、本実施形態の表示装置はフォント選択時の操作性を向上することができる。
なお、表示装置の利用方法としては店頭だけでなく、病院など施設内の案内、工事現場の法的情報提示、工場の注意事項や作業内容など、掲示板的な役割を担うことができる利用方法で好適に活用できる。掲示板に限らず、電子黒板としての表示装置にユーザーが文字を入力する場合も利用できる。また、図面を表示させる部署などの業務に適したフォントに切り替える場合も有効である。
<用語について>
手書きデータとは、ディスプレー上でユーザーが入力手段を連続的に移動させた座標点列を軌跡として表示したデータである。また、ユーザーがディスプレーに入力手段を押しつけてから連続的に移動させた後、ディスプレーから離すという一連の操作をストロークといい、ストロークにより手書きされたデータをストロークデータという。手書きデータは1つ以上のストロークデータを有する。
入力手段とはタッチパネルに座標を指定して手書きが可能な手段であればよい。例えば、ペン、人の指や手、棒状部材などがある。また、視線入力が可能でもよい。手書きデータとは、タッチパネル上でユーザーが入力手段を連続的に移動させた座標点列を軌跡として表示したデータである。また、ユーザーがタッチパネルに入力手段を押しつけてから連続的に移動させた後、タッチパネルから離すという一連の操作をストロークという。ストロークにより手書きされたデータはストロークデータという。手書きデータは1つ以上のストロークデータを有する。手書き入力とは、ユーザーによって、手書きデータが入力されることを示している。
手書きデータとは、手書きデータそのものだけでなく、手書きデータが文字認識して変換されたテキストデータ、「済」などの決まった文字やマークとして表示されるスタンプ、円や星などの図形、直線等、ユーザーの操作に基づいて表示されたデータをいう。
フォントセットとは複数のフォントを有するフォントの集まりをいう。フォントとはコンピューターで使う文字のデザイン(デザインとは見た目、外観、意匠など)の書体をいう。フォントスタイルとはこのデザインをいう。各フォントはフォントスタイルを有している。
フォントで表示される文字とは、日本語に限らず、アルファベットを含む文字をいう。また、%、&などの記号、及び、数字も設定されたフォントで表示されてよい。また、三角形や丸などの図形も設定されたフォントで表示されてよい。
手書き入力起因データとは、タッチパネルに手書きされたことで入力されたデータをいう。入力後に手書きのままか、テキストデータに変換されたかは問わない。また、外部機器から取得されたデータも手書き由来であることは失われない。手書き入力起因データは文字認識して変換されたテキストデータの他、「済」「秘」などの決まった文字やマークとして表示されるスタンプ、円や星などの図形、直線等、ユーザーの操作に基づいて変換されたデータも含まれてよい。
<ペンの外観の一例>
図3は、ペン2500の斜視図の一例を示す。図3は多機能なペン2500の一例を示す。電源を内蔵して表示装置2に命令を送信できるペン2500をアクティブペンという(電源を内蔵しないペンをパッシブペンという)。図3のペン2500は、物理的なスイッチがペン先に一つ、ペン尻に一つ、ペン側面に二つあり、ペン先が筆記用、ペン尻が消去用、ペン側面はユーザー機能割り当て用である。本実施形態では、更に、不揮発性のメモリーを有しており、このメモリーは他のペンと重複しないPenIdを記憶している。PenIdはペン2500の識別情報である。
なお、スイッチ付きのペンであれば、ユーザーの表示装置2の操作手順を減らすことも可能である。スイッチ付きのペンとは主にアクティブペンを言うが、電磁誘導方式では電源を内蔵しないパッシブペンでもLC回路だけで電力を発生できるため、アクティブペンだけでなく電磁誘導方式のパッシブペンを含む。電磁誘導方式以外の光学方式、赤外線方式、及び、静電容量方式のスイッチのあるペンはアクティブペンである。
なお、ペン2500のハードウェア構成は、通信機能とマイコンを備えた一般的な制御方式と同様であるとする。ペン2500は、電磁誘導方式、アクティブ静電結合方式などがある。また、ペン2500は、筆圧検知、傾き検知、ホバー機能(ペンが触れる前にカーソルを表示)、などの機能を有していてよい。
なお、本実施形態では4つのペン2500が用意されているものとして説明する。4つのペン2500を個別に指し示す場合は「ペン1、ペン2、ペン3、ペン4」と称する。ただし、ペンの数は4つに限られず、1〜3でも5つ以上でもよい。
<装置の全体構成>
図4を用いて、本実施形態に係る表示装置2の全体構成を説明する。図4は、表示装置2の全体構成図を示した図である。図4(a)は、表示装置2の一例として、壁につり下げられた横長の電子黒板として使用される表示装置2を示している。
図4(a)に示されているように、表示装置2の上部には表示装置の一例としてのディスプレー220が設置されている。ユーザーUは、ペン2500を用いて、ディスプレー220に文字等を手書きする(入力、描画ともいう)ことができる。
図4(b)は壁につり下げられた縦長の電子黒板として使用される表示装置2を示している。
図4(c)は机230に平置きされた表示装置2を示す。表示装置2は厚みが1cm程度なので、一般の机に平置きされても机の高さを調整する必要がない。また、ユーザーが表示装置2を容易に移動できる。
なお、表示装置2がどの置き方で使用されているかはチルトセンサーにより表示装置2が自動的に検出できる。
<装置のハードウェア構成>
続いて、図5を用いて、表示装置2のハードウェア構成を説明する。表示装置2は図示するように情報処理装置又はコンピュータの構成を有している。図5は、表示装置2のハードウェア構成図の一例である。図5に示されているように、表示装置2は、CPU201(Central Processing Unit)、ROM202(Read Only Memory)、RAM203(Random Access Memory)、及び、SSD204(Solid State Drive)を備えている。
これらのうち、CPU201は、表示装置2全体の動作を制御する。ROM202は、CPU201やIPL(Initial Program Loader)等のCPU201の駆動に用いられるプログラムを記憶する。RAM203は、CPU201のワークエリアとして使用される。SSD204は、表示装置2用のプログラム等の各種データを記憶する。
また、表示装置2は、ディスプレーコントローラー213、タッチセンサーコントローラー215、タッチセンサー216、ディスプレー220、電源スイッチ227、チルトセンサー217、シリアルインターフェース218、スピーカー219、マイク221、無線通信装置222、赤外線I/F223、電源制御回路224、ACアダプター225、及びバッテリー226を備えている。
ディスプレーコントローラー213は、出力画像をディスプレー220等へ出力するために画面表示の制御及び管理を行う。タッチセンサー216は、ディスプレー220上にペン2500やユーザーの手等(ペンやユーザーの手は入力手段となる)が接触したことを検知する。また、タッチセンサー216はPenIdを受信する。
タッチセンサーコントローラー215は、タッチセンサー216の処理を制御する。タッチセンサー216は、座標の入力及び座標の検出を行う。この座標の入力及び座標を検出する方法は、例えば、光学式の場合、ディスプレー220の上側両端部に設置された2つ受発光装置が、ディスプレー220に平行して複数の赤外線を放射する方法である。複数の赤外線は、ディスプレー220の周囲に設けられた反射部材によって反射されて、受光素子が放射した光の光路と同一の光路上を戻って来る光を受発光装置が受光する。
タッチセンサー216は、物体によって遮断された2つの受発光装置が放射した赤外線の位置情報をタッチセンサーコントローラー215に出力し、タッチセンサーコントローラー215が、物体の接触位置である座標位置を特定する。また、タッチセンサーコントローラー215は通信ユニット215aを有しており、ペン2500と無線で通信することができる。例えば、Bluetooth(登録商標)などの規格で通信している場合は、市販されているペンを使用することができる。通信ユニット215aに予め1つ以上のペン2500を登録しておくと、ユーザーはペン2500を表示装置2と通信させる接続設定を行わなくても通信できる。
電源スイッチ227は、表示装置2の電源のON/OFFを切り換えるためのスイッチである。チルトセンサー217は、表示装置2の傾き角度を検出するセンサーである。チルトセンサー217は、主に、表示装置2が図4(a)、図4(b)又は、図4(c)のいずれかの設置状態で使用されているかを検出するために使用され、設置状態に応じて文字等の太さを自動で変更することができる。
シリアルインターフェース218はUSBやLANインターフェースなどの外部との通信インターフェースである。シリアルインターフェース218は外部からの情報の入力などに使用される。スピーカー219は音声の出力に使用され、マイク221は音声の入力に使用される。無線通信装置222は、ユーザーが携帯する端末と通信し、例えばインターネットへの接続を中継する。無線通信装置222はWi−FiやBluetooth(登録商標)などで通信するが、通信規格は問われない。無線通信装置222はアクセスポイントを形成しており、ユーザーが入手したSSID(Service Set Identifier)とパスワードをユーザーが携帯する端末に設定すると、アクセスポイントに接続できる。
なお、無線通信装置222に2つのアクセスポイントが用意されているとよい。
(a) アクセスポイント→インターネット
(b) アクセスポイント→社内ネットワーク→インターネット
(a)のアクセスポイントは社外のユーザー用で、ユーザーは社内ネットワークにはアクセスできないが、インターネットを利用できる。(b)のアクセスポイントは社内のユーザー用で、ユーザーは社内ネットワーク及びインターネットを利用できる。
赤外線I/F223は隣に配置された表示装置2を検出する。赤外線I/F223は赤外線の直進性を利用して、隣に配置された表示装置2のみを検出できる。赤外線I/F223は各辺に1つずつ設けられることが好ましく、表示装置2のどの方向に他の表示装置2が配置されたのかを検出できる。隣の表示装置2は過去に手書きされた手書き情報(1つのディスプレー220の広さを1ページとして別のページの手書き情報)を表示できる。
電源制御回路224は表示装置2の電源であるACアダプター225とバッテリー226を制御する。ACアダプター225は商用電源が共有する交流を直流に変換する。
ディスプレー220がいわゆる電子ペーパーの場合、画像が描画された後の画像を維持するためにほとんど又は一切電力を消費しないので、バッテリー226による駆動も可能である。これにより、屋外など電源を接続しにくい場所でもデジタルサイネージなどの用途で表示装置2を使用することが可能になる。
更に、表示装置2は、バスライン210を備えている。バスライン210は、図5に示されているCPU201等の各構成要素を電気的に接続するためのアドレスバスやデータバス等である。
なお、タッチセンサー216は、光学式に限らず、静電容量の変化を検知することにより接触位置を特定する静電容量方式のタッチパネルでもよい。タッチセンサー216は、対向する2つの抵抗膜の電圧変化によって接触位置を特定する抵抗膜方式のタッチパネルでもよい。タッチセンサー216は接触物体が表示部に接触することによって生じる電磁誘導を検知して接触位置を特定する電磁誘導方式のタッチパネルでもよい。タッチセンサー216は種々の検出手段で接触位置を特定できる。タッチセンサー216は、ペン先のタッチの有無を検知するのに電子ペンが必要ない方式であってよい。この場合はタッチ操作をするのに指先やペン型の棒を使用できる。なお、ペン2500は、細長いペン型である必要はない。
<装置の機能について>
次に、図6を用いて、表示装置2とペン2500が有する機能について説明する。図6(a)は表示装置2が有する機能をブロック状に示す機能ブロック図の一例である。表示装置2は、手書き入力部21、表示部22、手書き入力表示制御部23、候補表示タイマー制御部24、手書き入力保存部25、手書き認識制御部26、手書き認識辞書部27、文字列変換制御部28、文字列変換辞書部29、予測変換制御部30、予測変換辞書部31、操作コマンド認識制御部32、操作コマンド定義部33、ペンID制御データ保存部36、ファイル送受信制御部37、手書きサイン認証制御部38、及び、手書きサインデータ保存部39を備えている。表示装置2が有する各機能は、図5に示されている各構成要素のいずれかが、SSD204からRAM203上に展開されたプログラムに従ったCPU201からの命令によって動作することで実現される機能又は手段である。
手書き入力部21はタッチセンサー216等により実現されており、ユーザーによる手書き入力を受け付け、PenIdを受信する。手書き入力部21はユーザーのペン入力d1をPenId付きのペン操作データd2(ペンアップ、ペンダウン、又はペン座標データ)に変換し、手書き入力表示制御部23に送信する。ペン座標データは離散値として定期的に送信され、離散値間の座標は補完計算される。
表示部22はディスプレー220等により実現され、手書きされたオブジェクトや操作メニューを表示する。表示部22は手書き入力表示制御部23がビデオメモリーに書き込んだ描画データd3をディスプレー220の特性に応じたデータに変換し、ディスプレー220に送信する。
手書き入力表示制御部23は手書き入力と表示に関する全体的な制御を行う。手書き入力表示制御部23は手書き入力部21からのペン操作データd2を処理し、表示部22に送信することで表示させる。また、手書き入力表示制御部23はペンID制御データ保存部36に保存されているフォントセットに基づいてフォントを切り替えて、フォントセットに含まれるフォントのフォントスタイルで文字列オブジェクトを表示する。ペン操作データd2の処理及びストロークの表示の詳細は後述の図32〜図39にて説明する。
候補表示タイマー制御部24は、選択可能候補の表示制御タイマーである。候補表示タイマー制御部24はタイマーを開始又は停止して選択可能候補の表示を開始するタイミングと表示を消去するタイミングを生成する。選択可能候補とは、後述する操作ガイドに選択可能に表示される手書き認識文字列/言語文字列候補、変換文字列候補、文字列/予測変換の候補、操作コマンドの候補、である。候補表示タイマー制御部24は手書き入力表示制御部23からタイマー開始要求d4(タイマー停止要求の場合もある)を受信し、タイムアウトイベントd5を手書き入力表示制御部23に送信する。
手書き入力保存部25はユーザーデータ(手書きオブジェクト/文字列オブジェクト)を保存しておくストレージの機能を有する。手書きオブジェクトはストロークで構成される認識前の文字などのオブジェクトであり、文字列オブジェクトは認識後の文字等のオブジェクトをいう。手書き入力保存部25は手書き入力表示制御部23からユーザーデータd6−1を受信し、手書き入力保存部25に保存し、手書き入力表示制御部23から取得要求d6−2を受け取って、手書き入力保存部25に保存されたユーザーデータd7を送信する。手書き入力保存部25は、確定オブジェクトの位置情報d36を操作コマンド認識制御部32に送信する。
手書き認識制御部26はオンライン手書き認識を行う認識エンジンである。一般的なOCR(Optical Character Reader)とは異なり、ユーザーのペン操作と並行して文字(日本語だけでなく英語などの多国語)、数字、記号(%、$、&など)、図形(線、丸、三角など)等を認識していく。認識方法については様々なアルゴリズムが考案されているが、本実施形態では公知の技術を利用できるとして詳細を割愛する。
手書き認識制御部26はペン操作データd8−1を手書き入力表示制御部23から受信し、手書き認識を実行して手書き認識文字列候補を保持する。また、手書き認識制御部26は手書き認識辞書部27を使用して手書き認識文字列候補d12から変換した言語文字列候補を保持しておく。別途、取得要求d8−2を手書き入力表示制御部23から受信した場合、手書き認識制御部26は保持している手書き認識文字列候補及び言語文字列候補d9を手書き入力表示制御部23に送信する。
手書き認識辞書部27は手書き認識の言語変換用の辞書データである。手書き認識辞書部27は手書き認識文字列候補d12を手書き認識制御部26から受信し、言語的に確からしい言語文字列候補d13に変換して手書き認識制御部26に送信する。例えば、日本語の場合は、平仮名を漢字や片仮名へ変換する。
文字列変換制御部28は変換文字列候補の文字列への変換を制御する。変換文字列とは手書き認識文字列又は言語文字列を含んで生成される可能性が高い文字列である。文字列変換制御部28は手書き認識文字列及び言語文字列候補d11を手書き認識制御部26から受信し、文字列変換辞書部29を使用して変換文字列候補に変換して保持しておく。別途、取得要求d14を手書き入力表示制御部23から受信した場合、文字列変換制御部28は、保持している変換文字列候補d15を手書き入力表示制御部23に送信する。
文字列変換辞書部29は文字列変換用の辞書データである。文字列変換辞書部29は文字列変換制御部28から手書き認識文字列及び言語文字列候補d17を受信し、変換文字列候補d18を文字列変換制御部28に送信する。
予測変換制御部30は手書き認識文字列及び言語文字列候補d10を手書き認識制御部26から受信し、変換文字列候補d16を文字列変換制御部28から受信し、それぞれについて予測変換辞書部31を使用して予測文字列候補に変換しておく。予測変換文字列とは手書き認識文字列、言語文字列又は変換文字列を含んで生成される可能性が高い文字列である。別途、取得要求d19を手書き入力表示制御部23から受信した場合、予測変換制御部30は予測文字列候補d20を手書き入力表示制御部23に送信する。
予測変換辞書部31は予測変換用の辞書データである。予測変換辞書部31は手書き認識文字列及び言語文字列候補と変換文字列候補d21を予測変換制御部30から受信し、予測文字列候補d22を予測変換制御部30に送信する。
操作コマンド認識制御部32は手書き認識文字列及び言語文字列候補d30を手書き認識制御部26から受信し、変換文字列候補d28を文字列変換制御部28から受信し、予測文字列候補d29を予測変換制御部30から受信する。そして、操作コマンド認識制御部32はそれぞれについて操作コマンド変換要求d26を操作コマンド定義部33に送信し、操作コマンド定義部33から操作コマンドの候補d27を受信する。操作コマンド認識制御部32は操作コマンドの候補d27を保持しておく。
操作コマンド定義部33は操作コマンド変換要求d26が操作コマンド定義と部分一致している場合は操作コマンドの候補d27を操作コマンド認識制御部32に送信する。
また、操作コマンド認識制御部32はペン操作データd24−1を手書き入力表示制御部23から受信し、過去に入力され確定した確定オブジェクトの位置情報取得要求d23を手書き入力保存部25に送信する。手書き入力保存部25はペン操作データが指定している確定オブジェクトを選択オブジェクト(位置情報を含む)として保持しておく。操作コマンド認識制御部32はペン操作データd24−1の位置と所定の基準を満たす選択オブジェクトを特定する。操作コマンド認識制御部32は、別途、取得要求d24−2を手書き入力表示制御部23から受信した場合、保持している操作コマンドの候補と特定した選択オブジェクトd25を手書き入力表示制御部23に送信する。
ペンID制御データ保存部36は、ペンID制御データを保持している(記憶手段といってもよい)。手書き入力表示制御部23が表示部22に表示データを送信する前に、ペンID制御データ保存部36はペンID制御データd41を手書き入力表示制御部23に送信する。手書き入力表示制御部23は、PenIdに対応付けて保存されている動作条件で表示データを描画する。また、手書き認識制御部26が手書き認識を実行する前に、ペンID制御データ保存部36は手書き認識制御部26にペンID制御データの角度情報d44を送信する。手書き認識制御部26はPenIdに対応づけて保存されている角度情報でストロークを回転して手書き認識を実行する。
また、ユーザーが文字等を手書きする場合の角度情報を設定するための直線を認識した後、手書き認識制御部26はペンID制御データの角度情報d43をペンID制御データ保存部36に送信して、PenIdに対応付けて角度情報d43を保存する。また、手書き入力表示制御部23が角度情報を設定する操作コマンドを実行後に、手書き入力表示制御部23はペンID制御データd42をペンID制御データ保存部36に送信する。ペンID制御データ保存部36は操作コマンドの実行結果(ユーザーが設定した角度情報)をPenIdに対応付けて保存する。以降、そのPenIdのストロークは設定した角度情報で回転してから手書き認識が実行される。
また、手書き認識制御部26はペンID制御データの角度情報で時計回りに回転させたストロークデータd49を手書きサイン認証制御部38に送信する。これにより、ユーザーの位置(表示装置2に対しどの方向から手書きするか)に関わりなく手書きサインの認証が可能になる。
手書きサインデータ保存部39は、手書きサインデータを保持する。手書きサインデータ保存部39は、手書きサインデータ取得要求d45を手書きサイン認証制御部38から受信した場合、手書きサインデータd46を手書きサイン認証制御部38に送信する。手書きサインデータのフォーマットは手書きサイン認証制御部38の手書きサイン認証のアルゴリズムに依存するものとする。手書きサインデータ保存部39のデータについては図15にて説明する。
手書きサイン認証制御部38は手書き認識制御部26から時計回りに回転したストロークデータd49を受信すると、手書きサインデータ保存部39に手書きサインデータ取得要求d45を送信し、手書きサインデータ保存部39は手書きサインデータd46を手書きサイン認証制御部38に送信する。
手書きサイン認証制御部38は手書きサインデータに基づいてユーザーの認証を行う。手書きサインデータに基づくユーザーの認証には様々なアルゴリズムが考案されているが、本実施形態では実用に支障がない認識率で認識できる技術を使用するものとする。手書きサイン認証制御部38は、例えば、手書きサインデータを構成する座標、筆圧、ストロークを書く時間などを要素とする特徴ベクトルを生成する。手書きサイン認証制御部38は要素に適宜重み付けをして、登録済みの手書きサインデータの特徴ベクトルとサインイン時にユーザーが手書きしたユーザー名等の特徴ベクトルを比較する。一致度が閾値以上の場合、手書きサイン認証制御部38は、認証成功と判定し、閾値未満の場合、認証失敗と判定する。
手書きサイン認証制御部38はストロークデータd49と手書きサインデータd46の比較結果である手書きサインの認証結果を保持しておく。手書きサイン認証制御部38は、別途、手書き入力表示制御部23から取得要求d48を受信した場合、保持している手書きサインの認証結果d47を手書き入力表示制御部23に送信する。手書きサインの認証結果は、ストロークデータd49と手書きサインデータd46が一致したと見なせるか否か、及び、一致したと見せる場合は、一致した手書きサインデータd46に対応付けられている後述するSignatureIdを有する。
手書き認識制御部26の手書き認識結果が手書きサイン登録の実行を指示する操作コマンドに適合する場合、手書き認識制御部26は手書き入力保存部25から手書きサイン登録フォーム(後述するように、手書きサインデータが入力される枠)に入力されたデータd52を取得する。手書き認識制御部26はデータd52のうち手書きサインデータd50を手書きサイン認証制御部38に送信する。手書きサイン認証制御部38は受信した手書きサインデータd50を手書きサインデータ保存部39に送信して登録する。
手書き認識制御部26の手書き認識結果が手書きサインの取消指示又は登録の実行の場合、手書き認識制御部26は手書き入力保存部25に手書きサイン登録フォームの削除要求d51を送信して、手書き入力保存部25から手書きサイン登録フォームを削除する。
手書き認識制御部26の手書き認識結果がユーザー定義データ変更の実行指示の場合、手書き認識制御部26は手書き入力保存部25からユーザー定義データ変更フォームに入力されたデータd53を取得する。手書き認識制御部26は、データd53のうち変更値d54を操作コマンド定義部33に送信し、ユーザー定義データを変更する。ユーザー定義データについては図14にて説明する。
手書き認識制御部26の手書き認識結果がユーザー定義データ変更フォームの取消指示又は登録の実行の場合、手書き認識制御部26は手書き入力保存部25にユーザー定義データ変更フォームの削除要求d55を送信し、手書き入力保存部25からユーザー定義データ変更フォームを削除する。
ファイル送受信制御部37は、手書き入力起因データ又は手書き入力起因データでないデータの記憶媒体へのファイルの保存及び取得、外部機器との通信(印刷要求、表示要求など)等を行う。ファイル送受信制御部37は手書き入力表示制御部23からファイルの送受信の実行要求d64を受け取る。ファイルの保存又は印刷時、手書き入力表示制御部23はファイル送信要求をファイル送受信制御部37に送信し、ファイル送受信制御部37は手書き入力保存データd61の取得要求を手書き入力保存部25に送信する。
・手書き入力起因データでないデータの場合、手書き入力保存部25は該データが保持する色情報のまま送信する。
・手書き入力起因データの場合、手書き入力保存部25は送信先がカラー対応装置(例えばカラープリンタ)の場合はカラーに変換した手書き入力保存データd62をファイル送受信制御部37に送信する。
・手書き入力起因データの場合、手書き入力保存部25は送信先が白黒対応装置(例えばモノクロプリンタ)の場合は白黒に変換した手書き入力保存データd62をファイル送受信制御部37に送信する。白黒対応装置がグレースケールへの変換が可能な場合もあるので、カラーに変換してから送信してもよい。
・送信先が白黒強調対応装置の場合は後述する手書き入力保存データをファイル送受信制御部37に送信する。
・また、手書き入力保存部25が、手書き入力起因データをファイルに保存する場合は、手書き入力保存データd62をファイル形式に従ってカラーに変換すると共に、手書き入力保存データをファイルのメタデータとして添付する。手書き入力起因データでないデータをファイルに保存する場合は、手書き入力保存データd62をファイル形式に従ってカラーに変換する。
カラー対応装置か白黒対応装置かは、例えば、ネットワーク機器が保持するMIB(Management Information Base)に保存されており、ファイル送受信制御部37はMIBを取得することで判定できる。同様に、MIBが公開する機種名などから白黒強調対応装置かどうかも判定できる。
ファイルの読み込み時は、手書き入力表示制御部23はファイル一覧取得要求d65をファイル送受信制御部37に送信し、ファイル送受信制御部37は外部機器にファイル一覧取得要求を送信して、ファイル一覧d63を取得し手書き入力表示制御部23に送信する。手書き入力表示制御部23はファイル一覧を表示部22に表示して、手書き入力部21は選択ファイルの表示位置を手書き入力表示制御部23に送信し、手書き入力表示制御部23はファイル受信要求d66をファイル送受信制御部37に送信する。ファイル送受信制御部37は外部機器からファイルを取得して、このファイルd67を手書き入力保存部25に送信する。手書き入力保存部25はファイルのメタデータを解析して、手書き入力起因データであるかどうかを判定し、手書き入力起因データであれば手書き入力保存データ(後述する白黒強調/カラー変換可能データ)を取り出す。ファイル送受信制御部37は、手書き入力起因データを白黒強調表示に変換し、手書き入力起因データでなければ変換せずに手書き入力表示制御部23に送信する(グレースケール化で表示される)。手書き入力表示制御部23は手書きオブジェクトの表示データを表示部22に送信する。
図6(b)は、ペン2500の機能をブロック状に示す機能ブロック図である。ペン2500はペンイベント送信部41を有している。ペンイベント送信部41はペンアップ、ペンダウン、ペン座標のイベントデータにPenIdをつけて表示装置2に送信する。
<定義済み制御データについて>
次に、図7A〜図7Cを用いて、表示装置2が各種の処理に使用する定義済み制御データについて説明する。図7A〜図7Cは定義済み制御データの一例を示す。図7A〜図7Cの例では定義済み制御項目ごとに定義済み制御データを示す。また、図7B,図7Cは利用シーン別の定義済み制御データを示す。
選択可能候補表示タイマー401は、選択可能候補を表示するまでの時間を定義する。これは、手書き中に選択可能候補を表示しないためである。図7Aでは、ペンアップからTimerValue=500〔ms〕以内にペンダウンが発生しなければ選択可能候補が表示されることを意味している。選択可能候補表示タイマー401は候補表示タイマー制御部24が保持している。選択可能候補表示タイマー401は、後述する図34のステップS18−2において選択可能候補表示タイマー開始時に使用される。
選択可能候補消去タイマー402は表示した選択可能候補を消去するまでの時間を定義する。ユーザーが選択可能候補を選択しない場合に選択可能候補を消去するためである。図7Aでは、選択可能候補の表示からTimerValue=5000〔ms〕以内に選択可能候補が選択されなければ選択可能候補表示データが消去されることを意味している。選択可能候補消去タイマー402は候補表示タイマー制御部24が保持している。選択可能候補消去タイマー402は図36のステップS64において選択可能候補表示消去タイマー開始時に使用される。
手書きオブジェクト矩形領域403は手書きオブジェクトの近傍とみなす矩形領域を定義する。図7Aの例では、手書きオブジェクト矩形領域403は、手書きオブジェクトの矩形領域を水平方向に推定文字サイズの50%(Horizontal)拡大し、垂直方向に推定文字サイズの80%(Vertical)拡大した矩形領域となる。図7Aの例では推定文字サイズの割合(%指定)となっているが、単位を"mm"等とすれば固定長にすることも可能である。手書きオブジェクト矩形領域403は手書き入力保存部25が保持している。手書きオブジェクト矩形領域403は図33のステップS10において、手書きオブジェクト矩形領域とストローク矩形領域の重なり状況の判定で使用される。
推定書字方向/文字サイズ判定条件404は、書字方向と文字サイズの測定方向を判定するための定数を定義する。図7Aの例では、手書きオブジェクト矩形領域の最初にストロークが追加された時刻と最後にストロークが追加された時刻の差分がMinTime=1000〔ms〕以上で、手書きオブジェクト矩形領域の水平距離(幅)と垂直距離(高さ)の差分がMinDiff=10〔mm〕以上あり、かつ、水平距離が垂直距離より長い場合は、推定書字方向は「横書き」、推定文字サイズは垂直距離と判定することを意味する。水平距離が垂直距離より短い場合は、推定書字方向は「縦書き」、推定文字サイズは水平距離と判定することを意味する。以上の条件を満たさない場合は、推定書字方向は「横書き」(DefaultDir="Horizontal")、推定文字サイズは垂直距離と判定する。推定書字方向/文字サイズ判定条件404は手書き入力保存部25が保持している。推定書字方向/文字サイズ判定条件404は図36のステップS59における推定書字方向取得と、図39のステップS81における文字列オブジェクトフォント取得で使用される。
推定文字サイズ405は文字等のサイズを推定するためのデータを定義する。図7Aの例では、推定書字方向/文字サイズ判定条件404で判定された推定文字サイズが、推定文字サイズ405の小さめ文字405a(以下、最小フォントサイズ、と呼ぶ)と大きめ文字405c(以下、最大フォントサイズ)と比較されることを意味する。推定文字サイズが最小フォントサイズより小さい場合、推定文字サイズは最小フォントサイズと判定される。推定文字サイズが最大フォントサイズより大きい場合、推定文字サイズは最大フォントサイズと判定される。それ以外は、中くらい文字405bの文字サイズと判定される。推定文字サイズ405は手書き入力保存部25が保持している。推定文字サイズ405はフォントセットが選択されていない場合に使用され、図39のステップS81における文字列オブジェクトフォント取得で使用される。補足すると本実施例では後述するペンID制御データにFontSet又はFontNameが追加された場合、手書き入力表示制御部23が他方を削除するものとする。
手書き入力保存部25は具体的には、推定書字方向/文字サイズ判定条件404で判定された推定文字サイズを推定文字サイズ405のFontSizeと比較して、最も近いサイズのフォントを使用する。手書き入力保存部25は、例えば、推定文字サイズが25〔mm〕(小さめ文字のFontSize)以下の場合は「小さめ文字」を使用する。手書き入力保存部25は、推定文字サイズが25mm超50mm(中くらい文字のFontSize)以下の場合は「中くらい文字」を使用する。手書き入力保存部25は、推定文字サイズが100mm(大きめ文字のFontSize)超の場合は「大きめ文字」を使用する。「小さめ文字」405aは明朝体の25mmフォント(FontStyle="明朝体" FontSize="25mm")、「中くらい文字」405bは明朝体の50mmフォント(FontStyle="明朝体" FontSize="50mm")、「大きめ文字」405cはゴシック体の100mmフォント(FontStyle="ゴシック体" FontSize="100mm")を使用する。もっとフォントのサイズ又はスタイルの種類を増やしたい場合は、推定文字サイズ405の種類を増やせばよい。
業務別フォントセット408〜411はそれぞれ業務に対応したフォントセットを定義する。図7Aの例では、業務別フォントセット408がフードメニューという業務で使用されるフォントセットを定義し、業務別フォントセット409が図面という業務で使用されるフォントセットを定義する。また、業務別フォントセット410がレポートという業務で使用されるフォントセットを定義し、業務別フォントセット411がスプレッドシートという業務で使用されるフォントセットを定義している。また、推定文字サイズ405と同様に業務別フォントセット408〜411のそれぞれが推定書字方向/文字サイズ判定条件404で判定された推定文字サイズに応じて、小さめ文字、中くらい文字、及び、大きめ文字のフォントを定義している。従って、各文字サイズごとにフォントのパラメータ(FontSet、FontStyle、及び、FontSize)が定義されている。例えば、業務別フォントセット408において、フードメニューという業務の小さめ文字のFontSetは「FoodMenu」であり、FontStyleは「教科書体」であり、FontSizeは「25mm」である。FontSetは後述する操作コマンドが実行された場合にフォントセットを特定する情報となる。FontStyleはフォントスタイル(フォントの形状)を定義し、FontSizeは文字列オブジェクトのサイズを定義する。同様に、フードメニューという業務の中くらい文字のFontSetは「FoodMenu」であり、FontStyleは「丸ゴシック体」であり、FontSizeは「50mm」である。フードメニューという業務の大きめ文字のFontSetは「FoodMenu」であり、FontStyleは「ポップ体」であり、FontSizeは「100mm」である。FontSetは1つの業務(例えばフードメニュー)に共通であり、操作コマンドの実行により大、中、小の文字サイズのフォントセットがまとめて特定される。業務別フォントセット409〜411も同様である。業務別フォントセット408〜411は図39のステップS81における文字列オブジェクトフォント取得で使用される。
図7Bに示す、業種別フォントセット412〜415は業種(業務でなく)に対応したフォントセットを定義する。また、業種別フォントセット412〜415はペン2500ごと(入力手段ごと)にフォントセットを定義する。すなわち、業種別フォントセット412〜415はペン1、ペン2、ペン3及びペン4のそれぞれで大、中、小の文字サイズのフォントセットを定義する。なお、ペン1〜4はそれぞれPenId1〜4という識別情報を有する。例えば、建設という業種のペン1の小さめ文字では、FontSetは「Construction1」であり、FontStyleは「明朝体」であり、FontSizeは「25mm」である。FontSetとFontStyleはペン1に共通で、FontSizeのみが異なっている。なお、FontStyleが共通である必要はない。FontSetについては操作コマンドが実行された場合にフォントを特定する情報となるため、ペン1に共通となる。ペン2の場合はFontSetが「Construction2」、FontStyleが「ゴシック体」、FontSizeが「25mm」「50mm」又は「100mm」となる。ペン3の場合はFontSetが「Construction3」、FontStyleが「ゴシック体」、FontSizeが「25mm」「50mm」又は「100mm」となる。ペン4の場合はFontSetが「Construction4」、FontStyleが「丸ゴシック体」、FontSizeが「25mm」「50mm」又は「100mm」となる。業種別フォントセット412〜415は図39のステップS81における文字列オブジェクトフォント取得で使用される。
なお、ユーザーは文字のサイズ以外で複数のフォントを使い分けてもよい。例えば、ペン先とペン尻のどちらで手書きされたかによってフォントを使い分ける方法がある。この場合は定義済み制御データにペン先とペン尻に別のフォントが対応付けられる。ペンのボタンを使用してフォントを切り替えることもできる。ユーザーが表示させたメニューなどから、使用するフォントを明示的に選択してもよい。また、1つのペンに対応付くフォントセットは3つである必要はなく、2つ以上であればよい。
上記の業務別フォントセット408〜411が1つずつ個別に選択されるのに対し、業種別フォントセット412〜415は1回の操作コマンドの実行でペン1〜4にそれぞれのフォントセットが同時に設定される。従って、業種別フォントセット412〜415によりペン1〜4ごとにフォントを変えることができる。このような使い方は、複数の業者(あるいは立場の異なる複数の担当者)が1つの表示装置2に手書きするようなケースにおいて、誰が記入したかを見る者が区別したい場合に採用される。各業者は決まったペン1〜4を使用して手書きする。
業種別フォントセット416〜419は「工場」という業種に対応したフォントセットを定義する。つまり、業種別フォントセット416〜419には「工場」で使用される場合の用途に適したフォントセットが定義されている。ペン1〜4のFontSetはそれぞれ「Factory1」〜「Factory4」である。また、業種別フォントセット416〜419では、ペン1〜4のFontStyleがいずれも「ゴシック体」で共通であるが、小さめ文字、中くらい文字及び大きめ文字に関係なくFontSizeが同じで、かつ、ペン1〜4ごとに異なっている。
従って、工場ではペンごとに文字サイズを変更すること、すなわち、一人のユーザーがペン1〜4を取り替えて種々の文字サイズで手書きすることが可能になる。例えば、工場における製品の生産データの表中に書く詳細な説明文は小さいサイズで、アクションアイテムは大きなサイズで書くことができる。当然ながら、複数のユーザーがそれぞれペン1〜4を使って手書きすることもできる。また、1つのペン1〜4で文字サイズが変わると読みにくくなるため、「小さめ文字/中くらい文字/大きめ文字」のすべてで文字サイズが共通となっている。
図7Cに示されている、業種向けワークセット420は業種別フォントセット412〜415と後述する操作コマンド定義データを結びつける制御データである。所定の操作コマンドが実行されると業種向けワークセット420が特定され、業種別フォントセット412〜415とペン1〜4がペンID制御データで対応付けられる。業種向けワークセット420は業種が「建設」向けのワークセットであり、ペン1〜4のそれぞれにWorkSet、PenId、FontSet、を定義する。WorkSetの「Construction」は操作コマンドと対応付けられている。PenIdはペン1〜4の識別情報であり、FontSetは業種別フォントセット412〜415と対応付けられている。従って、「WorkSet="Construction"」の操作コマンドが実行されると、ペン1と業種別フォントセット412がペンID制御データで対応付けられ、ペン2と業種別フォントセット413がペンID制御データで対応付けられる。また、ペン3と業種別フォントセット414がペンID制御データで対応付けられ、ペン4と業種別フォントセット415がペンID制御データで対応付けられる。
業種向けワークセット421も同様であり、業種別フォントセット416〜419と後述する操作コマンド定義データを結びつける制御データである。「WorkSet="Factory"」の操作コマンドが実行されると、ペン1と業種別フォントセット416がペンID制御データで対応付けられ、ペン2と業種別フォントセット417がペンID制御データで対応付けられる。また、ペン3と業種別フォントセット418がペンID制御データで対応付けられ、ペン4と業種別フォントセット419がペンID制御データで対応付けられる。
業務別フォントセット408〜411と業種別フォントセット412〜415、416〜419は手書き入力保存部25が保持している。
図7Aに戻って説明する。跨ぎ線判定条件406は複数のオブジェクトが選択されたか否かの判定に使用されるデータを定義する。手書きオブジェクトが単数のストロークであり、図7Aの例では、手書きオブジェクトの長辺の長さが100〔mm〕以上(MinLenLongSide="100mm")、かつ、短辺の長さが50〔mm〕以下(MaxLenShortSide="50mm")、かつ、手書きオブジェクトとの長辺方向と短辺方向の重なり率が80〔%〕以上(MinOverLapRate="80%")のオブジェクトがあれば、複数のオブジェクトが選択された(選択オブジェクト)と判定する。跨ぎ線判定条件406は操作コマンド認識制御部32が保持している。跨ぎ線判定条件406は図35のステップS50における選択オブジェクトの判定の跨ぎ線判定で使用される。
囲み線判定条件407は、オブジェクトが囲み線か否かの判定に使用されるデータを定義する。図7Aの例では、操作コマンド認識制御部32は手書きオブジェクトの長辺方向と短辺方向の重なり率が100%以上(MinOverLapRate="100%")の確定オブジェクトを選択オブジェクトと判定する。囲み線判定条件407は、操作コマンド認識制御部32が保持している。囲み線判定条件407は、図35のステップS50における選択オブジェクトの判定の囲み線判定で使用される。
なお、跨ぎ線判定条件406と囲み線判定条件407はどちらが優先して判定されてもよい。例えば、跨ぎ線判定条件406を緩やかにして(跨ぎ線を選択しやすくした場合)、囲み線判定条件407は厳密にした場合(囲み線のみを選択できるような値とした場合)、操作コマンド認識制御部32は囲み線判定条件407を優先して判定するのがよい。
<辞書データの一例>
図8〜図10を用いて辞書データについて説明する。図8は手書き認識辞書部27の辞書データの一例であり、図9は文字列変換辞書部29の辞書データの一例であり、図10は予測変換辞書部31の辞書データの一例である。なお、これらの辞書データはそれぞれ図35のステップS33〜S41で使用される。
本実施形態では、図8の手書き認識辞書部27の辞書データによる変換結果を言語文字列候補、図9の文字列変換辞書部29の辞書データによる変換結果を変換文字列候補、図10の予測変換辞書部31の辞書データによる変換結果を予測文字列候補と呼ぶ。各辞書データの「変換前」は辞書データを検索する文字列、「変換後」は検索する文字列に対応した変換後の文字列、「確率」はユーザーが選択する確率を表す。確率は過去にユーザーが各文字列を選択した結果から算出されている。従って、ユーザーごとに確率が算出されてもよい。確率の計算方法として様々なアルゴリズムが考案されているが、適宜、適切な方法で計算するものとすればよく、詳細は割愛する。本実施形態では、推定書字方向から文字列候補を選択確率降順で表示することを特徴とする。
図8の手書き認識辞書部27の辞書データでは、手書きされた「ぎ」は、確率0.55で「議」、確率0.45で「技」、手書きされた「ぎし」は、確率0.55で「技士」、確率0.45で「技師」に変換されることを示す。その他の「変換前」の文字列についても同様である。図8では「変換前」の文字列が手書きされた平仮名となっているが、平仮名以外を「変換前」に登録してもよい。
図9の文字列変換辞書部29の辞書データでは、文字列「議」は確率0.95で「議事録」に、文字列「技」は確率0.85で「技量試」に変換されることを示す。その他の「変換前」の文字列についても同様である。
図10の予測変換辞書部31の辞書データでは、文字列「議事録」は確率0.65で「議事録の送付先」に、文字列「技量試」は確率0.75で「技量試を決裁」に変換されることを示す。図10の例では変換前の文字列がすべて漢字になっているが、漢字以外を登録してもよい。
なお、辞書データに言語依存はなく、変換前と変換後にどのような文字列が登録されていてもよい。
<操作コマンド定義部が保持する操作コマンド定義データ>
次に、図11A,図11Bを用いて操作コマンド認識制御部32が使用する操作コマンド定義データについて説明する。図11A,図11Bは、操作コマンド定義部33が保持する操作コマンド定義データとシステム定義データの一例を示す。
図11Aは操作コマンド定義データの一例を示す。図11Aの操作コマンド定義データは、手書きオブジェクトにより選択された選択オブジェクトがない場合の操作コマンド定義データ例であり、表示装置2を操作する全ての操作コマンドが対象となる。図11Aの操作コマンドは操作コマンド名(Name)、文字列候補と部分一致する文字列(String)、実行する操作コマンド文字列(Command)を有する。操作コマンド文字列内の「%〜%」は変数であり、図11Aに示すようにシステム定義データと対応付けられている。つまり、「%〜%」は図11Bに示すシステム定義データで置き換えられる。
まず、操作コマンド定義データ701は、操作コマンド名が「議事録テンプレートを読み込む」、文字列候補と部分一致する文字列が「議事録」又は「テンプレート」、実行する操作コマンド文字列が「ReadFile https://%username%:%password%@server.com/template/minutes.pdf」であることを示す。この例では、実行する操作コマンド文字列に「%〜%」のシステム定義データが含まれており「%username%」「%password%」はそれぞれシステム定義データ704、705で置き換えられることを示す。従って、最終的に実行する操作コマンド文字列は「ReadFile https://taro.tokkyo:x2PDHTyS@server.com/template/minutes.pdf」という文字列となり、「https://taro.tokkyo:x2PDHTyS@server.com/template/minutes.pdf」というファイルを読み込む(ReadFile)ことを示す。
操作コマンド定義データ702は、操作コマンド名が「議事録フォルダーに保存する」、文字列候補と部分一致する文字列が「議事録」又は「保存」、実行する操作コマンド文字列が「WriteFile https://%username%:%password%@server.com/minutes/%machinename%_%yyyy−mm−dd%.pdf」であることを示す。操作コマンド定義データ701と同様に、操作コマンド文字列の「%username%」「%password%」「%machinename%」はそれぞれシステム定義データ704〜706で置き換えられる。なお、「%yyyy−mm−dd%」は現在日で置き換えることを示す。例えば、現在日が2018年9月26日であれば「2018−09−26」で置き換えることを示す。最終的に実行する操作コマンドは「WriteFile https://taro.tokkyo:x2PDHTyS@server.com/minutes/%My−Machine_2018−09−26.pdf」となり、議事録を「https://taro.tokkyo:x2PDHTyS@server.com/minutes/%My−Machine_2018−09−26.pdf」というファイルに保存する(WriteFile)ことを示す。
操作コマンド定義データ703は、操作コマンド名が「印刷する」、文字列候補と部分一致する文字列が「印刷」又は「プリント」、実行する操作コマンド文字列が「PrintFile https://%username%:%password%@server.com/print/%machinename%−"%yyyy−mm−dd%.pdf」であることを示す。操作コマンド定義データ702と同様に操作コマンド文字列を置き換えると、最終的に実行する操作コマンドは「PrintFile https://taro.tokkyo:x2PDHTyS@server.com/print/%My−Machine_2018−09−26.pdf」となり、「https://taro.tokkyo:x2PDHTyS@server.com/print/%My−Machine_2018−09−26.pdf」というファイルを印刷する(PrintFile)ことを示す。つまり、ファイルがサーバーに送信される。ユーザーがプリンターをサーバーと通信させ、ファイルを指定するとプリンターが用紙にファイルの内容を印刷する。
このように、文字列候補から操作コマンド定義データ701〜703を特定できるため、ユーザーが手書きすることで操作コマンドを表示させることができる。また、ユーザーの認証が成功した場合にはユーザー情報で操作コマンド定義データの「%username%」「%password%」等が置き換えられるので、ユーザーに対応付けてファイルの入出力が可能になる。
ユーザーの認証が行われない場合(認証が失敗したがユーザーが表示装置2を使用できる場合は認証失敗の場合も含む)、表示装置2は、予め設定されている表示装置2の「%username%」「%password%」等に置き換える。従って、ユーザー認証なしでも表示装置2に対応付けてファイルの入出力が可能になる。
操作コマンド定義データ709、710、711、720、721、722は、ペン色を変更する操作コマンドである。ペン色とはユーザーが使用しているペンで入力された手書きデータの色である。操作コマンド定義データ709、710、711、720、721、722のそれぞれの操作コマンド名は「黒ペン」「赤ペン」「青ペン」「緑ペン」「マゼンタペン」「シアンペン」である。例えば、「黒ペン」の場合、文字列候補と部分一致する文字列が「くろ」又は「ペン」であり、ユーザーが「くろ」と書けば、操作コマンド候補には「黒ペン」のみが表示される。一方、「ペン」は「赤ペン」等においても文字列候補と部分一致する文字列(String)に該当するので、ユーザーが「ペン」と書けば、操作コマンド候補には「黒ペン」〜「シアンペン」が表示される。これらの操作コマンドが実行されると、図17Aに示すように、ユーザーが操作に使用したペン2500のPenIdに対応付けられたペンID制御データが更新され、このPenIdのペン2500の色(ペンID制御データのColorId)が変更される。
操作コマンド定義データ719は、操作コマンド名が「ファイルを読み込む」、文字列候補と部分一致する文字列(String)が「ファイル」「読み込む」「読み込み」、実行する操作コマンドが「ReadFile https://%username%:%password%@server.com/files/」である。操作コマンド定義データ702と同様にシステム定義データと置き換えると、操作コマンドは「ReadFile https://taro.tokkyo:x2PDHTyS@server.com/files/」となり、このアドレス(フォルダー)のファイルを読み出す(ReadFile)ことを示す。この操作コマンドが実行されると、図12のようなファイル選択ウィンドウを表示装置2が表示する。図12のファイル選択ウィンドウは、このアドレス(フォルダー)に格納されているファイルの1ページ目などをサムネイルで表示する。
図12は図39のステップS94(ファイル一覧表示データ)で表示部22に表示されるファイル一覧表示データの一例である。図12(a)は、図39のステップS91のファイル一覧情報取得で取得されたファイル一覧情報から作成される。ファイル一覧情報は、ファイルアドレスの一覧を有し、表示部22は各ファイルアドレスからファイル名とサムネイルを抽出してファイル名昇順に並び替えて表示する。図12のファイル一覧表示データは4つのサムネイルとファイル名を表示し、左右の矢印アイコン99で前後のサムネイルとファイル名を表示する。表示されたサムネイル又はファイル名がペンで押されると、表示部22は図12の画面を消去し、ペンが押されたファイルアドレスからファイル送受信制御部37がファイルを受信する。
右上隅の閉じるボタン98がペンで押下されると、表示部22は図12の画面を消去して、この操作コマンド定義データ719の実行がキャンセルされる。図12(a)(d)のPDFファイルが選択されると、ファイル送受信制御部37はPDFファイルを受信して手書き入力保存部25に保存して解析する。ファイル送受信制御部37は、手書き由来のテキストデータ(メタデータ有り)を、例えば図16の手書き入力保存データ801〜805のような手書き入力保存データ(白黒強調及びカラー変換可能データ)として保存する。白黒強調及びカラー変換可能データは、白黒強調もカラーへの変換も可能なデータ(主に手書き入力起因データ)である。白黒強調については図19で説明するが、カラー変換とはカラーを輝度(濃淡)に変換することをいう。手書き由来でないテキストデータは、例えば図16の手書き入力保存データ806のような手書き入力保存データに変換して保存し、ディスプレー220に表示する。
図12(b)(c)のPDFファイルが選択されると、ファイル送受信制御部37は画像ファイルを受信して、手書き入力保存部25に例えば図16の手書き入力保存データ807のような手書き入力保存データとして保存して、ディスプレー220に表示する。
図11Aに戻って説明する。操作コマンド定義データ712は、テキストデータの方向を一定方向に揃えるための操作コマンドである。操作コマンド定義データ712の操作コマンド名は「テキスト方向を揃える」、文字列候補と部分一致する文字列が「テキスト」「向き」又は「方向」、操作コマンド文字列が「AlignTextDirection」である。ユーザーが天地方向以外から書き込んだテキストデータは向きがばらばらなので、ある1つの方向から全てを読み取りにくい。操作コマンド定義データ712をユーザーが実行すると、表示装置2は手書き認識した文字列を同一方向(例えば、天地方向)に揃える。この場合の揃えるとは、テキストデータを角度情報だけ回転させることをいう。
操作コマンド定義データ713は、操作コマンド名が「手書きサイン登録する」、文字列候補と部分一致する文字列が「サイン」と「登録」、操作コマンド文字列が「RegistSignature」であることを示す。RegistSignatureコマンドが実行されると、手書き入力保存部25に手書きサイン登録フォームが追加され、操作画面101に手書きサイン登録フォームが表示される。手書きサイン登録フォームの一例については後述する(図29参照)。
操作コマンド定義データ714は、操作コマンド名が「手書きサインインする」、文字列候補と部分位置する文字列が「%signature%」、操作コマンドが「Signin」であることを示す。ここで「%signature%」はシステム定義データの予約語であり、登録済みの手書きサインデータとユーザー名等のストロークデータが適合した事実を表すものとする。つまり適合すると操作コマンド定義データ714に基づく操作コマンド512が操作ガイド500に表示される(図30参照)。
Signinコマンドが実行されると、ユーザー名等のストロークデータを手書きしたペン2500のペンID制御データに、適合した手書きサインデータのSignatureIdをもつユーザーのAccountIdが保存される。これによってPenIdとAccountIdが対応付けられ、このAccountIdで特定されるユーザー定義データを表示装置2が使用することができる(図17A参照)。
操作コマンド定義データ715は、操作コマンド名が「手書きサインアウトする」、文字列候補と部分一致する文字列が「サイン」又は「アウト」、操作コマンドが「Signout」であることを示す。Signoutコマンドが実行されると、手書きサインアウトを操作したペン2500のペンID制御データからAccountIdが削除される。これによってPenIdとAccountIdの対応付けがなくなり、ペン2500を任意のユーザーが使用できるようになる。
操作コマンド定義データ716は、操作コマンド名が「設定変更する」、文字列候補と部分一致する文字列が「設定」又は「変更」、操作コマンドが「ConfigSettings」であることを示す。ConfigSettingsコマンドが実行されると、手書き入力保存部25にユーザー定義データ変更フォームが追加され、操作画面101にユーザー定義データ変更フォームが表示される。ユーザー定義データ変更フォームについては後述する(図31参照)。
操作コマンド定義データ723〜726はそれぞれ業務別フォントセット408〜411をペン2500と対応付ける操作コマンドを定義する(表示装置2が業務別フォントセット408〜411を使用して文字列オブジェクトを表示するように設定する)。Nameは操作コマンドの名称であり、この操作コマンドをユーザーが呼び出すための文字列がいくつかのStringに定義されている。また、操作コマンドで実行される内容がCommandに定義されている。例えば、操作コマンド定義データ723は、「業務」「フォント」「フードメニュー」「フード」又は「メニュー」と手書きされると、「ChangeFontset FoodMenu」を表示装置2が実行し、FontSetが「FoodMenu」の業務別フォントセット408を表示装置2に設定する、ことを定義している(より正確にはペンID制御データに設定する)。操作コマンドを実行したペン2500と業務別フォントセット408がペンID制御データで対応付けられる。なお、表示装置2は業務別フォントセットとペンを対応付けることなく、単に業務別フォントセット408が設定されていてもよい。
同様に、操作コマンド定義データ724は業務別フォントセット409をペン2500と対応付けることを定義し、操作コマンド定義データ725は業務別フォントセット410をペン2500と対応付けることを定義し、操作コマンド定義データ726は業務別フォントセット411をペン2500と対応付けることを定義する。これらペン2500はユーザーが使用しているペンでよい。
操作コマンド定義データ727、728は業種向けワークセット420、421を呼び出して、業種別フォントセット412〜415、416〜419をそれぞれペン1〜4と対応付ける操作コマンドを定義する(表示装置2が業種別フォントセット412〜415、416〜419を使用して文字列オブジェクトを表示するように設定する)。例えば、操作コマンド定義データ727は、「業種」「ワーク」「建設」と手書きされると、「ChangeWorkset Construction」を表示装置2が実行し、WorkSetが「Construction」の業種向けワークセット420を呼び出して、ペン1〜4と業種別フォントセット412〜415を対応付ける、ことを定義している。同様に、操作コマンド定義データ728はペン1〜4と業種別フォントセット416〜419を対応付けることを定義している。
続いて、手書きオブジェクトがある場合の操作コマンド定義データ、つまり編集系及び修飾系の操作コマンド定義データについて説明する。図13は手書きオブジェクトにより選択された選択オブジェクトがある場合の操作コマンド定義データの一例を示す。図13の操作コマンド定義データは、操作コマンド名(Name)、操作コマンドの候補のグループ名(Group)、実行する操作コマンド文字列(Command)を有する。
操作コマンド定義データ707は編集系(Group="Edit")の操作コマンドを定義しており、編集系の操作コマンド名「消去」「移動」「回転」「選択」の定義データ例である。つまり、選択オブジェクトに対してこれらの操作コマンドが表示され、ユーザーが所望の操作コマンドを選択できる。
操作コマンド定義データ708は修飾系(Group="Decorate")の操作コマンドを定義しており、修飾系の操作コマンド名「太く」「細く」「大きく」「小さく」「下線」の定義データ例である。選択オブジェクトに対してこれらの操作コマンドが表示され、ユーザーが所望の操作コマンドを選択できる。この他、色の操作コマンドが表示されてもよい。
従って、ユーザーが選択オブジェクトを手書きオブジェクトで選択することで、操作コマンド定義データ707、708が特定されるため、ユーザーが手書きすることで操作コマンドを表示させることができる。
<ユーザー定義データ>
次に、図14を用いてユーザー定義データについて説明する。図14は、操作コマンド定義部33が保持するユーザー定義データの一例を示す。図14のユーザー定義データは一人分のユーザーの定義データ例である。ユーザー定義データ717のAccountIdはユーザーごとに自動的に採番されるユーザーの識別情報、AccountUsernameとAccountPasswordはユーザー名とパスワード、SignatureIdは手書きサインデータ登録時に自動的に採番される手書きサインデータの識別情報、username, password, machinenameはそれぞれシステム定義データ704〜706の替わりに操作コマンド定義データ701〜703に設定される文字列である。これにより、ユーザー定義データを使用した操作コマンドの実行が可能になる。
ユーザーがユーザー名などを手書きしてサインインした場合、PenIdとAccountIdがペンID制御データに対応付けられていることを利用して(図17A参照)、ユーザーが使用するペン2500のPenIdで対応付けられているAccountIdを有するユーザー定義データの文字列が操作コマンドの実行時に使用される。ユーザーがサインアウトした後は、ユーザーがサインインに使用したペン2500を使用しても、システム定義データの文字列が操作コマンドの実行時に使用される。
ユーザー定義データ718は、ユーザー定義データ変更フォームで使用されるデータである。Nameはユーザー定義データ717のAccountUsername、AccountPassword、username, password, 又はmachinenameの項目名であり、DataはAccountUsername、AccountPassword、username, password, 又はmachinenameの変更値になる。この例では、「名前」のデータは「%AccountName%」、「パスワード」のデータは「%AccountPassword%」、「フォルダーユーザー名」のデータは「%username%」、「フォルダーパスワード」のデータは「%password%」、「フォルダーファイル名」のデータは「%machinename%」であり、ユーザー定義データ717の各項目と対応している。ユーザー定義データ変更フォームで入力されたこれらの項目は、ユーザー定義データ717に反映される。
後述するカラー定義データをユーザー定義データ717にユーザーが登録することも可能であり、ユーザーは自分が定義したカラー定義データで入力できる。
<手書きサインデータ>
次に、図15を用いて、手書きサインデータについて説明する。図15は、手書きサインデータ保存部39が保持する手書きサインデータの一例を示す。手書きサインデータはSignatureIdに対応付けられた手書きサインを表すDataを有する。SignatureIdは手書きサインデータ登録時に自動的に採番される識別情報、Dataは手書きサイン認証制御部38の手書きサイン認証アルゴリズムが、手書きサイン認証制御部38から受信したストロークデータから計算したデータである。
<手書き入力保存部が保存する手書き入力保存データ>
次に、図16を用いて、手書き入力保存データについて説明する。図16は、手書き入力保存部25が保存している手書き入力保存データの一例を示す。図16の1行が1つのストローク、1文(テキスト)、又は画像(イメージ)を表す。
Typeがストロークの場合、1つの手書き入力保存データは、DataId、Type、PenId, ColorId, Angle、StartPoint、StartTime、EndPoint、EndTime、Point、及び、Pressureの各項目を有している。DataIdはストロークの識別情報である。Typeは手書き入力保存データの種別である。種別にはストローク(Stroke)、グループ(Group)、テキスト(Text)、及び、イメージ(Image)がある。手書き入力保存データ801、802の種別はStrokeであり、手書き入力保存データ803の種別はGroupであり、手書き入力保存データ804、805、806の種別はTextであり、手書き入力保存データ807の種別はImageである。
Groupとは他のストロークをグループ化することを意味し、種別がGroupの手書き入力保存データは、DataIdでグループ化の対象のストロークを指定する。PenId、ColorId, Angle、は次述するペンID制御データが転記されたものである。StartPointはストロークの始点座標であり、StartTimeはストロークの始点時刻である。EndPointはストロークの終点座標であり、EndTimeはストロークの終点時刻である。Pointは始点から終点までの座標点列であり、Pressureは始点から終点までの筆圧である。Angleに示すように、手書き入力保存データ804,805はそれぞれ180度、270度だけ時計回りに回転してから手書き認識されたことを示す。
また、Typeがテキスト(Text)の手書き入力保存データ804、805、806は、FontName、FontSize、Textを有している。FontNameはテキストのフォント名、FontSizeは文字サイズ、Textはテキストの内容(文字コード)である。文字サイズの単位には、mmだけでなく、ポイント(pt)、ピクセル(px)、パーセント(%)、又は、エム(em)等があり、どのような単位を利用してもよい。
ペンID制御データにFontNameがなければ、図7Aに示した定義済み制御データの推定文字サイズ405のFontStyleを手書き入力保存部25が手書き入力保存データにコピーする。この場合、定義済み制御データのFontStyleがFontNameに変更される。FontSizeは、ペンID制御データにFontSetがない場合は図7Aの定義済み制御データの推定文字サイズ405からコピーする。この場合、FontSizeはmmからptに単位を変換する。ペンID制御データにFontSetがある場合、図7A、図7Bの定義済み制御データの業務別フォントセット408〜411、業種別フォントセット412〜419のFontSetから選択されたFontStyleとFontSizeをコピーする。この場合、定義済み制御データのFontStyleはFontNameに変更され、FontSizeはmmからptに単位を変換される。
手書き入力保存データ801〜805は手書き入力起因データとしてファイル保存時にはそのままメタデータとして添付されるとよい。従って、ファイル読み込み時も手書き入力保存データ801〜805を表示装置2が取得できる。表示装置2が手書き入力保存データを外部機器に送信する場合は、カラー対応機器では手書き入力保存データをカラーに変換し、白黒対応装置の場合はカラーに変換せずに送信してもカラーに変換して送信してもよい。白黒強調対応装置に送信する場合は、手書き入力保存データを送信すればよい。このように手書き入力保存データ801〜805は白黒強調及びカラー変換のいずれにも対応している。
手書き入力保存データ801〜805が手書き入力起因データであるのに対し、手書き入力保存データ806、807は手書き入力起因データでない。これらはファイル読み込みコマンドで読み込まれたファイルである。このことはColorIdに後述するカラー定義データが定義するカラーの値が登録されているか否かによって判定される。例えば、手書き入力保存データ801のColorIdは「Black」であるが、手書き入力保存データ806のColorIdは「#e6001200」である。これは#と16進数8桁で表し、2桁ごとにR(赤)、G(緑)、B(青)、A(透明度)の値を表す。
このように、手書き由来のテキストデータでは、ColorIdに色情報を表す文字列が入っているが、手書き由来でないテキストデータでは、ColorIdが「#カラー値」となっている。このように、手書き由来のテキストデータかどうかはColorIdに着目して手書き入力保存部25が判定できる。
手書き入力保存部25はファイル送受信制御部37が読み取ったファイルのテキストデータのカラーをColorId="#e6001200"のように保存する。従って手書き入力保存データ806は白黒強調には対応せず、カラー変換にのみ対応している。
手書き入力表示制御部23は、ColorIdで手書き入力起因データかどうかを判定して、手書き由来でない場合はRGBAからグレースケール値を計算して表示する。表示装置2がカラー対応装置の場合はRGBAそのままを表示する。
手書き入力保存データ807もファイル読み込みコマンドで記憶媒体から読み込まれた画像ファイルである。TypeがImageの場合、手書き入力保存データ807はFileId 、FileNameを有する。FileIdは手書き入力保存データ内の管理番号、FileNameはオリジナルのファイル名である。例えば、ファイル送受信制御部37が図12(a)の「color_chart.pdf」のファイルを読み込んだ場合、中心部のRGBCMYのテキストは手書き入力保存データ806の形式で手書き入力保存部25に保存される。また、リング状のカラー部分は手書き入力保存データ807の形式で手書き入力保存部25に保存される。なお、TypeがImageの手書き入力保存データは当然、手書き由来でない。従って、手書き入力表示制御部23はTypeによって手書き由来かどうかを判定してもよい。
図16では、ColorIdの値で手書き入力起因データか否かを手書き入力表示制御部23が判定しているが、手書き由来かどうかは専用のフラグなどで記録されてもよい。また、Typeがストロークの手書きデータに限られるが、機械学習で形状から手書き由来かどうかを判定することもできる。この場合、学習装置はディープラーニングなどで手書き由来かそうでないかの教師データと文字の形状の対応を学習し、入力された文字の形状が手書き由来かそうでないかを出力する。
また、手書き入力起因データには手書きデータが文字認識して変換されたテキストデータだけでなく、「済」「秘」などの決まった文字やマークとして表示されるスタンプ、円や星などの図形、直線等、ユーザーの操作に基づいて変換されたデータが含まれてよい。
手書き入力保存データは、図32のステップS7(ペン座標と受信時刻)、図39のステップS88(手書き入力保存データの取得)、図39のステップS96(ファイル保存)等で使用される。
<ペンID制御データ保存部が保存するペンID制御データ>
次に、図17Aを用いて、ペンID制御データについて説明する。図17Aは、ペンID制御データ保存部36が保存するペンID制御データを説明する図である。ペンID制御データはペン1〜4ごとにフォントセット、角度、色、ユーザーなどを制御する。図17Aでは4つのペン2500がある場合を示す。図17Aの1行が1つのペンのペンID制御データを示す。また、図17Bは表示装置2に対しユーザーが手書きする時の角度情報を説明する図である。角度情報はユーザーが存在する方向の角度とも言えるし、ペンが使用される方向の角度とも言えるし、ユーザーが手書きした文字の回転に関する角度とも言える。表示装置2の所定の方向(例えば天地方向)を0度(基準)として、各ユーザーの角度情報は反時計回りに45度、90度、135度、180度、225度、270度、315度、である。
なお、角度情報はユーザーの位置によって自動的に決まるわけではなく、各ユーザーが角度情報を入力する(指定する)。指定可能な角度情報の分解能(図17Bでは45度)は一例に過ぎず、より小さい5度〜30度などでもよい。ただし、45度くらいで回転した文字であれば、ユーザーは読めると考えられる。
ペンID制御データは、PenId、FontName(フォント指定)、FontSet(フォントセット指定)、ColorId、Angle及びAccountIdを有している。
FontSetは、図23に示す選択ボタン例のボタンをユーザーが押すと追加される。FontSetは図7A、図7Bの定義済み制御データの業務別フォントセット408〜411、業種別フォントセット412〜419で定義されている。Fontsetが設定されたペンで表示される文字列オブジェクトでは、図7Aに示した定義済み制御データの推定文字サイズ405のFontStyleとFontSizeの代わりに、図7A、図7Bの定義済み制御データの業務別フォントセット408〜411、又は、業種別フォントセット412〜419のFontSetに対応付いたFontStyleとFontSizeが取得される。この処理は、図39の制御シーケンス図のステップS81における文字列オブジェクトフォント取得で行われる。
例えば、ペンID制御データにFontSet="FoodMenu"が追加された場合、定義済み制御データの業務別フォントセット408が有する小さめ文字のFontStyle="教科書体"が使われる(表示される)。同様に、FontSize="25mm"、中くらい文字のFontStyle="丸ゴシック体"が使われる(表示される)。FontSize="50mm"、大きめ文字のFontStyle="ポップ体"、FontSize="100mm"が使われる(表示される)。
一方、FontNameは、図21のペン色選択ボタン81〜86をユーザーが押下すると追加される。FontNameが追加されると、そのPenIdで表示される文字列オブジェクトでは、図7Aに示した定義済み制御データの推定文字サイズ405のFontStyleの代わりにFontNameが取得される。この処理は、図39の制御シーケンス図のステップS81における文字列オブジェクトフォント取得で行われる。
FontSetとFontNameはどちらもフォントを指定する点では同じだが、FontSetは小さめ文字、中くらい文字、大きめ文字のフォントとサイズをまとめて変更されるのに対して、FontNameは小さめ文字、中くらい文字、大きめ文字がすべて同じフォントで変更される。FontSetとFontNameは両立しないので、本実施例ではFontSet又はFontNameが追加された場合には手書き入力表示制御部23が他方を削除するものとする。
ColorId、Angle及びAccountIdは必須項目でなく、設定されていない場合はデフォルト値が設定されたものとみなされる。PenIdはペン2500のペン内部に保存されている識別情報である。ColorIdはこのペン2500を使用するユーザーが何色を選択したかを示す(ユーザーが任意に変更可能)。ColorIdには後述するカラー定義データのカラーIDが設定される。カラー定義データで各カラーの詳細、太さ等が定義されている。
Angleはこのペン2500に設定されているストロークの角度情報である(ユーザーが任意に変更可能)。図17Aの例では、ペン1の角度情報は時計回りに0度となっている。AccountIdはユーザーがサインインに使用したペンのユーザーの識別情報である。PenIdにAccountIdが対応付けられることで、ユーザーが使用するペン2500のPenIdに対応付けられているAccountIdを特定でき、ユーザー定義データを使用して操作コマンドを実行できる。
ペンID制御データ1206〜1209は、業務別フォントセット408〜411が設定された場合のペンID制御データであり、図17Aでは4本のペン1〜4のそれぞれで各フォントセットが選択された場合を示す。ペンID制御データ1206はPenIdが1のペンID制御データで、フォントセットは「FoodMenu」、色は黒(Black)、角度情報は0度、AccountId=1である。AccountId=1のユーザーは図14のユーザー定義データ717のユーザーである。このユーザーがPenId=1のペンでユーザー名などを手書きしてサインインし、「FoodMenu」のフォントセットと黒を選択したことを示す。AccountIdがないペンID制御データはサインアウト状態(ユーザーと対応付けられていない)であることを示す。
ペンID制御データ1207はペン2で入力された文字列オブジェクトは「Design」のフォントセットで表示されることを表す。ペンID制御データ1208はペン3で入力された文字列オブジェクトは「Report」のフォントセットで文字が表示されることを表す。ペンID制御データ1209はペン4で入力された文字列オブジェクトは「SpreadSheet」のフォントセットで表示されることを表している。ペンとフォントの対応は一例であり、ユーザーがペン1〜4で選択したフォントセットが設定される。
ペンID制御データ1210〜1213は、業種別フォントセット412〜415が設定された場合のペンID制御データである。このため、ペンID制御データ1210〜1213は、ペン1〜4で入力された文字列オブジェクトはそれぞれ「Construction1」「Construction2」「Construction3」「Construction4」のフォントセットで表示されることを表している。
ペンID制御データ1214〜1217は、業種別フォントセット416〜419が設定された場合のペンID制御データである。このため、ペンID制御データ1214〜1217は、ペン1〜4で入力された文字列オブジェクトはそれぞれ「Factory1」「Factory2」「Factory3」「Factory4」のフォントセットで表示されることを表している。
ペンID制御データは、図32のステップS5(ペンID制御データ取得)、図34のステップS20(ペンID制御データの角度情報を保存)、図34のステップS21(ペンID制御データの角度情報を取得)、図36のステップS60(ペンID制御データの取得)で使用される。
<カラー定義データ>
図18は、カラー定義データの一例を示す。カラー定義データの1行が1つの色を定義する。カラー定義データは、ColorIdに対する白黒対応機器上の白黒強調表示(白黒のパターンと幅(Pattern)と縁取り(Edged)の表示方法)、及び、カラー変換方法(カラー対応機器上の色情報(Color)と幅(Width)の表示方法)を定義している。色情報は#と16進数8桁で表し、2桁ごとに#R(赤)、G(緑)、B(青)、A(透明度)を表し、pxはピクセル幅を表す。なお、カラー定義データは手書き入力起因データのみに適用される。
カラー定義データ1001はColorIdが"Black"の定義例である。Patternはストローク又はテキストの縁の中身を表し、Edgedは縁の有無を表し、ColorはRGBAの色情報を表し、Widthは線幅を表す。カラー定義データ1001は、白黒強調対応装置ではベタ黒5ピクセル幅+縁なしで手書き入力保存データを表示し、カラー対応装置では黒の透明度0%+5ピクセル幅で表示することを示す。同様に、カラー定義データ1002は、白黒強調対応装置では、ベタ黒3ピクセル幅+外側から黒縁1ピクセル幅+白縁2ピクセル幅で表示し、カラー対応装置では、カラーチャートの赤の透明度0%+5ピクセル幅で表示することを示す。カラー定義データ1003は、白黒強調対応装置では、ベタ白4ピクセル幅+黒縁1ピクセル幅で表示し、カラー対応装置では、カラーチャートの青の透明度0%+5ピクセル幅で表示することを示す。カラー定義データ1004は、白黒強調対応装置では、黒のドットパターン4ピクセル幅+黒縁1ピクセル幅で表示し、カラー対応装置では、カラーチャートの緑の透明度0%+5ピクセル幅で表示することを示す。カラー定義データ1005は、白黒強調対応装置では、黒の右上斜線パターンで白は透明の5ピクセル幅+フチなしで表示、カラー対応装置では、カラーチャートのマゼンタの透明度60%で表示することを示す。カラー定義データ1006は、白黒強調対応装置では、黒の水平線パターンで白は透明の5ピクセル幅で表示し、カラー対応装置では、カラーチャートのシアンの透明度60%、で表示することを示す。
このように、カラー定義データは白黒強調及びカラー変換可能データを有している。カラー定義データは手書き入力保存部25が保持しており、手書き入力保存データの変換に使用する。
カラー定義データをシステム定義データとユーザー定義データに定義しておき、ユーザー定義データにカラー定義データを変更するユーザー定義データ変更フォームが用意されることで、サインイン後にユーザーは個人好みのカラー定義に変更することができる。
図19は、図18のカラー定義データを使用して、白黒強調表示されたデータとカラー表示方法で表示されたデータを示す。図19(a)は白黒強調対応装置が白黒強調表示したもので、図19(b)はカラー対応装置がカラーに変換して表示したものである。作図の都合で、図19(b)も白黒(ハッチング)になっている。
符号C1は手書き由来の「黒」「赤」「青」緑」「マゼンタ」「シアン」のテキストである。符号C2は「黒」「赤」「緑」「マゼンタ」「シアン」のストローク(手書き)である。符号C3はバネ状の一筆書きのストローク(手書き)である。符号C4はドーナツ状のカラーチャート(画像)である。符号C5はカラーチャートの内側のRGBCMY(手書き由来ではないテキスト)である。符号C3の下には手書き由来の黒の「Transparent」というテキストがある。
符号C4のカラーチャートと符号C5のRGBCMYというテキストはPDFファイル等から読み込まれたデータであり、手書き由来ではないものとする。従って、図16に示した手書き入力保存部25が保存する手書き入力保存データとして説明すると、符号C2のストローク(手書き)は図16の手書き入力保存データ801、802のような手書き入力保存データとして保存される。符号C1の手書き由来のテキストは図16の手書き入力保存データ804,805のような手書き入力保存データとして保存される。符号C5の手書き由来でないテキストは図16の手書き入力保存データ806のような手書き入力保存データとして保存される。符号C4の画像は図16の手書き入力保存データ807のような手書き入力保存データとして保存される。各手書き入力保存データの色情報はColorIdで定義されている。
図19(a)と(b)を比較すると分かるように、図19(b)の符号C10のカラーチャート内側のテキスト「R」の赤は手書き由来ではないので、図19(a)ではグレースケールで表示されている。これに対し、符号C6のテキスト「赤」は手書き由来なので図19(a)では白黒強調表示される。
また、マゼンタとシアンは透過色であり、図19(b)では「Transparent」が透過して見えており、図19(a)でもマゼンタとシアンでは白が透明のパターンを使用しているため透過して表示される。このように、白黒強調対応装置では目立たせる目的のカラーを白黒強調表示することができ、カラーデバイスではカラーに変換して表示できるようになる。
カラー定義データは、図32のステップS6(座標補完表示データ)、図39のステップS82(文字列オブジェクト表示データ)、図39のステップS100(オブジェクトの表示データ)で使用される。
<ペン色選択ボタン定義データ>
次に、図20と図21を用いてユーザーによるペン色の選択方法を説明する。図20は、ペン色選択ボタン定義データの一例である。ペン色選択ボタン定義データは、ディスプレー220に表示されるペン色選択ボタンとColorIdを対応付けるデータである。ペン色選択ボタン定義データは、ペンボタンID(PenButtonId)、アイコンファイル(Icon)、カラーID(ColorId)、及び、フォント名(FontName)を有している。
図21は、ディスプレーに表示されるペン色選択ボタン81〜86の一例である。ペン色選択ボタン81〜86は上記アイコンファイルで表示される。ペン色選択ボタン81〜86はペンボタンIDが若い順に左から右に並んで表示されているものとする。
ペン色選択ボタン81〜86をユーザーがペン2500で押下するとペンID制御データにColorIdとFontNameが追加され、以降そのペン2500で入力した手書きオブジェクト又は文字列オブジェクトはColorIdとFontNameを使用して表示される。
ペン色選択ボタン定義データ1101は最も左に表示されるペン色選択ボタン81の定義データである。ユーザーがペン色選択ボタン81をペン2500で押下すると、そのペン2500で手書きされるストロークデータはColorIdが"Black"になり、手書き認識後のテキストのフォントは"明朝体"となる。ペン色選択ボタン定義データ1102は左から2番目に表示されるペン色選択ボタン82で、ストロークデータのColorIdは"Red"、手書き認識後のテキストのフォントは"ポップ体となる。同様に、ペン色選択ボタン定義データ1103〜1106は、ペン色選択ボタン83〜86の、ボタンの表示位置、ColorId、テキストのフォントを定義する。
図21(a)はペン色選択ボタン定義データに基づいて白黒強調表示されたテキストフォント表示例を示す。テキストフォント表示例は説明のための表示であるが、ユーザーがペン2500をホバーさせると表示されてよい。図21(b)はペン色選択ボタン定義データに基づいてカラー対応装置でカラー表示されたテキストフォント表示例を示す(実際はカラーだが作図の都合上白黒となっている)。
図21(a)に示すように、白黒強調だけでなく、フォントを変更することで、より効果的に白黒強調表示することができるようになる。
ペン色選択ボタン定義データもシステム定義データとユーザー定義データに定義しておき、ユーザー定義データにペン色選択ボタン定義データを変更するユーザー定義データ変更フォームが用意されれば、手書きサイン認証後に個人好みのペン色選択ボタンに変更することができる。従って、ColorIdとフォントの対応は一例に過ぎない。
ペン色選択ボタンの設定内容は、図32のステップS6(座標補完表示データ)、図39のステップS82(文字列オブジェクト表示データ)、図39のステップS100(オブジェクトの表示データ)で使用される。
<業務別フォントセット選択ボタン定義データ>
次に、図22と図23を用いてボタンを用いたフォントセットの選択方法を説明する。図22は、業務別フォント選択ボタン定義データの一例である。業務別フォントセット選択ボタン定義データ1912〜1915は、ディスプレー220に表示される業務別フォントセット選択ボタン331〜334とFontSetを対応付ける定義データである。業務別フォントセット選択ボタン定義データ1912〜1915は、ペンボタンID2(PenButtonId2)、アイコンファイル(Icon)、及び、フォントセット(FontSet)を有している。
図23は、ディスプレー220に表示される業務別フォントセット選択ボタン331〜334の一例である。図23(a)はフードメニュー用フォントセットの業務別フォントセット選択ボタン331である。図23(b)は図面用フォントセットの業務別フォントセット選択ボタン332である。図23(c)はレポート用フォントセットの業務別フォントセット選択ボタン333である。図23(d)は表作成用フォントセットの業務別フォントセット選択ボタン334である。業務別フォントセット選択ボタン331〜334は図22のアイコンファイルで表示される。業務別フォントセット選択ボタン331〜334はペンボタンID2が若い順に左から右に並んで表示されているものとする。
業務別フォントセット選択ボタン定義データ1912は最も左に表示される業務別フォントセットの定義データである。ユーザーが業務別フォントセット選択ボタン331をペン2500で押下すると、ペンID制御データにそのペン2500のPenId、及び、「FoodMenu」のFontSetが設定される。ユーザーが業務別フォントセット選択ボタン332をペン2500で押下すると、ペンID制御データにそのペン2500のPenId、及び、「Design」のFontSetが設定される。ユーザーが業務別フォントセット選択ボタン333をペン2500で押下すると、ペンID制御データにそのペン2500のPenId、及び、「Report」のFontSetが設定される。ユーザーが業務別フォントセット選択ボタン334をペン2500で押下すると、ペンID制御データにそのペン2500のPenId、及び、「SpreadSheet」のFontSetが設定される。
このように、ユーザーはペン2500の色とフォントセットをそれぞれ任意に選択することができる。なお、業種別フォントセットについても同様に表示部22は選択ボタンを表示してよい。
業務別フォントセット選択ボタンの設定内容は、図39のステップS82(文字列オブジェクト表示データ)で使用される。
<選択可能候補の表示例>
図24は操作ガイドと操作ガイドが表示する選択可能候補530の一例である。ユーザーが手書きオブジェクト504を手書きすることで(選択可能候補表示タイマーのタイムアウトにより)、操作ガイド500が表示される。操作ガイド500は、操作ヘッダー520、操作コマンドの候補510、手書き認識文字列候補506、変換文字列候補507、文字列/予測変換の候補508、及び、手書きオブジェクト矩形領域表示503を有している。選択可能候補530は、操作コマンドの候補510、手書き認識文字列候補506、変換文字列候補507、文字列/予測変換の候補508である。この例では言語変換文字列がないが表示される場合がある。また、操作コマンドの候補510を除く選択可能候補530を文字列候補539という。
操作ヘッダー520はボタン501、509、502、505を有する。ボタン501は予測変換とカナ変換の切り替え操作を受け付ける。図24の例ではユーザーが「予測」と表示されているボタン509を押下すると手書き入力部21がそれを受け付けて手書き入力表示制御部23にその旨を通知し、表示部22が「かな」というボタン509に表示を変更する。変更後は、文字列候補539が「カナ変換」の確率降順で並ぶ。
ボタン502は候補表示のページ操作をする。図24の例では候補表示ページは3ページあり、現在は1ページ目を表示している。ボタン505は操作ガイド500の消去を受け付ける。ユーザーがボタン505を押下すると手書き入力部21が受け付けて手書き入力表示制御部23にその旨を通知し、表示部22が手書きオブジェクト以外の表示を消去する。ボタン509は一括表示消去を受け付ける。ユーザーがボタン509を押下すると手書き入力部21が受け付けて手書き入力表示制御部23にその旨を通知し、表示部22が手書きオブジェクトを含め、図24に示されているすべての表示を消去して、ユーザーが最初から手書きをしなおすことを可能にする。
手書きオブジェクト504はユーザーが手書きした「ぎ」という文字である。手書きオブジェクト504を囲む手書きオブジェクト矩形領域表示503が表示される。表示の手順は図32〜図39のシーケンス図で説明する。図24の例では点線枠で手書きオブジェクト矩形領域表示503が表示されている。
手書き認識文字列候補506、変換文字列候補507、文字列/予測変換の候補508にはそれぞれの文字列候補が確率降順で並んでいる。手書き認識文字列候補506の「ぎ」は認識結果の候補である。この例では表示装置2は正しく「ぎ」を認識している。
変換文字列候補507は言語文字列候補から変換された変換文字列候補である。この例の「技量試」とは「技術量産試作」の略名である。文字列/予測変換の候補508は言語文字列候補又は変換文字列候補から変換された予測文字列候補である。この例では「技量試を決裁」と「議事録の送付先」が表示されている。
操作コマンドの候補510は図11Aの操作コマンド定義データ701〜703、709〜716、723〜728に基づいて選択された操作コマンドの候補である。図24の例では行頭文字の「》」511が操作コマンドの候補であることを示している。図24では手書きオブジェクト504である「ぎ」が選択する選択オブジェクトがなく、「ぎ」の文字列候補である「議事録」が、図11Aの操作コマンド定義データ701,702と部分一致したため、操作コマンドの候補510として表示されている。
ユーザーが「議事録テンプレートを読み込む」を選択すると、操作コマンド定義データ701で定義された操作コマンドが実行され、「議事録フォルダーに保存する」を選択すると、操作コマンド定義データ702で定義された操作コマンドが実行される。このように操作コマンドの候補は、変換された文字列を含む操作コマンド定義データが見つかる場合に表示されるため、常に表示されるとは限らない。
図24に示すように、文字列候補と操作コマンドの候補が同時に(共に)表示されるため、ユーザーは自分が入力しようとした文字列候補と操作コマンドのどちらも任意に選択できる。
<選択オブジェクトの指定例>
本実施形態の表示装置2は確定オブジェクトをユーザーが手書きにより選択することで選択オブジェクトを指定できる。選択オブジェクトは編集又は修飾の対象となる。
図25は、選択オブジェクトの指定例を説明する図の一例である。図25では、手書きオブジェクト11は黒色実線、手書きオブジェクト矩形領域12を灰色網掛け、確定オブジェクト13を黒線、選択オブジェクト矩形領域14を点線でそれぞれ表示している。なお、符号に付加された小文字のアルファベットによりそれぞれが区別される。また、確定オブジェクトを選択オブジェクトと判定するための判定条件(所定の関係にあるか否か)として、図7Aに示した定義済み制御データの跨ぎ線判定条件406又は囲み線判定条件407が使用されている。
図25(a)は横書きの2つの確定オブジェクト13a、13bをユーザーが跨ぎ線(手書きオブジェクト11a)で指定した例である。この例では、手書きオブジェクト矩形領域12aの短辺の長さH1と長辺の長さW1が跨ぎ線判定条件406の条件を満たしており、確定オブジェクト13a、13bとの重なり率が跨ぎ線判定条件406の条件を満たしている。このため、「議事録」と「ぎじ」の両方の確定オブジェクト13a、13bが選択オブジェクトとして指定されている。
図25(b)は横書きの確定オブジェクト13cを囲み線(手書きオブジェクト11b)で指定した例である。この例では、確定オブジェクト13cと手書きオブジェクト矩形領域12cの重なり率が囲み線判定条件407の条件を満たしている「議事録」という確定オブジェクト13cだけが選択オブジェクトとして指定されている。
図25(c)は縦書きの複数の確定オブジェクト13d、13eを跨ぎ線(手書きオブジェクト11c)で指定した例である。この例では、図25(a)と同様に、手書きオブジェクト矩形領域12dの短辺の長さH1と長辺の長さW1が跨ぎ線判定条件406の条件を満たしており、「議事録」と「ぎじ」という2つの確定オブジェクト13d、13eそれぞれとの重なり率が跨ぎ線判定条件406の条件を満たしている。このため、「議事録」と「ぎじ」の両方の確定オブジェクト13d、13eが選択オブジェクトとして指定されている。
図25(d)は縦書きの確定オブジェクト13fを囲み線(手書きオブジェクト11d)で指定した例である。この例では、図25(b)と同様に、「議事録」という確定オブジェクト13fだけが選択オブジェクトとして指定されている。
<操作コマンドの候補の表示例>
図26は、図13に示した手書きオブジェクトがある場合の操作コマンド定義データに基づく操作コマンドの候補の表示例を示す。図26(a)は編集系の操作コマンドの候補であり、図26(b)は修飾系の操作コマンドの候補である。また、図26(a)は図25(a)の手書きオブジェクト11aで選択オブジェクトが指定された例を示す。
図26(a)(b)に示すように、行頭文字「》」511に続いて表示された操作コマンドの候補がメインメニュー550である。メインメニュー550には最後に実行された操作コマンド名又は操作コマンド定義データで先頭の操作コマンド名が表示される。1行目の行頭文字「》」511aは編集系の操作コマンドの候補であり、2行目の行頭文字「》」511bは修飾系の操作コマンドの候補である。
行末の「〉」512はサブメニューがあることを示す(サブメニューボタンの一例)。1行目の「〉」512aは編集系の操作コマンドの候補が有するサブメニュー(最後に選択された)を表示させ、2行目の「〉」512bは修飾系の操作コマンドの候補が有する残りのサブメニューを表示させる。ユーザーが「〉」512を押下すると、その右側にサブメニュー560が表示される。サブメニュー560には操作コマンド定義データで定義されている全ての操作コマンドが表示される。図26(a)の表示例ではメインメニューが表示された時から1行目の「〉」512aに対応したサブメニュー560も表示されている。1行目の「〉」512aの押下によりサブメニュー560が表示されてもよい。
ユーザーがペンでいずれかの操作コマンド名を押下すると、操作コマンド名に対応付けられた操作コマンド定義データのCommandを手書き入力表示制御部23が選択オブジェクトに対して実行する。すなわち「消去」521が選択されると「Delete」、「移動」522が選択されると「Move」、「回転」523が選択されると「Rotate」、「選択」524が選択されると「Select」をそれぞれ実行する。
例えば、ユーザーが「消去」521をペンで押下すると「議事録」と「ぎじ」を消去できる。ユーザーが「移動」522,「回転」523、「選択」524を押すとバウンディングボックス(選択オブジェクトの外接矩形)が表示され、ユーザーはバウンディングボックスをペンのドラッグ動作で移動又は回転できる。ユーザーが「選択」524を押下すると、その他のバウンディングボックスの操作を実行できる。
操作コマンドの候補以外の文字列候補である「一」541、「一、」542、「〜」543、「→」544、「⇒」545は跨ぎ線(手書きオブジェクト11a)の認識結果であり、ユーザーが操作コマンドでなく文字列を入力するつもりであった場合は文字列候補を選択できる。
図26(b)では2行目の「〉」512bの押下により、図26(b)のサブメニューが表示される。図26(b)の表示例も図26(a)と同様にメインメニュー550とサブメニュー560が表示されている。図13の操作コマンド定義データに基づいて、「太く」531が選択されると「Thick」を手書き入力表示制御部23が選択オブジェクトに対して実行する。「細く」532が選択されると「Thin」を手書き入力表示制御部23が選択オブジェクトに対して実行する。「大きく」533が選択されると「Large」を手書き入力表示制御部23が選択オブジェクトに対して実行する。「小さく」534が選択されると「Small」、下線535が選択されると「Underline」を手書き入力表示制御部23が選択オブジェクトに対してそれぞれ実行する。
なお、「太く」531が選択された場合にどのくらい太くするか、「細く」532が選択された場合にどのくらい細くするか、「大きく」533が選択された場合にどのくらい大きくするか、「小さく」534が選択された場合にどのくらい小さくするか、下線535が選択された場合の線種等は、固定値が別途定義されている。あるいは、図26(b)のサブメニューが選択されると別途、選択メニューが開かれユーザーが調整できるようになっているとなおよい。
ユーザーが「太く」531をペンで押下すると「議事録」と「ぎじ」という確定オブジェクト13a、13bを構成する線を手書き入力表示制御部23が太くする。ユーザーが「細く」532をペンで押下すると、「議事録」と「ぎじ」を構成する線を手書き入力表示制御部23が細くできる。ユーザーが「大きく」533をペンで押下すると手書き入力表示制御部23が大きくできる。ユーザーが「小さく」534をペンで押下すると手書き入力表示制御部23が小さくできる。ユーザーが「下線」535をペンで押下すると下線を手書き入力表示制御部23が追加できる。
図27は、図13に示した手書きオブジェクトがある場合の操作コマンド定義データに基づく操作コマンドの候補の表示例を示す。図26(a)(b)との相違は、図27(a)(b)は図25(b)の手書きオブジェクト11b(囲み線)で選択オブジェクトが指定された例を示す。図26と図27を比較すると分かるように手書きオブジェクトが線か囲み線かによって表示される操作コマンドの候補に違いはない。手書き入力表示制御部23は選択オブジェクトが指定されると操作コマンドの候補を表示部22に表示させるためである。しかし、手書き入力表示制御部23は、手書きオブジェクトを認識して手書きオブジェクトに応じて表示する操作コマンドの候補を変更してもよい。この場合、認識された手書きオブジェクト(一や○など)に図13のような操作コマンド定義データを対応付けておく。
図27において操作コマンドの候補以外の文字列候補である「○」551、「∞」552、「0」553、「00」554、「ロ」555は囲み線(手書きオブジェクト11b)の認識結果であり、ユーザーが操作コマンドでなく文字列を入力するつもりであった場合は文字列候補を選択できる。
<角度情報の入力例>
次に、図28を用いて角度情報の入力方法を説明する。図28は、角度情報の入力方法を説明する図の一例である。図28では表示装置2の3時の方向に存在するユーザーが角度情報を入力する場合を説明する。3時の方向から手書きされた文字等は時計回りに90度回転されると正しく認識されるので、90度の角度情報が入力されるとよい。
図28(a)は、ペンID制御データの角度情報が0度(初期値)の状態で、表示装置2の3時の方向に存在するユーザーが「ぎ」を手書きしたため、操作ガイド500が表示された状態を示す。表示装置2は3時の方向から手書きした「ぎ」を、角度情報が0度のまま文字認識するため、期待とは違う選択可能候補530が表示されている。
角度情報を入力する場合、ユーザーは操作ガイド500内に、ユーザーから見て上から下方向に直線を手書きする。図28(b)はこの直線521の一例を示す。角度情報が0度である6時の方向とこの直線521との反時計回りのなす角αが角度情報である。すなわち、始点Sから6時の方向に下ろした直線522と、ユーザーが入力した直線521の反時計回りのなす角αが角度情報である。簡単には、直線521の終点方向が角度情報である。従って、図28(b)でユーザーが入力した角度情報は90度である。
なお、直線の検出には、例えば、始点Sから終点Eまでの座標を最小二乗法で直線に変換し、得られた相関係数と閾値を比較して直線か否かを判定する方法がある。
ユーザーが直線521を書き始めた直後(ペン2500を直線521の始点Sに触れた直後)、表示装置2は操作ガイド500を消去する。また、直線521を書き終わった直後(ペン2500を直線521の終点Eから離した直後)、表示装置2は、45度、90度、135度、180度、215度、270度、315度、360度から上記のなす角αが最も近い値を探してそれを角度情報に決定する。なす角αそのものが角度情報でもよい。ペンID制御データのAngleには決定した角度情報が設定される。ペン2500のペンイベント送信部41は、手書きなどのためにペン先が押圧されると、PenIdを表示装置2に送信するので、表示装置2はペンID制御データに角度情報を対応付けることができる。
なお、ユーザーが直線を手書きして角度情報を入力できるのは操作ガイド500に限られている。これにより、ユーザーが操作ガイド500以外で直線を手書きすると「1」や「一」などと認識され、操作ガイド500で直線を手書きすると角度情報を入力できる。すなわち、手書き認識制御部26は、所定範囲から直線を検出し、所定範囲外に手書きされたストロークデータをテキストデータに変換する。
図28(c)は、図28(b)の操作直後の操作ガイド500を示す。ペンID制御データには角度情報(Angle)として90度が設定されたので、手書きオブジェクト(ストロークデータ)が内部的に90度だけ時計回りに回転して手書き認識され、操作ガイド500は90度だけ反時計回りに回転して表示されている。なお、角度情報はメニューからユーザーが手動で入力してもよい。
<手書きサインデータの登録例>
次に、図29を用いて手書きサインデータの登録例を説明する。図29は手書きサインデータの登録方法を説明する図である。まず、図29(a)は「サイン」とユーザーが手書きした場合に表示される選択可能候補530の一例である。「サイン」という文字列と部分一致する、操作コマンド定義データ713,715に基づく「手書きサイン登録する」と「手書きサインアウトする」の二つの操作コマンド513,514と、「サイン」「サイン会」「サイン入り」の文字列候補が表示されている。2つの操作コマンド513,514が表示されたのは、図11Aの操作コマンド定義データ713,715のStringが「サイン」を有するためである。
ユーザーがペン2500で「手書きサイン登録する」を押下すると、手書き入力保存部25に図29(b)の手書きサイン登録フォーム561が追加され、操作画面101に表示される。例えば、図29(a)の操作ガイド500が消去され、操作ガイド500と同じ場所に手書きサイン登録フォーム561が表示される。手書きサイン登録フォーム561は上段から、名前入力欄561a、サイン入力欄561b〜561d、及び、登録確定欄561eを有する。ユーザーは、名前入力欄561aに名前のテキスト、サイン入力欄561b〜561dに1回目の手書きサイン、2回目の手書きサイン、3回目の手書きサイン、登録確定欄561eにチェックマーク又は取消マークを入力する。名前のテキストはこのユーザーの表示名であり、テキストデータに変換される。手書きサインが3回も入力されるのは、手書きサインはユーザーが書くたびに異なり完全一致しない前提で特徴量を登録しておくためである。
なお、手書きサインは一般にはユーザー名等、ユーザーに関する文字等であり、ユーザー名の他、社員番号などの数字、ニックネーム、似顔絵などでもよい。また、手書きサインはユーザーに関する文字等に限られず、何らかの手書きオブジェクトであればよい。手書きサインは、例えば、丸、三角形、四角形、記号やその組み合わせでもよい。手書きサインは、座標だけが特徴データとなるわけではないので、同姓のユーザー(例えば、鈴木さん)がどちらも「すずき」という手書きサインを登録しても正しく認証できる。
手書きサイン登録フォーム561にユーザーが指示通りに手書きをすると、図29(c)に示す手書きサイン登録フォーム561となる。登録確定欄561eに「チェックマーク」をユーザーが手書きすると手書きサインデータが手書きサインデータ保存部39に登録され手書きサイン登録フォーム561は削除される。登録によりSignatureIdが採番され、同様に採番されたAccountIdと名前入力欄561aに名前のテキストがSignatureIdに対応付けてユーザー定義データに登録される。ユーザーがユーザー名等を手書きしてサインインすると、ユーザー定義データでAccountIdに対応付けられたSignatureIdが取得され手書きサインインに使用したペン2500のPenIdに対応づけてペンID制御データに登録される。以降は、ユーザーがペン2500を使用すればペンIDが表示装置2に送信され、ペンID制御データにおいてPenIdに対応付けられたAccountIdを特定でき、ユーザーが意識しなくてもユーザー定義データを使用した操作コマンドの実行が可能になる。
登録確定欄561eに「×」をユーザーが手書きすると手書きサイン登録は取り消され手書きサイン登録フォーム561は削除される。なお、登録に関して何らかのエラーが発生した場合、操作画面101のシステム予約領域などにその旨が表示される。
このように、手書き入力表示制御部23は手書きサイン登録フォーム561への手書き入力と手書きサイン登録フォーム561以外の手書き入力を区別せずに手書き入力を受け付けることができる。
<手書きよるサインインの一例>
次に、図30を用いて、手書きサインデータの登録後に、ユーザーがサインインする方法を説明する。図30は、ユーザーが登録した手書きサインデータである「すずき」と手書きした場合に表示される操作ガイド500の一例である。「すずき」が手書きサインデータとして操作コマンド定義部33に登録されているので、「すずき」が手書きサインデータと適合する。このため、「手書きサインインする」という操作コマンド512が表示されている。
また、手書きサインデータが適合したので「すずき」を表すSignatureIdが特定され、このSignatureIdに対応付けられているAccountIdを有するユーザー定義データが特定される。
ユーザーが「手書きサインインする」という操作コマンド512を選択すると、使用しているペン2500のPenIdに「すずき」のAccountIdを対応付けてペンID制御データに追加され、「すずき」のユーザー定義データが操作コマンドの使用時に使用されるようになる。
図30の手書きサイン登録フォーム561を用いた手書きサインデータの登録は、文字など通常の手書き入力の一環として制御されるので、手書きサイン登録フォーム561は文字等が手書きされる操作画面と同じ操作画面に表示される。手書きサイン登録フォーム561の内外の手書き操作に違いはなく、ユーザーは手書きサイン登録フォーム561の罫線で区切られた領域に手書き入力するだけで手書きサイン登録フォーム561への入力を完了させることができる。
<ユーザー定義データの変更操作例>
次に、図31を用いて、ユーザー定義データの変更方法を説明する。図31は、ユーザー定義データの変更方法を説明する図である。図31(a)は、ユーザーが「せ」と手書きした時に表示される操作ガイド500の一例である。図11Aに示した操作コマンド定義データ716はStringに「設定」が定義されており、「せ」の予測文字列に「設定」があったため、「設定変更する」という操作コマンドが表示された。
ユーザーが、手書きでサインインしたペン2500で「設定変更する」を選択すると、ペンID制御データでこのペン2500のPenIdに対応付けられているユーザーのAccountIdが特定される。これにより、サインインしたユーザーのユーザー定義データが特定され、図31(b)のユーザー定義データ変更フォーム562が手書き入力保存部25に追加され、操作画面101に表示される。図31の例では、図14のユーザー定義データ718に従ってユーザー定義データ変更フォーム562が作成される。ユーザー定義データ変更フォーム562は名前欄562a、パスワード欄562b、フォルダーユーザー名欄562c、フォルダーパスワード欄562d、フォルダーファイル名欄562e、及び、登録又は取消欄562fを有する。
なお、予めユーザーが手書きでサインインしていないと表示装置2はユーザーのAccountIdを特定できないのでエラーとなり、操作画面101のシステム予約領域などにエラーメッセージが表示される。
図31(b)のユーザー定義データ変更フォーム562の、パスワード欄562bにパスワードをユーザーが手書きする。フォルダーユーザー名欄562cにフォルダーユーザー名をユーザーが手書きする。フォルダーパスワード欄562dにフォルダーパスワードをユーザーが手書きする。フォルダーファイル名欄562eにフォルダーファイル名をユーザーが手書きする。登録又は取消欄562fに「チェックマーク」又は「×」をユーザーが手書きする。これによりユーザー定義データの変更が実行され、ユーザー定義データ変更フォーム562は削除される。
このように、ユーザーはユーザー定義データ変更フォーム562を呼び出すストロークデータを手書きすることで、ユーザー定義データ変更フォーム562を表示させ、ユーザー定義データを任意に変更できる。手書き入力表示制御部23はユーザー定義データ変更フォーム562への手書き入力とユーザー定義データ変更フォーム562以外の手書き入力を区別せずに手書き入力を受け付ける。
なお、名前欄562aには、ユーザー定義データが有するAccountUsernameが自動で表示される。また、ユーザー定義データ変更フォーム562は変更だけでなく登録にも使用可能である。
図31のユーザー定義データ変更フォーム562を用いたユーザー定義データの変更は、文字など通常の手書き入力の一環として制御されるので、ユーザー定義データ変更フォーム562は文字等が手書きされる操作画面と同じ操作画面に表示される。ユーザー定義データ変更フォーム562の内外の手書き操作に違いはなく、ユーザーはユーザー定義データ変更フォーム562の罫線で区切られた領域に手書き入力するだけでユーザー定義データ変更フォーム562への入力を完了させることができる。
<動作手順>
以上の構成と図32〜図39を用いて、表示装置2の動作について説明する。図32〜図39は表示装置2が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である。図32の処理は、表示装置2が起動すると(アプリケーションが起動すると)スタートする。なお、図32〜図39ではスペースの都合上、符号で図6の機能を示した。
手書きデータの入力を開始する前に、ユーザーはペン色選択ボタン81〜86又は操作コマンド定義データ709、710、711、720、721、722を実行して色を選択済みである(PenIdが特定されている)。従って、
a.ペン色選択ボタン定義データでペンボタンID、ColorId及びフォントが特定され、
b.ペンID制御データにはPenId、ColorId及びFontNameが登録される。
S1:まず、手書き入力表示制御部23が手書きオブジェクト開始を手書き入力保存部25に送信する。手書き入力保存部25は手書きオブジェクト領域(手書きオブジェクトを保存するメモリー領域)を確保する。ユーザーがペンを手書き入力部21に接触させてから手書きオブジェクト領域を確保してもよい。
S2:次にユーザーが手書き入力部21にペンを接触させる。手書き入力部21はペンダウンを検出して手書き入力表示制御部23に送信する。
S3:手書き入力表示制御部23は手書き入力保存部25にストローク開始を送信し、手書き入力保存部25はストローク領域を確保する。
S4:ユーザーがペンを手書き入力部21に接触させたまま移動させると、手書き入力部21はペン座標を手書き入力表示制御部23に送信する。
S5:手書き入力表示制御部23は座標の入力と同時にペン2500から受信したPenIdを指定して、ペンID制御データ保存部36に保存されている現在のペンID制御データを取得する。PenIdは座標の入力時に送信されるので、ストロークとPenIdが対応付けられる。ペンID制御データ保存部36はペンID制御データを手書き入力表示制御部23に送信する。なお、角度情報はまだ初期値のゼロである。また、ユーザーがサインインしていないのでAccountIdはない。
S6:手書き入力表示制御部23はペン座標補完表示データ(離散的なペン座標を補間するデータ)を表示部22に送信する。表示部22はペン座標補完表示データでペン座標を補間し、ペンID制御データのColorIdに基づいてカラー定義データから線種と太さを特定してストロークを表示する。
S7:手書き入力表示制御部23はペン座標、その受信時刻、ColorId及び角度情報を手書き入力保存部25に送信する。手書き入力保存部25はペン座標をストロークに追加する。ユーザーがペンを動かしている間は、手書き入力部21は定期的に手書き入力表示制御部23へのペン座標の送信を繰り返すため、ステップS4〜S7の処理がペンアップされるまで繰り返される。
S8:ユーザーが手書き入力部21からペンを離すと、手書き入力部21はペンアップを手書き入力表示制御部23に送信する。
S9:手書き入力表示制御部23は手書き入力保存部25にストローク終了を送信し、手書き入力保存部25はストロークのペン座標を確定させる。ストロークのペン座標の確定により以降はストロークにペン座標を追加できなくなる。
S10:次に、手書き入力表示制御部23は手書きオブジェクト矩形領域403に基づいて、手書きオブジェクト矩形領域とストローク矩形領域の重なり状況取得を手書き入力保存部25に送信する。手書き入力保存部25は重なり状況を計算して重なり状況を手書き入力表示制御部23に送信する。
続く、ステップS11〜S17は、手書きオブジェクト矩形領域とストローク矩形領域が重なっていない場合に実行される。
S11:手書きオブジェクト矩形領域とストローク矩形領域が重なっていない場合、1つの手書きオブジェクトが確定するので、手書き入力表示制御部23は保持データクリアを手書き認識制御部26に送信する。
S12〜S14:手書き認識制御部26は保持データクリアをそれぞれ文字列変換制御部28、予測変換制御部30、操作コマンド認識制御部32に送信する。手書き認識制御部26、文字列変換制御部28、予測変換制御部30及び操作コマンド認識制御部32がこれまでに保持している文字列候補と操作コマンドの候補に係るデータをクリアする。なお、クリアの時点では最後に手書きされたストロークは手書きオブジェクトに追加されていない。
S15:手書き入力表示制御部23は手書きオブジェクト終了を手書き入力保存部25に送信する。手書き入力保存部25は手書きオブジェクトを確定させる。手書きオブジェクトの確定とは1つの手書きオブジェクトが完成したこと(これ以上、ストロークが追加されないこと)をいう。
S16:手書き入力表示制御部23は手書きオブジェクト開始を手書き入力保存部25に送信する。次の手書きオブジェクトが手書き開始されること(ペンダウン)に備えて、手書き入力保存部25は新しい手書きオブジェクト領域を確保する。
S17:次に手書き入力表示制御部23はステップS9で終了したストロークに関してストローク追加を手書き入力保存部25に送信する。ステップS11〜S17が実行された場合、追加されるストロークは手書きオブジェクトの最初のストロークであり、手書き入力保存部25は開始中の手書きオブジェクトにストロークデータを追加する。ステップS11〜S17が実行されてない場合、追加されるストロークはすでに手書き中の手書きオブジェクトに追加される。
S18:続いて手書き入力表示制御部23はストローク追加を手書き認識制御部26に送信する。手書き認識制御部26は文字列候補が格納されるストロークデータ保持領域(ストロークデータが一時的に格納される領域)にストロークデータを追加する。
S19:手書き認識制御部26はストロークデータ保持領域に対してジェスチャー手書き認識を実行する。ジェスチャー手書き認識とは、直線から角度情報を認識することをいう。なお、ジェスチャー手書き認識は操作ガイド500の内部で行われるため、手書き認識制御部26は操作ガイド500の内部の直線を検出する。操作ガイド500の位置情報は後述するステップS67で手書き認識制御部26に送信される。
S20:操作ガイド500内の直線が検出された場合、直線の始点から6時の方向に下ろした直線522と、ユーザーが入力した直線521の反時計回りのなす角αを、45度単位で決定する。そして、手書き認識制御部26は、決定した角度情報を直線521のストロークデータが有するPenIdに対応付けてペンID制御データ保存部36に保存する。なお、ステップS20は操作ガイド500内で直線が検出された場合に実行される。
S20−2:手書き認識制御部26は選択可能な候補表示矩形をクリアする。
S21:次に、手書き認識制御部26は、手書き入力部21から受信したPenIdを指定して、ペンID制御データ保存部36から現在のペンID制御データの角度情報を取得する。
S22:手書き認識制御部26は、ストロークデータ保持領域のストロークデータを取得した角度情報で時計回りに回転する。
S23:手書き認識制御部26は、手書きサイン認証制御部38に回転後のストロークデータを送信する。このようにストロークデータが手書きサインかどうかは不明な状態で常に手書きサイン認証制御部38に送信する。
S24:手書きサイン認証制御部38はストロークデータを受信し、手書きサインデータ保存部39から登録済みの手書きサインデータを受信する。そして、手書きサイン認証制御部38はストロークデータと手書きサインデータの比較(マッチング)を行い、後段のステップS61で手書きサインの認証結果を取得できるように手書きサインの認証結果を保持しておく。認証成功の場合はAccountIdがペンID制御データに登録される。
S25:次に、手書き認識制御部26はストロークデータに手書き認識を実行し、フォームの登録、取消欄の「チェックマーク」又は「×」である場合はフォームの処理を行い、そうでない場合は通常の手書き認識の処理を行う。
S26:手書きサインデータ登録フォームの登録又は取消欄内が「チェックマーク」であった場合、手書きサイン登録フォームに対しユーザーが入力した手書きサインデータ(ストロークデータ)を、手書き認識制御部26が手書きサイン認証制御部38に送信する。手書きサイン登録フォームは、後述するステップS86で手書き入力表示制御部23が手書き入力保存部25に生成する。
S27:手書きサイン認証制御部38は受信した手書きサインデータ(ストロークデータ)を手書きサインデータ保存部39に登録する。これにより、SignatureIdが採番される。SignatureIdは手書き認識制御部26に返却される。手書き認識制御部26はSignatureId及び手書きサイン登録フォーム561の名前入力欄561aに入力された名前がユーザー定義データにない場合、ユーザー定義データを新規に追加しAccountIdを採番し、そのユーザー定義データにSignatureIdを保存する。名前入力欄561aに入力された名前がユーザー定義データにある場合は、そのユーザー定義データにSignatureIdを保存する。この処理によってAccountIdとSignatureIdは紐づけられる。なお、ユーザー定義データを新規に追加した場合はその他の値が設定されていないが、ユーザー定義データ変更フォーム562からユーザーが登録及び変更可能である。
S28:手書きサインデータの登録により、手書き認識制御部26は手書きサイン登録フォーム561を手書き入力保存部25から削除する。
S29:ユーザー定義データ変更フォームの登録又は取消欄内が「チェックマーク」であった場合、後述するステップS86で手書き入力表示制御部23が手書き入力保存部25に生成したユーザー定義データ変更フォーム562に入力された変更値を手書き認識制御部26が操作コマンド定義部33に送信する。
S30:ユーザー定義データの変更の実行により、手書き認識制御部26はユーザー定義データ変更フォーム562を手書き入力保存部25から削除する。
S31:後述するステップS86で追加したフォームの登録又は取消欄内が「×」であった場合、手書き認識制御部26はステップS86で追加したフォームを手書き入力保存部25から削除する。
S33:フォーム処理でなかった場合、手書き認識制御部26はこの実行結果である手書き認識文字列候補を手書き認識辞書部27に送信する。手書き認識辞書部27は言語的に確からしい言語文字列候補を手書き認識制御部26に送信する。
S34:手書き認識制御部26は手書き認識文字列候補及び受信した言語文字列候補を文字列変換制御部28に送信する。
S35:文字列変換制御部28は手書き認識文字列候補及び言語文字列候補を文字列変換辞書部29に送信する。文字列変換辞書部29は変換文字列候補を文字列変換制御部28に送信する。
S36:文字列変換制御部28は受信した変換文字列候補を予測変換制御部30に送信する。
S37:予測変換制御部30は受信した変換文字列候補を予測変換辞書部31に送信する。予測変換辞書部31は予測文字列候補を予測変換制御部30に送信する。
S38:予測変換制御部30は受信した予測文字列候補を操作コマンド認識制御部32に送信する。
S39:操作コマンド認識制御部32は受信した予測文字列候補を操作コマンド定義部33に送信する。操作コマンド定義部33は操作コマンドの候補を操作コマンド認識制御部32に送信する。これにより、操作コマンド認識制御部32は予測文字列候補と一致する文字列(String)を有する操作コマンド定義データに対応する操作コマンドの候補を取得できる。
以降ステップS40〜S47で説明される操作コマンドの候補の送信まで、表示装置2は同様に処理を行う。
S40:文字列変換制御部28は受信した変換文字列候補を操作コマンド認識制御部32に送信する。
S41:操作コマンド認識制御部32は受信した変換文字列候補を操作コマンド定義部33に送信する。操作コマンド定義部33は操作コマンドの候補を操作コマンド認識制御部32に送信する。これにより、操作コマンド認識制御部32は変換文字列候補と一致する文字列(String)を有する操作コマンド定義データに対応する操作コマンドの候補を取得できる。
S42:手書き認識制御部26は手書き認識文字列候補及び言語文字列候補を予測変換制御部30に送信する。
S43:予測変換制御部30は手書き認識文字列候補及び受信した言語文字列候補を予測変換辞書部31に送信する。予測変換辞書部31は予測文字列候補を予測変換制御部30に送信する。
S44:予測変換制御部30は受信した予測文字列候補を操作コマンド認識制御部32に送信する。
S45:操作コマンド認識制御部32は受信した予測文字列候補を操作コマンド定義部33に送信する。操作コマンド定義部33は操作コマンドの候補を操作コマンド認識制御部32に送信する。これにより、操作コマンド認識制御部32は予測文字列候補と一致する文字列(String)を有する操作コマンド定義データに対応する操作コマンドの候補を取得できる。
S46:手書き認識制御部26は手書き認識文字列候補及び受信した言語文字列候補を操作コマンド認識制御部32に送信する。
S47:操作コマンド認識制御部32は手書き認識文字列候補及び受信した言語文字列候補を操作コマンド定義部33に送信する。操作コマンド定義部33は操作コマンドの候補を操作コマンド認識制御部32に送信する。これにより、操作コマンド認識制御部32は言語文字列候補と一致する文字列(String)を有する操作コマンド定義データに対応する操作コマンドの候補を取得できる。
S48:次に手書き認識制御部26はストローク追加を操作コマンド認識制御部32に送信する。
S49:操作コマンド認識制御部32は確定オブジェクトの位置情報取得を手書き入力保存部25に送信する。手書き入力保存部25は確定オブジェクトの位置情報を操作コマンド認識制御部32に送信する。
S50:操作コマンド認識制御部32は選択オブジェクトの判定のため、ステップS48のストローク追加で手書き認識制御部26から受信したストロークの位置情報が、手書き入力保存部25から受信した確定オブジェクトの位置情報が所定の関係にあるか否かを跨ぎ線判定条件406及び囲み線判定条件407に基づいて判定する。操作コマンド認識制御部32は選択されていると判定できる確定オブジェクトを選択オブジェクトとして保存しておく。また、この場合、選択オブジェクトが特定されるので操作コマンドの候補を操作コマンド定義部33から取得する。
また、手書き認識制御部26、文字列変換制御部28、予測変換制御部30、及び、操作コマンド認識制御部32はそれぞれ手書き認識文字列候補、言語文字列候補、変換文字列候補、予測文字列候補、操作コマンドの候補、及び、選択オブジェクトに係るデータを後段のステップS55〜S58で取得できるよう保持しておく。
S18−2:手書き入力表示制御部23はステップS18でストローク追加を手書き認識制御部26に送信した直後、選択可能候補表示タイマー開始を候補表示タイマー制御部24に送信する。候補表示タイマー制御部24はこのタイマーを開始する。
続く、ステップS51〜S53は一定時間が経過する前に(タイマーがタイムアウトする前に)ペンダウンが発生した場合に実行される。
S51:タイマーがタイムアウトする前に、ユーザーが手書き入力部21にペンを接触させた場合、手書き入力部21はペンダウン(ステップS2と同じイベント)を手書き入力表示制御部23に送信する。
S52:手書き入力表示制御部23はストローク開始(ステップS3と同じ)を手書き入力保存部25に送信する。この後のシーケンスはステップS3以降と同じである。
S53:更に手書き入力表示制御部23は選択可能候補表示タイマー停止を候補表示タイマー制御部24に送信する。候補表示タイマー制御部24はタイマーを停止させる。ペンダウンが検出されたのでタイマーが不要になるからである。
ステップS54〜S103は一定時間が経過する前に(タイマーがタイムアウトする前に)ペンダウンが発生しない場合に実行される。従って、図24に示した操作ガイド500が表示される。
S54:選択可能候補表示タイマー開始中にユーザーが手書き入力部21にペンを接触させなかった場合、候補表示タイマー制御部24はタイムアウトを手書き入力表示制御部23に送信する。
S55:手書き入力表示制御部23は手書き認識文字列/言語文字列候補取得を手書き認識制御部26に送信する。手書き認識制御部26は現在保持している手書き認識文字列/言語文字列候補を手書き入力表示制御部23に送信する。
S56:手書き入力表示制御部23は変換文字列候補取得を文字列変換制御部28に送信する。文字列変換制御部28は現在保持している変換文字列候補を手書き入力表示制御部23に送信する。
S57:手書き入力表示制御部23は予測文字列候補取得を予測変換制御部30に送信する。予測変換制御部30は現在保持している予測文字列候補を手書き入力表示制御部23に送信する。
S58:手書き入力表示制御部23は操作コマンドの候補取得を操作コマンド認識制御部32に送信する。操作コマンド認識制御部32は現在保持している操作コマンドの候補と選択オブジェクトを手書き入力表示制御部23に送信する。
S59:更に、手書き入力表示制御部23は推定書字方向取得を手書き入力保存部25に送信する。手書き入力保存部25は手書きオブジェクト矩形領域のストローク追加時間と水平距離と垂直距離から判定して、推定書字方向を手書き入力表示制御部23に送信する。
S60:次に、手書き入力表示制御部23は、手書き入力部21から受信したPenIdを指定して、ペンID制御データ保存部36から現在のペンID制御データのColorId、FontName(又はFontSet)、AccountId及び角度情報を取得する(ペンID制御データに設定されていないものは取得しない)。
S61:手書き入力表示制御部23は手書きサイン認証制御部38から手書きサインの認証結果を取得する。これにより、ユーザーのSignatureIdが得られるので、後述する操作コマンドの実行時に、PenIdにAccountIdが対応付けられてペンID制御データに登録される。ユーザーがサインインした場合、AccountIdで特定されるユーザー定義データに対応付けられたカラー定義データが特定されるので、ユーザー定義データの色情報が白黒で強調された手書きデータ、又は、手書きデータから変換された前記テキストデータを表示できる。
S62:手書き入力表示制御部23はこれらの手書き認識文字列候補(図24では「ぎ」)、言語文字列候補(図24では表示がないが例えば「議」)、変換文字列候補(図24では「議事録」「技量試」)、予測文字列候補(図24では「技量試を決済」「議事録の送付先」)、操作コマンドの候補(図24では「議事録テンプレートを読み込む」「議事録フォルダーに保存する)、各選択確率、及び、推定書字方向から図24のような選択可能候補表示データを作成する。また、手書き入力表示制御部23はステップS60で取得した角度情報で選択可能候補表示データ(操作ガイド500)を反時計回りに回転させ、回転後の選択可能候補表示データ(操作ガイド500)を表示部22に送信することで表示させる。
なお、ステップS60で取得したペンID制御データのFontName又はFontSetを使って、選択可能候補530をこれらが指定するフォントスタイルで表示するとよい。文字サイズによってフォントスタイルが異なる場合があるので、手書き入力表示制御部23は大中小の文字サイズごとのフォントスタイルで表示する。
S63:また、手書き入力表示制御部23は手書きオブジェクトと選択オブジェクトの矩形領域表示データ(矩形枠)(図24では手書きオブジェクト矩形領域表示503)を、ステップS60で取得した角度情報で反時計回りに回転させ、表示部22に送信することで表示させる。
S64:手書き入力表示制御部23は選択可能候補表示データの表示から一定時間後に消去するため選択可能候補表示消去タイマー開始を候補表示タイマー制御部24に送信する。候補表示タイマー制御部24はこのタイマーを開始する。
ステップS65〜S70は、選択可能候補消去タイマー開始中に、ユーザーが表示部22に表示された選択可能候補表示を消去したか、手書きオブジェクトの変化が発生した場合(即ち手書きオブジェクトのストロークの追加、削除、移動、変形又は分割された場合)、又は、タイムアウトまでに候補が選択されなかった場合に実行される。
更に、ステップS65〜S67は、候補表示が消去されるか、又は、手書きオブジェクトの変化が発生した場合に実行される。
S65:手書き入力部21は選択可能候補表示消去又は手書きオブジェクトの変化の発生を手書き入力表示制御部23に送信する。
S66:手書き入力表示制御部23は選択可能候補消去タイマー停止を送信する。候補表示タイマー制御部24はそのタイマーを停止する。一定時間内に手書きオブジェクトに対し操作があったためタイマーが不要になるからである。
S67:手書き入力表示制御部23は、ステップS19のジェスチャー手書き認識のジェスチャー判定で使用できるよう、操作ガイド500の位置情報を手書き認識制御部26に保存する。位置情報は例えば左上コーナーと右下コーナーの座標又はこれと同等の座標である。これにより、手書き認識制御部26は角度情報の入力に使用される直線が操作ガイド500内かどうかを判定できる。
S69:手書き入力表示制御部23は選択可能候補表示データ消去を表示部22に送信することで、表示を消去させる。
S70:手書き入力表示制御部23は手書きオブジェクトと選択オブジェクトの矩形領域表示データ消去を表示部22に送信することで、表示を消去させる。従って、操作コマンド候補が選択される以外の条件で、操作コマンド候補の表示を消去した場合、手書きオブジェクトはそのまま表示が維持される。
S68:一方、選択可能候補消去タイマー開始中に、選択可能候補表示消去又は手書きオブジェクトの変化が発生しなかった場合(ユーザーがペン操作をしなかった場合は)、候補表示タイマー制御部24はタイムアウトを手書き入力表示制御部23に送信する。
選択可能候補表示消去タイマーのタイムアウトの後も同様に、手書き入力表示制御部23はステップS69とS70を実行する。一定時間の経過で選択可能候補表示データ、手書きオブジェクトと選択オブジェクトの矩形領域表示データを手書き入力表示制御部23が消去してよいためである。
選択可能候補消去タイマー開始中に、ユーザーが選択可能候補を選択した場合、ステップS71〜S103が実行される。
S71:選択可能候補消去タイマー開始中に、ユーザーが選択可能候補を選択した場合、手書き入力部21は文字列候補又は操作コマンドの候補選択を手書き入力表示制御部23に送信する。
S71−2:手書き入力表示制御部23は選択可能候補表示消去タイマー停止を候補表示タイマー制御部24に送信する。候補表示タイマー制御部24はこのタイマーを停止する。
S72:次に手書き入力表示制御部23は保持データクリアを手書き認識制御部26に送信する。
S73:手書き認識制御部26は保持データクリアを文字列変換制御部28に送信する。
S74:手書き認識制御部26は保持データクリアを予測変換制御部30に送信する。
S75:手書き認識制御部26は保持データクリアを操作コマンド認識制御部32に送信する。手書き認識制御部26、文字列変換制御部28、予測変換制御部30、及び、操作コマンド認識制御部32はこれまで保持していた文字列候補及び操作コマンドの候補に係るデータをクリアする。
S76:次に手書き入力表示制御部23は選択可能候補表示データ消去を表示部22に送信することで表示を消去させる。
S77:手書き入力表示制御部23は手書きオブジェクトと選択オブジェクトの矩形領域表示データ消去を表示部22に送信することで表示を消去させる。
S78:手書き入力表示制御部23は手書きオブジェクト表示データ消去及びステップS6で送信したペン座標補完表示データ消去を表示部22に送信することで表示を消去させる。文字列候補又は操作コマンドの候補が選択されたため、手書きオブジェクト等が不要になるためである。
S79:手書き入力表示制御部23は手書きオブジェクト削除を手書き入力保存部25に送信する。
文字列候補が選択された場合、ステップS80〜S82が実行される。
S80:文字列候補が選択された場合、手書き入力表示制御部23は文字列オブジェクト追加を手書き入力保存部25に送信する。
S81:手書き入力保存部25は推定書字方向/文字サイズ判定条件404と手書きオブジェクトのサイズに基づいて推定文字サイズを判断する。手書き入力表示制御部23は手書きオブジェクトの推定文字サイズを手書き入力保存部25から取得する。ペンID制御データはステップS60で取得済みである。そして、手書き入力表示制御部23はペンID制御データのFontSet(フォントセットが選択されていない場合はFontName)及び文字サイズを指定してフォント取得を手書き入力保存部25に送信する。これにより、手書き入力表示制御部23はペンID制御データに記録されているフォントセットに含まれるフォントを手書き入力保存部25から取得する。
S82:次に手書き入力表示制御部23は手書き入力保存部25から受信した定義済みフォントを使用して、手書きオブジェクトと同じ位置に表示させる文字列オブジェクト表示データを表示部22に送信させることで、表示させる。手書き入力表示制御部23はペンID制御データのColorIdに基づいてカラー定義データから線種と太さを特定し、角度情報で回転させたテキスト(文字列オブジェクト)を表示する。
操作コマンドの候補が選択された場合、ステップS83〜S101が実行される。選択オブジェクトがある場合はステップS83〜S85が実行される。
S83:選択オブジェクトへの操作コマンドの候補が選択された場合(選択オブジェクトが存在する場合)は、手書き入力表示制御部23は選択オブジェクト表示データ消去を表示部22に送信することで表示を消去させる。手書き入力表示制御部23は、いったん、元の選択オブジェクトを消去するためである。
S84:次に、手書き入力表示制御部23は選択オブジェクトへの操作コマンド実行を手書き入力保存部25に送信する。手書き入力保存部25は新しい選択オブジェクトの表示データ(編集又は修飾後の表示データ)を手書き入力表示制御部23に送信する。
S85:次に手書き入力表示制御部23は選択オブジェクト表示データを表示部22に送信することで、操作コマンド実行後の選択オブジェクトを再表示させる。
S86:操作コマンド定義データ713の「手書きサイン登録する」又は操作コマンド定義データ716の「設定変更する」が指定された場合、手書き入力表示制御部23は手書きサイン登録フォーム561又はユーザー定義データ変更フォームを手書き入力保存部25に追加する。
S87:「ファイル保存」又は「印刷」の操作コマンドの候補が選択された場合、手書き入力表示制御部23はファイル送信要求をファイル送受信制御部37に送信する。
S88:ファイル送受信制御部37は送信対象の手書き入力保存データの取得要求を手書き入力保存部25に送信する。
S89:手書き入力保存部25は、送信先がカラー対応装置かどうかをMIBなどで判定する。
・カラー対応装置の場合、手書き入力保存部25は、カラーに変換した手書き入力保存データをファイル送受信制御部37に送信する。すなわち、手書き入力保存データのColorIdに基づいて手書き由来かどうかを判定して、手書き入力起因データはColorIdに対応付けられた色情報をカラー定義データから取得してこの色情報に変換する。手書き由来でないデータには元々色情報が入っているので、該色情報を送信する。ColorIdでなくても手書き入力起因データ(本表示装置2で描かれた手書きデータ)であるかを手書き入力保存部25が判定できればよい。また、本表示装置2で描かれた手書きデータであるかを示すデバイスを示す値でもよい。
・送信先が白黒対応装置の場合、手書き入力保存部25は、手書き入力保存データのColorIdに対応付けられた色情報を無視して単なる座標点列やテキストを送信してもよい。手書き入力保存部25は、ColorIdに対応付けられた色情報をカラー定義データから取得してこの色情報に変換してもよい。ただし、手書き入力保存部25はColorIdに対応付けられた色情報をカラー定義データから取得して白黒強調表示(線種と太さ)に変換して送信してもよい。手書き由来でないデータには元々色情報が入っているので、手書き入力保存部25は該色情報を送信する。
・送信先が白黒強調対応装置の場合、手書き入力保存部25は、手書き入力保存データのみ、又は、手書き入力保存データ及びカラー定義データをファイル送受信制御部37に送信する。手書き入力保存部25が手書き入力保存データのみを送信する場合は、送信先の白黒強調対応装置が保持するカラー定義データに従って線種や太さが決定される。手書き入力保存部25が手書き入力保存データ及びカラー定義データの両方を送信する場合は、送信元の白黒強調対応装置が保持していたカラー定義データに従って線種や太さが決定される。なお、送信元の白黒強調対応装置が白黒強調表示に変換してから手書き入力保存部25が送信してもよい。
・また、ファイル送受信制御部37がファイルに書き出す場合、例えばPDFファイルなどに書き出す場合、手書き入力保存部25はColorIdに対応付けられた色情報をカラー定義データから取得し、PDFファイルのフォーマットに従ってPDFファイルに設定する。フォント、文字サイズ等についても同様である。更に、手書き入力保存部25は手書き入力保存データの全体又は一部(例えばColorId、FontName等)をPDFファイルのメタデータに保存する。PDFファイルのリーダー(Reader)はメタデータを無視するので、表示に影響はなく、このPDFファイルを表示装置2が読み取る場合は、メタデータから手書き入力保存データを再生できる。手書き由来でないデータの場合、手書き入力保存部25は手書き入力保存データに入っている色情報、フォント、文字サイズ等をPDFファイルのフォーマットに従ってPDFファイルに設定する。
S90:ファイル送受信制御部37は手書き入力保存部25から受信した手書き入力データを送信先に送信するか、又は、ファイルに書き込む。
S91:「ファイル読み込み」の操作コマンドの候補が選択された場合、手書き入力表示制御部23はファイル一覧情報取得要求をファイル送受信制御部37に送信する。
S92:ファイル送受信制御部37はUSBメモリー、ネットワークストレージ、Webサーバー等の記憶媒体又は外部機器等からファイル一覧情報を受信する。
S93:ファイル送受信制御部37はファイル一覧情報を手書き入力表示制御部23に送信する。
S94:手書き入力表示制御部23はファイル一覧表示データを表示部22に送信する。これにより、表示部22は図12のようにファイル一覧をディスプレーに表示する。
S95:ユーザーがファイルを選択し、手書き入力部21が受け付けると、手書き入力部21はファイル選択を手書き入力表示制御部23に送信する。
S96:手書き入力表示制御部23は選択されたファイルのファイル受信要求をファイル送受信制御部37に送信する。
S97:ファイル送受信制御部37は外部機器からファイルを取得する。
S98:ファイル送受信制御部37は手書き入力保存部25にファイルを保存する。
S99:手書き入力保存部25は、ファイル送受信制御部37から受信したファイルを解析し、手書き入力起因データを手書き入力保存データ(白黒強調/カラー変換可能データ)に変換する。すなわち、メタデータの有無を判定し、メタデータがある場合は手書き入力保存データへの変換が可能かどうかを(ColorIdなどがあるかどうか)を判定し、手書き入力保存データとして保存する。そして、手書き入力保存部25は、手書き入力起因データについてColorIdを読み取り、カラー定義データを参照して、ColorIdに対応付けられている白黒強調表示に変換する。手書き入力保存部25は手書きオブジェクトの表示データを手書き入力表示制御部23に送信する。手書き入力起因データでないデータの場合、手書き入力保存部25はファイル形式に従って色情報、フォント、文字サイズなどを読み取って手書き入力保存データとして保存する。
S100:手書き入力表示制御部23は手書き入力データの表示データを表示部22に表示する。これにより表示部22は、手書き入力起因データを白黒強調された手書きデータで表示し、そうでないデータを従来の輝度変換を用いて白黒表示する。
なお、サインインするための操作コマンド512が実行された場合、手書き入力表示制御部23は操作コマンド512の実行時に表示装置2が受信したPenIdを取得する。手書き入力表示制御部23はステップS61で取得したSignatureIdを有するユーザー定義データを特定してAccountIdをユーザー定義データから取得する。そして、手書き入力表示制御部23はPenIdに対応付けてAccountIdをペンID制御データに登録する。これにより、ペン2500とユーザーが紐付いた形となり、表示装置2はユーザー定義データを使って処理が可能になる。
ユーザーがサインインした後に手書きしたり、ファイル読み込みしたりした場合、手書き入力表示制御部23は、操作コマンドの実行時に表示装置2が受信したPenIdに対応付けられているAccountIdをペンID制御データから取得する。手書き入力表示制御部23はこのAccountIdでユーザー定義データを特定し、操作コマンドの%〜%にカラー定義データ等を設定して実行する。
S101:その他の操作コマンドが選択された場合、手書き入力表示制御部23はユーザーが選択した操作コマンドに対応する操作コマンド定義データの操作コマンド文字列(Command)を実行する。本実施形態では業務別フォントセット又は業種別フォントセットを表示装置2に設定する操作コマンドが実行される。詳細は後述する。
S102:ユーザーが選択した業務別フォントセット又は業種別フォントセットを、手書き入力表示制御部23は操作コマンドの実行時にペン2500から受信したPenIdに対応付けてペンID制御データ保存部36に保存する。また、ユーザーがマニュアルで角度情報を入力した場合は、手書き入力表示制御部23は受け付けた角度情報を、回転操作ボタン511の押下時にペン2500から受信したPenIdに対応付けてペンID制御データ保存部36に保存する。
S103:次の手書きオブジェクトのために手書き入力表示制御部23は手書きオブジェクト開始を手書き入力保存部25に送信する。手書き入力保存部25は手書きオブジェクト領域を確保する。これ以降、ステップS2〜S103の処理が繰り返される。
<業務別フォントセットの設定>
図36のステップS62で表示される操作ガイド500にはフォントセットをユーザーが選択するための操作コマンドが表示される。ここでは「フード」と手書きした場合を説明する。
図40は、ユーザーが「フード」と手書きした場合に表示される操作ガイド500の一例である。「フード」は操作コマンド定義データ723のStringに該当するので、操作コマンド認識制御部32が操作コマンド定義データ723を取得して手書き入力表示制御部23に送信する。手書き入力表示制御部23が「フードメニュー用フォントセット」という操作コマンド515を操作ガイド500に表示する(ステップS62)。また、「フード」から変換された「フード」「フードプロセッサ」「food」等の文字列候補539が表示される。ユーザーが「フードメニュー用フォントセット」という操作コマンド515を選択すると、手書き入力部21が受け付けて、手書き入力表示制御部23がFontSet=「FoodMenu」をペンID制御データ保存部36に保存する(ステップS102)。なお、操作コマンドの選択により、操作ガイド500は消去される(S76〜S78)。
図41は、操作コマンドの実行によるペンID制御データの保存手順を示すフローチャート図の一例である。
まず、手書き入力部21が「フードメニュー用フォントセット」という操作コマンド515の選択を受け付ける(S1001)。このように、手書きデータに基づいてフォントセットの設定を受け付けることができる。
次に、手書き入力表示制御部23は操作コマンド515を定義する操作コマンド定義データ723の「ChangeFontset FoodMenu」を実行するので、手書き入力表示制御部23はペンID制御データにユーザーが使用しているペン2500のPenIdと「FoodMenu」というフォントセットを設定する(S1002)。
図42は、ペンID制御データの遷移図の一例である。図42(a)は図32〜図39で説明した処理の開始時のペンID制御データであり、図42(b)は、ユーザーが「フードメニュー用フォントセット」という操作コマンドを選択した場合のペンID制御データである。図42(a)ではペン色選択ボタン81で設定された色とフォントが設定されている。図42(b)では色はそのままだが、「FoodMenu」というフォントセットが設定されている。なお、AngleとAccountIdは省略した。
<業務別フォントセットを用いた手書き入力>
続いて、業務別フォントセットがペンID制御データに設定された場合の文字列オブジェクトの表示方法を説明する。
図43は、「FoodMenu」というフォントセットがペンID制御データに設定された状態で手書き入力された場合の操作ガイド500を示す。図43では「本日」と手書きされたため、「本日」から変換された「本日」「本日の」「本日のメニュー」「本日は」「本日の天気」等の文字列候補539が表示されている。なお、「本日」をStringに持つ操作コマンド定義データがないため、操作コマンドは表示されていない。
ユーザーが「本日のメニュー」という文字列候補539を選択すると、手書き入力部21が受け付けて、手書き入力表示制御部23が「本日のメニュー」という文字列オブジェクト302を表示する(ステップS82)。なお、文字列候補539の選択により、操作ガイド500は消去される(S76〜S78)。手書き入力表示制御部23は「本日のメニュー」という文字列オブジェクト302を表示する場合に、ペンID制御データを参照して、色、フォント及び文字サイズを決定し、文字列オブジェクト302を表示する。詳細を次述する。
図44は、手書き入力表示制御部23が文字列オブジェクトを表示する手順を示すフローチャート図の一例である。なお、図32〜図39は内部処理を詳細に示すものであるのに対し、図44はフォントの選択について説明するものなので処理順が一致しない場合があることに注意されたい。
まず、手書き入力部21が文字列候補539の選択を受け付ける(S1010)。操作ガイド500の座標が分かっているので、ペン2500の先が接触した座標により選択した文字列候補539が特定される。
次に、手書き入力表示制御部23がユーザーの使用しているペン2500のPenIdに対応したペンID制御データをペンID制御データ保存部36から取得する(S1011)。PenIdはペン1〜4がディスプレー220に接触する時、表示装置2が受信している。
次に、手書き入力表示制御部23は、ペンID制御データが有するColorIdに基づいて、手書き入力表示制御部23が保持しているカラー定義データを参照し、線種や太さを決定する(S1012)。
次に、手書き入力表示制御部23は手書き入力保存部25が保持している推定書字方向/文字サイズ判定条件で決定された手書きオブジェクト504の大きさを手書き入力保存部25から取得する(S1013)。
次に、手書き入力表示制御部23は、この手書きオブジェクト504の大きさ、及び、ペンID制御データに定義されているFontSetを指定して、手書き入力保存部25からフォントデータを取得する。手書き入力保存部25はFontSetで業務別フォントセット408を特定し、文字サイズでフォントを特定して文字列オブジェクトのフォントを生成する(S1014)。
以上により、文字列オブジェクトの色、フォント、文字サイズを決定することができる。
<業種別フォントセットの設定>
業種別フォントセットの設定について説明する。図36のステップS62で表示される操作ガイド500にはワークセットをユーザーが選択するための操作コマンドが表示される。ここでは「建設」と手書きした場合を説明する。
図45は、「建設」と手書きした場合に表示される操作ガイド500の一例である。「建設」は操作コマンド定義データ727のStringに該当するので、操作コマンド認識制御部32が操作コマンド定義データ727を取得して手書き入力表示制御部23に送信する。これにより、手書き入力表示制御部23が「建設用ワークセット」という操作コマンド516を操作ガイド500に表示する(ステップS62)。また、「建設」から変換された「建設」「建設会社」「建設方法」等の文字列候補539が表示される。ユーザーが「建設用ワークセット」という操作コマンド516を選択すると、手書き入力部21が受け付けて、手書き入力表示制御部23が「Command="ChangeWorkset Construction"」を実行し、FontSet=「Construction1」〜「Construction4」を、それぞれペン1〜4に対応付けてペンID制御データに設定する(ステップS102)。なお、操作コマンドの選択により、操作ガイドは消去される(S76〜S78)。
図46は、操作コマンドの実行によるペンID制御データの保存手順を示すフローチャート図の一例である。
まず、手書き入力部21が「建設用ワークセット」という操作コマンド516の選択を受け付ける(S1031)。操作ガイド500の座標が分かっているので、ペン1の先が接触した座標により選択した操作コマンド516が特定される。
次に、手書き入力表示制御部23は「Command="ChangeWorkset Construction"」を実行するので、業種向けワークセット420が呼び出され、手書き入力表示制御部23は4つのペンID制御データにそれぞれ「Construction1」「Construction2」「Construction3」「Construction4」というフォントセットを設定する(S1032)。
図47は、ペンID制御データの遷移図の一例である。図47(a)は図32〜図39の開始時のペンID制御データであり、図47(b)は、ユーザーが「建設用ワークセット」という操作コマンド516を選択した場合のペンID制御データである。図47(a)ではペン色選択ボタン81で設定された色とフォントが設定されている。図47(b)では色はそのままに、「Construction1」〜「Construction4」というフォントセットがペン1〜4に設定されている。
<業種別フォントセットを用いた手書き入力>
続いて、業種別フォントセットがペンID制御データに設定された場合の文字列オブジェクトの表示方法を説明する。
図48は、「Construction1」というフォントセットがペンID制御データに設定された状態で手書き入力された場合の操作ガイド500を示す。図48では「作業」と手書きされたため、「作業」から変換された「作業」「作業内容」「作業報告」「作業中止」「作業の安全」等の文字列候補539が表示されている。なお、「作業」をStringに持つ操作コマンド定義データがないため、操作コマンドは表示されていない。
ユーザーが「作業報告」という文字列候補539を選択すると、手書き入力部21が受け付けて、手書き入力表示制御部23が「作業報告」という文字列オブジェクト302を表示する(ステップS82)。なお、文字列候補539の選択により、操作ガイド500は消去される(S76〜S78)。手書き入力表示制御部23は「作業報告」という文字列オブジェクト302を表示する場合に、ペンID制御データを参照して、色、フォント及び文字サイズを決定し、文字列オブジェクト302を表示する。詳細を次述する。
図49は、手書き入力表示制御部23が文字列オブジェクトを表示する手順を示すフローチャート図の一例である。図49の処理は手書き入力表示制御部23が参照する定義済み制御データが異なる以外は図44と同様でよい。
以上により、ユーザーが選択した業種別フォントセットに応じて文字列オブジェクトの色、フォント及び文字サイズを決定し、文字列オブジェクトを表示することができる。
<業種別フォントセットの利用例>
図50を用いて、業種別フォントセットの利用例について説明する。図50は、業種別フォントセットを用いた文字列オブジェクトの表示例を示す。図50(a)は建設用ワークセットの利用例を示し、図50(b)は工場用ワークセットの利用例を示す。
図50(a)では、業者Aがペン1を使い、業者Bがペン2を使って手書きしている。ペン1のペンID制御データには明朝体(文字サイズ一定)というフォントセットが設定されており、ペン2のペンID制御データにはゴシック体(文字サイズ一定)というフォントセットが設定されている。従って、業者Aが例えば「指示」という手書きオブジェクト504を手書きすると表示装置2は明朝体で表示し、業者Bが例えば「変更履歴」という手書きオブジェクト504を手書きするとゴシック体で表示する。このように、ペンを使用するユーザーによってフォント及び文字サイズを切り替えることができる。
図50(b)では、一人のユーザーがペン1とペン2を使い分ける。ペン1のペンID制御データにはゴシック体で文字サイズ=25mmというフォントが設定されており、ペン2のペンID制御データにはゴシック体で文字サイズ=75mmというフォントが設定されている。従って、ユーザーがペン1で手書きするとゴシック体で文字サイズ=25mmで文字列オブジェクトが表示され、ペン2で手書きするとゴシック体で文字サイズ=75mmで文字列オブジェクトが表示される。このように、ユーザーがペンを使い分けてフォント及び文字サイズを切り替えることができる。
<業務別フォントセット選択ボタンの押下によるフォントセットの設定>
図51は、業務別フォントセット選択ボタンの押下によるペンID制御データの保存手順を示すフローチャート図の一例である。
まず、手書き入力部21が業務別フォントセット選択ボタン331〜334のいずれかの押下を受け付ける(S1051)。業務別フォントセット選択ボタン331〜334の座標が分かっているので、ペン2500の先が接触した座標により選択した業務別フォントセット選択ボタン331〜334が特定される。また、押下によりペン2500のPenIdが受信される。
次に、手書き入力表示制御部23は押下された業務別フォントセット選択ボタン331〜334によりPenButtonId2を特定し、業務別フォントセット選択ボタン定義データのFontSetを決定する。手書き入力表示制御部23はこのFontSetをPenIdに対応付けてペンID制御データに設定する(S1052)。
このように、ユーザーは文字を手書きしてコマンドを実行する場合だけでなく業務別フォントセット選択ボタン331〜334を押下してフォントセットを切り替えることができる。
<その他のフォントの選択例>
以下では、いくつかのフォント(フォントセットでなく)を個別にユーザーが選択する選択例を説明する。
(1) 図52は「フォント」という手書きオブジェクト504から操作コマンドとしてフォントのリスト361が表示された操作ガイド500の一例を示す。図52では「メイリオ」「MS Pゴシック」「遊ゴシック」というフォントのリスト361が表示されている。表示装置2がこのように表示するには、「メイリオ」「MS Pゴシック」「遊ゴシック」というフォントの操作コマンド定義データのStringに「フォント」と設定されていればよい。これらは操作コマンドなので、ユーザーが選択すると選択に使用したペン2500のペンIDに対応付けて選択したフォントがペンID制御データに設定される。
(2) 図53(a)は「メイリオ」という手書きオブジェクト504から操作コマンドとしてフォントのリストが表示された操作ガイドの一例を示す。図53(a)では「メイリオ」1つだけのフォントのリスト362が表示されている。表示装置2がこのように表示するには、「メイリオ」というフォントの操作コマンド定義データのStringに「メイリオ」と設定されていればよい。これは操作コマンドなので、ユーザーが選択すると選択に使用したペン2500のペンIDに対応付けて選択したフォントがペンID制御データに設定される。
図53(b)は「明朝」という手書きオブジェクト504から操作コマンドとしてフォントのリスト363が表示された操作ガイド500の一例を示す。図53(b)では「MS P明朝」「HG明朝B」「遊明朝」というフォントのリスト363が表示されている。表示装置2がこのように表示するには、「MS P明朝」「HG明朝B」「遊明朝」というフォントの操作コマンド定義データのStringに「明朝」と設定されていればよい。これは操作コマンドなので、ユーザーが選択すると選択に使用したペン2500のペンIDに対応付けて選択したフォントがペンID制御データに設定される。
(3) 図54(a)は「カフェ」という手書きオブジェクト504から操作コマンドとしてフォントのリスト364が表示された操作ガイド500の一例を示す。図54(a)では「小塚ゴシックProR」「たぬき油性マジック」「UDデジタル教科書体」というフォントのリスト364が表示されている。表示装置2がこのように表示するには、「小塚ゴシックProR」「たぬき油性マジック」「UDデジタル教科書体」というフォントの操作コマンド定義データのStringに「カフェ」と設定されていればよい。これは操作コマンドなので、ユーザーが選択すると選択に使用したペン2500のペンIDに対応付けて選択したフォントがペンID制御データに設定される。
図54(b)は「カフェ」という手書きオブジェクト504から操作コマンドとして利用シーンのリスト365が表示された操作ガイド500の一例を示す。図54(b)では「利用シーン:カフェ」という利用シーンのリスト365が表示されている。このように表示するには、「利用シーン:カフェ」の操作コマンド定義データのStringに「カフェ」と設定されており、「カフェ」に対応したフォントが定義済み制御データに定義されている。これは操作コマンドなので、ユーザーが選択すると選択に使用したペン2500のペンIDに対応付けて選択したフォントがペンID制御データに設定される。このように、ユーザーは直接、フォント名を選択しなくてよい。
(4) 図55は「見出し」という手書きオブジェクト504から操作コマンドとしてフォントのリスト367が表示された操作ガイド500の一例を示す。図55では「HG明朝B」「HG創英角ポップ体 Bold」「遊明朝Demibold」というフォントのリスト367が表示されている。表示装置2がこのように表示するには、「HG明朝B」「HG創英角ポップ体 Bold」「遊明朝Demibold」というフォントの操作コマンド定義データのStringに「見出し」と設定されていればよい。これは操作コマンドなので、ユーザーが選択すると選択に使用したペン2500のペンIDに対応付けて選択したフォントがペンID制御データに設定される。
(5) 図56は「かわいい」という手書きオブジェクト504から操作コマンドとしてフォントのリスト368が表示された操作ガイド500の一例を示す。図56では「HG創英角ポップ体」「あんずもじ」「851マカポップ」というフォントのリスト368が表示されている。表示装置2がこのように表示するには、「HG創英角ポップ体」「あんずもじ」「851マカポップ」というフォントの操作コマンド定義データのStringに「かわいい」と設定されていればよい。これは操作コマンドなので、ユーザーが選択すると選択に使用したペン2500のペンIDに対応付けて選択したフォントがペンID制御データに設定される。
(6) 図57(a)は「強調」という手書きオブジェクト504から操作コマンドとしてフォントのリスト369が表示された操作ガイド500の一例を示す。図57(a)では「メイリオ/赤」「MS Pゴシック/青」「遊ゴシック/緑」というフォントと色が表示されている。表示装置2がこのように表示するには、「メイリオ/赤」「MS Pゴシック/青」「遊ゴシック/緑」の操作コマンド定義データのStringに「強調」と設定されており、Commandにフォントと色が定義されている。これらは操作コマンドなので、ユーザーが選択すると選択に使用したペン2500のペンIDに対応付けて選択したフォントがペンID制御データに設定される。
図57(b)は「強調」という手書きオブジェクト504から操作コマンドとしてフォントのリスト370が表示された操作ガイド500の一例を示す。図57(b)では「ストライプ」「太字」「下線」というフォントのリスト370が表示されている。表示装置2がこのように表示するには、「ストライプ」「太字」「下線」の操作コマンド定義データのStringに「強調」と設定されていればよい。これらは操作コマンドなので、ユーザーが選択すると選択に使用したペン2500のペンIDに対応付けて選択したフォントがペンID制御データに設定される。
(7) 図58は「cafe」という手書きオブジェクト504から操作コマンドとしてフォントのリスト371が表示された操作ガイド500の一例を示す。図58では「Magneto」「Broadway」「HG創英角ポップ体Bold」というフォントのリスト371が表示されている。表示装置2がこのように表示するには、「Magneto」「Broadway」「HG創英角ポップ体Bold」の操作コマンド定義データのStringに「cafe」と設定されていればよい。これらは操作コマンドなので、ユーザーが選択すると選択に使用したペン2500のペンIDに対応付けて選択したフォントがペンID制御データに設定される。
(8) 図59は「フォント」という手書きオブジェクト504から操作コマンドとしてフォントのリスト372が表示された操作ガイド500の一例を示す。図59では「広告用」「カフェ用」「消防用」という操作コマンドが表示されている。表示装置2がこのように表示するには、「広告用」「カフェ用」「消防用」の操作コマンド定義データのStringに「フォント」と設定されている。更にユーザーが「広告用」を選択すると、「広告 大きめ見出し」「広告 小さめ見出し」「広告 本文」というフォントのリスト373が表示される。このように表示するには、「広告用」という操作コマンドと、「広告 大きめ見出し」「広告 小さめ見出し」「広告 本文」という操作コマンドが関連付けられている。また、「広告 大きめ見出し」「広告 小さめ見出し」「広告 本文」に対応したフォントが定義済み制御データに定義されている。これは操作コマンドなので、ユーザーが選択すると選択に使用したペン2500のペンIDに対応付けて選択したフォントがペンID制御データに設定される。
<主な効果>
以上説明したように、本実施形態の表示装置2は、ユーザーが自分の業務を選択することで、自分の業務のイメージに適したフォントセットに切り替えて文字を表示できる。また、ユーザーが手書きする場合の文字のサイズを調整することで、業務にあったフォントセットからフォントを選択できる。ユーザーはフォントを直接選択する必要がなく、これから手書きする内容に対し適切なフォントが何かを検討する必要もない。このように、本実施形態の表示装置2はフォント選択時の操作性を向上することができる。
また、ユーザーが自分の業種を選択することで、複数のペン1〜4に業種に適したフォントセットをまとめて設定できる。例えば、ユーザーごとに決まったフォントで文字を入力したり、一人のユーザーがペンを交換してフォントを変えながら入力したりできる。