JP2006039941A - プログラム、情報処理装置、プレビュー方法 - Google Patents

プログラム、情報処理装置、プレビュー方法 Download PDF

Info

Publication number
JP2006039941A
JP2006039941A JP2004218823A JP2004218823A JP2006039941A JP 2006039941 A JP2006039941 A JP 2006039941A JP 2004218823 A JP2004218823 A JP 2004218823A JP 2004218823 A JP2004218823 A JP 2004218823A JP 2006039941 A JP2006039941 A JP 2006039941A
Authority
JP
Japan
Prior art keywords
print
preview
processing
data
job
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
JP2004218823A
Other languages
English (en)
Inventor
Hideo Natori
英夫 名取
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 JP2004218823A priority Critical patent/JP2006039941A/ja
Priority to US11/186,893 priority patent/US7839520B2/en
Publication of JP2006039941A publication Critical patent/JP2006039941A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1211Improving printing performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1208Improving or facilitating administration, e.g. print management resulting in improved quality of the output result, e.g. print layout, colours, workflows, print preview
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1253Configuration of print job parameters, e.g. using UI at the client
    • G06F3/1256User feedback, e.g. print preview, test print, proofing, pre-flight checks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server

Abstract

【課題】 印刷状態にある印刷ジョブにおいてプレビュー機能を実行している際、他のジョブは少なくともプレビュー機能を実行しているジョブの処理が終了するまで、印刷されることはない。
【解決手段】 アプリケーションから供給される印刷データから変換された中間データをスプールするオペレーティングシステム標準のスプーラを利用する情報処理装置であって、印刷スレッド処理とプレビュースレッド処理とを行うプリントプロセッサと、前記スプールされた中間データに基づき作成されたビットマップに基づきプレビューを実行するプレビューアとを有し、前記プリントプロセッサのプレビュースレッド処理は、印刷処理の開始に応じて起動され、前記プレビューアを起動し、前記プリントプロセッサの印刷スレッド処理は、プレビューが終了したジョブまたはプレビュー設定されていないジョブがある場合、起動されることを特徴とする。
【選択図】 図6

Description

