JP2006350443A - 印刷システムおよび印刷制御方法およびプログラム - Google Patents
印刷システムおよび印刷制御方法およびプログラム Download PDFInfo
- Publication number
- JP2006350443A JP2006350443A JP2005172461A JP2005172461A JP2006350443A JP 2006350443 A JP2006350443 A JP 2006350443A JP 2005172461 A JP2005172461 A JP 2005172461A JP 2005172461 A JP2005172461 A JP 2005172461A JP 2006350443 A JP2006350443 A JP 2006350443A
- Authority
- JP
- Japan
- Prior art keywords
- information
- print job
- printing
- control
- 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
Links
Images
Landscapes
- Accessory Devices And Overall Control Thereof (AREA)
Abstract
【課題】複雑な体裁、出力形態の属性設定等がされているドキュメントの印刷においても、プリンタの印刷エンジン速度(ppm)性能を最大限に発揮させること。
【解決手段】ホストコンピュータ100のプリンタドライバ102は、ドキュメントの印刷ジョブを送信する前に、該ドキュメントの印刷処理のための情報を、プリンタ104の印刷制御プログラム106に通知し、プリンタ104の印刷制御プログラム106は、印刷ジョブを受信する前にホストコンピュータ100のプリンタドライバ104から通知される前記印刷処理のための情報を取得し、該取得した印刷処理のための情報に基づいて、印刷処理のための前処理(ページ展開メモリの確保,各種作業領域の確保,フィニッシング処理準備等)を実行する構成を特徴とする。
【選択図】図1
【解決手段】ホストコンピュータ100のプリンタドライバ102は、ドキュメントの印刷ジョブを送信する前に、該ドキュメントの印刷処理のための情報を、プリンタ104の印刷制御プログラム106に通知し、プリンタ104の印刷制御プログラム106は、印刷ジョブを受信する前にホストコンピュータ100のプリンタドライバ104から通知される前記印刷処理のための情報を取得し、該取得した印刷処理のための情報に基づいて、印刷処理のための前処理(ページ展開メモリの確保,各種作業領域の確保,フィニッシング処理準備等)を実行する構成を特徴とする。
【選択図】図1
Description
本発明は、所定のアプリケーションプログラムにおけるドキュメントの印刷制御処理に基づいて該ドキュメントの印刷ジョブを生成して印刷装置に送信する情報処理装置と、前記情報処理装置から送信される印刷ジョブに基づいて印刷処理を行う印刷装置とを有する印刷システムおよび印刷制御方法およびプログラムに関する。
従来のオペレーティングシステム上で実行されるアプリケーションプログラム、プリンタドライバプログラム、及び印刷装置から構成される文書印刷に関して、以下(1)(2)に示す方法が一般的であった。
(1)印刷装置では、ホストコンピュータ側から印刷ジョブデータが送信され、印刷装置内の印刷制御部で印刷データを受信された時点で、印刷・出力のための各種制御処理が行なわれ、該当する文書印刷・出力が行なわれる。
(2)ホストコンピュータ及び印刷装置から構成される印刷システムでは、印刷対象となる文書に対して、印刷部数、部単位印刷の部数、ソート、拡大/縮小印刷、N-Up印刷(複数ページ割付印刷)、用紙サイズ混在印刷、製本印刷、及びこれらの印刷面付け順序変更等の種々かつ複雑な出力形態を施し、印刷・出力する場合、実際に印刷装置から印刷・出力後に、ユーザは初めて使用された用紙枚数を把握できる。
特開2003−084942号公報
しかしながら上記従来の技術では、アプリケーションプログラム、プリンタドライバプログラム、及び印刷装置から構成される印刷システムで印刷を行う場合、以下(1)(2)に示すような問題点があった。
(1)印刷装置において、印刷制御部で印刷データを受信された時点から、印刷・出力のための各種制御処理が行なわれる。そのため、特に複雑な印刷体裁を指示された文書印刷においては、印刷装置から排紙されるまでの時間および速度がかかり、印刷エンジン速度(ppm)性能を最大限に発揮できない場合があるといった問題点があった。
(2)複雑な印刷体裁を指示された文書印刷においては、印刷・出力前に瞬時に出力用紙枚数等が計算できず、印刷装置から印刷・出力後に実際の出力用紙枚数等が判明する場合があった。このような場合、例えば、出力用紙枚数に応じて印刷課金を行う場合等、事前に出力用紙枚数などを表示させて、印刷を続行する/しないなどの選択することができないといった問題点があった。
本発明は、上記の問題点を解決するためになされたもので、本発明の目的は、所定のアプリケーションプログラムにおけるドキュメントの印刷制御処理に基づいて該ドキュメントの印刷ジョブを生成して印刷装置に送信する情報処理装置と、前記情報処理装置から送信される印刷ジョブに基づいて印刷処理を行う印刷装置とを有する印刷システムにおいて、前記情報処理装置が、前記ドキュメントの印刷ジョブを送信する前に、該印刷ジョブの属性設定情報,制御情報を前記印刷装置に通知し、前記印刷装置が、印刷ジョブを受信する前に前記情報処理装置から通知される前記印刷ジョブの属性設定情報,制御情報を取得し、前記印刷装置が、前記取得した前記印刷ジョブの属性設定情報,制御情報に基づいて、該印刷ジョブの前処理を実行するので、プリンタ側で事前に印刷制御の最適化処理を行うことが可能となり、複雑な体裁、出力形態の属性設定等がされているドキュメントの印刷においても、印刷エンジン速度(ppm)性能を最大限に発揮することが可能となり、印刷エンジン性能に対してファーストプリントが極端に遅くなってしまうといった事態を抑えることができる印刷システムおよび印刷制御方法およびプログラムおよび記憶媒体を提供することである。
本発明は、所定のアプリケーションプログラムにおけるドキュメントの印刷制御処理に基づいて該ドキュメントの印刷ジョブを生成して印刷装置に送信する情報処理装置と、前記情報処理装置から送信される印刷ジョブに基づいて印刷処理を行う印刷装置とを有する印刷システムにおいて、前記情報処理装置は、前記ドキュメントの印刷ジョブを送信する前に、該印刷ジョブの属性設定情報,制御情報を前記印刷装置に通知する通知手段を有するものであり、前記印刷装置は、印刷ジョブを受信する前に前記情報処理装置から通知される前記印刷ジョブの属性設定情報,制御情報を取得する取得手段と、前記取得手段により取得した前記印刷ジョブの属性設定情報,制御情報に基づいて、該印刷ジョブの前処理を実行する前処理実行手段とを有することを特徴とする。
本発明によれば、所定のアプリケーションプログラムにおけるドキュメントの印刷制御処理に基づいて該ドキュメントの印刷ジョブを生成して印刷装置に送信する情報処理装置と、前記情報処理装置から送信される印刷ジョブに基づいて印刷処理を行う印刷装置とを有する印刷システムにおいて、前記情報処理装置が、前記ドキュメントの印刷ジョブを送信する前に、該印刷ジョブの属性設定情報,制御情報を前記印刷装置に通知し、前記印刷装置が、印刷ジョブを受信する前に前記情報処理装置から通知される前記印刷ジョブの属性設定情報,制御情報を取得し、前記印刷装置が、前記取得した前記印刷ジョブの属性設定情報,制御情報に基づいて、該印刷ジョブの前処理を実行するので、プリンタ側で事前に印刷制御の最適化処理を行うことが可能となり、複雑な体裁、出力形態の属性設定等がされているドキュメントの印刷においても、印刷エンジン速度(ppm)性能を最大限に発揮することが可能となる。
従って、複雑な体裁、出力形態の属性設定等がされているドキュメントを印刷出力する場合であっても、印刷エンジン性能に対してファーストプリントが極端に遅くなってしまうといった事態を抑えることができる。
〔第1実施形態〕
<本実施の形態における動作例の概略>
以下にホストコンピュータシステム(以下、ホストコンピュータ)上にWindows(登録商標)オペレーティング(OS)、ドキュメント作成・印刷アプリケーションプログラム、プリンタドライバプログラムおよびこれに接続する印刷装置(プリンタ)から構成される印刷システムを、本発明の印刷システムの一例として説明する。
<本実施の形態における動作例の概略>
以下にホストコンピュータシステム(以下、ホストコンピュータ)上にWindows(登録商標)オペレーティング(OS)、ドキュメント作成・印刷アプリケーションプログラム、プリンタドライバプログラムおよびこれに接続する印刷装置(プリンタ)から構成される印刷システムを、本発明の印刷システムの一例として説明する。
本発明の印刷システムでは、ホストコンピュータシステム上のオペレーティングシステム、アプリケーションプログラム、プリンタドライバプログラム、および印刷装置内のプログラムメモリ上にある各種印刷制御プログラムに、相互に各種情報および各種データの通知する手段として、任意にプログラミング可能な関数あるいはデータ形式のアプリケーションプログラムインタフェース(API)を備える。
そして、本発明の印刷システムでは、まず、ホストコンピュータにおいて、アプリケーションプログラムからのドキュメント印刷指示に基づき、APIを使用し、プリンタドライバプログラムからプリンタ内の印刷制御部に印刷ジョブ制御開始を通知する。この通知に応じて、プリンタでは、プリンタ内の印刷制御部より、前記プリンタドライバプログラムにジョブ制御情報を要求する。これに応じて、前記プリンタドライバプログラムからプリンタにジョブ制御情報を通知し、その後、実際の印刷ジョブをプリンタに送信する。
上記ジョブ制御情報の通知に応じて、プリンタでは、該情報に基づいてドキュメント印刷前に、該当する印刷ジョブに係る各種最適化処理を行ない、実際の印刷ジョブデータを受信して、ドキュメント印刷を行う。以下、この実施形態について説明する。
<本発明の印刷システム構成の説明(図1)>
図1は、本発明の一実施形態を示す印刷システムの一例を示すシステム構成図である。なお、本実施形態では、Windows(登録商標)オペレーティングシステム(OS)、ドキュメント作成・印刷アプリケーションプログラム、プリンタドライバプログラムおよびこれに接続する印刷装置(プリンタ)から構成されるシステムについて、各要素間のAPIの流れ、及び各種データの流れを示す。
図1は、本発明の一実施形態を示す印刷システムの一例を示すシステム構成図である。なお、本実施形態では、Windows(登録商標)オペレーティングシステム(OS)、ドキュメント作成・印刷アプリケーションプログラム、プリンタドライバプログラムおよびこれに接続する印刷装置(プリンタ)から構成されるシステムについて、各要素間のAPIの流れ、及び各種データの流れを示す。
図1において、100はホストコンピュータである。このホストコンピュータ100のプログラムメモリ上では、Windows(登録商標)オペレーティングシステム(OS)101、プリンタドライバプログラム102およびドキュメント作成・印刷アプリケーションプログラム103が動作・実行される。
104はプリンタであり、上記ホストコンピュータ100に接続される。プリンタ104において、105は、各種制御プログラムの動作環境となるVxWORKS(登録商標)リアルタイム・オペレーションシステム(OS)である。106は、各種印刷制御を行う印刷制御プログラムである。107はプリンタエンジン制御プログラムである。108はプリンタ104から出力されるドキュメント印刷である。
次に、本発明の印刷システムの動作・作用について詳細に説明する。
ホストコンピュータ100のプログラムメモリ上で動作するOS101上で実行されるアプリケーションプログラム103が初期化される時点で、プリンタドライバ102が、OS101へロードされる。これにより、アプリケーションプログラム103からもプリンタドライバ102と各種情報およびデータの送受信が可能となる。
また、この初期化時、アプリケーションプログラム103およびプリンタドライバプログラム102において、APIとなるプログラム関数を含むライブラリをロードする。
一方、プリンタ104においては、プリンタ104起動時に、プリンタ104のプログラムメモリ上で動作するOS105上で実行される印刷制御プログラム106の初期化時に、印刷制御プログラム106において上記同様にAPIとなるプログラム関数を含むライブラリをロードする。
なお、上述のAPI及びこれらのプログラム関数群から構成されるライブラリは、ホストコンピュータ100上のOS101、プリンタドライバプログラム102、アプリケーションプログラム103、及びプリンタ104上のOS105、印刷制御プログラム106において、認識可能なプログラム群で、前記各要素間で相互にデータおよび情報の受け渡しが可能である。以下、前記API・ライブラリをプリンタSDK(Software Development Kit)APIと表記する。
アプリケーションプログラム103は、テキスト、グラフィックス、イメージ描画等のドキュメント印刷指示を、Windows(登録商標)オペレーティングシステム101が有するGDI(Graphical Device Interface)で提供される Windows(登録商標) SDK APIを使用して行う。
このGDIは、グラフィックス処理において、アプリケーションプログラム103とデバイスドライバ102の橋渡し的な役割を行うプログラムであり、上述の印刷指示をDDI(Device Driver Interface)に変換し(プリンタドライバプログラム102が処理できる形に変換し)、プリンタドライバプログラム102に対して、テキスト、グラフィックス、イメージの描画指示を行う。
このとき、前記GDIは、同時にプリンタドライバプログラム102およびプリンタ104が有する各種機能及びその力に合わせて、ドキュメントの印刷体裁を決定する各種属性設定指示も行う。
プリンタドライバプログラム102は、これらの各指示を最初に受けた時点で、プリンタSDK APIを使用して、印刷ジョブの制御が開始されたことを、ジョブを識別するID情報(ジョブ識別ID情報)と共に、プリンタ104内の印刷制御プログラム106に通知する。
この通知を受けたプリンタ104内の印刷制御プログラム106は、印刷ジョブデータを受信してドキュメントを印刷する前に、該当する印刷ジョブの各種属性設定情報を事前に受け取るために、同じくプリンタSDK APIを使用し、前記通知された前記同一のジョブ識別ID情報を指定した属性設定情報要求をプリンタドライバプログラム102に対して行う。
プリンタドライバプログラム102は、このプリンタ104からの属性設定情報要求に基づいて、印刷ジョブ制御開始時に設定される該当ドキュメント印刷ジョブ全般に関連する各種制御情報及び各種属性設定情報(以下、ジョブ制御情報)を、プリンタSDK APIを使用して、前記同一のジョブ識別ID情報と共に、プリンタ104内の印刷制御プログラム106に通知する。
また、アプリケーションプログラム103およびプリンタドライバプログラム102間で、印刷ジョブ制御処理が進み、各ページ、各章、或いは各グループに関連する各種制御情報及び各種属性設定情報(以下、ページ制御情報)が決定した時点においても、上記ジョブ制御情報の場合と同様に、ページ制御情報をプリンタSDK APIを使用して、前記同一のジョブ識別ID情報と共に、プリンタ104内の印刷制御プログラム106に通知する。
このとき、ホストコンピュータ100およびプリンタ104間は、ネットワーク接続あるいは、セントロニクス、又はUSBインターフェース等によるローカル接続等により、双方向通信を行ない、プリンタSDK APIでのデータおよび情報の送受信を行う。
ここで、文書全体、文書中の章、グループ単位、或いは各ページ毎の印刷のための各種制御情報及び各種属性設定情報(ジョブ制御情報,ページ制御情報)とは、用紙サイズ、用紙メディア種、印刷部数、部単位印刷の部数、ソート、給紙方法、排紙方法、ステイプル印刷、パンチ印刷、トリミング印刷、用紙折り印刷、N−up印刷(複数ページ割付印刷)、両面印刷などの各種印刷フィニッシング属性設定および製本印刷、用紙サイズ混在、及びこれらの印刷面付け順序などの各種制御に係る情報を含むものである。
プリンタ104内の印刷制御プログラム106は、該当印刷文書の印刷ジョブを受信して各印刷制御処理を開始する前に、前記ホストコンピュータ100上のプリンタドライバプログラム102から通知される文書全体、文書中の章、グループ単位、或いは各ページ毎の印刷のための各種制御情報及び各種属性設定情報(ジョブ制御情報,ページ制御情報)に基づいて各種最適化のための制御処理(印刷ジョブの各印刷制御に係る前処理ともいう)を行う。ここで行われる各種最適化のための制御処理とは、予めページ展開メモリの確保、画像レイアウト、拡大/縮小印字・描画のための作業領域の確保、排紙形態によるフィニッシング準備などの各種最適化のための制御処理を示す。
なお、印刷制御プログラム106は、この各種最適化のための制御処理結果(通知されたジョブ制御情報,ページ制御情報も含む)を、ホストコンピュータ及び印刷ジョブ識別IDで識別される印刷ジョブ毎に、プリンタ104内でユニークな識別情報を付加して、プリンタ104内のRAM,ハードディスク等の記憶装置部に保存する。これにより、印刷制御プログラム106は、複数のホストコンピュータから上述の前記各種制御及び属性設定情報が通知されても、識別可能となる。
一方、プリンタドライバプログラム102は、プリンタSDK APIを使用し、最終的な印刷を行うための印刷ジョブデータをオペレーティングシステム101のスプーラを介してプリンタ104に送信する。なおこの際、プリンタドライバプログラム102は、ジョブの先頭において、上記印刷ジョブデータと共に、該当するドキュメントの印刷ジョブ識別IDをプリンタ104に通知する。
また、プリンタ104内の印刷制御プログラム106は、印刷ジョブの各印刷制御に係る前処理の後、前記印刷ジョブ識別IDによって識別される該当印刷ジョブデータを受信し、上述の前処理によって既に最適化された状態で、各種印刷制御処理を行ない、最終的な描画イメージをOS105を介して、エンジン制御プログラム107に送り、該当ドキュメントの印刷出力108を行う。
本実施形態の印刷システムは、以上示したような構成からなる。
なお、ここでは、ホストコンピュータ100およびプリンタ104上の各種プログラム環境となるOS101,OS105として、Windows(登録商標),VxWORKSを例にあげて説明したが、それぞれ他のオペレーティングシステムにおいても本発明を適用できる。
<ホストコンピュータおよびプリンタにおける各処理の流れを表すブロック図の説明(図2)>
以下、図2を参照して、ホストコンピュータ100上のアプリケーションプログラム103及びプリンタドライバプログラム102、プリンタ104内の印刷制御プログラム106間におけるプリンタSDK APIを利用した各種情報のやり取り及びデータ送信、ドキュメント印刷までの流れについて、詳細に説明する。
以下、図2を参照して、ホストコンピュータ100上のアプリケーションプログラム103及びプリンタドライバプログラム102、プリンタ104内の印刷制御プログラム106間におけるプリンタSDK APIを利用した各種情報のやり取り及びデータ送信、ドキュメント印刷までの流れについて、詳細に説明する。
図2は、図1に示したホストコンピュータ100およびプリンタ104において、プリンタSDK APIを使用して、初期化から印刷までの各構成要素の内部および構成要素間の処理の流れを表すブロック図である。なお、図1と同一のものには同一の符号を付してある。また、図2中のS201〜S207はホストコンピュータ100側のステップに対応する。さらに、S211〜S216はプリンタ104側のステップに対応する。
図2のステップS201に示すように、まず、ホストコンピュータ100上のアプリケーションプログラム103において、ドキュメント生成、編集、印刷等の各種動作処理に要するメモリ領域の確保、各種属性パラメータの初期化、デバイスコンテキストの作成、フォント/ペン/ブラシ等の描画オブジェクト作成などの初期化処理を行う。
そして、ホストコンピュータ100上のOS101のGDIにおいても、前記アプリケーションプログラム103のドキュメント生成、編集、印刷のための各種初期化処理を受けて、GDIにおける各種動作処理に要するメモリ領域の確保、各種属性パラメータの初期化処理を行う。
同様にホストコンピュータ100上のプリンタドライバプログラム102においても、前記アプリケーションプログラム103およびWindows(登録商標) GDIのドキュメント印刷のための各種初期化処理を受けて、プリンタドライバプログラム102における各種動作処理に要するメモリ領域の確保、各種属性パラメータの初期化処理を行う。このとき、前記プリンタドライバプログラム102において、プリンタSDKライブラリをロードする。
一方、ステップS211に示すように、プリンタ104においても、同様に、OS105、印刷制御プログラム106及びエンジン制御プログラム107の各種動作処理に要するメモリ領域の確保、各種属性パラメータの初期化処理を行う。このとき、前記印刷制御プログラム106においても、プリンタSDKライブラリをロードする。
次に、ホストコンピュータ100上のアプリケーションプログラム103から、Windows(登録商標) SDK APIを使用して、Windows(登録商標) GDIに対して、デバイスコンテキストハンドルであるプリンタコンテキストハンドルを生成し、該ハンドルにテキスト、図形、イメージの各オブジェクト描画を開始する。これが印刷指示となる。
そして、前記Windows(登録商標) GDIは、前記各オブジェクト描画指示をDDIに変換し、プリンタドライバプログラム102に渡す。すると、プリンタドライバプログラム102において、印刷ジョブの制御が開始される。このとき、ステップS202に示すように、プリンタドライバプログラム102は、プリンタSDK APIを使用して、印刷ジョブ制御が開始されたことをプリンタ104内の印刷制御プログラム106に通知する。
また、プリンタ104内の印刷制御プログラム106は、ステップS212に示すように、前記印刷ジョブ制御開始通知を受けて、印刷ジョブデータを受信してドキュメント印刷を行う前に、事前に各種ジョブ制御を開始する。
続いて、前記印刷制御プログラム106は、ステップS213に示すように、プリンタSDK APIを使用して、ホストコンピュータ100上のプリンタドライバプログラム102に対して、該当する印刷ジョブのジョブ制御情報の要求を行う。
一方、ホストコンピュータ100上のプリンタドライバ102は、ステップS202のジョブ制御開始通知後、ステップS203に示すように、アプリケーションプログラム103からの各オブジェクト描画指示に基づいて、ジョブおよびページ制御を開始する。
そして、プリンタドライバ102は、前記プリンタ104からのジョブ制御情報要求に応じて、ステップS204に示すように、ジョブ制御情報,ページ制御情報を前記同様にプリンタSDK APIを使用して、プリンタ104側に通知する。なお、このジョブ制御情報,ページ制御情報は、ジョブ全体およびグループ、章、ページ毎に関連する用紙サイズ、用紙メディア種、印刷部数、部単位印刷の部数、ソート、給紙方法、排紙方法、ステイプル印刷、パンチ印刷、トリミング印刷、用紙折り印刷、N−up印刷(複数ページ割付印刷)、両面印刷などの各種印刷フィニッシング属性設定および製本印刷、用紙サイズ混在、およびこれらの印刷面付け順序などの各種制御情報および各種属性設定情報を示す。
そして、プリンタ104内の印刷制御プログラム106は、ステップS214に示すように、ホストコンピュータ100からのジョブ制御情報,ページ制御情報(前記各種制御情報および属性設定情報)の通知に基づき、予めページ展開メモリの確保、画像レイアウト、拡大/縮小印字・描画のための作業領域の確保、排紙形態によるフィニッシング準備などの各種最適化のための制御処理(前処理)を行ない、該最適化処理結果を保存する。
なお、ホストコンピュータ100では、上述したように、ホストコンピュータ100上のアプリケーションプログラム103によるWindows(登録商標) SDK APIを介してのWindows(登録商標) GDIに対するドキュメント印刷に係る各種オブジェクト描画指示及びドキュメントの出力体裁に基づく各種印刷属性設定が、前記Windows(登録商標) GDIにおいて、DDIに変換され、プリンタドライバプログラム102に対してコールされている。これにより、プリンタドライバプログラム102は、ステップS205に示すように、文字テキスト、図形、イメージの各描画処理を行う。
次に、プリンタドライバプログラム102は、ステップS206に示すように、前記各オブジェクト描画処理の中で、プリンタ104に係る印刷制御命令(PDLデータ)を生成する。さらに、プリンタドライバプログラム102は、ステップS207に示すように、上記生成した印刷制御命令(PDLデータ)をOS101のスプーラを介してプリンタ104内の印刷制御プログラム106に送信する。
一方、プリンタ104内の印刷制御プログラム106は、ステップS215に示すように、前記ホストコンピュータ100からの印刷ジョブデータである印刷制御命令(PDLデータ)を受信すると共に、前記事前に取得したジョブ、グループ、章、あるいはページ毎の各種制御情報および属性設定情報(ジョブ制御情報,ページ制御情報)による最適化処理結果を読み出して、印刷制御処理を行う。
そして、プリンタ104内の印刷制御プログラム106は、ステップS216に示すように、前記処理結果に基づき、最終的な画像をプリンタ104内のエンジン制御プログラム107に送り、画像出力を行って、ドキュメント印刷108を行う。
<ホストコンピュータ及びプリンタ接続構成図の説明(図3)>
図3は、図1に示したホストコンピュータ100及びプリンタ104のハードウェア接続構成を示すブロック図である。
図3は、図1に示したホストコンピュータ100及びプリンタ104のハードウェア接続構成を示すブロック図である。
図3において、301は入力装置であり、ホストコンピュータ100に対して入力を行うキーボード,マウス等に対応する。302は表示装置(ディスプレイ(Display))302であり、表示出力を行う。303はディスク(Disk)であり、ファイルの入出力を行うハードディスク等の外部記憶装置に対応する。
以下、ホストコンピュータ100の構成を詳細に説明する。
ホストコンピュータ100において、304はCPUであり、ホストシステムおよび接続される各入出力装置の制御や、入力された指示に従って出力制御などの一連の処理、各種プログラムを実行する。305はROMであり、CPU304を動作させるためのブートプログラム、各種データ等を格納するメモリである。ディスク303には、Windows(登録商標)SDKライブラリを含むOS101,プリンタドライバプログラム102、アプリケーションプログラム103、各種データが格納されている。
306はRAMであり、プリンタに係る各種印刷属性設定、ドキュメント印刷を実行/動作させる各種処理のための作業領域として用いられるメモリである。また、このRAM306上には、CPU304により、ROM305やディスク303から各種プログラムがロードされて実行される。
307はキーボード・コントローラであり、入力装置301のインターフェースを備える。308はディスプレイ・コントローラであり、ディスプレイ302への表示出力を行うためのインターフェースを備える。309はディスク・コントローラであり、ディスク303への入出力インターフェースを備える。
310はイーサネット(登録商標)・インターフェースであり、ホストコンピュータ100とプリンタ104を接続して、通信を行うための通信プロトコルを備えたイーサネット(登録商標)等のネットワーク回線を介して、入出力を行うネットワーク・インターフェースである。なお、ここでは、イーサネット(登録商標)・インターフェースとしているが、その他のネットワークインタフェースであってもよい。311はCPUバスであり、各構成要素304〜311を接続するバスである。
以下、プリンタ104の構成を詳細に説明する。
プリンタ104において、314はCPUであり、プリンタ104に接続される各種入出力の制御や、入力された指示に従って印刷制御等の一連の処理、通信制御制御処理等のプログラムを実行する。
315はROMであり、各入出力の制御、通信制御処理、入力された指示に従って印字制御など一連の処理、制御コマンド解析処理などプリンタを動作させるプログラム、各種データ等が格納されているメモリである。ROM315には、OS105,印刷制御プログラム106,プリンタSDKライブラリ,エンジン制御プログラム107等が格納されている。
316はRAMであり、CPU314が各種プログラムで実行・処理を行うための作業領域として用いられるメモリである。このRAM316には、CPU314により、ROM315から各種プログラムがロードされて実行される。
317はイーサネット(登録商標)・インターフェースであり、ホストコンピュータ100とプリンタ104を接続して、データのやり取りを行うための通信プロトコルを備えたイーサネット(登録商標)などのネットワーク回線を介して、入出力を行うネットワーク・インターフェースである。なお、ここでは、イーサネット(登録商標)・インターフェースとしているが、その他のネットワークインタフェースであってもよい。
318はディスク・コントローラであり、ハードディスク等のディスク313への入出力インターフェースを備える。319はエンジン制御処理部であり、機構的にパターン出力を行うビデオインターフェースで印刷装置駆動系(エンジン部)321とのデータおよび信号のやり取りを行う入出力インターフェースを備える。320はCPUバスであり、各構成要素314〜319を接続するバスである。
なお、エンジン部321は、レーザビーム方式であっても、レーザビーム方式以外の電子写真方式(例えばLED方式)でも、液晶シャッタ方式、インクジェット方式、熱転写方式、昇華方式でもその他のプリント方式であっても本発明は適用可能である。
以下、ホストコンピュータ100内のCPU304によりRAM306上にロードされて実行されるWindows(登録商標)SDKライブラリを含むOS101、アプリケーションプログラム103、プリンタドライバプログラム102、及びプリンタSDKライブラリの各制御処理および動作を詳細に説明する。
まず、アプリケーションプログラム103における動作について説明する。
ホストコンピュータ100内のRAM306上にあるアプリケーションプログラム103は、ドキュメント作成、体裁加工および印刷出力のための各種初期化処理を行う過程で、OS101を介してプリンタドライバプログラム102のロードおよび起動を行う。
ここで前記アプリケーションプログラム103は、Windows(登録商標) SDK APIを使用して、Windows(登録商標) GDIを介して、プリンタドライバ102に対して、テキスト/図形/イメージの各オブジェクト描画指示およびドキュメント出力形態を決定する各種属性設定を指定する。
次に、プリンタドライバプログラム102における動作について説明する。
ホストコンピュータ100内のRAM306上にあるプリンタドライバプログラム102は、前記アプリケーションプログラム103の起動初期化時に、OS101上にロードされ起動される。
前記アプリケーションプログラム103におけるドキュメント作成、印刷のための各種初期化処理に基づき、Windows(登録商標) SDK APIがコールされる。これによって、上記各種初期化処理の指示は、OS101のGDIを介してDDIに変換される。そして、各種DDI関数がコールされることによって、プリンタドライバプログラム102での初期化処理および各種制御処理が開始される。この初期化処理において、ディスク303上のプリンタSDKライブラリもプリンタドライバプログラム102内にロードされる。
以降、ホストコンピュータ100およびプリンタ104は、双方向通信プロトコルにて、APIを使用してのデータおよび情報の送受信を相互に行う。
プリンタドライバプログラム102側では、まず前記初期化処理において、プリンタSDK APIを使用して、プリンタ104側に印刷ジョブ制御が開始されたことを通知する。
すると、プリンタ104側より、ジョブ制御情報要求(プリンタ104が印刷ジョブデータを受ける前に事前に行う印刷ジョブ制御情報および各種属性設定情報の要求)がプリンタSDK APIを使用して行なわれる。
プリンタドライバプログラム102は、この要求に基づいて、ジョブ全体に関連する制御処理時、及び各グループ単位,章単位,ページ単位に関連する制御処理時に、夫々これら制御処理に係る制御情報および各種属性設定情報をプリンタSDK APIを使用して、プリンタ104側に通知する。
続いて、プリンタドライバプログラム102は、前記各制御処理の結果に基づいて、ドキュメント出力形態に係る各種属性設定および各オブジェクト描画指示により、印刷制御命令(PDLデータ)を生成し、これらの印刷ジョブデータをOS101のスプーラを介して、プリンタ104に送信する。
次に、プリンタ104における動作について説明する。
プリンタ104内のプログラムメモリROM315上にある印刷制御プログラム106における印刷出力制御処理によるドキュメントの出力動作を詳細に説明する。
まず、プリンタ104起動時の初期化処理時に、印刷制御プログラム106は、同じくプログラムメモリROM315にあるプリンタSDKライブラリをロードする。ここで、このプリンタSDKライブラリは、プログラムメモリRAM316或いはディスク313に置いてもよい。
また、印刷制御プログラム106は、プリンタドライバプログラム102から通知されたホストコンピュータ100側での印刷ジョブ制御開始通知に基づいて、ホストコンピュータ100側から、印刷ジョブデータを受信する前に、事前にプリンタSDK APIを使用して、印刷ジョブ制御情報および印刷に係る各種属性設定情報を要求する。なお、この要求に基づいて、ホストコンピュータ100側から同じくプリンタSDK APIを使用して、通知される印刷ジョブ制御情報および印刷に係る各種属性設定情報は、前記各APIに情報として付加されるジョブ識別IDによって識別される。
この印刷ジョブの制御情報および各種属性設定情報に基づき、印刷制御プログラム106は、印刷前の最適化処理を行ない、該処理結果を前記識別されるジョブ毎に、プログラムメモリRAM316あるいはハードディスク313の記憶装置部に保存する。
プリンタ104の印刷制御プログラム106は、ホストコンピュータ100内のプリンタドライバプログラム102から送信されるプリンタ104を初期化する制御命令を受信し、ジョブの初期化処理を行う。
続いて、プリンタ104の印刷制御プログラム106は、印刷制御命令入力処理、制御設定パラメータ解析処理、ビットマップ展開処理の一連の処理を施す。なお、上記印刷制御命令入力処理とは、ホストコンピュータ100からプリンタ104に印刷を行うために送信されてくるプリンタ印刷制御命令及び各種設定パラメータの入力を行う処理を示す。また、上記制御設定パラメータ解析処理とは、上記印刷制御命令入力処理により入力されたプリンタ印刷制御命令及び各種設定パラメータなどを解析する処理を示す。さらに、ビットマップ展開処理とは、上記制御設定パラメータ解析処理により解析された印刷制御命令,制御設定パラメータに基づいてビットマップを生成してRAM316内のビットマップメモリに展開する処理を示す。
なお、上記一連の処理において、印刷制御プログラム106は、前記事前に該当印刷ジョブの各種ジョブ制御情報および属性設定情報により各種最適化された処理(予めページ展開メモリの確保、画像レイアウト、拡大/縮小印字・描画のための作業領域の確保、排紙形態によるフィニッシング準備等の処理)の結果をプログラムメモリRAM316あるいはハードディスク313の記憶装置部から読み込んで、該読み込んだ最適化された処理の結果を用いて前記一連の処理を行う。
次に、印刷制御プログラム106は、エンジン制御プログラム107と入出力を行うビデオインターフェース319を通して、印字出力装置駆動系(エンジン部)321に前記生成されたビットマップデータを送信して、ドキュメントを出力する。
ここで、ホストコンピュータ100のイーサネット(登録商標)・インターフェース310およびプリンタ104のイーサネット(登録商標)・インターフェース317で構築されるTCP/IPなどの通信プロトコルを備えたネットワークに替えて、USB,セントロニクスインタフェース,シリアルインタフェース,SCSI等の通信プロトコルを備えた各種インターフェースにおいても適用可能である。
<プリンタおよびプリンタ内の各制御部を表わす構成の説明(図4)>
図4は、図1に示したプリンタ104内の各制御構成を表わすブロック図である。
図4は、図1に示したプリンタ104内の各制御構成を表わすブロック図である。
プリンタ104において、401はPDLコントローラ部である。このPDLコントローラ部401において、402はインターフェース(I/F)部であり、ホストコンピュータ100との接続手段である。410は受信バッファであり、受信データなどを一時的に保持管理する。411は送信バッファであり、送信データなどを一時的に保持管理する。
412はデータ解析部であり、受信データのデータ種別を一時的に解析する。413はPDL解析部であり、受信データを解析した結果、PDLデータであった場合に、PDLの解析を行う。414は描画処理実行部である。415は印刷制御処理実行部である。416はページメモリである。
また、プリンタ104において、420はオペレーションパネルであり、プリンタ104の各種状態表示および各種設定を行うためのものである。417は出力制御部であり、ページメモリ416の内容をビデオ信号に処理変換するとともに、給紙/排紙に係る各種給紙段制御およびフィニッシング制御処理も含まれる。418はプリンタエンジン部であり、出力制御部417から受け取ったビデオ信号を用紙に画像形成および排出する印刷機構部である。
インターフェース(I/F)部402は、ホストコンピュータとの印刷ジョブデータの送受信の他に、本発明のプリンタSDK APIによる各種データおよび情報の送受信を行う双方向通信手段である。なお、通信プロトコルとして、ネットワーク接続を構築するTCP/IP、SMBプロトコル、セントロニクス、USB、Ir、iLINKなどのローカル接続を構築するIEEE−1248/1394に準拠した通信を可能とする。
インターフェース(I/F)部402を通して受信した各種データおよび情報は、これらのデータおよび情報を一時的に保持する記憶手段である受信バッファ410に逐次蓄積され、必要に応じて所定のバイト数がデータ解析部412によって、読み出され処理される。
データ解析部412では、受信データが印刷制御命令となるPDLデータを含む、各種属性設定情報および文字コード、イメージなどの描画データと、プリンタSDK APIとを判別・分離し、データの処理先を振り分けるデータ振り分け手段として機能する。
データ解析部412が、受信したデータをPDLデータを含む各種属性設定情報と判別した場合には、該データはPDL解析部413を経て印刷制御処理実行部415に振り分けられて処理される。また、データ解析部412が、受信したデータをPDLデータを含む描画データと判別した場合には、該データはPDL解析部413を経て描画処理実行部414に振り分けられて処理される。また、データ解析部412が、受信したデータをプリンタSDK APIによるデータと判別した場合には、該データは印刷制御処理実行部415に振り分けられて処理される。なお、データ解析部412による、これらの振り分け処理は、ジョブ単位、グループ単位、章単位あるいはページ単位として処理することが可能である。
PDL解析部413は、データ解析部412から転送されるPCL、PostScript、LIPS等のPDLコマンドデータ、及びPJL等の印刷ジョブ制御言語に準じたコマンドデータを解析する。そして、PDL解析部413は、その解析結果に基づいて、文字/図形/イメージ等の描画に係るコマンドデータについては、中間データとして、例えばディスプレイリストとして描画処理実行部414に送って処理させる。描画処理実行部414では、文字/図形/イメージの各オブジェクトをビットイメージに変換し、ページメモリ416に逐次展開処理を行ない、出力制御部417に画像転送を行う。
また、PDL解析部413は、描画以外のドキュメント出力形態を決定する用紙サイズ、用紙メディア種、印刷部数、部単位印刷の部数、ソート、給紙方法、排紙方法、ステイプル印刷、パンチ印刷、トリミング印刷、用紙折り印刷、N−up印刷(複数ページ割付印刷)、両面印刷などの各種印刷フィニッシング属性設定および製本印刷、用紙サイズ混在、およびこれらの印刷面付け順序などのコマンドデータについては、印刷制御処理実行部415に送って処理させる。
一方、データ解析部412からプリンタSDK APIによるデータが送られた印刷制御処理実行部415では、コールされるプリンタSDK APIの種類に応じて処理を行う。
印刷制御処理実行部415は、ホストコンピュータからのプリンタSDK APIによる印刷ジョブ制御開始通知を受け、プリンタSDK APIによる印刷ジョブ制御情報要求する関数をコールし、送信バッファ411及びインターフェース(I/F)部402を介して、ホストコンピュータ側に送信する。
さらに、印刷制御処理実行部415は、前記要求に基づき、事前にホストコンピュータ側からプリンタSDK APIによる印刷ジョブ制御情報および各種属性設定情報の通知を受ける。そして、印刷制御処理実行部415は、後に受信する該当ドキュメントの印刷ジョブデータに備え、事前に前記出力形態を決定する各属性に係る最適化処理を行ない、該処理の結果を各ジョブ毎に保存する。続いて、印刷制御処理実行部415は、印刷ジョブデータを受信するとともに、該当ジョブの最適化処理結果を読み出し、印刷制御処理を実行して、出力制御部417に送る。なお、出力制御部417には、上述したように描画処理実行部414により変換されたビットマップイメージも転送される。
以上の各処理を実行し、出力制御部417よりプリンタエンジン部418に画像転送を行うことによって、目的のドキュメント印刷出力を行う。
なお、本実施形態では、図4に示したPDLコントローラ401内のデータ解析部412、PDL解析部413、描画処理実行部414および印刷制御処理実行部415における各処理実行プログラムを図1に示した印刷制御プログラム106、プリンタ104内の出力制御部417の処理を実行するプログラムを図1に示したエンジン制御プログラム107として定義している。
<アプリケーションプログラムインターフェース(API)の関数例の説明(図5〜図6)>
図5〜図6は、本発明におけるアプリケーションプログラムインタフェース(API)関数の一例を示した図である。
図5〜図6は、本発明におけるアプリケーションプログラムインタフェース(API)関数の一例を示した図である。
図5に示す501は、PD_FuncJobStart( )関数である。このPD_FuncJobStart( )関数は、図1のプリンタドライバプログラム102において、アプリケーションプログラム103のドキュメント印刷指示に基づいて、印刷ジョブ制御処理が開始されるタイミングで、プリンタ104に印刷ジョブ制御処理が開始されたことを通知するプリンタSDK APIである。
例えば、本関数例では、関数パラメータとして、本関数の実行作業領域としてのメモリ領域のアドレスであるhHandle、プリンタSDK APIにおける機能識別を表わすItemID、ジョブを識別するためのジョブ識別IDを指定するlpJobID、バッファアドレス指すpItemを有する。
プリンタドライバプログラム102では、前記ジョブ識別IDを指定するlpJobIDパラメータに、印刷ジョブ制御処理開始通知、印刷ジョブ制御情報要求、印刷ジョブ制御情報通知および印刷ジョブデータ送受信の一連の過程において、複数ジョブ印刷時の別印刷ジョブの情報およびデータの混在を防ぐために、1つのジョブに対して1つのIDを指定して、本関数を動作させる。
そして、本関数をコールされたプリンタ104内の印刷制御プログラム106は、正しく受け付けられたことを本関数のリターン値として、正常値(TRUE)を返すことで完了する。
図5に示す502はPP_FuncGetJobInfo( )関数である。このPD_FuncJobStart( )関数は、図1のプリンタ104内の印刷制御プログラム106において、プリンタドライバプログラム502からの印刷ジョブ制御情報通知に基づいて、印刷ジョブ制御情報を要求するプリンタSDK APIである。
プリンタドライバプログラム102から前記PD_FuncJobStart( )関数501のコールに基づき、プリンタ104内の印刷制御プログラム106は、該当する印刷ジョブの事前最適化制御処理を行うための記憶装置部の初期化、印刷ジョブ制御情報および各種属性設定情報の受付などの準備を行ない、PP_FuncGetJobInfo( )関数502をコールする。
例えば、本関数例では、関数パラメータとして、本関数の実行作業領域としてのメモリ領域のアドレスであるhHandle、プリンタSDK APIにおける機能識別を表わすItemID、ジョブを識別するためのジョブ識別IDを指定するlpJobID、バッファアドレス指すpItemを有する。
本関数をコールされたプリンタドライバプログラム102は、正しく受け付けられたことを本関数のリターン値として、正常値(TRUE)を返すことで完了する。
図6に示す601はPD_FuncSendJobInfo( )関数である。このPD_FuncJobStart( )関数は、図1のプリンタドライバプログラム102において、ドキュメント印刷に係るジョブ全体に関連する出力形態を決定する印刷制御情報および各種属性設定情報を、プリンタ104内の印刷制御プログラム106に通知するプリンタSDK APIである。
ここで、ジョブ全体に関連する出力形態を決定する印刷制御情報および各種属性設定情報とは、ジョブ全体で設定される用紙サイズ、用紙メディア種、印刷部数、部単位印刷の部数、ソート、給紙方法、排紙方法、ステイプル印刷、パンチ印刷、トリミング印刷、用紙折り印刷、N−up印刷(複数ページ割付印刷)、両面印刷などの各種印刷フィニッシング属性設定および製本印刷、用紙サイズ混在、およびこれらの印刷面付け順序などの各種制御および属性設定情報である。
例えば、本関数例では、関数パラメータとして、本関数の実行作業領域としてのメモリ領域のアドレスであるhHandle、プリンタSDK APIにおける機能識別を表わすItemID、ジョブを識別するためのジョブ識別IDを指定するlpJobID、ジョブ全体に関連する各種制御情報および属性設定情報を格納するバッファアドレス指すpJobInfoを有する。
プリンタドライバプログラム102では、本関数のパラメータpJobInfoに、プリンタドライバプログラム102で一時確保したメモリバッファのポインタを指すパラメータとしてJOBINFOで型定義されるプログラム構造体にジョブ全体に関連する各種制御情報および属性設定情報を代入して、本関数をコールして、前記情報をプリンタ104に送信することで前記印刷制御プログラム106に通知する。
そして、本関数をコールされたプリンタ104内の印刷制御プログラム106は、正しく受け付けられたことを本関数のリターン値として、正常値(TRUE)を返すことで完了する。
図6に示す602はPD_FuncSendPageInfo( )関数である。このPD_FuncSendPageInfo( )関数は、図1のプリンタドライバプログラム102において、ドキュメント印刷に係るジョブ中である属性に基づいて分割されたグループ、章あるいはページ単位に関連する出力形態を決定する印刷制御情報および各種属性設定情報を、プリンタ104内の印刷制御プログラム106に通知するプリンタSDK APIである。
ここで、グループ/章/ページ単位に関連する出力形態を決定する印刷制御情報および各種属性設定情報とは、グループ/章/ページ単位で設定される用紙サイズ、用紙メディア種、用紙折り印刷、N−up印刷(複数ページ割付印刷)、両面印刷などの各種印刷フィニッシング属性設定および製本印刷、用紙サイズ混在、およびこれらの印刷面付け順序などの各種制御および属性設定情報である。
例えば、本関数例では、関数パラメータとして、本関数の実行作業領域としてのメモリ領域のアドレスであるhHandle、プリンタSDK APIにおける機能識別を表わすItemID、ジョブを識別するためのジョブ識別IDを指定するlpJobID、ジョブ全体に関連する各種制御情報および属性設定情報を格納するバッファアドレス指すpPageInfoを有する。
プリンタドライバプログラム102では、本関数のパラメータpPageInfoに、プリンタドライバプログラム102で一時確保したメモリバッファのポインタを指すパラメータとしてPAGEINFOで型定義されるプログラム構造体にグループ/章/ページ単位に関連する各種制御情報および属性設定情報を代入して、本関数をコールして、前記情報をプリンタ104に送信することで前記印刷制御プログラム106に通知する。
そして、本関数をコールされたプリンタ104内の印刷制御プログラム106は、正しく受け付けられたことを本関数のリターン値として、正常値(TRUE)を返すことで完了する。
図5に示す503はPD_FuncSendJob( )関数である。このPD_FuncSendJob( )関数は、図1のプリンタドライバプログラム102において、印刷ジョブデータとして、印刷制御命令であるPDLデータおよび描画データをプリンタ104に送信する直前に、該当ドキュメントの印刷ジョブであることを識別するために、前記印刷ジョブ制御情報通知までの一連の処理のジョブ識別と同一ジョブデータであることを、プリンタ104内の印刷制御プログラム106に通知するプリンタSDK APIである。
プリンタドライバプログラム102では、本関数のコールとともに、印刷ジョブデータをプリンタ104に送信することによって、プリンタ104側では、複数のクライアントあるいはプリントサーバから、本発明の印刷システムにおいて、複数の印刷ジョブを受信しても、内部的にジョブの識別が可能となる。
そして、本関数をコールされたプリンタ104内の印刷制御プログラム106は、正しく受け付けられたことを本関数のリターン値として、正常値(TRUE)を返すことで完了する。
なお、プリンタSDK APIライブラリは、通常、本発明の機能関数のみに限らず、これらの他に種々な機能を有する関数も用意され、関数群を構成するものである。
<プリンタドライバプログラムおよびプリンタ間のAPIコーリングシーケンス例の説明(図7)>
図7は、図1に示したホストコンピュータ100上のOS101、プリンタドライバプログラム102、及びプリンタ104上のリアルタイムオペレーティングシステム105、印刷制御プログラム106における、各印刷制御処理時のDDIに対応するプリンタSDK APIのコーリングシーケンス図である。
図7は、図1に示したホストコンピュータ100上のOS101、プリンタドライバプログラム102、及びプリンタ104上のリアルタイムオペレーティングシステム105、印刷制御プログラム106における、各印刷制御処理時のDDIに対応するプリンタSDK APIのコーリングシーケンス図である。
図7において、700は、OS101が備えるスプーラ,通信モジュール及びVxWORKSオペレーティングシステムが制御する通信モジュール(「OS/Spooler/通信モジュール」700)であり、ホストコンピュータ100及びプリンタ104間での、情報およびデータの送受信は、この「OS/Spooler/通信モジュール」700を介して行なわれる。
まず、プリンタドライバ102側では、アプリケーションプログラム103からプリンタ104に対するデバイスコンテキストを作成することにより、GDIからプリンタドライバ102を初期化するDDI関数であるDrvEnablePDEV( )関数703がコールされる。
プリンタドライバ102は、本関数の処理で、メモリ確保・初期化、デフォルトデータの読み込み、各種属性パラメータに初期化を行う。このとき同時にプリンタドライバ102は、プリンタSDKライブラリをロードする。
次に、プリンタドライバ102側では、アプリケーションプログラムからのドキュメント印刷指示に基づき、GDIよりプリンタドライバ102に印刷ジョブ開始処理を指示するDDI関数であるDrvStartDoc( )関数704がコールされる。プリンタドライバ102は、本関数の処理で印刷ジョブ制御を開始する。
同時にプリンタドライバ102は、印刷ジョブ制御処理が開始されたことをプリンタSDK APIであるPD_FuncJobStart( )関数501をコールして、プリンタ104に通知する(印刷ジョブ制御処理開始通知)。プリンタ104は、本関数コールに対して、正しく受け付けられたことを本関数のリターン値として、正常値(TRUE)をプリンタドライバ102に返す。
また、プリンタ104は、上記印刷ジョブ制御処理開始通知に基づき、印刷ジョブ制御情報をプリンタSDK APIであるPP_FuncGetJobInfo( )関数502をコールして、プリンタドライバ102に要求を行う(印刷ジョブ制御情報要求)。プリンタドライバ102は、本関数コールに対して、正しく受け付けられたことを本関数のリターン値として、正常値(TRUE)をプリンタ104に返す。
そして、プリンタドライバ102は、前記印刷ジョブ制御情報要求に基づき、印刷ジョブ制御処理開始時に決定するジョブ全体に関連するドキュメント出力形態を実現するため制御情報および各種属性設定情報をプリンタSDK APIであるPD_FuncSendJobInfo( )関数601をコールして、プリンタ104に通知する。プリンタ104は、本関数コールに対して、正しく受け付けられたことを本関数のリターン値として、正常値(TRUE)をプリンタドライバ102に返す。
上記ジョブ全体に関連する各種印刷制御情報および属性設定情報を受理したプリンタ104は、(プリンタドライバ102が、各種制御処理を行って印刷ジョブデータとなるPDLデータを生成して、プリンタ104に送信してくるまでに、)ジョブ全体に関連する各種最適化処理を行って、以降の処理に備え、該当ジョブと識別して保存しておく。
一方、プリンタドライバ102は、生成したジョブ全体に関連する印刷ジョブデータとなるPDLデータの送信を開始する前に、前記プリンタ104に通知した各種印刷制御情報および属性設定情報と、該当する印刷ジョブデータとの対応をとるためのジョブ識別IDを、プリンタSDK APIであるPD_FuncJobSend( )関数503をコールして、プリンタ104に通知する。
続いて、プリンタドライバ102は、プリンタドライバ102で生成したジョブ全体に関連する印刷ジョブデータとなるPDLデータ709をプリンタ104へ送信する。
プリンタ104は、前記ジョブ全体に関連する最適化処理を読み出して、プリンタドライバ102から受信した印刷ジョブデータの各制御に適応させて処理を行う。
次に、プリンタドライバ102側では、アプリケーションプログラムからページ単位の出力指示に基づき、GDIよりプリンタドライバ102にページ出力開始処理を指示するDDI関数であるDrvStartPage( )関数710がコールされる。
また、プリンタドライバ102は、前記印刷ジョブ制御情報要求に基づき、ページ出力処理開始時に決定するページ単位あるいは該当ページが含まれるグループ、章単位に関連するドキュメント出力形態を実現するための制御情報および各種属性設定情報を、プリンタSDK APIであるPD_FuncSendPageInfo( )関数602をコールして、プリンタ104に通知する。
そして、プリンタ104は、本関数コールに対して、正しく受け付けられたことを本関数のリターン値として、正常値(TRUE)をプリンタドライバ102に返す。
また、前記ページ/グループ/章単位に関連する各種印刷制御情報および属性設定情報を受理したプリンタ104は、プリンタドライバ102において、各種制御処理を行って、印刷ジョブデータとなるPDLデータを生成して、プリンタ104に送信してくるまでに、ページ/グループ/章単位に関連する各種最適化処理を行って、以降の処理に備え、該当ジョブと識別して保存しておく。
そして、プリンタドライバ102は、プリンタドライバ102で生成したページ/グループ/章単位に関連する印刷ジョブデータとなるPDLデータ712をプリンタ104へ送信する。
そして、プリンタ104は、前記ページ/グループ/章単位に関連する最適化処理を読み出して、受信した印刷ジョブデータ712の各制御に適応させて処理を行う。
なお、Windows(登録商標)オペレーティングシステムにおけるドキュメント印刷の動作として、ジョブ中のページ/グループ/章単位で出力属性が異なる場合は、異なる度に、GDIよりDrvStartPage( )関数710がコールされるため、上記処理720が繰り返されることになる。
次に、プリンタドライバ102側では、アプリケーションプログラム103よりページに対する属性設定および各オブジェクト描画処理が終了することをGDIに指示することによって、GDIよりプリンタドライバ102にページ終了処理を指示するDDI関数であるDrvEndPage( )関数713がコールされる。
さらに、プリンタドライバ102側では、アプリケーションプログラム103により、全てのドキュメントページの属性設定および各オブジェクト描画処理を終了し、ドキュメント印刷終了をGDIに指示することによって、GDIよりプリンタドライバ102に、ジョブ終了処理を指示するDDI関数であるDrvEndDoc( )関数714がコールされる。
プリンタドライバ102は、本関数の処理において、各種パラメータのリセットおよび各種メモリ領域の開放を行うとともに、プリンタ104の印刷ジョブ制御処理を完了させるためのジョブ終了に関するPDLデータ715を生成し、プリンタ104に送信する。
最後に、プリンタドライバ102側では、アプリケーションプログラムにおけるすべての印刷処理を完了するために、プリンタに対するデバイスコンテキストの削除を指示するDDI関数であるDrvDisablePDEV( )関数716がコールされ、ドキュメント印刷のセッションを終了する。
<本実施形態のプリンタドライバプログラムにおける印刷ジョブ制御開始通知処理の説明(図8)>
以下、図8に示すフローチャートによって、本実施形態におけるホストコンピュータ100のプログラムメモリ上にあるプリンタドライバプログラム104の各制御処理を詳細に説明する。
以下、図8に示すフローチャートによって、本実施形態におけるホストコンピュータ100のプログラムメモリ上にあるプリンタドライバプログラム104の各制御処理を詳細に説明する。
図8は、本発明の印刷システムにおける第1の制御処理手順の一例を示すフローチャートである。
なお、図8中、S801に示すステップは、本実施形態に係るホストコンピュータ100におけるアプリケーションプログラム103(CPU304がRAM306上で実行する)での処理に対応する。
また、S802〜S809に示すステップは、本実施形態に係るホストコンピュータ100におけるプリンタドライバプログラム102(CPU304がRAM306上で実行する)での印刷制御処理開始からプリンタSDK APIを使用して印刷ジョブ制御処理開始をプリンタ104の印刷制御プログラム106に通知するまでの一連の制御処理に対応する。
まず、ステップS801において、ユーザがキーボード等の入力装置からアプリケーションプログラム103へ印刷指示を行うと、アプリケーションプログラム103から、Windows(登録商標) GDIに対して、プリンタに対するデバイスコンテキスト作成指示およびドキュメント印刷開始指示を行う(DrvEnablePDEV( )関数703コール)。このとき、プリンタドライバプログラム102がOS101上でロードされ起動される。
ステップS802において、ステップS801に示したGDIからのDDI関数コール(DrvEnablePDEV( )関数703コール)により、プリンタドライバプログラム102は、各種メモリ領域確保、各種パラメータ初期化等によって、プリンタドライバプログラム102の初期化処理を行う。
また同時に、ステップS803において、プリンタドライバプログラム102は、プリンタSDK APIライブラリをロードする。
そして、アプリケーションプログラム103は、Windows(登録商標) GDIに対してデバイスコンテキストハンドルの作成し、該デバイスコンテキストハンドルに、テキスト、図形、イメージの各オブジェクト描画を開始する(DrvStartDoc( )関数704コール)。
そして、Windows(登録商標) GDIが、上記各オブジェクト描画指示をDDIに変換し、プリンタドライバプログラム102に渡すと、ステップS804において、プリンタドライバプログラム102は、ドキュメント印刷に係る各種印刷制御処理を開始する。
そして、ステップ805において、プリンタドライバプログラム102は、プリンタ104に対して、プリンタSDK APIであるPD_FuncJobStart( )関数501をコールして、印刷ジョブ制御処理が開始されたことを通知する。
次に、ステップS806において、プリンタドライバプログラム102は、プリンタ104側からのPD_FuncJobStart( )関数501に対するリターンを受信し、ステップS807において、このリターン値が正常リターンであるか否かを判定する。
ステップS807で、プリンタドライバプログラム102が、正常リターンであると判定した場合には、ステップS808において、処理を続行するためにRAM306上のプログラムフラグに続行する意味のフラグをセットし、以降の処理に備える。なお、このフラグは、OS101,アプリケーションプログラム103等に判断され、処理の続行の有無が制御される。
一方、ステップS807で、プリンタドライバプログラム102が、正常リターンでないと判定した場合には、ここで処理を中止する(ステップS809)。
<本実施形態のプリンタにおける印刷ジョブ制御情報要求処理の説明(図9)>
以下、図9に示すフローチャートによって、本実施形態におけるプリンタのプログラムメモリ上にある印刷制御プログラムの各制御処理を詳細に説明する。
以下、図9に示すフローチャートによって、本実施形態におけるプリンタのプログラムメモリ上にある印刷制御プログラムの各制御処理を詳細に説明する。
図9は、本発明の印刷システムにおける第2の制御処理手順の一例を示すフローチャートである。
なお、図9中、S901〜S909に示すステップは、本実施形態に係るプリンタ104における印刷制御プログラム106(CPU314がRAM316上で実行する)での各制御処理開始からプリンタSDK APIを使用して、印刷ジョブ制御情報をホストコンピュータ100のプリンタドライバプログラム102に要求するまでの一連の制御処理に対応する。
まず、ステップS901において、プリンタ電源投入時あるいはプリンタリセット時に、印刷制御プログラム106は、各種制御処理を実行するためのプログラムメモリ領域確保、各種パラメータの初期化を行う(プリンタ104の初期化処理)。
また同時に、ステップS902において、印刷制御プログラム106は、プリンタSDK APIライブラリをロードする。
次に、ステップS903において、印刷制御プログラム106は、ホストコンピュータ100側からのプリンタSDK APIであるPD_FuncJobStart( )関数501コールに対して、印刷ジョブ制御処理開始通知受理すると、本関数に対する正常リターンを返す。
続いて、ステップS904において、印刷制御プログラム106は、ホストコンピュータ100のプリンタドライバプログラム102に対して、プリンタSDK APIであるPP_FuncGetJobInfo( )関数502をコールして、印刷ジョブ制御情報の要求を行う。
次に、ステップS905において、印刷制御プログラム106は、前記PP_FuncGetJobInfo( )関数502のホストコンピュータ100側からのリターンを受信すると、ステップS906において、このリターン値が正常リターンであるか否かを判定する。
ステップS906で、印刷制御プログラム106が、正常リターンであると判定した場合には、ステップS908において、処理を続行するためにRAM316上のプログラムフラグに続行する意味のフラグをセットし、以降の処理に備える。なお、このフラグは、OS105等に判断され、処理の続行の有無が制御される。
さらに、印刷制御プログラム106は、ホストコンピュータ100側からの印刷ジョブ制御情報要求に基づく、印刷ジョブ制御情報および各種属性設定情報通知に備えて、ステップS909において、これらの情報を格納する記憶装置(RAM316)上の領域確保および初期化を行う。
一方、ステップS906で、印刷制御プログラム106が、正常リターンでないと判定した場合には、ここで処理を中止する(ステップS907)。
<本実施形態のプリンタドライバプログラムにおける印刷ジョブ制御情報通知処理の説明(図10)>
以下、図10に示すフローチャートによって、本実施形態におけるホストコンピュータ100のプログラムメモリ上にあるプリンタドライバプログラム104の図8のステップS808以降の各制御処理を詳細に説明する。
以下、図10に示すフローチャートによって、本実施形態におけるホストコンピュータ100のプログラムメモリ上にあるプリンタドライバプログラム104の図8のステップS808以降の各制御処理を詳細に説明する。
図10は、本発明の印刷システムにおける第3の制御処理手順の一例を示すフローチャートである。
なお、図10中の1001〜S1009に示すステップは、本実施形態に係るホストコンピュータ100におけるプリンタドライバプログラム102(CPU304がRAM306上で実行する)での、プリンタ104の印刷制御プログラム106からの印刷ジョブ制御情報要求を受けてから、プリンタSDK APIを使用して、印刷ジョブ制御情報をプリンタ104の印刷制御プログラム106に通知するまでの一連の制御処理に対応する。
まず、プリンタドライバプログラム102は、ステップS1001において、プリンタ104側からのプリンタSDK APIであるPP_FuncGetJobInfo( )関数502コールに対応して、印刷ジョブ制御情報要求を受理すると、本関数に対する正常リターンをプリンタ104に返す。
次に、ステップS1002において、プリンタドライバプログラム102は、ステップS1001で受理したプリンタ104側からの印刷ジョブ制御情報要求に基づいて、ジョブ全体に関連するドキュメント出力形態を実現するため制御情報および各種属性設定情報を、プリンタSDK APIであるPD_FuncSendJobInfo( )関数601をコールしてプリンタ104に通知し、プリンタ104からのリターンを受理する。
次に、ステップS1003において、プリンタドライバプログラム102は、ステップS1002で受理したプリンタ104側からのPD_ FuncSendJobInfo ( )関数601に対するリターン値が正常リターンであるか否かを判定する。
ステップS1003で、プリンタドライバプログラム102が、ステップS1002で受理したリターン値が正常リターンでないと判定した場合には、ここで処理を中止する(ステップS1009)。
一方、ステップS1003で、プリンタドライバプログラム102が、ステップS1002で受理したリターン値が正常リターンであると判定した場合には、ステップS1004において、処理を続行するためにRAM306上のプログラムフラグに続行する意味のフラグをセットし、処理に備える。なお、このフラグは、OS101,アプリケーションプログラム103等に判断され、処理の続行の有無が制御される。
そして、プリンタドライバプログラム102は、アプリケーションプログラム103からGDIを介してページ単位の出力指示がなされると(DrvStartPage( )関数710がコールされると)、ステップS1005において、プリンタドライバプログラム102は、ページ単位あるいは該当ページが含まれるグループ、章単位に関連するページ出力制御処理を開始する。
そして、ステップS1006において、プリンタドライバプログラム102は、前記ページ出力処理開始時に決定するページ単位あるいは該当ページが含まれるグループ、章単位に関連するドキュメント出力形態を実現するため制御情報および各種属性設定情報を、プリンタSDK APIであるPD_FuncSendPageInfo( )関数602をコールして、プリンタに通知する。
そして、ステップS1007において、プリンタドライバプログラム102は、ステップS1006で受理したプリンタ104側からのPD_FuncSendPageInfo( )関数602に対するリターン値が正常リターンであるか否かを判定する。
ステップS1007で、プリンタドライバプログラム102が、ステップS1006で受理したリターン値が正常リターンでないと判定した場合には、ここで処理を中止する(ステップS1009)。
一方、ステップS1007で、プリンタドライバプログラム102が、ステップS1006で受理したリターン値が正常リターンであると判定した場合には、ステップS1008において、処理を続行するためにRAM306上のプログラムフラグに続行する意味のフラグをセットし、以降の処理に備える。なお、このフラグは、OS101,アプリケーションプログラム103等に判断され、処理の続行の有無が制御される。
なお、図7でも説明したように、Windows(登録商標)オペレーティングシステムにおけるドキュメント印刷の動作として、ジョブ中のページ/グループ/章単位で出力属性が異なる場合は、異なる度に、GDIよりDrvStartPage( )関数710がコールされるため、図10では図示を省略しているが、ステップS1005〜ステップS1009は、ジョブ中のページ/グループ/章単位で出力属性が異なる回数だけ、繰り返し実行される。
<プリンタドライバプログラムにおける印刷制御処理の説明(図11)>
以下、図11に示すフローチャートによって、本実施形態におけるホストコンピュータ100のプログラムメモリ上にあるプリンタドライバプログラム104の印刷制御処理を詳細に説明する。
以下、図11に示すフローチャートによって、本実施形態におけるホストコンピュータ100のプログラムメモリ上にあるプリンタドライバプログラム104の印刷制御処理を詳細に説明する。
図11は、本発明の印刷システムにおける第4の制御処理手順の一例を示すフローチャートである。
なお、図11中の1101〜S1111に示すステップは、本実施形態に係るホストコンピュータ100におけるプリンタドライバプログラム102(CPU304がRAM306上で実行する)での印刷制御処理に対応する。
まず、ドキュメント作成、編集、印刷アプリケーションプログラム103からのプリンタへの印刷指示によって、本フローチャートの処理を開始する。
まず、アプリケーションプログラム103から、各種印刷属性設定パラメータおよび文字/図形/イメージデータの印刷指示が、Windows(登録商標) SDK APIを使用してWindows(登録商標) GDIで作成されるプリンタに対してなされると、GIDは、この各種印刷属性設定パラメータおよび文字/図形/イメージデータの印刷指示をDDIに変換し、プリンタドライバプログラム102に対するDDI関数をコールする。これにより、本フローチャートの処理が開始される。
まず、ステップS1101において、プリンタドライバプログラム102は、アプリケーションプログラム103からWindows(登録商標) SDK APIを介して渡される各種印刷属性設定パラメータおよび文字/図形/イメージデータの印刷指示を入力する。
そして、ステップS1102おいて、プリンタドライバプログラム102は、ステップS1101で入力されたパラメータおよびデータを解析する。
なお、ステップS1101,S1102は、各種印刷属性設定パラメータおよび文字/図形/イメージデータの印刷指示が入力される毎に実行される。
次に、ステップS1103において、プリンタドライバプログラム102は、ステップS1102での前記入力データの解析結果より、用紙サイズ、印刷方向、描画解像度設定、座標系の単位設定など印刷の準備をするため、プリンタ104に対する各設定パラメータをプリンタ制御命令に変換・生成し、プリンタ104に送信してプリンタ104の初期化処理を行う。
なお、ステップS1103は、ジョブ中のページ/グループ/章単位で出力属性が異なる度に実行される。
さらに、ステップS1104およびステップS1106において、プリンタドライバプログラム102は、前記ステップS1102で解析処理されたパラメータ及びデータを、文字データ,図形データ,イメージデータに分離する。
ステップS1104で、プリンタドライバプログラム102が、文字データと判定したデータについては、ステップS1105において、文字印字制御処理モジュールで文字印字制御処理を施す。
また、ステップS1104及びS1106で、プリンタドライバプログラム102が図形データと判定したデータについては、ステップS1107において、図形描画制御処理モジュールで図形描画制御処理を施す。
また、ステップS1104及びS1106で、プリンタドライバプログラム102がイメージデータと判定したデータについては、ステップS1108において、イメージ描画制御処理モジュールでイメージ描画制御処理を施す。
そして、ステップS1109において、プリンタドライバプログラム102は、上記ステップS1105の文字印字制御処理,ステップS1107の図形描画制御処理,ステップS1108のイメージ描画制御処理に基づき、ドキュメント構成制御処理モジュールで描画出力属性,サイズ計算,描画出力位置等パターンの出力形態を決定し、プリンタの出力ページに配置する処理(ドキュメント構成処理)を行う。
次に、ステップS1110において、プリンタドライバプログラム102は、ステップS1109で構成されたドキュメント出力の制御データを、印刷制御命令生成処理モジュールで、プリンタにドキュメントを出力するためにプリンタの印刷制御命令に変換・生成する処理(印刷制御命令生成処理)を行う。
そして、ステップS1111において、プリンタドライバプログラム102は、プリンタへの出力送信処理モジュールで、ステップS1110で生成した印刷制御命令をプリンタ104に対して送信する処理(出力送信処理)を行い、プリンタ104でドキュメントを印刷させる。
なお、ステップS1104〜S1111の処理は、各種印刷属性設定パラメータおよび文字/図形/イメージデータの印刷指示毎に実行される。
<プリンタにおける印刷制御処理の説明(図12)>
以下、図12に示すフローチャートによって、本実施形態におけるプリンタのプログラムメモリ上にある印刷制御プログラムの印刷制御処理を詳細に説明する。
以下、図12に示すフローチャートによって、本実施形態におけるプリンタのプログラムメモリ上にある印刷制御プログラムの印刷制御処理を詳細に説明する。
図12は、本発明の印刷システムにおける第5の制御処理手順の一例を示すフローチャートである。
なお、図12中、S1201〜S1209に示すステップは、本実施形態に係るプリンタ104における印刷制御プログラム106(CPU314がRAM316上で実行する)における印刷制御処理に対応する。
また、図12中、S1210に示すステップは、本実施形態に係るプリンタ104におけるエンジン制御プログラム107(CPU314がRAM316上で実行する)における転送処理に対応する。
さらに、図12中、S1211に示すステップは、本実施形態に係るプリンタ104におけるエンジン部321における出力処理に対応する。
まず、ステップS1201において、印刷制御プログラム106は、ホストコンピュータ100のプログラムメモリ上にあるプリンタドライバプログラム102より、プリンタSDK API関数およびデータによって、ドキュメント全体の出力形態を決定するジョブに関連する印刷制御情報および各種属性設定情報を受理し、正常リターンを返す処理を行う。
なお、前記ジョブに関連する印刷制御情報および各種属性設定情報とは、ジョブ全体で設定される用紙サイズ、用紙メディア種、印刷部数、部単位印刷の部数、ソート、給紙方法、排紙方法、ステイプル印刷、パンチ印刷、トリミング印刷、用紙折り印刷、N−up印刷(複数ページ割付印刷)、両面印刷などの各種印刷フィニッシング属性設定および製本印刷、用紙サイズ混在、およびこれらの印刷面付け順序などの各種制御および属性設定情報である。
次に、ステップS1202において、印刷制御プログラム106は、ステップS1201で受理した前記ジョブ全体に関連する印刷制御情報および各種属性設定情報から、ジョブ単位の最適化処理を行う。この処理は、事前にジョブ制御に係る作業領域としてのメモリ、ハードディスク等の記憶装置上の領域確保、出力に係る各制御処理の優先順位の設定、給紙トレイからの用紙給紙の準備、フィニッシャなどの各種周辺装置の実行・動作の準備など、ジョブ全体に関連する各制御および各種属性設定を行って以降の処理に備えて行う最適化処理である。
次に、ステップS1203において、印刷制御プログラム106は、ステップS1202で行った前記ジョブ全体に関連する事前最適化処理の結果を、識別されたジョブ単位に、RAM316、ディスク313等の記憶装置部に格納して、該当ジョブ印刷が終了するまで保存する。
続いて、ステップS1204において、印刷制御プログラム106は、前記同様にホストコンピュータ100のプログラムメモリ上にあるプリンタドライバプログラム102より、プリンタSDK API関数およびデータによって、ドキュメント全体の出力形態を決定するページ/グループ/章単位で関連する印刷制御情報および各種属性設定情報を受理し、正常リターンを返す処理を行う。
なお、前記ページ/グループ/章単位で関連する印刷制御情報および各種属性設定情報とは、ジョブ全体で設定される用紙サイズ、用紙メディア種、用紙折り印刷、N−up印刷(複数ページ割付印刷)、両面印刷などの各種印刷フィニッシング属性設定および製本印刷、用紙サイズ混在、およびこれらの印刷面付け順序などの各種制御および属性設定情報である。
次に、ステップS1205において、印刷制御プログラム106は、ステップS1204で受理したページ/グループ/章単位で関連する印刷制御情報および各種属性設定情報から、ページ/章単位の最適化処理を行う。この処理は、事前にページ/グループ/章単位の制御に係る作業領域としてのメモリ、ハードディスクなどの記憶装置上の領域確保、出力に係る各制御処理の優先順位の設定、給紙トレイからの用紙給紙の準備、フィニッシャなどの各種周辺装置の実行・動作の準備など、ジョブ全体に関連する各制御および各種属性設定を行って以降の処理に備えて行う最適化処理である。
次に、ステップS1206において、印刷制御プログラム106は、ステップS1205で行った、前記ページ/グループ/章単位に関連する事前最適化処理の結果を、識別されたジョブ単位に、RAM316、ディスク313等の記憶装置部に格納して、該当ジョブ印刷が終了するまで保存する。
次に、ステップS1207において、印刷制御プログラム106は、ホストコンピュータ100のプログラムメモリ上にあるプリンタドライバプログラム102から、PDLデータおよび文字コード、イメージ等の描画データから成る該当ドキュメントの印刷ジョブデータを受信する。
そして、ステップS1208において、印刷制御プログラム106は、前記ステップS1203及びステップS1206で記憶装置部に保存したジョブ/グループ/章/ページにわたる各最適化処理の結果を読み出す。
ステップS1209において、印刷制御プログラム106は、ステップS1207で受信した印刷ジョブデータと、ステップS1208で読み出した各最適化処理結果をあわせて、各印刷制御処理を行ってビットマップデータを生成し、ページメモリ416(図4)上に展開する。
そして、ステップS1210において、エンジン制御プログラム107は、ステップS1209で生成されたページメモリ406上のビットマップデータを、プリンタエンジン部321に転送する。
ステップS1211において、プリンタエンジン部321は、エンジン制御プログラム107から転送されるビットマップデータに基づいて記録シートへのドキュメント出力を行う。
なお、ステップS1204〜S1210の処理は、ジョブ中のページ/グループ/章単位で出力属性が異なる回数だけ、繰り返し実行される。
以上示したように、本実施形態によれば、ホストコンピュータ100上のプリンタドライバプログラム102とプリンタ104内の印刷制御プログラム106において、各オペレーティングシステム(OS101,OS105)で認識可能で、相互に各種情報およびデータの送受信が可能なプリンタSDK APIとなる関数を用意して、ドキュメント印刷に係る各種印刷制御情報および各種属性設定を事前にプリンタ側に通知し、各種最適化処理を行ない、実際の印刷時の各種印刷制御を可能とすることによって、複雑な出力形態が設定されるドキュメント印刷速度の向上を図る印刷システムの提供することが可能となる。
〔第2実施形態〕
上記第1実施形態では、ホストコンピュータ100上のプリンタドライバプログラム102およびプリンタ104内の印刷制御プログラム106間で、プリンタSDK APIライブラリで提供される関数で、各種情報およびデータの送受信を行う構成であった。
上記第1実施形態では、ホストコンピュータ100上のプリンタドライバプログラム102およびプリンタ104内の印刷制御プログラム106間で、プリンタSDK APIライブラリで提供される関数で、各種情報およびデータの送受信を行う構成であった。
一方、本実施形態では、ホストコンピュータ100上のアプリケーションプログラム103において、前記プリンタSDK APIライブラリをロードし、該プリンタSDK APIライブラリで提供される関数で、アプリケーションプログラム103とプリンタ104内の印刷制御プログラム106間の各種情報およびデータの送受信を行うように構成する。
この構成の本実施形態によれば、アプリケーションプログラム103とプリンタ104間で、直接、事前の印刷制御情報および各種属性設定情報を通知することが可能となる。このため、例えば、PostScriptデータを扱うアプリケーションプログラムと、PostScriptプリンタの組み合わせにおいて、アプリケーションプログラムから、直接プリンタに出力する場合、ドキュメント印刷に係る印刷速度の向上を図る印刷システムを提供することが可能となる。
また、別の例としては、前記アプリケーションプログラムおよびプリンタの組み合わせにおいて、Windows(登録商標)オペレーティングシステムの印刷方式であるアプリケーションプログラムから、直接プリンタにPDLデータを送信することができるPASSTHROUGH機能においても、ドキュメント印刷に係る印刷速度の向上を図る印刷システムを提供することが可能となる。
〔第3実施形態〕
上記実施形態では、アプリケーションプログラムインタフェース(API)であるプリンタSDK APIライブラリを、ホストコンピュータ100上のアプリケーションプログラム103、プリンタドライバプログラム102、及びプリンタ104上の印刷制御プログラムから読み込み可能なプログラムライブラリ形式として提供する構成について説明した。
上記実施形態では、アプリケーションプログラムインタフェース(API)であるプリンタSDK APIライブラリを、ホストコンピュータ100上のアプリケーションプログラム103、プリンタドライバプログラム102、及びプリンタ104上の印刷制御プログラムから読み込み可能なプログラムライブラリ形式として提供する構成について説明した。
このプリンタSDK APIライブラリは、ホストコンピュータ100上のアプリケーションプログラム103、プリンタドライバプログラム102において、スタティックリンクライブラリとして、予め各プログラムに内蔵される構成であっても、或いは、外部ファイル形式(ダイナミックリンクライブラリ)として、任意のタイミングで必要に応じて、プログラムメモリ上に外部ライブラリファイルをロードして使用する構成であってもよい。
さらに、プリンタSDK APIライブラリは、プリンタ104内の印刷制御プログラム106において、スタティックリンクライブラリとして、予め各プログラムに内蔵される構成であっても、或いは、外部ファイル形式(ダイナミックリンクライブラリ)として、任意のタイミングで必要に応じて、プログラムメモリ上に外部ライブラリファイルをロードして使用する構成であってもよい。
上記プリンタSDK APIライブラリを外部ファイル形式(ダイナミックリンクライブラリ)として提供する構成によれば、プリンタSDK APIライブラリで提供される関数の変更、追加に際して、容易に提供してアップデートすることが可能となり、プログラム保守性の優れた、効率の良い印刷システムを提供することが可能となる。
〔第4実施形態〕
本実施形態では、上記第3実施形態において、外部ファイルとして提供するプリンタSDK APIライブラリについて、プリンタ104に存在しない場合、或いは更新する必要がある場合がある。
本実施形態では、上記第3実施形態において、外部ファイルとして提供するプリンタSDK APIライブラリについて、プリンタ104に存在しない場合、或いは更新する必要がある場合がある。
このような場合は、ホストコンピュータ100とプリンタ104が通信して、ホストコンピュータ100上のプリンタドライバプログラム102からプリンタSDK APIライブラリをプリンタ104にダウンロードして、プリンタ104に適用するように構成してもよい。
この構成により、プリンタSDK APIライブラリで提供される関数の変更、追加に際して、容易にプリンタ内のプリンタSDK APIライブラリの新規登録、更新することが可能となり、プログラム保守性の優れた、効率の良い印刷システムを提供することが可能となる。
また、反対に、プリンタSDK APIライブラリが、ホストコンピュータ100に存在しない場合、或いは更新する必要があるに、プリンタ104からプリンタSDK APIライブラリをホストコンピュータ100にダウンロードして、ホストコンピュータ100上のプリンタドライバプログラム102に適用するように構成してもよい。
以上の構成により、ホストコンピュータ100又はプリンタ104のいずれかのプリンタSDK APIライブラリが更新されていない等の場合でも、各装置内のプリンタSDK APIライブラリのバージョン等を合わせて、本発明の印刷システムの目的を達成することが可能となる。
〔第5実施形態〕
上記各実施形態では、プリンタ104において、事前にドキュメント印刷に係る各種印刷制御情報および各種属性設定情報を取得し、実際のドキュメントの出力形態、使用される用紙枚数、用紙メディア種等を事前に認識可能な構成について説明したが、本実施形態では、プリンタ104側で、上記認識した出力形態、使用される用紙枚数、用紙メディア種等の情報(印刷コストに関する情報)を、ホストコンピュータ104に通知する。さらに、ホストコンピュータ100側では、上記プリンタ104側から通知された出力形態、使用される用紙枚数、用紙メディア種等の情報を、モニタ表示し、ドキュメント印刷出力を続行するか、キャンセルするかの設定指示をさせるユーザインターフェース手段を備え、利用者に設定指示を可能とする機能を付加するように構成してもよい。
上記各実施形態では、プリンタ104において、事前にドキュメント印刷に係る各種印刷制御情報および各種属性設定情報を取得し、実際のドキュメントの出力形態、使用される用紙枚数、用紙メディア種等を事前に認識可能な構成について説明したが、本実施形態では、プリンタ104側で、上記認識した出力形態、使用される用紙枚数、用紙メディア種等の情報(印刷コストに関する情報)を、ホストコンピュータ104に通知する。さらに、ホストコンピュータ100側では、上記プリンタ104側から通知された出力形態、使用される用紙枚数、用紙メディア種等の情報を、モニタ表示し、ドキュメント印刷出力を続行するか、キャンセルするかの設定指示をさせるユーザインターフェース手段を備え、利用者に設定指示を可能とする機能を付加するように構成してもよい。
また、上記認識した出力形態、使用される用紙枚数、用紙メディア種等の情報を、プリンタ104側のオペレーションパネル420に表示し、ドキュメント印刷出力を続行するか、キャンセルするかの設定指示をさせるユーザインターフェース手段を備え、利用者に設定指示を可能とする機能を付加するように構成してもよい。
さらに、プリンタ104側で、上記認識した出力形態、使用される用紙枚数、用紙メディア種等から課金予定の情報を算出し、該算出した課金予定情報を、ホストコンピュータ104に通知し、ホストコンピュータ100側で、上記プリンタ104側から通知された課金予定情報を、モニタ表示し、ドキュメント印刷出力を続行するか、キャンセルするかの設定指示をさせるユーザインターフェース手段を備え、利用者に設定指示を可能とする機能を付加するように構成してもよい。
また、上記課金情報を、プリンタ104側のオペレーションパネル420に表示し、ドキュメント印刷出力を続行するか、キャンセルするかの設定指示をさせるユーザインターフェース手段を備え、利用者に設定指示を可能とする機能を付加するように構成してもよい。
以下、図13,図14のフローチャートを参照して、プリンタ104側で、上記認識した出力形態、使用される用紙枚数、用紙メディア種等から印刷コストに関する情報を算出し、該算出した印刷コストに関する情報を、ホストコンピュータ104に通知し、ホストコンピュータ100側で、上記プリンタ104側から通知された印刷コストに関する情報を、モニタ表示し、ドキュメント印刷出力を続行するか、キャンセルするかの設定指示をさせるユーザインターフェース手段を備え、利用者に設定指示を可能とする機能を付加するように構成について説明する。
<プリンタにおける印刷制御処理の説明(図13)>
本発明の第5実施形態では、図12に示したフローチャートに示した処理に代えて、図13に示すフローチャートに示す処理を実行するものとする。
本発明の第5実施形態では、図12に示したフローチャートに示した処理に代えて、図13に示すフローチャートに示す処理を実行するものとする。
図13は、本発明の印刷システムにおける第6の制御処理手順の一例を示すフローチャートである。なお、図12と同一のステップには同一のステップ番号を付してある。また、図13中のS1301に示すステップは、本実施形態に係るプリンタ104における印刷制御プログラム106(CPU314がRAM316上で実行する)における印刷制御処理に対応する。
ステップS1301において、印刷制御プログラム106は、ステップS1201で受理したジョブ全体に関連するジョブ制御情報、及び、ステップS1204で受理したページ/章単位に関するジョブ制御情報とに基づいて、印刷コストに関する情報(課金予定の情報,出力形態、使用される用紙枚数、用紙メディア種等の情報を含む)を算出する。
次に、ステップS1302において、印刷制御プログラム106は、ステップS1301で算出した印刷コストに関する情報(課金予定の情報,出力形態、使用される用紙枚数、用紙メディア種等の情報を含む)を、ホストコンピュータ100のプリンタドライバプログラム102に対して、プリンタSDK APIを介して通知する。
<第5実施形態のプリンタドライバプログラムにおける印刷ジョブ制御情報通知処理の説明(図14)>
本発明の第5実施形態では、図10に示したフローチャートに示した処理に代えて、図14に示すフローチャートに示す処理を実行するものとする。
本発明の第5実施形態では、図10に示したフローチャートに示した処理に代えて、図14に示すフローチャートに示す処理を実行するものとする。
図14は、本発明の印刷システムにおける第7の制御処理手順の一例を示すフローチャートである。なお、図10と同一のステップには同一のステップ番号を付してある。また、図13中のS1401〜S1403に示すステップは、本実施形態に係るホストコンピュータ100におけるプリンタドライバプログラム102(CPU304がRAM306上で実行する)での処理に対応する。
ステップS1007で、プリンタドライバプログラム102が、ステップS1006で受理したリターン値が正常リターンであると判定した場合には、ステップS1401に処理を進める。
ステップS1401において、プリンタドライバプログラム102は、プリンタ104側からプリンタSDK APIを介して、印刷コストに関する情報(課金予定の情報,出力形態、使用される用紙枚数、用紙メディア種等の情報を含む)を受理する。
次に、ステップS1302において、プリンタドライバプログラム102は、該受信した印刷コストに関する情報(課金予定の情報,出力形態、使用される用紙枚数、用紙メディア種等の情報を含む)を、モニタ(ディスプレイ302)に表示させ、ユーザに入力装置301を用いて、「ドキュメント印刷出力を続行する」か「ドキュメント印刷出力をキャンセル(中止)する」かの設定指示を入力させる。
ユーザからの設定指示が入力されると、ステップS1303において、プリンタドライバプログラム102は、該入力された設定指示を判定する。ステップS1303で、プリンタドライバプログラム102が、ユーザからの設定指示が「ドキュメント印刷出力を続行する」であると判定した場合には、ステップS1008に処理を移行させる。
一方、ステップS1303で、プリンタドライバプログラム102が、ユーザからの設定指示が「ドキュメント印刷出力をキャンセル(中止)する」であると判定した場合には、ここで処理を中止する(ステップS1009)。
以上の構成により、本実施形態によれば、例えば、ドキュメントの印刷出力を行う前に、最終的な印刷出力形態、使用される用紙枚数、用紙メディア種、印刷コスト等を、事前に利用者が認識可能となるため、ドキュメント印刷コストに係る課金管理、課金状況が把握可能となる。
また、プリンタ104側で、上記認識した出力形態、使用される用紙枚数、用紙メディア種等の情報及び現在プリンタ104での待ちジョブ等の情報から印刷終了予測時刻を算出し、該算出した印刷終了予測時刻を、ホストコンピュータ104に通知し、ホストコンピュータ100側で、上記プリンタ104側から通知された印刷終了予測時刻を、モニタ表示し、ドキュメント印刷出力を続行するか、キャンセルするかの設定指示をさせるユーザインターフェース手段を備え、利用者に設定指示を可能とする機能を付加するように構成してもよい。
また、上記印刷終了予測時刻を、プリンタ104側のオペレーションパネル420に表示し、ドキュメント印刷出力を続行するか、キャンセルするかの設定指示をさせるユーザインターフェース手段を備え、利用者に設定指示を可能とする機能を付加するように構成してもよい。
以上に示したように、印刷システムにおいて多様な応用ができるシステムを構築することができる。
なお、上述した各実施形態内で示したホストコンピュータ100側からプリンタ104への印刷処理のための各種属性情報及び制御情報の通知機能の有効/無効を、ホストコンピュータ100の操作画面上でユーザにより設定可能に構成してもよい。
即ち、上記通知機能が「有効」に設定されている場合は、ホストコンピュータ100は、上述したフローチャートに示したような通知処理を実行する。一方、上記通知機能が「無効」に設定されている場合は、ホストコンピュータ100は、上述したフローチャートに示したような通知処理を実行することなく、印刷ジョブをプリンタ104に送信するように構成する。
〔第6実施形態〕
上記各実施形態では、ホストコンピュータ100のプリンタドライバプログラム102からのジョブ開始通知に応じて、プリンタ104のプリンタ制御プログラムが106が、ジョブ制御情報要求を、プリンタドライバプログラム102に通知することにより、プリンタドライバプログラム102が、プリンタ制御プログラム106に対して、印刷ジョブの各種属性情報及び各種制御情報を通知する構成について説明した。
上記各実施形態では、ホストコンピュータ100のプリンタドライバプログラム102からのジョブ開始通知に応じて、プリンタ104のプリンタ制御プログラムが106が、ジョブ制御情報要求を、プリンタドライバプログラム102に通知することにより、プリンタドライバプログラム102が、プリンタ制御プログラム106に対して、印刷ジョブの各種属性情報及び各種制御情報を通知する構成について説明した。
本実施形態では、上記実施形態で示した印刷ジョブの各種属性情報及び各種制御情報の通知を、例えば、セキュアドプリント等のセキュリティで保護されるドキュメントの印刷や通常のプルプリントに適用する場合の構成について説明する。
本実施形態では、予め、ホストコンピュータ100のプリンタドライバプログラム102が印刷ジョブを生成してプリンタ104に送信するように構成する。この際、プリンタドライバプログラム102は、該印刷ジョブの各種属性情報,各種制御情報を該印刷ジョブのジョブ識別子に紐付けて外部記憶装置303内に記憶させておくように構成する。
一方、プリンタ104では、印刷制御プログラム104が、プリンタドライバプログラム102から送信された印刷ジョブを外部記憶装置313に蓄積しておくように構成する。そして、プリンタ104のオペレーションパネル420から上記蓄積されている印刷ジョブの印刷指示がなされると、該印刷指示で指定された印刷ジョブの各種属性情報及び制御情報を、該印刷ジョブのジョブ識別子を用いてプリンタドライバプログラム102に要求するように構成する。なお、この要求は、アプリケーションプログラム103又はプリンタドライバプログラム102と、印刷制御プログラム104とで各種情報の送受信を行なう共通のプログラミング可能なプログラミングインターフェース(API)を用いて行うものとする。
そして、プリンタドライバプログラム102は、この印刷制御プログラム104からのジョブ識別子を用いた要求に基づいて、該ジョブ識別子に紐付けられた各種属性情報,各種制御情報を印刷制御プログラム104に上記APIを用いて通知するように構成する。
一方、印刷制御プログラム104は、プリンタドライバプログラム102から送信された印刷ジョブの各種属性情報,各種制御情報を用いて、対応する印刷ジョブを実行するように構成する。
以上示したような構成により、例えば、セキュアドプリント等のセキュリティで保護されるドキュメントの印刷や通常のプルプリント(プリンタ内の記憶装置部にドキュメントデータを蓄積して後で印刷する)に関して、且つプリンタ内に該当ドキュメントの各種印刷制御情報および属性設定情報を保存できない場合であっても、プリンタのオペレーションパネル420から煩雑な印刷設定を行わなくても、予めホストコンピュータに記憶しておいて設定を用いて容易に印刷することができる。
また、本実施形態に、上記第5実施形態を適用する場合、印刷出力を実行する前に、最終的な印刷出力形態,使用される用紙枚数,用紙メディア種,印刷コスト等の認識結果に基づくドキュメント印刷コストに係る情報を、プリンタ104側のオペレーションパネル420に表示し、印刷出力を続行するか、キャンセルするかの設定指示をさせるユーザインターフェース手段をオペレーションパネル420上に備え、利用者に設定指示を可能とする機能を付加するように構成してもよい。
本実施形態によれば、例えば、印刷装置に蓄積されたドキュメントの印刷出力を行う場合(プルプリント)であっても、該印刷出力の前に、最終的な印刷出力形態、使用される用紙枚数、用紙メディア種、印刷コスト等を、事前に利用者が認識可能となるため、ドキュメント印刷コストに係る課金管理、課金状況が把握可能となる。
なお、上述したホストコンピュータ100側からプリンタ104側に通知されるジョブ制御情報,ページ制御情報の構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
また、上記各実施形態では、プリンタドライバプログラム102(又はアプリケーションプログラム103)とプリンタ制御プログラム106とがAPIを用いて通信して、プリンタドライバプログラム102(又はアプリケーションプログラム103)からプリンタ制御プログラムが106に、印刷ジョブの各種属性情報及び各種制御情報を通知する構成について説明した。しかしながら、上記プリンタドライバプログラム102(又はアプリケーションプログラム103)とプリンタ制御プログラムが106とのデータ送受信は、APIを用いるものでなくてもよい。即ち、プリンタドライバプログラム102(又はアプリケーションプログラム103)からプリンタ制御プログラムが106に、印刷ジョブの各種属性情報及び各種制御情報を通知可能な構成であれば、どのような構成であってもよい。例えば、プログラムライブラリあるいはモジュールから、直接信号,データ等を送受信するように構成してもよい。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
以上説明したように、本発明の各実施形態によれば、プリンタ、プリンタドライバプログラムおよびアプリケーションプログラム間において、相互に各種情報およびデータの送受信可能で、ホストコンピュータ側からドキュメント印刷に係る各種印刷制御情報および属性設定情報を、実際の印刷ジョブデータを送信する前に、プリンタ側に通知するアプリケーションプログラムインターフェースを用意することによって、プリンタ側で事前に印刷制御の最適化処理が行うことが可能となり、複雑な体裁、出力形態の属性設定がされているドキュメントの印刷においても、十分な印刷速度を確保でき、印刷エンジン速度(ppm)性能を最大限に発揮することが可能となる。
さらに、複雑な体裁、出力形態の属性設定がされているドキュメントの印刷において、実際に印刷出力を行う前に、最終的な印刷出力形態、使用される用紙枚数、用紙メディア種などが事前にわかるため、これらの情報やこれらの情報から算出される印刷コストに関する情報(印刷課金情報、出力枚数等)をプリンタのオペレーションパネル或いはホストコンピュータのモニタに表示させ、さらに、ドキュメント印刷出力を続行するか、キャンセルするかの設定指示をさせるユーザインターフェース手段を、プリンタのオペレーションパネル或いはホストコンピュータの入力装置に設け、利用者に設定指示を可能とする機能を付加することによって、ドキュメント印刷コストに係る課金管理、課金状況が把握できるなど、印刷システムにおいて、多様な応用ができるシステムを構築することが可能となる。
以下、図15に示すメモリマップを参照して本発明に係る印刷システムを構成する情報処理装置(ホストコンピュータ)及び印刷装置(プリンタ)で読み取り可能なデータ処理プログラムの構成について説明する。
図15は、本発明に係る印刷システムを構成する情報処理装置(ホストコンピュータ)及び印刷装置(プリンタ)で読み取り可能な各種データ処理プログラムを格納する記憶媒体(記録媒体)のメモリマップを説明する図である。
なお、特に図示しないが、記憶媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報,作成者等も記憶され、かつ、プログラム読み出し側のOS等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、各種プログラムをコンピュータにインストールするためのプログラムや、インストールするプログラムが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
本実施形態における図2,図4,図5,図6,図7,図8,図9,図10,図11,図12,図13に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、CD−ROMやフラッシュメモリやFD等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
以上のように、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
従って、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。
プログラムを供給するための記憶媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVDなどを用いることができる。
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは、圧縮され自動インストール機能を含むファイルをハードディスク等の記憶媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバやftpサーバ等も本発明の請求項に含まれるものである。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体からそのプログラムをパソコン通信など通信ラインを介して要求者にそのプログラムを配信する場合にも適用できることは言うまでもない。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのソフトウェアによって表されるプログラムを格納した記憶媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形(各実施形態の有機的な組み合わせを含む)が可能であり、それらを本発明の範囲から排除するものではない。上述した各実施形態およびその変形例を組み合わせた構成も全て、本発明に含まれるものである。
本発明の様々な例と実施形態を示して説明したが、当業者であれば、本発明の趣旨と範囲は、本明細書内の特定の説明に限定されるのではない。
以上示しようように、アプリケーションプログラムおよびプリンタドライバプログラム、プリンタの印刷制御プログラム間で、相互に各種情報およびデータの送受信が可能なアプリケーションプログラムインターフェース(API)を用意する。本API関数を使用して、プリンタは該当印刷ジョブデータを受信する前に(文書印刷前に)、該当印刷ジョブの各種印刷制御情報および属性設定情報(文書全体、文書中の章、グループ単位、あるいは各ページ毎の印刷のための各種制御情報および各種属性設定情報)をホストコンピュータから受け取り、これらの情報に基づいて、事前に印刷装置内の各制御を最適化し、印刷性能を向上させる最適化処理を行う。この最適化処理に基づいて、受信した印刷ジョブの印刷制御処理を行って、該当ドキュメントの印刷を行う構成により、複雑な出力形態に係る各種属性設定がなされているドキュメントの印刷において、印刷速度の向上を図り、プリンタエンジン速度性能を最大限に発揮できる印刷システムを提供することができる。さらに、上記のようなドキュメント印刷において、事前に最終的な出力形態、使用する用紙枚数、用紙メディア等が把握可能な印刷システムを提供することができる。
さらに、該当文書印刷前に、印刷用紙枚数などが把握可能になるため、該当文書印刷に係る予定課金状況をみて、事前に印刷続行/キャンセルを可能とする。
また、通常の文書印刷でも運用できるように、これらの機能を使う/使わない設定も可能とする。
100 ホストコンピュータシステム
101 オペレーティングシステム
102 プリンタドライバプログラム
103 アプリケーションプログラム
104 プリンタ
105 オペレーティングシステム
106 印刷制御プログラム
107 プリンタエンジン制御プログラム
101 オペレーティングシステム
102 プリンタドライバプログラム
103 アプリケーションプログラム
104 プリンタ
105 オペレーティングシステム
106 印刷制御プログラム
107 プリンタエンジン制御プログラム
Claims (19)
- 所定のアプリケーションプログラムにおけるドキュメントの印刷制御処理に基づいて該ドキュメントの印刷ジョブを生成して印刷装置に送信する情報処理装置と、前記情報処理装置から送信される印刷ジョブに基づいて印刷処理を行う印刷装置とを有する印刷システムにおいて、
前記情報処理装置は、前記ドキュメントの印刷ジョブを送信する前に、該印刷ジョブの属性設定情報,制御情報を前記印刷装置に通知する通知手段を有するものであり、
前記印刷装置は、
印刷ジョブを受信する前に前記情報処理装置から通知される前記印刷ジョブの属性設定情報,制御情報を取得する取得手段と、
前記取得手段により取得した前記印刷ジョブの属性設定情報,制御情報に基づいて、該印刷ジョブの前処理を実行する前処理実行手段とを有することを特徴とする印刷システム。 - 前記印刷ジョブの前処理は、ページ展開メモリの確保,画像レイアウト処理のための作業領域の確保,拡大縮小処理のための作業領域の確保,フィニッシング処理準備のいずれかの処理を含む最適化処理であることを特徴とする請求項1記載の印刷システム。
- 前記情報処理装置の通知手段は、アプリケーションプログラムにおいてドキュメントの印刷制御処理が開始されると、該ドキュメントの印刷ジョブの制御開始を通知するためのジョブ制御開始通知を前記印刷装置に送信し、該ジョブ制御開始通知に応じて前記印刷装置から送信される要求に応じて、該印刷ジョブの属性設定情報,制御情報を前記印刷装置に通知するものであり、
前記印刷装置の取得手段は、前記情報処理装置からジョブ制御開始通知を受け取ると、処理の状態に応じて、該印刷ジョブの属性設定情報,制御情報の要求を、前記情報処理装置に送信することを特徴とする請求項1又は2記載の印刷システム。 - 前記情報処理装置の通知手段は、前記ジョブ制御開始通知および前記印刷ジョブの属性設定情報,制御情報を、対応する印刷ジョブを送信する際に該印刷ジョブに付加して送信する識別子とともに通知するものであり、
前記印刷装置の取得手段および前記前処理実行手段は、前記情報処理装置から通知される前記ジョブ制御開始通知および前記印刷ジョブの属性設定情報,制御情報を、前記対応する印刷ジョブの識別子で識別することを特徴とする請求項1〜3のいずれかに記載の印刷システム。 - 前記印刷ジョブの属性設定情報,制御情報は、該印刷ジョブに対応するドキュメントの文書全体の印刷処理のための情報,文書中の章,グループ単位の印刷処理のための情報、或いは、各ページ毎の印刷処理のための情報であることを特徴とする請求項1〜4のいずれかに記載の印刷システム。
- 前記ドキュメントの文書全体の印刷処理のための情報,文書中の章,グループ単位の印刷処理のための情報、或いは、各ページ毎の印刷処理のための情報は、前記情報処理装置内でのドキュメントの印刷ジョブの制御処理中に決定される情報であることを特徴とする請求項5記載の印刷システム。
- 前記印刷装置は、印刷ジョブを実行する前に、前記取得手段により取得した前記印刷ジョブの属性設定情報,制御情報に基づいて、前記印刷ジョブの印刷出力枚数,課金に関する情報のいずれかを含むコスト情報を前記情報処理装置に通知するコスト情報通知手段を有し、
前記情報処理装置は、前記印刷装置から通知されるコスト情報に基づいて、対応する印刷ジョブの実行又は中止を操作者が指示可能な指示手段を有することを特徴とする請求項1〜6のいずれかに記載の印刷システム。 - 所定のアプリケーションプログラムにおけるドキュメントの印刷制御処理に基づいて該ドキュメントの印刷ジョブを生成して印刷装置に送信する情報処理装置と、前記情報処理装置から送信される印刷ジョブに基づいて印刷処理を行う印刷装置とを有する印刷システムにおいて、
前記印刷装置は、
印刷ジョブの開始が指示されると、該印刷ジョブの属性設定情報,制御情報を前記情報処理装置に要求して取得する取得手段と、
前記取得手段により取得した前記印刷ジョブの属性設定情報,制御情報に基づいて、該印刷ジョブを実行する実行手段とを有するものであり、
前記情報処理装置は、前記印刷装置から要求される印刷ジョブの属性設定情報,制御情報を前記印刷装置に通知する通知手段を有することを特徴とする印刷システム。 - 前記印刷装置は、印刷ジョブを実行する前に、前記取得手段により取得した前記印刷ジョブの属性設定情報,制御情報に基づいて、前記印刷ジョブの印刷出力枚数,課金に関する情報のいずれかを含むコスト情報を操作者に通知するコスト情報通知手段と、
前記通知手段により通知されるコスト情報に基づいて、対応する印刷ジョブの実行又は中止を操作者が指示可能な指示手段と、
を有することを特徴とする請求項8記載の印刷システム。 - 前記情報処理装置の通知手段および前記印刷装置の取得手段は、前記アプリケーションプログラム又は該情報処理装置上で動作するプリンタドライバプログラム、および、前記印刷装置上で動作する印刷制御プログラムに、共通のプログラミングインターフェースによりデータの送受信を行うことを特徴とする請求項1〜9のいずれかに記載の印刷システム。
- 前記印刷ジョブの属性設定情報,制御情報は、用紙サイズに関する情報,用紙メディア種に関する情報,印刷部数に関する情報,部単位印刷の部数に関する情報,ソートに関する情報,給紙方法に関する情報,排紙方法に関する情報,ステイプル印刷に関する情報,パンチ印刷に関する情報,トリミング印刷に関する情報,用紙折り印刷に関する情報,複数ページ割付印刷に関する情報,両面印刷に関する情報、製本印刷に関する情報,用紙サイズ混在印刷に関する情報,印刷面付け順序に関する情報のいずれかの情報を含むことを特徴とする請求項1〜10のいずれかに記載の印刷システム。
- 所定のアプリケーションプログラムにおけるドキュメントの印刷制御処理に基づいて該ドキュメントの印刷ジョブを生成して印刷装置に送信する情報処理装置において、
前記ドキュメントの印刷ジョブを送信する前に、該印刷ジョブの属性設定情報,制御情報を前記印刷装置に通知する通知手段を有することを特徴とする情報処理装置。 - 所定のアプリケーションプログラムにおけるドキュメントの印刷制御処理に基づいて該ドキュメントの印刷ジョブを生成して印刷装置に送信する情報処理装置において、
前記情報処理装置は、前記印刷装置から要求される印刷ジョブの属性設定情報,制御情報を前記印刷装置に通知する通知手段を有することを特徴とする情報処理装置。 - 所定のアプリケーションプログラムにおけるドキュメントの印刷制御処理に基づいて該ドキュメントの印刷ジョブを生成して印刷装置に送信する情報処理装置から送信される印刷ジョブに基づいて印刷処理を行う印刷装置において、
印刷ジョブを受信する前に前記情報処理装置から通知される該印刷ジョブの属性設定情報,制御情報を取得する取得手段と、
前記取得手段により取得した前記印刷ジョブの属性設定情報,制御情報に基づいて、該印刷ジョブの前処理を実行する前処理実行手段と、
を有することを特徴とする印刷装置。 - 所定のアプリケーションプログラムにおけるドキュメントの印刷制御処理に基づいて該ドキュメントの印刷ジョブを生成して印刷装置に送信する情報処理装置から送信される印刷ジョブに基づいて印刷処理を行う印刷装置において、
印刷ジョブの開始が指示されると、該印刷ジョブの属性設定情報,制御情報を前記情報処理装置に要求して取得する取得手段と、
前記取得手段により取得した前記印刷ジョブの属性設定情報,制御情報に基づいて、該印刷ジョブを実行する実行手段と、
を有することを特徴とする印刷装置。 - 所定のアプリケーションプログラムにおけるドキュメントの印刷制御処理に基づいて該ドキュメントの印刷ジョブを生成して印刷装置に送信する情報処理装置と、前記情報処理装置から送信される印刷ジョブに基づいて印刷処理を行う印刷装置とを有する印刷システムにおける印刷制御方法において、
前記情報処理装置が、前記ドキュメントの印刷ジョブを送信する前に、該印刷ジョブの属性設定情報,制御情報を前記印刷装置に通知する通知ステップと、
前記印刷装置が、印刷ジョブを受信する前に前記情報処理装置から通知される前記印刷ジョブの属性設定情報,制御情報を取得する取得ステップと、
前記印刷装置が、前記取得ステップで取得した前記印刷ジョブの属性設定情報,制御情報に基づいて、該印刷ジョブの前処理を実行する前処理実行ステップと、
を有することを特徴とする印刷制御方法。 - 所定のアプリケーションプログラムにおけるドキュメントの印刷制御処理に基づいて該ドキュメントの印刷ジョブを生成して印刷装置に送信する情報処理装置と、前記情報処理装置から送信される印刷ジョブに基づいて印刷処理を行う印刷装置とを有する印刷システムにおける印刷制御方法において、
印刷ジョブの開始が指示されると、前記印刷装置が、該印刷ジョブの属性設定情報,制御情報を前記情報処理装置に要求する要求ステップと、
前記情報処理装置が、前記印刷装置から要求される印刷ジョブの属性設定情報,制御情報を前記印刷装置に通知する通知ステップと、
前記印刷装置が、前記情報処理装置から通知される印刷ジョブの属性設定情報,制御情報を取得する取得ステップと、
前記印刷装置が、前記取得ステップにより取得した前記印刷ジョブの属性設定情報,制御情報に基づいて、該印刷ジョブを実行する実行ステップと、
を有することを特徴とする印刷制御方法。 - 請求項16又は17に記載された印刷制御方法を、コンピュータに実行させるためのプログラム。
- 請求項16又は17に記載された印刷制御方法を、コンピュータに実行させるためのプログラムをコンピュータが読み取り可能に記憶した記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005172461A JP2006350443A (ja) | 2005-06-13 | 2005-06-13 | 印刷システムおよび印刷制御方法およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005172461A JP2006350443A (ja) | 2005-06-13 | 2005-06-13 | 印刷システムおよび印刷制御方法およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006350443A true JP2006350443A (ja) | 2006-12-28 |
Family
ID=37646251
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005172461A Withdrawn JP2006350443A (ja) | 2005-06-13 | 2005-06-13 | 印刷システムおよび印刷制御方法およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006350443A (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010157191A (ja) * | 2009-01-05 | 2010-07-15 | Fuji Xerox Co Ltd | 処理装置、画像形成装置、画像形成システム、処理プログラム |
KR101212092B1 (ko) | 2007-11-21 | 2012-12-13 | 삼성전자주식회사 | 화상형성장치 및 인쇄데이터 처리방법 |
US8615756B2 (en) | 2009-02-05 | 2013-12-24 | Ricoh Company, Ltd. | Server device and computer-readable recording medium for generating a driver package |
JP2017134721A (ja) * | 2016-01-29 | 2017-08-03 | ブラザー工業株式会社 | ドライバプログラム及びプリンタ |
JP2017173936A (ja) * | 2016-03-18 | 2017-09-28 | 株式会社リコー | 印刷制御システム、装置、方法及びプログラム |
JP2020149387A (ja) * | 2019-03-13 | 2020-09-17 | ブラザー工業株式会社 | プログラム、記憶用のプログラムおよび情報処理装置 |
JP2020149384A (ja) * | 2019-03-13 | 2020-09-17 | ブラザー工業株式会社 | プログラム、記憶用のプログラムおよび情報処理装置 |
-
2005
- 2005-06-13 JP JP2005172461A patent/JP2006350443A/ja not_active Withdrawn
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101212092B1 (ko) | 2007-11-21 | 2012-12-13 | 삼성전자주식회사 | 화상형성장치 및 인쇄데이터 처리방법 |
US8625115B2 (en) | 2007-11-21 | 2014-01-07 | Samsung Electronics Co., Ltd. | Image forming apparatus and print data processing method to print at an enhanced speed |
JP2010157191A (ja) * | 2009-01-05 | 2010-07-15 | Fuji Xerox Co Ltd | 処理装置、画像形成装置、画像形成システム、処理プログラム |
US8615756B2 (en) | 2009-02-05 | 2013-12-24 | Ricoh Company, Ltd. | Server device and computer-readable recording medium for generating a driver package |
JP2017134721A (ja) * | 2016-01-29 | 2017-08-03 | ブラザー工業株式会社 | ドライバプログラム及びプリンタ |
JP2017173936A (ja) * | 2016-03-18 | 2017-09-28 | 株式会社リコー | 印刷制御システム、装置、方法及びプログラム |
JP2020149387A (ja) * | 2019-03-13 | 2020-09-17 | ブラザー工業株式会社 | プログラム、記憶用のプログラムおよび情報処理装置 |
JP2020149384A (ja) * | 2019-03-13 | 2020-09-17 | ブラザー工業株式会社 | プログラム、記憶用のプログラムおよび情報処理装置 |
JP7218628B2 (ja) | 2019-03-13 | 2023-02-07 | ブラザー工業株式会社 | プログラム、記憶用のプログラムおよび情報処理装置 |
JP7268413B2 (ja) | 2019-03-13 | 2023-05-08 | ブラザー工業株式会社 | プログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6965958B1 (en) | Searching for printers over a network using intermediate print data | |
US6888641B2 (en) | Designating an image processing apparatus based on limited selection conditions | |
JP4785577B2 (ja) | 情報処理装置及びその制御方法、プログラム | |
KR101396028B1 (ko) | 정보 처리 장치, 정보 처리 장치의 제어 방법 및 저장매체 | |
JP2001312382A (ja) | 情報処理装置、情報処理方法、情報処理プログラムが格納された記録媒体及び情報処理プログラム | |
JP2004102618A (ja) | 印刷制御装置及び方法、コンピュータプログラム、コンピュータ読み取り可能な記憶媒体、プレビュー装置及び方法、プリンタドライバ及びそのプレビュー方法 | |
JP5235695B2 (ja) | 印刷制御装置とその制御方法 | |
JP3634785B2 (ja) | 情報処理装置及び方法 | |
JP2006350443A (ja) | 印刷システムおよび印刷制御方法およびプログラム | |
US7643160B2 (en) | Spool file modifying device | |
JP3962606B2 (ja) | 印刷命令生成装置及び方法、印刷装置及びその制御方法、情報処理装置及び印刷システム | |
JP2005258924A (ja) | 情報処理装置及びその制御方法、及び画像形成システム | |
JP6786408B2 (ja) | 画像形成装置、画像形成装置の制御方法、及びプログラム | |
JP2006146814A (ja) | 情報漏洩抑止方法及びそれを実現する情報処理装置とドライバプログラム | |
JP3743184B2 (ja) | プリントシステム、プリンタおよびプリントサーバ | |
JP2018206311A (ja) | 印刷システム、サーバ及びその制御方法とプログラム | |
JP2007188308A (ja) | 印刷システム及び、記憶媒体 | |
JP2005161819A (ja) | 印刷装置および印刷制御方法 | |
JP4542719B2 (ja) | プリンタおよびこのプリンタを用いた印刷方法 | |
JP2007004332A (ja) | 情報処理装置および印刷制御方法およびプログラム | |
JP2003271331A (ja) | 印刷制御方法及び印刷処理システムと情報処理装置 | |
JP2008046821A (ja) | 画像形成システム、情報処理装置、印刷制御方法及び印刷制御プログラム | |
JP2005092744A (ja) | 印刷制御装置、画像形成システム、コンピュータプログラム及び記録媒体 | |
JP2006178767A (ja) | 印刷予約システム及びその制御方法 | |
JP4110021B2 (ja) | 部門管理を伴う印刷処理を行う印刷処理プログラム及び情報処理装置及び情報処理方法並びに記憶媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20080108 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20080219 |
|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20080902 |