JP7313908B2 - アプリケーション、情報処理装置及び情報処理装置の制御方法 - Google Patents

アプリケーション、情報処理装置及び情報処理装置の制御方法 Download PDF

Info

Publication number
JP7313908B2
JP7313908B2 JP2019101508A JP2019101508A JP7313908B2 JP 7313908 B2 JP7313908 B2 JP 7313908B2 JP 2019101508 A JP2019101508 A JP 2019101508A JP 2019101508 A JP2019101508 A JP 2019101508A JP 7313908 B2 JP7313908 B2 JP 7313908B2
Authority
JP
Japan
Prior art keywords
printer
virtual
virtual printer
information processing
print job
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019101508A
Other languages
English (en)
Other versions
JP2020194508A5 (ja
JP2020194508A (ja
Inventor
紀宏 新井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2019101508A priority Critical patent/JP7313908B2/ja
Priority to US16/885,005 priority patent/US11221805B2/en
Priority to CN202010471141.7A priority patent/CN112015356A/zh
Priority to KR1020200064674A priority patent/KR20200138061A/ko
Priority to EP20177333.0A priority patent/EP3745245A1/en
Publication of JP2020194508A publication Critical patent/JP2020194508A/ja
Priority to US17/552,230 priority patent/US11714582B2/en
Publication of JP2020194508A5 publication Critical patent/JP2020194508A5/ja
Application granted granted Critical
Publication of JP7313908B2 publication Critical patent/JP7313908B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1206Improving or facilitating administration, e.g. print management resulting in increased flexibility in input data format or job format or job type
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1224Client or server resources management
    • G06F3/1228Printing driverless or using generic drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1204Improving or facilitating administration, e.g. print management resulting in reduced user or operator actions, e.g. presetting, automatic actions, using hardware token storing data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1209Improving or facilitating administration, e.g. print management resulting in adapted or bridged legacy communication protocols, e.g. emulation, protocol extension
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1224Client or server resources management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1224Client or server resources management
    • G06F3/1226Discovery of devices having required properties
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1229Printer resources management or printer maintenance, e.g. device status, power levels
    • G06F3/1231Device related settings, e.g. IP address, Name, Identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1236Connection management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1253Configuration of print job parameters, e.g. using UI at the client
    • G06F3/1254Automatic configuration, e.g. by driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/126Job scheduling, e.g. queuing, determine appropriate device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)

Description

本発明は、オペレーティングシステムを有する情報処理装置内のアプリケーション、情報処理装置及び情報処理装置の制御方法に関するものである。
情報処理装置から画像形成装置等の周辺機器を利用するには、一般的にはその周辺機器に対応した特定のデバイスドライバーを、情報処理装置上で動作するオペレーティングシステム(以下「OS」と呼ぶ)にインストールする。すなわち、画像形成装置であればプリンタードライバーをインストールして利用する。
一方、近年OSには、特定のプロトコルを使用することにより、プリンタードライバーを使用せずに印刷を可能とする印刷システムが導入されている。例えば、アップル社のAirPrint(登録商標)、グーグル社のAndroid(登録商標)やマイクロソフト社のWindows(登録商標)のモプリア(登録商標)等に対応する印刷システムが導入されている。この場合には、画像形成装置に対応したプリンタードライバーをOSにインストールする必要がなく、印刷ジョブの生成と画像形成装置への印刷ジョブ送信は、全てOSが行う(特許文献1)。なお、AirPrintは、OSの一部の機能となる。
特開2016-110520号公報
しかしながら、プリンタードライバーを使用せずに印刷を可能とする印刷システムに対応していない画像形成装置は、OSから印刷ジョブを受信しても解釈することができない。そこで、我々は、OSから印刷ジョブを受信できる仮想の画像形成装置(以下「仮想デバイス」と呼ぶ)を情報処理装置内に作成し、この仮想デバイスに、受信した印刷ジョブを画像形成装置へと送らせたいと考えている。そのためには、OSからその仮想デバイスを見つけてもらう必要がある。
本発明は、上記の問題点を解決するためになされたものである。本発明は、特定のプロトコルに対応していない画像形成装置に印刷ジョブを送ることができる仕組みを提供することを目的とする。
本発明は、所定の印刷システムを有する情報処理装置にインストールされるアプリケーションであって、前記情報処理装置により実行されることで、前記情報処理装置と通信可能なプリンターの仮想プリンターを生成する生成工程と、前記情報処理装置のオペレーティングシステムからのデバイス探索要求を受け取る受け取り工程と、前記受け取ったデバイス探索要求に対して、前記生成し仮想プリンターの情報を応答する応答工程と、前記応答として前記オペレーティングシステムに通知された前記仮想プリンターを送信先とする、前記所定の印刷システムにより生成された印刷ジョブを受信する受信工程と、前記受信した印刷ジョブの形式を、前記プリンターが印刷することのできる形式に変換する変換工程と、前記変換した印刷ジョブを前記プリンターに送信する送信工程と、を前記情報処理装置に実行させることを特徴とする。
本発明によれば、特定のプロトコルに対応していない画像形成装置に印刷ジョブを送ることができる。
本実施形態のプリントシステムの全体構成の一例を示す図。 ホストコンピューターを構成可能な情報処理装置のハードウェア構成図。 ホストコンピューターのソフトウェア構成図。 仮想プリンターのソフトウェア構成図。 仮想プリンターサービスのインストールパッケージのソフトウェア構成図。 仮想プリンターサービスのインストール処理の一例を示すフローチャート。 仮想プリンターの生成処理の一例を示すフローチャート。 仮想プリンターサービスのUIの一例を示す図。 仮想プリンターのプリンター名に識別子を付加する識別子付加処理の一例を示すフローチャート。 仮想プリンターがBonjourプロトコルを用いて通知する仮想プリンターのプリンター名の一例を示す図。 OSにおけるプリンター登録処理の一例を示すフローチャート。 OSに印刷先のプリンターを登録するためのUIの一例を示す図。 ネットワーク上の機器探索処理のシーケンス図。 ネットワーク上の機器探索処理のシーケンス図。 ホストコンピューター内の仮想プリンター探索処理のシーケンス図。 仮想プリンターの印刷実行時の処理の一例を示すフローチャート。 ジョブ生成部の印刷実行時の処理の一例を示すフローチャート。 第2実施形態における仮想プリンターの起動時の処理の一例を示すフローチャート。 第2実施形態における仮想プリンターの情報をネットワーク内の機器に通知する処理の一例を示すフローチャート。 第2実施形態における同一ネットワーク上の機器からの対応しているサービスの問い合わせに対する処理の一例を示すフローチャート。
〔第1実施形態〕
図1は、本発明の一実施形態を示すプリントシステムの全体構成の一例を示す図である。
本実施形態に係るシステムは、ホストコンピューター101a,102と、プリンター103,104を備える。
ホストコンピューター101a,101bは、パーソナルコンピュータ(PC)等の情報処理装置の一例である。プリンター103,104は、ページ記述言語(Page Description Language、以下「PDL」と呼ぶ)形式やラスター形式の印刷データを受信し印刷を行う画像形成装置である。
これらの各装置は、ネットワーク100を通じて相互に通信可能である。ネットワーク100は例えばLAN(Local Area Network)やイントラネットであり、WAN(Wide Area Network)を含むことが可能である。
なお、プリンター103,104は、印刷機能のみを備えるシングルファンクションプリンタであっても、印刷機能、スキャン機能、複写機能を備えるマルチファンクションプリンタであってもよい。
また、ホストコンピューターやプリンターは、ネットワーク100に、1台でも3台以上接続されていていてもよい。
なお、以下の説明で、ホストコンピューター101a,101bについて共通の説明を行う場合には、a,b等の添え字を省略して単にホストコンピューター101と記載する。また、その各構成要素についても添え字a,bを省略して記載する。
図2は、ホストコンピューター101を構成可能な情報処理装置のハードウェア構成の一例を示す図である。
CPU201を含む制御部は、ホストコンピューター101全体の動作を制御する。CPU201は、ROM203又は外部メモリ209に記憶されたプログラムをRAM202に展開し、それを実行してユーザインタフェース(以下「UI」)画面の制御や印刷データの生成、印刷データの転送などの各種制御を行う。
RAM202は、CPU201の主記憶メモリであり、ワークエリア又は各種プログラムを展開するための一時記憶領域として用いられる。ROM203は、CPU201で実行可能な制御プログラムやブートプログラム等を格納する。外部メモリI/F208は、外部メモリ209を制御部に接続するインタフェースである。外部メモリ209は、オペレーティングシステム(OS)210、仮想プリンターサービス211、アプリケーション212などを記憶する。
本実施形態では、外部メモリ209としてHDD(Hard Disk Drive)等の補助記憶装置を想定しているが、HDDの代わりに又は併用してSSD(Solid State Drive)などの不揮発性メモリを用いるようにしてもよい。このように、CPU201、RAM202、ROM203、外部メモリ209等のハードウェアは、いわゆるコンピューターを構成している。
操作入力装置I/F204は、キーボードやポインティングデバイス(マウス)、タッチ入力デバイスなどの操作入力装置205を制御するインタフェースである。操作入力装置205は、ユーザからの操作を受け付ける受付部として機能する。
ディスプレイI/F206は、ディスプレイ207への画面の表示を制御する。ディスプレイ207は、ユーザに対して情報を表示する表示部として機能する。
ホストコンピューター101は、ネットワークI/F213を介してネットワーク100に接続される。ネットワークI/F213は、ネットワーク100上のプリンター103,104に印刷データの送信、インターネットでの通信などを行う。なお、ネットワーク100上の外部端末とのデータ通信は、例えばIEEE802.11シリーズに準拠する無線通信や、LANケーブルなどの有線ケーブルを介した通信である。
なお、本実施形態のホストコンピューターの外部メモリ209には、OS210、後述する仮想プリンターサービス211、各種アプリケーション212等がインストールされている。これらのソフトウェアは、ROM203又は外部メモリ209に記憶されたプログラムをRAM202にロードし、CPU201により実行することで機能し、以下に示すソフトウェアの機能を実現する。
図3は、ホストコンピューター101a,101bのソフトウェア構成を示す図である。
ホストコンピューター101aにインストールされているOS210aの一つの機能として印刷システム301aがある。印刷システム301aは、ホストコンピューター101aからの印刷動作に関する制御を行う。印刷システム301aは、特定のプロトコルを使用することにより、プリンタードライバーを使用せずに印刷を可能とする印刷システムである。印刷システム301aは、例えば、アップル社のAirPrint(登録商標)や、グーグル社のAndroid(登録商標)やマイクロソフト社のWindows(登録商標)のモプリア(登録商標)等に対応する印刷システムである。
仮想プリンターサービス211aは、ジョブ生成部303aとサーバー部302aとを有する。
サーバー部302aには、仮想プリンターA311や仮想プリンターB312が生成される。この例では、仮想プリンターA311は、実プリンターであるプリンターAY103に紐づけて生成されている。同じく仮想プリンターB312は、実プリンターであるプリンターBY104に紐づけて生成されている。
なお、仮想プリンターA311,仮想プリンターB312は、OS210aから所定の探索プロトコルによるプリンターの探索要求(デバイス探索要求)を受信すると、上記探索プロトコルに則ってプリンター情報を返答する。また、仮想プリンターA311,B312は、紐付けされているプリンターAY103,プリンターBZ104の状態を検知するなどの通信も上記探索プロトコルにて行う。なお、本実施形態では、ホストコンピューター101のOS210がサポートする探索プロトコルとして一例としてアップル社のBonjour(登録商標)プロトコルを用いて説明する。Bonjourプロトコルでは、デバイス探索に、Multicast DNSの技術を用いる。なお、上記探索プロトコルはBonjourに限定されるものではなく、他の同様の機能のプロトコルでもよい。
仮想プリンターA311(仮想プリンターB312)は、上述の探索要求に対する返答に基づいて仮想デバイスA311(仮想プリンターB312)を印刷ジョブの送信先として登録したOS210の印刷システム301aから、印刷ジョブを受信する。仮想プリンターA311(仮想プリンターB312)は、受信した印刷ジョブを、ジョブ生成部303aで解釈できる所定の形式に変換し、ジョブ生成部303aに送信する。ジョブ生成部303aは、各仮想プリンターが印刷システム301aから受けた印刷ジョブに対し、実プリンター(プリンターAY103やプリンターBZ104)が処理できる形式の印刷ジョブを生成して該実プリンターに送信する役割を持つ。なお、仮想プリンターに、ジョブ生成部303の機能を含めてもよい。すなわち、仮想プリンターが、受信した印刷ジョブから、実プリンターが処理できる印刷ジョブを生成して該実プリンターに送信するようにしてもよい。
ホストコンピューター101bもホストコンピューター101aと同様の構成を有する。すなわち、ホストコンピューター101bにインストールされているOS210bの一つの機能として印刷システム301bがある。印刷システム301bは、ホストコンピューター101bからの印刷動作に関する制御を行う。仮想プリンターサービス211bは、ジョブ生成部303bとサーバー部302bとを有する。サーバー部302bには、仮想プリンターY361や仮想プリンターZ362が生成されている。この例では、仮想プリンターY361は、実プリンターであるプリンターAY103に紐づけて生成されている。同じく仮想プリンターZ362は、実プリンターであるプリンターBY104に紐づけて生成されている。
なお、仮想プリンターを仮想デバイス、仮想プリンターサービスを仮想デバイスサービスともいう。
図4は、仮想プリンターのソフトウェア構成の一例を示す図である。なお、図4では一例として仮想プリンターA311について記載しているが、他の仮想プリンターも同様である。
本実施形態の仮想プリンターは、探索要求受信部1601、探索要求返答部1602、名称設定部1603、印刷ジョブ受信部1604、印刷ジョブ変換部1605、印刷ジョブ送信部1606を有する。
探索要求受信部1601は、Bonjourプロトコルによるプリンターの探索要求を受信する。
探索要求返答部1602は、プリンターの探索要求に対して、Bonjourプロトコルを用いてプリンター情報を返答(応答)する。
なお、探索要求受信部1601と探索要求返答部1602は、Bonjourプロトコルによる探索要求のみ応答する。
名称設定部1603は、Bonjourプロトコルによるプリンターの探索要求に対して、探索要求返答部1602が返答するプリンター名(デバイス名)に識別子を付加する。識別子については、後述する図10に示す。
印刷ジョブ受信部1604は、印刷システム301aから、印刷ジョブを特定のプロトコルで受信する。印刷ジョブ受信部1604は、例えば、印刷ジョブの元となったファイルが、ホストコンピューター101a内のアプリケーション212aによって開かれており、該アプリケーション上でユーザが印刷指示を行ったことにより生成される印刷ジョブを受信する。このアプリケーション212aには、例えばワードプロセッサーアプリケーション、表計算アプリケーション、Webブラウザーアプリケーション、画像編集アプリケーション等のOS210a上で動作可能な各種アプリケーションが含まれる。
印刷ジョブ変換部1605は、印刷ジョブ受信部1604で受信した印刷ジョブを、ジョブ生成部303aが認識できる形式に変換する。なお、ジョブ生成部303aが認識できる形式とは、例えばPDF形式であるが、これに限定されるものではない。
印刷ジョブ送信部1606は、印刷ジョブ変換部1605が変換した印刷ジョブを、ジョブ生成部303aに送信する。
図5は、仮想プリンターサービスのインストールを行うインストールパッケージのソフトウェア構成の一例を示す図である。
インストールパッケージ401は、インストーラ402と仮想プリンターサービス211を含む。インストールパッケージ401がホストコンピューター101上で実行された場合、インストーラ402が動作し、ホストコンピューター101に仮想プリンターサービス211のインストール処理を行う。このインストール処理により、仮想プリンターサービス211は、ホストコンピューター101の外部メモリ209に記憶され、プログラム実行時にはRAM202にロードされ、CPU201により実行される。なお、仮想プリンターサービス211は、アプリケーションであり、複数の仮想プリンターを生成することが可能である。
図6は、仮想プリンターサービス211のインストール処理の一例を示すフローチャートである。このインストール処理は、例えば既定のウェブサイトからダウンロードした(又はCD-ROM等の記録メディアに記録された)仮想プリンターサービスのインストールパッケージ401を、ホストコンピューターのOS210で実行することで開始される。
S501において、インストールパッケージ401に含まれるインストーラ402は、仮想プリンターサービスのインストール先の選択処理を行う。インストーラ402は、ホストコンピューター101のディスプレイ207に、図示しないインストール先選択画面を表示し、インストール先選択画面にユーザにより入力されるインストール先の情報を取得する。インストール先選択画面では、例えば「仮想プリンターサービスをインストールするディスクを選択してください」等のメッセージを表示し、仮想プリンターサービスをインストールする外部メモリの選択を促す。
次にS502において、インストーラ402は、ホストコンピューター101へ仮想プリンターサービス211のインストールを行う。インストール先は、上記S501にて取得したインストール先の情報に沿った場所となる。インストールされた仮想プリンターサービス211は、OS210から実行され起動される。仮想プリンターサービス211は、起動された際、仮想プリンターが1つも生成されていない場合には、仮想プリンターサービス211のメインUI(後述する図8(A))が表示される。なお、このメインUIは、ユーザ操作によっても表示可能である。仮想プリンターサービス211のメインUI(後述する図8(A))が表示されると、仮想プリンターサービス211は、図7に示す仮想プリンターの生成処理を開始する。
図7は、仮想プリンターの生成処理の一例を示すフローチャートである。このフローチャートの処理は、仮想プリンターサービス211により実行される。
S601において、仮想プリンターサービス211は、メインUIにおいて追加ボタンがユーザによって押下されると、これを検知する。追加ボタンとは、後述する図8(A)における「+」(プラス)ボタン1004のことである。「+」ボタン1004が押下されたことを検知した仮想プリンターサービス211は、後述する図8(B)に示す仮想プリンターの追加画面を表示し、S602に処理を進める。ここで、図8を用いて仮想プリンターサービス211のUIについて説明する。
図8は、仮想プリンターサービス211のUIの一例を示す図である。仮想プリンターサービス211のUIは、該仮想プリンターサービス211が起動しているホストコンピューター101のディスプレイ207に表示される。
図8(A)は、仮想プリンターサービスのメインUIの一例を示す。
図8(A)において、プリンター一覧領域1001には、サーバー部302が作成した仮想プリンターの一覧がリストされている。図8(A)の例は、すでに2つの仮想プリンター(プリンターA、プリンターB)が登録済みの状態におけるUIを示している。
領域1002には、仮想プリンターA311のアイコン、名前、そして状況が表示されている。領域1003には、同様に仮想プリンターB312のアイコン、名前、そして状況が表示されている。なお、インストール直後の仮想プリンターサービス211は、仮想プリンターが1つも生成されていない状態であるため、領域1001の仮想プリンター一覧には1つもリストされていない状態となる。
ユーザは「+」(プラス)ボタン1004を押下することで、仮想プリンターを追加することができる。「+」ボタン1004を押下した場合のUIについては、図8(B)を用いて後述する。また、「-」(マイナス)ボタン1005を押下することで、プリンター一覧領域1001で選択されている仮想プリンターを削除することができる。
また、領域1006には、プリンター一覧領域1001で選択されている仮想プリンターのより詳細な情報が表示される。具体的には、プリンターを表すアイコン、プリンターの名称、場所、状況などが表示されている。さらに、「ステータスモニタの起動」ボタン1007を押下することで、プリンターAY103の状態をさらに詳細に表示することも可能である。
図8(B)は、図8(A)の「+」ボタン1004を押下した時に表示されるUI(仮想プリンター追加画面)の一例を示す。図8(B)の領域1011には、ホストコンピューター101が接続されたネットワークに存在するプリンターやUSB接続されたプリンターのうち、仮想プリンターサービス211がサポートするものの一覧がリストされている。この例では、ネットワーク100に接続されたプリンターAY103とプリンターBZ104がそれぞれ領域1012と領域1013に表示されている。ユーザは、仮想プリンターを作成したいプリンターをこのリストから選択し、名前1014と場所1015を入力し、追加ボタン1016を押下する。これにより、UIは図8(A)に戻り、追加した仮想プリンターの仮想プリンター名(名前1014で入力された名前)がプリンター一覧領域1001に追加されて表示される。
以下、図7のフローチャートの説明に戻る。
仮想プリンターの追加画面(図8(B))の表示を行った仮想プリンターサービス211は、S602において、プリンターの探索の処理を実行する。プリンターの探索処理とは、後述する図14で示すような処理を行うことで実現される。
次にS603において、仮想プリンターサービス211は、上記S602にて探索されたプリンターに仮想プリンターサービス211の対象プリンターが含まれているか否かを判断する。対象プリンターか否かの判断には、仮想プリンターサービス211の内部に保持される仮想プリンターサービスの対象プリンターの一覧を利用する。この一覧に、上記S602にて探索されたプリンターが含まれている場合、仮想プリンターサービス211は、このプリンターを対象プリンターと判断する。
表1に、仮想プリンターサービスの対象プリンターの一覧の情報を例示する。
Figure 0007313908000001
対象プリンターの一覧には、プリンタードライバーを使用することなく印刷を可能とする印刷システムに対応しない(すなわち特定のプロトコルに対応しない)プリンターのうち、仮想プリンターサービス211が対応するプリンターのみがリストされる。本リストは、仮想プリンターサービス211のインストール前から仮想プリンターサービス211の内部に保持されている。
表1において、プリンター名は、該当プリンターの名称を示す。
また、表2には、上記S602で探索されたプリンターの一覧の情報を例示する。
Figure 0007313908000002
表2において、プリンター名は、該当プリンターの名称を示す。プリンター名は、該当プリンターに予め保持されているプリンターの名称であり、上記S602で探索された際に該当プリンターがホストコンピューター101に返答するプリンター名に対応する。なお、プリンター名は、一般的にはプリンター機種に関連する名称となっており、表1においても、このプリンター名が用いられる。
また、IPアドレスは、該当プリンターのネットワーク上のアドレスを示す。
また、サービスタイプは、該当プリンターが対応しているサービスを示す。例えば、「_printer._tcp」のサービスタイプを有する機器は、それがLPD(Line Printer Daemon)のプロトコルに対応したプリンターであることを示している。
なお、表2のリストには、上記S602で探索された全てのプリンターがリストアップされる。
仮想プリンターサービス211は、表1及び表2で示されるプリンターを比較することで、探索されたプリンターが仮想プリンターサービスの対象プリンターか否かの判断を行う。表1及び表2で示す例では、プリンターAYとプリンターBZが対象プリンターであると判断される。この判断では、特定のプロトコルに対応していないプリンターで、且つ、仮想プリンターサービス211が対応するプリンターのリスト(所謂ホワイトリスト)を用いる例を示した。すなわち、このリストに探索されたプリンターが含まれている場合に、そのプリンターを対象プリンターと判断する構成を示した。しかし、この判断を、特定のプロトコルに対応しているプリンター、又は、仮想プリンターサービス211が対応しないプリンターのリスト(所謂ブラックリスト)を用いて行ってもよい。この場合、このリストに探索されたプリンターが含まれていない場合に、そのプリンターを対象プリンターと判断する構成とする。すなわち、特定のプロトコルに対応していないプリンターや、仮想プリンターサービス211が対応するプリンターを特定可能なリスト等の情報に基づき、仮想プリンターサービス211で仮想プリンターの生成対象となるプリンターを選抜する構成であればよい。
上記S603において、上記S602にて探索されたプリンターに仮想プリンターサービスの対象プリンターが1つも含まれていない場合(S603でNOの場合)、仮想プリンターサービス211は、本フローチャートの処理を終了する。
一方、上記S603において、上記S602にて探索されたプリンターに仮想プリンターサービスの対象プリンターが含まれている場合(S603でYESの場合)、仮想プリンターサービス211は、S604に処理を進める。
S604において、仮想プリンターサービス211は、上記S603で対象プリンターであると判断したプリンターのプリンター名を、仮想プリンター追加画面(図8(B))の領域1011に表示する。上述した例では、ネットワーク100に接続されたプリンターAY103とプリンターBZ104のプリンター名がそれぞれ領域1012と領域1013に表示される。すなわち、仮想プリンターサービス211は、上記S602で探索されたプリンターのうち、上述のようなリスト(例えば表1のようなリスト)に基づき選抜されたプリンターの一覧をユーザに提示する。
次にS605において、仮想プリンターサービス211は、仮想プリンターの接続先となるプリンターの選択処理を行う。仮想プリンターサービス211は、図8(B)の領域1011でいずれかのプリンターが選択された状態で追加ボタン1016がユーザに押下されると、これを検知する。そして、仮想プリンターサービス211は、領域1011で選択されているプリンターのプリンター名、名前1014及び場所1015の情報を、仮想プリンター追加画面(図8(B))から取得する。図8(B)の例では、「プリンターAY」を選択されたプリンターのプリンター名、「プリンターA」を名前、「本館3階」を場所の情報として取得する。
次にS606において、仮想プリンターサービス211は、仮想プリンターの生成処理を行う。この処理では、上記S605にて選択されたプリンターを接続先として紐付けし、上記S605で取得した名前、場所に基づき仮想プリンターを生成する。なお、この処理により生成された仮想プリンターは、Bonjourプロトコルで定められたプリンターが通知する情報を有する。この情報には、例えば、仮想プリンターの接続先、仮想プリンターの名前、仮想プリンターの機能、仮想プリンターのサービスタイプ、Bonjourプロトコルを用いて通知する仮想プリンターのプリンター名など、が含まれる。仮想プリンターの接続先は、例えば上記S605で選択されたプリンターのIPアドレスが対応する。具体的には上記S603の探索時に取得されたIPアドレス(表2にて例示)となる。また、仮想プリンターの機能は、例えばサポートPDL(Page Description Language)、サポート機能などが対応する。この仮想プリンターの機能は、上記S605で選択されたプリンターごとに異なり、仮想プリンターサービスのインストール前から仮想プリンターサービス211の内部に保持されている。さらに、上述のBonjourプロトコルを用いて通知する仮想プリンターのプリンター名は、次のように生成される。
仮想プリンターサービス211は、まず仮に、Bonjourプロトコルを用いて通知する仮想プリンターのプリンター名を上述した仮想プリンターの名前とし、さらに図9に示す識別子付加処理を行う。これにより、Bonjourプロトコルを用いて通知する仮想プリンターのプリンター名を生成する。
図9は、図7のS606内で行われる識別子付加処理の一例を示すフローチャートである。この処理は、Bonjourプロトコルを用いて通知する仮想プリンターのプリンター名に識別子を付加する処理に対応する。ここでは、仮想プリンターA311のBonjourプロトコルを用いて通知するプリンター名に識別子を付加する例を用いて説明するが、他の仮想プリンターでも同様である。
S1201において、仮想プリンターサービス211は、図7のS606で生成した仮想プリンター(以下「対象の仮想プリンター」)における、Bonjourプロトコルを用いて通知する仮想プリンターのプリンター名を取得する。例えば、対象の仮想プリンターが仮想プリンターA311の場合、「仮想プリンターA」が取得される。
次にS1202において、仮想プリンターサービス211は、上記S1201で取得したプリンター名に識別子が含まれているかの判断を行う。なお、識別子とは、図10に示す、仮想プリンターであることを示す情報1712と、対象の仮想プリンターが動作しているホストコンピューターの情報1713を含む情報である。ホストコンピューターの情報とは、ホストコンピューターから取得できる、コンピューター名やログイン名などの情報が対応する。
上記S1202において、上記S1201で取得したプリンター名に識別子が含まれている場合(S1202でYESの場合)、仮想プリンターサービス211は、本フローチャートの処理を終了する。
一方、上記S1201で取得したプリンター名に識別子が含まれていない場合(S1202でNOの場合)、仮想プリンターサービス211は、S1203に処理を進める。
S1203において、仮想プリンターサービス211は、対象の仮想プリンターが動作しているホストコンピューターの情報を取得する。対象の仮想プリンターが仮想プリンターA311の場合、ホストコンピューター101aの情報を取得する。ここで取得する情報は、例えばホストコンピューターのコンピューター名やログイン名など、ホストコンピューター101aを判断できる情報である。なお、ホストコンピューターを判断できる情報であれば、コンピューター名、ログイン名以外でもよい。
次にS1204において、仮想プリンターサービス211は、上記S1201で取得したプリンター名に、上記S1203で取得したホストコンピューターの情報を付加する。なお、S1203、S1204の処理は、S1204、S1203の順序で行われてもよい。
またS1205において、仮想プリンターサービス211は、上記S1204でホストコンピューター名の情報が付加されたプリンター名に、仮想プリンターであること示す情報を付加する。仮想プリンターであること示す情報とは、例えば「仮想」という文字列である。
図10は、図9のS1203~S1205の処理により識別子が付与された、Bonjourプロトコルを用いて通知する仮想プリンターのプリンター名の一例を示す図である。
Bonjourプロトコルを用いて通知する仮想プリンターのプリンター名1701~1704は、図7のS606で作成された仮想プリンターのプリンター名1711に識別子を付加したプリンター名である。なお、識別子は、仮想プリンターであることを示す情報1712と、仮想プリンターが動作しているホストコンピューターの情報1713を含む。なお、情報1711、1712、1713の順序はこれに限定されるものではない。また、情報1712と1713のいずれか一方のみを識別子として、情報1711に付加してもよい。
本実施形態では、仮想プリンターであることを示す情報1712に「仮想」という文字列、ホストコンピューターの情報1713にユーザ名を用いている。しかし、仮想プリンターであること及びホストコンピューターを識別できる情報であれば、それぞれ他の情報でもよい。
なお、上記の識別子付加処理により、識別子を付加するプリンター名は、Bonjourプロトコルを用いて通知する仮想プリンターのプリンター名である。すなわち、図8(A)に示した仮想プリンターサービスのメインUIに表示されるプリンター名(1002、1003)には、識別子を付加しない。例えば、ユーザAがログインしたホストコンピューター101aで仮想プリンターA311が生成された場合について具体的に示す。この場合、図8(A)の領域1002に表示される仮想プリンターのプリンター名は「プリンターA」、Bonjourプロトコルを用いて通知する仮想プリンターのプリンター名は「プリンターA_仮想_ユーザA」となる。
以上の処理により、ホストコンピューターの情報及び仮想プリンターであることを示す情報からなる識別子を含むプリンター名を、Bonjourプロトコルを用いて通知する仮想プリンターのプリンター名とする、仮想プリンターを生成することができる。
なお、生成された仮想プリンターを用いて印刷を行うには、該仮想プリンターをOS210にサービスプログラムとして登録する必要がある。サービスプログラムとしてOS210に登録された仮想プリンターは、OS210の実行中に常時動作し、他プログラムや情報機器からの問い合わせに対する応答を行う。後述する図15に示す機器探索処理を示すシーケンスは、その一例である。これによって、仮想プリンターは、他プログラムや情報機器からは実際のプリンターとして存在しているかのように見える。
以下、仮想プリンターのOSへの登録処理について説明する。
図11は、OS210におけるプリンター登録処理の一例を示すフローチャートである。このフローチャートの処理は、ユーザ操作により、OS210に印刷先のプリンターを登録するためのメインUI(図12(A))が表示された際に開始される。
S701において、OS210の印刷システム301は、追加ボタンがユーザによって押下されると、これを検知する。この追加ボタンとは、後述する図12(A)における「+」(プラス)ボタン1104のことである。「+」ボタン1004が押下されたことを検知すると、OS210の印刷システム301は、図12(B)に示すプリンターの登録画面を表示し、S702に処理を進める。ここで、図12を用いて、OS210に印刷先のプリンターを登録するためのUIについて説明する。
図12は、OS210に印刷先のプリンターを登録するためのUIの一例を示す図である。OS210に印刷先のプリンターを登録するためのUIは、該OS210が起動しているホストコンピューター101のディスプレイ207に表示される。
図12(A)は、OS210における印刷先のプリンターを登録するためのメインUIを示す。
図12(A)のプリンター一覧領域1101には、印刷先としてOS210に既に登録されているプリンターの一覧がリストされている。図12(A)の例は、すでに2つのプリンター(プリンターAY、プリンターBY)が登録済みの状態におけるUIを示している。
領域1102には、プリンターAYのアイコン、名前、そして状況が表示されている。領域1103には、同様に、プリンターBZのアイコン、名前、そして状況が表示されている。
ユーザは「+」(プラス)ボタン1104を押下することで、プリンターを追加登録することができる。「+」ボタン1104を押下した場合のUIについては、図12(B)を用いて後述する。また、「-」(マイナス)ボタン1105を押下することで、プリンター一覧領域1101で選択されているプリンターを削除することができる。
また、領域1106には、プリンター一覧領域1101で選択されているプリンターのより詳細な情報が表示されている。具体的には、プリンターを表すアイコン、プリンターの名称、場所、状況などが表示されている。さらに、「プリントキューを開く」ボタン1107を押すことで、領域1101で選択されているプリンターの状態をさらに詳細に表示することも可能である。さらに、「オプション」ボタン1108を押すことで、領域1101で選択されているプリンターのオプション類(不図示)の構成を変更したり、トナーやインクなどの印刷剤の残量を表示する画面などを表示することができる。
図12(B)は、図12(A)の「+」ボタン1104を押下した時に表示されるUI(プリンター追加画面)の一例を示す。図12(B)の領域1111には、接続されたネットワークに存在する実プリンターやUSB接続された実プリンターや仮想プリンターの一覧がリストされ、ユーザに提示される。ユーザは登録したいプリンターを、領域1111のリストから選択し、名前1118と場所1119を入力できる。そして最後に追加ボタン1120を押下することで、UIは図12(A)に戻り、登録したプリンターがプリンター一覧領域1101に追加されて表示される。
以下、図11の説明に戻る。
図12(B)のプリンターの登録画面の表示を行ったOS210の印刷システム301は、S702において、プリンターの探索の処理を実行する。探索処理とは、後述する図14、図15で示されるような処理を行うことで実現される。例えば、OS210からネットワーク100にBonjourプロトコルを用いた探索要求を送信し、ネットワーク100上の機器から該探索要求に対する応答を受け取ることで、探索を行う。
次にS703において、OSの印刷システムは、上記S702にてプリンターが探索されたか否かの判断を行う。
表3には、上記S703で探索されたプリンターの一覧の情報を例示する。
Figure 0007313908000003
表3において、プリンター名は、該当プリンターの名称を示すものであり、該当プリンターからBonjourプロトコルを用いて通知されたプリンター名に対応する。
IPアドレスは、該当プリンターのネットワーク上のアドレスを示す。
サービスタイプは該当プリンターが対応しているサービスを示す。例えば、「_printer._tcp」のサービスタイプを有する機器は、それがLPDのプロトコルに対応したプリンターであることを示している。また、「_ipp._tcp」のサービスタイプを有する機器は、それがIPP(Internet Printing Protocol)のプロトコルに対応したプリンターであることを示している。
ここでは、サービスタイプに「_printer._tcp」もしくは「_ipp._tcp」を有する機器をプリンターであると判断を行う、ものとする。表3で示されるプリンターの中で、前記条件に合致するのは「プリンターA_仮想_ユーザA」、「プリンターB_仮想_ユーザC」、「プリンターY_仮想_ユーザE」、「プリンターZ_仮想_ユーザF」、「プリンターAY」及び「プリンターBZ」である。
上記S703において、上記S702にてプリンターが一台も探索されなかった場合(S703でNOの場合)、OSの印刷システムは、本フローチャートの処理を終了する。
一方、上記S703において、上記S702にてプリンターが探索された場合(S703でYESの場合)、OSの印刷システムは、S704に処理を進める。
S704において、OSの印刷システムは、上記S703でプリンターであると判断した機器をプリンターとして、図12(B)の領域1111にリスト表示する。よって、領域1111には、接続されたネットワークに存在する実プリンターやUSB接続された実プリンター、さらに仮想プリンターの一覧がリストされる。すなわち、リストされた仮想プリンターには、そのホストコンピューターに作成された仮想プリンターのみならず、接続されたネットワークに存在する他のホストコンピューターで作成された仮想プリンターも含まれる。図12(B)の例では、ネットワークに接続された実プリンターAY,BZのプリンター名が、領域1116,領域1117に表示されている。また、このUIを表示しているホストコンピューター(ここでは101aとする)に作成されている仮想プリンターA,Bのプリンター名が、領域1112,領域1113に表示されている。さらに、ネットワーク100上の他のホストコンピューター(101bとする)に作成されている仮想プリンターY,Zのプリンター名も、領域1114,領域1115に表示されている。なお、OS210の印刷システムがサポートするもの(特定のプロトコルに対応するもの)のみを、図12(B)の領域1111に表示するようにしてもよい。
なお、図12(B)の領域1111に表示されるプリンター名は、該当プリンターからBonjourプロトコルを用いて通知されたプリンター名となる。よって、本実施形態の仮想プリンターの場合、上述した識別子が付加されたプリンター名で表示される。例えば、仮想プリンターA311は「プリンターA_仮想_ユーザA」、仮想プリンターB312は「プリンターB_仮想_ユーザC」のように表示される。また、仮想プリンターY361は「プリンターY_仮想_ユーザE」、仮想プリンターZ362は「プリンターZ_仮想_ユーザF」のように探索されたプリンターのプリンター名が表示される。
次にS705において、OS210の印刷システム301は、OS210に登録するプリンターの選択処理を行う。図12(B)の領域1111でプリンターが選択された状態で追加ボタン1120がユーザに押下されると、これをOS210の印刷システム301が検知する。そして、印刷システム301は、選択されたプリンターのプリンター名および名前1118と場所1119の情報をプリンターの登録画面(図12(B))から取得する。図12(B)の例では、「プリンターA_仮想_ユーザA」を選択されたプリンターのプリンター名、「プリンターA」をプリンターの名前、「本館3階」を場所の情報として取得する。なお、ユーザは、領域1111の一覧からプリンターを選択する際、自身のホストコンピューター内に作成された仮想プリンターと、他のホストコンピューターに作成された仮想プリンターとを区別する必要がある。本実施形態では、上述したように、識別子が付加されたプリンター名が一覧に表示されるため、ユーザは、ホストコンピューター内に作成された仮想プリンターを容易に選択することが可能になる。
次にS706において、OS210の印刷システム301は、OS210へのプリンターの登録を行う。この処理は、上記S705で選択されたプリンターをOS210へ登録する。接続先情報は上記S703の探索時に取得さしたIPアドレス(表3にて例示)とし、同じく上記S705で取得したプリンターの名前、場所の情報を基にOS210への登録を行う。
登録されたプリンターは、接続先のIPアドレス、名前、場所がホストコンピューター101の外部メモリ209に記憶される。そして、UIは図12(A)に戻り、登録されたプリンターがプリンター一覧領域1101に追加されて表示される。この後、登録されたプリンターは、アプリケーション212から開くOS210の印刷設定画面(不図示)から、印刷ジョブの送信先として選択ができ、特定のプロトコルを用いた印刷が可能となる。
以上の構成により、ユーザがプリンターのOS登録処理を行っているホストコンピューターに作成されている仮想プリンターと、他のホストコンピューターに作成されている仮想プリンターとを容易に判別することが可能になる。この結果、ユーザがプリンターOS登録処理を行っているホストコンピューターに作成されている仮想プリンターを容易に選択してOSに登録することが可能になる。また、他のホストコンピューターに作成されている仮想プリンターをOSに登録してしまうことを抑制することができる。
もし本実施形態のような識別子が付加されていなければ、プリンター追加画面の領域1111の一覧は、プリンターA、プリンターB、プリンターY、プリンターZ、プリンターAY、プリンターBZのような表示となる。この場合、ユーザは、いずれのプリンターが実プリンターか、自装置に生成された仮想プリンターか、他装置に生成された仮想プリンターかを判断することが困難となる。このため、他のホストコンピューターに作成されている仮想プリンターをOSに登録してしまう可能性が高くなる。他のホストコンピューターに作成されている仮想プリンターをOSに登録した場合、該登録された仮想プリンターを選択して印刷しようとしても、該他のホストコンピューターが起動していない状態では印刷できない、といった事態が発生してしまう。本実施形態では、このような事態の発生を抑制することが可能であり、利用者はOSの印刷システムから、利用者の情報処理装置内に作成された仮想プリンターを容易に選択してOSに登録することが可能になる。この結果、他の情報処理装置内に作成された仮想プリンターをOSに登録してしまうことを抑制できる。
以下、ネットワーク上の機器探索処理のシーケンスについて説明する。
図13は、ネットワーク上の機器探索処理における、プリンターAY103から自身の存在を通知する場合のシーケンス図である。
プリンターAY103は、ネットワークに参加すると、Multicast DNSの技術を用いて、同一ネットワーク上の機器に対し、プリンターAY103のIPアドレス831、機器名832、サービスタイプ833を通知する(801)。すなわち、Bonjourプロトコルに則ってプリンター情報を通知する。前記サービスタイプとは、Bonjourプロトコルにおける、機器がサポートしているサービスを示す値である。プリンターを示すサービスタイプの例を表4に示す。
Figure 0007313908000004
プリンターAY103からの通知を受けたホストコンピューター101aは、プリンターAY103のIPアドレス831、機器名832、サービスタイプ833をキャッシュ情報821に追加する(802)。キャッシュ情報とは、Bonjourプロトコルにおける、ネットワークにかかる負荷を減らすための仕組みで使用する情報である。このキャッシュ情報に含まれる情報の例を表5に示す。
Figure 0007313908000005
その後、ホストコンピューター101aは、ネットワーク上の機器を探索する際、まずキャッシュ情報822から、サービスタイプに表4に記載するサービスタイプを持つ機器を検索する(803)。キャッシュ情報にプリンターAY103の情報が含まれる場合、キャッシュ情報に含まれるプリンターAY103の情報を以降の処理に使用する(804)。
さらに、ホストコンピューター101aは、Multicast DNSの技術を用いて、一定間隔で同一ネットワーク上に存在する機器に対し、対応しているサービスの問い合わせを行う(805)。すなわち、Bonjourプロトコルによるデバイス探索要求を送信する。なお、ホストコンピューター101aは、この問い合わせと一緒にホストコンピューター101aが既に知っている機器の一覧(キャッシュ情報822に基づく一覧)を同一ネットワーク上に存在する機器に対し通知する。
ホストコンピューター101aからの問い合わせを受けたプリンターAY103は、ホストコンピューター101aが既に知っている機器の一覧822に、プリンターAY103が含まれているか確認する(806)。この例では、プリンターAY103は、ホストコンピューター101aが既に知っている機器の一覧822に、プリンターAY103が含まれていると判断し、ホストコンピューター101aの問い合わせに対して応答しない(807)。
図14は、ネットワーク上の機器探索処理における、ホストコンピューター101aからの探索に対して、プリンターAY103からIPアドレス831、機器名832、サービスタイプ833を通知する場合のシーケンス図である。
ホストコンピューター101aは、キャッシュ情報971からサービスタイプに表4に記載したサービスタイプを持つ機器を検索する(951)。ホストコンピューター101aは、キャッシュ情報971に該当する機器が存在しない場合、Multicast DNSの技術を用いて、同一ネットワーク上に存在する機器に対し、対応しているサービスの問い合わせを行う(952)。すなわち、Bonjourプロトコルによるデバイス探索要求を送信する。なお、該当する機器が存在した場合においても、ホストコンピューター101aは、上記図13の805に示す、一定間隔で同一ネットワーク上に存在する機器に対し、対応しているサービスの問い合わせを行う。なお、ホストコンピューター101aは、この問い合わせと一緒にホストコンピューター101aが既に知っている機器の一覧971を同一ネットワーク上に存在する機器に対し通知する。
プリンターAY103は、ホストコンピューター101aが既に知っている機器の一覧(キャッシュ情報971に基づく一覧)に、プリンターAY103が含まれているか確認する(953)。この例では、プリンターAY103は、ホストコンピューター101aが既に知っている機器の一覧971に、プリンターAY103が含まれていないと判断する。そして、プリンターAY103は、Multicast DNSの技術を用いて、同一ネットワーク上に存在する機器に対し、プリンターAY103のIPアドレス831、機器名832、サービスタイプ833を通知する(954)。すなわち、Bonjourプロトコルに則ってプリンター情報を応答する。
そして、ホストコンピューター101aは、プリンターAY103のIPアドレス831、機器名832、サービスタイプ833をキャッシュ情報971に追加する(956)。
ホストコンピューター101aは、プリンターAY103から受け取った情報を以降の処理に使用する(957)。
図15は、ホストコンピューターの内部に作成された仮想プリンターに対する探索処理のシーケンス図である。
仮想プリンターA311と仮想プリンターB312は、ホストコンピューター101aの内部に作成されている。ここでは、仮想プリンターA311は、仮想プリンターA311から自身の存在を通知する。また、仮想プリンターB312は、ホストコンピューター101aからの探索に対して自身の存在を通知する例について説明する。
仮想プリンターA311は、Multicast DNSの技術を用いて、ホストコンピューター101a対し、仮想プリンターA311のIPアドレス2031、機器名2032、サービスタイプ2033を通知する(2001)。すなわち、Bonjourプロトコルに則ってプリンター情報を通知する。この際、本実施形態の仮想プリンターA311は、機器名2032として、仮想プリンターであることを示す情報としてVirtual Printerの略「VP」、ホストコンピューターの情報として「UserA」が付加された情報を通知する。この例では、仮想プリンターであることを示す情報として文字列「VP」を用いる例を示しているが、上述したように文字列「仮想」を用いてもよい。
仮想プリンターA311からの通知を受けたホストコンピューター101aは、仮想プリンターA311のIPアドレス2031、機器名2032、サービスタイプ2033をキャッシュ情報(2021)に追加する(2002)。
その後、ホストコンピューター101aは、ホストコンピューター101a内の仮想プリンターを探索する際、まずキャッシュ情報2022から、サービスタイプに表4に記載したサービスタイプを持つ機器を検索する(2003)。キャッシュ情報に仮想プリンターA311の情報が含まれる場合、キャッシュ情報に含まれる仮想プリンターA311の情報を以降の処理に使用する(2004)。
さらに、ホストコンピューター101aは、Multicast DNSの技術を用いて、一定間隔でホストコンピューター101a内の仮想プリンターに対し、対応しているサービスの問い合わせを行う(2005)。すなわち、Bonjourプロトコルによるデバイス探索要求を送信する。ホストコンピューター101aは、問い合わせと一緒にホストコンピューター101aが既に知っている機器の一覧(キャッシュ情報2022に基づく一覧)をホストコンピューター101a内の仮想プリンターに対し通知する。
ホストコンピューター101aからの問い合わせを受けた仮想プリンターA311は、ホストコンピューター101aが既に知っている機器の一覧2022に、仮想プリンターA311が含まれているか確認する(2006)。仮想プリンターA311は、ホストコンピューター101aが既に知っている機器の一覧2022に、仮想プリンターA311が含まれていると判断し、ホストコンピューター101aの問い合わせに対して応答しない(807)。
ホストコンピューター101aからの問い合わせを受けた仮想プリンターB312は、ホストコンピューター101aが既に知っている機器の一覧2022に、仮想プリンターB312が含まれているか確認する(2008)。仮想プリンターB312は、ホストコンピューター101aが既に知っている機器の一覧2022に、仮想プリンターB312が含まれていないと判断する。そして、仮想プリンターB312は、Multicast DNSの技術を用いて、ホストコンピューター101a対し、仮想プリンターB312のIPアドレス2041、機器名2042、サービスタイプ2043を通知する(2009)。すなわち、Bonjourプロトコルに則ってプリンター情報を応答する。この際、本実施形態の仮想プリンターB312は、機器名2042として、仮想プリンターであることを示す情報として「VP」、ホストコンピューターの情報として「UserC」が付加された情報を通知する。
ホストコンピューター101aは、仮想プリンターB312のIPアドレス2041、機器名2042、サービスタイプ2043をキャッシュ情報2022に追加する(2010)。
図16は、仮想プリンターの印刷実行時の処理の一例を示すフローチャートである。
S1801において、仮想プリンター(例えば仮想プリンターA311)は、OS210における印刷システム301から印刷ジョブを受信すると、S1802に処理を進める。
S1802において、仮想プリンターは、上記S1801で受信した印刷ジョブを、ジョブ生成部303が認識できる形式に変換する。ここで、ジョブ生成部303が認識できる形式とは、例えばPDF形式である。
次にS1803において、仮想プリンターは、上記S1802で変換後の印刷ジョブを、ジョブ生成部303に送信し、本フローチャートの処理を終了する。
図17は、ジョブ生成部303の印刷実行時の処理の一例を示すフローチャートである。
S1901において、仮想プリンターサービス211におけるジョブ生成部303は、仮想プリンター(例えば仮想プリンターA311)から印刷ジョブを受信すると、S1902に処理を進める。
S1902において、ジョブ生成部303は、上記S1901で受信した印刷ジョブを、上記印刷ジョブの送信元の仮想プリンターが紐付けされている実プリンター(例えばプリンターAY103)が認識(解釈)できる形式に変換を行う。ここで、実プリンターが認識できる形式とは、例えばラスター形式である。
次にS1903において、ジョブ生成部303は、上記S1902で変換後の印刷ジョブを、上記印刷ジョブの送信元の仮想プリンターが紐付けされている実プリンターに送信し、本フローチャートの処理を終了する。
なお、本実施形態では、仮想プリンターの生成時に、すなわち図7のS606内で、図9の識別子付加処理を実行する構成について説明した。この構成の場合、仮想プリンター生成時に、識別子が付加されたプリンター名を、Bonjourプロトコルを用いて通知する仮想プリンターのプリンター名として、仮想プリンターの内部に保持する構成となる。しかし、本実施形態に含まれる発明は、この構成に限定されるものではない。例えばBonjourプロトコルを用いて仮想プリンターのプリンター名を通知(応答)するタイミングで、図9の識別子付加処理を実行してプリンター名に識別子を付加し、該識別子が付加された仮想プリンターのプリンター名を通知(応答)する構成でもよい。すなわち、図15の2001の通知(自身の存在の通知)や、2009の通知(ホストコンピューター101からの問い合わせに応じた応答)のタイミング等で、図9の識別子付加処理を実行してプリンター名に識別子を付加して通知してもよい。
以上、本実施形態の仮想プリンターを用いることにより、特定のプロトコルを使用することにより、プリンタードライバーを使用せずに印刷を可能とする印刷システムから、特定のプロトコルに対応していない画像形成装置に印刷ジョブを送ることができる。なお、本実施形態の仮想プリンターは、プリンターOS登録処理を行っているホストコンピューターに作成されている仮想プリンターと、他のホストコンピューターに作成されている仮想プリンターとを容易に判別することが可能なものである。よって、ユーザは、プリンターOS登録処理を行っているホストコンピューターに作成されている仮想プリンターを容易に選択してOSに登録することが可能になる。また、他のホストコンピューターに作成されている仮想プリンターを誤ってOSに登録してしまうことを抑制することができる。その結果、他のホストコンピューターに作成されている仮想プリンターを選択して印刷しようとし、該他のホストコンピューターが起動していないために印刷できない、といった事態の発生を抑制することができる。
〔第2実施形態〕
上記第1実施形態では、Bonjourプロトコルを用いて通知する仮想プリンターのプリンター名として、仮想プリンターであることを示す情報及びホストコンピューターの情報を含む識別子が付加されたプリンター名を通知する構成について説明した。第2実施形態では、仮想プリンターの公開範囲を設定しておき、他のホストコンピューターには、Bonjourプロトコルを用いた仮想プリンターのプリンター名の通知を行わない構成とする。これにより、仮想プリンターが起動しているホストコンピューター以外のホストコンピューターでは、その仮想プリンターを見つけることができなくなる。よって、ユーザが、誤って他のホストコンピューターに作成されている仮想プリンターをOSに登録してしまうことを防止できる。これにより、他のホストコンピューターに作成されている仮想プリンターを選択して印刷しようとし、該他のホストコンピューターが起動されていないために印刷できないといった事態の発生を防止できる。以下、第2実施形態の構成について詳細に説明する。なお、第2実施形態では、第1実施形態のように図9の識別子付加処理は行わず、仮想プリンターからは、上述した識別子が付加されていないプリンター名が通知(応答)される。
図18は、第2実施形態における仮想プリンターの起動時の処理の一例を示すフローチャートである。この処理は、仮想プリンターサービス211が仮想プリンターを起動するタイミングで実行される。仮想プリンターサービス211は、自身が起動されたタイミングで、自身の内部に生成されている仮想プリンターを起動する。また、仮想プリンターサービス211は、仮想プリンターを生成したタイミングで、該生成した仮想プリンターを起動する。
S1301において、仮想プリンターサービス211は、起動する仮想プリンターの公開範囲の設定を受け付ける。仮想プリンターサービス211は、自身が起動しているホストコンピューター101のディスプレイ207に、仮想プリンターの公開範囲の設定画面(不図示)を表示し、ユーザからの公開範囲の設定を受け付ける。公開範囲の設定の受付は、例えば「仮想プリンターを起動しているホストコンピューター内」又は「制限なし」の選択により行う。ユーザから仮想プリンターの公開範囲の設定を受け付けると、仮想プリンターサービス211は、S1302に処理を進める。
S1302において、仮想プリンターサービス211は、上記S1301で設定入力された仮想プリンターの公開範囲の判定を行う。公開範囲が「仮想プリンターを起動しているホストコンピューター内」の場合(S1302でYESの場合)、仮想プリンターサービス211は、S1303に処理を進める。
S1303において、仮想プリンターサービス211は、起動する仮想プリンターの公開範囲を「仮想プリンターを起動しているホストコンピューター内」に設定し、S1305において、該仮想プリンターを起動する。
一方、上記S1302において、公開範囲が「制限なし」の場合(S1302でNOの場合)、仮想プリンターサービス211は、S1304に処理を進める。
S1304において、仮想プリンターサービス211は、起動する仮想プリンターの公開範囲を「制限なし」に設定し、S1305において、該仮想プリンターを起動する。
図19は、第2実施形態における仮想プリンターの情報をネットワーク内の機器に通知する処理の一例を示すフローチャートである。上述したように、仮想プリンターは、Bonjourプロトコルを用いて仮想プリンターのプリンター名を該仮想プリンターが起動されているホストコンピューター101のOS210に通知する(例えば図15の2001の通知や2009の通知)。これに応じて、ホストコンピューター101のOS210は、該通知に基づく情報を、該ホストコンピューター101が接続されているネットワーク上の機器に通知する。本実施形態のOS210は、仮想プリンターからBonjourプロトコルを用いたプリンター情報(仮想プリンターのプリンター名等を含む)の通知を受け取った場合、本フローチャートの処理を実行する。なお、ここでは、仮想プリンターA311の情報をネットワーク内の機器に通知する場合を例に説明するが、他の仮想プリンターでも同様である。
S1401において、ホストコンピューター101aのOS210aは、上記受信したプリンター情報の通知元である仮想プリンターA311の公開範囲の情報を取得する。
次にS1402において、OS210aは、上記S1401で取得した公開範囲の判定を行う。そして、公開範囲が「仮想プリンターを起動しているホストコンピューター内」である場合(S1402でYESの場合)、OS210aは、本フローチャートの処理を終了する。
一方、上記S1402において、公開範囲が「制限なし」の場合(S1402でNOの場合)、OS210aは、S1403に処理を進める。
S1403において、OS210aは、Multicast DNSの技術を用いて、同一ネットワーク上の機器に対し、仮想プリンターA311のIPアドレス、機器名、サービスタイプを通知する。すなわち、Bonjourプロトコルに則ってプリンター情報を同一ネットワーク上の機器に対して通知する。そして、OS210aは、本フローチャートの処理を終了する。
図20は、第2実施形態における同一ネットワーク上の機器からの対応しているサービスの問い合わせに対する処理の一例を示すフローチャートである。図20(A)の処理は、仮想プリンターが起動されているホストコンピューター101のOS210により開始される。
まず、図20(A)のフローチャートについて説明する。なお、ここでは、ホストコンピューター101aを例に説明するが、他のホストコンピューターでも同様である。
S1501で、ホストコンピューター101aのOS210aは、Multicast DNSの技術を用い、ホストコンピューター101bからの対応しているサービスの問い合わせと、ホストコンピューター101bが既に知っている機器の一覧を受信する。すなわち、Bonjourプロトコルによるデバイス探索要求を受信する。この受信に応じて、OS210aは、ホストコンピューター101a内に生成されている各仮想プリンターに対して、S1502~S1506に示す処理を実行するように制御する。
まずS1502において、OS210aは、ホストコンピューター101a内に生成されている各仮想プリンターのうち、未処理の仮想プリンターを1つ取得する(以下、「処理対象の仮想プリンター」という)。さらに、OS210aは、処理対象の仮想プリンターの公開範囲の情報を取得する。
次にS1503において、OS210aは、上記S1502で取得した公開範囲の判定を行う。そして、公開範囲が処理対象の仮想プリンターを起動しているホストコンピューター内に制限されている場合(S1503でYESの場合)、OS210aは、S1507に処理を進める。
一方、上記S1503において、公開範囲に制限が設定されていない場合(S1502でNOの場合)、OS210aは、S1504に処理を進める。
S1504にて、OS210aは、Multicast DNSの技術を用い、上記S1501で受信したホストコンピューター101bからの対応しているサービスの問い合わせと、ホストコンピューター101bが既に知っている機器の一覧を、処理対象の仮想プリンターに渡す。すなわち、Bonjourプロトコルによる外部からのデバイス探索要求を処理対象の仮想プリンターに送信する。
ここで、図20(B)を用いて、上記S1504にて問い合わせを渡される仮想プリンター側の処理について説明する。ここでは、仮想プリンターA311を例に説明するが、他の仮想プリンターでも同様である。
S1511において、仮想プリンターA311は、Bonjourプロトコルによる、OS210aが上記S1504で送信した問い合わせ(探索要求)と、ホストコンピューター101bが既に知っている機器の一覧を受信する。
次にS1512において、仮想プリンターA311は、上記ホストコンピューター101bが既に知っている機器の一覧を取得する。
次にS1513において、仮想プリンターA311は、上記S1512で取得したホストコンピューター101bが既に知っている機器の一覧に、仮想プリンターA311が含まれているか否かを判定する。
上記S1513において、ホストコンピューター101bが既に知っている機器の一覧に、仮想プリンターA311が含まれている場合(S1513でYESの場合)、仮想プリンターA311は、本フローチャートの処理を終了する。この場合、仮想プリンターA311は、上記S1511で受信した問い合わせに対する応答は行わない。
一方、ホストコンピューター101bが既に知っている機器の一覧に、仮想プリンターA311が含まれていない場合(S1513でNOの場合)、仮想プリンターA311は、S1514に処理を進める。
S1514において、仮想プリンターA311は、Multicast DNSの技術を用いて、OS210aに対し、仮想プリンターA311のIPアドレス、機器名、サービスタイプを通知する。すなわち、Bonjourプロトコルに則ってプリンター情報を応答し、本フローチャートの処理を終了する。
以下、図20(A)のフローチャートの説明に戻る。
S1505において、OS210aは、上記S1504で送信した問い合わせの応答(処理対象の仮想プリンターのIPアドレス、機器名、サービスタイプ)を、処理対処の仮想プリンターから受信したか判定する。処理対象の仮想プリンターから応答がなかった場合(S1505でNOの場合)、OS210aは、S1507に処理を進める。
一方、処理対象の仮想プリンターから応答を受信した場合(S1505でYESの場合)、OS210aは、S1506に処理を進める。
S1506において、OS210aは、Multicast DNSの技術を用いて、同一ネットワーク上の機器に対し、上記S1505で受信した、処理対象の仮想プリンターのIPアドレス、機器名、サービスタイプを通知する。すなわち、Bonjourプロトコルに則ってプリンター情報の応答を行う。S1506の処理の後、OS210aは、S1507の処理を進める。
S1507において、OS210aは、上記S1502~S1506に示す処理を、ホストコンピューター101a内に生成されている全ての仮想プリンターに対して終了したか判定する。まだ処理を終了していない仮想プリンターが存在する場合(S1507でNOの場合)、OS210aは、S1502に処理を戻し、次の仮想プリンターに対する処理に遷移する。
一方、上記S1502~S1506に示す処理を、ホストコンピューター101a内に生成されている全ての仮想プリンターに対して終了した場合(S1507でYESの場合)、OS210aは、本フローチャートの処理を終了する。
なお、図19の処理を実行し、図20の処理を実行しない構成でもよい。すなわち、ホストコンピューター101は、外部から受信したデバイス探索要求については内部の仮想プリンターに渡すが、該仮想プリンターからの応答については外部に応答しない構成でもよい。この構成でも、同様の効果を得ることができる。
また、上述の説明では、ホストコンピューター101のOS210が、仮想プリンターの公開範囲を判断し、公開範囲の外部に仮想プリンターからの通知を外部に送信しない、また、公開範囲の外部からの探索要求を仮想プリンターに渡さない構成を示した。しかし、本実施形態に含まれる発明は、これに限定されるものではない。例えば、OS210は第1実施形態と同様の処理を行い、仮想プリンター自身が自身の公開範囲を判断し、公開範囲の外部に自ら通知を行わない、又は公開範囲の外部からの探索要求に対する返答を行わないようにしてもよい。
以上のように、第2実施形態では、仮想プリンターの公開範囲に応じた処理を行い、公開範囲を仮想プリンターが動作しているホストコンピューター内とすることで、ネットワーク上に存在する機器からの探索に対して、仮想プリンターに応答させない。この構成により、第2実施形態では、仮想プリンターが起動しているホストコンピューター以外のホストコンピューターでは、その仮想プリンターを見つけることができなくなる。よって、プリンターOS登録処理を行う際に、図12(B)のプリンターの登録画面に、該プリンターOS登録処理を行っているホストコンピューター以外のホストコンピューターに生成されている仮想プリンターが表示されなくなる。これにより、ユーザが他のホストコンピューターに作成されている仮想プリンターを誤ってOSに登録してしまうことを防止できる。その結果、他のホストコンピューターに作成されている仮想プリンターを選択して印刷しようとし、該他のホストコンピューターが起動していないために印刷できない、といった事態の発生を防止することができる。
以上、各実施形態によれば、プリンタードライバーを使用せずに印刷を可能とする印刷システムから、特定のプロトコルに対応していない画像形成装置に、該画像形成装置が解釈可能な印刷ジョブを送ることができる。また、ユーザが他のホストコンピューターに作成されている仮想プリンターを誤ってOSに登録してしまうことを抑制できる。その結果、他のホストコンピューターに作成されている仮想プリンターを選択して印刷しようとし、該他のホストコンピューターが起動していないために印刷できない、といった事態の発生を抑制できる。
上述した各実施形態で説明したホストコンピューター101の各ソフトウェアの機能は、CPU201が外部メモリ等から読み出した又はダウンロードしたプログラム(210~211や401等)をRAM202にロードして実行することにより機能する。すなわち、上記各実施形態に係る各ソフトウェアは、情報処理装置に上記各実施形態の機能を実現させるためのものである。
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、上記各実施形態を組み合わせた構成も全て本発明に含まれるものである。
〔その他の実施形態〕
本発明は上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピューターにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形(各実施形態の有機的な組合せを含む)が可能であり、それらを本発明の範囲から除外するものではない。即ち、上述した各実施形態及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
100 ネットワーク
101a、101b ホストコンピューター
103、104 プリンター
210a、210b OS
211a、211b 仮想プリンターサービス
301a、301b 印刷システム
302a、302b サーバー成部
303a、303b ジョブ生成部
311、312、361、362 仮想プリンター

Claims (20)

  1. 所定の印刷システムを有する情報処理装置にインストールされるアプリケーションであって、前記情報処理装置により実行されることで、
    前記情報処理装置と通信可能なプリンターの仮想プリンターを生成する生成工程と、
    前記情報処理装置のオペレーティングシステムからのデバイス探索要求を受け取る受け取り工程と、
    前記受け取ったデバイス探索要求に対して、前記生成し仮想プリンターの情報を応答する応答工程と、
    前記応答として前記オペレーティングシステムに通知された前記仮想プリンターを送信先とする、前記所定の印刷システムにより生成された印刷ジョブを受信する受信工程と、
    前記受信した印刷ジョブの形式を、前記プリンターが印刷することのできる形式に変換する変換工程と、
    前記変換した印刷ジョブを前記プリンターに送信する送信工程と、を前記情報処理装置に実行させることを特徴とするアプリケーション。
  2. 前記受信工程では、特定のプロトコルで前記印刷ジョブを受信し、
    前記送信工程では、前記特定のプロトコルとは異なるプロトコルで、前記特定のプロトコルに対応していない前記プリンターに前記変換した印刷ジョブを送信することを特徴とする請求項1に記載のアプリケーション。
  3. 前記受信工程で受信する印刷ジョブは、該印刷ジョブの元となったファイルが、前記情報処理装置内の他のアプリケーションによって開かれており、該他のアプリケーション上でユーザが印刷指示を行ったことにより生成される印刷ジョブであることを特徴とする請求項1又は2に記載のアプリケーション。
  4. 前記応答工程では、仮想プリンターであることを示す情報を有する識別子が付加されたプリンター名を含む情報を応答することを特徴とする請求項1~3のいずれか1項に記載のアプリケーション。
  5. 前記応答工程では、前記仮想プリンターが動作している情報処理装置の情報を示す識別子が付加されたプリンター名を含む情報を応答することを特徴とする請求項1~3のいずれか1項に記載のアプリケーション。
  6. 前記オペレーティングシステムは、前記デバイス探索要求に対して応答した仮想プリンターのプリンター名の一覧を表示し、
    前記仮想プリンターは、該一覧からユーザにより選択されて、前記オペレーティングシステムから印刷ジョブを送信するデバイスとして前記オペレーティングシステムに登録されて使用される、ことを特徴とする請求項4又は5に記載のアプリケーション。
  7. 前記識別子が付加されたプリンター名は、予め生成されて前記仮想プリンターと対応づけて保持されることを特徴とする請求項4~6のいずれか1項に記載のアプリケーション。
  8. 前記識別子が付加されたプリンター名は、前記受け取り工程で前記オペレーティングシステムからのデバイス探索要求を受け取った場合に生成されることを特徴とする請求項4~6のいずれか1項に記載のアプリケーション。
  9. 前記アプリケーションは、さらに
    前記情報処理装置と通信することができる印刷装置を探索する探索工程を、前記情報処理装置に実行させ、
    前記生成工程は、前記探索工程で実行された探索により検出されたプリンターに対応する前記仮想プリンターを生成することを特徴とする請求項1乃至8のいずれか一項に記載のアプリケーション
  10. 前記仮想プリンターの所定の公開範囲に公開するかを設定可能な設定工程を有し、
    前記応答工程では、前記所定の公開範囲に公開することが設定されている場合、前記受け取り工程で受け取ったデバイス探索要求が設定された前記所定の公開範囲の外から送信されたものであることに基づき、該デバイス探索要求に対して応答せず、デバイス探索要求が前記所定の公開範囲の内から送信されたものであることに基づき、応答することを特徴とする請求項1~のいずれか一項に記載のアプリケーション。
  11. 前記所定の公開範囲は、該仮想プリンターが起動されている情報処理装置の内部であることを特徴とする請求項10に記載のアプリケーション。
  12. 所定の印刷システムを有する情報処理装置の制御方法であって、
    情報処理装置と通信可能なプリンターの仮想プリンターを生成する生成工程と、
    前記情報処理装置のオペレーティングシステムからのデバイス探索要求を受け取る受け取り工程と、
    前記受け取ったデバイス探索要求に対して、前記生成し仮想プリンターの情報を応答する応答工程と、
    前記応答として前記オペレーティングシステムに通知された前記仮想プリンター送信先とする、前記所定の印刷システムにより生成された印刷ジョブを受信する受信工程と、
    前記受信した印刷ジョブの形式を、前記プリンターが印刷することのできる形式に変換する変換工程と、
    前記変換した印刷ジョブを前記プリンターに送信する送信工程と、を前記情報処理装置に実行させることを特徴とする情報処理装置の制御方法。
  13. 前記受信工程では、特定のプロトコルで前記印刷ジョブを受信し、
    前記送信工程では、前記特定のプロトコルとは異なるプロトコルで、前記特定のプロトコルに対応していない前記プリンターに前記印刷ジョブを送信することを特徴とする請求項1に記載の情報処理装置の制御方法。
  14. 前記応答工程では、仮想プリンターであることを示す情報を有する識別子が付加されたプリンター名を含む情報を応答することを特徴とする請求項1または1に記載の情報処理装置の制御方法。
  15. 前記情報処理装置と通信することができる印刷装置を探索する探索工程をさらに有し、
    前記生成工程は、前記探索工程で実行された探索により検出されたプリンターに対応する前記仮想プリンターを生成することを特徴とする請求項12乃至14のいずれか一項に記載の情報処理装置の制御方法
  16. 前記仮想プリンターの所定の公開範囲に公開するかを設定可能な設定工程を有し、
    前記応答工程では、前記所定の公開範囲に公開することが設定されている場合、前記受け取り工程で受け取ったデバイス探索要求が設定された前記所定の公開範囲の外から送信されたものであることに基づき、該デバイス探索要求に対して応答せず、デバイス探索要求が前記所定の公開範囲の内から送信されたものであることに基づき、応答することを特徴とする請求項1乃至1のいずれか一項に記載の情報処理装置の制御方法。
  17. 前記所定の公開範囲は、前記情報処理装置の内部であることを特徴とする請求項1に記載の情報処理装置の制御方法。
  18. 所定の印刷システムを有する情報処理装置であって、
    前記情報処理装置と通信することができるプリンターの仮想プリンターを生成する生成手段と、
    前記生成した仮想プリンターの情報を前記情報処理装置のオペレーティングシステムに登録する登録手段と、
    前記所定の印刷システムを実行し、前記登録した仮想プリンターを送信先とする印刷ジョブを生成する生成手段と、
    前記生成した印刷ジョブの形式を、前記プリンターで印刷することのできる形式に変換する変換手段と、
    前記変換した印刷ジョブを、前記プリンターに送信する送信手段と、を有することを特徴とする情報処理装置
  19. 前記所定の印刷システムは、所定のプロトコルで印刷ジョブを送信するシステムであり、
    前記所定のプロトコルは、Internet Printing Protocolであることを特徴とする請求項1に記載の情報処理装置。
  20. ットワークに接続された前記所定の印刷システムにより生成される印刷ジョブに基づく印刷を実行することができるプリンターと、前記仮想プリンターを探索する探索手段と
    前記探索手段による探索で検出された、前記所定の印刷システムにより生成される印刷ジョブに基づく印刷を実行することができるプリンターと、前記仮想プリンターを表示する表示手段と、をさらに有することを特徴とする請求項18または19に記載の情報処理装置。
JP2019101508A 2019-05-30 2019-05-30 アプリケーション、情報処理装置及び情報処理装置の制御方法 Active JP7313908B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2019101508A JP7313908B2 (ja) 2019-05-30 2019-05-30 アプリケーション、情報処理装置及び情報処理装置の制御方法
US16/885,005 US11221805B2 (en) 2019-05-30 2020-05-27 Virtual device, operating system, virtual device service, information processing apparatus, and method of controlling information processing apparatus
CN202010471141.7A CN112015356A (zh) 2019-05-30 2020-05-28 虚拟设备、操作系统、虚拟设备服务、信息处理装置及其控制方法
EP20177333.0A EP3745245A1 (en) 2019-05-30 2020-05-29 Virtual device, operating system, virtual device service, information processing apparatus, and method of controlling information processing apparatus
KR1020200064674A KR20200138061A (ko) 2019-05-30 2020-05-29 가상 디바이스, 오퍼레이팅 시스템, 가상 디바이스 서비스, 정보 처리 장치, 및 정보 처리 장치를 제어하는 방법
US17/552,230 US11714582B2 (en) 2019-05-30 2021-12-15 Virtual device, operating system, virtual device service, information processing apparatus, and method of controlling information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019101508A JP7313908B2 (ja) 2019-05-30 2019-05-30 アプリケーション、情報処理装置及び情報処理装置の制御方法

Publications (3)

Publication Number Publication Date
JP2020194508A JP2020194508A (ja) 2020-12-03
JP2020194508A5 JP2020194508A5 (ja) 2022-06-06
JP7313908B2 true JP7313908B2 (ja) 2023-07-25

Family

ID=70921874

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019101508A Active JP7313908B2 (ja) 2019-05-30 2019-05-30 アプリケーション、情報処理装置及び情報処理装置の制御方法

Country Status (5)

Country Link
US (2) US11221805B2 (ja)
EP (1) EP3745245A1 (ja)
JP (1) JP7313908B2 (ja)
KR (1) KR20200138061A (ja)
CN (1) CN112015356A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11573747B2 (en) * 2020-09-25 2023-02-07 Fmr Llc Systems and methods for a printer reverse redirector
CN113885816A (zh) * 2021-09-29 2022-01-04 广东天波信息技术股份有限公司 虚拟打印设备进行打印的方法、系统、设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002055795A (ja) 2000-08-14 2002-02-20 Canon Inc プリント管理装置及びその制御方法及び記憶媒体
JP2005044002A (ja) 2003-07-23 2005-02-17 Canon Sales Co Inc サーバ装置およびプリンタ削除方法およびプログラムおよび記録媒体
JP2012216166A (ja) 2011-03-28 2012-11-08 Canon Inc 情報処理装置、その方法、及びプログラム
JP2015186228A (ja) 2014-03-26 2015-10-22 富士ゼロックス株式会社 画像処理システム、中継装置およびプログラム
JP2015230710A (ja) 2014-06-06 2015-12-21 キヤノン株式会社 情報処理装置及びプログラム、制御方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120212757A1 (en) 2011-02-23 2012-08-23 Gaertner Joseph P Multiple print protocol capability of a virtual printer in a print shop architecture
JP6108864B2 (ja) * 2013-02-20 2017-04-05 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、及びプログラム
JP6385265B2 (ja) * 2014-12-09 2018-09-05 キヤノン株式会社 情報処理装置、制御方法及びプログラム
JP6609140B2 (ja) * 2015-08-25 2019-11-20 キヤノン株式会社 情報処理装置とその制御方法、及びデバイスアプリケーションとプログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002055795A (ja) 2000-08-14 2002-02-20 Canon Inc プリント管理装置及びその制御方法及び記憶媒体
JP2005044002A (ja) 2003-07-23 2005-02-17 Canon Sales Co Inc サーバ装置およびプリンタ削除方法およびプログラムおよび記録媒体
JP2012216166A (ja) 2011-03-28 2012-11-08 Canon Inc 情報処理装置、その方法、及びプログラム
JP2015186228A (ja) 2014-03-26 2015-10-22 富士ゼロックス株式会社 画像処理システム、中継装置およびプログラム
JP2015230710A (ja) 2014-06-06 2015-12-21 キヤノン株式会社 情報処理装置及びプログラム、制御方法

Also Published As

Publication number Publication date
US11221805B2 (en) 2022-01-11
US20220107765A1 (en) 2022-04-07
CN112015356A (zh) 2020-12-01
US11714582B2 (en) 2023-08-01
US20200379689A1 (en) 2020-12-03
KR20200138061A (ko) 2020-12-09
EP3745245A1 (en) 2020-12-02
JP2020194508A (ja) 2020-12-03

Similar Documents

Publication Publication Date Title
JP4865299B2 (ja) 情報処理装置及び情報処理方法及びそのプログラム
WO2020004159A1 (ja) 情報処理装置、制御方法及びプログラム
JP7379123B2 (ja) サーバシステム
US20070136485A1 (en) Information processing apparatus
US11573753B2 (en) Non-transitory computer-readable recording medium storing computer-executable instructions for information processing device, and method of controlling information processing device with driverless printing function
US11494146B2 (en) Information processing apparatus creates virtual printer to transmit print job to associated image forming apparatus which supports predetermined print format
US7826083B2 (en) Management of multiple page description languages
JP2020004158A (ja) 情報処理装置、情報処理装置の制御方法、及びプログラム
KR100956928B1 (ko) 화상 형성 장치, 그 제어 방법, 및 화상 형성 시스템
JP2007190839A (ja) 認証印刷装置及び方法、認証印刷システム
JP7313908B2 (ja) アプリケーション、情報処理装置及び情報処理装置の制御方法
JP2007069359A (ja) 画像形成装置及びその制御方法、プログラム、画像形成システム
US10235112B2 (en) Hot folder creation and management
JP2021005132A (ja) 印刷装置、サーバシステム、印刷装置の制御方法、サーバシステムの制御方法及びプログラム
JP7328050B2 (ja) 情報処理装置、制御方法、プログラム
JP7374623B2 (ja) 情報処理装置、情報処理装置の制御方法
KR20140145051A (ko) 모바일 단말을 이용한 풀 프린팅 방법 및 장치
JP2020197972A (ja) 情報処理装置、情報処理装置の制御方法、プログラム、仮想デバイスサービス及び仮想デバイスの生成方法
JP2021077076A (ja) 仮想デバイス、情報処理装置及び情報処理装置の制御方法
JP7328405B2 (ja) 情報処理装置、情報処理装置の制御方法及び印刷設定アプリケーション
EP3945408A1 (en) Information processing apparatus, control method, and program
JP2024039180A (ja) 情報処理装置、情報処理装置の制御方法ならびに情報処理装置にインストールされるアプリケーション
JP2021177297A (ja) プログラム、情報処理装置、情報処理装置の制御方法
JP2021030527A (ja) 制御装置、制御方法、及びプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220527

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220527

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230309

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230404

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230531

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230613

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230712

R151 Written notification of patent or utility model registration

Ref document number: 7313908

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151