JP2022109051A - サーバシステムおよびサーバシステムの制御方法 - Google Patents

サーバシステムおよびサーバシステムの制御方法 Download PDF

Info

Publication number
JP2022109051A
JP2022109051A JP2021004373A JP2021004373A JP2022109051A JP 2022109051 A JP2022109051 A JP 2022109051A JP 2021004373 A JP2021004373 A JP 2021004373A JP 2021004373 A JP2021004373 A JP 2021004373A JP 2022109051 A JP2022109051 A JP 2022109051A
Authority
JP
Japan
Prior art keywords
print
printer
service
driver
cloud
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.)
Pending
Application number
JP2021004373A
Other languages
English (en)
Inventor
慎也 鈴木
Shinya Suzuki
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 JP2021004373A priority Critical patent/JP2022109051A/ja
Priority to KR1020210008445A priority patent/KR20210098343A/ko
Priority to US17/157,723 priority patent/US11520536B2/en
Priority to CN202110110816.XA priority patent/CN113282252A/zh
Priority to DE102021102043.3A priority patent/DE102021102043A1/de
Publication of JP2022109051A publication Critical patent/JP2022109051A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】 本明細書に記載のサーバシステムおよび情報処理装置は、OSやクラウドプリントサービスが印刷設定に反映することのできない設定を反映した印刷データを用いて、クラウドプリントサービスを経由した印刷を実行することを目的とする。【解決手段】 本明細書に記載のサーバシステムは、登録が要求された印刷装置の情報を受信する第1の受信手段と、前記登録された印刷装置に送信するPDLデータを生成するフィルターを他のサーバシステムから取得する取得手段と、前記情報処理装置から前記印刷装置で印刷する画像データを受信する第2の受信手段と、前記取得されたフィルターに、前記受信された画像データに基づくPDLデータを生成させる手段と、を有することを特徴とする。【選択図】 図16

Description

