情報処理装置、制御方法およびコンピュータ読み取り可能な制御プログラムを格納した記憶媒体
【課題】 デバイスの機能と印刷設定をプレビューし、不具合のない印刷結果を提供することを目的とする。また、両面指定時に同時に表裏両面のプレビューを提供することを目的とする。
【解決手段】 デバイス情報と文書データとに基づいて、デバイス情報を考慮したプレビュー用のデータを生成して表示する。また、ページ設定情報が両面指定の場合に、裏面を透かしたプレビュー用のデータを生成して表示する。
【解決手段】 デバイス情報と文書データとに基づいて、デバイス情報を考慮したプレビュー用のデータを生成して表示する。また、ページ設定情報が両面指定の場合に、裏面を透かしたプレビュー用のデータを生成して表示する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は,プリンタに印刷データを送信するパーソナルコンピュータ等の情報処理装置およびその制御方法およびプログラムを格納した記憶媒体に関するもので,特に印刷指示時に印刷データに基づくプレビューを印刷結果を踏まえて表示する情報処理装置および方法およびコンピュータ読み取り可能なプログラムが格納された記憶媒体に関するものである。
【背景技術】
【0002】
ステープル機能やパンチ穴をあけるなどのフィニッシング用のデバイス機能が付属した印刷装置が普及している。そのような印刷装置に対して、クライアントであるパーソナルコンピュータからの印刷指示に応じて、前記印刷装置のデバイス機能を使用した印刷が行える。
【0003】
また、デバイス機能として、用紙の両側に印刷可能となる両面印刷機能をもった印刷装置の普及している。
【0004】
また、クライアントのアプリケーションからの印刷指示時にプレビューを行うことによって、印刷データがどのように印刷出力されるのかを操作者に判断できるようになっているアプリケーションやプリンタドライバが近年存在している。
【特許文献1】特開平11−136528号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、ステープル、パンチ穴などに代表されるように、印刷装置であるデバイスがもつフィニッシング機能をプレビューするシステムは存在せず、より正確な出力をプレビューすることはできていなかった。このため、印刷プレビューを行った場合、操作者は印刷データの印刷位置を判断することができるが、デバイスがもつフィニッシング機能を利用した場合、そのフィニッシング機能によりどのような印刷出力の結果が得られるのか判断することができず、印刷データの配置位置にパンチ穴が開けられたり、操作者にとって所望としない印刷出力がなされることがあった。
【0006】
また、上記のようなデバイス機能の利用において印刷結果に不具合が生じた場合、その不具合を印刷出力する前に知らせる方法は存在していなかった。
【0007】
さらに、従来のプレビュー機能は、論理ページのプレビューであるため、両面印刷時には両面であるにもかかわらず、プレビューには両面印刷と無関係なプレビューが表示されたり、印刷用紙1ページに複数ページの描画データが縮小配置されるNup印刷をプリンタドライバで指定した時には、プレビューには論理ページのプレビューが表示され、実際に印刷用紙に出力される体裁が表示されないでいた。
【0008】
本発明は上記従来技術に鑑みてなされたものであり、デバイスの機能と印刷設定をプレビューし、不具合のない印刷結果を提供することを目的とする。
【0009】
また、両面印刷やNup印刷をプリンタドライバで指定いた時に、同時に表裏両面のプレビューを表示したり、物理ページの印刷プレビューを表示できる仕組みを提供することを目的とする。
【課題を解決するための手段】
【0010】
上記目的を達成するために、本発明は次のような構成からなる。すなわち、アプリケーションから出力されるデータに基づいて印刷装置が解釈できる印刷データを生成するプリンタドライバを備えた情報処理装置であって、前記プリンタドライバの設定画面を用いて印刷設定情報を設定する設定手段と、前記アプリケーションから出力されるデータと前記印刷設定情報とに基づくプレビューの画像を表示する表示手段とを有し、前記表示手段は、両面印刷の指定が前記印刷設定情報に含まれる場合、シートの表面に印刷されるページのプレビューの画像と当該シートの裏面に印刷されるページのプレビューの画像とが表示される1枚のシートのためのプレビューの画像を表示することを特徴とする。
【0011】
また、アプリケーションによるデータの出力から、プリンタドライバによる印刷データの生成までの処理中に、該アプリケーションによって出力されるデータに基づく印刷プレビューを表示制御する情報処理装置であって、前記アプリケーションから出力されるデータに係る描画データを、オペレーティングシステムの描画部から受信する受信手段と、前記プリンタドライバの印刷設定画面を介して設定されている印刷設定情報を取得する取得手段と、前記受信手段にて受信された描画データと、前記取得手段により取得される印刷設定情報とに基づいて、印刷プレビュー画像を表示する表示制御手段とを備え、前記取得手段は、印刷設定情報として論理ページのレイアウト情報を取得し、前記表示制御手段は、前記受信手段によって受信された前記描画データと、前記取得手段によって取得された前記レイアウト情報とに基づいて印刷プレビュー画像を表示することを特徴とする。
【発明の効果】
【0012】
以上説明したように、本発明では、印刷設定を考慮したプレビューを実現し、不具合のない印刷結果を提供することが可能となる。
【発明を実施するための最良の形態】
【0013】
(第一実施例)
以下、本発明を適用するのに好適である実施例について説明を行う。
【0014】
図1は本発明の実施例を示すプリンタ制御システムの構成を説明するブロック図である。なお、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても、LAN,WAN等のネットワークを介して接続が為され処理が行われるシステムであっても本発明を適用できる。
【0015】
同図において、ホストコンピュータ3000は、ROM103のプログラム用ROMあるいは外部メモリ111に記憶された文書処理プログラム等に基づいて図形、イメージ、文字、表(表計算等を含む)等が混在した文書処理を実行するCPU101を備え、システムバス104に接続される各デバイスをCPU1が総括的に制御する。また、このROM103のプログラム用ROMあるいは外部メモリ111には、CPU101の制御プログラムであるオペレーティングシステムプログラム(以下OS)等を記憶し、ROM103のフォント用ROMあるいは外部メモリ111には上記文書処理の際に使用するフォントデータ等を記憶し、ROM103のデータ用ROMあるいは外部メモリ111には上記文書処理等を行う際に使用する各種データを記憶する。RAM102は、CPU101の主メモリ、ワークエリア等として機能する。
【0016】
キーボードコントローラ(KBC)105は、キーボード109や不図示のポインティングデバイスからのキー入力を制御する。CRTコントローラ(CRTC)106は、CRTディスプレイ(CRT)110の表示を制御する。107はディスクコントローラ(DKC)で、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、プリンタ制御コマンド生成プログラム(以下プリンタドライバ)等を記憶するハードディスク(HD)、フロッピー(登録商標)ディスク(FD)等の外部メモリ111とのアクセスを制御する。プリンタコントローラ(PRTC)108は、双方向性インターフェース(インターフェース)121を介してプリンタ1500に接続されて、プリンタ1500との通信制御処理を実行する。また、印刷装置は、複数の情報処理装置によりシェアされることが望まれており、LANを構築した場合には、複数の印刷装置が存在することが考えられるので、121は、イーサネット(登録商標)等のネットワークであることが望まれる。
【0017】
なお、CPU101は、例えばRAM102上に設定された表示情報RAMへのアウトラインフォントの展開(ラスタライズ)処理を実行し、CRT110上でのWYSIWYGを可能としている。また、CPU101は、CRT110上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウインドウを開き、種々のデータ処理を実行する。ユーザは印刷を実行する際、印刷の設定に関するウインドウを開き、プリンタの設定や、印刷モードの選択を含むプリンタドライバに対する印刷処理方法の設定を行える。
【0018】
プリンタ1500は、CPU112により制御される。プリンタCPU112は、ROM113のプログラム用ROMに記憶された制御プログラム等あるいは外部メモリ114に記憶された制御プログラム等に基づいてシステムバス115に接続される印刷部(プリンタエンジン)117に出力情報としての画像信号を出力する。また、このROM113のプログラムROMには、CPU112の制御プログラム等を記憶する。ROM113のフォント用ROMには上記出力情報を生成する際に使用するフォントデータ等が記憶され、ROM113のデータ用ROMには、ハードディスク等の外部メモリ114がないプリンタの場合には、ホストコンピュータ上で利用される情報等が記憶されている。
【0019】
CPU112は入力部118を介してホストコンピュータとの通信処理が可能となっており、プリンタ内の情報等をホストコンピュータ3000に通知できる。RAM119は、CPU112の主メモリや、ワークエリア等として機能するRAMで、図示しない増設ポートに接続されるオプションRAMによりメモリ容量を拡張することができるように構成されている。なお、RAM119は、出力情報展開領域、環境データ格納領域、NVRAM等に用いられる。前述したハードディスク(HD)、ICカード等の外部メモリ114は、メモリコントローラ(MC)120によりアクセスを制御される。外部メモリ114は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。また、118は前述した操作パネルで操作のためのスイッチおよびLED表示器等が配されている。
【0020】
また、前述した外部メモリ114は1個に限らず、複数個備えられ、内蔵フォントに加えてオプションカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていてもよい。更に、図示しないNVRAMを有し、操作パネル1501からのプリンタモード設定情報を記憶するようにしてもよい。
【0021】
図2は、プリンタ等の印刷装置が直接接続されているか、あるいはネットワーク経由で接続されているホストコンピュータにおける典型的な印刷処理の構成図である。アプリケーション201、グラフィックエンジン202、プリンタドライバ203、およびシステムスプーラ204は、外部メモリ111に保存されたファイルとして存在し、実行される場合にOSやそのモジュールを利用するモジュールによってRAM102にロードされ実行されるプログラムモジュールである。また、アプリケーション201およびプリンタドライバ203は、外部メモリ111のFDや不図示のCD−ROM、あるいは不図示のネットワークを経由して外部ディスク111のHDに追加することが可能となっている。外部メモリ111に保存されているアプリケーション201はRAM102にロードされて実行されるが、このアプリケーション201からプリンタ1500に対して印刷を行う際には、同様にRAM102にロードされ実行可能となっているグラフィックエンジン202を利用して描画データの出力を行う。ここで、米国マイクロソフト社のWindows(登録商標) OSを用いて説明を行う。Windows(登録商標)では、OSの描画手段であるグラフィックエンジン202は、一般にGDI(Graphic Device Interface)と呼ばれ、アプリケーションは、グラフィックエンジンであるGDIに対してGDI関数と呼ばれる描画データを出力する。
【0022】
グラフィックエンジン202は、印刷装置ごとに用意されたプリンタドライバ203を同様に外部メモリ111からRAM102にロードし、アプリケーション201からのGDI関数の出力をライブラリに基づいてDDI関数(Device Driver Interface)に変換して、プリンタドライバ203へDDI関数を出力する。プリンタドライバ203は、グラフィックエンジン202から受け取ったDDI関数に基づいて、プリンタが認識可能な制御コマンド、例えばPDL(PageDescriptionLanguage)に変換する。変換されたプリンタ制御コマンドは、OSによってRAM102にロードされたシステムスプーラ204を経てインタフェース121経由でプリンタ1500へ印刷データとして出力される仕組みとなっている。
【0023】
本実施形態の印刷システムは、図2で示すプリンタとホストコンピュータからなる印刷システムに加えて、更に第3図に示すように、アプリケーションからの印刷データを一旦中間コードデータでスプールする構成を有する。
【0024】
図3は、図2のシステムを拡張したもので、グラフィックエンジン202からプリンタドライバ203へ印刷命令を送る際に、一旦中間コードからなるスプールファイル303を生成する構成をとる。図2のシステムでは、アプリケーション201が印刷処理から開放されるのはプリンタドライバ203がグラフィックエンジン202からのすべての印刷命令をプリンタの制御コマンドへ変換し終った時点である。これに対して、図3のシステムでは、スプーラ302がすべての印刷命令を中間コードデータに変換し、スプールファイル303に出力した時点である。通常、後者の方が短時間で済む。また、図3で示すシステムにおいては、スプールファイル303の内容に対して加工することができる。これによりアプリケーションからの印刷データに対して、拡大縮小や、複数ページを1ページに縮小して印刷する等、アプリケーションの持たない機能を実現する事ができる。
【0025】
これらの目的のために、図2のシステムに対し、図3の様に中間コードデータでスプールする様、システムの拡張がなされてきている。なお、印刷データの加工を行うためには、通常プリンタドライバ203が提供するウインドウから設定を行い、プリンタドライバ203がその設定内容をRAM102上あるいは外部メモリ111上に保管する。
【0026】
以下、図3の詳細を説明する。図に示す通り、この拡張された処理方式では、グラフィックエンジン202からの印刷命令であるDDI関数をディスパッチャ301が受け取る。ディスパッチャ301がOSの描画手段であるグラフィックエンジン202から受け取った印刷命令であるDDI関数が、アプリケーション201からグラフィックエンジン202へ発行された印刷命令(GDI関数)の場合には、ディスパッチャ301は外部メモリ111に格納されているスプーラ302をRAM102にロードし、プリンタドライバ203ではなくスプーラ302へ印刷命令(DDI関数)を送付する。
【0027】
スプーラ302は受け取った印刷命令を解釈し、ページ単位に加工しやすい中間コードに変換し、スプールファイル303に出力する。このページ単位に格納されている中間コードのスプールファイルをページ描画ファイル(PDF:PageDescription File)と呼ぶ。また、スプーラ302は、プリンタドライバ203に対して設定されている印刷データに関する加工設定(Nup、両面、ステイプル、カラー/モノクロ指定等)をプリンタドライバ203から取得してジョブ単位のファイルとしてスプールファイル303に保存する。このジョブ単位に格納されている設定ファイルをジョブ設定ファイル(簡略してSDF:Spool Description Fileと呼ぶこともある)と呼ぶ。このジョブ設定ファイルについては後述する。印刷データに関する加工設定は、アプリケーションから印刷指示を出す前に、予めプリンタドライバの設定を操作者が行っておく。
【0028】
図8は、プリンタドライバの各印刷設定を行うプロパティ画面の1つのシートである。ここでは、操作者が詳細な印刷設定を行うことができるが、本発明に関わるフィニッシングの説明に特化して行うことにする。図8の801は、ページレイアウトの設定を行うことができる。「ページレイアウト(L):」の右側に位置するプルダウンウインドウは、「1ページ/枚(通常印刷)」「2ページ/枚」「4ページ/枚」「6ページ/枚」「8ページ/枚」とNup印刷の指定ができるようになっている。また、「配置順(X):」の右側に位置するプルダウンウインドウは、論理ページの配置順序の設定を行えるようになっている。例えば、「2ページ/枚」において、配置順は、「左から右向き」「右から左向き」の2つが選択でき、「4ページ/枚」では、「左上から右向き」「左上から下向き」「右上から左向き」「右上から下向き」の4つの配置順が選択できるようになっている。
【0029】
図8では、ページレイアウトが「2ページ/枚」、配置順が「左から右向き」となっており、802の簡易プレビュー画面で示されているように、1枚の用紙に対して、2ページ分のデータが左から右に論理ページが増えるように配置され、描画されることを操作者に報知している。また、図27も同様にプリンタドライバの各印刷設定を行うプロパティ画面の1つのシートである。図27の2702は、印刷方法の設定を行うことができる。印刷方法としては、「片面印刷」「両面印刷」「製本印刷」があり、それぞれを択一的に選択することができる。また、2703では、排紙方法の設定を行うことができ、「ソート」「グループ」「ステイプル」の指定が択一的に行える。また、2704では、ステイプル指定時にどの「とじ方向」にステイプルするかの指定を行えるようになっている。「とじ方向(L)」には、「長辺とじ(上)」「長辺とじ(下)」「短辺とじ(左)」「短辺とじ(右)」の設定を行うことができる。図27では、印刷方法が「両面印刷」、排紙方法が「ステイプル」、とじ方向が「長辺とじ(上)」となっており、2701の簡易プレビュー画面で示されているように、用紙に対して両面の印刷がされていることを右下を裏返すことにより示唆し、用紙の長辺の上側にステイプルがされることを操作者に報知している。このように、操作者は、プリンタドライバで印刷設定を詳細に設定することができ、スプーラ302は、プリンタドライバ203に対して設定されている印刷データに関する加工設定をプリンタドライバ203から取得してスプールファイル303に保存することになる。なお、スプールファイル303は外部メモリ111上にファイルとして生成するが、RAM102上に生成されても構わない。
【0030】
更にスプーラ302は、外部メモリ111に格納されているスプールファイルマネージャ304をRAM102にロードし、スプールファイルマネージャ304に対してスプールファイル303の生成状況を通知する。その後、スプールファイルマネージャ304は、スプールファイル303に保存された印刷データに関する加工設定の内容に従って印刷を行えるか判断する。
【0031】
スプールファイルマネージャ304がグラフィックエンジン202を利用して印刷を行えると判断した際には、外部メモリ111に格納されているデスプーラ305をRAM102にロードし、デスプーラ305に対して、スプールファイル303に記述された中間コードのページ描画ファイルの印刷処理を行うように指示する。
【0032】
デスプーラ305はスプールファイル303に含まれる中間コードのページ描画ファイルをスプールファイル303に含まれる加工設定情報を含むジョブ設定ファイルの内容に従って加工し、GDI関数を再生成し、もう一度OSの描画手段であるグラフィックエンジン202経由でGDI関数を出力する。
【0033】
ディスパッチャ301がOSの描画手段であるグラフィックエンジン202から受け取った印刷命令(DDI関数)がデスプーラ305からグラフィックエンジン202へ発行された印刷命令(GDI関数)の場合には、ディスパッチャ301はスプーラ302ではなく、プリンタドライバ203に印刷命令を送る。
【0034】
プリンタドライバ203はOSの描画手段であるグラフィックエンジン202から取得したDDI関数に基づいてページ記述言語等からなるプリンタ制御コマンドを生成し、システムスプーラ204経由でプリンタ1500に出力する。
【0035】
さらに、図3では、これまで説明した拡張システムに加えて、プレビューア306、設定変更エディタ307を配し、プレビュー、印刷設定変更を可能にした例を示している。プレビューの実現方法としては、スプールファイル303に含まれる加工設定中にプレビューを行うかどうかの設定が含まれており、スプールファイルマネージャ304が加工設定を読み込み、プレビュー指定がなされていた場合、スプールファイル303に保存された印刷データに関する加工設定の内容に従ってプレビューを行えるか判断する。さらに、プレビューを行うどうかの設定は、例えば図8に示すようなユーザインターフェイスを提供することによって実現可能である。印刷プレビュー、印刷設定変更を行うためには、図8に示すプリンタドライバのプロパティにおいて、「出力先の指定」を行う手段であるプルダウンメニューにおいて「ストア」を指定する必要がある。なお、プレビューだけをみたい場合は、出力先の指定として「プレビュー」を選択することによっても可能である。
【0036】
このようにプリンタドライバのプロパティで設定されている内容は設定ファイルとしてOSが提供する構造体(Windows(登録商標)OSでは、DEVMODEと呼ばれる)に格納される。その構造体には、例えばスプールファイル303に含まれる加工設定中にスプールファイルマネージャ304にストアを行うかどうかの設定が含まれており、スプールファイルマネージャ304がプリンタドライバを介して加工設定を読み込み、ストア指定がなされていた場合、前述したようにスプールファイル303にページ描画ファイルとジョブ設定ファイルとが生成・格納され、図9のようにスプールファイルマネージャのウィンドウ画面がポップアップされ、スプールファイル303にスプールされたジョブがリスト表示される。
【0037】
図9には、1つのジョブがスプールされている例を示しており、メニューバー901もしくはそのすぐ下のメニューアイコン902を押下することにより、ジョブの操作を行うことができる。メニューバーとメニューアイコンの操作の数は同じである。操作種類としては、ジョブを選択した状態で、「印刷」、中間コードのスプールファイルをそのまま残して印刷を行わせる「セーブして印刷」、印刷設定を考慮したジョブの出力プレビューを見るための「プレビュー」、中間コードのスプールファイルを削除する「削除」、中間コードのスプールファイルのコピーを生成する「複製」、ジョブの印刷設定(レイアウト設定はフィニッシング設定等)を変更する「ジョブ編集」、ジョブの印刷順序の入れ替えを行う「順序変更」等の操作がある。
【0038】
スプールファイルマネージャのウィンドウ画面(図9)上で、あるジョブのプレビューが指定された場合、外部メモリ111に格納されているプレビューア306をRAM2にロードし、プレビューア306に対して、スプールファイル303に記述された中間コードのジョブのプレビュー処理を行うように指示する。
【0039】
プレビューア306はスプールファイル303に含まれる中間コードのページ描画ファイル(PDF)を順次読み出し、スプールファイル303に格納されているジョブ設定ファイル(SDF)に含まれる加工設定情報の内容に従って加工し、加工された中間データに基づいてGDI関数を再生成し、グラフィックエンジン202に対して出力する。この際、出力先を自身のクライアント領域、つまり表示デバイスにし、グラフィックエンジン202が表示デバイス用のDDI関数を出力することによって、画面上の出力が可能となる。
【0040】
グラフィックエンジン202は、指定された出力先に応じて適切なレンダリングを行うことが可能である。このことから、プレビューア306は、デスプーラ305同様に、スプールファイル303に含まれる中間コードをスプールファイル303に含まれる加工設定の内容に従って加工し、グラフィックエンジン202を利用して出力する方法で実現可能となる。
【0041】
このようにプリンタドライバで設定されている加工設定をジョブ設定ファイルに基づいてページ描画ファイルのデータを加工して出力することにより、実際の描画データがどのように印刷されるか、更には、Nup(Nページの論理ページを1ページの物理ページに縮小配置して印刷する処理)指定されている場合、両面印刷指定されている場合、製本印刷指定されている場合、スタンプが指定されている場合、それぞれに応じて、プリンタで出力されるものに近い印刷プレビューをユーザに提供することができる。なお、従来の文書作成等のアプリケーションソフトウェアが有しているプレビュー機能は、あくまでそのアプリケーションにおけるページ設定に基づいて描画しているため、プリンタドライバでの印刷設定が反映されず、実際に印刷出力されるプレビューをユーザに認識させることはできなかった。
【0042】
上記のようにプレビュー処理を行うことにより、図11のようにスプールファイル303に含まれる印刷の加工設定の大プレビューがプレビューア306によって画面上に表示され、その後、ユーザの非表示指示によって、プレビューア306がクローズされ、制御がスプールファイルマネージャのウィンドウ画面(図9)に移行する。
【0043】
そして、ユーザがプレビューア306によって表示された内容に従って、印刷を行うならば、スプールファイルマネージャ304上で、「印刷」もしくは「セーブして印刷」を指示することにより印刷要求を発行する。印刷要求は前述したように、デスプーラ305によりジョブ設定ファイルに基づいてページ描画ファイルを加工してGDI関数を生成し、グラフィックエンジン202に伝えられ、ディスパッチャ301経由で、プリンタドライバ203に印刷命令が送られ、印刷が実行される。
【0044】
また、スプールファイル303に含まれる印刷の加工設定のプレビューがプレビューア306によって画面上に表示されたならば、ユーザはプレビューア306上から印刷の要求を行う。印刷の要求はスプールファイルマネージャ304に通知され、スプールファイルマネージャ304は図3に説明した系で印刷を行う。また、プレビューア306は印刷要求後、終了する。
【0045】
さらに、ユーザがプレビューア306に表示された出力内容を見ながら修正をすることも可能である。これらの修正は、プレビューア306がスプールファイル303の内容を修正する操作をユーザに提供することによって実現される。ユーザの修正が終了し、印刷要求を行ったならば、スプールファイルマネージャ304およびデスプーラ305は加工されたスプールファイル303の内容にしたがって印刷を実行する。
【0046】
ここで、設定変更エディタ307を用いた設定変更について説明する。
【0047】
その実現方法としては、プレビュー同様、図8において「ストア」指定されたジョブに関して設定可能である。同様のフローによりスプールファイルマネージャのウィンドウ(図9)がポップアップされ、スプールされたジョブがリスト表示される。スプールファイルマネージャのウィンドウ画面(図9)上で、「ジョブ編集」が指定され、設定変更指示がされた場合、外部メモリ111に格納されている設定変更エディタ307をRAM102にロードし、設定変更エディタ307に対して、現在またはデフォルトの加工設定の表示を行うように指示する。そして図29のようなジョブ設定画面が表示される。
【0048】
設定変更エディタ307は、「ジョブ編集」が指定されたジョブのジョブ設定ファイルのスプールファイル303から取得し、そのジョブ設定ファイルに指定されている設定項目に基づいて図29のジョブ設定画面のデフォルト値を変更する。図29に示す例では、「ジョブ編集」指定されたジョブのジョブ設定ファイルには、部数:1部、印刷方法:片面、ステイプル:なし、レイアウト:1ページ/枚等が指定されていることになる。
【0049】
この設定変更エディタ307でもスプールファイル303に含まれる中間コードのページ描画ファイルをスプールファイル303に格納されているジョブ設定ファイルに含まれる加工設定の内容に従って加工し、グラフィックエンジン202を用いて自身のクライアント領域に出力することによって、図18に示す画面上の小プレビュー出力が可能となる。
【0050】
またここで、スプールファイル303に格納されているジョブ設定ファイルに含まれる加工設定の内容を変更、修正することが可能である。その際、プリンタドライバ203の設定可能な項目を設定変更エディタ307上のユーザインターフェイスに持っていても、プリンタドライバ203自身のユーザインターフェイスを呼び出しても構わない。図29に示すように、分数、印刷方法(片面、両目、製本印刷)、ステイプル(サドルフィニッシャー等)、ページレイアウト、配置順等の指定ができ、また「詳細設定」2907を押下することにより、プリンタドライバで指定できる項目の大半を設定しなおすことが可能となる。ただし、解像度、グラフィックモード等の印刷品位に関する設定の変更は許可しないものとする。
【0051】
ここで変更された変更項目は設定変更エディタ307上の認証要求に従い、変更が認証され、制御がスプールファイルマネージャ304に移行する。変更が認証されたものは、印刷設定の変更を保存することになるが、オリジナルのジョブ設定ファイルには保存せずに、ジョブ編集等で用いられるジョブ出力用設定ファイルを新たに生成して保存することになる。ジョブ出力用設定ファイルについての詳細は後述する。
【0052】
そして、ユーザがプレビューア306での確認同様、設定変更内容に従って、印刷を行うならば、スプールファイルマネージャ304上で、印刷要求を発行する。印刷要求はグラフィックエンジン202に伝えられ、ディスパッチャ301経由で、プリンタドライバ203に印刷命令が送られ、印刷が実行される。
【0053】
図4は、プリンタ1500の一例である両面印刷機能を有するカラーレーザプリンタの断面図である。
【0054】
このプリンタはホストコンピュータ3000より入力した印刷データに基づいて得られる各色毎の画像データで変調されたレーザ光をポリゴンミラー31により感光ドラム15を走査して静電潜像を形成する。そして、この静電潜像をトナー現像して可視画像を得、これを中間転写体9へ全色について多重転写してカラー可視画像を形成する。そして更に、このカラー可視画像を転写材2へ転写し、転写材2上にカラー可視画像を定着させる。以上の制御を行う画像形成部は、感光ドラム15を有するドラムユニット、接触帯電ローラ17を有する一次帯電部、クリーニング部、現像部、中間転写体9、用紙カセット1や各種ローラ3、4、5、7を含む給紙部、転写ローラ10を含む転写部及び定着部25によって構成されている。
【0055】
ドラムユニット13は、感光ドラム(感光体)15と感光ドラム15のホルダを兼ねたクリーニング機構を有するクリーナ容器14とを一体に構成したものである。このドラムユニット13はプリンタ本体に対して着脱自在に支持され、感光ドラム15の寿命に合わせて容易にユニット交換可能に構成されている。上記感光ドラム15はアルミシリンダの外周に有機光導電体層を塗布して構成し、クリーナ容器14に回転可能に支持されている。感光ドラム15は、図示しない駆動モータの駆動力が伝達されて回転するもので、駆動モータは感光ドラム15を画像形成動作に応じて反時計回り方向に回転させる。感光ドラム15の表面を選択的に露光させることにより静電潜像が形成されるように構成されている。スキャナ部30では、変調されたレーザ光を、モータ31aにより画像信号の水平同期信号を同期して回転するポリゴンミラーにより反射し、レンズ32、反射鏡33を介して感光ドラムを照射する。
【0056】
現像部は、上記静電潜像を可視画像化するために、イエロー(Y)、マゼンダ(M)、シアン(C)の現像を行う3個のカラー現像器20Y、20M、20Cと、ブラック(B)の現像を行う1個のブラック現像器21Bとを備えた構成を有する。カラー現像器20Y、20M、20C及びブラック現像器21Bには、スリープ20YS、20MS、20CS及び21BSと、これらスリープ20YS、20MS、20CS、21BSそれぞれの外周に圧接する塗布ブレード20YB、20MB、20CB及び21BBとがそれぞれ設けられる。また3個のカラー現像器20Y、20M、20Cには塗布ローラ20YR、20MR、20CRが設けられている。
【0057】
また、ブラック現像器21Bはプリンタ本体に対して着脱可能に取り付けられており、カラー現像器20Y、20M、20Cは回転軸22を中心に回転する現像ロータリー23にそれぞれ着脱可能に取り付けられている。
【0058】
ブラック現像器21Bのスリープ21BSは感光ドラム15に対して例えば300μm程度の微小間隔を持って配置されている。ブラック現像器21Bは、器内に内蔵された送り込み部材によってトナーを搬送すると共に、時計回り方向に回転するスリープ21BSの外周に塗布ブレード21BBによって塗布するように摩擦帯電によってトナーへ電荷を付与する。また、スリープ21BSに現像バイアスを印加することにより、静電潜像に応じて感光ドラム15に対して現像を行って感光ドラム15にブラックトナーによる可視画像を形成する。
【0059】
3個のカラー現像器20Y、20M、20Cは、画像形成に際して現像ロータリー23の回転に伴って回転し、所定のスリープ20YS、20MS、20CSが感光ドラム15に対して300μm程度の微小間隔を持って対向することになる。これにより所定のカラー現像器20Y、20M、20Cが感光ドラム15に対向する現像位置に停止し、感光ドラム15に可視画像が作成される。
【0060】
カラー画像形成時には、中間転写体9の1回転毎に現像ロータリー23が回転し、イエロー現像器20Y、マゼンダ現像器20M、シアン現像器20C、次いでブラック現像器21Bの順で現像工程がなされ、中間転写体9が4回転してイエロー、マゼンダ、シアン、ブラックのそれぞれのトナーによる可視画像を順次形成し、その結果フルカラー可視画像を中間転写体9上に形成する。
【0061】
中間転写体9は、感光ドラム15に接触して感光ドラム15の回転に伴って回転するように構成されたもので、カラー画像形成時に時計回り方向に回転し、感光ドラム15から4回の可視画像の多重転写を受ける。また、中間転写体9は画像形成時に後述する転写ローラ10が接触して転写材2を挟持搬送することにより転写材2に中間転写体9上のカラー可視画像を同時に多重転写する。中間転写体の外周部には、中間転写体9の回転方向に関する位置を検知するためのTOPセンサ9a及びRSセンサ9bと、中間転写体に転写されたトナー像の濃度を検知するための濃度センサ9cが配置されている。
【0062】
転写ローラ10は、感光ドラム15に対して接離可能に支承された転写帯電器を備えたもので、金属軸を中抵抗発泡弾性体により巻回することによって構成されている。
【0063】
転写ローラ10は、図4に実線で示すように中間転写体9上にカラー可視画像を多重転写している間は、カラー可視画像を乱さぬように下方に離開している。そして、上記中間転写体9上に4色のカラー可視画像が形成された後は、このカラー可視画像を転写材2に転写するタイミングにあわせてカム部材(不図示)により転写ローラ10を図示点線で示す上方に位置させる。これにより転写ローラ10は転写材2を介して中間転写体9に所定の押圧力で圧接すると共に、バイアス電圧が印加され、中間転写体9上のカラー可視画像が転写材2に転写される。
【0064】
定着部25は、転写2を搬送させながら、転写されたカラー可視画像を定着させるものであり、転写材2を加熱する定着ローラ26と転写材2を定着ローラ26に圧接させるための加圧ローラ27とを備えている。定着ローラ26と加圧ローラ27とは中空状に形成され、内部にそれぞれヒータ28、29が内蔵されている。即ち、カラー可視画像を保持した転写材2は定着ローラ26と加圧ローラ27とにより搬送されると共に、熱及び圧力を加えることによりトナーが表面に定着される。
【0065】
可視画像定着後の転写材2は、その後排紙ローラ34、35、36によって排紙部37へ排出して画像形成動作を終了する。
【0066】
クリーニング手段は、感光ドラム15上及び中間転写体9上に残ったトナーをクリーニングするものであり、感光ドラム15上に形成されたトナーによる可視画像を中間転写体9に転写した後の廃トナーあるいは、中間転写体9上に作成された4色のカラー可視画像を転写材2に転写した後の廃トナーは、クリーナ容器14に蓄えられる。
【0067】
印刷される転写材(記録用紙)2は、給紙トレイ1から給紙ローラ3により取り出されて中間転写体9と転写ローラ10との間に挟まれるようにして搬送されてカラートナー画像が記録され、定着部25を通過してトナー像が定着される。片面印刷の場合には、案内38が上方の排紙部に記録用紙を導くように搬送経路を形成するが、両面印刷に対しては、下方の両面ユニットに導くように経路を形成する。
【0068】
両面ユニットに導かれた記録用紙は、搬送ローラ40によりトレイ1の下部(二点鎖線で示す搬送経路)に一旦送り込まれた後に逆方向に搬送され、両面トレイ39に送られる。両面トレイ39上では、用紙は給紙トレイ1に載置された状態とは表裏が逆になり、また搬送方向について前後が逆になっている。この状態で再びトナー像の転写、定着を再度行うことで、両面印刷ができる。
【0069】
図5は、スプーラ302における、スプールファイル303の生成におけるページ単位保存ステップの処理をフローチャートで示したものである。この処理は、アプリケーションから印刷要求があった場合に、グラフィックエンジン202出力された描画データであるDDI関数をディスパッチャ301が受け付け、この描画データをスプーラ302に渡した後の処理である。
【0070】
まずステップ501では、スプーラ302は、アプリケーションからグラフィックエンジン202を介して印刷要求をディスパッチャ301から受けつける。前述したように、アプリケーションにおいては、図8に示すような印刷設定を入力するダイアログが印刷指示前に表示され、このダイアログから入力された印刷設定がプリンタドライバよりスプーラ302に渡される。なお、図8に示す設定入力ダイアログにおいては、801のような1物理ページにレイアウトする論理ページの数を決定するような設定項目等を含んでいる。
【0071】
ステップ502において、スプーラ302は、受け付けた印刷要求がジョブ開始要求か判定し、もしステップ502でジョブ開始要求であると判断した場合には、ステップ503に進み、スプーラ302は、中間データを一時的に保存するためのスプールファイル303をRAM102に作成する。続いて、スプーラ302は、プリンタドライバで設定されている印刷設定情報(DEVMODE)を受け取り、スプールファイル303のジョブ設定ファイルに印刷設定情報を格納する。
【0072】
続いて、ステップ504では、スプーラ302は、スプールファイルマネージャ304へ印刷処理の進捗を通知し、続くステップ505でスプーラ302のページ数カウンタを1に初期化する。ここで、スプールファイルマネージャ304においては、印刷が開始されたジョブに対するジョブの情報や加工設定である印刷設定情報をスプールファイル303のジョブ設定ファイルより読み込んでおく。
【0073】
一方、ステップ502において、スプーラ302がジョブ開始要求ではなかったと判断した場合には、ステップ506に進む。
【0074】
ステップ506では、スプーラ302は、受け付けた要求がジョブ終了要求かどうかの判別を行う。ジョブ終了要求でないと判断した場合には、ステップ507に進み、スプーラ302は、受け付けた要求が改ページかどうかの判別を行う。もしもステップ507で改ページであると判断した場合には、ステップ508に進み、スプーラ302は、スプールファイルマネージャ304へ印刷処理の進捗を通知する。そしてページ数カウンタをインクリメントする。
【0075】
ステップ507において、スプーラ302が受け付けた印刷要求が改ページではないと判断した場合には、ステップ509に進み、スプーラ302は、ページ描画ファイルへの中間コードの書き出しの準備を行う。
【0076】
次に、ステップ510では、スプーラ302は、文字やグラフィックや画像などの印刷要求である描画データを、スプールファイル303へ格納する中間データに変換処理を行う。ステップ511では、スプーラ302は、ステップ510において格納可能な形(中間データ)に変換された印刷要求をスプールファイル303のページ描画ファイルへ書き込む。その後、ステップ501に戻り、再びアプリケーションからの印刷要求を受けつける。この一連のステップ501からステップ511までの処理を、アプリケーションよりジョブ終了要求(End Doc)を受け取るまで続ける。また、スプーラ302は、同時にプリンタドライバ203からDEVMODE構造体に格納されている加工設定等の情報を取得し、ジョブ設定ファイルとしてスプールファイル303に格納する。一方、ステップ506にて、スプーラ302が、アプリケーションからの印刷要求がジョブ終了であると判断した場合には、アプリケーションからの印刷要求は全て終了であるので、ステップ512に進み、スプールファイルマネージャ304へ印刷処理の進捗を通知し、処理を終える。
【0077】
図6は、スプールファイルマネージャ304における、スプールファイル303生成プロセスと以降説明する印刷データ生成プロセスの間での制御の詳細をフローチャートで示したものである。
【0078】
ステップ601では、スプールファイルマネージャ304は、スプーラ302あるいはデスプーラ305からの印刷処理の進捗通知を受け付ける。
【0079】
ステップ602において、スプールファイルマネージャ304は、もし進捗通知が前述のステップ504において通知されるスプーラ302からの印刷開始通知であるかどうか判定し、もしそうであればステップ603へすすみ、印刷の加工設定である印刷設定情報をスプールファイル303から読み込み、ジョブの管理を開始する。一方、ステップ602において、スプーラ302からの印刷開始通知でなければステップ604へすすみ、スプールファイルマネージャ304は、進捗通知が前述のステップ508において通知されるスプーラ302からの1論理ページの印刷終了通知であるかどうか判定する。ここで1論理ページの印刷終了通知であればステップ605へ進み、スプールファイルマネージャ304は、この論理ページに対する論理ページ情報を格納する。そして、続くステップ606では、この時点でスプールが終了したn論理ページに対して、1物理ページの印刷が開始できるかを判定する。ここで、印刷可能である場合はステップ607へ進み、スプールファイルマネージャ304は、印刷する1物理ページに対して割り付けれられる論理数から物理ページ番号を決定する。
【0080】
物理ページの計算については、例えば、加工設定が1物理ページに4論理ページを配置するような4up設定の場合、第1物理ページは第4論理ページがスプールされた時点で印刷可能となり、第1物理ページとなる。続いて、第2物理ページは第8論理ページがスプールされた時点で印刷可能となる。
【0081】
また、論理ページ数の総数が1物理ページに配置する論理ページ数の倍数でなくても、ステップ512におけるスプール終了通知によって1物理ページに配置する論理ページが決定可能である。
【0082】
そして、ステップ608では、スプールファイルマネージャ304は、図10に示すような形式で、印刷可能となった物理ページを構成する論理ページ番号と、その物理ページ番号などの情報をデスプーラ305に通知する。また、スプールファイルマネージャ304は、同時に印刷設定情報をデスプーラ305に通知する。その後ステップ601に戻り、スプールファイルマネージャ304は、次の通知を待つ。本実施例においては、印刷データ1ページ、すなわち1物理ページを構成する論理ページがスプールされた時点で印刷ジョブのスプールが全て終了していなくても印刷処理が可能である。
【0083】
一方、ステップ604において、進捗通知がスプーラ302からの1論理ページの印刷終了通知でなかった場合ステップ609へ進み、スプールファイルマネージャ304は、前述のステップ512において通知されるスプーラ302からのジョブ終了通知であるかどうかを判定する。ここで、ジョブ終了通知である場合、前述のステップ606へ進む。一方、ジョブ終了通知でない場合、ステップ610へ進み、スプールファイルマネージャ304は、受け付けた通知がデスプーラ305からの1物理ページの印刷終了通知であるかどうか判定する。ここで、1物理ページの印刷終了通知である場合はステップ612へ進み、加工設定の印刷が全て終了したかを判定する。印刷終了した場合、ステップ612へ進み、デスプーラ305に印刷終了の通知を行う。一方、加工設定に対する印刷がまだ終了していないと判断した場合、前述の606へ進む。本実施例におけるデスプーラ305は同時に印刷処理を行える物理ページ数を1と想定している。
【0084】
また、ステップ608では、1物理ページの印刷処理を行うのに必要な情報をファイルに逐次保存し、再利用可能な形式にしているが、再利用不要な場合には、共有メモリ等高速な媒体を使用し、1物理ページ単位で次々と上書きする実装にして、速度とリソースを節約するような実装形式であってもよい。また、デスプールの進捗よりもスプールの進捗の方が早い場合や全ページのスプール終了後からデスプールが開始されるような場合には、ステップ608で1物理ページ毎にページ印刷可能を通知せずに、デスプール側の進捗に応じて、複数物理ページもしくは全物理ページが印刷可能になったという通知内容にして、通知回数を節約することが可能である。
【0085】
ステップ610において、入力された通知が、デスプーラ305からの1物理ページの印刷終了通知でないと判断された場合、ステップ613へ進み、スプールファイルマネージャ304は、入力された通知がデスプーラ305からの印刷終了通知かどうかを判定する。デスプーラ305からの印刷終了通知と判定された場合、ステップ614へ進み、スプールファイル303の削除を行い処理を終える。一方、デスプーラ305からの印刷終了通知でなかった場合はステップ615へ進み、その他通常処理を行い、次の通知を待つ。
【0086】
図7は、デスプーラ305における、印刷データの生成プロセスの詳細をフローチャートで示したものである。
【0087】
デスプーラ305は、スプールファイルマネージャ304からの印刷要求に応じて、スプールファイル303から必要な情報(ページ描画ファイルおよびジョブ設定ファイル)を読みだして印刷データを生成する。生成された印刷データにおけるプリンタへの転送方法については図3で説明した通りである。
【0088】
デスプーラ305の印刷データの生成では、まず、ステップ701において、前述のスプールファイルマネージャ304からの通知を入力する。続くステップ702では、入力された通知がジョブの終了通知かどうか判定し、ジョブ終了通知であるならばステップ703へ進み、終了フラグを立て、ステップ705へ進む。
【0089】
一方、ステップ702においてジョブ終了通知でない場合は、ステップ704に進み、デスプーラ305は、前述のステップ608における1物理ページの印刷開始要求が通知されたかどうか判定する。ステップ704において開始要求と判定されなかった場合は、ステップ710へ進み、その他エラー処理を行い、ステップ701へ戻り次の通知を待つ。一方、ステップ704において1物理ページの印刷開始要求と判定された場合、ステップ705へ進み、デスプーラ305は、ステップ704で通知を受けた印刷処理可能な物理ページのIDを保存する。
【0090】
続くステップ706では、デスプーラ305は、ステップ705で保存した物理ページIDのすべてのページに関して印刷処理が済んでいるかどうかを判定する。ここで全物理ページの処理が済んでいる場合は、ステップ707へ進み、前述のステップ703で終了フラグが立てられているか判定する。終了フラグが立っている場合は、ジョブの印刷が終了したとみなし、デスプーラ305の処理終了の通知をスプールファイルマネージャ304に通知し、処理を終える。ステップ707で、終了フラグが立っていないと判定された場合は、ステップ701へ戻り次の通知を待つ。一方、ステップ706で、印刷可能な物理ページが残っていると判定された場合には、ステップ708へ進み、デスプーラ305は、保存された物理ページIDから未処理の物理ページIDを順に読み出し、読み出した物理ページIDに対応する物理ページの印刷データ生成に必要な情報を読み込み、印刷処理を行う。
【0091】
印刷処理はスプールファイル303に格納された印刷要求命令をデスプーラ305においてグラフィックエンジン202が認識可能な形式、Windows(登録商標) OSではGDI関数に変換し、グラフィックエンジン202に転送する。本実施例のような、複数論理ページを1物理ページにレイアウトするような加工設定(Nページ印刷、もしくはNup印刷)については、このステップで縮小配置を考慮にいれながら変換する。必要な印刷処理が終えたならば、続くステップ709において1物理ページの印刷データ生成終了の通知をスプールファイルマネージャ304に対して行う。そしてステップ706へ戻り、ステップ705で保存しておいた印刷可能な物理ページIDすべてについて印刷処理を行うまで繰り返す。
【0092】
以上が、ディスパッチャ301、スプーラ302、スプールファイルマネージャ304、デスプーラ305を用いた印刷処理の流れである。上記のように処理することにより、スプーラ302が中間コードを生成してスプールファイル303に格納するタイミングでアプリケーション201が印刷処理から開放されるので、プリンタドライバ203に直接出力するよりも短時間で済む。また、スプールファイル303にプリンタドライバの印刷設定を踏まえた中間ファイル(ページ描画ファイル、ジョブ設定ファイル)として一時保存しているので、実際に印刷されるべき印刷プレビューをユーザに認識させることや、複数のアプリケーションにより生成した印刷ジョブの結合や並び替えが可能となり、印刷設定の変更を行う場合にも、再度アプリケーションを立ち上げて印刷をすることなしにユーザに行わせることを可能とする。
【0093】
ここで、スプーラ302を用いた印刷処理において、デスプーラ305によりグラフィックエンジン202への印刷要求時にジョブ出力用設定ファイルが生成されるが、プレビューやジョブ結合等を行う場合もジョブ出力用設定ファイルが生成される。ジョブ出力用設定ファイルは、単体ジョブの場合はジョブ設定ファイルと同等のものであり、結合ジョブの場合は複数のジョブ設定情報に基づいて生成されるものである。ここでジョブ出力用設定ファイルについて説明する。
【0094】
ジョブ設定ファイルは、主にプリンタドライバ203を介して受け取るDEVMODEの内容を保持しており、図12及び13から構成されるものである。
【0095】
まず、ジョブを識別するためのジョブ識別IDであり、本情報を保存しているファイル名や共有メモリの名称と乱数により決定される。次に、出力用紙サイズの情報であり、用紙サイズを識別するIDと組み合わせて複数もっている。後続する物理ページ単位に出力用紙サイズを変更することを可能とするためであり、各物理ページでは、用紙サイズ識別IDで指定される。次の情報は、フィニッシングに関するものであり、片面印刷、両面印刷、製本印刷のいずれが指定されているのかを示す情報である。また、有効印字領域の座標値等を示す情報があり、プレビュー指定されているか否かの情報を有している。そして次の情報はDEVMODEに関する情報であり、物理ページに割り付ける論理ページ数を示す情報であり、各論理ページがどこに配置されるのかを示す配置情報も保持している。また、DEVMODEとして、更に、付加情報(ウォーターマーク、枠付、日付、ユーザ名の付加)などを有している。
【0096】
以降、本発明であるプレビューシステムの詳細について述べる。
【0097】
図11はプレビュー画面の一例を示した図である。前述のとおり、プレビュー画面上の領域をグラフィックエンジン202に対して指定することにより、このような画面への出力が可能である。
【0098】
また、図12はスプールファイル303における印刷情報および印刷設定情報を格納した一例を示す図である。これらの情報によって、プレビューするかしないか、両面印刷をするか、1ページに縮小配置するアプリケーションからのページ数などの設定が格納される。
【0099】
また、図13はプリンタドライバから送出されるデバイス情報の一例を示した図である。スプールファイル303は例に挙げたような形式でデバイス情報を格納することが可能である。また、デバイス情報は、プリンタドライバセットアップユーティリティが工場出荷時から保持しており、プリンタドライバのインストール時に、OSの配下にファイルとして保存されるか、または、図28の2801に示すように、「デバイス情報取得(G)」ボタンを操作者がマウスを用いて押下するタイミングで、クライアントがプリンタもしくはプリントサーバに双方向通信してデバイス情報を取得してもよい。「デバイス情報取得」ボタンが押されるタイミングでプリンタドライバがネットワークや双方向インタフェースを介してプリンタと双方向通信してデバイス情報を取得する仕組みの場合は、デバイスにフィニッシングオプションが追加、変更された場合でもその都度デバイスに接続されているオプションのフィニッシング機能の取得が可能となり、使い勝手が向上する。これは、近年フィニッシング用のオプションが多様化してきており、キヤノン(株)が提供している画像処理装置である「MEDIO 600」に接続可能なオプションだけでも「サドルフィニッシャー・C2」、「フィニッシャー・C1」、「フィニッシャー・E1」、「マルチトレイ3」などが存在するからである。また、図13内の「パンチ穴位置情報」や「ステープル位置情報」などは、本実施例では、いずれもプリンタ座標系で示されている。プリンタ座標系とは、デバイスである画像処理装置の解像度に合わせてビットを持つ座標系であり、600dpi(1インチ当たり600のドットを有する)の座標系である。つまり、パンチ穴位置(X,Y)は、Xドット、Yドットの位置を示している。また、メモリの不足等によりデグレード(解像度低下)した場合は、それに応じて変更されることは言うまでもない。また、本実施例では、デバイス情報をプリンタ座標系で保持しているが、これに限るものではなく、基準点からの物理的距離であってもよく、例えば、用紙の左上にある基準点から(Xセンチ、Yセンチ)の位置というような情報の持たせ方をしてもよい。
【0100】
図14はプレビューア306がデバイス情報と描画情報をプレビューする際の処理について示したフローチャートである。
【0101】
ステップ1401において、プレビューア306は、スプールファイル303に格納されているアプリケーションからの描画データから変換された中間データを読み込む。
【0102】
ステップ1402において、プレビューア306は、図12における印刷設定情報および図13におけるデバイス情報とを含むジョブ設定ファイルの内容およびページ描画ファイルを読み込む。デバイス情報は、前述したように、OSの配下に予めファイルとして保存されているものである。取得方法としては、インストール時に保存されるタイプと、操作者の指定するタイミングでデバイスから直接取得するタイプとがある。
【0103】
ステップ1403において、プレビューア306は、読み込んだジョブ設定ファイルの内容にしたがってページ描画ファイルの中間コードの描画処理を行う。処理手順は、図6におけるスプールファイルマネージャ304の処理において、デスプーラ305との連携でなく、プレビューア306との連携に置きかえ、さらに、図7におけるデスプーラ305の処理のフローにおけるステップ705を、プリンタに対する印刷処理でなく、画面表示に置き換えた処理を行えばよい。つまり、プレビューア306は、スプールファイルマネージャ304からの通知に基づいてスプールファイル303からページ描画ファイルの中間データを読み込み、ジョブ設定ファイルの印刷設定情報に基づいてレイアウト処理(縮小、拡大、配置順序)を行い、得られた1物理ページ分の中間データをグラフィックエンジン202が解釈可能なGDI関数に変換し、グラフィックエンジン202の出力先をCRTディスプレイなどの表示手段にして、グラフィックエンジン202がディスプレイドライバに対してDDI関数をはき出させるようにする。なお、プレビューア306は、デスプーラ305のように描画処理を行ってGDI関数をはき出すだけではなく、デバイス情報に基づく描画処理も同時に行う。
【0104】
ステップ1404において、プレビューア306は、中間データに基づく描画データの座標情報とデバイス情報の座標情報から、座標の重なりがないかを判定し、重なりがあればステップ1405に進み、なければステップ1406に進み、ユーザからのイベントをまつ。この判断は、図13のデバイス情報に示されるように、例えば、処理中の印刷ジョブにパンチ穴の指定がなされている場合、パンチ穴位置情報とパンチ穴サイズ情報とから、プリンタ座標系のどの位置に、どのくらいの大きさでパンチ穴がなされるのかを判断できる。よって、描画データの座標系の位置と、パンチ穴の位置とから、重なりがないかを判定する。なおステープルについても同様である。また、デバイス情報を前述したような物理的距離で保持している場合は、物理的距離をプリンタ座標系に変換する必要がある。まず、センチメートルをインチに変更し、更にプリンタドライバの「印刷目的」で操作者が設定した印刷解像度に基づいて、インチをドット数に変更する。ここで、「印刷目的」で「文書・表」となっている場合は、印刷解像度は600dpiであり、「クイック文書・表」となっている場合は、印刷解像度は300dpiの設定となっている。
【0105】
ステップ1404で座標の重なりが検出された場合は、ステップ1405において、プレビューア306は、設定の不具合として警告ダイアログを表示する。図16はその表示例であり、ここでは、警告に対して、印刷続行、修正、印刷中止の選択肢を提供している。
【0106】
ステップ1406において、プレビューア306は、ユーザからのイベントを待ち、イベント入力があればステップ1407に進む。
【0107】
ステップ1407において、イベントが印刷続行であれば、ステップ1410へすすみ、プレビューア306は印刷続行であると判断し、デスプーラ305に通知し、デスプーラに再度中間データからGDI関数を生成させて印刷を行わせる。また、ユーザからのイベントがその他のイベントならばステップ1408へ進む。
【0108】
ステップ1408において、イベントが修正であれば、ステップ1411へすすみ、プレビューア306は、プリンタドライバのプロパティ画面を開き、操作者に印刷体裁の修正処理を行わせる。ここで操作者が行うことのできる修正処理は、パンチやステープル処理のキャンセル、用紙サイズの変更、Nup印刷の変更、縮小などによる印刷マージン(上下左右)の変更等であり、描画データ自身に関する修正は行えない。つまり、プリンタドライバのプロパティ画面で設定できる印刷設定情報に限る。描画データ自身を変更したい場合は、「印刷中止」を選択することになる。また、ステップ1408において、イベントがその他のイベントなら、ステップ1409へ進む。
【0109】
ステップ1409において、イベントが印刷中止であるとして印刷を中止して、プリンタドライバの処理を中止する。本実施例では、プリンタドライバとは、DDI関数からプリンタに出力するPDLを生成するプリンタドライバ203だけでなく、ディスパッチャ301、スプーラ302、スプールファイルマネージャ304、デスプーラ305、プレビューア306である、デバイス情報を考慮したプレビューができるモジュールを含んでおり、このプリンタドライバベンダーがOSに提供する部分を統括してプリンタドライバと呼ぶ。また、ディスパッチャ301、スプーラ302、スプールファイルマネージャ304、デスプーラ305、プレビューア306は、プリンタドライバ203とは独立したソフトウェアとしても提供できるが、デバイス情報の取得する部分が一部プリンタドライバと連携しなければならない。また、プリンタドライバ203の処理以降で、本発明のプレビュー機能を実現することも可能であるが、修正や印刷中止を行うためには、プリンタドライバ203に描画データを渡す前に処理する方が効率がよい。また、開発段階においても、プリンタドライバ203は、言語に依存されるものであり、キヤノン(株)のプリンタにおいても、近年はLIPS III、LIPSIVの2つの言語レベルがあり、また、PCLやESC/P、ESC/Page、Postscript等の言語があり、それぞれのプリンタドライバでプレビュー機能ができるモジュールを開発するのは、開発費上の問題からナンセンスであり、プリンタドライバ203に描画データを渡す前に処理した方が、OSレベルでの開発だけで済むので非常に効率がいいのである。なぜなら、現在OSとしては、米国マイクロソフト社のWindows(登録商標)95、98、NT、米国アップル社のOS8、更にはLinux等についての開発すれば、プリンタ言語間についての問題がなくなるからである。
【0110】
図15は図14のステップ1408における修正処理について詳細に説明したフローチャートである。
【0111】
まず、ステップ1501において、プレビューア306は、ユーザからのイベントを待つ。この時点では、前述したように、プリンタドライバのプロパティ画面が表示されており、図13における“修正”ボタンはグレイアウトされるなど、無効なボタンとして表示してある。
【0112】
ステップ1502において、図27のプリンタドライバのプロパティ画面で「OK」ボタン2705が操作者によりマウス等のポインティングデバイスを介して押下されたならば、プレビューア306は、イベントが印刷続行であると判断し、ステップ1503へ進む。ステップ1503において、プレビューア306は、ステップ1506で後述するメモリに格納された修正内容をスプールファイル303へ更新し、印刷を行い、処理を抜ける。
【0113】
ステップ1504において、図27のプリンタドライバのプロパティ画面で「更新」ボタン2707が操作者によりマウス等のポインティングデバイスを介して押下されたならば、プレビューア306は、修正内容に関するイベントと判断し、ステップ1506へ進む。
【0114】
ステップ1506において、プレビューア306は、図27に示すようなプリンタドライバのプロパティ画面で現在設定されている印刷設定情報をプリンタドライバ203から取得し、取得された印刷設定情報をスプールファイル303に格納し、既に記憶されている印刷設定情報を更新する。
【0115】
ステップ1504で修正内容に関するイベントでもないと判定された場合、例えば、図27のプロパティ画面において「キャンセル」ボタン2706が押下された場合は、ステップ1505において、プレビューア306は、イベントが印刷中止であるとして印刷を中止する。
【0116】
以上の処理のとおり、プレビューシステムにおいて、デバイス情報と描画情報を同時にプレビューし、さらに不具合が検知された場合、警告を促し、修正を可能にすることによって、ユーザの要求に合致した出力を提供することが可能となる。
【0117】
(第二実施例)
本実施例においては、両面印刷可能デバイスに対して印刷を行う場合のプレビューシステムに関する処理を説明する。なお、第二実施例の構成は、第一実施例で説明したものと同様であるので、ハード、ソフトモジュール構成の説明を省略する。符号は第一実施例で用いたものを用いて説明を行う。
【0118】
第一実施例の図12に示すとおり、印刷設定情報には両面印刷を行うかどうかの設定を含んでいる。
【0119】
また、図17はプレビューア306が両面印刷を行う印刷データに対して、どのような表示を行うかを設定するためのダイアログの一例である。このダイアログは、プリンタドライバ202から設定可能でもよい。その場合は、設定内容が図12のような印刷設定の変数として格納されることになる。また、このダイアログは、プレビューア306から表示設定可能でもあり、プレビューを行う際に、プレビューア306が図12に示すダイアログを表示し、操作者に指定させることになる。本実施例においては、表示の設定はプレビューア306から行うことを想定して説明を行う。図18は、3ページからなる印刷ジョブにおいて、図17における設定に対応する表示を示した図である。
【0120】
図18(a)は、図17における「全ページ表示」を選択した際の表示である。この場合、あたかも裏面が別の用紙のように表示されるが、全ページの表示が可能となる。この「全ページを表示」を選択した場合、他の選択肢はグレイアウトされ、選択されなくなる。
【0121】
図18(b)は、図17における「表面のみ表示」を選択し、かつ「裏を透かしたプレビュー」を選択せず、「奇数ページを表面にする」を選択した際の表示である。
【0122】
図18(c)は、図17における「表面のみ表示」を選択し、かつ「裏を透かしたプレビュー」および「奇数ページを表面にする」を選択しない場合の表示である。
【0123】
図18(d)は、図17における「表面のみ表示」を選択し、かつ「裏を透かしたプレビュー」を選択し、「奇数ページを表面にする」を選択した際の表示である。
【0124】
図18(e)は、図17における「表面のみ表示」を選択し、かつ「裏を透かしたプレビュー」を選択し、「奇数ページを表面にする」を選択しない場合の表示である。
【0125】
ここで、図17の「表面のみ表示」を選択した場合は、「裏を透かしたプレビュー」「奇数ページを表面にする」が選択可能である。
【0126】
全ページ表示OFFにした場合の選択肢およびその際の図18との対応表は図19に示す通りである。
【0127】
図20は図18(a)の表示を行うための処理を示すフローチャートである。
【0128】
ステップ2001において、プレビューア306は、カウンタiを1にセットする。
【0129】
ステップ2002において、プレビューア306は、印刷設定情報から印刷ジョブのページ数を入力する。
【0130】
ステップ2003において、プレビューア306は、カウンタiが頁数をこえたか判定し、こえたならばプレビュー処理を終えたとして処理を抜ける。こえていなければステップ2004へ進む。
【0131】
ステップ2004において、プレビューア306は、プレビュー画面内に第iページの描画領域を決定する。
【0132】
ステップ2005において、プレビューア306は、描画領域に対して第iページの描画を行う。この描画処理は第一実施例で説明したように、スプールファイル303から読み出した中間データを描画データであるGDI関数に変更してグラフィックエンジン202に出力する処理のことである。
【0133】
ステップ2006において、プレビューア306は、カウンタiを1増加させ、ステップ2002に処理を戻し、次ページのプレビュー処理を行う。
【0134】
図21は図18(b)の表示を行うための処理を示すフローチャートである。
【0135】
ステップ2101において、プレビューア306は、カウンタiを1にセットする。
【0136】
ステップ2102において、プレビューア306は、印刷設定情報から印刷ジョブのページ数を入力する。
【0137】
ステップ2103において、プレビューア306は、カウンタiが頁数をこえたか判定し、こえたならばプレビュー処理を終えたとして処理を抜ける。こえていなければステップ2104へ進む。
【0138】
ステップ2104において、プレビューア306は、プレビュー画面内に第iページの描画領域を決定する。
【0139】
ステップ2105において、プレビューア306は、描画領域に対して第iページの描画を行う。
【0140】
ステップ2106において、プレビューア306は、カウンタiを2増加させ、ステップ2102に処理を戻し、次の奇数ページのプレビュー処理を行う。
【0141】
図22は図18(c)の表示を行うための処理を示すフローチャートである。
【0142】
ステップ2201において、プレビューア306は、カウンタiを1にセットする。
【0143】
ステップ2202において、プレビューア306は、印刷設定情報から印刷ジョブのページ数を入力する。
【0144】
ステップ2203において、プレビューア306は、カウンタiが頁数をこえたか判定し、こえたならばプレビュー処理を終えたとして処理を抜ける。こえていなければステップ2204へ進む。
【0145】
ステップ2204において、プレビューア306は、プレビュー画面内に第iページの描画領域を決定する。
【0146】
ステップ2205において、プレビューア306は、描画領域に対して第iページの描画を行う。
【0147】
ステップ2206において、プレビューア306は、カウンタiを2増加させ、ステップ2202に処理を戻し、次の偶数ページのプレビュー処理を行う。
【0148】
図23は図18(d)の表示を行うための処理を示すフローチャートである。
【0149】
ステップ2301において、プレビューア306は、カウンタiを1にセットする。
【0150】
ステップ2302において、プレビューア306は、印刷設定情報から印刷ジョブのページ数を入力し、更に図25に示す濃度調整のダイアログで操作者により設定入力された裏面の描画濃度値を入力する。図25の濃度調整のダイアログは、図17の両面印刷時の表示設定ダイアログで操作者が「裏を空かしたプレビュー」をチェックを行った状態で「OK」ボタンが押下された場合に、表示されるものとする。
【0151】
ステップ2303において、プレビューア306は、カウンタiが頁数をこえたか判定し、こえたならばプレビュー処理を終えたとして処理を抜ける。こえていなければステップ2304へ進む。
【0152】
ステップ2304において、プレビューア306は、画面内に第iページおよび第(i+1)ページの描画領域を決定する。これらの描画領域は同一座標となる。
【0153】
ステップ2305において、プレビューア306は、描画領域に対して第(i+1)ページの描画を行う。この際の描画は濃度を薄くし、反転させて描画する。また反転処理は、中間データから描画データを再生成する際に、反転指示する命令と描画濃度値に基づく濃度命令とを付加してグラフィックエンジン202に出力する。
【0154】
ステップ2306において、プレビューア306は、描画領域に対して第iページの描画を行う。この際の描画は第(i+1)ページと同じ領域に上書きするので、第iページにおいて描画のない座標については第(i+1)ページの描画を消さないように上書き描画を行う。
【0155】
ステップ2307において、プレビューア306は、カウンタiを2増加させ、ステップ2302に処理を戻し、次のページのプレビュー処理を行う。
【0156】
図24は図18(e)の表示を行うための処理を示すフローチャートである。
【0157】
ステップ2401において、プレビューア306は、カウンタiを1にセットする。
【0158】
ステップ2402において、プレビューア306は、印刷設定情報から印刷ジョブのページ数を入力し、更に前述した図25の濃度調整のダイアログで操作者により設定入力された裏面の描画濃度値を入力する。
【0159】
ステップ2403において、プレビューア306は、カウンタiが頁数をこえたか判定し、こえたならばプレビュー処理を終えたとして処理を抜ける。こえていなければステップ2404へ進む。
【0160】
ステップ2404において、プレビューア306は、画面内に第iページおよび第(i+1)ページの描画領域を決定する。これらの描画領域は同一座標となる。
【0161】
ステップ2405において、プレビューア306は、描画領域に対して第iページの描画を行う。この際の描画は濃度を薄くし、反転させて描画する。
【0162】
ステップ2406において、プレビューア306は、描画領域に対して第(i+1)ページの描画を行う。この際の描画は第(i+1)ページと同じ領域に上書きするので、第iページにおいて描画のない座標については第(i+1)ページの描画を消さないように上書き描画を行う。
【0163】
ステップ2407において、プレビューア306は、カウンタiを2増加させ、ステップ2402に処理を戻し、次のページのプレビュー処理を行う。
【0164】
以上の処理により、両面印刷におけるプレビューにおいて、複数の表示方法を提供可能となる。
【0165】
上記第一実施例及び第二実施例の説明は、図8のプリンタドライバのプロパティにおいて、出力先の選択803を「プレビュー」もしくは「ストア」とした場合のものである。ここで、「ストア」とした場合について、説明を補足する。
【0166】
前述したように、出力先として「ストア」が選択された場合は、中間データとしてページ描画ファイル及びジョブ設定ファイルがスプールファイル303に格納された時点で、スプールファイルマネージャのウィンドウ図9がポップアップされる。ウィンドウ903には、中間データ(ページ描画ファイル及びジョブ設定ファイル)としてスプールされているファイルがリスト表示されている。リスト表示されているアイコンにマウスを近づけると、マウスとアイコンとの重なりが判断され、重なっていると判断されると、アイコン近傍にジョブ設定情報が表示される。ここでは、「Job1」は、600dpi、1ページ印刷、片面印刷の設定となっていることがわかる。またページ数は8ページである。
【0167】
このジョブに対して、「ジョブ編集」を選択すると、図29のユーザインタフェースが表示される。この図において、2901は、ジョブ名称であり、名称の変更をすることができる。2902は、小プレビューを表示させるウィンドウであり、ここに表示されているプレビューもまた、プレビューア306により生成されたものである。またプレビューでは、必要な用紙枚数(物理ページ枚数)をカウントして表示している。「Job1」は8ページの用紙を必要とする。
【0168】
2903は「ページの削除」ボタンであり、このボタンをユーザが押下した場合に、ウィンドウ2902で指定されているページが削除される。指定されているページは図32の「Job1−3」の部分のように枠で囲まれているのでユーザが認識可能となっている。図32では、「Job1−4」のページが削除されている。ここで、ページの削除指示によって論理ページがプレビューから削除されるが、実際のページ描画ファイルの削除は行わずに、ジョブ設定ファイルのコピーであるジョブ出力用ファイルを生成し、そこで使用する論理ページ番号を変更することにより実現する。こうすることにより、「初期状態に戻す」ボタンが押下された場合に、今まで削除した論理ページの復活を可能とする。
【0169】
2904は「プレビュー」ボタンであり、このボタンをユーザが押下した場合に、図11に示すような大きなプレビューが表示されることになる。プレビューの作成方法は前述したように小プレビューも大プレビューも同様であり、拡大率が異なるだけである。
【0170】
2905は、印刷方法を変更するプルダウンメニューであり、「片面印刷」「両面印刷」「製本印刷」のいずれかを指定することができる。図29では「片面印刷」時のプレビューとなっているが、この印刷方法を「両面印刷」と変更することにより、図30のようにプレビュー画面が自動的に切り替わる。図30の画面では、「両面印刷」がわかるように、表面の右下を手前に折っており、裏面の左下を奥に折っているプレビューとなっている。また、用紙枚数が半分となるので、表面と裏面の間に用紙枚数を表示している。これは、プレビューア306のプレビュー処理時に、スプールファイル303からジョブ設定情報とページ描画ファイルを読み込みグラフィックエンジン202にGDI関数を出力する際に、スプールファイルマネージャ304からスプールファイルマネージャのウィンドウのジョブ編集(図29)において設定されている印刷設定を取得し、両面印刷時にはページカウントを半分にすることにより実現する。また、スプールファイルマネージャのウィンドウにおいて、印刷設定が変更される毎に、スプールファイル303のジョブ設定ファイルのコピーを生成し、そのファイルに設定変更を書き換え、プレビュー時にプレビューア206がその変更されているジョブ設定ファイルを読み込むことにより実現することもできる。
【0171】
2906は、ページレイアウトを変更するプルダウンメニューであり、「1ページ/枚」「2ページ/枚」「4ページ/枚」「8ページ/枚」「2×2ポスター」「3×3ポスター」「4×4ポスター」のいずれかを指定することができる。図29では「1ページ/枚」時のプレビューとなっているが、このページレイアウトを「2ページ/枚」と変更することにより、図31のようにプレビューが面が自動的に切り替わる。図31の画面では、「2ページ/枚」のページレイアウトがわかるように、1枚の用紙(1物理ページ)に2つの論理ページが描画されている。なお、図31では両面印刷なので、用紙1枚に対して、表裏合わせて4論理ページが描画されている。
【0172】
2907は、詳細設定を変更するためのボタンであり、このボタンを押下することにより、図27のプリンタドライバのプロパティ画面が表示される。ここで、印刷設定の詳細な変更が可能となる。プリンタドライバのプロパティ画面において設定が変更され「OK」ボタンが押下されると、図29のジョブ編集画面において、小プレビューが印刷設定に対応して変更されることになる。
【0173】
このように、プリンタドライバの出力先をストアとして中間ファイルでスプールファイル303に保持しておくことにより、プレビューが可能となり、更には印刷設定の変更ができ、その変更に応じてプレビューを表示できるので、ユーザの使い勝手がよくなる。
【0174】
(第三実施例)
実施例2においては、両面印刷可能デバイスに対して印刷を行う場合のプレビューシステムにおいて、ページ数を確定してからプレビュー処理を行う処理について説明したが、本実施例では、ページ数を確定する以前からプレビュー処理を行うことも可能である。
【0175】
具体的には、図7におけるステップ705に対して、図26に示す処理を行えば良い。図26は、デスプーラ305とプレビューア306の処理を説明するフローチャートである。
【0176】
ステップ2601において、デスプーラ305は、印刷要求通知されたページ番号を取得する。
【0177】
ステップ2602において、デスプーラ305は、予め操作者により図17のダイアログで設定入力されている表示設定情報を取得し、印刷要求されたページ番号がプレビューできるページ番号であるか判定する。例えば、図18(b)においては、偶数ページのみの描画となるので、プレビュー不可能として、ステップ701に戻る。また、図18(d)においては、偶数ページからの描画を行うので、描画は行わずステップ701に戻る。このように、プレビューが不可能となったケースは、ステップ706において、印刷終了通知を2物理ページ分まとめて送出することとなる。
【0178】
また、上記以外についてはプレビュー可能となるのでステップ2603へ進む。
【0179】
ステップ2603において、デスプーラ305はプレビューア306を起動して処理中のページ番号を通知し、プレビューア306は指定されたページのプレビュー描画処理を行う。描画方法については、実施例2におけるそれぞれの描画方法に従う。
【0180】
以上のステップにより、ページ数を確定する前にプレビュー処理を行うことが可能である。
【0181】
なお、本発明は、複数の機器(例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(複写機、プリンタ、ファクシミリ装置など)に適用してもよい。
【0182】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体を、システムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成される。
【0183】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0184】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。
【0185】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【0186】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【図面の簡単な説明】
【0187】
【図1】本発明の一実施例を示す印刷制御装置の構成を説明するブロック図である。
【図2】プリンタが接続されたホストコンピュータの典型的なプリントシステムの構成を示すブロック図である。
【図3】アプリケーションからの印刷命令をプリンタ制御コマンドに変換する前に、一旦中間コードスプールするプリントシステムの構成を示すブロック図である。
【図4】本発明におけるプリンタについて説明した図である。
【図5】スプーラ305における処理を示したフローチャートである。
【図6】スプールファイルマネージャ304における印刷制御について示したフローチャートである。
【図7】デスプーラ305における処理を示したフローチャートである。
【図8】プリンタドライバの印刷設定画面の一例である。
【図9】スプールファイルをリスト表示した画面の一例である。
【図10】スプールファイルマネージャ304からデスプーラ305に対して物理ページの印刷要求を行う際に渡すデータ形式の一例を示した図である。
【図11】プレビュー画面の一例を示した図である。
【図12】スプールファイル303における印刷設定を格納した一例を示す図である。
【図13】プリンタドライバから送出されるデバイス情報の一例を示した図である。
【図14】プレビュー上で描画情報とデバイス情報との不具合を警告する処理を説明したフローチャートである。
【図15】不具合修正処理の一例を示したフローチャートである。
【図16】警告ダイアログの一例を示す図である。
【図17】プレビューア306が両面印刷を行う印刷データに対して、どのような表示を行うかを設定するためのダイアログの一例である。
【図18】(a)は図17における“全ページ表示”を選択した際の表示である。(b)は図17における“表面のみ表示”を選択し、かつ“裏を透かしたプレビュー”を選択しない場合の表示である。(c)は図17における“表面のみ表示”を選択し、かつ“裏を透かしたプレビュー”および“奇数ページを表面にする”を選択しない場合の表示である。(d)は図17における“表面のみ表示”を選択し、かつ“裏を透かしたプレビュー”を選択し、“奇数ページを表面にする”を選択した際の表示である。(e)は図17における“表面のみ表示”を選択し、かつ“裏を透かしたプレビュー”を選択し、“奇数ページを表面にする”を選択しない場合の表示である。
【図19】全ページ表示OFFにした場合の選択肢およびその際の図18との対応表である。
【図20】図18(a)の表示を行うための処理を示すフローチャートである。
【図21】図18(b)の表示を行うための処理を示すフローチャートである。
【図22】図18(c)の表示を行うための処理を示すフローチャートである。
【図23】図18(d)の表示を行うための処理を示すフローチャートである。
【図24】図18(e)の表示を行うための処理を示すフローチャートである。
【図25】裏面プレビューに対する濃度調整を設定するダイアログの一例である。
【図26】実施例3において、図7におけるステップ705における処理をしめすフローチャートである。
【図27】印刷設定情報を設定する際のプリンタドライバのプロパティ画面の説明図である。
【図28】デバイス情報をプリンタから取得する指定を行う際のプリンタドライバのプロパティ画面の説明図である。
【図29】スプールファイルに保持されている中間ファイルのジョブを編集する際のジョブ編集面の説明図である。
【図30】ジョブ編集画面において、両面印刷時の小プレビューを説明する説明図である。
【図31】ジョブ編集画面において、ページレイアウトを変更した際の小プレビューを説明する説明図である。
【図32】ジョブ編集画面において、ページの削除を行った際の小プレビューを説明する説明図である。
【符号の説明】
【0188】
1 CPU
2 RAM
3 ROM
4 システムバス
12 CPU
13 ROM
19 RAM
3000 ホストコンピュータ
1500 プリンタ
【技術分野】
【0001】
本発明は,プリンタに印刷データを送信するパーソナルコンピュータ等の情報処理装置およびその制御方法およびプログラムを格納した記憶媒体に関するもので,特に印刷指示時に印刷データに基づくプレビューを印刷結果を踏まえて表示する情報処理装置および方法およびコンピュータ読み取り可能なプログラムが格納された記憶媒体に関するものである。
【背景技術】
【0002】
ステープル機能やパンチ穴をあけるなどのフィニッシング用のデバイス機能が付属した印刷装置が普及している。そのような印刷装置に対して、クライアントであるパーソナルコンピュータからの印刷指示に応じて、前記印刷装置のデバイス機能を使用した印刷が行える。
【0003】
また、デバイス機能として、用紙の両側に印刷可能となる両面印刷機能をもった印刷装置の普及している。
【0004】
また、クライアントのアプリケーションからの印刷指示時にプレビューを行うことによって、印刷データがどのように印刷出力されるのかを操作者に判断できるようになっているアプリケーションやプリンタドライバが近年存在している。
【特許文献1】特開平11−136528号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、ステープル、パンチ穴などに代表されるように、印刷装置であるデバイスがもつフィニッシング機能をプレビューするシステムは存在せず、より正確な出力をプレビューすることはできていなかった。このため、印刷プレビューを行った場合、操作者は印刷データの印刷位置を判断することができるが、デバイスがもつフィニッシング機能を利用した場合、そのフィニッシング機能によりどのような印刷出力の結果が得られるのか判断することができず、印刷データの配置位置にパンチ穴が開けられたり、操作者にとって所望としない印刷出力がなされることがあった。
【0006】
また、上記のようなデバイス機能の利用において印刷結果に不具合が生じた場合、その不具合を印刷出力する前に知らせる方法は存在していなかった。
【0007】
さらに、従来のプレビュー機能は、論理ページのプレビューであるため、両面印刷時には両面であるにもかかわらず、プレビューには両面印刷と無関係なプレビューが表示されたり、印刷用紙1ページに複数ページの描画データが縮小配置されるNup印刷をプリンタドライバで指定した時には、プレビューには論理ページのプレビューが表示され、実際に印刷用紙に出力される体裁が表示されないでいた。
【0008】
本発明は上記従来技術に鑑みてなされたものであり、デバイスの機能と印刷設定をプレビューし、不具合のない印刷結果を提供することを目的とする。
【0009】
また、両面印刷やNup印刷をプリンタドライバで指定いた時に、同時に表裏両面のプレビューを表示したり、物理ページの印刷プレビューを表示できる仕組みを提供することを目的とする。
【課題を解決するための手段】
【0010】
上記目的を達成するために、本発明は次のような構成からなる。すなわち、アプリケーションから出力されるデータに基づいて印刷装置が解釈できる印刷データを生成するプリンタドライバを備えた情報処理装置であって、前記プリンタドライバの設定画面を用いて印刷設定情報を設定する設定手段と、前記アプリケーションから出力されるデータと前記印刷設定情報とに基づくプレビューの画像を表示する表示手段とを有し、前記表示手段は、両面印刷の指定が前記印刷設定情報に含まれる場合、シートの表面に印刷されるページのプレビューの画像と当該シートの裏面に印刷されるページのプレビューの画像とが表示される1枚のシートのためのプレビューの画像を表示することを特徴とする。
【0011】
また、アプリケーションによるデータの出力から、プリンタドライバによる印刷データの生成までの処理中に、該アプリケーションによって出力されるデータに基づく印刷プレビューを表示制御する情報処理装置であって、前記アプリケーションから出力されるデータに係る描画データを、オペレーティングシステムの描画部から受信する受信手段と、前記プリンタドライバの印刷設定画面を介して設定されている印刷設定情報を取得する取得手段と、前記受信手段にて受信された描画データと、前記取得手段により取得される印刷設定情報とに基づいて、印刷プレビュー画像を表示する表示制御手段とを備え、前記取得手段は、印刷設定情報として論理ページのレイアウト情報を取得し、前記表示制御手段は、前記受信手段によって受信された前記描画データと、前記取得手段によって取得された前記レイアウト情報とに基づいて印刷プレビュー画像を表示することを特徴とする。
【発明の効果】
【0012】
以上説明したように、本発明では、印刷設定を考慮したプレビューを実現し、不具合のない印刷結果を提供することが可能となる。
【発明を実施するための最良の形態】
【0013】
(第一実施例)
以下、本発明を適用するのに好適である実施例について説明を行う。
【0014】
図1は本発明の実施例を示すプリンタ制御システムの構成を説明するブロック図である。なお、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても、LAN,WAN等のネットワークを介して接続が為され処理が行われるシステムであっても本発明を適用できる。
【0015】
同図において、ホストコンピュータ3000は、ROM103のプログラム用ROMあるいは外部メモリ111に記憶された文書処理プログラム等に基づいて図形、イメージ、文字、表(表計算等を含む)等が混在した文書処理を実行するCPU101を備え、システムバス104に接続される各デバイスをCPU1が総括的に制御する。また、このROM103のプログラム用ROMあるいは外部メモリ111には、CPU101の制御プログラムであるオペレーティングシステムプログラム(以下OS)等を記憶し、ROM103のフォント用ROMあるいは外部メモリ111には上記文書処理の際に使用するフォントデータ等を記憶し、ROM103のデータ用ROMあるいは外部メモリ111には上記文書処理等を行う際に使用する各種データを記憶する。RAM102は、CPU101の主メモリ、ワークエリア等として機能する。
【0016】
キーボードコントローラ(KBC)105は、キーボード109や不図示のポインティングデバイスからのキー入力を制御する。CRTコントローラ(CRTC)106は、CRTディスプレイ(CRT)110の表示を制御する。107はディスクコントローラ(DKC)で、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、プリンタ制御コマンド生成プログラム(以下プリンタドライバ)等を記憶するハードディスク(HD)、フロッピー(登録商標)ディスク(FD)等の外部メモリ111とのアクセスを制御する。プリンタコントローラ(PRTC)108は、双方向性インターフェース(インターフェース)121を介してプリンタ1500に接続されて、プリンタ1500との通信制御処理を実行する。また、印刷装置は、複数の情報処理装置によりシェアされることが望まれており、LANを構築した場合には、複数の印刷装置が存在することが考えられるので、121は、イーサネット(登録商標)等のネットワークであることが望まれる。
【0017】
なお、CPU101は、例えばRAM102上に設定された表示情報RAMへのアウトラインフォントの展開(ラスタライズ)処理を実行し、CRT110上でのWYSIWYGを可能としている。また、CPU101は、CRT110上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウインドウを開き、種々のデータ処理を実行する。ユーザは印刷を実行する際、印刷の設定に関するウインドウを開き、プリンタの設定や、印刷モードの選択を含むプリンタドライバに対する印刷処理方法の設定を行える。
【0018】
プリンタ1500は、CPU112により制御される。プリンタCPU112は、ROM113のプログラム用ROMに記憶された制御プログラム等あるいは外部メモリ114に記憶された制御プログラム等に基づいてシステムバス115に接続される印刷部(プリンタエンジン)117に出力情報としての画像信号を出力する。また、このROM113のプログラムROMには、CPU112の制御プログラム等を記憶する。ROM113のフォント用ROMには上記出力情報を生成する際に使用するフォントデータ等が記憶され、ROM113のデータ用ROMには、ハードディスク等の外部メモリ114がないプリンタの場合には、ホストコンピュータ上で利用される情報等が記憶されている。
【0019】
CPU112は入力部118を介してホストコンピュータとの通信処理が可能となっており、プリンタ内の情報等をホストコンピュータ3000に通知できる。RAM119は、CPU112の主メモリや、ワークエリア等として機能するRAMで、図示しない増設ポートに接続されるオプションRAMによりメモリ容量を拡張することができるように構成されている。なお、RAM119は、出力情報展開領域、環境データ格納領域、NVRAM等に用いられる。前述したハードディスク(HD)、ICカード等の外部メモリ114は、メモリコントローラ(MC)120によりアクセスを制御される。外部メモリ114は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。また、118は前述した操作パネルで操作のためのスイッチおよびLED表示器等が配されている。
【0020】
また、前述した外部メモリ114は1個に限らず、複数個備えられ、内蔵フォントに加えてオプションカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていてもよい。更に、図示しないNVRAMを有し、操作パネル1501からのプリンタモード設定情報を記憶するようにしてもよい。
【0021】
図2は、プリンタ等の印刷装置が直接接続されているか、あるいはネットワーク経由で接続されているホストコンピュータにおける典型的な印刷処理の構成図である。アプリケーション201、グラフィックエンジン202、プリンタドライバ203、およびシステムスプーラ204は、外部メモリ111に保存されたファイルとして存在し、実行される場合にOSやそのモジュールを利用するモジュールによってRAM102にロードされ実行されるプログラムモジュールである。また、アプリケーション201およびプリンタドライバ203は、外部メモリ111のFDや不図示のCD−ROM、あるいは不図示のネットワークを経由して外部ディスク111のHDに追加することが可能となっている。外部メモリ111に保存されているアプリケーション201はRAM102にロードされて実行されるが、このアプリケーション201からプリンタ1500に対して印刷を行う際には、同様にRAM102にロードされ実行可能となっているグラフィックエンジン202を利用して描画データの出力を行う。ここで、米国マイクロソフト社のWindows(登録商標) OSを用いて説明を行う。Windows(登録商標)では、OSの描画手段であるグラフィックエンジン202は、一般にGDI(Graphic Device Interface)と呼ばれ、アプリケーションは、グラフィックエンジンであるGDIに対してGDI関数と呼ばれる描画データを出力する。
【0022】
グラフィックエンジン202は、印刷装置ごとに用意されたプリンタドライバ203を同様に外部メモリ111からRAM102にロードし、アプリケーション201からのGDI関数の出力をライブラリに基づいてDDI関数(Device Driver Interface)に変換して、プリンタドライバ203へDDI関数を出力する。プリンタドライバ203は、グラフィックエンジン202から受け取ったDDI関数に基づいて、プリンタが認識可能な制御コマンド、例えばPDL(PageDescriptionLanguage)に変換する。変換されたプリンタ制御コマンドは、OSによってRAM102にロードされたシステムスプーラ204を経てインタフェース121経由でプリンタ1500へ印刷データとして出力される仕組みとなっている。
【0023】
本実施形態の印刷システムは、図2で示すプリンタとホストコンピュータからなる印刷システムに加えて、更に第3図に示すように、アプリケーションからの印刷データを一旦中間コードデータでスプールする構成を有する。
【0024】
図3は、図2のシステムを拡張したもので、グラフィックエンジン202からプリンタドライバ203へ印刷命令を送る際に、一旦中間コードからなるスプールファイル303を生成する構成をとる。図2のシステムでは、アプリケーション201が印刷処理から開放されるのはプリンタドライバ203がグラフィックエンジン202からのすべての印刷命令をプリンタの制御コマンドへ変換し終った時点である。これに対して、図3のシステムでは、スプーラ302がすべての印刷命令を中間コードデータに変換し、スプールファイル303に出力した時点である。通常、後者の方が短時間で済む。また、図3で示すシステムにおいては、スプールファイル303の内容に対して加工することができる。これによりアプリケーションからの印刷データに対して、拡大縮小や、複数ページを1ページに縮小して印刷する等、アプリケーションの持たない機能を実現する事ができる。
【0025】
これらの目的のために、図2のシステムに対し、図3の様に中間コードデータでスプールする様、システムの拡張がなされてきている。なお、印刷データの加工を行うためには、通常プリンタドライバ203が提供するウインドウから設定を行い、プリンタドライバ203がその設定内容をRAM102上あるいは外部メモリ111上に保管する。
【0026】
以下、図3の詳細を説明する。図に示す通り、この拡張された処理方式では、グラフィックエンジン202からの印刷命令であるDDI関数をディスパッチャ301が受け取る。ディスパッチャ301がOSの描画手段であるグラフィックエンジン202から受け取った印刷命令であるDDI関数が、アプリケーション201からグラフィックエンジン202へ発行された印刷命令(GDI関数)の場合には、ディスパッチャ301は外部メモリ111に格納されているスプーラ302をRAM102にロードし、プリンタドライバ203ではなくスプーラ302へ印刷命令(DDI関数)を送付する。
【0027】
スプーラ302は受け取った印刷命令を解釈し、ページ単位に加工しやすい中間コードに変換し、スプールファイル303に出力する。このページ単位に格納されている中間コードのスプールファイルをページ描画ファイル(PDF:PageDescription File)と呼ぶ。また、スプーラ302は、プリンタドライバ203に対して設定されている印刷データに関する加工設定(Nup、両面、ステイプル、カラー/モノクロ指定等)をプリンタドライバ203から取得してジョブ単位のファイルとしてスプールファイル303に保存する。このジョブ単位に格納されている設定ファイルをジョブ設定ファイル(簡略してSDF:Spool Description Fileと呼ぶこともある)と呼ぶ。このジョブ設定ファイルについては後述する。印刷データに関する加工設定は、アプリケーションから印刷指示を出す前に、予めプリンタドライバの設定を操作者が行っておく。
【0028】
図8は、プリンタドライバの各印刷設定を行うプロパティ画面の1つのシートである。ここでは、操作者が詳細な印刷設定を行うことができるが、本発明に関わるフィニッシングの説明に特化して行うことにする。図8の801は、ページレイアウトの設定を行うことができる。「ページレイアウト(L):」の右側に位置するプルダウンウインドウは、「1ページ/枚(通常印刷)」「2ページ/枚」「4ページ/枚」「6ページ/枚」「8ページ/枚」とNup印刷の指定ができるようになっている。また、「配置順(X):」の右側に位置するプルダウンウインドウは、論理ページの配置順序の設定を行えるようになっている。例えば、「2ページ/枚」において、配置順は、「左から右向き」「右から左向き」の2つが選択でき、「4ページ/枚」では、「左上から右向き」「左上から下向き」「右上から左向き」「右上から下向き」の4つの配置順が選択できるようになっている。
【0029】
図8では、ページレイアウトが「2ページ/枚」、配置順が「左から右向き」となっており、802の簡易プレビュー画面で示されているように、1枚の用紙に対して、2ページ分のデータが左から右に論理ページが増えるように配置され、描画されることを操作者に報知している。また、図27も同様にプリンタドライバの各印刷設定を行うプロパティ画面の1つのシートである。図27の2702は、印刷方法の設定を行うことができる。印刷方法としては、「片面印刷」「両面印刷」「製本印刷」があり、それぞれを択一的に選択することができる。また、2703では、排紙方法の設定を行うことができ、「ソート」「グループ」「ステイプル」の指定が択一的に行える。また、2704では、ステイプル指定時にどの「とじ方向」にステイプルするかの指定を行えるようになっている。「とじ方向(L)」には、「長辺とじ(上)」「長辺とじ(下)」「短辺とじ(左)」「短辺とじ(右)」の設定を行うことができる。図27では、印刷方法が「両面印刷」、排紙方法が「ステイプル」、とじ方向が「長辺とじ(上)」となっており、2701の簡易プレビュー画面で示されているように、用紙に対して両面の印刷がされていることを右下を裏返すことにより示唆し、用紙の長辺の上側にステイプルがされることを操作者に報知している。このように、操作者は、プリンタドライバで印刷設定を詳細に設定することができ、スプーラ302は、プリンタドライバ203に対して設定されている印刷データに関する加工設定をプリンタドライバ203から取得してスプールファイル303に保存することになる。なお、スプールファイル303は外部メモリ111上にファイルとして生成するが、RAM102上に生成されても構わない。
【0030】
更にスプーラ302は、外部メモリ111に格納されているスプールファイルマネージャ304をRAM102にロードし、スプールファイルマネージャ304に対してスプールファイル303の生成状況を通知する。その後、スプールファイルマネージャ304は、スプールファイル303に保存された印刷データに関する加工設定の内容に従って印刷を行えるか判断する。
【0031】
スプールファイルマネージャ304がグラフィックエンジン202を利用して印刷を行えると判断した際には、外部メモリ111に格納されているデスプーラ305をRAM102にロードし、デスプーラ305に対して、スプールファイル303に記述された中間コードのページ描画ファイルの印刷処理を行うように指示する。
【0032】
デスプーラ305はスプールファイル303に含まれる中間コードのページ描画ファイルをスプールファイル303に含まれる加工設定情報を含むジョブ設定ファイルの内容に従って加工し、GDI関数を再生成し、もう一度OSの描画手段であるグラフィックエンジン202経由でGDI関数を出力する。
【0033】
ディスパッチャ301がOSの描画手段であるグラフィックエンジン202から受け取った印刷命令(DDI関数)がデスプーラ305からグラフィックエンジン202へ発行された印刷命令(GDI関数)の場合には、ディスパッチャ301はスプーラ302ではなく、プリンタドライバ203に印刷命令を送る。
【0034】
プリンタドライバ203はOSの描画手段であるグラフィックエンジン202から取得したDDI関数に基づいてページ記述言語等からなるプリンタ制御コマンドを生成し、システムスプーラ204経由でプリンタ1500に出力する。
【0035】
さらに、図3では、これまで説明した拡張システムに加えて、プレビューア306、設定変更エディタ307を配し、プレビュー、印刷設定変更を可能にした例を示している。プレビューの実現方法としては、スプールファイル303に含まれる加工設定中にプレビューを行うかどうかの設定が含まれており、スプールファイルマネージャ304が加工設定を読み込み、プレビュー指定がなされていた場合、スプールファイル303に保存された印刷データに関する加工設定の内容に従ってプレビューを行えるか判断する。さらに、プレビューを行うどうかの設定は、例えば図8に示すようなユーザインターフェイスを提供することによって実現可能である。印刷プレビュー、印刷設定変更を行うためには、図8に示すプリンタドライバのプロパティにおいて、「出力先の指定」を行う手段であるプルダウンメニューにおいて「ストア」を指定する必要がある。なお、プレビューだけをみたい場合は、出力先の指定として「プレビュー」を選択することによっても可能である。
【0036】
このようにプリンタドライバのプロパティで設定されている内容は設定ファイルとしてOSが提供する構造体(Windows(登録商標)OSでは、DEVMODEと呼ばれる)に格納される。その構造体には、例えばスプールファイル303に含まれる加工設定中にスプールファイルマネージャ304にストアを行うかどうかの設定が含まれており、スプールファイルマネージャ304がプリンタドライバを介して加工設定を読み込み、ストア指定がなされていた場合、前述したようにスプールファイル303にページ描画ファイルとジョブ設定ファイルとが生成・格納され、図9のようにスプールファイルマネージャのウィンドウ画面がポップアップされ、スプールファイル303にスプールされたジョブがリスト表示される。
【0037】
図9には、1つのジョブがスプールされている例を示しており、メニューバー901もしくはそのすぐ下のメニューアイコン902を押下することにより、ジョブの操作を行うことができる。メニューバーとメニューアイコンの操作の数は同じである。操作種類としては、ジョブを選択した状態で、「印刷」、中間コードのスプールファイルをそのまま残して印刷を行わせる「セーブして印刷」、印刷設定を考慮したジョブの出力プレビューを見るための「プレビュー」、中間コードのスプールファイルを削除する「削除」、中間コードのスプールファイルのコピーを生成する「複製」、ジョブの印刷設定(レイアウト設定はフィニッシング設定等)を変更する「ジョブ編集」、ジョブの印刷順序の入れ替えを行う「順序変更」等の操作がある。
【0038】
スプールファイルマネージャのウィンドウ画面(図9)上で、あるジョブのプレビューが指定された場合、外部メモリ111に格納されているプレビューア306をRAM2にロードし、プレビューア306に対して、スプールファイル303に記述された中間コードのジョブのプレビュー処理を行うように指示する。
【0039】
プレビューア306はスプールファイル303に含まれる中間コードのページ描画ファイル(PDF)を順次読み出し、スプールファイル303に格納されているジョブ設定ファイル(SDF)に含まれる加工設定情報の内容に従って加工し、加工された中間データに基づいてGDI関数を再生成し、グラフィックエンジン202に対して出力する。この際、出力先を自身のクライアント領域、つまり表示デバイスにし、グラフィックエンジン202が表示デバイス用のDDI関数を出力することによって、画面上の出力が可能となる。
【0040】
グラフィックエンジン202は、指定された出力先に応じて適切なレンダリングを行うことが可能である。このことから、プレビューア306は、デスプーラ305同様に、スプールファイル303に含まれる中間コードをスプールファイル303に含まれる加工設定の内容に従って加工し、グラフィックエンジン202を利用して出力する方法で実現可能となる。
【0041】
このようにプリンタドライバで設定されている加工設定をジョブ設定ファイルに基づいてページ描画ファイルのデータを加工して出力することにより、実際の描画データがどのように印刷されるか、更には、Nup(Nページの論理ページを1ページの物理ページに縮小配置して印刷する処理)指定されている場合、両面印刷指定されている場合、製本印刷指定されている場合、スタンプが指定されている場合、それぞれに応じて、プリンタで出力されるものに近い印刷プレビューをユーザに提供することができる。なお、従来の文書作成等のアプリケーションソフトウェアが有しているプレビュー機能は、あくまでそのアプリケーションにおけるページ設定に基づいて描画しているため、プリンタドライバでの印刷設定が反映されず、実際に印刷出力されるプレビューをユーザに認識させることはできなかった。
【0042】
上記のようにプレビュー処理を行うことにより、図11のようにスプールファイル303に含まれる印刷の加工設定の大プレビューがプレビューア306によって画面上に表示され、その後、ユーザの非表示指示によって、プレビューア306がクローズされ、制御がスプールファイルマネージャのウィンドウ画面(図9)に移行する。
【0043】
そして、ユーザがプレビューア306によって表示された内容に従って、印刷を行うならば、スプールファイルマネージャ304上で、「印刷」もしくは「セーブして印刷」を指示することにより印刷要求を発行する。印刷要求は前述したように、デスプーラ305によりジョブ設定ファイルに基づいてページ描画ファイルを加工してGDI関数を生成し、グラフィックエンジン202に伝えられ、ディスパッチャ301経由で、プリンタドライバ203に印刷命令が送られ、印刷が実行される。
【0044】
また、スプールファイル303に含まれる印刷の加工設定のプレビューがプレビューア306によって画面上に表示されたならば、ユーザはプレビューア306上から印刷の要求を行う。印刷の要求はスプールファイルマネージャ304に通知され、スプールファイルマネージャ304は図3に説明した系で印刷を行う。また、プレビューア306は印刷要求後、終了する。
【0045】
さらに、ユーザがプレビューア306に表示された出力内容を見ながら修正をすることも可能である。これらの修正は、プレビューア306がスプールファイル303の内容を修正する操作をユーザに提供することによって実現される。ユーザの修正が終了し、印刷要求を行ったならば、スプールファイルマネージャ304およびデスプーラ305は加工されたスプールファイル303の内容にしたがって印刷を実行する。
【0046】
ここで、設定変更エディタ307を用いた設定変更について説明する。
【0047】
その実現方法としては、プレビュー同様、図8において「ストア」指定されたジョブに関して設定可能である。同様のフローによりスプールファイルマネージャのウィンドウ(図9)がポップアップされ、スプールされたジョブがリスト表示される。スプールファイルマネージャのウィンドウ画面(図9)上で、「ジョブ編集」が指定され、設定変更指示がされた場合、外部メモリ111に格納されている設定変更エディタ307をRAM102にロードし、設定変更エディタ307に対して、現在またはデフォルトの加工設定の表示を行うように指示する。そして図29のようなジョブ設定画面が表示される。
【0048】
設定変更エディタ307は、「ジョブ編集」が指定されたジョブのジョブ設定ファイルのスプールファイル303から取得し、そのジョブ設定ファイルに指定されている設定項目に基づいて図29のジョブ設定画面のデフォルト値を変更する。図29に示す例では、「ジョブ編集」指定されたジョブのジョブ設定ファイルには、部数:1部、印刷方法:片面、ステイプル:なし、レイアウト:1ページ/枚等が指定されていることになる。
【0049】
この設定変更エディタ307でもスプールファイル303に含まれる中間コードのページ描画ファイルをスプールファイル303に格納されているジョブ設定ファイルに含まれる加工設定の内容に従って加工し、グラフィックエンジン202を用いて自身のクライアント領域に出力することによって、図18に示す画面上の小プレビュー出力が可能となる。
【0050】
またここで、スプールファイル303に格納されているジョブ設定ファイルに含まれる加工設定の内容を変更、修正することが可能である。その際、プリンタドライバ203の設定可能な項目を設定変更エディタ307上のユーザインターフェイスに持っていても、プリンタドライバ203自身のユーザインターフェイスを呼び出しても構わない。図29に示すように、分数、印刷方法(片面、両目、製本印刷)、ステイプル(サドルフィニッシャー等)、ページレイアウト、配置順等の指定ができ、また「詳細設定」2907を押下することにより、プリンタドライバで指定できる項目の大半を設定しなおすことが可能となる。ただし、解像度、グラフィックモード等の印刷品位に関する設定の変更は許可しないものとする。
【0051】
ここで変更された変更項目は設定変更エディタ307上の認証要求に従い、変更が認証され、制御がスプールファイルマネージャ304に移行する。変更が認証されたものは、印刷設定の変更を保存することになるが、オリジナルのジョブ設定ファイルには保存せずに、ジョブ編集等で用いられるジョブ出力用設定ファイルを新たに生成して保存することになる。ジョブ出力用設定ファイルについての詳細は後述する。
【0052】
そして、ユーザがプレビューア306での確認同様、設定変更内容に従って、印刷を行うならば、スプールファイルマネージャ304上で、印刷要求を発行する。印刷要求はグラフィックエンジン202に伝えられ、ディスパッチャ301経由で、プリンタドライバ203に印刷命令が送られ、印刷が実行される。
【0053】
図4は、プリンタ1500の一例である両面印刷機能を有するカラーレーザプリンタの断面図である。
【0054】
このプリンタはホストコンピュータ3000より入力した印刷データに基づいて得られる各色毎の画像データで変調されたレーザ光をポリゴンミラー31により感光ドラム15を走査して静電潜像を形成する。そして、この静電潜像をトナー現像して可視画像を得、これを中間転写体9へ全色について多重転写してカラー可視画像を形成する。そして更に、このカラー可視画像を転写材2へ転写し、転写材2上にカラー可視画像を定着させる。以上の制御を行う画像形成部は、感光ドラム15を有するドラムユニット、接触帯電ローラ17を有する一次帯電部、クリーニング部、現像部、中間転写体9、用紙カセット1や各種ローラ3、4、5、7を含む給紙部、転写ローラ10を含む転写部及び定着部25によって構成されている。
【0055】
ドラムユニット13は、感光ドラム(感光体)15と感光ドラム15のホルダを兼ねたクリーニング機構を有するクリーナ容器14とを一体に構成したものである。このドラムユニット13はプリンタ本体に対して着脱自在に支持され、感光ドラム15の寿命に合わせて容易にユニット交換可能に構成されている。上記感光ドラム15はアルミシリンダの外周に有機光導電体層を塗布して構成し、クリーナ容器14に回転可能に支持されている。感光ドラム15は、図示しない駆動モータの駆動力が伝達されて回転するもので、駆動モータは感光ドラム15を画像形成動作に応じて反時計回り方向に回転させる。感光ドラム15の表面を選択的に露光させることにより静電潜像が形成されるように構成されている。スキャナ部30では、変調されたレーザ光を、モータ31aにより画像信号の水平同期信号を同期して回転するポリゴンミラーにより反射し、レンズ32、反射鏡33を介して感光ドラムを照射する。
【0056】
現像部は、上記静電潜像を可視画像化するために、イエロー(Y)、マゼンダ(M)、シアン(C)の現像を行う3個のカラー現像器20Y、20M、20Cと、ブラック(B)の現像を行う1個のブラック現像器21Bとを備えた構成を有する。カラー現像器20Y、20M、20C及びブラック現像器21Bには、スリープ20YS、20MS、20CS及び21BSと、これらスリープ20YS、20MS、20CS、21BSそれぞれの外周に圧接する塗布ブレード20YB、20MB、20CB及び21BBとがそれぞれ設けられる。また3個のカラー現像器20Y、20M、20Cには塗布ローラ20YR、20MR、20CRが設けられている。
【0057】
また、ブラック現像器21Bはプリンタ本体に対して着脱可能に取り付けられており、カラー現像器20Y、20M、20Cは回転軸22を中心に回転する現像ロータリー23にそれぞれ着脱可能に取り付けられている。
【0058】
ブラック現像器21Bのスリープ21BSは感光ドラム15に対して例えば300μm程度の微小間隔を持って配置されている。ブラック現像器21Bは、器内に内蔵された送り込み部材によってトナーを搬送すると共に、時計回り方向に回転するスリープ21BSの外周に塗布ブレード21BBによって塗布するように摩擦帯電によってトナーへ電荷を付与する。また、スリープ21BSに現像バイアスを印加することにより、静電潜像に応じて感光ドラム15に対して現像を行って感光ドラム15にブラックトナーによる可視画像を形成する。
【0059】
3個のカラー現像器20Y、20M、20Cは、画像形成に際して現像ロータリー23の回転に伴って回転し、所定のスリープ20YS、20MS、20CSが感光ドラム15に対して300μm程度の微小間隔を持って対向することになる。これにより所定のカラー現像器20Y、20M、20Cが感光ドラム15に対向する現像位置に停止し、感光ドラム15に可視画像が作成される。
【0060】
カラー画像形成時には、中間転写体9の1回転毎に現像ロータリー23が回転し、イエロー現像器20Y、マゼンダ現像器20M、シアン現像器20C、次いでブラック現像器21Bの順で現像工程がなされ、中間転写体9が4回転してイエロー、マゼンダ、シアン、ブラックのそれぞれのトナーによる可視画像を順次形成し、その結果フルカラー可視画像を中間転写体9上に形成する。
【0061】
中間転写体9は、感光ドラム15に接触して感光ドラム15の回転に伴って回転するように構成されたもので、カラー画像形成時に時計回り方向に回転し、感光ドラム15から4回の可視画像の多重転写を受ける。また、中間転写体9は画像形成時に後述する転写ローラ10が接触して転写材2を挟持搬送することにより転写材2に中間転写体9上のカラー可視画像を同時に多重転写する。中間転写体の外周部には、中間転写体9の回転方向に関する位置を検知するためのTOPセンサ9a及びRSセンサ9bと、中間転写体に転写されたトナー像の濃度を検知するための濃度センサ9cが配置されている。
【0062】
転写ローラ10は、感光ドラム15に対して接離可能に支承された転写帯電器を備えたもので、金属軸を中抵抗発泡弾性体により巻回することによって構成されている。
【0063】
転写ローラ10は、図4に実線で示すように中間転写体9上にカラー可視画像を多重転写している間は、カラー可視画像を乱さぬように下方に離開している。そして、上記中間転写体9上に4色のカラー可視画像が形成された後は、このカラー可視画像を転写材2に転写するタイミングにあわせてカム部材(不図示)により転写ローラ10を図示点線で示す上方に位置させる。これにより転写ローラ10は転写材2を介して中間転写体9に所定の押圧力で圧接すると共に、バイアス電圧が印加され、中間転写体9上のカラー可視画像が転写材2に転写される。
【0064】
定着部25は、転写2を搬送させながら、転写されたカラー可視画像を定着させるものであり、転写材2を加熱する定着ローラ26と転写材2を定着ローラ26に圧接させるための加圧ローラ27とを備えている。定着ローラ26と加圧ローラ27とは中空状に形成され、内部にそれぞれヒータ28、29が内蔵されている。即ち、カラー可視画像を保持した転写材2は定着ローラ26と加圧ローラ27とにより搬送されると共に、熱及び圧力を加えることによりトナーが表面に定着される。
【0065】
可視画像定着後の転写材2は、その後排紙ローラ34、35、36によって排紙部37へ排出して画像形成動作を終了する。
【0066】
クリーニング手段は、感光ドラム15上及び中間転写体9上に残ったトナーをクリーニングするものであり、感光ドラム15上に形成されたトナーによる可視画像を中間転写体9に転写した後の廃トナーあるいは、中間転写体9上に作成された4色のカラー可視画像を転写材2に転写した後の廃トナーは、クリーナ容器14に蓄えられる。
【0067】
印刷される転写材(記録用紙)2は、給紙トレイ1から給紙ローラ3により取り出されて中間転写体9と転写ローラ10との間に挟まれるようにして搬送されてカラートナー画像が記録され、定着部25を通過してトナー像が定着される。片面印刷の場合には、案内38が上方の排紙部に記録用紙を導くように搬送経路を形成するが、両面印刷に対しては、下方の両面ユニットに導くように経路を形成する。
【0068】
両面ユニットに導かれた記録用紙は、搬送ローラ40によりトレイ1の下部(二点鎖線で示す搬送経路)に一旦送り込まれた後に逆方向に搬送され、両面トレイ39に送られる。両面トレイ39上では、用紙は給紙トレイ1に載置された状態とは表裏が逆になり、また搬送方向について前後が逆になっている。この状態で再びトナー像の転写、定着を再度行うことで、両面印刷ができる。
【0069】
図5は、スプーラ302における、スプールファイル303の生成におけるページ単位保存ステップの処理をフローチャートで示したものである。この処理は、アプリケーションから印刷要求があった場合に、グラフィックエンジン202出力された描画データであるDDI関数をディスパッチャ301が受け付け、この描画データをスプーラ302に渡した後の処理である。
【0070】
まずステップ501では、スプーラ302は、アプリケーションからグラフィックエンジン202を介して印刷要求をディスパッチャ301から受けつける。前述したように、アプリケーションにおいては、図8に示すような印刷設定を入力するダイアログが印刷指示前に表示され、このダイアログから入力された印刷設定がプリンタドライバよりスプーラ302に渡される。なお、図8に示す設定入力ダイアログにおいては、801のような1物理ページにレイアウトする論理ページの数を決定するような設定項目等を含んでいる。
【0071】
ステップ502において、スプーラ302は、受け付けた印刷要求がジョブ開始要求か判定し、もしステップ502でジョブ開始要求であると判断した場合には、ステップ503に進み、スプーラ302は、中間データを一時的に保存するためのスプールファイル303をRAM102に作成する。続いて、スプーラ302は、プリンタドライバで設定されている印刷設定情報(DEVMODE)を受け取り、スプールファイル303のジョブ設定ファイルに印刷設定情報を格納する。
【0072】
続いて、ステップ504では、スプーラ302は、スプールファイルマネージャ304へ印刷処理の進捗を通知し、続くステップ505でスプーラ302のページ数カウンタを1に初期化する。ここで、スプールファイルマネージャ304においては、印刷が開始されたジョブに対するジョブの情報や加工設定である印刷設定情報をスプールファイル303のジョブ設定ファイルより読み込んでおく。
【0073】
一方、ステップ502において、スプーラ302がジョブ開始要求ではなかったと判断した場合には、ステップ506に進む。
【0074】
ステップ506では、スプーラ302は、受け付けた要求がジョブ終了要求かどうかの判別を行う。ジョブ終了要求でないと判断した場合には、ステップ507に進み、スプーラ302は、受け付けた要求が改ページかどうかの判別を行う。もしもステップ507で改ページであると判断した場合には、ステップ508に進み、スプーラ302は、スプールファイルマネージャ304へ印刷処理の進捗を通知する。そしてページ数カウンタをインクリメントする。
【0075】
ステップ507において、スプーラ302が受け付けた印刷要求が改ページではないと判断した場合には、ステップ509に進み、スプーラ302は、ページ描画ファイルへの中間コードの書き出しの準備を行う。
【0076】
次に、ステップ510では、スプーラ302は、文字やグラフィックや画像などの印刷要求である描画データを、スプールファイル303へ格納する中間データに変換処理を行う。ステップ511では、スプーラ302は、ステップ510において格納可能な形(中間データ)に変換された印刷要求をスプールファイル303のページ描画ファイルへ書き込む。その後、ステップ501に戻り、再びアプリケーションからの印刷要求を受けつける。この一連のステップ501からステップ511までの処理を、アプリケーションよりジョブ終了要求(End Doc)を受け取るまで続ける。また、スプーラ302は、同時にプリンタドライバ203からDEVMODE構造体に格納されている加工設定等の情報を取得し、ジョブ設定ファイルとしてスプールファイル303に格納する。一方、ステップ506にて、スプーラ302が、アプリケーションからの印刷要求がジョブ終了であると判断した場合には、アプリケーションからの印刷要求は全て終了であるので、ステップ512に進み、スプールファイルマネージャ304へ印刷処理の進捗を通知し、処理を終える。
【0077】
図6は、スプールファイルマネージャ304における、スプールファイル303生成プロセスと以降説明する印刷データ生成プロセスの間での制御の詳細をフローチャートで示したものである。
【0078】
ステップ601では、スプールファイルマネージャ304は、スプーラ302あるいはデスプーラ305からの印刷処理の進捗通知を受け付ける。
【0079】
ステップ602において、スプールファイルマネージャ304は、もし進捗通知が前述のステップ504において通知されるスプーラ302からの印刷開始通知であるかどうか判定し、もしそうであればステップ603へすすみ、印刷の加工設定である印刷設定情報をスプールファイル303から読み込み、ジョブの管理を開始する。一方、ステップ602において、スプーラ302からの印刷開始通知でなければステップ604へすすみ、スプールファイルマネージャ304は、進捗通知が前述のステップ508において通知されるスプーラ302からの1論理ページの印刷終了通知であるかどうか判定する。ここで1論理ページの印刷終了通知であればステップ605へ進み、スプールファイルマネージャ304は、この論理ページに対する論理ページ情報を格納する。そして、続くステップ606では、この時点でスプールが終了したn論理ページに対して、1物理ページの印刷が開始できるかを判定する。ここで、印刷可能である場合はステップ607へ進み、スプールファイルマネージャ304は、印刷する1物理ページに対して割り付けれられる論理数から物理ページ番号を決定する。
【0080】
物理ページの計算については、例えば、加工設定が1物理ページに4論理ページを配置するような4up設定の場合、第1物理ページは第4論理ページがスプールされた時点で印刷可能となり、第1物理ページとなる。続いて、第2物理ページは第8論理ページがスプールされた時点で印刷可能となる。
【0081】
また、論理ページ数の総数が1物理ページに配置する論理ページ数の倍数でなくても、ステップ512におけるスプール終了通知によって1物理ページに配置する論理ページが決定可能である。
【0082】
そして、ステップ608では、スプールファイルマネージャ304は、図10に示すような形式で、印刷可能となった物理ページを構成する論理ページ番号と、その物理ページ番号などの情報をデスプーラ305に通知する。また、スプールファイルマネージャ304は、同時に印刷設定情報をデスプーラ305に通知する。その後ステップ601に戻り、スプールファイルマネージャ304は、次の通知を待つ。本実施例においては、印刷データ1ページ、すなわち1物理ページを構成する論理ページがスプールされた時点で印刷ジョブのスプールが全て終了していなくても印刷処理が可能である。
【0083】
一方、ステップ604において、進捗通知がスプーラ302からの1論理ページの印刷終了通知でなかった場合ステップ609へ進み、スプールファイルマネージャ304は、前述のステップ512において通知されるスプーラ302からのジョブ終了通知であるかどうかを判定する。ここで、ジョブ終了通知である場合、前述のステップ606へ進む。一方、ジョブ終了通知でない場合、ステップ610へ進み、スプールファイルマネージャ304は、受け付けた通知がデスプーラ305からの1物理ページの印刷終了通知であるかどうか判定する。ここで、1物理ページの印刷終了通知である場合はステップ612へ進み、加工設定の印刷が全て終了したかを判定する。印刷終了した場合、ステップ612へ進み、デスプーラ305に印刷終了の通知を行う。一方、加工設定に対する印刷がまだ終了していないと判断した場合、前述の606へ進む。本実施例におけるデスプーラ305は同時に印刷処理を行える物理ページ数を1と想定している。
【0084】
また、ステップ608では、1物理ページの印刷処理を行うのに必要な情報をファイルに逐次保存し、再利用可能な形式にしているが、再利用不要な場合には、共有メモリ等高速な媒体を使用し、1物理ページ単位で次々と上書きする実装にして、速度とリソースを節約するような実装形式であってもよい。また、デスプールの進捗よりもスプールの進捗の方が早い場合や全ページのスプール終了後からデスプールが開始されるような場合には、ステップ608で1物理ページ毎にページ印刷可能を通知せずに、デスプール側の進捗に応じて、複数物理ページもしくは全物理ページが印刷可能になったという通知内容にして、通知回数を節約することが可能である。
【0085】
ステップ610において、入力された通知が、デスプーラ305からの1物理ページの印刷終了通知でないと判断された場合、ステップ613へ進み、スプールファイルマネージャ304は、入力された通知がデスプーラ305からの印刷終了通知かどうかを判定する。デスプーラ305からの印刷終了通知と判定された場合、ステップ614へ進み、スプールファイル303の削除を行い処理を終える。一方、デスプーラ305からの印刷終了通知でなかった場合はステップ615へ進み、その他通常処理を行い、次の通知を待つ。
【0086】
図7は、デスプーラ305における、印刷データの生成プロセスの詳細をフローチャートで示したものである。
【0087】
デスプーラ305は、スプールファイルマネージャ304からの印刷要求に応じて、スプールファイル303から必要な情報(ページ描画ファイルおよびジョブ設定ファイル)を読みだして印刷データを生成する。生成された印刷データにおけるプリンタへの転送方法については図3で説明した通りである。
【0088】
デスプーラ305の印刷データの生成では、まず、ステップ701において、前述のスプールファイルマネージャ304からの通知を入力する。続くステップ702では、入力された通知がジョブの終了通知かどうか判定し、ジョブ終了通知であるならばステップ703へ進み、終了フラグを立て、ステップ705へ進む。
【0089】
一方、ステップ702においてジョブ終了通知でない場合は、ステップ704に進み、デスプーラ305は、前述のステップ608における1物理ページの印刷開始要求が通知されたかどうか判定する。ステップ704において開始要求と判定されなかった場合は、ステップ710へ進み、その他エラー処理を行い、ステップ701へ戻り次の通知を待つ。一方、ステップ704において1物理ページの印刷開始要求と判定された場合、ステップ705へ進み、デスプーラ305は、ステップ704で通知を受けた印刷処理可能な物理ページのIDを保存する。
【0090】
続くステップ706では、デスプーラ305は、ステップ705で保存した物理ページIDのすべてのページに関して印刷処理が済んでいるかどうかを判定する。ここで全物理ページの処理が済んでいる場合は、ステップ707へ進み、前述のステップ703で終了フラグが立てられているか判定する。終了フラグが立っている場合は、ジョブの印刷が終了したとみなし、デスプーラ305の処理終了の通知をスプールファイルマネージャ304に通知し、処理を終える。ステップ707で、終了フラグが立っていないと判定された場合は、ステップ701へ戻り次の通知を待つ。一方、ステップ706で、印刷可能な物理ページが残っていると判定された場合には、ステップ708へ進み、デスプーラ305は、保存された物理ページIDから未処理の物理ページIDを順に読み出し、読み出した物理ページIDに対応する物理ページの印刷データ生成に必要な情報を読み込み、印刷処理を行う。
【0091】
印刷処理はスプールファイル303に格納された印刷要求命令をデスプーラ305においてグラフィックエンジン202が認識可能な形式、Windows(登録商標) OSではGDI関数に変換し、グラフィックエンジン202に転送する。本実施例のような、複数論理ページを1物理ページにレイアウトするような加工設定(Nページ印刷、もしくはNup印刷)については、このステップで縮小配置を考慮にいれながら変換する。必要な印刷処理が終えたならば、続くステップ709において1物理ページの印刷データ生成終了の通知をスプールファイルマネージャ304に対して行う。そしてステップ706へ戻り、ステップ705で保存しておいた印刷可能な物理ページIDすべてについて印刷処理を行うまで繰り返す。
【0092】
以上が、ディスパッチャ301、スプーラ302、スプールファイルマネージャ304、デスプーラ305を用いた印刷処理の流れである。上記のように処理することにより、スプーラ302が中間コードを生成してスプールファイル303に格納するタイミングでアプリケーション201が印刷処理から開放されるので、プリンタドライバ203に直接出力するよりも短時間で済む。また、スプールファイル303にプリンタドライバの印刷設定を踏まえた中間ファイル(ページ描画ファイル、ジョブ設定ファイル)として一時保存しているので、実際に印刷されるべき印刷プレビューをユーザに認識させることや、複数のアプリケーションにより生成した印刷ジョブの結合や並び替えが可能となり、印刷設定の変更を行う場合にも、再度アプリケーションを立ち上げて印刷をすることなしにユーザに行わせることを可能とする。
【0093】
ここで、スプーラ302を用いた印刷処理において、デスプーラ305によりグラフィックエンジン202への印刷要求時にジョブ出力用設定ファイルが生成されるが、プレビューやジョブ結合等を行う場合もジョブ出力用設定ファイルが生成される。ジョブ出力用設定ファイルは、単体ジョブの場合はジョブ設定ファイルと同等のものであり、結合ジョブの場合は複数のジョブ設定情報に基づいて生成されるものである。ここでジョブ出力用設定ファイルについて説明する。
【0094】
ジョブ設定ファイルは、主にプリンタドライバ203を介して受け取るDEVMODEの内容を保持しており、図12及び13から構成されるものである。
【0095】
まず、ジョブを識別するためのジョブ識別IDであり、本情報を保存しているファイル名や共有メモリの名称と乱数により決定される。次に、出力用紙サイズの情報であり、用紙サイズを識別するIDと組み合わせて複数もっている。後続する物理ページ単位に出力用紙サイズを変更することを可能とするためであり、各物理ページでは、用紙サイズ識別IDで指定される。次の情報は、フィニッシングに関するものであり、片面印刷、両面印刷、製本印刷のいずれが指定されているのかを示す情報である。また、有効印字領域の座標値等を示す情報があり、プレビュー指定されているか否かの情報を有している。そして次の情報はDEVMODEに関する情報であり、物理ページに割り付ける論理ページ数を示す情報であり、各論理ページがどこに配置されるのかを示す配置情報も保持している。また、DEVMODEとして、更に、付加情報(ウォーターマーク、枠付、日付、ユーザ名の付加)などを有している。
【0096】
以降、本発明であるプレビューシステムの詳細について述べる。
【0097】
図11はプレビュー画面の一例を示した図である。前述のとおり、プレビュー画面上の領域をグラフィックエンジン202に対して指定することにより、このような画面への出力が可能である。
【0098】
また、図12はスプールファイル303における印刷情報および印刷設定情報を格納した一例を示す図である。これらの情報によって、プレビューするかしないか、両面印刷をするか、1ページに縮小配置するアプリケーションからのページ数などの設定が格納される。
【0099】
また、図13はプリンタドライバから送出されるデバイス情報の一例を示した図である。スプールファイル303は例に挙げたような形式でデバイス情報を格納することが可能である。また、デバイス情報は、プリンタドライバセットアップユーティリティが工場出荷時から保持しており、プリンタドライバのインストール時に、OSの配下にファイルとして保存されるか、または、図28の2801に示すように、「デバイス情報取得(G)」ボタンを操作者がマウスを用いて押下するタイミングで、クライアントがプリンタもしくはプリントサーバに双方向通信してデバイス情報を取得してもよい。「デバイス情報取得」ボタンが押されるタイミングでプリンタドライバがネットワークや双方向インタフェースを介してプリンタと双方向通信してデバイス情報を取得する仕組みの場合は、デバイスにフィニッシングオプションが追加、変更された場合でもその都度デバイスに接続されているオプションのフィニッシング機能の取得が可能となり、使い勝手が向上する。これは、近年フィニッシング用のオプションが多様化してきており、キヤノン(株)が提供している画像処理装置である「MEDIO 600」に接続可能なオプションだけでも「サドルフィニッシャー・C2」、「フィニッシャー・C1」、「フィニッシャー・E1」、「マルチトレイ3」などが存在するからである。また、図13内の「パンチ穴位置情報」や「ステープル位置情報」などは、本実施例では、いずれもプリンタ座標系で示されている。プリンタ座標系とは、デバイスである画像処理装置の解像度に合わせてビットを持つ座標系であり、600dpi(1インチ当たり600のドットを有する)の座標系である。つまり、パンチ穴位置(X,Y)は、Xドット、Yドットの位置を示している。また、メモリの不足等によりデグレード(解像度低下)した場合は、それに応じて変更されることは言うまでもない。また、本実施例では、デバイス情報をプリンタ座標系で保持しているが、これに限るものではなく、基準点からの物理的距離であってもよく、例えば、用紙の左上にある基準点から(Xセンチ、Yセンチ)の位置というような情報の持たせ方をしてもよい。
【0100】
図14はプレビューア306がデバイス情報と描画情報をプレビューする際の処理について示したフローチャートである。
【0101】
ステップ1401において、プレビューア306は、スプールファイル303に格納されているアプリケーションからの描画データから変換された中間データを読み込む。
【0102】
ステップ1402において、プレビューア306は、図12における印刷設定情報および図13におけるデバイス情報とを含むジョブ設定ファイルの内容およびページ描画ファイルを読み込む。デバイス情報は、前述したように、OSの配下に予めファイルとして保存されているものである。取得方法としては、インストール時に保存されるタイプと、操作者の指定するタイミングでデバイスから直接取得するタイプとがある。
【0103】
ステップ1403において、プレビューア306は、読み込んだジョブ設定ファイルの内容にしたがってページ描画ファイルの中間コードの描画処理を行う。処理手順は、図6におけるスプールファイルマネージャ304の処理において、デスプーラ305との連携でなく、プレビューア306との連携に置きかえ、さらに、図7におけるデスプーラ305の処理のフローにおけるステップ705を、プリンタに対する印刷処理でなく、画面表示に置き換えた処理を行えばよい。つまり、プレビューア306は、スプールファイルマネージャ304からの通知に基づいてスプールファイル303からページ描画ファイルの中間データを読み込み、ジョブ設定ファイルの印刷設定情報に基づいてレイアウト処理(縮小、拡大、配置順序)を行い、得られた1物理ページ分の中間データをグラフィックエンジン202が解釈可能なGDI関数に変換し、グラフィックエンジン202の出力先をCRTディスプレイなどの表示手段にして、グラフィックエンジン202がディスプレイドライバに対してDDI関数をはき出させるようにする。なお、プレビューア306は、デスプーラ305のように描画処理を行ってGDI関数をはき出すだけではなく、デバイス情報に基づく描画処理も同時に行う。
【0104】
ステップ1404において、プレビューア306は、中間データに基づく描画データの座標情報とデバイス情報の座標情報から、座標の重なりがないかを判定し、重なりがあればステップ1405に進み、なければステップ1406に進み、ユーザからのイベントをまつ。この判断は、図13のデバイス情報に示されるように、例えば、処理中の印刷ジョブにパンチ穴の指定がなされている場合、パンチ穴位置情報とパンチ穴サイズ情報とから、プリンタ座標系のどの位置に、どのくらいの大きさでパンチ穴がなされるのかを判断できる。よって、描画データの座標系の位置と、パンチ穴の位置とから、重なりがないかを判定する。なおステープルについても同様である。また、デバイス情報を前述したような物理的距離で保持している場合は、物理的距離をプリンタ座標系に変換する必要がある。まず、センチメートルをインチに変更し、更にプリンタドライバの「印刷目的」で操作者が設定した印刷解像度に基づいて、インチをドット数に変更する。ここで、「印刷目的」で「文書・表」となっている場合は、印刷解像度は600dpiであり、「クイック文書・表」となっている場合は、印刷解像度は300dpiの設定となっている。
【0105】
ステップ1404で座標の重なりが検出された場合は、ステップ1405において、プレビューア306は、設定の不具合として警告ダイアログを表示する。図16はその表示例であり、ここでは、警告に対して、印刷続行、修正、印刷中止の選択肢を提供している。
【0106】
ステップ1406において、プレビューア306は、ユーザからのイベントを待ち、イベント入力があればステップ1407に進む。
【0107】
ステップ1407において、イベントが印刷続行であれば、ステップ1410へすすみ、プレビューア306は印刷続行であると判断し、デスプーラ305に通知し、デスプーラに再度中間データからGDI関数を生成させて印刷を行わせる。また、ユーザからのイベントがその他のイベントならばステップ1408へ進む。
【0108】
ステップ1408において、イベントが修正であれば、ステップ1411へすすみ、プレビューア306は、プリンタドライバのプロパティ画面を開き、操作者に印刷体裁の修正処理を行わせる。ここで操作者が行うことのできる修正処理は、パンチやステープル処理のキャンセル、用紙サイズの変更、Nup印刷の変更、縮小などによる印刷マージン(上下左右)の変更等であり、描画データ自身に関する修正は行えない。つまり、プリンタドライバのプロパティ画面で設定できる印刷設定情報に限る。描画データ自身を変更したい場合は、「印刷中止」を選択することになる。また、ステップ1408において、イベントがその他のイベントなら、ステップ1409へ進む。
【0109】
ステップ1409において、イベントが印刷中止であるとして印刷を中止して、プリンタドライバの処理を中止する。本実施例では、プリンタドライバとは、DDI関数からプリンタに出力するPDLを生成するプリンタドライバ203だけでなく、ディスパッチャ301、スプーラ302、スプールファイルマネージャ304、デスプーラ305、プレビューア306である、デバイス情報を考慮したプレビューができるモジュールを含んでおり、このプリンタドライバベンダーがOSに提供する部分を統括してプリンタドライバと呼ぶ。また、ディスパッチャ301、スプーラ302、スプールファイルマネージャ304、デスプーラ305、プレビューア306は、プリンタドライバ203とは独立したソフトウェアとしても提供できるが、デバイス情報の取得する部分が一部プリンタドライバと連携しなければならない。また、プリンタドライバ203の処理以降で、本発明のプレビュー機能を実現することも可能であるが、修正や印刷中止を行うためには、プリンタドライバ203に描画データを渡す前に処理する方が効率がよい。また、開発段階においても、プリンタドライバ203は、言語に依存されるものであり、キヤノン(株)のプリンタにおいても、近年はLIPS III、LIPSIVの2つの言語レベルがあり、また、PCLやESC/P、ESC/Page、Postscript等の言語があり、それぞれのプリンタドライバでプレビュー機能ができるモジュールを開発するのは、開発費上の問題からナンセンスであり、プリンタドライバ203に描画データを渡す前に処理した方が、OSレベルでの開発だけで済むので非常に効率がいいのである。なぜなら、現在OSとしては、米国マイクロソフト社のWindows(登録商標)95、98、NT、米国アップル社のOS8、更にはLinux等についての開発すれば、プリンタ言語間についての問題がなくなるからである。
【0110】
図15は図14のステップ1408における修正処理について詳細に説明したフローチャートである。
【0111】
まず、ステップ1501において、プレビューア306は、ユーザからのイベントを待つ。この時点では、前述したように、プリンタドライバのプロパティ画面が表示されており、図13における“修正”ボタンはグレイアウトされるなど、無効なボタンとして表示してある。
【0112】
ステップ1502において、図27のプリンタドライバのプロパティ画面で「OK」ボタン2705が操作者によりマウス等のポインティングデバイスを介して押下されたならば、プレビューア306は、イベントが印刷続行であると判断し、ステップ1503へ進む。ステップ1503において、プレビューア306は、ステップ1506で後述するメモリに格納された修正内容をスプールファイル303へ更新し、印刷を行い、処理を抜ける。
【0113】
ステップ1504において、図27のプリンタドライバのプロパティ画面で「更新」ボタン2707が操作者によりマウス等のポインティングデバイスを介して押下されたならば、プレビューア306は、修正内容に関するイベントと判断し、ステップ1506へ進む。
【0114】
ステップ1506において、プレビューア306は、図27に示すようなプリンタドライバのプロパティ画面で現在設定されている印刷設定情報をプリンタドライバ203から取得し、取得された印刷設定情報をスプールファイル303に格納し、既に記憶されている印刷設定情報を更新する。
【0115】
ステップ1504で修正内容に関するイベントでもないと判定された場合、例えば、図27のプロパティ画面において「キャンセル」ボタン2706が押下された場合は、ステップ1505において、プレビューア306は、イベントが印刷中止であるとして印刷を中止する。
【0116】
以上の処理のとおり、プレビューシステムにおいて、デバイス情報と描画情報を同時にプレビューし、さらに不具合が検知された場合、警告を促し、修正を可能にすることによって、ユーザの要求に合致した出力を提供することが可能となる。
【0117】
(第二実施例)
本実施例においては、両面印刷可能デバイスに対して印刷を行う場合のプレビューシステムに関する処理を説明する。なお、第二実施例の構成は、第一実施例で説明したものと同様であるので、ハード、ソフトモジュール構成の説明を省略する。符号は第一実施例で用いたものを用いて説明を行う。
【0118】
第一実施例の図12に示すとおり、印刷設定情報には両面印刷を行うかどうかの設定を含んでいる。
【0119】
また、図17はプレビューア306が両面印刷を行う印刷データに対して、どのような表示を行うかを設定するためのダイアログの一例である。このダイアログは、プリンタドライバ202から設定可能でもよい。その場合は、設定内容が図12のような印刷設定の変数として格納されることになる。また、このダイアログは、プレビューア306から表示設定可能でもあり、プレビューを行う際に、プレビューア306が図12に示すダイアログを表示し、操作者に指定させることになる。本実施例においては、表示の設定はプレビューア306から行うことを想定して説明を行う。図18は、3ページからなる印刷ジョブにおいて、図17における設定に対応する表示を示した図である。
【0120】
図18(a)は、図17における「全ページ表示」を選択した際の表示である。この場合、あたかも裏面が別の用紙のように表示されるが、全ページの表示が可能となる。この「全ページを表示」を選択した場合、他の選択肢はグレイアウトされ、選択されなくなる。
【0121】
図18(b)は、図17における「表面のみ表示」を選択し、かつ「裏を透かしたプレビュー」を選択せず、「奇数ページを表面にする」を選択した際の表示である。
【0122】
図18(c)は、図17における「表面のみ表示」を選択し、かつ「裏を透かしたプレビュー」および「奇数ページを表面にする」を選択しない場合の表示である。
【0123】
図18(d)は、図17における「表面のみ表示」を選択し、かつ「裏を透かしたプレビュー」を選択し、「奇数ページを表面にする」を選択した際の表示である。
【0124】
図18(e)は、図17における「表面のみ表示」を選択し、かつ「裏を透かしたプレビュー」を選択し、「奇数ページを表面にする」を選択しない場合の表示である。
【0125】
ここで、図17の「表面のみ表示」を選択した場合は、「裏を透かしたプレビュー」「奇数ページを表面にする」が選択可能である。
【0126】
全ページ表示OFFにした場合の選択肢およびその際の図18との対応表は図19に示す通りである。
【0127】
図20は図18(a)の表示を行うための処理を示すフローチャートである。
【0128】
ステップ2001において、プレビューア306は、カウンタiを1にセットする。
【0129】
ステップ2002において、プレビューア306は、印刷設定情報から印刷ジョブのページ数を入力する。
【0130】
ステップ2003において、プレビューア306は、カウンタiが頁数をこえたか判定し、こえたならばプレビュー処理を終えたとして処理を抜ける。こえていなければステップ2004へ進む。
【0131】
ステップ2004において、プレビューア306は、プレビュー画面内に第iページの描画領域を決定する。
【0132】
ステップ2005において、プレビューア306は、描画領域に対して第iページの描画を行う。この描画処理は第一実施例で説明したように、スプールファイル303から読み出した中間データを描画データであるGDI関数に変更してグラフィックエンジン202に出力する処理のことである。
【0133】
ステップ2006において、プレビューア306は、カウンタiを1増加させ、ステップ2002に処理を戻し、次ページのプレビュー処理を行う。
【0134】
図21は図18(b)の表示を行うための処理を示すフローチャートである。
【0135】
ステップ2101において、プレビューア306は、カウンタiを1にセットする。
【0136】
ステップ2102において、プレビューア306は、印刷設定情報から印刷ジョブのページ数を入力する。
【0137】
ステップ2103において、プレビューア306は、カウンタiが頁数をこえたか判定し、こえたならばプレビュー処理を終えたとして処理を抜ける。こえていなければステップ2104へ進む。
【0138】
ステップ2104において、プレビューア306は、プレビュー画面内に第iページの描画領域を決定する。
【0139】
ステップ2105において、プレビューア306は、描画領域に対して第iページの描画を行う。
【0140】
ステップ2106において、プレビューア306は、カウンタiを2増加させ、ステップ2102に処理を戻し、次の奇数ページのプレビュー処理を行う。
【0141】
図22は図18(c)の表示を行うための処理を示すフローチャートである。
【0142】
ステップ2201において、プレビューア306は、カウンタiを1にセットする。
【0143】
ステップ2202において、プレビューア306は、印刷設定情報から印刷ジョブのページ数を入力する。
【0144】
ステップ2203において、プレビューア306は、カウンタiが頁数をこえたか判定し、こえたならばプレビュー処理を終えたとして処理を抜ける。こえていなければステップ2204へ進む。
【0145】
ステップ2204において、プレビューア306は、プレビュー画面内に第iページの描画領域を決定する。
【0146】
ステップ2205において、プレビューア306は、描画領域に対して第iページの描画を行う。
【0147】
ステップ2206において、プレビューア306は、カウンタiを2増加させ、ステップ2202に処理を戻し、次の偶数ページのプレビュー処理を行う。
【0148】
図23は図18(d)の表示を行うための処理を示すフローチャートである。
【0149】
ステップ2301において、プレビューア306は、カウンタiを1にセットする。
【0150】
ステップ2302において、プレビューア306は、印刷設定情報から印刷ジョブのページ数を入力し、更に図25に示す濃度調整のダイアログで操作者により設定入力された裏面の描画濃度値を入力する。図25の濃度調整のダイアログは、図17の両面印刷時の表示設定ダイアログで操作者が「裏を空かしたプレビュー」をチェックを行った状態で「OK」ボタンが押下された場合に、表示されるものとする。
【0151】
ステップ2303において、プレビューア306は、カウンタiが頁数をこえたか判定し、こえたならばプレビュー処理を終えたとして処理を抜ける。こえていなければステップ2304へ進む。
【0152】
ステップ2304において、プレビューア306は、画面内に第iページおよび第(i+1)ページの描画領域を決定する。これらの描画領域は同一座標となる。
【0153】
ステップ2305において、プレビューア306は、描画領域に対して第(i+1)ページの描画を行う。この際の描画は濃度を薄くし、反転させて描画する。また反転処理は、中間データから描画データを再生成する際に、反転指示する命令と描画濃度値に基づく濃度命令とを付加してグラフィックエンジン202に出力する。
【0154】
ステップ2306において、プレビューア306は、描画領域に対して第iページの描画を行う。この際の描画は第(i+1)ページと同じ領域に上書きするので、第iページにおいて描画のない座標については第(i+1)ページの描画を消さないように上書き描画を行う。
【0155】
ステップ2307において、プレビューア306は、カウンタiを2増加させ、ステップ2302に処理を戻し、次のページのプレビュー処理を行う。
【0156】
図24は図18(e)の表示を行うための処理を示すフローチャートである。
【0157】
ステップ2401において、プレビューア306は、カウンタiを1にセットする。
【0158】
ステップ2402において、プレビューア306は、印刷設定情報から印刷ジョブのページ数を入力し、更に前述した図25の濃度調整のダイアログで操作者により設定入力された裏面の描画濃度値を入力する。
【0159】
ステップ2403において、プレビューア306は、カウンタiが頁数をこえたか判定し、こえたならばプレビュー処理を終えたとして処理を抜ける。こえていなければステップ2404へ進む。
【0160】
ステップ2404において、プレビューア306は、画面内に第iページおよび第(i+1)ページの描画領域を決定する。これらの描画領域は同一座標となる。
【0161】
ステップ2405において、プレビューア306は、描画領域に対して第iページの描画を行う。この際の描画は濃度を薄くし、反転させて描画する。
【0162】
ステップ2406において、プレビューア306は、描画領域に対して第(i+1)ページの描画を行う。この際の描画は第(i+1)ページと同じ領域に上書きするので、第iページにおいて描画のない座標については第(i+1)ページの描画を消さないように上書き描画を行う。
【0163】
ステップ2407において、プレビューア306は、カウンタiを2増加させ、ステップ2402に処理を戻し、次のページのプレビュー処理を行う。
【0164】
以上の処理により、両面印刷におけるプレビューにおいて、複数の表示方法を提供可能となる。
【0165】
上記第一実施例及び第二実施例の説明は、図8のプリンタドライバのプロパティにおいて、出力先の選択803を「プレビュー」もしくは「ストア」とした場合のものである。ここで、「ストア」とした場合について、説明を補足する。
【0166】
前述したように、出力先として「ストア」が選択された場合は、中間データとしてページ描画ファイル及びジョブ設定ファイルがスプールファイル303に格納された時点で、スプールファイルマネージャのウィンドウ図9がポップアップされる。ウィンドウ903には、中間データ(ページ描画ファイル及びジョブ設定ファイル)としてスプールされているファイルがリスト表示されている。リスト表示されているアイコンにマウスを近づけると、マウスとアイコンとの重なりが判断され、重なっていると判断されると、アイコン近傍にジョブ設定情報が表示される。ここでは、「Job1」は、600dpi、1ページ印刷、片面印刷の設定となっていることがわかる。またページ数は8ページである。
【0167】
このジョブに対して、「ジョブ編集」を選択すると、図29のユーザインタフェースが表示される。この図において、2901は、ジョブ名称であり、名称の変更をすることができる。2902は、小プレビューを表示させるウィンドウであり、ここに表示されているプレビューもまた、プレビューア306により生成されたものである。またプレビューでは、必要な用紙枚数(物理ページ枚数)をカウントして表示している。「Job1」は8ページの用紙を必要とする。
【0168】
2903は「ページの削除」ボタンであり、このボタンをユーザが押下した場合に、ウィンドウ2902で指定されているページが削除される。指定されているページは図32の「Job1−3」の部分のように枠で囲まれているのでユーザが認識可能となっている。図32では、「Job1−4」のページが削除されている。ここで、ページの削除指示によって論理ページがプレビューから削除されるが、実際のページ描画ファイルの削除は行わずに、ジョブ設定ファイルのコピーであるジョブ出力用ファイルを生成し、そこで使用する論理ページ番号を変更することにより実現する。こうすることにより、「初期状態に戻す」ボタンが押下された場合に、今まで削除した論理ページの復活を可能とする。
【0169】
2904は「プレビュー」ボタンであり、このボタンをユーザが押下した場合に、図11に示すような大きなプレビューが表示されることになる。プレビューの作成方法は前述したように小プレビューも大プレビューも同様であり、拡大率が異なるだけである。
【0170】
2905は、印刷方法を変更するプルダウンメニューであり、「片面印刷」「両面印刷」「製本印刷」のいずれかを指定することができる。図29では「片面印刷」時のプレビューとなっているが、この印刷方法を「両面印刷」と変更することにより、図30のようにプレビュー画面が自動的に切り替わる。図30の画面では、「両面印刷」がわかるように、表面の右下を手前に折っており、裏面の左下を奥に折っているプレビューとなっている。また、用紙枚数が半分となるので、表面と裏面の間に用紙枚数を表示している。これは、プレビューア306のプレビュー処理時に、スプールファイル303からジョブ設定情報とページ描画ファイルを読み込みグラフィックエンジン202にGDI関数を出力する際に、スプールファイルマネージャ304からスプールファイルマネージャのウィンドウのジョブ編集(図29)において設定されている印刷設定を取得し、両面印刷時にはページカウントを半分にすることにより実現する。また、スプールファイルマネージャのウィンドウにおいて、印刷設定が変更される毎に、スプールファイル303のジョブ設定ファイルのコピーを生成し、そのファイルに設定変更を書き換え、プレビュー時にプレビューア206がその変更されているジョブ設定ファイルを読み込むことにより実現することもできる。
【0171】
2906は、ページレイアウトを変更するプルダウンメニューであり、「1ページ/枚」「2ページ/枚」「4ページ/枚」「8ページ/枚」「2×2ポスター」「3×3ポスター」「4×4ポスター」のいずれかを指定することができる。図29では「1ページ/枚」時のプレビューとなっているが、このページレイアウトを「2ページ/枚」と変更することにより、図31のようにプレビューが面が自動的に切り替わる。図31の画面では、「2ページ/枚」のページレイアウトがわかるように、1枚の用紙(1物理ページ)に2つの論理ページが描画されている。なお、図31では両面印刷なので、用紙1枚に対して、表裏合わせて4論理ページが描画されている。
【0172】
2907は、詳細設定を変更するためのボタンであり、このボタンを押下することにより、図27のプリンタドライバのプロパティ画面が表示される。ここで、印刷設定の詳細な変更が可能となる。プリンタドライバのプロパティ画面において設定が変更され「OK」ボタンが押下されると、図29のジョブ編集画面において、小プレビューが印刷設定に対応して変更されることになる。
【0173】
このように、プリンタドライバの出力先をストアとして中間ファイルでスプールファイル303に保持しておくことにより、プレビューが可能となり、更には印刷設定の変更ができ、その変更に応じてプレビューを表示できるので、ユーザの使い勝手がよくなる。
【0174】
(第三実施例)
実施例2においては、両面印刷可能デバイスに対して印刷を行う場合のプレビューシステムにおいて、ページ数を確定してからプレビュー処理を行う処理について説明したが、本実施例では、ページ数を確定する以前からプレビュー処理を行うことも可能である。
【0175】
具体的には、図7におけるステップ705に対して、図26に示す処理を行えば良い。図26は、デスプーラ305とプレビューア306の処理を説明するフローチャートである。
【0176】
ステップ2601において、デスプーラ305は、印刷要求通知されたページ番号を取得する。
【0177】
ステップ2602において、デスプーラ305は、予め操作者により図17のダイアログで設定入力されている表示設定情報を取得し、印刷要求されたページ番号がプレビューできるページ番号であるか判定する。例えば、図18(b)においては、偶数ページのみの描画となるので、プレビュー不可能として、ステップ701に戻る。また、図18(d)においては、偶数ページからの描画を行うので、描画は行わずステップ701に戻る。このように、プレビューが不可能となったケースは、ステップ706において、印刷終了通知を2物理ページ分まとめて送出することとなる。
【0178】
また、上記以外についてはプレビュー可能となるのでステップ2603へ進む。
【0179】
ステップ2603において、デスプーラ305はプレビューア306を起動して処理中のページ番号を通知し、プレビューア306は指定されたページのプレビュー描画処理を行う。描画方法については、実施例2におけるそれぞれの描画方法に従う。
【0180】
以上のステップにより、ページ数を確定する前にプレビュー処理を行うことが可能である。
【0181】
なお、本発明は、複数の機器(例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(複写機、プリンタ、ファクシミリ装置など)に適用してもよい。
【0182】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体を、システムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成される。
【0183】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0184】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。
【0185】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【0186】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【図面の簡単な説明】
【0187】
【図1】本発明の一実施例を示す印刷制御装置の構成を説明するブロック図である。
【図2】プリンタが接続されたホストコンピュータの典型的なプリントシステムの構成を示すブロック図である。
【図3】アプリケーションからの印刷命令をプリンタ制御コマンドに変換する前に、一旦中間コードスプールするプリントシステムの構成を示すブロック図である。
【図4】本発明におけるプリンタについて説明した図である。
【図5】スプーラ305における処理を示したフローチャートである。
【図6】スプールファイルマネージャ304における印刷制御について示したフローチャートである。
【図7】デスプーラ305における処理を示したフローチャートである。
【図8】プリンタドライバの印刷設定画面の一例である。
【図9】スプールファイルをリスト表示した画面の一例である。
【図10】スプールファイルマネージャ304からデスプーラ305に対して物理ページの印刷要求を行う際に渡すデータ形式の一例を示した図である。
【図11】プレビュー画面の一例を示した図である。
【図12】スプールファイル303における印刷設定を格納した一例を示す図である。
【図13】プリンタドライバから送出されるデバイス情報の一例を示した図である。
【図14】プレビュー上で描画情報とデバイス情報との不具合を警告する処理を説明したフローチャートである。
【図15】不具合修正処理の一例を示したフローチャートである。
【図16】警告ダイアログの一例を示す図である。
【図17】プレビューア306が両面印刷を行う印刷データに対して、どのような表示を行うかを設定するためのダイアログの一例である。
【図18】(a)は図17における“全ページ表示”を選択した際の表示である。(b)は図17における“表面のみ表示”を選択し、かつ“裏を透かしたプレビュー”を選択しない場合の表示である。(c)は図17における“表面のみ表示”を選択し、かつ“裏を透かしたプレビュー”および“奇数ページを表面にする”を選択しない場合の表示である。(d)は図17における“表面のみ表示”を選択し、かつ“裏を透かしたプレビュー”を選択し、“奇数ページを表面にする”を選択した際の表示である。(e)は図17における“表面のみ表示”を選択し、かつ“裏を透かしたプレビュー”を選択し、“奇数ページを表面にする”を選択しない場合の表示である。
【図19】全ページ表示OFFにした場合の選択肢およびその際の図18との対応表である。
【図20】図18(a)の表示を行うための処理を示すフローチャートである。
【図21】図18(b)の表示を行うための処理を示すフローチャートである。
【図22】図18(c)の表示を行うための処理を示すフローチャートである。
【図23】図18(d)の表示を行うための処理を示すフローチャートである。
【図24】図18(e)の表示を行うための処理を示すフローチャートである。
【図25】裏面プレビューに対する濃度調整を設定するダイアログの一例である。
【図26】実施例3において、図7におけるステップ705における処理をしめすフローチャートである。
【図27】印刷設定情報を設定する際のプリンタドライバのプロパティ画面の説明図である。
【図28】デバイス情報をプリンタから取得する指定を行う際のプリンタドライバのプロパティ画面の説明図である。
【図29】スプールファイルに保持されている中間ファイルのジョブを編集する際のジョブ編集面の説明図である。
【図30】ジョブ編集画面において、両面印刷時の小プレビューを説明する説明図である。
【図31】ジョブ編集画面において、ページレイアウトを変更した際の小プレビューを説明する説明図である。
【図32】ジョブ編集画面において、ページの削除を行った際の小プレビューを説明する説明図である。
【符号の説明】
【0188】
1 CPU
2 RAM
3 ROM
4 システムバス
12 CPU
13 ROM
19 RAM
3000 ホストコンピュータ
1500 プリンタ
【特許請求の範囲】
【請求項1】
アプリケーションから出力されるデータに基づいて印刷装置が解釈できる印刷データを生成するプリンタドライバを備えた情報処理装置であって、
前記プリンタドライバの設定画面を用いて印刷設定情報を設定する設定手段と、
前記アプリケーションから出力されるデータと前記印刷設定情報とに基づくプレビューの画像を表示する表示手段とを有し、
前記表示手段は、両面印刷の指定が前記印刷設定情報に含まれる場合、シートの表面に印刷されるページのプレビューの画像と当該シートの裏面に印刷されるページのプレビューの画像とが表示される1枚のシートのためのプレビューの画像を表示することを特徴とする情報処理装置。
【請求項2】
前記表示手段によるプレビューの画像の表示方法を指定する指定手段を更に有することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記表示手段は、前記指定手段による表示方法の指定に従って、シートの表面に印刷されるページのプレビューの画像と当該シートの裏面に印刷されるページのプレビューの画像とが表示される1枚のシートのためのプレビューの画像とシートの各面に印刷されるページのプレビューの画像を表示するプレビューの画像とを切り替えて表示することを特徴とする請求項2に記載の情報処理装置。
【請求項4】
前記表示手段は、前記指定手段による表示方法の指定に従って、シートの表面に印刷されるページのプレビューの画像と当該シートの裏面に印刷されるページのプレビューの画像とが表示される1枚のシートのためのプレビューの画像と奇数ページのプレビューの画像とを切り替えて表示する請求項2に記載の情報処理装置。
【請求項5】
前記表示手段は、前記指定手段による表示方法の指定に従って、シートの表面に印刷されるページのプレビューの画像と当該シートの裏面に印刷されるページのプレビューの画像とが表示される1枚のシートのためのプレビューの画像と偶数ページのプレビューの画像とを切り替えて表示する請求項2に記載の情報処理装置。
【請求項6】
アプリケーションから出力されるデータに基づいて印刷装置が解釈できる印刷データを生成するプリンタドライバを備えた情報処理装置における制御方法であって、
前記プリンタドライバの設定画面を用いて印刷設定情報を設定する設定工程と、
前記アプリケーションから出力されるデータと前記印刷設定情報とに基づくプレビューの画像を表示する表示工程とを有し、
前記表示工程は、両面印刷の指定が前記印刷設定情報に含まれる場合、シートの表面に印刷されるページのプレビューの画像と当該シートの裏面に印刷されるページのプレビューの画像とが表示される1枚のシートのためのプレビューの画像を表示することを特徴とする制御方法。
【請求項7】
アプリケーションから出力されるデータに基づいて印刷装置が解釈できる印刷データを生成するプリンタドライバを備えた情報処理装置において実行される制御プログラムを記憶した記憶媒体であって、
前記プリンタドライバの設定画面を用いて印刷設定情報を設定する設定工程と、
前記アプリケーションから出力されるデータと前記印刷設定情報とに基づくプレビューの画像を表示する表示工程とを有し、
前記表示工程は、両面印刷の指定が前記印刷設定情報に含まれる場合、シートの表面に印刷されるページのプレビューの画像と当該シートの裏面に印刷されるページのプレビューの画像とが表示される1枚のシートのためのプレビューの画像を表示することを前記情報処理装置に実行させるためのコンピュータが読み取り可能な制御プログラムを記憶した記憶媒体。
【請求項1】
アプリケーションから出力されるデータに基づいて印刷装置が解釈できる印刷データを生成するプリンタドライバを備えた情報処理装置であって、
前記プリンタドライバの設定画面を用いて印刷設定情報を設定する設定手段と、
前記アプリケーションから出力されるデータと前記印刷設定情報とに基づくプレビューの画像を表示する表示手段とを有し、
前記表示手段は、両面印刷の指定が前記印刷設定情報に含まれる場合、シートの表面に印刷されるページのプレビューの画像と当該シートの裏面に印刷されるページのプレビューの画像とが表示される1枚のシートのためのプレビューの画像を表示することを特徴とする情報処理装置。
【請求項2】
前記表示手段によるプレビューの画像の表示方法を指定する指定手段を更に有することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記表示手段は、前記指定手段による表示方法の指定に従って、シートの表面に印刷されるページのプレビューの画像と当該シートの裏面に印刷されるページのプレビューの画像とが表示される1枚のシートのためのプレビューの画像とシートの各面に印刷されるページのプレビューの画像を表示するプレビューの画像とを切り替えて表示することを特徴とする請求項2に記載の情報処理装置。
【請求項4】
前記表示手段は、前記指定手段による表示方法の指定に従って、シートの表面に印刷されるページのプレビューの画像と当該シートの裏面に印刷されるページのプレビューの画像とが表示される1枚のシートのためのプレビューの画像と奇数ページのプレビューの画像とを切り替えて表示する請求項2に記載の情報処理装置。
【請求項5】
前記表示手段は、前記指定手段による表示方法の指定に従って、シートの表面に印刷されるページのプレビューの画像と当該シートの裏面に印刷されるページのプレビューの画像とが表示される1枚のシートのためのプレビューの画像と偶数ページのプレビューの画像とを切り替えて表示する請求項2に記載の情報処理装置。
【請求項6】
アプリケーションから出力されるデータに基づいて印刷装置が解釈できる印刷データを生成するプリンタドライバを備えた情報処理装置における制御方法であって、
前記プリンタドライバの設定画面を用いて印刷設定情報を設定する設定工程と、
前記アプリケーションから出力されるデータと前記印刷設定情報とに基づくプレビューの画像を表示する表示工程とを有し、
前記表示工程は、両面印刷の指定が前記印刷設定情報に含まれる場合、シートの表面に印刷されるページのプレビューの画像と当該シートの裏面に印刷されるページのプレビューの画像とが表示される1枚のシートのためのプレビューの画像を表示することを特徴とする制御方法。
【請求項7】
アプリケーションから出力されるデータに基づいて印刷装置が解釈できる印刷データを生成するプリンタドライバを備えた情報処理装置において実行される制御プログラムを記憶した記憶媒体であって、
前記プリンタドライバの設定画面を用いて印刷設定情報を設定する設定工程と、
前記アプリケーションから出力されるデータと前記印刷設定情報とに基づくプレビューの画像を表示する表示工程とを有し、
前記表示工程は、両面印刷の指定が前記印刷設定情報に含まれる場合、シートの表面に印刷されるページのプレビューの画像と当該シートの裏面に印刷されるページのプレビューの画像とが表示される1枚のシートのためのプレビューの画像を表示することを前記情報処理装置に実行させるためのコンピュータが読み取り可能な制御プログラムを記憶した記憶媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【公開番号】特開2008−234671(P2008−234671A)
【公開日】平成20年10月2日(2008.10.2)
【国際特許分類】
【出願番号】特願2008−95120(P2008−95120)
【出願日】平成20年4月1日(2008.4.1)
【分割の表示】特願2007−133887(P2007−133887)の分割
【原出願日】平成11年11月2日(1999.11.2)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Linux
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成20年10月2日(2008.10.2)
【国際特許分類】
【出願日】平成20年4月1日(2008.4.1)
【分割の表示】特願2007−133887(P2007−133887)の分割
【原出願日】平成11年11月2日(1999.11.2)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Linux
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]