(57)【特許請求の範囲】
【請求項１】
画像供給装置と通信するための第１通信端子と、印刷装置を含む外部装置と接続するための第２通信端子と、画像ファイルを保存するためのメモリとを有する中継装置であって、
前記画像供給装置から前記第１通信端子を介して画像ファイルを受信する受信手段と、
前記第２通信端子に接続される外部装置と、ファイル転送を実行可能な所定のプロトコルで通信する第１の通信手段と、
前記外部装置と前記所定のプロトコルで通信可能な場合に、前記所定のプロトコルよりも上位の通信階層であるダイレクト印刷用プロトコルにより通信する第２の通信手段と、
前記受信手段により画像ファイルを受信する場合に、前記第２の通信手段により前記ダイレクト印刷用プロトコルによる通信を行うように制御し、前記第２の通信手段による前記ダイレクト印刷用プロトコルによる通信が可能な場合には、当該ダイレクト印刷用プロトコルにより、前記受信手段により受信した画像ファイルを印刷させるための印刷ジョブ及び当該画像ファイルを前記外部装置に送信し、前記ダイレクト印刷用プロトコルによる通信が不可能な場合には、前記受信手段により受信した画像ファイルを、前記外部装置に送信せずに、前記メモリに保存する制御手段と、
を有することを特徴とする中継装置。
【請求項２】
前記制御手段は、前記所定のプロトコルによる通信は可能であるが、前記ダイレクト印刷用プロトコルによる通信が不可能な場合に、前記受信手段により受信した画像ファイルを、前記外部装置に送信せずに、前記メモリに記録することを特徴とする請求項１に記載の中継装置。
【請求項３】
前記第２通信端子は、ＵＳＢ規格準拠のコネクタであることを特徴とする請求項１又は２に記載の中継装置。
【請求項４】
前記第２通信端子は、ＵＳＢ規格準拠のＡコネクタであることを特徴とする請求項３に記載の中継装置。
【請求項５】
前記所定のプロトコルは、Picture Transfer Protocol（ＰＴＰ）であることを特徴とする請求項３又は４に記載の中継装置。
【請求項６】
前記第２通信端子を介して行われる前記外部装置と前記中継装置との通信において、前記外部装置はＵＳＢホスト、前記中継装置はＵＳＢスレーブとして通信することを特徴とする請求項３乃至５のいずれか１項に記載の中継装置。
【請求項７】
前記第１通信端子は、無線通信用の通信端子であることを特徴とする請求項１乃至６のいずれか１項に記載の中継装置。
【請求項８】
前記第１通信端子は、赤外線送受信端子であることを特徴とする請求項７に記載の中継装置。
【請求項９】
前記制御手段は、前記受信手段により画像ファイルの受信を完了する前に、前記第２の通信手段により前記ダイレクト印刷用プロトコルによる通信を行うように制御し、前記ダイレクト印刷用プロトコルによる通信が可能か否かを判断することを特徴とする請求項１乃至８のいずれか１項に記載の中継装置。
【請求項１０】
画像供給装置と通信するための第１通信端子と、印刷装置を含む外部装置と接続するための第２通信端子と、画像ファイルを保存するためのメモリとを有する中継装置の制御方法であって、
前記画像供給装置から前記第１通信端子を介して画像ファイルを受信する受信工程と、
前記第２通信端子に接続される外部装置と、ファイル転送を実行可能な所定のプロトコルで通信する第１の通信工程と、
前記外部装置と前記所定のプロトコルで通信可能な場合に、前記所定のプロトコルよりも上位の通信階層であるダイレクト印刷用プロトコルにより通信する第２の通信工程と、
前記受信工程で画像ファイルを受信する場合に、前記第２の通信工程で前記ダイレクト印刷用プロトコルによる通信を行うように制御し、前記第２の通信工程で前記ダイレクト印刷用プロトコルによる通信が可能な場合には、当該ダイレクト印刷用プロトコルにより、前記受信工程で受信した画像ファイルを印刷させるための印刷ジョブ及び当該画像ファイルを前記外部装置に送信し、前記ダイレクト印刷用プロトコルによる通信が不可能な場合には、前記受信工程で受信した画像ファイルを前記外部装置に送信せずに、前記メモリに保存する制御工程と、
を有することを特徴とする中継装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像供給源からの画像情報を受け取って画像形成装置に出力して像形成を行わせる中継装置とその制御方法に関する。
【背景技術】
【０００２】
近年、画像を撮影し、その画像をデジタル画像データに変換できるデジタルカメラ（撮像装置）が広く使用されるようになってきている。このようなカメラで撮影した画像を印刷して写真として使用するために、直接、デジタルカメラからプリンタにデジタル画像データを伝送して印刷することができるダイレクト印刷システムが開発されており、市場のデジタルカメラ、プリンタにおいて広く普及しつつある。
【０００３】
ダイレクト印刷システムは通常、組み込み型であり、一旦市場に発売されたダイレクト印刷対応のデジタルカメラやプリンタは、以後新規のダイレクト印刷に対応するためのアップデートが困難、或は不可能な場合が多い。また複数の互いに異なるダイレクト印刷システム間では通常、互換性は無く、例えば無線接続によるダイレクト印刷と、ＵＳＢ接続によるダイレクト印刷とは、それぞれ個別に規定、製品化され、それぞれ個別の発展をしてきた。その結果、無線接続ダイレクト印刷にのみ対応した機器や、ＵＳＢ接続ダイレクト印刷にのみ対応した機器が市場に大量に出回っている状況となっている。そして現在、これら複数の互いに異なるダイレクト印刷機能を変換、伝達することにより、これらを接続して印刷可能とするダイレクト印刷用の変換アダプタの登場が期待されている。
【０００４】
従来のＰＣ環境における印刷変換アダプタはプリントサーバと呼ばれ、まずプリンタが存在し、そのプリンタの機能を補完・拡充したり、複数のユーザによって共有したりすることを目的として設計されている。このようなプリントサーバは、プリンタの仕様確定後に設計されるのため、より高度な機能がサポートできる。特許文献１には、高機能なプリントサーバが複数の低機能プリンタのアダプタとして機能する例が開示されている。また特許文献２には、複数のプリンタの機能を登録し、印刷ジョブに好適なプリンタを選択するプリントサーバの例が開示されている。またプリントサーバでなく、ダイレクト印刷用の変換アダプタとして特許文献３がある。このダイレクト印刷用アダプタでは、アダプタ内で量子化までの画像処理が実行され、印刷用データの生成を行ってからプリンタにデータを送信している。この場合、アダプタ自身が接続されたプリンタの処理を行わなくてはならない。その方法の一つとして、特許文献４では、プリンタにおいて印刷可能な色情報を取得し、それに基づいて印刷を行う提案がなされている。
【特許文献１】特開平１１−１８４６４９号公報
【特許文献２】特許第０３４９５８４５号公報
【特許文献３】特登録特許第３５９３８２０号公報
【特許文献４】特開平１０−２００７６６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
このようなアダプタでは、カメラ等の画像供給源からのデータを印刷する際に、プリンタ、アダプタ、画像供給源の三者が同時に接続されている必要がある。従って、例えば、画像供給源とプリンタとが離れた場所に設置されている場合には、両者を接続するために非常に長いケーブルが必要となるため実用的ではない。またＵＳＢのように規格上でケーブル長が制限されている場合、ケーブル接続自体が不可能となってしまう。この解決策として、画像供給源から印刷を行いたい場合に、アダプタを始めに画像供給源に接続して印刷したい画像を画像供給源からアダプタに転送して印刷予約を行った後に、そのアダプタをプリンタに接続し、印刷予約に基づいて印刷を行う方法がある。しかしこの場合、印刷予約時に、アダプタが、実際に印刷に使用するプリンタのCapabilityを正しく把握していないと、そのプリンタのCapabilityを反映した印刷予約を行うことができない。
【０００６】
また複数のプリンタを所有するユーザを考えると、画像によって異なったプリンタを使用して印刷したい場合が想定される。このような場合、アダプタの持つＵＩの機能や性能によっては、画像供給源からアダプタに画像データを転送した後、プリンタに接続して印刷を行うまでは、その画像の内容の確認が不可能な場合も考えられる。この場合には、ユーザは、そのアダプタを、印刷したいプリンタとは異なるプリンタへ接続してしまうことも考えられる。
【０００７】
本発明は、上記従来技術の欠点を解決することにある。
【０００８】
また本願発明の特徴は、画像供給源からの画像情報を受信して記憶でき、かつ指定された画像形成装置にその画像情報を出力して像形成できる中継装置及びその制御方法を提供することにある。
【課題を解決するための手段】
【０００９】
本発明の一態様に係る中継装置は以下のような構成を備える。即ち、
画像供給装置と通信するための第１通信端子と、印刷装置を含む外部装置と接続するための第２通信端子と、画像ファイルを保存するためのメモリとを有する中継装置であって、
前記画像供給装置から前記第１通信端子を介して画像ファイルを受信する受信手段と、
前記第２通信端子に接続される外部装置と、ファイル転送を実行可能な所定のプロトコルで通信する第１の通信手段と、
前記外部装置と前記所定のプロトコルで通信可能な場合に、前記所定のプロトコルよりも上位の通信階層であるダイレクト印刷用プロトコルにより通信する第２の通信手段と、
前記受信手段により画像ファイルを受信する場合に、前記第２の通信手段により前記ダイレクト印刷用プロトコルによる通信を行うように制御し、前記第２の通信手段による前記ダイレクト印刷用プロトコルによる通信が可能な場合には、当該ダイレクト印刷用プロトコルにより、前記受信手段により受信した画像ファイルを印刷させるための印刷ジョブ及び当該画像ファイルを前記外部装置に送信し、前記ダイレクト印刷用プロトコルによる通信が不可能な場合には、前記受信手段により受信した画像ファイルを、前記外部装置に送信せずに、前記メモリに保存する制御手段と、を有することを特徴とする。
【００１１】
本発明の一態様に係る中継装置の制御方法は以下のような工程を備える。即ち、
画像供給装置と通信するための第１通信端子と、印刷装置を含む外部装置と接続するための第２通信端子と、画像ファイルを保存するためのメモリとを有する中継装置の制御方法であって、
前記画像供給装置から前記第１通信端子を介して画像ファイルを受信する受信工程と、
前記第２通信端子に接続される外部装置と、ファイル転送を実行可能な所定のプロトコルで通信する第１の通信工程と、
前記外部装置と前記所定のプロトコルで通信可能な場合に、前記所定のプロトコルよりも上位の通信階層であるダイレクト印刷用プロトコルにより通信する第２の通信工程と、
前記受信工程で画像ファイルを受信する場合に、前記第２の通信工程で前記ダイレクト印刷用プロトコルによる通信を行うように制御し、前記第２の通信工程で前記ダイレクト印刷用プロトコルによる通信が可能な場合には、当該ダイレクト印刷用プロトコルにより、前記受信工程で受信した画像ファイルを印刷させるための印刷ジョブ及び当該画像ファイルを前記外部装置に送信し、前記ダイレクト印刷用プロトコルによる通信が不可能な場合には、前記受信工程で受信した画像ファイルを前記外部装置に送信せずに、前記メモリに保存する制御工程と、を有することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、画像供給装置からの画像ファイルを受信して記憶でき、また接続されている外部装置にその画像ファイルを印刷させるための印刷ジョブ及び当該画像ファイルを送信できるという効果がある。
【発明を実施するための最良の形態】
【００１４】
以下、添付図面を参照して本発明の好適な実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る発明を限定するものでなく、また本実施の形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
【００１５】
図１は、本発明の実施の形態に係る印刷システムの概要を説明する図である。
【００１６】
ここでは、本実施の形態に係るアダプタ１２００をＰＤ（Photo-Direct）プリンタ１０００のＵＳＢ端子に取り付け、そのアダプタ１２００の赤外線送受信部１２０２に対しカメラ付き携帯電話１１００の赤外線送受信部１１０１から赤外線で画像データを送信して印刷を行わせる場合を示している。尚、後述するように、アダプタ１２０が画像情報を受信するときは、必ずしもプリンタに接続されている必要はない。但し、この場合は、アダプタ１２００は電源を有している必要がある。
【００１７】
尚、図１では、アダプタ１２００は赤外線により画像データを受信しているが、本発明はこれに限定されるものでなく、カメラ等のＵＳＢ端子を有する機器とＵＳＢケーブルを介して接続する形態も含まれる。またアダプタ１２００が画像データを記憶できるメモリ容量の不揮発メモリを有している場合には、そのアダプタ１２００をカメラ等のＵＳＢ端子を有する機器に接続して画像データを記憶し、その後、そのアダプタ１２００をＰＤプリンタ１０００のＵＳＢ端子に取り付けて印刷する形態も含まれるものとする。
【００１８】
また後述するように、このアダプタ１２００がオフライン状態、即ち、ＰＤプリンタ１０００に接続されていない状態でも、カメラ付き携帯電話１１００からの画像情報を受信して記憶しておき、その後、ＰＤプリンタ１０００に接続されたときに、その画像情報の印刷先であるプリンタであることが確認できると、そのプリンタに、その記憶している画像情報に基づく印刷データを送信して印刷させることができる。
【００１９】
図２（Ａ），（Ｂ）は、本実施の形態１に係るアダプタ１２００の外観図である。
【００２０】
この実施の形態に係るアダプタ１２００は、ＣＰＵやメモリを有し、各種操作ボタンによる操作指示に応じて各種制御を行えるインテリジェント機能を有している。１２０１は、印刷中断時の印刷再開を指示するための印刷続行ボタンである。印刷続行ボタン１２０１は、印刷ジョブの実行中以外においては他の機能を持たせてもよく、例えば印刷時の用紙サイズの選択するための用紙サイズ選択ボタンとして機能してもよい。また、用紙サイズの選択、印刷再開のそれぞれについて別個に操作ボタンを用意しても良い。また用紙サイズ以外に、レイアウト、印刷枚数、日付設定その他印刷結果に関わる各種設定を行う操作ボタンを別個に用意しても良い。１２０２は、赤外線通信のための赤外線送受信部である。１２０３は、ＰＤプリンタ１０００のダイレクト印刷用端子に接続するためのＵＳＢ端子である。１２０４は、アダプタ１２００の状態を表す状態表示ＬＥＤである。このＬＥＤ１２０４の表示を、印刷待機状態、印刷受付状態、画像転送状態、印刷実行中状態、印刷エラー状態、転送エラー状態などに応じて、その発光色や点灯、点滅のパターンを変更することでアダプタ１２００の状態をユーザに通知する。このＬＥＤ１２０４は、アダプタ１２００の状態を表す以外に、各種ＵＩとして機能するものを具備してもよく、例えば用紙サイズ表示を行うＬＥＤ等が考えられる（不図示）。その場合、各ＬＥＤの上部には、用紙サイズを示す文字列（Ａ４、ハガキ、カードなど）が印刷され（不図示）、操作ボタン１２０１を押下することで、そのＬＥＤの表示が切り替わるようにしても良い。また用紙サイズ以外に、レイアウト、印刷枚数、日付設定、その他印刷結果に関わる各種設定結果を表示するＬＥＤを別個に容易しても良い。また、数値を好適に表示するために７セグメント等のＬＥＤやＬＣＤなどを用いてもかまわない。
【００２１】
また用紙サイズを示す文字列は、前述したようにアダプタ１２００の筐体に直接印刷する以外に、シールを添付することなどによって表示してもかまわない。この場合、世界各国の印刷文化圏に好適な用紙サイズ（例として、日本ではＡ４、Ｌ判、ハガキ、米国ではレター、４×６、カード）を印刷したシールを用意し、これらのサイズに対応するようにアダプタの内部ＲＯＭ（後述）を差し替える。これによりアダプタの筐体を共通にしたままで、シールを張り替えることにより、世界各国でのより好適な利用が可能である。１２０５はダイレクト印刷規格のロゴシールである。これにより、ＵＳＢ端子１２０３を同じダイレクト印刷規格に対応したＰＤプリンタ１０００に接続可能であることをユーザに認識させる。尚、このようなロゴシールを貼付する以外に、アダプタ１２００の筐体に直接ロゴを印刷したり、刻印したりしてもかまわない。
【００２２】
また図２では、ＬＥＤやボタンといったＵＩを具備したアダプタを示したが、これらＵＩを排したアダプタも考えられる。このとき、アダプタがダイレクト印刷用のアダプタであることを明確にするためにも、ロゴシールの貼付はますます有用である。
【００２３】
図２（Ｂ）は、同じく本実施の形態１に係るアダプタ１２１０を示し、前述した赤外線通信の代わりに、後述するＵＳＢケーブルを用いる場合の概観図である。尚、１２１１，１２１３〜１２１５は、前述の図２（Ａ）の１２０１，１２０３〜１２０５のそれぞれと対応している。
【００２４】
１２１２は、デジタルカメラ（ＤＳＣ）などの画像供給源とのＵＳＢ通信のためのＵＳＢ端子である。ここで、ＰＤプリンタ１０００と画像供給源との接続は有線で行われ、取り回しの利便性を考えると、アダプタ１２１０は外見上はケーブルのような形状となる。このとき、アダプタ１２１０のＵＳＢ端子は、ＵＳＢ−Ａコネクタの形状となるため、ユーザがアダプタの接続方向を誤る恐れがある。そこで、アダプタ１２１０をＰＤプリンタ１０００へ接続する側のＵＳＢ端子１２０３の近傍にロゴシール１２１５を添付、又は印刷、刻印することにより、前述した効果に加えて、アダプタ１２１０の接続方向を誤ってしまうことを防ぐことも可能である。
【００２５】
図３は、本実施の形態に係るアダプタ１２００の制御に係る主要部の構成を説明するブロック図で、前述の図面と共通する部分は同じ記号を付与して、それらの説明を省略する。
【００２６】
ＣＰＵ３２０１は、ＲＯＭ３２０３に記憶された制御プログラムに従って、後述する各種制御処理を担当している。ＲＯＭ３２０２は、ＣＰＵ３２０１により実行される処理手順（プログラム）を記憶している。ここではこのプログラムが適宜バージョンアップされることを想定し、書き込み可能な不揮発性メモリ、例えばフラッシュメモリで構成されてもよい。ＲＡＭ３２０３は、ＣＰＵ３２０１のワークエリアとして使用される。このＲＡＭ３２０３は、電源遮断時に、その内容が消去される揮発性のメモリであってもよいし、書き込み可能な不揮発性メモリ、例えばフラッシュメモリで構成されてもよい。またこれらを混在させ、目的に応じて別個のＲＡＭを利用するようにしてもかまわない。一例としては、印刷画像ファイルや、後述する各プリンタからのCapabilityを、そのプリンタのＩＤなどに対応付けて保持する領域のみを不揮発性メモリに割り当てることで、アダプタ１２００の電源遮断後であっても画像ファイルを保持し、アダプタ１２００の電源再投入時に画像の再印刷を実現できる。３２０４は、このアダプタ用の電源で、バッテリで構成されている。但し、このアダプタ１２００が、常にＵＳＢ接続された状態で使用される場合には、この電源３２０４はなくても良い。
【００２７】
図４は、本発明の実施の形態に係るフォトダイレクトプリンタ装置（以下、ＰＤプリンタ）１０００の概観斜視図である。このＰＤプリンタ１０００は、ホストコンピュータ（ＰＣ）からデータを受信して印刷する通常のＰＣプリンタとしての機能と、メモリカードなどの記憶媒体に記憶されている画像データを直接読取って印刷したり、或いはデジタルカメラやＰＤＡなどからの画像データを受信して印刷する機能を備えている。
【００２８】
図において、本実施の形態に係るＰＤプリンタ１０００の外殻をなす本体は、下ケース１００１、上ケース１００２、アクセスカバー１００３及び排出トレイ１００４の外装部材を有している。また、下ケース１００１は、ＰＤプリンタ１０００の略下半部を、上ケース１００２は本体の略上半部をそれぞれ形成しており、両ケースの組合せによって内部に後述の各機構を収納する収納空間を有する中空体構造をなし、その上面部及び前面部にはそれぞれ開口部がされている。さらに、排出トレイ１００４は、その一端部が下ケース１００１に回転自在に保持され、その回転によって下ケース１００１の前面部に形成される開口部を開閉させ得るようになっている。このため、記録動作を実行させる際には、排出トレイ１００４を前面側へと回転させて開口部を開成させることにより、ここから記録されたシート（普通紙、専用紙、樹脂シート等を含む。以下単にシートとする）が排出可能となると共に、排出されたシートを順次積載し得るようになっている。また排紙トレイ１００４には、２枚の補助トレイ１００４ａ，１００４ｂが収納されており、必要に応じて各トレイを手前に引き出すことにより、シートの支持面積を３段階に拡大、縮小させ得るようになっている。
【００２９】
アクセスカバー１００３は、その一端部が上ケース１００２に回転自在に保持され、上面に形成される開口部を開閉し得るようになっており、このアクセスカバー１００３を開くことによって本体内部に収納されている記録ヘッドカートリッジ（不図示）或いはインクタンク（不図示）等の交換が可能となる。尚、ここでは特に図示しないが、アクセスカバー１００３を開閉させると、その裏面に形成された突起がカバー開閉レバーを回転させるようになっており、そのレバーの回転位置をマイクロスイッチなどで検出することにより、アクセスカバー１００３の開閉状態を検出し得るようになっている。
【００３０】
また、上ケース１００２の上面には、電源キー１００５が設けられている。また、上ケース１００２の右側には、液晶表示部１００６や各種キースイッチ等を備える操作パネル１０１０が設けられている。この操作パネル１０１０の構造は、図５を参照して詳しく後述する。１００７は自動給送部で、シートを装置本体内へと自動的に給送する。１００８は紙間選択レバーで、プリントヘッドとシートとの間隔を調整するためのレバーである。１００９はカードスロットで、ここにメモリカードを装着可能なアダプタが挿入され、このアダプタを介してメモリカードに記憶されている画像データを直接取り込んで印刷することができる。このメモリカード（ＰＣ）としては、例えばコンパクトフラッシュ（登録商標）メモリ、スマートメディア、メモリスティック等がある。１０１１はビューワ（液晶表示部）で、このＰＤプリンタ１０００の本体に着脱可能であり、ＰＣカードに記憶されている画像の中からプリントしたい画像を検索する場合などに、１コマ毎の画像やインデックス画像などを表示するのに使用される。１０１２は前述のアダプタ１２００、或は後述するデジタルカメラを接続するためのＵＳＢ端子である。また、このＰＤ装置１０００の後面には、パーソナルコンピュータ（ＰＣ）を接続するためのＵＳＢコネクタが設けられている。
【００３１】
図５は、本実施の形態に係るＰＤプリンタ１０００の操作パネル１０１０の概観図である。
【００３２】
図において、液晶表示部１００６には、その左右に印刷されている項目に関するデータを各種設定するためのメニュー項目が表示される。ここに表示される項目としては、例えば、複数ある写真画像ファイルの内、印刷したい写真画像の先頭番号、指定コマ番号（開始コマ指定／印刷コマ指定）、印刷を終了したい最後の写真番号（終了）、印刷部数（部数）、印刷に使用するシートの種類（用紙種類）、１枚のシートに印刷する写真の枚数設定（レイアウト）、印刷の品位の指定（品位）、撮影した日付を印刷するかどうかの指定（日付印刷）、写真を補正して印刷するかどうかの指定（画像補正）、印刷に必要なシートの枚数表示（用紙枚数）等がある。これら各項目は、カーソルキー２００１を用いて選択、或いは指定される。２００２はモードキーで、このキーを押下する毎に、印刷の種類（インデックス印刷、全コマ印刷、１コマ印刷、指定コマ印刷等）を切り替えることができ、これに応じてＬＥＤ２００３の対応するＬＥＤが点灯される。２００４はメンテナンスキーで、プリントヘッドのクリーニング等、プリンタのメンテナンスを行わせるためのキーである。２００５は印刷開始キーで、印刷の開始を指示する時、或いはメンテナンスの設定を確立する際に押下される。２００６は印刷中止キーで、印刷を中止させる時や、メンテナンスの中止を指示する際に押下される。
【００３３】
次に図６を参照して、本実施の形態に係るＰＤプリンタ１０００の制御に係る主要部の構成を説明する。
【００３４】
図６は、本実施の形態に係るＰＤプリンタ１０００の制御に係る主要部の構成を示すブロック図で、前述の図面と共通する部分は同じ記号を付与して、それらの説明を省略する。
【００３５】
図において、３０００は制御部（制御基板）を示している。３００１はＡＳＩＣ（専用カスタムＬＳＩ）を示している。３００２はＤＳＰ（デジタル信号処理プロセッサ）で、内部にＣＰＵを有し、後述する各種制御処理及び、輝度信号（ＲＧＢ）から濃度信号（ＣＭＹＫ）への変換、スケーリング、ガンマ変換、誤差拡散等の画像処理等を担当している。３００３はメモリで、ＤＳＰ３００２のＣＰＵの制御プログラムを記憶するプログラムメモリ３００３ａ、及び実行時のプログラムを記憶するＲＡＭエリア、画像データなどを記憶するワークメモリとして機能するメモリエリアを有している。３００４はプリンタエンジンで、ここでは、複数色のカラーインクを用いてカラー画像を印刷するインクジェットプリンタのプリンタエンジンが搭載されている。３００５はデジタルカメラ（ＤＳＣ）３０１２を接続するためのポートとしてのＵＳＢコネクタである。３００６はビューワ１０１１を接続するためのコネクタである。１０１３はＰＣ３０１０を接続するためのポートとしてのＵＳＢコネクタである。３００８はＵＳＢハブ（ＵＳＢＨＵＢ）で、このＰＤプリンタ１０００がＰＣ３０１０からの画像データに基づいて印刷を行う際には、ＰＣ３０１０からのデータをそのままスルーし、ＵＳＢ３０２１を介してプリンタエンジン３００４に出力する。これにより、接続されているＰＣ３０１０は、プリンタエンジン３００４と直接、データや信号のやり取りを行って印刷を実行することができる（一般的なＰＣプリンタとして機能する）。３００９は電源コネクタで、電源３０１９により、商用ＡＣから変換された直流電圧を入力している。ＰＣ３０１０は一般的なパーソナルコンピュータ、３０１１は前述したメモリカード（ＰＣカード）、３０１２はデジタルカメラ（ＤＳＣ：Digital Still Camera）である。尚、この制御部３０００とプリンタエンジン３００４との間の信号のやり取りは、前述したＵＳＢ３０２１を介して行われる。
【００３６】
このように本実施の形態に係るＰＤプリンタ１０００は、直接画像データを受け取ることができるＤＳＣ３０１２の場合には、ＵＳＢ端子１０１２に接続されたＤＳＣ３０１２からのデータを直接受信して印刷することができる。また、直接画像データを受け取ることができないＤＳＣ３０１２や携帯電話などの場合には、ＵＳＢ端子１０１２に接続されたアダプタ１２００を介して画像データを入力して印刷することになる。
【００３７】
図７（Ａ）（Ｂ）は、本実施の形態に係るカメラ付き携帯電話１１００の外観図で、図７（Ａ）は操作面、図７（Ｂ）は、その背面を示している。
【００３８】
図において、１１０１は赤外線通信のための赤外線送受信部である。前述したアダプタ１２００との赤外線送受信以外にも、他のカメラ付き携帯電話１１００との間での赤外線送受信、ＴＶなどのリモコン受光部を持つ電子機器に対しての赤外線送信などが可能である。液晶表示部１１０２は、携帯電話として使用する際に各種情報を表示する以外にも、カメラ起動時にはファインダーとして画像を表示したり、また撮影した画像などを表示することも可能である。操作ボタン１１０３は、携帯電話として使用する際にダイヤル番号の入力に使用される以外にも、メール文書の作成やカメラ起動時にも操作される。尚、これら操作ボタン１１０３の機能は、携帯電話１１００の内部状態により多種多様に変化する。１１０４は撮像用レンズで、被写体を捉えて操作ボタン１１０３を操作することにより、光学ズーム操作やピント調整などを行ったり、撮像をすることが可能である。１１０５はメモリーカードを接続するためのメモリーカードスロットで、撮像した画像を保存／参照する以外にも、携帯電話内部の各種情報を保存／参照することができる。
【００３９】
図８は、本実施の形態に係るカメラ付き携帯電話１１００の制御に係る主要部の構成を示すブロック図で、前述の図面と共通する部分は同じ記号を付与して、それらの説明を省略する。
【００４０】
ＣＰＵ３１０３は、このカメラ付き携帯電話１１００全体の動作を制御している。ＲＯＭ３１０１は、ＣＰＵ３１０３の処理手順（ファームウェア）を記憶している。このＲＯＭ３１０１は、プログラムが適宜バージョンアップが行われることを想定し、書き込み可能な不揮発性メモリ、例えばフラッシュメモリで構成されてもよい。ＲＡＭ３１０２は、ＣＰＵ３１０３のワークエリアとして使用される。このＲＡＭ３１０２は、通常の揮発性メモリで構成してもよく、また、電源を切断してもワークエリアの内部状態を保持するために不揮発性メモリで構成してもよい。３１０６はＣＣＤ素子である。３１０７はドライバで、ＣＰＵ３１０３の制御下において光学ユニット１１０１を制御する。３１０９はメモリーカードで、メモリーカードスロット１１０５に取り付けられる。このメモリカード３１０９は、通常コンパクトフラッシュ（登録商標）メモリカード、スマートメディア等が用いられる。
【００４１】
図９は、本発明の実施の形態に係るアダプタ１２００をＰＤプリンタ１０００に接続し、図１に示すように、アダプタ１２００の赤外線送受信部１２０２に対しカメラ付き携帯電話１１００の赤外線送受信部１１０１を向けた際のＰＤプリンタ１０００、アダプタ１２００、カメラ付き携帯電話１１００のそれぞれが構築するプロトコルスタックの概要を示す図である。
【００４２】
ＰＤプリンタ１０００は、物理インターフェースとしてＵＳＢホスト端子を用い、ＵＳＢで標準に規定されているＳＩＣＤ（Still Image Capture Device）クラスのＵＳＢホストとして働く。トランスポート制御は、このＳＩＣＤを利用したＰＴＰによって実現される。ＰＤプリンタ１０００内部のダイレクト印刷アプリケーションは、このＰＴＰを利用してダイレクト印刷のための情報を、画像データの供給源と交換することによりダイレクト印刷プリンタとして機能する。
【００４３】
カメラ付き携帯電話１１００は、物理インタフェイスとしてＩｒＤＡ（Infrared Data Association）のＳＩＲ装置、又はＦＩＲ装置を用い、赤外線無線端末装置として動作する。上位のプロトコルとして、リンクアクセスにＩｒＬＡＰ（Link Access Protocol）を、リンク管理にＩｒＬＭＰ（Link Mahagement Protocol）を用い、トランスポート制御はこのＩｒＬＭＰを利用したＩｒＴｉｎｙＴＰ（Tiny Transport Protocol）によって実現される。カメラ付き携帯電話１１００内部のデータ転送アプリケーションは、このＩｒＴｉｎｙＴＰ上のＩｒＯＢＥＸ（Object Exchange Protocol）を利用してデータ転送を行うことにより、赤外線データ通信端末として機能する。
【００４４】
なお、他のプロトコル構成によっても赤外線データ通信端末を実現でき、例えばデータ転送アプリケーションはＩｒＴｒａｎ−Ｐ（Transfer   Picture）を用いた画像転送や、ＩｒＣＯＭＭによるシリアル／パラレルポートエミュレーションを用いたデータ転送によっても実現可能である。
【００４５】
本実施の形態に係るアダプタ１２００は、ＰＤプリンタ１０００及びカメラ付き携帯電話１１００に対応するプロトコルスタックを両方とも具備し、図示したProtocol Translatorによって相互の通信プロトコルを変換する。例としては、カメラ付き携帯電話１１００より赤外線で送信された画像データを受け取り、その受信した画像データを用いてProtocol Translatorによってダイレクト印刷用情報を生成し、ＰＤプリンタ１０００へダイレクト印刷ジョブを発行する。
【００４６】
尚、図９では、は画像データの供給源としてＩｒＤＡ端子を具備したカメラ付き携帯電話１１００を示したが、これ以外にもＩｒＤＡ端子を具備し画像情報を転送できる端末であればカメラ付きでない携帯電話、ＰＨＳ、ＰＤＡ、デジタルスチルカメラその他の端末であってもよい。
【００４７】
また画像情報を転送するために画像供給源が具備する通信手段がＩｒＤＡ以外のものであってもよく、例えばBlueTooth、802.11xなどの無線通信手段や、ＵＳＢ、ＩＥＥＥ１３９４、イーサネット（登録商標）などの有線通信手段であってもよい。
【００４８】
図１０〜図１３は、これらBlueTooth、８０２．１１ｘ、ＵＳＢ，ＩＥＥＥ１３９４を用いた際のプロトコルスタックの構成の一例を示す図である。
【００４９】
これらプロトコルスタックの各層の説明については省略するが、基本的には前述のＩｒＤＡによる例と同じく、画像ソース端末から受け取った画像データを用いてProtocol Translatorによってダイレクト印刷用情報を生成し、ＰＤプリンタ１０００へダイレクト印刷ジョブを発行する。これら各種の通信手段を用いた画像供給源としては、前述の携帯電話など以外にもカーナビゲーションシステム、ＰＣ、ゲーム機、デジタルＴＶその他の機器が考えられる。
【００５０】
図１４は、本実施の形態に係るアダプタ１２００とＰＤプリンタ１０００とをＵＳＢで接続してダイレクト印刷を行う場合の通信処理の流れを説明する図である。この処理フローでは、ダイレクト印刷を図９の左側のＰＴＰアーキテクチャ上で実現した場合で説明する。
【００５１】
ＰＤプリンタ１０００とアダプタ１２００とが物理的に接続された後、まず１４０１で、ＰＤプリンタ１０００とアダプタ１２００との間で初期化が行われる。ここで互いの機器がダイレクト印刷に対応していることを確認する。次に１４０２で、アダプタ１２００はＰＤプリンタ１０００に対してCapabilityを要求して、ＰＤプリンタ１０００のCapabilityを取得する。次に１４０３で、アダプタ１２００はＰＤプリンタ１０００に対してジョブを発行して印刷を依頼する。次に１４０４で、ＰＤプリンタ１０００はアダプタ１２００に対して、その時点でのプリンタの状態（ステータス）を通知し、印刷処理の開始を通知する。次に１４０５で、ＰＤプリンタ１０００はアダプタ１２００に対して画像ファイルを要求し、印刷処理に必要な画像ファイルを取得する。そして１４０６で、ＰＤプリンタ１０００が印刷処理を実行し、印刷処理を完了すると１４０７で、ＰＤプリンタ１０００からアダプタ１２００に対してプリンタの状態を通知を行い、印刷処理の完了を通知する。ここで１４０１〜１４０４，１４０７は、スクリプトの交換により情報を伝達しており、１４０５はＰＴＰオペレーションをそのまま利用した純粋なファイル転送であり、GetObject, GetPartialObject等のファイル転送オペレーションを持いる。また１４０６は、純粋にＰＤプリンタ１０００内部の処理である。
【００５２】
以下、図１５〜図１９を参照して、各処理の詳細を説明する。
【００５３】
図１５は、ＵＳＢによるダイレクト印刷時の初期化処理の流れを示す図で、図１４の初期化処理１４０１の詳細説明図である。
【００５４】
ＰＤプリンタ１０００とアダプタ１２００とが物理的に接続された後、まず１５０１で、ＰＤプリンタ１０００からアダプタ１２００に対してGetDeviceInfoが送信され、アダプタ１２００に対して、その保持しているオブジェクトに関する情報が要求される。これに対して１５０２でアダプタ１２００は、DeviceInfo Datasetにより、アダプタ１２００に保持しているオブジェクトに関する情報をＰＤプリンタ１０００に送信する。次に１５０３で、OpenSessionにより、アダプタ１２００をリソースとして割り当て、必要に応じてデータオブジェクトにハンドルをアサインしたり、特別な初期化を行うための手順の開始要求が発行されてアダプタ１２００から肯定応答（ＯＫ）が返送されるとＰＴＰでの通信が開始される。
【００５５】
次に１５０４で、アダプタ１２００に対してスクリプト形式の全てのハンドルを要求する（Storage ID: FFFFF, Object Type Script）。これに対して１５０５で、アダプタ１２００に保持されている全てのハンドルリストが返送される。次に１５０６，１５０７で、ＰＤプリンタ１０００からｉ番目のオブジェクトハンドルの情報を取得する。ここで、このオブジェクトに、アダプタ１２００の識別を示すキーワード（例えば「山」）が含まれていると、次に１５０８で、ＰＤプリンタ１０００からオブジェクト情報の送信を指示して（SendObjectInfo）、それに対して肯定応答（ＯＫ）を受信すると、SendObjectにより、オブジェクト情報をＰＤプリンタ１０００からアダプタ１２００に対して送信する。ここで、このオブジェクトには、前述のキーワードに対する応答キーワード（合言葉）として例えば「川」が含まれている。このようにして、ＰＤプリンタ１０００とアダプタ１２００の双方が互いに接続相手を認識できることになり、これ以降はダイレクト印刷を開始することができる。
【００５６】
図１６（Ａ）（Ｂ）は、ＵＳＢによるダイレクト印刷時のスクリプト転送処理を説明するフローで、図１４の１４０２〜１４０４，１４０７でのＰＴＰレベルでの共通の振る舞いを示す。
【００５７】
図１６（Ａ）は、ＰＤプリンタ１０００からアダプタ１２００に対してスクリプトを伝達する処理のフローである。
【００５８】
まず最初、ＰＤプリンタ１０００は、SendObjectInfoにより、アダプタ１２００に対してオブジェクト情報の送信要求を伝える。次にObjectInfo Datasetを送信して、そのオブジェクト情報を通知する。アダプタ１２００は、そのオブジェクト情報を受信して解析し、オブジェクトの本体が受信可能であれば受信予定のオブジェクトに割り当てるオブジェクトハンドル番号と共にＯＫを応答する。このＯＫの応答に続いて、ＰＤプリンタ１０００は、SendObjectにより、アダプタ１２００に対してオブジェクト本体の送信要求を伝える。そしてObject Dataを送信して、そのオブジェクトの本体をスクリプト（Script）形式でアダプタ１２００に送信する。アダプタ１２００はそのオブジェクトの本体を受信し、オブジェクト本体を受信完了したらＯＫを応答する。
【００５９】
図１６（Ｂ）は、アダプタ１２００からＰＤプリンタ１０００に対してスクリプトを伝達する処理のフローを示す。
【００６０】
まずアダプタ１２００からＰＤプリンタ１０００に対してRequestObjectTransferを送り、ＰＤプリンタ１０００が所定のオブジェクトハンドルのオブジェクト取得を行うように促す。これにより、ＰＤプリンタ１０００は、GetObjectInfoによりアダプタ１２００に対して所定のオブジェクトハンドルのオブジェクトのオブジェクト情報の取得要求を伝える。アダプタ１２００は、このGetObjectInfoを受信すると、送信したいオブジェクトのオブジェクト情報ObjectInfo Datasetを送信し、送信が完了したらＯＫを応答する。このＯＫの応答に続いて、ＰＤプリンタ１０００は、GetObjectによりオブジェクト本体の伝送要求を伝える。アダプタ１２００は、このGetObjectを受信すると、送信したいオブジェクトのオブジェクト本体を送信し、送信が完了したらＯＫを応答する。
【００６１】
以上の様にしてＵＳＢでのダイレクト印刷時には、スクリプトをＰＤプリンタ１０００とアダプタ１２００との間でやり取りする事で情報交換を行う。
【００６２】
図１７〜図１９は、本実施の形態においてＵＳＢでのダイレクト印刷時に交換されるスクリプトの例である。
【００６３】
図１７（Ａ）（Ｂ）は、ＵＳＢでのダイレクト印刷時におけるCapabilityを取得するためのスクリプトの一例を示す図、図１４のCapabilityの要求１４０２で使用される。
【００６４】
図１７（Ａ）は、アダプタ１２００からＰＤプリンタ１０００に対して送信されるCapability要求スクリプトを示し、本例ではＰＤプリンタ１０００がサポートしている画像フォーマットの種類を要求している。
【００６５】
図１７（Ｂ）は、ＰＤプリンタ１０００からアダプタ１２００に対して送信されるCapability要求スクリプト（図１７（Ａ））に対する応答スクリプトの一例を示し、本例ではＰＤプリンタ１０００はＪＰＥＧ及びＰＮＧの２種類のフォーマットをサポートしている場合を示す。
【００６６】
このCapability取得スクリプトは、他にも印刷用紙のサポートサイズや、印刷用紙種類、また各印刷用紙のサイズに対応したレイアウト印刷機能、固定サイズ印刷機能、印刷品位、画像補正、画像切り取り、日付印刷、ファイル名印刷等のCapability情報のやり取りに利用される。
【００６７】
図１８は、ＵＳＢでのダイレクト印刷時におけるジョブ発行スクリプトを説明する図で、図１４のジョブ発行１４０３で使用される。
【００６８】
図１８（Ａ）は、アダプタ１２００からＰＤプリンタ１０００に対して送信されるジョブ発行スクリプトを示し、この例ではオブジェクトハンドル番号「０００００００１」のＪＰＥＧ画像１枚の印刷を要求している。
【００６９】
図１８（Ｂ）は、ＰＤプリンタ１０００からアダプタ１２００に対して送信されるジョブ発行スクリプト（図１８（Ａ））に対する応答スクリプトの一例を示し、この例ではＰＤプリンタ１０００が印刷ジョブを受け付けて、ＯＫを応答している。
【００７０】
図１８（Ｃ）は、ＰＤプリンタ１０００からアダプタ１２００に対して送信されるジョブ発行スクリプト（図１８（Ａ））に対する他の応答スクリプトの例を示し、この例ではＰＤプリンタ１０００が印刷ジョブを実行できずに拒否してＮＧで応答している。
【００７１】
このジョブ発行スクリプトは、他にもCapabilityの取得スクリプトで説明したように、画像フォーマット以外の用紙サイズ等を指定する場合にも利用される。また複数の画像を１回のジョブ発行スクリプトで指定することや、各画像の部数指定、切り取り領域指定、日付指定、ファイル名指定にも利用される。
【００７２】
また図１８（Ｃ）の拒否内容もＮＧだけでなく、他の画像供給源からの画像データを印刷しているためなのか、それとも印刷ジョブの設定が間違っているからなのか、等の理由を通知する場合にも利用される。
【００７３】
図１９（Ａ）（Ｂ）は、ＵＳＢでのダイレクト印刷時のステータス通知スクリプトの一例を示し、図１４のステータス通知１４０４及び１４０７で使用される。
【００７４】
図１９（Ａ）は、ＰＤプリンタ１０００からアダプタ１２００に対して送信されるステータス通知スクリプトを示し、この例では、ＰＤプリンタ１０００が印刷状態でなく、印刷開始可能な待機状態（ＩＤＬＥ）であるステータスを通知している。
【００７５】
図１９（Ｂ）は、アダプタ１２００からＰＤプリンタ１０００に対して送信されるステータス通知スクリプト（図１９（Ａ））に対する応答スクリプトの一例を示し、この例ではＯＫを応答している。
【００７６】
このステータス通知スクリプトは、他にもエラーの発生状況や発生したエラーの種別、ページ数や印刷写真枚数等の印刷中のジョブの状況、ケーブルを外してもＰＤプリンタ１０００が印刷ジョブを完遂出来る状態で有るか否か、次の印刷ジョブを受け付け可能であるか否か、Capability情報が更新されたか否か、印刷ジョブの終了理由等のやり取りに利用される。
【００７７】
また、このステータスは、ＰＤプリンタ１０００からアダプタ１２００に対して通知するだけではなく、アダプタ１２００からＰＤプリンタ１０００に対して要求する場合も有り得る。
【００７８】
更に、スクリプトの交換は、前述のCapabilityの取得、ジョブの発行、ステータスの通知以外にも、印刷ジョブの中断、エラーからの復帰、バージョン情報、機器名、シリアル番号、ベンダ名等の認証情報の確認・交換、等のコマンドにも利用される。
【００７９】
図２０は、本実施の形態に係るアダプタ１２００と携帯電話１１００との間での、ＩｒＤＡ時の初期化及びファイル転送の処理の流れを示す図である。このフローではファイル転送を図９の右側のＩｒＯＢＥＸアーキテクチャ上で実施した場合で説明する。
【００８０】
まず２０１１で、携帯電話１１００はアダプタ１２００に対して接続確認（CONNECT）を発行する。これにより２０１２で、アダプタ１２００が接続を許可する場合にはSUCCESS応答を返す。次に２０１３で、携帯電話１１００は転送したいファイルのファイル名やサイズ等の情報とファイル本体を含む全体データのうちの先頭パケットを送信する(PUT)。アダプタ１２００は先頭パケットを正常に受信したら、２０１４で次のデータを送付可能である旨を示すCINTINUE応答を返す。次に２０１５で、携帯電話１１００は次のパケットを送信し、２０１６でアダプタ１２００は次のパケットを正常に受信したら、次のデータを送付可能である旨を示すCONTINUE応答を返す。同様にして、２０１７〜２０１８が処理される。そして２０１９で、携帯電話１１００は最終パケットを送信し、２０２０でアダプタ１２００は最後のパケットを正常に受信したら、データの受信が完了した旨を示すSUCCESS応答を返す。
【００８１】
以上説明したように、携帯電話１１００からPUTで送信された画像に対し、アダプタ１２００はＰＴＰのオブジェクトハンドルを割り振り、そのオブジェクトハンドルを利用したダイレクト印刷をＰＤプリンタ１０００に対して依頼する事となる。
【００８２】
尚、図１０の右側のＢＴ接続時の処理の流れも、図２０の説明とほぼ同等であるため、その説明を省略する。
【００８３】
また図１１の右側のＵＳＢ接続時の処理フローは、純粋なＰＴＰのSendObjectInfo／SendObjectを利用するため、その説明を省略する。
図２１は、本発明の一実施例の処理フローチャートで、ここではＰＤプリンタ１０００がアダプタ１２００と接続された場合に、アダプタ１２００が実行する初期化処理を説明している。これは不図示の検出器によりアダプタ１２００がＰＤプリンタ１０００と接続されたことを検出することにより開始される。
【００８４】
まずステップＳ１０１で、アダプタ１２００とＰＤプリンタ１０００間のＩ／Ｆを初期化する。本実施例では、ＰＤプリンタ１０００とアダプタ１２００とは前記の通りＵＳＢで接続されるものとする。また本実施例では、トランスポート層としてＰＴＰ層が採用されているが、この通信仕様は本発明を限定するものではない。またＰＴＰによるＵＳＢ接続の初期化方法は公知の技術であるのでここでの詳細な説明は省略する。こうしてＵＳＢ接続の初期化が完了するとプリンタとアダプタとの間でデータの送受信の準備が完了する。
【００８５】
次にステップＳ１０２で、ＰＤプリンタ１０００から、そのプリンタが有しているダイレクトプリントCapabilityを取得する。即ち、今回接続されたプリンタがどの様なダイレクトプリント仕様を有しているかの情報を取得する。このCapabilityの取得は、アダプタ１２００からの要求で実行されるが、ＰＤプリンタ１０００からPUSHされる形態であっても良い。そしてアダプタ１２００は、ＰＤプリンタ１０００からのCapabilityの取得を完了するとステップＳ１０３で、そのプリンタとの接続をソフト的に切断する。
【００８６】
ここでソフト的に切断する理由は以下の通りである。アダプタ１２００は複数種のプリンタに接続されることが想定される。プリンタの構成によっては、ダイレクトプリンタのための通信が確立している間、それ以外の外部機器との通信を拒絶する場合がある。即ち、アダプタ１２００が接続されている間は、ＰＣからの印刷ができなくなる仕様のプリンタがある。この種のプリンタに接続される機器が、同じダイレクト印刷の仕様を有するデジタルカメラであれば、通常、ダイレクト印刷が完了した時点でデジタルカメラとプリンタとが分離されるため、プリンタがＰＣからのデータを受信して印刷できなくなるといった問題が生じる虞は少ない。しかし本実施例のアダプタ１２００の場合には、ダイレクト印刷の要否に係わりなく常にプリンタに接続され続ける場合が想定される。よってアダプタ形式でのダイレクト印刷にあっては、プリンタとアダプタとの通信が必要になる場合以外は、アダプタとプリンタとの接続が切られていることが望ましい。しかし、自動的に、アダプタとプリンタとの接続を物理的に切断することは困難なので、ここではソフト的（非物理的）に通信を切断する。本実施例では、アダプタ１２００の電気的な接続を切断（Open）し、アダプタ１２００がプリンタ１０００から抜かれたのと同様な状況を作ることでソフト的（非物理的）に切断している。
【００８７】
本実施例では、前述のようにアダプタとプリンタとの間はＰＴＰ接続であり、アダプタ側がスレーブ接続となっているので、プログラム的に通信を切断することが困難であった。しかし、Ｉ／Ｆの仕様によってはアダプタからプログラム的に接続を切断することが可能な場合もある。この様なＩ／Ｆが採用されている場合には、前述した電気的な切断ではなく、プログラム的にその接続を切断する仕様であっても勿論良い。
【００８８】
次にステップＳ１０４で、アダプタ１２００は、その取得したプリンタ１０００のCapabilityに応じて、アダプタ１２００におけるＵＩ表示を構築する。ここでは例えば、プリンタ１０００のCapabilityの１つとして「用紙サイズ」がある。この場合、プリンタ１０００がＡ４サイズをサポートできる場合には、アダプタ１２００はＡ４サイズが選択できるようにＵＩを構築し、もしＡ４サイズをサポートできなければ、Ａ４サイズを選択できないようにアダプタのＵＩを構築する。以下同様にして、「紙種」や「日付印刷の可否」など、ダイレクト印刷に関するそれぞれのCapabilityに応じてアダプタのＵＩを再構築する。そしてこれ以降、アダプタ１２００は、ＰＤプリンタ１０００から取得したCapabilityに応じて、その構築したＵＩに基づいてユーザにダイレクト印刷のサービスを提供する。
【００８９】
次にステップＳ１０５で、ＲＡＭ３２０３に保存されている画像データを基に、接続されたＰＤプリンタ１０００に対応する印刷データを作成し、その印刷データをアダプタ１２００からＰＤプリンタ１０００に送信して印刷を行う。こうして印刷が終了するとステップＳ１０６で、アダプタ１２００がＰＤプリンタ１０００から物理的に分離されたかどうかを判定し、分離された場合、即ち、アダプタ１２００がＰＤプリンタ１０００から取り外された場合はステップＳ１０７に進み、アダプタ１２００は、そのＰＤプリンタ１０００のCapabilityをキャンセルして、ステップＳ１０８で、アダプタのＵＩを更新する。本実施例では、この時点でアダプタ１２００が表示するＵＩは、デフォルト設定に戻される。即ち、ダイレクト印刷を行う上で必ず有しているマンダトリ機能にＵＩ選択機能が制限される。尚、後述する実施の形態のアダプタでは、ステップＳ１０７でのCapabilityをキャンセル時、そのCapabilityをＲＡＭ３２０３に不揮発に記憶している。
【００９０】
図２２は、本実施例に係るアダプタ１２００がＰＤプリンタ１０００に接続されている状態で、アダプタ１２００が携帯電話１１００からの画像データを受信してダイレクト印刷が行われる場合の動作を説明するフローチャートである。
【００９１】
まずステップＳ２０１で、携帯電話１１００とアダプタ１２００とが接続されたことを検出すると、アダプタ１２００と携帯電話１１００の間でＩ／Ｆの初期化を行う。次にステップＳ２０２で、通信の初期化後、アダプタ１２００は携帯電話１１００からのダイレクト印刷の要求が入力されるのを待ち、印刷要求が入力されるとステップＳ２０３に進み、携帯電話１１００からの印刷データを受信する。この印刷データとしては、ダイレクト印刷の対象となる画像データと、そのダイレクト印刷の印刷条件を記したデータなどが送られてくる場合がある。よってアダプタ１２００は、印刷命令の受信とともにＰＤプリンタ１０００との間でダイレクト印刷を行うための通信の確立を行うことができるが、本実施例では、この段階では、ＰＤプリンタ１０００との通信の確立は行わない。
【００９２】
こうしてステップＳ２０４で、携帯電話１１００からのデータ受信を完了するとステップＳ２０５に進み、アダプタ１２００は、携帯電話１１００に対して印刷データの受信が正常終了したことを伝えて携帯電話１１００との一連のジョブを終了させる。このとき携帯電話１１００は、仕様によってはダイレクト印刷を行っていると理解していない場合がある。即ち、携帯電話１１００としては、ＵＳＢホスト（ここではアダプタ１２００）に対してファイル転送をしているだけの場合がある。
【００９３】
前述のように本実施例では、携帯電話１１００は必ずしも特別のダイレクト印刷アプリケーションを搭載している必要はなく、単に選択されたデータ（画像データ）を通信が確立している接続先にファイル転送するものでも良い。この場合、アダプタ１２００は、その画像データをＰＤプリンタ１０００が理解できる仕様に変換してＰＤプリンタ１０００にデータ転送を行うので、結果としてダイレクト印刷が可能になっている。特にこのような場合には、画像データを転送するだけの携帯電話１１００では、データの転送が完了した段階でジョブが終了するので、アダプタ１２００は速やかにジョブを終了させる必要がある。よって本実施例では、携帯電話１１００からのデータ転送が終了した段階で、携帯電話１１００との間のジョブを終了させる。
【００９４】
こうしてダイレクト印刷用の全てのデータを受信したアダプタ１２００は、この段階でＰＤプリンタ１０００とのＩ／Ｆの接続を再開する。即ち、ステップＳ２０６で、アダプタ１２００がＰＤプリンタ１０００と物理的に接続されている場合はステップＳ２０７で、そのＰＤプリンタ１０００との間でＩ／Ｆの初期化を行って通信を確立する。次にステップＳ２０８で、携帯電話１１００からの受信データを、ＰＤプリンタ１０００との間のダイレクト印刷プロトコルのデータ仕様に変換する。そしてステップＳ２０９で、順次、ＰＤプリンタ１０００にダイレクト印刷データを転送する。こうしてステップＳ２１０で、ダイレクト印刷データの転送が完了するとステップＳ２１１に進み、再度、ＰＤプリンタ１０００とアダプタ１２００との接続を、前述と同様にソフト的（電気的）に切断し、再びステップＳ２０２に戻って、携帯電話１１００からの印刷要求が入力されるのを待つ。以上が本実施例に係るアダプタ１２００におけるダイレクト印刷動作の説明である。
【００９５】
ここでアダプタ１２００の電源は、アダプタが独自に備える構成であっても良いが、本実施例では、ＵＳＢを介してＰＤプリンタ１０００から供給されている。この場合、アダプタ１２００は、携帯電話１１００から受信した印刷データを保持するための不揮発性メモリを備えるのが望ましい。これはアダプタ１２００が携帯電話１１００からの印刷データを受信している段階で、かつＰＤプリンタ１０００とのＩ／Ｆが確立されていない場合、ＰＤプリンタ１０００の電源がオフされる可能性があるため、その受信したデータを不揮発に保存できるのは有効である。
【００９６】
またアダプタ１２００が格納するデータは、携帯電話１１００から受信したデータをそのものであってもよいが、ダイレクト印刷のために、圧縮などの加工を行って記憶するようにしても良い。
【００９７】
尚、この動作は、ＰＤプリンタ１０００がアダプタ１２００と接続されたことを検出した場合で説明したが、ＰＤプリンタ１０００の電源がオフ状態からオンされた場合にも同様の処理が実行される。
【００９８】
以上の構成により、以下のような効果が得られる。
（Ａ）プリンタと携帯電話との間で共通のダイレクト印刷仕様のプロトコルを有していない場合でも、アダプタを介することにより、プリンタと携帯電話との間でダイレクト印刷を可能にできる。
（Ｂ）携帯電話からのデータ転送中等のように、プリンタがダイレクト印刷動作に入れない状態で、携帯電話がプリンタを占有してしまうことが避けられるので、プリンタの稼働率を向上できる。
（Ｃ）携帯電話からのデータ転送中は、その携帯電話からのデータ受信を最優先するので、携帯電話をいち早く解放できる。これはデジタルカメラをはじめデータ供給機器がバッテリ駆動のモバイル機の場合に特に有効となる。
（Ｄ）プリンタがデータ受信可能状態（レディ状態）でなくても、画像データの供給源からダイレクト印刷用のデータを受信できる。特に、プリンタとの接続に関係なく、携帯電話と接続して携帯電話からの印刷データを受信できる。
【００９９】
上記実施例では、アダプタ１２００が画像供給源から印刷データを受信した後、プリンタがレディ状態にならなかった場合、或はプリンタの電源がオフされた場合、又はプリンタが接続されていない場合等でも、ダイレクト印刷が行える場合について説明した。この例では、ダイレクト印刷の途中で、ＰＤプリンタ１０００が復帰不可能な状態になった場合でも、ダイレクト印刷を完結できる場合について説明する。
【０１００】
図２２のステップＳ２０９のダイレクト印刷開始から、ステップＳ２１１のダイレクト印刷完了の間で、ＰＤプリンタ１０００が復帰不可能なエラーを起こした場合、この処理はステップＳ２０７の「プリンタとアダプタ間Ｉ／Ｆの初期化」に戻って、ＰＤプリンタ１０００の復帰を待つ。通常、プリンタが復帰不可能（この時、印刷の継続も不可能）なエラーを起こした場合、そのプリンタを復帰するためにプリンタの電源のオフ／オン、或はそれに相当するプリンタの初期化処理が行われる。この時、当然Ｉ／Ｆの初期化も行われる。よって、アダプタ１２００とＰＤプリンタ１０００との接続は一旦切断され、プリンタが復帰した後、再度Ｉ／Ｆが確立される。よってダイレクト印刷の動作として、アダプタ１２００がステップＳ２０７の「プリンタとアダプタ間Ｉ／Ｆの初期化」の段階で待機していることにより、ダイレクト印刷の再開が可能となる。
【０１０１】
この時、アダプタ１２００がＰＤプリンタ１０００から電力を供給されている場合は、ＰＤプリンタ１０００の初期化と同時に、その電力供給が断たれ、アダプタ１２００が初期化されてしまう場合が考えられる。このような場合には、アダプタ１２００はステップＳ２０７の「プリンタとアダプタ間Ｉ／Ｆの初期化」に戻る前に、レジューム機能を用いて電源が再投入された場合、ステップＳ２０７の段階から復帰できるように制御される仕様であっても良い。電源再投入時に電源オフ時の作業に復帰させるレジューム機能は公知の技術であるのでここでの詳細な説明は省略する。
【０１０２】
また、このような自動復帰の仕様ではなく、アダプタ１２００のＵＩを用いて、ユーザが自動復帰を指示したときにのみ、保持されている最新のダイレクト印刷データを用いて印刷を行う仕様であっても良い。この場合でも、再度、携帯電話を立ち上げてダイレクト印刷用の画像を選択し、ダイレクト印刷を指示する手間が省け、使い勝手の向上に大きく寄与できる。
【０１０３】
また同様に、ＰＤプリンタ１０００が接続されていない状態で、携帯電話１１００からダイレクト印刷のデータを受信した場合（この時、アダプタ１２００は独自の電源３２０４を有している）、アダプタ１２００は、ステップＳ２０６の「プリンタとアダプタ間Ｉ／Ｆ接続」の状態で待機する仕様とすることにより、アダプタ１２００がＰＤプリンタ１０００に接続された時に、自動的にダイレクト印刷を開始できる。また自動復帰の仕様ではなく、アダプタ１２００のＵＩを用いてユーザが自動復帰を指示したときのみ、そのアダプタに保持されている最新のダイレクト印刷データを用いて印刷を行う仕様であっても良い。
【０１０４】
以上のような構成とすることにより、
（Ａ）ダイレクト印刷の途中でプリンタが復帰不可能なエラーを生じた場合でも、再度、携帯電話からアダプタにダイレクト印刷のジョブを転送しなくても、ダイレクト印刷を再開できる。
（Ｂ）ダイレクト印刷用データを携帯電話から受信した段階でアダプタ１２００がＰＤプリンタ１０００と接続されていない状況であっても、アダプタ１２００がＰＤプリンタ１０００と接続された時点で、ダイレクト印刷を開始できる。
【０１０５】
また上記実施例で、携帯電話１１００とアダプタ１２００との接続を簡易なダイレクト印刷接続としたが本発明はこれに限る必要は無く、アダプタ１２００とＰＤプリンタ１０００との接続に用いるダイレクト印刷接続と異なる接続であれば良い。よって上記実施例において、携帯電話１１００とアダプタ１２００との接続が純粋な転送接続であっても良い。
【０１０６】
尚、上記説明では、画像供給源が携帯電話１１００の場合で説明したが、本発明はこれに限定されるものでなく、ＤＳＣ３０１２、ＴＶ、ゲーム機器、ＰＤＡ等であっても良い。
【０１０７】
［実施の形態１］
前述の実施例では、画像供給源（携帯電話など）とアダプタ１２００、アダプタとＰＤプリンタ１０００のそれぞれが接続される端子を別個に具備したアダプタ１２００の場合で説明した、これに対して実施の形態１では、画像供給源とアダプタ１２００、アダプタ１２００とＰＤプリンタ１０００のそれぞれが接続される端子を１個の端子で共有するアダプタの場合で説明する。
【０１０８】
図２３は、本発明の実施の形態１に係るアダプタ１２２０の概観図で、前述の図２と共通する部分は同じ記号で示し、その説明を省略する。
【０１０９】
どちらの接続においてもアダプタ１２２０がＵＳＢスレーブになる場合、このアダプタ１２２０にはＵＳＢ−Ａコネクタ１２０３が一個のみ設けられている。従って、この場合のアダプタ１２２０の構成は、前述の図３において、赤外線用の端子（IrDA）１２０２が省略されたものとなる。
【０１１０】
このアダプタ１２２０の使われ方として、ＰＤプリンタ１０００とアダプタ１２２０と画像供給源の三者が同時に接続されないことが前提となる。前述の実施例では、ＰＤプリンタ１０００とアダプタとが物理的に接続されていなくても印刷予約が可能であると説明した。即ち、通常の状態では、ＰＤプリンタ１０００とアダプタとが物理的に接続されていることを前提とし、ＰＤプリンタ１０００とアダプタとが物理接続をされていない時の印刷予約時に行える印刷設定は、ＰＤプリンタ１０００がダイレクト印刷を行う上で必ず有しているマンダトリ機能に限定していた。
【０１１１】
これに対して本実施の形態１では、前述したように、ＰＤプリンタ１０００とアダプタ１２２０、画像供給源の三者が同時に接続されないことが前提となるため、ＰＤプリンタ１０００とアダプタ１２２０とが物理的に接続されていない時の印刷予約時には、その後に印刷を実行するために使用されるであろうＰＤプリンタ１０００のCapabilityを反映した印刷設定を行える手段を用意しなければならない。
【０１１２】
また、アダプタ１２２０のＵＳＢ−Ａコネクタ１２０３を、ＰＤプリンタ１０００との接続用と画像供給源との接続用で兼用する場合、アダプタ１２２０がＵＳＢホストに接続された時に、そのホストがＰＤプリンタ１０００なのか画像供給源なのか、或はそれ以外の機器なのかを正しく判別できる必要がある。
【０１１３】
図２４（Ａ）（Ｂ）は、本実施の形態１に係るアダプタ１２２０の使用時の概略を説明する図である。図２４（Ａ）は、画像供給源であるＰＣ３０１０にアダプタ１２２０を接続し、そのＰＣ３０１０からアダプタ１２２０に画像データを転送することで、その画像の印刷予約を実現している。ここでは、画像供給源としてＰＣ３０１０を図示したが、ＵＳＢホストとしてＰＴＰ転送を行える機器であればこれに限定されるものでなく、例えばゲーム機などであっても良い。
【０１１４】
図２４（Ｂ）は、画像の印刷が予約されたアダプタ１２２０をＰＤプリンタ１０００に接続して印刷を実現する場合を示している。この場合、予約された画像印刷ジョブはエリア１２２１に記憶されている。この印刷ジョブに基づいてＰＤプリンタ１０００により印刷を終えると、アダプタ１２２０は、そのエリア１２２１に記憶されていた、印刷に用いた各種情報（画像、印刷設定情報など）を自動的に消去する。
【０１１５】
図２５は、本実施の形態１に係るアダプタ１２２０をＵＳＢホスト（画像供給源、ＰＤプリンタを含む）へ接続した際のアダプタにおける動作を示すフローチャートである。尚、この処理を実行するプログラムはＲＯＭ３２０３に記憶されており、ＣＰＵ３２０１の制御の下で実行される。
【０１１６】
この処理は、プリンタを指定した印刷ジョブが予め記憶されているアダプタを使用することを前提としており、アダプタ１２２０をＵＳＢホストへ接続することにより開始される。アダプタ１２２０がＵＳＢホストへ接続されると、アダプタ１２２０はＰＴＰ接続によりホストと通信を開始する。その後、ステップＳ３０１で、アダプタ１２２０は、ＵＳＢホストに対してダイレクト印刷接続を確立しようとする。ここでの動作は図１４における初期化処理１４０１に相当している。ステップＳ３０１でダイレクト印刷接続が確立された場合はステップＳ３０２に進む。尚、ステップＳ３０１で、一定時間が経過してもダイレクト印刷接続が確立されない場合は、アダプタ１２２０がＰＤプリンタ１０００以外の機器（例えばＰＣやカメラ）と接続されたと判断してステップＳ３０６に進む。
【０１１７】
ステップＳ３０２では、ＵＳＢホストであるＰＤプリンタ１０００と接続されると、アダプタ１２２０は、前回ＰＤプリンタ１０００と接続された時に取得して記憶しているCapability情報が、今回接続したＰＤプリンタ１０００のCapability情報と整合するか否かを判定する。この判定方法としては、前回接続されたＰＤプリンタ１０００の機種名情報をＲＡＭ３２０３に不揮発に記憶しておき、それと比較することにより判定する方法等が考えられるが、このような判定を行うことなく、接続されたプリンタから毎回無条件にCapability情報を取得しても良い。尚、この場合はステップＳ３０３の取得処理は不要になる。ステップＳ３０２で、Capability情報の整合が取れると判定するとステップＳ３０４に進み、不整合ならばステップＳ３０３に進む。尚、製品購入後の初めての場合のように、アダプタ１２２０に前回接続されたプリンタ情報が記憶されていない場合もステップＳ３０３に進み、接続されているＰＤプリンタ１０００から、そのCapability情報を取得してＲＡＭ３２０３に記録する。
【０１１８】
次にステップＳ３０４で、アダプタ１２２０は、ＲＡＭ３２０３に印刷予約ジョブが記憶されているか否かを判断する。ここでの印刷予約ジョブとは、アダプタ１２２０が、以前に画像供給源に接続された際に生成、蓄積された、画像情報そのものを含む印刷のための情報である。ここで印刷予約ジョブが存在する場合はステップＳ３０５に進み、その記憶している印刷予約ジョブに従って、その記憶している画像情報をダイレクト印刷ジョブ用の印刷データに変換し、ＰＤプリンタ１０００に印刷ジョブを発行して印刷を行う。ここでのダイレクト印刷のための処理については、通常のＤＳＣ３０１２とＰＤプリンタ１０００との間で公知な技術であるので詳細は述べない。こうして印刷が完了するとステップＳ３０８で、アダプタ１２２０は、画像供給源との接続を解除する。このとき可能ならば電源供給のための接続は残したままで、通信用の接続のみを解除してもよい。一方、ステップＳ３０４で、印刷予約ジョブが存在しない場合はステップＳ３０８に進み、画像供給源とのソフト的な接続を解消する。
【０１１９】
一方、ステップＳ３０１で、ダイレクト印刷処理が開始されないときはステップＳ３０６に進む。この場合は、アダプタ１２２０はＰＤプリンタ１０００以外のＵＳＢホストとＰＴＰで接続されるているため、ＰＴＰによるファイル転送を受け付ける。そして、この転送されたファイルを基に印刷予約ジョブを作成する。そしてステップＳ３０７に進み、アダプタ１２２０は、ホストから接続が解除されたかどうかを確認する。接続が継続されていなければステップＳ３０６に戻り、引き続き画像転送を受付け、接続が解除されるとステップＳ３０８に進む。
【０１２０】
尚、ステップＳ３０６で、画像ファイル転送に付随する情報によって、印刷予約ジョブのための付加情報を与えても良い。この付加情報の例として、以下のようなものが考えられる。
【０１２１】
アダプタ１２２０が保持している、ＰＤプリンタ１０００のCapability情報を基に、ＰＤプリンタ１０００が印刷可能な紙サイズを反映したフォルダ構成をＵＳＢホストに対して公開する。例として、ＰＤプリンタ１０００がＡ４、ハガキ、Ｌ判の印刷に対応しているならば、アダプタ１２２０はＵＳＢホストに対して、「A4」、「Hagaki」、「L」、「Default」の４種のフォルダを公開する。そしてＵＳＢホストからのＰＴＰ転送時に、任意のフォルダに対して画像を転送することにより、印刷予約ジョブの紙サイズ指定情報を指示する。
【０１２２】
またアダプタ１２２０の有するＵＩを操作することにより、印刷予約ジョブの設定を行っても良い。その場合も、アダプタ１２２０のＵＩ（ＬＥＤとボタンなど）は、ＰＤプリンタ１０００のCapability情報を基に表示や動作を行う。ここで、フォルダの構成によってＵＳＢホストに公開する情報は、紙サイズのCapabilityに限らず、紙種、印刷枚数、印刷品位などであってもよい。
【０１２３】
図２６は、本実施の形態１に係るアダプタとＰＤプリンタ１０００及びＤＳＣ３０１２との間でのデータのやり取りを説明する図である。ここでは、アダプタ１２２０が新規に接続されたＰＤプリンタ１０００からCapabilityを取得し、画像供給源（図中ＤＳＣ３０１２）から画像データを受取り、ＰＤプリンタ１０００へ印刷ジョブを発行して印刷が完了するまでの、ＰＤプリンタ、アダプタ、画像供給源による動作の流れを説明している。尚、画像供給源は、上述の携帯電話１１００でも良い。
【０１２４】
２６０１では、ユーザにより、アダプタ１２２０とＰＤプリンタ１０００とが物理的に接続される。２６０２では、アダプタ１２２０とＰＤプリンタ１０００との間でダイレクト印刷のための通信を確立する。２６０３では、ＰＤプリンタ１０００から、そのCapability情報を取得して、そのCapability情報をＲＡＭ（不揮発）３２０３に記憶する。尚、ここで既にアダプタ１２２０が、そのＰＤプリンタ１０００のCapability情報を取得して保持していることが分かれば、この取得処理は省略される。次に２６０４で、アダプタ１２２０は、ＰＤプリンタ１０００とのＵＳＢ接続を自動的に解除する。
【０１２５】
この状態で、アダプタ１２２０に、ダイレクト印刷対象のＰＤプリンタ１０００のCapability情報が記憶されたことになる。
【０１２６】
ユーザによりアダプタ１２２０とＰＤプリンタ１０００との物理的な接続が解除されると、次に２６０５で、ユーザにより、このアダプタ１２２０はＤＳＣ３０１２と物理的に接続される。そして２６０６で、アダプタ１２２０は、ＤＳＣ３０１２から画像データを受け取る。このとき前述したように、アダプタ１２２０は、ＰＤプリンタ１０００から取得したCapability情報を基に、設定可能な印刷項目（紙サイズなど）をＤＳＣ３０１２へフォルダ構成として公開したり、アダプタ１２２０のＵＩをユーザに操作させたりすることにより、転送画像の印刷設定を行うことが可能である。そして２６０７で、アダプタ１２２０とＤＳＣ３０１２の間の接続が解除される。このときの解除の方法としては、ユーザの操作による物理的な接続解除でも良いし、ＤＳＣ３０１２の動作による論理的な接続解除であってもよい。
【０１２７】
次に２６０８で、アダプタ１２０２は、ＤＳＣ３０１２から転送された画像を基に印刷予約ジョブを作成する。このジョブの形態としては、実際にアダプタ１２２０からＰＤプリンタ１０００への印刷ジョブの実行時に使用されるスクリプトそのものであってもよいし、印刷ジョブの実行時に使用されるスクリプトを生成するために必要十分である情報の集まりであってもよい。
【０１２８】
また印刷予約ジョブを作成する（２６０８）タイミングは、２６０７の直後である必要は必ずしも無く、ＤＳＣ３０１２からの画像データの転送（２６０６）の直後から、後述する、ＰＤプリンタ１０００へ印刷開始を通知する（２６１０）の直前までの間のいずれのタイミングであっても良い。尚、この予約印刷ジョブの作成にあたっては、アダプタ１２０２が有しているＵＩ機能を使用しても良く、或はＤＳＣ３０１２と接続されている場合、ＤＳＣ３０１２のＵＩ機能を使用して作成しても良い。
【０１２９】
こうしてユーザにより、アダプタ１２２０とＤＳＣ３０１２との物理的な接続が解除され、次に２６０９で、アダプタ１２２０とＰＤプリンタ１０００とが物理的に再接続される。このとき、アダプタ１２２０が保持しているCapability情報は、再接続先であるＰＤプリンタ１０００のCapability情報と一致するため、Capability情報の取得は行われない。次に２６１０で、アダプタ１２２０は、その生成した印刷予約ジョブを基にＰＤプリンタ１０００へ印刷開始を通知する。これによりＰＤプリンタ１０００は、２６１１で、アダプタ１２２０に対して印刷用の画像データの転送依頼を行う。これにより２６１２で、アダプタ１２２０からＰＤプリンタ１０００に対して画像データを転送する。こうして２６１３で、ＰＤプリンタ１０００は、その受信した画像データを基に印刷を行う。
【０１３０】
こうして印刷が終了すると、２６１４で、ＰＤプリンタ１０００からアダプタ１２２０に、印刷が終了したことを通知する。これによりアダプタ１２２０は、２６１５で、ＰＤプリンタ１０００とのＵＳＢ接続を自動的に解除する。そして２６１６で、アダプタ１２２０は、印刷に用いた印刷画像や印刷予約ジョブをＲＡＭ３２０３から消去する。
【０１３１】
この実施の形態１では、アダプタ１２２０は同時に一機種のCapability情報を保持するとして説明した。例えば、ＤＳＣ３０１２とアダプタ１２２０とを接続して印刷予約ジョブを生成した後、印刷時に別のプリンタに接続されることが考えられる。このような場合には、予約印刷ジョブが想定していたプリンタではないため、そのCapabilityが異なる場合があり、そのような場合には印刷予約ジョブで期待した通りの印刷物を得ることができない。そこで、図２５のフローチャートのステップＳ３０４では、その接続されたプリンタを使用した予約印刷ジョブがない場合には、そのまま処理を終了している。
【０１３２】
又別の解決方法として、アダプタ１２２０がＰＤプリンタ１０００へ印刷ジョブを発行する際に、再度、ＰＤプリンタへの印刷ジョブの設定内容が、ＰＤプリンタのCapability情報と整合が取れているかを確認し、整合が取れていない場合には、該当する設定箇所を、そのCapabilityに整合し直すか、或はいずれのプリンタでも実現できる設定値（デフォルト設定）に変更して印刷ジョブを発行すること等が考えられる。また、整合が取れていない場合、印刷を行わずにＵＩ上でエラー表示などを行うことにより、そのアダプタ１２２０を、整合が取れるプリンタへ接続し直すようにユーザに促しても良い。
【０１３３】
またユーザによっては複数のプリンタを所有している場合も考えられる。本実施の形態２に係るアダプタを用いる場合、各々のプリンタのCapabilityを反映させた印刷予約を行うために、画像供給源と接続する前に、印刷を行う予定のプリンタとアダプタとを接続して、そのプリンタのCapability情報を取得し直す必要がある。例えば、ユーザが、３台のプリンタＡ〜Ｃの３台を有する場合、アダプタ１２２０は、既にプリンタＡのCapability情報を保持している。この状態では、プリンタＡのCapabilityを反映した印刷予約のみしか行えない。つまりプリンタＢで印刷したい画像がある場合には、そのアダプタ１２２０をプリンタＢに接続した後、画像供給源とアダプタ１２２０とを接続する必要がある。
【０１３４】
この問題を解決するために、アダプタ１２２０に、過去に接続したことのある複数のプリンタのCapabilityを記憶しておき、画像供給源とアダプタとを接続した際に、それら複数のプリンタのいずれを用いて印刷するかをユーザに選択させる方法が考えられる。この場合のユーザによる選択方法としては、前述の図２５のフローチャートのステップＳ３０６で説明したように、転送先フォルダの指定による方法がある。この場合、例えば過去にプリンタＡ〜Ｃとアダプタ１２２０とが接続されていたならば、画像供給源とアダプタ１２２０とを接続した時に、アダプタ１２２０は画像供給源に対してプリンタＡ〜Ｃのフォルダを公開する。この場合のプリンタ名は、ＵＳＢで規定される「DeviceDescription」の情報や、ダイレクト印刷プロトコル上で、接続初期化時にやり取りされる情報などを基に特定できる。また、同機種のプリンタであっても、そのプリンタの機種名に加えてシリアルナンバ情報も取得することにより、これらプリンタを区別できる。
【０１３５】
これらフォルダの中には、各々のプリンタのCapabilityを反映した印刷予約が行えるように、前述のフローチャートのステップＳ３０６（図２５）と同様に、印刷設定可能な項目（紙サイズなど）をフォルダ構成で表現可能である。尚、このようなフォルダの公開以外にも、アダプタ１２２０上のＵＩで、印刷したいプリンタ名を選択できるようにしても良い。
【０１３６】
以上の方法によって、画像供給源とアダプタとを接続した際に、ユーザはいずれのプリンタを用いて画像を印刷するかを明確に指定できる。
【０１３７】
また印刷に用いるプリンタを指定して印刷予約を行った場合は、印刷予約ジョブ情報と、印刷を実行するべきプリンタの機種情報とを関連付けてアダプタが保持する。そして、そのアダプタが、印刷を実行するべきプリンタと接続された場合にのみ該当する印刷予約ジョブを実行するようにできる。
【０１３８】
尚、ここで、過去に一度もプリンタに接続されていないアダプタでも印刷予約に用いる場合のために、「AnyPrinter」として定義されたプリンタを選択しても良い。この場合、この「AnyPrinter」のCapabilityとしては、ダイレクト印刷を行う上で必ず有しているマンダトリ機能のみを持たせる。「AnyPrinter」が選択された印刷予約ジョブは、いずれのプリンタでも印刷できる。尚、既にプリンタＡ〜Ｃと接続されたアダプタであっても、更に、「AnyPrinter」を加えて選択可能としてもよい。この場合であっても、「AnyPrinter」の振る舞いは前述のとおりである。
【０１３９】
またユーザが新しいプリンタを導入する時、必ずそのプリンタをアダプタに登録すれば、「AnyPrinter」を選択した印刷予約ジョブは、プリンタＡ〜Ｃのいずれかのプリンタで実行されると考えられる。よって、「AnyPrinter」のCapabilityとして、登録されているプリンタの全てで実行可能なCapabilityを持たせても良い。例えば、プリンタＡ〜Ｃの全てのCapability情報で紙サイズとして「Ｌ判」、「２Ｌ判」が選択可能であれば、「AnyPrinter」のCapability情報でも同様に、紙サイズとして「Ｌ判」、「２Ｌ判」を選択可能としても良い。
【０１４０】
［実施の形態２］
前述の実施の形態１に係るアダプタは、１つのＵＳＢ端子だけを有していたが、本実施の形態２では、ＵＳＢ端子に加えてＩｒＤＡ端子も具備したアダプタ１２００の場合で説明する。
【０１４１】
図２７（Ａ）〜（Ｄ）は、本発明の実施の形態２に係るアダプタ１２００の使用時の概略を表した図である。
【０１４２】
このアダプタ１２００は、ＩｒＤＡ端子を備えることにより、実施の形態２における印刷方法と実施の形態１による方法、即ち、アダプタ１２００をＰＤプリンタ１０００に接続し、ＩｒＤＡ端子で受信した画像データを基に印刷を行う方法のいずれでも印刷が可能になる。図２７（Ａ）は、ＰＣ３０１０にアダプタ１２００を接続して印刷予約を行う状態を示している。図２７（Ｂ）は、ＰＤプリンタ１０００にアダプタ１２００を接続して印刷予約された印刷ジョブを実行する状態を示している。こうして印刷ジョブが実行されると、エリア１２２１に記憶されていた印刷ジョブが消去される。また図２７（Ｃ）は、ＩｒＤＡ端子から受信した印刷データによる印刷予約の後、アダプタ１２００をＰＤプリンタ１０００に接続して印刷ジョブを実行する状態を示している。この場合も、印刷ジョブが実行されると、エリア１２２１に記憶されていた印刷ジョブが消去される。更に、図２７（Ｄ）は、ＩｒＤＡ端子から受信した画像データを、アダプタ１２００を介してＰＣ３０１０に転送する状態を示している。具体的には、携帯電話１１００等の他のＩｒＤＡ端子付き端末から赤外線で転送される画像ファイルをアダプタ１２００が受け取り、その受信した画像ファイルをエリア１２２１に保持し、ＰＴＰ接続に対応したＵＳＢホストに対して転送する。この場合は印刷ジョブが終了していないので、エリア１２２１に記憶されていた印刷ジョブは消去されずに保持される。
【０１４３】
このような場合、アダプタ１２００がＰＤプリンタ１０００に接続されている状態で、ＩｒＤＡ端子が受信したファイルについては、ダイレクト印刷用の画像ファイルとして取り扱う必要がある。またアダプタ１２００がダイレクト印刷は行えないがＰＴＰ通信に対応したＵＳＢホストに接続されている状態で、ＩｒＤＡ端子が受信したファイルについては、アダプタ１２００がＵＳＢホストへＰＴＰ接続によって公開し、ＵＳＢホストから任意に読み書きのできる領域に保存する必要がある。
【０１４４】
図２８は、本実施の形態２に係るアダプタ１２００をＵＳＢホスト（画像供給源、ＰＤプリンタを含む）へ接続し、ＩｒＤＡ端子を介して画像ファイルを受信した際の動作を示すフローチャートである。
【０１４５】
この処理は、ＩｒＤＡＩ／Ｆ１２０２で、ファイルを受信することにより開始され、まずステップＳ４０１で、アダプタ１２００が既にＵＳＢホストとのＵＳＢ接続を確立しているかどうかを判定する。ここで接続を確立していればステップＳ４０３に進むが、接続を確立していなければステップＳ４０２に進み、ＵＳＢホストに対してＳＩＣデバイスクラスとして振る舞い、ＵＳＢホストとの間でＰＴＰ接続の開始を試みてステップＳ４０３に進む。このＰＴＰ接続時の手順の詳細は、Picture Transfer Protocol（ＰＩＭＡ１５７４０）を参照されたい。
【０１４６】
ステップＳ４０３では、アダプタ１２００は、ＵＳＢホストとの間でＰＴＰ接続を確立しているかどうかを判定する。ここでＰＴＰ接続を確立していると判定するとステップＳ４０４に進むが、ＰＴＰ接続を確立していないと判定すると、この処理を終了する。
【０１４７】
ステップＳ４０４では、アダプタ１２００は、ＵＳＢホストとの間でダイレクト印刷接続のための通信接続を開始する。次にステップＳ４０５で、アダプタ１２００は、ＵＳＢホストとの間でダイレクト印刷のための通信接続を確立しているかどうかを判定する。この手順は、必要であれば、ステップＳ４０４の処理から一定時間（例えば、３０秒）以内で繰り返したり、確立されたことを表すシグナルを待機することで実現しても良い。こうしてステップＳ４０５で、ダイレクト印刷のための通信接続を確立していると判定するとステップＳ４０６に進み、アダプタ１２００は、ＩｒＤＡＩ／Ｆ１２０２を介して受信したファイルを、印刷のための画像ファイルとして扱い、ダイレクト印刷を行う（前述の実施例参照）。そして、このＩｒＤＡ転送処理を終了する。
【０１４８】
一方ステップＳ４０５で、ダイレクト印刷のための通信接続を確立していなければステップＳ４０７に進み、アダプタ１２００は、ＩｒＤＡＩ／Ｆ１２０２を介して受信したファイルを、アダプタ１２００のストレージ用のメモリ領域１２２１に保存する。ここで保存されたファイルは、ＵＳＢホストとのＰＴＰ接続によりＵＳＢホストから取り扱うことが可能である。このときのプロトコルスタックの例として、ＵＳＢホストがＰＴＰに対応したＰＣであった場合を例に図２９に示す。
【０１４９】
図２９は、本発明の実施の形態２に係るアダプタ１２００をＰＤプリンタ１０００に接続し、図１に示すように、アダプタ１２００の赤外線送受信部１２０２に対しカメラ付き携帯電話１１００の赤外線送受信部１１０１を向けた際のＰＤプリンタ１０００、アダプタ１２００、カメラ付き携帯電話１１００のそれぞれが構築するプロトコルスタックの概要を示す図である。
【０１５０】
尚、図２８で、アダプタ１２００がＩｒＤＡによるファイルを受信した際に、実際のファイルの受信処理が完了してからステップＳ４０１に進んでも良いが、この時点ではファイル転送を受け付ける旨の返答を行わず、ステップＳ４０７又はＳ４０６で、ファイルの保存先が確定した時点で返答を行うようにしても良い。その場合、ステップＳ４０３で、ＰＴＰ接続が確立されていない場合は、アダプタ１２００へのファイル転送は行わないため、ステップＳ４０３で処理を終了させる場合に、ＩｒＤＡＩ／Ｆ１２０２を介してファイルの受付を拒否する旨の返答を行う。これにより、実際には必要でないファイルのＩｒＤＡ転送を無駄に行うことを未然に防ぐことができる。
【０１５１】
以上、本実施の形態２に係るアダプタ１２００において、アダプタの接続先のＵＳＢホストによって、ＩｒＤＡのファイル転送を受けた時の動作を切り替える方法について述べた。
【０１５２】
ここで、例えばアダプタが電池を内蔵し、ＵＳＢホストに接続されていなくともＩｒＤＡによるファイルを受付可能である場合、受け取ったファイルの取り扱いをＵＳＢホストによって決定することができない。このような場合は、その受信したファイルの取り扱い方法として、単純に、ＵＳＢホストと接続されていない状態でＩｒＤＡによりファイルを受信した場合、アダプタ１２００のストレージ用の領域に保存するようにしても良い。
【０１５３】
また、受信したファイルのファイルパスが、特定のフォルダ（例：ForPrinting）の下位に位置しているように記述されている場合には、ダイレクト印刷予約用の画像ファイルとして扱っても良い。この場合、アダプタ１２００は、そのアダプタのＵＩの設定に基づいた印刷設定による印刷予約ジョブを生成する。
【０１５４】
以上説明したように本実施の形態によれば、離れたところにある画像形成装置（プリンタ）と画像供給源（カメラや携帯電話など）との間で、画像形成装置のCapabilityを反映したダイレクト印刷を行うことができる。
【０１５５】
また、アダプタの接続先を検知して、そのアダプタの動作を切り替える効果として、アダプタにＩｒＤＡ端子が搭載されていた場合には、ＩｒＤＡからのファイル受信時に、アダプタの接続先に応じた動作を行うことができる。
【図面の簡単な説明】
【０１５６】
【図１】本発明の実施例に係る印刷システムの概要を説明する図である。
【図２】本実施の形態に係るアダプタの外観図である。
【図３】本実施の形態に係るアダプタの制御に係る主要部の構成を説明するブロック図である。
【図４】本発明の実施例に係るフォトダイレクトプリンタ装置の概観斜視図である。
【図５】本実施例に係るＰＤプリンタの操作パネルの概観図である。
【図６】本実施例に係るＰＤプリンタの制御に係る主要部の構成を示すブロック図で
【図７】本実施例に係るカメラ付き携帯電話の外観図である。
【図８】本実施例に係るカメラ付き携帯電話の制御に係る主要部の構成を示すブロック図である。
【図９】本発明の実施例に係る、ＰＤプリンタとアダプタとＩｒＤＡ付き携帯電話との通信プロトコルスタックの構成を示す図である。
【図１０】本発明の実施例に係る、ＰＤプリンタとアダプタとＢｌｕｅＴｏｏｔｈ機能付き携帯電話との通信プロトコルスタックの構成を示す図である。
【図１１】本発明の実施例に係る、ＰＤプリンタとアダプタとＵＳＢホスト端子付きＰＣの通信プロトコルスタックの構成を示す図である。
【図１２】本発明の実施形態に係る、ＰＤプリンタとアダプタとＩＥＥＥ１３９４−１９９５端子付きＰＣの通信プロトコルスタックの構成を示す図である。
【図１３】本発明の実施形態に係る、ＰＤプリンタとアダプタと８０２．１１装置付きＰＤＡの通信プロトコルスタックの構成を示す図である。
【図１４】本実施例に係るアダプタとＰＤプリンタとをＵＳＢで接続してダイレクト印刷を行う場合の通信処理の流れを説明する図である。
【図１５】ＵＳＢによるダイレクト印刷時の初期化処理の流れを示す図で、図１４の初期化処理１４０１の詳細説明図である。
【図１６】ＵＳＢによるダイレクト印刷時のスクリプト転送処理を説明するフロー図である。
【図１７】ＵＳＢでのダイレクト印刷時におけるCapabilityを取得するためのスクリプトの一例を示す図である。
【図１８】ＵＳＢでのダイレクト印刷時におけるジョブ発行スクリプトを説明する図である。
【図１９】ＵＳＢでのダイレクト印刷時のステータス通知スクリプトの一例を示す図である。
【図２０】本実施例に係るアダプタと携帯電話との間での、ＩｒＤＡ時の初期化及びファイル転送の処理の流れを示す図である。
【図２１】本発明の実施例に係るＰＤプリンタがアダプタと接続された場合に、アダプタが実行する初期化処理を説明するフローチャートである。
【図２２】本実施例に係るアダプタがＰＤプリンタに接続されている状態で、アダプタが携帯電話からの画像データを受信してダイレクト印刷が行われる場合の動作を説明するフローチャートである。
【図２３】実施の形態１に係るアダプタの概観図である。
【図２４】本実施の形態１に係るアダプタの使用時の概略を説明する図である。
【図２５】本実施の形態１に係るアダプタをＵＳＢホストへ接続した際のアダプタにおける動作を示すフローチャートである。
【図２６】実施の形態１に係るアダプタとＰＤプリンタ及びＤＳＣとの間でのデータのやり取りを説明する図である。
【図２７】本実施の形態２に係るアダプタの使用時の概略を表した図である。
【図２８】本実施の形態２に係るアダプタをＵＳＢホストへ接続し、ＩｒＤＡ端子を介して画像ファイルを受信した際の動作を示すフローチャートである。
【図２９】本発明の実施の形態２に係るアダプタをＰＤプリンタに接続し、図１のように、アダプタの赤外線送受信部に対し携帯電話の赤外線送受信部を向けた際のＰＤプリンタ、アダプタ、携帯電話のそれぞれが構築するプロトコルスタックの概要を示す図である。
【図１】
0004667135.tif 000002
【図２】
0004667135.tif 000003
【図３】
0004667135.tif 000004
【図４】
0004667135.tif 000005
【図５】
0004667135.tif 000006
【図６】
0004667135.tif 000007
【図７】
0004667135.tif 000008
【図８】
0004667135.tif 000009
【図９】
0004667135.tif 000010
【図１０】
0004667135.tif 000011
【図１１】
0004667135.tif 000012
【図１２】
0004667135.tif 000013
【図１３】
0004667135.tif 000014
【図１４】
0004667135.tif 000015
【図１５】
0004667135.tif 000016
【図１６】
0004667135.tif 000017
【図１７】
0004667135.tif 000018
【図１８】
0004667135.tif 000019
【図１９】
0004667135.tif 000020
【図２０】
0004667135.tif 000021
【図２１】
0004667135.tif 000022
【図２２】
0004667135.tif 000023
【図２３】
0004667135.tif 000024
【図２４】
0004667135.tif 000025
【図２５】
0004667135.tif 000026
【図２６】
0004667135.tif 000027
【図２７】
0004667135.tif 000028
【図２８】
0004667135.tif 000029
【図２９】
0004667135.tif 000030