JP2009086722A - 情報処理装置、情報処理方法、プログラム、及び記憶媒体 - Google Patents

情報処理装置、情報処理方法、プログラム、及び記憶媒体 Download PDF

Info

Publication number
JP2009086722A
JP2009086722A JP2007251855A JP2007251855A JP2009086722A JP 2009086722 A JP2009086722 A JP 2009086722A JP 2007251855 A JP2007251855 A JP 2007251855A JP 2007251855 A JP2007251855 A JP 2007251855A JP 2009086722 A JP2009086722 A JP 2009086722A
Authority
JP
Japan
Prior art keywords
printer
application
printing system
printer driver
print
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
JP2007251855A
Other languages
English (en)
Inventor
Yoshiko Sueshige
芳子 末繁
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 JP2007251855A priority Critical patent/JP2009086722A/ja
Publication of JP2009086722A publication Critical patent/JP2009086722A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】 アプリケーションの仕様や開発環境、プリンタドライバがいずれの印刷システムに対応したものであるかを意識することなく、容易に印刷を実行できる情報処理装置、印刷装置、およびそれらの制御方法を提供する。
【解決手段】 プリンタドライバは、共通モジュールとしてBridgeモジュールを備え、アプリケーションが拡張DDIを利用して印刷情報を制御する場合において、アプリケーションのアーキテクチャ仕様やインターフェース、プリンタドライバが対応している印刷システムを判断して利用する拡張DDIを切り替える。
【選択図】 図6

Description

