JP2012198674A - プリンタドライバ、情報処理装置、及び記録媒体 - Google Patents

プリンタドライバ、情報処理装置、及び記録媒体 Download PDF

Info

Publication number
JP2012198674A
JP2012198674A JP2011061544A JP2011061544A JP2012198674A JP 2012198674 A JP2012198674 A JP 2012198674A JP 2011061544 A JP2011061544 A JP 2011061544A JP 2011061544 A JP2011061544 A JP 2011061544A JP 2012198674 A JP2012198674 A JP 2012198674A
Authority
JP
Japan
Prior art keywords
plug
printer driver
reading
unit
printer
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
JP2011061544A
Other languages
English (en)
Inventor
Kazuhiro Miyabe
和弘 宮部
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2011061544A priority Critical patent/JP2012198674A/ja
Priority to US13/411,978 priority patent/US8730490B2/en
Publication of JP2012198674A publication Critical patent/JP2012198674A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1224Client or server resources management
    • G06F3/1225Software update, e.g. print driver, modules, plug-ins, fonts

Abstract

【課題】プリンタドライバによる処理時の読込時間を短縮する。
【解決手段】プリンタドライバ110は、追加又は取り外し可能なプラグインと協働するプリンタドライバであって、印刷処理中にフックされる所定のタイミングで使用される可能性を有するプラグインを判定する判定部213と、判定部213により使用される可能性を有すると判定されたプラグインを読み込む読込部214と、読込部により読み込まれたプラグインを呼び出すプラグイン呼出部212と、を備える。
【選択図】図2

Description

