情報処理装置およびその制御方法、並びにプログラム
【課題】プリンタドライバが作成する印刷データを固定のフォーマットで扱うように一貫して構築されている印刷システムで、パススルー印刷を実現する。
【解決手段】第一のデータ形式に対応した印刷装置のプリンタドライバと、前記印刷装置が対応するデータ形式に応じてデータを生成するアプリケーションとを有する情報処理装置であって、前記印刷装置が第二のデータ形式に対応しているか否かを判定する判定手段と、前記判定手段にて前記第二のデータ形式に対応していると判定された場合、前記アプリケーションが生成した、前記第一のデータ形式のデータを内包する前記第二のデータ形式のデータを、そのまま前記印刷装置へ送信し、前記判定手段にて前記第二のデータ形式に対応していないと判定された場合、前記アプリケーションが生成した、前記第二のデータ形式のデータを、前記第一のデータ形式に変換して前記印刷装置へ送信する送信手段とを有する。
【解決手段】第一のデータ形式に対応した印刷装置のプリンタドライバと、前記印刷装置が対応するデータ形式に応じてデータを生成するアプリケーションとを有する情報処理装置であって、前記印刷装置が第二のデータ形式に対応しているか否かを判定する判定手段と、前記判定手段にて前記第二のデータ形式に対応していると判定された場合、前記アプリケーションが生成した、前記第一のデータ形式のデータを内包する前記第二のデータ形式のデータを、そのまま前記印刷装置へ送信し、前記判定手段にて前記第二のデータ形式に対応していないと判定された場合、前記アプリケーションが生成した、前記第二のデータ形式のデータを、前記第一のデータ形式に変換して前記印刷装置へ送信する送信手段とを有する。
【発明の詳細な説明】
【技術分野】
【0001】
本願発明は、情報処理装置およびその制御方法、並びにプログラムに関する。特に、クライアントコンピュータと接続されたデジタル複写機などの印刷装置に対し、印刷データを作成し、送信する際の技術に関する。
【背景技術】
【0002】
従来、クライアントコンピュータが備えるプリンタドライバは、当該クライアントコンピュータにインストールされている各種アプリケーションから印刷指示を受け、ネットワークに接続されているプリンタに対する印刷データを作成する。一方、アプリケーションの中には、プリンタドライバに印刷データを作成させることなく、プリンタが処理可能なプリンタ言語の印刷データを直接が作成できるものが存在する。このアプリケーションが作成した印刷データは、プリンタドライバを介してそのままプリンタに送信することができる。本明細書では、このアプリケーションのことを以降、パススルーアプリケーションと呼ぶ。
【0003】
代表的なパススルーアプリケーションのひとつとして、Adobe社のAcrobat(登録商標)がある。Acrobat(登録商標)などのパススルーアプリケーションは、印刷実行時などに、印刷に使用されるプリンタドライバがPostScript(以下、PS)パススルーに対応しているかどうかの問い合わせをプリンタドライバに対して行う。問い合わせを受けたプリンタドライバは、PSパススルーに対応している場合、問い合わせを発信したアプリケーションに対して、自身がPSパススルーに対応していることを返信する。この場合、パススルーアプリケーションは自ら、プリンタが処理可能なPSコマンドを生成する。そして、パススルーアプリケーションは、PSパススルーに対応しているプリンタドライバのポートとして指定されているプリンタに対して、そのPS形式のデータをそのまま送信する仕組みとなっている。
【0004】
パススルーアプリケーションが、印刷に使用されるプリンタドライバがPSパススルーに対応しているかどうかの問い合わせを行う手段としては様々なものがある。例えば、Windows(登録商標)では、プリンタエスケープ関数のPOSTSCRIPT_PASSTHROUGHの設定を参照することで、プリンタドライバがPSパススルーに対応しているかどうかを判断する。
【0005】
一方、プリンタドライバが、PSパススルーに非対応の場合は、クライアントコンピュータが有するオペレーティングシステム(以下、OS)上で定義されているOS標準の描画方式により、プリンタドライバに対して印刷データの作成命令が発行される。なお、PSパススルーに対応したプリンタドライバは、POSTSCRIPT_PASSTHROUGHの設定を意図的に“Off”とすることもできる。この場合、PSパススルーアプリケーションは、OS標準の描画方式で印刷命令を発行することになる。つまり、プリンタドライバがPSパススルーに対応していたとしても、PSパススルー非対応のプリンタドライバと同様の描画方法を行うことも可能である。
【0006】
また、特許文献1では、コンピュータにおいて、PS形式のデータをアプリケーションが生成し、PSに対応していない非ポストスクリプトプリンタが指定された場合に、印刷システム208がPS形式のデータをPCL、PJLといった非ポストスクリプト形式のデータに変換、生成する技術の開示がある。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2007−226809号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
ここで、パススルーアプリケーションが作成する印刷データをプリンタに送信する場合において、プリンタドライバが作成する印刷データは特定の書式(以降、固定フォーマット)に限定される場合がある。この固定フォーマットの例として、印刷システムを構築しているOSがWindows(登録商標)環境では、EMF(Enhanced Metafile)やXPS(XML Paper Specification)などがある。例えば、この印刷システムでは、固定フォーマットとしてXPS形式で印刷データを扱うように一貫して構築されているケースが想定される。
【0009】
このような条件を有する印刷システムでは、例えば前述したPSを用いたパススルー印刷が実現できない、という課題があった。
【課題を解決するための手段】
【0010】
上記課題を解決するために、本発明において、第一のデータ形式に対応した印刷装置のプリンタドライバと、前記印刷装置が対応するデータ形式に応じてデータを生成するアプリケーションとを有する情報処理装置であって、前記印刷装置が第二のデータ形式に対応しているか否かを判定する判定手段と、前記判定手段にて前記第二のデータ形式に対応していると判定された場合、前記アプリケーションが生成した、前記第一のデータ形式のデータを内包する前記第二のデータ形式のデータを、そのまま前記印刷装置へ送信し、前記判定手段にて前記第二のデータ形式に対応していないと判定された場合、前記アプリケーションが生成した、前記第二のデータ形式のデータを、前記プリンタドライバの機能を用いて、前記第一のデータ形式に変換して前記印刷装置へ送信する送信手段とを有する。
【発明の効果】
【0011】
本発明により、クライアント装置は、印刷装置が対応可能なデータ形式に応じた印刷データを作成できる。
【図面の簡単な説明】
【0012】
【図1】印刷システムの構成例を示す図。
【図2】クライアントコンピュータの構成例を示すブロック図。
【図3】プリンタドライバのモジュール構成例を示す図。
【図4】ブリタンドライバのインストール方法を示すフローチャート。
【図5】印刷システムの従来構成例を示す図。
【図6】第一実施形態に係る印刷システムの構成図。
【図7】第一実施形態に係るフローチャート。
【図8】第一実施形態に係る印刷データ遷移と構造を示す図。
【図9】第二実施形態に係る印刷システムの構成図。
【図10】第二実施形態に係るフローチャート。
【図11】第二実施形態に係る印刷データ遷移と構造を示す図。
【発明を実施するための形態】
【0013】
<第一実施形態>
図1〜図8は本発明に係る第一実施形態を示すものである。
【0014】
[システム構成]
図1は、本発明が適用可能な印刷システムの構成例を示す図である。図1において、情報処理装置であるクライアントコンピュータ101、および印刷装置であるプリンタ102、103が、ネットワーク104を介して接続される。クライアントコンピュータ101にはオペレーティングシステム(以下、OS)、アプリケーション、およびプリンタドライバがインストールされている。この印刷システムにおいて、ユーザはクライアントコンピュータ101から印刷データをプリンタ102、103に送信し、印刷することができる。
【0015】
図2は、クライアントコンピュータ101の内部ブロック図である。クライアントコンピュータ101内部は、中央演算装置(CPU)203、揮発性メモリであるRAM204、不揮発性メモリであるROM205を有する。更に、クライアントコンピュータ101は、キーボードコントローラ206、マウスコントローラ207、ビデオコントローラ208、外部記憶装置コントローラ209、外部メディア装置コントローラ210、ネットワークI/Fコントローラ211から構成される。またユーザがクライアントコンピュータ101を操作するためのキーボード212およびマウス213はそれぞれ、キーボードコントローラ206およびマウスコントローラ207に接続される。表示装置214は、ビデオコントローラ208に接続される。
【0016】
また、大容量のデータを保存するための不揮発性の外部記憶装置215は、外部記憶装置コントローラ209に接続され、アプリケーションやデータの読み書きが行われる。また、外部メディア装置コントローラ210は、アプリケーションやドライバソフトウエアなどがメディア(CD−ROMやDVD−ROM)などで提供される場合、外部メディア制御装置216にセットされたメディアから、プログラムを読み込むことができる。なお、クライアントコンピュータ101は、図1で説明したネットワーク104にネットワークI/Fコントローラ211を介して接続され、他の機器と通信が行われる。
【0017】
通常、クライアントコンピュータ101を起動するための初期プログラムやクライアントコンピュータ101の各モジュールを制御するための基本的なプログラム(不図示)はROM205に保存されている。またOSやアプリケーション、プリンタドライバは、外部記憶装置215に保存されている。クライアントコンピュータ101の電源が投入されると、まずROM205に保存されているクライアントコンピュータ101を起動するためのプログラム(ブートローダ)が実行される。そして、そのプログラムが外部記憶装置215に保存されているOSをRAM204にロードし、その後、制御権をOSに渡す。OSは、必要なモジュールやドライバをさらに外部記憶装置215からRAM204に読み込む。さらにユーザの指示により、OSは、必要なアプリケーションを外部記憶装置215からRAM204に読み込み、実行する。
【0018】
本実施形態では、プリンタドライバおよびプリンタドライバのインストーラはCD−ROMなどの外部メディアで供給されるものとする。これに伴い、ユーザが外部メディア制御装置216にCD−ROMなどをセットすることで、CPU203が必要に応じてRAM204に読み込んだり、外部記憶装置215に保存したりする。
【0019】
[プリンタドライバ]
次にプリンタドライバについて説明する。インストールする際に用意されるプリンタドライバは、例えば、図3に示すようなモジュール群で構成されている。プリンタドライバ301は、グラフィックレンダリングモジュール302、UI制御モジュール303、プリンタ仕様記述ファイル304、色処理モジュール305、入出力制御モジュール306から構成される。なお、上記構成に限定するものではなく、プリンタドライバの機能によってはこの他のモジュールから構成されることもある。
【0020】
プリンタドライバにはいくつかの作成の仕方がある。例えば、ひとつのプリンタドライバで複数のプリンタを対応するために、グラフィックレンダリングモジュール302およびUI制御モジュール303を複数のプリンタに対応できるように作成する。また、プリンタ仕様記述ファイル304に関しては、対応しているプリンタの分だけ、プリンタドライバに同梱しておく。このような方法では、UI制御モジュール303は、プリンタ仕様記述ファイル304に合わせてUIを表示、制御する。またグラフィックレンダリングモジュール302は、各プリンタに合わせたページ記述言語(PDL:Page Description Language)およびプリンタ制御コマンドを発行するような構成となる。
【0021】
[プリンタドライバインストール]
次に、上述したような構成のプリンタドライバをクライアントコンピュータ101へインストールする手順を説明する。図4はプリンタドライバのインストール手順を示したものである。ユーザは、プリンタドライバ301が格納されたCD−ROMを準備するか、ネットワーク経由でプリンタドライバインストーラ(不図示)を入手しているものとする。
【0022】
S401において、ユーザは、入手したプリンタドライバインストーラ(不図示)を起動する。この動作を起因としてS402において、プリンタドライバインストーラは、プリンタドライバモジュールを外部記憶装置215の所定の場所に格納する。プリンタドライバモジュールの格納場所は印刷システムによって異なる。例えば、Windows7(登録商標)では、
¥Windows¥system32¥spool¥drivers¥w32x86
などのディレクトリ配下にプリンタドライバモジュールを格納する設定となっている。
【0023】
プリンタドライバインストーラは、プリンタドライバモジュールを外部記憶装置215の上記のような所定のディレクトリに格納する。これでプリンタドライバのインストールは完了する。
【0024】
[プリンタドライバ設定内容の保持方法]
プリンタドライバは、インストール時にドライバ内部で保持している初期設定情報を、クライアントコンピュータ101の全ての設定内容に対して割り当てる。これらの内容は、下記のレジストリと呼ばれる、OSが管理する記憶手段に登録される。
HKEY_CURRENT_USER¥Software
HKEY_LOCAL_MACHINE¥SOFTWARE¥
HKEY_LOCAL_MACHINE¥SYSTEM¥
【0025】
ここで、本実施形態においては、ユーザインタフェースアプリケーションも、プリンタドライバと共に提供される。このユーザインタフェースアプリケーションの機能および動作については後述するが、必ずしもプリンタドライバと1対1の関係に有るものではなく、複数のプリンタドライバに対して1つのユーザインタフェースアプリケーションが対応してもよい。また、プリンタドライバのインストール時にすでに、クライアント端末にユーザインタフェースアプリケーションがインストールされている場合には、これを追加でインストールする必要はない。
【0026】
[印刷の開始から終了までの動作(従来例)]
図5を用いて、アプリケーションから印刷の指示が開始されてから、印刷装置が印刷データを処理するまでの従来技術の動作について説明する。図5では、固定フォーマットとして、例えばXPS(XML Paper Specification)を用いるものとして説明する。また、プリンタ502が対応しているプリンタ言語としては、PS(PostScript)を用いて説明する。
【0027】
クライアントコンピュータ501には、文書作成、あるいはドロー系、表計算などのアプリケーション503がインストールされている。アプリケーション503から印刷を実行する場合、クライアントコンピュータ501にインストールされているPSプリンタドライバ504に対して、印刷データの作成指示がなされる。この際、上述の通り、PSパススルーに対応したアプリケーションは、印刷に使用されるPSプリンタドライバ504がPSパススルーに対応していると判断した場合、アプリケーション503自らがPS形式の印刷データ506を作成する。
【0028】
PSプリンタドライバ504は、アプリケーション503により作成されたPS形式の印刷データ506のパススルーを行う。具体的には、PSプリンタドライバ504は、アプリケーション503が作成した、PS形式の印刷データ506を加工することなく、そのままPSプリンタドライバ504の出力先として設定されている印刷ポートに送信する。そして、プリンタ502は、パススルーが行われたPS形式の印刷データ508の記述内容に基づいて、描画データに展開し、印刷を実行する。このとき、図5に示すPS形式の印刷データ506と印刷データ508とは、同じものである。
【0029】
一方、印刷に使用するプリンタドライバがPSパススルーに対応していないと判断された場合、アプリケーション503自らはPS形式の印刷データを作成することなく、OSの標準描画データフォーマットであるXPS形式の印刷データ505を送信する。そして、アプリケーション503は、PSプリンタドライバ504に印刷データの作成指示を行う。
【0030】
PSプリンタドライバ504は、アプリケーション503が送信したXPS形式の印刷データ505をもとに、プリンタ502が解釈可能なプリンタ言語であるPS形式の印刷データ507を作成する。プリンタ502は、PS形式の印刷データ507の記述内容に基づいて、描画データに展開し、印刷を実行する。
【0031】
なお、XPSの他に、例えばWindows7(登録商標)などでは従来OSから使用されているGDI(Graphical Device Interface)が描画指示の手法として挙げられる。
【0032】
[印刷の開始から終了までの動作(本願発明)]
ここで、本願発明の対象となる固定フォーマットで印刷データが扱われる印刷システムを図6に示す。また、印刷システムにおけるフローチャートを図7に示す。図6と図7において、同じ参照番号にて示しているものは、同じ処理を意味しているものとする。ここでも、固定フォーマット(第一のデータ形式)をXPSとし、プリンタ言語(第二のデータ形式)をPSとしたケースで説明する。また、アプリケーション603は、パススルーアプリケーションであり、その機能として、PS形式のデータを固定フォーマットに内包させたデータ構造で印刷データを作成することができることを前提とする。
【0033】
なお、ここでの「内包」とは、固定フォーマット(ここでは、XPS)の印刷データ内に、異なる形式のプリンタ言語(ここでは、PS)のデータを含めることを意味する。言い換えると、PSのデータをXPSの形式のデータに含めることでパッケージ化している。これにより、その印刷データを固定フォーマットのデータとして扱うことを可能にしている。情報処理装置内では、その印刷データを一旦、固定フォーマットの印刷データとして扱い、その後にプリンタは内包されたプリンタ言語の印刷データを取り出して処理することができる。
【0034】
クライアントコンピュータ601には、文書作成、あるいはドロー系、表計算などのアプリケーション603がインストールされている。アプリケーション603から印刷を実行する場合、クライアントコンピュータ601にインストールされているPSプリンタドライバ604に対して、事前に印刷データの作成指示がなされる。このとき、PSプリンタドライバ604はアプリケーション603から、PSパススルーに対応しているかどうかの問い合わせを受ける(ステップ01、以下、S01と表記)。
【0035】
上記問い合わせを受信すると、PSプリンタドライバ604は、各種印刷設定などを変更できるユーザインタフェースアプリケーション(図6ではAdvanced UI Application、以降AUIA)605を起動する(S02)。そして、AUIA605は、印刷先として予め指定されているプリンタ602に、XPSをサポートしているか否かを問い合わせる(S03)。ここで、XPSをサポートしているかの問い合わせとは、例えば、XPSコントローラを装着している状態か、あるいはXPSを解釈可能なモジュールが使用可能な状態であるかなどを問い合わせることを指す。
【0036】
AUIA605は、印刷に使用するプリンタ602がXPSをサポートしているかどうかの情報を取得した後、PSプリンタドライバ604に通知する(S04)。また、AUIA605は、印刷に使用するプリンタ602がXPSをサポートしているかどうかの情報と併せて、印刷データを作成する上で必要な設定情報606を生成し、アプリケーション603に渡す(S05)。なお、ここでの設定情報606とは、例えば、PrintTicketやPrintCapabilities(図6では“PT/PC”と表記)が挙げられる。
【0037】
PSプリンタドライバ604は、AUIA605から受信した、印刷に使用するプリンタ602がXPSをサポートしているかどうかの情報をもとに、自らがPSパススルーに対応するかどうかの判定結果をアプリケーション603に対して通知する(S06)。本実施形態では、印刷に使用するプリンタ602がXPSをサポートしている場合は、アプリケーション603に対して、PSプリンタドライバ604は自らがPSパススルーに対応していることを通知する。そうでない場合は、PSプリンタドライバ604は、自らがPSパススルーに対応していないことを通知する。
【0038】
アプリケーション603は、PSプリンタドライバ604から受信した通知(返信情報)から、印刷に使用するPSプリンタドライバ604がPSパススルーに対応しているか否かを判定する。PSプリンタドライバ604がPSパススルーに対応している場合(S06にてYES)、従来の動作のように、アプリケーション603自らがPS形式の印刷データを作成する。なお、この場合、印刷システム内では固定フォーマットで扱われることに対応するため、アプリケーション603は、自ら作成したPS形式の印刷データを固定フォーマットであるXPS形式のデータに内包させる(図8の印刷データ801)。そして、アプリケーション603は、印刷データ607としてPSプリンタドライバ604に送信する(S07)。
【0039】
PSプリンタドライバ604は、アプリケーション603が作成したPS形式の印刷データが内包されたXPS形式の印刷データを加工することなく、そのままPSプリンタドライバ604の出力先として設定されている印刷ポートに送信する(S09)。つまり、PSプリンタドライバ604は、印刷データを図6の印刷データ609として、プリンタ602に送信する。そして、プリンタ602は、印刷データ609の記述内容に基づいて、内包されているPS形式の印刷データを抽出し、描画データに展開し、印刷を実行する。
【0040】
一方、印刷に使用するPSプリンタドライバ604がPSパススルーに非対応のプリンタドライバである場合(S06にてNO)、アプリケーション603はPS形式の印刷データを作成しない。この場合、アプリケーション603は、XPS形式の印刷データを印刷データ607としてPSプリンタドライバ604へ送信する。そして、アプリケーション603は、PSプリンタドライバ604に印刷データの作成指示を行う。つまり、PSプリンタドライバ604は、XPS形式で指示された印刷データ607を元に、PS形式の印刷データ608に変換する(S08)。そして、S09にて、PSプリンタドライバ604は、PS形式に変換した印刷データ608を印刷データとして、プリンタ602へ送信する。その後、プリンタ902は、PSプリンタドライバ904により変換されたPS形式の印刷データ908の記述内容に基づいて、描画データに展開し、印刷を実行する。以上により、処理を終了する。
【0041】
図8は、本実施形態における、プリンタドライバが処理する前後の各印刷データの状態を表したものである。印刷データ801は、プリンタがXPSに対応している場合にアプリケーションが生成するデータ構造である。印刷データ801は、XPS形式の印刷データにPS形式の印刷データが内包されていることを表し、PSプリンタドライバ810はパススルー時に、その印刷データを加工することなく、そのまま印刷データ803としてプリンタ602に送信する。
【0042】
一方、印刷データ802は、プリンタがXPS形式に非対応である場合にアプリケーションが生成するデータ形式(ここではXPS形式)である。アプリケーションは、XPS形式の印刷データ802を生成し、PSプリンタドライバ810に渡す。そのため、PSプリンタドライバ810は、アプリケーションから取得したXPS形式の印刷データ802をPS形式の印刷データ804に変換する。
【0043】
以上により、印刷システムにおいて、印刷手段であるプリンタの状態に応じて適切なデータ形式の印刷データを作成できる。
【0044】
なお、本実施形態において、プリンタが実行可能なプリンタ言語として、PostScriptを例にとって述べたが、これに限定するものではない。例えば、PCL(Printer Control Language)などの他のPDLを用いても構わない。また、XPSの代わりにEMF(Enhanced Metafile)を用いても構わない。
【0045】
また、ユーザインタフェースアプリケーションは、本実施形態において、プリンタへの問い合わせおよび印刷設定の受付等の機能を有していたが、これに限定されるものではない。例えば、クライアント端末にインストールされたプリンタドライバが共通して有している機能を、ユーザインタフェースアプリケーションに実行させるように構成し、プリンタドライバそれぞれの機能をより簡略化するように構成しても構わない。
【0046】
<第二実施形態>
図1〜図4および図9〜図11は、第二実施形態を示すものである。なお、図1〜図4は第一実施形態と同様であるため、説明は省略する。
【0047】
本実施形態に係る固定フォーマットで印刷データが扱われる印刷システムを図9に示す。また、印刷システムにおけるフローチャートを図10に示す。図9と図10において、同じ参照番号にて示しているものは、同じ処理を意味しているものとする。ここでも、固定フォーマットをXPSとし、プリンタ言語をPSとしたケースで説明する。
【0048】
クライアントコンピュータ901には、文書作成、あるいはドロー系、表計算などのアプリケーション903がインストールされている。アプリケーション903から印刷を実行する場合、クライアントコンピュータ901にインストールされているPSプリンタドライバ904に対して、事前に印刷データの作成指示がされる。このとき、PSプリンタドライバ904は、アプリケーション903からPSパススルーに対応したプリンタドライバかどうかの問い合わせを受ける(S11)。
【0049】
上記問い合わせを受信すると、PSプリンタドライバ904は、問い合わせをしてきたアプリケーション903の名称やバージョンの情報から、当該アプリケーションに関する判定を行う。具体的には、このアプリケーション903が、PS形式の印刷データを固定フォーマットに内包させた印刷データを発行するアプリケーションか、PS形式の印刷データのみを発行するアプリケーションかどうかを確認する。なお、PSプリンタドライバ904が、問い合わせしてきたアプリケーションの情報を取得する手段として、例えば、Windows OSではGetParent関数などがある。また、例えば、問い合わせにより取得した情報と、予め保持しているリスト等に登録された情報とに基づいて、アプリケーションの機能を確認するようにしても構わない。
【0050】
上記確認の結果、アプリケーション903がPS形式の印刷データのみを発行するものである場合(S12にてYES)、PSプリンタドライバ904は、アプリケーション903が発行したPS形式のみの印刷データを加工しない。この場合、アプリケーション903は、受信したPS形式の印刷データをそのままPSプリンタドライバ904の出力先として設定されている印刷ポートに送信する(S13)。
【0051】
一方、アプリケーション903がPS形式の印刷データのみを発行するものでない場合(S12にてNO)、PSプリンタドライバ904は、各種印刷設定などを変更できるAUIA905を起動する(S14)。そして、AUIA905は、印刷先として予め指定されているプリンタ902に、XPSをサポートしているか否かを問い合わせる(S15)。ここでの問い合わせは、第一の実施形態と同様である。
【0052】
AUIA905は、印刷に使用するプリンタ902がXPSをサポートしているかどうかの情報を取得した後、PSプリンタドライバ904に通知する(S16)。また、AUIA905は、印刷に使用するプリンタ902がXPSサポートしているかどうかの情報と併せて、印刷データを作成する上で必要な設定情報906を生成し、アプリケーション903に渡す(S17)。なお、ここで用いられる設定情報906は、第一の実施形態と同様である。
【0053】
PSプリンタドライバ904は、AUIA905から受信した、印刷に使用するプリンタ902がXPSをサポートしているかどうかの情報をもとに、アプリケーション903に対して、自らがPSパススルーに対応しているかどうかの返信を行う(S18)。ここでの返信は、第一の実施形態と同様である。
【0054】
アプリケーション903は、PSプリンタドライバ904から受信した通知(返信情報)から、印刷に使用するPSプリンタドライバ904がPSパススルーに対応しているか否かを判定する。PSプリンタドライバ904がPSパススルーに対応している場合(S18にてYES)、従来技術での動作で説明したように、アプリケーション903自らがPS形式の印刷データ907を作成する。なお、この場合、印刷システム内では固定フォーマットで扱われることに対応するため、アプリケーション903は、自ら作成したPS形式の印刷データを固定フォーマットに内包させる(図11の印刷データ1102)。そして、アプリケーション903は、印刷データ907としてPSプリンタドライバ904に送信する(S19)。
【0055】
PSプリンタドライバ904は、アプリケーション903が作成したPS形式の印刷データが内包されたXPS形式の印刷データを加工することなく、そのままPSプリンタドライバ904の出力先として設定されている印刷ポートに送信する(S21)。つまり、PSプリンタドライバ904は、印刷データを図9の印刷データ909として、プリンタ902に送信する。そして、プリンタ902は、印刷データ909の記述内容に基づいて、内包されているPSデータを抽出し、描画データに展開し、印刷を実行する。
【0056】
一方、印刷に使用するPSプリンタドライバ904がPSのパススルーに非対応のプリンタドライバである場合(S18にてNO)、アプリケーション903はPS形式の印刷データを作成しない。この場合、アプリケーション903は、XPS形式の印刷データを印刷データ907としてPSプリンタドライバ904へ送信する。つまり、PSプリンタドライバ904は、XPS形式で指示された印刷データ607を元に、PS形式の印刷データ908に変換する(S20)。そして、S21にて、PSプリンタドライバ904は、PS形式に変換した印刷データ908を印刷データとして、プリンタ902へ送信する。プリンタ902は、PSプリンタドライバ904により変換されたPS形式の印刷データ908の記述内容に基づいて、描画データに展開し、印刷を実行する。
【0057】
図11は、本実施形態における、プリンタドライバが処理する前後の各印刷データの状態を表したものである。印刷データ1101は、PS形式の印刷データのみのパススルーデータ構成である。また、印刷データ1102は、XPS形式の印刷データにPS形式の印刷データが内包されていることを表している。PSプリンタドライバ1110は、PSパススルー時に、印刷データを加工することなく、そのまま印刷データ1104、1105としてプリンタ902に送信する。
【0058】
一方、印刷データ1103は、プリンタがXPS形式に非対応である場合にアプリケーションが生成するデータ形式(ここではXPS形式)である。アプリケーションは、XPS形式の印刷データ1103を生成し、PSプリンタドライバ1110に渡す。そのため、PSプリンタドライバ1110は、アプリケーションから取得したXPS形式の印刷データ1103をPS形式の印刷データ1106に変換する。
【0059】
以上により、印刷システムにおいて、印刷手段の状態もしくはアプリケーションの機能に応じて適切なデータ形式の印刷データを作成できる。
【0060】
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【技術分野】
【0001】
本願発明は、情報処理装置およびその制御方法、並びにプログラムに関する。特に、クライアントコンピュータと接続されたデジタル複写機などの印刷装置に対し、印刷データを作成し、送信する際の技術に関する。
【背景技術】
【0002】
従来、クライアントコンピュータが備えるプリンタドライバは、当該クライアントコンピュータにインストールされている各種アプリケーションから印刷指示を受け、ネットワークに接続されているプリンタに対する印刷データを作成する。一方、アプリケーションの中には、プリンタドライバに印刷データを作成させることなく、プリンタが処理可能なプリンタ言語の印刷データを直接が作成できるものが存在する。このアプリケーションが作成した印刷データは、プリンタドライバを介してそのままプリンタに送信することができる。本明細書では、このアプリケーションのことを以降、パススルーアプリケーションと呼ぶ。
【0003】
代表的なパススルーアプリケーションのひとつとして、Adobe社のAcrobat(登録商標)がある。Acrobat(登録商標)などのパススルーアプリケーションは、印刷実行時などに、印刷に使用されるプリンタドライバがPostScript(以下、PS)パススルーに対応しているかどうかの問い合わせをプリンタドライバに対して行う。問い合わせを受けたプリンタドライバは、PSパススルーに対応している場合、問い合わせを発信したアプリケーションに対して、自身がPSパススルーに対応していることを返信する。この場合、パススルーアプリケーションは自ら、プリンタが処理可能なPSコマンドを生成する。そして、パススルーアプリケーションは、PSパススルーに対応しているプリンタドライバのポートとして指定されているプリンタに対して、そのPS形式のデータをそのまま送信する仕組みとなっている。
【0004】
パススルーアプリケーションが、印刷に使用されるプリンタドライバがPSパススルーに対応しているかどうかの問い合わせを行う手段としては様々なものがある。例えば、Windows(登録商標)では、プリンタエスケープ関数のPOSTSCRIPT_PASSTHROUGHの設定を参照することで、プリンタドライバがPSパススルーに対応しているかどうかを判断する。
【0005】
一方、プリンタドライバが、PSパススルーに非対応の場合は、クライアントコンピュータが有するオペレーティングシステム(以下、OS)上で定義されているOS標準の描画方式により、プリンタドライバに対して印刷データの作成命令が発行される。なお、PSパススルーに対応したプリンタドライバは、POSTSCRIPT_PASSTHROUGHの設定を意図的に“Off”とすることもできる。この場合、PSパススルーアプリケーションは、OS標準の描画方式で印刷命令を発行することになる。つまり、プリンタドライバがPSパススルーに対応していたとしても、PSパススルー非対応のプリンタドライバと同様の描画方法を行うことも可能である。
【0006】
また、特許文献1では、コンピュータにおいて、PS形式のデータをアプリケーションが生成し、PSに対応していない非ポストスクリプトプリンタが指定された場合に、印刷システム208がPS形式のデータをPCL、PJLといった非ポストスクリプト形式のデータに変換、生成する技術の開示がある。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2007−226809号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
ここで、パススルーアプリケーションが作成する印刷データをプリンタに送信する場合において、プリンタドライバが作成する印刷データは特定の書式(以降、固定フォーマット)に限定される場合がある。この固定フォーマットの例として、印刷システムを構築しているOSがWindows(登録商標)環境では、EMF(Enhanced Metafile)やXPS(XML Paper Specification)などがある。例えば、この印刷システムでは、固定フォーマットとしてXPS形式で印刷データを扱うように一貫して構築されているケースが想定される。
【0009】
このような条件を有する印刷システムでは、例えば前述したPSを用いたパススルー印刷が実現できない、という課題があった。
【課題を解決するための手段】
【0010】
上記課題を解決するために、本発明において、第一のデータ形式に対応した印刷装置のプリンタドライバと、前記印刷装置が対応するデータ形式に応じてデータを生成するアプリケーションとを有する情報処理装置であって、前記印刷装置が第二のデータ形式に対応しているか否かを判定する判定手段と、前記判定手段にて前記第二のデータ形式に対応していると判定された場合、前記アプリケーションが生成した、前記第一のデータ形式のデータを内包する前記第二のデータ形式のデータを、そのまま前記印刷装置へ送信し、前記判定手段にて前記第二のデータ形式に対応していないと判定された場合、前記アプリケーションが生成した、前記第二のデータ形式のデータを、前記プリンタドライバの機能を用いて、前記第一のデータ形式に変換して前記印刷装置へ送信する送信手段とを有する。
【発明の効果】
【0011】
本発明により、クライアント装置は、印刷装置が対応可能なデータ形式に応じた印刷データを作成できる。
【図面の簡単な説明】
【0012】
【図1】印刷システムの構成例を示す図。
【図2】クライアントコンピュータの構成例を示すブロック図。
【図3】プリンタドライバのモジュール構成例を示す図。
【図4】ブリタンドライバのインストール方法を示すフローチャート。
【図5】印刷システムの従来構成例を示す図。
【図6】第一実施形態に係る印刷システムの構成図。
【図7】第一実施形態に係るフローチャート。
【図8】第一実施形態に係る印刷データ遷移と構造を示す図。
【図9】第二実施形態に係る印刷システムの構成図。
【図10】第二実施形態に係るフローチャート。
【図11】第二実施形態に係る印刷データ遷移と構造を示す図。
【発明を実施するための形態】
【0013】
<第一実施形態>
図1〜図8は本発明に係る第一実施形態を示すものである。
【0014】
[システム構成]
図1は、本発明が適用可能な印刷システムの構成例を示す図である。図1において、情報処理装置であるクライアントコンピュータ101、および印刷装置であるプリンタ102、103が、ネットワーク104を介して接続される。クライアントコンピュータ101にはオペレーティングシステム(以下、OS)、アプリケーション、およびプリンタドライバがインストールされている。この印刷システムにおいて、ユーザはクライアントコンピュータ101から印刷データをプリンタ102、103に送信し、印刷することができる。
【0015】
図2は、クライアントコンピュータ101の内部ブロック図である。クライアントコンピュータ101内部は、中央演算装置(CPU)203、揮発性メモリであるRAM204、不揮発性メモリであるROM205を有する。更に、クライアントコンピュータ101は、キーボードコントローラ206、マウスコントローラ207、ビデオコントローラ208、外部記憶装置コントローラ209、外部メディア装置コントローラ210、ネットワークI/Fコントローラ211から構成される。またユーザがクライアントコンピュータ101を操作するためのキーボード212およびマウス213はそれぞれ、キーボードコントローラ206およびマウスコントローラ207に接続される。表示装置214は、ビデオコントローラ208に接続される。
【0016】
また、大容量のデータを保存するための不揮発性の外部記憶装置215は、外部記憶装置コントローラ209に接続され、アプリケーションやデータの読み書きが行われる。また、外部メディア装置コントローラ210は、アプリケーションやドライバソフトウエアなどがメディア(CD−ROMやDVD−ROM)などで提供される場合、外部メディア制御装置216にセットされたメディアから、プログラムを読み込むことができる。なお、クライアントコンピュータ101は、図1で説明したネットワーク104にネットワークI/Fコントローラ211を介して接続され、他の機器と通信が行われる。
【0017】
通常、クライアントコンピュータ101を起動するための初期プログラムやクライアントコンピュータ101の各モジュールを制御するための基本的なプログラム(不図示)はROM205に保存されている。またOSやアプリケーション、プリンタドライバは、外部記憶装置215に保存されている。クライアントコンピュータ101の電源が投入されると、まずROM205に保存されているクライアントコンピュータ101を起動するためのプログラム(ブートローダ)が実行される。そして、そのプログラムが外部記憶装置215に保存されているOSをRAM204にロードし、その後、制御権をOSに渡す。OSは、必要なモジュールやドライバをさらに外部記憶装置215からRAM204に読み込む。さらにユーザの指示により、OSは、必要なアプリケーションを外部記憶装置215からRAM204に読み込み、実行する。
【0018】
本実施形態では、プリンタドライバおよびプリンタドライバのインストーラはCD−ROMなどの外部メディアで供給されるものとする。これに伴い、ユーザが外部メディア制御装置216にCD−ROMなどをセットすることで、CPU203が必要に応じてRAM204に読み込んだり、外部記憶装置215に保存したりする。
【0019】
[プリンタドライバ]
次にプリンタドライバについて説明する。インストールする際に用意されるプリンタドライバは、例えば、図3に示すようなモジュール群で構成されている。プリンタドライバ301は、グラフィックレンダリングモジュール302、UI制御モジュール303、プリンタ仕様記述ファイル304、色処理モジュール305、入出力制御モジュール306から構成される。なお、上記構成に限定するものではなく、プリンタドライバの機能によってはこの他のモジュールから構成されることもある。
【0020】
プリンタドライバにはいくつかの作成の仕方がある。例えば、ひとつのプリンタドライバで複数のプリンタを対応するために、グラフィックレンダリングモジュール302およびUI制御モジュール303を複数のプリンタに対応できるように作成する。また、プリンタ仕様記述ファイル304に関しては、対応しているプリンタの分だけ、プリンタドライバに同梱しておく。このような方法では、UI制御モジュール303は、プリンタ仕様記述ファイル304に合わせてUIを表示、制御する。またグラフィックレンダリングモジュール302は、各プリンタに合わせたページ記述言語(PDL:Page Description Language)およびプリンタ制御コマンドを発行するような構成となる。
【0021】
[プリンタドライバインストール]
次に、上述したような構成のプリンタドライバをクライアントコンピュータ101へインストールする手順を説明する。図4はプリンタドライバのインストール手順を示したものである。ユーザは、プリンタドライバ301が格納されたCD−ROMを準備するか、ネットワーク経由でプリンタドライバインストーラ(不図示)を入手しているものとする。
【0022】
S401において、ユーザは、入手したプリンタドライバインストーラ(不図示)を起動する。この動作を起因としてS402において、プリンタドライバインストーラは、プリンタドライバモジュールを外部記憶装置215の所定の場所に格納する。プリンタドライバモジュールの格納場所は印刷システムによって異なる。例えば、Windows7(登録商標)では、
¥Windows¥system32¥spool¥drivers¥w32x86
などのディレクトリ配下にプリンタドライバモジュールを格納する設定となっている。
【0023】
プリンタドライバインストーラは、プリンタドライバモジュールを外部記憶装置215の上記のような所定のディレクトリに格納する。これでプリンタドライバのインストールは完了する。
【0024】
[プリンタドライバ設定内容の保持方法]
プリンタドライバは、インストール時にドライバ内部で保持している初期設定情報を、クライアントコンピュータ101の全ての設定内容に対して割り当てる。これらの内容は、下記のレジストリと呼ばれる、OSが管理する記憶手段に登録される。
HKEY_CURRENT_USER¥Software
HKEY_LOCAL_MACHINE¥SOFTWARE¥
HKEY_LOCAL_MACHINE¥SYSTEM¥
【0025】
ここで、本実施形態においては、ユーザインタフェースアプリケーションも、プリンタドライバと共に提供される。このユーザインタフェースアプリケーションの機能および動作については後述するが、必ずしもプリンタドライバと1対1の関係に有るものではなく、複数のプリンタドライバに対して1つのユーザインタフェースアプリケーションが対応してもよい。また、プリンタドライバのインストール時にすでに、クライアント端末にユーザインタフェースアプリケーションがインストールされている場合には、これを追加でインストールする必要はない。
【0026】
[印刷の開始から終了までの動作(従来例)]
図5を用いて、アプリケーションから印刷の指示が開始されてから、印刷装置が印刷データを処理するまでの従来技術の動作について説明する。図5では、固定フォーマットとして、例えばXPS(XML Paper Specification)を用いるものとして説明する。また、プリンタ502が対応しているプリンタ言語としては、PS(PostScript)を用いて説明する。
【0027】
クライアントコンピュータ501には、文書作成、あるいはドロー系、表計算などのアプリケーション503がインストールされている。アプリケーション503から印刷を実行する場合、クライアントコンピュータ501にインストールされているPSプリンタドライバ504に対して、印刷データの作成指示がなされる。この際、上述の通り、PSパススルーに対応したアプリケーションは、印刷に使用されるPSプリンタドライバ504がPSパススルーに対応していると判断した場合、アプリケーション503自らがPS形式の印刷データ506を作成する。
【0028】
PSプリンタドライバ504は、アプリケーション503により作成されたPS形式の印刷データ506のパススルーを行う。具体的には、PSプリンタドライバ504は、アプリケーション503が作成した、PS形式の印刷データ506を加工することなく、そのままPSプリンタドライバ504の出力先として設定されている印刷ポートに送信する。そして、プリンタ502は、パススルーが行われたPS形式の印刷データ508の記述内容に基づいて、描画データに展開し、印刷を実行する。このとき、図5に示すPS形式の印刷データ506と印刷データ508とは、同じものである。
【0029】
一方、印刷に使用するプリンタドライバがPSパススルーに対応していないと判断された場合、アプリケーション503自らはPS形式の印刷データを作成することなく、OSの標準描画データフォーマットであるXPS形式の印刷データ505を送信する。そして、アプリケーション503は、PSプリンタドライバ504に印刷データの作成指示を行う。
【0030】
PSプリンタドライバ504は、アプリケーション503が送信したXPS形式の印刷データ505をもとに、プリンタ502が解釈可能なプリンタ言語であるPS形式の印刷データ507を作成する。プリンタ502は、PS形式の印刷データ507の記述内容に基づいて、描画データに展開し、印刷を実行する。
【0031】
なお、XPSの他に、例えばWindows7(登録商標)などでは従来OSから使用されているGDI(Graphical Device Interface)が描画指示の手法として挙げられる。
【0032】
[印刷の開始から終了までの動作(本願発明)]
ここで、本願発明の対象となる固定フォーマットで印刷データが扱われる印刷システムを図6に示す。また、印刷システムにおけるフローチャートを図7に示す。図6と図7において、同じ参照番号にて示しているものは、同じ処理を意味しているものとする。ここでも、固定フォーマット(第一のデータ形式)をXPSとし、プリンタ言語(第二のデータ形式)をPSとしたケースで説明する。また、アプリケーション603は、パススルーアプリケーションであり、その機能として、PS形式のデータを固定フォーマットに内包させたデータ構造で印刷データを作成することができることを前提とする。
【0033】
なお、ここでの「内包」とは、固定フォーマット(ここでは、XPS)の印刷データ内に、異なる形式のプリンタ言語(ここでは、PS)のデータを含めることを意味する。言い換えると、PSのデータをXPSの形式のデータに含めることでパッケージ化している。これにより、その印刷データを固定フォーマットのデータとして扱うことを可能にしている。情報処理装置内では、その印刷データを一旦、固定フォーマットの印刷データとして扱い、その後にプリンタは内包されたプリンタ言語の印刷データを取り出して処理することができる。
【0034】
クライアントコンピュータ601には、文書作成、あるいはドロー系、表計算などのアプリケーション603がインストールされている。アプリケーション603から印刷を実行する場合、クライアントコンピュータ601にインストールされているPSプリンタドライバ604に対して、事前に印刷データの作成指示がなされる。このとき、PSプリンタドライバ604はアプリケーション603から、PSパススルーに対応しているかどうかの問い合わせを受ける(ステップ01、以下、S01と表記)。
【0035】
上記問い合わせを受信すると、PSプリンタドライバ604は、各種印刷設定などを変更できるユーザインタフェースアプリケーション(図6ではAdvanced UI Application、以降AUIA)605を起動する(S02)。そして、AUIA605は、印刷先として予め指定されているプリンタ602に、XPSをサポートしているか否かを問い合わせる(S03)。ここで、XPSをサポートしているかの問い合わせとは、例えば、XPSコントローラを装着している状態か、あるいはXPSを解釈可能なモジュールが使用可能な状態であるかなどを問い合わせることを指す。
【0036】
AUIA605は、印刷に使用するプリンタ602がXPSをサポートしているかどうかの情報を取得した後、PSプリンタドライバ604に通知する(S04)。また、AUIA605は、印刷に使用するプリンタ602がXPSをサポートしているかどうかの情報と併せて、印刷データを作成する上で必要な設定情報606を生成し、アプリケーション603に渡す(S05)。なお、ここでの設定情報606とは、例えば、PrintTicketやPrintCapabilities(図6では“PT/PC”と表記)が挙げられる。
【0037】
PSプリンタドライバ604は、AUIA605から受信した、印刷に使用するプリンタ602がXPSをサポートしているかどうかの情報をもとに、自らがPSパススルーに対応するかどうかの判定結果をアプリケーション603に対して通知する(S06)。本実施形態では、印刷に使用するプリンタ602がXPSをサポートしている場合は、アプリケーション603に対して、PSプリンタドライバ604は自らがPSパススルーに対応していることを通知する。そうでない場合は、PSプリンタドライバ604は、自らがPSパススルーに対応していないことを通知する。
【0038】
アプリケーション603は、PSプリンタドライバ604から受信した通知(返信情報)から、印刷に使用するPSプリンタドライバ604がPSパススルーに対応しているか否かを判定する。PSプリンタドライバ604がPSパススルーに対応している場合(S06にてYES)、従来の動作のように、アプリケーション603自らがPS形式の印刷データを作成する。なお、この場合、印刷システム内では固定フォーマットで扱われることに対応するため、アプリケーション603は、自ら作成したPS形式の印刷データを固定フォーマットであるXPS形式のデータに内包させる(図8の印刷データ801)。そして、アプリケーション603は、印刷データ607としてPSプリンタドライバ604に送信する(S07)。
【0039】
PSプリンタドライバ604は、アプリケーション603が作成したPS形式の印刷データが内包されたXPS形式の印刷データを加工することなく、そのままPSプリンタドライバ604の出力先として設定されている印刷ポートに送信する(S09)。つまり、PSプリンタドライバ604は、印刷データを図6の印刷データ609として、プリンタ602に送信する。そして、プリンタ602は、印刷データ609の記述内容に基づいて、内包されているPS形式の印刷データを抽出し、描画データに展開し、印刷を実行する。
【0040】
一方、印刷に使用するPSプリンタドライバ604がPSパススルーに非対応のプリンタドライバである場合(S06にてNO)、アプリケーション603はPS形式の印刷データを作成しない。この場合、アプリケーション603は、XPS形式の印刷データを印刷データ607としてPSプリンタドライバ604へ送信する。そして、アプリケーション603は、PSプリンタドライバ604に印刷データの作成指示を行う。つまり、PSプリンタドライバ604は、XPS形式で指示された印刷データ607を元に、PS形式の印刷データ608に変換する(S08)。そして、S09にて、PSプリンタドライバ604は、PS形式に変換した印刷データ608を印刷データとして、プリンタ602へ送信する。その後、プリンタ902は、PSプリンタドライバ904により変換されたPS形式の印刷データ908の記述内容に基づいて、描画データに展開し、印刷を実行する。以上により、処理を終了する。
【0041】
図8は、本実施形態における、プリンタドライバが処理する前後の各印刷データの状態を表したものである。印刷データ801は、プリンタがXPSに対応している場合にアプリケーションが生成するデータ構造である。印刷データ801は、XPS形式の印刷データにPS形式の印刷データが内包されていることを表し、PSプリンタドライバ810はパススルー時に、その印刷データを加工することなく、そのまま印刷データ803としてプリンタ602に送信する。
【0042】
一方、印刷データ802は、プリンタがXPS形式に非対応である場合にアプリケーションが生成するデータ形式(ここではXPS形式)である。アプリケーションは、XPS形式の印刷データ802を生成し、PSプリンタドライバ810に渡す。そのため、PSプリンタドライバ810は、アプリケーションから取得したXPS形式の印刷データ802をPS形式の印刷データ804に変換する。
【0043】
以上により、印刷システムにおいて、印刷手段であるプリンタの状態に応じて適切なデータ形式の印刷データを作成できる。
【0044】
なお、本実施形態において、プリンタが実行可能なプリンタ言語として、PostScriptを例にとって述べたが、これに限定するものではない。例えば、PCL(Printer Control Language)などの他のPDLを用いても構わない。また、XPSの代わりにEMF(Enhanced Metafile)を用いても構わない。
【0045】
また、ユーザインタフェースアプリケーションは、本実施形態において、プリンタへの問い合わせおよび印刷設定の受付等の機能を有していたが、これに限定されるものではない。例えば、クライアント端末にインストールされたプリンタドライバが共通して有している機能を、ユーザインタフェースアプリケーションに実行させるように構成し、プリンタドライバそれぞれの機能をより簡略化するように構成しても構わない。
【0046】
<第二実施形態>
図1〜図4および図9〜図11は、第二実施形態を示すものである。なお、図1〜図4は第一実施形態と同様であるため、説明は省略する。
【0047】
本実施形態に係る固定フォーマットで印刷データが扱われる印刷システムを図9に示す。また、印刷システムにおけるフローチャートを図10に示す。図9と図10において、同じ参照番号にて示しているものは、同じ処理を意味しているものとする。ここでも、固定フォーマットをXPSとし、プリンタ言語をPSとしたケースで説明する。
【0048】
クライアントコンピュータ901には、文書作成、あるいはドロー系、表計算などのアプリケーション903がインストールされている。アプリケーション903から印刷を実行する場合、クライアントコンピュータ901にインストールされているPSプリンタドライバ904に対して、事前に印刷データの作成指示がされる。このとき、PSプリンタドライバ904は、アプリケーション903からPSパススルーに対応したプリンタドライバかどうかの問い合わせを受ける(S11)。
【0049】
上記問い合わせを受信すると、PSプリンタドライバ904は、問い合わせをしてきたアプリケーション903の名称やバージョンの情報から、当該アプリケーションに関する判定を行う。具体的には、このアプリケーション903が、PS形式の印刷データを固定フォーマットに内包させた印刷データを発行するアプリケーションか、PS形式の印刷データのみを発行するアプリケーションかどうかを確認する。なお、PSプリンタドライバ904が、問い合わせしてきたアプリケーションの情報を取得する手段として、例えば、Windows OSではGetParent関数などがある。また、例えば、問い合わせにより取得した情報と、予め保持しているリスト等に登録された情報とに基づいて、アプリケーションの機能を確認するようにしても構わない。
【0050】
上記確認の結果、アプリケーション903がPS形式の印刷データのみを発行するものである場合(S12にてYES)、PSプリンタドライバ904は、アプリケーション903が発行したPS形式のみの印刷データを加工しない。この場合、アプリケーション903は、受信したPS形式の印刷データをそのままPSプリンタドライバ904の出力先として設定されている印刷ポートに送信する(S13)。
【0051】
一方、アプリケーション903がPS形式の印刷データのみを発行するものでない場合(S12にてNO)、PSプリンタドライバ904は、各種印刷設定などを変更できるAUIA905を起動する(S14)。そして、AUIA905は、印刷先として予め指定されているプリンタ902に、XPSをサポートしているか否かを問い合わせる(S15)。ここでの問い合わせは、第一の実施形態と同様である。
【0052】
AUIA905は、印刷に使用するプリンタ902がXPSをサポートしているかどうかの情報を取得した後、PSプリンタドライバ904に通知する(S16)。また、AUIA905は、印刷に使用するプリンタ902がXPSサポートしているかどうかの情報と併せて、印刷データを作成する上で必要な設定情報906を生成し、アプリケーション903に渡す(S17)。なお、ここで用いられる設定情報906は、第一の実施形態と同様である。
【0053】
PSプリンタドライバ904は、AUIA905から受信した、印刷に使用するプリンタ902がXPSをサポートしているかどうかの情報をもとに、アプリケーション903に対して、自らがPSパススルーに対応しているかどうかの返信を行う(S18)。ここでの返信は、第一の実施形態と同様である。
【0054】
アプリケーション903は、PSプリンタドライバ904から受信した通知(返信情報)から、印刷に使用するPSプリンタドライバ904がPSパススルーに対応しているか否かを判定する。PSプリンタドライバ904がPSパススルーに対応している場合(S18にてYES)、従来技術での動作で説明したように、アプリケーション903自らがPS形式の印刷データ907を作成する。なお、この場合、印刷システム内では固定フォーマットで扱われることに対応するため、アプリケーション903は、自ら作成したPS形式の印刷データを固定フォーマットに内包させる(図11の印刷データ1102)。そして、アプリケーション903は、印刷データ907としてPSプリンタドライバ904に送信する(S19)。
【0055】
PSプリンタドライバ904は、アプリケーション903が作成したPS形式の印刷データが内包されたXPS形式の印刷データを加工することなく、そのままPSプリンタドライバ904の出力先として設定されている印刷ポートに送信する(S21)。つまり、PSプリンタドライバ904は、印刷データを図9の印刷データ909として、プリンタ902に送信する。そして、プリンタ902は、印刷データ909の記述内容に基づいて、内包されているPSデータを抽出し、描画データに展開し、印刷を実行する。
【0056】
一方、印刷に使用するPSプリンタドライバ904がPSのパススルーに非対応のプリンタドライバである場合(S18にてNO)、アプリケーション903はPS形式の印刷データを作成しない。この場合、アプリケーション903は、XPS形式の印刷データを印刷データ907としてPSプリンタドライバ904へ送信する。つまり、PSプリンタドライバ904は、XPS形式で指示された印刷データ607を元に、PS形式の印刷データ908に変換する(S20)。そして、S21にて、PSプリンタドライバ904は、PS形式に変換した印刷データ908を印刷データとして、プリンタ902へ送信する。プリンタ902は、PSプリンタドライバ904により変換されたPS形式の印刷データ908の記述内容に基づいて、描画データに展開し、印刷を実行する。
【0057】
図11は、本実施形態における、プリンタドライバが処理する前後の各印刷データの状態を表したものである。印刷データ1101は、PS形式の印刷データのみのパススルーデータ構成である。また、印刷データ1102は、XPS形式の印刷データにPS形式の印刷データが内包されていることを表している。PSプリンタドライバ1110は、PSパススルー時に、印刷データを加工することなく、そのまま印刷データ1104、1105としてプリンタ902に送信する。
【0058】
一方、印刷データ1103は、プリンタがXPS形式に非対応である場合にアプリケーションが生成するデータ形式(ここではXPS形式)である。アプリケーションは、XPS形式の印刷データ1103を生成し、PSプリンタドライバ1110に渡す。そのため、PSプリンタドライバ1110は、アプリケーションから取得したXPS形式の印刷データ1103をPS形式の印刷データ1106に変換する。
【0059】
以上により、印刷システムにおいて、印刷手段の状態もしくはアプリケーションの機能に応じて適切なデータ形式の印刷データを作成できる。
【0060】
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【特許請求の範囲】
【請求項1】
第一のデータ形式に対応した印刷装置のプリンタドライバと、前記印刷装置が対応するデータ形式に応じてデータを生成するアプリケーションとを有する情報処理装置であって、
前記印刷装置が第二のデータ形式に対応しているか否かを判定する判定手段と、
前記判定手段にて前記第二のデータ形式に対応していると判定された場合、前記アプリケーションが生成した、前記第一のデータ形式のデータを内包する前記第二のデータ形式のデータを、そのまま前記印刷装置へ送信し、
前記判定手段にて前記第二のデータ形式に対応していないと判定された場合、前記アプリケーションが生成した、前記第二のデータ形式のデータを、前記プリンタドライバの機能を用いて、前記第一のデータ形式に変換して前記印刷装置へ送信する送信手段と
を有することを特徴とする情報処理装置。
【請求項2】
前記印刷装置から当該印刷装置が対応するデータ形式の情報を取得する取得手段を更に有し、
前記判定手段は、前記取得手段にて取得した情報を用いて判定することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記アプリケーションに対し、前記判定手段による判定結果を通知する通知手段を更に有することを特徴とする請求項1または2に記載の情報処理装置。
【請求項4】
前記アプリケーションが生成するデータのデータ形式を確認する確認手段を更に有し、
前記送信手段は、前記確認手段による確認の結果、前記アプリケーションが前記第一のデータ形式のデータのみを生成するアプリケーションの場合、前記アプリケーションが生成する前記第一のデータ形式のデータをそのまま前記印刷装置に送信することを特徴とする請求項1乃至3のいずれか一項に記載の情報処理装置。
【請求項5】
前記第一のデータ形式は、PostScript、またはPCL(Printer Control Language)であることを特徴とする請求項1乃至4のいずれか一項に記載の情報処理装置。
【請求項6】
前記第二のデータ形式は、XPS(XML Paper Specification)であることを特徴とする請求項1乃至5のいずれか一項に記載の情報処理装置。
【請求項7】
第一のデータ形式に対応した印刷装置のプリンタドライバと、前記印刷装置が対応するデータ形式に応じてデータを生成するアプリケーションとを有する情報処理装置における制御方法であって、
前記印刷装置が第二のデータ形式に対応しているか否かを判定する判定工程と、
前記判定工程にて前記第二のデータ形式に対応していると判定された場合に前記アプリケーションが生成した、前記第一のデータ形式のデータを内包する前記第二のデータ形式のデータを、そのまま前記印刷装置へ送信し、
前記判定工程にて前記第二のデータ形式に対応していないと判定された場合に前記アプリケーションが生成した、前記第二のデータ形式のデータを、前記プリンタドライバの機能を用いて、前記第一のデータ形式に変換して前記印刷装置へ送信する送信工程と
を有することを特徴とする制御方法。
【請求項8】
前記第二のデータ形式は、XPS(XML Paper Specification)であることを特徴とする請求項7に記載の制御方法。
【請求項9】
コンピュータを、
第一のデータ形式に対応した印刷装置が第二のデータ形式に対応しているか否かを判定する判定手段、
前記判定手段にて前記第二のデータ形式に対応していると判定された場合にアプリケーションが生成した、前記第一のデータ形式のデータを内包する前記第二のデータ形式のデータを、そのまま前記印刷装置へ送信し、
前記判定手段にて前記第二のデータ形式に対応していないと判定された場合に前記アプリケーションが生成した、前記第二のデータ形式のデータを、前記第一のデータ形式の形式に変換して前記印刷装置へ送信するよう制御する送信手段として機能させるためのプログラム。
【請求項1】
第一のデータ形式に対応した印刷装置のプリンタドライバと、前記印刷装置が対応するデータ形式に応じてデータを生成するアプリケーションとを有する情報処理装置であって、
前記印刷装置が第二のデータ形式に対応しているか否かを判定する判定手段と、
前記判定手段にて前記第二のデータ形式に対応していると判定された場合、前記アプリケーションが生成した、前記第一のデータ形式のデータを内包する前記第二のデータ形式のデータを、そのまま前記印刷装置へ送信し、
前記判定手段にて前記第二のデータ形式に対応していないと判定された場合、前記アプリケーションが生成した、前記第二のデータ形式のデータを、前記プリンタドライバの機能を用いて、前記第一のデータ形式に変換して前記印刷装置へ送信する送信手段と
を有することを特徴とする情報処理装置。
【請求項2】
前記印刷装置から当該印刷装置が対応するデータ形式の情報を取得する取得手段を更に有し、
前記判定手段は、前記取得手段にて取得した情報を用いて判定することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記アプリケーションに対し、前記判定手段による判定結果を通知する通知手段を更に有することを特徴とする請求項1または2に記載の情報処理装置。
【請求項4】
前記アプリケーションが生成するデータのデータ形式を確認する確認手段を更に有し、
前記送信手段は、前記確認手段による確認の結果、前記アプリケーションが前記第一のデータ形式のデータのみを生成するアプリケーションの場合、前記アプリケーションが生成する前記第一のデータ形式のデータをそのまま前記印刷装置に送信することを特徴とする請求項1乃至3のいずれか一項に記載の情報処理装置。
【請求項5】
前記第一のデータ形式は、PostScript、またはPCL(Printer Control Language)であることを特徴とする請求項1乃至4のいずれか一項に記載の情報処理装置。
【請求項6】
前記第二のデータ形式は、XPS(XML Paper Specification)であることを特徴とする請求項1乃至5のいずれか一項に記載の情報処理装置。
【請求項7】
第一のデータ形式に対応した印刷装置のプリンタドライバと、前記印刷装置が対応するデータ形式に応じてデータを生成するアプリケーションとを有する情報処理装置における制御方法であって、
前記印刷装置が第二のデータ形式に対応しているか否かを判定する判定工程と、
前記判定工程にて前記第二のデータ形式に対応していると判定された場合に前記アプリケーションが生成した、前記第一のデータ形式のデータを内包する前記第二のデータ形式のデータを、そのまま前記印刷装置へ送信し、
前記判定工程にて前記第二のデータ形式に対応していないと判定された場合に前記アプリケーションが生成した、前記第二のデータ形式のデータを、前記プリンタドライバの機能を用いて、前記第一のデータ形式に変換して前記印刷装置へ送信する送信工程と
を有することを特徴とする制御方法。
【請求項8】
前記第二のデータ形式は、XPS(XML Paper Specification)であることを特徴とする請求項7に記載の制御方法。
【請求項9】
コンピュータを、
第一のデータ形式に対応した印刷装置が第二のデータ形式に対応しているか否かを判定する判定手段、
前記判定手段にて前記第二のデータ形式に対応していると判定された場合にアプリケーションが生成した、前記第一のデータ形式のデータを内包する前記第二のデータ形式のデータを、そのまま前記印刷装置へ送信し、
前記判定手段にて前記第二のデータ形式に対応していないと判定された場合に前記アプリケーションが生成した、前記第二のデータ形式のデータを、前記第一のデータ形式の形式に変換して前記印刷装置へ送信するよう制御する送信手段として機能させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2013−20391(P2013−20391A)
【公開日】平成25年1月31日(2013.1.31)
【国際特許分類】
【出願番号】特願2011−152344(P2011−152344)
【出願日】平成23年7月8日(2011.7.8)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成25年1月31日(2013.1.31)
【国際特許分類】
【出願日】平成23年7月8日(2011.7.8)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]