本発明は、例えば印刷処理を行う前に、印刷イメージをユーザが認識可能に表示する、所謂プレビュー機能等を有するプログラム、情報処理装置、プレビュー方法に関する。
従来より、印刷前に印刷イメージを取得して画面に表示する技術が提案されている。
このような技術の一例として、プリンタ(以下、「印刷装置」と称する場合がある)に送られる印刷コマンドをプリンタに接続された計算機(情報処理装置)によって解析し、その計算機でCMYKプレーン毎に展開することによって印刷イメージを生成する手法や、プリンタに印刷を行わせるホスト計算機から当該プリンタに印刷コマンドを送信した後、そのホスト計算機では、当該プリンタ内部で作成された印刷イメージを受信すると共に、受信した印刷イメージに基づいて表示を行なう手法が一般に知られている。
ここで、オペレーティングシステム(OS)としてMicrosoft Windows(登録商標)を搭載した計算機を用いた印刷システムにおいて、アプリケーションプログラム等で生成された印刷データは、そのOS標準のスプールファイルに格納されるため、そのスプールファイル内に格納された印刷データに自在にアクセスすることはできない。このため、係る印刷システムにおいては、印刷データが実際に印刷処理はじめた時に、印刷イメージを表示するプレビューアが実行され、その印刷データが実際に印刷される際に印刷イメージを作成する当該プリンタドライバと、印刷イメージを表示する当該プレビューアとが協調することにより、プレビュー機能が実現される。(例えば、特許文献1参照)
特開2003−167721号公報
しかしながら、上記のような従来の技術には次のような解決すべき課題がある。
インクジェットプリンタにおいては、小型化、低コスト化を目的としているため、印刷装置が受信した印刷コマンドから印刷イメージを生成し上位装置であるホスト計算機に送信する機能を実現することは困難である。またインクジェットプリンタにおいては印刷解像度が高くなるため、印刷装置で生成した印刷イメージのサイズが非常に大きくなり、ホスト計算機に送信することは非現実的である。
また、オペレーティングシステム(OS)としてMicrosoft Windows(登録商標)を搭載した計算機を用いた印刷システムにおいては、次のようにプレビュー機能を提供していた。まずOSの印刷機能によりプリンタ毎にスプールファイルに格納される印刷の単位(以下、「印刷ジョブ」と称する)が管理されるキューが用意され、複数の印刷ジョブが格納される。キューに格納された印刷ジョブの中で印刷状態になるのは通常1個だけであり、最も優先順位の高い印刷ジョブが印刷状態となる。印刷状態になった印刷ジョブの印刷処理を行うために、OSの印刷機能はプリンタドライバを呼び出すことにより、印刷イメージを生成し、印刷イメージからプリンタが解釈できる印刷コマンドを生成し、印刷コマンドをプリンタに供給することで印刷を実行する。この印刷システムを利用してプレビュー機能を実現するためには、印刷状態である印刷ジョブにおいてプレビュー表示する指示が設定されている時であり、プリンタドライバはプレビュー表示を行うアプリケーションを起動し、プリンタドライバがプレビュー表示用に生成したイメージデータを画面に表示することでプレビュー機能を実現していた。
ここで、同OSを用いてプレビュー機能を実行している間は、他の印刷ジョブは印刷状態にならない。このためキュー中に印刷中の印刷ジョブがある場合、他の印刷ジョブのプレビュー機能を実行できないため、ユーザーは少なくとも印刷中のジョブと発行した印刷ジョブより優先順位の高い印刷ジョブが処理されるまで、印刷イメージを見ることができない。
また、同OSを用いた場合、印刷状態にある印刷ジョブにおいてプレビュー機能を実行している際、他のジョブは少なくともプレビュー機能を実行しているジョブの処理が終了するまで、印刷されることはない。
また、同OSを用いた場合、複数のユーザーが同時に印刷ジョブを発行することができるため、あるユーザーがプレビュー機能を使用中は他のユーザーはプレビュー機能を利用できない欠点がある。また同様にあるユーザーがプレビュー機能を使用中は他のユーザーは印刷ジョブを発行しても実際に印刷されない欠点がある。
本発明は上記従来の問題を鑑みてなされたもので、OSの印刷ジョブの処理方法とプリンタドライバにプレビュー機能の追加を行うことで、従来のプリンタドライバとの親和性を保ち、簡易な構成を有しつつ、効率良く高品質の印刷イメージをプレビュー表示可能な印刷制御装置及び方法、コンピュータプログラム、コンピュータ読み取り可能な記憶媒体、プレビュー装置及び方法、印刷ジョブの処理方法、プリンタドライバ及びそのプレビュー方法の提供を目的とする。
上記の目的を達成するため、本発明のコンピュータ読み取り可能なプログラムは、アプリケーションから供給される印刷データから変換された中間データをスプールするオペレーティングシステム標準のスプーラを利用するコンピュータ読み取り可能なプログラムであって、
印刷スレッド処理とプレビュースレッド処理とを行う処理モジュールと、
前記スプールされた中間データに基づき作成されたビットマップに基づきプレビューを実行するプレビューモジュールとを有し、
前記処理モジュールのプレビュースレッド処理は、印刷処理の開始に応じて起動され、前記プレビューモジュールを起動し、
前記処理モジュールの印刷スレッド処理は、プレビューが終了したジョブまたはプレビュー設定されていないジョブがある場合、起動されることを特徴とする。
また、本発明のコンピュータ読み取り可能なプログラムは、
アプリケーションから供給される印刷データから変換された中間データをスプールするオペレーティングシステム標準のスプーラを利用するコンピュータ読み取り可能なプログラムであって、
印刷スレッド処理とプレビュースレッド処理とを行う処理モジュールと、
前記スプールされた中間データに基づきビットマップを作成する作成モジュールと、
前記作成モジュールに作成されたビットマップに基づきプレビューを実行するプレビューモジュールとを有し、
前記処理モジュールのプレビュースレッド処理は、印刷処理の開始に応じて起動され、前記プレビューモジュールを起動し、前記作成モジュールにプレビュー開始を通知し、
前記処理モジュールの印刷スレッド処理は、プレビューが終了したジョブまたはプレビュー設定されていないジョブがある場合、起動されることを特徴とする。
また、本発明のコンピュータ読み取り可能なプログラムは、
システムのスプーラを利用するコンピュータ読み取り可能なプログラムであって、
アプリケーションプログラムによって発行される印刷ジョブの印刷設定を行うためのユーザインタフェースドライバと、
前記アプリケーションプログラムが発行した印刷ジョブの各ページの印刷データをページ単位でページ記述言語の状態で配置するプリントプロセッサと、
前記プリントプロセッサによる起動に応じて動作を開始するプレビューアと、
イメージデータを生成しプリンタが解釈できる印刷コマンドに変換するプリンタグラフィックドライバと、
前記印刷コマンドをプリンタに供給するランゲージモニタとを備え、
前記スプーラは、前記アプリケーションプログラムによって印刷文書データの作成が開始される際、前記プリントプロセッサをプレビューの為の印刷イメージを生成するために動作させ、
前記プリントプロセッサは、前記スプーラにより動作を開始し、印刷文書データに伴って設定されたドライバプロパティに従って前記プレビューアを起動すると共に、前記文書の印刷データの各ページを処理して印刷ページデータを作成して、前記プリンタグラフィックドライバに供給し、
前記プリンタグラフィックドライバは、供給された前記印刷ページデータに基づいて生成したイメージデータを印刷イメージファイルに格納し、
前記プレビューアは、前記印刷イメージファイルに格納されたイメージデータを画面に表示することでプレビュー表示を行ない、
前記スプーラは前記プレビュー表示終了後に、前記プリントプロセッサを印刷の為の印刷イメージを生成するために動作させ、
前記プリントプロセッサは、前記スプーラにより動作を開始し、印刷文書データに伴って設定されたドライバプロパティに従って前記文書の印刷データの各ページを処理して印刷ページデータを作成して、前記プリンタグラフィックドライバに供給し、
前記プリンタグラフィックドライバは、供給された前記印刷ページデータに基づいて生成したイメージデータをプリンタが解釈できる印刷コマンドに変換することを特徴とする。
また、本発明の情報処理装置は、
印刷処理の開始に応じてプレビュー用のサブスレッドを作成しプリントプロセッサを呼び出すスプーラと、
プレビュー設定されていれば、プレビューアを起動し、印刷開始要求後にプレビュースレッドを終了し、プレビュー設定されてなければ、プレビュースレッドを終了するプリントプロセッサとを有し、
前記スプーラは、プレビュースレッドの終了イベントに応じてジョブのプレビュー状態を処理済にし、
前記スプーラは、プレビュー状態が処理済のジョブがある場合、印刷用サブスレッドを作成しプリントプロセッサを呼び出し、
前記プリントプロセッサはプレビュー状態が処理済のジョブの印刷処理を実行することを特徴とする。
また、本発明の情報処理装置は、
アプリケーションから供給される印刷データから変換された中間データをスプールするオペレーティングシステム標準のスプーラを利用する情報処理装置であって、
印刷スレッド処理とプレビュースレッド処理とを行う処理手段と、
前記スプールされた中間データに基づき作成されたビットマップに基づきプレビューを実行するプレビュー手段とを有し、
前記処理手段のプレビュースレッド処理は、印刷処理の開始に応じて起動され、前記プレビューアを起動し、
前記処理手段の印刷スレッド処理は、プレビューが終了したジョブまたはプレビュー設定されていないジョブがある場合、起動されることを特徴とする。
また、本発明の情報処理装置は、
アプリケーションから供給される印刷データから変換された中間データをスプールするオペレーティングシステム標準のスプーラを利用する情報処理装置であって、
印刷スレッド処理とプレビュースレッド処理とを行う処理手段と、
前記スプールされた中間データに基づきビットマップを作成する作成手段と、
前記作成手段に作成されたビットマップに基づきプレビューを実行するプレビュー手段とを有し、
前記処理手段のプレビュースレッド処理は、印刷処理の開始に応じて起動され、前記プレビューアを起動し、前記作成手段にプレビュー開始を通知し、
前記処理手段の印刷スレッド処理は、プレビューが終了したジョブまたはプレビュー設定されていないジョブがある場合、起動されることを特徴とする。
また、本発明の情報処理装置は、
文書データの印刷指示に応じて、その文書データの出力用の中間データを一時保存する手段を備える情報処理装置であって、
前記一時保存される中間データからイメージデータ生成させるためのタイミングを制御するイメージデータ生成調整手段と、
前記一時保存されている中間データに基づいて、イメージデータを生成するイメージデータ生成手段と、
前記文書データの印刷イメージの表示が前記印刷指示において指定されている場合に、その印刷指示に応じてイメージ生成要求を発行すると共に、入手したプレビュー表示のための情報に基づいて、前記文書データの印刷イメージを表わすプレビュー画面を表示するプレビュー手段と、
前記イメージ生成要求が発行されるのに応じて、前記イメージデータを生成するように前記イメージ生成手段を制御すると共に、生成されたイメージデータに基づく前記プレビュー表示のための情報を前記プレビュー手段に通知することにより、前記印刷イメージを表わすプレビュー表示が行われるように前記プレビュー手段を制御する処理制御手段とを備え、
前記文書データの出力用の中間データの保存の開始時に、前記イメージデータ生成調整手段は前記文書データの出力用の中間データからプレビュー表示用イメージデータを前記処理制御手段に生成させ、
前記処理制御手段の処理後に、前記イメージデータ生成調整手段は前記文書データの出力用の中間データから印刷用イメージデータを前記処理制御手段に生成させ印刷処理を行うこと特徴とする。
また、本発明のプレビュー方法は、
印刷処理の開始に応じてプレビュー用のサブスレッドを作成しプリントプロセッサを呼び出すスプーラと、プレビュー設定されていれば、プレビューアを起動し、印刷開始要求後にプレビュースレッドを終了し、プレビュー設定されてなければ、プレビュースレッドを終了するプリントプロセッサとを利用するプレビュー方法であって、
前記スプーラは、プレビュースレッドの終了イベントに応じてジョブのプレビュー状態を処理済にし、
前記スプーラは、プレビュー状態が処理済のジョブがある場合、印刷用サブスレッドを作成しプリントプロセッサを呼び出し、
前記プリントプロセッサはプレビュー状態が処理済のジョブの印刷処理を実行することを特徴とする。
また、本発明のプレビュー方法は、
アプリケーションから供給される印刷データから変換された中間データをスプールするオペレーティングシステム標準のスプーラと、印刷スレッド処理とプレビュースレッド処理とを行う処理手段と、前記スプールされた中間データに基づき作成されたビットマップに基づきプレビューを実行するプレビュー手段とを利用するプレビュー方法であって、
前記処理手段のプレビュースレッド処理は、印刷処理の開始に応じて起動され、前記プレビューアを起動し、
前記処理手段の印刷スレッド処理は、プレビューが終了したジョブまたはプレビュー設定されていないジョブがある場合、起動されることを特徴とする。
また、本発明のプレビュー方法は、
アプリケーションから供給される印刷データから変換された中間データをスプールするオペレーティングシステム標準のスプーラと、印刷スレッド処理とプレビュースレッド処理とを行う処理手段と、前記スプールされた中間データに基づきビットマップを作成する作成手段と、前記作成手段に作成されたビットマップに基づきプレビューを実行するプレビュー手段とを利用するプレビュー方法であって、
前記処理手段のプレビュースレッド処理は、印刷処理の開始に応じて起動され、前記プレビューアを起動し、前記作成手段にプレビュー開始を通知し、
前記処理手段の印刷スレッド処理は、プレビューが終了したジョブまたはプレビュー設定されていないジョブがある場合、起動されることを特徴とする。
以上説明した本発明によれば、OSのスプーラの変更により、印刷ジョブのプレビュー機能の枠組みが提供され、プリンタドライバを変更することにより、複数の印刷ジョブを同時にプレビュー表示でき、かつプレビュー処理中の印刷ジョブをスキップして他の印刷ジョブの印刷処理を行える、快適なプレビュー機能をユーザに提供することが可能となる。
以下、本発明に係る印刷システムの実施形態を、図面を参照して詳細に説明する。
尚、以下の説明において、「文書」には、テキストの他に図や表あるいはビットマップ画像などのグラフィカルな内容を含むものや、グラフィカルな内容のみからなるものも含むものとする。
図1は、本発明の実施形態に係る印刷システムにて印刷及び印刷プレビューが実行される際のデータフローを示すブロック図である。
同図に示すように、本実施形態に係る印刷システムは、印刷制御装置としてのホスト計算機(コンピュータ)100とプリンタ120とによって構成されており、コンピュータ100では、オペレーティングシステム(OS)の一例として、マイクロソフト社製のWindows(登録商標)が動作する。
このコンピュータ100内部では、実行されるモジュール(機能単位)として、
・印刷イメージをディスプレイ130に表示するプレビューア114、
・ユーザによる印刷設定操作を実現するユーザインタフェースドライバ110、
・プレビューア114を起動する機能を有し、且つ印刷ページ処理を行なうプリントプロセッサ111、
・印刷ジョブの印刷処理とプレビュー処理を管理するスプーラ104、
・プリンタ120により印刷されるべき印刷イメージの生成処理しプリンタが解釈可能な印刷コマンドへの変換を行なうプリンタグラフィックドライバ112、
・プリンタグラフィックドライバ112により生成された印刷コマンドをプリンタに供給するランゲージモニタ113
を備える。
上記のプリンタグラフィックドライバ112は、生成した印刷データを、ランゲージモニタ113を介して、プリンタ120に送信するだけでなく、指定されたファイル名でファイルとして保存する機能をも有している。
また、上記のプリンタグラフィックドライバ112は、生成する印刷データを、ビットマップデータ形式で生成することも、プリンタ7が処理可能な言語で生成することも可能である。プレビュー表示を行うに際して印刷イメージファイルであるプレビューファイル115、116、117が一時的に作成される。
尚、図1に示すデータフローが実現される印刷システムのハードウェア構成例については、図2、図17を参照して後述する。
図1に示す印刷システムは、パーソナルコンピュータ等の上位装置100でアプリケーション(アプリケーションプログラム)101にて作成された文書の印刷用データを、GDI102を介してEMFスプールファイル103に中間的な印刷データ(出力用の中間データ)として一時保持する。スプーラ104は一時保持された中間データをプレビュー用のビットマップデータ、或いは印刷用の印刷コマンドへ変換するためにプリントプロセッサ111を呼び出す機能を有している。そして、この変換されたビットマップデータは、ホスト計算機100からプリンタ120に供給され、プリンタ120において記録用紙等に印刷された文書121として出力されるよう構成されている。
本実施形態において、ユーザインタフェースドライバ110、プリントプロセッサ111、プリンタグラフィックドライバ112、ランゲージモニタ113、プレビューア114は、オペレーティングシステム供給者とは異なる他者(本実施形態ではプリンタメーカ)が供給するプリンタドライバプログラムにより提供されるものである。尚、以下の説明では、ユーザインターフェースドライバ110、プレビューア114、プリントプロセッサ111、プリンタグラフィックドライバ112、ランゲージモニタ113を含むプログラム群を、「プリンタドライバプログラム」と総称する場合がある。
GDI(グラフィックデバイスインタフェース)102は、オペレーティングシステムであるWindows(登録商標)のグラフィクスエンジンとして提供される。即ち、GDI102は、Windows(登録商標)において画面表示や印刷等のグラフィックス処理を行うプログラムモジュールであり、アプリケーション101からの描画コマンドを受け、その描画コマンドは、GDI102において、上記のプリンタドライバプログラム等のデバイスドライバが解釈できるデータ形式に変換してから、そのデバイスドライバに対して、送信される。
またEMFとは、Enhanced Meta Fileの略で、OSであるWindows(登録商標)における描画データの論理的な格納形式であり、図1に示すEMFスプールファイル103には、文書の印刷データがEMF形式で格納される。
またスプーラ104は作成されたEMFスプールファイル103の印刷処理を実行するためにプリンタドイバを呼び出す、オペレーティングシステムであるWindows(登録商標)におけるプロセスであり、本実施形態の印刷システムではディスプレイ130への当該文書のプレビュー表示131のために、OS標準のスプーラに機能拡張を行っている。
ユーザインタフェースドライバ110は、印刷に使用する記録用紙の用紙サイズや印刷方向、その他の属性を設定する一般的な設定機能を提供するのに加えて、更に本実施形態に係るユーザインタフェースドライバ110は、印刷実行時に印刷処理の前に、文書の印刷イメージを表わすプレビュー表示(131)を、図1に例示する如く表示装置130に表示するか否かを決めるプレビュー設定機能を、ユーザに提供する印刷設定処理部を有する。以下、本実施形態では、ユーザインタフェースドライバ110を介して設定された値を「印刷設定」と呼ぶ。
本実施形態において、ユーザは、後述するユーザインタフェースドライバ110によって表示装置130に表示されるユーザインターフェース画面を通して当該印刷設定処理部の提供する機能を用いることで、プレビュー表示の有無を含む印刷設定を設定することができる。例えば、プレビュー設定は「プレビュー表示する」又は「プレビュー表示しない」のいずれかを示すフラグとして実現される。以下の説明では、プレビュー設定において「プレビュー表示する」と設定されている状態を単に「プレビュー設定されている」と呼ぶことにする。
また、係る印刷設定は、EMFスプールファイル103の一部として磁気ディスク等のファイル装置に格納され、ユーザインターフェースドライバ110やプリントプロセッサ111等により参照される。
<ユーザインタフェースドライバによる印刷設定ダイアログの一例>
図3は本発明の実施形態のユーザインタフェースドライバによる印刷設定ダイアログの一例を示す図である。
図3において、印刷設定ダイアログ301は、表示エリア302〜331で構成される。印刷設定では表示する設定項目が非常に多いため、タブシートを使用して設定項目を内容ごとに分けて見やすい構成にするのが通例である。本実施形態でも、複数のタブシートを使用している。
基本設定タブ302では、印刷の基本に関する内容を表示する。このタブにおける詳細については後述する。
ページ設定タブ303は、印刷用紙の用紙サイズ、印刷方向(印刷向き)、印刷レイアウト(N−up)等の各種ページ設定に関する内容を表示する。尚、N−upとは、1枚の紙にNページ分(Nページ以上(N−up))の文書をレイアウトして印刷することを意味する。スタンプ/背景タブ304は、印刷文書に対して文字を重ねるスタンプ機能や、画像を重ねる背景機能等の、印刷時に付加するパターンの選択画面を表示する。特殊効果タブ305は、各種画像補整やセピア調等の特殊効果を画像に与える場合に使用する機能の選択画面を表示する。お気に入りタブ306は、頻繁に使用する印刷設定等の保存と呼出機能の選択画面を表示する。ユーティリティタブ307は、ヘッドの調整やクリーニング等の機能の選択画面を表示する。
図3は、基本設定タブ302が選択された場合の表示例を示している。
基本設定タブ302の簡易表示エリア320には、文字情報だけでなく視覚に訴える形で設定された画像情報を表示する。プリントアドバイザ321が選択されると、ユーザにより印刷設定を適切に入力させるために、印刷目的から最適な印刷設定を段階的に導く機能を持つサブダイアログを表示する。
用紙種別選択部322は、用紙の種類を表示するとともにユーザにより選択させることができる。用紙種別選択部322は、ドロップダウンメニューとなっており、普段は選択されている用紙の種類が表示され、そこをクリックすることで選択可能な用紙種別がリスト表示される。選択可能な用紙の種類は、プリンタ120で印刷可能な用紙であり、図示されている普通紙の他にも、例えば、光沢紙やコート紙、写真専用紙、ハガキ等が含まれる。
給紙方法選択部323は、プリンタ120本体が印刷用紙を給紙する給紙方法を表示し、ユーザによる給紙方法の選択をさせることができる。ユーザは、給紙方法選択部323により、例えば、自動給紙口である給紙トレイ(オートシートフィーダ)や給紙カセットが選択できる。
印刷品質選択部324は、ユーザに印刷の品位を設定させるための設定項目であり、ラジオボタンで構成される。ここでは、設定項目として、きれい、標準、速い、カスタムがある。色調整部325は、ユーザに印刷の色を調整させるための設定項目であり、ラジオボタンで構成される。ここでは、設定項目として、自動、マニュアル調整がある。グレースケール設定部326は、印刷文書がカラーであっても印刷結果をグレースケールにするためのチェックボックスである。プレビュー設定部327は、印刷前に印刷イメージをプレビューするためのチェックボックスである。
バージョン情報ボタン330は、本印刷設定ダイアログ301を表示するドライバのバージョンを示すサブダイアログを表示させるためのボタンである。標準設定部331が押されると、基本設定タブ302の各種設定が標準(出荷時設定)に戻される。
ユーザは、各設定項目を適宜選択した後に、OKボタン308を押下することで印刷設定ダイアログ301を閉じ、選択した印刷設定を印刷に反映させることができる。一方、キャンセルボタン309を押下すると、印刷設定ダイアログ301が閉じ、選択した設定項目の内容は破棄され印刷に反映されることはない。適用ボタン310は、印刷設定ダイアログ301は開いたままで選択した印刷設定を印刷に反映させることができる。ヘルプボタン311は、基本設定タブ302の各設定項目に関する説明文を別ウィンドウで表示させることができる。
<プレビューアによるプレビューウィンドウの一例>
図4は本実施の形態におけるプレビューアによって提供される表示画面(プレビューウィンドウ)を例示する図である。401は印刷プレビューウィンドウであり、プレビュー画像や印刷ジョブの印刷設定等を表示するための表示エリアと、ユーザがプレビュー画像の表示方法等を変更するための入力手段を兼備している。
402はプレビューウィンドウ401のメニューバーであり、ユーザは表示切り替え等プレビューアへの命令をメニュー形式選択することができる。ユーザ操作部403〜406が用意される領域ははツールバーであり、ユーザはメニューバー402を使用しなくともツールバー403を押下することで容易にプレビューページの切り替え等を行うことができる。403の4つのボタンはページ切り替えボタンであり先頭ページ、前ページ、次ページ、最終ページへプレビュー表示を切り替えることが可能である。404はプレビュー画像の表示サイズを変更する為のドロップダウンリストで、全体表示や100%、200%表示等を選択することができ、プレビューアはユーザの表示サイズ変更を解釈し適当な解像度のプレビュー用ビットマップ画像を得ることで表示を切り替える。405は印刷開始ボタンで、このボタンを押下することでプレビューアを終了しプレビューしていた印刷ジョブを印刷処理可能な状態にすることができる。406は印刷中止ボタンであり、このボタンを押下することでプレビューアを終了しプレビューしていた印刷ジョブの印刷処理をキャンセルすることができる。407はプレビュー表示領域で、プレビュー用ビットマップとして作成した印刷用紙と印刷用紙に形成されるであろう可視象を表示する。408はプレビュー機能を実行している印刷ジョブの印刷設定に関る代表的な設定項目の設定値を表示するための表示領域であり、本図においては文書の総ページ数は3ページであり、現在プレビュー表示しているページ番号は2ページであり、印刷設定で設定された部数は1部であり、かつ等倍印刷が設定されていた例を示している。
また、本実施形態において、図4に例示する表示画面は、アプリケーションにおいてプレビュー設定がされた状態で印刷開始の指示が与えられるのに応じて表示される。最初にプレビュー表示の対象となるページは、例えば、印刷条件の設定に従って、文書が実際に印刷されたときの最初のページであり、ページ番号は常に1となる。また、例えば、印刷条件に逆順印刷が設定されている場合には、文書の最終ページから印刷されるため、ページ番号1のプレビュー画像は、当該文書の最終ページに対応する。
尚、図4に示す例では、ページ番号は直接指定できないが、ページ番号を入力させる入力ボックスを設け、そこに入力されたページ番号のページをプレビュー表示する処理構成としても良い。
<プリンタキュー>
通常、一台のプリンタで同時に印刷可能な文書は一つであることから、オペレーティングシステムはプリンタごとに複数の印刷ジョブを管理するための論理的なキューをもつ(以降プリンタキュー、あるいは単にキューと称する)。図5はユーザが視覚的に少なくともプリンタキュー内部の印刷ジョブの状態を確認することが可能なキューウィンドウの一例であり、本実施の形態におけるプレビュー機能を実行している印刷ジョブを含んでいる。印刷ジョブの状態がプレビュー中になっている印刷ジョブがプレビュー機能を実行している印刷ジョブである。
<スプーラの印刷ジョブの処理>
図6〜図8は本実施の形態におけるスプーラが、プリンタキュー中の印刷ジョブを、プレビュー処理した後に印刷処理を行う際に着目したフローチャートを示している。Windows(登録商標)の標準スプーラはプレビュー機能を提供しないため、本実施の形態ではプレビュー機能を追加しており、他の印刷機能に関しては標準スプーラと同様としている。また本実施の形態においてはプリントプロセッサの標準インタフェースにもプレビューの為の拡張を行っている。従って、本実施の形態においてはプレビュー機能に着目して主にスプーラとプリントプロセッサについて説明する。スプーラは図9に例示されるような各印刷ジョブの内部状態を管理するためのテーブルを保持しており、図5のキューウィンドウで例示されるように印刷ジョブの状態をユーザに解りやすく伝えることに用いられる。本実施の形態では内部状態として、印刷中フラグ、アプリ印刷データ作成状態、プレビュー状態の三種の状態を扱い、キューウィンドウを用いてユーザに示すための印刷状態表示を決定する。
スプーラはOSの印刷機能を提供するプロセスであるため、通常は動作を終了することはなく、S601とS651で示されるキューの処理ループを処理し続ける。S602では印刷ジョブに関するイベントを待つ。印刷ジョブに関するイベントとは、例えば、アプリケーションによる印刷処理の開始や終了であるとか、実際の印刷処理の一時停止や終了等を指す。イベントを受け取るとS610に移りアプリの印刷データ作成開始イベントか判定し、アプリの印刷データ作成開始イベントの場合S611に移り新規の印刷ジョブの処理を行う。S610でアプリの印刷データ作成開始イベントでない場合、S620に移る。
S611ではイベントで通知された新規に作成されたアプリ印刷データ作成状態を作成中に、印刷中フラグをOffに設定する。続いてS612では印刷ジョブを処理する為のプリントプロセッサが本実施の形態のプレビュー機能に対応しているかどうかを判断し、非対応のプリントプロセッサであればS615に移り、対応したプリントプロセッサであればS613に移る。プリントプロセッサが本実施の形態のプレビュー機能に対応しているかどうかの判定方法は図7を用いて後述する。S615ではプリントプロッサーがプレビュー機能に非対応であるので、印刷ジョブのプレビュー状態を処理済に設定する。続いてS616でキュー内のジョブの中に印刷フラグがOnのジョブがあるかどうかを判定し、印刷フラグがOnのジョブがあればS650に移り、印刷フラグがOnのジョブがなければ、S617に移りイベントで通知された印刷ジョブの印刷処理を行ない、続いてS650に移る。ここで本実施の形態ではキュー中に印刷フラグがOn、つまり印刷処理中である印刷ジョブが最大1個であることを前提としているが、1個のキューに対して複数のプリンタを割り当てるプリンタプール機能を使用する場合は割り当てられているプリンタの数が、同時に印刷フラグがOnになる最大数とすればよい。また、S617の印刷ジョブの印刷処理については図8で後述する。
S612でプリントプロセッサが本実施の形態のプレビュー機能に対応していない場合、S613でキュー中の印刷ジョブの中でプレビュー状態が処理中である印刷ジョブの数が、システムが許容する最大プレビュ数未満かどうか判定し、最大プレビュ数未満であればS614に移り、最大プレビュ数であればS618に移る。ここでシステムが許容する最大プレビュ数とは、同時にプレビュー画像を作成し表示することを許す最大の数であり、少なくとも図1のホスト計算機100を同時に使用できるユーザの数に設定しておくことで、全てのユーザが同時に一つの印刷ジョブにおいてプレビュー機能を利用することが可能となる。また、この最大プレビュ数はホスト計算機100の処理性能にも依存するため、スプーラがホスト計算機100の処理性能を判定し自動的に設定するようにしてもよいし、ユーザが設定できるようにしてもよいことは言うまでもない。S613で最大プレビュー数未満と判断された場合、S614において印刷ジョブのプレビュー処理(図7)を行ない、S650に移動する。一方最大プレビュー数であればS618で、印刷イベントで通知された印刷ジョブのプレビュー状態を未処理に設定し、S650に移る。また、S614の印刷ジョブのプレビュー処理については後述する。
S620では印刷スレッドの終了イベントかどうかを判定し、印刷スレッドの終了イベントであればS621に移り、他のイベントであればS630に移動する。S621ではイベントで通知された印刷ジョブの削除処理を行ない、S622ではキュー内の印刷ジョブの中から次に印刷処理を行う印刷ジョブを決定する。ここで次に印刷処理を行うことのできる印刷ジョブとは、少なくとも印刷ジョブのプレビュー状態が処理済かつ印刷中フラグがOffになっている印刷ジョブである。この条件を満たす印刷ジョブが複数ある場合は優先順位や印刷ジョブの作成開始日時等から次に印刷処理を行う印刷ジョブを決定すればいいことは言うまでもない。また、S622の処理の詳細を図10で後述する。S623では次に印刷処理を行うべき印刷ジョブがあるかどうかを判定し、ない場合はS650に移り、ある場合はS624に移り印刷ジョブの印刷処理(図8)を行なった後にS650に移る。
S630では受け取ったイベントがプレビュースレッドの終了イベントかどうかを判定し、プレビュースレッドの終了イベントであればS631に移り、異なればS640に移る。S631ではイベントで通知された印刷ジョブのプレビュー状態を処理済に設定する。続いてS634でキュー内のジョブの中に印刷フラグがOnのジョブがあるかどうかを判定し、印刷フラグがOnのジョブがあればS632に移り、印刷フラグがOnのジョブがなければ、S635に移りイベントで通知された印刷ジョブの印刷処理(図8)を行ない、続いてS632に移る。続いてS632ではキュー内の印刷ジョブ中にプレビュー状態が未処理のジョブがあるかどうかを判定し、なければS650に移り、あればS633で印刷ジョブのプレビュー処理(図7)を行ないS650に移る。
S640では受け取ったイベントがアプリケーションの印刷データ作成終了イベントかどうかを判定し、アプリケーションの印刷データ作成終了イベントであれば、S641に移りイベントで通知された印刷ジョブのアプリ印刷データ作成状態を作成済にした後にS650に移る。一方S640でアプリケーションの印刷データ作成終了イベントではないと判定されればS642に移り、その他の印刷イベントの処理をした後にS650に移る。ここでその他の印刷イベントとは例えば印刷ジョブの一時停止や、印刷ジョブの削除のイベント等である。
S650では図5に例示されるキューウィンドウの各印刷ジョブの状態表示を更新する。ここで印刷ジョブの状態表示は印刷ジョブの印刷中フラグとアプリ印刷データ作成状態とプレビュー状態により決定する。図9は印刷ジョブの状態表示を決定するための各状態との対応表である。例えば印刷中フラグがOffかつアプリ印刷データ作成状態が作成済かつプレビュー状態が処理中であれば、印刷ジョブの状態表示はプレビュー中となる。ここで図9のプレビュー状態が処理済であるときだけ印刷中フラグがOnになりうること、つまりプレビュー処理が終了した印刷ジョブのみが実際の印刷処理が行われることが特徴である。
上記S601からS651のループを繰り返し行うことで、キューの印刷ジョブの処理を行う。
図7にS614、S633のサブルーチンである印刷ジョブのプレビュー処理のフローチャートを示す。S661でプリントプロセッサにプレビュー処理を行わせるためのサブスレッドを作成し、プレビュー機能に対応したプリントプロセッサが持つプレビュー用のインタフェースを介してプリントプロセッサを呼び出す。呼び出されたプリントプロセッサの処理は図12で後述する。続いてS662ではプレビュー処理を行う印刷ジョブのプレビュー状態を処理中にした後に、終了する。プリントプロセッサが持つインタフェースについては図13を用いて後述する。
図8にS617、S624のサブルーチンである印刷ジョブの印刷処理のフローチャートを示す。S671でプリントプロセッサに印刷処理を行わせるためのサブスレッドを作成し、プリントプロセッサが持つ印刷用のインタフェースを介してプリントプロセッサを呼び出す。呼び出されたプリントプロセッサの処理は図11で後述する。続いてS672では印刷処理を行う印刷ジョブの印刷フラグをOnにした後に、終了する。
図10に、S622のキュー内の印刷ジョブの中から次に印刷処理を行う印刷ジョブを決定する処理のフローチャートの一例を示す。図9に示されるように印刷可能なジョブは少なくともプレビュー状態が処理済で、かつ印刷中フラグがOffである必要がある。この条件を満たす印刷ジョブが複数存在する場合は、更なる条件、例えば印刷ジョブの作成開始時刻が最も古い印刷ジョブから印刷処理を行えばよい。
まず始めにS681で初期化処理を行う。初期値として、次に印刷処理するジョブNは「なし」を、印刷ジョブの作成開始時刻Tには現在の時刻を格納しておく。S682からS686はプリンタキュー内の全ての印刷ジョブに対して処理を行うためのループであり、処理対象の印刷ジョブを印刷ジョブJと表記する。S683では印刷ジョブJの印刷中フラグがOffかどうかを判断し、OffでなければS687に移り次の印刷ジョブの処理を行ない、OffであればS684に移る。S684では印刷ジョブJのプレビュー状態が処理済かどうかを判断し、処理済でなければS687に移り次の印刷ジョブの処理を行ない、処理済であればS685に移る。S685では印刷ジョブJの作成開始時刻が作成開始時刻Tと比較し古いかどうかを判断し、古くなければS687に移り次の印刷ジョブの処理を行ない、古ければS686に移る。S686では、次に印刷処理するジョブNを印刷ジョブJに設定し、作成開始時刻Tには印刷ジョブJの作成開始時刻を格納する。このようにして作成開始時刻が最も古い印刷ジョブの検索処理を行えば、プリンタキュー内で次に印刷処理を行うべき印刷ジョブを決定することができる。
以上のように印刷ジョブの作成が開始された直後に、プレビュー用のサブスレッドを作成しプリントプロセッサを呼び出すことで、各印刷ジョブにおいて即座にプレビュー処理が開始される。また、プレビュー処理が完了するまでは印刷処理が実行されないので、たとえ作成開始時刻が遅い印刷ジョブでもプレビュー処理が処理済であれば、プレビュー処理が未処理あるいは処理中の印刷ジョブよりも先に印刷処理を行うことができる。このことは特に複数のユーザにより作成されたジョブが同時にプリンタキュー内に存在する場合に有効であり、あるユーザがプレビュー機能を実行している際に他のユーザが印刷ジョブをプレビュー設定をしていない印刷ジョブを作成した場合、先に作成されたプレビュー中のジョブを後回しにして、先に印刷処理を行うことが可能となり、プリンタを無駄無く活用することができる。
<プリントプロセッサの処理>
図13にWindows(登録商標)標準仕様のプリントプロセッサと本実施の形態のプリントプロセッサが持つインタフェースの概念図を示す。本実施の形態におけるプリントプロセッサはWindows(登録商標)の標準仕様のプリントプロッセッサにプレビュー機能を追加してある。つまり、Windows(登録商標)標準仕様のプリントプロセッサには印刷処理を行うためのインタフェースが用意されているがプレビュー用のインタフェースが無いため、本実施の形態のプリントプロセッサではプレビュー用のインタフェースを追加している。印刷用のインタフェースはPrintDocumentOnPrintProcessor()であり印刷処理時にスプーラから呼び出される。本実施の形態でWindows(登録商標)標準仕様に追加したインタフェースはPreviewDocumentOnPrintProcessor()でありプレビュー処理時にスプーラから呼び出される。スプーラは印刷ジョブを処理する際に印刷ジョブに結びつけられたプリントプロセッサがWindows(登録商標)標準仕様に則っているか或いは本実施の形態におけるプレビュー機能を有したものかを判断するには、プレビュー用のインタフェースを持っているかどうかを調べればよい。また本実施の形態におけるプレビュー用インタフェース内では印刷用インタフェース内で呼び出し可能なOSの印刷機能は全て利用できるようにしてある。このため、プリントプロセッサはプレビュー用インタフェース内で図1のEMFスプールファイル103から印刷データをレイアウトしプリタグラフィックドライバに供給し、プリンタグラフィックドライバはレイアウトされた印刷データからイメージデータを作成しプレビュー用の画像をビットマップとしてファイルに保存することができ、プレビューアは作成されたプレビュー用の画像を画面に表示することが可能である。
次に図11,図12に示したプリントプロセッサのフローチャートを用いて、本実施形態に係るプリントプロセッサによって実現されるプレビュー処理及び印刷ページ処理を説明する。プリントプロセッサは、アプリケーションが印刷対象の文書の印刷処理を開始するのに応じてスプーラから呼び出され、図12に示す処理手順を開始する。またプレビュー処理が済んだ印刷ジョブから優先順位等のより選択された印刷ジョブに対して、プリントプロセッサはスプーラから呼び出され、図11に示す処理手順を開始する。つまり、図11,12におけるプリントプロセッサによる印刷ページ処理は、印刷ジョブごとに行われる。
図12はプリントプロセッサのプレビュー用のインタフェースがスプーラにより呼び出された時(S661)のフローチャートを示している。S711で印刷ジョブの印刷設定でプレビュー設定がONに設定されているかどうかを判定し、ONであればS712に移り、ONでなければ即座に終了する。なお、プリントプロセッサの処理終了時に、スレッドの終了イベントがスプーラに通知され、スプーラはS630のプレビュスレッドの終了イベントの判別でYESと判別しS631に処理を進める。S712と続くS713ではプレビュー画面を表示するためのプレビューアを起動し、プレビュー画像とその印刷条件を格納するための作成用プレビューファイルを内容を空にした状態で作成し、プレビュー処理を開始する旨を作成用プレビューファイルのファイル名と共にプリンタグラフィックドライバに通知する。起動されたプレビュアの処理は図14で後述する。続いてS714ではプレビューアからの要求を待ち、要求があればS715でプレビューアの要求を取得する。ここで要求とは、プロセス間の通信のための所定形式のメッセージとして実現できる。
続いてS716では、プレビューアから取得した要求の種別を判定し、プレビュー初期化要求ならばS717に移り初期化処理の判定を行い、プレビュー初期化要求でないならばS721に移る。S717では、既に初期化処理を行ったかどうかを判定し、初期化済みであればS714に移りプレビューア8からの要求を待ち、初期化済みでなければS718に移り初期化処理を行う。S718では、参照用プレビューファイルの初期化処理として、プレビューアからの要求内容から、使用すべき参照用プレビューファイルの個数を取得し、内容を空にした参照用プレビューファイルを要求された個数だけ作成した後、S714に移りプレビューアからの要求を待つ。また、S718の初期化処理に際しては、図15に例示する表(データテーブル)も、初期化されたファイルに対応する欄が、例えばヌルデータによって更新されることによって初期化される。
S721では、プレビューアの要求の種別を判定し、印刷中止要求ならば印刷ジョブの印刷処理を中止するためS725に移りプレビュー処理中の印刷ジョブのキャンセル処理を行ないS726に移り、印刷中止要求でないならばS722に移る。S722では、プレビューアの要求の種別を判定し、印刷開始要求ならば通常の印刷処理を行うためにS726に移り、印刷開始要求でないならばS723に移る。そして、S726ではS721とS718で作成したプレビューファイルを削除し、続くS727でOSにプレビュ処理の終了を通知して、プリントプロセッサのプレビュースレッド処理を終了する。
S723ではプレビューアの要求の種別を判定し、プレビュー画像作成要求ならばS731に移りプレビュー画像作成処理を行ない、プレビュー画像作成要求でないならばS724に移りその他の要求の処理を行う。S724では、プレビューアの要求の種別のうち、印刷開始要求と印刷中止要求とプレビュー画像作成要求以外の要求の処理を行ない、例えば印刷され得る全ページ数(総ページ数)を要求された時はプレビューアへの回答として全ページ数を用意し、例えば要求がアプリケーションの印刷データがスプール中かどうかの問い合わせであればプレビューアへの回答としてスプール中かどうかのフラグを用意し、要求に適した回答を作成した後にプレビューアに回答する。回答を終えるとS714に移りプレビューアからの要求を待つ。また、例えば参照用プレビューファイル内容の削除要求であれば、指定されたファイル番号の参照用プレビューファイルの内容を空にし、作業完了をプレビューアに返答する。
プレビューアは、要求に応じて獲得した全ページ数を、図4に例示する表示画面の下欄に示す全ページ数(図4の例では3ページ)として表示する。また、図4に示すボタン403の4つのボタンの内の右端のボタンが押された場合、全ページ数が分かっているので、最終ページのプレビューを行うことができる。
S731では、プレビューアからの要求内容を取得することにより、プレビュー画像作成処理のために必要な情報を得る。このときプレビューアから通知された要求内容の情報は、例えばプリントプロセッサが作成する印刷ページデータのページ番号であり、または作成する画像の解像度であり、または新しく作成されるプレビュー画像を格納する参照用プレビューファイルの番号でもある。こうして取得した要求内容の情報の一部はプリンタグラフィックドライバに通知され、例えば指定された解像度のプレビュー画像を作成するために用いられる。
次にS732では、作成用プレビューファイルの内容を空にした後、要求されたページ番号の印刷ページデータに対応する印刷条件を作成用プレビューファイルに格納する。続くS733では、OSの印刷機能にページレイアウト開始を通知する。そして、S734では、EMFスプールファイルから印刷データを読み出し、レイアウト処理を行ない、プレビューアが要求したページ番号の印刷ページデータを作成する。S735では、OSの印刷機能にページレイアウト終了を通知する。このとき、プリンタグラフィックドライバは、S734で作成された印刷ページデータからビットマップイメージを生成し、プレビュー画像として作成用プレビューファイルに追加格納する。
次にS736では、要求された番号の参照用プレビューファイルの内容を、完成した作成用プレビューファイルの内容によって置き換え、プレビューアのプレビュー画像作成要求の回答として要求された番号の参照用プレビューファイルのファイル名を返答し、S714に移りプレビューアの要求を待つ。
ここで参照用プレビューファイルの内容を作成用プレビューファイルの内容によって置き換えた後に、作成用プレビューファイルの内容を空にすれば使用する記憶容量をより少なくできる。また、プレビューアは、返答を受けた参照用プレビューファイルのファイル名と、プレビュー対象の解像度及びプレビュー対象のページ番号とを対応付けて、図15に例示する表(データテーブル)に登録し、返答されたファイル名のプレビューファイルから指定ページ番号のプレビュー画像を取得して、ディスプレイに図4に例示する如く表示画面を表示する。
図11はプリントプロセッサの印刷用のインタフェースがスプーラにより呼び出された時(S671)のフローチャートを示している。印刷処理におけるフローは標準仕様のプリントプロセッサと変わらないため、ここでは簡単に説明する。まずS701でEMFスプールファイルから印刷設定を取得し、部数設定や逆順印刷等を取得する。続いてS702でOSの印刷機能に印刷開始を通知する。続くS703からS707までは、印刷されるべき最終物理ページまで各物理ページを印刷するためのループとなる。S707においては、指定されたすべての物理ページの印刷が終了していなければ、物理ページの印刷処理はS704に続く。指定された全ての物理ページを印刷した後はS708に進み、OSの印刷機能に印刷処理終了を通知する。S704では、OSの印刷機能にページレイアウト開始を通知する。S705ではEMFスプールファイルから印刷データを読み出し、レイアウト処理を行ない各物理ページに対応する印刷ページデータを作成する。S706では、OSの印刷機能にページレイアウト終了を通知する。このとき、GDIは、印刷ページデータからグラフィック描画コマンドを作成してプリンタグラフィックドライバに渡す。そして、プリンタグラフィックドライバは、上記の如くS701にて実際の印刷処理を通知され、且つS706にてページレイアウト終了が通知されるのに応じて、印刷ページデータからビットマップデータを生成し、生成したビットマップデータを印刷コマンドに変換し、その印刷コマンドをランゲージモニタに供給し、ランゲージモニタによって所定のデータ送信手段を介してプリンタに供給されることにより、該当するページの物理ページが印刷される。
尚、プリンタグラフィックドライバは、複数の形式の印刷データを生成可能であり、必ずしもビットマップ形式で印刷データを生成するとは限らず、指定形式の言語で印刷データを生成することもある。しかしながら、それはプリンタに供給する印刷データであり、本実施形態において、プレビュー画像は、ビットマップ形式で生成される。
以上の様に、プレビュースレッドの処理では、プレビューアの要求に応じてプリントプロセッサが動作することで、プレビュー機能が実現される、印刷スレッドの処理では従来通りの動作を行うことで印刷ジョブの印刷機能が実現される。ここでOSの標準仕様のプリントプロセッサの場合はプレビュー用インタフェースを持たないため、印刷時に印刷用スレッドで印刷用インタフェースが呼び出されるので、従来通りの印刷処理を行うことができる。
また、上記実施の形態ではプリントプロセッサは印刷設定のプレビュー設定がONであればプレビューアを起動していたが、さらに他の条件も加味してプレビューアを起動するかどうかを判断してもよい。他の条件としては、上記の印刷設定は印刷ジョブごとに設定されるがプリンタごと或いはプリンタキューごとにプレビュー設定を行ないたい場合等が考えられ、例えばプリントプロセッサがランゲージモニタを介してプリンタ本体にプレビューの有無を問いあわせたり、あるいはOSの印刷機能が管理する共有記憶領域(レジストリ)の設定値を参照したりすることがあげられる。
また、上記実施の形態ではプリントプロセッサがプレビュー用インタフェースを備えている場合は、スプーラはプレビュー用サブスレッドを作成しプリントプロセッサを呼び出し、プリントプロセッサが印刷設定からプレビュー設定の設定値を判断してプレビューアを起動していたが、スプーラが印刷設定のプレビュー設定の設定値を判断し、プレビュー設定がONならプレビュー用サブスレッドを作成しプリントプロセッサを呼び出す形式にしてもよい。ただしこの場合のプレビュー設定はプリンタドライバが独自に保持する印刷設定中ではなく、スプーラがアクセス可能な印刷設定中に存在しなければいけないことは言うまでもない。
<プレビューアの処理>
図14は、S712で起動される本実施形態に係るプレビューアによる処理を示すフローチャートである。プレビューアは、プリントプロセッサにより起動され、その処理を実行するが、プリントプロセッサとの間のメッセージやデータの交換については前述したとおりであるので、ここでは説明を省く。
S801において、初期値として表示するプレビュ画像のページ番号を1とし、また、印刷イメージ生成要求を行う時の解像度を決定し、さらに、プリントプロセッサに初期化要求を発行する。続いてS802、S803においては、プレビュー表示の対象となる指定ページがすでに生成され、1個以上ある参照用プレビューファイルの何れかに格納されているか判定する。この判定は、図15に例示するデータ構成を有する表(データテーブル)を参照することによって行われる。即ち、図15は、本実施形態に係る登録済みの参照用プレビューファイルを表わすデータテーブルのデータ構成を例示する図であり、本実施形態では、一例として、ファイル名、ページ番号、並びに解像度からなる各項目のデータが、ファイル番号(800)が付与されて格納されており、S803では、指定解像度の指定ページが登録されているかが検索され、その検索の結果、当該表内に該当する欄が見つかれば、該当する参照用プレビューファイルが存在する、と判断する。
そしてS803の判断において、該当する参照用プレビューファイルが存在すれば、S806において、その参照用プレビューファイルからイメージデータを読み出してプレビュー画像として表示する。一方、該当する参照用プレビューファイルが存在しなければ、S804において、生成されるイメージデータが格納される参照用プレビューファイルの番号を指定し、その指定ページについての印刷イメージ生成要求をプリントプロセッサに対して発行し、続くS805でイメージデータが生成されるのを待ち、イメージデータが作成されるとともにプリントプロセッサから受け渡されるプレビューファイル名を図15のデータテーブルの該当するファイル番号に設定しS802に移る。
尚、S803において該当する参照用プレビューファイルが参照用プレビューファイルの中に存在しない、と判定された場合には、新たにプレビューファイルを作成することになるが、その際、ホスト計算機のディスクスペースが不足することが予想される場合等には、印刷イメージ生成要求に先立って、図15に例示するデータテーブルに登録されている参照用プレビューファイルの中から不要な参照プレビューファイルの番号と共に参照用プレビューファイル内容削除要求をプリントプロセッサに対して発行してもよい。
S806では、上述した手順でプレビュー表示が行われ、これにより、図4に例示する表示画面がディスプレイに表示される。このとき、指定ページについての印刷イメージ生成要求をプリントプロセッサに対して発行し、プリントプロセッサから作成された参照用プレビューファイル名の通知を受けた後に、図15に例示するデータテーブルを更新し、S802の手順でプレビュー表示を行う。
プレビュー表示した後で、S807及びS809においては、図4に例示する表示画面に対するユーザの入力操作を待ち、入力操作を検出した場合には、その操作がページ番号の変更または表示サイズの変更であるかを判定する。そして、その判定の結果、ユーザの入力操作がページ番号または表示サイズの変更であれば、S810において、指定ページと指定表示サイズから計算される解像度を変更し、プレビュー表示を切り替えるためにS802に移る。
一方、上記の判定の結果、ユーザの入力操作がページ番号または解像度の変更でなければ、S811において、係るユーザの入力操作が印刷終了かどうかを判定し、その判定の結果が印刷終了である場合には、S812において、プリントプロセッサに対して印刷終了要求を発行し、一方、印刷終了でない場合には、S813においてプリントプロセッサに対して印刷開始要求を発行する。
<プレビュー表示手順の概要>
図16は、図1の構成において、印刷対象のある文書における最初のページについてプレビュー表示を行う際のシーケンスを示す図である。以下の説明において括弧内の番号は図16に付した参照番号を示す。なお説明を簡潔に行うためにプリントプロセッサとプリンタグラフィックドライバの間に介在するGDIは省略している。
スプーラは印刷ジョブのプレビュー処理を行う際にプレビュー用サブスレッドを作成し、プリントプロセッサのプレビュー用インタフェースを呼び出す。スプーラに呼び出されたプリントプロセッサは最初にEMFスプールから印刷設定を読み出し(901)、印刷設定においてプレビュー表示の設定がONであることを確認しプレビューアを起動する(902)。プレビューアは起動するとプリントプロセッサに初期化を要求(903)することで使用する参照用プレビューファイルの個数を通知する。プリントプロセッサはプレビューアから初期化要求を受け取ると、1個の作成用プレビューファイルを作成する(904)。また、図に示さないが、プレビューアに指示された数の参照用プレビューファイルをも作成する。
続いてプリントプロセッサはGDIを介してプレビュー処理開始であることをプリンタグラフィックドライバ(905)に通知し、プリンタグラフィックドライバはプレビュー用のビットマップを作成する準備を行う(906)。プリンタグラフィックドライバによる準備が終了すると(907)、プリントプロセッサはプレビューアからの要求を待つ。プレビューアが最初に表示する第一ページの印刷イメージ生成をプリントプロセッサに要求すると(908)、プリントプロセッサはEMFスプールから指示されたページの印刷設定を読み出し(909)、印刷設定を作成用プレビューファイルに書き込む(910)。ここで印刷イメージ生成要求にはページ番号の他に参照用プレビューファイルの番号や解像度等の情報が含まれている。
続いてプリントプロセッサは指示された印刷ページのプレビュー用ビットマップを作成するために、GDIを介してページのレイアウト処理を行ない(911)、プリントプロセッサはGDIをコールし、EMFスプールファイルにスプールされた中間データをプリンタグラフィックドライバが解釈できる印刷データにGDIが変換してプリンタグラフィックドライバに指示された印刷ページに供給する(912)。プリンタグラフィックドライバは供給された印刷データからプレビュー用のビットマップを作成し(913)、作成したビットマップデータを作成用プレビューファイルに追記する(914)。プリンタグラフィックドライバによるビットマップ作成作業が終了すると(915)、プリントプロセッサは完成した作成用プレビューファイルの内容をプレビューアに指示された参照用プレビューファイルにコピーし(916)、作成用プレビューファイルの内容を消去する(917)。
続いてプリントプロセッサがプレビューアに印刷イメージ生成が終了したことを伝えると(918)、プレビューアは参照用プレビューファイルに格納された印刷設定とビットマップデータを利用してプレビュー表示を行う(919)。
このように本実施形態では、プリンタグラフィックドライバによって、上述した手順によってプレビュー表示用のプレビュー画像データを生成しており、結果として、オペレーティングシステムによってスプールされた印刷データを利用した正確なプレビュー画像データ、即ち、記録用紙等に実際に印刷した場合と同様な態様のプレビュー表示が可能なプレビュー画像デー)の生成が実現する。また、ユーザのプレビューアに対する操作に従い、図中の908から919の処理を繰り返すことにより、プレビューするページの切り替えや、表示サイズの変更が行える。
さて、既存のスプーラとプリントプロセッサとプリンタグラフィックドライバに機能追加を行ない、さらにプレビューアを用意することで、プレビュー機能を提供することが可能になることを述べてきたが、OSにWindows(登録商標)を用いる場合、プリンタを製造するベンダーが提供するプリンタドライバに含まれるプレビューに関るモジュールは、図1で網掛けになっているブロックであり、具体的にはユーザインタフェースドライバとプリントプロセッサ、プリンタグラフィックドライバ、プレビューアとなっている。ここで本実施の形態におけるプレビュー機能ではOSのモジュールであるスプーラにも変更を加えているため、OSを作成するベンダーがスプーラに変更を加えれば、プリンタとプリンタドライバを提供する多くのベンダーがプレビュー機能を利用できることになるのは言うまでもない。
<印刷システムのハードウェア構成>
次に、本実施形態に係る印刷システムのハードウェア構成について説明する。図2は本発明の本実施形態の印刷システムの構成を示すブロック図である。
図2において、プリンタ201は、画像形成を行うインクジェット方式の印刷装置であり、後述するデータ処理装置202で生成された印刷コマンドに基づいて画像の形成を行う。印刷装置の種類については特に問わないが、ここではインクジェット方式のカラープリンタを想定している。また、これ以外のプリンタの種類としては、例えば、レーザビーム方式や熱転写方式等の各種印刷方式のプリンタが挙げられる。プリンタ201は、各種機能ブロック210〜213、220〜225によって構成される。
データ処理装置202は、アプリケーションソフトが印刷ジョブを作成し、プリンタドライバが印刷ジョブの印刷命令からイメージデータを作成し、接続されたプリンタ201の印刷動作を制御する印刷コマンドの生成を行う。本実施形態では、データ処理装置202としてパーソナルコンピュータを用いている。また、このデータ処理装置202では、印刷の設定に関するユーザからの指示や入力を受ける役割も果たす。データ処理装置202は、各種機能ブロック230〜235、240〜243によって構成される。また、データ処理装置202には、データ処理装置202を制御するOSとして、例えば、Microsoft Windows(登録商標) XPが組み込まれており、このOS上で各種機能ブロックが動作する。通信インタフェース(I/F)203は、データ処理装置202とプリンタ201を接続する通信インタフェースである。本実施形態では、通信インタフェース203として、例えば、シリアルインタフェースであるUSBを想定しているが、この他に、IEEE1394、Ethernet(登録商標)、IrDA、IEEE802.11、電力線等のシリアルインタフェースを想定することができる。また、シリアルインタフェースに限らず、パラレルインタフェースとして、セントロニクス、SCSI等の各種インタフェースを想定することができる。いずれにしても、データ処理装置202とプリンタ201間で双方向の通信を実現するものであれば、有線/無線を問わずどのような通信インタフェースであっても構わない。
尚、プリンタ201及びデータ処理装置202とも、本実施の形態の特徴を説明する上で特に必要ないと思われる機能については省略する。
プリンタ201において、印刷制御部210は、データ処理装置202から送信されてきた印刷コマンドを受信して印刷部220の印刷動作の制御を行う。印刷部220は、記録媒体200を搬送したり、記録媒体200に印刷を行うための部分である。記録媒体200は、一般に印刷用紙と呼ばれ、プリンタ201に備え付けられた給紙トレイやカセット等の給紙部に積載されているものとする。ヘッド制御部211は、ヘッド駆動部221の動作の制御を行ない、インクジェットヘッドのオリフィスよりインクを吐出させる。フィード制御部212は、記録媒体200をプリンタ201に備えつけられた給紙トレイや給紙カセットから1枚ずつ給紙し、搬送路上の定位置を経由して印刷可能位置に搬送し、ラスタ印刷とともに排紙動作を行うために、用紙搬送部223の制御を行う。画像形成部213は、データ処理装置202から発行された印刷コマンドに含まれるイメージデータを展開する。印刷制御部210には、印刷制御部210による制御動作の作業領域や、イメージデータの展開、受信した印刷コマンドの保存のためにメモリが用意されており、そのメモリが画像形成部213により使用される。
このように、印刷制御部210は、印刷コマンドに含まれる印刷制御用コマンドに従ってプリンタエンジンである画像形成部213の制御を総合的に行う。具体的には、印刷制御部210は、CPU(不図示)により制御用手順を記述したプログラムを実行することで実現できる。また、印刷制御用コマンドとしては、印刷用の量子化されたイメージデータ(2値あるいは2値化前の中間データ)とインクの打込量、パス数、印刷方向及び印刷用紙の搬送量を制御する各種コマンド、および、後述する入力操作部231で設定される用紙種別指示で構成されるコマンドが使用される。ヘッド駆動部221は、印刷制御部210で展開された印刷コマンドのイメージデータに基づき記録媒体200に対して印刷を行う。プリンタ201はインクジェット方式のプリンタであるため、インクジェットヘッドからのインク吐出によって画像形成を行う。用紙ピックアップ部222は、給紙トレイや給紙カセットに積載されている記録媒体200を搬送路に載せる動作を行う。用紙搬送部223は、用紙ピックアップ部222により搬送路に載せられた記録媒体200を搬送路に沿って定位置を経由して、排紙までの搬送動作を行う。用紙検知センサ224は、搬送路途中に設置されており、搬送されている記録媒体200の端部を検出し、記録媒体200が搬送路中の定位置にあることを確認する。I/F(インタフェース)制御部225は、プリンタ201のインタフェース機能を司るI/F制御部である。本実施形態では、用いているインタフェースがUSBであるため、USBの周辺機器側のコントローラによって構成される。I/F制御部225では、用紙種別情報の送信や印刷コマンド等のデータ受信が行われる。また、I/F制御部225は、プリンタ201本体で発生したエラーや通信状態等のステータス情報に関しても、要求があればデータ処理装置202に対して送信する。
データ処理装置202において、中央制御部241は、データ処理装置202の各種機能を制御し、CPUの持つ機能がこれに該当する。入力操作部242は、ユーザの意図を印刷設定に反映させるための各種入力機器(マウス、キーボード、タッチパネル等)から構成される。設定情報通知部243は、印刷設定をユーザに通知する。通知方法としては、モニタ等の表示装置(CRTやLCD)を使用する場合や音声による通知方法が考えられる。I/F制御部240は、データ処理装置202のインタフェース機能を司る。I/F制御部240はUSBのホスト側のコントローラによって構成され、USBホストとしての機能を有する。USBホストとしての機能の一部は、OSやドライバなどソフトウェアによっても構成される。
プリンタドライバ230は、印刷のための各種設定や印刷データの生成及びプリンタ201の制御をデータ処理装置202上で行うためのソフトウェアである。中央制御部241(即ち、パーソナルコンピュータのCPU)によりプリンタドライバ230のプログラムが実行されて、ユーザインタフェースドライバである印刷設定処理部231やプリントプロセッサである印刷ページ順・レイアウト制御部232、プリンタグラフィックドライバであるイメージデータ生成部233、ランゲージモニタであるデータ通信処理部234、プレビューアである印刷イメージ表示部235等の各機能ブロックの機能が実現される。印刷設定処理部231は、印刷用紙の設定や印刷品位の設定等を含む各種印刷設定を行う。また、印刷設定処理部231は、ユーザからの指示や入力を受け付け、設定された内容を表示もしくは通知する機能を有する。印刷ページ順・レイアウト制御部233は、アプリケーションにより作成された印刷ジョブの印刷データのページ順とレイアウトを制御し、ページ単位で印刷データをイメージデータ生成部233に供給する。イメージデータ生成部2323、印刷ページ順・レイアウト制御部234によって供給された印刷データからイメージデータを作成して印刷コマンドを生成する。イメージデータ生成部232で作成された印刷ジョブの印刷コマンドは、データ通信処理部233を介してI/F制御部240に送られ、プリンタ201へ印刷コマンドが送られる。またイメージデータ生成部233が生成したイメージデータは印刷イメージ表示部に供給されることもあり、この場合は印刷イメージ表示部は印刷イメージをユーザに見える形で提供する。
<プリンタの構造>
次に、プリンタの一例であるインクジェットプリンタの概略構成について、図17を用いて説明する。図17は本発明の実施形態のインクジェットプリンタの概略構成を示す図である。尚、実施形態の特徴を説明する上で特に必要ないと思われる機能については省略する。
インクジェットヘッド1000は、図の紙面に垂直な方向に沿って往復走査され、インクジェットヘッド1000に対向した部分(ここを記録位置と呼ぶ)にインクが吐出される。記録媒体100である印刷用紙Pは、インクジェットヘッド1000による1回の走査毎に一定量ずつ搬送される。印刷用紙Pは、プリンタ本体に対して着脱可能に設けられている自動給紙のための給紙カセット1004と給紙トレイ1006とに収容されており、そのいずれかから、データ処理装置上で実現される印刷設定ダイアログ(例えば図3)における印刷設定に従い選択的に給紙される。給紙カセット1004上部には、それが装着された状態で用紙先端部分に給紙搬送ローラ1008が配置されている。給紙搬送ローラ1008は、給紙カセット1004に載置された最上部の印刷用紙Pと圧接されている。そのため、給紙搬送ローラ1008が駆動されることで、最上部の印刷用紙Pが記録位置に供給される。給紙トレイ1006は、給紙先端部分に給紙搬送ローラ1010が配置されている。給紙搬送ローラ1010は、給紙トレイ1006の最上部の印刷用紙Pと給紙トレイカムにより印刷時に圧接される。そのため、給紙搬送ローラ1010が駆動されることで、最上部の印刷用紙Pの給紙を行う。この構成により、給紙トレイ1006または給紙カセット1004のいずれかを給紙する側の給紙搬送ローラ1010または1008が選択駆動され、給紙トレイ1006または給紙カセット1004の最上部の1枚の印刷用紙P(以下、1枚の印刷用紙Pをシートとも呼ぶ)の給紙が行われる。
給紙トレイ1006には、任意のサイズの印刷用紙をセットすることも可能で、ユーザは給紙カセット1004とは別のサイズの印刷用紙をセットすることができる。給紙カセット1004または給紙トレイ1006から選択的に給紙された印刷用紙Pは、インクジェットヘッド1000が設けられている印刷位置の手前に配置された搬送ローラ1016の位置へ送り込まれる。搬送ローラ1016は、給紙されてきた印刷用紙Pを一旦停止させ、印刷動作と同期してインクジェットヘッド1000の印刷位置へと搬送を開始するように構成されている。インクジェットヘッド1000と対向する印刷位置には、印刷用紙Pを裏面から支持し、印刷状態を安定させるためのプラテン1002が設けられている。インクジェッドヘッド1000とプラテン1002とで印刷位置での印刷部を構成している。インクジェットヘッド1000には、インクドットを吐出するためのオリフィスが印刷用紙Pの印刷面と対向する側に設けられており、インク供給部より供給されるインクをヘッド駆動部にてオリフィスより吐出させる。インクジェットヘッド1000は、印刷用紙Pの搬送方向(副走査方向)と直交する方向(主走査方向)、つまり、図17の左から右側へと搬送される印刷用紙Pに対して紙面に直交する方向に沿って往復走査されながらインクドットの吐出を行い、複数ラスタで構成されるイメージデータに応じた可視像を印刷用紙Pの印刷面に形成する。
ここで、インクジェットヘッド1000による走査が行われるときには、印刷用紙Pの搬送は停止され一方向への走査が行われ、1回の走査分の画像の形成が終了した時点で印刷したラスタ数に応じた量の印刷用紙Pの搬送が行われる。この動作を、往復走査の各方向について繰返し行うことで、印刷用紙Pに1ページ分のイメージデータの印刷画像を形成する。インクジェットヘッド1000と対向する印刷位置を通過した印刷用紙Pは、印刷位置の下流側に配置されている排出ローラ1018を介して、プリンタ101の本体外へと排出される。排出される位置には、排出トレイ1020が設けられており、排紙トレイ1020に印刷済のシートが印刷画像を上面にして排出される。プリンタ101は、次のページの印刷コマンドがデータ処理装置102から送られてくると、次の印刷用紙Pの給紙を開始して搬送ローラ1016へと送り込むように制御する。給紙カセット1004から給紙される場合、給紙された印刷用紙Pは反転してから搬送ローラ1016に送られるため、反転時に印刷用紙Pを支えるための反転押えローラ1012と1014が給紙カセット1004から搬送ローラ1016を結ぶ搬送路上に設けられている。
印刷用紙検知センサ1022は搬送ローラ1016の上流側に設けられ、給紙トレイ1006また給紙カセット1004より給紙される印刷用紙Pの有無を検知する。この印刷用紙検知センサ1022は、マイクロスイッチ等の機械式あるいはフォトセンサ等の光学式であってもよく、シートが存在するときには存在信号を、存在しない場合には無しの信号を出力する。用紙Pの検知を行う印刷用紙検知センサは、シート先端が通過するときには、シート有りを示す信号を出力し、シートが通過した後はシート無しを示す信号を出力することで、印刷用紙先端、後端が検知される。これによりシートの排紙処理を正しく完了することが可能になる。
<本実施形態の効果>
本実施形態では、図16に示す処理シーケンス、並びに図6及び図7及び図8、並びに図11及び図12、並びに図14に示すフローチャートを参照して説明したように、印刷ジョブ作成時にスプーラにより呼び出されるプリントプロセッサを、プレビューアからのプレビューの要求と、プリンタグラフィックドライバによるイメージデータの生成との間に介入させる処理構成を採用し、係る処理構成において、プリンタグラフィックドライバにはプレビュー表示用のイメージデータを作成させ、作成されたイメージデータを、プリントプロセッサの指示に応じてプレビューアに渡すことにより、従来のように印刷データが実際に印刷処理されるまで待機すること無く、ディスプレイへのプレビュー画像の表示を可能としている。
また、本実施形態によれば、各印刷ジョブ作成時にプレビュー用サブスレッドが用いられているため、複数の印刷ジョブのプレビュー表示を同時に行うことができる。すなわち一人のユーザが同時に複数の印刷ジョブのプレビュー表示を行うことが可能にあり、または複数のユーザが同時に各々の印刷ジョブのプレビュー表示を行うことが可能になる。
また、本実施形態では、同時にプレビュー表示を行える印刷ジョブの数を設定できるため、ホスト計算機の処理能力や、ホスト計算機を同時に利用するユーザの数等の条件に応じて、プレビュー機能を提供するにあたり最適な環境を構築することが可能である。
また、本実施形態によれば、印刷ジョブそれぞれに対してプレビュー処理の状態を管理するようにし、プレビュー処理が処理済の印刷ジョブに対してのみ実際の印刷処理を行えるようにしたため、プリンタキュー入っているプレビュー処理中のジョブが存在していても、他の印刷ジョブを印刷処理できるようになる。従ってプリンタの遊休時間が減少し、効率的に印刷処理を行うことが出来るようになる。
本実施形態の印刷及び印刷プレビューが実行される際のデータフローを示すブロック図 本実施形態の印刷システムの構成を示すブロック図 本実施形態のユーザインタフェースドライバによる印刷設定ダイアログの一例を示す図 本実施の形態におけるプレビューアによって提供される表示画面(プレビューウィンドウ)を例示する図 本実施の形態におけるキューキューウィンドウの一例を示す図 本実施の形態におけるスプーラのプレビュー処理と印刷処理に関するフローチャート 本実施の形態におけるスプーラのプレビュー処理に関するフローチャート 本実施の形態におけるスプーラの印刷処理に関するフローチャート 本実施の形態における印刷ジョブの状態表示を決定するための各状態との対応表 本実施の形態におけるスプーラの印刷処理を行うジョブを決定する処理に関するフローチャート 本実施の形態におけるプリントプロセッサの印刷用処理に関するフローチャート 本実施の形態におけるプリントプロセッサのプレビュー処理に関するフローチャート 本実施の形態のプリントプロセッサが持つインタフェースの概念図 本実施形態に係るプレビューアによる処理を示すフローチャート 本実施形態に係る参照用プレビューファイルの管理テーブルを例示する図 本実施形態に係る最初のページについてプレビュー表示を行う際のシーケンス インクジェットプリンタの概略構成