本発明は、情報処理装置、印刷システム、印刷装置およびそれらの制御方法に関し、特にホストコンピュータ等に存在する印刷データをプリンタ等の出力装置によって印刷される印刷システム、そのシステムにおける情報処理装置、印刷装置、およびそれらの制御方法に関するものである。
一般に、ホストコンピュータなどに搭載されるオペレーティングシステムには、印刷要求を行うホストコンピュータにプリンタが接続された環境での印刷をサポートするための印刷システムが備えられている。ホストコンピュータには、その印刷システムおよび使用するプリンタの機種に対応したプリンタドライバが搭載される。このため、各印刷システムにそれぞれ対応したプリンタドライバを作成して供給しなければならないが、印刷システムは必ずしも一つであるとは限らず、二つ以上の印刷システムが共存するオペレーティングシステムの構成が存在する。
例えば、米国アップル社の「MacOS(登録商標)」では、MacOS(登録商標) X10.0で導入された印刷システム(以後、印刷システムAと呼ぶ)が既に搭載されている。しかし、MacOS X10.2では新たに「CUPS(Common UNIX(登録商標) Printing System)」と呼ばれる印刷システム(以後、CUPS印刷システムと呼ぶ)が導入された。従って、双方の印刷システムが共存する構成が存在する。それら双方のシステム間では、プリンタドライバが取得する印刷設定情報のデータの形式やラスタデータの取得方法が異なるため、印刷システムAとCUPS印刷システムとでそれぞれに準拠したプリンタドライバを別々に開発することが余儀なくされているのが現状である。従って、プリンタドライバを使用するユーザにとっても混乱を生じさせる要因となるため、複数の印刷システムに対応したプリンタドライバを開発することが望まれている。(例えば、特許文献1)
さらに近年ではホストコンピュータに64ビットプロセッサが搭載され、1クロックサイクルあたりのデータ処理量が多く、より多くのメモリにアドレス指定が可能となり数値計算をより高速に実行できることから、より優れたパフォーマンスが実現され、それに対応した64ビットアプリケーションの普及も進んでいる。
そこで、米国アップル社の「MacOS」のようなオペレーティングシステムには、単一のファイルに32ビットおよび64ビットコードを両方入れられるファットバイナリ形式がサポートされている。従って、一つのアプリケーションで32ビットプラットフォーム搭載のホストコンピュータ、および64ビットプロセッサ搭載のホストコンピュータなど全ユーザをサポートすることができ、ユーザ側のシステムにインストールされたファットバイナリ形式のアプリケーションは、ユーザを介在させることなく、自動的に最適なコードで起動する。
従って、このファットバイナリ形式でプリンタドライバが作成された場合、32ビットアプリケーションから印刷が実行された場合は32ビットバイナリが、一方、64ビットアプリケーションから印刷が実行された場合は64ビットバイナリが選択されて動作することになる。
特開2007-034795号公報
しかしながら、一般のユーザの多くは、システムが何のアーキテクチャに対応しているのか、またシステムにインストールされたアプリケーションが32ビットアプリケーションなのか64ビットアプリケーションなのかを認識していない。さらに、従来のプリンタドライバはファットバイナリ形式ではなく32ビットバイナリしか保持していないため、新規64ビットアプリケーションから印刷が実行された場合には、起動できずにアプリケーションがクラッシュしてしまうという問題がある。
また、二つ以上の印刷システムが共存するオペレーティングシステムの構成において、ユーザはホストコンピュータに接続されているプリンタに対応したプリンタドライバを選択するが、いずれの印刷システムに対応しているプリンタドライバであるかどうかを意識することはない。そのために、一つのプリンタドライバをデフォルトのプリンタドライバとしていったん選択してしまうと、アプリケーションの種類に関わらず選択したプリンタドライバが使用される。
このように、印刷処理経路において、最適なプリンタドライバをユーザ自身が選択することは困難である。
さらに、Mac OS Xの開発環境には、現在、旧Mac OSと互換性のある「Carbon」と、Mac OS Xネイティブの新しい環境として「Cocoa」が用意されている。双方の開発環境の主な相違点は開発言語であり、「Carbon」はC++およびC言語、「Cocoa」はObjective−C言語がメインとなっている。そのため、「Carbon」で構築されたアプリケーションと、「Cocoa」で構築されたアプリケーションが存在する。「Cocoa」に関して言えば、C言語などのCarbon用のコードを含むことも可能であるが、一つのアプリケーションを開発する際に、類似の異なる言語を使うのは開発効率が良くない。
本発明は、上記の問題に鑑みてなされたものであって、アプリケーションの仕様や開発環境、プリンタドライバがいずれの印刷システムに対応したものであるかを意識することなく、容易に印刷を実行できる情報処理装置、印刷装置、およびそれらの制御方法を提供することを目的とする。
上記目的を達成するために本発明は以下の構成を備える。
接続された印刷装置に対して印刷用データを提供する情報処理装置において、アプリケーションからは直接読み書きできない印刷情報を制御可能な拡張モジュールを有するプリンタドライバであって、アプリケーションからの描画出力に応じて処理可能なプリンタドライバが、第一の印刷システムからの第一態様の印刷設定情報と第一態様の印刷データの入力を受け付け、プリンタで印刷可能なプリントデータを生成する第一態様のプリンタドライバであるか、第二の印刷システムからの第二態様の印刷設定情報と第二態様の印刷データの入力を受け付け、プリンタで印刷可能なプリンタデータを生成する第二態様のプリンタドライバであるかを判別する印刷システム判別手段と、第一種類のアプリケーションからの描画出力命令と、第二種類のアプリケーションからの描画出力命令を受け付ける描画出力命令受け付け手段と、前記受け付けた描画出力命令に応じて、出力先として呼び出されたプリンタドライバが出力元のアプリケーションのアーキテクチャ仕様と一致するかを判別するアーキテクチャ判別手段とを有する。
また、前記拡張モジュールは、プリンタドライバとアプリケーションとの間でプリンタドライバ固有の設定情報をやり取りするために、オペレーティングシステムが提供する印刷オブジェクトを受け取る手段を備えた拡張インターフェースを有する。
また、前記印刷システム判別手段は、前記アプリケーションから受信した前記印刷オブジェクトに対してプリンタ名称を検索し、検索した前記プリンタ名称からプリンタ固有の情報を格納した設定情報ファイルを取得し、前記印刷システム固有の識別情報に基づいて前記第一の印刷システムであるか、前記第二の印刷システムであるかを判別する。
本発明によれば、アプリケーションの仕様や開発環境、プリンタドライバがいずれの印刷システムに対応したものであるかを意識することなく、容易に印刷を実行することが可能となる。
次に、本発明の詳細を実施例の記述に従って説明する。
以下、本発明の第一実施形態について説明する。図1は、本発明の実施形態を示す情報処理装置を説明するブロック図であり、ホストコンピュータ101とEtherNet(登録商標)やUSBなどの通信バス112を介してプリンタA113、プリンタB117とが通信可能な印刷システムの例である。図1では、プリンタは2つのみ図示したが、通信バス112を介して任意の数のプリンタが接続可能である。
ホストコンピュータ101において、102は、RAM104及び外部記憶装置105に格納されたプログラムに従って各部を制御するCPUである。プリンタA113及びプリンタB117に対応したプリンタドライバを実行し、アプリケーションプログラムに基づいて作成された出力情報をプリンタに対応する出力コマンドに変換し、プリンタA113またはプリンタB117に所定のプロトコルで出力する。
103はROMで、CPU102が実行するBIOSプログラムやフォントデータを格納するROMである。104は、RAMで、必要に応じてCPU102がデータの書き込みや読み出しを行ったりするために使用され、プリンタドライバ起動時には、プリンタドライバのプログラムコードがこのRAM104にロードされる。
105は外部記憶装置で、CPU102が読み出すプログラムコードが格納されており、本実施形態の機能の一部を実現するデバイスで、例えば、FD、CD−RW、HDDなどである。
106が入力デバイス制御部で、キーボードやマウス等の入力デバイス108を制御する。107は表示装置制御部で、CRT等の表示装置109を制御する。110は内部バスで、各構成要素間のデータ通信を行うデータバス、システムバスで構成される。111は通信I/Fで、通信バス112を介してプリンタA113及びプリンタB117との通信を司り、双方向通信可能である。
なお、シリアルインタフェースとしてはUSB、IEEE1394など、パラレルインタフェースとしてはセントロニクス、SCSIなど複数の種類が想定されるが、双方向の通信を実現するものであればどのようなインタフェースでも構わない。
プリンタA113において、115はプリントコントローラで、通信I/F114より得られたプリンタコマンドをもとにプリンタエンジン116を制御し印刷を行う。116はプリンタエンジンで、プリンタヘッドの操作や記録媒体の搬送を行う機構である。
本実施例では、ホストコンピュータ101上で実行されるオペレーティングシステムは、二つ以上の印刷システムが共存するオペレーティングシステムの構成を有し、ファットバイナリ形式をサポートしているものとする。このような仕様のオペレーティングシステムとして、米国アップル社のMac OS Xを想定している。
図2は、オペレーティングシステム(Mac OS X)における印刷処理を説明するブロック図である。印刷処理が実行されると、アプリケーション201は、ユーザによって作成された文書データ(画像データ)に基づく描画データを、オペレーティングシステム202へ渡すとともにオペレーティングシステム202に対し印刷処理の依頼を行う。オペレーティングシステム202はアプリケーションから渡された描画データを印刷スプールファイル203にセーブする。アプリケーションから描画データをすべて受け取り印刷スプールファイル203に保存した後、オペレーティングシステム202は出力先のプリンタに対応したプリンタドライバ204をロードする。オペレーティングシステム202は印刷スプールファイル203から描画データをロードして、バンド処理を行い、1バンド分のラスタライズデータを作成する。オペレーティングシステム202は生成したラスタライズデータをプリンタドライバ204に渡し処理依頼する。プリンタドライバ204は渡されたラスタライズデータをプリンタコマンドへ変換して、オペレーティングシステム202の通信機能を利用してプリンタ205へ出力する。プリンタ205ではこのようにして生成された印刷コマンドに基づいて印刷を行う。
図3は、本実施の形態において、印刷システムAを備えるオペレーティングシステムに適用した印刷システムと、CUPS印刷システムを備えるオペレーティングシステムに適用した印刷システムが共存する環境における全体の概略構成を示すブロック図である。
以下、図面を参照して印刷システムA303について説明する。印刷システムA303は、情報処理装置としてのホストコンピュータ301と、それにEtherNetやUSBなどの通信バスを介して接続されるプリンタA319とから構成される。ホストコンピュータ301は、印刷システムA303、印刷システムA用プリンタドライバ311を備え、アプリケーション302から受け取った印刷データを印刷システムA303及び印刷システムA用プリンタドライバ311を通じてプリンタA319が処理可能(印刷可能)なプリントデータに変換して出力する。
アプリケーション302は、印刷システムA303に対して印刷要求を行うものであり、印刷開始時にPDF形式の印刷データと用紙サイズ、用紙種類、インク種類などが設定された印刷設定情報とを印刷システムA303に受け渡す。印刷システムA303は、プリンタA319に印刷を実行させるための印刷処理全般を管理する処理を行う。この印刷システムA303は、アプリケーション302からの印刷設定情報をジョブチケットとして受け取り、印刷システムA用プリンタドライバ311のプリントデータ生成部313からのデータ取得要求に基いて、オペレーティングシステム内にライブラリとして備えられている所定のAPI(Application Program Interface)を読み込むことで、上記PDF形式の印刷データをラスタデータに変換する。このラスタデータとジョブチケットとを印刷システムA用プリンタドライバ311に受け渡す。
印刷システムA用プリンタドライバ311は、印刷システムA303より取得したジョブチケットに基いて、ラスタデータをプリンタA319で処理可能なプリントデータに変換するデータ展開処理を行う。このデータ展開処理では、色変換などの画像形成用のデータを生成し、そのデータに所定の印刷コマンドを付加することでプリントデータを生成する。印刷システムA用プリンタドライバ311は、生成したプリントデータをプリンタA319へ出力する。これにより、プリンタA319では、プリントデータに基づいて印刷媒体への印刷が行われる。以上までの構成が印刷システムAの基本構成となる。
印刷システムA303は、ファイル生成部304とファイル登録部305とを備えている。ファイル登録部305には、そのプリンタA319のプリンタ名やアイコンに関する情報の他、プリンタA319のオプションや機能に関するプリンタ機能固有の情報を記述したPPD(PostScript(登録商標)Printer Description)ファイル306が登録される。
ファイル生成部304は、プリンタA319の初回起動時に、プリンタA319に対応する印刷システムA用プリンタドライバ311にプリンタ情報を問い合わせ、印刷システムA用プリンタドライバ311からプリンタ情報を取得すると、取得したプリンタ情報に基づきPPDファイル306を生成し、ファイル登録部305に登録する。印刷システムA303は、このようにファイル生成部304により生成したPPDファイル306をファイル登録部305に登録することで、オペレーティングシステムへのプリンタA319の登録処理を行う。アプリケーション302から印刷要求を受付けた際には、ファイル登録部305に登録されているPPDファイル306を参照することで、対応するプリンタ情報をアプリケーション302に回答する。これにより、アプリケーション302では、プリンタ情報に基づきジョブチケットが生成される。
印刷システムA用プリンタドライバ311は、プリンタ情報返答部312とプリントデータ生成部313と相互通信部314とを備えている。プリンタ情報返答部312は、プリンタ登録処理の際に必要となるプリンタ情報を印刷システムA303からの問い合わせに対して返答する処理部である。プリントデータ生成部313は、印刷開始時に、印刷システムA用プリンタドライバ311によって初期化され、ジョブ開始指示に基づいて印刷システムA303から取得したラスタデータをプリンタA319での処理に適した画像形成用のデータに展開し、印刷コマンドを付加してプリントデータを生成する。そして印刷システムA303からのジョブ終了指示に基づいて処理を終了する。また、プリントデータ生成部313は、プリンタA319から一定時間間隔で取得したプリンタA319に関するステータス情報を解析しエラー処理なども行う。相互通信部314は、プリンタA319との間で双方向のデータ通信を行うための通信モジュールであって、プリントデータ生成部313から受信したプリントデータをプリンタA319へ送信したり、プリンタA319から受信したステータス情報をプリントデータ生成部313へ送信したりする。
次に、図面を参照してCUPS印刷システム307について説明する。CUPS印刷システム307は、情報処理装置としてのホストコンピュータ301と、それにEtherNetやUSBなどの通信バスを介して接続されるプリンタB320とから構成される。ホストコンピュータ301は、CUPS印刷システム307、CUPS用プリンタドライバ315を備え、アプリケーション302から受け取った印刷データをCUPS印刷システム307及びCUPS用プリンタドライバ315を通じてプリンタB320が処理可能(印刷可能)なプリントデータに変換して出力する。
アプリケーション302は、CUPS印刷システム307に対して印刷要求を行うものであり、印刷開始時にPDF形式の印刷データと用紙サイズ、用紙種類、インク種類などが設定された印刷設定情報とをCUPS印刷システム307に受け渡す。CUPS印刷システム307は、プリンタB320に印刷を実行させるための印刷処理全般を管理する処理を行う。このCUPS印刷システム307は、印刷要求があった場合に、PPDファイル310を元に、アプリケーション302からの印刷設定情報をカップスオプション(Cups Option)として受け取り、カップスオプションとPDF形式の印刷データとをCUPS用プリンタドライバ315に受け渡す。
CUPS用プリンタドライバ315は、CUPS印刷システム307より取得したカップスオプションをジョブチケットに変換するとともに、PDF形式の印刷データをラスタデータに変換する。その後、CUPS用プリンタドライバ315は、さらに変換したジョブチケットに基づいてラスタデータを、プリンタB320で処理可能なプリントデータに変換して、プリンタB320に出力する。これにより、プリンタB320では、受信したプリントデータに基づいて印刷媒体への印刷が行われる。以上までの構成がCUPS印刷システムの基本構成となる。
CUPS印刷システム307は、ファイル取得部308と、ファイル登録部309とを備えている。ファイル登録部309には、印刷システムA303と同様、プリンタB320のプリンタ名やアイコンに関する情報の他、そのプリンタB320のオプションや機能に関するプリンタ機種固有の情報を記述したPPDファイル310が登録される。
ここで、CUPS印刷システム307においては、PPDファイル310はCUPS用プリンタドライバ315のインストールの際にファイル登録部308に登録される。このため、CUPS印刷システム307においては、プリンタB320の初回接続時には、ファイル取得部308により、PPDファイル310の検索処理のみ行われる。そして、その後、アプリケーション302から印刷要求を受け付けた際には、PPDファイル310を参照することで必要なプリンタ情報を読み取り、それをアプリケーション302に回答する。これにより、アプリケーション302では、PPDファイル310のプリンタ情報に基づいてカップスオプションが生成される。
CUPS用プリンタドライバ315は、データ形式変換部316と、プリントデータ生成317と、相互通信部318とを備えている。このうち、プリントデータ生成部317および相互通信部318は、前述した印刷システムA用プリンタドライバ311に備えられるものと同じものである。データ形式変換部316は、プリントデータ生成部317に対する印刷開始に伴う初期化処理や、その後のジョブの開始処理および終了処理などを行う。また、データ形式変換部316は、そのジョブ実行時において、アプリケーション302から受信した印刷設定情報をカップスオプション形式からジョブチケット形式に変換する処理を行うとともに、PDF形式の印刷データを中間データのラスタデータに変換する処理を行う。プリントデータ生成部317は、こうしてデータ形式変換部316から取得したラスタデータとジョブチケットとに基づいてプリントデータを生成し、このプリントデータを相互通信部318を介してプリンタB320へ送信する。
図4は、ファットバイナリ形式とそうでない非ファットバイナリ形式、すなわち異なるアーキテクチャのアプリケーションとプリンタドライバの関係を表すブロック図である。本実施例では、64ビットプロセッサが搭載されたホストコンピュータ上で動作しているものとする。32ビットアプリケーション401は、32ビットバイナリコードのみを含んでいる非ファットバイナリ形式のアプリケーションであるとみなすことができる。一方、64ビットアプリケーション402は、ファットバイナリ形式の32ビットバイナリコードと64ビットバイナリコードの両方を含んでおり、インストールされたホストコンピュータに搭載されているプロセッサの仕様に基づいて最適なコードが決定付けられる。本実施例では、64ビットプロセッサが搭載されたホストコンピュータ上で動作しているものと想定しているため、64ビットアプリケーションであるとみなすことができる。
実施形態では、Mac OS Xシステムで定義されているプリンタドライバ命令(DeviceDriverInterface、略して以後DDIと呼ぶ)とは別に、独自のプリンタドライバ命令(以後、拡張DDIと呼ぶ)を新たに定義し、アプリケーションはプリンタドライバに用意された拡張DDIを直接利用することで、印刷情報の制御を行い、アプリケーションの設定画面上にプリンタドライバ固有の設定項目をメニューとして用意する手段を用いる。
プリンタドライバはアプリケーションの仕様に基づいて最適なコードが決定付けられる。32ビットアプリケーション401が非ファットバイナリ形式のプリンタドライバ403に対して印刷を実行しようとした場合、プリンタドライバ403は32ビットバイナリコード404を含む拡張DDIを備えているため、正常に印刷処理を実行することができる。また同様に、32ビットアプリケーション401がファットバイナリ形式のプリンタドライバ405に対して印刷を実行しようとした場合、プリンタドライバ405は32ビットバイナリ406を含む拡張DDIを備えているため、正常に印刷処理を実行することが可能である。
一方、64ビットアプリケーション402が非ファットバイナリ形式のプリンタドライバ403に対して印刷を実行しようとした場合、プリンタドライバ403は32ビットバイナリコード404を含む拡張DDIを備えていないため、印刷処理を実行することはできない。この場合、64ビットアプリケーション402がプリンタドライバ403に印刷処理を実行した時点で、64ビットアプリケーション402が強制終了してしまう。また、64ビットアプリケーション402がファットバイナリ形式のプリンタドライバ405に対して印刷を実行しようとした場合には、プリンタドライバ405は64ビットバイナリコード407を含む拡張DDIを備えているため、正常に印刷処理を実行することが可能である。
以上、図3で述べたように印刷システムA303とCUPS印刷システム307とが共存する環境において、それぞれ取得する印刷設定情報のデータの形式やラスタデータの取得方法が異なるため、プリンタドライバはそれぞれ別々に作成する必要がある。また、図4で述べたように非ファットバイナリ形式のアプリケーションとプリンタドライバの関係には正常に印刷処理を実行できない系が存在する。
図5は、本発明の実施形態におけるプリンタドライバの構成を表すブロック図である。図3や図4で述べたように、Mac OS Xにおいて、印刷システムA用プリンタドライバとCUPS用プリンタドライバ、またはファットバイナリ形式プリンタドライバと非ファットバイナリプリンタドライバなど印刷システムや対応アーキテクチャの異なるプリンタドライバが同システム内に混在する場合が存在する。さらに、アプリケーション側においても「Cocoa」で構築されたアプリケーション(501、または502)と「Carbon」で構築されたアプリケーション(503、または504)などが混在している。そのため、プリンタドライバは共通モジュールとしてBridgeモジュール505を備え、アプリケーションに対して最適なインターフェースを提供するために、Cocoa用インターフェースとCarbon用インターフェースの両方を有し、アプリケーションが意識することなく所望のプリンタに対応したプリンタドライバの用意した拡張DDI(506、または507)を利用することを可能とする。
一般的にMac OS Xシステムにおいて、プリンタドライバの設定情報を格納するための印刷オブジェクトが用意されている。この印刷オブジェクトには、現在選択されているプリンタ名称や、用紙サイズ、オリエンテーションなど印刷設定の一般的な項目が保持されており、アプリケーションは自身のプログラム内部で直接現在の設定を参照し、同時にアプリケーションから直接更新することが可能である。さらに、印刷オブジェクトにはプリンタドライバの仕様に固有の情報についても保持されているが、これについては、プリンタドライバごとにその内部構造が異なるためアプリケーションは直接現在の設定を参照したり、更新したりすることができない。従って、アプリケーションはプリンタドライバの用意した拡張DDIを利用してプリンタドライバ固有の印刷情報のやりとりを行っている。つまり、Bridgeモジュール505は、アプリケーションが拡張DDIを利用して印刷情報をコントロールする場合において、拡張DDI命令のアプリケーション側からの入力情報を印刷オブジェクトの形で受け付ける。
図6は、本発明の実施形態における図5に示すBridgeモジュール505が、適切に対象プリンタに対応したプリンタドライバの用意した拡張DDIを決定する場合の、印刷システムA用プリンタドライバとCUPS用プリンタドライバの決定処理の流れを表すフローチャートである。ステップ601で、Bridgeモジュールは、Cocoa用インターフェース、Carbon用インターフェース、いずれかのインターフェースを用いてアプリケーション側から印刷オブジェクトを受け取る。次にステップ602に進み、印刷オブジェクトの中の設定情報を参照して、所望の対象プリンタの名称を検索する。ステップ602で検索した結果、得られた対象プリンタの名称をもとに、Mac OS Xシステムが提供するAPIを利用して、各プリンタの機種固有の情報を記述した設定情報ファイルを取得することができる(ステップ603)。本実施の形態においては、設定情報ファイルは「PPDファイル」に相当する。続いてステップ604で、取得した設定情報ファイルに記述されている情報を参照して、対応している印刷システムが印刷システムAであるのか、CUPS印刷システムであるのかを判別し(ステップ605)、対応した拡張DDIを決定する(ステップ606)。
このように、印刷システムA用拡張DDIとCUPS用拡張DDIのいずれかを判別している。
図7は、本発明の実施形態における図5に示すBridgeモジュール505について、アプリケーションが拡張DDIを利用して印刷情報をコントロールする場合に、図6に示す印刷システム決定処理にて決定した拡張DDIと、アプリケーションとの組み合わせで正常に動作するかどうかの決定するアーキテクチャ判別処理の流れを表すフローチャートである。ここで、本発明の実施形態におけるBridgeモジュールは、アプリケーションの仕様(32ビットまたは、64ビット)に従って正常に動作する必要があるため、ファットバイナリ形式である。図6に示す印刷システム決定処理にて決定した拡張DDIに対して、Bridgeモジュールはアプリケーションから拡張DDI命令を受け取り対象となる拡張DDIに受け渡す。このとき、対象となる拡張DDIがアプリケーションの起動アーキテクチャ(32ビットまたは、64ビット)に対応しているか否かの判別を行う(ステップ701)。具体的には、対象となる拡張DDIに拡張DDI命令を直接実行するのではなく、各種拡張DDI命令を実現するために拡張DDIが用意している関数のポインタの取得を行う。Bridgeモジュールは、ポインタの取得が成功した場合に、アプリケーションの起動アーキテクチャと同じバイナリコードを拡張DDIが含んでいると判断できる(ステップ702/Yes)。その後、拡張DDIへのアクセスを開始して拡張DDI命令を実行し(ステップ703)、印刷設定情報のコントロールを行う(ステップ704)。Bridgeモジュールが、ポインタの取得に失敗した場合には、アプリケーションの起動アーキテクチャと同じバイナリコードを拡張DDIが含んでいないため(ステップ702/No)、ステップ705に進みアプリケーションにプリンタドライバが非サポートである旨を通知する。
このように、対象とする拡張DDIが正常に動作するためのバイナリコードを含んでいるのか否かを判断している。
以上の処理により、アプリケーションがプリンタドライバの用意している拡張DDIを利用して直接印刷情報を制御する場合に、アプリケーション側は、自身の開発環境に適したインターフェースを利用して、起動アーキテクチャを意識することなく、適切な印刷システムに準ずるプリンタドライバに対して印刷処理を実行することが可能となる。
本発明の情報処理装置のハードウェア構成を説明するためのブロック図である。 本発明の情報処理装置で動作するソフトウェア構成を説明するためのブロック図である。 本発明の情報処理装置で動作する印刷システムAとCUPS印刷システムが共存する環境におけるオペレーティングシステムの全体の概略構成を説明するためのブロック図である。 Mac OS X(登録商標)における、ファットバイナリ形式と非ファットバイナリ形式のプリンタドライバとアプリケーションとの共存の仕組みを説明するためのブロック図である。 本発明の第一実施形態における、プリンタドライバの構成を説明するためのブロック図である。 本発明の第一実施形態における、印刷システム判別を行う動作の流れを説明するためのフローチャートである。 本発明の第一実施形態における、アーキテクチャ判別を行う動作の流れを説明するためのフローチャートである。