情報処理装置、情報処理装置の制御方法ならびにプログラム、および当該情報処理装置と通信することのできるサーバシステムに関するものである。
ユーザーがクラウドプリントサービスに印刷装置の情報を登録しておき、印刷データをクラウドプリントサービス経由で印刷装置に送信して印刷する印刷システムが知られている。ユーザーは、PC等の情報処理装置からクラウドプリントサービスにアクセスし、クラウドプリントサービスに登録された印刷装置から印刷に使用する印刷装置を選択し、印刷データの印刷を指示する。
情報処理装置は、印刷ジョブを生成し、クラウドプリントサービス上の印刷キューに投入する。印刷装置は、クラウドプリントサービスにアクセスし、クラウドプリントサービス上に生成された印刷キューにスプールされた印刷ジョブを取得し、出力する(特許文献1)。
クラウドプリントサービスの代表例として、例えばGoogleCloudPrint(登録商標)(特許文献1)、MicrosoftHybridCloudPrint(登録商標)、uniFLOW Online(登録商標)などがある。
特開2013-238924号公報
クライアント端末からクラウドプリントサービスへ印刷ジョブを投入するモジュールは、クライアント端末のオペレーティングシステム(OS)によって標準印刷システムとして提供される。
従来、ベンダー固有の機能に対応する印刷データを生成するために、プリンタードライバーや印刷データを加工するためのフィルター等のモジュールをベンダーがクライアントコンピューターに配布していた。そして、当該モジュールにてベンダー固有の設定を反映した印刷データの生成を行っている。上記のようなプリンタードライバーやフィルター等のモジュールをクライアントコンピューターにインストールすることなく、ベンダー固有の設定を印刷データに反映することが難しかった。
本発明に記載のサーバシステムは、OSやクラウドプリントサービスが印刷設定に反映することのできない設定を反映した印刷データを用いて、クラウドプリントサービスを経由した印刷を実行することを目的とする。
本明細書に記載のサーバシステムは、情報処理装置から受信した画像データに基づき印刷データを生成することのできるサーバシステムであって、印刷装置の情報の登録を受け付ける受付手段と、前記登録が受け付けられた印刷装置に送信するPDLデータを生成するフィルターを他のサーバーから取得する取得手段と、情報処理装置から前記印刷装置で印刷する印刷データを受信する受信手段と、前記受信された印刷データを前記取得されたフィルターによりPDLデータに変換させる手段と、を有することを特徴とする。
OSやクラウドプリントサービスが印刷設定に反映することのできない設定を反映した印刷データを用いて、クラウドプリントサービスを経由した印刷を実行することができる。
本実施形態において、クライアントコンピューター100におけるハードウェア構成の一例を示す図である。 本実施形態におけるネットワーク構成の一例を示す図である。 本実施形態におけるプリンタードライバー配布サービス300における機能ブロック図である。 本実施形態における印刷拡張アプリケーション配布サーバー400における機能ブロックの一例を示す図である。 本実施形態におけるクラウドプリントサービス500における機能ブロックの一例を示す図である。 本実施形態におけるクラウドプリントサービス500にプリンター200を登録するシーケンスの一例を示す図である。 本実施形態におけるクラウドプリントサービス500が保持するプリンターの情報データベースの一例を示す図である。 本実施形態におけるプリンタードライバー配布サービス300が保持するプリンターの情報データベースの一例を示す図である。 本実施形態における印刷拡張アプリケーション配布サーバー400が保持するプリンターの情報データベースの一例を示す図である。 本実施形態において、クライアントコンピューター100に印刷設定アプリケーション1052をインストールするシーケンスの一例を示す図である。 本実施形態において、クラウドプリントサービス500から受信した印刷可能ジョブリストを表示した操作パネルの一例を示す図である。 本実施形態において、クライアントコンピューターに表示される印刷コモンダイアログの一例を示す図である。 本実施形態における印刷設定画面の一例を示す図である。 本実施形態における、プリンターの能力情報の一例を示す図である。 本実施形態における、クラウドプリントサービス500における印刷処理の一例を示すフローチャートである。 本実施形態において、クラウドプリントサービスでPDLデータを生成する場合のシーケンス図である。 本実施形態において、印刷拡張アプリケーションがPDLデータを生成する場合のシーケンス図である。 第2の実施形態において、PDL変換サービスを用いてPDLデータを生成する場合のシーケンス図である。 第2の実施形態における、ネットワーク構成の一例を示す図である。 第3の実施形態におけるプリンタードライバー配布サービスの模式図である。 第3の実施形態において、プリンターの情報をクラウドプリントサービスに登録する処理を示すシーケンス図である。 第3の実施形態において、ドライバー配布サービスが管理するドライバパッケージの情報を示すテーブルの一例である。 第3の実施形態において、クラウドプリントサービスに登録されるプリンターの情報を示すテーブルの一例である。 第4の実施形態における、機能ブロックの一例を示す図である。 第4の実施形態における、クラウドプリントサービス500のプリンター200を登録するシーケンスの一例を示す図である。 第4の実施形態における、フィルターパイプラインコンフィグの一例である。
<第1の実施形態>
図1は、本実施形態においてクラウドプリントサービスを利用するクライアントコンピューター(情報処理装置)のハードウェア構成図である。以下に詳細な説明を記載する。
CPU101は主記憶装置102のROM1021あるいはRAM1022あるいは補助記憶装置105に格納されたプログラムに従って装置全体の制御を行う。
RAM1022はCPU101が各種処理を行う際のワークエリアとしても使用される。補助記憶装置105はクラウドドライバー1050、オペレーションシステム(OS)1053やアプリケーション1051、印刷拡張アプリケーション1052等を記録する。以降の説明では、主記憶装置102と補助記憶装置105を合わせて記憶装置と記載する。
マウス・タッチパネルなどに代表されるポインティングデバイス109やキーボード108などの入力機器は、入力I/F103を通じてシステムバス107に接続され、ユーザーがコンピューターに対して各種指示を与えるためのデバイスである。
出力I/F104は、データを外部に出力するためのインターフェースであり、モニター110やパネル111のような出力機器に対してデータを出力する。また、クライアントコンピューター100は撮影機能を有しており、カメラ112が搭載されている。
クライアントコンピューター100は、通信I/F106を経由しネットワーク150を通じて図2にて後述するプリンター200や各システムと接続される。また、107は共通データシステムバスで、I/Fやモジュール間でデータのやり取りを行う。
図2は、本実施形態を示すネットワークの環境を簡略した印刷システムの概略図である。
ネットワーク150にはクライアントコンピューター100とプリンター200が接続されている。クライアントコンピューター100とプリンター200は同一イントラネットワークに接続され、通信可能な状態である。
また、別のイントラネット204にはプリンター201、プリンター202が接続されており、ネットワーク150はインターネット203を通じてイントラネット204に接続されている。インターネット203には、プリンタードライバー配布サービス300、印刷拡張アプリケーション配布サービス400、クラウドプリントサービス500が接続されている。
プリンタードライバー配布サービス300は、Webベースでプリンタードライバーをクライアントコンピューター100に配布するサービスを実行する1または複数台の情報処理装置で構成されるサーバシステムである。クライアントコンピューター100は、プリンター200をWSD(Web Services for Devices)やIPP(Internet Printing Protocol)などのプロトコルで探索する。クライアントコンピューター100は発見したプリンター200のプリンター識別情報や機種情報に基づき特定されるプリンタードライバーをプリンタードライバー配布サービス300から取得し、インストールする。プリンタードライバー配布サービス300に登録されているプリンタードライバーはプリンターベンダーによって更新される。クライアントコンピューター100は、バージョンの新しいプリンタードライバーを自動または手動でプリンタードライバー配布サービス300から取得し、インストールされているプリンタードライバーを更新する。
印刷拡張アプリケーション配布サービス400は、クライアントコンピューター100で実行されるアプリケーションを配布するサービスを実行する1または複数台の情報処理装置で構成されるサーバシステムである。印刷拡張アプリケーションとは、クラウドプリントサービスやOSが提供する印刷機能を拡張するためのアプリケーションである。クラウドプリントサービスやOSが提供する印刷機能ではいずれのベンダーのプリンターでも使用することのできる標準的な機能、たとえば、カラーモードや両面印刷等しか印刷設定を行うことができない。印刷拡張アプリケーションを利用することで、クラウドプリントサービスやOSの提供する印刷機能では設定することのできない印刷機能、例えば針なしステープルやポスター印刷、中綴じ製本などの機能を利用することができるようになる。
クライアントコンピューター100は、印刷拡張アプリケーションのインストールを要求するユーザー操作を受け付けた場合、印刷拡張アプリケーション配布サービス400にアクセスし、印刷拡張アプリケーションをインストールする。また、クライアントコンピューター100にインストールされたプリンタードライバーのInf(Information)ファイルにアプリケーション識別子が記述されている場合、印刷拡張アプリケーションのインストールが行われる。アプリケーション識別子は印刷拡張アプリケーション配布サービス400に登録されているアプリケーションのうち、クラウドプリントサービス500に登録されたプリンターに対応するアプリケーションを特定するためのアプリケーション識別情報である。クライアントコンピューター100は、印刷拡張アプリケーション配布サービス400にアクセスし、Infファイルに記述された識別子に対応する印刷拡張アプリケーションをインストールする。
クラウドプリントサービス500は、1台または複数台の情報処理装置からなるサーバシステムであるクラウド上に構築されるサービスである。本実施形態において、クラウドプリントサービス500は其々のイントラネットに対して接続が可能であり、インターネットを通じてクライアントコンピューター100およびプリンター200やプリンター201、プリンター202との接続が可能である。クラウドプリントサービス500は、ユーザーIDとPASSWORDを利用したアカウント管理がなされており、クライアントコンピューター100はユーザーが入力したアカウント情報を利用してクラウドプリントサービス500にアクセスする。
なお、本実施形態において、クライアントコンピューター100はクラウドプリントサービス500、印刷拡張アプリケーション配布サービス400のURLをあらかじめ記憶しているものとする。また、クラウドプリントサービス500は、プリンタードライバー配布サービス300のURLをあらかじめ記憶しているものとする。
図3Aは、プリンタードライバー配布サービス300の機能ブロックの一例を示した図である。プリンタードライバー配布サービス300は、図1に示す情報処理装置と同様の構成の1または複数台の情報処理装置で構成されるサーバシステムである。プリンタードライバー登録部301、プリンタードライバー応答部302は、プリンタードライバー配布サービス300を構成する情報処理装置のCPUがプログラムを実行することで実現される。
プリンタードライバー配布サービス300は、インターネットを通じたクラウド上に存在するサービスであり、外部サービスやクライアントコンピューター100にプリンタードライバーに関するパッケージの配布を可能とする。プリンタードライバーに関するパッケージとは、たとえば、プリンタードライバーやドライバー拡張パッケージなどである。
プリンタードライバー登録部301は、外部サービス及びクライアントコンピューター100からプリンタードライバーに関するパッケージの登録指示があった際に、アップロードされたパッケージをプリンタードライバーデータベース310に登録する。プリンタードライバー登録部301は、たとえば、プリンターベンダー等が配布するプリンタードライバーや、プリンタードライバーを拡張するためのドライバー拡張パッケージをプリンタードライバーデータベース310に登録する。
プリンタードライバー応答部302は、外部サービスやクライアントコンピューター100からプリンタードライバーや拡張パッケージに関する取得要求があった場合に、プリンタードライバーデータベース310から該当するパッケージを取得し、応答する。例えば、クライアントコンピューター100から、印刷キューが生成されたプリンター200に対応するプリンタードライバーの要求を受信したとする。プリンタードライバー応答部302は、プリンタードライバーデータベース310からプリンター200に対応するプリンタードライバーを読み出して、クライアントコンピューター100に送信する。プリンタードライバー応答部302は、クライアントコンピューター100から、インストールされているプリンタードライバーを拡張するためのドライバー拡張パッケージの取得要求を受信することもできる。その場合、プリンタードライバー応答部302は、プリンタードライバーデータベース310から要求されたプリンタードライバーに対応するドライバー拡張パッケージを読み出して、クライアントコンピューター100に送信する。
プリンタードライバーデータベース310には図5Bで後述するデータベースが記憶されている。プリンタードライバーデータベース310には様々なプリンターに対応するプリンタードライバーに加え、ドライバー拡張パッケージ303も記憶されている。
ドライバー拡張パッケージ303は、プリンタードライバー配布サービス300から配布されるパッケージの一例である。ドライバー拡張パッケージ303は、ドライバー情報部304とデバイス能力情報部305を持つ。ドライバー情報部304は、プリンターを識別するためのHWID、COID(Compatible ID)、当該パッケージがドライバー拡張パッケージであることを示す情報や、ドライバー拡張パッケージ303のバージョンなどの情報を持つ。デバイス能力情報部305は、対応するプリンター200のデバイス能力情報や禁則情報を持つ。デバイスの能力情報とは、たとえば、プリンター200がカラー印刷に対応しているか、両面印刷に対応しているか等の情報である。ドライバー拡張パッケージ303に含まれる能力情報は、上記の能力情報に加え、ベンダー特有の針なし綴じが可能か否か、中綴じ製本が可能であるか否か、複数種類の用紙を使って印刷する用紙混在印刷か可能であるか否かを含む。
図3Bは、印刷拡張アプリケーション配布サービス400の機能ブロックの一例を表した図である。アプリケーション登録部401、アプリケーション応答部402は、印刷拡張アプリケーション配布サービス400を構成する1または複数台の情報処理装置のCPUがプログラムを実行することで実現される。
印刷拡張アプリケーション配布サービス400は、インターネットを通じたクラウド上に存在するサービスであり、外部サービスやクライアントコンピューター100に印刷拡張アプリケーションの配布を可能とする。尚、印刷拡張アプリケーション配布サービス400は、印刷拡張アプリケーション1052に限らず、他のアプリケーションの配布が可能であっても構わない。
アプリケーション登録部401は、外部サービス及びクライアントコンピューター100から印刷拡張アプリケーション1052の登録指示があった際に、アップロードされたアプリケーションをアプリケーションデータベース410に登録する。
アプリケーション応答部402は、外部サービスやクライアントコンピューター100から印刷拡張アプリケーション1052の取得要求があった場合にアプリケーションデータベース410から該当するアプリケーションを取得し、要求元に送信する。
アプリケーションデータベース410は、ベンダー等が配布し、外部サービスやクライアントコンピューター100から登録要求を受信した印刷設定アプリケーションの情報が登録されるデータベースである。アプリケーションデータベース410に登録される情報の詳細は図5Cを用いて後述する。
本実施例における印刷拡張アプリケーション1052は、設定ファイル部10521と実行ファイル部10522を持つ。設定ファイル部10521は、印刷拡張アプリケーション1052を識別するためのアプリケーション識別情報や、対応するプリンター200を識別するためのHWIDやCOIDなどの情報を持つ。実行ファイル部10522は、印刷拡張アプリケーション1052の実行ファイル部である。実行ファイル部10522は印刷設定UI(User Interface)や印刷実行時に印刷ジョブに対する処理、外部サービスからのプッシュ通知を受け取って、印刷設定画面を表示することが可能である。本実施形態において、印刷拡張アプリケーションの実行ファイル部10522は、印刷データからPDL(Page Description Language)データを生成するモジュールを含んでいる。実行ファイル部10522は印刷拡張アプリケーションが提供する印刷設定画面で設定された印刷設定を反映したPDLデータを生成する。そして、生成したPDLデータをクラウドプリントサービス500に送信する。
印刷拡張アプリケーションでPDLデータを生成することで、クラウドプリントサービスが解釈することのできないIPP等の標準から外れた項目について印刷設定がなされていても、当該印刷設定を反映した印刷データを生成することができる。
図3Cは、本発明の実施形態を示すクラウドプリントサービス500の機能ブロック図である。それぞれの機能ブロックは、クラウドプリントサービス500を構成する1または複数台の情報処理装置のCPUがプログラムを実行することで実現される。
クラウドプリントサービス500は、インターネットを通じたクラウド上に存在するサービスであり、印刷に関連する機能を提供可能とする。本実施形態では、プリンター登録部501、印刷キュー生成部502、プリンターリスト生成部503、探索応答部504、プリンターデータベース510の機能を持つ。さらに、印刷ジョブ管理部505、印刷ジョブ生成部506、印刷ジョブ保存領域511の機能を持つ。また、これらの機能がクラウドプリントサービス500と連携する別のクラウドプリントサービスにあっても構わない。
以下、プリンター200をクラウドプリントサービス500に登録し、プリンター200を用いて印刷を行う場合を例に記載しているが、クラウドプリントサービス500と接続可能なプリンター201やプリンター202でも同様の処理で実現可能である。
プリンター登録部501は、プリンター200からプリンターの登録指示があった場合、印刷キュー生成部502を利用して印刷キューを生成し、生成した印刷キューをプリンターデータベース510にプリンター識別情報と紐づけて登録する。このようにプリンターの印刷キューとプリンター識別情報とが紐づけて登録されていることを、プリンターが登録されていると記載する。ここで登録されたプリンターに対して、様々な属性が付加される場合がある。様々な属性とは、例えば、プリンターの所在地が該当する。
印刷キュー生成部502は、プリンター登録部501の制御に従い、クラウドプリントサービス500上の印刷キューを生成する。クライアントコンピューター100がクラウドプリントサービス500に印刷指示を送信すると、印刷キュー生成部502が生成した印刷キューに印刷ジョブが登録される。
プリンターリスト生成部503は、登録されたプリンターのリストを生成する。クライアントコンピューター100からクラウドプリントサービス500に登録されているプリンターのリストを要求された場合等にプリンターのリストを生成する。
探索応答部504は、クライアントコンピューター100からのクラウドプリントサービス500に対してプリンター探索に基づき、登録されているプリンターの情報をクライアントコンピューター100に応答する。探索応答部504は、探索結果をプリンターリスト生成部503に渡し、プリンターリストを生成させる。そして、プリンターリスト生成部503が生成したプリンターリストをクライアントコンピューター100に返す。
印刷ジョブ管理部505は、クライアントコンピューター100から画像データと印刷設定を受信したり、印刷ジョブ生成部506が生成した印刷ジョブをプリンター200に送信する。また、印刷ジョブ管理部505は、印刷ジョブ生成部506が生成した印刷ジョブを印刷ジョブ保存領域511に保存する。
プリンターデータベース510は、クラウドプリントサービス500に登録されているプリンターの情報を記憶するデータベースである。プリンターデータベース510に記憶される内容は、図5Aで後述する。
はじめに、プリンター200をクラウドプリントサービス500に登録する処理について説明する。
図4は、本発明の実施形態を示すプリンター200をクラウドプリントサービス500に登録する処理のシーケンス図である。本実施形態では、クライアントコンピューター100からプリンター200にアクセスし、プリンター200を操作することでクラウドプリントサービス500にプリンター200の登録要求を送信する。
プリンター200はクラウドプリント機能(クラウドプリントサービスから印刷ジョブを受信して印刷する機能)と、クライアントコンピューター100からプリンター200を操作するためのWebUI機能をサポートしている。WebUI機能とは、UIを生成してネットワーク上に公開する機能である。クライアントコンピューター100はクラウドプリントクライアント機能(クラウドプリントサービスにファイルを送信する機能)と、WebUIを操作するためのWebUIクライアント(例えば、Webブラウザー)をサポートしている。また、クラウドプリントサービス500はインターネット上のクラウドプリントサービスを表す。
ユーザーはクライアントコンピューター100のWebUIクライアントを利用して、プリンター200のWebUIを開き、当該WebUI上で、クラウドプリントサービスにプリンターを登録するためのボタンを選択する。当該選択がされると、S410において、クライアントコンピューター100は、クラウドプリントサービスへの登録要求をプリンター200に送信する。
S411において、プリンター200はS410で受信したクラウドプリントサービスへの登録要求に従って、クラウドプリントサービス500にクラウドプリントサービスへの登録要求を送信する。このように、本実施形態では、クライアントコンピューター100のWebUIクライアントからクラウドプリントサービス500へのプリンター200の登録要求を送信している。プリンター200に付随した入力装置、例えばパネルから操作することで本要求を送信可能としてもよい。このとき、クライアントコンピューター100から要求を行わず、プリンター200がクラウドプリントサービス500にプリンターの登録要求を送信する。
S411において、クラウドプリントサービス500に送信されるクラウドプリントサービス登録要求には、プリンター200の情報が付随している。プリンター200の情報には、プリンター200の名称、プリンターの機種を識別する情報(HWID)、インクジェットプリンターやレーザープリンターなどのプリンターの種別を識別するためのCOIDが含まれる。さらに、プリンターの情報には、IPアドレス情報やIPPなどで標準化されている機能に関する能力情報ファイルが含まれる。
クラウドプリントサービス500は、S411において登録要求を受信すると、S412において、印刷キュー生成部502に、プリンター200に印刷ジョブを送信するための印刷キューを作成させる。プリンター登録部501は、プリンターデータベース510にプリンターの情報と能力情報を登録し、登録要求がなされたプリンターのレコードを生成する。さらに印刷キュー生成部502が印刷キューの生成を行う。この印刷キューは、受信したプリンター200の情報である、プリンターの名称(デバイス名)、プリンターの機種を識別するHWID、COIDや、プリンターのIPアドレスを利用して作成される。
次に、S413にて、クラウドプリントサービス500は、プリンタードライバー配布サービス300にドライバー拡張パッケージ303のダウンロード要求を送信する。これは、クラウドプリントサービス500に登録されたプリンターに対応するドライバー拡張パッケージ303を受信するための要求である。クラウドプリントサービス500は、ドライバー拡張パッケージ303のダウンロード要求とプリンター200のHWID、COIDをプリンタードライバー配布サービス300に送信する。
S414にて、プリンタードライバー配布サービス300は、受信したHWID及びCOIDに基づき、該当するドライバー拡張パッケージ303をクラウドプリントサービス500に送信する。プリンタードライバー配布サービス300は、拡張フラグがTRUEのパッケージであって、受信したHWIDに一致するドライバー拡張パッケージを図5Bで示すプリンタードライバーデータベースから特定する。拡張フラグがTRUEであるが、受信したHWIDに一致するドライバー拡張パッケージが特定されない場合、プリンタードライバー配布サービス300は拡張フラグがTRUEであって、受信したCOIDに一致するドライバー拡張パッケージを特定する。そして、プリンタードライバー配布サービス300は、クラウドプリントサービス500に特定されたドライバー拡張パッケージを送信する。なお、HWIDのみでドライバー拡張パッケージが特定可能である場合、S413において、HWIDのみをプリンタードライバー配布サービス300に送信するとしてもよい。
ここで、図5Bを用いてプリンタードライバーデータベースについて説明する。図5Bは、プリンタードライバー配布サービス300が保持するプリンタードライバーデータベース310の一例である。パッケージ名は、登録時にドライバー情報部304から取得したパッケージの名称を指す。HWIDはプリンター200の機種を識別する際に用いる識別情報(機種固有の識別情報)を指す。COIDは、当該ドライバーを使用するプリンターのカテゴリーを識別する識別情報である。パッケージは、ドライバー拡張パッケージ303を含むパッケージの名称を指す。パッケージは当該レコードに対応するドライバーまたはドライバー拡張パッケージを特定することのできる情報であればファイルパス等の情報であってもよい。拡張は、ドライバー拡張パッケージ303が拡張ファイルかどうかを示している。拡張が“FALSE”の場合、当該パッケージは拡張パッケージではなくプリンタードライバーである。一方で、拡張が“TRUE”の場合、当該パッケージはプリンタードライバーではなく、ドライバーを拡張するパッケージである。アプリケーション識別子は、当該ドライバー拡張パッケージの記憶する能力情報を使って印刷設定画面を拡張する際に使用するアプリケーションの識別情報である。本実施形態では、ドライバー拡張パッケージのみがアプリケーション識別子を有しているが、プリンタードライバーがアプリケーション識別子を有していてもよい。
なお、図5Bに示すプリンタードライバーデータベースはプリンタードライバー登録部301によって更新される。プリンタードライバー登録部301は、パッケージをプリンタードライバーデータベース310に登録する際に、ドライバー情報部304を解析する。プリンタードライバー登録部301は、パッケージ名、HWIDやCOID、ドライバー拡張パッケージであるかどうかの情報を取得し、ドライバー拡張パッケージ303と共にプリンタードライバーデータベース310に登録をする。
S415にて、クラウドプリントサービス500は、ダウンロードされたドライバー拡張パッケージ303のデバイス能力情報部305を解析し、印刷キューを拡張する。クラウドプリントサービス500は、ドライバー拡張パッケージ303のデバイス能力情報部305からプリンター200の能力情報を取得する。そして、クラウドプリントサービス500は、プリンターデータベース510のプリンター情報の印刷キューに対応するプリンターの能力情報を更新する。S415において、クラウドプリントサービス500は、印刷キューに対応づけられている能力情報をドライバー拡張パッケージから取得された能力情報で書き換える。なお、クラウドプリントサービス500が、ドライバー拡張パッケージから取得された能力情報のうち、印刷キューに対応づけられていない設定項目に関する能力情報を印刷キューに対応する能力情報に追加するとしてもよい。また、クラウドプリントサービス500が、プリンター200からプリンター200のハードウェア構成を示す情報を取得し、ドライバー拡張パッケージに含まれる能力情報とハードウェア構成情報から能力情報を決定するとしてもよい。
上記の処理により、クラウドプリントサービス500に登録されたプリンター200に対してベンダー特有のデバイス能力情報で印刷キューが拡張される。そして、S416にて、拡張されたプリンター200の情報でプリンターデータベース510を更新する。上記の処理により、ドライバー拡張パッケージにより拡張された能力情報が印刷キューに対応する能力情報としてプリンターデータベース510に登録される。
図5Aは、クラウドプリントサービス500が保持するプリンターデータベース510の一例である。デバイス名は、登録時にプリンター200から取得したプリンターの名称(デバイス名)を指す。HWIDはプリンター200の機種を識別する際に用いる識別子(機種固有の識別子)を指す。COIDはプリンター200がインクジェットプリンターであるかレーザービームプリンターであるかなどプリンターのカテゴリーを識別するための識別情報である。IPアドレスは、接続先のプリンターのIPアドレスを指す。パッケージは、当該プリンターに対応する印刷キューの拡張に使われるドライバー拡張パッケージ303のパッケージ名を指す。なお、拡張されていない場合には、nullとなる。さらに、不図示であるが、デバイスの能力情報などがJSON(Javascript Object Notation)形式でデータベースに登録される。プリンターの能力情報がドライバー拡張パッケージにより拡張されている場合は、拡張後の能力情報が記憶されている。デバイスの能力情報が記憶される形式は、JSONに限らず他のデータフォーマットであっても構わない。また、図5Aがプリンターの情報と当該プリンターを使用することのできるユーザーの情報を対応づけて記憶するとしてもよい。
図9は、印刷キューに対応づけて記憶される能力情報の一例である。一例として、能力情報は、JSON形式になっており、各設定は機能を表している。また、各機能は配列形式で設定できる選択肢を持つ。
901はIPP等で定義された標準的な能力情報を示している。“Duplex”は、両面機能に関する設定項目であり、当該設定項目の選択肢として両面印刷を表す“Duplex”と片面印刷を表す“One-Sided”を持つことを示している。“Color”は、カラー印刷に関する設定項目であり、選択肢として白黒印刷を示す“Mono”とカラー印刷を示す“Color”を持つことを示している。“Orientation”は印刷に使用する用紙の向きに関する設定項目であり、選択肢として縦長方向を示す“Portrait”と横長方向を示す”Landscape“を持つことを示している。901に記載の能力情報は、プリンター200からクラウドプリントサービス500に提供することのできるIPP等で定義された標準的な設定項目、選択肢である。ドライバー拡張パッケージを用いてデバイスの能力情報を拡張することで、901に記載のIPP等で定義された標準的な設定項目であっても、ベンダー固有の選択肢を持つことができる。たとえば、用紙の綴じに関する設定項目である”Staple“を拡張することで、標準的な選択肢である左上一か所綴じを示す”Staple left top“に加えて、中綴じを示す”Saddle Stitch“を設定することができるようになる。
902は、ドライバー拡張パッケージ303で拡張された能力情報であり、例えばベンダー固有の設定項目に関する能力情報である。機能がExtension_Setting1、Extension_Setting2となっており、その選択肢としてExntension_option1,Extension_option2となっている。Extension settingとしては、たとえば、針なし綴じに関する設定や、複数種類の用紙が一つのジョブに混在する用紙混在に関する設定などがある。用紙混在機能であれば、“Extension_Setting1”に用紙混在を示す文字列が入る。そして、“Exntension_option1”に例えばA3とA4の用紙を使用することを示す選択肢を示す文字列、“Exntension_option2”B4とB5の用紙を使用することを示す選択肢を示す文字列が入る。印刷拡張アプリケーションが図9に示すファイルを参照することで、ベンダー固有の設定項目を設定することのできる印刷設定画面の提供が可能となる。
図4に説明を戻す。S417において、クラウドプリントサービス500は、プリンターデータベース510への登録が完了すると、クラウドプリント登録用の登録URLを含むクラウドプリントサービス登録要求応答および登録URL提示要求をプリンター200に送信する。
S418において、プリンター200は、クラウドプリントサービス登録要求応答および登録URL提示要求を受信し、プリンター200は登録URL情報を出力する。S418において、プリンター200はモニター110にURLを表示する、もしくは登録URL情報が記載された紙を印刷し、ユーザーに登録URLを通知する。また、プリンター200がクライアントコンピューター100に対して、WebUI経由で登録URLを通知してもよい。
S419において、ユーザーは、プリンター200から提示された登録URLで示されるクラウドプリントサービス500にアクセスする。その際は、クラウドプリントサービス500にアクセス可能なクラウドアカウントにログインする必要があるため、ユーザーIDとPASSWORDの入力が必要となる。
クラウドプリントサービス500は、クラウドアカウントとプリンター情報を含む登録URLから、ユーザーとプリンター200を紐づける。紐づける方法として、例えば、プリンター情報とユーザートークンを紐づける方法がある。ただし、その方法に限定はしない。そして、S420にて、クラウドプリントサービス500は、クラウドプリントサービス500の情報を含めたユーザートークンをプリンター200に送信し、プリンター200のクラウドプリントサービス500への登録処理を終了する。プリンター200は、以降当該ユーザートークンを用いてクラウドプリントサービス500にアクセスする。
次に、クラウドプリントサービス500に登録されたプリンター200の印刷キューをクライアントコンピューター100に生成し、印刷拡張アプリケーションをインストールするときの処理を説明する。
図6は、本発明の実施形態を示すクライアントコンピューター100に印刷拡張アプリケーション1052をインストールする処理のシーケンス図である。
クライアントコンピューター100では、クラウドプリントを利用してプリンター200に出力する場合、クラウドプリントサービス500に対して印刷ジョブを送信する。そのため、クライアントコンピューター100に、クラウドプリントサービス500に対して印刷ジョブを送信する印刷キューを生成する必要がある。
本実施形態では、オペレーティングシステム1053が標準機能としてもつプリンター探索機能を利用して、クラウドプリントサービス500に登録されたプリンターの印刷キューを生成する。通常、プリンター探索を行う場合、同一イントラネット上にあるプリンターが対象となる。例えば、図2においてクライアントコンピューター100がプリンター探索を行うとプリンター200を見つけることはできるが、イントラネットを超えたプリンター201、プリンター202を見つけることはできない。本実施形態では、クライアントコンピューター100はクラウドプリントサービス500へのアクセスが可能である。クラウドプリントサービス500にプリンターが登録されている場合にはプリンター探索で、クラウドプリントサービス500に登録されているプリンターを見つけることができる。本実施形態では、前述したプリンター200に加え、プリンター201、プリンター202がクラウドプリントサービス500に登録されており、OSのプリンター探索機能でこれらのプリンターも見つけることができる。
クライアントコンピューター100は、前述したオペレーティングシステム1053の標準機能であるプリンター探索を行う(S610)。S610において、クライアントコンピューター100は、クライアントコンピューター100と同じイントラネット上にいるプリンターに加えて、クラウドプリントサービス500に登録されているプリンターを探索する。クライアントコンピューター100はクラウドプリントサービスにアクセスし、クラウドプリントサービス上に登録されているプリンター情報のリスト要求をクラウドプリントサービス500に送信する。
クラウドプリントサービス500の探索応答部504は、プリンター探索の情報を受信すると、クライアントコンピューター100に対して利用可能なプリンターを提示する。そのために、クラウドプリントサービス500は、クライアントコンピューター100からクラウドプリントサービス500にアクセスしているユーザーが使用することのできるプリンター情報を含むプリンターリストを生成する(S611)。このプリンター情報は、前述したプリンターの名称(デバイス名)、プリンターの機種を識別するHWID、プリンターのIPアドレスである。プリンター情報を含むプリンターリスト作成は、クラウドプリントサービス500のプリンターリスト生成部503がプリンターデータベース510の情報を利用して作成する。
クラウドプリントサービス500は、クライアントコンピューター100に対して、作成したプリンターリストを返答する(S612)。この際、クラウドプリントサービス500はプリンターリストに含まれるプリンター情報として図5に記載されているプリンター識別情報であるHWID、COID等の情報も付随して送信する。クライアントコンピューター100は、プリンターリストに基づきユーザーが利用可能なプリンターの選択画面をモニター110に表示させる。ユーザーは、提示されたプリンター一覧から使用したいプリンターを選択する。
クライアントコンピューター100のオペレーティングシステム1053が、クラウドプリントサービス500で利用されるクラウドドライバー1050をインストールし、選択されたプリンターの印刷キュー生成を行う(S613)。クライアントコンピューター100は、クラウドプリントサービス500からユーザーにより選択されたプリンターの情報を取得し、当該情報を使って印刷キューを生成する。クライアントコンピューター100は、クラウドプリントサービス500から取得したHWID、COID、IPアドレス、プリンターの能力情報に基づき印刷キューを生成する。なお、すでにクライアントコンピューター100にクラウドドライバー1050がインストールされている場合、クライアントコンピューター100はクラウドドライバー1050のインストールを行わない。クライアントコンピューター100はすでにインストールされているクラウドドライバー1050とクラウドプリントサービス500から取得したプリンターの情報を用いて、印刷キューを生成する。
クライアントコンピューター100のオペレーティングシステム1053は、印刷キューの生成に成功すると、プリンタードライバー配布サービス300に、ドライバー拡張パッケージ303のダウンロード要求を行う(S614)。クライアントコンピューター100は、プリンタードライバー配布サービス300にHWID、COIDとドライバー拡張パッケージの取得要求を送信する。なお、クライアントコンピューター100は、HWIDとCOIDのいずれかのみをクラウドプリントサービス500に送信するとしてもよい。
プリンタードライバー配布サービス300は、ダウンロード要求を受信すると、クライアントコンピューター100に対してダウンロード処理を行う(S615)。プリンタードライバー配布サービス300は、プリンタードライバーデータベース310に登録されているドライバー拡張パッケージから受信したHWIDに一致するパッケージを特定し、クライアントコンピューター100に送信する。ドライバー拡張パッケージのうち受信したHWIDに一致するパッケージがない場合、プリンタードライバー配布サービス300は、受信したCOIDに一致するドライバー拡張パッケージを特定する。そして、プリンタードライバー配布サービス300は、特定したドライバー拡張パッケージをクライアントコンピューター100に送信する。
クライアントコンピューター100のオペレーティングシステム1053は、ドライバー拡張パッケージ303のインストールを行い、前述のクラウドドライバー1050を基に生成された印刷キューの能力情報の拡張を行う(S616)。クライアントコンピューターは、印刷キューに対応する能力情報をドライバー拡張パッケージのデバイス能力情報で更新する。即ち、クラウドプリントサービス500に登録されたプリンター200に対してベンダー特有のデバイス能力で印刷キューを拡張する。
次に、クライアントコンピューター100は、印刷拡張アプリケーション配布サービス400に対して、ダウンロード要求を送信する(S617)。その際、オペレーティングシステム1053は、前述の印刷拡張アプリケーション1052の識別子情報を基に、対象のプリンターと紐づく印刷拡張アプリケーション1052のダウンロード要求を行う。本実施形態では、印刷拡張アプリケーション配布サービス400において、ドライバー拡張パッケージ303の印刷拡張アプリケーション1052の識別子情報と印刷拡張アプリケーション1052は1対1で紐づいている。
また、印刷拡張アプリケーション配布サービス400において、印刷拡張アプリケーション1052の識別子情報とプリンター情報に含まれるHWIDの紐づけ情報を記載したメタデータを保存しておいてもよい。その場合、そのメタデータを利用して、適切な印刷拡張アプリケーション1052をダウンロードする仕組みとなる。
印刷拡張アプリケーション配布サービス400は、ダウンロード要求を受信すると、クライアントコンピューター100に対してダウンロード処理を行う(S618)。アプリケーション応答部402は、クライアントコンピューター100から通知されたアプリケーション識別子に対応するアプリケーションを図5Cに示すアプリケーションデータベース410から特定する。アプリケーション応答部402は特定した印刷拡張アプリケーションをクライアントコンピューターに送信する。クライアントコンピューター100は、印刷拡張アプリケーション1052のインストールを行う(S619)。
図5Cは、印刷拡張アプリケーション配布サービス400が保持するアプリケーションデータベース410の一例である。アプリケーション名は、印刷拡張アプリケーション1052を含む当該データベースに登録されたアプリケーションの名称である。アプリケーション識別子は、印刷拡張アプリケーション1052を含むアプリケーションを識別するための情報である。アプリパッケージは、印刷拡張アプリケーション1052を含むアプリケーションの記憶されたファイルパスである。アプリパッケージは登録されている印刷拡張アプリケーションのパッケージを特定することのできる情報であれば、アプリケーションの記憶されたフォルダ名等であってもよい。
アプリケーションデータベース410は、アプリケーション登録部401により更新される。アプリケーション登録部401は、設定ファイル部10521を解析し、アプリケーション名とアプリケーション識別子を取得する。アプリケーション登録部401は、印刷拡張アプリケーション1052と共にアプリケーションデータベース410に上記の情報を登録する。
インストール後、クライアントコンピューター100において印刷拡張アプリケーション1052は、プリンター200と1対1で紐づいている。従って、プリンター200において、プリンター200の機種情報や印刷設定情報を保持していることにより、ユーザーに対して適切な印刷設定UIを提示することが可能となる。もしくは、印刷拡張アプリケーション1052が、クラウドプリントサービス500と通信し、対象の機種情報や印刷設定情報を取得し、その情報を用いてUIを提供してもよい。ユーザーは、印刷拡張アプリケーション1052のインストールが完了すると、詳細な印刷設定変更が利用可能となる。
なお、本実施形態では、クライアントコンピューター100に印刷キューを生成した後、クライアントコンピューターがプリンタードライバー配布サービスにアクセスし、ドライバー拡張パッケージを取得した。クライアントコンピューター100がクラウドプリントサービス500から拡張後の印刷キューの情報を取得し、クライアントコンピューター上での印刷キューの拡張を行わないとしてもよい。この場合、クライアントコンピューター100はS614~S616を省略する。また、クライアントコンピューター100がクラウドプリントサービス500から拡張後の印刷キューの情報を取得したうえで、S614~S616に記載の処理を実行するとしてもよい。
次に本実施形態において、クライアントコンピューター100で印刷を実行する場合の操作について説明する。
図8Aは、クライアントコンピューター100にOS1503が表示する印刷コモンダイアログの一例を示す図である。領域801はクラウドプリントサービス500に登録されたプリンターのプリンターキューであって、印刷に用いられる印刷キューを選択する領域である。ユーザーが印刷コモンダイアログの領域801を選択すると、クラウドプリントサービス500に登録されている印刷キューのリストが表示される。ユーザーは表示された印刷キューから印刷に使用する印刷キューを選択する。
詳細設定ボタン800は、印刷拡張アプリケーション1052を起動させるためのボタンである。ユーザーが詳細設定ボタン800を選択すると、図8Bで後述する印刷設定画面が表示される。
“印刷”ボタン802は、ユーザーが印刷開始を指示するためのボタンである。ユーザーが“印刷”ボタン802を選択すると、クライアントコンピューター100は、画像データと現在設定されている印刷設定をクラウドプリントサービス500に送信する。OS1053が表示させる印刷コモンダイアログにて印刷が指示された場合、クラウドドライバー1050は、画像データと印刷設定をクラウドプリントサービス500に送信する。クラウドプリントサービス500の印刷ジョブ生成部506は、クライアントコンピューター100から受信した画像データと印刷設定に基づきPDLデータを生成し、印刷ジョブとして印刷ジョブ保存領域511にジョブを格納する。
図8Bは、図8Aにおいて詳細設定ボタン800が選択された場合に、クライアントコンピューター100に表示される画面である。ユーザーが詳細設定ボタン800を選択すると、OS1053は選択されている印刷キューに対応する印刷拡張アプリケーション1052を特定する。OS1053は特定された印刷拡張アプリケーション1052を起動する。起動された印刷拡張アプリケーション1052は、図8Bに示す印刷設定画面を表示する。
領域803は、印刷設定が表示される領域である。領域803にはIPP等で標準的に定められた用紙向きや印刷部数、カラーモードに加え、製本印刷の設定や1つのジョブに複数の用紙サイズの用紙を使用する用紙混在の設定等、ベンダー固有の設定項目を設定することができる。
804は、拡張設定であり、ドライバー拡張パッケージ303で拡張された能力情報によって、生成された操作部である。805は、表示されている画面を切り替え、設定する項目を変更するための領域である。
“OK”ボタン806は、図8Bに示す印刷設定画面で設定された印刷設定を確定し、図8Aに示す印刷コモンダイアログに戻るためのボタンである。“OK”ボタンが選択されると、図8Bに示す印刷設定画面で設定された印刷設定がOS1053に渡される。
“印刷”ボタン807は、印刷拡張アプリケーション1052が、クラウドプリントサービス500に印刷指示をするためのボタンである。“印刷”ボタン807が選択された場合、印刷拡張アプリケーション1052は、印刷拡張アプリケーション1052の実行ファイル部10522を実行し、設定されている印刷設定を反映したPDLデータを生成する。そして、印刷拡張アプリケーション1052は、生成したPDLデータと印刷設定をクラウドプリントサービス500に送信する。印刷拡張アプリケーション1052にてPDLデータが生成されている場合、クラウドプリントサービス500はPDLデータの生成を行わずにPDLデータと印刷設定を印刷装置に送信する。
上記のように、第1の実施形態では、印刷拡張アプリケーションにてPDLデータを生成する。このようにすることで、印刷拡張アプリケーション1052による設定を反映したPDLデータをクラウドプリントサービス500が生成しなくても、印刷拡張アプリケーション1052による設定を反映したPDLデータを印刷装置に送信することができる。
図11を用いて、本実施形態において図8Aに示す印刷コモンダイアログからクラウドプリントサービス500に印刷を指示するときの処理を説明する。図11はOS1053がコモンダイアログを表示させた後に開始される。
OS1053は詳細設定ボタン800の選択を受け付ける(S1301)。OS1053は、印刷コモンダイアログで選択されている印刷キューに対応する印刷拡張アプリケーションを起動する(S1302)。印刷拡張アプリケーション1052は図8Bに示す印刷設定画面を表示する(S1303)。印刷拡張アプリケーション1052はユーザーから印刷設定の変更を受け付ける。印刷拡張アプリケーション1052は、“OK”ボタン805の選択を受け付ける(S1304)。ユーザーが“OK”ボタン805を選択した場合、印刷拡張アプリケーション1052は、OS1053に設定されている印刷設定を送信する(S1305)。OS1053は、印刷拡張アプリケーション1052から印刷設定を受信して、印刷コモンダイアログを表示する。ユーザーが印刷コモンダイアログの“印刷”ボタン802を選択する(S1306)。OS1053は印刷拡張アプリケーション1052から受信した印刷設定と印刷される画像データを印刷データとしてクラウドプリントサービス500に送信する(S1307)。
クラウドプリントサービス500は、クライアントコンピューター100のOS1053から画像データと印刷設定を受信し、受信した画像データと印刷設定に基づきPDLデータを生成する(S1308)。なお、ここではクラウドプリントサービス500が対応することのできる印刷設定のみが反映されたPDLデータが生成される。クラウドプリントサービス500は生成したPDLデータを印刷データとする印刷ジョブを印刷ジョブ保存領域511に保存する(S1309)。
上記のように、クラウドプリントサービス500でPDLデータを生成する場合、クラウドプリントサービス500が対応することのできる印刷設定しか、PDLデータに反映することができない。クラウドプリントサービス500が対応できる印刷設定とは、たとえばカラー、モノクロ印刷に関する設定や、両面印刷に関する設定などである。S1307で送信された印刷設定のうち、クラウドプリントサービス500が対応することのできない印刷設定についてはPDLデータに反映されず、プリンターによる出力にも反映されなくなってしまう。そこで、本実施形態では、印刷拡張アプリケーションを用いて印刷設定がなされた場合、図12のように印刷拡張アプリケーション1052で印刷を指示し、印刷拡張アプリケーションでPDLデータの生成を行う。このようにすることで、印刷拡張アプリケーションでクラウドプリントサービスが対応することのできない印刷設定が設定された場合であっても、当該印刷設定が反映されたPDLデータを用いて印刷をすることができる。本実施例において、クラウドプリントサービスが対応することができない印刷設定とは、例えば、複数ページを1枚の用紙に印刷する集約設定や、印刷時に記録材を節約するモードの設定、製本やスタンプの設定などである。
クライアントコンピューター100のオペレーティングシステム1053は、ユーザーから詳細設定ボタン800の選択を受け付ける(S1010)。OS1053は、選択されている印刷キューに対応する印刷拡張アプリケーション1052を起動する(S1011)。
印刷拡張アプリケーション1052は、ユーザーから設定変更を受け付け、“印刷”ボタン807の選択を受け付ける(S1012)。印刷拡張アプリケーション1052は、OS1053に対して、印刷する印刷データの取得要求を送信する(S1013)。そして、オペレーティングシステム1053は、画像データを印刷データとして印刷拡張アプリケーション1052に送信する(S1014)。印刷拡張アプリケーション1052は、印刷データとして受信された画像データと印刷設定をベンダー独自のPDLデータに変換する(S1015)。印刷拡張アプリケーション1052により生成されるPDLデータは、プリンター200が解析可能なデータ形式であり、プリンター200が搭載するすべての機能が実現可能な印刷コマンドを有しているものである。そのため、上記した印刷設定UIで変更した様々な機能を印刷コマンドに変換してPDLデータとして生成することができる。
そして、印刷拡張アプリケーション1052は、変換したPDLデータを印刷データとしてクラウドプリントサービス500に送信する(S1016)。なお、印刷拡張アプリケーション1052は、PDLデータとともに印刷設定を印刷データとしてクラウドプリントサービス500に送信するとしてもよい。また、印刷拡張アプリケーション1052は所定のAPI(Application Programming Interface)を使ってPDLデータをクラウドプリントサービス500に送信する。
クラウドプリントサービス500は、印刷拡張アプリケーション1052からPDLデータを含む印刷データを受信し、受信したPDLデータを含む印刷データを印刷ジョブとして印刷ジョブ管理部505が印刷ジョブ保存領域511に登録する(S1017)。
クラウドプリントサービス500が印刷拡張アプリケーション1052の生成したPDLデータを受信した場合、クラウドプリントサービス500の印刷ジョブ生成部506は動作しない。印刷ジョブ生成部506の処理は、プリンター200が解析できない形式のデータがクラウドプリントサービス500に送信された際、適切な形に変換する処理である。そのため、本実施形態のように、印刷拡張アプリケーションが生成したPDLデータを印刷ジョブの形式に変換しているものに対して追加の変換処理を行う必要はない。クラウドプリントサービス500は印刷拡張アプリケーション1052から受信した所定のAPIに基づき、受信したPDLデータに対してデータの変換を行わないよう制御する。
なお、クラウドプリントサービス500が印刷拡張アプリケーション1052から受信したデータや印刷設定を解析し、受信した印刷データをPDLデータに変換する処理を行うか否かを判定するとしてもよい。たとえば、印刷データの送信元が印刷拡張アプリケーションである場合、クラウドプリントサービス500が受信した印刷データをPDLデータに変換する処理を行わないとしてもよい。一方で、印刷データの送信元がOS1053である場合、受信した印刷データをPDLデータに変換する処理を行うとしてもよい。
このように、クラウドプリントサービス500は、受信したデータを変換すべきかどうかを判断する処理を有している。また、印刷拡張アプリケーション1052が、クラウドプリントサービス500に対してジョブ変換処理を行わないように指示しても良い。本実施形態により、プリンター200が搭載する機能を実現可能とするPDLデータをクラウドプリントサービス500が管理することができる。
なお、本実施形態では、OS1053が提供する印刷コモンダイアログ、印刷拡張アプリケーション1052が提供する印刷設定画面の両方の画面からクラウドプリントサービス500を用いた印刷開始指示をすることができるとした。そして、印刷コモンダイアログから印刷を指示するか、印刷拡張アプリケーションから印刷を指示するかによって、クラウトプリントサービスでPDLデータを生成するか、印刷拡張アプリケーションにおいてPDLデータを生成するかを切り替えた。
OS1053が提供する印刷コモンダイアログの“印刷”ボタン802を選択すると、自動的に印刷拡張アプリケーション1052が起動し、画像データが印刷拡張アプリケーション1052に渡され、図8Bに示す印刷設定画面が表示されるとしてもよい。ユーザーは必要に応じて図8Bに示す印刷設定画面で印刷の詳細設定を行う。ユーザーが“印刷”ボタン807を選択すると、印刷拡張アプリケーション1052が取得した画像データと印刷設定に基づきPDLデータを生成し、生成したPDLデータと印刷設定をクラウドプリントサービス500に送信する。このとき、印刷拡張アプリケーション1052は所定のAPIを使用し、クラウドプリントサービス500がPDLデータの生成をしないよう制御する。なお、上記の変形例の場合には、図8Aの詳細設定ボタン800および図8Bの“OK”ボタン805はなくてもよいものとする。また、図8Aに示す印刷コモンダイアログには“印刷”ボタン802がなく、必ずユーザーが“詳細設定”ボタン800を選択し、印刷拡張アプリケーションを起動してから、印刷拡張アプリケーションにおいて印刷を指示するとしてもよい。この場合は、印刷設定の内容によらず、印刷拡張アプリケーションにてPDLデータが生成される。
次に、プリンター200からクラウドプリントサービス500に登録された印刷ジョブを印刷する処理について説明する。
ユーザーがプリンター200にログインすると、プリンター200はクラウドプリントサービス500の印刷キューに登録された印刷ジョブの書誌情報の取得要求をクラウドプリントサービス500に送信する。ここで取得される書誌情報とは、画像データのファイル名はカラーモード印刷部数、印刷ジョブの生成日時など、プリンター200のUI表示に必要な情報である。
クラウドプリントサービス500は、印刷キューに記憶された印刷ジョブの書誌情報から印刷可能ジョブリストを生成する。そして、クラウドプリントサービス500は、プリンター200に生成した印刷可能ジョブリストを送信する。クラウドプリントサービス500が送付した印刷可能ジョブリストをプリンター200が受信すると、その印刷ジョブのリストが操作パネルに表示される。図7は、クラウドプリントサービス500から受信した印刷可能ジョブリストを表示した操作パネルの一例である。“aaa.doc”~”jjj.pdf”はクラウドプリントサービスにある印刷ジョブである。ユーザーはその操作パネルから所望する印刷ジョブを選択しプリントボタン701を押下して印刷を実行する。印刷実行を受け付けたプリンター200は、クラウドプリントサービス500に対して印刷ジョブの取得要求を行う。なお、この取得要求には、取得したい印刷ジョブのID、即ち、印刷ジョブIDが含まれている。以下、図10に示す処理を実行することで印刷が実現される。
図10は、本実施形態を示すクラウドプリントサービス500にプリンター200から印刷ジョブの取得要求を受信した場合に、クラウドプリントサービス500が行う処理のフローチャート図である。特に明記しない場合、本処理はクラウドプリントサービス500の各処理部で行われる。まず、印刷ジョブ管理部505は、プリンター200から印刷ジョブ取得要求(出力対象の印刷ジョブの印刷ジョブIDを含む)を受信する(S1001)。
要求を受信した印刷ジョブ管理部505は、指定された印刷ジョブを印刷ジョブ保存領域511から特定する。印刷ジョブ管理部505は、特定された印刷ジョブを印刷ジョブ生成部506に渡し、出力先のプリンター200に適した印刷ジョブを生成する(S1002)。
印刷ジョブ管理部505は生成された印刷ジョブを印刷ジョブ生成部506から取得し、印刷要求元のプリンター200に印刷ジョブを送信する(S1003)。
本実施例では、ユーザーがプリンター200を操作し、選択した印刷ジョブをプリンター200がクラウドプリントサービス500から取得するとした。プリンター200が定期的にクラウドプリントサービス500にアクセスし、プリンター200の印刷キューと紐づいて管理される印刷ジョブをクラウドプリントサービス500から取得するとしてもよい。
以上の処理により、クラウドプリントサービス500に登録された印刷ジョブが実行される。
以上の構成により、クライアントコンピューター100において、クラウドプリントサービス500が対応することのできない印刷設定がなされても、当該印刷設定を反映した印刷データを印刷装置に送信することができる。
<第2の実施形態>
第1の実施形態では、クライアントコンピューター100の印刷拡張アプリケーション1052で印刷データを印刷装置に対応する印刷データに変換するとした。オペレーティングシステム1053の仕様上、印刷拡張アプリケーション1052がインストールできない環境の場合には実現することができないことが考えられる。第2の実施形態では、印刷拡張アプリケーション1052が存在しない場合でも、プリンター200が搭載するすべての機能を実現する手段について説明する。
第2の実施形態では、クラウドプリントサービス500がクライアントコンピューター100から印刷データを受信し、外部のサーバシステムにて印刷装置に対応するPDLデータを生成する場合を説明する。第2の実施形態のようにすることで、クライアントコンピューター100や印刷拡張アプリケーション1052が送信先となる印刷装置に則した印刷データの生成を行うことができない場合でも、印刷装置に則した印刷データの生成を行うことができる。
クライアントコンピューターのハードウェア構成は、第1の実施形態と同様であるため説明を省略する。
第2の実施形態におけるネットワーク構成の一例について図14を用いて説明する。図14について第1の実施形態と同様の構成については、第1の実施形態と同様の符号を記載し、異なる構成のみ説明する。
PDL変換サービス600は、プリンター200が解析可能なプリンター200の機能であって、クラウドプリントサービス500では解釈することのできない機能を実現するPDLデータを生成するサービスのことを指す。PDL変換サービス600は、クラウドプリントサービス500に用意された拡張領域に対して登録するモジュールで実現しても良いし、別のクラウドサービスとして提供され、クラウドプリントサービス500と連携することで実現しても良い。クラウドプリントサービス500に対して、送信先としてPDL変換サービス600を設定しておくことで、クラウドプリントサービス500が印刷データを受信した後にPDL変換サービス600にデータを送信することが可能となる。
第2の実施形態において、プリンター200の登録および各コンポーネントにおける印刷キューの生成、ユーザーの印刷指示手段は第1の実施形態と同じであるため省略する。以下、ユーザーが印刷指示を行うことでクラウドプリントサービス500に印刷データを送信するところから説明する。
なお、第1の実施形態では、印刷コモンダイアログおよび印刷拡張アプリケーションが提供する印刷設定画面の両方から印刷指示を行えるとした。そして、印刷コモンダイアログで印刷指示がなされた場合は、オペレーションシステムがクラウドプリントサービス500に印刷データを送信した。そして、印刷拡張アプリケーションが提供する画面で印刷指示がなされた場合には印刷拡張アプリケーションが印刷データをクラウドプリントサービス500に送信するとした。第2の実施形態ではいずれの画面で印刷が指示された場合も、OS1053がクラウドプリントサービス500に印刷データを送信する。
図13は、第2の実施形態を示すクラウドプリントサービス500に印刷データを送信およびPDL変換サービス600を利用したPDL変換処理のシーケンス図である。
クライアントコンピューター100のオペレーティングシステム1053は、ユーザーから印刷指示を受け付ける(S1110)。OS1053は、クラウドプリントサービス500に画像データと印刷設定を含む印刷データを送信する(S1111)。
クラウドプリントサービス500は、印刷データを受信すると、あらかじめ送信先として設定されたPDL変換サービス600に対して印刷データを送信する(S1112)。
PDL変換サービス600は、クラウドプリントサービス500から印刷データを受信すると、プリンター200のすべての機能を実現可能とするPDLデータに変換する(S1113)。PDL変換サービス600は、変換したPDLデータをクラウドプリントサービス500に送信する(S1114)。なお、S1114において、PDL変換サービス600がPDLデータと印刷設定を印刷データの形でクラウドプリントサービス500に送信するとする。印刷ジョブ管理部505は受信したPDLデータを含む印刷データを印刷ジョブとして印刷ジョブ保存領域511に登録する(S1115)。本実施形態により、プリンター200が搭載する機能を実現可能なPDLデータをクラウドプリントサービス500が管理することができる。
上記の方法でクラウドプリントサービス500の印刷ジョブ保存領域511に記憶された印刷ジョブは第1の実施形態と同様の方法でプリンターから読み出され印刷される。
また、本実施形態ではクラウドプリントサービス500からPDL変換サービス600を利用してPDL変換処理を行っているが、別のタイミングで実現しても良い。例えば、クライアントコンピューター100からクラウドプリントサービス500を介さずにPDL変換サービス600に対して印刷データを送信し、PDL変換を行う。そして、PDL変換後にPDL変換サービス600がクラウドプリントサービス500に対してPDLデータと印刷設定を含む印刷データを送信して印刷ジョブを登録するとしてもよい。
上記手段により、印刷拡張アプリケーション1052がインストールできない環境においても、オペレーティングシステムによって提供された標準印刷システムを用いた印刷にて、プリンターが搭載するすべての機能を実現することができる。
<第3の実施形態>
第3の実施形態では、クラウドサービス500にベンダー固有のドライバパッケージをインストールし、プリンタードライバーで印刷する方法について説明する。ドライバパッケージがインストールされたクラウドサービス500は、クライアント端末から受信した印刷データをドライバーで変換する。このようにすることで、ベンダー固有の印刷設定が反映された印刷データを生成することができる。
第3の実施形態におけるプリンタードライバー配布サービス300の機能ブロックの一例について図15を用いて説明する。図15は、第1の実施形態における図3Aに代替する図面である。図15について第1の実施形態と同様の構成については、第1の実施形態と同様の符号を記載し、異なる構成のみ説明する。
ドライバパッケージ306は、プリンタードライバー配布サービス300から配布されるパッケージの一例である。ドライバパッケージ306は、ドライバー情報部307、デバイス能力情報部308と描画部309を持つ。ドライバー情報部307は、ドライバー情報部304と同様にプリンターを識別するためのHWID、COID、当該パッケージがドライバー拡張パッケージであることを示す情報や、ドライバー拡張パッケージ303のバージョンなどの情報を持つ。デバイス能力情報部308は、305と同様に対応するプリンター200のデバイス能力情報や禁則情報を持つ。デバイスの能力情報とは、たとえば、プリンター200がカラー印刷に対応しているか、両面印刷に対応しているか等の情報である。ドライバー拡張パッケージ303に含まれる能力情報は、上記の能力情報に加え、ベンダー特有の針なし綴じが可能か否か、中綴じ製本が可能であるか否か、複数種類の用紙を使って印刷する用紙混在印刷か可能であるか否かを含む。
描画部309は、GDIデータ、XPSデータやWord、Excel、PowerPointなどのデータをPDF、PwgRaster、PCLや、プリンターベンダー独自のPDLに変換することができる。
上述のように、プリンタードライバー配布サービス300はドライバパッケージ306を有しており、当該ドライバパッケージをクラウドサービス500に対して提供する。
図16は、第3の実施形態であるプリンタードライバーをクラウドサービスにインストールする方法について説明する図である。図16は第1の実施形態における図4に代わる処理を示す図面である。図16について第1の実施形態と同様の構成については、第1の実施形態と同様の符号を記載し、異なる構成のみ説明する。
本実施形態では、クライアントコンピューター100からプリンター200にアクセスし、プリンター200を操作する。これによりプリンター200がクラウドプリントサービス500にプリンター200の登録要求を送信する。
プリンター200はクラウドプリント機能(クラウドプリントサービスから印刷ジョブを受信して印刷する機能)と、クライアントコンピューター100からプリンター200を操作するためのWebUI機能をサポートしている。WebUI機能とは、UIを生成してネットワーク上に公開する機能である。クライアントコンピューター100はクラウドプリントクライアント機能(クラウドプリントサービスにファイルを送信する機能)と、WebUIを操作するためのWebUIクライアント(例えば、Webブラウザー)をサポートしている。また、クラウドプリントサービス500はインターネット上のクラウドプリントサービスを表す。
次に、S1512にて、クラウドプリントサービス500は、プリンタードライバー配布サービス300にドライバパッケージ306のダウンロード要求を送信する。これは、クラウドプリントサービス500に登録されたプリンターに対応するドライバパッケージ306を受信するための要求である。クラウドプリントサービス500は、ドライバパッケージ306ダウンロード要求とプリンター200のHWID、COIDをプリンタードライバー配布サービス300に送信する。なお、S1512にてプリンタードライバー配布サービス300に通知されるHWIDやCOIDは、クラウドプリントサービス500がS411にてプリンター200から取得したHWID,COIDである。
S1512にて、プリンタードライバー配布サービス300は、受信したHWID及びCOIDに基づき、該当するドライバパッケージ306をクラウドプリントサービス500に送信する。プリンタードライバー配布サービス300は、受信したHWIDに一致するプリンタードライバー及びドライバー拡張パッケージを図17Aで示すプリンタードライバーデータベースから特定する。
ここで、図17A、図17Bに示すテーブルを説明する。図17Aは、ドライバー配布サービス300で管理されるドライバパッケージの情報を示すテーブルである。図17Aは、第1の実施形態における図5Bに相当するテーブルである。図17Bは、クラウドプリトサービス500に登録されているプリンターの情報を示すテーブルである。図17Bに示すテーブルは、第1の実施形態の図5Aに相当するテーブルである。
ここで、S410において、図17Bに示すiR-ADV CCCCというプリンターがクラウドプリントサービス500に追加されたとする。クラウドプリントサービス500はプリンター200から取得したデータに基づき、図17BのiR-ADV CCCCの列にデータを登録する。クラウドプリントサービス500はプリンタードライバー配布サービス300にHWIDを通知する。プリンタードライバー配布サービス300は受信したHWIDに基づき、クラウドプリントサービス500にインストールするドライバパッケージを特定する。なお、図17Aでは、デバイスiR-ADV CCCCのHWIDに一致するパッケージが複数存在する。一方のパッケージはドライバーが拡張されていることを示すフラグがTRUEとなっており、一方のパッケージはドライバーが拡張されていることを示すフラグがFALSEになっている。上記フラグがTRUEのパッケージはプリンタードライバーではなく、プリンターの情報を拡張するためのパッケージである。このような場合、プリンタードライバー配布サービスは拡張フラグがFALSEのプリンタードライバーを優先してクラウドプリントサービス500に送信する。
プリンタードライバー配布サービス300は、クラウドプリントサービス500から通知されたHWIDに一致するプリンタードライバー及びドライバー拡張パッケージが特定されない場合、以下の処理を実行する。プリンタードライバー配布サービス300はクラウドプリントサービス500から受信したCOIDに一致するプリンタードライバーをクラウドプリントサービス500に送信する。受信したCOIDに一致するプリンタードライバーと拡張パッケージが両方存在する場合、プリンタードライバー配布サービス300はプリンタードライバーを優先してクラウドプリトサービス500に送信する。なお、HWIDのみでドライバー拡張パッケージが特定可能である場合、S413において、HWIDのみをプリンタードライバー配布サービス300に送信するとしてもよい。
クラウドプリントサービス500は、S1513にてプリンタードライバー配布サービス300からドライバパッケージ306をダウンロードする。そして、S1514にてダウンロードしたドライバパッケージ306をクラウドサービス500にインストールする。
そして、S1515において、クラウドプリントサービス500は、印刷キュー生成部502に、プリンター200に印刷ジョブを送信するための印刷キューを作成させる。プリンター登録部501は、プリンターデータベース510にプリンターの情報と能力情報を登録し、登録要求がなされたプリンターのレコードを生成する。さらに印刷キュー生成部502が印刷キューの生成を行う。この印刷キューは、受信したプリンター200の情報である、プリンターの名称(デバイス名)、プリンターの機種を識別するHWID、COIDや、プリンターのIPアドレスを利用して作成される。上記の処理を行うことで、図17Bに示すプリンターデータベースのIPアドレスやパッケージが登録される。
以降の処理は第1の実施形態と同様である。
つぎに、第3の実施形態である、クラウドサービスにインストールされたプリンタードライバーを用いて印刷する方法について説明する。第3の実施形態では、クラウドプリントサービス500にインストールされたプリンタードライバーがPDLデータを生成するため、第1の実施形態の説明で記載した図11に示すシーケンス図を用いて説明をする。なお、第1の実施形態と同様の処理を行う箇所については、説明を省略し、第1の実施形態と異なる箇所のみをここでは説明する。
クラウドプリントサービス500は、クライアントコンピューター100のOS1053から画像データと印刷設定を受信し、受信した画像データと印刷設定に基づきPDLデータを生成する(S1308)。クラウドプリントサービス500はオペレーションシステム1053から受信した印刷設定から印刷に利用するプリンターのデバイス名を取得する。クラウドプリントサービス500は、図17Bを参照し、取得したデバイス名のプリンターに対応するドライバーを特定する。そして、クラウドプリントサービス500は特定されたドライバーがインストールされているか否かを判定する。上記判定に基づき特定されたプリンタードライバーがクラウドプリントサービス500にインストールされている場合、特定されたプリンタードライバーの描画部309が、プリンタードライバーがPDLデータを生成する。なお、取得したデバイス名に対応するプリンタードライバーがクラウドプリントサービス500にインストールされていないと判定された場合、クラウドプリントサービス500は以下の処理を実行する。クラウドプリントサービス500はプリンタードライバー配布サービス300から取得したドライバーを使わずに、クラウドプリントサービス500が予め有しているモジュールを使ってPDLデータを生成する。また、取得されたプリンター名からドライバーが特定されない場合も、クラウドプリントサービス500は予め有しているモジュールを使ってPDLデータを生成する。
その後、クラウドプリントサービス500は生成したPDLデータを印刷ジョブ生成部506に渡し、印刷データとする印刷ジョブを生成して、印刷ジョブ保存領域511に保存する(S1309)。
以上の構成により、プリンタードライバー配布サービスが配布するドライバーを使ったPDLデータの生成を行うことができる。プリンタードライバー配布サービスに登録されているプリンタードライバーをクラウドサービス500にインストールすることで、クラウドプリントサービス500が対応することのできない印刷設定を反映したPDLデータを生成することができる。
<第4の実施形態>
第3の実施形態では、クラウドプリントサービス500にベンダー製のプリンタードライバーをインストールすることで、当該ドライバーによるPDLデータの生成を行うとした。第4の実施形態では、OS標準のドライバーが生成するXPSデータからPDLデータを生成するフィルターをクラウドプリントサービス500にインストールして、PDLデータの生成をおこなう。
第4の実施形態におけるプリンタードライバー配布サービス300の機能ブロックの一例について、図18を用いて説明する。図18について第1の実施形態と同様の構成については、第1の実施形態と同様の符号を記載し、異なる構成のみ説明する。
ドライバパッケージ306は、プリンタードライバー配布サービス300から配布されるパッケージの一例である。本実施形態では、ドライバパッケージ306はV4ドライバーアーキテクチャで動作するドライバパッケージを想定する。V4ドライバーアーキテクチャとは、Microsoft社がWindows8(登録商標)以降に搭載したXPS(XML Paper Specification)印刷パスで動作する印刷の仕組みである。
ドライバパッケージ306は、ドライバー情報部307、デバイス能力情報部308、レイアウトフィルター311、レンダラフィルター(描画フィルター)312を持つ。ドライバー情報部307は、ドライバー情報部304と同様にプリンターを識別するためのHWID、COID(Compatible ID)を記憶する。さらに、ドライバー情報307は、当該パッケージがドライバー拡張パッケージであることを示す情報や、ドライバー拡張パッケージ303のバージョンなどの情報を持つ。第4の実施形態は、ドライバパッケージ306にレイアウトフィルター311とレンダラフィルター312を有する点で第3の実施形態と異なる。
デバイス能力情報部308は、ドライバー拡張パッケージ303のデバイス能力情報部305と同様に対応するプリンター200のデバイス能力情報や禁則情報を持つ。デバイスの能力情報とは、たとえば、プリンター200がカラー印刷に対応しているか、両面印刷に対応しているか等の情報である。ドライバー拡張パッケージ303に含まれる能力情報は、上記の能力情報に加え、ベンダー特有の針なし綴じが可能か否か、中綴じ製本が可能であるか否か、複数種類の用紙を使って印刷する用紙混在印刷か可能であるか否かを含む。さらに、本実施形態ではデバイス能力以外にもドライバーが行う処理で完結するベンダー独自の印刷設定情報をもつものとする。
レイアウトフィルター311は、倍率の変更や製本の面付けレイアウトやスタンプなどレイアウトに関する処理を行う。
レンダラフィルター312は、V4アーキテクチャで動作する場合のスプールファイルであるXPSデータをレンダリングしてPDL(PageDescriptionLanguage)に変換する。
レイアウトフィルター311とレンダラフィルター312は、V4ドライバーアーキテクチャで利用されるフィルターパイプラインのプラグインとして利用されるフィルターである。
図19は、第4の実施形態であるプリンタードライバーをクラウドサービスにインストールする方法について説明する。図19について第1の実施形態と同様の構成については、第1の実施形態と同様の符号を記載し、異なる構成のみ説明する。
プリンター200をクラウドプリントサービス500に登録する処理のシーケンス図である。本実施形態では、クライアントコンピューター100からプリンター200にアクセスし、プリンター200を操作することでクラウドプリントサービス500にプリンター200の登録要求を送信する。
プリンター200はクラウドプリント機能(クラウドプリントサービスから印刷ジョブを受信して印刷する機能)と、クライアントコンピューター100からプリンター200を操作するためのWebUI機能をサポートしている。WebUI機能とは、UIを生成してネットワーク上に公開する機能である。クライアントコンピューター100はクラウドプリントクライアント機能(クラウドプリントサービスにファイルを送信する機能)と、WebUIを操作するためのWebUIクライアント(例えば、Webブラウザー)をサポートしている。また、クラウドプリントサービス500はインターネット上のクラウドプリントサービスを表す。
次に、S1512にて、クラウドプリントサービス500は、プリンタードライバー配布サービス300にドライバパッケージ306のダウンロード要求を送信する。これは、クラウドプリントサービス500に登録されたプリンターに対応するドライバパッケージ306を受信するための要求である。クラウドプリントサービス500は、ドライバパッケージ306ダウンロード要求とプリンター200のHWID、COIDをプリンタードライバー配布サービス300に送信する。
S1512にて、プリンタードライバー配布サービス300は、受信したHWID及びCOIDに基づき、該当するドライバパッケージ306をクラウドプリントサービス500に送信する。プリンタードライバー配布サービス300は、受信したHWIDに一致するプリンタードライバー及びドライバー拡張パッケージを図17Aで示すプリンタードライバーデータベースから特定する。なお、図17AのデバイスiR-ADV CCCCで示すように、HWIDが一致するプリンタードライバー(拡張フラグがFALSE)と拡張パッケージ(拡張フラグがTRUE)が同時にプリンタードライバーデータベースに存在することがある。この場合には、プリンタードライバーが優先してクラウドプリントサービス500に送信される。
HWIDに一致するプリンタードライバー及びドライバー拡張パッケージが特定されない場合、プリンタードライバー配布サービス300は受信したCOIDに一致するプリンタードライバー及びドライバパッケージ306を特定する。COIDにおいても一致するプリンタードライバーと拡張パッケージが存在した場合には、プリンタードライバーが優先される。そして、プリンタードライバー配布サービス300は、クラウドプリントサービス500に特定されたプリンタードライバー及び拡張パッケージ306を送信する。なお、HWIDのみでドライバー拡張パッケージが特定可能である場合、S413において、HWIDのみをプリンタードライバー配布サービス300に送信するとしてもよい。
クラウドプリントサービス500は、S1513にてクラウドプリントサービス500からドライバパッケージ306をダウンロードする。そして、クラウドプリントサービス500は、S1610にてドライバパッケージ306に同梱されているドライバー情報部307、デバイス能力情報部308、レイアウトフィルター311、レンダラフィルター312を取得する。
ステップS1611にて、クラウドプリントサービス500は、クラウドサービス内のOSにインストールされているOS標準のドライバーと、取得したドライバパッケージ306と、登録が要求されているプリンター200の識別情報を対応づけて登録する。
具体的には、V4ドライバーアーキテクチャで利用されるデバイス能力情報308およびフィルターパイプラインのプラグインとして利用されるフィルターの紐づけの更新処理を行う。まず、クラウドプリントサービス500は、OS標準のドライバーがもつ基本的設定に対し、取得したデバイス能力情報部308の情報を付加情報として追加する。これにより、クラウドプリントサービス500を利用する印刷において、ユーザーがベンダー特有の印刷設定情報を追加することができるようになる。
次に、クラウドプリントサービス500は、デバイス能力情報部308によって拡張された印刷設定情報を利用して様々な処理を付加することができるフィルター情報をプリンター200の識別情報、および、OS標準のドライバーと紐づける。フィルターパイプラインのプラグインはフィルターと呼ばれ、本実施形態ではレイアウトフィルター311やレンダラフィルター312を紐づけることでベンダー特有の印刷設定情報を元に様々な拡張処理が行えるようにする。フィルターパイプラインのプラグインは、フィルターパイプラインコンフィグとよばれるXML形式のファイルによって定義される(図20)。本実施形態では、上記したようにレイアウトフィルターの定義部2001とレンダラフィルターの定義部2002のように記載されている。この定義ファイルをOS標準のドライバーが読み込むことで紐づけを完了とする。本処理により、OS標準のドライバーが拡張され、ベンダー特有の印刷設定情報を適切に処理して印刷することが可能となる。
上記の処理の後、クライアントコンピューター100がクラウドプリントサービス500に生成されたプリンター200に対応する印刷キューを選択して印刷を指示すると以下の処理が実行される。
クラウドプリントサービス500は、クライアントコンピューター100から画像データと印刷設定を受信する。クラウドプリントサービス500のOS標準のドライバーは受信した画像データと印刷設定に基づきXPSデータを生成する。生成されたXPSデータは、プリンター200に紐づけられたレイアウトフィルター311に入力される。レイアウトフィルター311は入力されたXPSデータを解釈し、印刷設定で設定されたレイアウトが反映されたXPSデータを生成する。そして、レイアウトフィルター311は生成したXPSデータをレンダラフィルター312に渡す。レンダラフィルター312がXPSファイルからプリンター200が解釈できるデータを生成する。以上により、プリンタードライバー配布サービス300から取得したドライバパッケージ306を用いた印刷を行うことができる。
第4の実施形態では、以上の構成により、プリンタードライバー配布サービスに登録されているプリンタードライバーの一部モジュールを利用し、V4ドライバーアーキテクチャのフィルターを利用する。これにより、第4の実施形態において、汎用クラウドプリントサービス500で設定することのできない印刷設定を反映した印刷データを印刷装置に送信することができる。
<その他の実施形態>
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム又は装置のコンピュータ(又はCPUやMPU等)がプログラムコードを読み出して実行する処理である。この場合、そのコンピュータプログラム、及び該コンピュータプログラムを記憶した記憶媒体は本発明を構成することになる。

