以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
<システム構成>
図1は、一実施形態に係る情報処理システムのシステム構成の例を示す図である。情報処理システム100は、情報処理装置101と端末装置102が、例えば、インターネットやLAN(Local Area Network)等のネットワーク104を介して通信可能に接続されている。また、図1の例では、情報処理システム100は、利用者の操作に従って処理を実行した電子データを、ネットワークを介して情報処理システム100に接続される、ストレージサーバ、クラウドサービス等の外部サービス103に保存することができる。ただし、これに限られず、情報処理システム100は、利用者の操作に従って処理を実行した電子データを、情報処理装置101が備えるストレージデバイス等に保存するものであっても良い。
情報処理装置101は、コンピュータの構成を有する情報処理装置、又は複数の情報処理装置を含むシステムである。情報処理装置101は、利用者の操作に従って所定の処理を実行する。例えば、情報処理装置101は、複数の処理が定義されたワークフロー(処理手順)を実行するアプリケーション(ウェブアプリケーション)を、利用者の操作を受け付ける端末装置102等に提供する。
ここで、ワークフローとは、例えば、画像データ等の処理対象となる電子データに対して、入力処理、変換処理、出力処理等の所定の処理を実行する複数のコンポーネントを組み合わせた一連の処理を定義した情報である。また、コンポーネントは、ワークフローに含まれる各処理を実行するプログラムであり、プラグインと呼ばれる場合もある。
端末装置102は、例えば、ウェブブラウザを備え、情報処理装置101が提供するウェブページにアクセスして、アプリケーションを利用することにより、情報処理装置101に様々なワークフローを実行させる機器である。ここでは、一例として、端末装置102が、スキャン機能、コピー機能、プリンタ機能、ファクシミリ機能等を一つの筐体に搭載したMFP(Multifunction Peripheral)等の画像形成装置であるものとして、以下の説明を行う。
ただし、端末装置102は、画像形成装置に限られず、ウェブブラウザを備え、情報処理装置101が提供するウェブページにアクセス可能な様々な機器であって良い。例えば、端末装置102は、PJ(Projector:プロジェクタ)、IWB(Interactive White Board:相互通信が可能な電子式の黒板機能を有する白板)、デジタルサイネージ、HUD(Head Up Display)装置等の出力装置であっても良い。また、端末装置102は、例えば、産業機械、撮像装置、集音装置、医療機器、ネットワーク家電、自動車(Connected Car)、デジタルカメラ、ウェアラブル端末等の機器であっても良い。さらに、端末装置102は、例えば、ノートPC、携帯電話、スマートフォン、タブレット端末、ゲーム機、PDA(Personal Digital Assistant)、デジタルカメラ、ウェアラブルPCデスクトップPC等の汎用の情報端末であっても良い。
上記の構成において、情報処理装置101は、例えば、利用者の操作に従って、文書を読み取るスキャン処理(所定の処理の一例)を実行し、スキャン処理を実行したスキャンデータを、外部サービス103の所定のフォルダに保存する処理を実行するものとする。
このような情報処理システム100において、利用者の操作を受け付ける端末装置102が、画像形成装置のような電子機器である場合、従来の技術では、利用者が、スキャンデータのファイル名を設定することには困難を伴っていた。
例えば、画像形成装置が備える操作ボタンや、操作パネルに表示されるキーボード等を用いて、利用者にファイル名を入力させる方法が考えられるが、画像形成装置で利用できる操作ボタン、キーボード等は、ファイル名の入力に手間がかかる場合が多い。
また、例えば、特許文献1に開示された技術を適用して、スキャンした文書にOCR(Optical Character Recognition)処理を実行し、OCR処理で得られた文字を用いて、スキャン処理を実行したスキャンデータのファイル名の決定を容易にすることが考えられる。しかし、この方法では、スキャンした文書にファイル名として適切な文字が含まれていない場合、スキャンデータのファイル名の設定を容易にすることができないという問題がある。
そこで、本実施形態に係る情報処理システム100では、利用者の操作に従ってスキャン処理を実行したスキャンデータを保存する保存先のフォルダに応じた情報に基づいて、スキャンデータのファイル名を決定できるようにする。例えば、情報処理装置101は、保存先のフォルダ等から、ファイル名として利用可能な文字列の候補を取得して利用者に提示する。これにより、スキャンした文書にファイル名として適切な文字が含まれていない場合でも、利用者は、提示された文字列を選択して、スキャンデータのファイル名を設定できるようになる。
なお、情報処理システム100が実行する所定の処理は、スキャン処理に限られず、他の処理であっても良いし、複数の処理が定義されたワークフロー等であっても良い。
このように、本実施形態によれば、所定の処理を実行する情報処理システム100において、所定の処理を実行したデータにファイル名として適切な文字が含まれていない場合でも、当該データのファイル名の決定を容易にすることができるようになる。
<ハードウェア構成>
続いて、各装置のハードウェア構成について説明する。
(情報処理装置のハードウェア構成)
図2は、一実施形態に係るコンピュータのハードウェア構成の例を示す図である。情報処理装置101は、例えば、図2に示すようなコンピュータ200のハードウェア構成を有している。或いは、情報処理装置101は、複数のコンピュータ200によって実現される。
コンピュータ200は、例えば、図2に示されるように、CPU(Central Processing Unit)201、ROM(Read Only Memory)202、RAM(Random Access Memory)203、HD(Hard Disk)204、HDD(Hard Disk Drive)コントローラ205、ディスプレイ206、外部機器接続I/F(Interface)207、ネットワークI/F208、キーボード209、ポインティングデバイス210、DVD-RW(Digital Versatile Disk Rewritable)ドライブ212、メディアI/F214、及びバスライン215等を備えている。
これらのうち、CPU201は、コンピュータ200全体の動作を制御する。ROM202は、例えば、IPL(Initial Program Loader)等のCPU201の起動に用いられるプログラムを記憶する。RAM203は、CPU201のワークエリアとして使用される。HD204は、プログラム等の各種データを記憶する。HDDコントローラ205は、CPU201の制御に従ってHD204に対する各種データの読み出し又は書き込みを制御する。
ディスプレイ206は、カーソル、メニュー、ウィンドウ、文字、又は画像などの各種情報を表示する。外部機器接続I/F207は、各種の外部機器を接続するためのインターフェースである。この場合の外部機器は、例えば、USB(Universal Serial Bus)メモリやプリンタ等が含まれる。ネットワークI/F208は、ネットワーク104を利用してデータ通信をするためのインターフェースである。
キーボード209は、文字、数値、各種指示などの入力のための複数のキーを備えた入力手段の一種である。ポインティングデバイス210は、各種指示の選択や実行、処理対象の選択、カーソルの移動などを行う入力手段の一種である。DVD-RWドライブ212は、着脱可能な記録媒体の一例としてのDVD-RW211に対する各種データの読み出し又は書き込みを制御する。なお、DVD-RW211は、DVD-RWに限らず、例えば、DVD-R等の他の記録媒体であっても良い。メディアI/F214は、フラッシュメモリ等のメディア213に対するデータの読み出し又は書き込み(記憶)を制御する。バスライン215は、上記の各構成要素を電気的に接続するためのアドレスバス、データバス及び各種の制御信号等である。
(端末装置のハードウェア構成)
図3は、一実施形態に係る画像形成装置のハードウェア構成の例を示す図である。ここでは、端末装置102のハードウェア構成の一例として、画像形成装置300のハードウェア構成について説明する。
画像形成装置300は、例えば、図3に示されるように、コントローラ310、近距離通信回路320、エンジン制御部330、操作パネル340、ネットワークI/F350等を備えている。
これらのうち、コントローラ310は、コンピュータの主要部であるCPU301、システムメモリ(MEM-P)302、ノースブリッジ(NB)303、サウスブリッジ(SB)304、ASIC(Application Specific Integrated Circuit)305、記憶部であるローカルメモリ(MEM-C)306、HDDコントローラ307、及び、記憶部であるHD308等を有し、NB303とASIC305との間をAGP(Accelerated Graphics Port)バス311で接続した構成となっている。
これらのうち、CPU301は、画像形成装置300の全体制御を行う制御部である。NB303は、CPU301と、MEM-P302、SB304、及びAGPバス311とを接続するためのブリッジであり、MEM-P302に対する読み書きなどを制御するメモリコントローラと、PCI(Peripheral Component Interconnect)マスタ及びAGPターゲットとを有する。
MEM-P302は、コントローラ310の各機能を実現させるプログラムやデータの格納用メモリであるROM302a、プログラムやデータの展開、及びメモリ印刷時の描画用メモリなどとして用いるRAM302bとからなる。なお、RAM302bに記憶されているプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD-ROM、CD-R、DVD等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成しても良い。
SB304は、NB303とPCIデバイス、周辺デバイスとを接続するためのブリッジである。ASIC305は、画像処理用のハードウェア要素を有する画像処理用途向けのIC(Integrated Circuit)であり、AGPバス311、PCIバス312、HDDコントローラ307、及びMEM-C306をそれぞれ接続するブリッジの役割を有する。このASIC305は、PCIターゲット及びAGPマスタ、ASIC305の中核をなすアービタ(ARB)、MEM-C306を制御するメモリコントローラ、ハードウェアロジック等により画像データの回転などを行う複数のDMAC(Direct Memory Access Controller)、並びに、スキャナ部331及びプリンタ部332との間でPCIバス312を介したデータ転送を行うPCIユニットとからなる。なお、ASIC305には、USBのインターフェースや、IEEE1394(Institute of Electrical and Electronics Engineers 1394)のインターフェースを接続するようにしても良い。
MEM-C306は、コピー用画像バッファ及び符号バッファとして用いるローカルメモリである。HD308は、画像データの蓄積、印刷時に用いるフォントデータの蓄積、フォームの蓄積を行うためのストレージである。HD308は、CPU301の制御に従ってHD308に対するデータの読出又は書込を制御する。AGPバス311は、グラフィック処理を高速化するために提案されたグラフィックスアクセラレータカード用のバスインタフェースであり、MEM-P302に高スループットで直接アクセスすることにより、グラフィックスアクセラレータカードを高速にすることができる。
近距離通信回路320は、近距離通信回路用のアンテナ320aを用いて、例えば、NFC(Near Field Communication)、Bluetooth(登録商標)等の近距離無線通信の規格に従って通信を行う。
エンジン制御部330は、例えば、スキャナ部331及びプリンタ部332等によって構成されている。スキャナ部331は、原稿等を読み取る読取装置である。プリンタ部332は、印刷データを印刷媒体に印刷する印刷装置である。スキャナ部331又はプリンタ部332には、例えば、誤差拡散やガンマ変換等の画像処理部分が含まれている。
操作パネル340は、現在の設定値や選択画面等を表示させ、操作者からの入力を受け付けるタッチパネル等のパネル表示部340a、並びに、濃度の設定条件などの画像形成に関する条件の設定値を受け付けるテンキー及びコピー開始指示を受け付けるスタートキー等からなる操作ボタン340bを備えている。コントローラ310は、画像形成装置300全体の制御を行い、例えば、描画、通信、操作パネル340からの入力等を制御する。
なお、画像形成装置300は、操作パネル340のアプリケーション切り替えキーにより、ドキュメントボックス機能、コピー機能、プリンタ機能、及びファクシミリ機能を順次に切り替えて選択することが可能となる。ドキュメントボックス機能の選択時にはドキュメントボックスモードとなり、コピー機能の選択時にはコピーモードとなり、プリンタ機能の選択時にはプリンタモードとなり、ファクシミリモードの選択時にはファクシミリモードとなる。
また、ネットワークI/F350は、ネットワーク104を利用してデータ通信をするためのインターフェースである。近距離通信回路320及びネットワークI/F350は、PCIバス312を介して、ASIC305に電気的に接続されている。
<機能構成>
図4は、一実施形態に係る情報処理システムの機能構成の例を示す図である。
(端末装置の機能構成)
端末装置102は、図3のCPU301で、所定のプログラムを実行することにより、表示部401、及び処理実行部402を実現している。
表示部401は、例えば、図3のCPU301で実行されるウェブブラウザによって実現され、情報処理装置101によって提供されるアプリケーション(ウェブアプリケーション)の表示画面(以下、アプリ画面と呼ぶ)を表示する。
このアプリ画面は、例えば、HTML(Hyper Text Markup Language)、XML(
Extensible Markup Language)、CSS(Cascading Style Sheets)、JavaScript(登録商標)等の言語によって作成されている。したがって、利用者は、表示部401が表示するアプリ画面に対して所定の操作を行うことにより、例えば、保存先のフォルダの選択操作、ファイル名の設定操作、処理の開始操作等の様々な操作を行うことができる。
処理実行部402は、端末装置102が実行する様々な処理を実行する。例えば、端末装置102が画像形成装置300である場合、処理実行部402は、図3のエンジン制御部330を用いて、スキャン処理、印刷処理、コピー処理等の画像形成処理を実行する。また、処理実行部402は、処理実行部402が実行する様々な処理の実行要求を受け付けるAPI(Application Programming Interface)を、表示部401に提供する。
(情報処理装置の機能構成)
情報処理装置101は、例えば、図2のCPU201、又は複数のコンピュータ200で所定のプログラムを実行することにより、入出力サービス部410、ウェブサービス部420、ドキュメントサービス部430、及びポータルサービス部440等を実現している。なお、上記の各機能構成のうち、少なくとも一部は、ハードウェアによって実現されるものであっても良い。
また、情報処理装置101は、例えば、図2のCPU201で実行されるプログラム、及びHD204、HDDコントローラ205等によって実現される、アプリ情報記憶部450、及びポータル画面情報記憶部460等の記憶部を有する。なお、アプリ情報記憶部450、及びポータル画面情報記憶部460のうち、少なくとも一部は、例えば、ストレージサーバ等の外部装置によって実現されるものであっても良い。
入出力サービス部410は、情報処理装置101が提供するアプリケーション(ウェブアプリケーション)の管理、及びアプリケーションの実行等に関する処理を行う。入出力サービス部410は、例えば、図4に示すようにアプリ管理部411、及び実行制御部412等を含む。
アプリ管理部411は、所定の処理を実行するアプリケーションを管理する。例えば、アプリ管理部411は、情報処理装置101が提供する複数のアプリケーションの情報を、アプリ情報記憶部450に記憶して管理する。このアプリケーションの情報には、例えば、アプリケーションが実行するワークフロー(処理手順)に定義された1つ以上の処理、各処理の処理順序、アプリケーションの設定情報、アプリ画面を表示するための情報等が記憶されている。
また、アプリ管理部411は、例えば、実行制御部412、ウェブサービス部420、ポータルサービス部440等からの要求に応じて、アプリケーションの情報を提供する。さらに、アプリ管理部411は、例えば、ポータルサービス部440からの要求に応じて、アプリケーションの情報を、アプリ情報記憶部450に記憶する。
実行制御部412は、例えば、ウェブサービス部420からの要求に応じて、アプリ管理部411が管理するアプリケーションの情報を取得する。また、実行制御部412は、アプリ管理部411から取得したアプリケーションの情報に基づいて、アプリケーションの実行を制御する。例えば、実行制御部412は、アプリケーションの情報に基づいて、ドキュメントサービス部430のファイル処理部431、OCR処理部432、コード解析部433、・・・等のコンポーネントに、順次に処理を実行させる。これにより、ワークフローに定義された一連の処理が順次に実行される。
ウェブサービス部420は、利用者が、端末装置102のウェブブラウザを用いて、情報処理装置101が提供するアプリケーションを利用するための処理を行う。例えば、ウェブサービス部420は、端末装置102のウェブブラウザに対してウェブアプリケーションを提供するウェブサーバとして機能する。ウェブサービス部420は、例えば、図4に示すように表示制御部421、及び操作受付部422を含む。
表示制御部421は、端末装置102からの要求に応じて、例えば、端末装置102が備えるウェブブラウザによって実現される表示部401に、情報処理装置101が提供するアプリケーションを利用するためのアプリ画面を表示させる。操作受付部422は、アプリ画面に対する利用者の操作を受け付ける。
なお、このアプリ画面は、前述したように、例えば、HTML(Hyper Text Markup Language)、XML(Extensible Markup Language)、CSS(Cascading Style Sheets)、JavaScript(登録商標)等の言語によって作成されている。したがって、利用者は、表示部401が表示するアプリ画面に対して所定の操作を行うことにより、例えば、保存先のフォルダの選択操作、ファイル名の設定操作、処理の開始操作等の様々な操作を行うことができる。
ドキュメントサービス部430は、実行制御部412からの制御に従って処理を実行する、例えば、ファイル処理部431、OCR処理部432、コード解析部433、・・・等のコンポーネントを含む。
ファイル処理部431は、利用者の操作に従って所定の処理を実行した電子ファイルを所定の保存先に保存するファイル処理を実行する。例えば、ファイル処理部431は、利用者によって選択されたフォルダ(所定の保存先の一例)に、スキャン処理(所定の処理の一例)を実行した電子ファイルを保存する。
図5は、一実施形態に係るファイル処理部の機能構成の例を示す図である。ファイル処理部431は、例えば、取得部501、決定部502、及び保存部503等を有する。
取得部501は、利用者の操作に従って所定の処理を実行した電子ファイルを保存するフォルダから、電子ファイルのファイル名として利用可能な1つ以上の文字列を取得する。例えば、取得部501は、利用者によって選択された(又は予め定められた)保存先のフォルダに記憶されている電子ファイルのファイル名を取得し、単語単位に分割することにより、電子ファイルのファイル名として利用可能な1つ以上の文字列を取得する。
また、取得部501は、保存先のフォルダの上位フォルダに含まれるファイル、フォルダ等から、電子ファイルのファイル名として利用可能な1つ以上の文字列をさらに取得しても良い。例えば、取得部501は、保存先のフォルダの上位フォルダに含まれるファイルのファイル名、フォルダのフォルダ名等を取得し、単語単位に分割することにより、電子ファイルのファイル名として利用可能な1つ以上の文字列を取得しても良い。
さらに、取得部501は、所定の処理(例えば、スキャン処理)を実行した電子ファイルに対してOCR処理を実行した処理結果に基づいて、電子ファイルのファイル名として利用可能な1つ以上の文字列をさらに取得する機能を有していても良い。例えば、取得部501は、OCR処理によって得られた文字列を単語単位に分割することにより、電子ファイルのファイル名として利用可能な1つ以上の文字列を取得しても良い。
さらにまた、取得部501は、所定の処理を実行した電子ファイルに含まれるバーコード、二次元コード等のコードを解析した解析結果に基づいて、電子ファイルのファイル名として利用可能な1つ以上の文字列をさらに取得する機能を有していても良い。例えば、取得部501は、バーコード、二次元コード等のコードを解析して得られた文字列を、電子ファイルのファイル名として利用可能な1つ以上の文字列として取得しても良い。
決定部502は、取得部501が取得した1つ以上の文字列に基づいて、所定の処理を実行した電子ファイルのファイル名を決定する。
例えば、表示制御部421が、取得部501が取得した1つ以上の文字列を選択可能に表示するファイル名の設定画面を、端末装置102の表示部401に表示させる。また、決定部502は、ファイル名の設定画面で、利用者によって選択された文字列を用いて、所定の処理を実行した電子ファイルのファイル名を決定する。なお、ファイル名の設定画面、及びファイル名の具体的な決定方法については後述する。
また、別の一例として、決定部502は、利用者によるファイル名の選択操作によらずに、取得部501が取得した1つ以上の文字列に基づいて、所定の処理を実行した電子ファイルのファイル名を決定しても良い。
保存部503は、所定の処理を実行した電子ファイルを、決定部502が決定したファイル名で、保存先のフォルダに保存する。
ここで、図4に戻り、情報処理装置101の機能構成の説明を続ける。
OCR処理部432は、利用者の操作に従って所定の処理を実行した電子データに、電子データに含まれる文字を認識するOCR処理を実行する。例えば、OCR処理部432は、端末装置102の一例である画像形成装置300がスキャンした文書に対してOCR処理を実行し、文書に含まれる文字列を抽出する。
コード解析部433は、利用者の操作に従って所定の処理を実行した電子データに含まれるバーコード、二次元コード等のコードを解析して、コードが表す文字列を取得する。例えば、コード解析部433は、端末装置102の一例である画像形成装置300がスキャンした文書を解析して、文書に含まれるバーコード等が表す文字列を取得する。
なお、ファイル処理部431、OCR処理部432、及びコード解析部433は、ドキュメントサービス部430に含まれるコンポーネントの一例である。ドキュメントサービス部430は、上記の各コンポーネントとは異なる様々なコンポーネントを有していても良い。
ポータルサービス部440は、例えば、端末装置102のウェブブラウザ等を用いてアプリケーションの登録、変更、設定等を行うための処理を行う。例えば、ポータルサービス部440には、設定画面提供部441、及びアプリ登録部442等が含まれる。
設定画面提供部441は、例えば、端末装置102のウェブブラウザ等からの要求に応じて、ポータル画面情報記憶部460に記憶されているポータル画面情報を返信する。これにより、設定画面提供部441は、端末装置102のウェブブラウザに、アプリケーションの設定画面を表示させることができる。アプリ登録部442は、例えば、アプリケーション設定画面に対する利用者の操作に応じて、アプリケーション登録、変更、設定等をアプリ管理部411に要求する。
アプリ情報記憶部450は、情報処理装置101が提供する複数のアプリケーションの情報を記憶する。このアプリケーションの情報には、例えば、アプリケーションが実行するワークフロー(処理手順)に定義された1つ以上の処理、各処理の処理順序、アプリケーションの設定情報、及びアプリ画面を表示するための情報等が含まれる。ポータル画面情報記憶部460は、例えば、端末装置102のウェブブラウザ等に、アプリケーションの設定画面を表示させるためのポータル画面情報を記憶する。
なお、図4に示す情報処理システム100の機能構成は一例である。例えば、入出力サービス部410、ウェブサービス部420、ドキュメントサービス部430、及びポータルサービス部440等は、それぞれが異なるコンピュータ200によって実現されるものであっても良い。
<処理の流れ>
続いて、本発明の各実施形態に係る情報処理方法の処理の流れについて説明する。
[第1の実施形態]
(情報処理システムの処理)
図6は、第1の実施形態に係る情報処理システムの処理の例を示すシーケンス図である。この処理は、情報処理システム100が、利用者の操作に従って実行する所定の処理の一例として、文書のスキャン処理を実行し、スキャン処理を実行した電子データを、外部サービス103上の所定のフォルダに保存する処理の例を示している。なお、ここでは、端末装置102が、図4に示した画像形成装置300であるものとして、以下の説明を行う。また、図6に示す処理の開始時点において、端末装置102の表示部401は、情報処理装置101のウェブサービス部420が提供するウェブページを、図3の操作パネル340等に表示しているものとする。
ステップS601おいて、利用者が、端末装置102に対して、情報処理装置101が提供するアプリケーション(以下、アプリと呼ぶ)の開始操作を行う。これにより、ステップS602において、端末装置102の表示部401から、情報処理装置101のウェブサービス部420に対して、アプリの開始要求が送信される。
ステップS603において、ウェブサービス部420の表示制御部421は、アプリ画面の一例であるフォルダ選択画面を、端末装置102に送信する。これにより、ステップS604において、端末装置102の表示部401は、情報処理装置101から送信されたフォルダ選択画面を、操作パネル340等に表示する。
図7は、第1の実施形態に係るフォルダ選択画面について説明するための図である。ここでは、説明用の一例として、例えば、図7(A)に示すようなディレクトリ構成の「スキャン文書」フォルダ(C:\Users\Taro\Documents\スキャン文書)に、スキャン処理を実行した電子ファイルを保存する。
図7(B)は、図6のステップS604において、端末装置102の表示部401が、操作パネル340等に表示するフォルダ選択画面700の一例を示している。図7(B)の例では、フォルダ選択画面700には、現在のパスを表示する第1の表示欄701、及び現在のパスに含まれるフォルダ、及びファイルを表示する第2の表示欄702等が含まれる。
利用者は、フォルダ選択画面700において、上位フォルダの選択ボタン703を選択することにより、第1の表示欄701に表示される現在のパスを、階層が1つ上のフォルダである上位フォルダに変更することができる。また、利用者は、フォルダ選択画面700の第2の表示欄702において、例えば、「スキャン文書」フォルダのアイコン704を選択することにより、第1の表示欄701に表示される現在のパスを、「スキャン文書」フォルダに変更することができる。さらに、利用者は、第1の表示欄701に、「スキャン文書」フォルダのパス「C:\Users\Taro\Documents\スキャン文書」を表示させて、「OK」ボタン705を選択することにより、「スキャン文書」フォルダを保存先として選択することができる。
なお、図7(B)に示すフォルダ選択画面700は、一例であり、フォルダ選択画面700は、利用者の操作に従って所定の処理を実行した電子ファイルの保存先を選択可能なものであれば、任意の形式であって良い。
ここで、図6に戻り、シーケンス図の説明を続ける。
ステップS605において、利用者は、例えば、図7(B)に示すようなフォルダ選択画面700に対して、フォルダの選択操作を行う。これに応じて、ステップS606において、端末装置102の表示部401は、例えば、スキャン操作を受け付ける操作画面を、操作パネル340等に表示する。
ステップS607において、利用者が、操作パネル340等に表示された操作画面にスキャン操作を行う。これに応じて、ステップS608において、端末装置102の表示部401は、処理実行部402を利用してスキャン処理を実行し、スキャン処理を実行したスキャンデータ、及び利用者が選択したフォルダの識別子を含む処理の実行要求を、情報処理装置101に送信する。
好ましくは、ステップS609において、端末装置102の表示部401は、データを取得中であることを示す待機画面(例えば、ローディング中であることを示すファイル名の設定画面等)を、操作パネル340等に表示する。
ステップS610において、ウェブサービス部420の操作受付部422は、処理の実行要求を受け付けると、入出力サービス部410の実行制御部412に、受け付けた処理の実行要求を通知する。
ステップS611において、実行制御部412は、アプリ管理部411が管理するアプリケーションの情報から、アプリの処理内容を取得する。ここでは、アプリの処理内容が、ドキュメントサービス部430のファイル処理部431が実行するファイル処理であるものとする。
ステップS612において、実行制御部412は、ドキュメントサービス部430のファイル処理部431に対して、ファイル処理を要求する。この要求には、例えば、スキャンデータ、及びスキャンデータを保存するフォルダの識別子等が含まれる。これに応じて、ファイル処理部431は、例えば、ステップS613~S625に示すファイル処理を実行する。
ステップS613において、ファイル処理部431の保存部503は、スキャンデータに、一時的なファイル名(以下、一時ファイル名と呼ぶ)を付与して、外部サービス103上のフォルダ識別子で識別されるフォルダに保存する。
ステップS614において、ファイル処理部431の取得部501は、スキャンデータを保存した保存先のフォルダから、保存先のフォルダに保存されている他のファイルのファイル名等の情報を取得する。これにより、例えば、保存先のフォルダが、図7(A)の「スキャン文書」である場合、取得部501は、ファイル名「見積書 A社 2019-02-17.pdf」、「見積書 B社 2019-06-11.pdf」、「見積書 C社 2019-07-15.pdf」等の情報を取得することができる。
ステップS615において、取得部501は、取得した他のファイルのファイル名を、単語単位に分割する。これにより、取得部501は、例えば、「見積書」、「A社」、「B社」、「C社」、「2019-02-17」、「2019-06-11」、「2019-07-15」等の単語を取得することができる。なお、これらの単語は、利用者の操作に従って所定の処理を実行した電子データのファイル名に利用可能な1つ以上の文字列の一例である。
ステップS616~S618において、ファイル処理部431の決定部502は、取得部501が取得した1つ以上の単語(文字列)を、入出力サービス部410の実行制御部412を介して、ウェブサービス部420の表示制御部421に通知する。例えば、ステップS616において、取得部501は、取得した1つ以上の単語(文字列)を含む単語のリストを作成する。また、決定部502は、取得部501が作成した単語のリストを、実行制御部412を介して、表示制御部421に通知する。
ステップS619において、ウェブサービス部420の表示制御部421は、通知された1つ以上の単語(文字列)を選択可能に表示するファイル名の設定画面を作成し、端末装置102に送信する。これにより、ステップS620において、端末装置102の表示部401は、情報処理装置101から送信されたファイル名の設定画面を、操作パネル340等に表示する。なお、ファイル名の設定画面は、表示部401が表示する表示画面(アプリ画面)の一例である。
図8は、第1の実施形態に係るファイル名の設定画面の例を示す図である。図8(A)は、図6のステップS620において、端末装置102の表示部401が表示するファイル名の設定画面800の例を示している。
図8(A)の例では、ファイル名の設定画面800には、図6のステップS616で、取得部501が作成した単語リストに含まれる1つ以上の単語を選択するための選択ボタン801が表示されている。これらの選択ボタン801のうち、例えば、「見積書」の選択ボタン801aが、利用者によって選択されると、ファイル名候補の表示欄802に、単語「見積書」803が表示される。同様に、「A社」の選択ボタン801bが、利用者によって選択されると、ファイル名候補の表示欄802に、単語「A社」804が表示される。
好ましくは、ファイル名候補の表示欄802に表示された単語「見積書」803、「A社」804等は、利用者が削除ボタン805を選択することにより、ファイル名候補の表示欄802から、容易に削除することができる。
また、ファイル名の設定画面800には、「他ファイル名」の表示ボタン806、及び「日付」の表示ボタン807が表示されており、図8(A)の例では、「他ファイル名」の表示ボタン806が選択されている。この状態から、「日付」の表示ボタン807が、利用者によって選択されると、図8(B)に示すようなファイル名の設定画面800が表示される。
図8(B)の例では、ファイル名の設定画面800には、単語リストに含まれる1つ以上の単語を選択するための選択ボタン801に代えて、現在の日付を表す文字列の形式を選択するための選択ボタン811が表示されている。これらの選択ボタン811のうち、例えば、「2019-02-25」の選択ボタン811aが、利用者によって選択されると、ファイル名候補の表示欄802に、現在の日付を表す文字列「2019-02-25」812が表示される。
この状態から、「OK」ボタン813を選択することにより、利用者は、スキャンファイルのファイル名を、「見積書 A社 2019-02-25.pdf」に設定することができる。
ここで、再び図6に戻り、シーケンス図の説明を続ける。
ステップS621において、利用者は、例えば、図8(A)、(B)に示すようなファイル名の設定画面800に対してファイル名の設定操作を行うものとする。これにより、ステップS622において、端末装置102の表示部401は、利用者によって設定されたファイル名(例えば、「見積書 A社 2019-02-25.pdf」)を、情報処理装置101のウェブサービス部420に送信する。
ステップS623、S624において、ウェブサービス部420の操作受付部422は、端末装置102から受け付けたファイル名を、入出力サービス部410の実行制御部412を介して、ドキュメントサービス部430のファイル処理部431に通知する。
ステップS614~S624の処理により、ファイル処理部431の決定部502は、スキャンデータ(電子データ)を保存するフォルダから取得した1つ以上の文字列に基づいて、スキャンデータのファイル名を決定することができる。
ステップS625において、ファイル処理部431の保存部503は、ステップS613で、一時ファイル名で外部サービス103に保存したスキャンデータのファイル名を、決定部502が決定したファイル名に変更する。これにより、保存部503は、スキャンデータを、決定部502が決定したファイル名で、保存先のフォルダに保存することができる。
ステップS626において、ドキュメントサービス部430のファイル処理部431は、ファイル処理が完了したことを示す完了通知を、入出力サービス部410の実行制御部412に通知する。
ステップS627において、実行制御部412は、アプリの処理が終了したことを示す完了通知を、ウェブサービス部420の表示制御部421に通知する。
ステップS628において、表示制御部421は、アプリの処理が完了したことを示す完了画面を端末装置102に送信する。これに応じて、ステップS629において、端末装置102の表示部401は、情報処理装置101から受信した完了画面を操作パネル340等に表示する。
上記の処理により、スキャン処理を実行する情報処理システム100において、スキャン処理を実行したスキャンデータにファイル名として適切な文字が含まれていない場合でも、スキャンデータのファイル名の決定を容易にすることができる。
なお、ここでは、情報処理システム100が実行する所定の処理がスキャン処理であるものとして説明したが、情報処理システム100が実行する所定の処理は、例えば、印刷処理、メール送信処理、ファクス送信処理等の他の処理であっても良い。また情報処理システム100が実行する所定の処理は、複数の処理を含むワークフロー等であっても良い。
<応用例>
上記の説明では、図6のステップS614において、ファイル処理部431の取得部501が、保存先のフォルダから他のファイルのファイル名等の情報を取得する場合の例について説明したが、この処理は一例である。例えば、取得部501は、保存先のフォルダの上位フォルダに含まれるファイルのファイル名、フォルダのフォルダ名等、保存先のフォルダに関連する他のフォルダから情報を取得しても良い。
図9は、第1の実施形態の応用例について説明するための図である。例えば、図9(A)に示すようなフォルダ構成において、フォルダ「2019-07-01」が、スキャンデータの保存先のフォルダである場合、フォルダ「2019-07-01」内には、ファイルが存在しないので、他のファイルのファイル名等の情報を取得することができない。
このような場合に対応するため、取得部501は、保存先のフォルダ「2019-07-01」だけではなく、保存先のフォルダの上位フォルダ「スキャン文書」に含まれる他のファイルのファイル名(例えば、「領収書.pdf」)を取得対象に加えても良い。
また、取得部501は、上位フォルダ「スキャン文書」に含まれる他のフォルダのフォルダ名(例えば、「2019-01-02」、「2029-03-21」、「2019-06-11」)を取得対象に加えても良い。
好適な一例として、情報処理装置101は、図6のステップS604において、端末装置102に、図9(B)に示すようなフォルダ選択画面900を表示させても良い。図9(B)の例では、フォルダ選択画面900には、図7(B)で説明した第1の実施形態に係るフォルダ選択画面700に加えて、2つのチェックボックス901、902が追加されている。例えば、利用者は、チェックボックス901を選択することにより、保存先のフォルダの上位ファイルから、スキャンデータのファイル名の候補となる文字列を取得できるようになる。また、利用者は、チェックボックス902を選択することにより、ファイル名だけではなく、フォルダ名から、スキャンデータのファイル名の候補となる文字列を取得できるようになる。
上記の応用例によれば、スキャンデータの保存先のフォルダに、他のファイルがない、或いは他のファイルが少ないときでも、スキャン処理を実行したスキャンデータのファイル名の決定を容易にすることができる。
[第2の実施形態]
第2の実施形態では、利用者の操作に従ってスキャン処理を実行したスキャンデータのファイル名の候補として、OCR処理の処理結果、バーコード又は二次元コードの解析結果を利用する場合の処理の例について説明する。
図10は、第2の実施形態に係る情報処理システムの処理の例を示すシーケンス図である。なお、ここでは、図6で説明した第1の実施形態に係る情報処理システムの処理と同様の処理に対する説明は省略する。
ステップS1001において、情報処理システム100は、例えば、図6のステップS601~S605に示すようなフォルダの選択処理を実行する。
ステップS1002において、情報処理システム100は、例えば、図6のS606~S610に示すようなスキャンデータの取得処理を実行する。
ステップS1003において、入出力サービス部410の実行制御部412は、アプリ管理部411が管理するアプリケーションの情報から、アプリの処理内容を取得する。ここでは、アプリの処理内容に、ファイル処理部431が実行するファイル処理、OCR処理部432が実行するOCR処理、及びコード解析部433が実行するバーコードの解析処理が含まれるものとする。
ステップS1004において、実行制御部412は、ドキュメントサービス部430のファイル処理部431に対して、ファイル処理を要求する。この要求には、例えば、スキャンデータ、及びスキャンデータを保存するフォルダの識別子等が含まれる。
ステップS1005において、ファイル処理部431の保存部503は、スキャンデータに、一時的なファイル名(以下、一時ファイル名と呼ぶ)を付与して、外部サービス103上のフォルダ識別子で識別される保存先のフォルダに保存する。
ステップS1006において、実行制御部412は、ドキュメントサービス部430のOCR処理部432に対して、スキャンデータに対するOCR処理を要求する。これに応じて、ステップS1007において、OCR処理部432は、スキャンデータに対してOCR処理を実行する。このOCR処理により、スキャンした文書に含まれる文字列が抽出される。また、ステップS1008において、OCR処理部432は、OCR処理の処理結果(抽出された文字列)を、実行制御部412に通知する。
ステップS1009において、実行制御部412は、ドキュメントサービス部430のコード解析部433に対して、スキャンデータに対するバーコード解析を要求する。これに応じて、ステップS1010において、コード解析部433は、スキャンデータに対してバーコード解析を実行する。このバーコード解析により、スキャンした文書に含まれるバーコードが表す文字列が抽出される。また、ステップS1011において、コード解析部433は、バーコード解析の解析結果(抽出された文字列)を、実行制御部412に通知する。
ステップS1013においてファイル処理部431の取得部501は、ステップS1005でスキャンデータを保存した保存先のフォルダから、保存先のフォルダに保存されている他のファイルのファイル名等の情報を取得する。
なお、ステップS1006~S1008に示すOCR処理、ステップS1009~S1011に示すバーコード解析の処理、及びステップS1013の処理は、任意の順番で実行するものであっても良いし、並行して実行するものであっても良い。
ステップS1014において、取得部501は、ステップS1006~S1013で取得した文字列を、単語単位に分割する。なお、ここで分割された単語は、利用者の操作に従って所定の処理を実行した電子データのファイル名に利用可能な1つ以上の文字列の別の一例である。
ステップS1015~S1017において、ファイル処理部431の決定部502は、取得部501が取得した1つ以上の単語(文字列)を、入出力サービス部410の実行制御部412を介して、ウェブサービス部420の表示制御部421に通知する。例えば、取得部501は、ステップS1015において、取得部501が取得した1つ以上の単語を含む単語のリストを作成し、ステップS1016、S1017において、作成した単語のリストを、実行制御部412を介して、表示制御部421に通知する。
ステップS1018において、表示制御部421は、通知された1つ以上の単語(文字列)を選択可能に表示するファイル名の設定画面を作成し、端末装置102に送信する。これにより、ステップS1019において、端末装置102の表示部401は、情報処理装置101から送信されたファイル名の設定画面を、操作パネル340等に表示する。
図11は、第2の実施形態に係るファイル名の設定画面の例を示す図である。図11(A)は、図10のステップS1019において、端末装置102の表示部401が表示するファイル名の設定画面1100の例を示している。
図11(A)の例では、ファイル名の設定画面1100には、図8(A)に示す第1の実施形態に係るファイル名の設定画面800に対して、「OCR結果」の表示ボタン1101、及び「バーコード」の表示ボタン1102等が追加されている。また、図11(A)の例では、「OCR結果」の表示ボタン1102が選択されており、OCR処理で取得した1つ以上の単語を選択するための選択ボタン1103が表示されている。これらの選択ボタン1103のうち、例えば、「合計金額」の選択ボタン1103aが、利用者によって選択されると、ファイル名候補の表示欄802に、単語「合計金額」1104が表示される。
また、この状態から、「バーコード」の表示ボタン1102が選択されると、図11(B)に示すようなファイル名の設定画面1100が表示される。図11(B)の例では、ファイル名の設定画面1100には、OCR処理で取得した1つ以上の単語を選択するための選択ボタン1103に代えて、バーコード解析で取得した文字列を選択する選択ボタン1105が表示されている。この選択ボタン1105が、利用者によって選択されると、ファイル名候補の表示欄802に、バーコード解析で取得した文字列(例えば、「1234-56789」)1106が表示される。
なお、図11(A)、(B)に示すファイル名の設定画面1100において、「他ファイル名」の表示ボタン806が選択されると、例えば、図8(A)に示すように、取得部501が作成した1つ以上の単語を選択するための選択ボタン801が表示される。また、ファイル名の設定画面1100において、「日付」の表示ボタン807が選択されると、例えば、図8(B)に示すように、現在の日付を表す文字列の形式を選択するための選択ボタン811が表示される。
ここで、図10に戻り、シーケンスの説明を続ける。
ステップS1020において、利用者は、例えば、図11(A)、(B)に示すようなファイル名の設定画面1100に対してファイル名の設定操作を行うものとする。これにより、ステップS1021において、例えば、図6のステップS622~S629に示すようなファイル名の変更処理が実行される。
このように、第2の実施形態によれば、利用者の操作に従ってスキャン処理を実行したスキャンデータのファイル名の候補として、OCR処理の処理結果、バーコード又は二次元コードの解析結果を利用することができるようになる。
[第3の実施形態]
第1、2の実施形態に係る情報処理システム100では、利用者にファイル名の候補となる文字列を提示して、利用者の選択操作に基づいてファイル名を決定していた。ただし、これに限られず、情報処理システム100は、利用者による選択操作によらずに、自動的にファイル名を決定するものであっても良い。
図12は、第3の実施形態に係る情報処理システムの処理の例を示すシーケンス図である。なお、図12に示す処理のうち、ステップS1001~1015の処理は、図10で説明した第2の実施形態に係る情報処理システムの処理と同様なので、ここでは、第2の実施形態との相違点を中心に説明する。
ステップS1201において、ドキュメントサービス部430のファイル処理部431に含まれる決定部502は、ステップS1015で取得部501が作成した単語リストに基づいて、スキャンデータのファイル名を決定する。
なお、本実施形態では、ファイル名の決定方法について特に限定しないが、一例として、図7(A)に示すようなフォルダ構成において、フォルダ「スキャン文書」にスキャンデータを保存する場合のファイル名の決定方法について説明する。
例えば、図7(A)に示すように、保存先のフォルダ「スキャン文書」に保存された他のファイルのファイル名が、「見積書」+「会社名」+「日付」の形式で構成されているものとする。また、図12のステップS1006~S1008のOCR処理で、例えば、図11(A)に示すような、文字列「B社」、「合計金額」、「数量」が抽出されたものとする。さらに、現在の日付が「2019-07-20」であるものとする。
この場合、決定部502は、他のファイルに共通の文字列「見積書」に、OCR処理で抽出された会社名「B社」と、現在の日付「2019-07-20」とを付加して、スキャンファイルのファイル名を「見積書 B社 2019-07-20.pdf」と決定しても良い。なお、保存先のフォルダ「スキャン文書」に、既に同じ名前のファイルが存在する場合、決定部502は、スキャンファイルのファイル名を、例えば、「見積書 B社 2019-07-20(1).pdf」としても良いし、現在の時刻をファイル名にさらに付加しても良い。
また、別の一例として、図12のステップS1009~S1011のバーコード解析で、例えば、図11(B)に示すような、文字列「1234-56789」が抽出されたものとする。この場合、決定部502は、他のファイルに共通の文字列「見積書」に、バーコード解析で抽出された文字列「1234-56789」を付加して、スキャンファイルのファイル名を「見積書 1234-56789.pdf」としても良い。
ステップS1202において、ファイル処理部431の保存部503は、一時ファイル名で外部サービス103に保存したスキャンデータのファイル名を、決定部502が決定したファイル名に変更する。
ステップS1203において、ファイル処理部431は、ファイル処理が完了したことを示す完了通知を、入出力サービス部410の実行制御部412に通知する。
ステップS1204において、実行制御部412は、アプリの処理が終了したことを示す完了通知を、ウェブサービス部420の表示制御部421に通知する。
ステップS1205において、表示制御部421は、アプリの処理が完了したことを示す完了画面を端末装置102に送信する。これに応じて、ステップS1206において、端末装置102の表示部401は、情報処理装置101から受信した完了画面を、操作パネル340等に表示する。
このように、情報処理システム100は、利用者による選択操作によらずに、自動的にファイル名を決定するものであっても良い。
以上、本発明の各実施形態によれば、所定の処理を実行する情報処理システム100において、所定の処理を実行したデータにファイル名として適切な文字が含まれていない場合でも、当該データのファイル名の決定を容易にすることができる。
なお、上記の各実施形態で説明した情報処理システム100の構成は一例であり、情報処理システム100は、様々な変形、及び応用が可能である。
例えば、上記の各実施形態では、利用者の操作を、端末装置102が受け付けるものとして説明を行ったが、利用者の操作は、情報処理装置101が、図2のキーボード209、ポインティングデバイス210等を用いて受け付けるものであっても良い。この場合、情報処理システム100には、端末装置102が含まれていなくても良い(含まれていても良い)。
また、上記の各実施形態では、所定の処理(例えば、スキャン処理)を実行した電子ファイルを外部サービス103に保存するものとして説明を行ったが、所定の処理を実行した電子ファイルは、情報処理装置101が備える記憶部等に記憶しても良い。また、所定の処理を実行した電子ファイルの保存先は、利用者の選択操作によらずに、情報処理装置101が決定するものであっても良いし、情報処理装置101に予め設定されているものであっても良い。
さらに、第2、3の実施形態では、OCR処理部432によるOCR処理と、コード解析部433によるバーコード解析とを実行していたが、情報処理システム100は、OCR処理、及びバーコード解析のいずれか一方を実行するものであっても良い。また、コード解析部433は、バーコード解析に代えて(又は加えて)、QRコード(登録商標)等の二次元コードを解析しても良い。
<補足>
上記で説明した各実施形態の各機能は、一又は複数の処理回路によって実現することが可能である。ここで、本明細書における「処理回路」とは、電子回路により実装されるプロセッサのようにソフトウェアによって各機能を実行するようプログラミングされたプロセッサや、上記で説明した各機能を実行するよう設計されたASIC(Application Specific Integrated Circuit)、DSP(digital signal processor)、FPGA(field programmable gate array)や従来の回路モジュール等のデバイスを含むものとする。
実施例に記載された装置群は、本明細書に開示された実施形態を実施するための複数のコンピューティング環境のうちの1つを示すものに過ぎない。ある実施形態では、情報処理装置101は、サーバクラスタといった複数のコンピューティングデバイスを含む。複数のコンピューティングデバイスは、ネットワークや共有メモリなどを含む任意のタイプの通信リンクを介して互いに通信するように構成されており、本明細書に開示された処理を実施する。同様に、端末装置102は、互いに通信するように構成された複数のコンピューティングデバイスを含むことができる。
さらに、情報処理装置101及び端末装置102は、開示された処理ステップ、例えば図6、10、12を様々な組み合わせで共有するように構成できる。例えば、所定のユニットによって実行されるプロセスは、情報処理装置101によって実行され得る。同様に、所定のユニットの機能は、端末装置102によって実行することができる。また、情報処理装置101と端末装置102の各要素は、1つのサーバ装置にまとめられていても良いし、複数の装置に分けられていても良い。