Claims (10)

  1. 接続された印刷装置に対して印刷用データを提供する情報処理装置において、アプリケーションからは直接読み書きできない印刷情報を制御可能な拡張モジュールを有するプリンタドライバであって、アプリケーションからの描画出力に応じて処理可能なプリンタドライバが、第一の印刷システムからの第一態様の印刷設定情報と第一態様の印刷データの入力を受け付け、プリンタで印刷可能なプリントデータを生成する第一態様のプリンタドライバであるか、第二の印刷システムからの第二態様の印刷設定情報と第二態様の印刷データの入力を受け付け、プリンタで印刷可能なプリンタデータを生成する第二態様のプリンタドライバであるかを判別する印刷システム判別手段と、第一種類のアプリケーションからの描画出力命令と、第二種類のアプリケーションからの描画出力命令を受け付ける描画出力命令受け付け手段と、前記受け付けた描画出力命令に応じて、前記拡張モジュールが出力元のアプリケーションのアーキテクチャ仕様と一致するかを判別するアーキテクチャ判別手段と、
    を有することを特徴とする情報処理装置。
  2. 前記拡張モジュールは、プリンタドライバとアプリケーションとの間でプリンタドライバ固有の設定情報をやり取りするために、オペレーティングシステムが提供する印刷オブジェクトを受け取る手段を備えた拡張インターフェースを有することを特徴とする請求項1に記載の情報処理装置。
  3. 前記印刷システム判別手段は、前記アプリケーションから受信した前記印刷オブジェクトに対してプリンタ名称を検索し、検索した前記プリンタ名称からプリンタ固有の情報を格納した設定情報ファイルを取得し、前記印刷システム固有の識別情報に基づいて前記第一の印刷システムであるか、前記第二の印刷システムであるかを判別することを特徴とする請求項1または請求項2に記載の情報処理装置。
  4. 前記アーキテクチャ判別手段は、前記拡張モジュールが前記出力元のアプリケーションのアーキテクチャ仕様と一致しないと判断された場合に、前記拡張モジュールが前記出力元のアプリケーションにエラーを通知するエラー通知手段を有することを特徴とする請求項1〜請求項3のいずれかに記載の情報処理装置。
  5. 接続された印刷装置に対して印刷用データを提供する情報処理装置の情報処理方法において、アプリケーションからは直接読み書きできない印刷情報を制御可能な拡張モジュールを有するプリンタドライバであって、アプリケーションからの描画出力に応じて処理可能なプリンタドライバが、第一の印刷システムからの第一態様の印刷設定情報と第一態様の印刷データの入力を受け付け、プリンタで印刷可能なプリントデータを生成する第一態様のプリンタドライバであるか、第二の印刷システムからの第二態様の印刷設定情報と第二態様の印刷データの入力を受け付け、プリンタで印刷可能なプリンタデータを生成する第二態様のプリンタドライバであるかを判別する印刷システム判別工程と、第一種類のアプリケーションからの描画出力命令と、第二種類のアプリケーションからの描画出力命令を受け付ける描画出力命令受け付け工程と、前記受け付けた描画出力命令に応じて、前記拡張モジュールが出力元のアプリケーションのアーキテクチャ仕様と一致するかを判別するアーキテクチャ判別工程と、を含むことを特徴とする情報処理方法。
  6. 前記拡張モジュールは、プリンタドライバとアプリケーションとの間でプリンタドライバ固有の設定情報をやり取りするために、オペレーティングシステムが提供する印刷オブジェクトを受け取る工程を備えた拡張インターフェースを有することを特徴とする請求項5に記載の情報処理方法。
  7. 前記印刷システム判別工程は、前記アプリケーションから受信した前記印刷オブジェクトに対してプリンタ名称を検索し、検索した前記プリンタ名称からプリンタ固有の情報を格納した設定情報ファイルを取得し、前記印刷システム固有の識別情報に基づいて前記第一の印刷システムであるか、前記第二の印刷システムであるかを判別する工程を備えたことを特徴とする請求項5または請求項6に記載の情報処理方法。
  8. 前記アーキテクチャ判別工程は、前記拡張モジュールが前記出力元のアプリケーションのアーキテクチャ仕様と一致しないと判断された場合に、前記拡張モジュールが前記出力元のアプリケーションにエラーを通知するエラー通知工程を有することを特徴とする請求項5〜請求項7のいずれかに記載の情報処理方法。
  9. 請求項5〜請求項8のいずれかに記載の情報処理方法を実行するコンピュータで読取り可能なプログラム。
  10. 請求項9に記載のプログラムを記憶したコンピュータで読取り可能な記憶媒体。
