本発明は、放送受信装置、及びその制御方法に関し、特に、受信中の放送信号に含まれる印刷ドキュメントを印刷装置に印刷させる技術に関する。
デジタル放送では、データ放送がデジタル放送番組と共に提供される場合がある。データ放送用のデータ(データ放送データ)は、BML(Broadcast Markup Language)と呼ばれるXML(Extensive Markup Language)ベースのページ記述言語によって記述され得る。以下、BMLによって記述されたデータ放送データを「BMLデータ」と呼ぶ。BMLデータは、デジタルテレビ(DTV)などの放送受信装置が備えるBMLブラウザによって解析され、再生される。
データ放送のサービスの1つとして、印刷サービスがある。このサービスによれば、ユーザは、データ放送を視聴中に、データ放送データに含まれる所望の印刷ドキュメントを指定し、DTVに接続されたプリンタに印刷させることができる。印刷ドキュメントは、XHTML(Extensive Hyper Text Markup Language)に基づくフォーマットで提供される。データ放送の印刷サービスに関するデジタル放送規格や運用規定は、非特許文献1及び非特許文献2に記載されている。
データ放送と共に印刷サービスが提供される場合、BMLデータには、放送用拡張関数と呼ばれる、印刷を制御するための関数が記述されている。放送用拡張関数は、非特許文献1及び非特許文献2に定義されている。印刷に関する主な放送用拡張関数は、以下の4つである。
(1)printFile():DTVは、放送波から取得した印刷ドキュメント(XHTML-Print)をプリンタに転送する。プリンタは、転送された印刷ドキュメント(XHTML-Print)を基に印刷を行う。
(2)printTemplate():DTVは、放送波から印刷ドキュメント(XHTML-Print)の雛型ファイルを取得し、動的に加工した後、プリンタに転送する。プリンタは、転送された印刷ドキュメント(XHTML-Print)を基に印刷を行う。
(3)printStaticScreen():DTVは、表示されているデータ放送の画面をキャプチャして印刷ドキュメント(XHTML-Print)を生成し、生成した印刷ドキュメントをプリンタに転送する。プリンタは、転送された印刷ドキュメント(XHTML-Print)を基に印刷を行う。但し、データ放送の画面以外の画面(即ち、放送番組の映像)は印刷されない。
(4)printUri():印刷ドキュメント(XHTML-Print)がURI(Uniform Resource Identifier)によって指定されている。DTVは、URIをプリンタに通知する。プリンタは、指定されたURIから印刷ドキュメント(XHTML-Print)を取得して印刷を行う。従って、printUri()が使用される場合は、DTVは印刷ドキュメントを保持しない。
指定されたURIから印刷データを取得して印刷する技術として、特許文献1の技術が知られている。特許文献1によれば、印刷要求時に、プリンタが印刷できない状態なら、プリンタは印刷データを一時的に情報記憶装置等に保存しておき、必要なときに取り出して印刷する。
社団法人 電波産業会 標準規格 「デジタル放送におけるデータ放送符号化方式と伝送方式」 ARIB STD-B24 4.4版
社団法人 電波産業会 技術資料 「地上デジタルテレビジョン放送運用規定」ARIB TR-B14 2.7版
特開2006−126912号公報
データ放送の印刷コンテンツは放送番組との関連性が高い場合が多く、特定の印刷コンテンツが提供される時間は限られている。例えば、放送番組が終了すると、その放送番組に対応する印刷コンテンツの提供も終了することが多い。従って、印刷コンテンツの提供期間内にプリンタがDTVからの印刷指示を受け付けられない場合、ユーザは所望の印刷コンテンツを印刷することができない。このような状況は、例えば他のデバイス(例えば、パーソナルコンピュータ(PC))からの指示に従ってプリンタが印刷を実行中である場合などに発生する。
特に、コンシューマ向けプリンタはコストの低下を強く要求されるため、スプーラ機能を備えていないことが多く、複数の印刷指示を同時に受け付けることができない。そのため、ユーザが所望する印刷コンテンツの提供期間内に印刷指示が受け付けられないという状況が発生しやすい。
しかしながら、特許文献1は、放送番組終了等のタイミングで印刷コンテンツの提供が終了することを考慮していないので、印刷コンテンツの提供終了に起因する印刷失敗の問題を解決することができない。
本発明はこのような状況に鑑みてなされたものであり、提供期間が限られているデータ放送の印刷コンテンツの印刷失敗を抑制する技術を提供することを目的とする。
上記課題を解決するために、第1の本発明は、受信中の放送信号に含まれる印刷ドキュメントを印刷装置に印刷させる放送受信装置であって、前記印刷ドキュメントが放送信号に含まれて提供される期間である印刷提供期間の終了時刻と現在時刻との差分時間が、予め定められた比較時間以内であるか否かを判定する判定手段と、前記判定手段により、前記差分時間が前記比較時間以内であると判定された場合に、前記印刷ドキュメントを前記印刷装置がアクセス可能な蓄積部に格納するとともに、前記蓄積部に格納された前記印刷ドキュメントの格納位置を示す位置情報を取得する格納手段と、前記印刷ドキュメントの印刷を要求するための指示入力を受けた場合に、前記蓄積部に格納された前記位置情報を前記印刷装置へ送信する制御手段と、を備えることを特徴とする放送受信装置を提供する。
また、第2の本発明は、受信中の放送信号に含まれる印刷ドキュメントを印刷装置に印刷させる放送受信装置の制御方法であって、前記印刷ドキュメントが放送信号に含まれて提供される期間である印刷提供期間の終了時刻と現在時刻との差分時間が、予め定められた比較時間以内であるか否かを判定する判定工程と、前記判定工程により、前記差分時間が前記比較時間以内であると判定された場合に、前記印刷ドキュメントを前記印刷装置がアクセス可能な蓄積部に格納するとともに、前記蓄積部に格納された前記印刷ドキュメントの格納位置を示す位置情報を取得する格納工程と、前記印刷ドキュメントの印刷を要求するための指示入力を受けた場合に、前記蓄積部に格納された前記位置情報を前記印刷装置へ送信する制御工程と、を備えることを特徴とする制御方法を提供する。
なお、その他の本発明の特徴は、添付図面及び以下の発明を実施するための最良の形態における記載によって更に明らかになるものである。
以上の構成により、本発明によれば、提供期間が限られているデータ放送の印刷コンテンツの印刷失敗を抑制することが可能となる。
以下、添付図面を参照して、本発明の実施例を説明する。以下で説明される個別の実施例は、本発明の上位概念から下位概念までの種々の概念を理解するために役立つであろう。
なお、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施例によって限定されるわけではない。また、実施例の中で説明されている特徴の組み合わせすべてが、本発明に必須とは限らない。
以下、本発明の放送受信装置をデジタルテレビ(DTV)に適用した実施例について説明する。また、以下の各実施例では、印刷装置として、プリンタを採用する。
図1は、実施例1に係るDTV100及びプリンタ200を含む、印刷システム10の構成を示す概念図である。
印刷システム10において、放送受信装置としてのDTV100と、印刷装置としてのプリンタ200とが、イーサネット(登録商標)1100を介して接続されている。イーサネット(登録商標)1100は、ブロードバンドルータ600に接続され、DTV100及びプリンタ200は、ブロードバンドルータ600を介してインターネット800に接続可能である。
DTV100とプリンタ200とは、イーサネット(登録商標)1100を介したUPnP(Universal Plug & Play)ネットワークにより相互に接続されている。UPnPは、テレビやプリンタ等の機器を接続し、相互に機能を提供しあうことを可能とする技術標準仕様である。UPnPの技術標準仕様に関しては、説明を割愛するが、本実施例における印刷制御処理は、UPnP技術標準仕様に基づくアクションやイベント、送受信する状態変数を拡張することにより実現される。DTV100からプリンタ200に対する印刷命令として、UPnP技術標準仕様のPrint Enhancedで定義されているCreateJobV2()やCreateURIJob()が用いられる。
DTV100が、放送局900から送出されるデジタル放送信号を、アンテナ500を介して受信することにより、ユーザは、デジタル放送番組を視聴することができる。また、放送信号は、データ放送データも含むことができ、ユーザは、データ放送も視聴可能である。
放送局900は、データ放送データ内に印刷コンテンツ1000を含めて配信することができる。DTV100は、受信した印刷コンテンツ1000をプリンタ200に転送することにより、印刷コンテンツ1000を印刷できる(この印刷方式を「PUSH印刷」と呼ぶ)。
また、印刷コンテンツ1000は、印刷データの実体である印刷ドキュメントの代わりに、インターネット800に接続されたWWWサーバ400に存在する印刷ドキュメント700を指定する位置情報を含むこともできる。DTV100は、印刷ドキュメント700の位置情報(例えば、URI(Uniform Resource Identifier))をプリンタ200に通知する。プリンタは、指定されたURIから印刷ドキュメント700を取得して印刷する(この印刷方式を「PULL印刷」と呼ぶ)。
インターネット800には印刷ドキュメントを蓄積し、保存可能な一時保存WWWサーバ300(蓄積部)が接続されている。DTV100は、一時保存WWWサーバ300に対して印刷ドキュメントを転送(HTTP POST)して、一時保存WWWサーバ300内に格納することができる。また、DTV100は、格納された印刷ドキュメントを一時保存WWWサーバ300から取得(HTTP GET)することができる。また、プリンタ200も、格納された印刷ドキュメントを一時保存WWWサーバ300から取得(HTTP GET)することができる。
<プリンタ200の構成>
図2は、実施例1に係るプリンタ200の構成を示すブロック図である。プリンタ200は、以下の機能を有する。
・WWWサーバから印刷ドキュメント(XHTMLデータ)を取得する機能
・XHTMLデータを解釈して、印刷用データに変換する機能
・複数のCreateURIJob()をキューイングする機能(擬似スプール機能)
以下、プリンタ200の各ブロックについて説明する。
通信制御部209は、プリンタ200と、DTV100及びWWWサーバ400等の外部機器との通信を制御する。プリンタ200は、通信制御部209を介することで、DTV100、WWWサーバ400、又は一時保存WWWサーバ300等の外部機器から印刷ドキュメント(XHTML-Print)を取得することができる。
印刷データ変換部205は、印刷ドキュメントを構文解析して、印刷用データに変換して出力する機能をもっている。
メモリ部204は、印刷ジョブに対応した印刷ドキュメントを1つ保持することができる。また、メモリ部204は、印刷用データを保持することができる。
印刷要求制御部201は、通信制御部209を介して外部機器からCreateJobV2()又はCreateURIJob()を受け付ける。印刷要求制御部201は、印刷制御部202にCreateJobV2()又はCreateURIJob()から取得した情報を通知する。
印刷要求制御部201は、同時に複数のCreateURIJob()を受け付けることができ、CreateURIJob()に関する情報をメモリ部204にキューイングする機能をもつ(擬似スプール機能)。但し、印刷ドキュメントはメモリ部204に1つしか保持されない。従って、プリンタ200は、CreateJobV2()については、同時に複数受け付けることができない。なお、本実施例では説明を簡略化するために、プリンタ200はCreateJobV2()を複数同時には受け付けないものとするが、CreateJobV2()を複数同時に受け付けられる場合でも本実施例の構成による効果は得られる。
印刷要求制御部201は、CreateJobV2()又はCreateURIJob()を受け付けると、印刷ジョブIDを発行し、通信制御部209を介して外部機器に通知する。
印刷制御部202は、印刷実行部203に対して印刷開始、印刷中断等の命令を行う。
印刷実行部203は、印刷制御部202から印刷実行命令を受け付けて、紙等の記録媒体に印刷を行う。
<プリンタ200におけるCreateURIJob()に基づく印刷処理>
図3は、プリンタ200が、CreateURIJob()を受け付けたときに実行する印刷処理の流れを示すフローチャートである。
S301で、印刷要求制御部201は、通信制御部209を介してDTV100等の外部機器からCreateURIJob()を受け付ける。
S302で、印刷要求制御部201は、印刷制御部202に対して印刷実行部203の状態を確認するように要求する。印刷制御部202は、印刷実行部203が印刷可能な状態か否かを判定する。印刷可能な状態であると判定された場合はS306に進む。
S306で、印刷要求制御部201が印刷ジョブIDを発行し、通信制御部209を介して外部機器に印刷ジョブIDを通知する。続いて、S307に進む。
一方、S302において、印刷実行部203が印刷不可能な状態であると判定された場合は、S303に進む。例えば、印刷実行部203が既に印刷を実行している場合や、紙詰まり等が発生し回復のために人為的な作業が必要な場合などに、印刷実行部203は印刷不可能な状態であると判定される。
S303で、印刷要求制御部201は、CreateURIJob()に関する情報をメモリ部204にキューイングする(擬似スプーラ機能)。
S304で、印刷要求制御部201は印刷ジョブIDを発行し、通信制御部209を介して外部機器に印刷ジョブIDを通知する。
S305で、印刷制御部202は、印刷実行部203が印刷可能な状態になるまで処理を待機し、印刷実行部203が印刷可能な状態になるとS307に進む。
S307で、印刷制御部202は、CreateURIJob()で指定されたURIから印刷ドキュメントを取得し、メモリ部204に印刷ドキュメントを蓄積する。
S308で、印刷制御部202は、印刷データ変換部205に対して印刷データ変換要求を行う。印刷データ変換部205は、メモリ部204から印刷ドキュメントを取得する。印刷データ変換部205は、印刷ドキュメントを構文解析し、印刷用データに変換する。変換された印刷用データは、メモリ部204に蓄積される。印刷制御部202は、印刷用データをメモリ部204から取得して印刷実行部203に渡す。印刷実行部203は、印刷用データを基に印刷を実行する。印刷制御部202は、印刷ジョブのステータスを実行中に設定する。
印刷実行部203において印刷が完了すると、S409で、印刷制御部202は、印刷要求制御部201に対して印刷が完了したことを通知する。印刷要求制御部201は、印刷ジョブのステータスを完了に設定する。印刷制御部202は、CreateURIJob()を発行した外部機器に対して印刷が完了したことを通知する。
<DTV100の構成>
図4は、実施例1に係るDTV100の構成を示すブロック図である。まず、本実施例に関する主要ブロックについて以下に説明する。主要ブロックは、通信制御部130、データ放送制御部116、データ放送ブラウズ処理部117、印刷制御部120、印刷要求種別判定部121、印刷要求結果判定部122、印刷要求変換部123である。
通信制御部130は、プリンタ200及びWWWサーバ400等の外部機器と、DTV100との通信を制御する機能をもつ。通信制御部130は、イーサネット(登録商標)1100を介して、プリンタ200、一時保存WWWサーバ300、及びWWWサーバ400に接続される。
データ放送ブラウズ処理部117は、放送局900からデジタル放送番組と共に提供されるBMLデータを構文解析する機能をもつ。データ放送ブラウズ処理部117は、BMLデータの構文解析結果を、データ放送制御部116に出力する。
データ放送制御部116は、データ放送ブラウズ処理部117から取得したBMLデータの構文解析結果に基づいて、各ブロックに命令する機能をもつ。データ放送制御部116は、グラフィック生成部118に対して制御命令を出して、映像表示部108に映像を出力する。また、BMLデータに放送用拡張関数が記述されている場合は、データ放送制御部116は、印刷制御部120に対して放送用拡張関数を呼び出す。
印刷制御部120は、印刷の制御全般に係る機能を備える。印刷制御部120は、印刷要求種別判定部121、印刷要求結果判定部122、印刷要求変換部123を備える。
印刷要求種別判定部121は、印刷制御部120で受け付けた放送用拡張関数が、PUSH印刷のための関数であるかPULL印刷のための関数であるかを判定する。印刷要求種別判定部121は、放送用拡張関数を入力とし、判定結果を出力する。
印刷要求結果判定部122は、印刷制御部120が通信制御部130を介してプリンタ200に対して発行したCreateJobV2()又はCreateURIJob()の結果を判定する。
印刷要求変換部123は、プリンタ200に発行するCreateJobV2()を、CreateURIJob()に置き換える機能をもつ。
次に、図4のDTV100が有する選局処理機能、データ放送受信機能、データ放送印刷機能について以下に説明する。
●DTV100の選局処理機能
選局処理機能とは、DTV100がアンテナ500を介しチューナ部101によりデジタル放送信号を受信し、選択されたチャンネルの映像や番組情報等を映像表示部108に表示したり、音声を音声出力部109から出力したりする機能である。ユーザは、リモコン152を操作することによりチャンネルを選択することができる。
以下、DTV100が選局処理を行うための内部動作について説明する。
システム制御部111は、受光部112を介して受信するユーザのリモコン152の操作による操作情報に基づき、ユーザが所望するチャンネルを判定し、選局制御部113に選局を要求する。
選局制御部113は、選局要求に基づき、チューナ部101、データ分離部102の選局制御を開始する。
チューナ部101は、入力された放送信号に対し、復調、誤り訂正等の処理を行い、トランスポートストリーム(TS:Transport Stream)を形成し、データ分離部102に出力する。TSには、複数のチャンネルに関わる映像、音声、番組情報データ、及び現在時刻情報が多重化されている。番組情報は、番組名、番組内容説明、放送チャンネル、放送時間情報(開始時刻と継続時間)、番組ジャンル情報等を含む。現在時刻情報は、年月日、時分秒情報を含む。
データ分離部102は、TSから所望のチャンネルに関わる映像、音声、番組情報データ及び現在時刻情報の分離(抽出)を行う。
データ分離部102で分離された映像データは、映像デコード部103に出力され、MPEG等の復号化処理が施される。また音声データは、音声デコード部104に出力され、MPEG等の復号化処理が施された後、音声制御部107に出力される。番組情報データは、メモリ部114に蓄積される。現在時刻情報は、システムバス110を介し、タイマー部115に出力される。タイマー部115は、時刻情報のカウントを行う。
映像デコード部103が復号した映像データは、表示合成部105を介し、表示制御部106に出力される。表示制御部106は、映像データを映像表示部108の表示解像度、表示色数、リフレッシュレートに適した表示データ、タイミングに変換し、映像表示を行う。
表示合成部105は、映像デコード部103で復号された映像データとグラフィック生成部118が生成するグラフィックデータとを合成する機能を有する。
音声制御部107は、音声データのボリュームレベル等を変更する機能を有する。
選局制御部113は、上述の選局処理動作が正常に完了すると、選局したチャンネル情報をメモリ部114に蓄積する。
●DTV100のデータ放送のブラウズ機能
データ放送ブラウズ機能とは、データカルーセル方式により放送局から繰り返し送出されるデータ放送データに含まれる映像及び音声を、映像表示部108に表示したり音声出力部109から出力したりする機能である。
図5A〜Cに、実施例1に係る印刷制御処理に利用されるデータ放送データの一例を示す。図5A〜Cに示すデータ放送データには、テキスト情報、表示レイアウト情報、スクリプト情報、静止画像情報、及び音声情報等が含まれている。
テキスト情報は、BMLによって記述されている。表示レイアウト情報は、CSS(カスケーディング・スタイルシート)を、スクリプト情報は、ECMAScriptをそれぞれ用いている。更に、BMLデータの論理的構造や情報へのアクセス、及び操作を行うための手段として、DOM(Document Object Model)が用いられる。
図5A〜Cの例では、<head></head>タグに囲まれた部分に、文書の名前を示す<title>要素や、スクリプトの定義を示す<script>要素が含まれる。また、本文を示す<body>要素の中に、画像や映像、音声を示す<object>要素、画面上の領域を示す<div>要素、文を示す<p>要素などが含まれる。各要素にはCSSに従ったスタイル属性が記述されており、表示する際の座標、大きさ、色などの設定がなされている。
図6は、図5A〜Cに示したBMLデータを解析し、映像表示部108に表示した際の表示例を示す図である。
図7は、実施例1に係るDTV100のリモコン152の構成を示す図である。
システム制御部111は、受光部112を介し受信するユーザのリモコン152の操作による操作情報に基づき、データ放送ブラウズ要求を検出し、データ放送制御部116にデータ放送ブラウズ処理開始を要求する。
データ放送制御部116は、メモリ部114に蓄積されたデータ放送データを取得する。メモリ部114にブラウズで必要なデータが蓄積されていない場合、データ放送制御部116は、データ分離部102に対し、データ放送データの取得要求を行う。
データ放送制御部116は、取得したデータ放送データをデータ放送ブラウズ処理部117に送り、ブラウズ処理を要求する。
データ放送ブラウズ処理部117は、上記BMLデータと関連する画像などを取得すると、<body>タグのOnload属性に記述されたスクリプト関数を初期スクリプトとして実行する。本実施例では、start()関数が初期スクリプトである。
start()関数の中では、まず、DTV100が印刷機能を有しているかを問い合わせる関数が呼び出される。データ放送ブラウズ処理部117は、BMLデータにgetBrowserSupport()という放送用拡張関数が記述されていることを、データ放送制御部116に対して通知する。データ放送制御部116は、印刷制御部120に対してgetBrowserSupport()を呼び出す。getBrowserSupport()は、引数として、「"ARIB","APIGroup","Print.Basic"」という文字列を与えると、「1」又は「0」の値を返す。「1」は、印刷機能を有していることを意味し、「0」は印刷機能を有していないことを示す。本実施例では、DTV100は印刷機能を有するため、このAPIの戻り値は「1」となる。
start()関数の中では、次に、getBrowserSupport()の戻り値により、図6の601で示す領域にボタンイメージやテキスト情報を描画するかどうかが決定される。
データ放送ブラウズ処理部117は、初期スクリプト実行結果をデータ放送制御部116に通知する。データ放送制御部116は、グラフィック生成部118、表示合成部105を介して、ボタンイメージやテキスト情報の描画を行う。その動作と共に、表示合成部105は、映像デコード部103からの動画像との合成処理を行う。
図6において、604で示す領域には、映像デコード部によってデコードされた動画像が表示される。また、図6の画面右側には、天気予報や交通情報等の詳しい情報へ表示画面を遷移させるためのボタン(「天気予報を見る」ボタン605、「交通情報を見る」ボタン606、「最新ニュースを見る」ボタン607)が表示されている。図6の画面を表示中、ユーザがリモコンのカーソルキー701を操作することにより、フォーカス608を移動させ、所望のボタンの位置(605、606、607のいずれか)で決定キーを押すことで、表示画面を遷移させることができる。
●DTV100のデータ放送の印刷機能
データ放送の印刷機能とは、データカルーセル方式により放送局から繰り返し送出されるデータ放送と共に提供される印刷ドキュメント(即ち、受信中の放送信号に含まれる印刷ドキュメント)を取得し、プリンタ200に転送して、印刷させる機能である。但し、放送用拡張関数としてprintUri()が使用される場合、印刷ドキュメントはデータ放送データに含まれない。この場合、DTV100は、printUri()が示すURIをプリンタ200へ送信して、このURIに基づいて印刷ドキュメントを取得して印刷するようにプリンタ200に指示する。プリンタ200は、インターネット800のWWWサーバ400、又は一時保存WWWサーバ300から印刷ドキュメントを取得して印刷を行う。
<印刷制御処理の流れ>
図8は、実施例1に係るDTV100が実行する印刷制御処理の流れを示すフローチャートである。
S801で、データ放送制御部116は、BMLデータに含まれる放送拡張関数に対応する印刷の指示入力を受け付ける。具体的には、ユーザは、図6に示すようなデータ放送画面を視聴しているときに、リモコン152の赤キー704、又は緑キー705を押下することにより、受光部112を介してデータ放送制御部116に対して印刷指示を入力する。データ放送ブラウズ処理部117は、データ放送制御部116の指示に従い、BMLデータを解析する。BMLデータの解析結果に従い、データ放送制御部116は、印刷制御部120に対して放送用拡張関数を呼び出す。
BMLデータが図5A〜Cに示されるものである場合、リモコン152の赤キー704が押されると、データ放送制御部116は、印刷制御部120に対して放送用拡張関数printFile()を呼び出す。リモコン152の緑キー705が押されると、データ放送制御部116は印刷制御部120に対して、放送用拡張関数printUri()を呼び出す。
S802で、印刷制御部120の印刷要求種別判定部121は、データ放送制御部116から受け付けた放送用拡張関数の種別により、要求された印刷がPUSH印刷かPULL印刷かを判定する。放送用拡張関数printFile()はPUSH印刷、printUri()はPULL印刷、printTemplate()はPUSH印刷、printStaticScreen()はPUSH印刷にそれぞれ対応する。印刷要求種別判定部121において放送用拡張関数がPUSH印刷であると判定された場合は、S803に進む。そうでない場合は、DTV100は印刷ドキュメントではなくURIをプリンタ200へ送信すればよいので、S803乃至S807の処理を行う必要がないため、S808へ進む。
S803で、印刷制御部120はプリンタ200に対してCreateJobV2()を発行する(第2印刷指示)。このとき、BMLデータに含まれる印刷対象の印刷ドキュメントが、プリンタ200へ送信される。
S804で、印刷制御部120の印刷要求結果判定部122は、プリンタ200に対して発行したCreateJobV2()が受け付けられたか否かを判定する。印刷制御部120が、予め定められた時間以内にプリンタ200から印刷ジョブIDを取得できなかった場合は、CreateJobV2()が受け付けられなかったと判断し、S805に進む。印刷制御部120が、プリンタ200から印刷ジョブIDを取得できた場合は、CreateJobV2()が受け付けられたと判断する。この場合、印刷ドキュメントがプリンタ200のメモリ部204に既に格納されており、印刷が失敗する可能性は低いので、S809に進む。
S805で、印刷制御部120の印刷要求変換部123は、印刷ドキュメント内の、PUSH印刷用のデータであることを示す記述を、PULL印刷用のデータを示す記述に変更する。また、印刷ドキュメントが複数のモジュールから構成される場合、印刷要求変換部123は、モジュールのマルチパート処理を実行してヘッダを付加して、印刷ドキュメントを構成する。
S806で、印刷制御部120は、インターネット800に接続された一時保存WWWサーバ300に印刷ドキュメントを転送して格納し、格納位置を示す位置情報(URI)を取得する。
S807で、印刷要求変換部123は、一時保存WWWサーバ300に格納した印刷ドキュメントのURIを印刷ドキュメント取得先として設定し、CreateJobV2()をCreateURIJob()に置き換える。
S808で、印刷制御部120は、プリンタ200に対してCreateURIJob()を発行する(第1印刷指示)。プリンタ200は、CreateURIJob()を印刷要求制御部201で受け付ける。印刷要求制御部201は、CreateURIJob()を受け付けると、印刷制御部120に印刷ジョブIDを返す。プリンタ200の印刷実行部203が既に他の印刷ジョブを実行中であっても、印刷要求制御部201は、CreateURIJob()を受け付けて印刷制御部120に印刷ジョブIDを返す。印刷制御部120は、印刷ジョブIDの取得により、CreateURIJob()が受け付けられたことを確認する。
S809で、印刷制御部120は、プリンタ200に対して印刷が完了したか問い合わせ、印刷結果を確認する。DTV100が印刷結果を確認する方法として、DTV100が定期的にプリンタ200に対して印刷結果を確認する方法と、印刷が完了したらプリンタ200がDTV100に通知する方法がある。本実施例では、DTV100が定期的にプリンタ200に対して印刷結果を確認するものとするが、プリンタ200がDTV100に通知する方法を採用してもよい。なお、印刷結果の確認方法は、上記の方法のみに限定されるものではない。印刷制御部120は、印刷完了を確認すると、一時保存WWWサーバ300に保存した印刷ドキュメントの削除を要求する。
図8に示すフローチャートでは、PUSH印刷が失敗した場合にのみPUSH印刷のPULL印刷への変換が行われた(S804参照)。しかし、PUSH印刷を必ずPULL印刷へ変換するようにDTV100を構成してもよい。具体的には、S803及びS804を削除し、S802においてPUSH印刷と判定された場合、必ずS805以降の処理が実行されるようにすればよい。
また、本実施例では、インターネット800に接続された一時保存WWWサーバ300に印刷ドキュメントを保存したが、DTV100の内部に一時保存WWWサーバ300を設けることも可能である。DTV100内部に、一時保存WWWサーバ300を設けることで、S806における印刷ドキュメントの転送時間を短縮することができる。
また、本実施例では、1台の一時保存WWWサーバ300を利用して印刷ドキュメントの保存を行ったが、複数の一時保存WWWサーバ300が印刷システム10に含まれていてもよい。即ち、一時保存WWWサーバ300は、DTV100及びプリンタ200からアクセス可能であれば、どこに配置されていてもよい。
また、本実施例では、1回のCreateJobV2()の結果に基づいて、CreateURIJob()への変換の要否が判断されたが、CreateJobV2()が失敗した場合、CreateJobV2()をリトライするようにDTV100を構成してもよい。この場合、リトライも失敗した場合に、DTV100はCreateJobV2をCreateURIJob()に変換する。
以上説明したように、実施例1によれば、DTV100は、PUSH印刷の指示を受けた場合、印刷対象の印刷ドキュメントをサーバに格納し、PUSH印刷をPULL印刷に変換してプリンタ200に印刷を指示する。
これにより、提供期間が限られているデータ放送の印刷コンテンツの印刷失敗を抑制することが可能となる。
また、DTV100は、PUSH印刷の指示がプリンタ200に受け付けられなかった場合にのみ、上述の変換を行う。そのため、例えばプリンタ200がアイドル状態などの場合にまで追加的な処理(印刷ドキュメントのサーバへの格納など)が実行されることが抑制される。
実施例1では、PUSH印刷の指示が受け付けられたか否かに基づいて、PUSH印刷のPULL印刷への変換を行うか否かが判定された。実施例2では、DTVが印刷指示を受信したか否かに関わらず、印刷コンテンツを取得可能な期間の終了が近づくと、PUSH印刷のPULL印刷への変換が行われる。
実施例2において、印刷システムの構成は実施例1と同様であるため、説明を省略する(図1参照)。
図9は、実施例2に係るDTV4000の構成を示すブロック図である。図9において、図4と同様の機能を持つブロックには同一の符号を付し、説明を省略する。
DTV4000の印刷制御部120は、印刷コンテンツ取得可能期間判定部125、及び一時保存要否判定部124を備える。
印刷コンテンツ取得可能期間判定部125は、タイマー部115から取得する現在時刻情報と、メモリ部114から取得する放送番組終了時刻(放送番組開始時刻に継続時間を加えた時刻)とに基づいて、印刷ドキュメントを取得可能な期間を算出する。
一時保存要否判定部124は、印刷コンテンツ取得可能期間判定部125の算出結果に基づき、印刷ドキュメントの一時保存(一時保存WWWサーバ300への格納)の要否を判定する。一時保存する必要があると判定された場合には、DTV4000は印刷ドキュメントを取得後、一時保存WWWサーバ300に転送する。
印刷ドキュメントの一時保存要否判定方法について、図10及び図11を参照して説明する。
図10に示すように、現在、デジタル放送番組A1006が放送されているものとする。デジタル放送番組A1006は、放送開始時刻1001から放送終了時刻1005まで放送される。デジタル放送番組Aの放送終了時刻1005と同時刻に、デジタル放送番組B1007の放送が開始する。デジタル放送番組A1006の放送時間の全期間に亘って、印刷コンテンツ1008が提供される。ユーザは、データ放送視聴開始時刻1002に、データ放送1009の視聴を開始する。図11に示す処理は、印刷コンテンツ1008の提供期間中に、定期的に実行される。
S1101で、印刷制御部120の印刷要求種別判定部121は、データ放送ブラウズ処理部117に対して、BMLデータ中に放送用拡張関数が記述されているか否かを問い合わせる。データ放送ブラウズ処理部117は、BMLデータを構文解析して放送用拡張関数が記述されているか否かを確認する。データ放送ブラウズ処理部117が、図5A〜Cに示すBMLデータを解析すると、符号501、符号502で示されるように、放送用拡張関数printFile()、及びprintUri()が検出される。
S1102で、印刷要求種別判定部121は、PUSH印刷のための放送用拡張関数がS1101で検出されたか否かを判定する。検出された場合はS1103に進み、検出されなかった場合は処理を終了する。
S1103で、印刷制御部120は、タイマー部115から現在時刻情報を取得する。
S1104で、印刷制御部120は、データ分離部102がTS(Transport Stream)から分離してメモリ部114に蓄積した番組情報データから、放送番組終了時刻情報を取得する。
S1105で、一時保存要否判定部124は、印刷コンテンツ一時保存要否閾値1004を取得する。印刷コンテンツ一時保存要否閾値1004は、例えば予め決定された値がメモリ部114内に格納されている。印刷コンテンツ一時保存要否閾値1004は、任意に決めて構わない。ここでは、印刷コンテンツ一時保存要否閾値1004を5分とする。
S1106で、印刷制御部120の一時保存要否判定部124は、現在時刻情報と放送番組終了時刻情報とに基づいて、印刷ドキュメントを一時保存WWWサーバ300に格納するか否かを判定する。
具体的には、一時保存要否判定部124は、デジタル放送番組A1006の放送終了時刻1005から、印刷コンテンツ一時保存要否閾値1004を引くことにより、印刷コンテンツ一時保存時刻1003を算出する。印刷コンテンツ一時保存要否閾値1004を5分、デジタル放送番組A1006の放送終了時刻1005が10時00分とした場合、印刷コンテンツ一時保存時刻1003は、9時55分である。現在時刻が、印刷コンテンツ一時保存時刻1003よりも前であれば、一時保存要否判定部124は、印刷ドキュメントの一時保存WWWサーバ300への保存は不要であると判断する。反対に、現在時刻が、印刷コンテンツ一時保存時刻1003よりも後であれば、一時保存要否判定部124は、印刷ドキュメントの一時保存WWWサーバ300への保存は必要であると判断する。
即ち、一時保存要否判定部124は、9時55分〜10時00分の期間は、印刷ドキュメントの一時保存が必要であると判断する。印刷ドキュメントの一時保存が不要であると判断された場合には、処理を終了する。印刷ドキュメントの一時保存が必要であると判断された場合には、S1107に進む。換言すれば、一時保存要否判定部124は、印刷コンテンツの提供期間が終了するまでの時間が予め定められた時間以内であるか否かを判定し、予め定められた時間以内である場合にS1107に進む。
S1107で、印刷制御部120の印刷要求変換部123は、印刷ドキュメント内の、PUSH印刷用のデータであることを示す記述を、PULL印刷用のデータを示す記述に変更する。また、印刷ドキュメントが複数のモジュールから構成される場合、印刷要求変換部123は、モジュールのマルチパート処理を実行してヘッダを付加して、印刷ドキュメントを構成する。
S1108で、印刷制御部120は、インターネット800に接続された一時保存WWWサーバ300に印刷ドキュメントを転送して格納し、格納位置を示す位置情報(URI)を取得する。印刷ドキュメントの転送が完了すると、印刷制御部120は、印刷要求結果判定部122の印刷要求変換フラグを「1」にセットすると共に、取得したURIを印刷要求結果判定部122に記憶させる。印刷要求変換フラグの初期値は、「0」である。印刷要求変換フラグは、印刷ドキュメントを一時保存WWWサーバ300に保存したか否かを判別するためのフラグである。
以上の処理により、印刷ドキュメントの一時保存WWWサーバ300への格納が完了する。
次に、ユーザがDTV4000に印刷要求を与えたときの処理について説明する。ユーザから印刷要求1012を受け付けると、データ放送制御部116は、印刷制御部120に対して放送用拡張関数を呼び出す。データ放送制御部116から呼ばれた放送用拡張関数がPUSH印刷のための関数である場合、印刷制御部120は、印刷要求結果判定部122の印刷要求変換フラグを確認する。
印刷要求変換フラグが「0」であれば、データ放送制御部116から呼ばれた放送用拡張関数に従って、印刷制御部120はプリンタ200に対してCreateJobV2()を発行する。
印刷要求変換フラグが「1」であれば、印刷ドキュメントが一時保存WWWサーバ300に格納されている。そこで、印刷要求変換部123は、一時保存WWWサーバ300に保存された印刷ドキュメントのURIを設定して、CreateJobV2()をCreateURIJob()に変換する。
次いで、印刷制御部120は、プリンタ200に対してCreateURIJob()を発行する。プリンタ200はCreateURIJob()を受け付けると、印刷制御部120対して印刷ジョブIDを返す。印刷制御部120は、印刷ジョブIDを取得したことによって、CreateURIJob()が受け付けられたと判断する。
プリンタ200は、格納された印刷ドキュメントを一時保存WWWサーバ300から取得し、印刷を開始する(印刷開始1013)。このとき、デジタル放送番組A1006の印刷コンテンツ1008の提供期間は既に終了しているが、一時保存WWWサーバ300に印刷ドキュメントが存在するため、プリンタ200は印刷ドキュメントを取得して印刷することができる。
なお、以上の説明では、デジタル放送番組の放送期間と印刷コンテンツの提供期間とが一致することを前提としたが、これらが一致しなくても構わない。この場合、S1104で、印刷制御部120は、印刷コンテンツの提供終了時刻を取得し、以降の処理ではこれを放送番組終了時刻の代わりに使用する。
以上説明したように、実施例2によれば、DTV4000は、印刷コンテンツの提供期間の終了が近づくと、PUSH印刷用の印刷ドキュメントを一時保存WWWサーバ300に格納する。その後ユーザが印刷要求を行った場合、DTV4000は、PUSH印刷をPULL印刷に変換して、プリンタ200に印刷を指示する。
これにより、提供期間が限られているデータ放送の印刷コンテンツの印刷失敗を抑制することが可能となる。
なお、印刷コンテンツの提供期間の終了時刻とは無関係に、データ放送1009の視聴が開始されたタイミング、即ちデータ放送視聴開始時刻1002にPUSH印刷のPULL印刷への変換を行うようにDTV4000を構成してもよい。即ち、データ放送制御部116がデータ放送の再生を開始すると図11のフローチャートの処理を開始するようにDTV4000を構成する。このとき、図11は、S1103乃至S1106が削除され、S1102でPUSH印刷のための放送用拡張関数が検出された場合にS1107に進むように変形される。
実施例3では、所謂タイムシフト視聴を考慮する。実施例2では、現在時刻と放送番組終了時刻とに基づいて、印刷ドキュメントの一時保存要否が判定された。実施例3では、タイムシフト視聴時に、現在時刻と、放送番組終了時刻と、タイムシフト視聴終了時刻とに基づいて、印刷ドキュメントの一時保存要否が判定される。
実施例3において、印刷システムの構成は実施例1と同様であるため、説明を省略する(図1参照)。
図12は、実施例3に係るDTV5000の構成を示すブロック図である。図12において、図9と同様の機能を持つブロックには同一の符号を付し、説明を省略する。
DTV5000は、タイムシフト視聴制御部1601、及びタイムシフト再生速度判定部1602を備える。
タイムシフト視聴制御部1601は、タイムシフト視聴を制御する機能をもつ。タイムシフト視聴とは、デジタル放送番組を実際の放送のタイミングからずれたタイミングで視聴する機能である。タイムシフト視聴中は、等倍再生、1.2倍再生、倍速再生等、タイムシフト再生速度を指定できる。タイムシフト視聴を実現するために、タイムシフト視聴制御部1601は例えば、放送中の放送信号をメモリ部114に一時的に記憶する。そして、予め定められた時間(通常は、短時間)が経過した後に、記憶された放送信号をメモリ部114から取得する。データ放送制御部116や印刷制御部120は、メモリ部114から取得された放送信号を、アンテナ500から受信中の放送信号と同様に扱うことができる。
タイムシフト再生速度判定部1602は、タイムシフト再生速度を判定する機能をもつ。タイムシフト再生速度判定部1602は、等倍再生、1.2倍再生、倍速再生等の情報を出力する。
印刷ドキュメントの一時保存要否判定方法について、図13及び図14を参照して説明する。図13及び図14において、図10及び図11と同一の要素には同一の符号を付し、説明を省略する。
図13に示すように、現在、デジタル放送番組A1006が放送されているものとする。デジタル放送番組A1006は、放送開始時刻1001から放送終了時刻1005まで放送される。デジタル放送番組Aの放送終了時刻1005と同時刻に、デジタル放送番組B1007の放送が開始する。デジタル放送番組A1006の放送時間の全期間に加えて、延長視聴時間1318に亘って、印刷コンテンツ1008が提供される。ユーザは、タイムシフト視聴開始時刻1303に、タイムシフト視聴1311を開始する。また、ユーザは、データ放送視聴開始時刻1002に、データ放送1009の視聴を開始する。図14に示す処理は、タイムシフト視聴終了時刻1307に到達するまでの間、定期的に実行される。
図14のS1405で、印刷制御部120は、タイムシフト再生に関する情報を取得する。具体的には、印刷制御部120は、タイムシフト視聴制御部1601に対して、現在タイムシフト再生中かどうか問い合わせる。タイムシフト再生中なら、タイムシフト視聴制御部1601は、タイムシフト再生速度判定部1602に対して現在のタイムシフト再生速度を問い合わせる。タイムシフト視聴制御部1601は、タイムシフト再生の有無、タイムシフト再生速度、及びタイムシフト時間1319を印刷制御部120に通知する。タイムシフト時間1319は、現在放送中の番組の進行と、タイムシフト視聴している番組の進行の差分を示す。
S1406で、印刷制御部120の一時保存要否判定部124は、現在時刻情報、タイムシフト再生の有無、タイムシフト時間1319、及びタイムシフト再生速度に基づいて、タイムシフト視聴終了時刻1307を算出する。タイムシフト視聴終了時刻1307で、タイムシフト視聴が終了する。
S1408で、印刷制御部120の一時保存要否判定部124は、現在時刻情報と、放送番組終了時刻情報と、タイムシフト視聴終了時刻情報とに基づいて、印刷ドキュメントを一時保存WWWサーバ300に保存するか否かを判定する。
具体的には、一時保存要否判定部124は、タイムシフト視聴終了時刻1307からデジタル放送番組A1006の放送終了時刻1005を引くことにより、延長視聴時間1318を算出する。更に、デジタル放送番組A1006の放送終了時刻1005から、印刷コンテンツ一時保存要否閾値1004を引いた時刻に、延長視聴時間1318を加えることにより、印刷コンテンツ一時保存時刻1304を算出する。
印刷コンテンツ一時保存要否閾値1004が5分、デジタル放送番組A1006の放送終了時刻1005が10時00分、延長視聴時間1318が2分だった場合、印刷コンテンツ一時保存時刻1304は、9時57分である。
現在時刻が、印刷コンテンツ一時保存時刻1304よりも前であれば、一時保存要否判定部124は、印刷ドキュメントの一時保存WWWサーバ300への保存が不要であると判断する。反対に、現在時刻が、印刷コンテンツ一時保存時刻1304よりも後であれば、一時保存要否判定部124は、印刷ドキュメントの一時保存WWWサーバ300への保存が必要であると判断する。
即ち、一時保存要否判定部124は、9時57分〜10時02分の期間は、印刷ドキュメントの一時保存が必要であると判断する。印刷ドキュメントの一時保存が不要であると判断された場合には、処理を終了する。印刷ドキュメントの一時保存が必要であると判断された場合には、S1107に進む。
以上説明したように、実施例3によれば、DTV5000は、タイムシフト視聴に伴う延長視聴時間1318も考慮に入れて、印刷コンテンツの提供期間の終了が近づいているか否かを判断する。
タイムシフト視聴中は、放送番組が終了しても印刷コンテンツの提供が継続しているが、以上の構成によれば、印刷ドキュメントの保存を開始する時刻を遅らせることができる。
実施例4は、プリンタが複数のCreateJobV2()をキューイング可能な機能(スプーラ機能)を備える場合に適するように、実施例1を変形したものである。
本実施例において、印刷システム10、DTV100、及びプリンタ200の構成は実施例1と同様であるため、説明を省略する(図1、図2、及び図4参照)。
本実施例では、DTV100がプリンタ200のキューの状態を取得して、その状態に応じて、その後のDTV100の動作を変化させる。また、プリンタ200は、実施例1で説明した3つの機能(<プリンタ200の構成>の欄を参照)に加えて、以下の機能を有する。
・複数のCreateJobV2()をキューイングする機能(スプーラ機能)
この場合、印刷要求制御部201は、CreateJobV2()を同時に複数受け付けることができ、印刷ドキュメントをメモリ部204に複数保持できる。
即ち、プリンタ200は、スプール機能として、通常のスプール機能と、実施例1で説明した擬似スプール機能の2つを備え、メモリ部204内に、それぞれに対応した不図示の「キュー」および「擬似キュー」を持つ。つまり、プリンタ200のサポートするキューには以下の2つがある。
A.CreateURIJob()をキューイングするキュー(擬似キュー)
B.CreateJobV2()をキューイングするキュー(キュー)
また、印刷要求制御部201内に、「キュー」および「擬似キュー」を制御する不図示の「キュー制御部」を持つ。
図15は、実施例4に係るDTV100が実行する印刷制御処理の流れを示すフローチャートである。ユーザが図6のようなデータ放送画面から印刷要求を発行した場合に、本フローチャートの処理が実行される。
S1501で、DTV100は、プリンタの状態を取得する。具体的には、UPnP技術標準仕様のPrint Enhancedで定義されているGetPrinterAttributesV2()を発行し、プリンタ200の状態を取得する。ここで、プリンタ200の状態とは以下の3つがある。
(1)idle(アイドル状態)
(2)processing(動作中状態)
(3)stopped(止まった状態)
(1)の場合、プリンタ200はジョブを受け付けることができる。これに対して、(2)や(3)の場合、ジョブを受け付けられるかどうかは、プリンタ200のサポートするキューの数によって異なるため、分からない。
S1502で、DTV100は、S1501で取得したプリンタ200の状態を判断し、idle状態の場合、S1503に進む。また、processing状態又はstopped状態の場合、S1506に進む。
S1503で、DTV100は、PUSH印刷が行われるか否かを判定する(判定方法は、図8のS801及びS802と同様)。S1503では、プリンタ200がidle状態のため、PUSH印刷もPULL印刷も受け付けることができるので、判断されたジョブに応じて、S1504又はS1505に進む。
S1504で、DTV100は、UPnP技術標準仕様のPrint Enhancedで定義されているCreateURIJob()を発行する。
S1505で、DTV100は、UPnP技術標準仕様のPrint Enhancedで定義されているCreateJobV2()を発行する。
一方、S1506では、プリンタ200がprocessing状態又はstopped状態なので、プリンタ200がPUSH印刷やPULL印刷を受け付けられるかどうかは、プリンタ200のサポートするキューの数によって異なるため、分からない。しかしながら、UPnP技術標準仕様のPrint Enhancedでは、プリンタのキューの情報を取得するコマンドは定義されていない。そこで、DTV100は、プリンタ200のサポートするキューの数を取得するために、ベンダー独自コマンドであるGetPrinterQueueInformation()を発行する。このコマンドを受信したプリンタ200は、キュー制御部(不図示)に保持されている、以下の2つの情報をDTV100に送信する。
・プリンタ200が現在受付可能なCreateURIJob()のジョブ数
・プリンタ200が現在受付可能なCreateJobV2のジョブ数
上記のジョブ数は、キュー制御部(不図示)において、メモリ部204の空いているメモリから算出される。CreateURIJob()の場合、1ジョブあたり最大2KBのため、メモリ部204の空き容量を2KBで割った値が、現在受付可能なCreateURIJob()のジョブ数となる。同様に、CreateJobV2()の場合、1ジョブあたり最大1.6MBのため、メモリ部204の空き容量を1.6MBで割った値が、現在受付可能なCreateJobV2()のジョブ数となる。
S1507で、DTV100は、PULL印刷が行われるか否かを判定する(判定方法は、図8のS801及びS802と同様)。判断されたジョブに応じて、S1508又はS1510に進む。
S1508で、DTV100は、S1506で取得したプリンタ200のキューの状態をチェックする。キューの状態のうち、プリンタ200が現在受付可能なCreateJobV2()のジョブ数が、1以上であるなら、S1505へと進む。また、0であるなら、S1509へ進む。
S1509では、DTV100は、プリンタ200がCreateJobV2()を受け付けることができないため、PUSH印刷をPULL印刷に変換する(変換方法は、図8のS805〜S807と同様)。
S1510で、DTV100は、UPnP技術標準仕様のPrint Enhancedで定義されているCreateURIJob()を発行する。
実施例1では、PUSH印刷を実行する場合、DTV100は実際にCreateJobV2()を発行し、これが受け付けられなかった場合に、改めてCreateURIJob()を発行した。一方、実施例4では、DTV100はCreateJobV2()を発行する前にプリンタ200がCreateJobV2()を受け付け可能か判断する。そして、受け付け不可能な場合、CreateJobV2()を発行せずに、CreateURIJob()を発行する。
これにより、DTV100の処理負荷を軽減できる。また、プリンタ200に対してCreateJobV2()の不必要なデータを送ることが避けられるので、プリンタ200の処理を軽減できる。更には、ネットワーク上の無駄なトラフィックを削減できる。
実施例5では、実施例4では考慮していなかった、プリンタ200がCreateURIJob()も受け付けることができない状況を考慮する。
本実施例において、印刷システム10、DTV100、及びプリンタ200の構成は実施例1と同様であるため、説明を省略する(図1、図2、及び図4参照)。
図16は、実施例5に係るDTV100が実行する印刷制御処理の流れを示すフローチャートである。図16において、図15と同様の処理が行われるステップには同一の符号を付し、説明を省略する。
S1611で、DTV100は、S1506で取得したプリンタ200のキューの状態をチェックする。キューの状態のうち、プリンタ200が現在受付可能なCreateURIJob()のジョブ数が、1以上であるなら、S]1509へ進む。しかし、0であるなら、PUSH印刷をPULL印刷に変換してもプリンタ200に受け付けられないため、S1613へ進む。
S1507において、PULL印刷と判断された場合、S1612で、DTV100は、S1506で取得したプリンタ200のキューの状態をチェックする。キューの状態のうち、プリンタ200が現在受付可能なCreateURIJob()のジョブ数が、1以上であるなら、S1510へ進む。しかし、0であるなら、PUSH印刷をPULL印刷に変換してもプリンタ200に受け付けられないため、S1613へ進む。
S1613では、DTV100は処理を一定時間待機し、その後S1614へ進む。
S1614で、DTV100は、S1613における待機中にプリンタ200が現在印刷中のジョブの終了を検知したか否かを判定する。終了を検知した場合、S1501へ戻り、同様の処理を繰り返す。そうでなければ、S1613へ戻り、終了を検知するまで待機と判定とを繰り返す。S1614における判定の方法としては、以下の2つが挙げられる。
(1)UPnP技術標準仕様のPrint Enhancedで定義されているジョブの終わりを示すJobEndStateEventを、DTV100が受け取ったかどうかに基づいて判定
(2)DTV100が、UPnP技術標準仕様のPrint Enhancedで定義されているGetPrinterAttributesV2()を発行し、プリンタ200の状態を取得することにより判定
以上説明したように、実施例5によれば、プリンタ200がCreateURIJob()すらも受け付けられない状態であっても、DTV100は、プリンタ200が現在実行中のジョブが終了次第、CreateJobV2()又はCreateURIJob()を再発行する。
これにより、印刷失敗の可能性が低減される。
[その他の実施例]
上述した各実施例の機能を実現するためには、各機能を具現化したソフトウェアのプログラムコードを記録した記録媒体をシステム或は装置に提供してもよい。そして、そのシステム或は装置のコンピュータ(又はCPUやMPU)が記録媒体に格納されたプログラムコードを読み出し実行することによって、上述した各実施例の機能が実現される。この場合、記録媒体から読み出されたプログラムコード自体が上述した各実施例の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。このようなプログラムコードを供給するための記録媒体としては、例えば、フロッピィ(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスクなどを用いることができる。或いは、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどを用いることもできる。
また、上述した各実施例の機能を実現するための構成は、コンピュータが読み出したプログラムコードを実行することだけには限られない。そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)などが実際の処理の一部又は全部を行い、その処理によって上述した各実施例の機能が実現される場合も含まれている。
更に、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれてもよい。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によって上述した各実施例の機能が実現される場合も含むものである。
実施例1に係るデジタルテレビ(DTV)及びプリンタを含む、印刷システムの構成を示す概念図である。
実施例1に係るプリンタの構成を示すブロック図である。
実施例1に係るプリンタが、CreateURIJob()を受け付けたときに実行する印刷処理の流れを示すフローチャートである。
実施例1に係るDTVの構成を示すブロック図である。
実施例1に係る印刷制御処理に利用されるデータ放送データの一例を示す図である。
実施例1に係る印刷制御処理に利用されるデータ放送データの一例を示す図である(図5Aの続き)。
実施例1に係る印刷制御処理に利用されるデータ放送データの一例を示す図である(図5Bの続き)。
図5A〜Cに示したBMLデータを解析し、映像表示部108に表示した際の表示例を示す図である。
実施例1に係るDTVのリモコンの構成を示す図である。
実施例1に係るDTVが実行する印刷制御処理の流れを示すフローチャートである。
実施例2に係るDTVの構成を示すブロック図である。
実施例2における、印刷コンテンツ一時保存判定時刻の決定方法の概念図である。
実施例2に係るDTVが実行する印刷ドキュメント格納処理の流れを示すフローチャートである。
実施例3に係るDTVの構成を示すブロック図である。
実施例3における、印刷コンテンツ一時保存判定時刻の決定方法の概念図である。
実施例3に係るDTVが実行する印刷ドキュメント格納処理の流れを示すフローチャートである。
実施例4に係るDTVが実行する印刷制御処理の流れを示すフローチャートである。
実施例5に係るDTVが実行する印刷制御処理の流れを示すフローチャートである。