JP4457902B2 - 仮想プリンタドライバ、および仮想プリンタドライバプログラム - Google Patents

仮想プリンタドライバ、および仮想プリンタドライバプログラム Download PDF

Info

Publication number
JP4457902B2
JP4457902B2 JP2005020052A JP2005020052A JP4457902B2 JP 4457902 B2 JP4457902 B2 JP 4457902B2 JP 2005020052 A JP2005020052 A JP 2005020052A JP 2005020052 A JP2005020052 A JP 2005020052A JP 4457902 B2 JP4457902 B2 JP 4457902B2
Authority
JP
Japan
Prior art keywords
printer driver
virtual printer
function
application
virtual
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.)
Expired - Fee Related
Application number
JP2005020052A
Other languages
English (en)
Other versions
JP2006209430A (ja
Inventor
義雅 菅原
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.)
Konica Minolta Business Technologies Inc
Original Assignee
Konica Minolta Business Technologies 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 Konica Minolta Business Technologies Inc filed Critical Konica Minolta Business Technologies Inc
Priority to JP2005020052A priority Critical patent/JP4457902B2/ja
Publication of JP2006209430A publication Critical patent/JP2006209430A/ja
Application granted granted Critical
Publication of JP4457902B2 publication Critical patent/JP4457902B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

