以下、本発明の好ましい実施形態について、添付図面を参照して説明する。図1は、本発明の情報処理プログラムである印刷アプリケーション(以下、「本アプリ」と称す)14bが搭載された携帯端末10と、プリンタ50との電気的構成を示すブロック図である。尚、携帯端末10とプリンタ50とがUSBケーブル40により接続されている場合、プリンタ50は、携帯端末10に装着されたメモリカード20内(以下、単に「携帯端末10内」と記載する)に存在する画像ファイルを探索可能に構成されており、更に、その探索により発見された画像ファイル(印刷可能ファイル)が印刷対象として自装置でユーザにより指定されると、その画像ファイルを携帯端末10から読み取って印刷できるように構成されている。尚、画像ファイルの一例としては、JPEG形式のファイルがある。
携帯端末10に搭載された本アプリ14bは、プリンタ50からの操作によりユーザが携帯端末10内の画像ファイルを印刷する場合に、目的のファイルをユーザが容易に印刷できるように構成されている。
携帯端末10は、無線基地局(図示せず)を介して、他の通話装置との間で音声通話を行う携帯電話機である。携帯端末10には、CPU11、ROM12、RAM13、フラッシュメモリ14、無線LAN送受信部15、操作キー16、タッチパネル17、液晶表示装置(以下、「LCD」と称す)18、メモリカードインターフェイス(以下、「メモリカードI/F」と称す)19、音声入出力部21、電話網通信部22、USBインターフェイス(以下、「USBI/F」と称す)23が設けられる。これらは、バスライン24を介して互いに通信可能に接続されている。
CPU11は、ROM12等に記憶される固定値やプログラム等に従って、バスライン24と接続された各部を制御する。ROM12は、書換不能な不揮発性のメモリであって、各種の固定値を記憶する。RAM13は、書換可能な揮発性のメモリであり、携帯端末フォルダリスト13aと、変更ファイル管理テーブル13bと、印刷対象ファイル管理テーブル13cとが設けられる。
携帯端末フォルダリスト13aは、携帯端末10内に存在する各フォルダのフォルダ名を示すリストであり、本アプリ14bにより作成される。図2(b)に示すように、携帯端末フォルダリスト13aは、ID番号と、フォルダ名とを含み、一のID番号は、一のフォルダ名に対応づけられる。フォルダ名は、携帯端末10内に存在するフォルダを深さ優先探索アルゴリズムにより探索した場合に発見されたフォルダのフォルダ名を示す。尚、本実施形態では、フォルダ名やファイル名は、絶対パス(ルートフォルダを基準とするフォルダ名やファイル名)で構成されているものとする。ルートフォルダとは、階層型ファイル構造における最上位階層のフォルダであり、本実施形態では、携帯端末10に装着されたメモリカード20のルートフォルダのことを示す。ID番号は、そのID番号に対応するフォルダが、深さ優先探索アルゴリズによる探索で発見された場合の発見順序を示す。尚、深さ優先探索アルゴリズムは、公知のアルゴリズムなので、その説明は省略する。例えば、携帯端末10におけるフォルダ構成が、図2(a)に示す構成である場合には、図2(b)に示す携帯端末フォルダリスト13aが、本アプリ14bにより生成される。
変更ファイル管理テーブル13bは、本アプリ14bによりファイルまたはフォルダの移動や、ファイル名またはフォルダ名の変更などが行われた場合に、その変更を変更前の状態に戻せるように、その変更内容を管理するためのテーブルである。尚、変更内容として、変更前のファイル名やフォルダ名と、変更後のファイル名やフォルダ名とが記憶されるが、それぞれ絶対パスにより構成される。
印刷対象ファイル管理テーブル13cは、携帯端末10内の画像ファイルのうち、本アプリ14bにおいてユーザが印刷対象ファイルとして指定した画像ファイルを管理するためのテーブルである。具体的には、本アプリ14bにおいてユーザにより指定された各ファイルのファイル名が記憶される。
フラッシュメモリ14は、書換可能な不揮発性のメモリであり、オペレーティングシステム(以下、「OS」と称す)14aと、本アプリ14bとが格納される。OS14aは、携帯端末10に搭載された基本ソフトウェアであって、本実施形態の場合、アンドロイド(登録商標)OSであるものとする。本アプリ14bは、携帯端末10のユーザによって携帯端末10にインストールされるアプリケーションである。
以降、アプリケーション(本アプリ14bを含む)やOS14aなどのプログラムを実行するCPU11のことを、単に、プログラム名で記載する場合もある。例えば、「アプリケーション」という記載が、「アプリケーションを実行するCPU11」を意味する場合もある。
また、本アプリ14bには、参照フォルダ管理メモリ14b1と、探索タイプメモリ14b2とが設けられている。参照フォルダ管理メモリ14b1は、携帯端末10内のフォルダのうち、プリンタ50がファイルの探索を開始する場合にその開始位置とする一のフォルダ(以下、「参照フォルダ」と称す)のフォルダ名が記憶されるメモリである。尚、参照フォルダは、プリンタ50の探索対象となる携帯端末10内のフォルダのうち、最上位階層のフォルダであり、プリンタ50の種類や、プリンタ50の設定に応じて変化する。
探索タイプメモリ14b2は、プリンタ50の探索タイプが記憶されるメモリである。探索タイプとは、プリンタ50が携帯端末10内のファイルを探索する場合の探索形式であり、探索タイプとしては、「単一フォルダタイプ」、「特定フォルダ探索タイプ」、「全フォルダ探索タイプ」の3つのタイプがある。プリンタ50の探索タイプは、プリンタ50の種類に応じて予め決まっている。
「単一フォルダタイプ」のプリンタ50では、携帯端末10内のファイルのうち、参照フォルダに存在するファイルが探索される。尚、参照フォルダに存在するファイルとは、その参照フォルダに格納されているファイルのことであり、その参照フォルダに従属するフォルダに格納されているファイルを含まない。「特定フォルダ探索タイプ」のプリンタ50では、携帯端末10内のファイルのうち、参照フォルダに存在するファイルと、その参照フォルダに従属する各フォルダに存在するファイルとが探索される。但し、この場合は、参照フォルダが、ルートフォルダ以外のフォルダであるとする。例えば、携帯端末10におけるフォルダ構成が、図2(a)に示す構成である場合において、参照フォルダが「¥Photo¥Birthday」である場合、「単一フォルダタイプ」のプリンタ50では、「¥Photo¥Birthday」に存在するファイルが探索される。また、係る場合において、「特定フォルダ探索タイプ」のプリンタ50では、「¥Photo¥Birthday」に存在するファイルと、このフォルダに従属する「¥Photo¥Birthday¥Anne」及び「¥Photo¥Birthday¥Bob」に存在するファイルとが探索される。「全フォルダ探索タイプ」のプリンタ50では、携帯端末10内に存在する全ファイルが探索される。
携帯端末10にインストールされた各アプリケーション(本アプリ14bを含む)は、OS14aのAPIを呼び出して、無線LAN送受信部15、操作キー16、タッチパネル17、LCD18、メモリカードI/F19、音声入出力部21、電話網通信部22、USBI/F23など、携帯端末10の各構成に受け渡したいデータをOS14aに出力する。即ち、各アプリケーションは、OS14aのAPIを呼び出すことによって、携帯端末10の各構成を制御する。また、各アプリケーションは、OS14aのAPIを呼び出して、携帯端末10の各構成が出力するデータや各構成の状態を示すデータをOS14aから取得する。即ち、OS14aのAPIを呼び出すことによって、携帯端末10の各構成の状態(携帯端末10への操作入力の状態も含む)を示すデータをOS14aから取得する。また、OS14aは、携帯端末10の各構成が出力するデータや各構成の状態を示すデータを、定期的に、あるいは各構成の状態変化の都度、各アプリケーションに通知することもある。即ち、各アプリケーションは、OS14aからの通知を受けることによって、携帯端末10の各構成の状態(携帯端末10への操作入力の状態も含む)を示すデータをOS14aから取得する。
無線LAN送受信部15は、IEEE802.11b/gの規格に準拠した無線LANにより、携帯端末10と他の機器とをWi−Fi(登録商標)接続する回路である。操作キー16は、携帯端末10の筺体に設けられたハードキーであり、携帯端末10に設定情報や指示を入力する。タッチパネル17は、LCD18に重ねて設けられ、携帯端末10に設定情報や指示を入力する。LCD18は、携帯端末10にインストールされたアプリケーションを示すアイコンの一覧や、起動したアプリケーションの画面を表示する。
メモリカードI/F19は、不揮発性のメモリカード20が装着されるインターフェイスであって、メモリカード20に対するデータの書き込み又は読み出しを制御する。メモリカード20には、携帯端末10に搭載されているカメラ(図示せず)で撮像された画像の画像ファイルなどが記憶される。メモリカード20は、一例として、SDカード(登録商標)である。音声入出力部21は、マイクやスピーカなどで構成された音声入出力用デバイスであり、電話網通信部22は、他の電話装置との間で電話通信を行うための回路である。USBI/F23は、USBケーブル40を介して接続される他の装置と通信を行うための装置であり、周知の装置で構成される。本実施形態では、プリンタ50のUSBI/F(図示せず)と通信可能に接続されている。
ここで、本アプリ14bを使用する場合のユーザの操作手順を説明する。ユーザは、携帯端末10とプリンタ50との接続を解除した状態で、本アプリ14bを起動する。本アプリ14bが起動されると、まず、探索タイプ判定処理(図3)が実行され、プリンタ50の探索タイプが判定される。続けて、携帯端末10とプリンタ50との接続を解除した状態で、プリンタ用ファイル設定処理(図8)が実行される。ここで、ユーザは、携帯端末10を操作して、携帯端末10内の印刷対象ファイルを指定する。その場合、携帯端末10の内部では、印刷対象ファイル以外の画像ファイルである印刷対象外ファイルをプリンタ50が画像ファイルとして判定できない状態に変更するという処理が実行される。
その後、ユーザは、携帯端末10とプリンタ50とを接続し、プリンタ50からの操作により携帯端末10内の画像ファイルを確認する。ここでは、携帯端末10内の印刷対象ファイルが画像ファイルとして見つかるので、ユーザは、その見つかった画像ファイルを選別せずに全て印刷しても良いし、見つかった画像ファイルの中から更に選別して印刷しても良い。
図3は、本アプリ14bに従い、携帯端末10において実行される探索タイプ判定処理を示すフローチャートである。この処理は、携帯端末10において本アプリ14bが起動された場合に、最初に実行される。また、携帯端末10に接続するプリンタ50の種類が変わった場合などに、ユーザの指示に基づいて実行される処理であり、携帯端末10に接続されるプリンタ50の探索タイプを判定する。尚、以下に説明するフローチャートに示す各ステップは、本アプリ14bがCPU11に実行させるものとして説明する。
CPU11は、まず、判定用前処理を実行する(S101)。判定用前処理については、図4を参照して後述する。そして、判定用前処理の実行後に、CPU11は、携帯端末10とプリンタ50とをUSBケーブル40で接続することをユーザに促す接続指示メッセージをLCD18に表示する(S102)。携帯端末10とプリンタ50とが接続されていない場合(S103:No)、CPU11は、プリンタ50と接続されるまで接続指示メッセージを表示する。一方、プリンタ50と接続された場合(S103:Yes)、CPU11は、接続したプリンタ50からの操作により携帯端末10内の画像ファイルを確認すること、及び、その確認が終了したらプリンタ50と携帯端末10との接続を解除することを、ユーザに促す接続解除指示メッセージをLCD18に表示する(S104)。
次に、CPU11は、USBケーブル40によるプリンタ50との接続が解除されたかを判定し(S105)、プリンタ50との接続が解除されていない場合(S105:No)、プリンタ50との接続が解除されるまで接続解除指示メッセージを表示する。一方、プリンタ50との接続が解除された場合(S105:Yes)、CPU11は、タイマーによる計時を開始する(S106)。そして、CPU11は、判定処理を実行し(S107)、判定用後処理を実行して(S108)、本処理を終了する。判定処理については、図6(a)を参照して後述し、判定用後処理については、図7を参照して後述する。
図4は、携帯端末10において実行される判定用前処理(S101)を示すフローチャートである。この処理は、プリンタ50の探索タイプを判定するための準備を行う処理である。CPU11は、まず、携帯端末フォルダリスト13aの内容と、変更ファイル管理テーブル13bの内容とを初期化(クリア)する(S201)。次に、携帯端末10内のルートフォルダに、1つもサブフォルダが存在しないかを判定する(S202)。
そして、携帯端末10内のルートフォルダに、1つもサブフォルダが存在しない場合(S202:Yes)、CPU11は、携帯端末10内のルートフォルダに、一時的にファイルを格納する一のテンポラリフォルダ(以下、「判定用テンポラリフォルダ」と称す)を作成する(S203)。そして、CPU11は、ルートフォルダに判定用テンポラリフォルダを新たに追加したことを示す追加情報を、変更ファイル管理テーブル13bに追加し(S204)、S205の処理へ移行する。一方、携帯端末10内のルートフォルダに、サブフォルダが存在する場合(S202:No)、CPU11は、S205の処理へ移行する。
次に、CPU11は、現在のID番号を示す変数IDに1を設定し(S205)、次に、携帯端末10内のルートフォルダを探索の開始位置として、深さ優先探索アルゴリズムによるフォルダの探索を開始し(S206)、携帯端末10内に存在する全フォルダの探索を行う。この探索では、最上位階層のフォルダであるルートフォルダが、まず、最初に特定され、次に、そのルートフォルダの一つ下の階層のフォルダが一つ特定される。その場合、フォルダが昇順に一つ特定され、その特定されたフォルダの一つ下の階層にフォルダがあれば、更に、その一つ下の階層のフォルダが昇順に一つ特定される。以後同様に、特定されたフォルダについて、従属するフォルダが無くなるまで、一つ下の階層のフォルダから優先的に特定され、従属するフォルダが無くなれば、一つ上の階層のフォルダに戻りフォルダが特定される。
次に、CPU11は、フォルダの探索により、フォルダを発見するまで次のステップに進まない(S207:No)。一方、フォルダを発見した場合(S207:Yes)、CPU11は、その発見したフォルダ名と、現在のID番号とを、携帯端末フォルダリスト13aに追加し(S208)、その発見したフォルダに存在する全画像ファイルの名前を変更する(S209)。ここでは、各画像ファイルの拡張子(例えば、「.jpg」)を、画像ファイル以外の拡張子(例えば、「.$$$」)に変更したり、拡張子を消去する。本実施形態では、深さ優先探索アルゴリズムによるフォルダの探索が開始されてから(S206)、S207においてCPU11が最初に発見するフォルダはルートフォルダとなる。
次に、CPU11は、S209の処理で変更した各ファイルについて、そのファイルの変更前および変更後の名前を示す変更情報を、変更ファイル管理テーブル13bに追加し(S210)、変数IDにより示される現在のID番号が、画像として表示される画像ファイルを生成する(S211)。そして、CPU11は、その生成した画像ファイルを、今回発見したフォルダに追加(格納)し(S212)、今回発見したフォルダに画像ファイルを新たに追加したことを示す追加情報を、変更ファイル管理テーブル13bに追加する(S213)。
次に、CPU11は、変数IDに1を加算する(S214)。そして、携帯端末10内の全フォルダの探索が終了していない場合(S215:No)、CPU11は、S207の処理へ戻り、全てのフォルダの探索が終了するまで、S207〜S215の各処理を繰り返す。一方、携帯端末10内の全フォルダの探索が終了した場合(S215:Yes)、CPU11は、本処理を終了する。
例えば、携帯端末10における各フォルダのファイル構成が、当初、図2(a)に示す状態であった場合に、上述した判定用前処理が実行されると、図5(a)に示すように画像ファイルが追加される。尚、図5(a)は、携帯端末10内のファイルのうち、画像ファイルのみに着目したものである。具体的には、ルートフォルダは、深さ優先探索法において1番目に特定されるので、図5(b)に示すように、ルートフォルダには、画像70として「1」を示す画像ファイルが追加される。同様に、他のフォルダについても、そのフォルダが特定された順番(即ち、ID番号)を示す画像ファイルが追加される。尚、ファイル名を見れば、ユーザがID番号を認識できるように、ファイル名にもID番号が含まれるようにした。
本実施形態では、判定用前処理の実行後、ユーザに、携帯端末10とプリンタ50とをUSBケーブル40で接続させ、更に、その携帯端末10内の画像ファイルを、プリンタ50において確認してもらう。プリンタ50は、携帯端末10内の参照フォルダを少なくとも探索し、図5(c)に示す画像ファイル確認画面を表示する。この例では、図5(a)に示す画像ファイルのうち、「ID4.jpg」〜「ID6.jpg」の画像ファイルについてサムネイル表示が行われている。これにより、プリンタ50では、「¥Photo¥Birthday」を参照フォルダとし、その参照フォルダと、その参照フォルダに従属する全フォルダとを探索していることが判る。即ち、プリンタ50の探索タイプが「特定タイプ探索タイプ」であることが判る。
また、上述したように、判定用前処理では、ルートフォルダに1つもサブフォルダが存在しない場合に、判定用テンポラリフォルダを作成している。仮に、携帯端末10内のフォルダがルートフォルダ一つだけだと、プリンタ50の探索タイプが「全フォルダ探索タイプ」であっても、プリンタ50では、一つのフォルダしか特定されない。その結果、プリンタ50では、「単一フォルダタイプ」の場合と同様に、画像ファイルが一つしか表示されず、探索タイプの区別がつかなくなる。そこで、本実施形態では、携帯端末10内に少なくとも2つのフォルダが存在するようにし、探索タイプを区別できるようにした。
図6(a)は、携帯端末10において実行される判定処理(S107)を示すフローチャートである。この処理は、プリンタ50の探索タイプを判定する処理である。CPU11は、まず、確認結果入力画面をLCD18に表示する(S301)。図6(b)は、確認結果入力画面の一例を示す図である。
図6(b)に示すように、確認結果入力画面は、最大値入力エリア80と、最小値入力エリア81と、決定ボタン82とを含む。最大値入力エリア80は、プリンタ50の画像ファイル確認画面において画像として表示された数値うち、その最大値をユーザに入力してもらうエリアである。最小値入力エリア81は、その画像として表示された数値うち、その最小値をユーザに入力してもらうエリアである。決定ボタン82は、最大値入力エリア80と、最小値入力エリア81とに入力された各数値を、入力値として決定するためのボタンである。
ここで、図6(a)の説明に戻る。次に、CPU11は、S106(図3)の処理による計時が開始されてから、即ち、USBケーブル40によるプリンタ50との接続が解除されてから、所定時間(例えば、5分)が経過したかを判定し(S302)、所定時間が経過していない場合には(S302:No)、確認結果入力画面において最小値および最大値が決定されたかを判定する(S303)。
確認結果入力画面において最小値および最大値が決定されていない場合(S303:No)、CPU11は、S302の処理へ戻る。一方、確認結果入力画面において最小値および最大値が決定された場合(S303:Yes)、CPU11は、最小値に対応する画像の画像ファイルが格納されているフォルダを特定し、その特定したフォルダを参照フォルダとするために、その特定したフォルダのフォルダ名を、参照フォルダ管理メモリ14b1に記憶する(S304)。尚、ここでの最小値はID番号であり、携帯端末フォルダリスト13aには、ID番号と、そのID番号に対応するフォルダ名が記憶されているので、その最小値(ID番号)から、フォルダ名を特定できる。
次に、CPU11は、確認結果入力画面において入力された最小値および最大値が同じであるかを判定する(S305)。最小値および最大値が同じである場合は(S305:Yes)、プリンタ50が一つのフォルダしか探索しない「単一フォルダタイプ」であることを意味するので、その探索タイプを、探索タイプメモリ14b2に記憶して(S306)、本処理を終了する。
一方、最小値および最大値が異なる場合(S305:No)であって、且つ、最小値が1以外の場合は(S307:No)、プリンタ50がルートフォルダ以外のフォルダを参照フォルダとし、複数のフォルダを探索する「特定フォルダ探索タイプ」であることを意味するので、その探索タイプを、探索タイプメモリ14b2に記憶して(S308)、本処理を終了する。
一方、最小値が1の場合は(S307:Yes)、プリンタ50がルートフォルダを参照フォルダとする「全フォルダ探索タイプ」であることを意味するので、その探索タイプを、探索タイプメモリ14b2に記憶して(S309)、本処理を終了する。
また、S302の処理において、所定時間が経過した場合は(S302:Yes)、ユーザが操作に不慣れなために、プリンタ50において画像ファイルを確認できなかったことや、確認結果入力画面に対して入力が行えなかったことなどが考えられるため、その入力を打ち切る。そして、プリンタ50の探索タイプが「全フォルダ探索タイプ」であると想定し、CPU11は、S309の処理を実行して、本処理を終了する。これにより、ユーザは、後述する図9に示す印刷用前処理が実行された場合に、3種類の探索タイプのうち、「全フォルダ探索タイプ」に対応する処理(S612〜S616)が実行される。よって、確認結果入力画面が表示されたまま、次の処理へ進めなくなり、処理が滞ってしまうことを抑制できる。
判定処理によれば、最小値と、最小値との2つをユーザに確認してもらうだけで良いので、ユーザの確認の手間を軽減できる。
図7は、携帯端末10において実行される判定用後処理(S108)を示すフローチャートである。この処理は、判定前処理(図4)により変更または追加された各ファイルや各フォルダを、変更前または追加前の状態に戻すための処理である。CPU11は、まず、変更ファイル管理テーブル13bの追加情報に基づいて、判定前処理において追加した各画像ファイルを特定し、それらを全て削除する(S401)。
次に、CPU11は、変更ファイル管理テーブル13bの変更情報に基づいて、判定前処理において名前が変更された各ファイルを特定し、それぞれ変更前の名前に戻す(S402)。そして、判定前処理においてルートフォルダに判定用テンポラリフォルダが作成された場合(S403:Yes)、その判定用テンポラリフォルダを削除し(S404)、本処理を終了する。一方、判定前処理においてルートフォルダに判定用テンポラリフォルダが作成されていない場合(S403:No)、S404の処理をスキップして、本処理を終了する。
図8は、携帯端末10において実行されるプリンタ用ファイル設定処理を示すフローチャートである。この処理は、探索タイプ判定処理(図3)が終了すると、続けて実行される。この処理は、携帯端末10内の画像ファイルのうち印刷対象ファイルを、ユーザに指定させる。
CPU11は、まず、印刷対象ファイル管理テーブル13cの内容を初期化(クリア)し(S501)、画像ファイル選択画面をLCD18に表示する(S502)。図8(b)は、画像ファイル選択画面の一例を示す図である。図8(b)に示すように、画像ファイル選択画面は、携帯端末10内の各画像ファイルに対応するサムネイル画像83と、決定ボタン82とを含む。この画面で、ユーザによりサムネイル画像83が選択されると、その選択された各サムネイル画像83上にそれぞれチェックマークMが表示される。決定ボタン82は、チェックマークMが表示されている各サムネイル画像83に対応する画像ファイルを、印刷対象ファイルとして指定するためのボタンである。
図8(a)の説明に戻る。CPU11は、印刷対象ファイルが指定されていない場合は(S503:No)、印刷対象ファイルが指定されるまで次のステップに進まない。一方、印刷対象ファイルが指定された場合(S503:Yes)、CPU11は、その印刷対象ファイルのファイル名を、印刷対象ファイル管理テーブル13cに記憶する(S504)。
そして、CPU11は、印刷用前処理を実行する(S505)。印刷用前処理については、図9を参照して後述する。そして、印刷用前処理の実行後に、CPU11は、携帯端末10とプリンタ50とをUSBケーブル40で接続することをユーザに促す接続指示メッセージをLCD18に表示する(S506)。携帯端末10とプリンタ50とが接続されていない場合(S507:No)、CPU11は、プリンタ50と接続されるまで接続指示メッセージを表示する。一方、プリンタ50と接続された場合(S507:Yes)、CPU11は、接続したプリンタ50からの操作により携帯端末10内の画像ファイルを印刷すること、及び、その印刷が終了したらプリンタ50と携帯端末10との接続を解除することを、ユーザに促す接続解除指示メッセージをLCD18に表示する(S508)。
プリンタ50との接続が解除されていない場合(S509:No)、CPU11は、プリンタ50との接続が解除されるまで接続解除指示メッセージを表示する。一方、プリンタ50との接続が解除された場合(S509:Yes)、CPU11は、印刷用後処理を実行して(S510)、本処理を終了する。印刷用後処理については、図10を参照して後述する。
図9は、携帯端末10において実行される印刷用前処理(S505)を示すフローチャートである。この処理は、プリンタ50の探索タイプに応じて、携帯端末10内の画像ファイルのうち印刷対象ファイル以外の画像ファイル(印刷対象外ファイル)をプリンタ50が画像ファイルとして判定できないようにするための処理である。CPU11は、まず、変更ファイル管理テーブル13bの内容を初期化(クリア)する(S601)。探索タイプメモリ14b2に記憶されている探索タイプが「単一フォルダタイプ」である場合(S602:Yes)、CPU11は、携帯端末10内のルートフォルダに、一時的にファイルを格納する一のテンポラリフォルダ(以下、「印刷用テンポラリフォルダ)と称す)を作成し(S603)、参照フォルダ管理メモリ14b1から参照フォルダ名を取得し、その参照フォルダ内に存在する全ファイルを、S603の処理で作成した印刷用テンポラリフォルダに移動させる(S604)。そして、CPU11は、ルートフォルダに印刷用テンポラリフォルダを新たに追加したことを示す追加情報と、その印刷用テンポラリフォルダに移動させた各ファイルの移動元および移動先を示す変更情報とを、変更ファイル管理テーブル13bに追加し(S605)、S610の処理へ移行する。
一方、探索タイプが「単一フォルダタイプ」ではなく(S602:No)、探索タイプが「特定フォルダ探索タイプ」である場合(S606:Yes)、CPU11は、参照フォルダ管理メモリ14b1から参照フォルダ名を取得し、現在の参照フォルダの名前を、他フォルダと重複しない別の名前に変更し(S607)、変更前の参照フォルダ名と名前が同一のフォルダを、参照フォルダとして新たに作成する(S608)。尚、以下の説明において、名前を変更した本来の参照フォルダを「旧参照フォルダ」と記載し、参照フォルダとして新たに作成したフォルダを「新参照フォルダ」と記載する。そして、CPU11は、旧参照フォルダの名前を変更したことを示す変更情報と、新参照フォルダを新たに追加したことを示す変更情報とを、変更ファイル管理テーブル13bに追加する(S609)。次に、CPU11は、携帯端末10内の各印刷対象ファイルを参照フォルダにコピーする(S610)。尚、探索タイプが「特定フォルダ探索タイプ」の場合は、携帯端末10内の各印刷対象ファイルが新参照フォルダへコピーされる。
印刷対象外ファイルを、参照フォルダや、参照フォルダに従属する各フォルダ以外のフォルダへ移動させることで、印刷対象外ファイルを、プリンタ50からはファイルとして発見できない状態、即ち、画像ファイルか否かの判定もできない状態にできる。一方、印刷対象ファイルを参照フォルダにコピーすることで、その印刷対象ファイルを、プリンタ50が画像ファイルとして判定できる状態にできる。
次に、CPU11は、S610の処理により参照フォルダまたは新参照フォルダに、印刷対象ファイルを新たに追加したことを示す追加情報を、変更ファイル管理テーブル13bに追加し(S611)、本処理を終了する。
一方、探索タイプが「特定フォルダ探索タイプ」でない場合(S606:No)、探索タイプが「全フォルダ探索タイプ」であること意味する。この場合、CPU11は、携帯端末10内のルートフォルダを探索の開始位置として、深さ優先探索アルゴリズムによるフォルダの探索を開始し(S612)、携帯端末10内に存在する全フォルダの探索を行う。具体的には、フォルダを発見した場合(S613:Yes)、CPU11は、その発見したフォルダに存在する全画像ファイルのうち、印刷対象外ファイルの名前を変更する(S614)。例えば、S209の処理と同様に名前を変更する。本実施形態では、深さ優先探索アルゴリズムによるフォルダの探索が開始されてから(S612)、S613においてCPU11が最初に発見するフォルダはルートフォルダとなる。
次に、CPU11は、S614の処理で変更した各ファイルについて、そのファイルの変更前および変更後の名前を示す変更情報を、変更ファイル管理テーブル13bに追加する(S615)。そして、携帯端末10内の全フォルダの探索が終了した場合(S616:Yes)、CPU11は、本処理を終了する。一方、携帯端末10内の全フォルダの探索が終了していない場合(S616:No)、CPU11は、S613の処理へ戻り、全てのフォルダの探索が終了するまで、S613〜S616の各処理を繰り返す。これにより、印刷対象外ファイルのファイル名が全て変更されるので、プリンタ50では、印刷対象外ファイルをファイルとしては発見できるものの、画像ファイルとしては判定できない状態にできる。
印刷用前処理によれば、携帯端末10内の画像ファイルのうち、印刷対象外ファイルをプリンタ50が画像ファイルとして判定できない状態にでき、印刷対象ファイルをプリンタ50が画像ファイルとして判定できる状態にできる。これにより、ユーザがプリンタ50を操作して携帯端末10内の印刷対象ファイルを印刷させる場合に、ユーザがプリンタ50を操作して携帯端末10内の画像ファイルのサムネイルを、例えば、プリンタ50のLCDに表示させることにより、プリンタ50では、印刷対象ファイルが画像ファイルとして見つかる。即ち、携帯端末10においてユーザが指定した印刷対象ファイルが画像ファイルとして見つかる。従って、ユーザは、目的のファイルをユーザが容易に印刷できる。
例えば、携帯端末10にプリンタ50用のプリンタドライバがインストールされておらず、携帯端末10からプリンタ50を直接制御して、携帯端末10内の画像ファイルをプリンタ50に印刷させることができない場合に、携帯端末10内の画像ファイルのうち目的のファイルを、プリンタ50からの操作によりユーザが容易に印刷できる。
また、プリンタ50の探索パターンが「全フォルダ探索タイプ」の場合は、携帯端末10内の全ファイルのうち、各印刷対象外ファイルの名前を個別に変更するという手法を用いている。この手法は、プリンタ50の探索パターンに関わらず確実に、印刷対象外ファイルをプリンタ50が画像ファイルとして判定できない状態にできる。これに対し、プリンタ50の探索パターンが「単一フォルダタイプ」の場合は、携帯端末10内の全ファイルのうち、一部の処理対象外ファイルについて、フォルダを移動させる処理を行う。また、プリンタ50の探索パターンが「特定フォルダ探索タイプ」の場合は、ファイルについての変更は行わず、一つのフォルダ(参照フォルダ)について処理を行う。このように「単一フォルダタイプ」と、「特定フォルダ探索タイプ」との場合は共に、「全フォルダ探索タイプ」よりも、処理するファイルやフォルダの数が少ないので、処理時間を短縮できる。本実施形態では、このように、印刷対象外ファイルをプリンタ50が画像ファイルとして判定できない状態にする手法を、プリンタ50の探索パターンに応じて変えることができる。
また、プリンタ50の探索パターンが「単一フォルダタイプ」の場合は、参照フォルダに存在する全ファイルを、一旦、印刷用テンポラリフォルダに移動させ、プリンタ50の探索パターンが「特定フォルダ探索タイプ」の場合は、旧参照フォルダに存在するファイルのうち、印刷対象ファイルを新参照フォルダにコピーしている。よって、参照フォルダや旧参照フォルダに元々入っていた各ファイルは、保存される。従って、仮に、プリンタ50により参照フォルダや新参照フォルダに存在する印刷対象ファイルが印刷される場合に、何らかの不具合が発生し、参照フォルダや新参照フォルダに存在するファイルが損傷しても、元のファイルは保護できる。
また、印刷対象外ファイルのファイル名を変更したり、印刷対象外ファイルを移動させるという簡単な処理で、その印刷対象外ファイルを、プリンタ50が画像ファイルとして判定できない状態にできる。
図10は、携帯端末10において実行される印刷用後処理(S510)を示すフローチャートである。この処理は、印刷用前処理(図9)により変更または追加された各ファイルや各フォルダを、変更前または追加前の状態に戻すための処理である。探索タイプメモリ14b2に記憶されている探索タイプが「単一フォルダタイプ」である場合(S701:Yes)、CPU11は、変更ファイル管理テーブル13bの内容に基づいて、印刷前処理(図9)において参照フォルダにコピーした各ファイルを削除する(S702)。そして、CPU11は、変更ファイル管理テーブル13bの内容に基づいて、印刷前処理(図9)において印刷用テンポラリフォルダに移動させた各ファイルを、参照フォルダ管理メモリ14b1により示される参照フォルダに戻す(S703)。次に、CPU11は、変更ファイル管理テーブル13bの内容に基づいて、印刷前処理において作成した印刷用テンポラリフォルダを削除し(S704)、本処理を終了する。
一方、探索タイプが「単一フォルダタイプ」でなく(S701:Yes)、探索タイプが「特定フォルダ探索タイプ」である場合(S705:Yes)、CPU11は、変更ファイル管理テーブル13bの内容に基づいて、印刷前処理において作成した新参照フォルダを削除する(S706)。そして、CPU11は、変更ファイル管理テーブル13bの内容に基づいて、印刷前処理において変更した旧参照フォルダの名前を元に戻し(S707)、本処理を終了する。
一方、探索タイプが「特定フォルダ探索タイプ」でない場合(S705:No)、探索タイプが「全フォルダ探索タイプ」であること意味する。この場合、CPU11は、変更ファイル管理テーブル13bの内容に基づいて、印刷前処理において変更した各ファイルの名前を元に戻し(S708)、本処理を終了する。
印刷用後処理によれば、印刷用前処理(図9)により変更された各ファイルやフォルダの名前を元に戻すことができ、また、印刷用前処理により新たに追加されたフォルダを削除できる。よって、印刷用前処理による変更や追加が行われてから、携帯端末10において何らかの処理が実行される場合に、その変更や追加が処理に影響を及ぼし、不具合が生じることを抑制できる。
上記実施形態において、画像ファイルが印刷可能ファイルの一例であり、ID番号が画像として表示される画像ファイルが、所定のファイルに対応する。また、単一フォルダタイプが第1探索パターンに対応し、特定フォルダ探索タイプが第2探索パターンに対応する。
また、携帯端末10が情報処理装置の一例である。また、プリンタ50が印刷装置の一例である。また、印刷アプリケーション14bが情報処理プログラムの一例である。タッチパネル17が受付部の一例である。但し、受付部は、ハードウェア単体、または、本発明のプログラムあるいはオペレーティングシステムなど本発明以外のプログラムを実行することにより動作するハードウェアであっても良い。また、受付部は、複数のプログラムによる処理を組み合わせて動作するハードウェアであっても良い。
S502,S503を実行するCPU11が印刷対象受付手段および印刷対象受付ステップの一例である。S505を実行するCPU11が、印刷対象外ファイル変更手段および印刷対象外ファイル変更ステップの一例である。S509を実行するCPU11が、接続解除判定手段の一例である。S510を実行するCPU11が、復元手段の一例である。S206,S207,S215を実行するCPU11が、第1フォルダ特定手段の一例である。S212を実行するCPU11が、ファイル追加手段の一例である。S301,S303を実行するCPU11が、ファイル情報受付手段の一例である。S305〜S309を実行するCPU11が、パターン特定手段の一例である。S304を実行するCPU11が、第2フォルダ特定手段の一例である。S106を実行するCPU11が計時手段の一例である。S105を実行するCPU11が、第2接続解除判定手段の一例である。
以上、実施形態に基づき本発明を説明したが、本発明は上述した実施形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の改良変更が可能であることは容易に推察できるものである。
例えば、上記実施形態では、携帯端末10が情報処理装置の一例であったが、パーソナルコンピュータ、PDA、タブレット端末、デジカメなど各種の装置も情報処理装置の一例となり得る。また、上記実施形態で挙げた具体的数値は一例であり、他の数値を採用することは当然可能である。
また、上記実施形態では、図3,4,6〜10のフローチャートに示す各ステップは、本アプリ14bがCPU11に実行させるものとして説明しているが、本アプリ14bがOS14aなどの機能を利用してCPU11に各ステップを実行させても良い。また、図3,4,6〜10のフローチャートが含むステップは、OS14aやその他アプリケーションがCPU11に実行させるステップに一部置き換えられても良い。また、CPU11の関与によらず、携帯端末10に設けられたハードウェアそのものが作動することによって実現されるステップに、一部置き換えられても良い。
また、上記実施形態では、探索タイプ判定処理(図3)を実行して、プリンタ50の探索タイプと、参照フォルダとを判定しているが、プリンタ50の探索タイプと、参照フォルダとのうち、少なくとも一方を、ユーザが携帯端末10において指定できるように構成しても良い。例えば、本アプリ14bが起動された場合に、設定入力画面をLCD18に表示し、プリンタ50の探索タイプ(受付部が受け付ける情報の一例)について、ユーザからの入力を受け付けるように構成し、その入力結果を、探索タイプメモリ14b2に記憶させる。また、参照フォルダ(受付部が受け付ける情報の一例)について、ユーザからの入力を受け付けるように構成し、その入力結果を、参照フォルダメモリ14b1に記憶させる。この構成の場合でも、上記実施形態と同様に、探索タイプメモリ14b2の内容から、プリンタ50の探索パターンが判る(パターン特定手段の一例)ので、そのプリンタ50の探索パターンに応じて、印刷対象外ファイルをプリンタ50が画像ファイルとして判定できない状態にする手法を変えることができる。この変形例によれば、プリンタ50の探索タイプを判定する処理や、参照フォルダを判定する処理を省くことができるので、処理時間を短縮できる。特に、探索タイプおよび参照フォルダの両方が指定された場合には、探索タイプ判定処理が不要となる。また、プリンタ50の探索タイプや、参照フォルダの指定が可能になってから、所定時間(例えば、5分)を超えた場合には、例えば、ユーザが操作に不慣れなために、プリンタ50において画像ファイルを確認できなかったことや、設定入力画面に対して入力が行えなかったことなどが考えられるため、その入力を打ち切る。そして、この場合は、プリンタ50の探索タイプが「全フォルダ探索タイプ」であるとして、次の処理へ進む。これにより、設定入力画面が表示されたまま、次の処理へ進めなくなり、処理が滞ってしまうことを抑制できる。
また、上記実施形態では、本アプリ14bが起動された場合に、探索タイプ判定処理(図3)が実行されるが、本アプリ14bが携帯端末10にインストールされてから、初めて起動された場合に実行されるように構成しても良い。その場合に、探索タイプメモリ14b2に探索パターンを記憶しておく。そして、プリンタ50の探索タイプが既に探索タイプメモリ14b2に記憶されている場合には、探索タイプ判定処理をスキップし、プリンタ用ファイル設定処理が実行されるように構成しても良い。また、ユーザの指示に基づいて、探索タイプ判定処理や、プリンタ用ファイル設定処理を、任意に実行できるように構成しても良い。これにより、携帯端末10に接続可能なプリンタ50が複数種類あり、携帯端末10に接続されるプリンタ50が状況に応じて変わる場合に、今回接続されたプリンタ50の探索パターンを適切に判定できるので、適切な探索パターンに基づいて、印刷用前処理(図9)を実行できる。よって、ユーザがプリンタ50を操作して携帯端末10内の印刷対象ファイルを印刷させる場合に、携帯端末10内の印刷対象ファイルを問題なく印刷できる。
また、探索タイプメモリ14b2には、複数台のプリンタ50の種別と、そのプリンタ50の探索タイプとを対応づけて記憶させても良い。例えば、判定処理(図6)においてプリンタ50の探索タイプが判定された場合に、ユーザにプリンタ50の名前を入力してもらい、探索タイプとプリンタ50の名前とを対応づけて、探索タイプメモリ14b2に記憶する。そして、本アプリ14bを起動した場合に、探索タイプメモリ14b2に複数の探索タイプが記憶されていれば、その探索タイプに対応するプリンタ50の名前をLCD18に表示し、ユーザに一つ選択してもらい、選択された名前に対応する探索タイプを、今回接続されるプリンタ50の探索タイプとして用いる。これにより、同一のプリンタ50について、再度、探索タイプ判定処理(図3)を実行しなくて済む。尚、プリンタ50の名前に代えて、そのプリンタ50に割り当てられたIPアドレスを用いても良い。
また、上記実施形態では、プリンタ50の探索タイプごとに、印刷対象外ファイルをプリンタ50が画像ファイルとして判定できない状態にする手法が決まっているが、その手法に限定するものでない。例えば、「単一
フォルダタイプ」の手法(図9のS603〜S605)と、「特定フォルダ探索タイプ」の手法(図9のS607〜S609)とを入れ換えても良い。また、「全フォルダ探索タイプ」の手法(図9のS612〜S616)は、全ての探索タイプにおいて用いることができる。
また、上記実施形態のS610の処理(図9)において、携帯端末10内の印刷対象ファイルを参照フォルダにコピーする場合、画像ファイル選択画面(図8(b))においてユーザがファイルを選択した順に、各印刷対象ファイルをコピーしても良い。プリンタ50により携帯端末10内の画像ファイルが処理される場合、タイムスタンプの古い順に処理されることがある。よって、その場合に、ユーザがファイルを選択した順で、印刷対象ファイルをプリンタ50に印刷させることができる。また、各印刷対象ファイルについての印刷部数を個別に指定できるように構成しても良い。そして、複数部数の印刷が指定された印刷対象ファイルについては、印刷部数の分だけファイルのコピーを作成し、拡張子を除くファイル名の末尾を連番とし、その末尾の前までのファイル名は、同一とする。これにより、同一の印刷対象ファイルの画像を、プリンタ50に連続的に印刷させることができるので、ユーザが印刷物を仕分けし易い。
また、上記実施形態では、画像ファイル(JPEG形式ファイル)を印刷対象ファイルの一例としているが、プリンタ50からの制御により印刷可能であるなら、他のデータ形式(例えば、GIF形式や、PDF形式など)のファイルを、印刷対象ファイルとしても良い。
また、上記実施形態では、携帯端末10とプリンタ50とが接続される場合を例に挙げて説明したが、プリンタ50に変えて、MFPやFAXやコピー機などの他の装置が接続されても良い。但し、他の装置は、プリンタ50と同様に、他の装置からのユーザ操作により、携帯端末10内の印刷可能ファイルを印刷可能に構成されているものとする。尚、その場合、「MFP」や「FAX」や「コピー機」が、「印刷装置」の一例に対応する。
また、上記実施形態では、印刷対象外ファイルの拡張子を変更したり、消去することで、印刷対象外ファイルをプリンタ50が画像ファイルとして判定できない状態にしている。これに加えて、ファイルのヘッダを変更したり、ファイルを隠しファイルの属性に設定しても良い。
また、上記実施形態では、携帯端末10とプリンタ50とがUSBケーブル40により接続されている場合を例に挙げて説明したが、互いに通信可能であれば、別の形態で接続されている場合でも、本発明を適用できる。例えば、有線LANや、無線LANや、赤外線通信や、IEEEケーブルなどの他のケーブルにより接続されていても良い。
また、上記実施形態では、携帯端末10に内蔵されたRAM13内に携帯端末フォルダリスト13aや、変更ファイル管理テーブル13bや、印刷対象ファイル管理テーブル13cを記憶させるものとして説明した。しかしながら、例えば、フラッシュメモリ14や、携帯端末10に着脱可能なメモリカード20内に記憶させても良い。
また、上記実施形態のプリンタ50では、携帯端末10内のファイルのうち、プリンタ50において画像ファイルとして判定された各ファイルのサムネイルが、そのプリンタ50のLCDに表示されてから、ユーザにより印刷実行が指示されるものとして説明した。これに対し、サムネイルが表示されない、又は、サムネイルを表示させない状態で、プリンタ50においてユーザが印刷実行を指示した場合に、プリンタ50において画像ファイルとして判定された全ファイルや、一部のファイルが印刷されるプリンタ50でも、本発明を適用できる。
また、上記実施形態では、判定用前処理(図3のS101)の実行後や、印刷用前処理(図8のS505)の実行後に、接続指示メッセージ(S102、S506)をLCD18に表示させているが、表示させなくても良い。尚、表示させない場合は、S103の処理や、S507の処理を省略しても良い。また、携帯端末10とプリンタ50とが接続された場合に(S103:Yes、S507:Yes)、接続解除指示メッセージ(S104、S508)をLCD18に表示させているが、表示させなくても良い。
また、上記実施形態では、図8(b)に示す画像ファイル選択画面は、携帯端末10内の各画像ファイルのサムネイル画像83を含むものとして説明した。しかしながら、画像ファイル選択画面は、携帯端末10内の各画像ファイルのうち、参照フォルダメモリ14b1により示される参照フォルダに存在する各画像ファイルのサムネイル画像83のみを含むものであっても良い。また、携帯端末10内の参照フォルダに存在する各画像ファイルと、その参照フォルダに従属する各フォルダに存在する各画像ファイルとのサムネイル画像83を含むものであっても良い。
また、上記実施形態では、プリンタ50の画像ファイル確認画面(図5(c))において画像として表示された数値うち、その最大値および最小値を確認結果入力画面(図6(b))に入力させるものとして説明した。しかしながら、プリンタ50の画像ファイル確認画面において画像として表示された数値うち、その最大値または最小値の何れか一つと、プリンタ50の画像ファイル確認画面において表示された画像数とを入力させても良い。そして、最大値または最小値の何れか一つと、画像数とに基づいて、プリンタ50の探索タイプや、参照フォルダを特定しても良い。
また、上記実施形態の判定処理(図6)では、USBケーブル40によるプリンタ50との接続が解除されてから所定時間が経過したかを判定しているが(S302)、この判定を省略しても良い。その場合、S106の処理(図3)を省略しても良い。
また、上記実施形態の印刷用前処理(図9)では、探索タイプが「単一フォルダタイプ」又は「特定フォルダ探索タイプ」の場合、印刷対象ファイルを参照フォルダ(新参照フォルダ)にコピーしていたが(S610)、これに代えて、印刷対象ファイルを参照フォルダ(新参照フォルダ)に移動させても良い。その場合、S611の処理では、その移動に基づく各ファイルの変更情報をファイル管理テーブル13cに記憶させても良い。また、その場合、印刷用後処理(図10)のS702の処理は省略する。また、S706の処理では、旧参照フォルダを削除する前に、ファイル管理テーブル13cに基づいて旧参照フォルダに移動させたファイルを移動前の場所に戻す。