Claims (15)

  1. アプリケーションから供給される印刷データから変換された中間データをスプールするオペレーティングシステム標準のスプーラを利用するコンピュータ読み取り可能なプログラムであって、
    印刷スレッド処理とプレビュースレッド処理とを行う処理モジュールと、
    前記スプールされた中間データに基づき作成されたビットマップに基づきプレビューを実行するプレビューモジュールとを有し、
    前記処理モジュールのプレビュースレッド処理は、印刷処理の開始に応じて起動され、前記プレビューモジュールを起動し、
    前記処理モジュールの印刷スレッド処理は、プレビューが終了したジョブまたはプレビュー設定されていないジョブがある場合、起動されることを特徴とするコンピュータ読み取り可能なプログラム。
  2. アプリケーションから供給される印刷データから変換された中間データをスプールするオペレーティングシステム標準のスプーラを利用するコンピュータ読み取り可能なプログラムであって、
    印刷スレッド処理とプレビュースレッド処理とを行う処理モジュールと、
    前記スプールされた中間データに基づきビットマップを作成する作成モジュールと、
    前記作成モジュールに作成されたビットマップに基づきプレビューを実行するプレビューモジュールとを有し、
    前記処理モジュールのプレビュースレッド処理は、印刷処理の開始に応じて起動され、前記プレビューモジュールを起動し、前記作成モジュールにプレビュー開始を通知し、
    前記処理モジュールの印刷スレッド処理は、プレビューが終了したジョブまたはプレビュー設定されていないジョブがある場合、起動されることを特徴とするコンピュータ読み取り可能なプログラム。
  3. 前記作成モジュールは、プリンタにより印刷されるべき印刷イメージの生成処理、プリンタが解釈可能な印刷コマンドへの変換処理を行うことを特徴とする請求項2記載のコンピュータ読み取り可能なプログラム。
  4. システムのスプーラを利用するコンピュータ読み取り可能なプログラムであって、
    アプリケーションプログラムによって発行される印刷ジョブの印刷設定を行うためのユーザインタフェースドライバと、
    前記アプリケーションプログラムが発行した印刷ジョブの各ページの印刷データをページ単位でページ記述言語の状態で配置するプリントプロセッサと、
    前記プリントプロセッサによる起動に応じて動作を開始するプレビューアと、
    イメージデータを生成しプリンタが解釈できる印刷コマンドに変換するプリンタグラフィックドライバと、
    前記印刷コマンドをプリンタに供給するランゲージモニタとを備え、
    前記スプーラは、前記アプリケーションプログラムによって印刷文書データの作成が開始される際、前記プリントプロセッサをプレビューの為の印刷イメージを生成するために動作させ、
    前記プリントプロセッサは、前記スプーラにより動作を開始し、印刷文書データに伴って設定されたドライバプロパティに従って前記プレビューアを起動すると共に、前記文書の印刷データの各ページを処理して印刷ページデータを作成して、前記プリンタグラフィックドライバに供給し、
    前記プリンタグラフィックドライバは、供給された前記印刷ページデータに基づいて生成したイメージデータを印刷イメージファイルに格納し、
    前記プレビューアは、前記印刷イメージファイルに格納されたイメージデータを画面に表示することでプレビュー表示を行ない、
    前記スプーラは前記プレビュー表示終了後に、前記プリントプロセッサを印刷の為の印刷イメージを生成するために動作させ、
    前記プリントプロセッサは、前記スプーラにより動作を開始し、印刷文書データに伴って設定されたドライバプロパティに従って前記文書の印刷データの各ページを処理して印刷ページデータを作成して、前記プリンタグラフィックドライバに供給し、
    前記プリンタグラフィックドライバは、供給された前記印刷ページデータに基づいて生成したイメージデータをプリンタが解釈できる印刷コマンドに変換することを特徴とするコンピュータ読み取り可能なプログラム。
  5. 印刷処理の開始に応じてプレビュー用のサブスレッドを作成しプリントプロセッサを呼び出すスプーラと、
    プレビュー設定されていれば、プレビューアを起動し、印刷開始要求後にプレビュースレッドを終了し、プレビュー設定されてなければ、プレビュースレッドを終了するプリントプロセッサとを有し、
    前記スプーラは、プレビュースレッドの終了イベントに応じてジョブのプレビュー状態を処理済にし、
    前記スプーラは、プレビュー状態が処理済のジョブがある場合、印刷用サブスレッドを作成しプリントプロセッサを呼び出し、
    前記プリントプロセッサはプレビュー状態が処理済のジョブの印刷処理を実行することを特徴とする情報処理装置。
  6. 前記スプーラは、印刷スレッドの終了イベントに応じて、プレビュー状態が処理済のジョブを印刷処理を実行するジョブと決定し、印刷用サブスレッドを作成しプリントプロセッサを呼び出し、
    前記プリントプロセッサは、決定されたジョブの印刷処理を実行することを特徴とする請求項5記載の情報処理装置。
  7. アプリケーションから供給される印刷データから変換された中間データをスプールするオペレーティングシステム標準のスプーラを利用する情報処理装置であって、
    印刷スレッド処理とプレビュースレッド処理とを行う処理手段と、
    前記スプールされた中間データに基づき作成されたビットマップに基づきプレビューを実行するプレビュー手段とを有し、
    前記処理手段のプレビュースレッド処理は、印刷処理の開始に応じて起動され、前記プレビューアを起動し、
    前記処理手段の印刷スレッド処理は、プレビューが終了したジョブまたはプレビュー設定されていないジョブがある場合、起動されることを特徴とする情報処理装置。
  8. アプリケーションから供給される印刷データから変換された中間データをスプールするオペレーティングシステム標準のスプーラを利用する情報処理装置であって、
    印刷スレッド処理とプレビュースレッド処理とを行う処理手段と、
    前記スプールされた中間データに基づきビットマップを作成する作成手段と、
    前記作成手段に作成されたビットマップに基づきプレビューを実行するプレビュー手段とを有し、
    前記処理手段のプレビュースレッド処理は、印刷処理の開始に応じて起動され、前記プレビューアを起動し、前記作成手段にプレビュー開始を通知し、
    前記処理手段の印刷スレッド処理は、プレビューが終了したジョブまたはプレビュー設定されていないジョブがある場合、起動されることを特徴とする情報処理装置。
  9. 前記処理手段は、プリンタにより印刷されるべき印刷イメージの生成処理、プリンタが解釈可能な印刷コマンドへの変換処理を行うことを特徴とする請求項8記載の情報処理装置。
  10. 文書データの印刷指示に応じて、その文書データの出力用の中間データを一時保存する手段を備える情報処理装置であって、
    前記一時保存される中間データからイメージデータ生成させるためのタイミングを制御するイメージデータ生成調整手段と、
    前記一時保存されている中間データに基づいて、イメージデータを生成するイメージデータ生成手段と、
    前記文書データの印刷イメージの表示が前記印刷指示において指定されている場合に、その印刷指示に応じてイメージ生成要求を発行すると共に、入手したプレビュー表示のための情報に基づいて、前記文書データの印刷イメージを表わすプレビュー画面を表示するプレビュー手段と、
    前記イメージ生成要求が発行されるのに応じて、前記イメージデータを生成するように前記イメージ生成手段を制御すると共に、生成されたイメージデータに基づく前記プレビュー表示のための情報を前記プレビュー手段に通知することにより、前記印刷イメージを表わすプレビュー表示が行われるように前記プレビュー手段を制御する処理制御手段とを備え、
    前記文書データの出力用の中間データの保存の開始時に、前記イメージデータ生成調整手段は前記文書データの出力用の中間データからプレビュー表示用イメージデータを前記処理制御手段に生成させ、
    前記処理制御手段の処理後に、前記イメージデータ生成調整手段は前記文書データの出力用の中間データから印刷用イメージデータを前記処理制御手段に生成させ印刷処理を行うこと特徴とする情報処理装置。
  11. 印刷処理の開始に応じてプレビュー用のサブスレッドを作成しプリントプロセッサを呼び出すスプーラと、プレビュー設定されていれば、プレビューアを起動し、印刷開始要求後にプレビュースレッドを終了し、プレビュー設定されてなければ、プレビュースレッドを終了するプリントプロセッサとを利用するプレビュー方法であって、
    前記スプーラは、プレビュースレッドの終了イベントに応じてジョブのプレビュー状態を処理済にし、
    前記スプーラは、プレビュー状態が処理済のジョブがある場合、印刷用サブスレッドを作成しプリントプロセッサを呼び出し、
    前記プリントプロセッサはプレビュー状態が処理済のジョブの印刷処理を実行することを特徴とするプレビュー方法。
  12. 前記スプーラは、印刷スレッドの終了イベントに応じて、プレビュー状態が処理済のジョブを印刷処理を実行するジョブと決定し、印刷用サブスレッドを作成しプリントプロセッサを呼び出し、
    前記プリントプロセッサは、決定されたジョブの印刷処理を実行することを特徴とする請求項11記載のプレビュー方法。
  13. アプリケーションから供給される印刷データから変換された中間データをスプールするオペレーティングシステム標準のスプーラと、印刷スレッド処理とプレビュースレッド処理とを行う処理手段と、前記スプールされた中間データに基づき作成されたビットマップに基づきプレビューを実行するプレビュー手段とを利用するプレビュー方法であって、
    前記処理手段のプレビュースレッド処理は、印刷処理の開始に応じて起動され、前記プレビューアを起動し、
    前記処理手段の印刷スレッド処理は、プレビューが終了したジョブまたはプレビュー設定されていないジョブがある場合、起動されることを特徴とするプレビュー方法。
  14. アプリケーションから供給される印刷データから変換された中間データをスプールするオペレーティングシステム標準のスプーラと、印刷スレッド処理とプレビュースレッド処理とを行う処理手段と、前記スプールされた中間データに基づきビットマップを作成する作成手段と、前記作成手段に作成されたビットマップに基づきプレビューを実行するプレビュー手段とを利用するプレビュー方法であって、
    前記処理手段のプレビュースレッド処理は、印刷処理の開始に応じて起動され、前記プレビューアを起動し、前記作成手段にプレビュー開始を通知し、
    前記処理手段の印刷スレッド処理は、プレビューが終了したジョブまたはプレビュー設定されていないジョブがある場合、起動されることを特徴とするプレビュー方法。
  15. 前記処理手段は、プリンタにより印刷されるべき印刷イメージの生成処理、プリンタが解釈可能な印刷コマンドへの変換処理を行うことを特徴とする請求項14記載のプレビュー方法。