この発明は仮想プリンタドライバ、および仮想プリンタドライバプログラムに関し、特にアプリケーションからの印刷要求を印刷機器が解釈できる言語に変換するプリンタドライバ(以下、「実プリンタドライバ」という。)と、アプリケーションとの間の中継プログラムとして働く仮想プリンタドライバ、および仮想プリンタドライバプログラムに関する。
従来より、PC(パーソナルコンピュータ)などのコンピュータと、MFP(Multi Function Peripherals)などの画像形成装置(印刷機器)とをネットワークで接続した印刷システムが知られている。コンピュータにインストールされたアプリケーションから印刷要求が出されると、プリンタドライバは、それを画像形成装置が解釈できる言語に変換し、画像形成装置に送信する。これにより、画像形成装置でプリントが行なわれる。
図15は、アプリケーションとプリンタドライバとの関係を示す図である。
プリンタドライバ453は、ページ開始関数453aと、文字出力関数453bと、図形描画関数453cと、ビットマップ出力描画関数453dと、ページ終了関数453eとを備えている。
アプリケーション401が通常の印刷処理を行なう際には、(1)に示されるように、アプリケーションの各要求に対応するプリンタドライバ453の関数453a〜453eを利用することにより、印刷処理が行なわれる。
プリンタドライバ453は、アプリケーション401からの要求を、印刷機器1の解釈できる言語(PDL:page description language(ページ記述言語))に変換し、印刷機器1に出力する(図中の(2))。
ページ開始要求、オブジェクト描画要求(文字出力要求、図形描画要求、ビットマップ出力要求など)、およびページ終了要求の一連のシーケンスを繰り返すことにより、印刷が行なわれる。
なお、プリントの技術に関して、以下の特許文献1には、アプリケーションプログラムの能力に左右されることなく、あらゆる出力デバイスから高品位の印刷を行なうために、中間データに操作を加える印刷データ統合処理システムが開示されている。
また特許文献2は、印刷結果のレイアウトを変更するために中間データに操作を加える印刷データレイアウト編集システムを開示している。
特許文献3は、合成を行なうために中間データを作成する印刷システムを開示している。
特開2002−219828号公報 特開2002−222184号公報 特開平11−184657号公報
プリンタドライバに印刷データを加工する機能などの追加機能を備えさせる場合、例えばプリンタドライバに、印刷データ内に含まれるページへの地紋挿入機能や、ページの挿入機能を実装するためには、プリンタドライバ本体にそのような機能を実装する必要があった。
これにより、プリンタドライバ本体の開発担当者の作業の工数が多くなり、また、プリンタドライバ本体に変更を加えるため、市場へリリースするまでに評価工数が必要であるという問題があった。
また、プリンタドライバにはPCL、PostScript、GDIなど複数のタイプがあるため、全てのタイプのプリンタドライバに同一の機能を実装するのは困難であった。
この発明は上記問題点を解決するためになされたものであり、少ない開発コストでプリンタドライバの機能を拡張することができる仮想プリンタドライバプログラムを提供することを目的としている。
上記目的を達成するためこの発明のある局面に従うと、仮想プリンタドライバは、アプリケーションからの印刷要求を印刷機器が解釈できる言語に変換するプリンタドライバと、アプリケーションとの間の中継プログラムとして働くよう動作する。
この発明の他の局面に従うと、仮想プリンタドライバプログラムは、アプリケーションからの印刷要求を印刷機器が解釈できる言語に変換するプリンタドライバ(実プリンタドライバ)と、アプリケーションとの間でデータの中継が行なわれるようにコンピュータを動作させる仮想プリンタドライバプログラムであって、アプリケーション、または他の仮想プリンタドライバからの要求を受付ける受付ステップと、受付けられた要求に基づいて、実プリンタドライバ、または他の仮想プリンタドライバに要求を出力する出力ステップとをコンピュータに実行させる。
好ましくは出力ステップは、アプリケーション、または他の仮想プリンタドライバからの要求の少なくとも一部をそのまま実プリンタドライバ、または他の仮想プリンタドライバに転送する。
好ましくは仮想プリンタドライバプログラムは、特定の機能を実現する際に、実プリンタドライバの機能を利用することを特徴とする。
好ましくは仮想プリンタドライバプログラムは、他の仮想プリンタドライバプログラムと多段に組合されることで、複数の機能を組合わせた印刷を可能とする。
好ましくは仮想プリンタドライバプログラムは、他の仮想プリンタドライバプログラムと並列に組合されることで、複数アプリケーションからの印刷要求に基づいて、実プリンタドライバへ要求を出力することが可能である。
好ましくは仮想プリンタドライバプログラムは、外部プログラムと連携して動作することを特徴とする。
好ましくは仮想プリンタドライバプログラムは、外部サーバの仮想プリンタドライバと組合せることが可能である。
この発明の他の局面に従うと、コンピュータ読取可能な記録媒体は、上記いずれかに記載の仮想プリンタドライバプログラムを記録する。
この発明に従うと、仮想プリンタドライバは、実プリンタドライバとアプリケーションとの間の中継プログラムとして働くため、少ない開発コストでプリンタドライバの機能を拡張することができる。
[第1の実施の形態]
図1は、本発明の第1の実施の形態における画像形成システムの構成を示す図である。
図を参照して、画像形成システムは、画像形成装置の一種であるMFP(Multi Function Peripheral)1と、複数のPC2a〜2cとから構成される。各機器は、それぞれネットワークに接続される。
このような構成により、MPF1は、ネットワーク上で複数のユーザから共有される。
図2は、図1のPC2a〜2cの1つの構成を示すブロック図である。
図を参照してPCは、装置全体の制御を行なうCPU301と、操作画面等を表示するディスプレイ部303と、MFP1に送信するデータなどを記憶する記憶部305と、キーボードやマウスなどを含む操作部307と、ネットワークとの間でデータの送受信を行なうネットワークI/F部309とから構成される。
図3は、図1のMFP1の構成を示すブロック図である。
図を参照してMFP1は、原稿の読取を行なうスキャン部201と、装置全体の制御を行なう制御部203と、データを作成するデータ作成部205と、ネットワークを介したデータの送受信を行なうデータ送受信部207およびネットワークI/F部211と、プリントエンジンなどを備え用紙に画像を記録する印刷出力部213と、データを記憶する記憶部215と、ユーザからの操作を受付ける操作パネル部209とを備えている。
図4は、本発明の第1の実施の形態において用いられる仮想プリンタドライバの構成および機能を説明するための図である。
ここでは、仮想プリンタドライバに対比させて、図15に示した、アプリケーションからの印刷要求を印刷機器が解釈できる言語に変換するプリンタドライバを実プリンタドライバ453と称している。
実プリンタドライバ453は、図15のプリンタドライバと同様の機能を有し、ページ開始関数453aと、文字出力関数453bと、図形描画関数453cと、ビットマップ出力描画関数453dと、ページ終了関数453eとを備えている。
仮想プリンタドライバ451も、ページ開始関数451aと、文字出力関数451bと、図形描画関数451cと、ビットマップ出力描画関数451dと、ページ終了関数451eとを備えている。仮想プリンタドライバ451は、アプリケーション401と実プリンタドライバ453との間に位置し、両者の間でデータの授受を中継する。すなわち、仮想プリンタドライバ451は、アプリケーション401の要求を実プリンタドライバ453へ中継する。
仮想プリンタドライバ451、実プリンタドライバ453、およびアプリケーション401は、それぞれPCの記憶部305に記憶され、CPU301により読出されることによりコンピュータを動作させるプログラムである。
ここでは、仮想プリンタドライバ451は、アプリケーションの要求(図中(1))をそのまま実プリンタドライバ453の同一関数に転送する(図中(2))。実プリンタドライバ453の戻りは、そのままアプリケーション401に転送される。
仮想プリンタドライバ451をアプリケーション401と実プリンタドライバ453との間に挿入した図4の状態で、アプリケーション401、実プリンタドライバ453、および印刷機器1の動作は、図15での動作と全く同じである。
言い換えれば、アプリケーション401が利用するプリンタドライバが、実プリンタドライバ453から仮想プリンタドライバ451に代わる以外、本実施の形態ではシステムに影響を与えない。すなわち、図4のシステムにおいても、図15と同一の印刷結果が得られる。
すなわち、実プリンタドライバ453は、アプリケーション401からの要求を、仮想プリンタドライバ451を介して取得し、それを印刷機器1の解釈できる言語(PDL:page description language(ページ記述言語))に変換し、印刷機器1に出力する。
ページ開始要求、オブジェクト描画要求(文字出力要求、図形描画要求、ビットマップ出力要求など)、およびページ終了要求の一連のシーケンスを繰り返すことにより、印刷が行なわれる。
ここに、仮想プリンタドライバ451に追加機能を実装する場合を説明する。
図5は、追加機能を実装した仮想プリンタドライバ451が挿入された場合のシステムの動作を示す図である。
この例では、仮想プリンタドライバ451は、印刷するページの先頭にビットマップ(たとえば地紋)を挿入する機能を有している。
まず、アプリケーション401からのページ開始要求を取得すると、仮想プリンタドライバ451のページ開始関数451aは、実プリンタドライバ453の同一関数であるページ開始関数453aに要求を伝える(図中(1))。
実プリンタドライバ453のページ開始関数453aからの完了の信号を待って、仮想プリンタドライバ451のページ開始関数451aは、追加機能を実行する。
この例ではページ先頭にビットマップを挿入するために、仮想プリンタドライバ451のページ開始関数451aは、実プリンタドライバ453のビットマップ出力関数453dに要求を出力する(図中(2))。その完了を待ってページ開始関数451aは、アプリケーション401へ、処理の完了を返す(図中(3))。
このような処理により、アプリケーションや、実プリンタドライバに変更を加えずに、追加機能の実現が可能である。
[第2の実施の形態]
図6は、第2の実施の形態における、追加機能を実装した仮想プリンタドライバが2つ挿入された場合のシステムの動作を示す図である。
図6に示されるように、この実施の形態では仮想プリンタドライバを多段に重ねている。
ここでは第1の実施の形態と同様の、ページ開始時にビットマップを出力する追加機能Aを持つ仮想プリンタドライバA451と、図形描画時に文字を印刷する追加機能Bを持つ仮想プリンタドライバB452とを重ねた構成を例に挙げる。
仮想プリンタドライバA451は、実プリンタドライバ453へではなく、仮想プリンタドライバB452の同一関数に要求を転送する。
仮想プリンタドライバB452は、実プリンタドライバ453の同一関数に要求を転送する。
仮想プリンタドライバA451の追加機能Aは、ビットマップ出力を仮想プリンタドライバB452のビットマップ出力関数452dに要求することで実行される。仮想プリンタドライバB452は、実プリンタドライバ453の同一関数に要求を転送することで、ビットマップの描画を行なう。
追加機能Bは、実プリンタドライバ453の文字出力関数453bに、文字出力の要求を出力することにより実行される。文字出力関数453bからの完了の返答を待って、図形描画関数452cが完了した旨を図形描画関数451cに返すことは、追加機能Aの動作と同様である。このような動作により、ページに文字を挿入する機能などが追加される。
以上のように2つの仮想プリンタドライバを重ねることにより、複数の機能を同時に実現することができる。また、図6に示されるように、多段に重ねられた仮想プリンタドライバはその順序を入れ替えても動作するという特徴を有している。
[第3の実施の形態]
図7は、第3の実施の形態における、外部プログラムと連携を行なう仮想プリンタドライバが挿入された場合のシステムの動作を示す図である。
ここでは、仮想プリンタドライバの追加機能が外部プログラムと連携する例として、外部プログラム461に登録されたビットマップを、外部プログラム461に登録されたページに印刷する例を示す。
仮想プリンタドライバ451のページ開始関数451aは、実プリンタドライバ453の同一関数に要求を転送した後、外部プログラム461に問合わせを行なうことで、機能を実行するページ番号を取得する。
取得されたページ番号が現在処理しているページ番号と合致すれば、追加機能が実行される。すなわち、外部プログラム461からビットマップが取得され、追加機能であるビットマップの描画が行なわれる(図中(1))。
また、機能を実行するページ番号と現在処理しているページ番号との合致の判定は、外部プログラム461が行なうようにしてもよい。すなわち、ページ開始関数451aは、外部プログラム461に対してページ番号を引数として追加機能を実行するか否か問い合わせをする。外部プログラム461は、登録されたページであれば印刷すべきビットマップを仮想プリンタドライバ451に返し、仮想プリンタドライバ451は追加機能を実行する。登録されたページでなければ、外部プログラムは、処理しない旨を返答する。
本実施の形態では、例えば文書の3ページ目など特定のページにコピー禁止を示すウォーターマークなどを挿入することができる。また、外部プログラムにデータを記憶させてそれを呼出したり、外部プログラムで判断を行なうなどの処理を実行することができるため、仮想プリンタドライバの汎用性が高まる。
外部プログラムの機能としては、ビットマップのプリントの他、プリント履歴のログを取りサーバに蓄積させる処理、条件に基づいた複雑な地紋を作成する処理などを行なうこととしてもよい。
[第4の実施の形態]
図8は、第4の実施の形態における、仮想プリンタドライバが並列に組合されて挿入された場合のシステムの動作を示す図である。
ここでは、並列に組合された仮想プリンタドライバA471およびB472によって、アプリケーションA411およびB412から出力される2つのドキュメントを印刷することとしている。
また印刷においては、外部プログラム463に登録された合成シーケンスどおりにドキュメントが合成される。
アプリケーションA411およびB412は、それぞれ仮想プリンタドライバA471およびB472を使って文書の印刷を行う。仮想プリンタドライバA471およびB472は並列に動作し、同一の実プリンタドライバ453に要求を転送する。このとき、仮想プリンタドライバA471およびB472は、外部プログラム463に各ページの印刷を行うか否かを問合わせながら動作する。
まず、仮想プリンタドライバA471は、外部プログラム463に、アプリケーションA411が出力する文書のPage1(P1)の印刷可否を問合わせる。外部プログラム463は、登録された合成シーケンスの先頭がアプリケーションA411のP1からP5であることを確認し、印刷可である旨を返す。
この手順で、仮想プリンタドライバA471は、アプリケーションA411の文書のP1からP5の印刷を行なう。
仮想プリンタドライバA471は、外部プログラム463に、アプリケーションA411が出力する文書のPage6(P6)の印刷可否を問合わせる。外部プログラム463は、登録された合成シーケンスにおいて、アプリケーションA411の文書のP6の印刷の前に、アプリケーションB412の文書のP2を印刷する必要があることを確認し、印刷を許可しない旨を返す。これにより、アプリケーションA411の文書のP6の印刷は停止される。
この間、外部プログラム463は、仮想プリンタドライバB472の問合わせに対し、合成シーケンスにおいて、アプリケーションB412の文書の印刷は、P2から行なう必要があることを確認する。これにより、アプリケーションB412の文書のP1の印刷可否の問合わせに対しては、破棄すべき旨を返す。
このとき、仮想プリンタドライバB472は、P1のアプリケーションB412からの要求を、実プリンタドライバ453に転送せず、ダミーの完了報告のみをアプリケーションB412へ返す。
次に仮想プリンタドライバB472は、外部プログラム463へP2の実行可否の問合わせをする。
アプリケーションA411の文書のP5までの印刷が完了するまで、否である旨の返答が行なわれるため、それまで仮想プリンタドライバB472は印刷を停止する。
仮想プリンタドライバA411によるP5の印刷完了後、仮想プリンタドライバB472によるP2の印刷可否の問合わせに対する返答が可になる。そのため、ここで仮想プリンタドライバB472は、実プリンタドライバ453へP2のデータの転送を開始する。仮想プリンタドライバB472の残りページは、合成シーケンスに登録されていないので外部プログラム463から破棄する旨が返り、P1と同様に破棄される。
仮想プリンタドライバB472のP2の処理完了時点で、仮想プリンタドライバA471による外部プログラム463へのP6の印刷可否の問合わせの回答が可になる。そのためここで、P6のアプリケーションA411からの要求を実プリンタドライバ453に転送する。その後、P7からP10までの問合わせが可として返ってくるので、アプリケーションA411からの要求の転送を実行し、P11以降のページは、外部プログラム463の指示により破棄することとなる。
以上のような処理により、各アプリケーションの内容を変えなくても、プリンタドライバとして所望の仮想プリンタドライバを選択するだけで、指定された合成シーケンスに従った文書の印刷が実行される。
図9は、外部プログラム463が記録するグローバル変数を示す図である。
図を参照して、グローバル変数として、現在の印刷文書のページ番号と、アプリケーションAの印刷の開始フラグ(初期状態ではFALSE)と、アプリケーションBの印刷の開始フラグ(初期状態ではFALSE)と、合成シーケンスが記録される。
合成シーケンスとしては、印刷文書(最終的に出力される文書)のページ番号に合わせて、印刷指示(どのアプリケーションのどのページを印刷するか)が記録されている。
図10は、仮想プリンタドライバの呼出しに対して外部プログラムが行なう初期化処理を示すフローチャートである。
図を参照して、ステップS101で、グローバル変数内の現在の印刷文書ページ番号に「1」を代入する。ステップS103で、呼出しを行なった仮想プリンタドライバに対応するアプリケーションの開始フラグを「TRUE」とする。
ステップS105で、他のアプリケーションの開始フラグ(複数ある場合には全てのアプリケーションの開始フラグ)が「TRUE」となっているかを判定し、YESであれば初期化処理を終了する。
また、ステップS105でNOであれば、ステップS107でSleep処理を行なう。これは、他の仮想プリンタドライバがそれに対応する開始フラグをTRUEにし、全ての開始フラグがTRUEとなるまでWait(待機)する処理である。
なお、外部プログラムは、複数の仮想プリンタドライバのそれぞれからの呼出しに対して、別スタック上で動作することによって、全ての呼出しに対して独立に動作する。ただし、グローバル変数は複数からの問合わせに対して共用となる。
図11は、仮想プリンタドライバの問合せに対して外部プログラムが行なう処理を示すフローチャートである。
図を参照して問合せにおいては、文書のページ番号とアプリケーション名とが引数とされる。また、ローカル変数に完了コードが定義される。
ステップS201で、合成シーケンスに、引数の文書のページ番号とアプリケーション名との組合せが登録されているかが判定される。YESであれば、ステップS203で、グローバル変数(図9)内の、現在の印刷文書ページ番号を読出し、そのページ番号に対応する合成シーケンス内の印刷指示を取得する。
ステップS205で、取得した印刷指示に含まれる文書のページ番号とアプリケーション名の組合せが、引数の文書のページ番号とアプリケーション名の組合せに合致するかが判定される。YESであれば、ステップS207で、グローバル変数内の現在の印刷文書ページ番号を1増加させ、ステップS209で完了コードを「印刷可」として仮想プリンタドライバに返し、処理を終了する。
ステップS201でNOであれば、ステップS213で完了コードを「ページ破棄」として仮想プリンタドライバに返し、処理を終了する。
ステップS205でNOであれば、ステップS211でSleep処理を行ない、ステップS203に戻る。ここに、Sleep処理とは、他のアプリケーションが、「現在の印刷文書ページ番号」の値を増加させ、そのページ番号が合成シーケンス内の対応するアプリケーションを指すまでWaitする処理である。
図12は、仮想プリンタドライバの呼出しに対して外部プログラムが行なう終了処理を示すフローチャートである。
図を参照して、ステップS301で、呼出しを行なった仮想プリンタドライバに対応するアプリケーションの開始フラグを「FALSE」とする。
このようにして、本実施の形態では、外部プログラムに記録された合成シーケンスに応じてプリント内容を制御することができる。また、アプリケーションは、プリンタドライバに通常の処理通りの情報を送ればよいため、特にアプリケーションに改変を加える必要はない。
[第5の実施の形態]
図13は、本発明の第5実施の形態における画像形成システムの構成を示す図である。
図を参照して、本システムは、PC2aおよびMFP1を含むクライアントシステム5と、外部サーバ3a,3bとを備えている。クライアントシステム5と、外部サーバ3a,3bとは、ここではインターネットIなどの通信回線を通じて接続されているものとする。
外部サーバ3a,3bは、仮想プリンタドライバを備えており、クライアントシステム5内に含まれるPC2aで生じたプリントジョブを、PC2aに含まれる仮想プリンタドライバを介して受信し、処理を行ない、それを仮想プリンタドライバを介して、PC2aに返信する。
ここで、外部サーバ3a,3bで行なわれる処理としては、画像の加工、電子透かしの挿入、タイムスタンプの付与などが考えられる。また、外部サーバ3a,3bで処理が行なわれる場合に、ジョブを送信したクライアントやPCを特定し、それに併せて課金を行なうようにしてもよい。
図14は、第5の実施の形態における、外部サーバの仮想プリンタドライバを利用するシステムの動作を示す図である。
クライアントシステム5に含まれるPC2aには、アプリケーション401と、外部中継用仮想プリンタドライバ(SOAP(Simple Object Access Protocol) OUT)481と、外部中継用仮想プリンタドライバ(SOAP IN)483と、実プリンタドライバ485とがプログラムとして記録されている。
また、外部サーバ3aには、外部中継用仮想プリンタドライバ(SOAP IN)487と、仮想プリンタドライバ489と、外部中継用仮想プリンタドライバ(SOAP OUT)491とがプログラムとして記録されている。
外部中継用仮想プリンタドライバ(SOAP OUT)481,491は、関数への要求をSOAP形式のデータに変換し送信し、SOAP形式の関数の完了を関数の戻り値に変換する。
外部中継用仮想プリンタドライバ(SOAP IN)483,487は、SOAP形式の要求を関数への要求に変換し、関数の完了をSOAP形式の戻り値に変換する
図14に示される関数の配置例では、外部サーバ3a上の仮想プリンタドライバ489は、関数Aに要求を受けたときに、外部中継用仮想プリンタドライバ(SOAP OUT)491の関数Bに要求を出力することにより、特定の処理を実現する追加機能を持つ。
図14のように、外部中継用仮想プリンタドライバ(SOAP OUT)481,491から外部中継用仮想プリンタドライバ(SOAP IN)487,483への要求の転送がSOAPにより行なわれる。
外部中継用仮想プリンタドライバ(SOAP IN)487,483は、SOAP形式の要求を関数への要求へ変換し、外部中継用仮想プリンタドライバ(SOAP OUT)481,491に、SOAPにより戻り値を転送する。
外部中継用仮想プリンタドライバ(SOAP OUT)481,491は、SOAPによる戻り値を、関数の戻りに変換する。
このような、外部中継用仮想プリンタドライバによる動作を、クライアントと外部サーバとの双方で行なう。
またここでは、外部サーバ3aの仮想プリンタドライバ489は、第1の実施の形態における仮想プリンタドライバ451と同様の動作を行なう。このような構成により、クライアントは外部サーバの仮想プリンタドライバに実装されている追加機能を利用することができる。
[実施の形態における効果]
以上のように本発明の実施の形態によると、プリンタドライバとアプリケーションソフトウェアの中継プログラムとしての仮想プリンタドライバを提供することができ、また、その仮想プリンタドライバに追加機能を実装することができる。
これにより従来の印刷システムのように、追加機能をユーザに提供する際に、実プリンタドライバに追加機能を実装することが不要となり、開発担当者に負担をかける問題が解消される。
すなわち、実施の形態によると、実プリンタドライバとアプリケーションの中継プログラムとしての仮想プリンタドライバを、実プリンタドライバとアプリケーションの間に挿入することにより、実プリンタドライバに変更を施さなくても、仮想プリンタドライバに追加機能を実装することで追加機能を実現することが可能となる。これにより、ユーザに容易に追加機能を提供できるという効果がある。
さらに、仮想プリンタドライバは、多段または並列に使用することができるため、複合機能を容易にユーザに提供することができる。
なお、上述の実施の形態におけるフローチャートやブロック図での処理を実行するプログラムを提供することもできるし、そのプログラムをCD−ROM、フレキシブルディスク、ハードディスク、ROM、RAM、メモリカードなどの記録媒体に記録してユーザに提供することにしてもよい。また、プログラムはインターネットなどの通信回線を介して、装置にダウンロードするようにしてもよい。
なお、上述の実施の形態においてはMFPに接続される機器の例として、PCを挙げたが、その他機器としては、モバイル端末、携帯電話などを用いることができる。さらに、画像形成装置として、印刷機能を備えたものであれば、プリンタ、コピー機、ファクシミリ、およびそれらの複合機などを用いることができる。
なお、上記実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
本発明の実施の形態の1つにおける画像形成システムの構成を示す図である。 図1のPC2a〜2cの1つの構成を示すブロック図である。 図1のMFP1の構成を示すブロック図である。 本発明の第1の実施の形態における仮想プリンタドライバの構成および機能を説明するための図である。 追加機能を実装した仮想プリンタドライバ451が挿入された場合のシステムの動作を示す図である。 第2の実施の形態における、追加機能を実装した仮想プリンタドライバが2つ挿入された場合のシステムの動作を示す図である。 第3の実施の形態における、外部プログラムと連携を行なう仮想プリンタドライバが挿入された場合のシステムの動作を示す図である。 第4の実施の形態における、仮想プリンタドライバが並列に組合されて挿入された場合のシステムの動作を示す図である。 外部プログラム463が記録するグローバル変数を示す図である。 仮想プリンタドライバの呼出しに対して外部プログラムが行なう初期化処理を示すフローチャートである。 仮想プリンタドライバの問合せに対して外部プログラムが行なう処理を示すフローチャートである。 仮想プリンタドライバの呼出しに対して外部プログラムが行なう終了処理を示すフローチャートである。 本発明の第5実施の形態における画像形成システムの構成を示す図である。 第5の実施の形態における、外部サーバの仮想プリンタドライバを利用するシステムの動作を示す図である。 アプリケーションとプリンタドライバとの関係を示す図である。
符号の説明
1 MFP、2a〜2c PC、201 スキャン部、203 制御部、205 データ作成部、207 データ送受信部、209 操作パネル部、211 ネットワークI/F部、213 印刷出力部、215 記憶部、301 CPU、303 ディスプレイ部、305 記憶部、307 操作部、309 ネットワークI/F部、451,452,471,472,481,483,487,489,491 仮想プリンタドライバ、401,411,412 アプリケーション、453,485 実プリンタドライバ、461,463 外部プログラム。

