JP2007249860A - 情報処理装置におけるプリンタドライバ変更方法とプログラム - Google Patents

情報処理装置におけるプリンタドライバ変更方法とプログラム Download PDF

Info

Publication number
JP2007249860A
JP2007249860A JP2006075551A JP2006075551A JP2007249860A JP 2007249860 A JP2007249860 A JP 2007249860A JP 2006075551 A JP2006075551 A JP 2006075551A JP 2006075551 A JP2006075551 A JP 2006075551A JP 2007249860 A JP2007249860 A JP 2007249860A
Authority
JP
Japan
Prior art keywords
printer driver
driver
type
application
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.)
Granted
Application number
JP2006075551A
Other languages
English (en)
Other versions
JP4651112B2 (ja
JP2007249860A5 (ja
Inventor
Satoyuki Furuya
智行 古谷
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 JP2006075551A priority Critical patent/JP4651112B2/ja
Priority to US12/159,955 priority patent/US8305610B2/en
Priority to PCT/JP2007/054757 priority patent/WO2007108340A1/en
Priority to CN2007800076047A priority patent/CN101395569B/zh
Publication of JP2007249860A publication Critical patent/JP2007249860A/ja
Publication of JP2007249860A5 publication Critical patent/JP2007249860A5/ja
Application granted granted Critical
Publication of JP4651112B2 publication Critical patent/JP4651112B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1208Improving or facilitating administration, e.g. print management resulting in improved quality of the output result, e.g. print layout, colours, workflows, print preview
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1211Improving printing performance
    • G06F3/1212Improving printing performance achieving reduced delay between job submission and print start
    • G06F3/1214Improving printing performance achieving reduced delay between job submission and print start at the submitting node
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1244Job translation or job parsing, e.g. page banding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1284Local printer device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1275Print workflow management, e.g. defining or changing a workflow, cross publishing

Abstract

【課題】一つのプリンタに対応する複数のプリンタドライバがある場合、良好な結果をもたらすプリンタドライバを利用して印刷する。
【解決手段】UIドライバはそれを呼び出したアプリケーションの名称と種類とを示す情報を取得する。そしてアプリケーションの種類と、選択されているプリンタドライバの種類とが整合するか判定する。整合しなければ、アプリケーションが使用するプリンタドライバの名称を、整合するプリンタドライバの名称に書き替える。アプリケーションは、それ以降書き替えられた名称のプリンタドライバを使用して印刷する。
【選択図】図1

Description

本発明は、たとえば異なる複数のグラフィクスエンジンを用いて印刷処理等をおこえる情報処理装置および情報処理装置におけるプリンタドライバ変更方法とプログラムに関するものである。
ホストコンピュータで実行されるアプリケーションから画像やテキストを印刷装置にて印刷するために、オペレーティングシステムは図3に示すような構成を取るのが一般的である。すなわち、アプリケーション101はグラフィクスエンジン103に対して描画データを渡し、その描画データはグラフィクスエンジン103にて加工されてからプリンタドライバ104に渡される。プリンタドライバは印刷装置に対する印刷データ(一般的にはPDL:Page Description Language)を生成する。その印刷データはスプーラ105に格納された後、印刷装置1500に送られる。
特にグラフィクスエンジン103は、アプリケーション101で作成された描画データの解像度を変換したり、プリンタドライバ104の処理能力に合わせてシミュレート処理等といった描画データの加工を行う。これによって、アプリケーション101とプリンタドライバ104とが互いに非依存な関係で動作することが出来る。グラフィクスエンジン103は、通常OS(オペレーティングシステム)102の一部として提供される。
一方、グラフィクスエンジン103は必ずしも一つであるとは限らず、二つ以上のグラフィクスエンジンが共存する構成(OS)が存在する。
例えば、2005年に米国シアトルにてWinHEC 2005というハードウェアエンジニアリングカンファレンスがマイクロソフト社によって開催された。この場にて、Microsoftの新しいOS(Windows(登録商標)Vistaなる名称を持つ。)は、図1に示すような2つのグラフィクスエンジンが共存する構成になることが紹介された(非特許文献1)。
従来のマイクロソフト社のプリンティングシステムは、Win32 APIというAPI(Application Programming Interface)を使用するアプリケーション(以後Win32アプリケーションと記述)により、GDI(Graphic Device Interface)と呼ばれるグラフィクスエンジンを使用する。そしてGDIから呼び出されるプリンタドライバ(以後GDIプリンタドライバと記述)によって、描画データから印刷データを作成する、というものであった。この印刷処理フローを本実施形態ではGDIプリントパスという。
Windows(登録商標)Vistaでは、従来のGDIプリントパスに加え、XPSプリントパスという新しい印刷処理フローが追加される。XPSプリントパスでは、WinFx APIというAPIを使用するアプリケーション(以後WinFxアプリケーションと記述)によりWPF(Windows(登録商標) Presentation Foundation)と呼ばれるグラフィクスエンジンを使用する。そしてWPFグラフィクスエンジンにより、XPS(XML Paper Specification)形式の描画データを、プリンタドライバ(以後XPSプリンタドライバ)に渡し、プリンタドライバが印刷データに変換する。
さらにこのGDIとWPFといったグラフィクスエンジンは、互いに連携することが出来る。この連携によりWin32アプリケーションからXPSプリンタドライバに描画データを渡すことが出来たり、WinFxアプリケーションからGDIプリンタドライバに描画データを渡すことが出来るようになる。
この連携のために、GDIプリンタドライバを用いてWinFxアプリケーションから印刷を行う場合、描画データは、WPFグラフィックエンジンでXPS形式の描画データに変換され、さらにXPS形式からEMF形式の描画データに変換される。変換された描画データはEMFスプールファイルに格納された後、GDIドライバにて印刷データへの変換が行われる。
また、XPSプリンタドライバを用いてWin32アプリケーションから印刷を行う場合、描画データは、GDIグラフィックエンジンでEMF形式の描画データに変換され、さらにEMF形式からXPS形式の描画データに変換される。変換された描画データは、XPSスプールファイルに格納された後、XPSプリンタドライバにて印刷データへ変される。
このようにWindows(登録商標)VISTAにおいては4つの印刷処理フローが用意される。これにより、GDIプリンタドライバあるいはXPSプリンタドライバのどちらか一方を用意すれば、Win32アプリケーションおよびWinFxアプリケーション両方からの印刷処理に対応することが出来る。
マイクロソフトコーポレーション、「Advances in Windows(登録商標) Printing:TWPR05001_WinHEC05.ppt」、[オンライン]、平成16年5月7日、[平成17年2月28日検索]、インターネット、<URL:http://www.microsoft.com/whdc/device/print/default.mspx>
しかしながら、XPS形式とEMF形式とは異なるため、描画データ形式の変換には、印刷品質や機能、印刷速度等の点で課題が存在する。
例えばEMF形式でサポートされているROP演算(ラスターオペレーション処理演算)のような論理演算を含む描画データは、XPS形式ではサポートされていない。そのため、米国マイクロソフト社が決定する仕様によっては、論理演算を含む描画データに対しては、GDI→XPS変換モジュールで変換する際に論理演算情報が欠落してしまうおそれがある。XPSプリンタドライバには論理演算情報が削除された描画データが渡される場合、Win32アプリケーションにおいて意図された出力結果をXPSプリンタドライバで作成することが出来なくなる可能性がある。
逆にXPS形式においてサポートされている高度なグラフィクス描画データは、EMF形式においてサポートされていない。そのため、そのような描画データに対してはXPS→GDI変換モジュールで変換する際に、フラッタリングと呼ばれる局所的なビットマップ化が行われる。その場合、グラフィクスデータがビットマップデータに変換されてしまうことにより、GDIプリンタドライバでは元のオブジェクト属性が判断出来なくなってしまい、オブジェクト属性に応じた出力結果を作成することが出来ない。すなわち、データ形式の変換により出力される画像品質が劣化する。例えば、プリンタドライバでNページ印刷を行う場合、ビットマップ化されたデータを縮小して配置するため、グラフィクスの描画オブジェクトを縮小するサイズで描画する場合に比べて画質が低下してしまう。
また、例えばXPS形式においてサポートされる電子署名情報は、EMF形式においてはサポートされていない。またEMF形式においてサポートされる、アプリケーションからの情報を直接GDIプリンタドライバに伝える処理は、XPS形式においてはサポートされていない。そのため、XPS形式からEMF形式へ、あるいはその逆の変換が行われる場合、変換元の形式の描画データに、変換後の形式ではサポートされない機能を使用する命令が含まれていると、その機能が遂行されることはない。すなわち、この様な場合には、実現できない機能が存在する。
また、GDI→XPS変換やXPS→GDI変換等の処理が発生することにより、処理のオーバーヘッドが生じ、変換が不要な処理径路に較べると印刷処理速度が劣化してしまうおそれがある。
以上のように、データ形式の変換が行われると、品質面、機能面、速度面の何れの点においても問題が生じる。そのため、データ形式の変換が行われるような印刷処理径路を避けることが望ましい。
そのために、同じ印刷装置に対するXPSプリンタドライバとGDIプリンタドライバの両者をコンピュータにインストールしておいても、使用するプリンタドライバの選択は利用者に任されている。すなわち、Windows(登録商標)VISTAにおけるグラフィクスエンジンは、データ形式の変換が必要ない処理径路の選択を動的に行うことはない。さらに、一般の利用者の多くは、アプリケーションがWin32アプリケーションなのかWinFxアプリケーションなのかを意識したり、印刷処理フローが4通りあることを認識していない。そのため、ひとつのプリンタドライバをデフォルトのプリンタドライバとしていったん選択してしまうと、アプリケーションの種類に関わらず選択したプリンタドライバが使用される。このように、印刷処理径路において、GDI→XPS変換やXPS→GDI変換というデータ形式の変換を避けることは困難であると予想される。
本発明は上記従来例に鑑みてなされたもので、上記課題を解決することを目的とする。さらに、本発明は、一つのプリンタに対して複数のプリンタドライバが利用可能な場合に、選択されているプリンタドライバがいずれであるかに関わらず、アプリケーションが使用するグラフィクスエンジンに対応したプリンタドライバを使用して印刷を実行できる情報処理装置および情報処理装置におけるプリンタドライバ変更方法とプログラムを提供することを目的とする。
上記目的を達成するために本発明は以下の構成を備える。すなわち、第1種類のアプリケーションから描画出力に応じて第1種類のプリンタドライバが処理可能な第1印刷情報に変換するための第1描画変換部と、第2種類のアプリケーションからの描画出力に応じて第2種類のプリンタドライバが処理可能な第2印刷情報に変換するための第2描画変換部とが動作するコンピュータにより実行されるプログラムであって、
出力先として呼び出されたプリンタドライバと出力元のアプリケーションの種類とに基づいて、前記第1種類のアプリケーションと前記第1種類のプリンタドライバとの組み合わせ、または前記第2種類のアプリケーションと前記第2種類のプリンタドライバとの組み合わせになっているか判定する判定手段と、
前記判定手段により前記組み合わせのいずれにもなっていないと判定された場合に、前記出力元のアプリケーションが使用するプリンタドライバの識別名を、前記組み合わせを満たすプリンタドライバの識別名に変更する変更手段としてコンピュータを機能させる。
あるいはオペレーティングシステムによる管理の下で、第1種類のアプリケーションから描画出力に応じて第1種類のプリンタドライバが処理可能な第1印刷情報に変換するための第1描画変換部と、第2種類のアプリケーションからの描画出力に応じて第2種類のプリンタドライバが処理可能な第2印刷情報に変換するための第2描画変換部とが動作し、
前記オペレーティングシステムは、プリンタドライバの属性を参照して、参照した属性値に応じた種類のプリンタドライバにより処理可能な印刷情報へ、必要に応じて前記描画出力を変換するコンピュータにより実行されるプログラムであって、
出力先として呼び出されたプリンタドライバと出力元のアプリケーションの種類とに基づいて、前記第1種類のアプリケーションと前記第1種類のプリンタドライバとの組み合わせ、または前記第2種類のアプリケーションと前記第2種類のプリンタドライバとの組み合わせになっているか判定する判定手段と、
前記判定手段により前記組み合わせのいずれにもなっていないと判定された場合に、前記オペレーティングシステムが参照するプリンタドライバの属性を、前記組み合わせを満たすプリンタドライバの属性値に変更する変更手段としてコンピュータを機能させる。
本発明により、一つのプリンタに対して複数のプリンタドライバが利用可能な場合に、選択されているプリンタドライバがいずれであるかに関わらず、アプリケーションが使用するグラフィクスエンジンに対応したプリンタドライバを使用して印刷を実行できる。
[実施形態1]
<コンピュータの構成>
本発明に係る印刷制御装置の一実施形態について説明する。印刷制御装置はコンピュータ(情報処理装置)により実現されている。そのコンピュータのソフトウエア構成例を示す。コンピュータのハードウエア構成は、通常の汎用コンピュータと同様に、CPU、メモリ、ユーザインターフェースデバイス(キーボードやディスプレイ等)、ファイル記憶装置などから構成される。
図1は、複数のグラフィクスエンジンが共存する例として、Windows(登録商標)VISTAにおける印刷処理フローおよび印刷処理のためのソフトウエアコンポーネントを示す。Windows(登録商標)VISTAにおいて、アプリケーションは、第1種類のアプリケーションであるWin32アプリケーション(201)と第2種類のアプリケーションであるWinFxアプリケーション(211)の2種類に区別される。グラフィクスエンジンは、第1描画変換部であるGDI(202)と第2描画変換部であるWPF(212)の2つがOS(102)上に存在する。ここでWin32アプリケーション(201)は、GDI(202)に対して第1描画データであるGDI関数を渡し、WinFxアプリケーション(211)はWPF(212)に対して第2描画データであるWPF API形式データを渡す。また、プリンタダライバは、第1種類のプリンタドライバであるGDIプリンタドライバ(203)と第2種類のプリンタドライバであるXPSプリンタドライバ(213)の2種類に区別される。GDIプリンタドライバ(203)はGDI(202)から描画データを受け取り印刷装置1500に対する印刷データに変換する。XPSプリンタドライバ(213)はWPF(212)から描画データを受け取り印刷装置1500に対する印刷データに変換する。プリンタドライバで作成された印刷データは、スプーラ(105)を経て印刷装置(1500)に送信される。
ここで、Win32アプリケーション(201)からGDI(202)を経由してGDIプリンタドライバ(203)で印刷データを作成する印刷処理フローをGDIプリントパスと呼ぶ。WinFxアプリケーション(211)からWPF(212)を経由してXPSプリンタドライバ(213)で印刷データを作成する印刷処理フローをXPSプリントパスと呼ぶ。ここで、GDIプリントパスとXPSプリントパスを、ストレートプリントパスと総称する。ただし、印刷処理フローはGDIプリントパスとXPSプリントパスだけでなく、Win32アプリケーション(201)からGDI(202)を経てXPSプリンタドライバ(213)で印刷データを作成する印刷処理フローが存在する。またWinFxアプリケーション(211)からWPF(212)を経てGDIプリンタドライバ(203)で印刷データを作成する印刷処理フローも存在する。これらのパスは、GDI→XPS変換部302およびXPS→GDI変換部312により、データ形式を変換することで実現される。ここで、各グラフィックエンジンでお互いのデータ形式に変換するプリントパスを、クロスプリントパスと総称する。
図2を用いて印刷処理フローの説明を行う。図2は、Windows(登録商標)VISTAにおける、2つのグラフィクスエンジン共存の仕組みを示す。Windows(登録商標)VISTAにおける印刷処理フローとしてはフロー351、352、353、354の4種類が存在する。
印刷処理フロー351は、GDIプリントパスを示している。Win32アプリケーション201から渡される描画データは、GDI202にてEMF(Enhanced Metafile)形式でEMFスプールファイルとして格納される。その後GDIプリンタドライバ203にて印刷データへの変換が行われる。
印刷処理フロー354は、Windows(登録商標)VISTAで追加されるXPSプリントパスを示している。WinFxアプリケーション211から渡される描画データは、WPF212にてXPSスプールファイル311に格納され、その後XPSプリンタドライバ213にて印刷データへの変換が行われる。
印刷処理フロー352は、WinFxアプリケーション211からのデータをGDIプリンタドライバ203で印刷する場合の印刷処理フローを示している。WinFxアプリケーション211から渡される描画データは、WPF212を経由してXPS→GDI変換モジュール312にてEMF形式の描画データに変換される。変換された描画データはEMFスプールファイルに格納された後、GDIドライバ203にて印刷データへの変換が行われる。
印刷処理フロー353は、Win32アプリケーション201からXPSプリンタドライバ213で印刷する場合の処理フローを示している。Win32アプリケーション201から渡される描画データは、GDI202を経由してGDI→XPS変換モジュール302にてXPS形式の描画データに変換される。変換された描画データは、XPSスプールファイル311に格納された後、XPSプリンタドライバ213にて印刷データへ変される。
図4は、本実施形態のコンピュータを含むプリンタ制御システムの構成を説明するブロック図である。なお特に断らない限り、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても、LAN,WAN等のネットワークを介して接続が為され処理が行われるシステムであっても本発明を適用できる。
図4において、ホストコンピュータ3000は、ROM3のプログラム用ROMあるいは外部メモリ11に記憶された文書処理プログラム等に基づいて図形、イメージ、文字、表(表計算等を含む)等が混在した文書処理を実行するCPU1を備え、システムバス4に接続される各デバイスをCPU1が総括的に制御する。
また、このROM3のプログラム用ROMあるいは外部メモリ11には、CPU1の制御プログラムであるオペレーティングシステムプログラム(以下OS)等を記憶し、ROM3のフォント用ROMあるいは外部メモリ11には上記文書処理の際に使用するフォントデータ等を記憶し、ROM3のデータ用ROMあるいは外部メモリ11には上記文書処理等を行う際に使用する各種データを記憶する。
RAM2は、CPU1の主メモリ、ワークエリア等として機能する。キーボードコントローラ(KBC)5は、キーボード9や不図示のポインティングデバイスからのキー入力を制御する。CRTコントローラ(CRTC)6は、CRTディスプレイ(CRT)10の表示を制御する。ディスクコントローラ(DKC)7は、ハードディスク(HD)、フレキシブルディスク(FD)等の外部メモリ11とのアクセスを制御する。外部メモリ11には、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、プリンタ制御コマンド生成プログラム(以下プリンタドライバ)等が記憶される。本発明に係るプリンタドライバも外部メモリ11に保存される。
プリンタコントローラ(PRTC)8は、所定の双方向性インターフェース21を介してプリンタ1500に接続されて、プリンタ1500との通信制御処理を実行する。なお、CPU1は、例えばRAM2上に設定された表示情報RAMへのアウトラインフォントの展開(ラスタライズ)処理を実行し、CRT10上でのWYSIWYGを可能としている。
また、CPU1は、CRT10上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウインドウを開き、種々のデータ処理を実行する。ユーザは印刷を実行する際、印刷の設定に関するウインドウを開き、プリンタの設定や、印刷モードの選択を含むプリンタドライバに対する印刷処理方法の設定を行える。
プリンタ1500において、プリンタCPU12は、ROM13のプログラム用ROMに記憶された制御プログラム等あるいは外部メモリ14に記憶された制御プログラム等に基づいて、システムバス15に接続される印刷部(プリンタエンジン)17に出力情報としての画像信号を出力する。
また、このROM13のプログラムROMには、CPU12の制御プログラム等を記憶する。ROM13のフォント用ROMには上記出力情報を生成する際に使用するフォントデータ等を記憶し、ROM13のデータ用ROMにはハードディスク等の外部メモリ14がないプリンタの場合には、ホストコンピュータ上で利用される情報等を記憶している。
CPU12は入力部18を介してホストコンピュータとの通信処理が可能となっており、プリンタ内の情報等をホストコンピュータ3000に通知可能に構成されている。RAM19は、CPU12の主メモリやワークエリア等として機能するRAMでる。RAM19は、図示しない増設ポートに接続されるオプションRAMによりメモリ容量を拡張することができるように構成されている。なお、RAM19は、出力情報展開領域、環境データ格納領域、NVRAM等に用いられる。前述したハードディスク(HD)、ICカード等の外部メモリ14は、メモリコントローラ(MC)20によりアクセスを制御される。
外部メモリ14は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。また、操作パネル18には、操作のためのスイッチおよびLED表示器等が配されている。また、前述した外部メモリは1個に限らず、少なくとも1個以上備え、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていてもよい。さらに、図示しないNVRAMを有し、操作パネル1501からのプリンタモード設定情報を記憶するようにしてもよい。
<ドライバの詳細な構成>
図5は、本実施形態に関わるGDIプリンタドライバ203とXPSプリンタドライバ213の構成を示す。図5では、アプリケーションおよびグラフィクスエンジンについては記載を省略し、ひとつのものであるかのように示した。もちろん、図1に示すように、プリンタドライバは、グラフィクスエンジンからそれぞれ対応した描画データを入力する。本実施形態においては、印刷装置(1500)に対し、GDIプリンタドライバ(203)とXPSプリンタドライバ(213)の両者がOS(102)にインストールされている。すなわち、GDIプリンタドライバ203とXPSプリンタドライバ213は、同一のプリンタを出力先とする関係にある。
GDIプリンタドライバ(203)は、GDI UI(ユーザインターフェースの略称)ドライバ(501)とGDIグラフィクスドライバ(502)より構成される。GDI UIドライバ(501)は、プリンタドライバのユーザインターフェースの表示や、ユーザから入力された印刷設定情報をレジストリに保存する。GDIグラフィクスドライバ(502)は、グラフィクスエンジン(103)から対応する描画データ(DDI関数:Device Driver Interface)を受け取り、GDI UIドライバ(501)で保存された印刷設定情報に応じて描画データから印刷データを作成する。
XPSプリンタドライバ(511)は、XPS UIドライバ(511)とXPSグラフィクスドライバ(512)より構成される。XPS UIドライバ(511)は、プリンタドライバのユーザインターフェースの表示や、ユーザから入力された印刷設定情報をレジストリに保存する。XPSグラフィクスドライバ(512)は、グラフィクスエンジン(103)から対応する描画データ(XPSデータ)を受け取り、XPS UIドライバ(511)で保存された印刷設定情報に応じて描画データから印刷データを作成する。
ここではGDI UIドライバ(501)とXPS UIドライバ(511)は異なったコンポーネントとして記述しているが、両者の機能やインターフェースを所有した形で一つの共通UIドライバとして存在してもよい。その場合、GDIプリンタドライバ(203)は共通UIドライバとGDIグラフィクスドライバ(502)により構成され、XPS プリンタドライバ(213)は共通UIドライバとXPSグラフィクスドライバ(512)により構成されることになる。
図6は、本実施形態に関わるGDIプリンタドライバとXPSプリンタドライバの両者がインストールされている状況において、プリンタの状態を示すウインドウの例である。図6に示すように、一つの印刷装置(例としてプリンタA)に対して、GDIプリンタドライバ(203)が「プリンタA(GDI)」として登録されている。また、同時に同じプリンタAに対して、XPSプリンタドライバ(213)が「プリンタA(XPS)」として登録されている。このように、一つの印刷装置に対して、GDIプリンタドライバ(203)とXPSプリンタドライバ(213)という2つのプリンタドライバが共存している。なお米国マイクロソフト社ウインドウズ(登録商標)OSでは、デフォルトのプリンタドライバを選択することができる。デフォルトとして選択されたプリンタドライバは、そのことを示す情報が、オペレーティングシステムからアクセス可能に記憶される。アプリケーションから印刷を行う際には、印刷が指示されると、通常はアプリケーションにおける印刷設定のユーザインターフェースが表示される。そしてそのアプリケーションのユーザインターフェースの中で、利用者は、プリンタドライバを選択することができる。特に選択がされないと、デフォルトのプリンタドライバが選択され、そのプリンタドライバを用いて印刷が行われる。図6では、デフォルトのプリンタドライバとして「プリンタA(XPS)」213が選択されている。
<UIドライバの構成及び動作>
図7は本発明の特徴を最もよくあらわす図面であり、第1実施形態におけるUIドライバ501およびUIドライバ511の構成を示すものである。なお、以下の説明では、UIドライバも、プリンタドライバと区別せず、プリンタドライバと同じ符号を付して説明する。第1実施形態においては、GDIグラフィクスドライバ(502)およびXPSグラフィクスドライバ(512)は特別な処理を行う訳ではなく、一般的なグラフィクスドライバの挙動と同様である。GDI UIドライバ(203)およびXPS UIドライバ(213)あるいは共通UIドライバ(以後、まとめてUIドライバと記述する。)においては、本実施形態に特徴的な処理が実行される。
図7において、本実施形態におけるUIドライバ501,511は、アプリケーション(201,211)やグラフィクスエンジン(202,212)からドライバ初期化指示を受ける。UIドライバ501,511では、それに対して、アプリケーション情報取得部(703)で、UIドライバを呼び出しているアプリケーション(201,211)がWin32アプリケーション(201)とWinFxアプリケーション(211)のいずれであるかの情報取得を行う。
本実施形態におけるUIドライバは、アプリケーション(201,211)やグラフィクスエンジン(202,212)からドライバ初期化指示を受ける。UIドライバ501,511では、それに対して、アプリケーション情報取得部(703)により、UIドライバを呼び出しているアプリケーション(101)の名称を取得する。また、そのアプリケーションが、Win32アプリケーション(201)とWinFxアプリケーション(211)のいずれであるかの情報(すなわちアプリケーションの種類情報)も取得する。本実施形態においては、Win32 APIにて提供されているGetModuleFileName関数等を用いることで、UIドライバを呼び出すプロセス名(実行ファイル名称)を取得できる。また、UIドライバを呼んでいるアプリケーションが、Win32アプリケーション(201)とWinFxアプリケーション(211)のいずれかであるかは、以下のように判定できる。すなわち、前述の関数で取得した名称の実行ファイルが所持しているヘッダ部から、実行ファイルがインポートしているDLL(Dynamic Link Library)を取得する。そして、そのインポートしているDLLの中にWinFxアプリケーションに固有のモジュールが存在するか否かを判定する。たとえばWinFxに固有のモジュール名を予め表化して記憶しておき、その表から取得したモジュール名を検索し、ヒットすればWinFx固有と判定できる。
このようにWin32アプリケーション(201)とWinFxアプリケーション(211)のいずれかを判断している。このほか、例えばOSがアプリケーションの種類を伝達するAPIを提供しているのであればそれを利用してアプリケーションの種類情報を獲得できる。あるいは、UIドライバにて、プロセス名(実行ファイル名称)に関連づけて、アプリケーション名称や、そのアプリケーションがWin32アプリケーションかWinFxアプリケーションかを示す種類情報を格納したアプリケーションテーブルを保存する方法も採用できる。この方法では、アプリケーションテーブルの保守のために、保守用のユーザインターフェースを表示し、利用者の入力によりそのアプリケーションテーブルを更新できることが望ましい。UIドライバは、GetModuleFileName関数等を用いることで、UIドライバを呼び出すプロセス名を取得し、そのプロセス名でアプリケーションテーブルを検索する。ヒットすれば、該当するプロセス名に対応付けられたアプリケーション名が、UIドライバを呼びだしたアプリケーションの名称である。また、該当するプロセス名に対応付けられたアプリケーションの種類が、UIドライバを呼びだしたアプリケーションの種類である。
あるいは次のような方法でアプリケーションの種類を判定できる。Win32アプリケーションは、UIドライバに対して印刷設定情報をDevmodeという形式で取得しようとする。一方WinFxアプリケーションはUIドライバに対して印刷設定情報をプリントチケットという形式で取得しようとする。UIドライバはどちらの形式でも印刷設定情報を作成することが出来る。そこでこの取得要求を元にアプリケーションの種類がいずれかを判断することもできる。
次に、アプリ・ドライバ判断部(704)にて、アプリケーションとアプリケーションが呼び出しているUIドライバの組合わせが適切であるかどうかを判断する。この判断基準に関しては、図8に後述する。適切であるとは、アプリケーションが使用するグラフィックエンジンとプリンタドライバとが整合していることである。すなわち、グラフィックエンジンから出力される描画データの形式を変換(たとえばEMF←→XPS)する必要がないことである。アプリケーションが使用するグラフィックエンジンはアプリケーションの種類に応じて決まっている。したがって、アプリケーションの種類情報と、アプリケーションで選択されたプリンタドライバとが分かれば、適切であるか判定できる。アプリケーションの種類は上述した要領で取得できる。選択されているプリンタドライバは、その選択の情報が所定領域に保存されていればそれを参照することで特定できる。また、使用するプリンタドライバの情報(識別子等)が、印刷を行うアプリケーションプログラムからグラフィックエンジンに渡され、UIドライバで参照できれば、それを参照することもできる。そしてプリンタドライバの識別子が参照できれば、それがXPSプリンタドライバであるか、GDIプリンタドライバであるか(すなわちプリンタドライバの種類)は判定できる。たとえば、予めプリンタドライバの名称と、その種類情報とを対応付けたテーブルを作成して保存し、それを参照することでプリンタドライバの種類を判定できる。なお、適切であることを、同じ種類のアプリケーションとプリンタドライバとの組み合わせであると表現することもある。この同じ種類であるか否かの判定は、データ形式の変換の必要性を判定するためにグラフィックエンジンも行う必要があるので、それと同じ判定基準を採用することもできる。
アプリ・ドライバ判断部(704)にて不適切と判断された場合、適切ドライバ初期化指示部(705)にて、ストレートパスとなる適切なUIドライバに対して初期化指示を出す。適切なUIドライバとは、最初にユーザにより選択されたプリンタドライバの出力先のプリンタと同一の出力先に設定されているプリンタドライバであり、かつ、ストレートパスとなるプリンタドライバのことである。ここで、GDIプリンタドライバは、出力先が同一のXPSプリンタドライバが情報処理装置内にインストールされているか予め認識しているものとする。また、同様に、XPSプリンタドライバは、出力先が同一のGDIプリンタドライバが情報処理装置内にインストールされているか予め認識しているものとする。また、UIドライバが共通UIドライバである場合は、GDIグラフィクスドライバとXPSグラフィクスドライバがあるかは、当然認識しているはずである。ここでは、GDI UIドライバとXPS UIドライバは、それぞれ別のUIドライバモジュール構成であるとして説明している。
そして、初期化指示に応じて初期化処理を行ったUIドライバからドライバハンドルを受け取る。UIドライバからのドライバハンドルはドライバハンドル返却部(707)により受信される。ドライバハンドル返却部(707)は、受け取ったドライバハンドルを、UIドライバに対して初期化指示を発行したアプリケーション(201,211)やグラフィクスエンジン(202,212)に送信する(引き渡す)。
なお本実施形態では、ひとつのプリンタに対するドライバは2組ある。そのため一方のドライバが適切でないと判定された場合には、他方のドライバが適切なドライバとして選択される。もちろん、後述する図8のテーブル等を用いて、適切なUIドライバを選択することもできる。また、初期化処理とは、たとえばメモリの確保やドライバハンドルの応答などが含まれる。ドライバハンドルとは、ドライバを固有に識別するための識別名である。このハンドルにより、UIドライバとプリンタドライバとが特定できる。
さて一方アプリ・ドライバ判断部(704)にて適切と判断された場合は、そのままドライバ初期化部(706)でUIドライバの初期化を行う。初期化処理で生成したドライバハンドルをドライバハンドル返却部(707)にて初期化指示を出したアプリケーションまたはグラフィクスドライバに応答する。
UIドライバからドライバハンドルの引渡を受けたアプリケーションまたはグラフィクスエンジンは、引き渡されたドライバハンドルで特定されるUIドライバを起動して、ユーザに印刷設定の入力を許す。また、UIドライバからドライバハンドルの引渡を受けたアプリケーションまたはグラフィクスエンジンは、引き渡されたドライバハンドルで特定されるプリンタドライバに対して、描画データの出力を行うため、ストレートプリントパスとなる適切なプリンタドライバが、印刷データの変換すなわち印刷ジョブの生成を行う。このように、起動要求を受けたUIドライバが、印刷を行うアプリケーションに対して、そのアプリケーションに適切なドライバハンドルを引き渡すことで、高品質の結果が得られる印刷処理を迅速に行うことが出来る。
なお、ユーザが印刷設定を行うために、ドライバの初期化指示と共にUI表示指示がUIドライバに渡される場合がある。その場合には、アプリ・ドライバ判断部(704)にて、アプリケーションとプリンタドライバとの組み合わせが適切と判断されれば、UI表示部(701)にてUIダイアログを表示する。ユーザは印刷設定変更を表示されたUIを介してUI設定部(702)で行う。一方、アプリ・ドライバ判断部(704)にて不適切と判断されれば、適切ドライバ初期化指示部(705)にて、適切ドライバに対してドライバ初期化指示とともに、UI表示指示も発行する。こうして、利用者は適切なドライバでの印刷設定変更を行うことができる。
図8は、UIドライバにおけるアプリ・ドライバ判断部で行う判断条件の一例を示したものである。図8の基準テーブルには、Win32アプリケーション(201)から印刷する際にGDIプリンタドライバ(203)が選択されていれば適切であると判断される。このため該当する欄には「適切」と登録されている。これは、Win32アプリケーション(201)による印刷時にはGDIグラフィクスエンジン(202)が利用され、GDIプリンタドライバ(203)ではGDIグラフィクスドライバ(502)にてストレートプリントパスとして印刷処理が行われるためである。また、Win32アプリケーション(201)から印刷する際に、XPS UIドライバ(511)が選択されていれば不適切と判断される。このため該当する欄には「不適切」とであると登録されている。これは、Win32アプリケーション(201)による印刷時にはGDIグラフィクスエンジンが利用され、XPSプリンタドライバ(213)ではXPSグラフィクスドライバ(512)にてクロスプリントパスとして印刷処理が行われるためである。
同様に、WinFxアプリケーション(211)からの印刷時にXPSプリンタドライバ(213)が選択されていれば、適切であると判断される。これは、WinFXアプリケーション(211)による印刷時にはWPFグラフィクスエンジン(212)が利用され、XPSプリンタドライバ(213)では、XPSグラフィクスドライバ(512)にてストレートプリントパスとして印刷処理が行われるためである。また、WinFXアプリケーション(211)からの印刷する際に、GDI UIドライバ(501)が選択されていれば不適切と判断される。これは、WinFXアプリケーション(211)による印刷時にはWPFグラフィクスエンジン(212)が利用されて、XPS→GDI変換(312)が行われ、GDIプリンタドライバ(203)ではGDIグラフィクスドライバ(502)にてクロスプリントパスとして印刷処理が行われるためである。そのため該当する項目には判断に応じた値が登録されている。
なお図8のテーブルのプリンタドライバ203,213の欄に対応するドライバハンドルを記述しておけば、アプリケーションに対して適切なドライバハンドルを図8のテーブルから取得することができる。
図9は、第1実施形態におけるUIドライバのシーケンス図である。図9(A)において、アプリケーションから初期化指示およびUI表示指示901が渡されると、アプリ・ドライバ判断部(704)は、当該ドライバが、初期化指示を与えたアプリケーションに対して適切なドライバであるか判定する(902)。適切でないと判断されると、適切ドライバ初期化指示部(705)は、そのアプリケーションに対して適切なUIドライバに対して初期化指示およびUI表示指示を発行する(903)。初期化指示を受けたUIドライバはプリンタドライバ(グラフィックドライバ)の初期化処理を行い(904)、ドライバハンドルを初期化指示の発行元(すなわちUIドライバ)に戻す。ドライバハンドル返却部707は戻されたドライバハンドルをさらにアプリケーションに戻す。アプリケーションはそのドライバハンドルに対応するプリンタドライバを用いて印刷処理を行う。こうして適切なグラフィクスドライバによって印刷が行われ、処理フロー352や処理フロー353のいわゆるクロスプリントパスを避けることが出来る。
一方図9(B)においては、初期化指示およびUI表示指示911をUIドライバが受け取る。アプリ・ドライバ判断部(704)により、当該UIドライバは、初期化指示の発行元アプリケーションに対して適切か判定される(912)。図9(B)では適切なドライバと判断されている。この場合、初期化指示を受けたUIドライバは対応するグラフィックドライバの初期化処理を行い(913)、初期化指示の発行元すなわちアプリケーションにドライバハンドルを戻す(914)。アプリケーションはそのドライバハンドルに対応するプリンタドライバを用いて印刷処理を行う。こうして適切なグラフィクスドライバによって印刷が行われ、処理フロー352や処理フロー353のいわゆるクロスフローを避けることが出来る。
<UIドライバによる処理手順>
図10は第1実施形態におけるUIドライバ501,511に初期化指示(初期化命令と同じ)が渡されたときのUIドライバの処理フローを示したフローチャートである。ユーザがアプリケーション(201,211)から印刷する際に、プリンタドライバの印刷設定の指示を、アプリケーション(201,211)を操作することで行う。アプリケーションは指定されたプリンタドライバのUIドライバに対して、初期化指示およびUI表示指示を発行する。図10は初期化命令を受け取った際のUIドライバによる処理である。
まずUIドライバが初期化指示を受信すると(S10−1)、UIドライバはそれ自身を呼び出したアプリケーションの名称(実行ファイル名)を取得する。取得した名称を元に、呼び出したアプリケーションがWin32アプリケーションかWinFxアプリケーションかという、アプリケーションの種類を示す情報(種類情報)を取得する(S10−2)。この処理は図7において説明した通りである。UIドライバは、取得したアプリケーションの種類情報に基づいて、アプリケーションに対してUIドライバを含むプリンタドライバが適切か否かを判断する(S10−3)。この判定は、たとえば図8のテーブルを用いて行う。適切でないと判断された際には、適切なドライバに初期化命令を発行する(S10−5)。そして、適切なドライバから戻されるドライバハンドルを受信し、そのドライバハンドルをアプリケーションに返す(S10−6)。
ステップS10−3にて、呼び出し元のアプリケーションに対してプリンタドライバが適切であると判断された場合、UIドライバは自身のドライバの初期化を行い、そこで作成したドライバハンドルをアプリケーションに返す(S10−4)。
なお、他のプリンタドライバから初期化指示を受けたプリンタドライバも、図10の手順で動作する。本実施形態ではプリンタドライバは2種類なので、他のUIドライバから初期化指示を受けたUIドライバによる図10の手順では、」ステップS10−3の判定により必ず「適切」と判定される。またこの場合ドライバハンドルの返信先は、初期化指示の送信元であるUIドライバとなる。
UIドライバからドライバハンドルを受信したアプリケーションあるいはグラフィクスエンジンは、ドライバハンドルで特定されるプリンタドライバ(グラフィックドライバ)を用いて印刷データを生成し、プリンタに送信する。プリンタドライバを用いるとは、グラフィクスエンジンから出力される描画データを、そのプリンタドライバに引き渡してPDLあるいはXML等で記述された所定形式の印刷データに変換させることである。
以上の処理により、アプリケーションが実際に印刷を行う際に適切なグラフィクスドライバを用いて印刷処理が行われる。すなわち、グラフィックエンジンが出力するデータを、プリンタドライバが処理可能な形式のデータへと変換する必要がなくなる。これによって、一つのプリンタに対して複数のプリンタドライバが利用可能な場合に、選択されているプリンタドライバがいずれであるかに関わらず、アプリケーションが使用するグラフィクスエンジンに対応したプリンタドライバを使用して印刷を実行できる。その結果、印刷処理が迅速になり、またデータ変換に伴う情報の損失を防止でき、印刷品質を向上させることができる。
[第2実施形態]
第1実施形態は、アプリケーションから印刷設定のためのUI表示を行う際に、同時にプリンタドライバの初期化が行われるプリントシステムである。しかしながら、これは必ずしも全てのプリントシステムにて成立するわけではない。OSの仕様によっては、UIドライバに対して印刷設定等のためのUI表示を行う際にはプリンタドライバの初期化処理を行わない場合も想定される。初期化指示は、実際に印刷処理を行う時に、プリンタドライバのグラフィクスドライバに対して発行される。このようなプリントシステムでは、UIドライバに対して初期化指示が発行されないために、UIドライバが第1実施形態の図10に示す処理を行っても、アプリケーションが用いるドライバを切り替えることはできない。そこで本実施形態では、UIドライバは、UI表示指示に対して、適切なドライバへと切り替えるための処理を行う。なお、以下に説明する事項以外の、システム構成等は、第1実施形態と共通するので説明を省略する。
図11は第2実施形態の特徴を最もよくあらわす図面であり、第2実施形態におけるUIドライバの構成を示す。第2実施形態においては、UIドライバがドライバの初期化を行なわないプリントシステム構成である。そのため、第1実施形態における図7と比較すると、適切ドライバ初期化部(707)、ドライバ初期部(706)、ドライバハンドル返却部(707)が無い。代わりに、適切ドライバ名称変更部(1101)とドライバ名称返却部(1102)が追加されている。
第2実施形態においても、GDIグラフィクスドライバ(502)およびXPSグラフィクスドライバ(512)は特別な処理を行う訳ではなく、一般的なグラフィクスドライバの挙動と同様である。一方GDI UIドライバ(203)およびXPS UIドライバ(213)あるいは共通UIドライバ(以後、まとめてUIドライバと記述)においては、第2実施形態に特徴的な処理が行われる。
第2実施形態におけるUIドライバは、アプリケーション(201,211)やグラフィクスエンジン(202,212)から設定変更指示を受けると、UI表示部(701)においてUI表示を行なう。UI設定部(702)は、ユーザにより入力された印刷設定を保存する。その後アプリケーション情報取得部(703)は、当該UIドライバを呼び出しているアプリケーション(201,211)がWin32アプリケーション(201)とWinFxアプリケーション(211)のいずれであるかの情報取得を行う。このアプリケーション情報取得部(703)およびアプリ・ドライバ判断部(704)による判断処理は第1実施形態と同様である。
アプリ・ドライバ判断部(704)にて不適切と判断された場合、UIドライバの適切ドライバ名称変更部(1101)で、適切なドライバの名称をアプリケーションに渡す。その方法として、本実施形態では、アプリケーションに対してUIドライバから渡される印刷設定情報(GDI UIドライバではDevmode、XPS UIドライバではプリントチケット)を用いる。すなわち、適切ドライバ名称変更部(1101)は、印刷設定情報に適切なドライバの名称を格納し、ドライバ名称返却部(1102)により、その印刷設定情報をアプリケーションに渡す。
アプリケーションは引き渡された印刷設定情報からドライバ名称を取得する。そして、そのドライバ名称を持つプリンタドライバを用いてアプリケーションは印刷を行う。こうすることで、処理フロー352や処理フロー353を避けることが出来る。
一方アプリ・ドライバ判断部(704)にて適切と判断された場合は、特になにも行なわず、通常通りに、UI表示指示を受けたUIドライバが、すでに印刷設定情報に格納されているドライバ名称を変更せずに、印刷設定情報をアプリケーションに渡す。
図12は、第2実施形態におけるUIドライバのシーケンスを示したものである。アプリケーションからUI表示指示がUIドライバに渡される。アプリ・ドライバ判断部(704)により不適切なドライバと判断されると、UIドライバは適切ドライバ名称変更部(1101)にて印刷設定情報内のドライバ名称を適切なドライバ名称に変更する。そしてUI表示部(701)およびUI設定部(702)におけるユーザのUI設定を含めた印刷設定情報をアプリケーションに返却する。アプリケーションはその印刷設定情報内のドライバ名称に対して印刷初期化処理、印刷処理を行う。
図13は第2実施形態におけるUIドライバに印刷設定UI表示命令が渡されたときのUIドライバの処理フローを示したフローチャートである。ユーザがアプリケーション(201,211)から印刷する際に、プリンタドライバの印刷設定を、アプリケーション(201,211)に対して指示する。それに応じてアプリケーションは、指定されたプリンタドライバのUIドライバにUI表示命令を発行する。図13はその命令を受けたUIドライバにより実行される。
UIドライバは、UI表示命令を受け取り(S13−1)、UIダイアログ表示を行って、ユーザからの印刷設定変更の入力を受け付ける(S13−2)。そしてユーザが入力した印刷設定値を印刷設定情報に格納する(S13−3)。
そして、UIドライバ自身を呼び出したアプリケーションの名称(実行ファイル名)を取得する。その名称を基に、呼び出したアプリケーションがWin32アプリケーションかWinFxアプリケーションかの種類情報を取得する(S13−4)。これは第1実施形態と同様の処理である。UIドライバは取得したアプリケーション種類情報に基づいて、アプリケーションに対して、UIドライバを含むプリンタドライバが適切か否かを判断する(S13−5)。適切でないと判断された際には、印刷設定情報内のドライバ名称項目を適切なドライバ名称に変更する(S13−6)。変更したドライバ名称を含む印刷設定情報をアプリケーションに返却する(S13−7)。
適切であると判断されると(S13−5)、UIドライバはS13−3で作成した印刷設定情報をそのままアプリケーションに返却する(S13−8)。
適切なドライバ名は、たとえば図8のテーブルにおいて、プリンタドライバの種類を登録した欄に、その名称も対応付けて登録しておくことで得られる。たとえば、取得したアプリケーション種別に対して「適切」と定義されているドライバ名を検索する。得られたドライバ名が、そのアプリケーションに対して適切なドライバ名である。このドライバ名で、印刷設定情報内のドライバ名を置換する。アプリケーションは印刷設定情報内のドライバ名称を持つプリンタドライバに対して印刷初期化命令を発行し、そのプリンタドライバを用いて印刷処理を行う。そのため、印刷処理フロー352や353を避けることが出来る。
このようにして、本実施形態では、アプリケーションがUIドライバに対して初期化命令を発行しない場合にも、アプリケーションが使用するドライバを適切なドライバに切り替えることができる。このため、グラフィックエンジンが出力するデータを、プリンタドライバが処理可能な形式のデータへと変換する必要がない。その結果、印刷処理が迅速になり、またデータ変換に伴う情報の損失を防止でき、印刷品質を向上させることができる。
[第3実施形態]
第2実施形態においては、アプリケーションが、UIドライバが変更した印刷設定情報のドライバ名称を基に、印刷初期化や印刷処理を行う場合においては実現できる。しかし、例えば、アプリケーションが、UIドライバを呼び出したときに用いたドライバ名称をローカル領域に格納し、印刷処理時にも、その保存されたドライバ名称のドライバを用いる場合もある。この場合、UIドライバはアプリケーションが使用するドライバを変更できない。
そこで第3実施形態においては、図14に示すように、グラフィクスドライバ1401は、GDI202からの印刷データとWPF212からの印刷データの両方を、GDIインターフェースとXPSインターフェースとで受け取ることができる。したがってUIドライバもひとつであり、いずれのインターフェースが用いられる場合でも、ひとつのUIドライバが起動される。そしてOSが認識しているドライバ属性(GDIドライバあるいはXPSドライバのいずれかを示す種別情報)を変更する。すなわち、アプリケーションにより使用するドライバとして選択されているプリンタドライバのドライバ属性が、オペレーティングシステムからアクセス可能に保存されている。そしてそのドライバ属性情報に応じて、グラフィクスエンジンにより出力されたデータ形式の変換が必要か否かが決定されている。
図15は、本実施形態における、ドライバ属性を変更する構成の模式図である。本実施形態では、そのオペレーティングシステムが参照するドライバの属性情報を、UIドライバ1504によって書き替える。すなわち、アプリケーション1501から初期化命令を受けたUIドライバ1502は、アプリケーションの種類情報を第1実施形態と同じ方法で取得する。そして、オペレーティングシステムが保持管理するドライバ属性情報1505を読み、アプリケーションの種類情報と対比して、適切か否か判定する。この判定のためには図8のテーブルを用いることができる。ただし、プリンタドライバの欄には、ドライバ属性情報が登録される。適切であればそのまま処理を続行する。適切でなければ、オペレーティングシステムが参照するドライバ属性情報1505を、適切なプリンタドライバのドライバ属性の値に変更する。
図16はUIドライバによる処理手順である。初期化命令を受けたUIドライバは、ステップS1601でオペレーティングシステムが参照するドライバ属性を取得する。ステップS1602でアプリケーション種類情報を取得する。ステップS1603でアプリケーションの種別情報とドライバ属性情報とが整合(一致)するか判定する。整合しなければオペレーティングシステムの参照するドライバ属性を、アプリケーションに整合するドライバのドライバ属性に書き替える。
このように本実施形態においては、OSが認識している情報(レジストリ、ファイルの有無等)を取得して、適切な場合はそのままUIドライバの処理を行い、不適切であった場合は、OSのドライバ属性を示す情報を変更する。このため、グラフィックエンジンが出力するデータを、プリンタドライバが処理可能な形式のデータへと変換する必要がない。その結果、印刷処理が迅速になり、またデータ変換に伴う情報の損失を防止でき、印刷品質を向上させることができる。
複数のグラフィクスエンジンが共存する例として、Windows(登録商標)VISTAにおける印刷処理フローおよび印刷処理に対するコンポーネントを示す図である。 Windows(登録商標)VISTAにおける、2つのグラフィクスエンジン共存の仕組みを示す図である。 一般的な印刷処理フローおよび印刷処理に対するコンポーネントを示す。 本実施形態の印刷制御装置およびその制御方法とプリンタドライバが適用される情報処理システムの構成の一例を示すブロック図である。 本実施形態に関わるGDIプリンタドライバとXPSプリンタドライバの構成を示す図である。 本実施形態に関わるGDIプリンタドライバとXPSプリンタドライバの両者がインストールされている状況を示す図である。 本実施形態におけるUIドライバの構成を示す図である。 UIドライバにおける アプリ・ドライバ判断部で行う判断条件を示した図である。 第1実施形態におけるUIドライバのシーケンスを示した図である。 第1実施形態におけるUIドライバに初期化指示命令が渡されたときのUIドライバの処理フローを示したフローチャートである。 第2実施形態におけるUIドライバの構成を示す図である。 第2実施形態におけるUIドライバのシーケンスを示した図である。 第2実施形態におけるUIドライバに印刷設定UI表示命令が渡されたときのUIドライバの処理フローを示したフローチャートである。 第3実施形態におけるドライバの構成を示した図である。 第3実施形態におけるドライバの構成を示した図である。 第3実施形態における、印刷命令を受けたUIドライバの処理フローチャートであるである。

Claims (12)

  1. 第1種類のアプリケーションから描画出力に応じて第1種類のプリンタドライバが処理可能な第1印刷情報に変換するための第1描画変換部と、第2種類のアプリケーションからの描画出力に応じて第2種類のプリンタドライバが処理可能な第2印刷情報に変換するための第2描画変換部とが動作するコンピュータにより実行されるプログラムであって、
    出力先として呼び出されたプリンタドライバと出力元のアプリケーションの種類とに基づいて、前記第1種類のアプリケーションと前記第1種類のプリンタドライバとの組み合わせ、または前記第2種類のアプリケーションと前記第2種類のプリンタドライバとの組み合わせになっているか判定する判定手段と、
    前記判定手段により前記組み合わせのいずれにもなっていないと判定された場合に、前記出力元のアプリケーションが使用するプリンタドライバの識別名を、前記組み合わせを満たすプリンタドライバの識別名に変更する変更手段と
    してコンピュータを機能させることを特徴とするプログラム。
  2. 前記変更手段は、前記アプリケーションが前記出力先のプリンタドライバに対して送信した初期化命令に応じて生成したプリンタドライバの名称であるドライバハンドルを、前記組み合わせを満たすプリンタドライバのドライバハンドルに変更することを特徴とする請求項1に記載のプログラム。
  3. 利用者により入力される印刷設定を、印刷設定情報として保存する印刷設定保存手段としてコンピュータを更に機能させ、
    前記変更手段は、前記印刷設定情報に含まれるプリンタドライバの識別名を、前記組み合わせを満たすプリンタドライバの識別名に変更することを特徴とする請求項1に記載のプログラム。
  4. オペレーティングシステムによる管理の下で、第1種類のアプリケーションから描画出力に応じて第1種類のプリンタドライバが処理可能な第1印刷情報に変換するための第1描画変換部と、第2種類のアプリケーションからの描画出力に応じて第2種類のプリンタドライバが処理可能な第2印刷情報に変換するための第2描画変換部とが動作し、
    前記オペレーティングシステムは、プリンタドライバの属性を参照して、参照した属性値に応じた種類のプリンタドライバにより処理可能な印刷情報へ、必要に応じて前記描画出力を変換するコンピュータにより実行されるプログラムであって、
    出力先として呼び出されたプリンタドライバと出力元のアプリケーションの種類とに基づいて、前記第1種類のアプリケーションと前記第1種類のプリンタドライバとの組み合わせ、または前記第2種類のアプリケーションと前記第2種類のプリンタドライバとの組み合わせになっているか判定する判定手段と、
    前記判定手段により前記組み合わせのいずれにもなっていないと判定された場合に、前記オペレーティングシステムが参照するプリンタドライバの属性を、前記組み合わせを満たすプリンタドライバの属性値に変更する変更手段と
    してコンピュータを機能させることを特徴とするプログラム。
  5. 第1種類のアプリケーションから描画出力に応じて第1種類のプリンタドライバが処理可能な第1印刷情報に変換するための第1描画変換部と、第2種類のアプリケーションからの描画出力に応じて第2種類のプリンタドライバが処理可能な第2印刷情報に変換するための第2描画変換部とが動作する情報処理装置であって、
    出力先として呼び出されたプリンタドライバと出力元のアプリケーションの種類とに基づいて、前記第1種類のアプリケーションと前記第1種類のプリンタドライバとの組み合わせ、または前記第2種類のアプリケーションと前記第2種類のプリンタドライバとの組み合わせになっているか判定する判定手段と、
    前記判定手段により前記組み合わせのいずれにもなっていないと判定された場合に、前記出力元のアプリケーションが使用するプリンタドライバの識別名を、前記組み合わせを満たすプリンタドライバの識別名に変更する変更手段と
    を備えることを特徴とする情報処理装置。
  6. 前記変更手段は、前記アプリケーションが前記出力先のプリンタドライバに対して送信した初期化命令に応じて生成したプリンタドライバの名称であるドライバハンドルを、前記組み合わせを満たすプリンタドライバのドライバハンドルに変更することを特徴とする請求項5に記載の情報処理装置。
  7. 利用者により入力される印刷設定を、印刷設定情報として保存する印刷設定保存手段を更に備え、
    前記変更手段は、前記印刷設定情報に含まれるプリンタドライバの識別名を、前記組み合わせを満たすプリンタドライバの識別名に変更することを特徴とする請求項5に記載の情報処理装置。
  8. オペレーティングシステムによる管理の下で、第1種類のアプリケーションから描画出力に応じて第1種類のプリンタドライバが処理可能な第1印刷情報に変換するための第1描画変換部と、第2種類のアプリケーションからの描画出力に応じて第2種類のプリンタドライバが処理可能な第2印刷情報に変換するための第2描画変換部とが動作し、
    前記オペレーティングシステムは、プリンタドライバの属性を参照して、参照した属性値に応じた種類のプリンタドライバにより処理可能な印刷情報へ、必要に応じて前記描画出力を変換する情報処理装置であって、
    出力先として呼び出されたプリンタドライバと出力元のアプリケーションの種類とに基づいて、前記第1種類のアプリケーションと前記第1種類のプリンタドライバとの組み合わせ、または前記第2種類のアプリケーションと前記第2種類のプリンタドライバとの組み合わせになっているか判定する判定手段と、
    前記判定手段により前記組み合わせのいずれにもなっていないと判定された場合に、前記オペレーティングシステムが参照するプリンタドライバの属性を、前記組み合わせを満たすプリンタドライバの属性値に変更する変更手段と
    を備えることを特徴とする情報処理装置。
  9. 第1種類のアプリケーションから描画出力に応じて第1種類のプリンタドライバが処理可能な第1印刷情報に変換するための第1描画変換部と、第2種類のアプリケーションからの描画出力に応じて第2種類のプリンタドライバが処理可能な第2印刷情報に変換するための第2描画変換部とが動作する情報処理装置におけるプリンタドライバ変更方法であって、
    出力先として呼び出されたプリンタドライバと出力元のアプリケーションの種類とに基づいて、前記第1種類のアプリケーションと前記第1種類のプリンタドライバとの組み合わせ、または前記第2種類のアプリケーションと前記第2種類のプリンタドライバとの組み合わせになっているか、判定手段が判定する判定工程と、
    前記判定工程により前記組み合わせのいずれにもなっていないと判定された場合に、前記出力元のアプリケーションが使用するプリンタドライバの識別名を、前記組み合わせを満たすプリンタドライバの識別名に、変更手段が変更する変更工程と
    を備えることを特徴とするプリンタドライバ変更方法。
  10. 前記変更工程は、前記アプリケーションが前記出力先のプリンタドライバに対して送信した初期化命令に応じて生成したプリンタドライバの名称であるドライバハンドルを、前記組み合わせを満たすプリンタドライバのドライバハンドルに変更することを特徴とする請求項9に記載のプリンタドライバ変更方法。
  11. 印刷設定保存手段が、利用者により入力される印刷設定を印刷設定情報として保存する印刷設定保存工程を更に備え、
    前記変更工程では、前記印刷設定情報に含まれるプリンタドライバの識別名を、前記組み合わせを満たすプリンタドライバの識別名に変更することを特徴とする請求項9に記載のプリンタドライバ変更方法。
  12. オペレーティングシステムによる管理の下で、第1種類のアプリケーションから描画出力に応じて第1種類のプリンタドライバが処理可能な第1印刷情報に変換するための第1描画変換部と、第2種類のアプリケーションからの描画出力に応じて第2種類のプリンタドライバが処理可能な第2印刷情報に変換するための第2描画変換部とが動作し、
    前記オペレーティングシステムは、プリンタドライバの属性を参照して、参照した属性値に応じた種類のプリンタドライバにより処理可能な印刷情報へ、必要に応じて前記描画出力を変換する情報処理装置におけるプリンタドライバ変更方法であって、
    出力先として呼び出されたプリンタドライバと出力元のアプリケーションの種類とに基づいて、前記第1種類のアプリケーションと前記第1種類のプリンタドライバとの組み合わせ、または前記第2種類のアプリケーションと前記第2種類のプリンタドライバとの組み合わせになっているか、判定手段が判定する判定工程と、
    前記判定工程により前記組み合わせのいずれにもなっていないと判定された場合に、前記オペレーティングシステムが参照するプリンタドライバの属性を、前記組み合わせを満たすプリンタドライバの属性値に、変更工程が変更する変更工程と
    を備えることを特徴とするプリンタドライバ変更方法。
JP2006075551A 2006-03-17 2006-03-17 情報処理装置及びその制御方法とプログラム Expired - Fee Related JP4651112B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2006075551A JP4651112B2 (ja) 2006-03-17 2006-03-17 情報処理装置及びその制御方法とプログラム
US12/159,955 US8305610B2 (en) 2006-03-17 2007-03-06 Method for changing printer drivers in information processing apparatus
PCT/JP2007/054757 WO2007108340A1 (en) 2006-03-17 2007-03-06 Method for changing printer drivers in information processing apparatus
CN2007800076047A CN101395569B (zh) 2006-03-17 2007-03-06 用于改变信息处理设备中的打印机驱动程序的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006075551A JP4651112B2 (ja) 2006-03-17 2006-03-17 情報処理装置及びその制御方法とプログラム

Publications (3)

Publication Number Publication Date
JP2007249860A true JP2007249860A (ja) 2007-09-27
JP2007249860A5 JP2007249860A5 (ja) 2009-04-30
JP4651112B2 JP4651112B2 (ja) 2011-03-16

Family

ID=38522373

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006075551A Expired - Fee Related JP4651112B2 (ja) 2006-03-17 2006-03-17 情報処理装置及びその制御方法とプログラム

Country Status (4)

Country Link
US (1) US8305610B2 (ja)
JP (1) JP4651112B2 (ja)
CN (1) CN101395569B (ja)
WO (1) WO2007108340A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007249859A (ja) * 2006-03-17 2007-09-27 Canon Inc 画像形成装置及びその制御方法、プログラム
JP2013186835A (ja) * 2012-03-09 2013-09-19 Canon Inc 情報処理装置、情報処理方法とプログラム
JP2014215944A (ja) * 2013-04-30 2014-11-17 株式会社東芝 プリンタドライバ設定印刷プログラム及び設定印刷方法
JP2015035143A (ja) * 2013-08-09 2015-02-19 キヤノン株式会社 情報処理システム、情報処理方法、及びプログラム
WO2017029987A1 (ja) * 2015-08-19 2017-02-23 株式会社スプラインネットワーク 印刷データ管理システム、情報処理装置、印刷データ取得プログラム、方法

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101126170B1 (ko) * 2007-07-03 2012-03-26 삼성전자주식회사 컬러 프린팅 시스템
KR101235859B1 (ko) * 2007-10-10 2013-02-20 삼성전자주식회사 어플리케이션에 대응하는 프린터 드라이버 구동방법 및장치와 프린터 드라이버 설치방법 및 장치
KR101441354B1 (ko) * 2008-10-23 2014-11-03 삼성전자주식회사 화상형성장치 및 화상형성방법
JP5561465B2 (ja) * 2009-11-05 2014-07-30 富士ゼロックス株式会社 画像形成装置、画像形成システム、処理プログラム
KR101612757B1 (ko) * 2009-12-17 2016-04-26 삼성전자주식회사 인쇄 제어 단말장치 및 xps 파일 인쇄방법
US20120243031A1 (en) * 2011-03-25 2012-09-27 Konica Minolta Laboratory U.S.A., Inc. Gpu accelerated color analysis and control system
JP5841380B2 (ja) * 2011-09-01 2016-01-13 キヤノン株式会社 管理サーバ及びその処理方法
JP5983094B2 (ja) * 2012-06-27 2016-08-31 ブラザー工業株式会社 ドライバ管理プログラム、及び、情報処理装置
EP3063649A4 (en) * 2013-10-31 2017-06-28 Hewlett-Packard Enterprise Development LP Initializing printers
JP6482432B2 (ja) * 2015-08-21 2019-03-13 キヤノン株式会社 描画命令処理装置および描画命令処理方法
CN109460198B (zh) * 2018-11-19 2022-01-21 珠海奔图电子有限公司 打印驱动修复方法、打印驱动修复装置及电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11184656A (ja) * 1997-12-19 1999-07-09 Toshiba Corp プリンタドライバ自動認識装置およびプリンタドライバ自動認識プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2000353081A (ja) * 1999-04-26 2000-12-19 Sharp Corp プリンタドライバ、およびその駆動条件変更方法
JP2001034444A (ja) * 1999-07-19 2001-02-09 Fuji Xerox Co Ltd 印刷システムおよびその制御方法
JP2001075762A (ja) * 1999-09-06 2001-03-23 Casio Electronics Co Ltd プリンタドライバの設定選択装置
JP2002351646A (ja) * 2001-05-24 2002-12-06 Sharp Corp 印刷管理装置
JP2005258895A (ja) * 2004-03-12 2005-09-22 Fuji Xerox Co Ltd ドライバ選択方法および装置並びにプログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5982996A (en) * 1997-03-13 1999-11-09 Hewlett-Packard Company Mechanism for printer driver switching in windows operating systems to allow distribution of print jobs to an output device from a single print request within an application
JPH11254801A (ja) * 1998-03-12 1999-09-21 Riso Kagaku Corp 孔版印刷機用のコンピュータ・インターフェース・システム
US6092104A (en) * 1998-07-22 2000-07-18 Circle Computer Resources, Inc. Method for transmitting a facsimile from a desktop computer by using electronic mail
JP2003084984A (ja) * 2001-09-12 2003-03-20 Canon Inc 情報処理装置、及び、情報処理方法、及び、制御プログラム、及び、制御プログラムを記憶した記憶媒体
KR100518829B1 (ko) * 2003-06-02 2005-10-06 삼성전자주식회사 프린터 에러 처리 시스템 및 그 에러 처리방법
JP2006065839A (ja) * 2004-07-30 2006-03-09 Canon Inc 情報処理装置及び印刷情報処理方法、並びにコンピュータプログラム
JP4785579B2 (ja) * 2006-03-17 2011-10-05 キヤノン株式会社 情報処理装置および情報処理装置における印刷設定反映方法とプログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11184656A (ja) * 1997-12-19 1999-07-09 Toshiba Corp プリンタドライバ自動認識装置およびプリンタドライバ自動認識プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2000353081A (ja) * 1999-04-26 2000-12-19 Sharp Corp プリンタドライバ、およびその駆動条件変更方法
JP2001034444A (ja) * 1999-07-19 2001-02-09 Fuji Xerox Co Ltd 印刷システムおよびその制御方法
JP2001075762A (ja) * 1999-09-06 2001-03-23 Casio Electronics Co Ltd プリンタドライバの設定選択装置
JP2002351646A (ja) * 2001-05-24 2002-12-06 Sharp Corp 印刷管理装置
JP2005258895A (ja) * 2004-03-12 2005-09-22 Fuji Xerox Co Ltd ドライバ選択方法および装置並びにプログラム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007249859A (ja) * 2006-03-17 2007-09-27 Canon Inc 画像形成装置及びその制御方法、プログラム
JP2013186835A (ja) * 2012-03-09 2013-09-19 Canon Inc 情報処理装置、情報処理方法とプログラム
JP2014215944A (ja) * 2013-04-30 2014-11-17 株式会社東芝 プリンタドライバ設定印刷プログラム及び設定印刷方法
JP2015035143A (ja) * 2013-08-09 2015-02-19 キヤノン株式会社 情報処理システム、情報処理方法、及びプログラム
WO2017029987A1 (ja) * 2015-08-19 2017-02-23 株式会社スプラインネットワーク 印刷データ管理システム、情報処理装置、印刷データ取得プログラム、方法

Also Published As

Publication number Publication date
CN101395569A (zh) 2009-03-25
WO2007108340A1 (en) 2007-09-27
US8305610B2 (en) 2012-11-06
CN101395569B (zh) 2010-12-29
JP4651112B2 (ja) 2011-03-16
US20090268234A1 (en) 2009-10-29

Similar Documents

Publication Publication Date Title
JP4651112B2 (ja) 情報処理装置及びその制御方法とプログラム
JP4785579B2 (ja) 情報処理装置および情報処理装置における印刷設定反映方法とプログラム
US8537438B2 (en) Information processing apparatus in which a plurality of types of print drivers and plurality of graphics units run, control method therefor, and program
JP4785578B2 (ja) 情報処理装置およびその方法
US8699074B2 (en) Information processing apparatus and method and program of controlling the same
JP2007249857A (ja) 情報処理装置及びその制御方法、プログラム
JP5704834B2 (ja) 情報処理装置および制御方法およびプログラム
JP5366388B2 (ja) 印刷制御装置、印刷制御方法、及び、プログラム
JP2005208894A (ja) 周辺装置制御方法、制御プログラム及びその装置
JP6234417B2 (ja) 情報処理装置及びその制御方法とプログラム
US20040263892A1 (en) Information processisng apparatus, information processing method, and control program
JP6437076B2 (ja) 情報処理装置及びその制御方法とプログラム
JP2003330658A (ja) 印刷システム
JP2020126681A (ja) アプリケーション及び情報処理装置
JP2007115026A (ja) 印刷制御装置、印刷制御方法、印刷制御プログラム及び記録媒体
JP2003099232A (ja) 印刷制御装置、印刷装置、印刷制御システム、フォントダウンロード方式決定方法、印刷制御方法、記憶媒体、及びプログラム
JP2006338166A (ja) 情報処理装置及びその制御方法、プログラム
JP2009146362A (ja) 情報処理装置、情報処理方法、プログラム、及び記憶媒体
JP2000218901A (ja) 情報処理装置、情報処理方法及びコンピュータ読み取り可能なプログラムが格納された記憶媒体
JP2005234966A (ja) 印刷解像度変換装置

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090313

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090313

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100405

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100603

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100820

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101012

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20101210

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101213

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131224

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees