(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024107032
(43)【公開日】2024-08-08
(54)【発明の名称】アプリケーションプログラム
(51)【国際特許分類】
G06F 3/12 20060101AFI20240801BHJP
【FI】
G06F3/12 347
G06F3/12 303
G06F3/12 326
G06F3/12 328
【審査請求】有
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2024086195
(22)【出願日】2024-05-28
(62)【分割の表示】P 2023150788の分割
【原出願日】2018-03-29
(71)【出願人】
【識別番号】000005267
【氏名又は名称】ブラザー工業株式会社
(72)【発明者】
【氏名】山田 純
(57)【要約】
【課題】情報処理装置からプリンタを利用する場合の、プリンタの利用可能性を高める技術を提供すること。
【解決手段】情報処理装置1は、管理プログラム43とプリントサーバプログラム44とを備える。管理プログラム43は、情報処理装置1に非対応プリンタ3が接続されているか否かを判断し、接続されている場合にはプリントサーバプログラム44が起動しているか否かを判断し、起動していない場合にはプリントサーバプログラム44を起動し、プリントサーバプログラム44が構成するプリントサーバをOS41に登録する。プリントサーバプログラム44は、自身に対応するプリントサーバを出力先として指定した印刷ジョブを受け付け、受け付けた印刷ジョブに基づいて、非対応プリンタ3にて印刷可能な個別印刷データを取得し、取得した個別印刷データを非対応プリンタ3に送信する。
【選択図】
図2
【特許請求の範囲】
【請求項1】
情報処理装置の制御部によって実行可能なアプリケーションプログラムであって、管理プログラムとプリントサーバプログラムとを含み、
前記管理プログラムは、前記制御部に、
前記情報処理装置の通信インターフェースを介して特定のプリンタが接続されているか否かを判断する第1接続判断処理と、
前記第1接続判断処理によって前記特定のプリンタが接続されていると判断した場合に、前記特定のプリンタに対応する前記プリントサーバプログラムが起動しているか否かを判断する起動判断処理と、
前記起動判断処理にて前記プリントサーバプログラムが起動していないと判断した場合に、前記プリントサーバプログラムを起動する起動処理と、
前記起動処理にて前記プリントサーバプログラムを起動する場合に、起動する前記プリントサーバプログラムが構成するプリントサーバを、前記情報処理装置のオペレーティングシステムにプリンタとして登録するプリントサーバ登録処理と、
を実行させ、
前記プリントサーバプログラムは、前記制御部に、
前記オペレーティングシステムを介して、登録された前記プリントサーバを出力先として指定した印刷ジョブを受け付ける受付処理と、
前記受付処理にて前記印刷ジョブを受け付けた場合に、前記印刷ジョブに基づいて、前記特定のプリンタが印刷可能な特定の形式の印刷データを取得する印刷データ取得処理と、
前記印刷データ取得処理にて取得した前記印刷データを、前記特定のプリンタに送信する送信処理と、
を実行させる、
ことを特徴とするアプリケーションプログラム。
【請求項2】
請求項1に記載するアプリケーションプログラムにおいて、
前記プリントサーバプログラムの前記印刷データ取得処理では、
前記プリントサーバプログラムが前記管理プログラムに対して、前記印刷ジョブに含まれる前記特定の形式とは異なる形式の元印刷データを渡して前記特定の形式の印刷データへの変換を要求し、
前記管理プログラムは、前記制御部に、
前記印刷データ取得処理にて渡された前記元印刷データから、前記特定の形式の印刷データに変換する変換処理を実行させ、
前記プリントサーバプログラムの前記印刷データ取得処理では、
前記特定の形式の印刷データへの変換を要求した後、前記管理プログラムが前記変換処理によって変換した印刷データを、前記プリントサーバプログラムが取得する、
ことを特徴とするアプリケーションプログラム。
【請求項3】
請求項1に記載するアプリケーションプログラムにおいて、
前記プリントサーバプログラムの前記印刷データ取得処理では、
前記プリントサーバプログラムが、前記印刷ジョブに含まれる前記特定の形式とは異なる形式の元印刷データを、前記特定の形式の印刷データに変換する、
ことを特徴とするアプリケーションプログラム。
【請求項4】
請求項1から請求項3のいずれか1つに記載するアプリケーションプログラムにおいて、 前記プリントサーバプログラムは、前記制御部に、
前記受付処理にて受け付けた前記印刷ジョブに含まれる元印刷データが、前記特定のプリンタが印刷可能な形式の印刷データであるか否かを判断する形式判断処理を実行させ、
前記形式判断処理にて前記特定のプリンタが印刷可能な形式であると判断した場合に、
前記プリントサーバプログラムの前記印刷データ取得処理では、前記元印刷データを前記特定の形式の印刷データとして、前記プリントサーバプログラムが取得する、
ことを特徴とするアプリケーションプログラム。
【請求項5】
請求項1から請求項4のいずれか1つに記載するアプリケーションプログラムにおいて、 前記管理プログラムの前記起動判断処理では、
前記情報処理装置に接続されている別の情報処理装置にて前記プリントサーバプログラムが起動している場合であっても、前記プリントサーバプログラムが起動していると判断し、
前記管理プログラムは、前記制御部に、
前記起動判断処理にて前記プリントサーバプログラムが起動していると判断した場合であっても、前記別の情報処理装置の前記プリントサーバプログラムが構成している既存プリントサーバが前記オペレーティングシステムに登録されていない場合、前記既存プリントサーバを、前記オペレーティングシステムにプリンタとして登録する既存プリントサーバ登録処理を実行させる、
ことを特徴とするアプリケーションプログラム。
【請求項6】
請求項1から請求項5のいずれか1つに記載するアプリケーションプログラムにおいて、 前記プリントサーバプログラムは、前記制御部に、
前記プリントサーバプログラムが起動中の所定のタイミングに、前記通信インターフェースを介して前記特定のプリンタが接続されているか否かを判断する第2接続判断処理と、
前記第2接続判断処理によって前記特定のプリンタが接続されていないと判断した場合に、前記プリントサーバプログラムを終了させる終了処理と、
を実行させる、
ことを特徴とするアプリケーションプログラム。
【請求項7】
請求項6に記載するアプリケーションプログラムにおいて、
前記プリントサーバプログラムの前記終了処理では、
前記オペレーティングシステムから前記プリントサーバの登録を削除する、
ことを特徴とするアプリケーションプログラム。
【請求項8】
請求項1から請求項7のいずれか1つに記載するアプリケーションプログラムにおいて、 前記プリントサーバプログラムの前記印刷データ取得処理では、
前記受付処理にて前記印刷ジョブを受け付けた場合に、前記通信インターフェースを介して前記特定のプリンタが接続されているか否かを判断し、前記特定のプリンタが接続されていると判断したことを条件として、前記特定の形式の印刷データを取得する、
ことを特徴とするアプリケーションプログラム。
【請求項9】
請求項1から請求項8のいずれか1つに記載するアプリケーションプログラムにおいて、 前記管理プログラムは、
前記第1接続判断処理にて前記特定のプリンタが接続されていると判断した場合であっても、前記情報処理装置のメモリに、前記特定のプリンタに対応するプリンタドライバプログラムが記憶されている場合には、前記起動判断処理および前記起動処理を実行しない、
ことを特徴とするアプリケーションプログラム。
【請求項10】
請求項1から請求項8のいずれか1つに記載するアプリケーションプログラムにおいて、 前記管理プログラムは、
前記第1接続判断処理にて前記特定のプリンタが接続されていると判断した場合であっても、前記オペレーティングシステムのバージョンが、所定のバージョンである場合には、前記起動判断処理および前記起動処理を実行しない、
ことを特徴とするアプリケーションプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書に開示される技術分野は、プリンタを制御するアプリケーションプログラムに関する。
【背景技術】
【0002】
従来、プリンタドライバをインストールすることなく、オペレーティングシステム(以下、「OS」とする)の印刷機能を用いて印刷を行うドライバレス印刷技術が普及している。ここで、低価格機など,ドライバレス印刷技術に対応していないプリンタは、プリンタドライバをインストールできないOS環境では、印刷を実行できない。一方、例えば、特許文献1には、情報処理装置にプリンタドライバが組み込まれていない場合に、プリンタからプリンタドライバを送信し、情報処理装置がプリンタドライバのインストールを行い、プリントサーバとして動作する構成が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1のように情報処理装置がプリントサーバとして動作する構成においても、AirPrint(登録商標)などのドライバレス印刷技術に対応していないプリンタは、プリンタドライバをインストールできないOS環境では、OSの印刷機能を用いて当該プリンタを選択することはできないため、印刷を実行できない。
【0005】
本明細書に開示される技術は、前記した従来の技術が有する問題点を解決するためになされたものである。すなわちその課題とするところは、情報処理装置からプリンタを利用する場合の、プリンタの利用可能性を高める技術を提供することにある。
【課題を解決するための手段】
【0006】
この課題の解決を目的としてなされたアプリケーションプログラムは、情報処理装置の制御部によって実行可能なアプリケーションプログラムであって、管理プログラムとプリントサーバプログラムとを含み、前記管理プログラムは、前記制御部に、前記情報処理装置の通信インターフェースを介して特定のプリンタが接続されているか否かを判断する第1接続判断処理と、前記第1接続判断処理によって前記特定のプリンタが接続されていると判断した場合に、前記特定のプリンタに対応する前記プリントサーバプログラムが起動しているか否かを判断する起動判断処理と、前記起動判断処理にて前記プリントサーバプログラムが起動していないと判断した場合に、前記プリントサーバプログラムを起動する起動処理と、前記起動処理にて前記プリントサーバプログラムを起動する場合に、起動する前記プリントサーバプログラムが構成するプリントサーバを、前記情報処理装置のオペレーティングシステムにプリンタとして登録するプリントサーバ登録処理と、を実行させ、前記プリントサーバプログラムは、前記制御部に、前記オペレーティングシステムを介して、登録された前記プリントサーバを出力先として指定した印刷ジョブを受け付ける受付処理と、前記受付処理にて前記印刷ジョブを受け付けた場合に、前記印刷ジョブに基づいて、前記特定のプリンタが印刷可能な特定の形式の印刷データを取得する印刷データ取得処理と、前記印刷データ取得処理にて取得した前記印刷データを、前記特定のプリンタに送信する送信処理と、を実行させる、ことを特徴としている。
【0007】
本明細書に開示されるアプリケーションプログラムは、特定のプリンタが接続されていると判断した場合、その特定のプリンタに対応するプリントサーバプログラムを起動して、起動するプリントサーバプログラムが構成するプリントサーバをオペレーティングシステムにプリンタとして登録する。これにより、オペレーティングシステムにおいて特定のプリンタが選択可能になる。さらに、プリントサーバプログラムは、登録されたプリントサーバを出力先として指定した印刷ジョブを受け付け、印刷ジョブに基づいて、特定のプリンタが印刷可能な特定の形式の印刷データを取得して、特定のプリンタに送信する。従って、特定のプリンタは、特定の形式の印刷データを受信するので、この印刷データを用いて印刷を実行できる。
【0008】
上記の機能を実現するための制御方法、アプリケーションプログラムを格納するコンピュータにて読取可能な記憶媒体も、新規で有用である。
【発明の効果】
【0009】
本明細書に開示されるアプリケーションプログラムによれば、情報処理装置からプリンタを利用する場合の、プリンタの利用可能性を高める技術が実現される。
【図面の簡単な説明】
【0010】
【
図1】実施の形態にかかる情報処理装置の概略構成図である。
【
図2】対応プリンタと非対応プリンタによる印刷手順を示す説明図である。
【
図3】プリントサーバの起動と登録の手順を示すシーケンス図である。
【
図5】プリントサーバの終了の手順を示すシーケンス図である。
【
図6】サーバ起動処理の手順を示すフローチャートである。
【
図7】他の情報処理装置のプリントサーバプログラムを利用する例を示す説明図である。
【
図8】プリントサーバ処理の手順を示すフローチャートである。
【
図9】印刷処理の手順を示すフローチャートである。
【発明を実施するための形態】
【0011】
以下、本実施の形態にかかるアプリケーションプログラム(以下、「アプリ」とする)について、添付図面を参照しつつ詳細に説明する。本形態は、情報処理装置にてプリンタに印刷を実行させるためのアプリである。
【0012】
本形態のアプリは、
図1に示すように、プリンタが接続されている情報処理装置1にて実行される。情報処理装置1は、例えば、パーソナルコンピュータ、スマートフォン、タブレットコンピュータであり、プリンタに印刷させる画像データの生成及び編集、各プリンタへの印刷実行指示の送信等を行う装置である。
【0013】
本形態の情報処理装置1は、
図1に示すように、CPU11と、ROM12と、RAM13と、不揮発性メモリ14と、を含むコントローラ10を備えている。さらに、ユーザインターフェース(以下、「ユーザIF」とする)15と、ネットワークインターフェース(以下、「ネットワークIF」とする)16と、USBインターフェース(以下、「USB-IF」とする)17と、を備え、これらがコントローラ10に電気的に接続されている。CPU11は、制御部の一例である。CPU11のバッファ、ROM12、RAM13、不揮発性メモリ14は、メモリの一例である。ネットワークIF16とUSB-IF17は、それぞれ通信インターフェースの一例である。
【0014】
ROM12には、情報処理装置1を起動するための起動プログラム等が記憶されている。RAM13は、各種の処理が実行される際の作業領域として、あるいは、データを一時的に記憶する記憶領域として利用される。不揮発性メモリ14は、例えば、HDD、フラッシュメモリであり、各種のプログラムや画像データ等のデータや各種設定を記憶する領域として利用される。
【0015】
CPU11は、ROM12や不揮発性メモリ14から読み出したプログラムに従って、また、ユーザの操作に基づいて、各種の処理を実行する。なお、
図1中のコントローラ10は、情報処理装置1の制御に利用されるハードウェアやソフトウェアを纏めた総称であって、実際に情報処理装置1に存在する単一のハードウェアを表すとは限らない。
【0016】
ユーザIF15は、ユーザによる操作を受け付けるとともに情報の表示を行うハードウェアである。ユーザIF15は、タッチパネル等の入力機能と出力機能との両方を備えるものであっても良いし、ディスプレイとキーボードやマウスとの組み合わせによって構成されるものであっても良い。
【0017】
ネットワークIF16は、インターネット等のネットワークを介して外部装置と通信を行うためのハードウェアを含む。ネットワークIF16の通信規格は、例えば、イーサネット(登録商標)、Wi-Fi(登録商標)などである。USB-IF17は、USB規格に基づく通信を行うためのハードウェアを含む。なお、ネットワークIF16やUSB-IF17の通信の態様は、有線でも無線でもよい。
【0018】
本形態の情報処理装置1は、プリンタドライバをインストールせずに印刷を行う機能であるドライバレス印刷機能を有する。ドライバレス印刷機能は、印刷対象のコンテンツなどに基づいて、プリンタの機種に依存しない汎用の印刷データである規格印刷データを含む印刷ジョブを作成し、プリンタに送信する印刷機能であり、例えば、AirPrint(登録商標)、Mopria(登録商標)がある。
【0019】
そして、情報処理装置1には、
図1に示すように、2台のプリンタ2、3が接続されている。プリンタ2とプリンタ3とは、いずれも、印刷対象の媒体への画像の形成が可能な装置であり、例えば、ページプリンタ、コピー機、複合機、FAX装置である。
【0020】
プリンタ2は、ネットワークIF16を介して情報処理装置1に接続され、情報処理装置1のドライバレス印刷機能に対応可能なプリンタである。以下、プリンタ2を、「対応プリンタ2」とする。対応プリンタ2は、情報処理装置1から送信される印刷ジョブの規格印刷データに基づいて、自機にて印刷に用いる印刷用画像データを作成するプログラムを有している。対応プリンタ2は、受信した規格印刷データに基づいて印刷用画像データを作成し、作成した印刷用画像データを用いて、印刷を実行する。
【0021】
一方、プリンタ3は、ネットワークIF16またはUSB-IF17を介して情報処理装置1に接続され、情報処理装置1のドライバレス印刷機能に対応不可能なプリンタである。以下、プリンタ3を、「非対応プリンタ3」とする。非対応プリンタ3は、規格印刷データから印刷用画像データを作成する構成を有していない。そのため、非対応プリンタ3は、規格印刷データを受信しても印刷を実行できない。非対応プリンタ3は、自身にて対応可能な印刷データを受信すると、受信した印刷データを印刷用画像データとして、あるいは、受信した印刷データを印刷用画像データに変換して、印刷を実行する。また、非対応プリンタ3は、ドライバレス印刷機能に基づくプリンタ検索信号に応答しない。そのため、情報処理装置1のドライバレス印刷機能は、非対応プリンタ3を印刷装置として認識しない。非対応プリンタ3は、特定のプリンタの一例である。
【0022】
本形態の情報処理装置1は、非対応プリンタ3に印刷を実行させるためのアプリを備えている。情報処理装置1の不揮発性メモリ14には、
図1に示すように、OS41と、コンテンツ作成アプリ42と、管理プログラム43と、プリントサーバプログラム44と、を含む、各種のプログラムが記憶されている。なお、OS41の一部は、ROM12に含まれていてもよい。
【0023】
本形態の情報処理装置1のOS41は、ドライバレス印刷機能を備え、個別の機種のプリンタに対応するプリンタドライバのインストールを受け付けないバージョンのものである。そのため、情報処理装置1の不揮発性メモリ14には、例えば、非対応プリンタ3のプリンタドライバプログラムは記憶されていない。
【0024】
コンテンツ作成アプリ42は、文書、画像、図表等の印刷の対象となるコンテンツを作成するアプリである。そして、コンテンツ作成アプリ42には、ユーザ操作に基づく印刷の指示を受け付ける機能が含まれる。なお、情報処理装置1は、例えば、複数のコンテンツ作成アプリ42を有していてもよい。
【0025】
管理プログラム43とプリントサーバプログラム44は、コンテンツ作成アプリ42などにて作成されたコンテンツに基づく印刷を、情報処理装置1に接続されている非対応プリンタ3に実行させる場合に使用されるプログラムである。管理プログラム43とプリントサーバプログラム44は、アプリケーションプログラムの一例である。
【0026】
管理プログラム43は、非対応プリンタ3に対応するプリントサーバプログラム44を起動させ、プリントサーバプログラム44によって構成されるプリントサーバを、仮想プリンタとしてOS41に登録するプログラムである。OS41にプリントサーバを仮想プリンタとして登録することにより、コンテンツ作成アプリ42等では、その仮想プリンタを出力先として選択可能となる。プリントサーバプログラム44は、ドライバレス印刷機能によって出力される印刷ジョブを非対応プリンタ3にて対応可能な形式に変換して、非対応プリンタ3に送信するプログラムである。
【0027】
なお、管理プログラム43は、情報処理装置1に1つであり、プリントサーバプログラム44は、1台の非対応プリンタ3ごとに1つである。複数の非対応プリンタ3が接続されている情報処理装置1では、非対応プリンタ3ごとにプリントサーバが起動され、それぞれ仮想のプリンタとして登録される。
【0028】
本形態の情報処理装置1は、例えば、
図2に示すように、対応プリンタ2に印刷を実行させる場合と非対応プリンタ3に印刷を実行させる場合とで、異なる処理を実行する。情報処理装置1のOS41は、例えば、コンテンツ作成アプリ42にて印刷指示を受け付けた場合、受け付けた印刷指示にて指定されたプリンタが対応プリンタ2であれば、ドライバレス印刷機能にて作成した規格印刷データを、対応プリンタ2に送信する。対応プリンタ2は、規格印刷データに基づいて、印刷を実行する。
【0029】
一方、印刷指示にて指定されたプリンタが非対応プリンタ3に対応する仮想プリンタである場合には、情報処理装置1は、ドライバレス印刷機能にて作成した規格印刷データを、プリントサーバプログラム44に渡す。プリントサーバプログラム44は、規格印刷データに基づいて、非対応プリンタ3にて対応可能な形式の印刷データである個別印刷データを取得し、非対応プリンタ3に送信する。個別印刷データは、特定の形式の印刷データの一例である。
【0030】
続いて、情報処理装置1にて非対応プリンタ3に印刷を実行させる動作について説明する。なお、以下の説明における処理およびフローチャートの各処理ステップは、基本的に、管理プログラム43やプリントサーバプログラム44などのプログラムに記述された命令に従ったCPU11の処理を示す。CPU11による処理は、情報処理装置1のOS41の他のモジュールとデータ交換するためのIF(APIとも呼ばれる)を用いたハードウェア制御も含む。なお、本明細書では、OS41の記載を省略して各プログラムの動作を説明する。
【0031】
まず、
図3~
図5のシーケンス図を参照して、動作の概要を説明する。管理プログラム43による印刷準備動作について、
図3のシーケンス図を参照して説明する。管理プログラム43は、例えば、情報処理装置1の起動時に起動され、起動すると、情報処理装置1に接続されているプリンタを検索する。管理プログラム43による検索は、ドライバレス印刷機能による検索とは異なり、情報処理装置1は、非対応プリンタ3であれば応答可能な検索信号をマルチキャストする。
【0032】
そして、管理プログラム43は、情報処理装置1に接続されている非対応プリンタ3が有るか否かを判断する(手順51)。例えば、接続されているプリンタがドライバレス印刷機能に対応する対応プリンタ2のみであれば、情報処理装置1は、プリントサーバプログラム44を実行する必要はない。
【0033】
非対応プリンタ3が検索された場合、管理プログラム43は、非対応プリンタ3にて印刷を実行させるためのプリンタ情報を取得する(手順52)。具体的には、管理プログラム43は、検索された非対応プリンタ3の機種情報、バージョン情報などを取得する。
【0034】
そして、管理プログラム43は、検索された非対応プリンタ3に対応するプリントサーバプログラム44が起動していない場合、プリントサーバプログラム44を起動させる(手順53)。なお、複数の非対応プリンタ3が検索された場合、管理プログラム43は、1台ごとに手順52と手順53とを行う。
【0035】
さらに、管理プログラム43は、OS41にプリントサーバプログラム44によって構成されるプリントサーバが登録されているか否かを判断する。つまり、管理プログラム43は、OS41に登録されているプリンタを検索し(手順54)、OS41からプリンタの一覧を取得する(手順55)。取得したプリンタの一覧の中に、プリントサーバプログラム44によって構成されるプリントサーバが含まれていない場合、管理プログラム43は、プリントサーバプログラム44によって構成されるプリントサーバを、検索された非対応プリンタ3に対応する仮想プリンタとして、OS41に登録する(手順56)。
【0036】
次に、プリントサーバプログラム44を用いた印刷動作について、
図4のシーケンス図を参照して説明する。情報処理装置1は、実行中のコンテンツ作成アプリ42にて、ユーザによるコンテンツの印刷指示を受け付ける(手順61)。コンテンツ作成アプリ42は、受け付けた印刷指示に基づいて印刷ジョブを作成し、OS41に登録する(手順62)。OS41は、受け付けた印刷ジョブをドライバレス印刷機能にて処理し、規格印刷データを含む印刷ジョブを生成する。
【0037】
OS41は、出力先として非対応プリンタ3に対応する仮想プリンタが指定されている印刷ジョブを、非対応プリンタ3に対応するプリントサーバプログラム44に渡す(手順63)。プリントサーバプログラム44は、出力先である非対応プリンタ3を検索し、印刷可能な状態であるか否かを判断する(手順64)。
【0038】
非対応プリンタ3は、印刷可能な状態であれば、プリンタ情報をプリントサーバプログラム44に送信する(手順65)。プリントサーバプログラム44は、プリンタ情報に基づいて、規格印刷データから非対応プリンタ3にて対応可能な形式の個別印刷データを生成する。さらに、プリントサーバプログラム44は、プリンタ情報に基づいて、印刷ジョブに含まれる印刷設定を引き継ぎ、非対応プリンタ3にて対応可能な形式の情報とする(手順66)。
【0039】
そして、プリントサーバプログラム44は、生成した個別印刷データと印刷設定とを非対応プリンタ3に送信する(手順67)。非対応プリンタ3は、受信した個別印刷データに基づく印刷を実行し(手順68)、印刷完了などのステータス情報を、プリントサーバプログラム44に送信する(手順69)。プリントサーバプログラム44は、受信したステータス情報をOS41に渡す(手順70)。
【0040】
一方、プリントサーバプログラム44は、手順64によるプリンタの検索によって、非対応プリンタ3を検索できなかった場合、非対応プリンタ3がオフライン状態であることを示すステータス情報をOS41に渡す(手順71)。OS41は、手順70または手順71にて受け取ったステータス情報を、例えば、コンテンツ作成アプリ42等を介してユーザに通知する(手順72)。
【0041】
次に、プリントサーバプログラム44の終了動作について、
図5のシーケンス図を参照して説明する。プリントサーバプログラム44は、印刷ジョブの処理を実行していない所定のタイミングで、非対応プリンタ3を検索する(手順81)。そして、非対応プリンタ3からの応答が無く、検索に失敗した場合、プリントサーバプログラム44は、非対応プリンタ3が接続されていないことをエラーとしてユーザに通知する(手順82)。
【0042】
そして、例えば、ユーザ操作によりサーバの終了の指示を受け付けた場合、プリントサーバプログラム44は、自身によって構成されるプリントサーバがOS41に登録済みであれば、OS41から対応する仮想プリンタの登録を削除する(手順83)。さらに、プリントサーバプログラム44は、自身を終了させる(手順84)。不要のプリントサーバプログラム44を終了させることで、情報処理装置1の処理の負荷が軽減される。
【0043】
次に、各プログラムの動作について、
図6~
図9のフローチャートを参照して詳細に説明する。なお、以下の説明中に付記した手順番号は、
図3~
図5のシーケンス図中に示す手順番号に対応する。
【0044】
まず、管理プログラム43によるサーバ起動処理の手順について、
図6のフローチャートを参照して説明する。このサーバ起動処理は、例えば、情報処理装置1の起動、プリンタの接続、印刷指示の受け付けを契機に、CPU11にて実行される。
【0045】
サーバ起動処理では、CPU11は、まず、ドライバレス印刷環境であるか否かを判断する(S101)。CPU11は、例えば、情報処理装置1のOS41のバージョン情報を取得し、OS41がドライバレス印刷機能を備え、プリンタドライバのインストールを受け付けない動作環境であるか否かを判断する。また、CPU11は、プリンタドライバがインストールされているか否かを判断しても良い。ドライバレス印刷環境ではないと判断した場合(S101:NO)、CPU11は、サーバ起動処理を終了する。
【0046】
プリンタドライバのインストールが可能な環境であれば、プリンタドライバをインストールすることで、処理の負荷を軽減できる。また、OS41のバージョンを確認することで、例えば、OS41のバージョンアップによって、ドライバレス印刷の動作環境に変化した場合に、管理プログラム43とプリントサーバプログラム44とを機能させることができる。従って、ユーザに従前と同様の使い勝手での印刷環境を継続して提供できる。
【0047】
ドライバレス印刷環境であると判断した場合(S101:YES)、CPU11は、情報処理装置1に接続されているプリンタを順に検索する(S102)。そして、CPU11は、検索されたプリンタがドライバレス印刷機能に非対応の非対応プリンタ3であるか否かを判断する(S103、手順51)。S103は、第1接続判断処理の一例である。
【0048】
例えば、CPU11は、ネットワークIF16を介して接続されている各プリンタに問い合わせ、ドライバレス印刷機能に対応する能力を有しているか否かを判断する。また、例えば、情報処理装置1が接続されている外部機器のリストを備えていれば、CPU11は、S103にてリスト中の非対応プリンタ3の接続確認を行っても良い。
【0049】
非対応プリンタ3が検索されたと判断した場合(S103:YES)、CPU11は、プリンタ情報を取得する(S104、手順52)。CPU11は、プリンタ情報として、例えば、プリンタの機種情報やバージョン情報、プリンタにてサポートする印刷データのデータ形式を取得する。CPU11は、検索された非対応プリンタ3に問い合わせてプリンタ情報を取得しても良いし、外部機器のリスト等からプリンタ情報を取得しても良い。
【0050】
さらに、CPU11は、検索された非対応プリンタ3に対応するプリントサーバプログラム44が起動しているか否かを判断する(S105)。S105は、起動判断処理の一例である。プリントサーバプログラム44が起動していないと判断した場合(S105:NO)、CPU11は、情報処理装置1と通信可能な他の装置で、非対応プリンタ3に対応するプリントサーバプログラム44が起動しているか否かを判断する(S106)。S106も、起動判断処理の一例である。
【0051】
例えば、
図7に示すように、複数の情報処理装置1、100、200が互いに通信可能に接続され、同じ非対応プリンタ3を利用可能なシステムでは、他の情報処理装置100にてプリントサーバプログラム44が起動している場合、情報処理装置1は、他の情報処理装置100のプリントサーバプログラム44を利用できる。この場合、他の情報処理装置100のプリントサーバプログラム44によって構成されるプリントサーバを仮想プリンタとしてOS41に登録することで、情報処理装置1は、そのプリントサーバプログラム44を利用できる。この場合、他の情報処理装置100にて起動しているプリントサーバプログラム44が構成しているプリントサーバは、既存プリントサーバの一例である。
【0052】
情報処理装置1は、例えば、
図7に示すように、規格印刷データを他の情報処理装置100に渡し、他の情報処理装置100のプリントサーバプログラム44に個別印刷データを作成させて、他の情報処理装置100から非対応プリンタ3に送信させることもできる。このようにすれば、自装置でプリントサーバプログラム44を起動する必要がなく、自装置での処理の負荷が軽減される。
【0053】
自装置でも他の装置でも、プリントサーバプログラム44が起動していないと判断した場合(S106:NO)、CPU11は、検索された非対応プリンタ3に対応するプリントサーバプログラム44を起動する(S107,手順53)。S107は、起動処理の一例である。
【0054】
また、検索された非対応プリンタ3に対応するプリントサーバプログラム44が他の装置にて起動していると判断した場合(S106:YES)、CPU11は、プリントサーバプログラム44によって構成されるプリントサーバがOS41に登録されているか否かを判断する(S108)。具体的には、CPU11は、例えば、OS41に問い合わせてOS41に登録されているプリンタの一覧を取得し(手順54、55)、その一覧中に、非対応プリンタ3に対応する仮想プリンタとして登録されているプリントサーバが含まれているか否かを判断する。
【0055】
そして、S107の後、または、非対応プリンタ3に対応するプリントサーバがOS41に登録されていないと判断した場合(S108:NO)、CPU11は、プリントサーバプログラム44によって構成されるプリントサーバをプリンタとしてOS41に登録する(S109、手順56)。S107の後に実行されるS109は、プリントサーバ登録処理の一例である。また、S108にてNOと判断した後に実行されるS109は、既存プリントサーバ登録処理の一例である。
【0056】
S109では、CPU11は、プリントサーバプログラム44によって構成されるプリントサーバを、検索された非対応プリンタ3のモデル名や愛称等を用いて登録する。ユーザによる名称の指定を受け付けても良い。プリントサーバプログラム44によって構成されるプリントサーバを非対応プリンタ3としてOS41に登録することで、非対応プリンタ3が、コンテンツ作成アプリ42等で印刷指示を行う際、印刷装置としての選択の対象となる。
【0057】
一方、非対応プリンタ3ではないと判断した場合(S103:NO)、または、プリントサーバプログラム44が起動していると判断した場合(S105:YES)、他の装置のプリントサーバプログラム44によって構成されるプリントサーバがOS41に登録されていると判断した場合(S108:YES)、S109の後、CPU11は、プリンタの検索が終了したか否かを判断する(S110)。検索が終了していないと判断した場合(S110:NO)、CPU11は、S102に戻って、さらにプリンタの検索を行う。
一方、検索が終了したと判断した場合(S110:YES)、CPU11は、サーバ起動処理を終了する。
【0058】
次に、プリントサーバプログラム44によるプリントサーバ処理の手順について、
図8のフローチャートを参照して説明する。このプリントサーバ処理は、サーバ起動処理のS107にてプリントサーバプログラム44が起動されたことを契機に、CPU11にて実行される。
【0059】
プリントサーバ処理では、CPU11は、非対応プリンタ3に対応する仮想プリンタを出力先として指定した印刷ジョブが有るか否かを判断する(S201)。印刷ジョブは、例えば、コンテンツ作成アプリ42にて印刷の指示を受け付けたことにより生成され、OS41に登録される(
図4の手順62)。CPU11は、S201にて、例えば、OS41に定期的に問い合わせる、または、OS41の印刷用のスプーラを監視することにより、該当する印刷ジョブが有るか否かを判断する。また、CPU11は、情報処理装置1に接続されている他の情報処理装置から、非対応プリンタ3に対応する仮想プリンタを出力先として指定した印刷ジョブを受け付けても良い。
【0060】
印刷ジョブが有ると判断した場合(S201:YES)、CPU11は、このプリントサーバプログラム44に対応する非対応プリンタ3を検索して(S202、手順64)、非対応プリンタ3が検索されたか否かを判断する(S203)。非対応プリンタ3が検索されたと判断した場合(S203:YES)、CPU11は、印刷処理を実行する(S204)。印刷処理は、プリントサーバプログラム44にて非対応プリンタ3に印刷を実行させる処理である。
【0061】
印刷処理の手順について、
図9のフローチャートを参照して説明する。印刷処理では、CPU11は、まず、印刷ジョブを取得する(S301)。S301は、受付処理の一例である。さらに、CPU11は、取得した印刷ジョブに含まれる印刷データを取得する(S302)。印刷ジョブに含まれる印刷データは、ドライバレス印刷機能によって作成された形式のデータであり、例えば、規格印刷データである。印刷ジョブに含まれる印刷データは、元印刷データの一例である。
【0062】
そして、CPU11は、印刷ジョブに含まれる印刷データが、非対応プリンタ3にてサポート可能な形式のデータであるか否かを判断する(S303)。S303は、形式判断処理の一例である。非対応プリンタ3にてサポート可能な形式は、個別印刷データのみとは限らない。また、ドライバレス印刷機能にて作成される印刷データは、規格印刷データのみとは限らない。つまり、非対応プリンタ3は、ドライバレス印刷機能にて作成された印刷データであっても、印刷可能な場合もある。
【0063】
印刷ジョブに含まれる印刷データが、非対応プリンタ3にてサポート不可能な形式のデータであると判断した場合(S303:NO)、CPU11は、印刷データを、非対応プリンタ3にてサポートする形式の印刷データである個別印刷データに変換する(S304、手順66)。
【0064】
なお、印刷データの変換は、プリントサーバプログラム44にて行っても良いし、管理プログラム43などの他のプログラムにて行っても良い。例えば、CPU11は、印刷ジョブに含まれる印刷データと非対応プリンタ3にて対応可能な印刷データの形式の情報とを管理プログラム43に渡し、管理プログラム43に印刷データの変換を要求しても良い。その場合、S304は、変換処理の一例である。
【0065】
管理プログラム43が印刷データの変換を行うことで、プリントサーバプログラム44には変換処理が不要であり、個々のプリントサーバプログラム44のサイズを小さくできる。特に、複数のプリントサーバプログラム44が起動したとしても、1つのプログラムで対応できることから、情報処理装置1で起動しているプログラムのサイズを小さくできる。一方、個々のプリントサーバプログラム44が印刷データの変換を行えば、管理プログラム43とのデータの受け渡しの処理が無く、印刷データの変換が高速化される。
【0066】
そして、CPU11は、変換後の個別印刷データを取得する(S305)。S305は、印刷データ取得処理の一例である。そして、印刷ジョブに含まれる印刷データが、非対応プリンタ3にてサポート可能な形式のデータであると判断した場合(S303:YES)、または、S305の後、CPU11は、印刷設定を引き継ぐ(S306、手順66)。S303にてYESと判断した場合には、S302が、印刷データ取得処理の一例である。
【0067】
印刷設定には、例えば、印刷部数の設定や両面印刷の設定が含まれる。非対応プリンタ3は、ドライバレス印刷機能にて付加される印刷設定のコマンドに適切に対応できるとは限らない。CPU11は、ドライバレス印刷機能による印刷設定のコマンドを、非対応プリンタ3の印刷設定のコマンドに変更することで、非対応プリンタ3にて対応可能な印刷設定を付加した印刷ジョブを作成する。
【0068】
CPU11は、ネットワークIF16またはUSB-IF17を制御し、S306にて引き継いだ印刷設定と、S302またはS305にて取得した印刷データと、を含む印刷ジョブを、非対応プリンタ3に送信させる(S307)。S307は、送信処理の一例である。さらに、CPU11は、送信を完了したか否かを判断する(S308)。
【0069】
送信を完了したと判断した場合(S308:YES)、CPU11は、送信完了のステータス情報をOS41に渡す(S309)。一方、送信中にエラーが発生した等により、送信を完了しなかったと判断した場合(S308:NO)、CPU11は、エラー発生のステータス情報をOS41に渡す(S310)。S309またはS310の後、CPU11は、印刷処理を終了して、プリントサーバ処理に戻る。なお、印刷ジョブが他の装置から受信したものである場合、S309またはS310では、ステータス情報を印刷ジョブの送信元の装置へ送信するとよい。
【0070】
図8の説明に戻り、S204の印刷処理の終了後、CPU11は、S201に戻って、さらに印刷ジョブが有るか否かを判断する。そして、印刷ジョブが無いと判断した場合(S201:NO)、CPU11は、所定のタイミングであるか否かを判断する(S205)。CPU11は、例えば、プリントサーバプログラム44の起動中であって、起動または前回の印刷処理から所定時間が経過した場合に、所定のタイミングであると判断する。
また、所定のタイミングは、1回のみでも良いし、定期的に所定のタイミングであると判断しても良い。
【0071】
所定のタイミングであると判断した場合(S205:YES)、CPU11は、プリントサーバプログラム44に対応する非対応プリンタ3を検索する(S206、手順81)。S206は、S202と同様の処理である。そして、CPU11は、非対応プリンタ3が検索されたか否かを判断する(S207)。S207は、第2接続判断処理の一例である。
【0072】
S202またはS206の検索によって非対応プリンタ3が検索されなかったと判断した場合(S203:NO、または、S207:NO)、CPU11は、エラーを通知する(S208)。CPU11は、例えば、ユーザIF15を制御して、非対応プリンタ3がオフラインであることを示すエラー情報を表示させる。非対応プリンタ3がオフラインであれば印刷を行わせることができない。S203やS207にてNOの場合に印刷処理を実行しないことで、CPU11の処理の負荷を軽減できる。
【0073】
そして、CPU11は、プリントサーバプログラム44を終了させるか否かを判断する(S209)。CPU11は、例えば、ユーザIF15を制御して、プリントサーバプログラム44を終了させるか否かをユーザに問い合わせる表示を行わせ、ユーザの指示を受け付ける。あるいは、CPU11は、非対応プリンタ3のオフライン状態が所定時間以上継続している等の条件を満たした場合、プリントサーバプログラム44を終了させると判断してもよい。
【0074】
所定のタイミングではないと判断した場合(S205:NO)、または、非対応プリンタ3が検索された場合(S207:YES)、または、プリントサーバプログラム44を終了させないと判断した場合(S209:NO)、CPU11は、S201に戻って、印刷ジョブが有るか否かを判断する。
【0075】
一方、プリントサーバプログラム44を終了させると判断した場合(S209:YES)、CPU11は、このプリントサーバプログラム44によって構成されるプリントサーバがOS41に登録されているか否かを判断する(S210)。登録されていると判断した場合(S210:YES)、CPU11は、登録を削除する(S211)。
【0076】
プリントサーバプログラム44によって構成されるプリントサーバの登録を削除することで、通常のアプリからも非対応プリンタ3に対応する仮想プリンタが選択できなくなり、ユーザが誤って印刷指示を入力することを抑制できる。なお、情報処理装置1のプリントサーバプログラム44によって構成されるプリントサーバが、他の装置に登録されている場合には、登録を削除するよう他の装置に通知するとよい。
【0077】
S211の後、または、登録されていないと判断した場合(S210:NO)、CPU11は、プリントサーバプログラム44を終了し(S212)、プリントサーバ処理を終了する。S212は、終了処理の一例である。なお、プリントサーバプログラム44を終了する際、終了をユーザに通知しても良い。非対応プリンタ3がオフラインの場合、印刷を行わせることができない。そのため、プリントサーバプログラム44を終了させることで、情報処理装置1の処理の負荷が軽減される。
【0078】
以上、詳細に説明したように、本形態によれば、管理プログラム43は、ドライバレス印刷機能に対応していない非対応プリンタ3が接続されている場合に、非対応プリンタ3に対応するプリントサーバプログラム44を起動する。そして、プリントサーバプログラム44は、OS41を介して印刷ジョブを受け付け、受け付けた印刷ジョブの規格印刷データに基づいて、非対応プリンタ3にて印刷可能な個別印刷データを取得して、非対応プリンタ3に送信する。これにより、非対応プリンタ3用のプリンタドライバがインストールされない環境であっても、非対応プリンタ3に印刷を行わせることができる。
【0079】
なお、本実施の形態は単なる例示にすぎず、本発明を何ら限定するものではない。したがって本明細書に開示される技術は当然に、その要旨を逸脱しない範囲内で種々の改良、変形が可能である。例えば、本形態を構成する情報処理装置やプリンタの台数は、
図1や
図7の例に限らない。例えば、対応プリンタ2は、接続されていなくてもよい。
【0080】
また、例えば、他の装置で起動しているプリントサーバプログラム44の利用は行わないとしても良い。例えば、サーバ起動処理のS106を削除し、S105にてNOと判断した場合には、S107に進むとしても良い。ただし、他の装置のプリントサーバプログラム44を利用することで、情報処理装置1の処理の負荷は軽減される。
【0081】
また、例えば、ドライバレス印刷機能によって作成された印刷ジョブの印刷データが、非対応プリンタ3にてサポート可能な形式であるか否かの判断は、行わなくても良い。つまり、印刷処理のS303を削除し、毎回、印刷データの変換を行うとしても良い。ただし、サポート可能な形式の印刷データである可能性もあることから、S303の判断を行うことで、処理の負荷が軽減される可能性もある。
【0082】
また、例えば、プリンタの検索は、印刷データの送信時に行うとしても良い。つまり、非対応プリンタ3がオフラインであっても、印刷データの変換までは行うとしても良い。
例えば、プリントサーバ処理のS202とS203に代えて、印刷処理のS307の前に非対応プリンタ3を検索しても良い。
【0083】
また、非対応プリンタ3がオフラインであっても、プリントサーバプログラム44は、終了させなくても良い。また、プリントサーバプログラム44を終了する際の、ユーザへの通知は行わなくても良い。
【0084】
また、実施の形態に開示されている処理は、単一のCPU、複数のCPU、ASICなどのハードウェア、またはそれらの組み合わせで実行されてもよい。また、実施の形態に開示されている処理は、その処理を実行するためのプログラムを記録した記録媒体、または方法等の種々の態様で実現することができる。
【符号の説明】
【0085】
1 情報処理装置
3 非対応プリンタ
11 CPU
14 不揮発性メモリ
16 ネットワークIF
17 USB-IF
41 OS
43 管理プログラム
44 プリントサーバプログラム
【手続補正書】
【提出日】2024-06-21
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
情報処理装置の制御部によって実行可能なアプリケーションプログラムであって、特定のプリンタに対応した管理プログラム及び印刷プログラムを含み、前記情報処理装置のオペレーティングシステムはプリンタドライバをインストールせずに印刷を行うドライバレス印刷機能を備え、前記ドライバレス印刷機能はプリンタの機種に依存しない汎用の規格印刷データを含む印刷ジョブを生成するように構成され、前記オペレーティングシステムは、実プリンタが指定された印刷が要求された場合、生成した前記汎用の規格印刷データを含む前記印刷ジョブを前記実プリンタに送信するよう構成され、
前記管理プログラムは、前記制御部に、
前記情報処理装置の通信インターフェースを介して前記特定のプリンタを検出するプリンタ検出処理と、
前記特定のプリンタに対応する仮想プリンタとして前記印刷プログラムが前記オペレーティングシステムに登録されるよう動作する登録処理と、
を実行させ、
前記印刷プログラムは前記制御部に、
前記特定のプリンタが指定された印刷の要求がされた場合、前記オペレーティングシステムが生成した前記汎用の規格印刷データを含む印刷ジョブを前記特定のプリンタとして受ける印刷ジョブ受付処理と、
前記印刷ジョブ受付処理にて受けた前記印刷ジョブに基づく印刷データを前記特定のプリンタに送信する送信処理と、
を実行させる、
ことを特徴とするアプリケーションプログラム。
【請求項2】
請求項1に記載するアプリケーションプログラムにおいて、
前記管理プログラムの前記登録処理では、
前記特定のプリンタについて前記オペレーティングシステムに登録されていない場合に、前記特定のプリンタに対応する前記仮想プリンタとして前記印刷プログラムが前記オペレーティングシステムに登録される、
ことを特徴とするアプリケーションプログラム。
【請求項3】
請求項1に記載するアプリケーションプログラムにおいて、
前記管理プログラムの前記登録処理では、
前記プリンタ検出処理にて検出された前記特定のプリンタが複数存在した場合、前記印刷プログラムが複数の前記特定のプリンタ各々に対応した複数の仮想プリンタとして前記オペレーティングシステムに登録される、
ことを特徴とするアプリケーションプログラム。
【請求項4】
請求項1から請求項3のいずれか1項に記載するアプリケーションプログラムにおいて、
前記送信処理にて前記特定のプリンタに送信される前記印刷データには、前記特定のプリンタが対応可能な印刷設定が付加される、
ことを特徴とするアプリケーションプログラム。
【請求項5】
請求項1から請求項3のいずれか1項に記載するアプリケーションプログラムにおいて、
前記印刷プログラムはさらに前記制御部に、
ステータス情報を前記特定のプリンタから取得して前記オペレーティングシステムに送信するステータス情報処理を、
実行させることを特徴とするアプリケーションプログラム。
【請求項6】
請求項1から請求項3のいずれか1項に記載するアプリケーションプログラムにおいて、
前記登録処理には、前記特定のプリンタのモデル名又は愛称が用いられる、
ことを特徴とするアプリケーションプログラム。
【請求項7】
請求項1から請求項3のいずれか1項に記載するアプリケーションプログラムにおいて、
前記登録処理には、ユーザにより指定された名称が用いられる、
ことを特徴とするアプリケーションプログラム。