Claims (9)

  1. 印刷動作を定義するための複数種類の関数別に指定された値を含む印刷要求を発するアプリケーションと、当該印刷要求に従って印刷機器が解釈できる言語を生成するための実プリンタドライバと、の間に介在する仮想プリンタドライバであって、
    前記アプリケーションとの間で、前記複数種類の関数別にそれぞれの値を遣り取りするための複数の第1インターフェイスと、
    前記実プリンタドライバとの間で、前記複数の第1インターフェイスにおける前記複数種類の関数と一対一に対応する複数種類の関数別に、それぞれの値を遣り取りするための複数の第2インターフェイスと、
    前記アプリケーションから前記複数の第1インターフェイスを介して入力される関数別の値を、そのまま前記複数の第2インターフェイスのうち対応する第2インターフェイスを介して前記実プリンタドライバへ出力するとともに、前記アプリケーションの提供する機能とは独立した特定の機能の追加が指示されることに応答して、当該特定の機能を実現するために必要な前記複数種類の関数別の値を、それぞれ前記複数の第2インターフェイスのうち対応する第2インターフェイスを介して、前記実プリンタドライバへ出力する制御手段とを備える、仮想プリンタドライバ
  2. 前記制御手段は、前記アプリケーションから特定の関数についての値を受信すると、前記仮想プリンタドライバとは独立した外部プログラムを参照することで、当該特定の機能を実現するために必要な前記複数種類の関数別の値の生成を開始する、請求項1に記載の仮想プリンタドライバ
  3. 前記制御手段は、前記特定の機能を実現するために必要な前記複数種類の関数別の値を、前記複数の第2インターフェイスのうち対応する第2インターフェイスを介して前記実プリンタドライバへ出力する、請求項2に記載の仮想プリンタドライバ
  4. 前記複数種類の関数は、ページ開始関数、文字出力関数、図形描画関数、ビットマップ出力描画関数、ページ終了関数のうち、少なくとも1つを含む、請求項1〜3のいずれか1項に記載の仮想プリンタドライバ
  5. アプリケーションからの印刷要求に応答して、印刷機器が解釈できる言語を生成するプリンタドライバであって
    前記印刷機器が解釈できる言語を現実に生成する実プリンタドライバと、
    請求項1〜4のいずれか1項に記載の仮想プリンタドライバの複数とを備え、
    前記複数の仮想プリンタドライバは、いずれも前記アプリケーションと前記実プリンタドライバとの間に配置される、プリンタドライバ
  6. 前記複数の仮想プリンタドライバは、直列的に配置される、請求項5に記載のプリンタドライバ。
  7. 前記プリンタドライバは、複数の前記アプリケーションからそれぞれ前記印刷要求を受信し、
    前記複数の仮想プリンタドライバの各々は、各対応するアプリケーションからの印刷要求のみを受信するとともに、各受信した印刷要求を共通の前記実プリンタドライバへ転送する、請求項5に記載のプリンタドライバ。
  8. 前記プリンタドライバは、外部サーバと通信可能なクライエント装置で実行され、
    前記複数の仮想プリンタドライバのうち少なくとも一つの仮想プリンタドライバは、前記外部サーバにおいて実行される仮想プリンタドライバとの間で前記複数種類の関数別にそれぞれの値の遣り取りが可能に構成される、請求項5〜7のいずれか1項に記載のプリンタドライバ。
  9. 請求項1〜8のいずれか1項に記載のドライバを提供するためのコードを格納するコンピュータ読取可能な記録媒体。
