以下、添付の図面を参照して、本発明を好適な実施例に基づいて詳細に説明する。なお、以下の実施例において示す構成は一例にすぎず、本発明は図示された構成に限定されるものではない。
[実施例1]
本実施例では、原稿をスキャンして得た画像データから二次元コードを検索・デコードし、デコードで得られた情報に基づいてフォルダ名とファイル名を決定して、原稿の画像データをファイルサーバに格納する態様について説明するものとする。
図1は、本実施例に係る、ファイル管理システムの構成の一例を示す図である。ファイル管理システム100は、MFP110、PC120、ファイルサーバ130で構成され、これらがLAN等のネットワーク140を介して相互に接続されている。
MFP110は、プリンタやスキャナといった複数の機能を備えたいわゆる複合機(Multi Function Peripheral)と呼ばれる画像形成装置である。MFP110は、制御部111、操作・表示部112、プリンタ部113、スキャナ部114、記憶部115、デコード部116、送受信部117で構成される。
制御部111は、CPU、ROM、RAMの他、操作・表示部112やプリンタ部113との各種I/Fを備え、MFP100を統括的に制御する。
操作・表示部112は、タッチスクリーン機能を有する液晶パネルなどで構成され、ユーザに対して種々の情報を表示したり、スキャン指示などのユーザ操作を受け付ける。
プリンタ部113は、制御部111から受け取った画像データを用いて、紙等の記録媒体上に画像を印刷する。
スキャナ部114は、原稿台やADFにセットされた原稿をスキャンして画像データを生成する。以下、スキャンによって得られた原稿の画像データを「スキャン画像データ」と呼ぶ。
記憶部115は、例えばHDDであり、ユーザ設定情報などの各種データを記憶する。
デコード部116は、QRコード等の二次元コード(以下、コード)をスキャン画像データから検索する処理、及び検索によって見つかったコードのデコード処理(復号化処理)を行う。
送受信部117は、PC120やファイルサーバ130といった外部装置との間でデータの送受信を行なう。
PC120は、コードを付加した原稿の作成などを行う情報処理装置である。
ファイルサーバ130は、MFP110で利用するスキャン画像データなどの各種データファイルを、階層構造のフォルダに振り分けて保存・管理する情報処理装置である。
[コード付き原稿について]
次に、本実施例において、MFP110のスキャナ部114によるスキャンの対象となる、コード(QRコード)が付加された原稿について説明する。図2は、コード付原稿がPC120で作成される様子を説明する図である。図2の例では、左上隅にQRコード203が付加される定型文書(ここでは納品書)202が、予め決められたレイアウトに従って各項目にどのような文字を入力するかが記述された雛形ファイルとしてのCSVファイル201に基づいて作成される。参照符号204は、QRコード203をデコードして得られる情報(文字列)であり、この例では、ファイルサーバ130の格納先(振分先)のフォルダ名「鈴木」を指定する情報と、格納時のファイル名を指定する情報「A社納品書」が含まれている。
[ファイルサーバにおけるファイル管理構造]
図3は、ファイルサーバ130におけるファイルの管理構造を示す図である。
トップフォルダ300は、ファイルを格納する際に基準となる、ファイルサーバ130の最上位層のフォルダである。振分け先フォルダ310〜330は、トップフォルダ300の下位にあるサブフォルダであり、本実施例では各ユーザと対応付けられている(サブフォルダ310:鈴木、サブフォルダ320:佐藤、サブフォルダ330:高橋)。格納ファイル311は、サブフォルダ310に格納されているファイルであり、本実施例では前述の図2で示した「A社納品書」のデータである。
図2に示すQRコード203のようなコードであれば、ファイルサーバ130のトップフォルダ300「share」下の振分け先フォルダ「鈴木」310に、格納ファイル「A社納品書.pdf」311と命名され格納されることになる。
[コード付き原稿の作成]
続いて、PC120において、二次元コード(その一例としてQRコード)が付加された原稿が作成されるまでの流れを説明する。図4は、コード付き原稿の元になる印刷イメージデータ生成処理の流れを示すフローチャートである。なお、この一連の処理は、以下に示す手順を記述したコンピュータ実行可能なプログラムをROMからRAM上に読み込んだ後に、CPUによって該プログラムを実行することによって実施される。
ステップ401では、PC120の操作部(不図示)を介したユーザ操作によって、スキャン画像データ(ファイル)の格納先フォルダが指定される。本実施例では、フォルダ名として使用する雛形ファイル(ここでは CSVファイル)の列と、タグとして使用する文字列が指定される。具体的には、フォルダ名として使用する列として「担当」の列が指定され、タグとして使用する文字列として「FOLDER:」が指定される。タグはコードをデコードして得られる文字列から特定の情報を抜き出すための目印であり、例えば文字列から「担当者」が誰なのかという情報を抜き出すために使用する。
ステップ402では、PC120の操作部(不図示)を介したユーザ操作によって、スキャン画像データを保存する際のファイル名が指定される。本実施例では、ファイル名として使用する CSVファイルの列と、タグとして使用する文字列が指定される。具体的には、ファイル名として使用する列として「ファイル名」の列が指定され、タグとして使用する文字列として「FILENAME:」が指定される。
ステップ403では、CSVファイルのレコード(行)の情報が逐次読み込まれる。例えば管理番号「0001」から順に、「0002」、「0003」といった具合に上から下の行に向けて読み込まれる。
ステップ404では、読み込んだレコードの各フィールドの情報に従って定型文書イメージデータが生成される。
ステップ405では、ステップ404で読み込んだフィールドの情報とステップ401及び402で指定されたタグとを組み合わせて、コード化(符号化)の対象となる文字列が作成される。上述の例では、コード化する文字列は「FOLDER:鈴木; FILENAME:A社納品書」となる。
ステップ406では、ステップ405で作成された文字列からコードイメージデータが生成される。
ステップ407では、ステップ404で生成した定型文書イメージデータとステップ406で生成したコードイメージデータとを合成して、印刷イメージデータが生成される。生成された印刷イメージデータは、MFP110へ送受信部117を介して送信され、印刷処理される。
ステップ408では、CSVファイル内のすべてのレコードについて、印刷イメージデータの生成が完了したかどうかが判定される。未処理のレコードがあればステップ403に戻り、次のレコードを対象にして処理を繰り返す。一方、すべてのレコードについて印刷イメージデータの生成が完了していれば、本処理を終える。
以上が、コード付き原稿の元になる印刷イメージデータ生成処理の内容である。このようにして生成された印刷イメージデータがMFP110で印刷処理されて、定型文書としてのコード付き原稿が作成される。
[定型業務処理の準備処理]
続いて、MFP110における、定型業務処理の準備処理について説明する。ここで、本実施例における定型業務とは、上述のようにして作成された定型文書(コード付き原稿)をMFP110のスキャナ部114でスキャンし、得られたスキャン画像データをファイルサーバ130上の担当者毎のフォルダにファイル名を付けて格納する処理をいう。
実際の定型業務処理の流れを説明する前に、その準備処理について説明する。具体的には、ユーザが定型業務を行なう際に使用する、MFP110の操作・表示部112に表示されるユーザインタフェース画面としての定型業務画面における、定型業務の内容に応じたUIボタン(定型業務ボタン)の設定について説明する。図5は、定型業務ボタン設定処理の流れを示すフローチャートである。以下、図6及び図7において、定型業務の際に使用するUI画面の一例を適宜参照しつつ説明する。
ステップ501において、制御部111は、操作・表示部112上に定型業務画面を表示する。図6(a)は、定型業務画面のメイン画面の一例であり、まずこのようなメイン画面600が操作・表示部112に表示される。メイン画面600内のボタン601及び602が定型業務ボタンであり、個別の定型業務(すなわち、定型文書)の種類に応じて設けられ、設定完了後にはユーザが指定した名称に更新される(後述の図6(e)を参照)。図6(a)は、個別の定型業務が未設定のデフォルト状態であり、「定型業務1」と「定型業務2」の2つの定型業務ボタン601/602が存在している。もちろん、設定可能な定型業務の数は2つに限定されるものではなく、より多くの定型業務ボタンを設けてもよい。設定ボタン603は、定型業務ボタンの設定を行う際に押下するボタンである。
ステップ502において、制御部111は、ユーザによる定型業務ボタン601/602の選択と、設定ボタン603の押下を受け付ける。ここでは、「定型業務1」に対応する定型業務ボタン601が選択されたものとする。
ステップ503において、制御部111は、操作・表示部112上に原稿読取設定画面を表示する。図6(b)は、原稿読取設定画面の一例である。ユーザは、このような原稿読取設定画面610において、原稿のサイズや解像度等を入力する。以下、各項目について詳しく説明する。図6(b)に示す原稿読取設定画面610において、領域611はスキャン対象の原稿のサイズを入力する領域であり、ここでは「A4」が入力されている。領域612は読み取り時の解像度を入力する領域であり、ここでは「300×300」となっているので300dpiの解像度でスキャン処理がなされることになる。領域613は原稿の向きを入力する領域であり、ここでは「横」となっているが、縦向きの原稿であれば「縦」を入力する。領域614はファイルフォーマットの形式を入力する領域であり、ここでは「PDF」となっているので読み取った画像データはPDFの形式で保存されることになる。領域615は原稿の向きの自動補正を行うかどうかを指定する領域であり、ここでは「行う」となっているが、ユーザが自動補正を希望しない場合は「行わない」を入力する。領域616は原稿に付加するコードの位置を見本原稿から自動で検出して設定するか、或いは「手動」で設定するかを指定する領域であり、領域617はそのコード位置を示す数値の入力・表示領域である。いま、領域616では「自動」となっている。この場合、図6(c)に示すような、コード位置自動設定画面620が操作・表示部112に表示され、ユーザはコードが付加された原稿(見本原稿)を原稿台等にセットして読み取らせることで、自動でコード位置を設定することができる。これによって、例えば領域617に示されているような値(「左:20mm」「上:10mm」)が自動で決定される。仮に領域616に「手動」が入力されていれば、領域617における2つの数値を、ユーザが直接入力して設定することになる。
ステップ504において、制御部111は、上述のコード位置設定の領域616に入力された内容が「自動」であるか「手動」であるかを判定する。判定の結果、「自動」であればステップ505に進む。一方、「手動」であればステップ512に進む。
ステップ505において、制御部111は、上述の原稿読取設定画面610におけるコード位置の領域617をグレーアウト表示にする。
ステップ506において、制御部111は、ユーザによる、上述の原稿読取設定画面610における「次へ」ボタン618の押下を受け付ける。
ステップ507において、制御部111は、操作・表示部112上に、上述のコード位置自動設定画面(図6(c))を表示する。これを受けて、ユーザは、読み取り対象の原稿を原稿台等にセットする。
ステップ508において、制御部111は、操作・表示部112上のスキャンの実行指示(例えば、スタートボタン(不図示)の押下)を受け付ける。
ステップ509において、制御部111は、スキャナ部114に対して原稿のスキャンを指示し、指示を受けてスキャナ部114は、原稿をスキャンしてスキャン画像データを生成する。生成されたスキャン画像データは、デコード部116へ送られる。
ステップ510において、デコード部116は、上述の原稿読取設定画面610の各項目に入力された情報(すなわち、原稿サイズと原稿向き)を基に、スキャン画像データ上におけるコードの存在する位置を検出する。検出されたコードの位置を特定する座標等の情報(コード位置検出情報)は、制御部111に送られる。
ステップ511において、制御部111は、デコード部116から受け取ったコード位置検出情報に従って、上述の原稿読取設定画面610における領域617に、コード位置を設定する。こうして、見本原稿から自動でコード位置が設定されると、処理はステップ514に進む。
ステップ512において、制御部111は、上述の原稿読取設定画面610における領域617にユーザが直接入力した数値をコード位置として設定する。
ステップ513において、制御部111は、ユーザによる、上述の原稿読取設定画面610における「次へ」ボタン618の押下を受け付ける。これにより処理はステップ514に進む。
ステップ514において、制御部111は、操作・表示部112上に、ファイル保存設定画面を表示する。図6(d)は、ファイル保存設定画面の一例を示す図である。ファイル保存設定画面630において、領域631はファイルサーバ130のアドレスを指定する領域であり、ここでは「\\192.168.XX.XX」が指定されている。領域632はファイルサーバ130のトップフォルダを指定する領域であり、ここでは「share」が指定されている。領域633はフォルダ名タグを指定する領域であり、ここでは「FOLDER:」が指定されている。原稿内のコードをデコードして得られる文字列内にフォルダ名タグ「FOLDER:」があれば、そのタグに後続する文字列を格納先のフォルダ名とする。領域634はファイル名タグを指定する領域であり、ここでは「FILENAME:」が指定されている。原稿内のコードをデコードして得られる文字列内にファイル名タグ「FILENAME:」があれば、そのタグに後続する文字列をファイル名とする。領域635は、格納先フォルダに同一名称のファイルが既に存在し、重複してしまう場合の処理を指定する領域であり、ここでは「上書き」が指定されているが、上書き保存したくない場合は「何もしない」を入力する。また、別名で保存するように設定された場合は、コードで指定されたファイル名の末尾に番号等の文字列を自動的に追加してファイル名を付与するように構成してもよい。領域636は定型業務の名称を指定する領域であり、ここでは「納品書」が指定されている。すべての項目について入力が完了すると、ユーザは、OKボタン637を押下する。
ステップ515において、制御部111は、ユーザによる、上述のファイル保存設定画面630におけるOKボタン637の押下を受け付ける。
ステップ516において、制御部111は、ここまでの処理で設定された各項目についての内容を、「定型業務1」に対応する定型業務として、ファイル保存設定画面630の領域636で指定された名称(ここでは「納品書」)で記憶部115に保存する。
ステップ517において、制御部111は、指定された定型業務名称をボタン名とした定型業務ボタンを作成し、当該定型業務ボタンの名称を「定型業務1」と差し替えた定型業務画面のメイン画面を、操作・表示部112に表示する。図6(e)は、「定型業務1」に代えて名称「納品書」の定型業務ボタンが表示された定型業務画面のメイン画面600’を示している。以降は、ユーザは、この「納品書」ボタン640を押下して、図2に示した定型の納品書を作成することが可能になる。
以上が、定型業務の内容に応じたUIボタン(定型業務ボタン)を設定するまでの流れである。こうして、例えば定型の納品書等を作成する定型業務を行なう際のUIボタンが作成される。なお、設定した定型業務の内容を変更等したい場合は、定型業務画面において、所望の定型業務ボタンを選択した後、設定ボタン603を選択して同様の処理を行い、再設定すればよい。
[コード付き原稿の置き方とスキャン時のコード位置]
ここで、MFP110の原稿台等へのコード付き原稿の置き方と、スキャン時のコード位置について説明する。
従来は、コードが存在するはずの原稿上の位置について指定せずにスキャンを行って、得られたスキャン画像データの全面に対してコード検索を行っていたため、コードの検出に多くの時間を要していた。そこで、本実施例では、上述の通り、ユーザによって原稿の向きとコード位置を指定するようにしている(前述の図6(b)に示す原稿読取設定画面610を参照)。これにより、デコード部116は、原稿上の特定された位置(検索対象領域)のみを対象にスキャンを行うことができ、コード検索を高速に行うことが可能となる。
ここで、ユーザによって原稿向きが「横」に指定された場合において、原稿上のコードの位置が、当該原稿の左上隅であったとする(図2の定型文書202を参照)。このような原稿をMFP110の原稿台等にセットする場合、図7(a)〜(d)に示すように、4通りの置き方がある。ここで例えば、コード位置として図6(b)の領域617で特定される値(左:20mm、上:10mm)が設定されている場合において、デコード部116が当該指定された位置以外について検索を行なわないとすれば、図7(a)以外の3つの置き方(図7(b)〜(d))でコード検索は失敗することになる。
そこで、本実施例では、設定された「原稿向き」と「コード位置」の情報に基づいて、以下のようにして原稿上のコード検索を行なうようにしている。
1)原稿台等に正しい向きで原稿がセットされている場合
図7において、「原稿向き」に「横」が指定された場合の正しい置き方は、図7(a)で示す横向きの正位置と図7(b)で示す横向きの逆位置の2通りの置き方となる。この2通りの置き方の場合に考えられるコード位置は、横向きの正位置の置き方であれば符号711の位置、横向きの逆位置の置き方であれば符号711の位置を180度回転した符号712の位置である。従って、原稿台等に正しい向きで原稿がセットされている場合に本実施例では、デコード部116におけるコード検索の対象領域として、破線720で示す領域と破線721で示す領域の2箇所を指定してスキャンする(図7(e)を参照)。
2)指定された向きとは異なる向きで原稿台等に原稿がセットされている場合
「原稿向き」に「横」が指定された場合の正しい置き方は上述の正位置と逆位置であり、図7(c)や同(d)で示されるように原稿を「縦」にセットした場合は、指定された原稿向きとは異なる置き方となる。このような置き方の場合に考えられるコード位置は、図7(c)の置き方であれば符号713の位置、図7(d)の置き方であれば符号713の位置を180度回転した符号714の位置である。従って、原稿台等に正しい向きとは異なる向きで原稿がセットされている場合に本実施例では、デコード部116におけるコード検索の対象領域として、破線730で示す領域と破線731で示す領域の2箇所を指定してスキャンする(図7(f)参照)。
[定型業務処理]
次に、MFP110における実際の定型業務処理について説明する。定型業務処理は、原稿のスキャン画像データを取得してコードを検出・解析する処理と、スキャン画像データのフォルダ振分け/ファイル命名の処理とに大別される。まず、前者の処理について説明する。
図8は、原稿からスキャン画像データを取得し、コードを検出・解析する一連の流れを示すフローチャートである。
ステップ801において、制御部111は、操作・表示部112上に前述の定型業務画面(図6(a)を参照)を表示する。
ステップ802において、制御部111は、ユーザによる定型業務ボタンの選択を受け付ける。ここでは、図6(e)に示す定型業務画面600’における「納品書」ボタン640が選択(押下)されたものとする。
ステップ803において、制御部111は、選択された定型業務において指定されている原稿向き(原稿読取設定画面610の領域613で指定)とコード位置(原稿読取設定画面610の領域617で指定)の情報を取得する。
ステップ804において、制御部111は、原稿台等にセットされている原稿の向きをスキャナ部114から取得する。
ステップ805において、制御部111は、ステップ803で取得した情報で特定される定型業務に対応付けられた原稿向きと、ステップ804で取得した実際にセットされている原稿の向きとが同じであるか判定する。判定の結果、同じ向きであればステップ806に進む。一方、異なる向きであればステップ807に進む。
ステップ806において、制御部111は、ステップ803で取得したコード位置情報で特定されるコード位置と、当該特定されるコード位置を180度回転させた位置(反転させた位置)の2カ所の領域を、コード検索対象領域として設定する。
ステップ807において、制御部111は、ステップ803で取得したコード位置情報で特定されるコード位置を90度回転させた位置と、当該特定されるコード位置を270度回転させた位置の2カ所の領域を、コード検索対象領域として設定する。
ステップ808において、スキャナ部は114に、制御部111からの読み取り指示に従い、原稿台等にセットされた原稿のスキャンを実行する。スキャンによって得られたスキャン画像データ)はRAMに保存された上で、デコード部116に送られる。
ステップ809において、デコード部116は、制御部111からのコード検索指示に従い、ステップ806で設定されたコード位置を検索対象領域として、スキャン画像データからコードを検索する。
ステップ810において、制御部111は、デコード部116による検索によって、コードが検出されたかどうかを判定する。判定の結果、コードが検出されていれば、ステップ811へ進む。一方、コードが検出されていなければ、ステップ812へ進む。
ステップ811において、デコード部116は、制御部111からのデコード(復号化)指示に従い、検出されたコードのデコードを試みる。デコードに成功すれば、ステップ813へ進む。一方、デコードに失敗すれば、ステップ812へ進む。
ステップ812において、制御部111は、コードの検出処理或いはコードのデコード処理に失敗した旨を、例えばメッセージ画面(不図示)を操作・表示部112に表示する等によって、ユーザに通知する。
ステップ813において、制御部111は、検出されたコード位置の情報をデコード部116から取得する。
ステップ814において、制御部111は、検出されたコード位置とステップ803で取得したコード位置情報で特定されるコード位置とが一致せず、かつ、原稿向き自動補正が「行う」に設定されているかを判定する。判定の結果、上記条件に該当する場合はステップ815に進む。一方、上記条件に該当しない場合は、ステップ817へ進む。
ステップ815において、制御部111は、ステップ803で取得した原稿向き情報で特定される原稿向きと実際の原稿向き、ステップ803で取得したコード位置情報で特定されるコード位置と実際のコード位置とに基づいて、ユーザが想定した定型原稿の配置に対して、実際の原稿配置がどれくらい回転しているか(回転角度)を導出する。
ステップ816において、制御部111は、ステップ808で得られたスキャン画像を、ステップ815で導出された角度分だけ回転させる。
ステップ817において、制御部111は、ステップ808で得られたスキャン画像或いはステップ815で角度の回転処理を行なって得られたスキャン画像を、ユーザが指定したファイルフォーマット(原稿読取設定画面610の領域614で指定)へ変換する。
以上が、原稿のスキャン画像データを取得してコードを検出・解析する処理の内容である。上述の通り本実施例では、コード位置情報で特定されるコード位置を基準として決定される異なる位置についても検索の対象領域として設定されることになり、原稿の全面をスキャンするよりも高速なコード検索を確保しつつ、指定領域以外にコードが存在する場合にも対応することを可能としている。
本処理の後は、生成されたスキャン画像データのフォルダ振分け/ファイル命名の処理へと進む。
なお、本実施例の特徴は、ユーザが指定するコード位置とは異なる位置(指定された位置を反転等させた位置)も検索対象にする点にあるが、これは、上述のような態様に限定されるものではない。例えば、MFP110の管理者が事前に原稿上の所定位置(例えば左上隅)をコードの検索対象領域として予め記憶部115に登録し、その登録のタイミングで、上記所定位置に加えて、該所定位置を基準として決定される位置(例えばその対角である位置、ここでは右下隅)をセットにして登録するようにしてもよい。そして、ユーザが、上記セットで登録された位置(上述の例では左上隅と右下隅のセット)を選択してスキャンの実行を指示することで、原稿をスキャンして得られた画像データに対し、上記セットで登録された位置を対象にコードの検索がなされるようにしてもよい。
図9は、図8のフローで生成されたスキャン画像データの振分先フォルダ及びファイル名を決定して保存する処理の流れを示すフローチャートである。
ステップ901において、制御部111は、コードをデコードして得られたコード文字列をデコード部116から取得する。図2の参照符号204で示すコードの例であれば、「FOLDER:鈴木; FILENAME:A社納品書」がコード文字列として取得されることになる。
ステップ902において、制御部111は、選択された定型業務において指定されているフォルダ名タグ(ファイル保存設定画面630の領域633で指定)を取得する。
ステップ903において、制御部111は、ステップ901で取得したコード文字列に、ステップ902で取得したフォルダ名タグが含まれているか判定する。判定の結果、コード文字列にフォルダ名タグが含まれている場合は、ステップ904へ進む。一方、コード文字列にフォルダ名タグが含まれていない場合は、ステップ906へ進む。
ステップ904において、制御部111は、フォルダ名タグに基づいて、フォルダ名文字列を取得する。コード文字列として「FOLDER:鈴木; FILENAME:A社納品書」が取得されている本実施例の場合であれば、フォルダ名タグ「FOLDER:」であるから、取得されるフォルダ文字列は「鈴木」となる。
ステップ905において、制御部111は、ステップ904で取得したフォルダ文字列とトップフォルダとを組み合わせたものを、振り分け先フォルダに決定する。例えば、トップフォルダが「share」となっている場合(図3を参照)において、フォルダ文字列が「鈴木」であれば、振分け先フォルダは両者を組み合わせた「share\鈴木」となる。
ステップ906において、制御部111は、トップフォルダを振分け先フォルダに決定する。
ステップ907において、制御部111は、選択された定型業務において指定されているファイル名タグ(ファイル保存設定画面630の領域634で指定)を取得する。
ステップ908において、制御部111は、ステップ901で取得したコード文字列に、ステップ907で取得したファイル名タグが含まれているか判定する。判定の結果、コード文字列にファイル名タグが含まれている場合は、ステップ909へ進む。一方、コード文字列にファイル名タグが含まれていない場合は、ステップ910へ進む。
ステップ909において、制御部111は、ファイル名タグに基づいて、ファイル名文字列を取得する。コード文字列として「FOLDER:鈴木; FILENAME:A社納品書」が取得されている本実施例の場合であれば、ファイル名文字列は「A社納品書」であり、ファイル名は前述のファイルフォーマットを考慮して「A社納品書.pdf」となる。
ステップ910において、制御部111は、検出されたコードにファイル名タグが見つからない旨を、例えばメッセージ画面を操作・表示部112に表示する等してユーザに通知し、エラー終了する。
ステップ911において、制御部111は、ステップ905又はステップ906で決定された振分け先フォルダ内に、同じファイル名のファイル(すなわち、ステップ909で取得されたファイル名文字列と同じ文字列をファイル名に用いたファイル)が既に存在するかを判定する。判定の結果、同じファイル名のファイルが既に存在する場合は、ステップ912に進む。一方、同じファイル名のファイルが存在しなければ、ステップ913に進む。
ステップ912において、制御部111は、選択された定型業務において指定されている重複ファイルの処理(ファイル保存設定画面630の領域635で指定)が「上書き」であるか判定する。判定の結果「上書き」であれば、ステップ913へ進む。一方、「上書き」でなければステップ914へ進む。
ステップ913において、制御部111は、ファイルサーバ130における、ステップ905又はステップ906で決定された振分け先フォルダに、ステップ909で取得したファイル名文字列をファイル名に用いて、スキャン画像データを格納する。
ステップ914において、制御部111は、指定された文字列をファイル名に使用したファイルが既に存在し重複するため保存できない旨を、例えばメッセージ画面を操作・表示部112に表示する等してユーザに通知し、エラー終了する。
なお、ファイル保存設定画面630においてフォルダ名タグやファイル名タグが設定されていない場合には、定型文書の原稿をスキャンした日/時/分/秒といった日時情報を用いてフォルダを作成したり、ファイル名を命名するなどしてもよい。
また、本実施例では、原稿の画像データをファイルサーバに格納する処理を説明したが、デコードで得られた情報に基づいて所定の処理を行なうものには広く適用可能である。
以上の述べた通り、本実施例によれば、ユーザ或いは管理者によって、原稿上に存在するコードの検索位置が指定される。そして、その際には、指定された位置以外の位置についても効率的に検索を行なうので、コード検索を高速に行うことができ、かつ、原稿をスキャンして得られた画像データの所定領域以外にコードが存在する場合にも対応することが可能である。
[実施例2]
実施例1では、図6(d)に示すようなファイル保存設定画面において、フォルダ名タグとファイル名タグをユーザが指定できるようにしていた(入力領域633及び634)。次に、タグに加えて、区切り文字と文字コードをユーザが指定できるようにした態様について、実施例2として説明する。なお、実施例1と共通する部分については説明を省略ないしは簡略化し、以下では差異点を中心に説明するものとする。
図10は、定型文書に付加されたコードに、ファイル名とフォルダ名とがタグ付きで埋め込まれている場合の一例を説明する図である。図10(a)は、図2で示したものと同じ定型文書202にコード203が付加されており、当該コード203をデコードして得られた情報204-A内にファイル名とフォルダ名とがタグ付きで、かつ改行されて埋め込まれている様子を示している。以下では、説明の便宜上、タグで指定された文字列データ(値)のことを「タグ値」と呼び、タグを伴わずに文字列データだけが含まれているものを「タグ無し値」と呼ぶこととする。図10(b)に示すUI画面1000は、後述する図15のフローチャート(スキャン画像データの格納先フォルダ及びファイル名を決定して保存する処理のフローチャート)により、コードからタグ値やタグ無し値を取得するための設定を行うコード設定画面である。
まず、コード設定画面1000内のタグ設定欄1010では、コードに含まれるタグを複数設定可能で、ここではタグ1〜タグ4にそれぞれ対応する入力領域1011〜1014において、計4つのタグを設定することが出来るようになっている。ここでは、コード203をデコードして得られた情報204-Aのうちタグ値“鈴木”を取得するためタグ1に対応する入力領域1011に“FOLDER:”が入力され、タグ値“ A社納品書”を取得するためタグ2に対応する入力領域1012に“FILENAME:”が入力されている。また、コード設定画面1000内には、コード203に含まれる複数のパラメータ(ここではフォルダ名とファイル名)が何で区切られているのかを指定するための区切り文字設定欄1015が存在する。いま、2つのパラメータは改行で区切られているため、プルダウン式の選択領域1016において「改行」が選択されている。なお、区切り文字として一般的に使用されるマークとしては、改行以外に、カンマ、セミコロン、スペース等が挙げられる。さらに、コード設定画面1000には、コード203に含まれる文字列の文字コードを指定するための文字コード設定欄1017も存在し、同じくプルダウン式の選択領域1018において「SJIS」が選択されている。コード203に含まれる文字列の文字コードが予め分かっていないと、指定された区切り文字を文字列データから見つけることが出来ないことから、文字コードを併せて設定可能となっている。文字コードに指定可能なものとしてはSJISの他にも、例えば、JIS、EUC等がある。そして、「次へ」ボタン1019が押下されることで、図10(c)に示すフォルダ名設定画面1020に遷移する。
フォルダ名設定画面1020は、コード203から取得した文字列データや、現在日時(スキャン日時やデータ受信日時など)の情報を使って、フォルダ名を自動生成するための設定を行う画面である。フォルダ名設定画面1020内には第1〜第3の3つの名称要素を選択するための領域(以下、名称要素選択領域)1021〜1023が存在し、それぞれプルダウン式のリストにおいて、4つの「タグ値」、4つの「タグ無し値」、1つの「日時」の合計9つの選択肢が表示され、その中から各1つの名称要素を選択することが可能になっている。本実施例では、後述する図15のフローチャートにおいて取得されるのが最大4つのタグ値と最大4つのタグ無し値であるためこのような選択肢となっているが、名称要素選択領域の数や各選択領域における選択肢の数は任意である。図10(c)に示すフォルダ名設定画面1020では、名称要素選択領域1021〜1023で、最大3つの名称要素を選択し、それらに紐づく文字列を使ってフォルダ名を生成できるようになっている。フォルダ名設定画面1020にはさらに、選択された名称要素に紐づく文字列同士を連結するための連結文字の種類を設定するための連結文字設定欄1024も存在する。連結文字の種類としてはハイフン、アンダーバー、スペース等が挙げられる。いま、図10(c)では、名称要素選択領域1021において「タグ1」が選択され、名称要素選択領域1022及び1023は未選択となっている。このようにフォルダ名に「タグ1」の文字列のみを使うため、連結文字設定欄1024の選択領域1025においては「なし」が選択されている。そして、フォルダ名ラベル欄1026には、本画面で設定した内容(ここでは“(FOLDER)”)が表示される。図10(c)の設定では、タグ1のFOLDER:に対応するタグ値を用いてフォルダ名を生成することになるので、文書に付加されているコードのデコード結果が図10(a)の204−Aであった場合、フォルダ名を「鈴木」として生成することになる。そして、「次へ」ボタン1027が押下されることでファイル名設定画面1030に遷移する。
ファイル名設定画面1030は、コード203から取得した文字列データや現在日時の情報を使ってファイル名を自動生成するための設定を行う画面である。ファイル名設定画面1030にも、フォルダ名設定画面1020と同様、第1〜第3の3つの名称要素選択領域1031〜1033が存在する。そして、それぞれプルダウン式のリストにおいて、4つの「タグ値」、4つの「タグ無し値」、1つの「日時」(スキャン日時やデータ受信日時など)の合計9つの選択肢が表示され、その中から各1つの名称要素を選択することが可能になっている。図10(d)に示すファイル名設定画面1030では、名称要素選択領域1031〜1033で、最大3つの名称要素を選択し、それらに紐づく文字列を使ってファイル名を生成できるようになっている。さらに、ファイル名設定画面1030には、フォルダ名設定画面1020と同様、名称要素選択領域1031〜1033で選択された文字列同士を連結するための連結文字の種類を設定するための連結文字設定欄1034も存在する。いま、ファイル名“”で自動生成するための設定として、図10(d)では、名称要素選択領域1031において「タグ2」が選択され、名称要素選択領域1032及び1033は未選択となっている。このようにファイル名に「タグ2」の文字列のみを使うため、連結文字設定欄1034の選択領域1035においては「なし」が選択されている。そして、ファイル名ラベル1036には本画面で設定した内容(ここでは“FILENAME”)が表示される。なお、生成されるファイル名には、出力されるファイル形式に応じて末尾に拡張子(PDFでれば“.pdf”)が付加される。図10(d)の設定では、タグ2の「FILENAME:」に対応するタグ値を用いてファイル名を生成することになるので、文書に付加されているコードのデコード結果が図10(a)の204−Aであった場合、ファイル名を「A社納品書.pdf」として生成することになる。そして、「設定」ボタン1037が押下されることで、上述の各設定画面1000、1020及び1030で設定された内容がMFP110の記憶部115に保存される。
図11は、定型文書に付加されたコードに、ユーザ名や部門名といった複数のパラメータがタグ付きで埋め込まれている場合の一例を説明する図である。図11(a)は、定型文書202にコード203が付加されており、当該コード203をデコードして得られた情報204-B内に、ユーザ名、部門名、課名、商品名がタグ付きで、かつ改行されて埋め込まれている様子を示している。図11(b)に示すUI画面は、前述の図10(b)で示したコード設定画面1000である。ここでは、コード203をデコードして得られた情報204-Bのうちタグ値“鈴木”を取得するためタグ1に対応する入力領域1011には“USER:”が入力され、タグ値“営業第1部”を取得するためタグ2に対応する入力領域1012には“BUMON:”が入力されている。さらに、タグ値“営業2課”を取得するためタグ3に対応する入力領域1013には“KA:”が入力され、タグ値“NotePC”を取得するためタグ4に対応する入力領域1014には“SHOHIN:”が入力されている。そして、区切り文字設定欄1015では、これら4つのパラメータが改行で区切られていることを示すため、プルダウン式の選択領域1016において「改行」が選択されている。また、文字コード設定欄1017の選択領域1018ではデコードして得られた情報204-Bに含まれる文字列の文字コードとして“UTF-8”が選択されている。
次に、図11(c)に示すフォルダ名設定画面1020では、名称要素選択領域1021で「タグ2」が、名称要素選択領域1022で「タグ3」がそれぞれ選択され、名称要素選択領域1023は未選択となっている。さらに、連結文字設定欄1024では「_(アンダーバー)」が選択されている。そして、フォルダ名ラベル欄1026には、本画面で設定した内容(ここでは“(BUMON)_(KA)”)が表示される。図11(c)の設定では、タグ2とタグ3それぞれに対応するタグ値を用いてフォルダ名を生成することになるので、文書に付加されているコードのデコード結果が図11(a)の204−Bであった場合、フォルダ名を「営業第1部_営業第2課」として生成することになる。
そして、図11(d)に示すファイル名設定画面1030では、ファイル名を“”で自動生成するための設定がなされている。具体的には、名称要素選択領域1031で「タグ1」(USER:)が、名称要素選択領域1032で「タグ4」(SHOHIN)が、名称要素選択領域1033で「日時」がそれぞれ選択されている。さらに、連結文字設定欄1034の選択領域1035において「−(ハイフン)」が選択されている。そして、ファイル名ラベル欄1036には、本画面で設定した内容(ここでは“(USER)-(SHOHIN)-YYMMDDHHMM”)が表示される。図11(d)の設定では、タグ1に対応するタグ値とタグ4に対応するタグ値と日時とを用いてファイル名を生成することになるので、文書に付加されているコードのデコード結果が図11(a)の204−Bであった場合、ファイル名を「鈴木-NotePC-YYMMDDhhmm.pdf」として生成することになる(YYMMDDhhmmには年月日時分が入る)。
保存時のファイル名の形式や「設定」ボタン1037の役割といったその他の点については、図10で説明した例と異なるところがないので説明を省略する。
図12は、定型文書に付加されたコードに、ファイル名とフォルダ名とがタグ無しで埋め込まれている場合の一例を説明する図である。図12(a)は、定型文書202にコード203が付加されており、当該コード203をデコードして得られた情報204-C内に、ファイル名とフォルダ名とがタグ無しで、かつ改行されずに埋め込まれている様子を示している。図12(b)に示すUI画面は、前述の図10(b)で示したコード設定画面1000である。ここでは、コード203をデコードして得られた情報204-C内にタグが含まれていないため、タグ1〜4にそれぞれ対応する入力領域1011〜1014には何も入力されていない。そして、区切り文字設定欄1015では、2つのパラメータがセミコロン“;”で区切られていることを示すため、プルダウン式の選択領域1016において「;」が選択されている。また、文字コード設定欄1017の選択領域1018ではデコードして得られた情報204-Cに含まれる文字列の文字コードとして“EUC”が選択されている。
次に、図12(c)に示すフォルダ名設定画面1020では、フォルダ名を“A社フォルダ”で自動生成するための設定として、名称要素選択領域1021で「タグ無し2」が選択され、名称要素選択領域1022及び1023は未選択となっている。そして、連結文字設定欄1024の選択領域1025では、フォルダ名に「タグ無し2」の文字列のみを使うため「なし」が選択されている。そして、フォルダ名ラベル欄1026には、本画面で設定した内容(ここでは“(タグ無し2)”)が表示される。
さらに、図12(d)に示すファイル名設定画面1030では、ファイル名を“A社納品書”で自動生成するための設定として、名称要素選択領域1031で「タグ無し1」が選択され、名称要素選択領域1022及び1023は未選択となっている。そして、連結文字設定欄1034の選択領域1035では、ファイル名には「タグ無し1」の文字列のみを使うため「なし」が選択されている。そして、ファイル名ラベル欄1036には、本画面で設定した内容(ここでは“(タグ無し1)”)が表示される。
保存時のファイル名の形式や「設定」ボタン1037の役割といったその他の点については、図10で説明した例と異なるところがないので説明を省略する。
図13は、定型文書に付加されたコードに、ファイル名のみがタグ無しで埋め込まれている場合の一例を説明する図である。図13(a)は、定型文書202にコード203が付加されており、当該コード203をデコードして得られた情報204-D内に、ファイル名がタグ無しで埋め込まれている様子を示している。図13(b)に示すUI画面は、前述の図10(b)で示したコード設定画面1000である。ここでは、コード203をデコードして得られた情報204-D内にタグが含まれていないため、タグ1〜4にそれぞれ対応する入力領域1011〜1014には何も入力されていない。そして、デコードして得られた情報204-D内には1つのパラメータしか含まれていないため、区切り文字設定欄1015の選択領域1016は未選択になっている。また、文字コード設定欄1017の選択領域1018ではデコードして得られた情報204-Dに含まれる文字列の文字コードとして“SJIS”が選択されている。
次に、図13(c)に示すフォルダ名設定画面1020では、デコードして得られた情報204-D内にフォルダ名として使えるパラメータが含まれていないため、すべての名称要素選択領域1021〜1023が未選択となっている。そして、連結文字設定欄1024の選択領域1025においては「なし」が選択されている。そして、フォルダ名ラベル1026には、ファイルサーバ130の最上位層のフォルダであるトップフォルダ(ここでは図6(d)の領域632で指定された「share」)に格納される旨のメッセージが表示されている。
さらに、図13(d)に示すファイル名設定画面1030では、ファイル名を“A社納品書”で自動生成するための設定として、前述の図12(d)と同様、名称要素選択領域1031で「タグ無し1」が選択され、名称要素選択領域1032及び1033は未選択となっている。そして、連結文字設定欄1034の選択領域1035においても「なし」が選択されている。そして、ファイル名ラベル欄1036には、本画面で設定した内容(ここでは“(タグ無し1)”)が表示される。
保存時のファイル名の形式や「設定」ボタン1037の役割といったその他の点については、図10で説明した例と異なるところがないので説明を省略する。
図14は、定型文書に付加されたコードに、フォルダ名のみがタグ無しで埋め込まれている場合の一例を説明する図である。図14(a)は、定型文書202にコード203が付加されており、当該コード203をデコードして得られた情報204-E内に、フォルダ名がタグ無しで埋め込まれている様子を示している。図14(b)に示すUI画面は、前述の図10(b)で示したコード設定画面1000である。ここでは、コード203をデコードして得られた情報204-E内にタグが含まれていないため、タグ1〜4にそれぞれ対応する入力領域1011〜1014には何も入力されていない。そして、デコードして得られた情報204-E内には1つのパラメータしか含まれていないため、図13(b)と同様、区切り文字設定欄1015の選択領域1016は未選択になっている。また、文字コード設定欄1017の選択領域1018ではデコードして得られた情報204-Eに含まれる文字列の文字コードとして“UTF-8”が選択されている。
次に、図14(c)に示すフォルダ名設定画面1020では、フォルダ名を“A社フォルダ”で自動生成するための設定として、名称要素選択領域1021で「タグ無し1」が選択され、名称要素選択領域1022及び1023は未選択となっている。そして、連結文字設定欄1024の選択領域1025では、フォルダ名に「タグ無し1」の文字列のみを使うため「なし」が選択されている。そして、フォルダ名ラベル欄1026には、本画面で設定した内容(ここでは“(タグ無し1)”)が表示される。
さらに、図14(d)に示すファイル名設定画面1030では、デコードして得られた情報204-E内にファイル名として使えるパラメータが含まれていないため、すべての名称要素選択領域1031〜1033が未選択となっている。そして、連結文字設定欄1034の選択領域1035では「なし」が選択されている。この場合のファイル名の決定方法としては、例えば固定の文字列に連番を付けたものにするといった手法が一般的であり、ファイル名ラベル1036には、その旨のメッセージが表示される。
保存時のファイル名の形式や「設定」ボタン1037の役割といったその他の点については、図10で説明した例と異なるところがないので説明を省略する。
上述のとおり、本実施例のフォルダ名設定画面1020やファイル名設定画面1030では、タグが付いていない文字列をどのように扱うかについてもユーザが設定可能となっている。
図15は、本実施例に係る、生成されたスキャン画像データの格納先フォルダおよびファイル名を決定して保存する処理の流れを示すフローチャートである。
ステップ1501において、制御部111は、コードをデコードして得られた結果をデコード部116から受け取り、文字列データを取得する。具体的には、デコード結果のデータについて、コード設定画面1000の文字コード設定欄1017で設定された文字コードのデータとして解析(解釈)することにより、文字列データを取得する。このように構成することにより、文字化けすることなく文字列データを取得することができる。例えば、図11のデコード情報204-Bの場合には「USER:鈴木\nBUMON:営業第1部\nKA:営業第2課\nSHOHIN:NotePC」が文字列データとして取得されることになる。
ステップ1502において、制御部111は、コード設定画面1000の区切り文字設定欄1015の設定内容に従って、取得した文字列データを分割する。例えば、図11のデコード情報204-Bの場合には区切り文字として「改行」が指定される。したがって、改行コード”\n”を用いて、「USER:鈴木」、「BUMON:営業第1部」、「KA:営業第2課」、「SHOHIN:NotePC」という4つに分割された文字列データ(以下、分割後の文字列を「分割文字列」と呼ぶ。)が取得されることになる。
ステップ1503において、制御部111は、ループカウンタの変数i及び、タグ無し値のカウンタの変数Nを初期化(i=1、N=1を設定)する。
ステップ1504において、制御部111は、i番目の分割文字列にコード設定画面1000のタグ設定欄1010で設定された何れかのタグが含まれるかどうかを判定する。対象の分割文字列に設定されたタグが含まれていた場合は、ステップ1505に進む。一方、対象の分割文字列に設定されたタグが含まれていない場合は、ステップ1506に進む。
ステップ1505において、制御部111は、分割文字列からタグ値に相当する文字列を取得し、該当するタグX(本実施例においてXは1〜4の何れか)に紐づく値として記憶部115に格納して保持する。例えば、図11のデコード情報204-Bの場合には、1番目の分割文字列「USER:鈴木」がタグ1に設定されたタグ文字列“USER:”を含んでいるため、このタグ文字列に続く文字列“鈴木”をタグ値として取得され、タグ1に紐づく値として保持される。
ステップ1506において、制御部111は、i番目の分割文字列をタグ無し値Nとして記憶部115に格納し保持する。
ステップ1507において、制御部111は、タグ無し値カウンタ変数Nをインクリメント(+1)する。
ステップ1508において、制御部111は、ループカウンタの変数iをインクリメント(+1)する。
ステップ1509において、制御部111は、未処理の分割文字列がないかを判定する。具体的には、ループカウンタの変数iが取得したいタグ値の最大数(本実施例では4)に到達したかどうかで判定される。すべての分割文字列について処理が完了していれば、ステップ1510に進む。一方、未処理の分割文字列があれば、ステップ1504に戻って次の分割文字列を対象に処理を続行する。
ステップ1510において、制御部111は、ファイル名設定画面1030の名称要素選択領域1031(第1の名称要素)が未選択か否かを判定する。第1の名称要素が未選択であった場合は、ステップ1511に進む。一方、第1の名称要素が選択されていた場合は、ステップ1512に進む。
ステップ1511において、制御部111は、ファイル名を固定値+連番(例えば、”FILE_001”)に決定する。
ステップ1512において、制御部111は、ファイル名設定画面1030の名称要素選択領域1032(第2の名称要素)が未選択か否かを判定する。第2の名称要素が未選択であった場合は、ステップ1513に進む。一方、第2の名称要素が選択されていた場合は、ステップ1514に進む。
ステップ1513において、制御部111は、名称要素選択領域1031で選択された名称要素(第1の名称要素)の文字列をファイル名に決定する。例えば、第1の名称要素としてタグX(Xは1〜4の何れか)が設定されていれば、ステップ1505で保持されたタグXに紐づくタグ値がファイル名となる。
ステップ1514において、制御部111は、ファイル名設定画面1030の名称要素選択領域1033(第3の名称要素)が未選択か否かを判定する。第3の名称要素が未選択であった場合は、ステップ1515に進む。一方、第3の名称要素が選択されていた場合は、ステップ1516に進む。
ステップ1515において、制御部111は、名称要素選択領域1031及び1032で選択された名称要素(第1及び第2の名称要素)の文字列を、連結文字設定欄1034で選択された連結文字を用いて連結した名称に、ファイル名を決定する。
ステップ1516において、制御部111は、名称要素選択領域1031〜1033で選択された名称要素(第1〜第3の名称要素)の文字列を、連結文字設定欄1034で選択された連結文字を用いて連結した名称に、ファイル名を決定する。
次に、ステップ1517において、制御部111は、フォルダ名設定画面1020の名称要素選択領域1021(第1の名称要素)が未選択か否かを判定する。第1の名称要素が未選択であった場合は、ステップ1518に進む。一方、第1の名称要素が選択されていた場合は、ステップ1519に進む。
ステップ1518において、制御部111は、フォルダを生成しないことを決定し、ファイルの格納先フォルダを、ファイルサーバ130の最上位層のフォルダ(図3のトップフォルダ300)に決定する。
ステップ1519において、制御部111は、フォルダ名設定画面1020の名称要素選択領域1022(第2の名称要素)が未選択か否かを判定する。第2の名称要素が未選択であった場合は、ステップ1520に進む。一方、第2の名称要素が選択されていた場合は、ステップ1521に進む。
ステップ1520において、制御部111は、名称要素選択領域1021で選択された名称要素(第1の名称要素)の文字列を、格納先フォルダのフォルダ名に決定する。例えば、第1の名称要素としてタグX(Xは1〜4の何れか)が設定されていれば、ステップ1505で保持されたタグXに紐づくタグ値がフォルダ名となる。
ステップ1521において、制御部111は、フォルダ名設定画面1020の名称要素選択領域1023(第3の名称要素)が未選択か否かを判定する。第3の名称要素が未選択であった場合は、ステップ1522に進む。一方、第3の名称要素が選択されていた場合は、ステップ1523に進む。
ステップ1522において、制御部111は、名称要素選択領域1021及び1022で選択された名称要素(第1及び第2の名称要素)の文字列を、連結文字設定欄1024で選択された連結文字を用いて連結した名称を、格納先フォルダのフォルダ名に決定する。
ステップ1523において、制御部111は、名称要素選択領域1021〜1023で選択された名称要素(第1〜第3の名称要素)の文字列を、連結文字設定欄1024で選択された連結文字を用いて連結した名称を、格納先フォルダのフォルダ名に決定する。
最後に、ステップ1524において、制御部111は、本フローで決定したファイルサーバ130内の格納先フォルダに、本フローで決定したファイル名を用いて、スキャン画像データを格納する。
本実施例によれば、原稿に付加されているコードに埋め込まれている文字列データの形式に合わせて、わざわざプログラムを変更することなく、設定を変更するだけで振分け送信時のファイル名、フォルダ名の自動生成を行うことが可能になる。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。