以下、本発明の好ましい実施形態について、添付図面を参照して説明する。図1は、本発明の画像処理装置の一実施形態である処理サーバ200を含むシステム1の構成の一例を示すブロック図である。システム1は、処理サーバ200と、多機能周辺装置(以下「MFP」と称す)10とから構成される。
MFP10は、スキャン機能、印刷機能、コピー機能などの複数の機能を有する。MFP10は、年賀状などのポストカードの通信面を作成するためのテンプレートを、スキャン機能を用いて読み取り、当該読み取りにより得られた画像データ(以下「読取データ」と称す)を処理サーバ200に送信する。処理サーバ200は、MFP10から受信したテンプレートの読取データを処理し、ポストカードの通信面に印刷するための画像(以下「通信面画像」と称す)を生成し、当該通信面画像の画像データをMFP10に送信する。
MFP10は、印刷機能を用い、処理サーバ200から受信した画像データに基づく画像、すなわち、通信面画像をポストカードの通信面に印刷する。詳細は後述するが、本実施形態において、処理サーバ200は、テンプレートにデフォルトとして含まれる文言の一部を、ユーザによるテンプレートへの記入に応じて変更した上で、変更後の文言の文字列を含む通信面画像を生成する。ユーザは、テンプレートへの記入を行うことにより、当該テンプレートに含まれるデフォルトの文言の一部を容易に変更できる。
MFP10には、CPU11、ROM12、RAM13、NVRAM14、操作キー15、LCD16、タッチパネル17、スキャナ部18、プリンタ部19、NCU20、モデム21、ネットワークインターフェイス(以下「ネットワークI/F」と称す)22が主に設けられている。これらの各部は、入出力ポート23を介して互いに接続される。
CPU11は、ROM12、RAM13、NVRAM14に記憶されるプログラムやデータ、あるいは、NCU20を介して送受信される各種信号に従って、MFP10が有する各機能の制御や、入出力ポート23と接続された各部を制御する。ROM12は、CPU11により実行される各種プログラムや、そのプログラムを実行する際に参照する定数やテーブルを記憶する読み出し専用のメモリである。ROM12には、MFP10の動作を制御する制御プログラム12aなどが格納される。後述する図7(a)のシーケンス図においてMFP10のCPU11が実行する各処理は、CPU11が制御プログラム12aに従い実行する処理である。
RAM13は、CPU11が制御プログラム12aを実行するにあたり、各種データを一時的に記憶するためのテンポラリエリアを有する書換可能な揮発性のメモリである。NVRAM14は、不揮発性のRAMである。操作キー15は、MFP10の筐体に設けられるメカニカルキーであり、各種の設定値や指示などをユーザから受け付ける。LCD16は、液晶表示装置であり、各種画面を表示する。LCD16の画面には、タッチパネル17がLCD16に重ねて設けられる。タッチパネル17は、例えば、指や棒などの指示体がLCD16の画面に対して接触又は近づいた場合に、接触又は近づいた位置を検知し、検知した位置をMFP10に入力する。
スキャナ部18は、原稿を読み取って画像データに変換する。プリンタ部19は、画像ファイルに基づく画像を記録用紙に印刷する。モデム21は、FAX送信時には送信すべき画像データを、電話回線網(図示せず)に伝送可能な信号に変調してNCU20を介して送信し、または、電話回線網からNCU20を介して入力された信号を画像データに復調する。NCU20は、図示されない電話回線網の交換機に対して回線を閉結または切断することにより、電話回線網への接続を制御する。
ネットワークI/F22は、有線または無線方式によりネットワーク500を介して他の装置と通信可能に接続するためのインターフェイスである。MFP10は、ネットワークI/F23を介して、ネットワーク500上の処理サーバ200と通信可能に接続される。なお、MFP10と処理サーバ200との間の通信は、例えば、HTTP(Hypertext Transfer Protocolの略)に従って行われる。
処理サーバ200は、MFP10から受信した読取データを処理する画像処理サーバである。本実施形態の処理サーバ200は、テンプレート50(図2参照)の読取データから通信面画像を生成する画像処理を実行するサーバとして構成される。処理サーバ200は、周知のサーバ機能を有する装置であればよい。
処理サーバ200には、制御部201、記憶部202、ネットワークI/F203が主に設けられている。これらの各部は、入出力ポート204を介して互いに接続されている。制御部201は、図示されていないCPUと、CPUに電気的に接続されたROM及びRAMとを含み、コンピュータを構成する。CPUは、ROMおよび記憶部202に記憶されるプログラムやデータに従って、処理サーバ200の動作を制御する。
記憶部202は、不揮発性の記憶装置である。記憶部202は、例えば、ハードディスクドライブである。記憶部202には、オペレーティングシステムなど、処理サーバ200の動作を制御するための各種のプログラムが記憶される。記憶部202には、はがき作成アプリ202aが記憶される。はがき作成アプリ202aは、ポストカードを作成する機能を有するアプリである。具体的に、はがき作成アプリ12bは、テンプレート50の読取データから通信面画像を作成する機能を有する。後述する図7(a)のシーケンス図や、図7(b)および図8のフローチャートにおいて処理サーバ200の制御部201が各処理は、制御部201がはがき作成アプリ12bに従い実行する処理である。
ネットワークI/F203は、ネットワーク500に接続された他の装置と通信するための機器である。ネットワークI/F203としては、周知のネットワークカードを採用できる。処理サーバ200は、ネットワークI/F203を介してネットワーク500に接続される。
図2(a)は、MFP10が処理サーバ200に処理させるために読み取るテンプレート50の一例を示す模式図である。テンプレート50は、MFP10がユーザの操作に応じて処理サーバ200からテンプレートのデータをダウンロードし、当該データを、プリンタ部19を用いて記録用紙に印刷することにより準備できる。
テンプレート50には、文言選択領域51と、フリーフォーム領域52とが設けられる。文言選択領域51は、テンプレート50に表示された複数種類の文言の中から、印刷対象にする文言をユーザに選択させるための領域である。図2に示す例では、文言選択領域51は、3種類の文言に関する文言領域51a〜51cを含む。ユーザは、文言領域51a〜51cにそれぞれ対応する文言W1〜W3のうち、1の文言を選択できる。
テンプレート50に表示される文言は、テンプレート50の種類に応じた文言である。図2に示す例では、文言W1〜W3として、年賀状における3種類の挨拶文が表示されている。つまり、図2に示すテンプレート50は、年賀状における通信面を作成するためのテンプレートである。
文言領域51a〜51cには、それぞれ、チェックボックスC1〜C3が設けられる。チェックボックスC1〜C3は、それぞれに対応する3種類の文言W1〜W3の中から、印刷対象にする文言をユーザに選択させるための領域である。チェックボックスC1〜C3のうち、チェックマークが記入されたチェックボックスに対応する文言W1〜W3が、印刷対象の文言として選択される。
文言領域51a〜51cには、それぞれ、記入領域A1〜A3が設けられる。記入領域A1〜A3は、それぞれに対応する3種類の文言W1〜W3を構成する文字列の変更に関わる領域である。詳細は後述するが、ユーザは、傍線および文字列を記入領域A1〜A3に記入することにより、対応する文言W1〜W3を構成する文字列のうち、語尾や漢字表記など、その一部を、好みに応じた文字列に変更できる。
フリーフォーム領域52は、ユーザが適宜の文字列を印刷対象として追加するための領域である。フリーフォーム領域52には、記入領域Afが設けられる。記入領域Afに文字列が記入された場合、当該文字列が印刷対象として追加される。
詳細は後述するが、チェックボックスC1〜C3のいずれかにチェックマークが記入されている場合、記入領域Afに記入された文字列は、光学文字認識(optical character recognition;以下「OCR」と称す)によって印刷対象の文字列として抽出される。抽出された文字列は、予め決められた書体の文字列として、文言選択領域51にて選択された文言の後に追加される。
一方、チェックボックスC1〜C3のいずれにもチェックマークが記入されていない場合、記入領域Afに記入された文字列は、画像として抽出され、通信面画像を生成するために背景画像と合成される。
よって、チェックボックスC1〜C3にチェックマークが記入され、かつ、記入領域Afに文字列が記入された場合、記入領域Afに記入された文字列は、予め決められた書体で印刷される。一方、チェックボックスC1〜C3にチェックマークが記入されることなく、記入領域Afに文字列が記入された場合、記入領域Afに記入された文字列は、ユーザによる手書きの書体で印刷される。
テンプレート50における左下の角部には、それぞれ、テンプレート50の種類を特定するためのマークMが設けられている。本実施形態では、テンプレート50の種類は、マークMを構成する黒丸の数によって区別される。処理サーバ200は、MFP10から受信したテンプレートの読取データを解析した場合に、左下の角部に配置されたマークMを構成する黒丸の数に応じて、テンプレート50の種類を特定する。
処理サーバ200の記憶部202には、テンプレート50に関する情報(以下「テンプレート情報」と称す)が、テンプレート50の種類毎に格納されている。処理サーバ200は、マークMの内容に基づいてテンプレート50の種類を特定した場合、特定された種類に対応するテンプレート情報を記憶部202から読み出す。処理サーバ200は、読み出したテンプレート情報を参照し、受信した読取データの処理を実行する。
図2(b)は、記憶部202に格納されるテンプレート情報の一例を模式的に示す図である。テンプレート情報は、文言選択領域情報D1と、デフォルトのフォント情報D2と、フリーフォーム情報D3と、テンプレートのフォント情報D4とから構成される。
文言選択領域情報D1は、文言選択領域51に関する情報、より詳細には、文言選択領域51を構成する各文言領域に関する情報である。文言選択領域情報D1は、文言選択領域51を構成する各文言領域を特定する番号Nの各々に関連付けられた、文字データD1aと、文言位置情報D1bと、チェックボックス情報D1cと、記入領域情報D1dとから構成される。
文字データD1aは、文言選択領域51を構成する各文言領域のうち、番号Nに対応する文言領域に表示される文言を構成する文字列の文字データである。例えば、文言領域51aに対する文言の文字データD1aは、文言W1として表示される文字列「あけましておめでとうございます」を示す文字データである。
文言位置情報D1bは、テンプレート50における番号Nに対応する文言領域に表示される文言の表示位置を特定する情報である。より詳細には、文言位置情報D1bは、テンプレート50に表示される各文言を構成する文字列の領域における基準位置の座標である。本実施形態では、文言位置情報D1bは、文言を構成する文字列を構成する領域における左上角の座標とする。よって、例えば、文言領域51aに表示される文言W1に対する文言位置情報D1bは、(x,y)=(1900,350)である。
チェックボックス情報D1cは、テンプレート50における番号Nに対応する文言領域に表示されるチェックボックスを特定する情報である。チェックボックス情報D1cは、テンプレート50におけるチェックボックスの表示位置を特定する情報(以下「チェックボックス位置情報」と称す)と、当該チェックボックスの幅を特定する幅情報と、当該チェックボックスの高さを特定する高さ情報とから構成される。
チェックボックス位置情報は、テンプレート50に表示されるチェックボックスの基準位置の座標である。本実施形態では、チェックボックス位置情報は、チェックボックスの左上角の座標とする。よって、例えば、文言領域51aに表示されるチェックボックスC1を特定するチェックボックス情報D1bは、(x,y)=(1900,200)を示すチェックボックス位置情報と、幅が100であることを示す幅情報と、高さが100であることを示す高さ情報とから構成される。
記入領域情報D1dは、テンプレート50における番号Nに対応する文言領域に表示される記入領域を特定する情報である。記入領域情報D1dは、テンプレート50における記入領域の表示位置を特定する情報(以下「記入領域位置情報」と称す)と、当該記入領域の幅を特定する幅情報と、当該記入領域の高さを特定する高さ情報とから構成される。
記入領域位置情報は、テンプレート50に表示される記入領域の基準位置の座標である。本実施形態では、記入領域位置情報は、記入領域の左上角の座標とする。よって、例えば、文言領域51aに表示される記入領域A1を特定する記入領域情報D1dは、(x,y)=(2010,200)を示すチェックボックス位置情報と、幅が300であることを示す幅情報と、高さが1500であることを示す高さ情報とから構成される。
デフォルトのフォント情報D2(以下、単に「フォント情報D2」と称す)は、文字列を印刷する際の文字書式を指定する情報である。フォント情報D2は、書体を指定する情報と、文字サイズを指定する情報と、文字色を指定する情報とを含む。以下、書体を指定する情報、文字サイズを指定する情報、および、文字色を指定する情報をそれぞれ、「書体情報」、「サイズ情報」、および「文字色情報」と称す。
本実施形態では、フォント情報D2の書体情報として、「明朝体」が格納される。フォント情報D2のサイズ情報として、16ポイント(pt)が格納される。フォント情報D2の文字色情報として、黒色を示すRGB値が格納される。よって、本実施形態では、例えば、文言W1として表示される文字列「あけましておめでとうございます」は、フォント情報D2に従い、16ptの明朝体で黒色の文字列とされる。
フリーフォーム情報D3は、テンプレート50に表示される記入領域Afを特定する情報である。フリーフォーム情報D3は、テンプレート50における記入領域Afの表示位置を特定する情報(以下「フリーフォーム位置情報」と称す)と、記入領域Afの幅を特定する幅情報と、記入領域Afの高さを特定する高さ情報とから構成される。
フリーフォーム位置情報は、テンプレート50に表示される記入領域Afの基準位置の座標である。本実施形態では、フリーフォーム位置情報は、記入領域Afの左上角の座標とする。よって、本実施形態のフリーフォーム情報D3は、(x,y)=(200,310)を示すフリーフォーム位置情報と、幅が500であることを示す幅情報と、高さが1050であることを示す高さ情報とから構成される。
テンプレートのフォント情報D4(以下、単に「フォント情報D4」と称す)は、テンプレート50に表示される文言のフォントを特定する情報である。フォント情報D4は、書体情報とサイズ情報とを含む。本実施形態では、フォント情報Dfの書体情報として、「ゴシック体」が格納される。フォント情報D4のサイズ情報として、14ptが格納される。
なお、フォント情報D2,D4のサイズ情報は、pt単位の数値に限らず、mm単位など各種の単位の数値を採用できる。また、文字色情報についても、RGB値に限らず、XYZ表色系など他の表色系の数値の数値を採用できる。
図3から図6を参照して、テンプレート50の記入内容と、当該テンプレート50に対して生成される通信面画像60の内容について説明する。まず、図3に示すように、ユーザが、テンプレート50に設けられたチェックボックスC1〜C3のうち、チェックボックスC1にチェックマークを記入する一方で、記入領域A1には何も記入しなかった場合、当該テンプレート50の読取データを受信した処理サーバ200は、印刷時の文字列(以下「印刷文字列」と称す)Pとして、文言W1に表示される文字列、すなわち、チェックボックスC1に対応する文言W1を構成する文字列を含む通信面画像60を生成する。
通信画画像60は、印刷文字列Pと背景画像Gとの合成画像である。背景画像Gは、ユーザが選択したイラストの画像Gaを含む。処理サーバ200は、印刷文字列Pを、背景画像Gに対し、予め決められている位置に配置する。印刷文字列Pの書体、文字サイズ、および文字色は、記憶部202に記憶されるフォント情報D2に従う。
図4に示すように、ユーザが、テンプレート50のチェックボックスC1にチェックマークを記入し、かつ、記入領域A1に傍線Lと文字列Qを記入した場合、当該テンプレート50の読取データを受信した処理サーバ200は、チェックボックスC1に対応する文言W1を構成する文字列から、記入領域A1に記入された内容に応じた印刷文字列Pを生成する。
つまり、処理サーバ200は、文言W1を構成する文字列のうち、傍線Lに対応する文字列「あけ」を、文字列Qに相当する文字列Pa(すなわち「明け」)に置換することにより、印刷文字列Pを生成する。文字列Paの書体、文字サイズ、および文字色は、フォント情報D2に従う。よって、文言W1を構成する文字列、すなわち、文言W1としてデフォルトで準備された文字列の一部が文字列Paで置換される場合であっても、印刷文字列Pは、置換により組み込まれた文字列Paを含め、その全てが、フォント情報D2に従う書体、文字サイズ、および文字色の文字から構成される。処理サーバ200は、文字列Paを含む印刷文字列Pと、背景画像Gとを合成し、通信面画像60を生成する。
図5に示す例において、図4の例と同様、ユーザは、チェックボックスC1にチェックマークを記入し、かつ、記入領域A1に傍線Lと文字列Qを記入する。ただし、図5では、記入領域A1に記入される文字列Qは、改行された2行の文字列Q1,Q2から構成される。かかる場合、処理サーバ200は、文字列Qと同様に改行を含む印刷文字列Pを生成する。
つまり、処理サーバ200は、文字列Qと同様に「お」で改行された「明けましてお」からなる文字列Paと、改行された「お」の後に続く、文言W1としてデフォルトで準備された文字列のうち、置換対象となった文字列の後に続く文字列である「めでとうございます」とから構成される印刷文字列Pを生成する。なお、改行を含む文字列Qは、図5に示すように2行の文字列Q1,Q2から構成される文字列に限らず、2行以上の文字列から構成される文字列であってもよい。
また、図5に示すように、ユーザが、テンプレート50のフリーフォーム領域52に設けられた記入領域Afに文字列Jを記入した場合、当該テンプレート50の読取データを受信した処理サーバ200は、印刷文字列Pの後の改行した位置から、文字列Jに相当する印刷文字列Kを追加する。印刷文字列Kの書体、文字サイズ、および文字色は、フォント情報D2に従う。よって、本実施形態によれば、印刷文字列Pと印刷文字列Kとを、統一された書体、文字サイズ、および文字色で印刷できる。
なお、図5では、記入領域Afに記入された文字列Jとして改行のない文字列を例示したが、記入領域Afには改行された文字列を記入することもできる。記入領域Afに改行された文字列が記入された場合、処理サーバ200は、印刷文字列Pの後の改行した位置から、記入領域Afに記入された通りの改行を含む文字列を印刷文字列Kとして追加する。
図6に示すように、ユーザが、チェックボックスC1〜C3のいずれにもチェックマークを記入することなく、記入領域Afに文字列Eを記入した場合、当該テンプレート50の読取データを受信した処理サーバ200は、記入領域Afの画像Fを抽出する。処理サーバ200は、画像Fと背景画像Gとを合成し、通信面画像60を生成する。処理サーバ200は、画像Fを、背景画像Gに対し、予め決められている位置に配置する。よって、ユーザは、文言選択領域51に何も記入することなく、フリーフォーム領域52の記入領域Afに文字列を記入することによって、ユーザによる手書きの書体の文字列を、通信面に印刷できる。
図7(a)は、テンプレート50の読み取りから、通信面画像60が通信面に印刷されるまでに、MFP10および処理サーバ200が実行する一連の処理を示すシーケンス図である。図7(a)のシーケンス図に示す各処理は、MFP10のCPU11、または、処理サーバ200の制御部201が、制御プログラム12aまたははがき作成アプリ202aに従い実行する。
MFP10のCPU11は、タッチパネル17を介して入力されるユーザ指示を受け付けたことに応じて、テンプレートのスキャン画面をLCD16に表示する(M1)。テンプレートのスキャン画面は、スキャナ部18を用いてテンプレート50を読み取るよう、ユーザに促す画面である。
CPU11は、テンプレートのスキャン画面に表示されたスタートキーに対する操作を、タッチパネル17を介して読取指示として受け付けると、スキャナ部18によるテンプレート50の読み取りを実行する(M2)。なお、スタートキーが操作キー15の1つとして設けられている場合には、読取指示は、当該スタートキーに対する操作であってもよい。
CPU11は、M2の読み取りにより得られた読取データを処理サーバ200にアップロードする(M3)。処理サーバ200の制御部201は、テンプレート50の読取データをMFP10から受信すると、当該読取データから通信面画像60を生成する変換処理を実行する(S1)。変換処理の詳細については、図7(b)を参照して後述する。
変換処理(S1)にて通信面画像が生成された場合、制御部201は、処理完了通知をMFP10に送信する(S2)。MFP10が処理完了通知を受信すると、CPU11は、ダウンロード要求を処理サーバ200に送信する(M4)。処理サーバ200がダウンロード要求を受信すると、制御部201は、生成された通信面画像60の画像データをMFP10に送信する(S3)。
MFP10が通信面画像60の画像データを受信すると、CPU11は、受信した画像データに基づく画像、すなわち、通信面画像60を、プリンタ部19を用いて、記録用紙であるポストカードの通信面に印刷する(M5)。
図7(b)は、上述した変換処理(S1)を示すフローチャートである。処理サーバ200の制御部201は、受信した読取データを解析し、テンプレート50の種類を特定する(S701)。具体的に、制御部201は、読取データに含まれるマークMの内容に基づき、受信した読取データが、どの種類のテンプレート50の読取データであるかを特定する。
制御部201は、S701にて特定された種類のテンプレート50に対するテンプレート情報から、テンプレート50のフリーフォーム情報D3を取得する(S702)。制御部201は、文言解析処理を実行する(S703)。文言解析処理(S703)は、読取データに対応するテンプレート50に表示される文言のうち、どの文言が選択されたかを解析する処理である。文言解析処理(S703)の詳細は、図8を参照して後述する。
制御部201は、文言解析処理(S703)による解析の結果、テンプレート50に表示される文言のうち、選択された文言、すなわち、チェックマークが記入されたチェックボックスに対応する文言があるかを判断する(S704)。選択された文言があると、制御部201が判断した場合(S704:Yes)、制御部201は、2以上の文言が選択されたか、すなわち、2以上のチェックボックスにチェックマークが記入されていたかを判断する(S705)。
2以上の文言が選択されたと、制御部201が判断した場合(S705:Yes)、制御部201は、エラー処理を実行し(S712)、本処理を終了する。具体的に、制御部201は、エラー処理(S712)として、エラー通知をMFP10に送信する。エラー通知を受信したMFP10のCPU11は、エラー画面をLCD16に表示する。
一方、2以上の文言が選択されていないと、制御部201が判断した場合(S705:No)、受信した読取データを解析し、フリーフォーム情報D3により特定されるフリーフォーム領域Afに記入があるかを判断する(S706)。
フリーフォーム領域Afに記入がないと、制御部201が判断した場合(S706:No)、制御部201は、後述する図8の文言解析処理におけるS810またはS812にて制御部201のRAMに記憶された文字データに対応する文字列を印刷文字列Pとして含む通信面画像60を生成し(S709)、本処理を終了する。なお、詳細は後述するが、文言解析処理(S703)のS810またはS812にて制御部201のRAMに記憶される文字データは、選択された文言の文字データD1a、または、文字データD1aの一部が置換された文字データである。
制御部201がS706の判断を否定した場合、制御部201がS709において実行する処理について具体的に説明する。制御部201は、S810またはS812にて制御部201のRAMに記憶された文字データに対応する文字列であって、フォント情報D2に従う書体、文字サイズ、および文字色の文字列を、印刷文字列Pとして生成する。制御部201は、生成された印刷文字列Pを、ユーザが予め選択したイラストの画像に合成し、通信面画像60を生成する。かかる場合に生成される通信面画像60は、例えば、図3または図4に示す通信面画像60である。
S706において、フリーフォーム領域Afに記入があると、制御部201が判断した場合(S706:Yes)、制御部201は、フリーフォーム領域AfをOCRし、フリーフォーム領域Afに記入された文字列の文字データを抽出する(S707)。なお、フリーフォーム領域Afに記入された文字列が改行を含む場合、制御部201は、OCRにより得られた改行コードを含めて抽出する。なお、改行コードは、文字列の改行を表す改行情報であり、当該改行コードの次の文字から改行されることを示す。
制御部201は、文言解析処理(図8参照)のS810またはS812にて制御部201のRAMに記憶された文字データに、S707にて抽出された文字データ、すなわち、フリーフォーム領域Afに記入された文字列の文字データを付加する(S708)。具体的に、制御部201は、S810またはS812にて制御部201のRAMに記憶された文字データの後に改行コードを入れ、その後に、S707にて抽出された文字データを付加する。
制御部201は、S708にて得られた文字データ、すなわち、S707にて抽出された文字データが付加された文字データを含む通信面画像60を生成し(S709)、本処理を終了する。
制御部201がS706の判断を肯定した場合、制御部201がS709において実行する処理について具体的に説明する。制御部201は、S708にて得られた文字データに対応する文字列であって、フォント情報D2に従う書体、文字サイズ、および文字色の文字列を、印刷文字列Pおよび印刷文字列Kとして生成する。制御部201は、生成された印刷文字列P,Kを、ユーザが予め選択したイラストの画像に合成し、通信面画像60を生成する。かかる場合に生成される通信面画像60は、例えば、図5に示す通信面画像60である。
一方、S704において、選択された文言がないと、制御部201が判断した場合(S704:No)、制御部201は、S706と同様に、フリーフォーム情報D3により特定されるフリーフォーム領域Afに記入があるかを判断する(S710)。フリーフォーム領域Afに記入がないと、制御部201が判断した場合(S710:No)、テンプレート50に有効な記入がないことを示す。よって、かかる場合、制御部201は、エラー処理を実行し(S712)、本処理を終了する。
S710において、フリーフォーム領域Afに記入があると、制御部201が判断した場合(S710:Yes)、制御部201は、フリーフォーム領域Afの画像を抽出する(S711)。制御部201は、S711にて抽出された画像、すなわち、フリーフォーム領域Afの画像を、ユーザが予め選択したイラストの画像に合成し、通信面画像60を生成する(S709)。よって、制御部201がS706の判断を否定し、かつ、フリーフォーム領域Afに記入がある場合、S709にて生成される通信面画像60は、例えば、図6に示す通信面画像60である。
図8は、上述した文言解析処理(S703)を示すフローチャートである。処理サーバ200の制御部201は、S701にて特定された種類のテンプレート50に対するテンプレート情報から、文言選択領域情報D1と、フォント情報D2と、フォント情報D4とを取得する(S801)。
制御部201は、テンプレート50の文言選択領域51に含まれる文言領域のうち、1の文言領域を解析対象として選択する(S802)。具体的に、制御部201は、文言選択領域情報D1における番号Nの1つを選択する。
制御部201は、選択中の文言領域のチェックボックスを解析する(S803)。具体的に、制御部201は、S802にて選択された番号Nに関連付けられたチェックボックス情報D1cを参照し、チェックボックス情報D1cにより特定されるチェックボックスを解析する。
S803による解析の結果、解析対象のチェックボックスにチェックが入っていないと、制御部201が判断した場合(S804:No)、制御部201は、文言選択領域51に含まれる全ての文言領域について解析を行ったかを判断する(S811)。全ての文言領域について解析を行っていないと、制御部201が判断した場合(S811:No)、制御部201は、次の文言領域を解析対象として選択し(S813)、処理をS803に移行する。
一方、S803による解析の結果、解析対象のチェックボックスにチェックが入っていると、制御部201が判断した場合(S804:Yes)、制御部201は、選択中の文言領域の記入領域を解析する(S805)。具体的に、制御部201は、S802にて選択された番号Nに関連付けられた記入領域情報D1dを参照し、記入領域情報D1dにより特定される記入領域を解析する。
S805による解析の結果、解析対象の記入領域に傍線が記入されていると、制御部201が判断した場合(S806:Yes)、制御部201は、選択中の文言領域に含まれる文言の文字データのうち、傍線に対応する文字データを、対象文字データとして特定する(S807)。
具体的に、S807において、制御部201は、解析により得られた傍線の両端の座標から、記入された傍線の位置および範囲を特定する。制御部201は、S802にて選択された番号Nに関連付けられた文字位置情報D1bと、フォント情報D4に含まれる書体情報およびサイズ情報とから、選択中の文言領域に含まれる文言を構成する文字列の各文字の位置を特定する。制御部201は、特定された各文字の位置に基づいて、対象となる文言を構成する文字列のうち、特定された傍線の位置および範囲に対応する文字が何文字目の文字であるかを特定する。制御部201は、S802にて選択された番号Nに関連付けられた文字データD1aのうち、特定された傍線の位置および範囲に対応する文字の文字データを、対象文字データとして特定する。
制御部201は、選択中の文言領域をOCRし、当該文言領域の記入領域をOCRし、当該記入領域に記入された文字列の文字データを抽出する(S808)。なお、選択中の文言領域の記入領域に記入された文字列が改行を含む場合、制御部201は、OCRにより得られた改行コードを含めて抽出する。
制御部201は、S802にて選択された番号Nに関連付けられた文字データD1aのうち、S807にて特定された対象文字データを、S808にて抽出された文字データで置換する(S809)。
S808にて抽出された文字データは改行コードを含むので、選択中の文言領域の記入領域に記入された文字列が改行を含む場合、S809にて得られた置換後の文字データに対応する文字列は、記入された文字列における最後の行の後に、文言を構成するデフォルトの文字列に対応する文字データD1aのうち、対象文字データの次に続く文字列の文字データが続く。よって、S809において、例えば、図5に示す印刷文字列Pのように、記入領域に記入された文字列に含まれる改行に従って改行された文字列の文字データが得られる。
制御部201は、S809にて得られた置換後の文字データを、制御部201のRAMに記憶する(S810)。一方、S805による解析の結果、解析対象の記入領域に傍線が記入されていないと、制御部201が判断した場合(S806:No)、制御部201は、選択中の文言領域に含まれる文言の文字データ、すなわち、S802にて選択された番号Nに関連付けられた文字データD1aを、制御部201のRAMに記憶する(S812)。制御部201は、S810またはS812の処理後、処理をS811に移行する。
上記第1実施形態によれば、処理サーバ200は、MFP10から受信したテンプレート50の読取データを解析した解析結果に基づいて、文言選択領域51を構成する各文言領域の記入領域に傍線と文字列が記入されていると判断した場合に、当該記入領域に対応する文言を構成する文字列のうち、記入された傍線に対応する文字列に対応する文字列を、記入領域に記入された文字列に置換した文字列を、通信面画像60に含める印刷文字列Pとして生成する。よって、ユーザは、傍線と文字列とをテンプレート50に記入することにより、対応する文言を構成するデフォルトの文字列の一部を、テンプレート50に記入された文字列に容易に変更できる。
特に、印刷文字列Pは、置換によって組み込まれた文字列を含め、その全てが、予め準備されているフォント情報D2に従う書体、文字サイズ、および文字色とされるので、置換によって組み込まれた文字列を構成する各文字の書体などが、それ以外の文字列の書体などと異なるものになることを防止できる。
文言領域の記入領域に記入された文字列が改行を含む場合、置換によって印刷文字列Pに組み込まれる文字列は、その改行を含む文字列として置換される。よって、ユーザは、改行を含め、文言を構成するデフォルトの文字列を自在に変更できる。また、テンプレート50には複数の文言が準備されており、ユーザは、それら複数の文言のいずれかを利用対象として選択できる。よって、ユーザは、テンプレート50を用いて、複数種類のデフォルト文字列の中から、好みに応じた文言の一部を好みに応じて変更できる。
フリーフォーム領域52の記入領域Afに文字列が記入された場合、文言選択領域51から文言が選択されているか否かに応じて、記入領域Afに記入された文字列の取り扱いが異なる。具体的に、記入領域Afに文字列が記入され、かつ、文言が選択されている場合には、選択された文言に対応する印刷文字列Pに、記入領域Afに記入された文字列に対応する印刷文字列Kが付加される。付加により得られた印刷文字列Pおよび印刷文字列Kは、フォント情報D2に従う書体、文字サイズ、および文字とされる。
その一方で、記入領域Afに文字列が記入されたが、文言が選択されていない場合には、記入領域Afの画像が抽出され、背景画像と合成される。よって、テンプレート50に傍線が記入されたか否かに応じて、通信面画像60に含まれる、記入領域Afに記入された文字列に対応する文字列の書体などを異ならせることができる。特に、傍線が記入されていない場合、すなわち、文言が選択されていない場合には、記入領域Afの画像を含む通信面画像60が生成されるので、ユーザの手書きによる書体の文字列を通信面画像60に含ませることができる。
次に、図9を参照して、本発明の第2実施形態について説明する。上述した第1実施形態では、ユーザが、テンプレート50の文言選択領域51に何も記入することなく、フリーフォーム領域52の記入領域Afに文字列を記入した場合、記入領域Afに記入された文字列が、ユーザによる手書きの書体で印刷される構成であった。
これに代えて、第2実施形態では、ユーザが、テンプレート50の文言選択領域51に何も記入することなく、フリーフォーム領域52の記入領域Afに文字列を記入した場合には、記入領域Afに記入された文字列が、フォントD2に含まれる書体で印刷される。第2実施形態において、第1実施形態と同一の部分には、同一の符号を付して、その説明を省略する。以下、第2実施形態に特有の構成を中心に説明する。
図9は、第2実施形態の変換処理(S1)を示すフローチャートである。本処理は、制御部201が第2実施形態のはがき作成アプリ202aに従い実行する処理である。S710において、フリーフォーム領域Afに記入があると、制御部201が判断した場合(S710:Yes)、制御部201は、S707と同様に、フリーフォーム領域AfをOCRし、フリーフォーム領域Afに記入された文字列の文字データを抽出する(S901)。フリーフォーム領域Afに記入された文字列が改行を含む場合についても、制御部201は、S707と同様、OCRにより得られた改行コードを含めて抽出する。
制御部201は、S901にて抽出された文字データを含む通信面画像60を生成し(S709)、本処理を終了する。本実施形態では、制御部201がS710の判断を肯定した場合、制御部201は、S709において、まず、S901にて抽出された文字データに対応する文字列であって、フォント情報D2に従う書体、文字サイズ、および文字色の文字列を生成する。制御部201は、生成された文字列を、ユーザが予め選択したイラストの画像に合成し、通信面画像60を生成する。
上記第2実施形態によれば、テンプレート50の文言選択領域51に何も記入されず、かつ、フリーフォーム領域52の記入領域Afに文字列が記入された場合には、記入領域Afに記入された文字列が、フォントD2に含まれる書体で印刷される。よって、ユーザが記入領域Afに記入した文字列を、予め決められた書体の文字列として印刷できる。
上記実施形態において、処理サーバ200が、画像処理装置の一例である。はがき作成アプリ202aが、画像処理プログラムの一例である。MFP10が、外部装置の一例である。制御部201が、制御部の一例である。記憶部202が、記憶部の一例である。ネットワークI/F203が、通信部の一例である。テンプレート50が、テンプレートの一例である。傍線Lが、置換指示情報の一例である。文言W1〜W3が、デフォルト文字列の一例である。文字データD1aが、デフォルト文字データの一例である。対象文字データに対応する文字列が、対象文字列の一例である。文字列Qが、置換指示情報に関連付けてテンプレートに記入された文字列の一例である。フォント情報D2が、デフォルト文字列を構成する各文字の書体を指定する書式情報、予め決められた書体を指定する書式情報の一例である。改行コードが、改行情報の一例である。記入領域A1〜A3が、第1記入領域の一例である。記入領域情報D1dが、第1位置情報の一例である。チェックボックスに記入されるチェックマークが、指定情報の一例である。記入領域Afが、第2記入領域の一例である。フリーフォーム情報D3が、第2位置情報の一例である。背景画像Gが、所定の背景画像の一例である。文言位置情報D1bが、表示位置情報の一例である。フォント情報D4が、テンプレートに含まれるデフォルト文字列を構成する各文字の、当該テンプレートに表示される書体および文字サイズを特定する書式情報の一例である。
M3にてMFP10が送信した読取データを受信する処理サーバ200の制御部201が、第1取得手段の一例である。S805,S803,S706,S710の処理を実行する制御部201が、解析手段の一例である。S806の処理を実行する制御部201が、第1判断手段の一例である。S801の処理を実行する制御部201が、第2取得手段、第3取得手段、第4取得手段、第6取得手段の一例である。S807の処理を実行する制御部201が、第1特定手段の一例である。S808の処理を実行する制御部201が、第1抽出手段の一例である。S809の処理を実行する制御部201が、置換手段の一例である。S709の処理を実行する制御部201が、文字列生成手段、画像処理手段の一例である。S804の処理を実行する制御部201が、第2特定手段の一例である。S702の処理を実行する制御部201が、第5取得手段の一例である。S706,S710の処理を実行する制御部201が、第2判断手段の一例である。S707の処理を実行する制御部201が、第2抽出手段の一例である。S708の処理を実行する制御部201が、付加手段の一例である。S711の処理を実行する制御部201が、第3抽出手段の一例である。
以上、実施形態に基づき本発明を説明したが、本発明は上述した実施形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の改良変更が可能であることは容易に推察できるものである。
例えば、上記実施形態では、本発明の画像処理装置として、処理サーバ200を例示した。処理サーバ200の機能を持たせたMFP10を、本発明の画像処理装置として適用できる。また、上記実施形態では、処理サーバ200を、物理的に存在する1つのサーバとして構成したが、複数の物理的な装置が協働して1つのサーバとして機能するヴァーチャルマシンであってもよい。
上記実施形態では、処理サーバ200に処理対象の読取データを供給する装置として、多機能周辺装置であるMFP10を例示した。少なくともスキャン機能、もしくは、読取データを他の装置から取得する機能を有する装置であれば、MFP10に代わる装置として適用できる。また、MFP10のような装置に限らず、MFP10と、MFP10を管理する管理サーバとから構成されるシステムから、処理サーバ200に処理対象の読取データを供給する構成としてもよい。
上記実施形態では、処理サーバ200は、MFP10から受信した読取データから通信面画像を生成する構成としたが、記憶部202に記憶されている読取データから通信面画像を生成する構成であってもよい。本変形例では、記憶部202に記憶されている読取データを取得する処理が、第1取得手段の一例となる。
上記実施形態では、処理サーバ200の記憶部202に記憶されるテンプレート情報を利用して、テンプレートの読取データから印刷文字列P,Kを生成する構成としたが、テンプレート情報は、テンプレートの読取データの送信元のMFP10が処理サーバ200に送信する構成としてもよい。
上記実施形態では、本発明を利用するテンプレート50として、年賀状の通信面を作成するためのテンプレートを例示した。年賀状に限らず、クリスマスカード、暑中見舞い、寒中見舞いなど、各種ポストカードの通信面を作成するためのテンプレートを、本発明を利用するテンプレート50として適用できる。また、ポストカードの通信面を作成するためのテンプレートに限らず、定型文を含む書類を作成するためのテンプレートなどであっても、本発明を利用するテンプレート50として適用できる。
上記実施形態において、3種類の文言W1〜W3から1の文言を選択できるテンプレート50を例示したが、テンプレート50にて選択可能な文言の数は「3」に限らず、1または複数の適宜の数を適用できる。また、上記実施形態において、図2(a)にて例示した文言W1〜W3は、それぞれ、年賀状の挨拶文として互いに排他的な文字列としたが、組み合わせて使用できる文字列から構成される複数の文言がテンプレート50に含まれる構成であってもよい。上記実施形態では、2以上の文言が選択された場合にはエラーとしたのに対し、本変形例では、2以上の文言が選択できるように構成してもよい。
2以上の文言が選択できるように構成した場合、チェックマークによる選択に代えて、数字を記入する構成を採用できる。かかる場合、処理サーバ200は、数字を記入する領域をOCRし、記入された数字を特定する。処理サーバ200は、記入された数字の順序に従い、数字が記入されることによって選択された文言を順次配列することにより、印刷文字列Pを生成する。
例えば、図10(a)に示すように、処理サーバ200は、「1」が記入されたことにより選択された文言に対応する文字列P1と、「2」が記入されたことにより選択された文言に対応する文字列P2と、「3」が記入されたことにより選択された文言に対応する文字列P3とを、記入された数字が昇順で右から左に配列された印刷文字列Pを生成する。処理サーバ200は、生成した印刷文字列Pを含む通信面画像60を生成する。
また、チェックマークによる選択に代えて、数字を記入する構成において、記入された数字に応じた位置に、選択された文言に対応する印刷文字列Pを配置する構成としてもよい。例えば、図10(b)に示すように、通信面画像60の上下左右にそれぞれ領域R1,R2,R3,R4を設け、各領域R1〜R4に特定の数字を割り当てる。処理サーバ200は、領域R1〜R4のうち、OCRにより特定された数字に対応する領域に、数字が記入されることによって選択された文言に対応する印刷文字列Pを配置する。
例えば、各領域R1〜R4に対し、それぞれ1,2,3,4を割り当てた場合に、OCRにより特定された数字が「1」であれば、「1」が記入されたことにより選択された文言に対応する印刷文字列Pが、領域R1に配置される。なお、印刷文字列Pを配置する領域の数は、2以上であれば適宜の数を適用できる。また、通信面画像60における、印刷文字列Pを配置する領域は、上下左右に限らず、適宜の位置に配置できる。
上記実施形態では、テンプレート50に含まれる全ての文言に共通して印刷文字列Pに適用するフォント情報D2を準備する構成としたが、文言毎にデフォルトのフォント情報を準備する構成としてもよい。本変形例では、文言選択領域51のチェックボックスにチェックマークが記入され、かつ、フリーフォーム領域52の記入領域Afが記入されている場合に、記入領域Afに記入された文字列から生成される印刷文字列Kの書体、文字サイズ、および文字色は、チェックマークの記入によって選択された文言に対応するデフォルトのフォント情報を用いて決定される。また、テンプレート50に利用するフォント情報を変更できる領域を設け、当該領域への記入に応じたフォント情報に従う印刷文字列P,Kを生成する構成としてもよい。
上記実施形態では、印刷文字列P,Kに適用するフォント情報を共通としたが、印刷文字列Pに適用するフォント情報と、印刷文字列Kに適用するフォント情報とを別々に準備する構成としてもよい。また、上記実施形態では、デフォルトのフォント情報D2と、テンプレートのフォント情報D4とを別々に準備したが、テンプレートに表示される文言を構成する文字列と印刷文字列Pとが、同じ書体、文字サイズである場合には、書体情報およびサイズ情報を共通化してもよい。
上記実施形態では、印刷文字列P,Kを縦書きの文字列としたが、横書きの文字列としてもよい。縦書きか横書きかを選択できる領域をテンプレート50に設ける構成としてもよい。上記実施形態では、テンプレート50に含まれる文言を縦書きで表示される文字列としたが、横書きで表示される文字列であってもよい。横書きで表示される文字列を採用する場合、対象文字データを特定するために文言領域の記入領域に記入する線を、文字列の右側に記入する傍線でなく、文字列の下側に記入する下線または上側に記入する上線とすればよい。
上記実施形態では、1の記入領域に記入される傍線を1本としたが、異なる位置に複数本の傍線が記入される構成としてもよい。複数本の傍線が記入される場合、各傍線に最も近い文字列を、各傍線に対応する文字列として特定するようにすればよい。本変形例によれば、1の文言の複数個所をユーザの好みに応じて変更できる。また、上記実施形態では、傍線として記入される線として、直線を例示したが、波下線や、破線や、二重線など、適宜の線種を適用できる。また、文言を構成する文字を囲う線であってもよい。
上記実施形態では、文言領域の記入領域に記入された傍線および文字列に応じて、文言を変更する構成としたが、傍線および文字列を記入するための記入領域を別々に設ける構成としてもよい。例えば、傍線に対応する文字列を記入するための記入領域は、文言に隣接せず、テンプレート50の端側に文言毎に設ける構成としてもよい。
上記実施形態では、文言領域の記入領域に記入される文字列が改行を含む場合、OCRにより改行コードを含めて文字データを抽出する構成としたが、改行コードを無視する構成としてもよい。すなわち、文言領域の記入領域には改行された文字列として記入されたとしても、改行を含まない文字列として取り扱う構成としてもよい。
上記実施形態では、S702において、フリーフォーム情報D3を取得し、S801において、文言選択領域情報D1、フォント情報D2、およびフォント情報D4を取得する構成としたが、各情報D1〜D4を取得するタイミングは、適宜のタイミングを採用できる。例えば、情報D1〜D4を全て、変換処理(S1)の開始時に取得してもよい。また、文言選択領域情報D1を構成する、文字データD1a、文言位置情報D1b、チェックボックス情報D1c、および記入領域情報D1dを、別々のタイミングで取得する構成としてもよい。
上記実施形態では、フリーフォーム領域に記入があるかを判断する処理(S706,S710)を、S704の処理の後に行う構成としたが、S704の処理より前に行う構成としてもよい。また、上記第2実施形態では、フリーフォーム領域AfをOCRし、フリーフォーム領域Afに記入された文字列の文字データを抽出する処理(S707,S901)が、S706またはS710の処理後に実行される構成とした。S707,S901と同様の処理が、S706またはS710の処理前に実行される構成としてもよい。
上記実施形態では、図7(a)のシーケンス図、ならびに、図7(b)および図8,9のフローチャートに記載される各処理のうち、処理サーバ200が実行する処理について、制御部201のCPUが実行するものとして説明したが、これら各図に記載される該当処理を、複数のCPUが協同的に実行する構成としてもよい。また、ASICなどのICが、単独で、または、複数によって協働的に、上記各図に記載される該当処理を実行する構成してもよい。また、CPU11とASICなどのICとが協同して、上記各図に記載される該当処理を実行する構成してもよい。上述した各実施形態により説明した各特徴や、上述した各変形例を適宜組み合わせて実施する構成としてもよい。