(57)【要約】      （修正有）【課題】インストールされたプリンタドライバを用いずに電子文書を印刷させる方法を提供する。【解決手段】クライアントが１つ以上の利用可能な印刷装置の各々からネットワークを介してメッセージを受信することにより１つ以上の利用可能な印刷装置を特定する段階と、クライアントが１つ以上の利用可能な印刷装置と通信して１つ以上の利用可能な印刷装置がサポートしている印刷機能を特定する段階と、クライアントが１つ以上の印刷装置の選択された印刷装置で電子文書を印刷する要求を受け取ると、クライアントが、電子文書を選択された印刷装置に送信し、選択された印刷装置がサポートする印刷機能を用いて電子文書をいかに印刷するか、選択された印刷装置に命令するデータである印刷設定データを、選択された印刷装置に送信することにより電子文書を印刷させ、電子文書は印刷設定データとは分かれている。【選択図】図１
2007207237.tif 000002
【特許請求の範囲】
【請求項１】
電子文書の印刷方法であって、
クライアントが１つ以上の利用可能な印刷装置の各々からネットワークを介してメッセージを受信することにより前記１つ以上の利用可能な印刷装置を特定する段階と、
前記クライアントが前記１つ以上の利用可能な印刷装置と通信して前記１つ以上の利用可能な印刷装置がサポートしている印刷機能を特定する段階と、
前記クライアントが前記１つ以上の印刷装置の選択された印刷装置で電子文書を印刷する要求を受け取ると、前記クライアントが、
前記電子文書を前記選択された印刷装置に送信し、
前記選択された印刷装置がサポートする印刷機能を用いて前記電子文書をいかに印刷するか、前記選択された印刷装置に命令するデータである印刷設定データを、前記選択された印刷装置に送信することにより前記電子文書を印刷させ、
前記電子文書は前記印刷設定データとは分かれている方法。
【請求項２】
前記クライアントが前記１つ以上の利用可能な印刷装置を特定する段階は、前記クライアントがユーザから前記電子文書の印刷要求の受信に応じて実行される、請求項１に記載の方法。
【請求項３】
前記印刷設定データは、相互利用可能なマシン間インターラクションをサポートするプロトコルを用いて表現される、請求項１に記載の方法。
【請求項４】
前記クライアントは、全ての利用可能な印刷装置に前記クライアントに自分自身を通知することを要求するブロードキャストメッセージを、ネットワークを介して送るのに応答して、一印刷装置が利用可能であることを示すユニキャストメッセージを受け取る、  請求項１に記載の方法。
【請求項５】
前記クライアントが前記電子文書を印刷させる段階は、さらに、
前記選択された印刷装置の印刷機能が前記電子文書の現在のバージョンをサポートしているか判断する段階であって、前記電子文書の現在のバージョンは前記クライアントが前記電子文書の印刷要求を受信したときに前記電子文書を表現するために使用されたフォーマットに対応する段階と、
前記選択された印刷装置の印刷機能が前記電子文書の現在のバージョンをサポートしないと判断すると、前記クライアントが前記電子文書のオープンスタンダードバージョンを生成する段階であって、前記電子文書のオープンスタンダードバージョンはページ記述言語（ＰＤＬ）を用いて前記電子文書を記述する段階とを有し、
前記選択された印刷装置に送られる前記電子文書のバージョンはオープンスタンダードバージョンである、請求項１に記載の方法。
【請求項６】
前記一つ以上の利用可能な印刷装置を特定する段階は、前記クライアントが前記１つ以上の利用可能な印刷装置の１つからブロードキャストメッセージを受け取る段階であって、前記１つの利用可能な印刷装置は前記ネットワークに入るのに応じて前記ブロードキャストメッセージを送る、請求項５に記載の方法。
【請求項７】
前記クライアントがユーザにインターフェイスを提示して前記１つの利用可能な印刷装置の印刷機能を見せる段階と、
前記インターフェイスを介して、（ａ）前記選択された印刷装置と（ｂ）前記選択された印刷装置がサポートする前記印刷機能を用いて前記電子文書をどのように印刷すべきか示すユーザ選択データを受け取る段階とをさらに有する、請求項１に記載の方法。
【請求項８】
電子文書の印刷方法であって、
クライアントが１つ以上の利用可能な印刷装置の各々からネットワークを介してメッセージを受信することにより前記１つ以上の利用可能な印刷装置を特定する段階と、
前記クライアントが前記１つ以上の利用可能な印刷装置と通信して前記１つ以上の利用可能な印刷装置がサポートしている印刷機能を特定する段階と、
前記クライアントが前記１つ以上の印刷装置の選択された印刷装置で電子文書を印刷する要求を受け取ると、前記クライアントが、
文書識別データを前記選択された印刷装置に送る段階であって、前記文書識別データは前記選択された印刷装置が前記電子文書を読み出すことができる場所を特定し、
前記選択された印刷装置がサポートする印刷機能を用いて前記電子文書をいかに印刷するか、前記選択された印刷装置に命令するデータである印刷設定データを、前記選択された印刷装置に送信することにより前記電子文書を印刷させ、
前記文書識別データはは前記印刷設定データとは別である方法。
【請求項９】
前記クライアントが前記１つ以上の利用可能な印刷装置を特定する段階は、前記クライアントがユーザから前記電子文書の印刷要求の受信に応じて実行される、請求項８に記載の方法。
【請求項１０】
前記印刷設定データは、相互利用可能なマシン間インターラクションをサポートするプロトコルを用いて表現される、請求項８に記載の方法。
【請求項１１】
前記クライアントは、全ての利用可能な印刷装置に前記クライアントに自分自身を通知することを要求するブロードキャストメッセージを、ネットワークを介して送るのに応答して、一印刷装置が利用可能であることを示すユニキャストメッセージを受け取る、請求項８に記載の方法。
【請求項１２】
前記クライアントがユーザにインターフェイスを提示して前記１つの利用可能な印刷装置の印刷機能を見せる段階と、
前記インターフェイスを介して、（ａ）前記選択された印刷装置と（ｂ）前記選択された印刷装置がサポートする前記印刷機能を用いて前記電子文書をどのように印刷すべきか示すユーザ選択データを受け取る段階とをさらに有する、請求項８に記載の方法。
【請求項１３】
電子文書の印刷方法であって、
印刷装置において、クライアントから、ページ記述言語（ＰＤＬ）を用いて記述された電子文書を受け取る段階と、
前記印刷装置において、前記クライアントから、前記印刷装置がサポートしている印刷機能を用いて前記電子文書をどのように印刷するか前記印刷装置に命令する印刷設定データを受け取る段階を有し、
前記電子文書は前記印刷設定データとは別であり、
前記電子文書と前記印刷設定データを処理して前記電子文書を印刷する段階と、を有する方法。
【請求項１４】
前記電子文書を処理する段階は、
前記電子文書をＰＤＬを用いて記述されたものから前記印刷装置の印刷エンジンが処理できるネイティブフォーマットを用いて記述されたものに変換する段階であって、前記ネイティブフォーマットを用いて記述された前記電子文書は前記印刷設定データを含まない段階と、
前記ネイティブフォーマットを用いて前記電子文書を印刷する段階とを有する、請求項１３に記載の方法。
【請求項１５】
前記電子文書を処理する段階は、
前記電子文書をＰＤＬを用いて記述されたものから前記印刷装置の印刷エンジンが処理できるネイティブフォーマットを用いて記述されたものに変換する段階であって、前記ネイティブフォーマットを用いて記述された前記電子文書は前記印刷設定データを含む段階と、
前記ネイティブフォーマットを用いて前記電子文書を印刷する段階とを有する、請求項１３に記載の方法。
【請求項１６】
電子文書を印刷する命令の１つ以上のシーケンスを担う機械読み取り可能媒体であって、前記命令の１つ以上のシーケンスの１つ以上のプロセッサによる実行により、
クライアントが１つ以上の利用可能な印刷装置の各々からネットワークを介してメッセージを受信することにより前記１つ以上の利用可能な印刷装置を特定する段階と、
前記クライアントが前記１つ以上の利用可能な印刷装置と通信して前記１つ以上の利用可能な印刷装置がサポートしている印刷機能を特定する段階と、
前記クライアントが前記１つ以上の印刷装置の選択された印刷装置で電子文書を印刷する要求を受け取ると、前記クライアントが、
前記電子文書を前記選択された印刷装置に送信し、
前記選択された印刷装置がサポートする印刷機能を用いて前記電子文書をいかに印刷するか、前記選択された印刷装置に命令するデータである印刷設定データを、前記選択された印刷装置に送信することにより前記電子文書を印刷させ、
前記電子文書は前記印刷設定データとは分かれている媒体。
【請求項１７】
前記クライアントが前記１つ以上の利用可能な印刷装置を特定する段階は、前記クライアントがユーザから前記電子文書の印刷要求の受信に応じて実行される、請求項１６に記載の機械読み取り可能媒体。
【請求項１８】
前記印刷設定データは、相互利用可能なマシン間インターラクションをサポートするプロトコルを用いて表現される、請求項１６に記載の機械読み取り可能媒体。
【請求項１９】
前記クライアントは、全ての利用可能な印刷装置に前記クライアントに自分自身を通知することを要求するブロードキャストメッセージを、ネットワークを介して送るのに応答して、一印刷装置が利用可能であることを示すユニキャストメッセージを受け取る、請求項１６に記載の機械読み取り可能媒体。
【請求項２０】
前記クライアントが前記電子文書を印刷させる段階は、さらに、
前記選択された印刷装置の印刷機能が前記電子文書の現在のバージョンをサポートしているか判断する段階であって、前記電子文書の現在のバージョンは前記クライアントが前記電子文書の印刷要求を受信したときに前記電子文書を表現するために使用されたフォーマットに対応する段階と、
前記選択された印刷装置の印刷機能が前記電子文書の現在のバージョンをサポートしないと判断すると、前記クライアントが前記電子文書のオープンスタンダードバージョンを生成する段階であって、前記電子文書のオープンスタンダードバージョンはページ記述言語（ＰＤＬ）を用いて前記電子文書を記述する段階と、を有し、
前記選択された印刷装置に送られる前記電子文書のバージョンはオープンスタンダードバージョンである、請求項１６に記載の機械読み取り可能媒体。
【請求項２１】
前記一つ以上の利用可能な印刷装置を特定する段階は、前記クライアントが前記１つ以上の利用可能な印刷装置の１つからブロードキャストメッセージを受け取る段階であって、前記１つの利用可能な印刷装置は前記ネットワークに入るのに応じて前記ブロードキャストメッセージを送る、請求項２０に記載の機械読み取り可能媒体。
【請求項２２】
前記命令の１つ以上のシーケンスの前記１つ以上のプロセッサによる実行は、さらに
前記クライアントがユーザにインターフェイスを提示して前記１つの利用可能な印刷装置の印刷機能を見せる段階と、
前記インターフェイスを介して、（ａ）前記選択された印刷装置と（ｂ）前記選択された印刷装置がサポートする前記印刷機能を用いて前記電子文書をどのように印刷すべきか示すユーザ選択データを受け取る段階とをさらに有する、請求項１６に記載の機械読み取り可能媒体。
【請求項２３】
電子文書を印刷する命令の１つ以上のシーケンスを担う機械読み取り可能媒体であって、前記命令の１つ以上のシーケンスの１つ以上のプロセッサによる実行により、
クライアントが１つ以上の利用可能な印刷装置の各々からネットワークを介してメッセージを受信することにより前記１つ以上の利用可能な印刷装置を特定する段階と、
前記クライアントが前記１つ以上の利用可能な印刷装置と通信して前記１つ以上の利用可能な印刷装置がサポートしている印刷機能を特定する段階と、
前記クライアントが前記１つ以上の印刷装置の選択された印刷装置で電子文書を印刷する要求を受け取ると、前記クライアントが、
文書識別データを前記選択された印刷装置に送る段階であって、前記文書識別データは前記選択された印刷装置が前記電子文書を読み出すことができる場所を特定する段階と、
前記選択された印刷装置がサポートする印刷機能を用いて前記電子文書をいかに印刷するか、前記選択された印刷装置に命令するデータである印刷設定データを、前記選択された印刷装置に送信することにより前記電子文書を印刷させ、
前記文書識別データはは前記印刷設定データとは別である媒体。
【請求項２４】
前記クライアントが前記１つ以上の利用可能な印刷装置を特定する段階は、前記クライアントがユーザから前記電子文書の印刷要求の受信に応じて実行される、請求項２３に記載の機械読み取り可能媒体。
【請求項２５】
前記印刷設定データは、相互利用可能なマシン間インターラクションをサポートするプロトコルを用いて表現される、請求項２３に記載の機械読み取り可能媒体。
【請求項２６】
前記クライアントは、全ての利用可能な印刷装置に前記クライアントに自分自身を通知することを要求するブロードキャストメッセージを、ネットワークを介して送るのに応答して、一印刷装置が利用可能であることを示すユニキャストメッセージを受け取る、請求項２３に記載の機械読み取り可能媒体。
【請求項２７】
前記命令の１つ以上のシーケンスの前記１つ以上のプロセッサによる実行は、さらに
前記クライアントがユーザにインターフェイスを提示して前記１つの利用可能な印刷装置の印刷機能を見せる段階と、
前記インターフェイスを介して、（ａ）前記選択された印刷装置と（ｂ）前記選択された印刷装置がサポートする前記印刷機能を用いて前記電子文書をどのように印刷すべきか示すユーザ選択データを受け取る段階とをさらに有する、請求項２３に記載の機械読み取り可能媒体。
【請求項２８】
電子文書を印刷する命令の１つ以上のシーケンスを担う機械読み取り可能媒体であって、前記命令の１つ以上のシーケンスの１つ以上のプロセッサによる実行により、
印刷装置において、クライアントから、ページ記述言語（ＰＤＬ）を用いて記述された電子文書を受け取る段階と、
前記印刷装置において、前記クライアントから、前記印刷装置がサポートしている印刷機能を用いて前記電子文書をどのように印刷するか前記印刷装置に命令する印刷設定データを受け取る段階を有し、
前記電子文書は前記印刷設定データとは別であり、
前記電子文書と前記印刷設定データを処理して前記電子文書を印刷する段階と、を有する媒体。
【請求項２９】
前記電子文書を処理する段階は、
前記電子文書をＰＤＬを用いて記述されたものから前記印刷装置の印刷エンジンが処理できるネイティブフォーマットを用いて記述されたものに変換する段階であって、前記ネイティブフォーマットを用いて記述された前記電子文書は前記印刷設定データを含まない段階と、
前記ネイティブフォーマットを用いて前記電子文書を印刷する段階とを有する、請求項２８に記載の機械読み取り可能媒体。
【請求項３０】
前記電子文書を処理する段階は、
前記電子文書をＰＤＬを用いて記述されたものから前記印刷装置の印刷エンジンが処理できるネイティブフォーマットを用いて記述されたものに変換する段階であって、前記ネイティブフォーマットを用いて記述された前記電子文書は前記印刷設定データを含む段階と、
前記ネイティブフォーマットを用いて前記電子文書を印刷する段階とを有する、請求項２８に記載の機械読み取り可能媒体。
【請求項３１】
電子文書の印刷装置であって、
１つ以上のプロセッサと、
電子文書を印刷する命令の１つ以上のシーケンスを記憶した機械読み取り可能媒体であって、前記命令の１つ以上のシーケンスの前記１つ以上のプロセッサによる実行により、
クライアントが１つ以上の利用可能な印刷装置の各々からネットワークを介してメッセージを受信することにより前記１つ以上の利用可能な印刷装置を特定し、
前記クライアントが前記１つ以上の利用可能な印刷装置と通信して前記１つ以上の利用可能な印刷装置がサポートしている印刷機能を特定し、
前記クライアントが前記１つ以上の印刷装置の選択された印刷装置で電子文書を印刷する要求を受け取ると、前記クライアントが、
前記電子文書を前記選択された印刷装置に送信し、
前記選択された印刷装置がサポートする印刷機能を用いて前記電子文書をいかに印刷するか、前記選択された印刷装置に命令するデータである印刷設定データを、前記選択された印刷装置に送信することにより前記電子文書を印刷させ、
前記電子文書は前記印刷設定データとは分かれている装置。
【請求項３２】
前記クライアントが前記１つ以上の利用可能な印刷装置の特定は、前記クライアントがユーザから前記電子文書の印刷要求の受信に応じて実行される、請求項３１に記載の装置。
【請求項３３】
前記印刷設定データは、相互利用可能なマシン間インターラクションをサポートするプロトコルを用いて表現される、請求項３１に記載の装置。
【請求項３４】
前記クライアントは、全ての利用可能な印刷装置に前記クライアントに自分自身を通知することを要求するブロードキャストメッセージを、ネットワークを介して送るのに応答して、一印刷装置が利用可能であることを示すユニキャストメッセージを受け取る、請求項３１に記載の装置。
【請求項３５】
前記クライアントが前記電子文書を印刷させる段階は、さらに、
前記選択された印刷装置の印刷機能が前記電子文書の現在のバージョンをサポートしているか判断する段階であって、前記電子文書の現在のバージョンは前記クライアントが前記電子文書の印刷要求を受信したときに前記電子文書を表現するために使用されたフォーマットに対応する段階と、
前記選択された印刷装置の印刷機能が前記電子文書の現在のバージョンをサポートしないと判断すると、前記クライアントが前記電子文書のオープンスタンダードバージョンを生成する段階であって、前記電子文書のオープンスタンダードバージョンはページ記述言語（ＰＤＬ）を用いて前記電子文書を記述する段階と、を有し、
前記選択された印刷装置に送られる前記電子文書のバージョンはオープンスタンダードバージョンである、請求項３１に記載の装置。
【請求項３６】
前記一つ以上の利用可能な印刷装置を特定する段階は、前記クライアントが前記１つ以上の利用可能な印刷装置の１つからブロードキャストメッセージを受け取る段階であって、前記１つの利用可能な印刷装置は前記ネットワークに入るのに応じて前記ブロードキャストメッセージを送る、請求項３５に記載の装置。
【請求項３７】
前記命令の１つ以上のシーケンスの前記１つ以上のプロセッサによる実行は、さらに
前記クライアントがユーザにインターフェイスを提示して前記１つの利用可能な印刷装置の印刷機能を見せる段階と、
前記インターフェイスを介して、（ａ）前記選択された印刷装置と（ｂ）前記選択された印刷装置がサポートする前記印刷機能を用いて前記電子文書をどのように印刷すべきか示すユーザ選択データを受け取る段階とをさらに有する、請求項３１に記載の装置。
【請求項３８】
電子文書の印刷装置であって、
１つ以上のプロセッサと、
電子文書を印刷する命令の１つ以上のシーケンスを記憶した機械読み取り可能媒体であって、前記命令の１つ以上のシーケンスの前記１つ以上のプロセッサによる実行により、
クライアントが１つ以上の利用可能な印刷装置の各々からネットワークを介してメッセージを受信することにより前記１つ以上の利用可能な印刷装置を特定し、
前記クライアントが前記１つ以上の利用可能な印刷装置と通信して前記１つ以上の利用可能な印刷装置がサポートしている印刷機能を特定し、
前記クライアントが前記１つ以上の印刷装置の選択された印刷装置で電子文書を印刷する要求を受け取ると、前記クライアントが、
文書識別データを前記選択された印刷装置に送る段階であって、前記文書識別データは前記選択された印刷装置が前記電子文書を読み出すことができる場所を特定する段階と、
前記選択された印刷装置がサポートする印刷機能を用いて前記電子文書をいかに印刷するか、前記選択された印刷装置に命令するデータである印刷設定データを、前記選択された印刷装置に送信することにより前記電子文書を印刷させ、
前記文書識別データはは前記印刷設定データとは別である装置。
【請求項３９】
前記クライアントが前記１つ以上の利用可能な印刷装置を特定する段階は、前記クライアントがユーザから前記電子文書の印刷要求の受信に応じて実行される、請求項３８に記載の装置。
【請求項４０】
前記印刷設定データは、相互利用可能なマシン間インターラクションをサポートするプロトコルを用いて表現される、請求項３８に記載の装置。
【請求項４１】
前記クライアントは、全ての利用可能な印刷装置に前記クライアントに自分自身を通知することを要求するブロードキャストメッセージを、ネットワークを介して送るのに応答して、一印刷装置が利用可能であることを示すユニキャストメッセージを受け取る、請求項３８に記載の装置。
【請求項４２】
前記命令の１つ以上のシーケンスの前記１つ以上のプロセッサによる実行は、さらに
前記クライアントがユーザにインターフェイスを提示して前記１つの利用可能な印刷装置の印刷機能を見せる段階と、
前記インターフェイスを介して、（ａ）前記選択された印刷装置と（ｂ）前記選択された印刷装置がサポートする前記印刷機能を用いて前記電子文書をどのように印刷すべきか示すユーザ選択データを受け取る段階とをさらに有する、請求項３８に記載の装置。
【請求項４３】
電子文書の印刷装置であって、
１つ以上のプロセッサと、
電子文書を印刷する命令の１つ以上のシーケンスを記憶した機械読み取り可能媒体であって、前記命令の１つ以上のシーケンスの前記１つ以上のプロセッサによる実行により、
印刷装置において、クライアントから、ページ記述言語（ＰＤＬ）を用いて記述された電子文書を受け取り、
前記印刷装置において、前記クライアントから、前記印刷装置がサポートしている印刷機能を用いて前記電子文書をどのように印刷するか前記印刷装置に命令する印刷設定データを受け取り、
前記電子文書は前記印刷設定データとは別であり、
前記電子文書と前記印刷設定データを処理して前記電子文書を印刷する装置。
【請求項４４】
前記電子文書を処理する段階は、
前記電子文書をＰＤＬを用いて記述されたものから前記印刷装置の印刷エンジンが処理できるネイティブフォーマットを用いて記述されたものに変換する段階であって、前記ネイティブフォーマットを用いて記述された前記電子文書は前記印刷設定データを含まない段階と、
前記ネイティブフォーマットを用いて前記電子文書を印刷する段階とを有する、請求項４３に記載の装置。
【請求項４５】
前記電子文書を処理する段階は、
前記電子文書をＰＤＬを用いて記述されたものから前記印刷装置の印刷エンジンが処理できるネイティブフォーマットを用いて記述されたものに変換する段階であって、前記ネイティブフォーマットを用いて記述された前記電子文書は前記印刷設定データを含む段階と、
前記ネイティブフォーマットを用いて前記電子文書を印刷する段階とを有する請求項４３に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、インストールされているプリンタドライバを使用せずに電子文書を印刷するクライアントに関する。
【背景技術】
【０００２】
このセクションで説明するアプローチは、達成しようとすることができるものであるが、必ずしも以前に思いついたものや達成しようと試みたものではない。それゆえ、特に注意しない限り、このセクションに記載したアプローチはいずれもこのセクションに記載したことをもって先行技術であると考えるべきではない。
【０００３】
多数のアプリケーションにおいてプリンタを用いてデータを印刷することができる。各アプリケーションが、サポートするプリンタモデルの技術的詳細事項を知らなくてもよいように、アプリケーションを実行する多数のクライアントはプリンタドライバを使用する。プリンタドライバはクライアントにインストールされているソフトウェアの一部である。プリンタドライバはデータをあるプリンタモデルが読める形式に変換し、アプリケーションが、プリンタが理解できる形式に印刷すべきデータを変換する責務を緩和している。プリンタドライバのインストールは、クライアントのオペレーティングシステムへのプリンタドライバの登録を伴う。
【０００４】
プリンタドライバの動作を例示すると、ユーザがアプリケーションに電子文書をあるプリンタで印刷するように命令すると、アプリケーションはクライアントのオペレーティングシステムをコール（call）する。オペレーティングシステムは、次に、そのプリンタに関連するプリンタドライバを使用して電子文書をそのプリンタが読める形式に変換する。変換された電子文書は設定データを含む。その設定データはユーザがその文書をどのように印刷することを望んでいるか特定するものである。その後、クライアントマシンは、変換した電子文書をプリンタに送信する。変換された電子文書はそのプリンタが処理できる形式で記述（render）されているので、そのプリンタは、それに含まれる設定データに従って、変換された電子文書のコピーを印刷できる。
【０００５】
クライアント側にプリンタドライバを置くといくつかの不利益がある。クライアントにあるプリンタモデルに印刷させるには、そのプリンタモデルのメーカーが、そのクライアントが使用できるプリンタドライバを用意しなければならない。通常、これはクライアントが使用しているオペレーティングシステムがプリンタドライバを利用できるようにすることである。しかし、プリンタドライバを作るのに必要なリソースがあっても、各タイプのオペレーティングシステムが利用できるプリンタドライバをそのメーカーが作るのは費用効率的（cost-effective）でないかも知れない。例えば、プリンタメーカーによってはリナックスオペレーティングシステムで動作するクライアント用のプリンタドライバを用意しないところもある。結果として、リナックスオペレーティングシステムで動作するクライアントは、それらのプリンタで印刷できない。
【０００６】
プリンタドライバが用意されたとしても、それをクライアントにインストールしなければならない。プリンタドライバのインストールには、一般的なユーザの能力を超えるレベルの能力が必要である。また、プリンタドライバのインストールにはある程度の時間と労力が必要である。インストール回数が多くなると大きなコストとフラストレーションが生じるかも知れない。
【０００７】
そのため、クライアントから電子文書を印刷する方法であって上記の不利益が生じないものが望まれる。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
クライアントがそれにインストールされたプリンタドライバ（クライアントサイドプリンタドライバ）を用いずに電子文書を印刷させる方法を提供する。
【課題を解決するための手段】
【０００９】
本発明の実施形態は、クライアントはネットワーク上の印刷装置の存在を検知することができ、その印刷装置と通信してその印刷能力を確認し、クライアントサイドのプリンタドライバをインストールする必要を無くすとの洞察によるものである。
【００１０】
一実施形態では、クライアントはネットワーク上で（１つ以上の）印刷装置を見つける。クライアントは発見した印刷装置と通信をして、その印刷装置がサポートしている印刷機能を特定する。クライアントは、選択された印刷装置に電子文書を印刷する要求を受信すると、その電子文書と印刷設定データを選択された印刷装置に送信する。クライアントは、選択された印刷装置がサポートしている印刷機能について通知されると、その電子文書と印刷設定データをその選択された印刷装置に、その選択された印刷装置が読める形式で送ることができる。有利にも、クライアントは、クライアント側のプリンタドライバがインストールされていなくても、電子文書を任意タイプの印刷装置で印刷し得る。
【発明を実施するための最良の形態】
【００１１】
以下の詳細な説明では、説明を目的として、ここに説明する本発明の実施形態を完全に理解してもらうために、具体的な詳細事項を記載する。しかし、言うまでもなく、ここに説明する本発明の実施形態はこれらの詳細事項がなくても実施することができる。他の場合では、ここに説明する本発明の実施形態を不必要に不明瞭にしないように、ブロック図に周知の構造とデバイスを示す。
【００１２】
機能概要
好都合にも、本発明の実施形態により、クライアント側のプリンタドライバを使用せずに電子文書を印刷するクライアントが提供される。一実施形態では、クライアントはネットワーク上で（１つ以上の）印刷装置を見つける。例えば、クライアントは利用可能な印刷装置の各々からメッセージを受信して、ネットワーク上にある印刷装置を特定する。利用可能な各印刷装置は、その印刷装置がサービスをできるようになった時にかかるメッセージを送信してもよいし、クライアントから送信された別のメッセージを受信した時にそれに応答してかかるメッセージを送信してもよい。
【００１３】
クライアントは発見した印刷装置と通信をして、その印刷装置がサポートしている印刷機能を特定する。例えば、クライアントと発見された印刷装置はメッセージを交換して、その発見された印刷装置がサポートしている印刷機能をクライアントに通知してもよい。通知される印刷機能は、発見された印刷装置が読める電子文書形式や発見された印刷装置が異なる方法で電子文書を印刷できる場合のその方法などである。
【００１４】
クライアントはユーザに、発見されたすべての印刷装置と各印刷装置がサポートしている印刷機能とを見せるインターフェイスを提示することもできる。ユーザはそのインターフェイスを用いて、選択した印刷装置に電子文書を印刷する要求を発行してもよい。その要求は、ユーザが指示したやり方で、選択した印刷装置がサポートする印刷機能を用いてその電子文書を印刷する命令である。
【００１５】
クライアントは、電子文書の印刷要求を受信すると、電子文書を送信し選択された印刷装置に電子文書と印刷設定データを送信する。
【００１６】
印刷設定データは、選択された印刷装置がサポートしている印刷機能を用いてどのように電子文書を印刷するか、その印刷装置に指示するデータである。クライアントは、選択された印刷装置がサポートしている印刷機能について通知されると、その電子文書をその選択された印刷装置が読める形式に変換する必要があるかも知れない。
【００１７】
印刷設定データは電子文書とは別のものであるが、両者の形式はその選択された印刷装置が読めるものである。電子文書と印刷設定データはそれぞれ、周知のプロトコルで記述され得る。例えば、電子文書は、印刷装置に送信された時は、周知のページ記述言語（ＰＤＬ）を用いて表されており、印刷設定データは、その印刷装置に送信された時は、相互運用可能なマシン間のインターラクションをサポートするプロトコルを用いて表現されていてもよい。そのプロトコルはウェブサービスプロトコル等である。このウェブサービスプロトコルは、ワールドワイドウェブ・コンソーシアム（Ｗ３Ｃ）が作りサポートしている公開プロトコルである。印刷装置は電子文書の印刷を準備するが、この準備は、その電子文書を受信時の表現形式から、その印刷装置の印刷エンジンが処理できるネイティブフォーマットの表現形式に変換して行う。有利にも、クライアントは、クライアント側のプリンタドライバがインストールされていなくても、電子文書を任意タイプの印刷装置で印刷し得る。
【００１８】
本発明の一実施形態の機能概要を説明したので、ここで一実施形態のアーキテクチャを説明する。
【００１９】
アーキテクチャの概要
図１は、本発明の一実施形態によるシステム１００を示すブロック図である。簡明な例を挙げるため、システム１００には２つの印刷装置と１つのクライアントのみが描かれている。しかし、本発明の実施形態では、任意数の印刷装置やクライアントを含んでいてもよい。
【００２０】
一実施形態では、システム１００はネットワーク１０２、クライアント１１０、及び印刷装置１２０と１３０を含む。ネットワーク１０２は、システム１００中のクライアントと印刷装置との間のデータ交換を提供する任意の媒体またはメカニズムにより実現される。ネットワーク１０２の例としては、これに限定されないが、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、イーサネット（登録商標）、インターネット等のネットワークが含まれる。ネットワーク１０２は、地上波リンク、衛星リンク、有線リンク、またはワイヤレスリンクを１つ以上用いて実施してもよい。
【００２１】
クライアント１１０は、ここでは、印刷装置にデータの印刷要求を出す任意の媒体またはメカニズムにより実施され得る。例えば、ユーザはクライアント１１０を用いて、印刷装置１２０に電子文書の印刷要求を発行できる。クライアント１１０の例としては、これらの限定されないが、ソフトウェアアプリケーション、ネットワーク上のノード、ネットワーク機器、ワイヤレス装置、携帯電話、パーソナルコンピュータ、ポータブルデジタルアシスタント（ＰＤＡ）等が含まれる。
【００２２】
クライアント１１０は、印刷装置インターフェイスモジュール１１２を含む。印刷装置インターフェイスモジュール１１２は、ネットワーク１０２上の利用可能な印刷装置との通信を提供する任意の媒体またはメカニズムで実施され得る。クライアント１１０は、印刷装置インターフェイスモジュール１１２を用いて、ネットワーク１０２上の利用可能な印刷装置を発見し、その印刷装置と通信して、その印刷装置がサポートしている印刷機能を特定し、１つの印刷装置にデータを送信する。印刷装置インターフェイスモジュール１１２が実行する機能を以下により詳しく説明する。印刷装置インターフェイスモジュール１１２は、図１では単一の構成要素（entity）として描いたが、本発明の他の実施形態では、印刷装置インターフェイスモジュール１１２が実行する機能は２つ以上の構成要素が実行してもよい。
【００２３】
実施形態ではクライアント側のプリンタドライバを必要としない電子文書の印刷に関して主に説明するが、本発明の他の実施形態では、クライアントが必ずしも「文書」とは考えられない他の形式のデータの印刷要求をクライアント１００が発行することもできる。説明を明りょうにするため、電子文書の印刷に関して多数の実施形態をここで説明する。しかし、当業者には言うまでもなく、本発明の実施形態は任意タイプのデータであって、必ずしも「文書」とは考えられないタイプのデータの印刷にも利用できる。
【００２４】
印刷装置１２０と１２２は、クライアント１１０から電子文書等の電子形式のデータを受信して、その電子形式のデータを印刷する任意の媒体またはメカニズムにより実施できる。システム１００の各印刷装置は、印刷サービスモジュール１２２と印刷エンジン１２４を含む。印刷サービスモジュール１２２は、印刷装置インターフェイスモジュール１１２と通信して、電子文書と印刷設定データを処理する任意の媒体またはメカニズムにより実施され得る。例えば、印刷サービスモジュール１２２は、印刷装置インターフェイスモジュール１１２から電子文書と印刷設定データを受け取り、受け取った電子文書を、ＰＤＬで記述されたものから印刷エンジン１２４が処理できるネイティブフォーマットで記述されたものに変換する。印刷サービスモジュール１２２が実行する機能を以下により詳しく説明する。印刷サービスモジュール１２２は、図１では単一の構成要素（entity）として描いたが、本発明の他の実施形態では、印刷サービスモジュール１２２が実行する機能は２つ以上の構成要素が実行してもよい。
【００２５】
プリンタエンジン１２４は、印刷機能の実行に関与する印刷装置の構成要素（component）を指す。このように、プリンタエンジン１２４は、電子文書と印刷設定データを処理して、その印刷設定データに従って印刷装置１２０に電子文書の印刷コピーを作らせる。
【００２６】
一実施形態（図１には図示せず）では、クライアント１１０は電子文書の印刷要求を、印刷装置に直接ではなくプリントサーバに発行する。プリントサーバは電子文書の印刷要求の受信に関与する。プリントサーバはそれに接続されている１つ以上の印刷装置に、その印刷要求を送る。このように、プリントサーバは、少なくとも部分的には負荷バランスを考慮して、その印刷要求に対するサービスを行う印刷装置を選択する。
【００２７】
例えば、印刷装置インターフェイスモジュール１１２がプリントサーバに一組の印刷設定データに従って電子文書の印刷要求を送信した場合、プリントサーバはそれに接続されているどの印刷装置がその要求に対するサービスを提供できその印刷要求に対するサービスに適しているか、負荷バランスアルゴリズムに基づき判断する。その後、プリントサーバは電子文書と印刷設定データを選択した印刷装置に処理のため送信する。印刷サービスモジュールはプリントサーバかそのプリントサーバに接続されている各印刷装置のいずれかに含まれている。
【００２８】
本発明の一実施形態のアーキテクチャ例を説明した。ここで、本発明の一実施形態により電子文書を印刷するクライアントを説明する。
【００２９】
電子文書の印刷
図２は、本発明の一実施形態による、電子文書を印刷する機能ステップを示すフローチャートである。図２の機能ステップを図１のシステム１００を参照して説明する。図２の機能ステップは、図２ではリニアに進行するように示したが、実施形態によっては図２に示したのとは異なる順序で実行してもよい。例えば、図２のステップ２１０と２２０を同時に実行してもよいし、ステップ２１０と２２０をそれぞれ複数回実行してもよいし、ステップ２１０と２２０をそれぞれ図２の他のステップと並行して実行してもよい。
【００３０】
ステップ２１０において、クライアント１１０はネットワーク１４０に接続された利用可能な印刷装置を発見する。本明細書において印刷装置を「発見」するとは、その印刷装置を印刷に利用できることを知ることを意味する。一実施形態では、印刷装置インターフェイスモジュール１１２がステップ２１０を実行する。例えば、印刷装置インターフェイスモジュール１１２は、印刷装置１２０と１３０が両方とも印刷に利用できることを発見する。
【００３１】
一実施形態では、クライアント１１０は、印刷装置１２０と１３０がネットワーク１０２上にあり印刷に利用できることを、ネットワーク１０２を介してブロードキャストメッセージを送ることにより知る（identify）。ブロードキャストメッセージは、すべての利用可能な印刷装置がクライアント１１０に自ら名乗り出る（identify  themselves）ことを要求する。ブロードキャストメッセージを受信すると、印刷装置１２０と１３０はそれぞれ、自分が利用可能であるか示すユニキャストメッセージをクライアント１１０に送信する。
【００３２】
一実施形態では、クライアント１１０はウェブサービスプロトコルを用いてステップ２１０を実行してもよい。ウェブサービスプロトコルは相互利用可能な（interoperable）マシン間インターラクションをサポートするように設計されている。ウェブサービスプロトコルはウェブサービスディスカバリと呼ばれるメカニズムにおいて、ウェブサービスプロトコルを用いて通信するように構成された、印刷装置等の装置を発見をもともとサポートしている。
【００３３】
他の実施形態では、クライアント１１０は、マシン間のインターラクションをサポートするウェブサービスプロトコル以外のプロトコルを用いてステップ２１０を実行してもよい。結果として、本発明の実施形態は、ステップ２１０の実行においてウェブサービスプロトコルを利用する必要はなく、マシン間インターラクションをサポートする現在ある、または将来開発される他のプロトコルを使ってもよい。
【００３４】
他の実施形態では、印刷装置がネットワーク１０２に入るのに応じて、ネットワーク１０２を介してその印刷装置が印刷要求を受けられることを示すブロードキャストメッセージを送ることにより、ステップ２１０においてクライアント１１０が利用可能な印刷装置を発見する。例えば、印刷装置は、リブートされるかスイッチを入れられると、かかるブロードキャストメッセージを送信してもよい。
【００３５】
一実施形態では、ステップ２１０の実行は、クライアント１１０がユーザから電子文書印刷要求を受け取るまで遅らせてもよい。例えば、ユーザがテキストエディタアプリケーションを使用していて、「印刷」ボタンを選択したときにステップ２１０の実行が始まる。このように、クライアント１１０は、それを操作しているユーザがクライアント１１０に電子文書の印刷を命令するまで、印刷をできるネットワーク１０２上で利用可能な印刷装置を知っている必要はない。クライアント１１０がネットワーク１０２上の１つ以上の利用可能な印刷装置を発見した後、ステップ２２０に進む。
【００３６】
ステップ２２０において、ネットワーク１０２上に印刷装置を発見した後、クライアント１１０はその印刷装置と通信して、それがサポートしている印刷機能を特定する。クライアント１１０は、ステップ２１０において印刷装置１２０と１３０が印刷に利用可能であると発見すると、ステップ２２０において、印刷装置１２０と１３０のそれぞれと通信して、それぞれがサポートしている印刷機能を特定する。一実施形態では、印刷装置インターフェイスモジュール１１２がステップ２１０を実行する。例えば、印刷装置インターフェイスモジュール１１２は、ステップ２２０において、印刷サービスモジュール１２２と通信して、印刷装置１２０がサポートしている印刷機能を特定する。
【００３７】
ステップ２２０で特定されたある印刷装置の印刷機能は、その印刷装置が電子文書を印刷できる方法が示している。ステップ２２０で特定される印刷機能のタイプの例としては、これらに限定はされないが、文書フォーマットサポート、カラー機能、フォントサポート、利用可能な仕上げオプション、メディアオプション、及び利用可能なサイズと解像度等が含まれる。
【００３８】
一実施形態では、クライアント１１０はウェブサービスプロトコルを用いてステップ２２０を実行してもよい。ウェブサービスプロトコルは、ウェブサービスプロトコルを用いて通信するように構成された、印刷装置等の装置がサポートしている機能を発見をもともとサポートしている。例えば、ウェブサービスメタデータ交換（Web Services-MetadataExchange）仕様書には装置間でいかにメタデータを交換するか記載されており、WSDPrint仕様書は印刷装置の印刷機能を示すメタデータのフォーマットの概要を示している。他の実施形態では、クライアント１１０は、マシン間のインターラクションをサポートするウェブサービスプロトコル以外のプロトコルを用いてステップ２２０を実行して、印刷装置がサポートしている印刷機能を判断してもよい。結果として、本発明の実施形態は、ステップ２２０の実行においてウェブサービスプロトコルを利用する必要はなく、マシン間インターラクションをサポートする現在ある、または将来開発される他のプロトコルを使ってもよい。クライアント１１０がステップ２１０において発見された１つ以上の利用可能な印刷装置の印刷機能を特定した後、ステップ２３０に進む。
【００３９】
ステップ２３０において、クライアント１１０は電子文書を印刷するように選択された印刷装置に命令する。最初、印刷装置インターフェイスモジュール１１２は、ユーザに、発見されたすべての印刷装置と各印刷装置がサポートしている印刷機能とを見せるインターフェイスを提示してもよい。ユーザはそのインターフェイスを用いて印刷したい印刷装置を選択する。ユーザはそのインターフェイスを用いて、選択した印刷装置に電子文書を印刷する要求を発行する。その要求は、ユーザが指示したやり方で、選択した印刷装置がサポートする印刷機能を用いてその電子文書を印刷する命令である。明りょうな例を提供するために、以下の説明では、ステップ２３０においてユーザはそのインターフェイスを用いて電子文書を印刷装置１２０に印刷する要求をすると仮定する。
【００４０】
図２に示したように、ステップ２３０の実行には２つのサブステップ、すなわちステップ２３２と２３４が含まれている。ステップ２３２と２３４は、そのインターフェイスを用いて、ユーザが印刷装置１２０に電子文書を印刷する要求をするのに応じて実行される。ステップ２３２において、クライアント１１０は電子文書を印刷装置１２０に送る。一実施形態では、印刷装置インターフェイスモジュール１１２は、ステップ２３２において、電子文書を印刷装置１２０の印刷サービスモジュール１２２に送る。
【００４１】
一実施形態では、印刷装置インターフェイスモジュール１１２は、印刷装置１２０の印刷機能がその電子文書のバージョンをサポートしているか判断する。例えば、電子文書の現在のバージョンはマイクロソフトワード文書等の独自フォーマットである。印刷装置インターフェイスモジュール１１２は、印刷装置１２０の印刷機能が電子文書の現在のバージョンをサポートしていないと判断した場合、その電子文書の現在のバージョンをオープンスタンダードの電子文書に変換する。電子文書のオープンスタンダードバージョンは、プリンタ制御言語（Printer  Control  Language(PCL)）、ポータブルドキュメントフォーマット（Portable  Document  Format(PDF)）、リファインド印刷コマンドストリーム（Refined  Printing  Command  Stream(RPCS)）、及び（スタンダードページ記述言語（Standard  Page  Description  Language(SPDL)）等のページ記述言語（page  description  language(PDL)）を用いてその電子文書を記述したものである。その後、印刷装置インターフェイスモジュール１１２は、そのオープンスタンダードバージョンの電子文書を印刷サービスモジュール１２２に送る。
【００４２】
しかし、印刷装置インターフェイスモジュール１１２は、印刷装置１２０の印刷機能が電子文書の現在のバージョンをサポートしていると判断した場合、その電子文書の現在のバージョンを印刷サービスモジュール１２２に送る。例えば、電子文書の現在のバージョンがマイクロソフトワード文書であるとき、印刷装置インターフェイスモジュール１１２はそのマイクロソフトワード文書を印刷サービスモジュール１２２に送る。
【００４３】
一実施形態では、クライアント１１０は、ステップ２３２で電子文書を送らずに、文書識別データを印刷装置１２０に送る。文書識別データは選択された印刷装置がその電子文書を読み出せる場所を特定するデータである。例えば、文書識別データは、その電子文書がある、ネットワーク１０２またはその他のネットワーク上の場所を特定するＵＲＬを含む、またはそれに対応する。このように、印刷サービスモジュール１２２は、文書識別データを受け取ると、文書識別データで特定された場所から電子文書を読み出す。
【００４４】
ステップ２３４はステップ２３２と同時に実行される。ステップ２３４において、クライアント１１０は印刷設定データを印刷装置１２０に送る。一実施形態では、ステップ２３４は、印刷装置インターフェイスモジュール１１２が印刷設定データを印刷サービスモジュール１２２に送ることによって実行されてもよい。印刷設定データは、印刷装置１２０がサポートしている印刷機能を用いて電子文書をどのように印刷するかを印刷装置１２０に命令するために使われる。
【００４５】
印刷設定データは電子文書とは別である。例えば、ステップ２３２で送信される電子文書は、印刷設定データを含まない。一実施形態では、印刷設定データは、ステップ２３２で電子文書または文書識別データを送信するために用いられるのと同じデータストリームまたはデータユニットで、ステップ２３４において印刷サービスモジュール１２２に送信される。他の実施形態では、印刷設定データは、電子文書または文書識別データとは別のデータストリームで、印刷サービスモジュール１２２に送られる。
【００４６】
一実施形態では、印刷設定データはウェブサービスプロトコルを用いて表現される。例えば、ステップ２３４で送られる印刷設定データは、「印刷チケット（PrintTicket）」と呼ばれるウェブサービスデータ構造で表される。印刷設定データを記述するのに別のデータ構造を用いることもできるので、ウェブサービスプロトコル以外のプロトコルも印刷設定データを記述するのに使用される。クライアント１１０が選択された印刷装置に命令した後、ステップ２４０に進む。
【００４７】
ステップ２４０において、選択された印刷装置（この場合印刷装置１２０）は、電子文書と印刷設定データを処理して、電子文書を印刷する。一実施形態では、ステップ２４０は、ステップ２３０で受信した電子文書と印刷設定データを印刷サービスモジュール１２２が処理することにより実行される。その後、印刷サービスモジュール１２２は処理された電子文書と印刷設定データをプリンタエンジン１２４に送る。その後、プリンタエンジン１２４は、印刷設定データに従って、処理された電子文書を印刷する。
【００４８】
印刷サービスモジュール１２２が受け取った電子文書のフォーマットが、印刷エンジン１２４がもともと処理電気内フォーマットである場合、印刷サービスモジュール１２２はその電子文書をプリンタエンジン１２４が処理できるフォーマットに変換する。一実施形態では、印刷サービスモジュール１２２は、プリンタエンジン１２４に処理された電子文書と印刷設定データを送る前に、その電子文書をＰＤＬを用いて記述したものから印刷装置の印刷エンジンが処理できるネイティブフォーマットを用いて記述したものに変換することにより、電子文書の印刷準備をする。ネイティブフォーマットを用いて記述された電子文書は印刷設定データを含まない。別の実施形態では、ネイティブフォーマットを用いて記述された電子文書が印刷設定データを含んでもよい。このように、印刷サービスモジュール１２２は、プリンタエンジン１２４が処理できる任意のネイティブフォーマット（native  format）に電子文書を変換できる。
【００４９】
電子文書と印刷設定データは、印刷サービスモジュール１２２が受け取った時は互いに別々のものである。結果として、印刷サービスモジュール１２２は、印刷サービスモジュール１２２が読めるように構成されている公または独自のプロトコルを用いて、電子文書と印刷設定データを別々に処理する。このように、印刷装置インターフェイスモジュール１１２が印刷装置モジュール１２２に送る電子文書と印刷設定データのフォーマットを、印刷サービスモジュール１２２は常に読むことができる。
【００５０】
クライアントは、クライアント側のプリンタドライバがインストールされていなくても、電子文書を任意タイプの印刷装置で印刷しやすくなる多数の実施形態を説明した。例えば、ユーザは本発明の一実施形態を利用して、ワイヤレスネットワークがサポートされている領域に入り、そのワイヤレスネットワークに含まれたワイヤレス装置を用いて、そのワイヤレスネットワーク上にある印刷装置にクライアントサイドのプリンタドライバをインストールしなくても電子文書を印刷し得る。その結果、本発明の実施形態を利用することにより、クライアントサイドのプリンタドライバをインストールすることによるコスト、労力、時間、精神的負担（frustration）を避けることができる。
【００５１】
実施例
図４は、本発明の一実施形態によるクライアント４１０と印刷装置４５０を示すブロック図である。図４のクライアント４１０と印刷装置４５０は、クライアントと印刷装置を実施する様々な方法の一例である。であるから、図４はクライアントと印刷装置を実施する唯一の方法を示しているものではなく、他のアプローチを本発明の他の実施形態で使用することは上述のように可能である。
【００５２】
図４に示したように、クライアント４１０はドライバレス（driverless）である、すなわち、プリンタドライバを有していない。図４の実施形態では、クライアント４１０は、ユーザインターフェイス４１２、発見モジュール４１４、メタデータモジュール４１６、印刷要求ジェネレータ４１８、ＰＤＬジェネレータ４２０を含む。ユーザインターフェイス４１２は、グラフィカルユーザインターフェイスやコマンドラインインターフェイス等のインターフェイスであり、これを用いてユーザはクライアント４１０に命令やコマンドを発行することができる。例えば、ユーザはユーザインターフェイス４１２を用いて、印刷装置４１０に電子文書の印刷要求を発行できる。
【００５３】
発見モジュール４１４は、印刷に利用できるネットワーク１０２上の印刷装置を発見する、クライアント４１０上にある任意のメカニズムを指す。例えば、発見モジュール４１４は、図２のステップ２１０において、上で説明したように、ウェブサービスプロトコルを用いて発見する。
【００５４】
メタデータモジュール４１６は、発見された印刷装置と通信して、その印刷装置がサポートしている印刷機能を特定できる、クライアント４１０上の任意のメカニズムを指す。例えば、メタデータモジュール４１６は、上述の通りウェブサービスメタデータエクスチェンジ（Web Services-MetadataExchange）仕様を用いて、図２のステップ２２０を実行する。
【００５５】
印刷要求ジェネレータ４１８は、電子文書と印刷設定データを選択された印刷装置に送信できる、クライアント４１０上の任意のメカニズムを指す。例えば、印刷要求ジェネレータ４１８は図３のステップ２３０を実行し得る。
【００５６】
ＰＤＬジェネレータ４２０は、ＰＤＬを用いて表現された電子文書のバージョンを生成することができる、クライアント４１０上にある任意のメカニズムを指す。例えば、ステップ２３０を参照して上で説明したように、クライアントから選択された印刷装置に送られた電子文書はＰＤＬを用いて表現されている。このように、印刷要求ジェネレータ４１８が電子文書を選択された印刷装置に送信する要求をする前、標準的ＰＤＬジェネレータ４２０はＰＤＬを用いて表現された電子文書のバージョンを生成する。
【００５７】
図４の印刷装置４５０は、印刷要求レシーバ４５２、プリンタドライバ４５４、及びプリンタドライバ更新モジュール４５６を含む。印刷要求レシーバ４５２は、印刷要求を受信できる、印刷装置４５０上にある任意のメカニズムを指す。一実施形態では、印刷要求は、（ａ）クライアント４１０からの電子文書または文書識別データか、（ｂ）クライアント４１０からの印刷設定データに対応している。以下により詳しく説明するように、一実施形態では、クライアント４１０はプリンタドライバ選択を印刷要求レシーバ４５２に送信して、印刷要求に関連した電子文書の処理に印刷装置４５０がどのプリンタドライバを仕様するか選択させる。
【００５８】
プリンタドライバ４５４は、プリンタエンジンがデータをラスターデータ化して処理するために使用できるプリンタドライバを指す。印刷装置４５０が有するプリンタドライバの数はいくつでもよい。
【００５９】
プリンタドライバ更新モジュール４５６は、印刷装置４５０上にあるプリンタドライバを管理できる、印刷層津４５０上にある任意のメカニズムを指す。例えば、管理者はプリンタドライバ更新モジュール４５６を用いて、印刷層津４５０上にあるプリンタドライバを追加、削除、または修正することができる。
【００６０】
図５は、本発明の一実施形態による、印刷装置を発見してその印刷装置の印刷機能を読み出すクライアントの機能ステップを示すフローチャートである。図５は、印刷装置の印刷機能をクライアントがどのように読み出すかを示す例である。であるから、図５のフローチャートは、クライアントが印刷装置の印刷機能を読み出す唯一の方法を示しているものではなく、他のアプローチを本発明の他の実施形態で使用することは上述のように可能である。
【００６１】
最初に、ステップ５１０において、クライアントのスイッチまたはパワーをオンにする。ステップ５２０において、クライアントは利用可能な印刷装置がそれ自身をクライアントに通知する要求をネットワークを介してブロードキャストする。ステップ５２０は発見モジュール４１４により実行されてもよい。同時に、ステップ５２０において、クライアントは利用可能な印刷装置から受け取る全ての通信を聴いている。例えば、ステップ５２０において、クライアントは上記のようにウェブサービスプロトコルを用いて印刷装置を発見する。
【００６２】
印刷装置を発見すると、ステップ５３０において、クライアントはその発見された印刷装置と通信してその印刷機能を判断する。例えば、クライアントは、上述のように、ウェブサービスプロトコルのウェブサービス−メタデータエクスチェンジ仕様を実行することにより、ステップ５３０を実行する。ステップ５３０はメタデータモジュール４１６により実行されてもよい。
【００６３】
一実施形態では、クライアントは印刷装置が満たさなければならない最低条件を決めてもよい。例えば、ユーザは、ある機能をサポートしている印刷装置のみをその最低条件を満たすように、クライアントを設定し得る。ステップ５３０を実行した後、クライアントが決めた最低条件を満たす印刷装置が見つかった場合、ステップ５４０を実行する。ステップ５４０では、発見された印刷装置の印刷機能に関する情報をクライアントに格納する。このように、クライアントは、発見された印刷装置の印刷機能に関する情報を、その装置に電子文書の印刷要求を出すために使用するために後で読み出すことができる。
【００６４】
図６は、本発明の一実施形態による、印刷装置において電子文書を印刷させるクライアントの機能ステップを示すフローチャートである。図６のフローチャートは、クライアントが電子文書を印刷装置で印刷する様々な方法の一例を示す。であるから、図６はクライアントが印刷装置に電子文書を印刷する唯一の方法を示しているものではなく、他のアプローチを本発明の他の実施形態で使用することは上述のように可能である。
【００６５】
ステップ６１０では、ユーザが電子文書の印刷要求を発行する。例えば、ユーザはユーザインターフェイス４１２を用いて要求を発行する。ステップ６１２において、クライアントは利用可能な印刷装置のリストを読み出す。利用可能な印刷装置のリストの構成は、図５を参照して説明したように決定される。利用可能な印刷装置のリストはユーザインターフェイス４１２を用いてユーザに提示される。ステップ６１４において、ユーザは、利用可能な印刷装置から、電子文書を印刷する印刷装置を選択する。例えば、ユーザはユーザインターフェイス４１２を用いてその印刷装置を選択できる。クライアントは、ユーザインターフェイス４１２を用いてユーザが選択した印刷装置（「選択された印刷装置」）を識別してもよい。ステップ６１６において、クライアントはユーザからカスタム設定データを受け取る。ユーザはユーザインターフェイス４１２を用いてクライアントにカスタム設定データを送ってもよい。
【００６６】
一実施形態では、ステップ６１６は、ステップ６１４またはステップ６１２の実行より先に実行されてもよい。係る実施形態では、クライアントは、ステップ６１０より後でステップ６２２より前の任意の時に、ユーザインターフェイス４１２を介してユーザからカスタム設定データを受け取ることができる。係る実施形態では、クライアントはユーザから印刷したい利用可能印刷装置の指示を受けない場合、ユーザが指定したカスタム設定データをサポートできない印刷装置を、その電子文書を印刷するのに使用する利用可能印刷装置のリストから削除してもよい。例えば、利用可能印刷装置のリストにある或る装置は、受け取ったカスタム設定データに従った電子文書の印刷をサポートしていないかも知れない。このように、クライアントは、利用可能印刷装置のリストにある各印刷装置がサポートする印刷機能に関する情報を保持しているので、電子文書を印刷するのに使用できる利用可能印刷装置のリストを調節（例えば、カスタム設定データをサポートしない印刷装置を削除）して、各利用可能印刷装置が受け取ったカスタム設定データにより電子文書を確実に印刷できるようにする。
【００６７】
かかる実施形態の例として、ユーザがステップ６１４の前にユーザインターフェイス４１２を介して（ステップ６１６の）カスタム設定データを指定したと仮定する。クライアントは最初に、ユーザインターフェイス４１２を介してユーザに、電子文書の印刷に使用し得る１０代の印刷装置のリストを示す。ユーザがカスタム設定データをクライアントに送ると、クライアントは、１０台中６台の印刷装置のみがカスタム設定データで指定された印刷機能をサポートできると判断する。それゆえ、クライアントは、利用可能印刷装置のリストを調整して、カスタム設定データで指定された印刷機能をサポートできる６台の印刷装置のみを含むようにする。クライアントはユーザインターフェイス４１２を介してユーザにその６台の印刷装置のリストを提示する。ユーザは、電子文書を印刷したい印刷装置をその６台の印刷装置から選択する（ステップ６１４）。
【００６８】
一実施形態（図６には図示せず）において、クライアントは以下に説明するステップ６１８と６２０の実行後にユーザからカスタム設定データを受け取ってもよい。このように、ステップ６１６は、ステップ６１８と６２０等の図６に示したステップを実行した後に実行してもよい。換言すれば、一実施形態では、クライアントは（ステップ６２２で説明する）印刷チケットを作る前の任意の時点でユーザからカスタム設定データを受け取ることができる。このように、電子文書を変換して、ステップ６１６の実行の前に、（以下に詳細に説明するステップ６２０の）ＰＤＬを用いて表現する。
【００６９】
ステップ６１８において、印刷すべき電子文書が選択された印刷装置が理解できるフォーマットで表されているかどうか、判断する。ステップ６１８における判断が肯定的である場合、ステップ６２０において、電子文書を変換してＰＤＬを用いて表現し、ステップ６２２に進む。ステップ６１８の判断が否定的である場合、印刷チケットを生成する。上に説明したように、印刷チケットは印刷設定データをウェブサービスデータ構造である。
【００７０】
ステップ６２４において、クライアントは電子文書と印刷チケットを選択された印刷装置に送信する。ステップ６１０から６２４はクライアントで実行される。図６に示したその余のステップは、選択された印刷装置で実行される。
【００７１】
選択された印刷装置が有するプリンタドライバの数はいくつでもよい。このように、ステップ６２６において、選択された印刷装置が電子文書と印刷チケットを受け取った後、選択された印刷装置は適当なプリンタドライバを選択して電子文書と印刷チケットを処理する。選択された印刷装置は単一のプリンタドライバのみを有する場合もあるので、ステップ６２６は任意的であることに留意して欲しい。ステップ６２８において、プリンタドライバは電子文書をラスターデータ化する。
【００７２】
ステップ６３０において、プリンタドライバは印刷チケットをプリンタ命令に変換する。ステップ６３０の実行は任意的である。例えば、プリンタエンジンはその印刷チケットをもとから処理でき、印刷チケットをプリンタ命令に返還する必要はないかも知れない。ステップ６３２において、プリンタエンジンは、印刷チケットで指定された印刷設定データに応じて選択された印刷装置で印刷する。
【００７３】
図７は、本発明の一実施形態によるデータフロー例を示すブロック図である。図７のデータフロー例は、クライアント７１０と印刷装置７５０が相互にインターラクトできる様々な方法の一例である。であるから、図７はクライアントと印刷装置が相互にインターラクト（interact）する唯一の方法を示しているものではなく、他のアプローチを本発明の他の実施形態で使用することは上述のように可能である。例えば、図７に示したいくつかの機能的構成要素は、図７に示していない他の実施形態では、単一の構成要素にすることもできる。クライアント印刷システム７１２は、図４に示した発見モジュール４１４、メタデータモジュール４１６、及び印刷要求ジェネレータ４１８を表す。
【００７４】
クライアント７１０のクライアント印刷システム７１２は印刷装置７５０に発見要求を発行する。発見要求は印刷装置７５０が印刷装置発見モジュール７５２で受け取る。印刷装置発見モジュール７５２は印刷装置７５０を識別する装置データを返す。その装置データは印刷装置のタイプやネットワークアドレス等の、印刷装置７５０に関する情報を含む。
【００７５】
クライアント印刷システム７１２は、印刷装置７５０にメタデータ要求を発行する。メタデータ要求は印刷装置７５０の印刷装置メタデータモジュール７５４が受け取る。印刷装置メタデータモジュール７５４は、印刷装置７５０がサポートする印刷機能を特定するメタデータ応答を返す。
【００７６】
必要に応じてクライアント印刷システム７１２は電子文書を変換して、ＰＤＬを用いて表現する。そのためには、クライアント印刷システム７１２は、ＰＤＬジェネレータ７１４に命令して、電子文書をＰＤＬを用いて表現させる。ＰＤＬジェネレータ７１４はいかなるタイプのテキスト及び／またはグラフィックスを変換してＰＤＬを用いて表現させる。
【００７７】
クライアント印刷システム７１２は、電子文書と印刷チケットを印刷装置７５０に送る。印刷要求レシーバ７５６は、クライアント印刷システム７１２から送られた電子文書と印刷チケットを受け取る。印刷要求レシーバ７５６は、電子文書と印刷チケットをプリンタドライバ７５８に送る。プリンタドライバ７５８は電子文書と印刷チケットをラスターデータ化し、ラスターデータ化した電子文書と印刷チケットをプリンタエンジン７６０に送る。プリンタエンジン７６０は、印刷チケットに含まれるカスタム設定データに従って、電子文書を印刷する。
【００７８】
実施メカニズム
一実施形態では、システム１００の各クライアントと印刷装置はコンピュータシステム上で実施することができる。図３は、本発明の一実施形態を実装するコンピュータシステム３００を示すブロック図である。コンピュータシステム３００は、情報をやりとりする通信メカニズムすなわちバス３０２と、バス３０２に結合した情報を処理するプロセッサ３０４とを有する。コンピュータシステム３００は、さらに、情報とプロセッサ３０４により実行される命令とを格納する、バス３０２に結合したランダムアクセスメモリ（ＲＡＭ）またはその他のダイナミック記憶装置等のメインメモリ３０６を含む。メインメモリ３０６は、プロセッサ３０４による命令の実行中に、一時的変数やその他の中間情報を記憶するために使用されてもよい。コンピュータシステム３００は、さらに、プロセッサ３０４のために静的な情報と命令とを記憶する、バス３０２に結合された読み出し専用メモリ（ＲＯＭ）３０８その他の静的記憶デバイスを含む。記憶デバイス３１０である磁気ディスクや光ディスク等が、情報と命令を格納するために設けられ、バス３０２に結合される。
【００７９】
コンピュータユーザに情報を表示するため、コンピュータシステム３００は、バス３０２を介して、ディスプレイ３１２である陰極線管（ＣＲＴ）等に結合されてもよい。プロセッサ３０４に情報と要求選択を送るために、英数字その他のキーを含む入力装置３１４がバス３０２に結合される。他のタイプのユーザ入力装置として、カーソル制御部３１６であるマウス、トラックボール、またはカーソル方向キー等がある。これらは、プロセッサ３０４に方向情報と要求選択を送り、ディスプレイ３１２上のカーソルの動きを制御する。この入力装置は、典型的には２つの軸、すなわち第１の軸（例えばｘ軸）と第２の軸（例えばｙ軸）で２自由度を有し、これにより平面内の点を特定することができる。
【００８０】
本発明は、個々に説明した方法を実装するためのコンピュータシステム３００の使用にも関する。本発明の一実施形態によると、これらの方法のコンピュータシステム３００による実行は、メインメモリ３０６に含まれる１つ以上の命令の１つ以上のシーケンスをプロセッサ３０４が実行することにより行われる。かかる命令は、他の機械読み取り可能媒体である記憶デバイス３１０等から、メインメモリ３０６に読み込まれてもよい。メインメモリ３０６に含まれる命令シーケンスの実行により、プロセッサ３０４はここに説明したプロセスステップを実行する。他の実施形態では、本発明の実装には、ソフトウェア命令に替えて、またはこれと組み合わせて、ソフトウェアがハードウェアに組み込まれた回路を使用してもよい。このように、本発明の実施形態は、ハードウェア回路とソフトウェアの特定の組み合わせに限定はされない。
【００８１】
ここで、「機械読み取り可能媒体」との用語は、機械に特定のやり方で動作させるデータを提供するいかなる媒体も指す。コンピュータシステム３００を用いて実装した一実施形態では、例えば、プロセッサ３０４が実行する命令を提供するために、様々な機械読み取り可能媒体が使用される。かかる媒体は、不揮発性媒体、揮発性媒体、伝送媒体等の多数の形式をとることができるが、これらに限定はされない。不揮発媒体には、例えば、光ディスクまたは磁気ディスクが含まれ、記憶デバイス３１０等である。揮発性媒体には、ダイナミックメモリであるメインメモリ３０６等が含まれる。伝送媒体には、同軸ケーブル、銅ワイヤ、光ファイバが含まれ、バス３０２を含むワイヤも含まれる。伝送媒体は、音波や光波であって、無線通信や赤外線データ通信中に生成されるものの形態を取ることもできる。かかる媒体はすべて有体物であり、その媒体により担われる命令がそれを読み取る物理的メカニズムにより検出可能でなければならない。
【００８２】
機械読み取り可能媒体の一般的な形態には次のものが含まれる。例えば、フロッピー（登録商標）ディスク、フレキシブルディスク、ハードディスク、磁気テープ、その他の磁気媒体、ＣＤ−ＲＯＭその他の光媒体、パンチカード、紙テープ、その他の穴のパターンを有する物理媒体、ＲＡＭ、ＰＲＯＭ、ＥＰＲＯＭ、フラッシュＥＰＲＯＭ、その他のメモリチップまたはカートリッジ、以下に説明する搬送波、コンピュータが読み取れるその他のいかなる媒体。
【００８３】
プロセッサ３０４が実行する１つ以上の命令の１つ以上のシーケンスの搬送には、機械読み取り可能媒体の様々な形態が使用される。例えば、命令は最初にリモートのコンピュータの磁気ディスク上に担われていてもよい。リモートコンピュータは、その命令をそのダイナミックメモリにロードして、モデムを用いて電話回線を介してその命令を送信することができる。コンピュータシステム３００にあるモデムが、電話回線上のデータを受信し、赤外トランスミッタを用いてそのデータを赤外信号に変換することができる。赤外検出器が赤外信号で搬送されたそのデータを受信して、適当な回路がそのデータをバス３０２に載せることができる。バス３０２は、そのデータをメインメモリ３０６に送り、プロセッサ３０４はそのメインメモリ３０６から命令を読み出して実行する。メインメモリ３０６が受け取った命令は、プロセッサ３０４が実行する前か後に、任意的に、記憶装置３１０に記憶されてもよい。
【００８４】
コンピュータシステム３００は、バス３０２に結合した通信インターフェイス３１８も含む。通信インターフェイス３１８は、ローカルネットワーク３２２に接続されたネットワークリンク３２０に結合した双方向データ通信を提供する。例えば、通信インターフェイス３１８は、統合デジタルサービスネットワーク（ＩＳＤＮ）カードまたはモデムであって、対応するタイプの電話回線へのデータ通信接続を提供してもよい。他の例として、通信インターフェイス３１８は、ローカルエリアネットワーク（ＬＡＮ）カードであって、互換性のあるＬＡＮへのデータ通信接続を提供してもよい。無線リンクで実装してもよい。かかる実装では、通信インターフェイス３１８は、いろいろなタイプの情報を表すデジタルデータストリームを搬送する電気的、電磁気的、または光学的信号を送受信する。
【００８５】
ネットワークリンク３２０は、一般的には、１つ以上のネットワークを介して他のデータデバイスへのデータ通信を提供する。例えば、ネットワークリンク３２０は、ホストコンピュータ３２４またはインターネットサービスプロバイダ（ＩＳＰ）３２６により運営されているデータ機器へのローカルネットワーク３２２を介した通信を提供する。ＩＳＰ３２６は、これに対して、現在は一般的に「インターネット」３２８と呼ばれている、世界規模のパケットデータ通信ネットワークを介してデータ通信サービスを提供する。ローカルネットワーク３２２とインターネット３２８は、両方とも、デジタルデータストリームを担う電気的、電磁気的、または光学的信号を使用する。様々なネットワーク中の信号やネットワークリンク３２０と通信インターフェイス３１８上の信号は、コンピュータシステム３００との間でデジタルデータを搬送し、情報を伝送する搬送波の形態例である。
【００８６】
コンピュータシステム３００は、ネットワーク、ネットワークリンク３２０、及び通信インターフェイス３１８を介して、メッセージを送信しプログラムコードを含むデータを受信することができる。インターネットの例では、サーバ３３０は、インターネット３２８、ＩＳＰ３２６、ローカルネットワーク３２２、及び通信インターフェイス３１８を介して、要求されたアプリケーションプログラムのコードを送信してもよい。
【００８７】
受信したコードは、受信しつつプロセッサ３０４により実行されてもよいし、後で実行するために記憶装置３１０またはその他の不揮発性記憶装置に記憶されてもよい。このように、コンピュータシステム３００は、搬送波の形態でアプリケーションコードを取得してもよい。
【００８８】
上記の通り明細書では、実施ごとに代わり得る多数の詳細を参照して本発明の実施形態を説明した。このように、本発明であり、出願人が本発明であると意図しているものを示すのは、願書に添付した特許請求の範囲であり、特許後の訂正も含め特許された請求項である。かかる請求項に含まれる用語についてここで明示的に記載した定義は、請求項で使用されるかかる用語の意味を司るものである。よって、請求項中に明示的に含まれていない限定、要素、特性、特徴、利益、または属性は、いかなる方法によっても、かかる請求項の範囲を限定するものではない。したがって、明細書と図面は例示であって限定ではないと考えるべきである。
【図面の簡単な説明】
【００８９】
本発明の実施形態は、添付した図面において実施例によって示すが、本発明を限定するものではない。同じ参照数字は同じ要素を示す。
【図１】本発明の一実施形態によるシステム例を示すブロック図である。
【図２】本発明の一実施形態による、電子文書を印刷する機能ステップを示すフローチャートである。
【図３】本発明の一実施形態を実施するコンピュータシステムを示すブロック図である。
【図４】本発明の一実施形態によるクライアントと印刷装置を示すブロック図である。
【図５】本発明の一実施形態による、印刷装置を発見してその印刷装置の印刷機能を読み出すクライアントの機能ステップを示すフローチャートである。
【図６】本発明の一実施形態による、印刷装置において電子文書を印刷させるクライアントの機能ステップを示すフローチャートである。
【図７】本発明の一実施形態によるデータフロー例を示すブロック図である。
【符号の説明】
【００９０】
１１０  クライアント
１２０  印刷装置
１２２  印刷サービスモジュール
１２４  プリンタエンジン
１３０  印刷装置
３０２  バス
３０４  プロセッサ
３０６  メインメモリ
３０８  ＲＯＭ
３１０  記憶装置
３１２  ディスプレイ
３１４  入力装置
３１６  カーソル制御部
３１８  通信インターフェイス
３２０  ネットワークリンク
３２２  ローカルネットワーク
３２４  ホスト
３２６  ＩＳＰ
３２８  インターネット
３３０  サーバ
４１０  ドライバーレスクライアント
４１２  ユーザインターフェイス
４１４  発見モジュール
４１６  メタデータモジュール
４１８  印刷要求ジェネレータ
４２０  ＰＤＬジェネレータ
４５０  印刷装置
４５２  印刷要求レシーバ
４５４  プリンタドライバ
４５６  プリンタドライバ更新モジュール
７１０  クライアント
７１２  クライアント印刷システム
７１４  ＰＤＬジェネレータ
７５０  印刷装置
７５２  印刷装置発見モジュール
７５４  印刷装置メタデータモジュール
７５６  印刷要求レシーバ
７５８  プリンタドライバ
７６０  プリンタエンジン
【図１】
2007207237.tif 000003
【図２】
2007207237.tif 000004
【図３】
2007207237.tif 000005
【図４】
2007207237.tif 000006
【図５】
2007207237.tif 000007
【図６】
2007207237.tif 000008
【図７】
2007207237.tif 000009