本発明は、プリンタドライバ、情報処理装置、及び記録媒体に関する。
従来、例えばMS Windows(登録商標)等のOSでは、プリンタに対する印刷シーケンスを実行するためにプリンタドライバをインストールしておく必要がある。ところで、プリンタドライバで制御されるプリンタは、機能の追加、拡張が行われる場合がある。また、ユーザからの要望に応じて、プリンタ毎に搭載される機能が異なる場合もある。このような場合、プリンタドライバは、各プリンタに搭載される機能に対応する必要がある。
このように、プリンタ毎に搭載される機能が異なる場合、搭載される機能に対応するために、各プリンタに応じたプリンタドライバの再コンパイルが必要であった。しかしながら、プリンタ毎に再コンパイルが必要となると、管理者の負担が大きいという問題がある。
そこで、特許文献1には、プリンタの機能に合わせて、プリンタドライバにプラグインモジュールを追加する技術が提案されている。このようにプラグインモジュールの追加を行うことで、プリンタに合わせて動的に機能を拡張することが可能となる。
しかしながら、インストールされたプラグインの数が多くなると、印刷処理の実行時にプリンタドライバ及びプラグインの読込に時間を要するという問題が生じる。
本発明は、上記に鑑みてなされたものであって、処理実行時の読込時間を短縮するプリンタドライバ、情報処理装置、及び記録媒体を提供する。
上述した課題を解決し、目的を達成するために、本発明は、追加又は取り外し可能なプラグインと協働するプリンタドライバであって、印刷処理中にフックされる所定のタイミングで使用される可能性を有するプラグインを判定する判定手段と、前記判定手段により使用される可能性を有すると判定された前記プラグインを読み込む読込手段と、前記読込手段により読み込まれた前記プラグインを呼び出す呼出手段と、を備えることを特徴とする。
本発明によれば、印刷処理を行う際のプラグインの読み出し時間の短縮という効果を奏する。
図1は、第1の実施形態にかかるプリンタシステムの全体構成図を示した図である。 図2は、第1の実施形態にかかるPCの構成を示すブロック図である。 図3は、第1の実施形態にかかるプラグイン情報ファイルの構成を説明した図である。 図4は、第1の実施形態にかかるプリンタドライバで印刷開始時に行われる処理手順を示したフローチャートである。 図5は、第1の実施形態にかかるPCにおいて、"DocumentEvent"が通知された際の処理を示した図である。 図6は、第1の実施形態にかかるプリンタドライバに、両面強制プラグインと、プレビュープラグインと、がインストールされた場合の構成の例を示した図である。 図7は、第1の実施形態にかかるプラグイン情報ファイルの第1の例を示した図である。 図8は、第1の実施形態にかかるPC及びプリンタで行われる印刷処理のシーケンスの一例を示した図である。 図9は、第1の実施形態にかかるプラグイン情報ファイルの第2の例を示した図である。 図10は、第1の実施形態にかかるPC及びプリンタで行われる印刷処理のシーケンスの一例を示した図である。 図11は、第1の実施形態にかかるPCのハードウェア構成を示した図である。
以下に添付図面を参照して、この発明にかかるプリンタドライバ、情報処理装置、及び記録媒体の一実施形態を詳細に説明する。
(第1の実施形態)
図1は、第1の実施形態にかかるプリンタシステムの全体構成図を示した図である。図1に示すように、本実施形態ではPC100とプリンタ150とがネットワーク160を介して接続されているものとする。そして、PC100に搭載されたプリンタドライバ110からの印刷要求に応じて、プリンタ150が印刷処理を行う。
図2は、PC100の構成を示すブロック図である。図2に示すように、PC100は、アプリケーション201と、OS202と、プリンタドライバ110と、通信部203と、記憶部204と、を備えている。そして、PC100の起動・実行時には、記憶部204に記憶されていたアプリケーション201と、OS202と、プリンタドライバ110が、(図示しない)メインメモリ上にロードされ展開されて、これらが(図示しない)CPUにより実行される。なお、PC100は、キーボードやマウスなどの入力装置やディスプレイなどの出力装置等を備える通常のコンピュータを利用したハードウェア構成を有するが、図2においては説明の簡単のため省略している。
アプリケーション201は、ユーザが印刷指示をすることができる任意のソフトウェアとする。ユーザはアプリケーション201で編集したデータを印刷したい場合、アプリケーション201が、ユーザによる印刷指示を受け付ける。この場合、アプリケーション201は、単体でプリンタ150に対する印刷データの生成を行わず、上記印刷指示に応じた印刷要求と共に、印刷対象の情報をOS202に渡す。
OS202は、PC100のハードウェアとソフトウェアとを管理するプログラムである。OS202は、プログラムの起動、情報の読み込みや保存の制御等を行う。本実施形態においては、OSとしてMS Windows(登録商標)を用いた場合について説明する。
通信部203は、ネットワーク160を介して接続されたプリンタ150と情報の送受信を行う。
記憶部204は、様々な情報を記憶する記憶手段とする。記憶部204としては、例えばHDDを用いる。記憶部204が記憶する情報としては、アプリケーション201と、OS202と、プリンタドライバ110と、などのプログラムの他、プリンタドライバ110が読み込む各種プラグイン等とする。さらには、後述するプラグイン情報ファイル等も含まれる。
プリンタドライバ110は、このドライバが有する機能を果たすためのモジュール群として、コア部210と、プラグイン保持部220と、を備えている。本実施形態にかかるプリンタドライバ110は、後述する、追加又は取り外し可能なプラグインと協働する。
プラグイン保持部220は、プラグイン情報ファイル221と、コア部210から呼出可能な複数のプラグインと、を保持する。本実施形態にかかるプラグイン保持部220は、プラグイン222Aと、プラグイン222Bと、プラグイン222Cと、を備えることとするが、図2は一例であって、プラグインは任意に追加および削除することができる。
プラグイン情報ファイル221は、プリンタドライバ110が読込可能なプラグイン(図2で示す例では、プラグイン222A、プラグイン222B、及びプラグイン222C)の情報が記載されている。
図3は、プラグイン情報ファイル221の構成を説明した図である。図3に示すようにプラグイン情報ファイル221は、複数のファンクションで構成されている。このファンクション"function*"は、プラグイン保持部220が保持するプラグイン毎に設けられている。
ファンクションに格納されている各パラメータについて説明する。これらファンクションに示された各パラメータは、当該ファンクションで示されたプラグインを読み込む条件として示されたものとする。"filename"は、プラグインを示すファイル名とする。"supportevent"は、プリンタドライバ110が実行可能な処理のうち、当該プラグインが対応している処理(イベント)が示されている。"supportpdl"は、当該プラグインが対応しているPDLが示されている。"supportmodel"は、当該プラグインが対応している、プリンタの機種が示されている。
図3に示す例では、機能"functionA"が実装されているプラグインファイルが"functionA.dll"であることが示されている。そして、機能"functionA"を実現するプラグインにおいて、サポートしている処理が"DocumentEvent"であり、サポートしているPDLが"PCL6"と"PS"、サポートしているプリンタの機種が全機種であることがわかる。
また、機能"functionB"が実装されているプラグインファイルが"functionB.dll" であることが示されている。そして、機能"functionB"を実現するプラグインにおいて、サポートしている処理が"uievent"であり、サポートしているPDLが"PCL6"のみ、サポートしているプリンタの機種が"ModelB"のみであることがわかる。
このようなプラグイン情報ファイルにおいては、例えば、PDL"PCL6"を印刷する際、"DocumentEvent"のタイミングでは"functionA"のみ呼び出せばよいことがわかる。
図2に戻り、コア部210は、プリンタドライバ110として、機種・PDL等の差異によって処理の違いが発生しない汎用的な機能を備えている。また、コア部210は、プリンタドライバ110として、機種・PDLに対応する独自の処理を実現するためのモジュール群として、フック部211と、プラグイン呼出部212と、を備える。そして、コア部210は、プラグインの有無を意識せずに、プラグイン呼出部212を通して、プラグインへ処理の一部を委譲する。
フック部211は、プラグイン等による独自の処理を行うために、コア部210により実行される印刷シーケンス中に処理をフックする。フック部211により所定のタイミングをフックして、独自の処理を行うことを可能にするためのインターフェイスが、OS202側に用意されている。
例えば、所定のタイミングをフックして独自の処理を行うことを可能にするために、MS Windows(登録商標)にはプリンタドライバのインターフェイスとして"DocumentEvent"というインターフェイスが用意されている。これにより、OS202が、独自の処理を行わせたい場合、当該インターフェイスを呼び出して、プリンタドライバ110が行っている印刷処理をフックして、独自な処理を行わせることができる。
このように、本実施形態にかかるOS202からの呼び出しに基づく印刷処理中に、独自の処理を行いたい場合に、特定のタイミングでフックすることが可能となる。これにより、印刷途中に印刷設定の変更、あるいはプリンタへ送信する情報の付加を行うことができる。
また、本実施形態においてOS202からフックを行うタイミングは、印刷の処理の開始、文書印刷の開始・終了、ページ印刷の開始・終了等とする。なお、印刷途中のこれらのタイミングをフックして、プラグインによる独自の処理を行うための命令を"DocumentEvent"と称す。
プラグイン呼出部212は、プラグイン保持部220に保持された各種プラグインの呼出を行う。また、プラグイン呼出部212は、インストールされたプラグインを確認する際に、プラグイン情報ファイル221を参照する。これにより、コア部210は、インストールされているプラグインを確認できる。また、プラグイン呼出部212は、プラグインを呼び出すためのモジュール群として、判定部213と、読込部214と、を備える。
判定部213は、プリンタドライバ110による印刷処理中でフックされる所定のタイミングで使用される可能性のあるプラグインを判定する。使用される可能性があると判定されたプラグインは、読込部214によりロード(読込)がなされる。なお、本実施形態における所定のタイミングは、印刷の処理の開始、文書印刷の開始・終了、ページ印刷の開始・終了等とする。さらに本実施形態にかかる判定部213は、判定を行う際に、プラグイン情報ファイル221を参照し、当該プラグイン情報ファイル221に従って、各プラグインについて判定を行う。このプラグイン情報ファイル221には、上述したように、各プラグインを読み込むための条件が示されている。
当該プラグイン情報ファイル221は、この各プラグインを読み込むための条件として、印刷処理中でプラグインを実行するタイミングに関する条件、印刷処理の対象となる中間データをプラグインモジュールが対応しているか否かを示した条件、及び出力先のプリンタの機種にプラグインが対応しているか否かを示した条件が含まれている。そして、判定部213は、これらの条件に従って、読込部214により読み込みの対象となるプラグインを判定する。
ところで、従来技術においては、プリンタドライバが処理を行う際に、プラグインの読み込みを行わなければならないが、読み込むプラグインの数が多くなるとプラグインの読み込みに時間がかかるという問題が生じていた。より詳細な例としては、プラグインの数が数個程度であれば読み込み時間はさほど問題にならないと考えられるが、数十個のプラグインがインストールされていた場合は読み込みにかなりの時間を要していた。このため、ユーザの利便性を損ねるという状況を生じていた。
そこで、本実施形態にかかるプリンタドライバ110では、プラグイン毎に読込の対象となるか否かを判定することとした。これにより、当該印刷処理で必要なプラグインのみ読み込まれることになるため、読込速度が向上し、ユーザの利便性を向上させることが可能となった。
読込部214は、判定部213により使用される可能性を有すると判定されたプラグインを読み込む。
そして、プラグイン呼出部212は、読込部214により読み込まれたプラグインに対して、処理を実行させるために呼び出す。
このように、本実施形態にかかるプリンタドライバ110では、プラグイン情報ファイル221を参照し、必要なプラグインのみ呼び出すこととした。
次に、本実施形態にかかるプリンタドライバ110で印刷開始時に、DocumentEventの呼出が行われるタイミングについて説明する。図4は、プリンタドライバ110で印刷開始時に行われる処理手順を示したフローチャートである。
まず、プリンタドライバ110は、OS202からの要求に従って、印刷処理を開始する(ステップS401)。そして、プリンタドライバ110が印刷処理を開始した後に、OS202から"DocumentEvent"を受け付けた場合に、プリンタドライバ110のフック部211が処理をフックし、プラグイン呼出部212がプラグインの呼び出しを行う(ステップS402)。
次に、プリンタドライバ110は、OS202からの要求に従って、文書印刷を開始する(ステップS403)。そして、プリンタドライバ110が文書印刷を開始した後に、OS202から"DocumentEvent"を受け付けた場合に、プリンタドライバ110のフック部211が処理をフックし、プラグイン呼出部212がプラグインの呼び出しを行う(ステップS404)。
その後、プリンタドライバ110は、OS202からの要求に従って、ページ印刷を開始する(ステップS405)。そして、プリンタドライバ110がページ印刷を開始した後に、OS202から"DocumentEvent"を受け付けた場合に、プリンタドライバ110のフック部211が処理をフックし、プラグイン呼出部212がプラグインの呼び出しを行う(ステップS406)。
なお、ステップS405及びステップS406の処理は、文書に含まれているページ毎に行われることとする。さらに、"DocumentEvent"により処理をフックするのは、上述した印刷処理の開始、文書印刷の開始、及びページ印刷の開始だけではなく、印刷処理の終了、文書印刷の終了、及びページ印刷の終了の時も行われることとする。
次に、OS202から"DocumentEvent"を受け付けた際の処理について説明する。図5は、本実施形態にかかるPC100において、"DocumentEvent"が通知された際の処理を示した図である。
まず、OS202が、プリンタドライバ110のコア部210に対して、"DocumentEvent"を通知する(ステップS501)。当該通知の受け付けでフック部211が処理をフックした後、プリンタドライバ110のコア部210が、プラグイン呼出部212に対して"DocumentEvent"を通知する(ステップS502)。
次に、プラグイン呼出部212が、プラグイン情報ファイル221を読み込む(ステップS503)。その後、プラグイン情報ファイル221に示された最初のプラグインのファンクションが判定の対象に設定される(ステップS504)。
次に、判定部213が、当該ファンクションで示された、プラグインがサポートしている処理と、現在行われている処理と、が一致しているか否かを判定する(ステップS505)。本フローでは、現在行われている処理(命令)が、通知として受け付けた"DocumentEvent"である場合とする。そして、一致してないと判定した場合(ステップS505:No)、当該ファンクションで示されたプラグインのロードを行わず、ステップS509に移行する。
一方、判定部213が、プラグインがサポートしている処理と、現在行われている処理と、が一致していると判定した場合(ステップS505:Yes)、当該ファンクションで示された、当該プラグインがサポートしているPDLと、現在の処理の対象となっているPDLと、が一致しているか否かを判定する(ステップS506)。そして、一致してないと判定した場合(ステップS506:No)、当該ファンクションで示されたプラグインのロードを行わず、ステップS509に移行する。
一方、判定部213が、プラグインがサポートしているPDLと、現在の処理の対象となっているPDLと、が一致していると判定した場合(ステップS506:Yes)、当該ファンクションで示された、当該プラグインがサポートしている機種と、印刷先のプリンタ150の機種と、が一致しているか否かを判定する(ステップS507)。そして、一致してないと判定した場合(ステップS507:No)、当該ファンクションで示されたプラグインのロードを行わず、ステップS509に移行する。
一方、判定部213が、プラグインがサポートしている機種と、印刷先のプリンタ150の機種と、が一致していると判定した場合(ステップS507:Yes)、当該ファンクションで示されたプラグインをロードの対象として特定する(ステップS508)。
次に、判定部213は、プラグイン情報ファイル221に次のプラグインのファンクションが含まれているか否かを判定する(ステップS509)。次のプラグインのファンクションが含まれていると判定した場合(ステップS509:Yes)、次のプラグインのファンクションを判定の対象として設定し(ステップS510)、再びステップS505から処理を開始する。
また、判定部213が、全てのファンクションについて判定を終了し、次のプラグインのファンクションが含まれていないと判定した場合(ステップS509:No)、読込部214が、ステップS508で特定されたプラグインをロードする(ステップS511)。
その後、プラグイン呼出部212が、ロードしたプラグインに対して、"DocumentEvent"を通知する(ステップS512)。
上述した処理手順により、必要なプラグインのみロードがなされると共に、当該プラグインに対して、"DocumentEvent"が通知されることになる。
次に、両面強制プラグイン等がインストールされた場合に行われる処理について具体的に説明する。図6は、プリンタドライバ110に、両面強制プラグイン601と、プレビュープラグイン602と、がインストールされた場合の構成の例を示した図である。
そして、両面強制プラグイン601は、DocumentEvent部611を備え、両面印刷を強制するプラグインとする。DocumentEvent部611は、プラグイン呼出部212からの"DocumentEvent"の通知を受け付けるインターフェイスとし、当該通知を受け付けた場合に、両面印刷を行うための処理を行う。
また、両面強制プラグイン601は、まず強制的に両面で印刷を行うための機能を有している。そして、両面強制プラグイン601は、印刷設定を確認し、両面印刷に‘OFF’が設定されている場合、文書印刷の開始時にユーザに対する警告ダイアログを表示する機能を有する。さらに、両面強制プラグイン601は、当該警告ダイアログにおいて、ユーザに両面印刷を‘ON’に設定するか、印刷を中断するかの選択を受け付ける機能を有している。そして、両面強制プラグイン601は、両面印刷を‘ON’にする設定を受け付けた場合に、印刷設定の両面印刷を‘ON’に変更して印刷を継続する。また、両面強制プラグイン601は、印刷を中断する選択を受け付けた場合には印刷を中断する。
そして、プレビュープラグイン602は、uievent部621を備え、プレビューを表示するためのプラグインとする。uievent部621は、プラグイン呼出部212からの"uievent"の通知を受け付けるインターフェイスとし、当該通知を受け付けた場合に、プレビューを行うための処理を行う。なお、"uievent"の通知は、OS202から、ユーザインターフェイスに関する操作等がなされた場合に発行される通知とする。つまり、プレビュープラグイン602は、ユーザインターフェイスに関する操作がなされた場合に限り、ロードがなされるプラグインとする。
図7は、プラグイン情報ファイルの第1の例を示した図である。"duplex"ファンクション701が、両面強制プラグイン601を示し、"preview"ファンクション702が、プレビュープラグイン602を示している。
そして、"duplex"ファンクション701に示されるように、両面強制プラグイン601は、"DocumentEvent"の通知があり、PDLが"PCL6"である場合に呼び出される。なお、プリンタの機種は特に問わない。
一方、"preview"ファンクション702に示されるように、プレビュープラグイン602は、"uievent"の通知があり、PDLが"PS"であり、プリンタの機種が"ModelB"である場合に呼び出される。
次に、これらプラグインを備えた場合に、第1の実施形態にかかるPC100及びプリンタ150で行われる印刷処理について説明する。図8は、第1の実施形態にかかるPC100及びプリンタ150で行われる印刷処理のシーケンスの一例を示した図である。なお、当該シーケンス図において、処理の開始時では、両面印刷の設定が‘OFF’になっている場合とする。
まず、OS202が、プリンタドライバ110のコア部210に対して印刷処理の開始を要求する(ステップS801)。次に、コア部210は、印刷開始の処理を行う(ステップS802)。
その後、コア部210のフック部211が、OS202から、印刷開始時における"DocumentEvent"を受け付け(ステップS803)、印刷開始の処理をフックする。
その後、コア部210が、プラグイン呼出部212に対して、印刷開始時における"DocumentEvent"を通知する(ステップS804)。当該通知を受けて、プラグイン呼出部212は、プラグイン情報ファイル221を読み込む(ステップS805)。読み込んだプラグイン情報ファイル221は、プラグイン呼出部212から参照可能に、(図示しない)RAM等の記憶領域に格納される。
そして、判定部213が、読み込んだプラグイン情報ファイル221に基づいて、現在行われている印刷開始の処理の条件と一致するプラグインを特定する(ステップS806)。その後、読込部214が、ステップS806で特定されたプラグインのロードを行う(ステップS807)。本シーケンスでは、ステップS807において、両面強制プラグイン601がロードされたものとする。
そして、プラグイン呼出部212が、ロードされた両面強制プラグイン601に対して、"DocumentEvent"を通知する(ステップS808)。そして、"DocumentEvent"の通知を受け付けた両面強制プラグイン601は、印刷開始では実行すべき処理が無いため、何も行わない(ステップS809)。
次に、OS202が、プリンタドライバ110のコア部210に対して文書印刷の開始を要求する(ステップS810)。次に、コア部210は、文書印刷の開始処理を行う(ステップS811)。
その後、コア部210のフック部211が、OS202から、文書印刷の開始時における"DocumentEvent"を受け付け(ステップS812)、文書印刷の開始処理をフックする。
その後、コア部210が、プラグイン呼出部212に対して、文書印刷の開始時における"DocumentEvent"を通知する(ステップS813)。当該通知を受けて、プラグイン呼出部212は、記憶領域に格納されているプラグイン情報ファイル221に基づいて、現在行われている印刷開始の処理の条件と一致するプラグインを特定する(ステップS814)。ステップS814では、両面強制プラグイン601が特定されたものとする。この場合、両面強制プラグイン601は既にロードされているので読込部214によるロードは行われない。
そして、プラグイン呼出部212が、ロードされた両面強制プラグイン601に対して、"DocumentEvent"を通知する(ステップS815)。そして、"DocumentEvent"の通知を受け付けた両面強制プラグイン601は、両面印刷の設定がなされていないことを示した警告ダイアログを表示する(ステップS816)。その後、両面強制プラグイン601が、当該警告ダイアログを介して、ユーザからの選択を受け付ける(ステップS817)。本シーケンスでは、両面印刷を‘ON’にする旨の設定を受け付けたものとする。
これにより、両面強制プラグイン601は、コア部210に対して、両面印刷が‘ON’に設定された旨を通知する(ステップS818)。
その後、OS202が、プリンタドライバ110のコア部210に対してページ印刷の開始を要求する(ステップS819)。次に、コア部210は、当該ページを印刷するための描画を実行する(ステップS820)。その後、コア部210が、プリンタ150に対して、描画データと共にコマンドを送信する(ステップS821)。
その後、プラグイン呼出部212が、OS202から、ページ印刷の開始時における"DocumentEvent"を受け付ける(ステップS822)。
そして、プラグイン呼出部212が、記憶領域に格納されているプラグイン情報ファイル221に基づいて、現在行われているページ印刷開始の処理の条件と一致するプラグインを特定する(ステップS823)。ステップS823では、両面強制プラグイン601が特定されたものとする。この場合、両面強制プラグイン601は既にロードされているので読込部214によるロードは行われない。
その後、プラグイン呼出部212が、両面強制プラグイン601に対して、"DocumentEvent"を通知する(ステップS824)。そして、"DocumentEvent"の通知を受け付けた両面強制プラグイン601は、印刷開始では実行すべき処理が無いため、何も行わない(ステップS825)。
次に、ステップS805〜S806のプラグインを特定するまでの処理を、図5で示したフローチャートに従って説明する。なお、プリンタドライバ110は、PDLが‘PCL6’用のドライバとして動作しており、ドライバが対応しているプリンタ150の機種が‘ModelA’であり、処理の命令(イベント)として"DocumentEvent"が渡された場合であり、プラグイン情報ファイル221は、図7で示した例とする。
まずは、図5のステップS501〜S503までの処理により、プラグイン呼出部212が、プラグイン情報ファイル221の読込まで行う。その後、プラグイン呼出部212は、プラグイン情報ファイルの最初に示されている"duplex"ファンクションを判定の対象として設定する(ステップS504)。
そして、"duplex"ファンクションは、"supportevent"が"DocumentEvent"であり、"supportpdl"が"PCL6"であり、"supportmodel"が"ALL"のため、判定部213が、ステップS505〜S507までを一致しているものとして判定し、"duplex"ファンクションで示された両面強制プラグイン601を、ロードの対象として特定する(ステップS508)。
その後、ステップS509〜S510の処理により、"preview"ファンクションが判定の対象として設定される。
そして、"preview"ファンクションは"supportevent"が"uievent"のため、判定部213が、ステップS505において一致しないと判定する(ステップS505:No)。そして、プラグイン情報ファイル221は全てのファンクションについて判定が終了したため(ステップS509:No)、読込部214が、両面強制プラグイン601を示す"duplex.dll"のみロードし(ステップS511)、ロードした両面強制プラグイン601に対して、"DocumentEvent"が通知される(ステップS512)。
このように、"DocumentEvent"においては、両面強制プラグイン601のみロードして、イベントを伝えればよいことが確認できる。
次に、図7と異なるプラグイン情報ファイルの場合に行われる処理フローについて説明する。図9は、当該処理フローの説明で用いられるプラグイン情報ファイルの例を示した図である。図9に示すプラグイン情報ファイルは、"dupulex"ファンクションの"supportpdl"に"PS"901が追加された点、及び"supportmodel"が"ModelC"902に変更された点が異なる。
次に、図9に示すプラグイン情報ファイルを用いた場合における、PC100及びプリンタ150で行われる印刷処理について説明する。図10は、図9に示すプラグイン情報ファイルを利用する場合における、PC100及びプリンタ150で行われる印刷処理のシーケンスの一例を示した図である。なお、当該シーケンス図において、処理の開始時では、両面印刷の設定が‘OFF’になっている場合とする。さらに、プリンタドライバ110は、PDLが‘PCL6’用のドライバとして動作しており、ドライバが対応しているプリンタ150の機種が‘ModelA’であり、処理の命令(イベント)として"DocumentEvent"が渡された場合とする。
まず、図8のステップS801〜S805と同様の処理で、プラグイン情報ファイル221の読込まで行う(ステップS1001〜S1005)。その後、判定部213が、読み込んだプラグイン情報ファイルに基づいて、現在行われている印刷の開始処理時の"DocumentEvent"で示される条件と一致するプラグインを特定する(ステップS1006)。本シーケンスでは、ロードされるプラグインが特定されなかったものとする。このため、読込部214によるプラグインのロード等も行われない。
その後も、図8のステップS810〜S814と同様の処理で、現在行われている文書印刷の開始処理時の"DocumentEvent"で示される条件と一致するプラグインの特定まで行われる(ステップS1007〜S1011)。この文書印刷の開始処理においても、ロードされるプラグインが特定されなかったものとする。
さらに、図8のステップS819〜S823と同様の処理で、ページ文書印刷の開始処理時の"DocumentEvent"で示される条件と一致するプラグインの特定まで行われる(ステップS1012〜S1015)。このページ印刷の開始処理においても、ロードされるプラグインが特定されなかったものとする。
上述したシーケンスでは、条件と一致するプラグインが存在しなかったため、プラグインのロードは行われない例を示した。当該シーケンスでは、使用されないプラグインをロードする必要がないため、処理時間の短縮とメモリ領域の節約とを行うことができる。
次に、ステップS1005〜S1006のプラグインを特定するまでの処理を、図5で示したフローチャートに従って説明する。
まずは、図5のステップS501〜S503までの処理により、プラグイン呼出部212が、プラグイン情報ファイル221の読込まで行う。その後、プラグイン呼出部212は、プラグイン情報ファイルの最初に示されている"duplex"ファンクションを判定の対象として設定する(ステップS504)。
そして、"duplex"ファンクションは、"supportevent"が"DocumentEvent"であり、"supportpdl"が"PCL6"であるため、判定部213は、ステップS505〜S506までは一致していると判定するものの、ステップS507では、"supportmodel"が"ModelC"であるのに対し、プリンタドライバ110が印刷先としているプリンタの機種が"ModelA"のため、一致しないと判定し(ステップS507:No)、両面強制プラグイン601はロードの対象として特定されない。その後の"preview"ファンクションが判定対象として設定された(ステップS509、S510)後は、上述した処理と同様として、ロードの対象として特定されない(ステップS505〜S509)。
このため、読込部214によるプラグインのロードが行われずに、処理が終了する(ステップS511〜S512)。
本実施の形態にかかるPC100では、対応していないプラグインについてはロードがなされずにプリンタドライバ110による処理が行われるため、不要なプラグインのロードを抑制できる。
このように、本実施形態にかかるプリンタドライバ110では、プリンタの機種、PDLの種類に応じてOS202からの"DocumentEvent"の処理の差異がある場合に、現在接続されたプリンタの種類及び現在印刷処理中のPDLに必要なプラグインのみ読み込めるようにし、プラグインの読み込み時間を削減可能とした。
本実施形態にかかるプリンタドライバ110は、上述した構成を備えることで、必要なプラグインのみ呼び出すことができるため、読込時間を削減することが可能となった。
図10は、PC100のハードウェア構成を示した図である。図10に示すように、本実施形態のPC100は、制御を行うCPU1101と、ROM(Read Only Memory)1102と、CPU1101の作業領域となるRAM1103と、HDD1104、ディスプレイ装置などの表示装置1105と、キーボードやマウスなどの入力装置1106と、通信インターフェイス1107と、を備えており、通常のコンピュータを利用したハードウェア構成となっている。
本実施形態のPC100で実行されるプリンタドライバ110は、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
また、本実施形態のPC100で実行されるプリンタドライバ110を、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施形態のPC100で実行されるプリンタドライバ110をインターネット等のネットワーク経由で提供または配布するように構成しても良い。
100 PC
110 プリンタドライバ
150 プリンタ
160 ネットワーク
201 アプリケーション
202 OS
203 通信部
204 記憶部
210 コア部
211 フック部
212 プラグイン呼出部
213 判定部
214 読込部
220 プラグイン保持部
221 プラグイン情報ファイル
222A、222B、222C プラグイン
601 両面強制プラグイン
602 プレビュープラグイン
611 DocumentEvent部
621 uievent部
特開2004−005608号公報

