JP2004288013A - Print control method - Google Patents

Print control method Download PDF

Info

Publication number
JP2004288013A
JP2004288013A JP2003081059A JP2003081059A JP2004288013A JP 2004288013 A JP2004288013 A JP 2004288013A JP 2003081059 A JP2003081059 A JP 2003081059A JP 2003081059 A JP2003081059 A JP 2003081059A JP 2004288013 A JP2004288013 A JP 2004288013A
Authority
JP
Japan
Prior art keywords
print
printer driver
printer
function
application program
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.)
Withdrawn
Application number
JP2003081059A
Other languages
Japanese (ja)
Inventor
Hiroshi Koga
宏 古閑
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 JP2003081059A priority Critical patent/JP2004288013A/en
Publication of JP2004288013A publication Critical patent/JP2004288013A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Accessory Devices And Overall Control Thereof (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a print control method not only allowing use of a standard print function of a printer, but also allowing suitable use of a high value-added function to a printer having a high function. <P>SOLUTION: A printer driver 102 acquires device configuration information about the printer 104 by use of an operating system 101, an application program 103 and the printer driver 102 operating on a host computer system 100. Next, the printer driver 102 produces print function information on the basis of the acquired device configuration information, and notifies the application program 103 of the print function information through the operating system 101. The application program 103 directs the printer driver 102 to execute printing on the basis of the print function information, and the printer driver 102 produces a print control command on the basis of the print direction. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明は、アプリケーションプログラム、プリンタドライバ及び印刷装置からなる印刷システムにおける印刷制御技術に関し、特に、アプリケーションプログラムインタフェース(API)による印刷制御技術に関する。
【0002】
【従来の技術】
従来のオペレーティングシステム上で実行されるドキュメント作成・印刷アプリケーションプログラムからの印刷に関しては、以下に示す方法が一般的であった。
【0003】
すなわち、
(1)Windows(登録商標)(以下、「Windows」とする。)に代表されるオペレーティングシステム環境においては、Software Development Kit(SDK)で共通のアプリケーションプログラムインタフェース(API)が提供され、これを利用して最小限の印刷属性設定及び印刷指示を行う方法、
(2)一般的なプリンタドライバの動作で、利用者にユーザインタフェース(ダイアログ)でオプション装置を指定させ、そのオプション情報に基づき、最終的な印刷データが作成され、印刷装置に送信する方法(例えば、特許文献1参照)、
(3)印刷装置と双方向通信を行い、印刷装置の有するのオプション類等の構成情報を取得するユーティリティアプリケーションプログラムが用意され、機器情報を表示する方法、
である。
【0004】
【特許文献1】
特開平7−44388号公報
【0005】
【発明が解決しようとする課題】
しかしながら、上記従来例では、ドキュメント作成・印刷アプリケーションプログラムからの印刷を行う場合、以下に示すような問題があった。
【0006】
すなわち、
(1)WindowsSDK等のオペレーティングシステムに付属する開発キットでは、印刷装置の一般的な印刷属性設定及び印刷指示だけしかできず、高機能を有する印刷装置に対して、一部の一般的な機能のみ使用して、その他の付加価値が高い機能が使用できない、
(2)印刷装置のオプション機能及び装置を利用する場合には、利用者にユーザインタフェース(ダイアログ)等で、オプション類を明示的に選択・指定させ、そのオプション情報に基づいて、最終的な印刷データを作成する必要がある、
(3)一部のアプリケーションプログラム、プリンタドライバ及び印刷装置で使用されるために用意されるアプリケーションプログラムインタフェース(API)では、機器の構成情報取得のみ行われ、この情報によって印刷に関する機能を実現するための各種印刷属性設定を行うことまでは至っていない、
という問題があった。
【0007】
本発明は、このような事情を考慮してなされたものであり、アプリケーションプログラム、プリンタドライバ及び印刷装置からなる印刷システムにおいて、印刷装置の標準的な印刷機能を使用可能にするだけでなく、高機能を有する印刷装置に対しては、その付加価値の高い機能を好適に使用可能にすることができる印刷制御方法を提供することを目的とする。
【0008】
【課題を解決するための手段】
上記課題を解決するために、本発明は、コンピュータ上で動作するオペレーティングシステム、アプリケーションプログラム及びプリンタドライバを用いて、該コンピュータに接続された印刷装置での印刷処理を制御する印刷制御方法であって、
前記プリンタドライバで前記印刷装置に関する機器構成情報を取得し、
前記印刷装置で動作可能な印刷機能情報を前記機器構成情報に基づいて前記プリンタドライバで生成し、
前記プリンタドライバで生成された前記印刷機能情報を前記オペレーティングシステムを介して前記アプリケーションプログラムに通知し、
前記印刷機能情報に基づいて前記アプリケーションプログラムが印刷ドキュメントを構成して前記プリンタドライバに対して印刷指示を行い、
前記プリンタドライバが前記印刷指示に基づいて前記印刷装置に対する印刷制御命令を生成することを特徴とする。
【0009】
【発明の実施の形態】
以下、図面を参照して、本発明の実施形態について詳細に説明する。
【0010】
<第1の実施形態>
[第1の実施形態における印刷システム及びその動作の概要]
以下では、本実施形態に係る、ホストコンピュータシステム上で動作・実行されるWindowsオペレーティングシステム(OS)、ドキュメント作成・印刷アプリケーションプログラム及びプリンタドライバと、当該ホストコンピュータに接続する印刷装置(プリンタ)から構成される印刷システムについて説明する。すなわち、本実施形態に係る印刷システムにおいては、ドキュメント作成・印刷アプリケーションプログラムからの問い合わせにより、プリンタドライバにはプリンタから機器構成情報を取得する。プリンタドライバは、取得した機器構成情報に基づいて、後述する印刷機能属性情報及び印刷能力属性情報を生成し、アプリケーションプログラムインタフェース(API)を使用して、ドキュメント作成・印刷アプリケーションプログラムに通知する。そして、ドキュメント作成・印刷アプリケーションプログラムは、通知された印刷機能属性情報及び印刷能力属性情報に基づいて、目的の印刷ドキュメント体裁加工を施し、同じくアプリケーションプログラムインタフェース(API)を使用して、プリンタに対し各種印刷属性設定及び印刷指示を行う。
【0011】
[第1の実施形態における印刷システムの構成及び動作の説明]
図1は、本発明の第1の実施形態に係る印刷システムのシステム構成を示すブロック図である。図1に示すように、本実施形態に係る印刷システムは、Windowsオペレーティングシステム(OS)101、ドキュメント作成・印刷アプリケーションプログラム103及びプリンタドライバ102が動作・実行されるホストコンピュータシステム100とこれに接続する印刷装置(プリンタ)104とから構成される。また、図1では、本実施形態に係る印刷システムにおいて、各構成要素間のアプリケーションプログラムインタフェース(API)の流れ及びデータの流れも示している。
【0012】
ホストコンピュータシステム100では、前述のように、Windowsオペレーティングシステム(OS)101、プリンタドライバ102及びドキュメント作成・印刷アプリケーションプログラム103がこのプログラムメモリ上で動作・実行される。また、プリンタ104は、ホストコンピュータシステム100に接続されており、105はこのプリンタ104から出力されるドキュメント印刷出力を示している。
【0013】
次に、本実施形態に係る印刷システムの動作・作用について詳細に説明する。尚、以下では、Windowsオペレーティングシステム(OS)101を「オペレーティングシステム101」と、ドキュメント作成・印刷アプリケーションプログラム103を「アプリケーションプログラム103」と称す。
【0014】
ホストコンピュータシステム100のプログラムメモリ上で動作するオペレーティングシステム101から実行されるアプリケーションプログラム103が初期化される時点で、プリンタドライバ102が、オペレーティングシステム101へロードされ、アプリケーションプログラム103からもプリンタドライバ102との間で各種情報及びデータの送受信が可能となる。また、このアプリケーションプログラム103の初期化時に、アプリケーションプログラムインタフェース(API)となるプログラム関数を含むライブラリ群(プリンタドライバSDK API)も、アプリケーションプログラム103においてロードする。
【0015】
すなわち、本実施形態に係る印刷システムでは、ホストコンピュータシステム100とプリンタ104とが、双方向通信可能なネットワークを介して接続されており、プリンタ104とホストコンピュータシステム100とは、それぞれプリンタ104とプリンタドライバ102との間で各種情報の送受信を行う送受信手段を備えている。
【0016】
アプリケーションプログラム103は、前述した初期化時に、上記プリンタドライバSDK APIを使用して、オペレーティングシステム101を介して、プリンタドライバ102に後述する印刷機能属性情報及び印刷能力属性情報を問い合わせる。
【0017】
プリンタドライバ102は、アプリケーションプログラム103からのプリンタドライバSDK APIによる問い合わせを受けて、プリンタ104との双方向通信により、プリンタMIB(Management Information Base)又はプリンタ104が備える機器情報送受信に係る制御命令を使用して、プリンタ104の機器構成情報の取得を行う。
【0018】
プリンタドライバ102は、プリンタ104から取得した機器構成情報に基づいて、給紙方法、排紙方法、両面印刷機能、N−up印刷機能、ステイプル機能、パンチ機能、トリミング機能、用紙Z折り機能等の各種フィニッシング機能、これらの機能を複合して実現する製本機能、フォントダウンロード機能、フォント置換機能及びフォームオーバレイ機能等のプリンタドライバ102において実行可能な印刷機能属性情報を生成する。また、プリンタドライバ102は、プリンタ104から取得した機器構成情報に基づいて、モノクロ印刷時の階調数、カラー印刷時の色深度、色調、色空間及び設定可能なカラープロファイル、マッチング方法、設定可能解像度、ベクタ/イメージ描画、ディザリング等のグラフィックス描画方法、印刷可能な用紙サイズ及び用紙種、最大設定可能コピー部数、N−up印刷時の印刷設定可能N−up数等のプリンタドライバ104において各種印刷機能実行のための印刷能力属性情報を生成する。
【0019】
さらに、プリンタドライバ102は、アプリケーションプログラム103からコールされたプリンタドライバSDK API関数に対するリターンにより、プリンタドライバ102で生成された上記印刷機能属性情報及び印刷能力属性情報をオペレーティングシステム101を介して、アプリケーションプログラム103に通知する。
【0020】
アプリケーションプログラム103では、プリンタドライバ102より通知された印刷機能属性情報及び印刷能力属性情報に基づいて、ドキュメント作成・体裁加工を行い、プリンタドライバSDK APIを使用してプリンタ104に対する各種印刷属性設定、印刷指示を行う、又は通常のWindowsSDK APIを使用してプリンタ104に対して印刷指示を行う。
【0021】
ここで、プリンタドライバ102が、アプリケーションプログラム103からプリンタドライバSDK APIを使用しての各種印刷属性設定、印刷指示を行う場合は、当該印刷属性設定に基づいて印刷制御命令を生成し、印刷指示に基づく印刷データと組み合わせてプリンタ104に送信し、目的のドキュメントの印刷出力105を行う。
【0022】
一方、プリンタドライバ102が、アプリケーションプログラム103から通常のWindowsSDK APIを使用して印刷指示を行う場合は、オペレーティングシステム101からコールされる印刷属性設定及び印刷指示関数に基づいて印刷制御命令を生成し、印刷指示に基づく印刷データと組み合わせてプリンタ104に送信し、目的のドキュメントの印刷出力105を行う。
【0023】
すなわち、本実施形態に係る印刷システムでは、アプリケーションプログラム103が、印刷ドキュメントを構成する際に、所定のアプリケーションプログラムインタフェースを用いて、プリンタドライバ102に対して印刷機能属性情報及び印刷能力属性情報の取得を問い合わせ、取得した印刷機能属性情報及び印刷能力属性情報に基づいて、印刷ドキュメントを構成することを特徴とする。
【0024】
また、本実施形態に係る印刷システムでは、上記プリンタドライバ102が、アプリケーションプログラム103からの所定のアプリケーションプログラムインタフェースを介した印刷機能属性情報及び印刷能力属性情報の問い合わせに基づいて、印刷機能属性情報及び印刷能力属性情報をアプリケーションプログラムインタフェースを介して、アプリケーションプログラム103に対して通知することを特徴とする。
【0025】
さらに、本実施形態においてアプリケーションプログラム103は、構成した印刷ドキュメントをプリンタ104において印刷させるため、所定のアプリケーションプログラムインタフェースを介してプリンタドライバ102に対して各種印刷属性の設定及び印刷指示を行うことを特徴とする。一方、上記プリンタドライバ102が、アプリケーションプログラム103から所定のアプリケーションプログラムインタフェースを介した各種印刷属性の設定及び印刷指示に基づいて各種印刷のための処理を行って、各種印刷制御命令を生成し、当該各種印刷制御命令とアプリケーションプログラムで構成された印刷ドキュメントとを組み合わせてプリンタ104に送信することを特徴とする。
【0026】
上述したように、本実施形態に係る印刷システムでは、ホストコンピュータシステム100上で動作するオペレーティングシステム101、アプリケーションプログラム103及びプリンタドライバ102を用いて、ホストコンピュータシステム100に接続されたプリンタ104での印刷制御のために、プリンタドライバ102でプリンタ104に関する機器構成情報を取得する。次に、プリンタ104で動作可能な印刷機能情報を取得した機器構成情報に基づいてプリンタドライバ102で生成する。さらに、プリンタドライバ102で生成された印刷機能情報をオペレーティングシステム101を介してアプリケーションプログラム103に通知する。そして、生成された印刷機能情報に基づいてアプリケーションプログラム103が印刷ドキュメントを構成してプリンタドライバ102に対して印刷指示を行い、プリンタドライバ102が印刷指示に基づいてプリンタ104に対する印刷制御命令を生成する。
【0027】
[オペレーティングシステム101、アプリケーションプログラム103及びプリンタドライバ102における各処理のシーケンスの説明]
図2は、本発明の第1の実施形態に係るホストコンピュータシステム100上のオペレーティングシステム101、アプリケーションプログラム103及びプリンタドライバ102におけるプリンタドライバSDK APIを使用した初期化から印刷までの流れを説明するためのシーケンス図である。
【0028】
図2において、200はオペレーティングシステム101が備えるGraphical Device Interface(GDI)である。アプリケーションプログラム103及びプリンタドライバ102間で通常のWindowsSDK API及びプリンタドライバSDK APIによる情報及びデータの送受信は、オペレーティングシステム101のGDI200を介して行われる。
【0029】
まず、アプリケーションプログラム103は、WindowsSDK APIであるCreateDC( )関数203をコールし、プリンタ104に対するデバイスコンテキストを作成する。このとき、アプリケーションプログラム103は、プリンタドライバ102と組み合わせて用意されるアプリケーションプログラムインタフェース(API)関数群を構成するプリンタドライバSDKライブラリをロードする。
【0030】
次に、アプリケーションプログラム103は、初期化処理に移行し、WindowsSDK APIであるStartDoc( )関数204をコールし、指定のプリンタデバイス(例えば、プリンタ104)で印刷ジョブを開始する。一方、プリンタドライバ102は、アプリケーションプログラム13からコールされたStartDoc( )関数203がGDI200で変換されてDevice Driver Interface(DDI)であるDrvStartDoc( )関数205がGDI200よりコールされる。プリンタドライバ102は、この関数内で印刷のための各種初期化処理を行う。
【0031】
アプリケーションプログラム103は、前述した初期化処理と同時に、プリンタSDK APIであるプリンタ104及びプリンタドライバ102における印刷に関する能力情報を取得するFS_GetDevCapabilities()関数206と、プリンタ104及びプリンタドライバ102における印刷に関する機能情報を取得するFS_GetFuncItem( )関数207をコールする。
【0032】
そして、プリンタドライバ102は、前述したFS_GetDevCapabilities( )関数206及びFS_GetFuncItem( )関数207のコールに基づいて、モノクロ印刷時の階調数、カラー印刷時の色深度、色調、色空間及び設定可能なカラープロファイル、マッチング方法、設定可能解像度、ベクタ/イメージ描画、ディザリング等のグラフィックス描画方法、印刷可能な用紙サイズ及び用紙種、最大設定可能コピー部数、N−up印刷時の印刷設定可能N−up数等の前記プリンタドライバ202において各種印刷機能実行のための印刷能力情報及び給紙方法、排紙方法、両面印刷機能、N−up印刷機能、ステイプル機能、パンチ機能、トリミング機能、用紙Z折り機能等の各種フィニッシング機能、さらにこれらの機能を複合して実現する製本機能、フォントダウンロード機能、フォント置換機能、フォームオーバレイ機能等の前記プリンタドライバ202において実行可能な印刷機能情報をGDI200を介して、前記FS_GetCapabilities( ) 関数206及びFS_GetFuncItem( ) 関数207のリターン値として、アプリケーションプログラム103に通知する。
【0033】
アプリケーションプログラム103は、上記FS_GetCapabilities( ) 関数206及びFS_GetFuncItem( )関数207で取得した印刷能力情報及び印刷機能情報に基づき、ドキュメント作成及び体裁加工処理を施し、例えば、前述したようにプリンタドライバSDK APIである両面印刷属性を設定するFS_SetDuplexPrint( )関数208又はステイプル印刷属性を設定するFS_SetStaplePrint( )関数209をコールして、最終的なドキュメント出力形態を指定する。
【0034】
以降同様に、アプリケーションプログラム103は、プリンタドライバSDK
APIを使用して各印刷属性設定を行う。
【0035】
プリンタドライバ102は、プリンタドライバSDK APIによる各種印刷属性設定を受けて、各関数処理において、プリンタ制御命令の生成、或いは解像度、カラー/モノクロ出力、ベクタ/イメージ描画、ディザリング等の画像描画のための初期化設定処理等を行う。
【0036】
続いて、アプリケーションプログラム103は、ドキュメント出力処理に移行するために、WindowsSDK APIであるStartPage( )関数210をコールし、プリンタドライバ102に新しいページの受け取りを開始するように指示し、以降ドキュメントページを構成するWindowsSDK API、プリンタドライバSDK APIの各関数(function)212及び印刷データを書き込み・送信する。
【0037】
プリンタドライバ102は、アプリケーションプログラム103からコールされたStartPage( )関数210がGDI200で変換されて、DDIであるDrvStartPage( )関数211がGDI200よりコールされる。そして、プリンタドライバ102は、この関数内で新しいページ印刷のための各種処理を行う。
【0038】
アプリケーションプログラム103は、ドキュメントページ毎にWindowsSDK APIであるEndPage( )関数213をコールし、1ページの書き込みを終えたことをプリンタドライバ102に伝える。プリンタドライバ102は、アプリケーションプログラム103からコールされたEndPage( )関数213がGDI200で変換されて、DDIであるDrvEndPage( )関数214がGDI200よりコールされる。そして、プリンタドライバ102は、この関数内でページ終了のための各種処理を行う。
【0039】
アプリケーションプログラム103は、すべてのドキュメントページの書き込み・送信が完了した場合、WindowsSDK APIであるEndDoc()関数215をコールし、StartDoc( )関数204で開始された印刷ジョブを終了する。
【0040】
また、プリンタドライバ102は、アプリケーションプログラム103からコールされたEndDoc( )関数215がGDI200で変換されて、DDIであるDrvEndDoc( )関数216がGDI200よりコールされる。そして、プリンタドライバ102は、この関数内でジョブ終了のための各種処理を行う。
【0041】
さらに、アプリケーションプログラム103は、すべての印刷処理を完了し、WindowsSDK APIであるDeleteDC( )関数217をコールして、CreateDC( )関数203で作成されたデバイスコンテキストを削除し、プリンタドライバ102とのセッションを終了する。
【0042】
[印刷機能属性情報及び印刷能力属性情報を取得する関数のコーリングシーケンスの説明]
図3は、本発明の第1の実施形態におけるプリンタドライバSDK APIである、印刷機能属性情報を通知・取得するFS_GetFuncItem( )関数及び印刷能力属性情報を通知・取得するFS_GetDevCapabilities( )関数のコーリングシーケンスを示す図である。
【0043】
図3において、301は、アプリケーションプログラム103において、給紙方法、排紙方法、両面印刷機能、N−up印刷機能、ステイプル機能、パンチ機能、トリミング機能、用紙Z折り機能等の各種フィニッシング機能、さらにこれらの機能を複合して実現する製本機能、フォントダウンロード機能、フォント置換機能、フォームオーバレイ機能等のプリンタドライバ102において実行可能な印刷機能情報を問い合わせ・取得するプリンタドライバSDK APIであるFS_GetFuncItem( )関数のコーリングシーケンスである。
【0044】
アプリケーションプログラム103から本関数がコールされると、プリンタドライバ102は、プリンタ104から機器構成情報であるリソース情報及び印刷機能情報を取得し、これらの情報に基づき、現在有効な印刷機能をアプリケーションプログラム103に通知する。例えば、本関数のコーリングシーケンス例では、関数パラメータの1つであるアプリケーションプログラム103側で確保されたメモリバッファのポインタとして渡されるFUNCITEMプログラム構造体に各種印刷機能情報を代入して、リターンすることでアプリケーションプログラム103に通知する。
【0045】
また、302は、アプリケーションプログラム103において、モノクロ印刷時の階調数、カラー印刷時の色深度、色調、色空間及び設定可能なカラープロファイル、マッチング方法、設定可能解像度、ベクタ/イメージ描画、ディザリング等のグラフィックス描画方法、印刷可能な用紙サイズ及び用紙種、最大設定可能コピー部数、N−up印刷時の印刷設定可能N−up数等のプリンタドライバ102において各種印刷機能実行のための印刷能力情報を問い合わせ・取得するプリンタドライバSDK APIであるFS_GetCapabilities( )関数のコーリングシーケンスである。
【0046】
アプリケーションプログラム103から本関数がコールされると、プリンタドライバ102は、プリンタ104から機器構成情報であるリソース情報及び印刷機能情報を取得し、これらの情報に基づき、現在有効な印刷能力をアプリケーションプログラム103に通知する。例えば、本関数のコーリングシーケンス例では、関数パラメータの1つであるアプリケーションプログラム103側で確保されたメモリバッファのポインタとして渡されるPDEVCAPSプログラム構造体に各種印刷能力情報を代入して、リターンすることでアプリケーションプログラム103に通知する。
【0047】
[32−Bitオペレーティングシステム環境での構成及び動作の説明]
以下では、Windows NT4.0/Windows 2000/Windows XP等の32−Bitオペレーティングシステム環境下におけるオペレーティングシステムのGDI、アプリケーションプログラム、プリンタドライバ及びプリンタドライバSDKライブラリの各構成及び動作例について説明する。
【0048】
図4は、本発明の第1の実施形態におけるアプリケーションプログラム、プリンタドライバ及びプリンタを備える印刷システムにおけるWindows NT4.0/2000の32−BitオペレーティングシステムでのSDKの構成を示す図である。
【0049】
図4において、401は32−Bitアプリケーションプログラム(32−bit User Application)である。また、402はWindows NT4.0/Windows 2000/Windows XP等の32−Bitオペレーティングシステムが備えるGraphical DeviceInterface(GDI)である。さらに、403はプリンタドライバSDKライブラリ(PDSDK.dll)であり、32−Bitオペレーティングシステム環境下で動作・実行できるように32−Bit関数群で構成される。さらにまた、404はプリンタドライバ(Printer Driver)である。
【0050】
通常の印刷属性設定及び印刷指示を行うWindowsSDK APIは、アプリケーションプログラム401から、GDI402を介してDDIに変換されて、プリンタドライバ404の各関数をコールする。
【0051】
一方、アプリケーションプログラム401は、前述した印刷機能属性情報及び印刷能力属性情報に基づいて、より高機能で詳細な印刷属性設定をプリンタドライバSDKライブラリ(PDSDK.dll)403を使用して、直接プリンタドライバ404に対して行う。
【0052】
[16−Bitオペレーティングシステム環境での構成及び動作の説明]
以下では、Windows 95/Windows 98/Windows Me等の16−Bitオペレーティングシステム環境下におけるオペレーティングシステムのGDI、アプリケーションプログラム、プリンタドライバ及びプリンタドライバSDKライブラリの各構成及び動作例について説明する。
【0053】
図5は、本発明の第1の実施形態におけるアプリケーションプログラム、プリンタドライバ及びプリンタを備える印刷システムにおけるWindows 95/98/Meの16−BitオペレーティングシステムでのSDKの構成を示すブロック図である。
【0054】
図5において、501は一般な32−Bitのアプリケーションプログラム(32−bit User Application)である。また、502はWindows 95/Windows 98/Windows Me等の16−Bitオペレーティングシステムが備えるGraphical Device Interface(GDI)である。さらに、503はプリンタドライバSDKライブラリ(PDSDK.dll)であり、32−Bitオペレーティングシステム環境下で動作・実行できるように32−Bit関数群で構成されている。
【0055】
さらにまた、504はプリンタドライバSDKライブラリ(SDK32.dll)であり、上記32−BitプリンタドライバSDKライブラリ(PDSDK.dll)503からコールされる32−Bit関数群及び32−Bitデータタイプを受け取り、16−Bit関数群及び16−Bitデータタイプに変換し、16−BitのGDI502との入出力インタフェースとなる。
【0056】
さらにまた、505はプリンタドライバSDKライブラリ(SDK16.dll)であり、16−Bitオペレーティングシステム環境下で動作・実行できるように16−Bitデータタイプを扱う16−Bit関数群で構成され、16−Bitデータタイプ及び関数群で構成されるプリンタドライバ506との入出力インタフェースとなる。
【0057】
通常の印刷属性設定及び印刷指示を行うWindowsSDK APIは、アプリケーションプログラム501から、GDI502を介してDDIに変換されて、プリンタドライバ506の各関数をコールする。
【0058】
一方、アプリケーションプログラム501は、前述した印刷機能属性情報及び印刷能力属性情報に基づいて、より高機能で詳細な印刷属性設定をプリンタドライバSDKライブラリ(PDSDK.dll)503、SDK32.dll504及びSDK16.dll505を使用して、直接プリンタドライバ506に対して行う。
【0059】
[ホストコンピュータシステム及びプリンタのハードウェア構成図の説明]
図6は、本発明の第1の実施形態に係る印刷システムにおけるホストコンピュータシステム100及びプリンタ104のハードウェア構成を示す図である。図6に示すように、ホストコンピュータシステム100には、ホストコンピュータシステム100に対して入力を行うキーボードやマウス等の入力装置601と、表示出力を行う表示装置(Display)602と、ファイルを格納し入出力が可能なディスク(Disk)603が接続されている。そして、ホストコンピュータシステム100は、当該システム内のプログラムメモリ(RAM)606上にある、本発明のオペレーティングシステム101、プリンタドライバ102、アプリケーションプログラム103及びプリンタSDKライブラリによって一連の印刷制御処理を行い、プリンタ104からドキュメント印刷出力105を行う。
【0060】
さらに、図6を参照して、ホストコンピュータシステム100の構成について詳細に説明する。604は、ホストコンピュータシステム100及びそれに接続される各入出力装置(例えば、上述した入力装置601等)の制御や、入力された指示に従って出力制御等の一連の処理、各種プログラムを実行するCPUである。また、605は、CPU604を動作させるためのオペレーティングシステム等の種々の基本プログラムを格納するメモリ(ROM)である。さらに、606は、CPU604が本実施形態におけるプリンタ104に係る各種印刷属性設定、ドキュメント印刷を実行/動作させる各種処理のための作業領域として用いられるメモリ(RAM)である。
【0061】
一方、607は、ホストコンピュータシステム100に接続され、各種入力を行うキーボードやマウス等の入力装置601のインタフェースを備えるキーボード・コントローラ(Keyboard Controller)、608は、ディスプレイ602への表示出力を行うためのインタフェースを備えるディスプレイ・コントローラ(Display Controller)、609は、ディスク603への入出力インタフェースを備えるディスク・コントローラ(Disk Controller)である。さらに、610は、ホストコンピュータシステム100とプリンタ104を互いに接続して、通信を行うための通信プロトコルを備えたイーサネット(登録商標)等のネットワーク回線を介して、入出力を行うネットワークインタフェース(Network I/F)である。また、611は上述したホストコンピュータシステム100内の各構成要素を接続するためのCPUバスである。
【0062】
次に、プリンタ104の構成について詳細に説明する。図6に示すように、614はプリンタ104に接続される各種入出力の制御や、入力された指示に従って、印刷制御等の一連の処理、通信制御制御処理等のプログラムを実行するCPUである。また、615は、各入出力の制御、通信制御処理、入力された指示に従って印字制御等一連の処理、制御コマンド解析処理等プリンタを動作させるプログラム、各種データ等が格納されているメモリ(ROM)である。さらに、616は、CPU614が各種プログラムで実行・処理を行うための作業領域として用いられるメモリ(RAM)である。
【0063】
一方、617は、ホストコンピュータシステム100とプリンタ104とを互いに接続して、データのやり取りを行うための通信プロトコルを備えたイーサネット(登録商標)等のネットワーク回線を介して、入出力を行うネットワークインタフェースである。また、618は、ディスク613への入出力インタフェースを備えるディスク・コントローラである。さらに、619は、機構的にパターン出力を行うビデオインタフェースであって印刷装置駆動系(エンジン部)621とのデータ及び信号のやり取りを行う入出力インタフェースを備えるエンジン制御処理部である。尚、620は、上述した各構成要素を接続するCPUバスである。
【0064】
次に、ホストコンピュータシステム100内のプログラムメモリであるRAM606上にあるWindowsSDKライブラリを含むオペレーティングシステム101、アプリケーションプログラム103、プリンタドライバ102及びプリンタドライバSDKライブラリの各制御処理及び動作を詳細に説明する。
【0065】
まず、アプリケーションプログラム103における動作について説明する。ホストコンピュータシステム100内のRAM606上にあるアプリケーションプログラム103は、ドキュメント作成、体裁加工及び印刷出力のための各種初期化処理を行う過程で、オペレーティングシステム101を介してプリンタドライバ102のロード及び起動、プリンタドライバSDKライブラリのロードを行う。
【0066】
ここで当該アプリケーションプログラム103は、通常のWindowsSDK APIを使用しての各種初期化処理の他に、プリンタ104及びプリンタドライバ102において、現在使用可能な機能・能力を認識するために、プリンタドライバSDKライブラリに含まれるAPIを使用して、プリンタドライバ102に印刷機能属性情報及び印刷能力属性情報を問い合わせる。そして、アプリケーションプログラム103は、問い合わせに応答してプリンタドライバ102から通知される印刷機能属性情報及び印刷能力属性情報を取得し、これに基づいてドキュメントを目的の出力形態に作成及び体裁加工を行う。さらに、アプリケーションプログラム103は、目的の出力形態を実現するために、プリンタ104に対し、各種印刷属性設定及び印刷指示をドキュメントデータと共に、WindowsSDK API及びプリンタドライバSDK APIを使用して行う。
【0067】
次に、プリンタドライバ102における動作を説明する。ホストコンピュータシステム100内のRAM606上にあるプリンタドライバ102は、前述したアプリケーションプログラム103の起動初期化時に、オペレーティングシステム101上にロードされ、起動する。上記アプリケーションプログラム103におけるドキュメント作成、印刷のための各種初期化処理に基づいて、WindowsSDK APIがコールされることによって、オペレーティングシステム101のGDIを介してDDIに変換され、コールされることによって、プリンタドライバ102での初期化処理が開始される。
【0068】
同時に、アプリケーションプログラム103からプリンタSDK APIによる前述した印刷機能属性情報及び印刷能力属性情報の問い合わせに対し、プリンタドライバ102は、プリンタ104との双方向通信により機器構成情報として、印刷用紙の給紙方法を決定する各種給紙装置、用紙出力方法を決定する各種排紙装置、両面印刷装置、ステイプル装置、パンチャー装置、トリマー装置、用紙Z折り装置等のフィニッシング装置類、メモリ、ハードディスク等の記憶装置、機器に搭載され出力可能な用紙サイズ及び用紙種、搭載されるフォント等の機器が有するリソース情報を取得する。また、プリンタドライバ102は、機器構成情報として、モノクロ/カラー印刷機能、解像度、グラフィックス描画方法、用紙印刷方向、最大コピー部数、N−up印刷機能、ジョブストア機能、フォントダウンロード機能等の機器が有する印刷機能情報も取得する。
【0069】
また、プリンタドライバ102は、プリンタ104の機器構成情報である機器リソース情報及び印刷機能情報に基づき、プリンタ104及びプリンタドライバ102で現在実現可能な印刷機能属性情報及び印刷能力属性情報を生成し、アプリケーションプログラム103から問い合わせを受けたプリンタドライバSDKAPIのリターン値として、アプリケーションプログラム103にそれらを通知する。
【0070】
すなわち、本実施形態に係る印刷システムでは、プリンタドライバ102が、プリンタ104から前述したリソース情報及び印刷機能情報を取得し、そのリソース情報及び印刷機器情報に基づいて、プリンタドライバ102が有する各種印刷機能を実行可能であるか否かを判定し、その判定結果に基づいて、アプリケーションプログラム103に情報通知を行うための印刷機能属性情報を生成することを特徴とする。
【0071】
また、上記印刷システムでは、プリンタドライバ102が、さらに、その判定結果に基づいて、アプリケーションプログラム103に情報通知を行うための印刷能力属性情報を生成することを特徴とする。
【0072】
さらに、アプリケーションプログラム103に通知した印刷機能属性情報及び印刷能力属性情報に基づき、目的のドキュメント印刷を行うための各種印刷属性設定をGDIを介してWindowsSDK API及びプリンタドライバSDK APIでコールされることによって、プリンタドライバ102においてコールされるDDIに基づいて、各種印刷属性設定処理を行う。
【0073】
また、プリンタドライバ102は、上記アプリケーションプログラム103からのドキュメント印刷指示と併せて、ドキュメントデータに基づき、図形/文字及びイメージのパターン・データ、サイズ、描画出力開始位置等の入力処理を行うデータ及び各種設定情報入力処理と、読み込まれた印刷属性設定情報等を解析する入力データ及び情報解析処理と、サイズ、描画出力形態等を指示する各設定パラメータに基づいて、構成されるドキュメントの描画出力形態を決定する描画出力形態制御処理と、決定したドキュメントを印刷するため、プリンタ612のプリンタ制御命令を変換・生成する出力制御命令変換処理と、生成された印字出力制御命令をプリンタに送信する出力制御命令送信制御処理とにおいて一連の処理を施し、プリンタ104から目的のドキュメントを出力させる。
【0074】
次に、プリンタ104における動作について詳細に説明する。プリンタ104内のメモリであるROM615上にある制御プログラムにおける印刷出力制御処理によるドキュメントの出力動作を詳細に説明する。まず、現在サポートしている用紙サイズ、用紙タイプ、ステイプル機能をもつフィニッシャの有無等、印刷を行う際の有効な機能、資源のプリンタ構成情報をネットワークインタフェース617を介して、ホストコンピュータシステム100のRAM606上にあるプリンタドライバに通知する。
【0075】
そして、ホストコンピュータシステム100内のプログラムメモリであるRAM606上にあるプリンタドライバ102から送信されるプリンタ104を初期化する制御命令を受信し、初期化処理を行う。
【0076】
続いて、ホストコンピュータシステム100から、プリンタ104に印刷を行うために送信されてくるプリンタ印刷制御命令の入力を行う印刷制御命令入力処理、入力されたプリンタ印刷制御命令及び各種設定パラメータ等を解析する制御設定パラメータ解析処理、印刷制御命令、制御設定パラメータに基づいて、ビットマップを生成し、ビットマップメモリに展開するビットマップ展開処理において一連の処理を施し、エンジン制御処理部と入出力を行うビデオインタフェース619を通して、印字出力装置駆動系(エンジン部)621に生成されたビットマップ・データを送信して、ドキュメント出力105を出力する。
【0077】
[第1の実施形態のアプリケーションプログラムにおける各制御処理]
次に、図7に示すフローチャートによって、本実施形態におけるホストコンピュータシステム100のプログラムメモリであるRAM606上にあるアプリケーションプログラムの各制御処理を詳細に説明する。
【0078】
図7は、本発明の第1の実施形態に係るホストコンピュータシステム100におけるアプリケーションプログラム103における処理の一例を説明するためのフローチャートである。すなわち、プリンタドライバSDKライブラリを使用して、印刷機能属性情報及び印刷能力属性情報を取得して、目的のドキュメント作成、体裁加工及び印刷指示を行う一連の制御処理について以下に説明する。
【0079】
まず、アプリケーションプログラム103の起動時に初期化処理が行われる(ステップS701)。このとき、プリンタドライバ102もオペレーティングシステム101上でロードされ、起動する。また、同時に、プリンタドライバSDKライブラリをロードする(ステップS702)。次いで、プリンタドライバ102に対してプリンタドライバSDK APIを使用して、印刷機能属性情報及び印刷能力属性情報の問い合わせを行い、プリンタドライバ102から取得する(ステップS703)。
【0080】
そして、アプリケーションプログラム103は、プリンタドライバ102から取得した印刷機能属性情報及び印刷能力属性情報に基づき、WindowsSDK APIを使用して一般的な印刷属性設定を行い、プリンタ104及びプリンタドライバ102が有する、より高機能な印刷属性設定をプリンタドライバSDK APIを使用して行う(ステップS704)。次に、アプリケーションプログラム103は、取得した印刷機能属性情報及び印刷能力属性情報に基づき、目的のドキュメントの作成、体裁加工等の編集を行う(ステップS705)。さらに、アプリケーションプログラム103は、ドキュメントを構成する文字・図形描画処理を行う(ステップS706)。
【0081】
次いで、アプリケーションプログラム103は、WindowsSDK APIを使用してドキュメント印刷指示とともに、描画処理を行った文字・図形データをプリンタ104に送る(ステップS707)。そして、すべてのドキュメントデータを送信後、印刷終了処理に移行する(ステップS708)とともに、プリンタドライバSDKライブラリをアンロードする(ステップS709)。
【0082】
[第1の実施形態のプリンタドライバ102における各制御処理]
ここでは、図8及び図9に示すフローチャートを用いて、本実施形態のプリンタドライバ102における各制御処理を詳細に説明する。
【0083】
図8は、本発明の第1の実施形態のプリンタドライバ102におけるプリンタ104からの機器構成情報取得及びアプリケーションプログラム103への印刷機能属性情報及び印刷能力属性情報通知を行う制御処理を説明するためのフローチャートである。
【0084】
まず、プリンタドライバ102は、プリンタ104から各種機器構成情報を取得するために、ホストコンピュータシステム101とプリンタ104間で双方向通信を行い、プリンタMIB又は機器構成情報の送受信を行う制御コマンドを発行するモジュールライブラリのロード、取得する情報の種類の列挙処理等の初期化を行う(ステップS801)。次に、プリンタドライバ102は、プリンタ104にプリンタMIB又は機器構成情報の送受信を行う制御コマンドを発行して、機器構成情報を問い合わせる(ステップS802)。ステップS802における問い合わせの結果、ステップS803の判断分岐処理に進む。
【0085】
その結果、機器構成情報取得に成功した場合(Yes)、プリンタドライバ102は、取得した機器構成情報からプリンタ104が備えるオプション類等のリソース情報と、有効な機能情報に分離し、リソース情報解析(ステップS804)及び機能情報解析(ステップS805)を行う。一方、ホストコンピュータシステム100及びプリンタ104間の通信で、オフライン又は通信状態劣化等通信不可能の理由で機器構成情報取得に失敗した場合(No)、プリンタドライバ102は、デフォルト設定値及びユーザインタフェース上で設定される値を採用して、これらの値からリソース情報及び機能情報を解析する(ステップS806)。
【0086】
ステップS805又はステップS806の解析処理後、上記リソース情報及び機能情報解析結果より、プリンタドライバ102は、印刷機能属性情報及び印刷能力属性情報を作成する(ステップS807)。さらに、プリンタドライバ102は、作成した印刷機能属性情報及び印刷能力属性情報をアプリケーションプログラム103からコールされた関数のパラメータであるメモリバッファのポインタへコピーして、リターンすることによりアプリケーションプログラム103に通知する(ステップS808)。
【0087】
図9は、本発明の第1の実施形態に係る印刷システムにおけるホストコンピュータシステム100のプログラムメモリであるRAM606上のプリンタドライバ102における印刷制御処理の詳細を説明するためのフローチャートである。
プリンタドライバ102は、外部から、例えば文字、図形、イメージ作成、編集、印刷アプリケーションプログラム等のドキュメント入力プログラムからのプリンタへの印刷指示によって起動され、ステップS901〜S912を実行する。
【0088】
まず、プリンタドライバ102には、各種印刷属性設定パラメータ及びアプリケーションから印刷指示されたドキュメントを構成する文字/図形/イメージデータが入力される(ステップS901)。これらの入力は、WindowsSDK API及びプリンタドライバSDK APIを使用して行われる。次に、プリンタドライバ102は、これらの入力されたパラメータ及びデータを解析する(ステップS902)。
【0089】
そして、入力データの解析結果より、用紙サイズ、印刷方向、描画解像度設定、座標系の単位設定等印刷の準備をするため、プリンタドライバ102は、プリンタ104に対する各設定パラメータをプリンタ制御命令に変換・生成し、送信してプリンタ104の初期化処理を行う(ステップS903)。さらに、プリンタドライバ102は、ステップS904及びステップS906において、解析処理されたパラメータ及びデータを、文字データ、図形データ又はイメージデータに分離する。
【0090】
ステップS904及びステップS906で分離された文字データ、図形データ又はイメージデータは、プリンタドライバ102において、それぞれステップS905、ステップS907及びステップS908の文字印字制御処理部(モジュール)、図形描画制御処理部(モジュール)及びイメージ描画制御処理部(モジュール)で処理が施される。
【0091】
ステップS905、ステップS907及びステップS908における文字印字、図形描画及びイメージ描画制御処理に基づき、ステップS909のドキュメント構成制御処理(モジュール)において、プリンタドライバ102は、描画出力属性、サイズ計算、描画出力位置等パターンの出力形態を決定し、プリンタ104の出力ページに配置する。
【0092】
ステップS909で構成されたドキュメント出力の制御データは、ステップS910の印刷制御命令生成処理(モジュール)において、プリンタ104にドキュメントを出力するためにプリンタの印刷制御命令に変換・生成する。そして、ステップS911のプリンタへの出力送信処理(モジュール)において、プリンタドライバ102は、プリンタ104に対してステップS910で生成された印刷制御命令を送信し、プリンタ104からドキュメント印刷出力を行う(ステップS912)。
【0093】
以上説明したように、本実施形態によれば、Windowsオペレーティングシステム環境下において、アプリケーションプログラムで標準的に使用されるWindowsSDKライブラリとともに、本発明のプリンタドライバSDKライブラリを使用することによって、標準的な印刷機能の他に、オプション装置類を搭載して実現可能なプリンタデバイス機能及びプリンタデバイス機器構成情報に基づくプリンタドライバ機能を使用可能とし、より付加価値の高い印刷機能を提供することが可能である。
【0094】
また、アプリケーションプログラム及びプリンタドライバにおいて、プリンタSDKを使用して、内部的に各種印刷属性設定処理が進行され、常に現在のプリンタデバイスの状況に適応した機能を自動的に利用可能とすることができるため、利用者にとって操作性に優れ、効率的で簡便かつ運用性の高い印刷システムを提供することが可能である。
【0095】
<第2の実施形態>
第2の実施形態では、上述した第1の実施形態のプリンタドライバ102で行っているプリンタ104との双方向通信によるプリンタ機器構成情報取得処理を、Language Monitorが代わって行い、プリンタドライバ104とLanguage Monitorとの間でこれらの機器構成情報のやりとりを行う手段をさらに備える印刷システムを提供する。
【0096】
本実施形態によれば、前述した第1の実施形態から各PDL(Page Description Language)プリンタドライバに依存せずに機器構成情報を取得することができる、各PDL共通の汎用的な機器構成情報取得手段を備えることにより、さらに簡便かつ低コストな印刷システムの構築、運用が可能となる。
【0097】
<第3の実施形態>
第3の本実施形態では、上述した第1の実施形態のオペーレーティングシステム101に代わって、他のオペレーティングシステムを適用した印刷システムを提供する。
【0098】
本実施形態によれば、例えば、GUI(Graphical User Interface)を持たないUNIX(登録商標)系オペレーティングシステム等を用いて、前述したプリンタドライバ101が備えるような各種印刷属性設定を行うユーザインタフェースが実現不可能であっても、本発明のプリンタドライバSDKを用意することによって、同様に高機能な印刷設定を行い、印刷を行うことができる印刷システムを実現することが可能である。
【0099】
<第4の実施形態>
第4の本実施形態では、図6に示すホストコンピュータシステム100とプリンタ104間を接続するイーサネット(登録商標)・インタフェースに代えて、セントロニクス準拠の入出力パラレル・インタフェース、RS−232C準拠、RS−424準拠の入出力シリアル・インタフェース或いはSCSIインタフェースを使って、図6に示すホストコンピュータシステム100のプログラムメモリRAM606上にあるプリンタドライバ102及びプリンタ104とデータのやりとりを行うものである。
【0100】
<その他の実施形態>
尚、本発明は、前述したそれぞれの実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体(記録媒体)を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。
【0101】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光磁気ディスク、光ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。
【0102】
また、コンピュータが読み出したプログラムコードを実行することによって、前述した実施形態の機能が実現される他、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS等が実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【0103】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【0104】
尚、本発明は、前述したそれぞれの実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体からそのプログラムをパソコン通信等の通信ラインを介して要求者にそのプログラムを配信する場合にも適用できることは言うまでもない。
【0105】
【発明の効果】
以上説明したように、本発明によれば、アプリケーションプログラム、プリンタドライバ及び印刷装置からなる印刷システムにおいて、印刷装置の標準的な印刷機能を使用可能にするだけでなく、高機能を有する印刷装置に対しては、その付加価値の高い機能を好適に使用可能にすることができる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態に係る印刷システムのシステム構成を示すブロック図である。
【図2】本発明の第1の実施形態に係るホストコンピュータシステム100上のオペレーティングシステム101、アプリケーションプログラム103及びプリンタドライバ102におけるプリンタドライバSDK APIを使用した初期化から印刷までの流れを説明するためのシーケンス図である。
【図3】本発明の第1の実施形態におけるプリンタドライバSDK APIである、印刷機能属性情報を通知・取得するFS_GetFuncItem( )関数及び印刷能力属性情報を通知・取得するFS_GetDevCapabilities( )関数のコーリングシーケンスを示す図である。
【図4】本発明の第1の実施形態におけるアプリケーションプログラム、プリンタドライバ及びプリンタを備える印刷システムにおけるWindows NT4.0/2000の32−BitオペレーティングシステムでのSDKの構成を示す図である。
【図5】本発明の第1の実施形態におけるアプリケーションプログラム、プリンタドライバ及びプリンタを備える印刷システムにおけるWindows 95/98/Meの16−BitオペレーティングシステムでのSDKの構成を示すブロック図である。
【図6】本発明の第1の実施形態に係る印刷システムにおけるホストコンピュータシステム100及びプリンタ104のハードウェア構成を示す図である
【図7】本発明の第1の実施形態に係るホストコンピュータシステム100におけるアプリケーションプログラム103における処理の一例を説明するためのフローチャートである。
【図8】本発明の第1の実施形態のプリンタドライバ102におけるプリンタ104からの機器構成情報取得及びアプリケーションプログラム103への印刷機能属性情報及び印刷能力属性情報通知を行う制御処理を説明するためのフローチャートである。
【図9】本発明の第1の実施形態に係る印刷システムにおけるホストコンピュータシステム100のプログラムメモリであるRAM606上のプリンタドライバ102における印刷制御処理の詳細を説明するためのフローチャートである。
【符号の説明】
100 ホストコンピュータシステム
101 オペレーティングシステム
102 プリンタドライバ
103 アプリケーションプログラム
104 プリンタ
105 印刷出力
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a print control technique in a printing system including an application program, a printer driver, and a printing apparatus, and more particularly, to a print control technique using an application program interface (API).
[0002]
[Prior art]
Regarding printing from a document creation / printing application program executed on a conventional operating system, the following method has been generally used.
[0003]
That is,
(1) In an operating system environment represented by Windows (registered trademark) (hereinafter referred to as "Windows"), a common application program interface (API) is provided and used by a software development kit (SDK). To set the minimum print attributes and print instructions,
(2) A general printer driver operation allows a user to specify an optional device on a user interface (dialog), and based on the option information, final print data is created and transmitted to the printing device (for example, , Patent Document 1),
(3) a method for performing bidirectional communication with the printing apparatus, obtaining a utility application program for acquiring configuration information such as options included in the printing apparatus, and displaying device information;
It is.
[0004]
[Patent Document 1]
JP-A-7-44388
[0005]
[Problems to be solved by the invention]
However, in the above-described conventional example, when printing from a document creation / print application program, there are the following problems.
[0006]
That is,
(1) With a development kit attached to an operating system such as Windows SDK, only general printing attribute setting and printing instructions of a printing apparatus can be performed. Use and other value-added features are not available,
(2) When using the optional functions and devices of the printing apparatus, the user is required to select and specify options with a user interface (dialog) or the like, and to perform final printing based on the option information. Need to create data,
(3) In an application program interface (API) prepared for use in some application programs, printer drivers, and printing devices, only device configuration information is obtained, and a function related to printing is realized by this information. Has not been set up for various print attributes.
There was a problem.
[0007]
The present invention has been made in view of such circumstances, and in a printing system including an application program, a printer driver, and a printing apparatus, it is possible to use not only a standard printing function of the printing apparatus but also a high printing function. It is an object of the present invention to provide a print control method capable of suitably enabling a high value-added function to a printing apparatus having functions.
[0008]
[Means for Solving the Problems]
In order to solve the above problems, the present invention is a printing control method for controlling a printing process in a printing device connected to a computer using an operating system, an application program, and a printer driver operating on the computer. ,
Acquiring device configuration information on the printing device with the printer driver,
Print function information operable in the printing apparatus is generated by the printer driver based on the device configuration information,
Notifying the application program of the printing function information generated by the printer driver via the operating system,
The application program configures a print document based on the print function information and issues a print instruction to the printer driver,
The printer driver may generate a print control command for the printing apparatus based on the print command.
[0009]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
[0010]
<First embodiment>
[Overview of Printing System and Its Operation in First Embodiment]
In the following, a Windows operating system (OS) operated and executed on a host computer system, a document creation / print application program and a printer driver, and a printing device (printer) connected to the host computer according to the present embodiment will be described. The printing system performed will be described. That is, in the printing system according to the present embodiment, the printer driver acquires device configuration information from the printer in response to an inquiry from the document creation / printing application program. The printer driver generates print function attribute information and print capability attribute information described below based on the acquired device configuration information, and notifies the document creation / print application program using an application program interface (API). Then, the document creation / printing application program performs the desired print document format processing based on the notified print function attribute information and print capability attribute information, and similarly uses the application program interface (API) for the printer. Various print attribute settings and print instructions are performed.
[0011]
[Description of Configuration and Operation of Printing System in First Embodiment]
FIG. 1 is a block diagram illustrating a system configuration of a printing system according to the first embodiment of the present invention. As shown in FIG. 1, the printing system according to the present embodiment is connected to a host computer system 100 on which a Windows operating system (OS) 101, a document creation / print application program 103 and a printer driver 102 operate and execute. And a printing device (printer) 104. FIG. 1 also shows a flow of an application program interface (API) and a flow of data between components in the printing system according to the present embodiment.
[0012]
In the host computer system 100, as described above, the Windows operating system (OS) 101, the printer driver 102, and the document creation / print application program 103 are operated and executed on the program memory. The printer 104 is connected to the host computer system 100, and reference numeral 105 denotes a document print output output from the printer 104.
[0013]
Next, the operation and operation of the printing system according to the present embodiment will be described in detail. Hereinafter, the Windows operating system (OS) 101 is referred to as an “operating system 101”, and the document creation / printing application program 103 is referred to as an “application program 103”.
[0014]
When the application program 103 executed from the operating system 101 operating on the program memory of the host computer system 100 is initialized, the printer driver 102 is loaded into the operating system 101, and the application program 103 also executes , Various kinds of information and data can be transmitted and received. At the time of initialization of the application program 103, the application program 103 also loads a library group (printer driver SDK API) including a program function serving as an application program interface (API).
[0015]
That is, in the printing system according to the present embodiment, the host computer system 100 and the printer 104 are connected via a bidirectional communication network, and the printer 104 and the host computer system 100 are connected to the printer 104 and the printer 104, respectively. A transmission / reception unit for transmitting / receiving various information to / from the driver 102 is provided.
[0016]
At the time of the above-described initialization, the application program 103 uses the printer driver SDK API to inquire the printer driver 102 of later-described print function attribute information and print capability attribute information via the operating system 101.
[0017]
The printer driver 102 receives a query by the printer driver SDK API from the application program 103, and uses a printer MIB (Management Information Base) or a control command related to transmission / reception of device information provided in the printer 104 by bidirectional communication with the printer 104. Then, the device configuration information of the printer 104 is obtained.
[0018]
The printer driver 102 performs a paper feeding method, a paper discharging method, a double-sided printing function, an N-up printing function, a staple function, a punch function, a trimming function, a paper Z folding function, and the like based on the device configuration information acquired from the printer 104. It generates print function attribute information that can be executed by the printer driver 102, such as various finishing functions, a bookbinding function that realizes these functions in combination, a font download function, a font replacement function, and a form overlay function. Also, the printer driver 102 can set the number of gradations in monochrome printing, the color depth, color tone, color space and settable color profile, matching method, and setting based on the device configuration information acquired from the printer 104. In the printer driver 104 such as resolution, vector / image drawing, graphics drawing method such as dithering, printable paper size and paper type, maximum settable number of copies, printable N-up number for N-up printing, etc. Generate print capability attribute information for executing various print functions.
[0019]
Further, the printer driver 102 returns the print function attribute information and the print capability attribute information generated by the printer driver 102 via the operating system 101 in response to a return to the printer driver SDK API function called from the application program 103. Notify 103.
[0020]
The application program 103 performs document creation and appearance processing based on the print function attribute information and print capability attribute information notified from the printer driver 102, and sets various print attributes for the printer 104 using the printer driver SDK API, and performs printing. An instruction is issued, or a print instruction is issued to the printer 104 using the normal Windows SDK API.
[0021]
Here, when the printer driver 102 performs various print attribute settings and print instructions from the application program 103 using the printer driver SDK API, the printer driver 102 generates a print control command based on the print attribute settings, and transmits the print control instruction to the print instruction. The print data is transmitted to the printer 104 in combination with the print data based on the print data, and the print output 105 of the target document is performed.
[0022]
On the other hand, when the printer driver 102 issues a print instruction from the application program 103 using the normal Windows SDK API, the printer driver 102 generates a print control instruction based on a print attribute setting and a print instruction function called from the operating system 101, The print data is transmitted to the printer 104 in combination with the print data based on the print instruction, and the printout 105 of the target document is performed.
[0023]
That is, in the printing system according to the present embodiment, the application program 103 obtains the print function attribute information and the print capability attribute information for the printer driver 102 using a predetermined application program interface when constructing a print document. The print document is constructed based on the acquired print function attribute information and print capability attribute information.
[0024]
Further, in the printing system according to the present embodiment, the printer driver 102 performs printing function attribute information and printing capability attribute information inquiries from the application program 103 based on an inquiry about printing function attribute information and printing capability attribute information via a predetermined application program interface. The printing capability attribute information is notified to the application program 103 via the application program interface.
[0025]
Further, in the present embodiment, the application program 103 sets various print attributes and issues a print instruction to the printer driver 102 via a predetermined application program interface in order to print the composed print document on the printer 104. And On the other hand, the printer driver 102 performs various printing processes based on setting of various printing attributes and printing instructions from the application program 103 via a predetermined application program interface, and generates various printing control commands. It is characterized in that various print control commands are combined with a print document constituted by an application program and transmitted to the printer 104.
[0026]
As described above, in the printing system according to the present embodiment, printing is performed by the printer 104 connected to the host computer system 100 using the operating system 101, the application program 103, and the printer driver 102 that operate on the host computer system 100. For control, the printer driver 102 acquires device configuration information regarding the printer 104. Next, print function information operable by the printer 104 is generated by the printer driver 102 based on the acquired device configuration information. Further, the print function information generated by the printer driver 102 is notified to the application program 103 via the operating system 101. Then, the application program 103 forms a print document based on the generated print function information and issues a print instruction to the printer driver 102, and the printer driver 102 generates a print control instruction for the printer 104 based on the print instruction. .
[0027]
[Description of Sequence of Each Process in Operating System 101, Application Program 103, and Printer Driver 102]
FIG. 2 is a diagram for explaining a flow from initialization to printing using the printer driver SDK API in the operating system 101, the application program 103, and the printer driver 102 on the host computer system 100 according to the first embodiment of the present invention. FIG.
[0028]
In FIG. 2, reference numeral 200 denotes a Graphic Device Interface (GDI) provided in the operating system 101. Transmission and reception of information and data between the application program 103 and the printer driver 102 using the normal Windows SDK API and printer driver SDK API are performed via the GDI 200 of the operating system 101.
[0029]
First, the application program 103 calls a CreateDC () function 203, which is a Windows SDK API, and creates a device context for the printer 104. At this time, the application program 103 loads a printer driver SDK library constituting an application program interface (API) function group prepared in combination with the printer driver 102.
[0030]
Next, the application program 103 proceeds to initialization processing, calls a StartDoc () function 204 that is a Windows SDK API, and starts a print job on a designated printer device (for example, the printer 104). On the other hand, in the printer driver 102, a StartDoc () function 203 called from the application program 13 is converted by the GDI 200, and a DrvStartDoc () function 205 which is a Device Driver Interface (DDI) is called from the GDI 200. The printer driver 102 performs various initialization processes for printing in this function.
[0031]
At the same time as the initialization processing described above, the application program 103 acquires an FS_GetDevCapabilities () function 206 for acquiring capability information on printing in the printer 104 and the printer driver 102 which are printer SDK APIs, and function information on printing in the printer 104 and the printer driver 102. FS_GetFuncItem () function 207 that obtains
[0032]
Then, based on the call of the FS_GetDevCapabilities () function 206 and the FS_GetFuncItem () function 207, the printer driver 102 determines the number of gradations in monochrome printing, the color depth, color tone, color space, and settable color in monochrome printing. Profile, matching method, settable resolution, vector / image drawing, graphics drawing method such as dithering, printable paper size and paper type, maximum settable number of copies, printable N-up print setting N-up Print capability information for executing various print functions in the printer driver 202, such as the number of sheets, paper feeding method, paper discharging method, double-sided printing function, N-up printing function, staple function, punch function, trimming function, paper Z-folding function Various finishing functions such as Print function information executable by the printer driver 202 such as a bookbinding function, a font download function, a font replacement function, and a form overlay function, which are realized by combining these functions, is transmitted via the GDI 200 via the FS_GetCapabilities () function 206 and the FS_GetFunctionItem. () Notify the application program 103 as the return value of the function 207.
[0033]
The application program 103 performs document creation and format processing based on the printing capability information and the printing function information obtained by the FS_GetCapabilities () function 206 and the FS_GetFuncItem () function 207. For example, the application program 103 uses the printer driver SDK API as described above. The FS_SetDuplexPrint () function 208 for setting a certain double-sided printing attribute or the FS_SetStaplePrint () function 209 for setting a staple printing attribute is called to specify the final document output mode.
[0034]
Thereafter, similarly, the application program 103 executes the printer driver SDK
Each print attribute is set using the API.
[0035]
The printer driver 102 receives various print attribute settings by the printer driver SDK API, and in each function processing, generates a printer control instruction or performs image drawing such as resolution, color / monochrome output, vector / image drawing, and dithering. , Etc. are performed.
[0036]
Subsequently, the application program 103 calls a StartPage () function 210, which is a Windows SDK API, in order to shift to a document output process, instructs the printer driver 102 to start receiving a new page, and thereafter changes the document page. Write and transmit the constituent Windows API, the function 212 of the printer driver SDK API, and the print data.
[0037]
In the printer driver 102, a StartPage () function 210 called from the application program 103 is converted by the GDI 200, and a DrvStartPage () function 211 which is a DDI is called from the GDI 200. Then, the printer driver 102 performs various processes for printing a new page in this function.
[0038]
The application program 103 calls an EndPage () function 213 which is a Windows SDK API for each document page, and notifies the printer driver 102 that writing of one page has been completed. In the printer driver 102, the EndPage () function 213 called from the application program 103 is converted by the GDI 200, and the DrvEndPage () function 214 which is a DDI is called from the GDI 200. Then, the printer driver 102 performs various processes for ending the page within this function.
[0039]
When the writing and transmission of all the document pages are completed, the application program 103 calls an EndDoc () function 215 which is a Windows SDK API, and ends the print job started by the StartDoc () function 204.
[0040]
In the printer driver 102, the EndDoc () function 215 called from the application program 103 is converted by the GDI 200, and the DrvEndDoc () function 216, which is the DDI, is called from the GDI 200. Then, the printer driver 102 performs various processes for ending the job within this function.
[0041]
Further, the application program 103 completes all the printing processes, calls the DeleteSDC () function 217 which is a Windows SDK API, deletes the device context created by the CreateDC () function 203, and executes a session with the printer driver 102. To end.
[0042]
[Description of Calling Sequence of Function for Obtaining Printing Function Attribute Information and Printing Ability Attribute Information]
FIG. 3 is a calling sequence of an FS_GetFuncItem () function for notifying / acquiring print function attribute information and an FS_GetDevCapabilities () function for notifying / acquiring print capability attribute information, which are printer driver SDK APIs according to the first embodiment of the present invention. FIG.
[0043]
3, reference numeral 301 denotes various finishing functions such as a paper feeding method, a paper discharging method, a double-sided printing function, an N-up printing function, a staple function, a punch function, a trimming function, and a paper Z folding function in the application program 103. An FS_GetFuncItem () function, which is a printer driver SDK API for inquiring and acquiring print function information executable by the printer driver 102 such as a bookbinding function, a font download function, a font replacement function, and a form overlay function, which are realized by combining these functions. Is a calling sequence.
[0044]
When this function is called from the application program 103, the printer driver 102 acquires resource information and printing function information, which are device configuration information, from the printer 104, and based on the information, prints the currently effective printing function in the application program 103. Notify For example, in the example of the calling sequence of this function, various print function information is assigned to a FUNCITEM program structure passed as a pointer of a memory buffer secured on the application program 103 side, which is one of the function parameters, and the program returns. Notify the application program 103.
[0045]
Also, reference numeral 302 denotes the application program 103 in which the number of gradations in monochrome printing, the color depth in color printing, color tone, color space and settable color profile, matching method, settable resolution, vector / image drawing, dithering Such as graphics drawing method, printable paper size and paper type, maximum settable number of copies, printable N-up number for N-up printing, etc. This is a calling sequence of an FS_GetCapabilities () function which is a printer driver SDK API for inquiring / acquiring information.
[0046]
When this function is called from the application program 103, the printer driver 102 obtains resource information and printing function information, which are device configuration information, from the printer 104, and determines the currently effective printing capability based on the information. Notify For example, in the example of the calling sequence of this function, various printing capability information is substituted into a PDEVCAPS program structure passed as a pointer of a memory buffer secured on the application program 103 side, which is one of the function parameters, and the routine returns. Notify the application program 103.
[0047]
[Description of Configuration and Operation in 32-Bit Operating System Environment]
Hereinafter, each configuration and operation example of the GDI, the application program, the printer driver, and the printer driver SDK library of the operating system in a 32-bit operating system environment such as Windows NT 4.0 / Windows 2000 / Windows XP will be described.
[0048]
FIG. 4 is a diagram illustrating a configuration of an SDK in a 32-bit operating system of Windows NT 4.0 / 2000 in a printing system including an application program, a printer driver, and a printer according to the first embodiment of this invention.
[0049]
In FIG. 4, reference numeral 401 denotes a 32-bit application program (32-bit User Application). Reference numeral 402 denotes a Graphic Device Interface (GDI) provided in a 32-bit operating system such as Windows NT 4.0 / Windows 2000 / Windows XP. Reference numeral 403 denotes a printer driver SDK library (PDSDK.dll), which is composed of a group of 32-bit functions so that it can operate and execute under a 32-bit operating system environment. Furthermore, reference numeral 404 denotes a printer driver.
[0050]
A Windows SDK API for performing normal print attribute setting and print instruction is converted from the application program 401 to DDI via the GDI 402, and calls each function of the printer driver 404.
[0051]
On the other hand, the application program 401 uses the printer driver SDK library (PDSDK.dll) 403 to directly set more sophisticated and detailed print attribute settings based on the above-described print function attribute information and print capability attribute information. 404.
[0052]
[Description of Configuration and Operation in 16-Bit Operating System Environment]
Hereinafter, each configuration and operation example of the GDI, the application program, the printer driver, and the printer driver SDK library of the operating system under a 16-bit operating system environment such as Windows 95 / Windows 98 / Windows Me will be described.
[0053]
FIG. 5 is a block diagram illustrating a configuration of an SDK in a Windows 95/98 / Me 16-Bit operating system in a printing system including an application program, a printer driver, and a printer according to the first embodiment of this invention.
[0054]
Referring to FIG. 5, reference numeral 501 denotes a general 32-bit application program (32-bit User Application). Reference numeral 502 denotes a Graphic Device Interface (GDI) provided in a 16-Bit operating system such as Windows 95 / Windows 98 / Windows Me. Reference numeral 503 denotes a printer driver SDK library (PDSDK.dll), which is composed of a group of 32-bit functions so that it can operate and execute under a 32-bit operating system environment.
[0055]
Reference numeral 504 denotes a printer driver SDK library (SDK32.dll) which receives a 32-bit function group and 32-bit data type called from the 32-bit printer driver SDK library (PDSDK.dll) 503, The data is converted into a 16-bit data group and a 16-bit GDI 502 as an input / output interface.
[0056]
Reference numeral 505 denotes a printer driver SDK library (SDK16.dll), which is composed of a 16-bit function group that handles a 16-bit data type so that it can operate and execute under a 16-bit operating system environment. It is an input / output interface with the printer driver 506 composed of data types and functions.
[0057]
A Windows SDK API for performing normal print attribute settings and print instructions is converted from the application program 501 to DDI via the GDI 502, and calls each function of the printer driver 506.
[0058]
On the other hand, based on the print function attribute information and the print capability attribute information described above, the application program 501 sets more advanced and detailed print attribute settings in the printer driver SDK library (PDSDK.dll) 503, SDK32. dll504 and SDK16. The process is directly performed on the printer driver 506 using the dll 505.
[0059]
[Description of Hardware Configuration Diagram of Host Computer System and Printer]
FIG. 6 is a diagram illustrating a hardware configuration of the host computer system 100 and the printer 104 in the printing system according to the first embodiment of the present invention. As shown in FIG. 6, the host computer system 100 stores an input device 601 such as a keyboard and a mouse for inputting to the host computer system 100, a display device (Display) 602 for performing display output, and files. A disk (Disk) 603 capable of input / output is connected. Then, the host computer system 100 performs a series of print control processing by the operating system 101, the printer driver 102, the application program 103, and the printer SDK library of the present invention on the program memory (RAM) 606 in the system. A document print output 105 is performed from 104.
[0060]
Further, the configuration of the host computer system 100 will be described in detail with reference to FIG. A CPU 604 controls the host computer system 100 and each input / output device (for example, the input device 601 described above) connected thereto, performs a series of processes such as output control according to an input instruction, and executes various programs. is there. A memory (ROM) 605 stores various basic programs such as an operating system for operating the CPU 604. Reference numeral 606 denotes a memory (RAM) used as a work area for various processes in which the CPU 604 sets various print attributes of the printer 104 according to the present embodiment and executes / operates document printing.
[0061]
On the other hand, reference numeral 607 denotes a keyboard controller (Keyboard Controller) which is connected to the host computer system 100 and has an interface of an input device 601 such as a keyboard and a mouse for performing various inputs, and 608 denotes a display for outputting to the display 602. A display controller (Display Controller) 609 having an interface is a disk controller (Disk Controller) having an input / output interface to the disk 603. Further, a network interface (Network I / O) 610 connects the host computer system 100 and the printer 104 to each other, and performs input / output via a network line such as Ethernet (registered trademark) provided with a communication protocol for communication. / F). Reference numeral 611 denotes a CPU bus for connecting each component in the host computer system 100 described above.
[0062]
Next, the configuration of the printer 104 will be described in detail. As shown in FIG. 6, reference numeral 614 denotes a CPU that executes various programs such as a series of processes such as print control and a communication control process in accordance with input / output instructions and various input / output controls connected to the printer 104. A memory (ROM) 615 stores programs for operating the printer, such as control of each input / output, communication control processing, a series of processing such as print control in accordance with input instructions, control command analysis processing, and the like. It is. A memory (RAM) 616 is used as a work area for the CPU 614 to execute and process various programs.
[0063]
On the other hand, a network interface 617 connects the host computer system 100 and the printer 104 to each other and performs input / output via a network line such as Ethernet (registered trademark) having a communication protocol for exchanging data. It is. Reference numeral 618 denotes a disk controller having an input / output interface to the disk 613. Reference numeral 619 denotes an engine control processing unit having a video interface for mechanically outputting a pattern, and an input / output interface for exchanging data and signals with the printing apparatus drive system (engine unit) 621. Reference numeral 620 denotes a CPU bus that connects the above-described components.
[0064]
Next, control processes and operations of the operating system 101 including the Windows SDK library on the RAM 606, which is a program memory in the host computer system 100, the application program 103, the printer driver 102, and the printer driver SDK library will be described in detail.
[0065]
First, the operation of the application program 103 will be described. The application program 103 on the RAM 606 in the host computer system 100 loads and starts the printer driver 102 via the operating system 101 in the process of performing various initialization processes for document creation, format processing, and print output, Load the driver SDK library.
[0066]
Here, in addition to the various initialization processes using the normal Windows SDK API, the application program 103 uses a printer driver SDK library to recognize the functions and capabilities currently available in the printer 104 and the printer driver 102. Is used to inquire the printer driver 102 about print function attribute information and print capability attribute information. Then, the application program 103 acquires the print function attribute information and the print capability attribute information notified from the printer driver 102 in response to the inquiry, and creates and formats the document into a target output form based on the information. Further, the application program 103 performs various print attribute settings and print instructions to the printer 104 together with the document data using the Windows SDK API and the printer driver SDK API in order to realize the desired output form.
[0067]
Next, the operation of the printer driver 102 will be described. The printer driver 102 on the RAM 606 in the host computer system 100 is loaded on the operating system 101 and activated when the above-described application program 103 is initialized. Based on various initialization processes for document creation and printing in the application program 103, the Windows SDK API is called, converted into DDI via the GDI of the operating system 101, and called, and the printer driver is called. The initialization process at 102 is started.
[0068]
At the same time, in response to an inquiry from the application program 103 about the above-described print function attribute information and print capability attribute information by the printer SDK API, the printer driver 102 uses the bidirectional communication with the printer 104 as device configuration information to send a print sheet feeding method. Various paper feeding devices that determine the paper output method, various paper ejection devices that determine the paper output method, double-sided printing devices, staple devices, punchers, trimmer devices, finishing devices such as paper Z folding devices, storage devices such as memories and hard disks, Resource information of the device, such as the size and type of paper that can be mounted and output on the device and the font that is mounted, is acquired. The printer driver 102 includes devices such as a monochrome / color printing function, a resolution, a graphics drawing method, a paper printing direction, a maximum number of copies, an N-up printing function, a job store function, and a font downloading function as device configuration information. It also acquires the print function information that it has.
[0069]
Further, the printer driver 102 generates print function attribute information and print capability attribute information that can be currently realized by the printer 104 and the printer driver 102 based on the device resource information and the print function information that are the device configuration information of the printer 104. The application program 103 is notified of these as return values of the printer driver SDKAPI received from the program 103.
[0070]
That is, in the printing system according to the present embodiment, the printer driver 102 acquires the above-described resource information and printing function information from the printer 104, and based on the resource information and printing device information, various printing functions of the printer driver 102. Is determined, and print function attribute information for notifying the application program 103 of information is generated based on the determination result.
[0071]
Further, the printing system is characterized in that the printer driver 102 further generates print capability attribute information for notifying the application program 103 of information based on the determination result.
[0072]
Further, based on the print function attribute information and the print capability attribute information notified to the application program 103, various print attribute settings for performing a target document printing are called by the Windows SDK API and the printer driver SDK API via the GDI. Performs various print attribute setting processes based on the DDI called by the printer driver 102.
[0073]
Further, the printer driver 102 performs input processing such as pattern data, size, drawing output start position and the like of graphics / characters and images based on the document data, together with a document printing instruction from the application program 103, and various types of data. Setting information input processing, input data and information analysis processing for analyzing the read print attribute setting information and the like, and a drawing output form of a document configured based on each setting parameter indicating a size, a drawing output form, and the like. A drawing output form control process to be determined, an output control command conversion process to convert and generate a printer control command of the printer 612 to print the determined document, and an output control command to transmit the generated print output control command to the printer A series of processes is performed in the transmission control process and the printer 1 4 to output the purpose of the document from.
[0074]
Next, the operation of the printer 104 will be described in detail. The output operation of the document by the print output control process in the control program on the ROM 615 as the memory in the printer 104 will be described in detail. First, effective functions for printing, such as the currently supported paper size, paper type, and the presence or absence of a finisher having a staple function, and printer configuration information of resources are transferred via the network interface 617 to the RAM 606 of the host computer system 100. Notify the printer driver above.
[0075]
Then, it receives a control command for initializing the printer 104 transmitted from the printer driver 102 on the RAM 606, which is a program memory in the host computer system 100, and performs an initialization process.
[0076]
Subsequently, a print control command input process for inputting a printer print control command transmitted for printing to the printer 104 from the host computer system 100, and the input printer print control command and various setting parameters are analyzed. A video that performs a series of processes in a bitmap expansion process that generates a bitmap based on a control setting parameter analysis process, a print control command, and a control setting parameter, and expands the bitmap in a bitmap memory, and performs input and output with an engine control processing unit The generated bitmap data is transmitted to the print output device drive system (engine unit) 621 through the interface 619, and the document output 105 is output.
[0077]
[Each Control Process in Application Program of First Embodiment]
Next, the control processing of each application program on the RAM 606, which is the program memory of the host computer system 100 according to the present embodiment, will be described in detail with reference to the flowchart shown in FIG.
[0078]
FIG. 7 is a flowchart for explaining an example of processing in the application program 103 in the host computer system 100 according to the first embodiment of the present invention. That is, a series of control processes for acquiring print function attribute information and print capability attribute information by using the printer driver SDK library and performing target document creation, format processing, and print instructions will be described below.
[0079]
First, an initialization process is performed when the application program 103 is started (Step S701). At this time, the printer driver 102 is also loaded on the operating system 101 and activated. At the same time, the printer driver SDK library is loaded (step S702). Next, the printer driver 102 is queried for print function attribute information and print capability attribute information using the printer driver SDK API, and is acquired from the printer driver 102 (step S703).
[0080]
Then, based on the print function attribute information and the print capability attribute information acquired from the printer driver 102, the application program 103 performs general print attribute setting using the Windows SDK API. Advanced print attribute settings are performed using the printer driver SDK API (step S704). Next, based on the acquired print function attribute information and print capability attribute information, the application program 103 performs editing such as creation of a target document and appearance processing (step S705). Further, the application program 103 performs a character / figure drawing process that forms the document (step S706).
[0081]
Next, the application program 103 uses the Windows SDK API to send a document print instruction and the character / graphic data subjected to the drawing process to the printer 104 (step S707). Then, after transmitting all the document data, the process proceeds to the printing end process (step S708), and unloads the printer driver SDK library (step S709).
[0082]
[Each Control Process in Printer Driver 102 of First Embodiment]
Here, each control process in the printer driver 102 of the present embodiment will be described in detail with reference to flowcharts shown in FIGS.
[0083]
FIG. 8 is a view for explaining control processing for acquiring device configuration information from the printer 104 and notifying the application program 103 of print function attribute information and print capability attribute information in the printer driver 102 according to the first embodiment of the present invention. It is a flowchart.
[0084]
First, the printer driver 102 performs bidirectional communication between the host computer system 101 and the printer 104 to acquire various device configuration information from the printer 104, and issues a control command for transmitting and receiving the printer MIB or the device configuration information. Initialization such as loading of a module library and enumeration of the type of information to be obtained is performed (step S801). Next, the printer driver 102 issues a control command for transmitting / receiving the printer MIB or the device configuration information to the printer 104, and inquires of the device configuration information (step S802). As a result of the inquiry in step S802, the flow proceeds to the decision branch processing in step S803.
[0085]
As a result, when the device configuration information is successfully obtained (Yes), the printer driver 102 separates the obtained device configuration information into resource information such as options included in the printer 104 and valid function information, and analyzes the resource information ( Step S804) and function information analysis (step S805) are performed. On the other hand, in the communication between the host computer system 100 and the printer 104, if the acquisition of the device configuration information fails due to offline or communication failure such as deterioration of the communication state (No), the printer driver 102 displays the default setting value and the user interface. The resource information and the function information are analyzed from these values (step S806).
[0086]
After the analysis processing in step S805 or S806, the printer driver 102 creates print function attribute information and print capability attribute information from the resource information and function information analysis result (step S807). Further, the printer driver 102 copies the created print function attribute information and print capability attribute information to a pointer of a memory buffer, which is a parameter of a function called from the application program 103, and notifies the application program 103 by returning. (Step S808).
[0087]
FIG. 9 is a flowchart for explaining details of the print control processing in the printer driver 102 on the RAM 606 that is the program memory of the host computer system 100 in the print system according to the first embodiment of the present invention.
The printer driver 102 is started by a print instruction to the printer from a document input program such as a character, graphic, image creation, editing, print application program or the like from the outside, and executes steps S901 to S912.
[0088]
First, various print attribute setting parameters and character / graphic / image data constituting a document instructed to be printed by an application are input to the printer driver 102 (step S901). These inputs are made using the Windows SDK API and the printer driver SDK API. Next, the printer driver 102 analyzes these input parameters and data (step S902).
[0089]
Then, based on the analysis result of the input data, the printer driver 102 converts each setting parameter for the printer 104 into a printer control command in order to prepare for printing, such as paper size, printing direction, drawing resolution setting, and unit setting of the coordinate system. The printer 104 generates, transmits, and performs initialization processing of the printer 104 (step S903). Further, in steps S904 and S906, the printer driver 102 separates the analyzed parameters and data into character data, graphic data, or image data.
[0090]
The character data, graphic data, or image data separated in step S904 and step S906 are output to the printer driver 102 by the character print control processing unit (module) and graphic drawing control processing unit (module) in steps S905, S907, and S908, respectively. ) And an image drawing control processing unit (module).
[0091]
Based on the character printing, graphic drawing, and image drawing control processing in steps S905, S907, and S908, in the document configuration control processing (module) in step S909, the printer driver 102 determines the drawing output attribute, size calculation, drawing output position, and the like. The output form of the pattern is determined and arranged on the output page of the printer 104.
[0092]
The control data of the document output configured in step S909 is converted and generated into a print control command of the printer in order to output the document to the printer 104 in the print control command generation process (module) of step S910. Then, in the output transmission process (module) to the printer in step S911, the printer driver 102 transmits the print control command generated in step S910 to the printer 104, and performs document print output from the printer 104 (step S912). ).
[0093]
As described above, according to the present embodiment, in the Windows operating system environment, by using the printer driver SDK library of the present invention together with the Windows SDK library normally used in the application program, the standard printing is performed. In addition to the functions, it is possible to use a printer device function that can be realized by mounting optional devices and a printer driver function based on printer device device configuration information, thereby providing a printing function with higher added value.
[0094]
Further, in the application program and the printer driver, various print attribute setting processes are internally performed using the printer SDK, so that a function adapted to the current status of the printer device can be automatically automatically used. Therefore, it is possible to provide a printing system that is excellent in operability, efficient, simple and operable for the user.
[0095]
<Second embodiment>
In the second embodiment, the language monitor acquires printer device configuration information by bidirectional communication with the printer 104, which is performed by the printer driver 102 of the first embodiment described above, and the printer driver 104 communicates with the language driver. A printing system further provided with a unit for exchanging such device configuration information with a Monitor.
[0096]
According to this embodiment, general-purpose device configuration information common to each PDL can be obtained from the first embodiment without depending on each PDL (Page Description Language) printer driver. Providing the means makes it possible to construct and operate a printing system that is simpler and less expensive.
[0097]
<Third embodiment>
In the third embodiment, a printing system to which another operating system is applied is provided instead of the operating system 101 of the first embodiment.
[0098]
According to the present embodiment, for example, a user interface for performing various print attribute settings provided in the above-described printer driver 101 is realized by using a UNIX (registered trademark) operating system having no GUI (Graphical User Interface). Even if it is not possible, by preparing the printer driver SDK of the present invention, it is possible to realize a printing system capable of similarly performing high-performance print settings and performing printing.
[0099]
<Fourth embodiment>
In the fourth embodiment, instead of the Ethernet (registered trademark) interface connecting the host computer system 100 and the printer 104 shown in FIG. 6, a Centronics-compliant input / output parallel interface, an RS-232C-compliant, Data is exchanged with the printer driver 102 and the printer 104 on the program memory RAM 606 of the host computer system 100 shown in FIG. 6 using an input / output serial interface or a SCSI interface conforming to 424.
[0100]
<Other embodiments>
According to the present invention, a storage medium (recording medium) recording software program codes for realizing the functions of the above-described embodiments is supplied to a system or an apparatus, and a computer (or a CPU or an MPU) of the system or the apparatus is provided. Needless to say, the above can also be achieved by reading and executing the program code stored in the storage medium.
[0101]
In this case, the program code itself read from the storage medium implements the novel function of the present invention, and the storage medium storing the program code constitutes the present invention. As a storage medium for supplying the program code, for example, a flexible disk, a hard disk, a magneto-optical disk, an optical disk, a CD-ROM, a CD-R, a magnetic tape, a nonvolatile memory card, a ROM, and the like can be used.
[0102]
The functions of the above-described embodiments are implemented when the computer executes the readout program code, and the OS or the like running on the computer performs part of the actual processing based on the instructions of the program code. Alternatively, the functions of the above-described embodiments can be realized by performing the entire process.
[0103]
Further, after the program code read from the storage medium is written into a memory provided on a function expansion board inserted into the computer or a function expansion unit connected to the computer, the function expansion is performed based on the instruction of the program code. The CPU or the like provided in the board or the function expansion unit performs part or all of the actual processing, and the functions of the above-described embodiments can also be realized by the processing.
[0104]
The present invention is also applicable to a case where the program is distributed from a storage medium storing a program code of software for realizing the functions of the above-described embodiments to a requester via a communication line such as a personal computer communication. It goes without saying that it can be applied.
[0105]
【The invention's effect】
As described above, according to the present invention, in a printing system including an application program, a printer driver, and a printing apparatus, not only a standard printing function of the printing apparatus can be used, but also a printing apparatus having a high function. On the other hand, the high value-added function can be suitably used.
[Brief description of the drawings]
FIG. 1 is a block diagram illustrating a system configuration of a printing system according to a first embodiment of the present invention.
FIG. 2 is a diagram illustrating a flow from initialization to printing using a printer driver SDK API in an operating system 101, an application program 103, and a printer driver 102 on a host computer system 100 according to the first embodiment of the present invention. FIG.
FIG. 3 is a calling sequence of an FS_GetFuncItem () function for notifying / acquiring printing function attribute information and an FS_GetDevCapabilities () function for notifying / acquiring printing capability attribute information, which are printer driver SDK APIs according to the first embodiment of the present invention. FIG.
FIG. 4 is a diagram showing a configuration of an SDK in a 32-bit operating system of Windows NT 4.0 / 2000 in a printing system including an application program, a printer driver, and a printer according to the first embodiment of the present invention.
FIG. 5 is a block diagram illustrating a configuration of an SDK in a Windows 95/98 / Me 16-Bit operating system in a printing system including an application program, a printer driver, and a printer according to the first embodiment of this invention.
FIG. 6 is a diagram illustrating a hardware configuration of a host computer system 100 and a printer 104 in the printing system according to the first embodiment of the present invention.
FIG. 7 is a flowchart illustrating an example of processing in an application program 103 in the host computer system 100 according to the first embodiment of the present invention.
FIG. 8 is a diagram illustrating a control process of acquiring device configuration information from a printer 104 and notifying print function attribute information and print capability attribute information to an application program 103 in a printer driver 102 according to the first embodiment of this invention. It is a flowchart.
FIG. 9 is a flowchart illustrating details of print control processing in the printer driver 102 on the RAM 606 that is the program memory of the host computer system 100 in the print system according to the first embodiment of the present invention.
[Explanation of symbols]
100 Host computer system
101 Operating system
102 Printer Driver
103 Application program
104 Printer
105 Print output