JP2005020052A 2005-01-27 2005-01-27 仮想プリンタドライバ、および仮想プリンタドライバプログラム Expired - Fee Related JP4457902B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005020052A JP4457902B2 (ja) 2005-01-27 2005-01-27 仮想プリンタドライバ、および仮想プリンタドライバプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005020052A JP4457902B2 (ja) 2005-01-27 2005-01-27 仮想プリンタドライバ、および仮想プリンタドライバプログラム

Publications (2)

Publication Number Publication Date
JP2006209430A JP2006209430A (ja) 2006-08-10
JP4457902B2 true JP4457902B2 (ja) 2010-04-28

Family

ID=36966231

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005020052A Expired - Fee Related JP4457902B2 (ja) 2005-01-27 2005-01-27 仮想プリンタドライバ、および仮想プリンタドライバプログラム

Country Status (1)

Country Link
JP (1) JP4457902B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4828296B2 (ja) * 2006-04-27 2011-11-30 京セラミタ株式会社 印刷装置制御システム及びプリンタドライバ
JP5229112B2 (ja) * 2009-05-28 2013-07-03 セイコーエプソン株式会社 コントローラーの制御方法およびコントローラー
JP5338505B2 (ja) 2009-06-16 2013-11-13 株式会社リコー 情報処理装置、プログラムおよび記録媒体
JP5528196B2 (ja) * 2010-05-06 2014-06-25 キヤノン株式会社 印刷制御装置、印刷制御方法およびプログラム
JP5800579B2 (ja) 2011-05-31 2015-10-28 キヤノン株式会社 情報処理装置、印刷制御方法及びコンピュータプログラム
JP6047892B2 (ja) * 2012-03-07 2016-12-21 株式会社リコー 情報処理装置、プログラム及び記録媒体
JP5655909B2 (ja) * 2013-08-07 2015-01-21 株式会社リコー 方法および情報処理装置