Claims (11)

  1. 追加又は取り外し可能なプラグインと協働するプリンタドライバであって、
    印刷処理中にフックされる所定のタイミングで使用される可能性を有するプラグインを判定する判定手段と、
    前記判定手段により使用される可能性を有すると判定された前記プラグインを読み込む読込手段と、
    前記読込手段により読み込まれた前記プラグインを呼び出す呼出手段と、
    を備えることを特徴とするプリンタドライバ。
  2. 前記判定手段は、前記プラグインを読み込む条件が示されたプラグイン情報を記憶手段から読み込み、当該プラグイン情報に従って判定すること、
    を特徴とする請求項1に記載のプリンタドライバ。
  3. 前記判定手段は、前記プラグイン情報に含まれている、前記印刷処理中でプラグインを実行するタイミングに関する条件に従って判定すること、
    を特徴とする請求項2に記載のプリンタドライバ。
  4. 前記判定手段は、前記プラグイン情報に含まれている、前記印刷処理の対象となる中間データを前記プラグインが対応しているか否かを示した条件に従って判定すること、
    を特徴とする請求項2に記載のプリンタドライバ。
  5. 前記判定手段は、前記プラグイン情報に含まれている、出力先のプリンタに前記プラグインが対応しているか否かを示した条件に従って判定すること、
    を特徴とする請求項2に記載のプリンタドライバ。
  6. 追加又は取り外し可能なプラグインと協働するプリンタドライバをインストールした情報処理装置であって、
    前記プリンタドライバが、
    印刷処理中にフックされる所定のタイミングで使用される可能性を有するプラグインを判定する判定手段と、
    前記判定手段により使用される可能性を有すると判定された前記プラグインを読み込む読込手段と、
    前記読込手段により読み込まれた前記プラグインを呼び出す呼出手段と、
    を備えたことを特徴とする情報処理装置。
  7. 前記判定手段は、前記プラグインを読み込む条件が示されたプラグイン情報を記憶手段から読み込み、当該プラグイン情報に従って判定すること、
    を特徴とする請求項6に記載の情報処理装置。
  8. 前記判定手段は、前記プラグイン情報に含まれている、前記印刷処理中でプラグインを実行するタイミングに関する条件に従って判定すること、
    を特徴とする請求項7に記載の情報処理装置。
  9. 前記判定手段は、前記プラグイン情報に含まれている、前記印刷処理の対象となる中間データを前記プラグインが対応しているか否かを示した条件に従って判定すること、
    を特徴とする請求項7に記載の情報処理装置。
  10. 前記判定手段は、前記プラグイン情報に含まれている、出力先のプリンタに前記プラグインが対応しているか否かを示した条件に従って判定すること、
    を特徴とする請求項7に記載の情報処理装置。
  11. 請求項1から請求項5のいずれか1つに記載されたプリンタドライバを記録したコンピュータ読み取り可能な記録媒体。