JP2007251855A 2007-09-27 2007-09-27 情報処理装置、情報処理方法、プログラム、及び記憶媒体 Pending JP2009086722A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007251855A JP2009086722A (ja) 2007-09-27 2007-09-27 情報処理装置、情報処理方法、プログラム、及び記憶媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007251855A JP2009086722A (ja) 2007-09-27 2007-09-27 情報処理装置、情報処理方法、プログラム、及び記憶媒体

Publications (1)

Publication Number Publication Date
JP2009086722A true JP2009086722A (ja) 2009-04-23

Family

ID=40660117

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007251855A Pending JP2009086722A (ja) 2007-09-27 2007-09-27 情報処理装置、情報処理方法、プログラム、及び記憶媒体

Country Status (1)

Country Link
JP (1) JP2009086722A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6129376B1 (ja) * 2016-03-28 2017-05-17 株式会社ラック プログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6129376B1 (ja) * 2016-03-28 2017-05-17 株式会社ラック プログラム
JP2017182202A (ja) * 2016-03-28 2017-10-05 株式会社ラック プログラム
WO2017169631A1 (ja) * 2016-03-28 2017-10-05 株式会社ラック プログラム
TWI625673B (zh) * 2016-03-28 2018-06-01 Lac股份有限公司 電腦程式產品

