(57)【特許請求の範囲】
【請求項１】
受信中の放送信号に含まれる印刷ドキュメントを印刷装置に印刷させる放送受信装置であって、
前記印刷ドキュメントが放送信号に含まれて提供される期間である印刷提供期間の終了時刻と現在時刻との差分時間が、予め定められた比較時間以内であるか否かを判定する判定手段と、
前記判定手段により、前記差分時間が前記比較時間以内であると判定された場合に、前記印刷ドキュメントを前記印刷装置がアクセス可能な蓄積部に格納するとともに、前記蓄積部に格納された前記印刷ドキュメントの格納位置を示す位置情報を取得する格納手段と、
前記印刷ドキュメントの印刷を要求するための指示入力を受けた場合に、前記蓄積部に格納された前記位置情報を前記印刷装置へ送信する制御手段と、
を備えることを特徴とする放送受信装置。
【請求項２】
前記印刷ドキュメントには、当該印刷ドキュメントが、当該印刷ドキュメントを印刷装置に送信することで印刷可能なＰＵＳＨ形式に対応することを示す記述が含まれており、
前記制御手段は、前記印刷ドキュメントに記述されたＰＵＳＨ形式に対応することを示す記述を、当該印刷ドキュメントが、当該印刷ドキュメントの位置情報を印刷装置に送信して当該印刷装置が前記位置情報を用いて当該印刷ドキュメントを取得して印刷可能なＰＵＬＬ形式であることを示す記述に変更する
ことを特徴とする請求項１に記載の放送受信装置。
【請求項３】
受信中の放送信号に含まれる印刷ドキュメントを印刷装置に印刷させる放送受信装置の制御方法であって、
前記印刷ドキュメントが放送信号に含まれて提供される期間である印刷提供期間の終了時刻と現在時刻との差分時間が、予め定められた比較時間以内であるか否かを判定する判定工程と、
前記判定工程により、前記差分時間が前記比較時間以内であると判定された場合に、前記印刷ドキュメントを前記印刷装置がアクセス可能な蓄積部に格納するとともに、前記蓄積部に格納された前記印刷ドキュメントの格納位置を示す位置情報を取得する格納工程と、
前記印刷ドキュメントの印刷を要求するための指示入力を受けた場合に、前記蓄積部に格納された前記位置情報を前記印刷装置へ送信する制御工程と、
を備えることを特徴とする制御方法。
【請求項４】
前記印刷ドキュメントには、当該印刷ドキュメントが、当該印刷ドキュメントを印刷装置に送信することで印刷可能なＰＵＳＨ形式に対応することを示す記述が含まれており、
前記印刷ドキュメントに記述されたＰＵＳＨ形式に対応することを示す記述を、当該印刷ドキュメントが、当該印刷ドキュメントの位置情報を印刷装置に送信して当該印刷装置が前記位置情報を用いて当該印刷ドキュメントを取得して印刷可能なＰＵＬＬ形式であることを示す記述に変更する変更工程をさらに備える
ことを特徴とする請求項３に記載の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、放送受信装置、及びその制御方法に関し、特に、受信中の放送信号に含まれる印刷ドキュメントを印刷装置に印刷させる技術に関する。
【背景技術】
【０００２】
デジタル放送では、データ放送がデジタル放送番組と共に提供される場合がある。データ放送用のデータ（データ放送データ）は、ＢＭＬ（Broadcast Markup Language）と呼ばれるＸＭＬ（Extensive Markup Language）ベースのページ記述言語によって記述され得る。以下、ＢＭＬによって記述されたデータ放送データを「ＢＭＬデータ」と呼ぶ。ＢＭＬデータは、デジタルテレビ（ＤＴＶ）などの放送受信装置が備えるＢＭＬブラウザによって解析され、再生される。
【０００３】
データ放送のサービスの１つとして、印刷サービスがある。このサービスによれば、ユーザは、データ放送を視聴中に、データ放送データに含まれる所望の印刷ドキュメントを指定し、ＤＴＶに接続されたプリンタに印刷させることができる。印刷ドキュメントは、ＸＨＴＭＬ（Extensive Hyper Text Markup Language）に基づくフォーマットで提供される。データ放送の印刷サービスに関するデジタル放送規格や運用規定は、非特許文献１及び非特許文献２に記載されている。
【０００４】
データ放送と共に印刷サービスが提供される場合、ＢＭＬデータには、放送用拡張関数と呼ばれる、印刷を制御するための関数が記述されている。放送用拡張関数は、非特許文献１及び非特許文献２に定義されている。印刷に関する主な放送用拡張関数は、以下の４つである。
【０００５】
（１）printFile()：ＤＴＶは、放送波から取得した印刷ドキュメント（XHTML-Print）をプリンタに転送する。プリンタは、転送された印刷ドキュメント（XHTML-Print）を基に印刷を行う。
【０００６】
（２）printTemplate()：ＤＴＶは、放送波から印刷ドキュメント（XHTML-Print）の雛型ファイルを取得し、動的に加工した後、プリンタに転送する。プリンタは、転送された印刷ドキュメント（XHTML-Print）を基に印刷を行う。
【０００７】
（３）printStaticScreen()：ＤＴＶは、表示されているデータ放送の画面をキャプチャして印刷ドキュメント（XHTML-Print）を生成し、生成した印刷ドキュメントをプリンタに転送する。プリンタは、転送された印刷ドキュメント（XHTML-Print）を基に印刷を行う。但し、データ放送の画面以外の画面（即ち、放送番組の映像）は印刷されない。
【０００８】
（４）printUri()：印刷ドキュメント（XHTML-Print）がＵＲＩ（Uniform Resource Identifier）によって指定されている。ＤＴＶは、ＵＲＩをプリンタに通知する。プリンタは、指定されたＵＲＩから印刷ドキュメント（XHTML-Print）を取得して印刷を行う。従って、printUri()が使用される場合は、ＤＴＶは印刷ドキュメントを保持しない。
【０００９】
指定されたＵＲＩから印刷データを取得して印刷する技術として、特許文献１の技術が知られている。特許文献１によれば、印刷要求時に、プリンタが印刷できない状態なら、プリンタは印刷データを一時的に情報記憶装置等に保存しておき、必要なときに取り出して印刷する。
【非特許文献１】社団法人  電波産業会  標準規格  「デジタル放送におけるデータ放送符号化方式と伝送方式」  ARIB STD-B24  4．4版
【非特許文献２】社団法人  電波産業会  技術資料  「地上デジタルテレビジョン放送運用規定」ARIB TR-B14  2．7版
【特許文献１】特開２００６−１２６９１２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
データ放送の印刷コンテンツは放送番組との関連性が高い場合が多く、特定の印刷コンテンツが提供される時間は限られている。例えば、放送番組が終了すると、その放送番組に対応する印刷コンテンツの提供も終了することが多い。従って、印刷コンテンツの提供期間内にプリンタがＤＴＶからの印刷指示を受け付けられない場合、ユーザは所望の印刷コンテンツを印刷することができない。このような状況は、例えば他のデバイス（例えば、パーソナルコンピュータ（ＰＣ））からの指示に従ってプリンタが印刷を実行中である場合などに発生する。
【００１１】
特に、コンシューマ向けプリンタはコストの低下を強く要求されるため、スプーラ機能を備えていないことが多く、複数の印刷指示を同時に受け付けることができない。そのため、ユーザが所望する印刷コンテンツの提供期間内に印刷指示が受け付けられないという状況が発生しやすい。
【００１２】
しかしながら、特許文献１は、放送番組終了等のタイミングで印刷コンテンツの提供が終了することを考慮していないので、印刷コンテンツの提供終了に起因する印刷失敗の問題を解決することができない。
【００１３】
本発明はこのような状況に鑑みてなされたものであり、提供期間が限られているデータ放送の印刷コンテンツの印刷失敗を抑制する技術を提供することを目的とする。
【課題を解決するための手段】
【００１４】
上記課題を解決するために、第１の本発明は、受信中の放送信号に含まれる印刷ドキュメントを印刷装置に印刷させる放送受信装置であって、前記印刷ドキュメントが放送信号に含まれて提供される期間である印刷提供期間の終了時刻と現在時刻との差分時間が、予め定められた比較時間以内であるか否かを判定する判定手段と、前記判定手段により、前記差分時間が前記比較時間以内であると判定された場合に、前記印刷ドキュメントを前記印刷装置がアクセス可能な蓄積部に格納するとともに、前記蓄積部に格納された前記印刷ドキュメントの格納位置を示す位置情報を取得する格納手段と、前記印刷ドキュメントの印刷を要求するための指示入力を受けた場合に、前記蓄積部に格納された前記位置情報を前記印刷装置へ送信する制御手段と、を備えることを特徴とする放送受信装置を提供する。
【００１５】
また、第２の本発明は、受信中の放送信号に含まれる印刷ドキュメントを印刷装置に印刷させる放送受信装置の制御方法であって、前記印刷ドキュメントが放送信号に含まれて提供される期間である印刷提供期間の終了時刻と現在時刻との差分時間が、予め定められた比較時間以内であるか否かを判定する判定工程と、前記判定工程により、前記差分時間が前記比較時間以内であると判定された場合に、前記印刷ドキュメントを前記印刷装置がアクセス可能な蓄積部に格納するとともに、前記蓄積部に格納された前記印刷ドキュメントの格納位置を示す位置情報を取得する格納工程と、前記印刷ドキュメントの印刷を要求するための指示入力を受けた場合に、前記蓄積部に格納された前記位置情報を前記印刷装置へ送信する制御工程と、を備えることを特徴とする制御方法を提供する。
【００１６】
なお、その他の本発明の特徴は、添付図面及び以下の発明を実施するための最良の形態における記載によって更に明らかになるものである。
【発明の効果】
【００１７】
以上の構成により、本発明によれば、提供期間が限られているデータ放送の印刷コンテンツの印刷失敗を抑制することが可能となる。
【発明を実施するための最良の形態】
【００１８】
以下、添付図面を参照して、本発明の実施例を説明する。以下で説明される個別の実施例は、本発明の上位概念から下位概念までの種々の概念を理解するために役立つであろう。
【００１９】
なお、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施例によって限定されるわけではない。また、実施例の中で説明されている特徴の組み合わせすべてが、本発明に必須とは限らない。
【００２０】
以下、本発明の放送受信装置をデジタルテレビ（ＤＴＶ）に適用した実施例について説明する。また、以下の各実施例では、印刷装置として、プリンタを採用する。
【実施例１】
【００２１】
図１は、実施例１に係るＤＴＶ１００及びプリンタ２００を含む、印刷システム１０の構成を示す概念図である。
【００２２】
印刷システム１０において、放送受信装置としてのＤＴＶ１００と、印刷装置としてのプリンタ２００とが、イーサネット（登録商標）１１００を介して接続されている。イーサネット（登録商標）１１００は、ブロードバンドルータ６００に接続され、ＤＴＶ１００及びプリンタ２００は、ブロードバンドルータ６００を介してインターネット８００に接続可能である。
【００２３】
ＤＴＶ１００とプリンタ２００とは、イーサネット（登録商標）１１００を介したＵＰｎＰ（Universal Plug & Play）ネットワークにより相互に接続されている。ＵＰｎＰは、テレビやプリンタ等の機器を接続し、相互に機能を提供しあうことを可能とする技術標準仕様である。ＵＰｎＰの技術標準仕様に関しては、説明を割愛するが、本実施例における印刷制御処理は、ＵＰｎＰ技術標準仕様に基づくアクションやイベント、送受信する状態変数を拡張することにより実現される。ＤＴＶ１００からプリンタ２００に対する印刷命令として、ＵＰｎＰ技術標準仕様のPrint Enhancedで定義されているCreateJobV2()やCreateURIJob()が用いられる。
【００２４】
ＤＴＶ１００が、放送局９００から送出されるデジタル放送信号を、アンテナ５００を介して受信することにより、ユーザは、デジタル放送番組を視聴することができる。また、放送信号は、データ放送データも含むことができ、ユーザは、データ放送も視聴可能である。
【００２５】
放送局９００は、データ放送データ内に印刷コンテンツ１０００を含めて配信することができる。ＤＴＶ１００は、受信した印刷コンテンツ１０００をプリンタ２００に転送することにより、印刷コンテンツ１０００を印刷できる（この印刷方式を「ＰＵＳＨ印刷」と呼ぶ）。
【００２６】
また、印刷コンテンツ１０００は、印刷データの実体である印刷ドキュメントの代わりに、インターネット８００に接続されたＷＷＷサーバ４００に存在する印刷ドキュメント７００を指定する位置情報を含むこともできる。ＤＴＶ１００は、印刷ドキュメント７００の位置情報（例えば、ＵＲＩ（Uniform Resource Identifier））をプリンタ２００に通知する。プリンタは、指定されたＵＲＩから印刷ドキュメント７００を取得して印刷する（この印刷方式を「ＰＵＬＬ印刷」と呼ぶ）。
【００２７】
インターネット８００には印刷ドキュメントを蓄積し、保存可能な一時保存ＷＷＷサーバ３００（蓄積部）が接続されている。ＤＴＶ１００は、一時保存ＷＷＷサーバ３００に対して印刷ドキュメントを転送（ＨＴＴＰ  ＰＯＳＴ）して、一時保存ＷＷＷサーバ３００内に格納することができる。また、ＤＴＶ１００は、格納された印刷ドキュメントを一時保存ＷＷＷサーバ３００から取得（ＨＴＴＰ  ＧＥＴ）することができる。また、プリンタ２００も、格納された印刷ドキュメントを一時保存ＷＷＷサーバ３００から取得（ＨＴＴＰ  ＧＥＴ）することができる。
【００２８】
＜プリンタ２００の構成＞
図２は、実施例１に係るプリンタ２００の構成を示すブロック図である。プリンタ２００は、以下の機能を有する。
【００２９】
・ＷＷＷサーバから印刷ドキュメント（ＸＨＴＭＬデータ）を取得する機能
・ＸＨＴＭＬデータを解釈して、印刷用データに変換する機能
・複数のCreateURIJob()をキューイングする機能（擬似スプール機能）
以下、プリンタ２００の各ブロックについて説明する。
【００３０】
通信制御部２０９は、プリンタ２００と、ＤＴＶ１００及びＷＷＷサーバ４００等の外部機器との通信を制御する。プリンタ２００は、通信制御部２０９を介することで、ＤＴＶ１００、ＷＷＷサーバ４００、又は一時保存ＷＷＷサーバ３００等の外部機器から印刷ドキュメント（XHTML-Print）を取得することができる。
【００３１】
印刷データ変換部２０５は、印刷ドキュメントを構文解析して、印刷用データに変換して出力する機能をもっている。
【００３２】
メモリ部２０４は、印刷ジョブに対応した印刷ドキュメントを１つ保持することができる。また、メモリ部２０４は、印刷用データを保持することができる。
【００３３】
印刷要求制御部２０１は、通信制御部２０９を介して外部機器からCreateJobV2()又はCreateURIJob()を受け付ける。印刷要求制御部２０１は、印刷制御部２０２にCreateJobV2()又はCreateURIJob()から取得した情報を通知する。
【００３４】
印刷要求制御部２０１は、同時に複数のCreateURIJob()を受け付けることができ、CreateURIJob()に関する情報をメモリ部２０４にキューイングする機能をもつ（擬似スプール機能）。但し、印刷ドキュメントはメモリ部２０４に１つしか保持されない。従って、プリンタ２００は、CreateJobV2()については、同時に複数受け付けることができない。なお、本実施例では説明を簡略化するために、プリンタ２００はCreateJobV2()を複数同時には受け付けないものとするが、CreateJobV2()を複数同時に受け付けられる場合でも本実施例の構成による効果は得られる。
【００３５】
印刷要求制御部２０１は、CreateJobV2()又はCreateURIJob()を受け付けると、印刷ジョブＩＤを発行し、通信制御部２０９を介して外部機器に通知する。
【００３６】
印刷制御部２０２は、印刷実行部２０３に対して印刷開始、印刷中断等の命令を行う。
【００３７】
印刷実行部２０３は、印刷制御部２０２から印刷実行命令を受け付けて、紙等の記録媒体に印刷を行う。
【００３８】
＜プリンタ２００におけるCreateURIJob()に基づく印刷処理＞
図３は、プリンタ２００が、CreateURIJob()を受け付けたときに実行する印刷処理の流れを示すフローチャートである。
【００３９】
Ｓ３０１で、印刷要求制御部２０１は、通信制御部２０９を介してＤＴＶ１００等の外部機器からCreateURIJob()を受け付ける。
【００４０】
Ｓ３０２で、印刷要求制御部２０１は、印刷制御部２０２に対して印刷実行部２０３の状態を確認するように要求する。印刷制御部２０２は、印刷実行部２０３が印刷可能な状態か否かを判定する。印刷可能な状態であると判定された場合はＳ３０６に進む。
【００４１】
Ｓ３０６で、印刷要求制御部２０１が印刷ジョブＩＤを発行し、通信制御部２０９を介して外部機器に印刷ジョブＩＤを通知する。続いて、Ｓ３０７に進む。
【００４２】
一方、Ｓ３０２において、印刷実行部２０３が印刷不可能な状態であると判定された場合は、Ｓ３０３に進む。例えば、印刷実行部２０３が既に印刷を実行している場合や、紙詰まり等が発生し回復のために人為的な作業が必要な場合などに、印刷実行部２０３は印刷不可能な状態であると判定される。
【００４３】
Ｓ３０３で、印刷要求制御部２０１は、CreateURIJob()に関する情報をメモリ部２０４にキューイングする（擬似スプーラ機能）。
【００４４】
Ｓ３０４で、印刷要求制御部201は印刷ジョブＩＤを発行し、通信制御部２０９を介して外部機器に印刷ジョブＩＤを通知する。
【００４５】
Ｓ３０５で、印刷制御部２０２は、印刷実行部２０３が印刷可能な状態になるまで処理を待機し、印刷実行部２０３が印刷可能な状態になるとＳ３０７に進む。
【００４６】
Ｓ３０７で、印刷制御部２０２は、CreateURIJob()で指定されたＵＲＩから印刷ドキュメントを取得し、メモリ部２０４に印刷ドキュメントを蓄積する。
【００４７】
Ｓ３０８で、印刷制御部２０２は、印刷データ変換部２０５に対して印刷データ変換要求を行う。印刷データ変換部２０５は、メモリ部２０４から印刷ドキュメントを取得する。印刷データ変換部２０５は、印刷ドキュメントを構文解析し、印刷用データに変換する。変換された印刷用データは、メモリ部２０４に蓄積される。印刷制御部２０２は、印刷用データをメモリ部２０４から取得して印刷実行部２０３に渡す。印刷実行部２０３は、印刷用データを基に印刷を実行する。印刷制御部２０２は、印刷ジョブのステータスを実行中に設定する。
【００４８】
印刷実行部２０３において印刷が完了すると、Ｓ４０９で、印刷制御部２０２は、印刷要求制御部２０１に対して印刷が完了したことを通知する。印刷要求制御部２０１は、印刷ジョブのステータスを完了に設定する。印刷制御部２０２は、CreateURIJob()を発行した外部機器に対して印刷が完了したことを通知する。
【００４９】
＜ＤＴＶ１００の構成＞
図４は、実施例１に係るＤＴＶ１００の構成を示すブロック図である。まず、本実施例に関する主要ブロックについて以下に説明する。主要ブロックは、通信制御部１３０、データ放送制御部１１６、データ放送ブラウズ処理部１１７、印刷制御部１２０、印刷要求種別判定部１２１、印刷要求結果判定部１２２、印刷要求変換部１２３である。
【００５０】
通信制御部１３０は、プリンタ２００及びＷＷＷサーバ４００等の外部機器と、ＤＴＶ１００との通信を制御する機能をもつ。通信制御部１３０は、イーサネット（登録商標）１１００を介して、プリンタ２００、一時保存ＷＷＷサーバ３００、及びＷＷＷサーバ４００に接続される。
【００５１】
データ放送ブラウズ処理部１１７は、放送局９００からデジタル放送番組と共に提供されるＢＭＬデータを構文解析する機能をもつ。データ放送ブラウズ処理部１１７は、ＢＭＬデータの構文解析結果を、データ放送制御部１１６に出力する。
【００５２】
データ放送制御部１１６は、データ放送ブラウズ処理部１１７から取得したＢＭＬデータの構文解析結果に基づいて、各ブロックに命令する機能をもつ。データ放送制御部１１６は、グラフィック生成部１１８に対して制御命令を出して、映像表示部１０８に映像を出力する。また、ＢＭＬデータに放送用拡張関数が記述されている場合は、データ放送制御部１１６は、印刷制御部１２０に対して放送用拡張関数を呼び出す。
【００５３】
印刷制御部１２０は、印刷の制御全般に係る機能を備える。印刷制御部１２０は、印刷要求種別判定部１２１、印刷要求結果判定部１２２、印刷要求変換部１２３を備える。
【００５４】
印刷要求種別判定部１２１は、印刷制御部１２０で受け付けた放送用拡張関数が、ＰＵＳＨ印刷のための関数であるかＰＵＬＬ印刷のための関数であるかを判定する。印刷要求種別判定部１２１は、放送用拡張関数を入力とし、判定結果を出力する。
【００５５】
印刷要求結果判定部１２２は、印刷制御部１２０が通信制御部１３０を介してプリンタ２００に対して発行したCreateJobV2()又はCreateURIJob()の結果を判定する。
【００５６】
印刷要求変換部１２３は、プリンタ２００に発行するCreateJobV2()を、CreateURIJob()に置き換える機能をもつ。
【００５７】
次に、図４のＤＴＶ１００が有する選局処理機能、データ放送受信機能、データ放送印刷機能について以下に説明する。
【００５８】
●ＤＴＶ１００の選局処理機能
選局処理機能とは、ＤＴＶ１００がアンテナ５００を介しチューナ部１０１によりデジタル放送信号を受信し、選択されたチャンネルの映像や番組情報等を映像表示部１０８に表示したり、音声を音声出力部１０９から出力したりする機能である。ユーザは、リモコン１５２を操作することによりチャンネルを選択することができる。
【００５９】
以下、ＤＴＶ１００が選局処理を行うための内部動作について説明する。
【００６０】
システム制御部１１１は、受光部１１２を介して受信するユーザのリモコン１５２の操作による操作情報に基づき、ユーザが所望するチャンネルを判定し、選局制御部１１３に選局を要求する。
【００６１】
選局制御部１１３は、選局要求に基づき、チューナ部１０１、データ分離部１０２の選局制御を開始する。
【００６２】
チューナ部１０１は、入力された放送信号に対し、復調、誤り訂正等の処理を行い、トランスポートストリーム（ＴＳ：Transport Stream）を形成し、データ分離部１０２に出力する。ＴＳには、複数のチャンネルに関わる映像、音声、番組情報データ、及び現在時刻情報が多重化されている。番組情報は、番組名、番組内容説明、放送チャンネル、放送時間情報（開始時刻と継続時間）、番組ジャンル情報等を含む。現在時刻情報は、年月日、時分秒情報を含む。
【００６３】
データ分離部１０２は、ＴＳから所望のチャンネルに関わる映像、音声、番組情報データ及び現在時刻情報の分離（抽出）を行う。
【００６４】
データ分離部１０２で分離された映像データは、映像デコード部１０３に出力され、ＭＰＥＧ等の復号化処理が施される。また音声データは、音声デコード部１０４に出力され、ＭＰＥＧ等の復号化処理が施された後、音声制御部１０７に出力される。番組情報データは、メモリ部１１４に蓄積される。現在時刻情報は、システムバス１１０を介し、タイマー部１１５に出力される。タイマー部１１５は、時刻情報のカウントを行う。
【００６５】
映像デコード部１０３が復号した映像データは、表示合成部１０５を介し、表示制御部１０６に出力される。表示制御部１０６は、映像データを映像表示部１０８の表示解像度、表示色数、リフレッシュレートに適した表示データ、タイミングに変換し、映像表示を行う。
【００６６】
表示合成部１０５は、映像デコード部１０３で復号された映像データとグラフィック生成部１１８が生成するグラフィックデータとを合成する機能を有する。
【００６７】
音声制御部１０７は、音声データのボリュームレベル等を変更する機能を有する。
【００６８】
選局制御部１１３は、上述の選局処理動作が正常に完了すると、選局したチャンネル情報をメモリ部１１４に蓄積する。
【００６９】
●ＤＴＶ１００のデータ放送のブラウズ機能
データ放送ブラウズ機能とは、データカルーセル方式により放送局から繰り返し送出されるデータ放送データに含まれる映像及び音声を、映像表示部１０８に表示したり音声出力部１０９から出力したりする機能である。
【００７０】
図５Ａ〜Ｃに、実施例１に係る印刷制御処理に利用されるデータ放送データの一例を示す。図５Ａ〜Ｃに示すデータ放送データには、テキスト情報、表示レイアウト情報、スクリプト情報、静止画像情報、及び音声情報等が含まれている。
【００７１】
テキスト情報は、ＢＭＬによって記述されている。表示レイアウト情報は、ＣＳＳ（カスケーディング・スタイルシート）を、スクリプト情報は、ECMAScriptをそれぞれ用いている。更に、ＢＭＬデータの論理的構造や情報へのアクセス、及び操作を行うための手段として、ＤＯＭ（Document Object Model）が用いられる。
【００７２】
図５Ａ〜Ｃの例では、<head></head>タグに囲まれた部分に、文書の名前を示す<title>要素や、スクリプトの定義を示す<script>要素が含まれる。また、本文を示す<body>要素の中に、画像や映像、音声を示す<object>要素、画面上の領域を示す<div>要素、文を示す<p>要素などが含まれる。各要素にはＣＳＳに従ったスタイル属性が記述されており、表示する際の座標、大きさ、色などの設定がなされている。
【００７３】
図６は、図５Ａ〜Ｃに示したＢＭＬデータを解析し、映像表示部１０８に表示した際の表示例を示す図である。
【００７４】
図７は、実施例１に係るＤＴＶ１００のリモコン１５２の構成を示す図である。
【００７５】
システム制御部１１１は、受光部１１２を介し受信するユーザのリモコン１５２の操作による操作情報に基づき、データ放送ブラウズ要求を検出し、データ放送制御部１１６にデータ放送ブラウズ処理開始を要求する。
【００７６】
データ放送制御部１１６は、メモリ部１１４に蓄積されたデータ放送データを取得する。メモリ部１１４にブラウズで必要なデータが蓄積されていない場合、データ放送制御部１１６は、データ分離部１０２に対し、データ放送データの取得要求を行う。
【００７７】
データ放送制御部１１６は、取得したデータ放送データをデータ放送ブラウズ処理部１１７に送り、ブラウズ処理を要求する。
【００７８】
データ放送ブラウズ処理部１１７は、上記ＢＭＬデータと関連する画像などを取得すると、<body>タグのOnload属性に記述されたスクリプト関数を初期スクリプトとして実行する。本実施例では、start()関数が初期スクリプトである。
【００７９】
start()関数の中では、まず、ＤＴＶ１００が印刷機能を有しているかを問い合わせる関数が呼び出される。データ放送ブラウズ処理部１１７は、ＢＭＬデータにgetBrowserSupport()という放送用拡張関数が記述されていることを、データ放送制御部１１６に対して通知する。データ放送制御部１１６は、印刷制御部１２０に対してgetBrowserSupport()を呼び出す。getBrowserSupport()は、引数として、「"ARIB","APIGroup","Print.Basic"」という文字列を与えると、「１」又は「０」の値を返す。「１」は、印刷機能を有していることを意味し、「０」は印刷機能を有していないことを示す。本実施例では、ＤＴＶ１００は印刷機能を有するため、このＡＰＩの戻り値は「１」となる。
【００８０】
start()関数の中では、次に、getBrowserSupport()の戻り値により、図６の６０１で示す領域にボタンイメージやテキスト情報を描画するかどうかが決定される。
【００８１】
データ放送ブラウズ処理部１１７は、初期スクリプト実行結果をデータ放送制御部１１６に通知する。データ放送制御部１１６は、グラフィック生成部１１８、表示合成部１０５を介して、ボタンイメージやテキスト情報の描画を行う。その動作と共に、表示合成部１０５は、映像デコード部１０３からの動画像との合成処理を行う。
【００８２】
図６において、６０４で示す領域には、映像デコード部によってデコードされた動画像が表示される。また、図６の画面右側には、天気予報や交通情報等の詳しい情報へ表示画面を遷移させるためのボタン（「天気予報を見る」ボタン６０５、「交通情報を見る」ボタン６０６、「最新ニュースを見る」ボタン６０７）が表示されている。図６の画面を表示中、ユーザがリモコンのカーソルキー７０１を操作することにより、フォーカス６０８を移動させ、所望のボタンの位置（６０５、６０６、６０７のいずれか）で決定キーを押すことで、表示画面を遷移させることができる。
【００８３】
●ＤＴＶ１００のデータ放送の印刷機能
データ放送の印刷機能とは、データカルーセル方式により放送局から繰り返し送出されるデータ放送と共に提供される印刷ドキュメント（即ち、受信中の放送信号に含まれる印刷ドキュメント）を取得し、プリンタ２００に転送して、印刷させる機能である。但し、放送用拡張関数としてprintUri()が使用される場合、印刷ドキュメントはデータ放送データに含まれない。この場合、ＤＴＶ１００は、printUri()が示すＵＲＩをプリンタ２００へ送信して、このＵＲＩに基づいて印刷ドキュメントを取得して印刷するようにプリンタ２００に指示する。プリンタ２００は、インターネット８００のＷＷＷサーバ４００、又は一時保存ＷＷＷサーバ３００から印刷ドキュメントを取得して印刷を行う。
【００８４】
＜印刷制御処理の流れ＞
図８は、実施例１に係るＤＴＶ１００が実行する印刷制御処理の流れを示すフローチャートである。
【００８５】
Ｓ８０１で、データ放送制御部１１６は、ＢＭＬデータに含まれる放送拡張関数に対応する印刷の指示入力を受け付ける。具体的には、ユーザは、図６に示すようなデータ放送画面を視聴しているときに、リモコン１５２の赤キー７０４、又は緑キー７０５を押下することにより、受光部１１２を介してデータ放送制御部１１６に対して印刷指示を入力する。データ放送ブラウズ処理部１１７は、データ放送制御部１１６の指示に従い、ＢＭＬデータを解析する。ＢＭＬデータの解析結果に従い、データ放送制御部１１６は、印刷制御部１２０に対して放送用拡張関数を呼び出す。
【００８６】
ＢＭＬデータが図５Ａ〜Ｃに示されるものである場合、リモコン１５２の赤キー７０４が押されると、データ放送制御部１１６は、印刷制御部１２０に対して放送用拡張関数printFile()を呼び出す。リモコン１５２の緑キー７０５が押されると、データ放送制御部１１６は印刷制御部１２０に対して、放送用拡張関数printUri()を呼び出す。
【００８７】
Ｓ８０２で、印刷制御部１２０の印刷要求種別判定部１２１は、データ放送制御部１１６から受け付けた放送用拡張関数の種別により、要求された印刷がＰＵＳＨ印刷かＰＵＬＬ印刷かを判定する。放送用拡張関数printFile()はＰＵＳＨ印刷、printUri()はＰＵＬＬ印刷、printTemplate()はＰＵＳＨ印刷、printStaticScreen()はＰＵＳＨ印刷にそれぞれ対応する。印刷要求種別判定部１２１において放送用拡張関数がＰＵＳＨ印刷であると判定された場合は、Ｓ８０３に進む。そうでない場合は、ＤＴＶ１００は印刷ドキュメントではなくＵＲＩをプリンタ２００へ送信すればよいので、Ｓ８０３乃至Ｓ８０７の処理を行う必要がないため、Ｓ８０８へ進む。
【００８８】
Ｓ８０３で、印刷制御部１２０はプリンタ２００に対してCreateJobV2()を発行する（第２印刷指示）。このとき、ＢＭＬデータに含まれる印刷対象の印刷ドキュメントが、プリンタ２００へ送信される。
【００８９】
Ｓ８０４で、印刷制御部１２０の印刷要求結果判定部１２２は、プリンタ２００に対して発行したCreateJobV2()が受け付けられたか否かを判定する。印刷制御部１２０が、予め定められた時間以内にプリンタ２００から印刷ジョブＩＤを取得できなかった場合は、CreateJobV2()が受け付けられなかったと判断し、Ｓ８０５に進む。印刷制御部１２０が、プリンタ２００から印刷ジョブＩＤを取得できた場合は、CreateJobV2()が受け付けられたと判断する。この場合、印刷ドキュメントがプリンタ２００のメモリ部２０４に既に格納されており、印刷が失敗する可能性は低いので、Ｓ８０９に進む。
【００９０】
Ｓ８０５で、印刷制御部１２０の印刷要求変換部１２３は、印刷ドキュメント内の、ＰＵＳＨ印刷用のデータであることを示す記述を、ＰＵＬＬ印刷用のデータを示す記述に変更する。また、印刷ドキュメントが複数のモジュールから構成される場合、印刷要求変換部１２３は、モジュールのマルチパート処理を実行してヘッダを付加して、印刷ドキュメントを構成する。
【００９１】
Ｓ８０６で、印刷制御部１２０は、インターネット８００に接続された一時保存ＷＷＷサーバ３００に印刷ドキュメントを転送して格納し、格納位置を示す位置情報（ＵＲＩ）を取得する。
【００９２】
Ｓ８０７で、印刷要求変換部１２３は、一時保存ＷＷＷサーバ３００に格納した印刷ドキュメントのＵＲＩを印刷ドキュメント取得先として設定し、CreateJobV2()をCreateURIJob()に置き換える。
【００９３】
Ｓ８０８で、印刷制御部１２０は、プリンタ２００に対してCreateURIJob()を発行する（第１印刷指示）。プリンタ２００は、CreateURIJob()を印刷要求制御部２０１で受け付ける。印刷要求制御部２０１は、CreateURIJob()を受け付けると、印刷制御部１２０に印刷ジョブＩＤを返す。プリンタ２００の印刷実行部２０３が既に他の印刷ジョブを実行中であっても、印刷要求制御部２０１は、CreateURIJob()を受け付けて印刷制御部１２０に印刷ジョブＩＤを返す。印刷制御部１２０は、印刷ジョブＩＤの取得により、CreateURIJob()が受け付けられたことを確認する。
【００９４】
Ｓ８０９で、印刷制御部１２０は、プリンタ２００に対して印刷が完了したか問い合わせ、印刷結果を確認する。ＤＴＶ１００が印刷結果を確認する方法として、ＤＴＶ１００が定期的にプリンタ２００に対して印刷結果を確認する方法と、印刷が完了したらプリンタ２００がＤＴＶ１００に通知する方法がある。本実施例では、ＤＴＶ１００が定期的にプリンタ２００に対して印刷結果を確認するものとするが、プリンタ２００がＤＴＶ１００に通知する方法を採用してもよい。なお、印刷結果の確認方法は、上記の方法のみに限定されるものではない。印刷制御部１２０は、印刷完了を確認すると、一時保存ＷＷＷサーバ３００に保存した印刷ドキュメントの削除を要求する。
【００９５】
図８に示すフローチャートでは、ＰＵＳＨ印刷が失敗した場合にのみＰＵＳＨ印刷のＰＵＬＬ印刷への変換が行われた（Ｓ８０４参照）。しかし、ＰＵＳＨ印刷を必ずＰＵＬＬ印刷へ変換するようにＤＴＶ１００を構成してもよい。具体的には、Ｓ８０３及びＳ８０４を削除し、Ｓ８０２においてＰＵＳＨ印刷と判定された場合、必ずＳ８０５以降の処理が実行されるようにすればよい。
【００９６】
また、本実施例では、インターネット８００に接続された一時保存ＷＷＷサーバ３００に印刷ドキュメントを保存したが、ＤＴＶ１００の内部に一時保存ＷＷＷサーバ３００を設けることも可能である。ＤＴＶ１００内部に、一時保存ＷＷＷサーバ３００を設けることで、Ｓ８０６における印刷ドキュメントの転送時間を短縮することができる。
【００９７】
また、本実施例では、１台の一時保存ＷＷＷサーバ３００を利用して印刷ドキュメントの保存を行ったが、複数の一時保存ＷＷＷサーバ３００が印刷システム１０に含まれていてもよい。即ち、一時保存ＷＷＷサーバ３００は、ＤＴＶ１００及びプリンタ２００からアクセス可能であれば、どこに配置されていてもよい。
【００９８】
また、本実施例では、１回のCreateJobV2()の結果に基づいて、CreateURIJob()への変換の要否が判断されたが、CreateJobV2()が失敗した場合、CreateJobV2()をリトライするようにＤＴＶ１００を構成してもよい。この場合、リトライも失敗した場合に、ＤＴＶ１００はCreateJobV2をCreateURIJob()に変換する。
【００９９】
以上説明したように、実施例１によれば、ＤＴＶ１００は、ＰＵＳＨ印刷の指示を受けた場合、印刷対象の印刷ドキュメントをサーバに格納し、ＰＵＳＨ印刷をＰＵＬＬ印刷に変換してプリンタ２００に印刷を指示する。
【０１００】
これにより、提供期間が限られているデータ放送の印刷コンテンツの印刷失敗を抑制することが可能となる。
【０１０１】
また、ＤＴＶ１００は、ＰＵＳＨ印刷の指示がプリンタ２００に受け付けられなかった場合にのみ、上述の変換を行う。そのため、例えばプリンタ２００がアイドル状態などの場合にまで追加的な処理（印刷ドキュメントのサーバへの格納など）が実行されることが抑制される。
【実施例２】
【０１０２】
実施例１では、ＰＵＳＨ印刷の指示が受け付けられたか否かに基づいて、ＰＵＳＨ印刷のＰＵＬＬ印刷への変換を行うか否かが判定された。実施例２では、ＤＴＶが印刷指示を受信したか否かに関わらず、印刷コンテンツを取得可能な期間の終了が近づくと、ＰＵＳＨ印刷のＰＵＬＬ印刷への変換が行われる。
【０１０３】
実施例２において、印刷システムの構成は実施例１と同様であるため、説明を省略する（図１参照）。
【０１０４】
図９は、実施例２に係るＤＴＶ４０００の構成を示すブロック図である。図９において、図４と同様の機能を持つブロックには同一の符号を付し、説明を省略する。
【０１０５】
ＤＴＶ４０００の印刷制御部１２０は、印刷コンテンツ取得可能期間判定部１２５、及び一時保存要否判定部１２４を備える。
【０１０６】
印刷コンテンツ取得可能期間判定部１２５は、タイマー部１１５から取得する現在時刻情報と、メモリ部１１４から取得する放送番組終了時刻（放送番組開始時刻に継続時間を加えた時刻）とに基づいて、印刷ドキュメントを取得可能な期間を算出する。
【０１０７】
一時保存要否判定部１２４は、印刷コンテンツ取得可能期間判定部１２５の算出結果に基づき、印刷ドキュメントの一時保存（一時保存ＷＷＷサーバ３００への格納）の要否を判定する。一時保存する必要があると判定された場合には、ＤＴＶ４０００は印刷ドキュメントを取得後、一時保存ＷＷＷサーバ３００に転送する。
【０１０８】
印刷ドキュメントの一時保存要否判定方法について、図１０及び図１１を参照して説明する。
【０１０９】
図１０に示すように、現在、デジタル放送番組Ａ１００６が放送されているものとする。デジタル放送番組Ａ１００６は、放送開始時刻１００１から放送終了時刻１００５まで放送される。デジタル放送番組Ａの放送終了時刻１００５と同時刻に、デジタル放送番組Ｂ１００７の放送が開始する。デジタル放送番組Ａ１００６の放送時間の全期間に亘って、印刷コンテンツ１００８が提供される。ユーザは、データ放送視聴開始時刻１００２に、データ放送１００９の視聴を開始する。図１１に示す処理は、印刷コンテンツ１００８の提供期間中に、定期的に実行される。
【０１１０】
Ｓ１１０１で、印刷制御部１２０の印刷要求種別判定部１２１は、データ放送ブラウズ処理部１１７に対して、ＢＭＬデータ中に放送用拡張関数が記述されているか否かを問い合わせる。データ放送ブラウズ処理部１１７は、ＢＭＬデータを構文解析して放送用拡張関数が記述されているか否かを確認する。データ放送ブラウズ処理部１１７が、図５Ａ〜Ｃに示すＢＭＬデータを解析すると、符号５０１、符号５０２で示されるように、放送用拡張関数printFile()、及びprintUri()が検出される。
【０１１１】
Ｓ１１０２で、印刷要求種別判定部１２１は、ＰＵＳＨ印刷のための放送用拡張関数がＳ１１０１で検出されたか否かを判定する。検出された場合はＳ１１０３に進み、検出されなかった場合は処理を終了する。
【０１１２】
Ｓ１１０３で、印刷制御部１２０は、タイマー部１１５から現在時刻情報を取得する。
【０１１３】
Ｓ１１０４で、印刷制御部１２０は、データ分離部１０２がＴＳ（Transport Stream）から分離してメモリ部１１４に蓄積した番組情報データから、放送番組終了時刻情報を取得する。
【０１１４】
Ｓ１１０５で、一時保存要否判定部１２４は、印刷コンテンツ一時保存要否閾値１００４を取得する。印刷コンテンツ一時保存要否閾値１００４は、例えば予め決定された値がメモリ部１１４内に格納されている。印刷コンテンツ一時保存要否閾値１００４は、任意に決めて構わない。ここでは、印刷コンテンツ一時保存要否閾値１００４を５分とする。
【０１１５】
Ｓ１１０６で、印刷制御部１２０の一時保存要否判定部１２４は、現在時刻情報と放送番組終了時刻情報とに基づいて、印刷ドキュメントを一時保存ＷＷＷサーバ３００に格納するか否かを判定する。
【０１１６】
具体的には、一時保存要否判定部１２４は、デジタル放送番組Ａ１００６の放送終了時刻１００５から、印刷コンテンツ一時保存要否閾値１００４を引くことにより、印刷コンテンツ一時保存時刻１００３を算出する。印刷コンテンツ一時保存要否閾値１００４を５分、デジタル放送番組Ａ１００６の放送終了時刻１００５が１０時００分とした場合、印刷コンテンツ一時保存時刻１００３は、９時５５分である。現在時刻が、印刷コンテンツ一時保存時刻１００３よりも前であれば、一時保存要否判定部１２４は、印刷ドキュメントの一時保存ＷＷＷサーバ３００への保存は不要であると判断する。反対に、現在時刻が、印刷コンテンツ一時保存時刻１００３よりも後であれば、一時保存要否判定部１２４は、印刷ドキュメントの一時保存ＷＷＷサーバ３００への保存は必要であると判断する。
【０１１７】
即ち、一時保存要否判定部１２４は、９時５５分〜１０時００分の期間は、印刷ドキュメントの一時保存が必要であると判断する。印刷ドキュメントの一時保存が不要であると判断された場合には、処理を終了する。印刷ドキュメントの一時保存が必要であると判断された場合には、Ｓ１１０７に進む。換言すれば、一時保存要否判定部１２４は、印刷コンテンツの提供期間が終了するまでの時間が予め定められた時間以内であるか否かを判定し、予め定められた時間以内である場合にＳ１１０７に進む。
【０１１８】
Ｓ１１０７で、印刷制御部１２０の印刷要求変換部１２３は、印刷ドキュメント内の、ＰＵＳＨ印刷用のデータであることを示す記述を、ＰＵＬＬ印刷用のデータを示す記述に変更する。また、印刷ドキュメントが複数のモジュールから構成される場合、印刷要求変換部１２３は、モジュールのマルチパート処理を実行してヘッダを付加して、印刷ドキュメントを構成する。
【０１１９】
Ｓ１１０８で、印刷制御部１２０は、インターネット８００に接続された一時保存ＷＷＷサーバ３００に印刷ドキュメントを転送して格納し、格納位置を示す位置情報（ＵＲＩ）を取得する。印刷ドキュメントの転送が完了すると、印刷制御部１２０は、印刷要求結果判定部１２２の印刷要求変換フラグを「１」にセットすると共に、取得したＵＲＩを印刷要求結果判定部１２２に記憶させる。印刷要求変換フラグの初期値は、「０」である。印刷要求変換フラグは、印刷ドキュメントを一時保存ＷＷＷサーバ３００に保存したか否かを判別するためのフラグである。
【０１２０】
以上の処理により、印刷ドキュメントの一時保存ＷＷＷサーバ３００への格納が完了する。
【０１２１】
次に、ユーザがＤＴＶ４０００に印刷要求を与えたときの処理について説明する。ユーザから印刷要求１０１２を受け付けると、データ放送制御部１１６は、印刷制御部１２０に対して放送用拡張関数を呼び出す。データ放送制御部１１６から呼ばれた放送用拡張関数がＰＵＳＨ印刷のための関数である場合、印刷制御部１２０は、印刷要求結果判定部１２２の印刷要求変換フラグを確認する。
【０１２２】
印刷要求変換フラグが「０」であれば、データ放送制御部１１６から呼ばれた放送用拡張関数に従って、印刷制御部１２０はプリンタ２００に対してCreateJobV2()を発行する。
【０１２３】
印刷要求変換フラグが「１」であれば、印刷ドキュメントが一時保存ＷＷＷサーバ３００に格納されている。そこで、印刷要求変換部１２３は、一時保存ＷＷＷサーバ３００に保存された印刷ドキュメントのＵＲＩを設定して、CreateJobV2()をCreateURIJob()に変換する。
【０１２４】
次いで、印刷制御部１２０は、プリンタ２００に対してCreateURIJob()を発行する。プリンタ２００はCreateURIJob()を受け付けると、印刷制御部１２０対して印刷ジョブＩＤを返す。印刷制御部１２０は、印刷ジョブＩＤを取得したことによって、CreateURIJob()が受け付けられたと判断する。
【０１２５】
プリンタ２００は、格納された印刷ドキュメントを一時保存ＷＷＷサーバ３００から取得し、印刷を開始する（印刷開始１０１３）。このとき、デジタル放送番組Ａ１００６の印刷コンテンツ１００８の提供期間は既に終了しているが、一時保存ＷＷＷサーバ３００に印刷ドキュメントが存在するため、プリンタ２００は印刷ドキュメントを取得して印刷することができる。
【０１２６】
なお、以上の説明では、デジタル放送番組の放送期間と印刷コンテンツの提供期間とが一致することを前提としたが、これらが一致しなくても構わない。この場合、Ｓ１１０４で、印刷制御部１２０は、印刷コンテンツの提供終了時刻を取得し、以降の処理ではこれを放送番組終了時刻の代わりに使用する。
【０１２７】
以上説明したように、実施例２によれば、ＤＴＶ４０００は、印刷コンテンツの提供期間の終了が近づくと、ＰＵＳＨ印刷用の印刷ドキュメントを一時保存ＷＷＷサーバ３００に格納する。その後ユーザが印刷要求を行った場合、ＤＴＶ４０００は、ＰＵＳＨ印刷をＰＵＬＬ印刷に変換して、プリンタ２００に印刷を指示する。
【０１２８】
これにより、提供期間が限られているデータ放送の印刷コンテンツの印刷失敗を抑制することが可能となる。
【０１２９】
なお、印刷コンテンツの提供期間の終了時刻とは無関係に、データ放送１００９の視聴が開始されたタイミング、即ちデータ放送視聴開始時刻１００２にＰＵＳＨ印刷のＰＵＬＬ印刷への変換を行うようにＤＴＶ４０００を構成してもよい。即ち、データ放送制御部１１６がデータ放送の再生を開始すると図１１のフローチャートの処理を開始するようにＤＴＶ４０００を構成する。このとき、図１１は、Ｓ１１０３乃至Ｓ１１０６が削除され、Ｓ１１０２でＰＵＳＨ印刷のための放送用拡張関数が検出された場合にＳ１１０７に進むように変形される。
【実施例３】
【０１３０】
実施例３では、所謂タイムシフト視聴を考慮する。実施例２では、現在時刻と放送番組終了時刻とに基づいて、印刷ドキュメントの一時保存要否が判定された。実施例３では、タイムシフト視聴時に、現在時刻と、放送番組終了時刻と、タイムシフト視聴終了時刻とに基づいて、印刷ドキュメントの一時保存要否が判定される。
【０１３１】
実施例３において、印刷システムの構成は実施例１と同様であるため、説明を省略する（図１参照）。
【０１３２】
図１２は、実施例３に係るＤＴＶ５０００の構成を示すブロック図である。図１２において、図９と同様の機能を持つブロックには同一の符号を付し、説明を省略する。
【０１３３】
ＤＴＶ５０００は、タイムシフト視聴制御部１６０１、及びタイムシフト再生速度判定部１６０２を備える。
【０１３４】
タイムシフト視聴制御部１６０１は、タイムシフト視聴を制御する機能をもつ。タイムシフト視聴とは、デジタル放送番組を実際の放送のタイミングからずれたタイミングで視聴する機能である。タイムシフト視聴中は、等倍再生、１．２倍再生、倍速再生等、タイムシフト再生速度を指定できる。タイムシフト視聴を実現するために、タイムシフト視聴制御部１６０１は例えば、放送中の放送信号をメモリ部１１４に一時的に記憶する。そして、予め定められた時間（通常は、短時間）が経過した後に、記憶された放送信号をメモリ部１１４から取得する。データ放送制御部１１６や印刷制御部１２０は、メモリ部１１４から取得された放送信号を、アンテナ５００から受信中の放送信号と同様に扱うことができる。
【０１３５】
タイムシフト再生速度判定部１６０２は、タイムシフト再生速度を判定する機能をもつ。タイムシフト再生速度判定部１６０２は、等倍再生、１．２倍再生、倍速再生等の情報を出力する。
【０１３６】
印刷ドキュメントの一時保存要否判定方法について、図１３及び図１４を参照して説明する。図１３及び図１４において、図１０及び図１１と同一の要素には同一の符号を付し、説明を省略する。
【０１３７】
図１３に示すように、現在、デジタル放送番組Ａ１００６が放送されているものとする。デジタル放送番組Ａ１００６は、放送開始時刻１００１から放送終了時刻１００５まで放送される。デジタル放送番組Ａの放送終了時刻１００５と同時刻に、デジタル放送番組Ｂ１００７の放送が開始する。デジタル放送番組Ａ１００６の放送時間の全期間に加えて、延長視聴時間１３１８に亘って、印刷コンテンツ１００８が提供される。ユーザは、タイムシフト視聴開始時刻１３０３に、タイムシフト視聴１３１１を開始する。また、ユーザは、データ放送視聴開始時刻１００２に、データ放送１００９の視聴を開始する。図１４に示す処理は、タイムシフト視聴終了時刻１３０７に到達するまでの間、定期的に実行される。
【０１３８】
図１４のＳ１４０５で、印刷制御部１２０は、タイムシフト再生に関する情報を取得する。具体的には、印刷制御部１２０は、タイムシフト視聴制御部１６０１に対して、現在タイムシフト再生中かどうか問い合わせる。タイムシフト再生中なら、タイムシフト視聴制御部１６０１は、タイムシフト再生速度判定部１６０２に対して現在のタイムシフト再生速度を問い合わせる。タイムシフト視聴制御部１６０１は、タイムシフト再生の有無、タイムシフト再生速度、及びタイムシフト時間１３１９を印刷制御部１２０に通知する。タイムシフト時間１３１９は、現在放送中の番組の進行と、タイムシフト視聴している番組の進行の差分を示す。
【０１３９】
Ｓ１４０６で、印刷制御部１２０の一時保存要否判定部１２４は、現在時刻情報、タイムシフト再生の有無、タイムシフト時間１３１９、及びタイムシフト再生速度に基づいて、タイムシフト視聴終了時刻１３０７を算出する。タイムシフト視聴終了時刻１３０７で、タイムシフト視聴が終了する。
【０１４０】
Ｓ１４０８で、印刷制御部１２０の一時保存要否判定部１２４は、現在時刻情報と、放送番組終了時刻情報と、タイムシフト視聴終了時刻情報とに基づいて、印刷ドキュメントを一時保存ＷＷＷサーバ３００に保存するか否かを判定する。
【０１４１】
具体的には、一時保存要否判定部１２４は、タイムシフト視聴終了時刻１３０７からデジタル放送番組Ａ１００６の放送終了時刻１００５を引くことにより、延長視聴時間１３１８を算出する。更に、デジタル放送番組Ａ１００６の放送終了時刻１００５から、印刷コンテンツ一時保存要否閾値１００４を引いた時刻に、延長視聴時間１３１８を加えることにより、印刷コンテンツ一時保存時刻１３０４を算出する。
【０１４２】
印刷コンテンツ一時保存要否閾値１００４が５分、デジタル放送番組Ａ１００６の放送終了時刻１００５が１０時００分、延長視聴時間１３１８が２分だった場合、印刷コンテンツ一時保存時刻１３０４は、９時５７分である。
【０１４３】
現在時刻が、印刷コンテンツ一時保存時刻１３０４よりも前であれば、一時保存要否判定部１２４は、印刷ドキュメントの一時保存ＷＷＷサーバ３００への保存が不要であると判断する。反対に、現在時刻が、印刷コンテンツ一時保存時刻１３０４よりも後であれば、一時保存要否判定部１２４は、印刷ドキュメントの一時保存ＷＷＷサーバ３００への保存が必要であると判断する。
【０１４４】
即ち、一時保存要否判定部１２４は、９時５７分〜１０時０２分の期間は、印刷ドキュメントの一時保存が必要であると判断する。印刷ドキュメントの一時保存が不要であると判断された場合には、処理を終了する。印刷ドキュメントの一時保存が必要であると判断された場合には、Ｓ１１０７に進む。
【０１４５】
以上説明したように、実施例３によれば、ＤＴＶ５０００は、タイムシフト視聴に伴う延長視聴時間１３１８も考慮に入れて、印刷コンテンツの提供期間の終了が近づいているか否かを判断する。
【０１４６】
タイムシフト視聴中は、放送番組が終了しても印刷コンテンツの提供が継続しているが、以上の構成によれば、印刷ドキュメントの保存を開始する時刻を遅らせることができる。
【実施例４】
【０１４７】
実施例４は、プリンタが複数のCreateJobV2()をキューイング可能な機能（スプーラ機能）を備える場合に適するように、実施例１を変形したものである。
【０１４８】
本実施例において、印刷システム１０、ＤＴＶ１００、及びプリンタ２００の構成は実施例１と同様であるため、説明を省略する（図１、図２、及び図４参照）。
【０１４９】
本実施例では、ＤＴＶ１００がプリンタ２００のキューの状態を取得して、その状態に応じて、その後のＤＴＶ１００の動作を変化させる。また、プリンタ２００は、実施例１で説明した３つの機能（＜プリンタ２００の構成＞の欄を参照）に加えて、以下の機能を有する。
【０１５０】
・複数のCreateJobV2()をキューイングする機能（スプーラ機能）
この場合、印刷要求制御部２０１は、CreateJobV2()を同時に複数受け付けることができ、印刷ドキュメントをメモリ部２０４に複数保持できる。
【０１５１】
即ち、プリンタ２００は、スプール機能として、通常のスプール機能と、実施例１で説明した擬似スプール機能の２つを備え、メモリ部２０４内に、それぞれに対応した不図示の「キュー」および「擬似キュー」を持つ。つまり、プリンタ２００のサポートするキューには以下の２つがある。
【０１５２】
Ａ．CreateURIJob()をキューイングするキュー（擬似キュー）
Ｂ．CreateJobV2()をキューイングするキュー（キュー）
また、印刷要求制御部２０１内に、「キュー」および「擬似キュー」を制御する不図示の「キュー制御部」を持つ。
【０１５３】
図１５は、実施例４に係るＤＴＶ１００が実行する印刷制御処理の流れを示すフローチャートである。ユーザが図６のようなデータ放送画面から印刷要求を発行した場合に、本フローチャートの処理が実行される。
【０１５４】
Ｓ１５０１で、ＤＴＶ１００は、プリンタの状態を取得する。具体的には、ＵＰｎＰ技術標準仕様のPrint Enhancedで定義されているGetPrinterAttributesV2()を発行し、プリンタ２００の状態を取得する。ここで、プリンタ２００の状態とは以下の３つがある。
【０１５５】
（１）idle（アイドル状態）
（２）processing（動作中状態）
（３）stopped（止まった状態）
（１）の場合、プリンタ２００はジョブを受け付けることができる。これに対して、（２）や（３）の場合、ジョブを受け付けられるかどうかは、プリンタ２００のサポートするキューの数によって異なるため、分からない。
【０１５６】
Ｓ１５０２で、ＤＴＶ１００は、Ｓ１５０１で取得したプリンタ２００の状態を判断し、idle状態の場合、Ｓ１５０３に進む。また、processing状態又はstopped状態の場合、Ｓ１５０６に進む。
【０１５７】
Ｓ１５０３で、ＤＴＶ１００は、ＰＵＳＨ印刷が行われるか否かを判定する（判定方法は、図８のＳ８０１及びＳ８０２と同様）。Ｓ１５０３では、プリンタ２００がidle状態のため、ＰＵＳＨ印刷もＰＵＬＬ印刷も受け付けることができるので、判断されたジョブに応じて、Ｓ１５０４又はＳ１５０５に進む。
【０１５８】
Ｓ１５０４で、ＤＴＶ１００は、ＵＰｎＰ技術標準仕様のPrint Enhancedで定義されているCreateURIJob()を発行する。
【０１５９】
Ｓ１５０５で、ＤＴＶ１００は、ＵＰｎＰ技術標準仕様のPrint Enhancedで定義されているCreateJobV2()を発行する。
【０１６０】
一方、Ｓ１５０６では、プリンタ２００がprocessing状態又はstopped状態なので、プリンタ２００がＰＵＳＨ印刷やＰＵＬＬ印刷を受け付けられるかどうかは、プリンタ２００のサポートするキューの数によって異なるため、分からない。しかしながら、ＵＰｎＰ技術標準仕様のPrint Enhancedでは、プリンタのキューの情報を取得するコマンドは定義されていない。そこで、ＤＴＶ１００は、プリンタ２００のサポートするキューの数を取得するために、ベンダー独自コマンドであるGetPrinterQueueInformation()を発行する。このコマンドを受信したプリンタ２００は、キュー制御部（不図示）に保持されている、以下の２つの情報をＤＴＶ１００に送信する。
【０１６１】
・プリンタ２００が現在受付可能なCreateURIJob()のジョブ数
・プリンタ２００が現在受付可能なCreateJobV2のジョブ数
上記のジョブ数は、キュー制御部（不図示）において、メモリ部２０４の空いているメモリから算出される。CreateURIJob()の場合、１ジョブあたり最大２ＫＢのため、メモリ部２０４の空き容量を２ＫＢで割った値が、現在受付可能なCreateURIJob()のジョブ数となる。同様に、CreateJobV2()の場合、１ジョブあたり最大１．６ＭＢのため、メモリ部２０４の空き容量を１．６ＭＢで割った値が、現在受付可能なCreateJobV2()のジョブ数となる。
【０１６２】
Ｓ１５０７で、ＤＴＶ１００は、ＰＵＬＬ印刷が行われるか否かを判定する（判定方法は、図８のＳ８０１及びＳ８０２と同様）。判断されたジョブに応じて、Ｓ１５０８又はＳ１５１０に進む。
【０１６３】
Ｓ１５０８で、ＤＴＶ１００は、Ｓ１５０６で取得したプリンタ２００のキューの状態をチェックする。キューの状態のうち、プリンタ２００が現在受付可能なCreateJobV2()のジョブ数が、１以上であるなら、Ｓ１５０５へと進む。また、０であるなら、Ｓ１５０９へ進む。
【０１６４】
Ｓ１５０９では、ＤＴＶ１００は、プリンタ２００がCreateJobV2()を受け付けることができないため、ＰＵＳＨ印刷をＰＵＬＬ印刷に変換する（変換方法は、図８のＳ８０５〜Ｓ８０７と同様）。
【０１６５】
Ｓ１５１０で、ＤＴＶ１００は、ＵＰｎＰ技術標準仕様のPrint Enhancedで定義されているCreateURIJob()を発行する。
【０１６６】
実施例１では、ＰＵＳＨ印刷を実行する場合、ＤＴＶ１００は実際にCreateJobV2()を発行し、これが受け付けられなかった場合に、改めてCreateURIJob()を発行した。一方、実施例４では、ＤＴＶ１００はCreateJobV2()を発行する前にプリンタ２００がCreateJobV2()を受け付け可能か判断する。そして、受け付け不可能な場合、CreateJobV2()を発行せずに、CreateURIJob()を発行する。
【０１６７】
これにより、ＤＴＶ１００の処理負荷を軽減できる。また、プリンタ２００に対してCreateJobV2()の不必要なデータを送ることが避けられるので、プリンタ２００の処理を軽減できる。更には、ネットワーク上の無駄なトラフィックを削減できる。
【実施例５】
【０１６８】
実施例５では、実施例４では考慮していなかった、プリンタ２００がCreateURIJob()も受け付けることができない状況を考慮する。
【０１６９】
本実施例において、印刷システム１０、ＤＴＶ１００、及びプリンタ２００の構成は実施例１と同様であるため、説明を省略する（図１、図２、及び図４参照）。
【０１７０】
図１６は、実施例５に係るＤＴＶ１００が実行する印刷制御処理の流れを示すフローチャートである。図１６において、図１５と同様の処理が行われるステップには同一の符号を付し、説明を省略する。
【０１７１】
Ｓ１６１１で、ＤＴＶ１００は、Ｓ１５０６で取得したプリンタ２００のキューの状態をチェックする。キューの状態のうち、プリンタ２００が現在受付可能なCreateURIJob()のジョブ数が、１以上であるなら、Ｓ］１５０９へ進む。しかし、０であるなら、ＰＵＳＨ印刷をＰＵＬＬ印刷に変換してもプリンタ２００に受け付けられないため、Ｓ１６１３へ進む。
【０１７２】
Ｓ１５０７において、ＰＵＬＬ印刷と判断された場合、Ｓ１６１２で、ＤＴＶ１００は、Ｓ１５０６で取得したプリンタ２００のキューの状態をチェックする。キューの状態のうち、プリンタ２００が現在受付可能なCreateURIJob()のジョブ数が、１以上であるなら、Ｓ１５１０へ進む。しかし、０であるなら、ＰＵＳＨ印刷をＰＵＬＬ印刷に変換してもプリンタ２００に受け付けられないため、Ｓ１６１３へ進む。
【０１７３】
Ｓ１６１３では、ＤＴＶ１００は処理を一定時間待機し、その後Ｓ１６１４へ進む。
【０１７４】
Ｓ１６１４で、ＤＴＶ１００は、Ｓ１６１３における待機中にプリンタ２００が現在印刷中のジョブの終了を検知したか否かを判定する。終了を検知した場合、Ｓ１５０１へ戻り、同様の処理を繰り返す。そうでなければ、Ｓ１６１３へ戻り、終了を検知するまで待機と判定とを繰り返す。Ｓ１６１４における判定の方法としては、以下の２つが挙げられる。
【０１７５】
（１）ＵＰｎＰ技術標準仕様のPrint Enhancedで定義されているジョブの終わりを示すJobEndStateEventを、ＤＴＶ１００が受け取ったかどうかに基づいて判定
（２）ＤＴＶ１００が、ＵＰｎＰ技術標準仕様のPrint Enhancedで定義されているGetPrinterAttributesV2()を発行し、プリンタ２００の状態を取得することにより判定
以上説明したように、実施例５によれば、プリンタ２００がCreateURIJob()すらも受け付けられない状態であっても、ＤＴＶ１００は、プリンタ２００が現在実行中のジョブが終了次第、CreateJobV2()又はCreateURIJob()を再発行する。
【０１７６】
これにより、印刷失敗の可能性が低減される。
【０１７７】
［その他の実施例］
上述した各実施例の機能を実現するためには、各機能を具現化したソフトウェアのプログラムコードを記録した記録媒体をシステム或は装置に提供してもよい。そして、そのシステム或は装置のコンピュータ（又はＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行することによって、上述した各実施例の機能が実現される。この場合、記録媒体から読み出されたプログラムコード自体が上述した各実施例の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。このようなプログラムコードを供給するための記録媒体としては、例えば、フロッピィ（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスクなどを用いることができる。或いは、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることもできる。
【０１７８】
また、上述した各実施例の機能を実現するための構成は、コンピュータが読み出したプログラムコードを実行することだけには限られない。そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理によって上述した各実施例の機能が実現される場合も含まれている。
【０１７９】
更に、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれてもよい。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって上述した各実施例の機能が実現される場合も含むものである。
【図面の簡単な説明】
【０１８０】
【図１】実施例１に係るデジタルテレビ（ＤＴＶ）及びプリンタを含む、印刷システムの構成を示す概念図である。
【図２】実施例１に係るプリンタの構成を示すブロック図である。
【図３】実施例１に係るプリンタが、CreateURIJob()を受け付けたときに実行する印刷処理の流れを示すフローチャートである。
【図４】実施例１に係るＤＴＶの構成を示すブロック図である。
【図５Ａ】実施例１に係る印刷制御処理に利用されるデータ放送データの一例を示す図である。
【図５Ｂ】実施例１に係る印刷制御処理に利用されるデータ放送データの一例を示す図である（図５Ａの続き）。
【図５Ｃ】実施例１に係る印刷制御処理に利用されるデータ放送データの一例を示す図である（図５Ｂの続き）。
【図６】図５Ａ〜Ｃに示したＢＭＬデータを解析し、映像表示部１０８に表示した際の表示例を示す図である。
【図７】実施例１に係るＤＴＶのリモコンの構成を示す図である。
【図８】実施例１に係るＤＴＶが実行する印刷制御処理の流れを示すフローチャートである。
【図９】実施例２に係るＤＴＶの構成を示すブロック図である。
【図１０】実施例２における、印刷コンテンツ一時保存判定時刻の決定方法の概念図である。
【図１１】実施例２に係るＤＴＶが実行する印刷ドキュメント格納処理の流れを示すフローチャートである。
【図１２】実施例３に係るＤＴＶの構成を示すブロック図である。
【図１３】実施例３における、印刷コンテンツ一時保存判定時刻の決定方法の概念図である。
【図１４】実施例３に係るＤＴＶが実行する印刷ドキュメント格納処理の流れを示すフローチャートである。
【図１５】実施例４に係るＤＴＶが実行する印刷制御処理の流れを示すフローチャートである。
【図１６】実施例５に係るＤＴＶが実行する印刷制御処理の流れを示すフローチャートである。
【図１】
0004537437.tif 000002
【図２】
0004537437.tif 000003
【図３】
0004537437.tif 000004
【図４】
0004537437.tif 000005
【図５Ａ】
0004537437.tif 000006
【図５Ｂ】
0004537437.tif 000007
【図５Ｃ】
0004537437.tif 000008
【図６】
0004537437.tif 000009
【図７】
0004537437.tif 000010
【図８】
0004537437.tif 000011
【図９】
0004537437.tif 000012
【図１０】
0004537437.tif 000013
【図１１】
0004537437.tif 000014
【図１２】
0004537437.tif 000015
【図１３】
0004537437.tif 000016
【図１４】
0004537437.tif 000017
【図１５】
0004537437.tif 000018
【図１６】
0004537437.tif 000019