Claims (1)

コンピュータ上で動作するオペレーティングシステム、アプリケーションプログラム及びプリンタドライバを用いて、該コンピュータに接続された印刷装置での印刷処理を制御する印刷制御方法であって、
前記プリンタドライバで前記印刷装置に関する機器構成情報を取得し、
前記印刷装置で動作可能な印刷機能情報を前記機器構成情報に基づいて前記プリンタドライバで生成し、
前記プリンタドライバで生成された前記印刷機能情報を前記オペレーティングシステムを介して前記アプリケーションプログラムに通知し、
前記印刷機能情報に基づいて前記アプリケーションプログラムが印刷ドキュメントを構成して前記プリンタドライバに対して印刷指示を行い、
前記プリンタドライバが前記印刷指示に基づいて前記印刷装置に対する印刷制御命令を生成することを特徴とする印刷制御方法。
A printing control method for controlling a printing process in a printing device connected to a computer by using an operating system, an application program, and a printer driver operating on the computer,
Acquiring device configuration information on the printing device with the printer driver,
Print function information operable in the printing apparatus is generated by the printer driver based on the device configuration information,
Notifying the application program of the printing function information generated by the printer driver via the operating system,
The application program configures a print document based on the print function information and issues a print instruction to the printer driver,
A print control method, wherein the printer driver generates a print control command for the printing device based on the print instruction.
JP2003081059A 2003-03-24 2003-03-24 Print control method Withdrawn JP2004288013A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003081059A JP2004288013A (en) 2003-03-24 2003-03-24 Print control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003081059A JP2004288013A (en) 2003-03-24 2003-03-24 Print control method