Claims (8)

  1. 情報処理装置から受信した画像データに基づきPDLデータを生成することのできるサーバシステムであって、
    登録が要求された印刷装置の情報を受信する第1の受信手段と、
    前記登録された印刷装置に送信するPDLデータを生成するフィルターを他のサーバシステムから取得する取得手段と、
    前記情報処理装置から前記印刷装置で印刷する画像データを受信する第2の受信手段と、
    前記取得されたフィルターに、前記受信された画像データに基づくPDLデータを生成させる手段と、を有することを特徴とするサーバシステム。
  2. 前記取得されたフィルターにより生成された前記PDLデータを、前記印刷装置に送信する送信手段を有することを特徴とする請求項1に記載のサーバシステム。
  3. 前記受信した情報は、前記印刷装置のHWIDであることを特徴とする請求項2に記載のサーバシステム。
  4. 前記情報処理装置から受信した画像データに基づくXPSデータを生成する生成手段をさらに有し、
    前記フィルターは、前記生成手段により生成されたXPSデータに基づき、前記PDLデータを生成することを特徴とする請求項2または3に記載のサーバシステム。
  5. 前記フィルターは前記生成手段がサポートしていない設定項目が反映されたPDLデータを生成することができることを特徴とする請求項4に記載のサーバシステム。
  6. 前記取得手段は、前記他のサーバシステムに前記受信した情報を送信することで前記他のサーバシステムから前記フィルターを取得することを特徴とする請求項1乃至5のいずれか一項に記載のサーバシステム。
  7. 情報処理装置から受信した画像データに基づきPDLデータを生成することのできるサーバシステムの制御方法であって、
    登録が要求された印刷装置の情報を受信する第1の受信工程と、
    前記登録された印刷装置に送信するPDLデータを生成するフィルターを他のサーバシステムから取得する取得工程と、
    前記情報処理装置から前記印刷装置で印刷する画像データを受信する第2の受信工程と、
    前記取得されたフィルターに、前記受信された画像データに基づくPDLデータを生成させる工程と、を有することを特徴とするサーバシステムの制御方法。
  8. 前記受信された画像データに基づくPDLデータの生成工程において、生成された画像データを前記印刷装置に送信する送信工程をさらに有することを特徴とする請求項7に記載のサーバシステムの制御方法。