JP2011061544A 2011-03-18 2011-03-18 プリンタドライバ、情報処理装置、及び記録媒体 Pending JP2012198674A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011061544A JP2012198674A (ja) 2011-03-18 2011-03-18 プリンタドライバ、情報処理装置、及び記録媒体
US13/411,978 US8730490B2 (en) 2011-03-18 2012-03-05 Printer driver, information processing apparatus, and computer program product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011061544A JP2012198674A (ja) 2011-03-18 2011-03-18 プリンタドライバ、情報処理装置、及び記録媒体

Publications (1)

Publication Number Publication Date
JP2012198674A true JP2012198674A (ja) 2012-10-18

Family

ID=46828216

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011061544A Pending JP2012198674A (ja) 2011-03-18 2011-03-18 プリンタドライバ、情報処理装置、及び記録媒体

Country Status (2)

Country Link
US (1) US8730490B2 (ja)
JP (1) JP2012198674A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017091380A (ja) * 2015-11-13 2017-05-25 三菱電機株式会社 コンソール表示装置
JP2017146892A (ja) * 2016-02-19 2017-08-24 富士通株式会社 情報処理装置、処理実行管理方法、および処理実行管理プログラム
JP7456527B2 (ja) 2018-11-30 2024-03-27 ブラザー工業株式会社 サポートプログラム、情報処理装置、および印刷方法

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014032652A (ja) 2012-07-09 2014-02-20 Ricoh Co Ltd 印刷処理システム
JP6447215B2 (ja) * 2014-03-10 2019-01-09 株式会社リコー 情報配信システム、情報処理装置、情報配信方法及びプログラム
JP6531581B2 (ja) * 2015-09-10 2019-06-19 株式会社リコー 情報配信システム、情報処理装置、情報配信方法及びプログラム
JP6834402B2 (ja) * 2016-11-24 2021-02-24 株式会社リコー 情報処理装置、情報処理システム、情報処理方法、及びプログラム
JP7158871B2 (ja) * 2018-03-15 2022-10-24 キヤノン株式会社 プログラム及び情報処理装置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005135326A (ja) * 2003-10-31 2005-05-26 Canon Inc 印刷制御装置とその方法及びプリンタドライバ
JP2005196751A (ja) * 2003-12-09 2005-07-21 Sharp Corp プリントサブシステムのデスプーリングバックプレーン
JP2006048537A (ja) * 2004-08-06 2006-02-16 Canon Inc 印刷システム及び印刷処理方法
JP2006139675A (ja) * 2004-11-15 2006-06-01 Canon Inc データ処理装置および印刷設定処理方法およびコンピュータが読み取り可能なプログラムを格納した記憶媒体およびプログラム
JP2006155289A (ja) * 2004-11-30 2006-06-15 Canon Marketing Japan Inc 情報処理装置および印刷制御方法およびプリンタドライバプログラムおよび記録媒体
JP2007293772A (ja) * 2006-04-27 2007-11-08 Kyocera Mita Corp 印刷装置制御システム及びプリンタドライバ
JP2009211112A (ja) * 2008-02-29 2009-09-17 Brother Ind Ltd 印刷制御装置およびプリンタドライバのプログラム
JP2010218309A (ja) * 2009-03-17 2010-09-30 Ricoh Co Ltd プリンタドライバ、記憶媒体、及び情報処理装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7284246B2 (en) 2002-04-23 2007-10-16 Canon Kabushiki Kaisha Extensible device driver
JP4832226B2 (ja) 2005-09-16 2011-12-07 株式会社リコー 機器、情報処理方法、情報処理プログラム、及び記録媒体

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005135326A (ja) * 2003-10-31 2005-05-26 Canon Inc 印刷制御装置とその方法及びプリンタドライバ
JP2005196751A (ja) * 2003-12-09 2005-07-21 Sharp Corp プリントサブシステムのデスプーリングバックプレーン
JP2006048537A (ja) * 2004-08-06 2006-02-16 Canon Inc 印刷システム及び印刷処理方法
JP2006139675A (ja) * 2004-11-15 2006-06-01 Canon Inc データ処理装置および印刷設定処理方法およびコンピュータが読み取り可能なプログラムを格納した記憶媒体およびプログラム
JP2006155289A (ja) * 2004-11-30 2006-06-15 Canon Marketing Japan Inc 情報処理装置および印刷制御方法およびプリンタドライバプログラムおよび記録媒体
JP2007293772A (ja) * 2006-04-27 2007-11-08 Kyocera Mita Corp 印刷装置制御システム及びプリンタドライバ
JP2009211112A (ja) * 2008-02-29 2009-09-17 Brother Ind Ltd 印刷制御装置およびプリンタドライバのプログラム
JP2010218309A (ja) * 2009-03-17 2010-09-30 Ricoh Co Ltd プリンタドライバ、記憶媒体、及び情報処理装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017091380A (ja) * 2015-11-13 2017-05-25 三菱電機株式会社 コンソール表示装置
JP2017146892A (ja) * 2016-02-19 2017-08-24 富士通株式会社 情報処理装置、処理実行管理方法、および処理実行管理プログラム
JP7456527B2 (ja) 2018-11-30 2024-03-27 ブラザー工業株式会社 サポートプログラム、情報処理装置、および印刷方法

