(57)【要約】【課題】  特別な付加機能を搭載しているプリンタであるにも拘わらず、それをサポートするカメラが普及しないため、その機能が使われないといった不合理が生じる。【解決手段】  カメラから上位層のコードで日付印刷を指定し、その下位層で、その日付印刷の文字の種類を特定する。これを受信したプリンタは、認知が必須の上位層のコードで日付印刷を特定し、その下位層のコードが解釈できるときは、その認知が任意の下位層のコードに応じた処理を実行し（１２０４，１２０５）、下位層のコードが認知できないときは、上位層のコードで特定された日付印刷を実行する（１２０２）。【選択図】    図１２
2005066987.tif 000002
【特許請求の範囲】
【請求項１】
画像供給デバイスから供給される画像データに基づいて記録媒体に画像を記録する記録装置であって、
前記画像供給デバイスから送信される層構造の印刷コマンドを受信する受信手段と、
前記印刷コマンドの上位層は認知が必須のコードであり、前記上位層により指定されている記録モードを判定する第１判定手段と、
前記第１判定手段により判定された前記記録モードの下で、認知が任意である前記上位層の下位層コードで指定されている付随記録モードを判定する第２判定手段と、
前記第２判定手段による前記付随記録モードを判定ができない場合、前記第１判定手段により判定された前記記録モードに応じた記録動作を実行し、前記第２判定手段により判定された前記付随記録モードでの記録が可能である場合は前記付随記録モードに従って記録を行うように制御する制御手段と、
を有することを特徴とする記録装置。
【請求項２】
前記記録モードは日付情報を記録するモードであり、前記付随記録モードは前記日付情報の記録文字を特定して記録するモードであることを特徴とする請求項１に記載の記録装置。
【請求項３】
前記記録モードは日付情報を記録するモードであり、前記付随記録モードは前記日付情報の記録位置を指定して記録するモードであることを特徴とする請求項１又は２に記載の記録装置。
【請求項４】
前記記録モードは、記録媒体に複数の画像を記録するモードであり、前記付随記録モードは前記複数の画像のそれぞれを縁なし、或は縁ありを指定して記録するモードであることを特徴とする請求項１に記載の記録装置。
【請求項５】
前記記録モードは、記録媒体へ複数の画像を記録するモードであり、前記付随記録モードは前記画像の縮小及びレイアウトを指定して記録するモードであることを特徴とする請求項１に記載の記録装置。
【請求項６】
前記記録モードは、指定された画像を切り取って記録媒体に記録するモードであり、前記付随記録モードは前記画像の切り取り形状を指定して記録するモードであることを特徴とする請求項１に記載の記録装置。
【請求項７】
画像供給デバイスと記録装置とを有し、前記画像供給デバイスから供給される画像データに基づいて前記記録装置により記録媒体に画像を記録する記録システムであって、
前記画像供給デバイスは上位層が認知が必須のコードを含み、下位層は認知が任意のコードを含む印刷コマンドを記録装置に送信し、
前記記録装置は、
前記画像供給デバイスから送信される層構造の印刷コマンドを受信する受信手段と、
前記印刷コマンドの前記上位層により指定されている記録モードを判定する第１判定手段と、
前記第１判定手段により判定された前記記録モードの下で前記下位層のコードで指定されている付随記録モードを判定する第２判定手段と、
前記第２判定手段による前記付随記録モードを判定ができない場合、前記第１判定手段により判定された前記記録モードに応じた記録動作を実行し、前記第２判定手段により判定された前記付随記録モードでの記録が可能である場合は前記付随記録モードに従って記録を行うように制御する制御手段と、
を有することを特徴とする記録システム。
【請求項８】
前記記録モードは日付情報を記録するモードであり、前記付随記録モードは前記日付情報の記録文字を特定して記録するモードであることを特徴とする請求項７に記載の記録システム。
【請求項９】
前記記録モードは日付情報を記録するモードであり、前記付随記録モードは前記日付情報の記録位置を指定して記録するモードであることを特徴とする請求項７又は８に記載の記録システム。
【請求項１０】
前記記録モードは、記録媒体に複数の画像を記録するモードであり、前記付随記録モードは前記複数の画像のそれぞれを縁なし、或は縁ありを指定して記録するモードであることを特徴とする請求項７に記載の記録システム。
【請求項１１】
前記記録モードは、記録媒体へ複数の画像を記録するモードであり、前記付随記録モードは前記画像の縮小及びレイアウトを指定して記録するモードであることを特徴とする請求項７に記載の記録システム。
【請求項１２】
前記記録モードは、指定された画像を切り取って記録媒体に記録するモードであり、前記付随記録モードは前記画像の切り取り形状を指定して記録するモードであることを特徴とする請求項７に記載の記録システム。
【請求項１３】
画像供給デバイスから供給される画像データに基づいて記録媒体に画像を記録する記録装置における制御方法であって、
前記画像供給デバイスから送信される層構造の印刷コマンドを受信する受信工程と、
前記印刷コマンドの上位層は認知が必須のコードであり、前記上位層により指定されている記録モードを判定する第１判定工程と、
前記第１判定工程で判定された前記記録モードの下で、認知が任意である前記上位層の下位層コードで指定されている付随記録モードを判定する第２判定工程と、
前記第２判定工程で前記付随記録モードを判定ができない場合、前記第１判定工程で判定された前記記録モードに応じた記録動作を実行し、前記第２判定工程で判定された前記付随記録モードでの記録が可能である場合は前記付随記録モードに従って記録を行うように制御する制御工程と、
を有することを特徴とする制御方法。
【請求項１４】
前記記録モードは日付情報を記録するモードであり、前記付随記録モードは前記日付情報の記録文字を特定して記録するモードであることを特徴とする請求項１３に記載の制御方法。
【請求項１５】
前記記録モードは日付情報を記録するモードであり、前記付随記録モードは前記日付情報の記録位置を指定して記録するモードであることを特徴とする請求項１３又は１４に記載の制御方法。
【請求項１６】
前記記録モードは、記録媒体に複数の画像を記録するモードであり、前記付随記録モードは前記複数の画像のそれぞれを縁なし、或は縁ありを指定して記録するモードであることを特徴とする請求項１３に記載の制御方法。
【請求項１７】
前記記録モードは、記録媒体へ複数の画像を記録するモードであり、前記付随記録モードは前記画像の縮小及びレイアウトを指定して記録するモードであることを特徴とする請求項１３に記載の制御方法。
【請求項１８】
前記記録モードは、指定された画像を切り取って記録媒体に記録するモードであり、前記付随記録モードは前記画像の切り取り形状を指定して記録するモードであることを特徴とする請求項１３に記載の制御方法。
【請求項１９】
請求項１３乃至１８のいずれか１項に記載の制御方法を実行することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像供給デバイスから供給される画像データを基に記録媒体に画像を記録する記録装置と記録システム及びその制御方法とそのプログラムに関するものである。
【背景技術】
【０００２】
近年、簡単な操作で画像を撮影し、その撮影した画像をデジタル画像データに変換できるデジタルカメラ（撮像装置）が広く使用されるようになってきている。このようなカメラで撮影した画像を印刷して写真として使用する場合には、通常、一旦、その撮影されたデジタル画像データを、デジタルカメラからＰＣ（コンピュータ）に取り込み、そのＰＣで画像処理を行った後、そのＰＣからカラープリンタに出力して印刷するのが一般的である。
【０００３】
これに対して最近は、ＰＣを介することなく、直接、デジタルカメラからカラープリンタにデジタル画像データを伝送して印刷できるカラープリントシステム（以降ダイレクト印刷と称する）や、デジタルカメラに搭載され、その撮像した画像を記憶しているメモリカードを、直接、カラープリンタに装着し、そのメモリカードに記憶されている、撮影された画像を印刷できる、所謂フォトダイレクト（ＰＤ）プリンタ等も開発されている(特許文献１参照)。
【０００４】
このようなダイレクト印刷は、元々、同一メーカのカメラとプリンタとの間でのみ実現できる機種限定の印刷機能であったが、近年、これら業界での標準化が謳われ、メーカの違いに依らず、異なるメーカのカメラとプリンタとを接続してダイレクト印刷が行える環境を整えようとしている。。
【０００５】
またダイレクト印刷で実現できる印刷機能も年々多岐に亘ってきている。このような印刷機能としては、単にデジタルカメラで撮影した１枚の画像を１枚の記録媒体に印刷する旧来の銀塩写真の様な印刷だけではなく、印刷時の付加情報として、撮影した日付を印刷する機能や、その印刷した画像のファイルネームを印刷する機能、また複数枚の画像を１枚の記録媒体に印刷する印刷機能（以降レイアウト印刷と称す）、更にはその撮影した画像の好みの部分だけを抜き出して印刷する機能などもユーザの好みに合わせて容易に行えるようになってきた。
【特許文献１】特開２００３−０６１０３４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
このようにメーカに依存しないダイレクト印刷を実現するために、画像データを供給するデバイスとそれを受け取って印刷する画像出力装置の少なくとも一方が、他方の有する機能（以降capabilityと称す）を取得することが考えられている。いま仮に、ユーザがカメラのインターフェースを操作することによりダイレクト印刷を実現するのであれば、そのカメラは事前に、画像を印刷させたいプリンタが有しているcapabilityを入手しておかねばならない。そのために、カメラとプリンタとの間でcapabilityをやり取りする為のコマンドを定義し、そのコマンドの通信仕様を定義し、その通信仕様に従ってコマンドの送受信を行う必要がある。これにより、そのコマンドを解釈して互いの機能を確認し、ユーザからの印刷指示に従った印刷命令（以降印刷ジョブと称す）を、そのプリンタのcapabilityに応じて適正に生成しなければならない。つまりカメラは、プリンタのcapabilityに合わせて複数の印刷ジョブを生成できるように設計されていなければならず、これはカメラにとっては非常に負荷が大きいものである。
【０００７】
同一メーカの機種間でのみのダイレクト印刷であれば、そのメーカが予め定めているルールに従えばよいため、上述した負荷を低減することは容易であり、製品の出荷前に接続テストを十分に行うことにより、市場に導入する前に、全機能が問題なく動作することを確認することも容易である。しかしながら、上述した標準化に従って不特定多数の機器との接続を保証するためには、細部に亘って規約を設定し、互いに、その規約を満足しているかどうかを確認しながら、市場で初めて出会った機器同士の接続の信頼性を保証しなければならない。このような状況下で、同じ機能を実現するにもより多くの負荷が生じ、更に高度な機能を実現させるには、より多くの負荷が生じる。
【０００８】
以下、日付印刷を例に、具体的な課題について説明する。
【０００９】
例えば、印刷すべき文字列を画像入力装置からＵＳ−ＡＳＣＩＩ＋ＩＳＯ−８８５９−１の文字セットで指定されていても、プリンタによっては数字だけしか印刷できないものも考えられる。その場合は、日付印刷ができないプリンタとなってしまう。このような場合、例えば画像入力装置から日付が「August 22nd, 2003」のように、アルファベットと数字が混在した形で指定された場合、そのアルファベット部分を数字と記号に変換して、「2003/08/22」のように数字のみで日付を表現できれば、日付印刷が可能なプリンタとしてcapabilityに応答できるようになる。
【００１０】
そこでカメラは、プリンタのcapabilityを問い合わせるコマンドを駆使して、そのプリンタが通常の日付印刷ができるか、アルファベット部分を数字に変換して印刷する日付印刷ができるかを問い合わせる必要がある。仮にアルファベット部分を数字に変換した日付印刷ができる場合には、どのような表記のアルファベットを数字に変換できるか、例えばどの言語の日付を数字に変換できるか、省略形の表記に変換できるかなど、様々なcapabilityの問い合わせをプリンタに対して行う。これに基づいて、受信したデータを解析して判断し、プリンタが実施できる機能と実施できない機能とを特定し、更にはその特定した結果に応じた適正な印刷ジョブを作成しなければならない。つまりプリンタが通常の日付印刷にのみ対応している場合、或はアルファベット部分を数字に変換する日付印刷にも対応している場合には、どの様な表記のアルファベットを数字に変換できるかなどの詳細情報に応じて、全ての組合せに応じた別々の印刷ジョブを生成してプリンタに送信しなければならない。
【００１１】
更なる詳細な説明はここでは省略するが、ここで記述していない別の付加機能がある場合は、カメラはそれら機能との組合せも考慮した印刷ジョブを生成できる機能を有していなければならない。そうでなければ、例えばアルファベット部分を数字に変換する日付印刷ができないプリンタにアルファベット部分を数字に変換する日付印刷が行える事を前提としたコマンドを送ってしまうと、そのプリンタは、その送信された印刷ジョブを理解できず、カメラ側のユーザにとって不本意な印刷結果が得られることになる。
【００１２】
アルファベット部分を数字に変換する日付印刷では、そのような印刷を行うための多くの負荷はプリンタが負っている。従って、例えば同一メーカのカメラとプリンタが接続されてダイレクト印刷が行われる従来の形態では、多くの場合カメラはユーザが印刷選択した画像を特定する情報と、通常の日付印刷をしたいのかアルファベット部分を数字に変換する日付印刷をしたいのかなどのユーザが選択した付加機能情報をプリンタに渡せば事足りる場合が多い。しかし前記の通り業界標準化仕様では、不特定のカメラとプリンタが市場で初めて接続されてダイレクト印刷を行うことになるので、従来以上に多くの情報の送受信が必要となり、通信負荷の増大、プログラムサイズの増大を招き、カメラはこれらの複雑な機能をサポートできなくなる。これにより、アルファベット部分を数字に変換する日付印刷のような付加機能を搭載しているプリンタを有しているにも関わらず、それをサポートするカメラが普及しないため、その機能が使われないといった不合理が生じることが懸念される。
【００１３】
本発明は上記問題点に鑑みてなされたもので、画像供給装置に記録装置の記録機能に応じた記録ジョブの作成機能を強いることなく、記録装置の機能に応じた記録を行うことができる記録装置と記録システム及びその制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
上記目的を達成するために本発明の記録装置は以下のような構成を備える。即ち、
画像供給デバイスから供給される画像データに基づいて記録媒体に画像を記録する記録装置であって、
前記画像供給デバイスから送信される層構造の印刷コマンドを受信する受信手段と、
前記印刷コマンドの上位層は認知が必須のコードであり、前記上位層により指定されている記録モードを判定する第１判定手段と、
前記第１判定手段により判定された前記記録モードの下で、認知が任意である前記上位層の下位層コードで指定されている付随記録モードを判定する第２判定手段と、
前記第２判定手段による前記付随記録モードを判定ができない場合、前記第１判定手段により判定された前記記録モードに応じた記録動作を実行し、前記第２判定手段により判定された前記付随記録モードでの記録が可能である場合は前記付随記録モードに従って記録を行うように制御する制御手段とを有することを特徴とする。
【００１５】
上記目的を達成するために本発明の記録システムは以下のような構成を備える。即ち、  画像供給デバイスと記録装置とを有し、前記画像供給デバイスから供給される画像データに基づいて前記記録装置により記録媒体に画像を記録する記録システムであって、
前記画像供給デバイスは上位層が認知が必須のコードを含み、下位層は認知が任意のコードを含む印刷コマンドを記録装置に送信し、
前記記録装置は、
前記画像供給デバイスから送信される層構造の印刷コマンドを受信する受信手段と、
前記印刷コマンドの前記上位層により指定されている記録モードを判定する第１判定手段と、
前記第１判定手段により判定された前記記録モードの下で前記下位層のコードで指定されている付随記録モードを判定する第２判定手段と、
前記第２判定手段による前記付随記録モードを判定ができない場合、前記第１判定手段により判定された前記記録モードに応じた記録動作を実行し、前記第２判定手段により判定された前記付随記録モードでの記録が可能である場合は前記付随記録モードに従って記録を行うように制御する制御手段とを有することを特徴とする。
【００１６】
上記目的を達成するために本発明の記録装置の制御方法は以下のような工程を備える。即ち、
画像供給デバイスから供給される画像データに基づいて記録媒体に画像を記録する記録装置における制御方法であって、
前記画像供給デバイスから送信される層構造の印刷コマンドを受信する受信工程と、
前記印刷コマンドの上位層は認知が必須のコードであり、前記上位層により指定されている記録モードを判定する第１判定工程と、
前記第１判定工程で判定された前記記録モードの下で、認知が任意である前記上位層の下位層コードで指定されている付随記録モードを判定する第２判定工程と、
前記第２判定工程で前記付随記録モードを判定ができない場合、前記第１判定工程で判定された前記記録モードに応じた記録動作を実行し、前記第２判定工程で判定された前記付随記録モードでの記録が可能である場合は前記付随記録モードに従って記録を行うように制御する制御工程とを有することを特徴とする。
【発明の効果】
【００１７】
本発明によれば、日付等の付随情報の記録に関して、画像供給デバイスが行う設定には自由度を持たせつつ、記録装置にとっては、多くの状況の全てに必ずしも対応できなくてもよいように設計できるし、同時に、対応できない設定が受信されてもエラーを回避することができる。
【発明を実施するための最良の形態】
【００１８】
以下、添付図面を参照して本発明の好適な実施例を詳細に説明する。
【実施例】
【００１９】
＜プリンタの概要説明＞
図１は、本発明の実施例に係るフォトダイレクトプリンタ装置（以下、ＰＤプリンタ）１０００の概観斜視図である。このＰＤプリンタ１０００は、ホストコンピュータ（ＰＣ）からデータを受信して印刷する通常のＰＣプリンタとしての機能と、メモリカードなどの記憶媒体に記憶されている画像データを直接読取って印刷したり、或いはデジタルカメラやＰＤＡなどからの画像データを受信して印刷する機能を備えている。
【００２０】
図１において、本実施例に係るＰＤプリンタ１０００の外殻をなす本体は、下ケース１００１、上ケース１００２、アクセスカバー１００３及び排出トレイ１００４の外装部材を有している。また、下ケース１００１は、ＰＤプリンタ１０００の略下半部を、上ケース１００２は本体の略上半部をそれぞれ形成しており、両ケースの組合せによって内部に後述の各機構を収納する収納空間を有する中空体構造をなし、その上面部及び前面部にはそれぞれ開口部がされている。さらに、排出トレイ１００４は、その一端部が下ケース１００１に回転自在に保持され、その回転によって下ケース１００１の前面部に形成される開口部を開閉させ得るようになっている。このため、記録動作を実行させる際には、排出トレイ１００４を前面側へと回転させて開口部を開成させることにより、ここから記録されたシート（普通紙、専用紙、樹脂シート等を含む。以下単にシートとする）が排出可能となると共に、排出されたシートを順次積載し得るようになっている。また排紙トレイ１００４には、２枚の補助トレイ１００４ａ，１００４ｂが収納されており、必要に応じて各トレイを手前に引き出すことにより、シートの支持面積を３段階に拡大、縮小させ得るようになっている。
【００２１】
アクセスカバー１００３は、その一端部が上ケース１００２に回転自在に保持され、上面に形成される開口部を開閉し得るようになっており、このアクセスカバー１００３を開くことによって本体内部に収納されている記録ヘッドカートリッジ（不図示）或いはインクタンク（不図示）等の交換が可能となる。尚、ここでは特に図示しないが、アクセスカバー１００３を開閉させると、その裏面に形成された突起がカバー開閉レバーを回転させるようになっており、そのレバーの回転位置をマイクロスイッチなどで検出することにより、アクセスカバー１００３の開閉状態を検出し得るようになっている。
【００２２】
また、上ケース１００２の上面には、電源キー１００５が設けられている。また、上ケース１００２の右側には、液晶表示部１００６や各種キースイッチ等を備える操作パネル１０１０が設けられている。この操作パネル１０１０の構造は、図２を参照して詳しく後述する。１００７は自動給送部で、シートを装置本体内へと自動的に給送する。１００８は紙間選択レバーで、プリントヘッドとシートとの間隔を調整するためのレバーである。１００９はカードスロットで、ここにメモリカードを装着可能なアダプタが挿入され、このアダプタを介してメモリカードに記憶されている画像データを直接取り込んで印刷することができる。このメモリカード（ＰＣ）としては、例えばコンパクトフラッシュ（登録商標）メモリ、スマートメディア、メモリスティック等がある。１０１１はビューワ（液晶表示部）で、このＰＤプリンタ１０００の本体に着脱可能であり、ＰＣカードに記憶されている画像の中からプリントしたい画像を検索する場合などに、１コマ毎の画像やインデックス画像などを表示するのに使用される。１０１２は後述するデジタルカメラを接続するためのＵＳＢ端子である。また、このＰＤ装置１０００の後面には、パーソナルコンピュータ（ＰＣ）を接続するためのＵＳＢコネクタが設けられている。
【００２３】
＜プリンタ操作部の概要説明＞
図２は本実施例に係るＰＤプリンタ１０００の操作パネル１０１０の概観図である。
【００２４】
図において、液晶表示部１００６には、その左右に印刷されている項目に関するデータを各種設定するためのメニュー項目が表示される。ここに表示される項目としては、例えば、複数ある写真画像ファイルの内、印刷したい写真画像の先頭番号、指定コマ番号（開始コマ指定／印刷コマ指定）、印刷を終了したい最後の写真番号（終了）、印刷部数（部数）、印刷に使用するシートの種類（用紙種類）、１枚のシートに印刷する写真の枚数設定（レイアウト）、印刷の品位の指定（品位）、撮影した日付を印刷するかどうかの指定（日付印刷）、写真を補正して印刷するかどうかの指定（画像補正）、印刷に必要なシートの枚数表示（用紙枚数）等がある。これら各項目は、カーソルキー２００１を用いて選択、或いは指定される。２００２はモードキーで、このキーを押下する毎に、印刷の種類（インデックス印刷、全コマ印刷、１コマ印刷、指定コマ印刷等）を切り替えることができ、これに応じてＬＥＤ２００３の対応するＬＥＤが点灯される。２００４はメンテナンスキーで、プリントヘッドのクリーニング等、プリンタのメンテナンスを行わせるためのキーである。２００５は印刷開始キーで、印刷の開始を指示する時、或いはメンテナンスの設定を確立する際に押下される。２００６は印刷中止キーで、印刷を中止させる時や、メンテナンスの中止を指示する際に押下される。
【００２５】
＜プリンタの電気仕様概要＞
次に図３を参照して、本実施例に係るＰＤプリンタ１０００の制御に係る主要部の構成を説明する。尚、この図３において、前述の図面と共通する部分は同じ記号を付与して、それらの説明を省略する。
【００２６】
図３において、３０００は制御部（制御基板）を示している。３００１はＡＳＩＣ（専用カスタムＬＳＩ）を示している。３００２はＤＳＰ（デジタル信号処理プロセッサ）で、内部にＣＰＵを有し、後述する各種制御処理及び、輝度信号（ＲＧＢ）から濃度信号（ＣＭＹＫ）への変換、スケーリング、ガンマ変換、誤差拡散等の画像処理等を担当している。３００３はメモリで、ＤＳＰ３００２のＣＰＵの制御プログラムを記憶するプログラムメモリ３００３ａ、及び実行時のプログラムを記憶するＲＡＭエリア、画像データなどを記憶するワークメモリとして機能するメモリエリアを有している。３００４はプリンタエンジンで、ここでは、複数色のカラーインクを用いてカラー画像を印刷するインクジェットプリンタのプリンタエンジンが搭載されている。３００５はデジタルカメラ（ＤＳＣ）３０１２を接続するためのポートとしてのＵＳＢコネクタである。３００６はビューワ１０１１を接続するためのコネクタである。３００８はＵＳＢハブ(USBHUB)で、このＰＤプリンタ１０００がＰＣ３０１０からの画像データに基づいて印刷を行う際には、ＰＣ３０１０からのデータをそのままスルーし、ＵＳＢ３０２１を介してプリンタエンジン３００４に出力する。これにより、接続されているＰＣ３０１０は、プリンタエンジン３００４と直接、データや信号のやり取りを行って印刷を実行することができる（一般的なＰＣプリンタとして機能する）。３００９は電源コネクタで、電源３０１９により、商用ＡＣから変換された直流電圧を入力している。ＰＣ３０１０は一般的なパーソナルコンピュータ、３０１１は前述したメモリカード（ＰＣカード）、３０１２はデジタルカメラ（ＤＳＣ：DigitalStillCamera)である。
【００２７】
尚、この制御部３０００とプリンタエンジン３００４との間の信号のやり取りは、前述したＵＳＢ３０２１又はＩＥＥＥ１２８４バス３０２２を介して行われる。
【００２８】
＜デジタルカメラの概要説明＞
図４は、本実施例に係るＤＳＣ（デジタルカメラ）３０１２の構成を示すブロック図である。
【００２９】
同図において、３１００はＤＳＣ３０１２全体の制御を司るＣＰＵであり、３１０１はＣＰＵ３１００による処理手順を記憶しているＲＯＭである。３１０２はＣＰＵ３１００のワークエリアとして使用されるＲＡＭであり、３１０３は各種操作を行うスイッチ群で、シャッター、モード切替スイッチ、選択スイッチやカーソルキー等が含まれている。２７００は液晶表示部であり、現時点で撮影している映像や、撮像されてメモリカードに記憶されている画像を表示したり、各種設定を行う際のメニューを表示するために使用される。３１０５は光学ユニットであり、主としてレンズ及びその駆動系で構成される。３１０６はＣＣＤ素子であり、３１０７はＣＰＵ３１００の制御下において光学ユニット３１０５を駆動制御するドライバである。３１０８は記憶媒体３１０９（コンパクトフラッシュ(登録商標)メモリカード、スマートメディア等）を接続するためのコネクタであり、３１１０はＰＣ或いは実施例におけるＰＤプリンタ１０００と接続するためのＵＳＢインターフェース（ＵＳＢのスレーブ側）である。
【００３０】
＜カメラ／プリンタの接続概要説明＞
図５は、本実施例に係るＰＤプリンタ１０００とＤＳＣ３０１２との接続を説明する図で、前述の図面と共通している部分は同じ記号で示し、その説明を省略している。
【００３１】
図において、ケーブル５０００は、ＰＤプリンタ１０００のコネクタ１０１２と接続されるコネクタ５００１と、デジタルカメラ３０１２の接続用コネクタ５００３と接続するためのコネクタ５００２とを備えており、また、デジタルカメラ３０１２は、内部のメモリに保存している画像データを、接続用コネクタ５００３を介して出力可能に構成されている。なお、デジタルカメラ３０１２の構成としては、内部に記憶手段としてのメモリを備えるものや、取外し可能なメモリを装着するためのスロットを備えたものなど、種々の構成を採用することができる。この図５に示すようにして、ケーブル５０００を介してＰＤプリンタ１０００とデジタルカメラ３０１２とを接続することにより、デジタルカメラ３０１２からの画像データを直接ＰＤプリンタ１０００で印刷することができる。
【００３２】
以上の構成に基づくＤＳＣ３０１２とＰＤプリンタ１０００とを含む印刷システムにおける動作概要を以下に説明する。尚、この実施例に係る印刷システムでは、ＤＳＣ３０１２とＰＤプリンタ１０００とはそれぞれ本実施例に係る手順ＤＰＳ（Direct Print System）の仕様に従った動作が可能であるものとする。
【００３３】
＜ダイレクトプリント概要説明＞
図６は、本実施例に係る印刷システムにおいて、ＤＳＣ３０１２からＰＤプリンタ１０００に対してプリント要求を発行して印刷を行う場合の大まかな信号フローを説明する図である。
【００３４】
この処理手順は、ＰＤプリンタ１０００とＤＳＣ３０１２とがＵＳＢケーブル５０００を介して接続された後、互いにＤＰＳ仕様に準拠していることを確認した後に実行される。まずＤＳＣ３０１２は「ConfigurePrintService」をＰＤプリンタ１０００に送信して、ＰＤプリンタ１０００の状態をチェックする（６００）。これに対してＰＤプリンタ１０００から、その時点でのＰＤプリンタ１０００の状態（ここでは「アイドル」状態）が通知される（６０１）。ここでは「アイドル」状態であるため、ＤＳＣ３０１２はＰＤプリンタ１０００のcapabilityを問合せ（６０２）、そのcapabilityに応じたプリント開始要求（StartJob）を発行する（６０３）。尚、このプリント開始要求は、６０１で、後述するＰＤプリンタ１０００からのステータス情報の中の「newJobOK」が「True（真）」になっていることを条件に、ＤＳＣ３０１２からＰＤプリンタ１０００に発行される。
【００３５】
このプリント開始要求に対してＰＤプリンタ１０００は、印刷が指示された画像データのファイルＩＤに基づいてファイル情報をＤＳＣ３０１２に要求する（GetFileInfo）（６０４）。これに応答してＤＳＣ３０１２から、そのファイル情報（FileInfo）が送信される。このファイル情報にはファイル容量等の情報が含まれる。そしてＰＤプリンタ１０００がそのファイル情報を受信して処理可能であると判断すると、そのファイル情報をＤＳＣ３０１２に要求する（GetFile）（６０５）。これによりその要求されたファイルの画像データ（ImageFile）がＤＳＣ３０１２からＰＤプリンタ１０００に送られる。これによりＰＤプリンタ１０００がプリント処理を開始すると、６０６で「印刷中（Printing）」を示すステータス情報が、ＰＤプリンタ１０００からＤＳＣ３０１２に「NotifyDeviceStatus」によって送られる。そして１頁のプリント処理が終了すると、次のページの処理開始時にＰＤプリンタ１０００から「NotifyJobStatus」６０７により、それが通知される。そして１頁だけの印刷であれば、そのプリント要求した１頁の印刷が終了すると、次に「NotifyDviceStatus」６０８によりＰＤプリンタ１０００が「アイドル」状態になったことが通知される（NotifyDeviceStatus(Idle)）。
【００３６】
尚、例えば、１頁に複数（Ｎ）の画像をレイアウトして印刷するＮ−ｕｐ印刷の場合には、Ｎ枚の画像を印刷する度に、「NotifyJobStatus」６０７がＰＤプリンタ１０００からＤＳＣ３０１２に送られることになる。本実施例での「NotifyJobStatus」及び「NotifyDeviceStatus」の発行タイミングと画像データの取得の順番は一例であり、製品の実装によっては様々なケースが起こりうる。
【００３７】
尚、このプリント処理において、ＤＳＣ３０１２からのプリント開始要求（StartJob）に、印刷すべき画像データのファイルＩＤを一括して含めて送信して印刷する場合と、一般の写真現像で使用されるＤＰＯＦファイルのファイルＩＤのみをＤＳＣ３０１２からのプリント開始要求（StartJob）に含めてＰＤプリンタ１０００に送信し、ＰＤプリンタ１０００がそのＤＰＯＦファイルを解釈し、必要な画像データのファイルＩＤを取得してプリントする場合も含まれる。
【００３８】
＜印刷Jobの概要説明＞
図７は、ＤＳＣ３０１２からＰＤプリンタ１０００に対して発行されるプリント開始要求の具体例を説明する図である。
【００３９】
図において、７２０は、この印刷ジョブのコンフィグレーション（jobConfig）を示し、７２１はプリント情報（printInfo）を示している。
【００４０】
まずコンフィグレーション７２０について説明する。７００は印刷する画質（quality）を示し、これには例えば「標準」、「高画質」などがある。７０１は用紙サイズ（paperSize）、７０２は用紙タイプ（papertype）で、例えば「普通紙」、「写真用紙」、「インクジェット専用紙」等がある。７０３は印刷する画像ファイルのタイプ（fileType）を指定するもので、例えばＤＰＯＦを使用する場合は、これで指定される。７０４は日付印刷の有無（datePrint）、７０５はファイル名の印刷の有無（fileNamePrint）、７０６は画像最適化を行うかどうか（imageOptimize）、７０７は固定サイズの印刷（fixedSize）、７０８は画像の指定された範囲の印刷を行うかどうかの有無をそれぞれ指定する（cropping）。またプリント情報７２１は、ファイルＩＤ（fieldID）７０９と、日付情報（date）７１０を含んでいる。
【００４１】
図８は、前述のJobStatusとDeviceStatusに含まれる情報を説明する図である。ここで図８（Ａ）のJobStatus、及び図８（Ｂ）のDeviceStatusは、ＰＤプリンタ１０００からＤＳＣ３０１２に送信される。また、ＤＳＣ３０１２は任意のタイミングで、それらの情報をＰＤプリンタ１０００へ送信要求することができる。
【００４２】
図８（Ａ）において、「prtPID」、「ImagePath」及び「copyID」はＤＰＯＦファイルの印刷が指示された場合に有効になる。ここで「prtPID」は、ＤＰＯＦファイルで指定された印刷セクションの識別情報（ＩＤ）、「ImagePath」はＤＰＯＦファイルで指定された画像ファイルを特定するためのパスの情報、そして「copyID」は複数枚の印刷指定時に、実際に何枚目を印刷しているかを意味している。ＤＰＯＦファイルによる印刷の場合は、ＤＳＣ３０１２は、プリント開始要求（StartJob）中にＤＰＯＦファイルの「fileID」を記載してＰＤプリンタ１０００に送信する。これによりＰＤプリンタ１０００は、そのＤＰＯＦファイルの印刷を開始できる。そしてＰＤプリンタ１０００は、そのＤＰＯＦファイルの「fileID」を基にＤＰＯＦファイルを取得し、「GetFileID」を実行して、ＤＰＯＦファイル中に指定された画像ファイルの「fileID」を特定し、その画像ファイルをＤＳＣ３０１２に要求して、その画像データを取得する。こうしてＤＰＯＦファイルで指定された画像を印刷することができる。そして、ＤＰＯＦファイルによる印刷実行中に、印刷の進行状況を示す上記「prtPID」、「ImagePath」及び「copyID」が、ＰＤプリンタ１０００から前述の「NotifyJobStatus」によりＤＳＣ３０１２に通知される。
【００４３】
尚、このＤＰＯＦファイルの印刷中に何らかの理由で印刷が中断された後、印刷が再開された時は、印刷が中止されたページの先頭から、その印刷処理が再開される。
【００４４】
「progress」は、印刷予定枚数の内、現在何枚目を印刷しているか（Ｎ／Ｔ）を示す。ここでＮは現在の印刷ページ、Ｔはトータルの印刷枚数を示す。「imagePrinted」は印刷済みの画像枚数を示す。
【００４５】
次に図８（Ｂ）に示すDeviceStatusについて説明する。
【００４６】
「dpsPrintServiceStatus」は、ＰＤプリンタ１０００の状態を意味し、ＤＳＣ３０１２に通知される。この状態には、アイドル、プリント、ポーズ状態が含まれる。「jobEndReason」は、プリント処理の終了状況を意味し、最終ページの印刷が完了するとＤＳＣ３０１２に通知される。「errorStatus」はそのエラーの状態を意味し、エラーが発生した場合に通知される。「errorReason」は、そのエラーの発生理由を意味し、「errorStatus」と共に通知される。「disconnectEnable」は、ＵＳＢケーブル５０００が外されても印刷可能であることを意味し、ＰＤプリンタ１０００からＤＳＣ３０１２に通知される。「CapabilityChanged」は、ＰＤプリンタ１０００におけるcapabilityが変更されたことを意味し、ＤＳＣ３０１２に通知される。「newJobOK」は、ＰＤプリンタ１０００が印刷要求を受付け可能であることを意味し、ＤＳＣ３０１２に通知される。
【００４７】
＜GetCapabilityの説明＞
図９は、ＤＳＣ３０１２からＰＤプリンタ１０００に対して発行されるＰＤプリンタ１０００のcapability取得方法の具体例を説明する図である。
【００４８】
図９（Ａ）は、ＤＳＣ３０１２からＰＤプリンタ１０００に対して、ＰＤプリンタ１０００のcapabilityを要求するコマンドを説明する図である。
【００４９】
図９（Ａ）の例では、＜getCapability＞，＜/getCapability＞によりcapabilityの取得が要求され、＜capability＞，＜/capability＞で囲まれる＜layouts/＞９０１により、ＰＤプリンタ１０００がcapabilityとして、レイアウト印刷機能を有しているかどうかが問い合わせられている。
【００５０】
図９（Ｂ）は、図９（Ａ）のcapability要求に応じて、ＰＤプリンタ１０００からＤＳＣ３０１２に対してcapabilityが返送される例を示す図である。
【００５１】
図中、＜capability＞９０２，＜/capability＞９０６で囲まれるcapability情報の中で、＜layouts＞９０３，＜layouts/＞９０５で囲まれるレイアウト情報９０４により、ＰＤプリンタ１０００が有しているレイアウト機能が通知されている。
【００５２】
この図９（Ｂ）から明らかなように本実施例では、capabilityは８桁のコード（「57000000」、「57010000」、「57020000」）でＰＤプリンタ１０００からＤＳＣ３０１２に送信されている。この実施例では、レイアウトのcapabilityは、上位２桁が「５７」で始まるコードと規定されており、次の２桁が１枚のシートに何枚の画像を印刷できるかを示すレイアウト情報を示している。即ち、上位４桁が「５７０１」は、１枚のシートに１つの画像を印刷するレイアウト印刷が可能であることを示し、「５７０２」は１枚のシートに２つの画像を印刷するレイアウト印刷機能を有することを示している。尚、上位４桁が「５７００」の場合は、ＰＤプリンタ１０００のデフォルトレイアウトでレイアウト印刷するモードを示している。つまり図９（Ｂ）の例では、ＰＤプリンタ１０００のレイアウト印刷のcapabilityは、１枚のシートに一つの画像のレイアウト印刷、１枚のシートに二つの画像のレイアウト印刷、及びＰＤプリンタ１０００のデフォルトレイアウト印刷の３通りのレイアウト印刷機能を有していることを示していることになる。
【００５３】
尚、図９では、レイアウト印刷に関してのcapabilityの送受信の仕方について説明したが、このcapabilityにより確認できる機能は、このレイアウト印刷に限るものでないことはもちろんである。例えば、ＰＤプリンタ１０００が印刷可能なシートの種類についてのcapability、プリンタ１０００が印刷可能なシートサイズのcapability、プリンタ１０００が対応できる画像データのファイルタイプについてのcapability、プリンタ１０００が日付やファイル名を画像に付加して印刷できるか否かのcapability、プリンタ１０００が対応できる印刷モードについてのcapability、プリンタ１０００が対応できる画像の自動補正機能の有無についてのcapability等様々なcapabilityがあるが、ここではこれらcapabilityの詳細な通信仕様に関しての説明は割愛する。
【００５４】
図１０は、本実施例に係るダイレクト印刷システムで使用される、ＰＤプリンタ１０００からＤＳＣ３０１２へのステータス等の通知をするためのコードの構成例を説明する図である。ここでは前述したように、各コードは８桁で、各桁の数値は１６進コードで構成されている。
【００５５】
ここで上位４桁「ＸＸＸＸ」はメジャーコード、下位４桁「ＹＹＹＹ」はマイナーコードである。このコードを、図９（Ｂ）のレイアウト情報９０４に当て嵌めると、上位４桁のメジャーコードでレイアウト印刷であり、かつ１枚のシートに幾つの画像を印刷するレイアウト印刷であるのかが示される。またマイナーコードにより、メジャーコードで示したcapabilityを更に詳細に規定する。
【００５６】
例えば、１枚のシートに４枚の画像を印刷するレイアウト印刷の場合、前述のようにメジャーコードは「５７０４」となり、この時下位の４桁で、これら４枚の画像が印刷される配置を指定することができる。本実施例では「５７０４」に続くマイナーコードとして「００００」は４枚の画像をフチ有りで並べて印刷する印刷レイアウトを指定している。また「０００１」は、４枚の画像をフチ無しで並べて印刷する印刷レイアウトを指定している。
【００５７】
本実施例では、ＰＤプリンタ１０００は、８桁のcapabilityを示すコードをＤＳＣ３０１２に送ることにより、ＰＤプリンタ１０００が備えている印刷機能capabilityをＤＳＣ３０１２に伝えている。ここで、この８桁のコードは、前述したように上位４桁のメジャーコードと下位４桁のマイナーコードとで構成されており、メジャーコードは一般的なカメラが必ず認識できるコード、マイナーコードはカメラによっては読み飛ばされるか、認識されない可能性のあるコードというように、認識レベルが異なる２つのコードが組み合わされて構築されている。つまり、ＰＤプリンタ１０００は４つの画像のレイアウト印刷が行え、且つ４枚の画像をフチ有りで配置する印刷レイアウトの印刷もできるし（「５７０４００００」）、又は４枚の画像をフチ無しで配置する印刷するレイアウト印刷もできる（「５７０４０００１」）capabilityを有するプリンタであることを通知できる。
【００５８】
ここでメジャーコードだけを理解できるＤＳＣ３０１２の場合には、そのカメラＵＩ表示により「４枚のレイアウトが選択できる」表示になる。しかしマイナーコードまで利用できれば、４枚の画像の並べ方まで選択できるというように、よりバラエティーに富んだ印刷レイアウト機能がある事を表示することができる。
【００５９】
以上のように、複数のレベルの情報を一つのコードで伝達できるため、１つのコードで多彩な条件のレイアウト印刷に対応することができる。
【００６０】
本実施の形態では、レイアウト印刷と、そのレイアウト印刷の一印刷形態であるフチ有り印刷とフチ無し印刷とが一つのコードで表現されているが、もし別のコードであった場合の弊害について以下簡単に説明する。
【００６１】
もし、これら２つの機能が全く別コードで伝達される場合は、以下のように制御されると思われる。即ち、まず図９（Ａ）で説明したように、＜getcapability＞の＜layouts＞でＰＤプリンタ１０００のレイアウトcapabilityが要求される。次に、例えばフチ有り・フチ無し印刷のcapabilityを取得するタグとして、例えば＜Border＞など別のタグが定義され、フチ有り・フチ無し印刷の機能のcapabilityを取得することになる。しかし前述したように、フチ有り・フチ無し印刷の機能はレイアウト機能の従属性が強い機能であるため、独立して＜Border＞のcapabilityを返信することができない。よって、仮にＰＤプリンタ１０００が２枚レイアウトから６４枚レイアウトまでのレイアウト印刷に対応していた場合には、２枚レイアウトの＜Border＞のcapabilityを問い合わせ、次いで３枚レイアウトの＜Border＞のcapabilityを問い合わせ、と順次レイアウトを指定した上で、フチ有り・フチ無のcapabilityを問い合わせねばならなくなる。これではcapability情報の送受信に多大な負荷がかかり、ユーザがダイレクト印刷を行いたいと思ってから実際にダイレクト印刷機能を使えるようになるまでに長い待ち時間が生じてしまう恐れがある。
【００６２】
またＤＳＣ３０１２とＰＤプリンタ１０００との間で煩雑なやり取りが増えるため通信負荷も大きくなる。更には、このような煩雑な通信を行うために、その通信結果を判断し、その判断に従った動作をさせるためのプログラムが必要になるため、プログラムサイズが肥大化する。これは開発期間の遅延とコストの増大を招くことになる。またＰＣを介して印刷とは異なり、ＣＰＵの処理能力やメモリ容量に制限の大きいダイレクト印刷の場合には上記は極めて大きな問題となる場合がある。
【００６３】
しかし本実施例によれば、前述したように＜layouts＞capabilityのマイナーコードを使用してフチ有り・フチ無し印刷機能を設定できるため、通信負荷や実装負荷の増大、ユーザの待ち時間の増大などを大幅に軽減できる。
【００６４】
またＰＤプリンタ１０００においても、ＤＳＣ３０１２がフチ有り・フチ無し印刷機能の有無の情報を欲しているか否かに関わらず、常に同じcapabilityを返すだけで済むため、ＰＤプリンタ１０００における実装負荷も低減できるという効果も期待できる。
【００６５】
＜画像の特定方法＞
次に画像を印刷する場合における画像の特定の仕方について説明する。
【００６６】
印刷条件は図７を参照して前述した通りStartJob（印刷ジョブを指定するコマンド）を用いてＤＳＣ３０１２からＰＤプリンタ１０００に情報が送られる。ここで印刷対象の画像の指定は＜fileID＞（図７の７０９）のタグで指定される。即ち、このタグに印刷画像のハンドル番号が列挙されて印刷画像が特定される。図７の例は、複数枚の画像を印刷するレイアウト印刷の指定ではなく、１枚の画像の印刷例を示しているので、このハンドル番号は１つしか記載されていない（ハンドル番号「０００００００１」）。しかし２枚画像の印刷の場合であれば、８桁で表現される該ハンドル番号が２つ並列に送られることはもちろんである。こうして印刷される画像のハンドル番号がＰＤプリンタ１０００に送信された後、ＰＤプリンタ１０００は印刷に先立って、このハンドル番号で指定された画像ファイルをＤＳＣ３０１２に要求する。この時、画像ファイルを取得する前に、先ず。ＰＤプリンタ１０００は画像の情報を取得して画像ファイルを受信する準備を行う。
【００６７】
図１１（Ａ），（Ｂ）は、ＰＤプリンタ１０００とＤＳＣ３０１２との間で実行される画像データのやり取りのためのコマンド例を示す図である。
【００６８】
図１１（Ａ）は、ＰＤプリンタ１０００からＤＳＣ３０１２に対してハンドル名が「０００００００１」の画像データを要求する場合のコマンド例を示している。
【００６９】
図１１（Ｂ）は、この要求に応えてＤＳＣ３０１２からＰＤプリンタ１０００に対して画像データを送信する例を示している。ここでは、ＤＳＣ３０１２からＰＤプリンタ１０００に対して、画像ファイルのタイプ＜fileType＞と、画像ファイルのサイズ＜fileSize＞（バイト数）の情報が送信されている。
【００７０】
更に具体的には、例えば、このコマンドがＵＳＢのＰＴＰ上で実現される場合、以下の通り処理される。即ち、ＵＳＢのホストであるＰＤプリンタ１０００は、ＵＳＢのスレーブであるＤＳＣ３０１２から印刷指定されている画像のハンドル番号の「ObjectInfoDataset」を受信する。ここで、この「ObjectInfoDataset」は、複数のデータフィールドからなり、例えばファイルタイプ情報の取得であれば、このデータフィールドの中の「ObjectFormatCode」の内容からファイルのタイプを特定できる仕組みとなっている。尚、ＰＴＰでは、「ObjectFormatCode」は４桁の１６進コードで記載されているが、「ObjectFormatCode」の表で該コードが具体的に何のファイルタイプなのか（例えば、ＪＰＥＧ、ＴＩＦＦ、ＧＩＦなど）が別途規定されており、これによりファイルタイプが特定できるようになっている。また、この印刷が指定されている画像が格納されているフォルダも、「ObjectInfoDataset」のデータフィールドの情報から特定することができる。
【００７１】
尚、ここでは、トランスポート層以下がＵＳＢ−ＰＴＰである場合を一例にして、ファイルの情報の入手方法の概要を説明したが、この様なファイルの情報の入手は、インターフェースに応じて異なるものの、多くのインターフェースで一般的に取得できるものである。
【００７２】
＜本実施例の説明＞
図１２は、本実施例におけるＤＳＣ３０１２とＰＤプリンタ１０００が互いにマイナーコードを解釈した場合の印刷例を示す図である。この図において、メジャーコードは画像を撮影した日付を印刷する機能を指定し、マイナーコードは印刷される日付の記載方法を指定した場合の印刷例を示している。
【００７３】
ここでは原画像１２００と、日付「August 22nd, 2003」（１２０１）の印刷が指定される例で示している。いま日付印刷＜datePrints＞のコードとして「５４０２００００」（１２０２）が送信されると、即ち、８月を意味する「August」という文字列を「０８」という数字に変換し、且つ、数字表記にふさわしい並び順に並び替えた日付を付加した印刷を行うことが印刷ジョブとして指示された場合、印刷が指定された原画像１２００と、日付を示す「2003/08/22」という文字列が１枚のシートに、１２０４で示すように印刷される。
【００７４】
また日付印刷＜datePrints＞のコードとして「５４０２０００１」（１２０３）を受信した場合は、指定された原画像１２００と、US-ASCII+ISO-8859-1の文字セットにより、その日付を示す「August 22nd, 2003」という文字列が１枚のシートに印刷される（１２０５）。こうして、より柔軟で、かつ高度な印刷が可能となる。
【００７５】
いま仮に、コード「５４０２０００１」がＤＳＣ３０１２からＰＤプリンタ１０００に送信された場合、ＰＤプリンタ１０００がUS-ASCII+ISO-8859-1の文字セットによる印刷に対応していなければ、コード「５４０２００００」が送信された場合と全く同じ形式（デフォルト形式）で、１２０４で示すように１枚のシートに印刷される。このように、US-ASCII+ISO-8859-1の文字セットによる日付印刷の方がより好ましい場合があるかもしれないが、数字による日付情報と、指定された画像、即ち関連画像と関連情報（ここでは日付）とが、１枚のシートに印刷されるので大変便利である。
【００７６】
図１３は、本実施例に係るＰＤプリンタ１０００におけるコードの解釈及び印刷処理を説明するフローチャートで、この処理を実行するプログラムはプログラムメモリ３００３ａに記憶されている。
【００７７】
先ずステップＳ１で、ＤＳＣ３０１２から、例えば日付印刷を指定するコード（図１０）を受信する。そしてステップＳ２で、そのコードのメジャーコードを解析し、ステップＳ３で、そのメジャーコードで指定されている印刷機能を認識する。次にステップＳ４に進み、そのコードのマイナーコードを解析できるかどうかをみる。マイナーコードが解析可能であればステップＳ５に進み、そのマイナーコードで指定された印刷機能を有しているかどうかを判定する。その印刷機能を有しているときはステップＳ６に進み、そのマイナーコードで指定された印刷機能を設定する。これは例えば前述の図１２の例では、「August 22nd, 2003」をASCIコードにより展開して印刷するか、或は数字に変換して「2003/08/22」で印刷するかを設定するものである。そして次にステップＳ６に進み、その設定した印刷機能に従ってプリンタエンジン３００４に印刷する画像を出力して印刷する。
【００７８】
一方、ステップＳ４でマイナーコードが解析できないとき、或はステップＳ５で、そのマイナーコードで指定された印刷機能を実行できない場合はステップＳ８に進み、そのメジャーコードに対応するデフォルトの印刷モードでの印刷を実行する。
【００７９】
＜第２実施例＞
図１４は、本発明の第２実施例におけるＤＳＣ３０１２とＰＤプリンタ１０００が互いにマイナーコードを解釈した場合の印刷例を示す図である。この図において、メジャーコードは画像を撮影した日付を印刷する機能（「５４０２」）を指定し、マイナーコードにより、印刷される日付の記録位置を指定した場合の印刷例を示している。
【００８０】
ここでは原画像１４００と、日付「August 22nd, 2003」１４０１の印刷が指定された例で示している。いま日付印刷＜datePrints＞のコードとして「５４０２００００」（１４０２）が送信されると、即ち、日付「August 22nd, 2003」を、そのシートの右下に印刷するように指示された場合、１４０４で示すように、原画像の右下に日付の文字列が印刷される。
【００８１】
また日付印刷＜datePrints＞のコードとして「５４０２０００１」（１４０３）が送信された場合は、１４０５で示すように、原画像のシートの左上に日付の文字列「August 22nd, 2003」が印刷される。これにより、より柔軟でかつ高度な印刷が可能となる。
【００８２】
いま仮に、コード「５４０２０００１」がＤＳＣ３０１２からＰＤプリンタ１０００に送られた場合、そのＰＤプリンタ１０００がマイナーコードを解釈できるが、左上に日付を印刷する機能を有していない場合は、コード「５４０２００００」を受信した場合と全く同じ形式で、１４０４で示すように印刷される。このように、ＰＤプリンタ１０００がマイナーコードに対応する機能を有していないときは、ユーザの意向通り１４０５で示すように、シートの左上に日付が印刷されない。しかしながら、指定された原画像１４００と日付情報１４０１、即ち関連画像と関連情報とが、１枚のシートに印刷されるので大変便利である。
【００８３】
この場合も前述の図１３のフローチャートにおいて、ステップＳ２，Ｓ３で、日付印刷機能を特定し、マイナーコードの内容に応じて、ステップＳ６，Ｓ７で、１４０４或は１４０５で示すような印刷結果を得ることができる。又、マイナーコードが解析できないか、或はマイナーコードで指定されて機能を実行できない場合にはステップＳ８で、１４０４で示すような日付印刷を実行する。
【００８４】
＜第３実施例＞
図１５は、本発明の第３実施例におけるＤＳＣ３０１２とＰＤプリンタ１０００が互いにマイナーコードを解釈した場合の印刷例を示す図である。この図において、メジャーコードは一枚のシート（紙）に印刷する画像枚数（レイアウト画像数）を指定し、マイナーコードは、そのシートに各画像をフチ有りで印刷するか、フチ無しで印刷するかを指定した場合の印刷例で説明する。
【００８５】
レイアウト印刷＜layout＞のコードとして「５７０４００００」（１５０１）がＤＳＣ３０１２からＰＤプリンタ１０００に送られた場合、即ち、４枚レイアウトでフチ有りでの印刷が印刷ジョブとして指示された場合、４枚の指定された画像が１枚のシートにフチ有りで印刷される（１５０３）。
【００８６】
またコード「５７０４０００１」（１５０２）が送られた場合には、４枚の指定された画像が１枚のシートにフチ無しで印刷される（１５０４）。
【００８７】
ここで仮に、コード「５７０４０００１」（１５０２）がＤＳＣ３０１２からＰＤプリンタ１０００に送られた場合にＰＤプリンタ１０００が、このマイナーコードを理解してフチ無しで印刷する機能に対応していない場合、コード「５７０４００００」（１５０１）が送られた場合と全く同じ形式で、１５０３で示すように、４枚の指定された画像が１枚のシートにフチ有りで印刷される。
【００８８】
この場合も前述の図１３のフローチャートにおいて、ステップＳ２，Ｓ３で、レイアウト印刷とその画像枚数を特定し、マイナーコードの内容に応じて、ステップＳ６，Ｓ７で、１５０３或は１５０５で示すような印刷結果を得ることができる。又、マイナーコードが解析できないか、或はマイナーコードで指定されて機能を実行できない場合にはステップＳ８で、１５０３で示すような、４枚レイアウトでフチ有りの印刷を実行する。
【００８９】
＜第４実施例＞
図１６は、本発明の第４実施例におけるＤＳＣ３０１２とＰＤプリンタ１０００が互いにマイナーコードを解釈した場合の印刷例を示す図である。この図において、メジャーコードは一枚のシート（紙）に印刷する画像枚数（レイアウト画像数）を指定し、マイナーコードは、同じシートに複数印刷される画像の枚数・配置情報を行うマルチ縮小印刷を指定した場合の印刷例で説明する。
【００９０】
レイアウト印刷＜layout＞のコードとして「５７０１００００」（１６０１）が送られた場合、即ち、１枚レイアウトで通常印刷が指示された場合、１枚の指定された原画像１６００が１枚のシートに印刷される（１６０３）。またコード「５７０１０００１」（１６０２）がＤＳＣ３０１２からＰＤプリンタ１０００に送信された場合は、１枚の指定された原画像１６００が１枚のシートに、例えば１６０４で示すように、シートの１／４の大きさの画像が２枚、１／８の大きさの画像が２枚、１／１６の大きさの画像が２枚、１／３２の大きさの画像が４枚というように、それぞれフチ無しで印刷される。
【００９１】
また仮に、コード「５７０１０００１」（１６０２）がＤＳＣ３０１２からＰＤプリンタ１０００に送られた場合、もしこのＰＤプリンタ１０００が、このマイナーコードを解釈してマルチ縮小印刷に対応していなければ、コード「５７０１００００」（１６０１）を受信した場合と全く同じ形式で、１６０３で示すように、１枚のシートに、指定された原画像１６００が印刷される。
【００９２】
この場合も前述の図１３のフローチャートにおいて、ステップＳ２，Ｓ３で、レイアウト印刷とその画像枚数を特定し、マイナーコードの内容に応じて、ステップＳ６，Ｓ７で、１６０３或は１６０４で示すような印刷結果を得ることができる。又、マイナーコードが解析できないか、或はマイナーコードで指定されて機能を実行できない場合にはステップＳ８で、１６０３で示すように、１枚のシートに、指定された原画像１６００が印刷される。
【００９３】
＜第５実施例＞
図１７は、本発明の第５実施例におけるＤＳＣ３０１２とＰＤプリンタ１０００が互いにマイナーコードを解釈した場合の印刷例を示す図である。この図において、メジャーコードは一枚のシート（紙）に印刷する画像の印刷領域を指定し、マイナーコードは、同じシートに印刷される画像のクロッピング（cropping：切り取り）形状を指定した場合の印刷例で説明する。
【００９４】
画像切取り＜cropping＞のコードとして「５９０２００００」（１７０１）が送られた場合、即ち、長方形状に切り取るcropping印刷が指示された場合、１枚の指定された原画像１７００の指定された領域が長方形状に切り取られて１枚のシートに印刷される（１７０３）。また、コード「５９０２０００１」（１７０２）が送られた場合には、指定された原画像１７００の指定された範囲が菱形形状に切り取られて１枚のシートに印刷される（１７０４）。これにより、より柔軟でかつ高度な印刷が可能となる。
【００９５】
いま仮に、コード「５９０１０００１」（１７０２）がＤＳＣ３０１２からＰＤプリンタ１０００に送られた場合、このＰＤプリンタ１０００が、このマイナーコードを解釈して菱形形状に切り取るcropping印刷に対応していないときは、コード「５９０１００００」（１７０１）を受信した場合と全く同じ形式で、指定された原画像１７００の指定された範囲を長方形状で切り取って１枚のシートに印刷する（１７０３）。
【００９６】
この場合も前述の図１３のフローチャートにおいて、ステップＳ２，Ｓ３で、画像切取り印刷を特定し、マイナーコードの内容に応じて、ステップＳ６，Ｓ７で、１７０３或は１７０４で示すような印刷結果を得ることができる。又、マイナーコードが解析できないか、或はマイナーコードで指定されて機能を実行できない場合にはステップＳ８で、１７０３で示すように、指定された原画像１７００の指定された範囲を長方形状で切り取って１枚のシートに印刷する。
【００９７】
［他の実施の形態］
本発明の目的は前述したように、実施例の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体をシステム或は装置に提供し、そのシステム或は装置のコンピュータ（又はＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フロッピィ（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ，ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【００９８】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれる。
【００９９】
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって前述した実施例の機能が実現される場合も含む。
【図面の簡単な説明】
【０１００】
【図１】本発明の実施例に係るＰＤプリンタの概観斜視図である。
【図２】本実施例に係るＰＤプリンタの操作パネルの概観図である。
【図３】本実施例に係るＰＤプリンタの制御に係る主要部の構成を示すブロック図である。
【図４】本実施例に係るＤＳＣの構成を示すブロック図である。
【図５】本実施例に係るＰＤプリンタとデジタルカメラとの接続を説明する図である。
【図６】本実施例に係る印刷システムにおけるＰＤプリンタとＤＳＣとの間のコマンドのやり取りを説明する図である。
【図７】本実施例に係るＤＳＣから発行されるプリント開始コマンドの具体例を説明する図である。
【図８】本実施例に係るＰＤプリンタからＤＳＣに送信されるJobStatus（Ａ）とDeviceStatus（Ｂ）を説明する図である。
【図９】本実施例に係るＰＤプリンタのcapabilityのやり取りを説明する図で、（Ａ）はＤＳＣからＰＤプリンタへのcapabilityの要求コマンド例を示し、（Ｂ）はＰＤプリンタからＤＳＣへの応答コマンド例を示す図である。
【図１０】本実施例に係るＰＤプリンタからＤＳＣに対して通知するcapabilityのコードフォーマットを説明する図である。
【図１１】本実施例に係る印刷対象画像のファイル情報を取得する例を説明する図で、（Ａ）はＰＤプリンタからＤＳＣへのファイル要求コマンド例を示し、（Ｂ）はＤＳＣからＰＤプリンタへ画像ファイルを送信する場合のコマンド例を示す図である。
【図１２】本発明の実施例に係るダイレクト印刷システムにおける印刷結果例を説明する図である。
【図１３】本実施例に係るＰＤプリンタにおけるコードの解釈及び印刷処理を説明するフローチャートである。
【図１４】本発明の第２実施例に係るダイレクト印刷システムにおける印刷結果例を説明する図である。
【図１５】本発明の第３実施例に係るダイレクト印刷システムにおける印刷結果例を説明する図である。
【図１６】本発明の第４実施例に係るダイレクト印刷システムにおける印刷結果例を説明する図である。
【図１７】本発明の第５実施例に係るダイレクト印刷システムにおける印刷結果例を説明する図である。
【図１】
2005066987.tif 000003
【図２】
2005066987.tif 000004
【図３】
2005066987.tif 000005
【図４】
2005066987.tif 000006
【図５】
2005066987.tif 000007
【図６】
2005066987.tif 000008
【図７】
2005066987.tif 000009
【図８】
2005066987.tif 000010
【図９】
2005066987.tif 000011
【図１０】
2005066987.tif 000012
【図１１】
2005066987.tif 000013
【図１２】
2005066987.tif 000014
【図１３】
2005066987.tif 000015
【図１４】
2005066987.tif 000016
【図１５】
2005066987.tif 000017
【図１６】
2005066987.tif 000018
【図１７】
2005066987.tif 000019