Publications (1)

Publication Number Publication Date
JP2004288013A true JP2004288013A (en) 2004-10-14

Family

ID=33294739

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003081059A Withdrawn JP2004288013A (en) 2003-03-24 2003-03-24 Print control method

Country Status (1)

Country Link
JP (1) JP2004288013A (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006134245A (en) * 2004-11-09 2006-05-25 Kyocera Mita Corp Automatic installation system and program of printer driver
JP2006130706A (en) * 2004-11-04 2006-05-25 Fuji Xerox Co Ltd Image forming device, image forming system, image forming method and image forming program
JP2007264155A (en) * 2006-03-28 2007-10-11 Yamaha Corp Electronic musical instrument and program
CN100368981C (en) * 2005-03-25 2008-02-13 富士施乐株式会社 Function converting apparatus and function converting method
CN100552614C (en) * 2004-03-10 2009-10-21 佳能株式会社 Signal conditioning package, image processing system and method and system thereof
JP2010140281A (en) * 2008-12-11 2010-06-24 Canon Inc Method of data communication between application program and printer driver, and program therefor
US8081324B2 (en) 2005-10-25 2011-12-20 Canon Kabushiki Kaisha Information processing apparatus, image forming method, and computer readable storage medium storing a program for reducing print processing time
US8259330B2 (en) 2008-05-19 2012-09-04 Canon Kabushiki Kaisha Output efficiency of printer forming image by interpreting PDL and performing output by using print engine

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100552614C (en) * 2004-03-10 2009-10-21 佳能株式会社 Signal conditioning package, image processing system and method and system thereof
JP2006130706A (en) * 2004-11-04 2006-05-25 Fuji Xerox Co Ltd Image forming device, image forming system, image forming method and image forming program
JP4529643B2 (en) * 2004-11-04 2010-08-25 富士ゼロックス株式会社 Image forming system
JP2006134245A (en) * 2004-11-09 2006-05-25 Kyocera Mita Corp Automatic installation system and program of printer driver
CN100368981C (en) * 2005-03-25 2008-02-13 富士施乐株式会社 Function converting apparatus and function converting method
US8081324B2 (en) 2005-10-25 2011-12-20 Canon Kabushiki Kaisha Information processing apparatus, image forming method, and computer readable storage medium storing a program for reducing print processing time
JP2007264155A (en) * 2006-03-28 2007-10-11 Yamaha Corp Electronic musical instrument and program
JP4609728B2 (en) * 2006-03-28 2011-01-12 ヤマハ株式会社 Electronic musical instruments and programs
US8259330B2 (en) 2008-05-19 2012-09-04 Canon Kabushiki Kaisha Output efficiency of printer forming image by interpreting PDL and performing output by using print engine
JP2010140281A (en) * 2008-12-11 2010-06-24 Canon Inc Method of data communication between application program and printer driver, and program therefor
US9298522B2 (en) 2008-12-11 2016-03-29 Canon Kabushiki Kaisha Method of data communication between application program and printer driver, and program therefor

Similar Documents

Publication Publication Date Title
JP7528394B2 (en) Information processing device, control method, and program
EP1710699B1 (en) Information processing apparatus capable of customizing device driver, information processing method, and control program
JP4785577B2 (en) Information processing apparatus, control method therefor, and program
JP5235695B2 (en) Printing control apparatus and control method thereof
JP4898376B2 (en) Information processing apparatus, information processing method, and information processing program
JP4454764B2 (en) Printing apparatus, printing method, printing system, and medium
JP2004288013A (en) Print control method
JP2006350443A (en) Printing system, print control method and program
JP2020004241A (en) Information processing device, control method, and program
JP4289987B2 (en) Print control apparatus, print control method, and computer program
JP4702948B2 (en) Information processing apparatus, method, and storage medium for customizing device driver
JP2009116687A (en) Information processing system, information processor, image forming apparatus, and information processing method
JP2005202723A (en) Printing system
JP2007148652A (en) Print system
JP4539975B2 (en) Print setting control apparatus, control method thereof, and program
JP2007004332A (en) Information processor, print control method and program
JP2005092744A (en) Print controller, image forming system, computer program, and storage medium
JP4335852B2 (en) Print control apparatus, print control method, and program
JP2007102378A (en) Driver program
JP6007015B2 (en) Image forming apparatus and image forming program
JP2006178767A (en) Printing reservation system and its control method
JP4590155B2 (en) Printing system and control method thereof
JP2007188308A (en) Printing system and storage medium
JP4536996B2 (en) Printing system and control method thereof
JP2024097264A (en) Program and method for controlling information processor

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20060606