Also Published As

Publication number Publication date
JP2006209430A (ja) 2006-08-10

Similar Documents

Publication Publication Date Title
US8547561B2 (en) Information processing apparatus, printing processing method, and program therefor
US7190468B2 (en) Background document rendering system and method
JP3747175B2 (ja) 印刷制御装置及び方法
JP4457902B2 (ja) 仮想プリンタドライバ、および仮想プリンタドライバプログラム
JP4969324B2 (ja) 情報処理装置、プログラム及びその記録媒体
US8171190B2 (en) Direct image formation method and apparatus
JPH11259263A (ja) デ―タ併合機能を有するネットワ―ク印刷システム
JP3787434B2 (ja) 画像形成装置及びその制御方法、並びに画像入力装置及びその制御方法
JP2005004751A (ja) ネイティブ構造の文書印刷命令を伝達するためのシステム、および、その方法
JP5551422B2 (ja) ドキュメントにセキュリティ特徴を組み込む方法とその装置
JP4144392B2 (ja) 画像処理装置、画像形成システム、画像形成方法、およびプログラム
EP2230630B1 (en) Printer, and program for its operation screen.
JP2020042744A (ja) 印刷システムと、情報処理装置、その制御方法及びプログラム、外部装置、その制御方法及びプログラム
CN103324450B (zh) 信息处理设备和信息处理方法
JP4110945B2 (ja) 画像処理装置、画像形成装置、およびプログラム
US7689436B2 (en) Peripheral device output job user data processing
JP2004070871A (ja) ネットワークプリンタ及びデータ共有印刷システム
JP2008010993A (ja) 電子機器、アプリケーション実行システム及びプログラム
EP1835713A1 (en) Image forming system, image forming apparatus, and image forming method
JP4542719B2 (ja) プリンタおよびこのプリンタを用いた印刷方法
JP2006228128A (ja) 情報処理装置、通信機器制御装置およびプログラム
JP2015122010A (ja) 情報処理装置、情報処理システム、情報処理方法、及びプログラム
JP5104446B2 (ja) 印刷制御装置、プログラム、及びシステム
JP2012098956A (ja) 情報処理装置、画像形成システム及びプログラム
JP3747898B2 (ja) 電子機器の制御方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071017

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091117

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091214

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: 20100119

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: 20100201

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: 20130219

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140219

Year of fee payment: 4

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees