(57)【要約】【課題】手書き文字の出力が不自然になることを抑制することが可能な技術の提供。【解決手段】利用者の手書き文章を示す文章情報を取得する文章情報取得部と、前記文章情報に基づいて前記利用者によって手書きされた文字の形状および配置傾向を認識し、手書きフォント情報として所定の記録媒体に記録する手書きフォント情報記録部と、出力対象の文章に含まれる文字を前記手書きフォント情報が示す前記形状および前記配置傾向で出力部に出力させる出力制御部と、を備えるコンピューターを構成する。【選択図】図２
2016114910.tif 000002
【特許請求の範囲】
【請求項１】
利用者の手書き文章を示す文章情報を取得する文章情報取得部と、
前記文章情報に基づいて前記利用者によって手書きされた文字の形状および配置傾向を認識し、手書きフォント情報として所定の記録媒体に記録する手書きフォント情報記録部と、
出力対象の文章に含まれる文字を前記手書きフォント情報が示す前記形状および前記配置傾向で出力部に出力させる出力制御部と、
を備えるコンピューター。
【請求項２】
前記出力制御部は、
前記出力対象の文章に前記手書きフォント情報として記録されていない未登録文字が含まれるか否かを判定し、
前記出力対象の文章に前記未登録文字が含まれる第１の場合には、
前記未登録文字を含む手書き文章を示す前記文章情報を前記文章情報取得部に取得させ、取得された前記文章情報に基づいて前記手書きフォント情報記録部に前記手書きフォント情報を更新させ、更新された前記手書きフォント情報に基づいて前記出力対象の文章を前記出力部に出力させ、
前記出力対象の文章に前記未登録文字が含まれない第２の場合には、
新たな前記文章情報を前記文章情報取得部に取得させずに、前記出力対象の文章を前記出力部に出力させる、
請求項１に記載のコンピューター。
【請求項３】
前記出力制御部は、
前記出力対象の文章に前記未登録文字が含まれないが、前記出力対象の文章に含まれる文字のいずれかを前記手書きフォント情報が示す前記配置傾向で出力することが不適切である第３の場合には、
不適切とされた文字を含む手書き文章を示す前記文章情報を前記文章情報取得部に取得させ、取得された前記文章情報に基づいて前記手書きフォント情報記録部に前記手書きフォント情報を更新させ、更新された前記手書きフォント情報に基づいて前記出力対象の文章を前記出力部に出力させる、
請求項２に記載のコンピューター。
【請求項４】
前記出力制御部は、
前記手書きフォント情報に基づいて前記出力対象の文章を表示部に表示させ、入力部によって表示された文章に含まれる任意の文字の前記配置傾向の修正指示を受け付けた場合に、前記修正指示を受け付けた文字を前記手書きフォント情報が示す前記配置傾向で出力することが不適切であると判定する、
請求項３に記載のコンピューター。
【請求項５】
前記手書きフォント情報記録部は、
前記手書きされた文字に隣接する隣接文字の種類毎に定義された文字間隔を、前記手書きされた文字の前記配置傾向として含む前記手書きフォント情報を前記所定の記録媒体に記録し、
前記出力制御部は、
前記出力対象の文章に含まれる文字の中に、前記隣接文字の種類が前記手書きフォント情報に定義されていない文字が含まれる場合に、前記手書きフォント情報に定義されていない文字を前記手書きフォント情報が示す前記配置傾向で出力することが不適切であると判定する、
請求項３または請求項４のいずれかに記載のコンピューター。
【請求項６】
前記手書きフォント情報記録部は、
前記手書きされた文字に隣接する隣接文字の種類毎に定義された文字間隔を、前記手書きされた文字の前記配置傾向として含む前記手書きフォント情報を前記所定の記録媒体に記録する、
請求項１〜請求項５のいずれかに記載のコンピューター。
【請求項７】
利用者の手書き文章を示す文章情報を取得する文章情報取得機能と、
前記文章情報に基づいて前記利用者によって手書きされた文字の形状および配置傾向を認識し、手書きフォント情報として所定の記録媒体に記録する手書きフォント情報記録機能と、
出力対象の文章に含まれる文字を前記手書きフォント情報が示す前記形状および前記配置傾向で出力部に出力させる出力制御機能と、
をコンピューターに実現させる出力制御プログラム。
【請求項８】
利用者の手書き文章に基づいて生成された、前記利用者によって手書きされた文字の形状および配置傾向を示す手書きフォント情報を取得し、
出力対象の文章に含まれる文字を前記手書きフォント情報が示す前記形状および前記配置傾向で出力部に出力させる、
出力物生産方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピューター、出力制御プログラムおよび出力物生産方法に関する。
【背景技術】
【０００２】
従来、手書きされた文字をスキャンした文字画像に基づいて手書きフォント情報を作成する技術が知られている。例えば、特許文献１には、文字コード毎に枠が設けられた専用シートに対して利用者が各枠に文字を手書きし、利用者がスキャナーによって当該専用シートをスキャンすることで各文字コードの手書きフォント情報を生成する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−１３３１６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来の技術においては、利用者に手書きされた文字を文字単位でスキャンしている。従って、文字の前後関係が不自然になる場合がある。すなわち、手書きの文章においては、ある文字の形状や文字間隔が当該文字と隣接文字との関係等によって異なり得る。例えば、日本語の文章においては、漢字と仮名など異なる種類の文字が混在し得るが、ある文字の隣接文字が漢字である場合と仮名である場合とで、当該ある文字の形状や文字間隔が異なり得る。文字単位で手書きされた文字をスキャンする従来技術では、このように文字の周囲の関係を含む手書きフォント情報を生成することができない。従って、手書きフォント情報に基づいて文章が出力される場合に、不自然な文章となってしまう。
本発明は、手書き文字の出力が不自然になることを抑制することが可能な技術を提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するためのコンピューターは、利用者の手書き文章を示す文章情報を取得する文章情報取得部と、文章情報に基づいて利用者によって手書きされた文字の形状および配置傾向を認識し、手書きフォント情報として所定の記録媒体に記録する手書きフォント情報記録部と、出力対象の文章に含まれる文字を手書きフォント情報が示す形状および配置傾向で出力部に出力させる出力制御部と、を備える。
【０００６】
すなわち、コンピューターは、利用者が手書きした文章を示す文章情報を取得するので、当該文章情報を解析することにより、複数の文字が連続して存在する文章に文字が存在する場合における文字の形状および文字の配置傾向を認識することができる。そして、コンピューターは、当該文字の形状および文字の配置傾向を含む手書きフォント情報を生成する。従って、コンピューターが、当該手書きフォント情報に基づいて出力対象の文章に含まれる文字を出力部に出力させることにより、手書き文字の出力が不自然になることを抑制することができる。
【０００７】
さらに、コンピューターは、手書きされた文章に基づいて文字の形状を認識するため、手書き文字を手書きフォント情報化するために利用者が注意すべき細かい規則は従来技術と比較して少なく、利用者は、容易に手書きフォント情報を生成することができる。さらに、コンピューターは、文章に基づいて手書きフォント情報を生成するため、利用者が汎用性の高い文章（例えば、手紙の中に頻繁に現れる語尾や、常套句など）を入力することにより、少ない作業で汎用性の高い手書きフォント情報を生成することができる。
【０００８】
ここで、文章情報取得部は、利用者の手書き文章を示す文章情報を取得することができればよく、利用者が手書きした２個以上の文字が形状と配置傾向の再現が実行できるように情報化されればよい。文章は任意の媒体に手書きされればよく、筆記具等によって紙等の任意の媒体に記された文章がスキャナーやカメラ等で画像化され、文章情報として取得されてもよいし、タッチパネルディスプレイやタッチパッド等の媒体に対してスタイラス等で入力された筆跡（文字間隔を含む）を示す情報が文章情報として取得されてもよく、種々の構成を採用可能である。
【０００９】
手書きフォント情報記録部は、文章情報に基づいて利用者によって手書きされた文字の形状および配置傾向を認識し、手書きフォント情報として所定の記録媒体に記録することができればよい。すなわち、文章情報は、利用者が手書きした文章そのものを再現可能な情報（画像情報や筆跡情報（文字間隔を含む））であるため、手書きフォント情報記録部は、文章情報が示す文章を文字単位に分割する。そして、手書きフォント情報記録部は、各文字について形状および配置傾向を認識し、当該形状および配置傾向を示す情報を定義することで各文字についての手書きフォント情報を生成することができればよい。
【００１０】
文字の形状を示す情報は、種々の態様によって定義可能であり、ビットマップフォントであってもよいし、ベクトルフォントであってもよい。ベクトルフォントで手書きフォント情報が定義される場合、手書きフォント情報記録部は、文章情報に基づいて、文字の特徴点（例えば、文字を構成する線の端点、曲線の形状を特徴付ける点、線同士の交点、文字を構成する輪郭線の頂点、交点等）の位置を特定し、各点の相対位置関係を示す情報を手書きフォント情報とすればよい。
【００１１】
文字の配置傾向を示す情報は、当該文字の隣接文字との関係が手書き文章に当該文字が含まれる場合における関係と同一または類似するように定義されていればよく、例えば、文字間隔（文章の進行方向における文字間の距離）を示す情報が配置傾向を示す情報となり得る。むろん、文章の進行方向に対して垂直な方向における文字の位置（文章の進行方向に延びる中心線からの文字のブレ量）を示す情報が配置傾向を示す情報となっていてもよい。さらに、当該配置傾向は、文字が出力される際に忠実に再現されてもよいし、再現の程度にある程度のランダムさが与えられることによって手書きのような出力を実現する構成であってもよい。
【００１２】
さらに、手書きフォント情報は、同一の文字について複数種類設けられてもよい。例えば、手書きフォント情報記録部が、手書きされた文字に隣接する隣接文字の種類毎に定義された文字間隔を、手書きされた文字の配置傾向として含む手書きフォント情報を所定の記録媒体に記録する構成であってもよい。すなわち、ある文字に隣接する隣接文字の種類が異なれば、文字間隔が異なり得る。例えば、日本語においてある文字に隣接する隣接文字が漢字である場合と仮名である場合とでは、当該ある文字に必要とされる文字間隔が異なり得る。従って、隣接文字の種類毎に文字間隔が定義されていれば、手書き文章を出力部によって出力する際に、ある文字の文字間隔を当該文字に隣接する隣接文字の種類に応じて適切に設定することができ、より自然な手書き文章を出力することが可能になる。
【００１３】
なお、隣接文字の種類は、文字の前方で隣接する隣接文字と、後方で隣接する隣接する文字とのそれぞれについて定義されてもよいし、文字の前後を問わずに隣接文字について定義されてもよい。むろん、文字の配置傾向のみならず、文字の形状が隣接文字の種類毎に定義されてもよいし、文字自体の種類毎に文字の形状や文字の配置傾向が定義されてもよい。さらに、手書きフォント情報には、他にも種々の情報を対応づけることが可能であり、例えば、文字コードを対応づけてもよい。
【００１４】
出力制御部は、出力対象の文章に含まれる文字を手書きフォント情報が示す形状および配置傾向で出力部に出力させることができればよい。すなわち、出力制御部は、手書きフォント情報に基づいて利用者が手書きしたような文章を出力部の出力において再現させる。出力対象の文章は、出力部で出力させるべき文章であればよく、複数の文字で構成され得る。出力対象の文章は任意の態様で定義可能であり、例えば、文章を構成する文字を示す文字コードによって定義可能である。このような任意の態様で定義された文章を構成する各文字について、手書きフォント情報に基づいて形状と配置傾向を定義すれば、当該文章を手書きされたような状態で再現することができる。出力部における出力は、種々の態様の出力を想定可能であり、紙等の任意の媒体にインク等の記録材を記録する印刷であってもよいし、ディスプレイ等への表示であってもよい。
【００１５】
さらに、出力制御部が、出力対象の文章に手書きフォント情報として記録されていない未登録文字が含まれるか否かを判定し、出力対象の文章に未登録文字が含まれる第１の場合には、未登録文字を含む手書き文章を示す文章情報を文章情報取得部に取得させ、取得された文章情報に基づいて手書きフォント情報記録部に手書きフォント情報を更新させ、更新された手書きフォント情報に基づいて出力対象の文章を出力部に出力させ、出力対象の文章に未登録文字が含まれない第２の場合には、新たな文章情報を文章情報取得部に取得させずに、出力対象の文章を出力部に出力させる構成を採用してもよい。
【００１６】
ここで、未登録文字は、当該未登録文字の形状を示す手書きフォント情報が記録媒体に記録されていない状態であり、少なくとも１種類の形状について手書きフォント情報が記録媒体に記録されている文字は未登録文字ではない。そして、出力対象の文章に未登録文字が含まれる第１の場合、既存の手書きフォント情報のみでは、出力対象の文章に含まれる文字の全てを手書きの再現として出力することができない。そこで、当該第１の場合、未登録文字を含む手書き文章を示す文章情報を文章情報取得部に取得させ、取得された文章情報に基づく手書きフォント情報の生成と、生成された手書きフォント情報に基づく出力を行う。この結果、出力対象の文章に含まれる全ての文字を手書きフォントで出力することが可能になる。
【００１７】
一方、出力対象の文章に未登録文字が含まれない第２の場合、既存の手書きフォント情報のみで、出力対象の文章に含まれる文字の全てを手書きの再現として出力することができる。そこで、新たな文章情報を文章情報取得部に取得させずに、出力対象の文章を出力部に出力させる構成とすれば、利用者に新たな作業を要求することなく出力対象の文章に含まれる全ての文字を手書きフォントで出力することが可能になる。
【００１８】
さらに、手書きフォント情報には、文字の形状と配置傾向との少なくとも２種の情報が含まれるため、ある文字について文字の形状は登録されているとしても、登録されている配置傾向が常に適切であるとは限らない。そこで、出力制御部が、出力対象の文章に未登録文字が含まれないが、出力対象の文章に含まれる文字のいずれかを手書きフォント情報が示す配置傾向で出力することが不適切である第３の場合には、不適切とされた文字を含む手書き文章を示す文章情報を文章情報取得部に取得させ、取得された文章情報に基づいて手書きフォント情報記録部に手書きフォント情報を更新させ、更新された手書きフォント情報に基づいて出力対象の文章を出力部に出力させる構成を採用してもよい。
【００１９】
すなわち、第３の場合には、既存の手書きフォント情報において出力対象の文章に含まれる文字の全ての形状が定義されているものの、少なくとも１個の文字を既存の手書きフォント情報が示す配置傾向で出力することが不適切である。そこで、第３の場合、当該不適切な文字を含む手書き文章を示す文章情報を文章情報取得部に取得させ、取得された文章情報に基づく手書きフォント情報の生成と、生成された手書きフォント情報に基づく出力を行う。この結果、出力対象の文章に含まれる全ての文字を適切な配置傾向で出力することが可能になる。
【００２０】
ここで、手書きフォント情報が示す配置傾向で文字を出力することが不適切である場合とは、既存の配置傾向で当該文字を出力すると不自然になる（例えば、前後に隣接する隣接する文字と過度に近い、過度に遠いなど）場合である。このような場合としては、種々の場合が想定され、例えば、利用者が不適切と感じるような場合が想定される。このような場合における構成として、出力制御部が、手書きフォント情報に基づいて出力対象の文章を表示部に表示させ、入力部によって表示された文章に含まれる任意の文字の配置傾向の修正指示を受け付けた場合に、修正指示を受け付けた文字を手書きフォント情報が示す配置傾向で出力することが不適切であると判定する構成としてもよい。この構成によれば、利用者は、表示部の表示内容に基づいて所望の配置傾向で文字が出力されるか否かを判断し、所望の配置傾向でなければ利用者が入力部によって修正指示を入力するため、出力制御部は、利用者の意志に応じて配置傾向が不適切であるか否かを判定することができる。
【００２１】
一方、既存の手書きフォント情報が不充分である場合に不適切と見なされる構成を採用してもよい。例えば、手書きフォント情報記録部が、手書きされた文字に隣接する隣接文字の種類毎に定義された文字間隔を、手書きされた文字の配置傾向として含む手書きフォント情報を所定の記録媒体に記録する構成において、出力制御部が、出力対象の文章に含まれる文字の中に、隣接文字の種類が手書きフォント情報に定義されていない文字が含まれる場合に、手書きフォント情報に定義されていない文字を手書きフォント情報が示す配置傾向で出力することが不適切であると判定する構成を採用してもよい。
【００２２】
すなわち、各文字の手書きフォント情報が、各文字の隣接文字の種類毎に定義された文字間隔を含んでいる構成において、出力対象の文章に含まれる文字の中に、隣接文字の種類が手書きフォント情報に定義されていない文字が含まれている場合、当該文字についての配置傾向を手書きフォント情報から明らかにすることができない。そこで、このような文字が出力対象の文章に含まれる場合に、出力制御部が、当該文字を手書きフォント情報が示す配置傾向で出力することが不適切であると判定する構成とする。この構成によれば、出力対象の文章に含まれる文字の配置傾向が全て手書きフォント情報に定義された状態で、当該手書きフォント情報に基づいて出力対象の文章を出力することが可能になる。
【００２３】
さらに、本発明のように、手書き文章に基づいて手書きフォント情報を生成する手法は、プログラムや方法としても適用可能である。また、以上のような装置、プログラム、方法は、単独の装置として実現される場合もあれば、複合的な機能を有する装置において共有の部品を利用して実現される場合もあり、各種の態様を含むものである。
【図面の簡単な説明】
【００２４】
【図１】本発明の実施形態にかかるブロック図である。
【図２】（２Ａ）〜（２Ｃ）は表示部の表示例である。
【図３】（３Ａ）は手書きフォント情報生成処理のフローチャート、（３Ｂ）は印刷処理のフローチャート、（３Ｃ）は手書きフォント情報の例を示す図である。
【図４】（４Ａ）は文字の分割例を示す図、（４Ｂ）は手書きフォントの生成例を示す図である。
【発明を実施するための形態】
【００２５】
ここでは、下記の順序に従って本発明の実施の形態について説明する。
（１）コンピューターの構成：
（２）手書きフォント情報生成処理：
（３）印刷処理：
（４）他の実施形態：
【００２６】
（１）コンピューターの構成：
図１は、本発明の一実施形態にかかるコンピューターを構成するプリンター１０の構成を示すブロック図である。プリンター１０は、ＣＰＵ、ＲＡＭ、ＲＯＭ等を備える制御部２０と記録媒体３０とユーザーＩ／Ｆ４１と印刷部４２とを備えており、制御部２０は、ＲＯＭや記録媒体３０に記録されたプログラムを実行することにより、印刷部４２等の制御や各種の処理を実行することができる。
【００２７】
ユーザーＩ／Ｆ４１は、任意の画像を表示する表示部としてのディスプレイと利用者が各種の入力を行う入力部としてのタッチセンサーを兼ねたタッチパネルディスプレイである。制御部２０は、ユーザーＩ／Ｆ４１を制御して表示部上に任意の画像を表示することが可能である。また、制御部２０は、入力部によって検出された利用者の入力内容を取得することが可能である。なお、制御部２０は、表示部に種々の表示を行うことにより、入力部において利用者に種々の入力を行わせることができる。例えば、制御部２０が表示部にボタン状のアイコンを表示し、入力部によってボタンに対するタッチを検出した場合に当該アイコンの選択を示す入力が行われたと見なすことが可能である。また、制御部２０は、表示部にスタイラス等による入力領域を表示し、当該入力領域でのスタイラスの接触軌跡を筆跡と見なして手書き文字（手書き文章）の入力が行われたと見なすことが可能である。
【００２８】
印刷部４２は、任意の媒体を搬送しながら当該媒体に記録材を記録することによって当該媒体に印刷を行う装置である。すなわち、制御部２０は、当該印刷部４２に対して所定のフォーマットの印刷データを出力することにより、文字や図形等の種々の情報を媒体上に印刷することができる。
【００２９】
以上の構成において、ユーザーＩ／Ｆ４１の入力部において利用者が印刷対象の文章を指定するなどして印刷の実行指示を行うと、制御部２０は、印刷制御プログラム２１の処理により、当該印刷対象の文章を印刷するための印刷データを生成し、印刷部４２に出力する。このような構成において、制御部２０は、印刷対象の文章を手書きフォントで印刷することが可能である。そして、本実施形態においては、利用者が手書きした文章に基づいて手書きフォントを示す手書きフォント情報を生成することが可能である。
【００３０】
手書きフォントに関する処理を行うために、印刷制御プログラム２１は、文章情報取得部２１ａと手書きフォント情報記録部２１ｂと出力制御部２１ｃとを備えている。文章情報取得部２１ａは、利用者の手書き文章を示す文章情報を取得する機能を制御部２０に実現させるプログラムモジュールである。本実施形態において制御部２０は、文章情報取得部２１ａの処理により、ユーザーＩ／Ｆ４１の入力部に対して利用者が手書きした文章を画像情報化することで文章情報を取得する。
【００３１】
具体的には、制御部２０は、ユーザーＩ／Ｆ４１の表示部に文例と当該文例を手書きするための領域を示す枠を表示させる。図２Ａは、ユーザーＩ／Ｆ４１の表示部４１ａにおける表示例を示す図であり、本実施形態において制御部２０は、表示部４１ａに文例Ｅ1，Ｅ2を表示させ、各文例Ｅ1，Ｅ2の直下に文例を手書きするための領域Ｒ1，Ｒ2を表示する。利用者が当該枠内に文例と同一の文字で構成される文章をスタイラス等で入力すると、制御部２０は、当該枠内で利用者がスタイラス等で接触した位置の軌跡を示す画像情報を文章情報として取得する。取得された文章情報は、記録媒体３０に記録される（文章情報３０ａ）。この結果、枠内の全文字の形状および文字間隔を含む文章情報が制御部２０に取得された状態となる。
【００３２】
手書きフォント情報記録部２１ｂは、文章情報３０ａに基づいて利用者によって手書きされた文字の形状および配置傾向を認識し、手書きフォント情報として所定の記録媒体に記録する機能を制御部２０に実現させるプログラムモジュールである。すなわち、制御部２０は、手書きフォント情報記録部２１ｂの処理により、文章情報３０ａに基づいて手書きフォント情報３０ｂを生成し、記録媒体３０に記録する。具体的には、文章情報３０ａは、利用者が手書きした文章そのものを再現可能な画像情報であるため、制御部２０は、文章情報３０ａが示す文章を文字単位の画像に分割し、各文字について形状と配置傾向を認識する。なお、文章を文字単位に分割する手法としては種々の手法を採用可能であり、本実施形態において制御部２０は、文章の進行方向（縦書きまたは横書き）に応じて文字の端点を決定し、端点間の余白（文字間隔）の中央部分を文字の画像の境界として設定することで文章の画像を文字単位の画像に分割する。
【００３３】
図４Ａは、文章を文字単位に分割する際に制御部２０が実行する処理の具体例を示す図である。同図においては、文章情報３０ａが示す文章の一部を例示している。この例において、文章の画像から文字Ｌ11の画像を分割する場合、制御部２０は、文字Ｌ10の端点Ｐ01、文字Ｌ11の端点Ｐ10およびＰ11、文字Ｌ12の端点Ｐ20を決定する。次に、制御部２０は、端点間の余白Ｍ10，Ｍ11の中央部分ＰC0，ＰC1を文字Ｌ11の画像の境界として設定することで、文章の画像から文字Ｌ11の画像を分割する。なお、ここで文字の画像の境界の設定は、利用者に境界を指定させて、これに基づいて設定するようにしてもよい。むろん、文字の間隔の定義法としては、他にも種々の定義が可能であり、例えば、文字の進行方向における文字の中心位置の間隔ＬM1等を文字間隔として定義してもよい。
【００３４】
次に、制御部２０は、分割後の画像内のビットマップ情報に基づき、各文字の形状を示す特徴点（例えば、文字を構成する線の端点、曲線の形状を特徴付ける点、線同士の交点、文字を構成する輪郭線の頂点、交点等）の位置を特定する。そして、制御部２０は、各点の相対位置関係を示す情報を文字の形状を示す手書きフォント情報とする。なお、図４Ｂにおいては、文字Ｌ11が分割された後の画像を示しており、文字Ｌ11をグレーで示すとともに形状を示す特徴点を黒丸で示している。
【００３５】
本実施形態において、文字の配置傾向を示す情報は、文字間隔（文章の進行方向における文字間の距離）を示す情報である。そこで、本実施形態において制御部２０は、文字単位に分割された後の画像から文字の端点を特定し、端点間の文字が存在する領域を文字部分、端点より外側の領域を文字間隔部分と見なす。そして、文字部分と文字間隔部分との長さの比を文字の配置傾向を示す情報として定義し、各文字の手書きフォント情報に追加する。例えば、図４Ｂに示す例において、制御部２０は、文字Ｌ11の端点Ｐ10，Ｐ11間の領域ＲLを文字部分、端点Ｐ10，Ｐ11より外側の領域ＲO1，ＲO2を文字間隔部分と見なす。そして、制御部２０は、文字の進行方向における領域ＲO1の長さと、領域ＲLの長さと、領域ＲO2の長さとの比を文字の配置傾向を示す情報として定義する。
【００３６】
なお、本実施形態において制御部２０は、ユーザーＩ／Ｆ４１の表示部に文例を示し、利用者が手書きした文章を文章情報３０ａとして取得しているため、文章情報３０ａに含まれる各文字の文字コードは予め判明している。そこで、制御部２０は、上述のように文字の形状と文字の配置傾向とが定義された手書きフォント情報に文字コードを対応づけて手書きフォント情報３０ｂとし、記録媒体３０に記録する。なお、文章情報３０ａから、手書きフォント情報３０ｂとして既に登録された文字コードについての文字の形状と文字の配置傾向とが新たに取得された場合、制御部２０は、手書きフォント情報３０ｂに対して新たに取得された情報を追記する（または、新たに取得された情報で手書きフォント情報３０ｂを更新する）。
【００３７】
本実施形態における手書きフォント情報３０ｂでは、文字コードによって文字が特定されるとともに、各文字コードが示す文字に隣接する隣接文字の種類毎に文字の形状と文字間隔とが定義される。すなわち、ある文字に隣接する隣接文字の種類が異なれば、文字間隔が異なり得る。例えば、日本語においてある文字に隣接する隣接文字が漢字である場合と仮名である場合とでは、当該ある文字に必要とされる文字間隔が異なり得る。そこで、本実施形態において制御部２０は、文章情報３０ａに基づいて文字単位に分割された各文字の前後に隣接する文字の文字コードに基づいて文字の種類を取得する。そして、制御部２０は、隣接文字の種類毎に文字の形状と文字間隔とを示す情報を定義して手書きフォント情報３０ｂとする。
【００３８】
図３Ｃは、手書きフォント情報３０ｂのデータ構造例を示す図である。図３Ｃに示すように、手書きフォント情報３０ｂにおいては、欄１０１に記載している文字コードと欄１０２に記載している文字の形状と欄１０３に記載している文字間隔を対応付けている。ここで欄１０２に記載している文字の形状は、ベクトルデータの形式、すなわち、図４Ｂに示すような特徴点の相対的な位置関係を示す形式で記憶されている。欄１０３に記載している文字間隔は、各形状において文字間隔が比によって定義されることが示されている。当該比は、文字の前方の文字間隔部分：文字部分：文字の後方の文字間隔部分というフォーマットで定義されている。例えば、図４Ｂに示す文字Ｌ11であれば、文字間隔は、文字の進行方向における領域ＲO1の長さ：領域ＲLの長さ：領域ＲO2の長さとなる。さらに、これらの形状と文字間隔を示す情報は、隣接文字の種類毎に複数定義され得る。図３Ｃにおいては、左  ひらがな、上  漢字などのように隣接文字の位置および種類が示されている。例えば、左  ひらがな  右  ひらがなという項目は、文字コードで示される文字「あ」が横書きされた場合に、前方にひらがな、後方にひらがなが存在する場合の情報であることを示している。また、上  カタカナ  下  漢字という項目は、文字コードで示される文字「あ」が縦書きされた場合に、前方にカタカナ、後方に漢字が存在する場合の情報であることを示している。
【００３９】
出力制御部２１ｃは、出力対象の文章に含まれる文字を手書きフォント情報が示す形状および配置傾向で出力部に出力させる機能を制御部２０に実現させるプログラムモジュールである。すなわち、制御部２０は、出力制御部２１ｃの処理により、手書きフォント情報３０ｂに基づいて利用者が手書きしたような文章を出力部としての印刷部４２に再現させる。出力対象の文章は出力部で出力させるべき文章であればよく、制御部２０は、利用者が指示した文章や、既定の文章（定型文等）、可搬型のメディア等に記録されたファイル内の文章等を出力対象の文章として印刷部４２に出力対象の文章を印刷させることができる。
【００４０】
いずれにしても、手書きフォント情報３０ｂに基づいて印刷すべき出力対象として文章が特定されると、制御部２０は、文章を構成する各文字の形状を手書きフォント情報３０ｂに含まれるベクトル情報に基づいて決定し、各文字の間隔を手書きフォント情報３０ｂに含まれる文字間隔情報に基づいて決定する。例えば、図４Ｂに示す文字Ｌ11が印刷すべき出力対象に含まれている場合、制御部２０は、印刷条件に含まれる文字の大きさの指定を参照して文字の大きさを決定し、手書きフォント情報３０ｂが示す文字Ｌ11の特徴点に基づいて当該指定された大きさの文字Ｌ11を示すビットマップ情報を生成する。さらに、制御部２０は、手書きフォント情報３０ｂが示す文字間隔としての比を参照し、生成された文字Ｌ11の文字部分の長さに基づいて文字Ｌ11の前後の文字間隔を決定する。文字の形状と文字間隔が決定されることによって印刷すべき文章が決定されると、制御部２０は、当該文章を印刷するための印刷データを生成し、印刷部４２に出力する。この結果、印刷部４２は、手書きフォントによって出力対象の文章を印刷する。
【００４１】
以上のように、本実施形態において制御部２０は、利用者が手書きした文章を示す文章情報３０ａに基づいて手書きフォント情報３０ｂを生成する。そして、当該手書きフォント情報３０ｂにおいては、文字の形状のみならず文字の配置傾向も含まれているため、制御部２０が、手書きフォント情報３０ｂに基づいて印刷部４２に印刷を行わせることにより、文字の形状および文字の配置傾向が不自然になることなく手書き文字を印刷することができる。
【００４２】
さらに、制御部２０は手書きされた文章に基づいて文字の形状を認識するため、文字コードと文字とを対応づけて文字単位で手書き文字を入力するなど、手書き文字を手書きフォント情報３０ｂ化するために利用者が注意すべき細かい規則は従来技術と比較して少なく、利用者は、容易に手書きフォント情報３０ｂを生成することができる。さらに、制御部２０は、文章に基づいて手書きフォント情報３０ｂを生成するため、利用者が汎用性の高い文章（例えば、手紙の中に頻繁に現れる語尾や、常套句など）を入力することにより、少ない作業で汎用性の高い手書きフォント情報３０ｂを生成することができる。さらに、本実施形態における手書きフォント情報３０ｂにおいては、隣接文字の種類毎に文字間隔が定義されているため、手書き文章を印刷部４２によって出力する際に、ある文字の文字間隔を当該文字に隣接する隣接文字の種類に応じて適切に設定することができる。従って、より自然な手書き文章を出力することが可能になる。
【００４３】
（２）手書きフォント情報生成処理：
次に、制御部２０が、文章情報取得部２１ａおよび手書きフォント情報記録部２１ｂの処理によって実行する手書きフォント情報生成処理を、図３Ａに示すフローチャートに沿って詳細に説明する。図３Ａに示す手書きフォント情報生成処理は、任意のタイミングで実行可能であり、例えば、利用者が手書きフォント情報の生成を指示した場合や、印刷処理の実行前に手書きフォント情報生成処理を実行可能である。
【００４４】
当該手書きフォント情報生成処理が開始されると、制御部２０は、文章情報取得部２１ａの処理により、文章情報３０ａを取得する（ステップＳ１００）。すなわち、制御部２０は、ユーザーＩ／Ｆ４１の表示部に制御信号を出力し、図２Ａに示すような手書き入力のためのＵＩを表示部に表示させる。なお、ＵＩに表示する文例は、利用者が入力してもよいし、既定の文章（定型文等）であってもよい。いずれにしても、制御部２０は、文例を構成する文字の文字コードを特定し、ユーザーＩ／Ｆ４１の表示部を制御して各文字コードが示す文字を順に表示させる。
【００４５】
当該ＵＩが表示された状態で制御部２０は、利用者が文例通りに文章を手書き入力し、入力を終了するまで（図２Ａに示す登録アイコンをタップするまで）待機する。利用者が文章の入力を終了すると、制御部２０は、ＵＩ内に表示された文章入力用の枠内で利用者がスタイラス等で接触した位置の軌跡を示す画像情報を文章情報として取得し、記録媒体３０に記録する。
【００４６】
次に、制御部２０は、手書きフォント情報記録部２１ｂの処理により、文章情報３０ａに基づいて手書きフォント情報３０ｂを生成し、記録媒体３０に記録する（ステップＳ１０５）。すなわち、制御部２０は、ステップＳ１００で取得された文章情報３０ａを参照し、上述のＵＩ上に表示された文例を構成する各文字の文字コードを特定し、文字コードで指定される各文字の前後に隣接する隣接文字の種類を、ひらがな、カタカナ、漢字のいずれかに特定する。
【００４７】
次に、制御部２０は、文章情報３０ａが示す文章を文字単位に分割し、文字コードで指定される各文字について形状と配置傾向を認識する。さらに、制御部２０は、各文字について形状を示す情報（ベクトルフォント情報）を文字の形状を示す情報として生成する。さらに、制御部２０は、文字単位に分割された後の画像から文字部分と文字間隔部分との長さの比を特定し、文字の配置傾向を示す情報として生成する。そして、制御部２０は、文字の形状および配置傾向を示す情報を、当該文字の隣接文字の種類についての手書きフォント情報３０ｂとして記録媒体３０に記録する。この結果、文例に含まれる各文字について図３Ｃに示されるような手書きフォント情報３０ｂが生成され、記録媒体３０に記録される。
【００４８】
（３）印刷処理：
次に、制御部２０が、出力制御部２１ｃの処理によって実行する印刷処理を、図３Ｂに示すフローチャートに沿って詳細に説明する。図３Ｂに示す印刷処理は、任意のタイミングで実行可能であり、例えば、利用者が手書きフォント情報を利用して所望の文章を印刷する指示を行った場合に印刷処理を実行可能である。印刷処理の実行が開始されると、制御部２０は、出力対象の文章を取得する（ステップＳ２００）。すなわち、制御部２０は、出力対象の文章の印刷条件（印刷媒体への割り付けや使用フォント、フォントの大きさ等）を示す条件とともに、出力すべき文章を示すテキスト情報（文章を構成する文字の文字コード）を取得する。
【００４９】
次に、制御部２０は、記録媒体３０から取得した手書きフォント情報３０ｂに基づいて出力対象の文章内の文字を印刷データに変換する（ステップＳ２０５）。すなわち、制御部２０は、ステップＳ２００で取得した出力対象の文章を構成する各文字の文字コードを特定し、各文字の隣接文字の種類を特定する。さらに、制御部２０は、特定された隣接文字の種類についての手書きフォント情報３０ｂを参照し、各文字の形状を示す情報および文字間隔を示す情報を取得する。そして、各文字を出力対象の文章通りの順序かつ各文字の文字間隔に従って配置し、配置された文字が手書きフォント情報３０ｂによって示された文字の形状で印刷されるように印刷データを生成する。
【００５０】
なお、文章の先頭の文字や末尾の文字など、隣接文字が存在しない文字については、片方の隣接文字のみについて手書きフォント情報３０ｂを参照して印刷データを生成してもよいし、一方のみに隣接文字が存在する手書きフォント情報３０ｂを定義しておき、当該手書きフォント情報３０ｂを参照して印刷データを生成してもよい。さらに、出力対象の文章に手書きフォント情報３０ｂとして記録されていない文字が含まれる場合、制御部２０は、当該文字を未登録文字とし、印刷データへの変換をスキップする。
【００５１】
次に、制御部２０は、未登録文字が存在したか否かを判定する（ステップＳ２１０）。すなわち、制御部２０は、ステップＳ２００で取得された出力対象の文章に手書きフォント情報３０ｂとして記録されていない文字が含まれる場合、当該文字を未登録文字と見なし、未登録文字が存在すると判定する。ステップＳ２１０において、未登録文字が存在すると判定された場合（第１の場合）、制御部２０は、図３Ａに示す手書きフォント情報生成処理を実行する（ステップＳ２２０）。ただし、この場合、制御部２０は、ステップＳ１００において、未登録文字を含む出力対象の文章を文例としてユーザーＩ／Ｆ４１の表示部に表示させる。
【００５２】
例えば、最初に実行された手書きフォント情報生成処理において図２Ａに示す文例によって手書きフォント情報３０ｂが生成され、この状態において図２Ｂに示すような文章を印刷対象の文章とする印刷処理が実行された場合、図２Ｂに示す文字Ｌ1，Ｌ2，Ｌ3は未登録文字である。従って、制御部２０は、ステップＳ２１０の判定を経てステップＳ２２０を実行し、当該ステップＳ２２０としての手書きフォント情報生成処理において、図２Ｂに示すように、ユーザーＩ／Ｆ４１の表示部において未登録文字に矩形を付して出力対象の文章を表示させる。従って、利用者は、ユーザーＩ／Ｆ４１の表示部を視認することにより、未登録文字を認識しながら文章を手書き入力することができる。
【００５３】
利用者の手書き入力が終了すると、制御部２０は、ステップＳ１０５において、未登録文字についての手書きフォント情報３０ｂを生成する。未登録文字についての手書きフォント情報３０ｂが生成されると、生成された手書きフォント情報３０ｂによって記録媒体３０が更新される。手書きフォント情報生成処理が終了すると、制御部２０は、再度、ステップＳ２０５以降の処理を繰り返す。この場合、制御部２０は、ステップＳ２０５において未登録文字についてのみ出力対象の文章内の文字を印刷データに変換すればよい。
【００５４】
一方、ステップＳ２１０において、未登録文字が存在すると判定されない場合、制御部２０は、出力対象の文章に含まれる文字のいずれかを手書きフォント情報３０ｂが示す配置傾向で出力することが不適切であるか否かを判定する（ステップＳ２１５）。本実施形態において、制御部２０は、利用者が配置傾向の修正指示を行った場合に、配置傾向が不適切であると判定する。このために、制御部２０は、手書きフォント情報３０ｂに基づいて出力対象の文章を表示部に表示させる。すなわち、制御部２０は、ステップＳ２００で取得した出力対象の文章を構成する各文字の文字コードを特定し、各文字の隣接文字の種類を特定する。
【００５５】
さらに、制御部２０は、特定された隣接文字の種類についての手書きフォント情報３０ｂを参照し、各文字の形状を示す情報および文字間隔を示す情報を取得する。そして、各文字を出力対象の文章通りの順序かつ各文字の文字間隔に従って配置し、配置された文字が手書きフォント情報３０ｂによって示された文字の形状で表示されるように表示データを生成する。なお、出力しようとしている文字の隣接文字の種類に対応した文字の形状や配置傾向が手書きフォント情報３０ｂとして記憶されていない場合、制御部２０は、既に手書きフォント情報３０ｂとして記憶されている文字の形状や配置傾向を用いて表示データを生成する。もし、記憶している文字の形状や配置傾向が複数存在する場合には、制御部２０は、隣接文字の種類の片方が、出力しようとしている文字の隣接文字の種類と一致している場合、隣接文字の種類の両方が、出力しようとしている文字の隣接文字の種類と一致していないものよりも優先する等の優先順位に基づいて１つの文字の形状や配置傾向を選択する。そして、制御部２０は、当該表示データをユーザーＩ／Ｆ４１の表示部に対して出力することにより、出力対象の文章を表示部に表示させる。
【００５６】
なお、図２Ｃは、手書きフォント情報３０ｂに基づいて出力対象の文章が表示部に表示された場合の例を示している。すなわち、図２Ｃは、図２Ｂに示す文章が出力対象の文章である場合の例であり、手書きフォント情報３０ｂに基づいて表示された文章が枠内の文章である。利用者は、当該表示された文章を視認し、修正または印刷のアイコンをタップすることで修正指示または印刷指示を行うことができる。
【００５７】
利用者が修正または印刷のアイコンをタップすると、制御部２０は、ユーザーＩ／Ｆ４１の入力部が出力する情報に基づいてタップされたアイコンを特定する。そして、タップされたアイコンが修正のアイコンであった場合、制御部２０は、配置傾向が不適切であると判定する。一方、タップされたアイコンが印刷のアイコンであった場合、制御部２０は、配置傾向が不適切ではないと判定する。
【００５８】
ステップＳ２１５において、配置傾向が不適切であると判定されない場合、制御部２０は、印刷データに基づいて印刷を実行する（ステップＳ２２５）。すなわち、ステップＳ２１５において配置傾向が不適切であると判定されない場合、出力対象の文章に未登録文字が含まれず（第２の場合）、さらに、配置傾向も適切であるため、制御部２０は、新たな文章情報３０ａを取得せずに、出力対象の文章を印刷する。具体的には、制御部２０は、ステップＳ２０５で生成された印刷データを印刷部４２に対して出力する。この結果、印刷部４２は、手書きフォントによって出力対象の文章を印刷する。ステップＳ２０５は、未登録文字が存在しない状態で実行されるため、以上の処理により、出力対象の文章に含まれる全ての文字を手書きフォントで出力されることになる。
【００５９】
一方、ステップＳ２１５において、配置傾向が不適切であると判定された場合（第３の場合）、制御部２０は、ステップＳ２２０において手書きフォント情報生成処理を実行する。ただし、この場合、制御部２０は、ステップＳ１００において、配置傾向が不適切であると判定された文字を含む出力対象の文章を文例としてユーザーＩ／Ｆ４１の表示部に表示させる。例えば、図２Ｃに示す例であれば、制御部２０は、図２Ｃに示す文章をユーザーＩ／Ｆ４１の表示部に表示させる。
【００６０】
当該表示に従って利用者が手書き入力を行うと、制御部２０は、不適切とされた文字を含む手書き文章を示す文章情報３０ａを取得し、取得された文章情報３０ａに基づいて手書きフォント情報３０ｂを更新する。すなわち、第３の場合には、既存の手書きフォント情報３０ｂにおいて出力対象の文章に含まれる文字の全ての形状が定義されているものの、少なくとも１個の文字を既存の手書きフォント情報３０ｂが示す配置傾向で出力することが不適切である。そこで、第３の場合、制御部２０は、当該不適切な文字を含む手書き文章を示す文章情報３０ａを取得し、取得された文章情報３０ａに基づいて手書きフォント情報３０ｂを生成する。この状態で制御部２０がステップＳ２０５以降の処理を繰り返し、ステップＳ２２５において出力対象の文章の印刷処理を行えば、出力対象の文章に含まれる全ての文字を適切な配置傾向で出力することが可能になる。なお、ステップＳ２０５において制御部２０は、配置傾向が不適切な文字についてのみ出力対象の文章内の文字を印刷データに変換すればよい。
【００６１】
（４）他の実施形態：
以上の実施形態は本発明を実施するための一例であり、手書き文章に基づいて手書きフォント情報を生成する限りにおいて、他にも種々の実施形態を採用可能である。例えば、図３Ｂに示す印刷処理において、ステップＳ２１５が省略されていてもよい。すなわち、出力対象の文章に未登録文字が含まれない第２の場合に、制御部２０が既存の手書きフォント情報３０ｂに基づいて、出力対象の文章に含まれる文字の全てを手書きの再現として出力する構成を採用してもよい。この構成によれば、利用者に新たな作業を要求することなく出力対象の文章に含まれる全ての文字を手書きフォントで出力することが可能になる。
【００６２】
さらに、配置傾向が不適切である場合としては、利用者による判定に代えて、あるいはこれに加えて種々の場合を想定可能である。例えば、出力対象の文章に含まれる文字の中に、隣接文字の種類が手書きフォント情報３０ｂに定義されていない文字が含まれる場合に、配置傾向が不適切であると制御部２０が判定するステップを表示データを作成して利用者に判定させるステップの前に実施する構成を採用してもよい。この構成によれば、出力対象の文章に含まれる文字の配置傾向が全て手書きフォント情報３０ｂに定義された状態で、当該手書きフォント情報３０ｂに基づいて出力対象の文章を出力することが可能になる。
【００６３】
さらに、文字の形状の定義としても種々の定義を採用可能であり、重複して手書き入力された文字について、各文字の形状を平均化してもよいし、複数個記録してランダムに使用されるように構成しても良い。
【００６４】
さらに、文字の形状と配置傾向とが一体的に定義されていてもよい。例えば、隣接する文字の端点同士が連続している続け字においては、文字の端点を隣接文字に連結される連結点と見なし、文字の端点が文字の形状と配置傾向としての文字間隔とを定義すると見なす構成であってもよい。
【００６５】
むろん、出力対象の文章に応じて文字の形状が修正される構成であってもよい。例えば、隣接する文字の端点同士の位置が異なる場合、両者の間の位置（例えば、両者を結ぶ線の中点等）で文字が連結されるように文字の形状を修正する構成等が採用されてもよい。また、文字の端点同士で連結されるように文字の位置が修正されてもよい。むろん、文字の形状の修正とともに文字の位置が修正されてもよい。
【００６６】
さらに、上述の実施形態は文字として平仮名、片仮名及び漢字についてのみ説明していたが、むろん、文字には、数字やアルファベット、記号（句読点や踊り字や括弧等を含む）等の日本語で書かれた文章で使われる文字を含むことが望ましいし、隣接文字にはこれらの文字に加え空白を含めて、行頭や行末の文字の形状や配置の傾向として用いるようにすることが望ましい。日本語以外の言語において手書き文章に基づいて手書きフォント情報３０ｂが生成される構成であってもよい。
【００６７】
また、手書き文字は、スタイラス等を用いずに、紙に手書きしたものをスキャナーやカメラ等で取り込むようにしてもよい。
【符号の説明】
【００６８】
１０…プリンター、２０…制御部、２１…印刷制御プログラム、２１ａ…文章情報取得部、２１ｂ…フォント情報記録部、２１ｃ…出力制御部、３０…記録媒体、３０ａ…文章情報、３０ｂ…フォント情報、４１ａ…表示部、４２…印刷部
【図１】
2016114910.tif 000003
【図２】
2016114910.tif 000004
【図３】
2016114910.tif 000005
【図４】
2016114910.tif 000006