(57)【要約】【課題】情報処理装置からプリンタを利用する場合の、プリンタの利用可能性を高める技術を提供すること。【解決手段】情報処理装置１は、管理プログラム４３とプリントサーバプログラム４４とを備える。管理プログラム４３は、情報処理装置１に非対応プリンタ３が接続されているか否かを判断し、接続されている場合にはプリントサーバプログラム４４が起動しているか否かを判断し、起動していない場合にはプリントサーバプログラム４４を起動し、プリントサーバプログラム４４が構成するプリントサーバをＯＳ４１に登録する。プリントサーバプログラム４４は、自身に対応するプリントサーバを出力先として指定した印刷ジョブを受け付け、受け付けた印刷ジョブに基づいて、非対応プリンタ３にて印刷可能な個別印刷データを取得し、取得した個別印刷データを非対応プリンタ３に送信する。【選択図】図２
2019175313.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置の制御部によって実行可能なアプリケーションプログラムであって、管理プログラムとプリントサーバプログラムとを含み、
前記管理プログラムは、前記制御部に、
前記情報処理装置の通信インターフェースを介して特定のプリンタが接続されているか否かを判断する第１接続判断処理と、
前記第１接続判断処理によって前記特定のプリンタが接続されていると判断した場合に、前記特定のプリンタに対応する前記プリントサーバプログラムが起動しているか否かを判断する起動判断処理と、
前記起動判断処理にて前記プリントサーバプログラムが起動していないと判断した場合に、前記プリントサーバプログラムを起動する起動処理と、
前記起動処理にて前記プリントサーバプログラムを起動する場合に、起動する前記プリントサーバプログラムが構成するプリントサーバを、前記情報処理装置のオペレーティングシステムにプリンタとして登録するプリントサーバ登録処理と、
を実行させ、
前記プリントサーバプログラムは、前記制御部に、
前記オペレーティングシステムを介して、登録された前記プリントサーバを出力先として指定した印刷ジョブを受け付ける受付処理と、
前記受付処理にて前記印刷ジョブを受け付けた場合に、前記印刷ジョブに基づいて、前記特定のプリンタが印刷可能な特定の形式の印刷データを取得する印刷データ取得処理と、
前記印刷データ取得処理にて取得した前記印刷データを、前記特定のプリンタに送信する送信処理と、
を実行させる、
ことを特徴とするアプリケーションプログラム。
【請求項２】
請求項１に記載するアプリケーションプログラムにおいて、
前記プリントサーバプログラムの前記印刷データ取得処理では、
前記プリントサーバプログラムが前記管理プログラムに対して、前記印刷ジョブに含まれる前記特定の形式とは異なる形式の元印刷データを渡して前記特定の形式の印刷データへの変換を要求し、
前記管理プログラムは、前記制御部に、
前記印刷データ取得処理にて渡された前記元印刷データから、前記特定の形式の印刷データに変換する変換処理を実行させ、
前記プリントサーバプログラムの前記印刷データ取得処理では、
前記特定の形式の印刷データへの変換を要求した後、前記管理プログラムが前記変換処理によって変換した印刷データを、前記プリントサーバプログラムが取得する、
ことを特徴とするアプリケーションプログラム。
【請求項３】
請求項１に記載するアプリケーションプログラムにおいて、
前記プリントサーバプログラムの前記印刷データ取得処理では、
前記プリントサーバプログラムが、前記印刷ジョブに含まれる前記特定の形式とは異なる形式の元印刷データを、前記特定の形式の印刷データに変換する、
ことを特徴とするアプリケーションプログラム。
【請求項４】
請求項１から請求項３のいずれか１つに記載するアプリケーションプログラムにおいて、
前記プリントサーバプログラムは、前記制御部に、
前記受付処理にて受け付けた前記印刷ジョブに含まれる元印刷データが、前記特定のプリンタが印刷可能な形式の印刷データであるか否かを判断する形式判断処理を実行させ、
前記形式判断処理にて前記特定のプリンタが印刷可能な形式であると判断した場合に、
前記プリントサーバプログラムの前記印刷データ取得処理では、前記元印刷データを前記特定の形式の印刷データとして、前記プリントサーバプログラムが取得する、
ことを特徴とするアプリケーションプログラム。
【請求項５】
請求項１から請求項４のいずれか１つに記載するアプリケーションプログラムにおいて、
前記管理プログラムの前記起動判断処理では、
前記情報処理装置に接続されている別の情報処理装置にて前記プリントサーバプログラムが起動している場合であっても、前記プリントサーバプログラムが起動していると判断し、
前記管理プログラムは、前記制御部に、
前記起動判断処理にて前記プリントサーバプログラムが起動していると判断した場合であっても、前記別の情報処理装置の前記プリントサーバプログラムが構成している既存プリントサーバが前記オペレーティングシステムに登録されていない場合、前記既存プリントサーバを、前記オペレーティングシステムにプリンタとして登録する既存プリントサーバ登録処理を実行させる、
ことを特徴とするアプリケーションプログラム。
【請求項６】
請求項１から請求項５のいずれか１つに記載するアプリケーションプログラムにおいて、
前記プリントサーバプログラムは、前記制御部に、
前記プリントサーバプログラムが起動中の所定のタイミングに、前記通信インターフェースを介して前記特定のプリンタが接続されているか否かを判断する第２接続判断処理と、
前記第２接続判断処理によって前記特定のプリンタが接続されていないと判断した場合に、前記プリントサーバプログラムを終了させる終了処理と、
を実行させる、
ことを特徴とするアプリケーションプログラム。
【請求項７】
請求項６に記載するアプリケーションプログラムにおいて、
前記プリントサーバプログラムの前記終了処理では、
前記オペレーティングシステムから前記プリントサーバの登録を削除する、
ことを特徴とするアプリケーションプログラム。
【請求項８】
請求項１から請求項７のいずれか１つに記載するアプリケーションプログラムにおいて、
前記プリントサーバプログラムの前記印刷データ取得処理では、
前記受付処理にて前記印刷ジョブを受け付けた場合に、前記通信インターフェースを介して前記特定のプリンタが接続されているか否かを判断し、前記特定のプリンタが接続されていると判断したことを条件として、前記特定の形式の印刷データを取得する、
ことを特徴とするアプリケーションプログラム。
【請求項９】
請求項１から請求項８のいずれか１つに記載するアプリケーションプログラムにおいて、
前記管理プログラムは、
前記第１接続判断処理にて前記特定のプリンタが接続されていると判断した場合であっても、前記情報処理装置のメモリに、前記特定のプリンタに対応するプリンタドライバプログラムが記憶されている場合には、前記起動判断処理および前記起動処理を実行しない、
ことを特徴とするアプリケーションプログラム。
【請求項１０】
請求項１から請求項８のいずれか１つに記載するアプリケーションプログラムにおいて、
前記管理プログラムは、
前記第１接続判断処理にて前記特定のプリンタが接続されていると判断した場合であっても、前記オペレーティングシステムのバージョンが、所定のバージョンである場合には、前記起動判断処理および前記起動処理を実行しない、
ことを特徴とするアプリケーションプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書に開示される技術分野は、プリンタを制御するアプリケーションプログラムに関する。
【背景技術】
【０００２】
従来、プリンタドライバをインストールすることなく、オペレーティングシステム（以下、「ＯＳ」とする）の印刷機能を用いて印刷を行うドライバレス印刷技術が普及している。ここで、低価格機など，ドライバレス印刷技術に対応していないプリンタは、プリンタドライバをインストールできないＯＳ環境では、印刷を実行できない。一方、例えば、特許文献１には、情報処理装置にプリンタドライバが組み込まれていない場合に、プリンタからプリンタドライバを送信し、情報処理装置がプリンタドライバのインストールを行い、プリントサーバとして動作する構成が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−７６０６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１のように情報処理装置がプリントサーバとして動作する構成においても、AirPrint（登録商標）などのドライバレス印刷技術に対応していないプリンタは、プリンタドライバをインストールできないＯＳ環境では、ＯＳの印刷機能を用いて当該プリンタを選択することはできないため、印刷を実行できない。
【０００５】
本明細書に開示される技術は、前記した従来の技術が有する問題点を解決するためになされたものである。すなわちその課題とするところは、情報処理装置からプリンタを利用する場合の、プリンタの利用可能性を高める技術を提供することにある。
【課題を解決するための手段】
【０００６】
この課題の解決を目的としてなされたアプリケーションプログラムは、情報処理装置の制御部によって実行可能なアプリケーションプログラムであって、管理プログラムとプリントサーバプログラムとを含み、前記管理プログラムは、前記制御部に、前記情報処理装置の通信インターフェースを介して特定のプリンタが接続されているか否かを判断する第１接続判断処理と、前記第１接続判断処理によって前記特定のプリンタが接続されていると判断した場合に、前記特定のプリンタに対応する前記プリントサーバプログラムが起動しているか否かを判断する起動判断処理と、前記起動判断処理にて前記プリントサーバプログラムが起動していないと判断した場合に、前記プリントサーバプログラムを起動する起動処理と、前記起動処理にて前記プリントサーバプログラムを起動する場合に、起動する前記プリントサーバプログラムが構成するプリントサーバを、前記情報処理装置のオペレーティングシステムにプリンタとして登録するプリントサーバ登録処理と、を実行させ、前記プリントサーバプログラムは、前記制御部に、前記オペレーティングシステムを介して、登録された前記プリントサーバを出力先として指定した印刷ジョブを受け付ける受付処理と、前記受付処理にて前記印刷ジョブを受け付けた場合に、前記印刷ジョブに基づいて、前記特定のプリンタが印刷可能な特定の形式の印刷データを取得する印刷データ取得処理と、前記印刷データ取得処理にて取得した前記印刷データを、前記特定のプリンタに送信する送信処理と、を実行させる、ことを特徴としている。
【０００７】
本明細書に開示されるアプリケーションプログラムは、特定のプリンタが接続されていると判断した場合、その特定のプリンタに対応するプリントサーバプログラムを起動して、起動するプリントサーバプログラムが構成するプリントサーバをオペレーティングシステムにプリンタとして登録する。これにより、オペレーティングシステムにおいて特定のプリンタが選択可能になる。さらに、プリントサーバプログラムは、登録されたプリントサーバを出力先として指定した印刷ジョブを受け付け、印刷ジョブに基づいて、特定のプリンタが印刷可能な特定の形式の印刷データを取得して、特定のプリンタに送信する。従って、特定のプリンタは、特定の形式の印刷データを受信するので、この印刷データを用いて印刷を実行できる。
【０００８】
上記の機能を実現するための制御方法、アプリケーションプログラムを格納するコンピュータにて読取可能な記憶媒体も、新規で有用である。
【発明の効果】
【０００９】
本明細書に開示されるアプリケーションプログラムによれば、情報処理装置からプリンタを利用する場合の、プリンタの利用可能性を高める技術が実現される。
【図面の簡単な説明】
【００１０】
【図１】実施の形態にかかる情報処理装置の概略構成図である。
【図２】対応プリンタと非対応プリンタによる印刷手順を示す説明図である。
【図３】プリントサーバの起動と登録の手順を示すシーケンス図である。
【図４】印刷実行の手順を示すシーケンス図である。
【図５】プリントサーバの終了の手順を示すシーケンス図である。
【図６】サーバ起動処理の手順を示すフローチャートである。
【図７】他の情報処理装置のプリントサーバプログラムを利用する例を示す説明図である。
【図８】プリントサーバ処理の手順を示すフローチャートである。
【図９】印刷処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本実施の形態にかかるアプリケーションプログラム（以下、「アプリ」とする）について、添付図面を参照しつつ詳細に説明する。本形態は、情報処理装置にてプリンタに印刷を実行させるためのアプリである。
【００１２】
本形態のアプリは、図１に示すように、プリンタが接続されている情報処理装置１にて実行される。情報処理装置１は、例えば、パーソナルコンピュータ、スマートフォン、タブレットコンピュータであり、プリンタに印刷させる画像データの生成及び編集、各プリンタへの印刷実行指示の送信等を行う装置である。
【００１３】
本形態の情報処理装置１は、図１に示すように、ＣＰＵ１１と、ＲＯＭ１２と、ＲＡＭ１３と、不揮発性メモリ１４と、を含むコントローラ１０を備えている。さらに、ユーザインターフェース（以下、「ユーザＩＦ」とする）１５と、ネットワークインターフェース（以下、「ネットワークＩＦ」とする）１６と、ＵＳＢインターフェース（以下、「ＵＳＢ−ＩＦ」とする）１７と、を備え、これらがコントローラ１０に電気的に接続されている。ＣＰＵ１１は、制御部の一例である。ＣＰＵ１１のバッファ、ＲＯＭ１２、ＲＡＭ１３、不揮発性メモリ１４は、メモリの一例である。ネットワークＩＦ１６とＵＳＢ−ＩＦ１７は、それぞれ通信インターフェースの一例である。
【００１４】
ＲＯＭ１２には、情報処理装置１を起動するための起動プログラム等が記憶されている。ＲＡＭ１３は、各種の処理が実行される際の作業領域として、あるいは、データを一時的に記憶する記憶領域として利用される。不揮発性メモリ１４は、例えば、ＨＤＤ、フラッシュメモリであり、各種のプログラムや画像データ等のデータや各種設定を記憶する領域として利用される。
【００１５】
ＣＰＵ１１は、ＲＯＭ１２や不揮発性メモリ１４から読み出したプログラムに従って、また、ユーザの操作に基づいて、各種の処理を実行する。なお、図１中のコントローラ１０は、情報処理装置１の制御に利用されるハードウェアやソフトウェアを纏めた総称であって、実際に情報処理装置１に存在する単一のハードウェアを表すとは限らない。
【００１６】
ユーザＩＦ１５は、ユーザによる操作を受け付けるとともに情報の表示を行うハードウェアである。ユーザＩＦ１５は、タッチパネル等の入力機能と出力機能との両方を備えるものであっても良いし、ディスプレイとキーボードやマウスとの組み合わせによって構成されるものであっても良い。
【００１７】
ネットワークＩＦ１６は、インターネット等のネットワークを介して外部装置と通信を行うためのハードウェアを含む。ネットワークＩＦ１６の通信規格は、例えば、イーサネット（登録商標）、Ｗｉ−Ｆｉ（登録商標）などである。ＵＳＢ−ＩＦ１７は、ＵＳＢ規格に基づく通信を行うためのハードウェアを含む。なお、ネットワークＩＦ１６やＵＳＢ−ＩＦ１７の通信の態様は、有線でも無線でもよい。
【００１８】
本形態の情報処理装置１は、プリンタドライバをインストールせずに印刷を行う機能であるドライバレス印刷機能を有する。ドライバレス印刷機能は、印刷対象のコンテンツなどに基づいて、プリンタの機種に依存しない汎用の印刷データである規格印刷データを含む印刷ジョブを作成し、プリンタに送信する印刷機能であり、例えば、AirPrint（登録商標）、Mopria（登録商標）がある。
【００１９】
そして、情報処理装置１には、図１に示すように、２台のプリンタ２、３が接続されている。プリンタ２とプリンタ３とは、いずれも、印刷対象の媒体への画像の形成が可能な装置であり、例えば、ページプリンタ、コピー機、複合機、ＦＡＸ装置である。
【００２０】
プリンタ２は、ネットワークＩＦ１６を介して情報処理装置１に接続され、情報処理装置１のドライバレス印刷機能に対応可能なプリンタである。以下、プリンタ２を、「対応プリンタ２」とする。対応プリンタ２は、情報処理装置１から送信される印刷ジョブの規格印刷データに基づいて、自機にて印刷に用いる印刷用画像データを作成するプログラムを有している。対応プリンタ２は、受信した規格印刷データに基づいて印刷用画像データを作成し、作成した印刷用画像データを用いて、印刷を実行する。
【００２１】
一方、プリンタ３は、ネットワークＩＦ１６またはＵＳＢ−ＩＦ１７を介して情報処理装置１に接続され、情報処理装置１のドライバレス印刷機能に対応不可能なプリンタである。以下、プリンタ３を、「非対応プリンタ３」とする。非対応プリンタ３は、規格印刷データから印刷用画像データを作成する構成を有していない。そのため、非対応プリンタ３は、規格印刷データを受信しても印刷を実行できない。非対応プリンタ３は、自身にて対応可能な印刷データを受信すると、受信した印刷データを印刷用画像データとして、あるいは、受信した印刷データを印刷用画像データに変換して、印刷を実行する。また、非対応プリンタ３は、ドライバレス印刷機能に基づくプリンタ検索信号に応答しない。そのため、情報処理装置１のドライバレス印刷機能は、非対応プリンタ３を印刷装置として認識しない。非対応プリンタ３は、特定のプリンタの一例である。
【００２２】
本形態の情報処理装置１は、非対応プリンタ３に印刷を実行させるためのアプリを備えている。情報処理装置１の不揮発性メモリ１４には、図１に示すように、ＯＳ４１と、コンテンツ作成アプリ４２と、管理プログラム４３と、プリントサーバプログラム４４と、を含む、各種のプログラムが記憶されている。なお、ＯＳ４１の一部は、ＲＯＭ１２に含まれていてもよい。
【００２３】
本形態の情報処理装置１のＯＳ４１は、ドライバレス印刷機能を備え、個別の機種のプリンタに対応するプリンタドライバのインストールを受け付けないバージョンのものである。そのため、情報処理装置１の不揮発性メモリ１４には、例えば、非対応プリンタ３のプリンタドライバプログラムは記憶されていない。
【００２４】
コンテンツ作成アプリ４２は、文書、画像、図表等の印刷の対象となるコンテンツを作成するアプリである。そして、コンテンツ作成アプリ４２には、ユーザ操作に基づく印刷の指示を受け付ける機能が含まれる。なお、情報処理装置１は、例えば、複数のコンテンツ作成アプリ４２を有していてもよい。
【００２５】
管理プログラム４３とプリントサーバプログラム４４は、コンテンツ作成アプリ４２などにて作成されたコンテンツに基づく印刷を、情報処理装置１に接続されている非対応プリンタ３に実行させる場合に使用されるプログラムである。管理プログラム４３とプリントサーバプログラム４４は、アプリケーションプログラムの一例である。
【００２６】
管理プログラム４３は、非対応プリンタ３に対応するプリントサーバプログラム４４を起動させ、プリントサーバプログラム４４によって構成されるプリントサーバを、仮想プリンタとしてＯＳ４１に登録するプログラムである。ＯＳ４１にプリントサーバを仮想プリンタとして登録することにより、コンテンツ作成アプリ４２等では、その仮想プリンタを出力先として選択可能となる。プリントサーバプログラム４４は、ドライバレス印刷機能によって出力される印刷ジョブを非対応プリンタ３にて対応可能な形式に変換して、非対応プリンタ３に送信するプログラムである。
【００２７】
なお、管理プログラム４３は、情報処理装置１に１つであり、プリントサーバプログラム４４は、１台の非対応プリンタ３ごとに１つである。複数の非対応プリンタ３が接続されている情報処理装置１では、非対応プリンタ３ごとにプリントサーバが起動され、それぞれ仮想のプリンタとして登録される。
【００２８】
本形態の情報処理装置１は、例えば、図２に示すように、対応プリンタ２に印刷を実行させる場合と非対応プリンタ３に印刷を実行させる場合とで、異なる処理を実行する。情報処理装置１のＯＳ４１は、例えば、コンテンツ作成アプリ４２にて印刷指示を受け付けた場合、受け付けた印刷指示にて指定されたプリンタが対応プリンタ２であれば、ドライバレス印刷機能にて作成した規格印刷データを、対応プリンタ２に送信する。対応プリンタ２は、規格印刷データに基づいて、印刷を実行する。
【００２９】
一方、印刷指示にて指定されたプリンタが非対応プリンタ３に対応する仮想プリンタである場合には、情報処理装置１は、ドライバレス印刷機能にて作成した規格印刷データを、プリントサーバプログラム４４に渡す。プリントサーバプログラム４４は、規格印刷データに基づいて、非対応プリンタ３にて対応可能な形式の印刷データである個別印刷データを取得し、非対応プリンタ３に送信する。個別印刷データは、特定の形式の印刷データの一例である。
【００３０】
続いて、情報処理装置１にて非対応プリンタ３に印刷を実行させる動作について説明する。なお、以下の説明における処理およびフローチャートの各処理ステップは、基本的に、管理プログラム４３やプリントサーバプログラム４４などのプログラムに記述された命令に従ったＣＰＵ１１の処理を示す。ＣＰＵ１１による処理は、情報処理装置１のＯＳ４１の他のモジュールとデータ交換するためのＩＦ（ＡＰＩとも呼ばれる）を用いたハードウェア制御も含む。なお、本明細書では、ＯＳ４１の記載を省略して各プログラムの動作を説明する。
【００３１】
まず、図３〜図５のシーケンス図を参照して、動作の概要を説明する。管理プログラム４３による印刷準備動作について、図３のシーケンス図を参照して説明する。管理プログラム４３は、例えば、情報処理装置１の起動時に起動され、起動すると、情報処理装置１に接続されているプリンタを検索する。管理プログラム４３による検索は、ドライバレス印刷機能による検索とは異なり、情報処理装置１は、非対応プリンタ３であれば応答可能な検索信号をマルチキャストする。
【００３２】
そして、管理プログラム４３は、情報処理装置１に接続されている非対応プリンタ３が有るか否かを判断する（手順５１）。例えば、接続されているプリンタがドライバレス印刷機能に対応する対応プリンタ２のみであれば、情報処理装置１は、プリントサーバプログラム４４を実行する必要はない。
【００３３】
非対応プリンタ３が検索された場合、管理プログラム４３は、非対応プリンタ３にて印刷を実行させるためのプリンタ情報を取得する（手順５２）。具体的には、管理プログラム４３は、検索された非対応プリンタ３の機種情報、バージョン情報などを取得する。
【００３４】
そして、管理プログラム４３は、検索された非対応プリンタ３に対応するプリントサーバプログラム４４が起動していない場合、プリントサーバプログラム４４を起動させる（手順５３）。なお、複数の非対応プリンタ３が検索された場合、管理プログラム４３は、１台ごとに手順５２と手順５３とを行う。
【００３５】
さらに、管理プログラム４３は、ＯＳ４１にプリントサーバプログラム４４によって構成されるプリントサーバが登録されているか否かを判断する。つまり、管理プログラム４３は、ＯＳ４１に登録されているプリンタを検索し（手順５４）、ＯＳ４１からプリンタの一覧を取得する（手順５５）。取得したプリンタの一覧の中に、プリントサーバプログラム４４によって構成されるプリントサーバが含まれていない場合、管理プログラム４３は、プリントサーバプログラム４４によって構成されるプリントサーバを、検索された非対応プリンタ３に対応する仮想プリンタとして、ＯＳ４１に登録する（手順５６）。
【００３６】
次に、プリントサーバプログラム４４を用いた印刷動作について、図４のシーケンス図を参照して説明する。情報処理装置１は、実行中のコンテンツ作成アプリ４２にて、ユーザによるコンテンツの印刷指示を受け付ける（手順６１）。コンテンツ作成アプリ４２は、受け付けた印刷指示に基づいて印刷ジョブを作成し、ＯＳ４１に登録する（手順６２）。ＯＳ４１は、受け付けた印刷ジョブをドライバレス印刷機能にて処理し、規格印刷データを含む印刷ジョブを生成する。
【００３７】
ＯＳ４１は、出力先として非対応プリンタ３に対応する仮想プリンタが指定されている印刷ジョブを、非対応プリンタ３に対応するプリントサーバプログラム４４に渡す（手順６３）。プリントサーバプログラム４４は、出力先である非対応プリンタ３を検索し、印刷可能な状態であるか否かを判断する（手順６４）。
【００３８】
非対応プリンタ３は、印刷可能な状態であれば、プリンタ情報をプリントサーバプログラム４４に送信する（手順６５）。プリントサーバプログラム４４は、プリンタ情報に基づいて、規格印刷データから非対応プリンタ３にて対応可能な形式の個別印刷データを生成する。さらに、プリントサーバプログラム４４は、プリンタ情報に基づいて、印刷ジョブに含まれる印刷設定を引き継ぎ、非対応プリンタ３にて対応可能な形式の情報とする（手順６６）。
【００３９】
そして、プリントサーバプログラム４４は、生成した個別印刷データと印刷設定とを非対応プリンタ３に送信する（手順６７）。非対応プリンタ３は、受信した個別印刷データに基づく印刷を実行し（手順６８）、印刷完了などのステータス情報を、プリントサーバプログラム４４に送信する（手順６９）。プリントサーバプログラム４４は、受信したステータス情報をＯＳ４１に渡す（手順７０）。
【００４０】
一方、プリントサーバプログラム４４は、手順６４によるプリンタの検索によって、非対応プリンタ３を検索できなかった場合、非対応プリンタ３がオフライン状態であることを示すステータス情報をＯＳ４１に渡す（手順７１）。ＯＳ４１は、手順７０または手順７１にて受け取ったステータス情報を、例えば、コンテンツ作成アプリ４２等を介してユーザに通知する（手順７２）。
【００４１】
次に、プリントサーバプログラム４４の終了動作について、図５のシーケンス図を参照して説明する。プリントサーバプログラム４４は、印刷ジョブの処理を実行していない所定のタイミングで、非対応プリンタ３を検索する（手順８１）。そして、非対応プリンタ３からの応答が無く、検索に失敗した場合、プリントサーバプログラム４４は、非対応プリンタ３が接続されていないことをエラーとしてユーザに通知する（手順８２）。
【００４２】
そして、例えば、ユーザ操作によりサーバの終了の指示を受け付けた場合、プリントサーバプログラム４４は、自身によって構成されるプリントサーバがＯＳ４１に登録済みであれば、ＯＳ４１から対応する仮想プリンタの登録を削除する（手順８３）。さらに、プリントサーバプログラム４４は、自身を終了させる（手順８４）。不要のプリントサーバプログラム４４を終了させることで、情報処理装置１の処理の負荷が軽減される。
【００４３】
次に、各プログラムの動作について、図６〜図９のフローチャートを参照して詳細に説明する。なお、以下の説明中に付記した手順番号は、図３〜図５のシーケンス図中に示す手順番号に対応する。
【００４４】
まず、管理プログラム４３によるサーバ起動処理の手順について、図６のフローチャートを参照して説明する。このサーバ起動処理は、例えば、情報処理装置１の起動、プリンタの接続、印刷指示の受け付けを契機に、ＣＰＵ１１にて実行される。
【００４５】
サーバ起動処理では、ＣＰＵ１１は、まず、ドライバレス印刷環境であるか否かを判断する（Ｓ１０１）。ＣＰＵ１１は、例えば、情報処理装置１のＯＳ４１のバージョン情報を取得し、ＯＳ４１がドライバレス印刷機能を備え、プリンタドライバのインストールを受け付けない動作環境であるか否かを判断する。また、ＣＰＵ１１は、プリンタドライバがインストールされているか否かを判断しても良い。ドライバレス印刷環境ではないと判断した場合（Ｓ１０１：ＮＯ）、ＣＰＵ１１は、サーバ起動処理を終了する。
【００４６】
プリンタドライバのインストールが可能な環境であれば、プリンタドライバをインストールすることで、処理の負荷を軽減できる。また、ＯＳ４１のバージョンを確認することで、例えば、ＯＳ４１のバージョンアップによって、ドライバレス印刷の動作環境に変化した場合に、管理プログラム４３とプリントサーバプログラム４４とを機能させることができる。従って、ユーザに従前と同様の使い勝手での印刷環境を継続して提供できる。
【００４７】
ドライバレス印刷環境であると判断した場合（Ｓ１０１：ＹＥＳ）、ＣＰＵ１１は、情報処理装置１に接続されているプリンタを順に検索する（Ｓ１０２）。そして、ＣＰＵ１１は、検索されたプリンタがドライバレス印刷機能に非対応の非対応プリンタ３であるか否かを判断する（Ｓ１０３、手順５１）。Ｓ１０３は、第１接続判断処理の一例である。
【００４８】
例えば、ＣＰＵ１１は、ネットワークＩＦ１６を介して接続されている各プリンタに問い合わせ、ドライバレス印刷機能に対応する能力を有しているか否かを判断する。また、例えば、情報処理装置１が接続されている外部機器のリストを備えていれば、ＣＰＵ１１は、Ｓ１０３にてリスト中の非対応プリンタ３の接続確認を行っても良い。
【００４９】
非対応プリンタ３が検索されたと判断した場合（Ｓ１０３：ＹＥＳ）、ＣＰＵ１１は、プリンタ情報を取得する（Ｓ１０４、手順５２）。ＣＰＵ１１は、プリンタ情報として、例えば、プリンタの機種情報やバージョン情報、プリンタにてサポートする印刷データのデータ形式を取得する。ＣＰＵ１１は、検索された非対応プリンタ３に問い合わせてプリンタ情報を取得しても良いし、外部機器のリスト等からプリンタ情報を取得しても良い。
【００５０】
さらに、ＣＰＵ１１は、検索された非対応プリンタ３に対応するプリントサーバプログラム４４が起動しているか否かを判断する（Ｓ１０５）。Ｓ１０５は、起動判断処理の一例である。プリントサーバプログラム４４が起動していないと判断した場合（Ｓ１０５：ＮＯ）、ＣＰＵ１１は、情報処理装置１と通信可能な他の装置で、非対応プリンタ３に対応するプリントサーバプログラム４４が起動しているか否かを判断する（Ｓ１０６）。Ｓ１０６も、起動判断処理の一例である。
【００５１】
例えば、図７に示すように、複数の情報処理装置１、１００、２００が互いに通信可能に接続され、同じ非対応プリンタ３を利用可能なシステムでは、他の情報処理装置１００にてプリントサーバプログラム４４が起動している場合、情報処理装置１は、他の情報処理装置１００のプリントサーバプログラム４４を利用できる。この場合、他の情報処理装置１００のプリントサーバプログラム４４によって構成されるプリントサーバを仮想プリンタとしてＯＳ４１に登録することで、情報処理装置１は、そのプリントサーバプログラム４４を利用できる。この場合、他の情報処理装置１００にて起動しているプリントサーバプログラム４４が構成しているプリントサーバは、既存プリントサーバの一例である。
【００５２】
情報処理装置１は、例えば、図７に示すように、規格印刷データを他の情報処理装置１００に渡し、他の情報処理装置１００のプリントサーバプログラム４４に個別印刷データを作成させて、他の情報処理装置１００から非対応プリンタ３に送信させることもできる。このようにすれば、自装置でプリントサーバプログラム４４を起動する必要がなく、自装置での処理の負荷が軽減される。
【００５３】
自装置でも他の装置でも、プリントサーバプログラム４４が起動していないと判断した場合（Ｓ１０６：ＮＯ）、ＣＰＵ１１は、検索された非対応プリンタ３に対応するプリントサーバプログラム４４を起動する（Ｓ１０７，手順５３）。Ｓ１０７は、起動処理の一例である。
【００５４】
また、検索された非対応プリンタ３に対応するプリントサーバプログラム４４が他の装置にて起動していると判断した場合（Ｓ１０６：ＹＥＳ）、ＣＰＵ１１は、プリントサーバプログラム４４によって構成されるプリントサーバがＯＳ４１に登録されているか否かを判断する（Ｓ１０８）。具体的には、ＣＰＵ１１は、例えば、ＯＳ４１に問い合わせてＯＳ４１に登録されているプリンタの一覧を取得し（手順５４、５５）、その一覧中に、非対応プリンタ３に対応する仮想プリンタとして登録されているプリントサーバが含まれているか否かを判断する。
【００５５】
そして、Ｓ１０７の後、または、非対応プリンタ３に対応するプリントサーバがＯＳ４１に登録されていないと判断した場合（Ｓ１０８：ＮＯ）、ＣＰＵ１１は、プリントサーバプログラム４４によって構成されるプリントサーバをプリンタとしてＯＳ４１に登録する（Ｓ１０９、手順５６）。Ｓ１０７の後に実行されるＳ１０９は、プリントサーバ登録処理の一例である。また、Ｓ１０８にてＮＯと判断した後に実行されるＳ１０９は、既存プリントサーバ登録処理の一例である。
【００５６】
Ｓ１０９では、ＣＰＵ１１は、プリントサーバプログラム４４によって構成されるプリントサーバを、検索された非対応プリンタ３のモデル名や愛称等を用いて登録する。ユーザによる名称の指定を受け付けても良い。プリントサーバプログラム４４によって構成されるプリントサーバを非対応プリンタ３としてＯＳ４１に登録することで、非対応プリンタ３が、コンテンツ作成アプリ４２等で印刷指示を行う際、印刷装置としての選択の対象となる。
【００５７】
一方、非対応プリンタ３ではないと判断した場合（Ｓ１０３：ＮＯ）、または、プリントサーバプログラム４４が起動していると判断した場合（Ｓ１０５：ＹＥＳ）、他の装置のプリントサーバプログラム４４によって構成されるプリントサーバがＯＳ４１に登録されていると判断した場合（Ｓ１０８：ＹＥＳ）、Ｓ１０９の後、ＣＰＵ１１は、プリンタの検索が終了したか否かを判断する（Ｓ１１０）。検索が終了していないと判断した場合（Ｓ１１０：ＮＯ）、ＣＰＵ１１は、Ｓ１０２に戻って、さらにプリンタの検索を行う。一方、検索が終了したと判断した場合（Ｓ１１０：ＹＥＳ）、ＣＰＵ１１は、サーバ起動処理を終了する。
【００５８】
次に、プリントサーバプログラム４４によるプリントサーバ処理の手順について、図８のフローチャートを参照して説明する。このプリントサーバ処理は、サーバ起動処理のＳ１０７にてプリントサーバプログラム４４が起動されたことを契機に、ＣＰＵ１１にて実行される。
【００５９】
プリントサーバ処理では、ＣＰＵ１１は、非対応プリンタ３に対応する仮想プリンタを出力先として指定した印刷ジョブが有るか否かを判断する（Ｓ２０１）。印刷ジョブは、例えば、コンテンツ作成アプリ４２にて印刷の指示を受け付けたことにより生成され、ＯＳ４１に登録される（図４の手順６２）。ＣＰＵ１１は、Ｓ２０１にて、例えば、ＯＳ４１に定期的に問い合わせる、または、ＯＳ４１の印刷用のスプーラを監視することにより、該当する印刷ジョブが有るか否かを判断する。また、ＣＰＵ１１は、情報処理装置１に接続されている他の情報処理装置から、非対応プリンタ３に対応する仮想プリンタを出力先として指定した印刷ジョブを受け付けても良い。
【００６０】
印刷ジョブが有ると判断した場合（Ｓ２０１：ＹＥＳ）、ＣＰＵ１１は、このプリントサーバプログラム４４に対応する非対応プリンタ３を検索して（Ｓ２０２、手順６４）、非対応プリンタ３が検索されたか否かを判断する（Ｓ２０３）。非対応プリンタ３が検索されたと判断した場合（Ｓ２０３：ＹＥＳ）、ＣＰＵ１１は、印刷処理を実行する（Ｓ２０４）。印刷処理は、プリントサーバプログラム４４にて非対応プリンタ３に印刷を実行させる処理である。
【００６１】
印刷処理の手順について、図９のフローチャートを参照して説明する。印刷処理では、ＣＰＵ１１は、まず、印刷ジョブを取得する（Ｓ３０１）。Ｓ３０１は、受付処理の一例である。さらに、ＣＰＵ１１は、取得した印刷ジョブに含まれる印刷データを取得する（Ｓ３０２）。印刷ジョブに含まれる印刷データは、ドライバレス印刷機能によって作成された形式のデータであり、例えば、規格印刷データである。印刷ジョブに含まれる印刷データは、元印刷データの一例である。
【００６２】
そして、ＣＰＵ１１は、印刷ジョブに含まれる印刷データが、非対応プリンタ３にてサポート可能な形式のデータであるか否かを判断する（Ｓ３０３）。Ｓ３０３は、形式判断処理の一例である。非対応プリンタ３にてサポート可能な形式は、個別印刷データのみとは限らない。また、ドライバレス印刷機能にて作成される印刷データは、規格印刷データのみとは限らない。つまり、非対応プリンタ３は、ドライバレス印刷機能にて作成された印刷データであっても、印刷可能な場合もある。
【００６３】
印刷ジョブに含まれる印刷データが、非対応プリンタ３にてサポート不可能な形式のデータであると判断した場合（Ｓ３０３：ＮＯ）、ＣＰＵ１１は、印刷データを、非対応プリンタ３にてサポートする形式の印刷データである個別印刷データに変換する（Ｓ３０４、手順６６）。
【００６４】
なお、印刷データの変換は、プリントサーバプログラム４４にて行っても良いし、管理プログラム４３などの他のプログラムにて行っても良い。例えば、ＣＰＵ１１は、印刷ジョブに含まれる印刷データと非対応プリンタ３にて対応可能な印刷データの形式の情報とを管理プログラム４３に渡し、管理プログラム４３に印刷データの変換を要求しても良い。その場合、Ｓ３０４は、変換処理の一例である。
【００６５】
管理プログラム４３が印刷データの変換を行うことで、プリントサーバプログラム４４には変換処理が不要であり、個々のプリントサーバプログラム４４のサイズを小さくできる。特に、複数のプリントサーバプログラム４４が起動したとしても、１つのプログラムで対応できることから、情報処理装置１で起動しているプログラムのサイズを小さくできる。一方、個々のプリントサーバプログラム４４が印刷データの変換を行えば、管理プログラム４３とのデータの受け渡しの処理が無く、印刷データの変換が高速化される。
【００６６】
そして、ＣＰＵ１１は、変換後の個別印刷データを取得する（Ｓ３０５）。Ｓ３０５は、印刷データ取得処理の一例である。そして、印刷ジョブに含まれる印刷データが、非対応プリンタ３にてサポート可能な形式のデータであると判断した場合（Ｓ３０３：ＹＥＳ）、または、Ｓ３０５の後、ＣＰＵ１１は、印刷設定を引き継ぐ（Ｓ３０６、手順６６）。Ｓ３０３にてＹＥＳと判断した場合には、Ｓ３０２が、印刷データ取得処理の一例である。
【００６７】
印刷設定には、例えば、印刷部数の設定や両面印刷の設定が含まれる。非対応プリンタ３は、ドライバレス印刷機能にて付加される印刷設定のコマンドに適切に対応できるとは限らない。ＣＰＵ１１は、ドライバレス印刷機能による印刷設定のコマンドを、非対応プリンタ３の印刷設定のコマンドに変更することで、非対応プリンタ３にて対応可能な印刷設定を付加した印刷ジョブを作成する。
【００６８】
ＣＰＵ１１は、ネットワークＩＦ１６またはＵＳＢ−ＩＦ１７を制御し、Ｓ３０６にて引き継いだ印刷設定と、Ｓ３０２またはＳ３０５にて取得した印刷データと、を含む印刷ジョブを、非対応プリンタ３に送信させる（Ｓ３０７）。Ｓ３０７は、送信処理の一例である。さらに、ＣＰＵ１１は、送信を完了したか否かを判断する（Ｓ３０８）。
【００６９】
送信を完了したと判断した場合（Ｓ３０８：ＹＥＳ）、ＣＰＵ１１は、送信完了のステータス情報をＯＳ４１に渡す（Ｓ３０９）。一方、送信中にエラーが発生した等により、送信を完了しなかったと判断した場合（Ｓ３０８：ＮＯ）、ＣＰＵ１１は、エラー発生のステータス情報をＯＳ４１に渡す（Ｓ３１０）。Ｓ３０９またはＳ３１０の後、ＣＰＵ１１は、印刷処理を終了して、プリントサーバ処理に戻る。なお、印刷ジョブが他の装置から受信したものである場合、Ｓ３０９またはＳ３１０では、ステータス情報を印刷ジョブの送信元の装置へ送信するとよい。
【００７０】
図８の説明に戻り、Ｓ２０４の印刷処理の終了後、ＣＰＵ１１は、Ｓ２０１に戻って、さらに印刷ジョブが有るか否かを判断する。そして、印刷ジョブが無いと判断した場合（Ｓ２０１：ＮＯ）、ＣＰＵ１１は、所定のタイミングであるか否かを判断する（Ｓ２０５）。ＣＰＵ１１は、例えば、プリントサーバプログラム４４の起動中であって、起動または前回の印刷処理から所定時間が経過した場合に、所定のタイミングであると判断する。また、所定のタイミングは、１回のみでも良いし、定期的に所定のタイミングであると判断しても良い。
【００７１】
所定のタイミングであると判断した場合（Ｓ２０５：ＹＥＳ）、ＣＰＵ１１は、プリントサーバプログラム４４に対応する非対応プリンタ３を検索する（Ｓ２０６、手順８１）。Ｓ２０６は、Ｓ２０２と同様の処理である。そして、ＣＰＵ１１は、非対応プリンタ３が検索されたか否かを判断する（Ｓ２０７）。Ｓ２０７は、第２接続判断処理の一例である。
【００７２】
Ｓ２０２またはＳ２０６の検索によって非対応プリンタ３が検索されなかったと判断した場合（Ｓ２０３：ＮＯ、または、Ｓ２０７：ＮＯ）、ＣＰＵ１１は、エラーを通知する（Ｓ２０８）。ＣＰＵ１１は、例えば、ユーザＩＦ１５を制御して、非対応プリンタ３がオフラインであることを示すエラー情報を表示させる。非対応プリンタ３がオフラインであれば印刷を行わせることができない。Ｓ２０３やＳ２０７にてＮＯの場合に印刷処理を実行しないことで、ＣＰＵ１１の処理の負荷を軽減できる。
【００７３】
そして、ＣＰＵ１１は、プリントサーバプログラム４４を終了させるか否かを判断する（Ｓ２０９）。ＣＰＵ１１は、例えば、ユーザＩＦ１５を制御して、プリントサーバプログラム４４を終了させるか否かをユーザに問い合わせる表示を行わせ、ユーザの指示を受け付ける。あるいは、ＣＰＵ１１は、非対応プリンタ３のオフライン状態が所定時間以上継続している等の条件を満たした場合、プリントサーバプログラム４４を終了させると判断してもよい。
【００７４】
所定のタイミングではないと判断した場合（Ｓ２０５：ＮＯ）、または、非対応プリンタ３が検索された場合（Ｓ２０７：ＹＥＳ）、または、プリントサーバプログラム４４を終了させないと判断した場合（Ｓ２０９：ＮＯ）、ＣＰＵ１１は、Ｓ２０１に戻って、印刷ジョブが有るか否かを判断する。
【００７５】
一方、プリントサーバプログラム４４を終了させると判断した場合（Ｓ２０９：ＹＥＳ）、ＣＰＵ１１は、このプリントサーバプログラム４４によって構成されるプリントサーバがＯＳ４１に登録されているか否かを判断する（Ｓ２１０）。登録されていると判断した場合（Ｓ２１０：ＹＥＳ）、ＣＰＵ１１は、登録を削除する（Ｓ２１１）。
【００７６】
プリントサーバプログラム４４によって構成されるプリントサーバの登録を削除することで、通常のアプリからも非対応プリンタ３に対応する仮想プリンタが選択できなくなり、ユーザが誤って印刷指示を入力することを抑制できる。なお、情報処理装置１のプリントサーバプログラム４４によって構成されるプリントサーバが、他の装置に登録されている場合には、登録を削除するよう他の装置に通知するとよい。
【００７７】
Ｓ２１１の後、または、登録されていないと判断した場合（Ｓ２１０：ＮＯ）、ＣＰＵ１１は、プリントサーバプログラム４４を終了し（Ｓ２１２）、プリントサーバ処理を終了する。Ｓ２１２は、終了処理の一例である。なお、プリントサーバプログラム４４を終了する際、終了をユーザに通知しても良い。非対応プリンタ３がオフラインの場合、印刷を行わせることができない。そのため、プリントサーバプログラム４４を終了させることで、情報処理装置１の処理の負荷が軽減される。
【００７８】
以上、詳細に説明したように、本形態によれば、管理プログラム４３は、ドライバレス印刷機能に対応していない非対応プリンタ３が接続されている場合に、非対応プリンタ３に対応するプリントサーバプログラム４４を起動する。そして、プリントサーバプログラム４４は、ＯＳ４１を介して印刷ジョブを受け付け、受け付けた印刷ジョブの規格印刷データに基づいて、非対応プリンタ３にて印刷可能な個別印刷データを取得して、非対応プリンタ３に送信する。これにより、非対応プリンタ３用のプリンタドライバがインストールされない環境であっても、非対応プリンタ３に印刷を行わせることができる。
【００７９】
なお、本実施の形態は単なる例示にすぎず、本発明を何ら限定するものではない。したがって本明細書に開示される技術は当然に、その要旨を逸脱しない範囲内で種々の改良、変形が可能である。例えば、本形態を構成する情報処理装置やプリンタの台数は、図１や図７の例に限らない。例えば、対応プリンタ２は、接続されていなくてもよい。
【００８０】
また、例えば、他の装置で起動しているプリントサーバプログラム４４の利用は行わないとしても良い。例えば、サーバ起動処理のＳ１０６を削除し、Ｓ１０５にてＮＯと判断した場合には、Ｓ１０７に進むとしても良い。ただし、他の装置のプリントサーバプログラム４４を利用することで、情報処理装置１の処理の負荷は軽減される。
【００８１】
また、例えば、ドライバレス印刷機能によって作成された印刷ジョブの印刷データが、非対応プリンタ３にてサポート可能な形式であるか否かの判断は、行わなくても良い。つまり、印刷処理のＳ３０３を削除し、毎回、印刷データの変換を行うとしても良い。ただし、サポート可能な形式の印刷データである可能性もあることから、Ｓ３０３の判断を行うことで、処理の負荷が軽減される可能性もある。
【００８２】
また、例えば、プリンタの検索は、印刷データの送信時に行うとしても良い。つまり、非対応プリンタ３がオフラインであっても、印刷データの変換までは行うとしても良い。例えば、プリントサーバ処理のＳ２０２とＳ２０３に代えて、印刷処理のＳ３０７の前に非対応プリンタ３を検索しても良い。
【００８３】
また、非対応プリンタ３がオフラインであっても、プリントサーバプログラム４４は、終了させなくても良い。また、プリントサーバプログラム４４を終了する際の、ユーザへの通知は行わなくても良い。
【００８４】
また、実施の形態に開示されている処理は、単一のＣＰＵ、複数のＣＰＵ、ＡＳＩＣなどのハードウェア、またはそれらの組み合わせで実行されてもよい。また、実施の形態に開示されている処理は、その処理を実行するためのプログラムを記録した記録媒体、または方法等の種々の態様で実現することができる。
【符号の説明】
【００８５】
１  情報処理装置
３  非対応プリンタ
１１  ＣＰＵ
１４  不揮発性メモリ
１６  ネットワークＩＦ
１７  ＵＳＢ−ＩＦ
４１  ＯＳ
４３  管理プログラム
４４  プリントサーバプログラム
【図１】
2019175313.tif 000003
【図２】
2019175313.tif 000004
【図３】
2019175313.tif 000005
【図４】
2019175313.tif 000006
【図５】
2019175313.tif 000007
【図６】
2019175313.tif 000008
【図７】
2019175313.tif 000009
【図８】
2019175313.tif 000010
【図９】
2019175313.tif 000011