(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-13
(45)【発行日】2024-11-21
(54)【発明の名称】プログラムセット、読取結果の取得方法および情報処理装置
(51)【国際特許分類】
H04N 1/00 20060101AFI20241114BHJP
【FI】
H04N1/00 127B
(21)【出願番号】P 2023218992
(22)【出願日】2023-12-26
(62)【分割の表示】P 2020041093の分割
【原出願日】2020-03-10
【審査請求日】2024-01-23
(73)【特許権者】
【識別番号】000005267
【氏名又は名称】ブラザー工業株式会社
(72)【発明者】
【氏名】佐藤 諒一
【審査官】豊田 好一
(56)【参考文献】
【文献】特開2019-004429(JP,A)
【文献】特開2012-044420(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 1/00
(57)【特許請求の範囲】
【請求項1】
スキャナと通信可能な情報処理装置のコンピュータによって実行可能であり、前記情報処理装置のオペレーティングシステムに前記スキャナに対応した仮想スキャナとして登録されるスキャンサーバプログラムであって、前記スキャナは第1プロトコルによるスキャンコマンドを受信し当該スキャンコマンドに応じて原稿を読み取った読取結果を送信可能であり、
前記スキャンサーバプログラムは、前記コンピュータに、
前記情報処理装置の前記オペレーティングシステムから前記第1プロトコルとは異なる第2プロトコルによるスキャンコマンドを、前記仮想スキャナとして受け付ける受付処理と、
前記受付処理にて前記第2プロトコルによるスキャンコマンドを受け付けた場合に、前記第2プロトコルによるスキャンコマンドに基づく第1プロトコルによるスキャンコマンドを前記スキャナに送信する送信処理と、
前記送信処理にて送信された前記第1プロトコルによるスキャンコマンドに応じて前記スキャナが原稿を読み取った読取結果を受信する受信処理と、
を実行させる、
ことを特徴とするスキャンサーバプログラム。
【請求項2】
請求項1に記載するスキャンサーバプログラムにおいて、
前記スキャンサーバプログラムは、前記コンピュータに、
前記第1プロトコルによるスキャンコマンドを前記スキャナに送信していなくても、前記スキャナから読取結果を受信した場合、受信した前記読取結果を前記情報処理装置の所定のメモリ領域に記憶する記憶処理を実行させる、
ことを特徴とするスキャンサーバプログラム。
【請求項3】
請求項2に記載するスキャンサーバプログラムにおいて、
前記スキャンサーバプログラムは、前記受付処理が実行された場合、前記コンピュータに、
前記所定のメモリ領域に前記読取結果が記憶されていない場合、前記送信処理を実行させ、
前記所定のメモリ領域に前記読取結果が記憶されている場合、前記送信処理を実行させず、前記所定のメモリ領域に記憶されている前記読取結果を前記オペレーティングシステムに応答する読取結果応答処理を実行させる、
ことを特徴とするスキャンサーバプログラム。
【請求項4】
請求項1から請求項3のいずれか1つに記載するスキャンサーバプログラムにおいて、
前記スキャンサーバプログラムは、前記コンピュータに、
前記受信処理にて受信した前記読取結果の画像に対して補正を行う画像補正処理を実行させる、
ことを特徴とするスキャンサーバプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書に開示される技術分野は、スキャナを制御するプログラムセット、読取結果の取得方法および情報処理装置に関する。
【背景技術】
【0002】
スキャナ等のデバイスと通信可能な情報処理装置において、所定の汎用的なプロトコルによってスキャナとのデータ通信を行う技術が知られている。例えば、特許文献1では、IPP(Internet Printing Protocol)というプロトコルによって情報処理装置とスキャナとがデータ通信を行う構成が開示されている。特許文献1ではさらに、IPPが汎用的なプロトコルであるがゆえに原稿の開き方向の設定という固有の機能には対応していないため、スキャナ側にて設定できるようにすることで、当該固有の機能を実現する構成が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
情報処理装置が所定の汎用的な通信プロトコルによってスキャナと通信を行うには、通信先のスキャナがその所定の汎用的な通信プロトコルに対応している必要がある。そのため、情報処理装置に組み込まれたスキャンシステムが所定の汎用的な通信プロトコルを用いてデータ通信を行う場合、その所定の汎用的な通信プロトコルに対応していないスキャナを利用できない。例えば特許文献1のように情報処理装置がIPPを用いてデータ通信を行う場合、IPPに対応していないスキャナを利用することができない。
【0005】
また、スキャナが所定の汎用的な通信プロトコルに対応していたとしても、スキャナ側でIPPがサポートしていない設定を利用する場合、その都度スキャナにて設定を切り替える必要があったり、スキャナのユーザインタフェースが使いづらかったりするため、ユーザの手間がかかる。AirPrint(登録商標)等の汎用的なドライバレススキャン機能を用いてスキャンを実行する場合においても、汎用的な通信プロトコルを用いるため、同様の問題がある。
【0006】
本明細書は、情報処理装置からスキャナを利用する場合の、スキャナの利用可能性を高める技術を開示する。
【課題を解決するための手段】
【0007】
この課題の解決を目的としてなされたプログラムセットは、第1情報処理装置のコンピュータによって実行可能なプログラムセットであって、前記プログラムセットには、第1プログラムと第2プログラムとを含み、前記第1プログラムは、第1プロトコルに対応するスキャナが前記第1情報処理装置の通信インタフェースを介して通信可能であり、かつ前記スキャナに対応する前記第2プログラムが起動していない場合に、前記コンピュータに、前記第2プログラムを起動する起動処理と、前記起動処理にて前記第2プログラムを起動した場合に、前記第2プログラムを、前記第1情報処理装置のオペレーティングシステムにスキャナとして登録する第1登録処理と、を実行させ、前記第2プログラムは、前記オペレーティングシステムに登録された前記第2プログラムが出力先として指定されたスキャンジョブを、前記第1プロトコルと異なる第2プロトコルによって、前記オペレーティングシステムが受け付けた場合、前記コンピュータに、前記スキャンジョブに基づい
て、前記スキャナが対応可能な前記第1プロトコルのスキャンコマンドを、前記通信イン
タフェースを介して前記スキャナに送信する送信処理と、前記送信処理にて送信された前
記スキャンコマンドに応じて前記スキャナが原稿を読み取った読取結果を、前記通信イン
タフェースを介して前記第1プロトコルによって受信する受信処理と、を実行させる、こ
とを特徴としている。
【0008】
本明細書に開示されるプログラムセットによれば、第1情報処理装置は、第1プロトコ
ルに対応するスキャナに対応する第2プログラムが起動していない場合、第2プログラム
を起動して、オペレーティングシステム(以下、「OS」とする)にスキャナとして登録
する。これにより、OSにて第2プログラムが選択可能になる。さらに、第2プロトコル
によってOSが受け付けたスキャンジョブであって、第2プログラムを出力先として指定
したスキャンジョブを受け付けた際、第2プログラムは、そのスキャンジョブに基づいて
、第1プロトコルによってスキャンコマンドをスキャナに送信し、スキャナからその読取
結果を受信する。これにより、第2プロトコルに対応しないスキャナであっても第1情報
処理装置から読み取り指示が可能であり、読取結果を受信できる。
【0009】
上記の機能を実現するための制御方法、情報処理装置、アプリケーションプログラムを
格納するコンピュータにて読取可能な記憶媒体も、新規で有用である。
【発明の効果】
【0010】
本明細書に開示されるプログラムセットによれば、情報処理装置からスキャナを利用す
る場合の、スキャナの利用可能性を高める技術が実現される。
【図面の簡単な説明】
【0011】
【
図1】実施の形態にかかるスキャンシステムの概略構成図である。
【
図2】スキャンサーバの起動と登録の手順を示すシーケンス図である。
【
図3】プルスキャンの手順を示すシーケンス図である。
【
図4】プッシュスキャンの手順を示すシーケンス図である。
【
図5】プルスキャンとプッシュスキャンとの両方を実行可能なプログラムの手順を示すシーケンス図である。
【
図6】第2の形態におけるスキャンサーバの起動と登録の手順を示すシーケンス図である。
【
図7】第2の形態におけるプッシュスキャンの手順を示すシーケンス図である。
【発明を実施するための形態】
【0012】
以下、スキャンシステムを具体化した第1の形態について、添付図面を参照しつつ詳細
に説明する。本形態は、複数台のパーソナルコンピュータ(以下、「PC」とする)とそ
れらのPCに接続されるスキャナとを含むスキャンシステムを開示するものである。
【0013】
本形態のスキャンシステム100は、
図1に示すように、PC1と、PC2と、スキャ
ナ3と、を含み、これらが互いに共通のネットワークに接続されたシステムである。PC
1およびPC2は、スキャナ3へのスキャン実行指示の送信、スキャナ3からの画像デー
タの受信、受信した画像データの編集、等を行う装置である。PC1とPC2とは、いず
れも情報処理装置の一例であり、PC1は、第1情報処理装置の一例であり、PC2は、
第2情報処理装置の一例である。なお、PC2は、PC1と同様の構成や機能を有する装
置であり、以下では、区別の必要がない範囲でPC1について代表して説明する。PC1
やPC2に代えて、例えば、スマートフォン、タブレットコンピュータであってもよい。
【0014】
本形態のPC1は、
図1に示すように、CPU11と、メモリ12と、を含むコントロ
ーラ10を備えている。また、PC1は、ユーザインタフェース(以下、「ユーザIF」とする)13と、通信インタフェース(以下、「通信IF」とする)14と、を備え、これらがコントローラ10に電気的に接続されている。なお、
図1中のコントローラ10は、PC1の制御に利用されるハードウェアやソフトウェアを纏めた総称であって、実際にPC1に存在する単一のハードウェアを表すとは限らない。
【0015】
CPU11は、メモリ12から読み出したプログラムに従って、また、ユーザの操作に基づいて、各種の処理を実行する。CPU11は、コンピュータの一例である。メモリ12は、PC1を起動するための起動プログラム、スキャナを使用するための各種のアプリケーションプログラム(以下、「アプリ」とする)等の各種のプログラムや、画像データ、文書データ等の各種のデータ、各種の設定情報が記憶される記憶領域である。メモリ12は、各種の処理が実行される際の作業領域としても利用される。
【0016】
ユーザIF13は、例えば、タッチパネルであり、ユーザに情報を報知するための画面を表示するハードウェアと、ユーザによる入力操作を受け付けるハードウェアと、を含む。なお、ユーザIF13は、表示機能を有するディスプレイと、入力受付機能を有するキーボード、マウス、トラックボール等と、の組み合わせであっても良い。
【0017】
通信IF14は、PC2、スキャナ3等の外部装置と通信を行うためのハードウェアを含む。通信IF14の通信規格は、例えば、イーサネット(登録商標)、Wi-Fi(登録商標)などを含み、無線通信と有線通信とを含んでも良いし、複数の通信規格に対応する複数の構成を含んでいても良い。本形態のスキャンシステム100では、PC1とPC2との通信方式と、PC1とスキャナ3との通信方式と、PC2とスキャナ3との通信方式とは、それぞれ異なる方式であっても良い。
【0018】
PC1のメモリ12には、
図1に示すように、OS41と、スキャンアプリ42と、管理プログラム43と、スキャンサーバプログラム44と、を含む、各種のデータや各種のプログラムが記憶されている。OS41には、汎用スキャン制御プログラム45が組み込まれている。OS41は、例えば、iOS(登録商標)、Android(登録商標)、マイクロソフトウィンドウズ(登録商標)、macOS(登録商標)、Linux(登録商標)である。管理プログラム43は、第1プログラムの一例であり、スキャンサーバプログラム44は、第2プログラムの一例である。管理プログラム43とスキャンサーバプログラム44との組は、プログラムセットの一例である。
【0019】
スキャンアプリ42は、例えば、スキャンを実行させる装置の指定、読取結果の保存場所の指定、スキャン実行の指示、各種のスキャン設定等のユーザの指示を受け付ける。スキャンアプリ42は、さらに、スキャナから受信した読取結果の画像の表示や編集の指示を受け付けても良い。
【0020】
汎用スキャン制御プログラム45は、所定の規格に基づいてスキャナの動作を制御するプログラムである。汎用スキャン制御プログラム45は、OS41の有するスキャン制御機能を利用するプログラムであり、OS41によって提供される標準のプログラムである。汎用スキャン制御プログラム45は、所定の規格をサポートする複数のモデルのスキャナに対応する汎用のプログラムである。そのため、汎用スキャン制御プログラム45に対応する機能を備えたスキャナであれば、どのメーカのスキャナであっても、規格に基づくスキャンを実行できる。汎用スキャン制御プログラム45を利用したスキャンシステムとしては、例えば、AirPrint、Mopria(登録商標)がある。
【0021】
なお、汎用スキャン制御プログラム45は、複数のモデルに対応する汎用のプログラムであることから、受け付け可能なスキャン設定が一般的なものに限られる。そのため、汎用スキャン制御プログラム45は、指定されたスキャナにて実行可能な全てのスキャン設
定を受け付けるとは限らない。
【0022】
本形態のOS41は、スキャナの制御を汎用スキャン制御プログラム45を用いて行い
、例えば、個別の機種に対応するスキャナドライバ等の個別の制御プログラムのインスト
ールを受け付けないバージョンのものである。本形態のスキャンアプリ42は、汎用スキ
ャン制御プログラム45に対応しており、汎用スキャン制御プログラム45に対応する所
定の汎用プロトコルでOS41にスキャンジョブを渡すことができる。OS41は、渡さ
れたスキャンジョブに基づいて、汎用スキャン制御プログラム45を利用してスキャンコ
マンドを生成し、生成したスキャンコマンドを指定されたスキャナに汎用プロトコルで送
信する。汎用プロトコルは、例えば、IPPであり、第2プロトコルの一例である。
【0023】
OS41は、また、PC1に接続されたスキャナが汎用スキャン制御プログラム45に
対応可能か否かを判断し、対応可能なスキャナの情報をメモリ12に登録する機能を備え
ている。スキャンアプリ42は、メモリ12に登録されているスキャナから、スキャンを
実行させる装置の選択を受け付ける。なお、本形態のスキャンシステム100のスキャナ
3は、一例として、汎用スキャン制御プログラム45が用いる規格をサポートしておらず
、汎用プロトコルに対応していない。つまり、スキャナ3は、OS41によって生成され
たスキャンコマンドを受信できない、あるいは、受信したとしても正しく処理できない。
あるいは、本形態のスキャンシステム100のスキャナ3は、一例として、汎用スキャン
制御プログラム45が用いる規格をサポートしており、汎用プロトコルにも対応している
が、汎用スキャン制御プログラム45が用いる規格ではサポートされていない機能を有し
ている。
【0024】
管理プログラム43は、スキャナ3の動作やスキャンサーバプログラム44の動作を管
理するプログラムである。具体的には、管理プログラム43は、スキャナ3に対応するス
キャンサーバプログラム44を起動させ、スキャンサーバプログラム44によって構成さ
れるスキャンサーバを仮想のスキャナとしてOS41に登録させるプログラムである。ス
キャンサーバが仮想のスキャナとしてOS41に登録されれば、スキャンアプリ42等で
は、その仮想のスキャナ、すなわち、スキャンサーバプログラム44をスキャナとして選
択可能になる。
【0025】
スキャンサーバプログラム44は、スキャナに代わって、OS41が生成したスキャン
コマンドを受け取るプログラムである。スキャンサーバプログラム44は、スキャナ3の
モデルに対応するプログラムであり、スキャナ3が対応可能なプロトコルである専用プロ
トコルにも汎用プロトコルにも対応可能である。専用プロトコルは、第1プロトコルの一
例である。本形態のスキャンシステム100では、OS41に登録されている仮想のスキ
ャナが選択された場合、OS41は、生成したスキャンコマンドをスキャンサーバプログ
ラム44に渡す。
【0026】
本形態のスキャンシステム100のスキャナ3は、PC1やPC2との通信機能と、原
稿の画像を読み取って画像データを取得する画像読取機能と、を有する装置である。スキ
ャナ3は、スキャン単機能の装置に限らず、例えば、複合機、コピー機、FAX装置であ
ってもよい。
【0027】
続いて、本形態のスキャンシステム100において、PC1にて実行されるスキャン処
理の手順について、
図2~
図5のシーケンス図を参照して説明する。なお、以下の説明に
おける処理およびフローチャートの各処理ステップは、基本的に、管理プログラム43や
スキャンサーバプログラム44などのプログラムに記述された命令に従ったCPU11の
処理を示す。CPU11による処理は、PC1のOS41の他のモジュールとデータ交換
するためのIF(APIとも呼ばれる)を用いたハードウェア制御も含む。なお、本明細書では、OS41の記載を省略して各プログラムの動作を説明する場合もある。
【0028】
まず、スキャンの実行前に行う仮想スキャナの登録手順について、
図2のシーケンス図を参照して説明する。まず、管理プログラム43が起動される(S101)。管理プログラム43は、例えば、PC1の起動時に自動的に起動される。管理プログラム43は、ユーザの指示に基づいて起動されても良い。
【0029】
管理プログラム43は、起動されるとまず、PC1と同じスキャンシステム100に含まれる他のPC等にて動作中のスキャンサーバを検索する(S102)。本形態では、管理プログラム43は、スキャンシステム100のPC2に対して、スキャンサーバプログラム44を実行中であるか否かを問い合わせる。同一システムに接続されるPC等が複数ある場合には、PC1の管理プログラム43は、他の全てのPC等に問い合わせる。
【0030】
そして、管理プログラム43は、PC2から応答情報を受信する(S103)。なお、PC1やPC2のスキャンサーバプログラム44は、実行中に他の装置から問い合わせを受信した場合、実行中であることを示す情報を応答する。実行中を示す情報を受信したと判断した場合([有])、管理プログラム43は、OS41にPC2のスキャンサーバプログラム44を示す情報を渡し(S104)、OS41にスキャナとして登録することを要求する。S104は、第2登録処理の一例である。
【0031】
管理プログラム43は、さらに、PC2のスキャンサーバプログラム44の保存先リストに自装置の情報を加えるよう要求するリスト登録要求と、自装置の識別情報とをPC2に送信する(S105)。S105は、第2登録要求処理の一例である。保存先リストは、スキャナ3にて原稿の画像を読み取った読取結果を、このスキャンサーバプログラム44を介して受け取って保存する装置を登録するリストである。
【0032】
OS41は、S104にて受け取った情報に基づいて、PC2にて実行中のスキャンサーバプログラム44をスキャナとして登録する(S106)。これにより、スキャンアプリ42等にてスキャナの選択指示を受け付けた場合、OS41は、PC2にて実行中のスキャンサーバプログラム44の情報を、スキャナの選択肢の1つとしてスキャンアプリ42等に渡す。PC2で実行中のスキャンサーバプログラム44を利用できることで、スキャナ3を複数のPCで共用するスキャンシステム100全体として、複数のスキャンサーバプログラム44を起動する必要が無く、システム全体として無駄が少ない。
【0033】
一方、実行中を示す情報を受信しなかったと判断した場合([無])、管理プログラム43は、自装置が備えるスキャンサーバプログラム44の起動を指示する(S107)。
S107は、起動処理および起動ステップの一例である。例えば、PC2が起動されていないなど、所定の時間内に応答情報を受信しなかった場合も、管理プログラム43は、実行中を示す情報を受信しなかったと判断する。
【0034】
スキャンサーバプログラム44は、起動されると、スキャナ3のモデル情報や能力情報など、自身が備える情報に基づく初期設定を実行する(S108)。なお、スキャンサーバプログラム44は、インストール時や前回の実行時にスキャナ3の情報を取得し、自身が管理する記憶領域に記憶している。スキャンサーバプログラム44は、起動が完了すると、初期設定の設定情報を管理プログラム43に通知する(S109)。管理プログラム43は、受け取った情報に基づいて、OS41にスキャンサーバプログラム44の情報を渡し(S110)、OS41にスキャナとして登録することを要求する。S110は、第1登録処理の一例であり、登録処理および登録ステップの一例である。
【0035】
管理プログラム43は、さらに、起動したスキャンサーバプログラム44に、保存先リ
ストを作成して、自装置の情報を登録するよう要求するリスト登録要求を渡す(S111
)。S111は、第1登録要求処理の一例である。スキャンサーバプログラム44は、受
け取った要求に基づいて、自装置の装置識別情報を保存先リストに登録する(S112)
。S112は、リスト登録処理の一例である。自身の管理する保存先リストが既に有れば
、スキャンサーバプログラム44は、その保存先リストに要求された情報を登録する。ま
た、OS41は、S110にて管理プログラム43から受け取った情報に基づいて、起動
したスキャンサーバプログラム44をスキャナとして登録する(S113)。S106や
S113では、スキャナ3を示す名称をつけてOS41に登録させるとよい。
【0036】
PC1にて実行中のスキャンサーバプログラム44は、PC2等のスキャンシステム1
00に接続されている他の装置から、スキャンサーバの検索やリスト登録要求を受け付け
る場合がある。スキャンサーバの検索を受け付けた場合、スキャンサーバプログラム44
は、自身が起動中であることを示す情報をPC2に送信する(S114)。また、リスト
登録要求を受け付けた場合、スキャンサーバプログラム44は、リスト登録要求を送信し
た装置の装置識別情報を、自身の備える保存先リストに登録する(S115)。S115
は、リスト登録処理の一例である。
【0037】
これにより、PC1のユーザがスキャナ3を利用してスキャンを行わせる準備が整った
。なお、PC2にてスキャンサーバプログラム44が実行中であって、そのスキャンサー
バプログラム44の情報をOS41にスキャナとして登録した場合、PC2がシャットダ
ウンされるとスキャナの情報が無くなってしまう。PC1の管理プログラム43は、例え
ば、PC2のスキャンサーバプログラム44を仮想のスキャナとしてOS41に登録した
後、定期的にPC2のスキャンサーバプログラム44と通信を行い、実行中のスキャンサ
ーバプログラム44が見つからない場合、他のPCにて実行中のスキャンサーバプログラ
ム44を検索し、見つからなければPC1のスキャンサーバプログラム44を起動させる
としても良い。
【0038】
また、保存先リストは、スキャンサーバプログラム44の起動時に作成する代わりに、
スキャンサーバプログラム44の管理する記憶領域に恒久的に保存しても良い。例えば、
スキャンシステム100に含まれるPC等(本形態では、PC1とPC2)の情報を予め
登録した保存先リストを作成しておいても良い。
【0039】
次に、前述した
図2の手順が終了し、PC1またはPC2にてスキャンサーバプログラ
ム44が実行中である状態で、PC1のスキャンアプリ42にてスキャナ3を利用する手
順について説明する。スキャンアプリ42は、スキャナの選択指示を受け付けるとOS4
1に登録されているスキャナの情報を表示し、ユーザの選択を受け付ける。
図2のS10
6またはS113にて、実行中のスキャンサーバプログラム44がOS41に登録されて
いることから、スキャンサーバプログラム44が選択肢の1つとして表示される。
【0040】
スキャンを実行させる装置としてスキャンサーバプログラム44が選択された状態で、
PC1のスキャンアプリ42にてスキャンの実行指示を受け付けたことによるスキャンの
実行手順、いわゆるプルスキャンの手順について、
図3のシーケンス図を参照して説明す
る。
【0041】
スキャンアプリ42は、スキャンの実行指示を受け付けると(S201)、スキャンジ
ョブをOS41に渡す(S202)。OS41は、受け取ったスキャンジョブに基づいて
、汎用スキャン制御プログラム45を用いて汎用プロトコルのスキャンコマンドを生成し
、生成したスキャンコマンドを、選択された装置であるスキャンサーバプログラム44に
渡す(S203)。これにより、スキャンサーバプログラム44は、スキャンコマンドを
取得する。S203は、取得処理および取得ステップの一例である。
【0042】
スキャンサーバプログラム44は、スキャナ3に状態を確認する指示を送信する(S204)。スキャンサーバプログラム44は、専用プロトコルに対応しており、スキャナ3と専用プロトコルでの通信が可能である。スキャナ3は、受信した状態確認指示に基づいて、自装置の状態を示す情報を、状態確認指示を送信した装置のスキャンサーバプログラム44に応答する(S205)。スキャナの状態としては、例えば、利用可能、利用不可、が含まれ、スキャナ3は、さらに詳細な情報を応答可能であっても良い。
【0043】
スキャンサーバプログラム44は、利用可能を示す応答情報を受信したと判断した場合([OK])、S203にて受け取った汎用プロトコルのスキャンコマンドを専用プロトコルのスキャンコマンドに変換する(S206)。スキャンサーバプログラム44は、変換後のスキャンコマンドを、専用プロトコルにてスキャナ3に送信する(S207)。S207は、送信処理および送信ステップの一例である。
【0044】
スキャナ3は、S207にて受信した専用プロトコルのスキャンコマンドに基づいて、スキャンを実行する(S208)。S208では、スキャナ3は、原稿をセットしたユーザによるスキャン開始指示を受けてスキャンを実行する。そして、スキャナ3は、原稿を読み取った読取結果を、スキャンコマンドを送信した装置のスキャンサーバプログラム44に送信する(S209)。
【0045】
スキャンサーバプログラム44は、S209にてスキャナ3から送信される読取結果を受信する。S209は、受信処理および受信ステップの一例である。S209の通信も専用プロトコルでの通信である。スキャンサーバプログラム44は、受信した読取結果に画像補正を施す(S210)。S210は、画像補正処理の一例である。画像補正として、スキャンサーバプログラム44は、例えば、文字認識処理、モアレ除去処理、を実行する。スキャンサーバプログラム44は、画像補正を行うか否かについて、ユーザの指示を受け付けても良い。画像補正を行えば、より好適な画像データを取得できる。
【0046】
スキャンサーバプログラム44は、補正後の画像データを、S203にてスキャンコマンドを送信した装置のOS41に渡す(S211)。OS41は、受け取った画像データを、S202にてスキャンジョブを受け付けたプログラムであるスキャンアプリ42に渡す(S212)。これにより、スキャンアプリ42は、スキャナ3による読取結果を受け取る。
【0047】
一方、S205にて受け取った応答が利用可能ではなかった場合、あるいは、所定の時間が経過してもスキャナ3から応答を受信しなかった場合([NG])、スキャンサーバプログラム44は、スキャナ3がエラー状態であることを示すエラー通知をOS41に返す(S213)。OS41は、スキャンサーバプログラム44からエラー通知を受け取った場合、ユーザIF13にエラーを報知するメッセージを表示させる(S214)。
【0048】
これにより、スキャナ3に代わるスキャンサーバプログラム44を選択することで、汎用プロトコルに対応していないスキャナ3であっても、スキャンアプリ42からスキャナ3を利用して読取結果を取得できる。なお、読取結果の画像補正やエラーの場合のエラー通知は、行わなくても良い。
【0049】
次に、スキャナ3にスキャンを実行させる手順について、さらに、
図4のシーケンス図を参照して説明する。
図4は、スキャナ3にてスキャンの実行指示を受け付けたことによるスキャンの実行手順、いわゆるプッシュスキャンの手順を示すシーケンス図である。汎用スキャン制御プログラム45はプッシュスキャン機能をサポートしておらず、起動されているスキャンサーバプログラム44が用いられる。
【0050】
スキャナ3は、スキャンコマンドを受信していない状態で、自装置の操作パネルにてス
キャン開始の指示を受け付けた場合(S301)、スキャンシステム100のネットワー
クを介して、実行中の自装置と適切に通信可能なPCの検索要求を送信する(S302)
。つまり、スキャナ3は、専用プロトコルでの通信が可能なPCを検索する。スキャンサ
ーバプログラム44は、スキャナ3からの検索要求を受けて、自装置の装置識別情報を応
答する(S303)。S303は、応答処理の一例である。
【0051】
S303では、スキャンサーバプログラム44は、自身の管理する記憶領域に保存され
ている保存先リストをもスキャナ3に渡す。保存先リストは、例えば、
図2のS111に
て作成されるリストであり、スキャンサーバプログラム44を用いてスキャナ3と通信す
る可能性のある装置のリストである。
【0052】
スキャナ3は、受け取った保存先リストに基づいて、読取結果の保存先を示す保存先情
報の一覧を自装置の操作パネルに表示し(S304)、ユーザの選択を受け付ける(S3
05)。保存先情報は、保存先リストそのものであっても良いし、保存先リストをユーザ
に分かり易い情報に変換したものであっても良い。さらに、スキャナ3は、ユーザのスキ
ャン開始指示を受け付けて、原稿の画像をスキャンして読み取り(S306)、読取結果
とS305にて受け付けた保存先情報とをスキャンサーバプログラム44に送信する(S
307)。
【0053】
スキャンサーバプログラム44は、受信した読取結果と保存先情報とを関連付けて、自
身が管理するメモリ領域に記憶する(S308)。S308は、記憶処理の一例である。
スキャナ3に登録されている保存先を示す保存先情報を読取結果と共に受信することで、
スキャンサーバプログラム44は、PC1等の装置ごとに読取結果を区別して記憶できる
。メモリ領域は、スキャンサーバプログラム44が実行中である装置のメモリ(12また
は22、
図1参照)に設けられている。
【0054】
管理プログラム43は、定期的に、または、ユーザの指示を受けて、自装置を保存先に
指定した読取結果を要求する出力要求を、実行中のスキャンサーバプログラム44に渡す
(S309)。管理プログラム43とスキャンサーバプログラム44とが、同じ装置で実
行中であれば、管理プログラム43は、スキャンサーバプログラム44に出力要求を入力
する。管理プログラム43とは異なる装置でスキャンサーバプログラム44が実行中であ
れば、管理プログラム43は、出力要求に自装置の識別情報を付加して、スキャンサーバ
プログラム44を実行している装置に出力要求を送信する。
【0055】
出力要求を受け取ったスキャンサーバプログラム44は、自身が管理するメモリ領域に
、出力要求を行った管理プログラム43宛ての読取結果が有るか否かを判断する(S31
0)。すなわち、スキャンサーバプログラム44は、受け取った出力要求に付加されてい
る識別情報と読取結果に付加されている保存先情報とが、一致する読取結果の有無を判断
する。
【0056】
一致する読取結果が有ると判断した場合([有])、スキャンサーバプログラム44は
、その読取結果の要求を行った管理プログラム43に渡す(S311)。スキャンサーバ
プログラム44は、該当する読取結果が複数ある場合には、全ての読取結果を渡す。スキ
ャナ3からプッシュされた読取結果は、一旦、スキャンサーバプログラム44によって記
憶され、後から本当の保存先に保存される構成であるため、スキャンサーバプログラム4
4が読取結果を受信する際、本当の保存先が起動していなくてもよい。なお、出力要求に
付加されている識別情報と読取結果に付加されている保存先情報とが一致する読取結果が
無いと判断した場合、スキャンサーバプログラム44は、無いことを示す情報を返しても良い。
【0057】
管理プログラム43は、受け取った読取結果をファイルとして保存する(S312)。
S312は、保存処理の一例である。管理プログラム43は、ファイルが作成されたことを通知しても良い。また、管理プログラム43は、自身の管理するフォルダなど予め決めたフォルダに保存しても良いし、ユーザの指示に基づいて保存先のフォルダを決定しても良い。これにより、スキャナ3にて読取指示を行った原稿の画像の画像データが、管理プログラム43によって適切に保存されることから、いわゆるプッシュスキャンが実現されている。また、管理プログラム43が読取結果をファイルとして保存することで、ユーザは、スキャナ3からプッシュ送信された読取結果を、当該ファイルが保存されるフォルダ内にて簡単に見つけて確認できる。
【0058】
スキャンサーバプログラム44は、渡し済みの読取結果を、自身の管理するメモリ領域から削除する(S313)。これにより、メモリ領域のデータ量を節約できる。なお、スキャンサーバプログラム44は、管理プログラム43での保存が完了したことを確認した後に削除しても良いし、一定期間を超えてもメモリ領域に残っている場合に削除しても良いし、ユーザの指示に基づいて削除しても良い。
【0059】
図4では、管理プログラム43が読取結果を受け取るプッシュスキャンの手順について説明したが、プッシュスキャンの読取結果をスキャンアプリ42が受け取るようにすることもできる。この手順について、
図5のシーケンス図を参照して説明する。なお、以下では、
図3または
図4と同じ手順については、同じ符号を付して説明を省略する。
【0060】
この手順では、まず、
図3に示したプルスキャンの手順と同様に、スキャナ3に代わるスキャンサーバプログラム44が選択された状態で、PC1のスキャンアプリ42にてスキャンの実行指示を受け付ける(S201)。スキャンアプリ42は、汎用プロトコルにてスキャンジョブをOS41に渡す(S202)。OS41は、スキャンコマンドを生成してスキャンサーバプログラム44に渡す(S203)。
【0061】
スキャンサーバプログラム44は、受け取ったスキャンコマンドを送信した装置の識別情報が付加された読取結果が、自身の管理するメモリ領域にあるか否かを判断する(S401)。S401は、
図4のS310と同様の処理であるが、スキャンサーバプログラム44は、出力要求に添付されている識別情報に基づいて判断する代わりに、スキャンコマンドの送信元の装置の情報に基づいて判断する。OS41とスキャンサーバプログラム44とが同じ装置で実行中であれば、スキャンサーバプログラム44は、自装置の識別情報が付加された読取結果の有無を判断する。
【0062】
なお、プッシュスキャンを行うユーザは、S201のスキャン指示を行う前に、スキャナ3にて原稿の読み取りを実行しておく必要がある。つまり、プッシュスキャンの場合には、
図4のS301~S308は、実行済みである。この場合、スキャンサーバプログラム44は、S313の読取結果の削除は行わず、自身の管理するメモリ領域に記憶している。
【0063】
スキャンサーバプログラム44は、該当する読取結果が有ると判断した場合([有])、その読取結果をスキャンコマンドを出力したOS41に渡す(S402)。S402は、読取結果応答処理の一例である。スキャンサーバプログラム44がスキャンアプリ42とは別の装置で実行されている場合、スキャンサーバプログラム44は、スキャンコマンドを送信した装置へ読取結果を送信する。
【0064】
読取結果を受け取ったOS41は、受け取った読取結果を、スキャンアプリ42に渡す
(S403)。つまり、スキャナ3にて予めスキャンを実行させておくことで、スキャン
アプリ42を利用して読取結果を取得できる。
【0065】
スキャンサーバプログラム44は、該当する読取結果が無いと判断した場合([無])
、
図3に示したプルスキャンの手順と同様の手順を実行する。すなわち、スキャンサーバ
プログラム44は、スキャナ3に状態確認を送信し(S204)、スキャナ3から応答を
得る(S205)。応答がOKであれば([OK])、スキャンサーバプログラム44は
、受け取ったスキャンコマンドを変換して(S206)、変換後のスキャンコマンドをス
キャナ3に送信する(S207)。この図のS207も、送信処理および送信ステップの
一例である。
【0066】
スキャナ3は、受信したスキャンコマンドに基づいてスキャンを実行し(S208)、
読取結果をスキャンサーバプログラム44に送信する(S209)。スキャンサーバプロ
グラム44は、受け取った読取結果をスキャンコマンドを出力したOS41に渡す(S4
04)。S404は、S402と同様の処理である。読取結果を受け取ったOS41は、
受け取った読取結果を、スキャンアプリ42に渡す(S405)。S405は、S403
と同様の処理である。なお、S402やS404の前にも、スキャンサーバプログラム4
4は、画像補正を行っても良い。
【0067】
つまり、スキャンサーバプログラム44は、スキャンコマンドを受信した場合、プッシ
ュスキャンの読取結果を記憶していればその読取結果を返し、記憶していなければスキャ
ナ3にスキャンコマンドを送信する。スキャンアプリ42を利用するユーザにとっては、
どちらの場合にも読取指示を示す操作を行うだけで良く、操作性に優れる。スキャンサー
バプログラム44がスキャンアプリ42とは別の装置で実行されていても、装置の識別情
報と保存先情報とに基づいて読取結果の保存先を判断できることから、適切な保存先に読
取結果を渡すことができる。
【0068】
一方、スキャナ3からのOKの応答を得られなかった場合([NG])、スキャンサー
バプログラム44は、エラー通知をOS41に返し(S213)、OS41は、ユーザI
F13にエラーを報知するメッセージを表示させる(S214)。
【0069】
これにより、汎用プロトコルに対応していないスキャナ3であっても、汎用スキャン制
御プログラム45によるスキャンコマンドに基づくスキャンを実行し、PC1やPC2の
スキャンアプリ42にて読取結果を取得できる。また、プッシュスキャンに対応していな
い汎用スキャン制御プログラム45を用いる場合でも、擬似的にプッシュスキャンと同様
の処理を実現できる。
【0070】
なお、スキャンサーバプログラム44は、PC1やPC2の起動中常時実行されていて
も良いし、例えば、ユーザの終了指示に基づいて終了するとしても良い。スキャンサーバ
プログラム44は、終了前に、自身を登録している管理プログラム43に終了を通知して
も良い。
【0071】
以上、詳細に説明したように、本形態のスキャンシステム100によれば、管理プログ
ラム43は、専用プロトコルに対応したスキャナ3がシステムに含まれている場合、スキ
ャナ3に対応するスキャンサーバプログラム44を起動して、起動したスキャンサーバプ
ログラム44をOS41に登録する。これにより、OS41においてスキャナとしてスキ
ャンサーバプログラム44が選択可能になる。さらに、OS41は、スキャンサーバプロ
グラム44が出力先として指定されたスキャンジョブを受け付けた際、そのスキャンジョ
ブに基づくスキャンコマンドをスキャンサーバプログラム44に渡す。スキャンサーバプ
ログラム44は、専用プロトコルでスキャンコマンドをスキャナ3に送信し、スキャナ3から読取結果を受信して、OS41に返す。これにより、汎用プロトコルに対応しないスキャナ3であっても、スキャンアプリ42等から読取指示が可能であり、読取結果を取得できる。
【0072】
次に、スキャンシステムを具体化した第2の形態について、添付図面を参照しつつ詳細に説明する。本形態は、第1の形態と同じハードウェア構成のスキャンシステムであって、スキャンサーバプログラム44を複数のPCで共用しないスキャンシステム100を開示するものである。つまり、本形態のスキャンシステム100では、スキャナ3を利用するPCは、それぞれ自身のスキャンサーバプログラム44を利用する。以下では、第1の形態と同じ構成や手順については、第1の形態と同じ符号を付して説明を省略する。
【0073】
本形態のスキャンシステム100における仮想スキャナの登録手順について、
図6のシーケンス図を参照して説明する。管理プログラム43が起動される(S101)と、管理プログラム43は、他のPCを検索せずに自装置のスキャンサーバプログラム44を起動する(S107)。
【0074】
スキャンサーバプログラム44は、初期設定を行い(S108)、初期設定の設定情報を管理プログラム43に通知する(S109)。管理プログラム43は、スキャンサーバプログラム44から受け取った情報に基づいて、OS41にスキャンサーバプログラム44の情報を渡す(S110)。OS41は、管理プログラム43から受け取った情報に基づいて、スキャンサーバプログラム44をスキャナとして登録する(S113)。
【0075】
本形態では、後述するように、スキャンサーバプログラム44が受け取る読取結果は、自装置宛てのデータに限られる。そのため、PC1のスキャンサーバプログラム44は、保存先リストを生成する必要はなく、他のPCからのリスト登録要求を受け付けることもない。なお、PC2にてスキャナ3を利用したいユーザは、PC1と同様に、PC2にて管理プログラム43を起動させ、PC2のスキャンサーバプログラム44を起動させて、PC2のOS51に登録させる。
【0076】
図6の手順の後、PC1にてスキャナ3を利用する場合の手順について説明する。いわゆるプルスキャンの手順は、
図3のシーケンス図にて説明した手順と同じ手順である。すなわち、スキャンサーバプログラム44は、スキャナ3と専用プロトコルでの通信を行い、スキャナ3の状態を確認して(S204~S205)、スキャンコマンドを送信する(S206~S207)。スキャナ3は、読取結果をスキャンサーバプログラム44に送信する(S208~S209)。スキャンサーバプログラム44は、読取結果を受信して、自装置のOS41に渡す(S211)。なお、スキャンサーバプログラム44は、画像補正を行っても良い。
【0077】
次に、いわゆるプッシュスキャンの手順について、
図7のシーケンス図を参照して説明する。
図7は、PC1とPC2とのそれぞれにて
図6の手順が終了しており、PC1のスキャンサーバプログラム44もPC2のスキャンサーバプログラム44も実行中である場合のシーケンス図である。
【0078】
スキャナ3は、操作パネルにてスキャン開始の指示を受け付け(S301)、スキャンシステム100の各PCに対して検索要求を送信する(S302)。S302の検索要求は、PC1のスキャンサーバプログラム44にもPC2のスキャンサーバプログラム44にも渡される。検索要求を受けた各スキャンサーバプログラム44は、それぞれスキャナ3に応答する。PC1のスキャンサーバプログラム44は、PC1の通信IF14を介して、スキャナ3に応答する(S501)。PC2のスキャンサーバプログラム44は、PC2の通信IF24を介して、スキャナ3に応答する(S502)。S501およびS5
02は、応答処理の一例である。
【0079】
スキャナ3は、受信した応答に基づいて、選択可能な装置としての保存先情報を一覧表
示する(S304)。PC1のスキャンサーバプログラム44からもPC2のスキャンサ
ーバプログラム44からも応答を受けたスキャナ3は、保存先情報として、PC1とPC
2とを選択可能に表示する。スキャナ3は、表示した一覧からユーザの選択を受け付け(
S305)、ユーザのスキャン開始指示を受け付けて、原稿の画像を読み取る(S306
)。
【0080】
S305にて受け付けた選択が、PC1であれば([PC1])、スキャナ3は、読取
結果をPC1のスキャンサーバプログラム44に送信する(S503)。PC1のスキャ
ンサーバプログラム44は、受け取った読取結果をメモリ12に保存する(S504)。
本形態では、スキャンサーバプログラム44は、自装置が送信先である読取結果のみを受
け取る。従って、スキャナ3は、読取結果に保存先情報を付加して送信する必要はない。
また、管理プログラム43がスキャンサーバプログラム44から読取結果を受け取る必要
もない。
【0081】
S305にて受け付けた選択が、PC2であれば([PC2])、スキャナ3は、読取
結果をPC2のスキャンサーバプログラム44に送信する(S505)。PC2のスキャ
ンサーバプログラム44は、受け取った読取結果をメモリ22に保存する(S506)。
その後、
図4に示したS309~S311およびS313の処理を実行しても良いし、図
5に示した処理を実行しても良い。
【0082】
以上、詳細に説明したように、本形態のスキャンシステム100によっても、汎用プロ
トコルに対応しないスキャナ3に対して、スキャンアプリ42等から読取指示が可能であ
り、読取結果を取得できる。また、汎用スキャン制御プログラム45が対応していないプ
ッシュスキャンを擬似的に実現できる。本形態では、第1の形態に比較して、PC1とP
C2との間の通信が不要であり、通信負荷が小さい。一方、第1の形態では、例えば、P
C2のスキャンサーバプログラム44を利用することで、PC1の処理の負荷は軽減され
る。
【0083】
なお、各実施の形態は単なる例示にすぎず、本発明を何ら限定するものではない。した
がって本明細書に開示される技術は当然に、その要旨を逸脱しない範囲内で種々の改良、
変形が可能である。例えば、各形態を構成するPCやプリンタの台数は、図示の例に限ら
ない。例えば、スキャンシステム100は、2台以上のスキャナを含んでいても良く、汎
用スキャン制御プログラム45に対応可能なスキャナが含まれていても良い。また、スキ
ャンサーバプログラム44を備えないPCが含まれていても良い。
【0084】
また、例えば、プッシュスキャンの手順ではスキャナ3は読取結果をスキャンサーバプ
ログラム44に送信し、スキャンサーバプログラム44が自身の管理するメモリ領域に記
憶するとしたが、スキャナ3のメモリに記憶しても良い。その場合、スキャンサーバプロ
グラム44は、管理プログラム43またはOS41から読取結果の要求を受けてスキャナ
3と通信し、スキャナ3のメモリに読取結果があるか否かを判断しても良い。
【0085】
また、例えば、スキャナ3は、保存先リストをスキャンサーバプログラム44から受け
取る代わりに、自装置にて登録を受け付けて予め記憶させておいても良い。例えば、スキ
ャナ3の操作パネル等によるスキャナ3への直接入力にて保存先リストの登録を受け付け
ても良いし、スキャンアプリ42等から受信して記憶させても良い。一方、スキャナ3が
スキャンサーバプログラム44から保存先リストを受け取る構成であれば、予めスキャナ
3に記憶させておく必要はない。
【0086】
また、例えば、スキャンサーバプログラム44は補正処理を行わなくても良い。補正処理を行う別のプログラムがあっても良い。
【0087】
また、第2の形態の場合、管理プログラム43はスキャンサーバプログラム44に含まれていても良い。つまり、スキャンサーバプログラム44が、起動されることで自身をOS41に登録する機能を有していても良い。
【0088】
また、各実施の形態に開示されている任意のフローチャートにおいて、任意の複数のステップにおける複数の処理は、処理内容に矛盾が生じない範囲で、任意に実行順序を変更できる、または並列に実行できる。
【0089】
また、実施の形態に開示されている処理は、単一のCPU、複数のCPU、ASICなどのハードウェア、またはそれらの組み合わせで実行されてもよい。また、実施の形態に開示されている処理は、その処理を実行するためのプログラムを記録した記録媒体、または方法等の種々の態様で実現することができる。
【符号の説明】
【0090】
1、2 PC
3 スキャナ
11、21 CPU
12、22 メモリ
13、23 ユーザIF
14、24 通信IF
41、51 OS
43 管理プログラム
44 スキャンサーバプログラム