Similar Documents

Publication Publication Date Title
US7768661B2 (en) Information processing apparatus, control method therefor, computer program, and computer-readable storage medium
US8773691B2 (en) Printing control apparatus, printing control method, and storage medium
JP5793830B2 (ja) 情報処理装置、印刷制御プログラム、および記憶媒体
JP7355147B2 (ja) アプリケーションプログラム
KR20210021078A (ko) 정보 처리 장치, 제어 방법 및 프로그램
JP4018609B2 (ja) 情報処理装置、情報処理方法および情報処理プログラム並びにコンピュータ読み取り可能な記憶媒体
JP2024028320A (ja) サポートプログラム、情報処理装置、および印刷方法
JP2010165261A (ja) 印刷制御装置とその制御方法
JP2005208894A (ja) 周辺装置制御方法、制御プログラム及びその装置
JP2012155401A (ja) 印刷システム、印刷装置、印刷システムの制御方法、印刷装置の制御方法、プログラム
JP2015026215A (ja) 印刷システムおよびその制御方法、情報処理装置およびその制御方法、印刷装置およびその制御方法、並びにプログラム
JP2023018114A (ja) プログラム、情報処理装置、及び情報処理装置の制御方法
JP2009053789A (ja) 情報処理装置とプログラムとコンピュータ読み取り可能な記録媒体
JP5361482B2 (ja) 情報処理装置、ネットワーク設定方法、及びプログラム
JP2009086722A (ja) 情報処理装置、情報処理方法、プログラム、及び記憶媒体
JP2007102378A (ja) ドライバプログラム
JP2005018494A (ja) データ処理装置および印刷データ生成方法およびコンピュータが読取り可能なプログラムを格納した記憶媒体およびプログラム
JPH10283129A (ja) 印刷制御装置及び印刷制御プログラムのインストール方法及び記憶媒体
JP2003256173A (ja) 印刷装置および印刷処理方法およびコンピュータが読み取り可能な記憶媒体およびプログラム
JP2003050684A (ja) 印刷システム、印刷装置、データ処理装置、それらの環境設定方法、プログラム及び記憶媒体
JP6007015B2 (ja) 画像形成装置及び画像形成プログラム
WO2023190147A1 (ja) サポートプログラム
JP2009104282A (ja) 印刷システムおよび印刷用プログラム
JP2007148514A (ja) 制御データ変換装置
JP2023141759A (ja) サポートプログラム

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100201

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20100630