JP2021004373A 2020-01-31 2021-01-14 サーバシステムおよびサーバシステムの制御方法 Pending JP2022109051A (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2021004373A JP2022109051A (ja) 2021-01-14 2021-01-14 サーバシステムおよびサーバシステムの制御方法
KR1020210008445A KR20210098343A (ko) 2020-01-31 2021-01-21 정보 처리 장치, 제어 방법 및 그 프로그램, 및 정보 처리 장치와 통신할 수 있는 서버 시스템
US17/157,723 US11520536B2 (en) 2020-01-31 2021-01-25 Information processing apparatus, control method and program therefor, and server system capable of communicating with the information processing apparatus
CN202110110816.XA CN113282252A (zh) 2020-01-31 2021-01-27 信息处理装置、其控制方法及能够与其通信的服务器系统
DE102021102043.3A DE102021102043A1 (de) 2020-01-31 2021-01-29 Informationsverarbeitungsgerät, Steuerungsverfahren und Programm dafür, und Serversystem, das fähig ist, mit dem Informationsverarbeitungsgerät zu kommunizieren

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021004373A JP2022109051A (ja) 2021-01-14 2021-01-14 サーバシステムおよびサーバシステムの制御方法

Publications (1)

Publication Number Publication Date
JP2022109051A true JP2022109051A (ja) 2022-07-27

Family

ID=82556863

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021004373A Pending JP2022109051A (ja) 2020-01-31 2021-01-14 サーバシステムおよびサーバシステムの制御方法

Country Status (1)

Country Link
JP (1) JP2022109051A (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08299477A (ja) * 1995-05-01 1996-11-19 Toshiyuki Akiyama 肌色マスク
JP2015065995A (ja) * 2013-09-26 2015-04-13 優 今泉 衛生マスク
JP2019183355A (ja) * 2018-04-27 2019-10-24 ユニ・チャーム株式会社 使い捨てマスク

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08299477A (ja) * 1995-05-01 1996-11-19 Toshiyuki Akiyama 肌色マスク
JP2015065995A (ja) * 2013-09-26 2015-04-13 優 今泉 衛生マスク
JP2019183355A (ja) * 2018-04-27 2019-10-24 ユニ・チャーム株式会社 使い捨てマスク

Similar Documents

Publication Publication Date Title
JP4565505B2 (ja) 印刷制御装置、印刷制御方法、プログラム及び記録媒体
JP7229680B2 (ja) 情報処理装置、制御方法及びプログラム
JP4240690B2 (ja) 情報処理装置と情報処理方法、及び情報処理システム、並びに記録媒体
JP7433940B2 (ja) 情報処理装置、印刷装置および当該情報処理装置の制御方法、プログラム
US8605316B2 (en) Information processing apparatus and control method thereof, and storage medium
KR20210098343A (ko) 정보 처리 장치, 제어 방법 및 그 프로그램, 및 정보 처리 장치와 통신할 수 있는 서버 시스템
US11842100B2 (en) Server system, information processing apparatus communicating with server system, control method, and computer-readable storage medium
JP2020095535A (ja) 情報処理装置、その制御方法、及びプログラム
JP7410622B2 (ja) 情報処理装置、情報処理装置の制御方法ならびにプログラム、および当該情報処理装置と通信することのできるサーバシステム
JP2022109051A (ja) サーバシステムおよびサーバシステムの制御方法
JP7427459B2 (ja) サーバシステム、およびサーバシステムと通信する印刷装置
JP2022067915A (ja) サーバシステムおよびサーバシステムの制御方法
JP7328405B2 (ja) 情報処理装置、情報処理装置の制御方法及び印刷設定アプリケーション
WO2023181987A1 (ja) サポートプログラムおよび印刷システム
US20240069818A1 (en) Information processing apparatus, method for controlling information processing apparatus, and storage medium
JP2023158310A (ja) 情報処理装置、情報処理装置の制御方法ならびにプログラム
JP2023143184A (ja) サポートプログラムおよび印刷システム
JP2023158308A (ja) 情報処理装置、情報処理装置の制御方法ならびにプログラム
JP2023158307A (ja) 情報処理装置、情報処理装置の制御方法ならびにプログラム
JP2023158309A (ja) 情報処理装置、情報処理装置の制御方法ならびにプログラム
JP2024052771A (ja) 情報処理装置、制御方法およびプログラム
JP2006072526A (ja) 情報処理装置およびセットアッププログラム
JP2013120507A (ja) 文書処理方法

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20231213

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240105