JP2004218823A 2004-07-27 2004-07-27 プログラム、情報処理装置、プレビュー方法 Withdrawn JP2006039941A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004218823A JP2006039941A (ja) 2004-07-27 2004-07-27 プログラム、情報処理装置、プレビュー方法
US11/186,893 US7839520B2 (en) 2004-07-27 2005-07-22 Program, information processor and preview method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004218823A JP2006039941A (ja) 2004-07-27 2004-07-27 プログラム、情報処理装置、プレビュー方法

Publications (1)

Publication Number Publication Date
JP2006039941A true JP2006039941A (ja) 2006-02-09

Family

ID=35731788

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004218823A Withdrawn JP2006039941A (ja) 2004-07-27 2004-07-27 プログラム、情報処理装置、プレビュー方法

Country Status (2)

Country Link
US (1) US7839520B2 (ja)
JP (1) JP2006039941A (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008152728A (ja) * 2006-12-20 2008-07-03 Canon Inc 情報処理装置、プレビュー方法、プログラム、及び記憶媒体
JP2008153949A (ja) * 2006-12-18 2008-07-03 Ricoh Co Ltd 画像処理装置及び画像処理方法
JP2008186254A (ja) * 2007-01-30 2008-08-14 Canon Inc 情報処理装置、情報処理方法、プログラム、及び記憶媒体
JP2009230413A (ja) * 2008-03-21 2009-10-08 Canon Inc 情報処理装置、情報処理方法及び印刷システム
JP2009282843A (ja) * 2008-05-23 2009-12-03 Canon Inc 情報処理装置、プレビュー方法、及びプログラム
JP2011128904A (ja) * 2009-12-17 2011-06-30 Canon Inc 情報処理装置、その方法およびプログラム
JP2011237901A (ja) * 2010-05-07 2011-11-24 Riso Kagaku Corp プレビュー画面表示制御装置およびプログラム
US8243311B2 (en) 2007-11-01 2012-08-14 Sharp Kabushiki Kaisha Image output apparatus for controlling order of print jobs and display jobs in queue
JP2014032703A (ja) * 2013-11-07 2014-02-20 Canon Inc 情報処理装置、プレビュー方法、及びプログラム
US8867066B2 (en) 2009-06-26 2014-10-21 Canon Kabushiki Kaisha Print processing apparatus and control method

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2370631T3 (es) * 2001-01-29 2011-12-21 Cortado Ag Procedimiento para procesar trabajos de impresión en redes basadas en servidores así como red basada en servidores.
JP2007189663A (ja) * 2005-12-15 2007-07-26 Ricoh Co Ltd ユーザインタフェース装置、プレビュー画像表示方法およびプログラム
US9129285B2 (en) * 2006-01-27 2015-09-08 International Business Machines Corporation Previewing in live electronic commerce environment
JP4667280B2 (ja) * 2006-03-17 2011-04-06 キヤノン株式会社 情報処理装置及びその制御方法、プログラム
JP4630847B2 (ja) * 2006-06-09 2011-02-09 キヤノン株式会社 情報処理装置、情報処理方法およびプログラム
JP2008060677A (ja) * 2006-08-29 2008-03-13 Kyocera Mita Corp プリンタ制御装置
US8370299B2 (en) * 2006-11-29 2013-02-05 Sharp Laboratories Of America, Inc. Methods and systems for print job handling
JP4855915B2 (ja) * 2006-12-05 2012-01-18 株式会社リコー 画像処理装置、画像形成装置およびプログラム
US8537408B2 (en) * 2006-12-20 2013-09-17 Canon Kabushiki Kaisha Information processing apparatus, information processing method, program, and storage medium
JP4375449B2 (ja) * 2007-06-28 2009-12-02 コニカミノルタビジネステクノロジーズ株式会社 画像処理装置、画像処理プログラム、および画像処理方法
JP4524317B2 (ja) * 2008-02-21 2010-08-18 株式会社沖データ 印刷システム及び情報処理装置
JP4669543B2 (ja) * 2008-10-28 2011-04-13 シャープ株式会社 画像形成装置
KR20100074565A (ko) * 2008-12-24 2010-07-02 삼성전자주식회사 썸네일 변경 방법 및 인쇄제어장치
JP4700111B2 (ja) * 2009-01-16 2011-06-15 シャープ株式会社 画像形成装置
JP4978629B2 (ja) * 2009-01-19 2012-07-18 コニカミノルタビジネステクノロジーズ株式会社 項目設定装置、並びにその制御方法及び制御プログラム
US20120013933A1 (en) * 2010-04-06 2012-01-19 I/O Interconnect, Ltd. Method for operating printing process
JP6242081B2 (ja) * 2013-05-30 2017-12-06 キヤノン株式会社 印刷システム、並びに、印刷ジョブ制御の方法及びプログラム
JP6682183B2 (ja) 2014-11-14 2020-04-15 キヤノン株式会社 ジョブ処理装置、ジョブ処理装置の制御方法、コンピュータプログラム
JP6817751B2 (ja) * 2016-09-07 2021-01-20 キヤノン株式会社 情報処理システムその制御方法、印刷システム及びプログラム
EP3349109B1 (en) * 2017-01-16 2023-06-07 Canon Production Printing Holding B.V. Generation of a preview of an image in a print job

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3634695B2 (ja) * 1999-11-02 2005-03-30 キヤノン株式会社 印刷制御方法および装置
JP2002041261A (ja) * 2000-07-28 2002-02-08 Canon Inc 情報処理装置及び情報処理方法及びコンピュータ読み取り可能なプログラムを格納した記憶媒体
JP3774658B2 (ja) * 2001-11-30 2006-05-17 キヤノン株式会社 印刷制御装置及び印刷制御システム及び印刷制御方法
JP3747175B2 (ja) 2001-11-30 2006-02-22 キヤノン株式会社 印刷制御装置及び方法
JP4143336B2 (ja) * 2002-05-31 2008-09-03 キヤノン株式会社 情報処理装置および制御方法およびプログラム
US20050088668A1 (en) * 2003-10-23 2005-04-28 Robert Sesek System to communicate the present status of a job queue

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008153949A (ja) * 2006-12-18 2008-07-03 Ricoh Co Ltd 画像処理装置及び画像処理方法
JP2008152728A (ja) * 2006-12-20 2008-07-03 Canon Inc 情報処理装置、プレビュー方法、プログラム、及び記憶媒体
JP2008186254A (ja) * 2007-01-30 2008-08-14 Canon Inc 情報処理装置、情報処理方法、プログラム、及び記憶媒体
US8243311B2 (en) 2007-11-01 2012-08-14 Sharp Kabushiki Kaisha Image output apparatus for controlling order of print jobs and display jobs in queue
JP2009230413A (ja) * 2008-03-21 2009-10-08 Canon Inc 情報処理装置、情報処理方法及び印刷システム
JP2009282843A (ja) * 2008-05-23 2009-12-03 Canon Inc 情報処理装置、プレビュー方法、及びプログラム
US8867066B2 (en) 2009-06-26 2014-10-21 Canon Kabushiki Kaisha Print processing apparatus and control method
JP2011128904A (ja) * 2009-12-17 2011-06-30 Canon Inc 情報処理装置、その方法およびプログラム
JP2011237901A (ja) * 2010-05-07 2011-11-24 Riso Kagaku Corp プレビュー画面表示制御装置およびプログラム
JP2014032703A (ja) * 2013-11-07 2014-02-20 Canon Inc 情報処理装置、プレビュー方法、及びプログラム

Also Published As

Publication number Publication date
US20060023240A1 (en) 2006-02-02
US7839520B2 (en) 2010-11-23

Similar Documents

Publication Publication Date Title
JP2006039941A (ja) プログラム、情報処理装置、プレビュー方法
JP4859214B2 (ja) データ処理装置及び印刷ジョブ制御方法と印刷データ処理装置
US8497999B2 (en) Information processing apparatus and method for displaying a preview image
JP4246367B2 (ja) 印刷装置
JP4137144B2 (ja) データ処理装置およびその制御方法
US8194276B2 (en) Data processing apparatus, control method therefor, and program
JP5197787B2 (ja) ホストコンピュータ、制御方法および記憶媒体
JP2005070859A (ja) データ処理装置および印刷装置および印刷制御方法およびコンピュータが読み取り可能なプログラムを格納した記憶媒体およびプログラム
US20060203289A1 (en) Printing system, printer and storage medium readable by computer
JP4961460B2 (ja) 印刷システム
US9164705B2 (en) Image forming apparatus and recording medium
JP7459524B2 (ja) プログラムおよび情報処理装置
JP4442875B2 (ja) データ処理装置及び該装置における印刷制御方法、プログラム
US20230236773A1 (en) Non-transitory storage medium storing supporting program executable by computer of information processing apparatus
JP4891052B2 (ja) 情報処理装置、プレビュー方法、プログラム、及び記憶媒体
US7142327B2 (en) Information processing apparatus and print processing method
US11880619B2 (en) Computer product storing supporting program for managing common print settings for each identified printer
JP2007250002A (ja) 情報処理装置、制御方法およびコンピュータ読み取り可能な制御プログラムを格納した記憶媒体
JP2006338127A (ja) 画像形成装置
JP2024058153A (ja) 情報処理装置、制御方法およびプログラム
CN115809030A (zh) 信息处理设备、信息处理设备的控制方法和存储介质
JP3784642B2 (ja) 印刷装置、印刷装置のコントローラおよびその制御方法、記録媒体並びにプログラム
JP2023034953A (ja) 情報処理装置、情報処理装置の制御方法およびプログラム
JPH11184191A (ja) 出力装置と記録用紙の給紙方法、及び情報処理システム
JPH08118753A (ja) 文書作成装置及び給紙制御方法

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20071002