Also Published As

Publication number Publication date
US20120236346A1 (en) 2012-09-20
US8730490B2 (en) 2014-05-20

Similar Documents

Publication Publication Date Title
JP2012198674A (ja) プリンタドライバ、情報処理装置、及び記録媒体
JP5891794B2 (ja) 情報処理装置及びプログラム
EP3255545A1 (en) Control method
EP3702900A1 (en) Image formation apparatus, control method therefor, and computer readable storage medium
US10191698B2 (en) Information processing apparatus, control method, and storage medium
US20160231970A1 (en) Image forming apparatus, method of controlling printing and printing system
JP6007642B2 (ja) 情報処理装置、省電力制御方法、省電力制御プログラム
US10306101B2 (en) Information processing apparatus capable of establishing connection with internet based on first communication method and connection with external apparatus based on second communication method in parallel, and control method
US9442681B2 (en) Image forming apparatus, method for controlling the same, and system
US10019212B2 (en) Printing apparatus that decompresses and updates software installed therein, method of controlling the same, and storage medium
JP5759290B2 (ja) 情報処理装置およびその制御方法、並びにプログラム
US9626219B2 (en) Information processing apparatus, method of controlling the same and non-transitory computer readable medium
US20230086590A1 (en) Information processing apparatus, method for controlling information processing apparatus, and storage medium
US11625205B2 (en) Information processing apparatus, server apparatus, control method, and storage medium
JP5020131B2 (ja) 情報処理装置、情報処理方法、及びプログラム
US11079986B2 (en) Printing apparatus having print setting control, method of controlling the same, and computer-readable storage medium
JP5866316B2 (ja) アプリケーション実行時間短縮方法
US10608812B2 (en) Image forming apparatus capable of executing encryption processing, method of controlling the same, and storage medium
US10310780B2 (en) System and control method for installing printer driver
US10649705B2 (en) Memory control apparatus and resource management method for memory control apparatus to process PDL data
US20240129419A1 (en) Information processing apparatus, control method, and storage medium
JP2016157340A (ja) プログラム、情報処理装置、出力管理システム及びプレビュー画像生成方法
JP2020184241A (ja) 情報処理装置、情報処理装置の制御方法、及び印刷拡張アプリケーション
JP7133978B2 (ja) 情報処理装置、アプリケーションの機能拡張方法及びプログラム
US20150022856A1 (en) Image processing apparatus, method for controlling image processing apparatus, and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140214

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141112

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150317

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150511

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20150602