説明

印刷制御装置とその制御方法

【課題】印刷実行時に、常にプリンタドライバ経由で印刷を行うことによる不要な処理やPCのCPUの占有を防止し、また、常にダイレクト印刷を行うことによる機能の不足を解消する。
【解決手段】ダイレクト印刷機能を持つプリンタを利用する際には、印刷ジョブ毎に設定された印刷設定に従って、プリンタドライバ経由で印刷するか、ダイレクト印刷を行うかの判定を行い、印刷を行う。その際に、設定された機能のうちドライバで実現される機能を判定し(S504)、そうであってもダイレクト印刷を優先するか判定し(S505)、そうでない場合に初めてドライバを用い、そうでなければダイレクト印刷とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は印刷制御装置および印刷制御方法に関する。詳しくは、パーソナルコンピュータ(以下PC)等の情報処理装置とプリンタなどの印刷装置を有して構成されるシステムにおける印刷制御装置及び印刷制御方法に関する。
【背景技術】
【0002】
従来、印刷実行時には、PC等のコンピュータでプリンタドライバが実行される。プリンタドライバは、アプリケーション及びMicrosoft社のWindows(登録商標)などのオペレーティングシステム(以下OS)により作成された印刷用データを、プリンタにて処理可能な印刷データ(PDLやイメージなど)に変換する。そしてその変換後の印刷データをプリンタに転送し、印刷を行っている。このため、プリンタドライバを経由することで、プリンタドライバが持つ多数の機能を印刷実行時に利用することが可能となる。しかしながら、この形態では、OSに依存した処理やプリンタドライバでの処理が発生するため、PC側のCPUを占有してしまうなどといった問題が存在する。さらに、プリンタドライバではPDLやイメージなどといったプリンタが処理可能な言語に変換を行うため、プリンタに送信した印刷データを再取得し、再編集するといった再利用処理は困難であった。
【0003】
そこで、別の印刷システムの形態としてアプリケーションが作成した印刷用データを、PDLやイメージなどに変換することなく、直接にプリンタに送信し、プリンタ側で印刷用データの解釈を行い、印刷を実現する形態が存在する。このように、アプリケーションにより作成された印刷用データを直接プリンタへ転送する印刷形態はダイレクト印刷と呼ばれる。例えばAdobe社のPDF(Portable Document Format)をアプリケーションが作成し、直接プリンタへ送信することが行われている。
【0004】
また、Microsoft社のWindows Vista(登録商標)で導入されたXPSドライバという印刷システムは、XPSというデータ形式に変換されたアプリケーションデータをPDLに変換して送信する。あるいは印刷システムは、そのままXPSというデータ形式にて印刷用データをプリンタに送信して印刷を行うことが可能になっている。
【0005】
従来の技術には、アプリケーションプログラムにより作成され保存されたファイルをアプリケーションで読み込むことなく、プリンタドライバがスプーラへ直接変換処理して転送し、直接印刷出力するものがあった(例えば特許文献1参照。)また、プリンタドライバ(PC)とプリンタのどちらで処理をしたほうが効率的かを判断し、印刷出力を行うものがあった(たとえば特許文献2参照。)さらに、プリンタドライバでの処理を行うか否かをアプリケーションが指定することにより、プリンタドライバを経由した印刷をする、あるいは直接プリンタに送信して印刷することを切り替えるものがあった(例えば非特許文献1参照。)
【特許文献1】特開2000-207148号公報
【特許文献2】特開2000-222145号公報
【非特許文献1】マイクロソフトコーポレーション、「XPSDrv_FilterPipe.docx」(特に第12ページ図5等))、[オンライン]、平成20年2月7日更新、[平成20年8月25日検索]、インターネット、<URL:http://www.microsoft.com/whdc/device/print/XPSDrv_FilterPip.mspx>
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかしながら、従来のダイレクト印刷においては、指定された印刷設定において、プリンタドライバ(PC)での処理が必要であるかどうかの判定を行うことができず、直接プリンタへ印刷用データを送信してしまう。そのため、設定された機能が実現されないことがあるといった課題が存在する。例えば、印刷実行時に、プリンタドライバがダイアログを表示する機能が存在する。ダイアログにてユーザー名やパスワードなどの入力をユーザーに促し、入力された内容を基に、印刷の許可・禁止を行うことが行われている。しかし、上記のようにダイレクト印刷が行われた場合、プリンタドライバを経由しないためダイアログの表示が行えず、プリンタへ印刷用データが送信されることで印刷の許可・禁止が行えないといった課題がある。また、特許文献1に開示されている発明では、特定のアプリケーションの読み込みが不要になっているため、PCでの処理が軽減はしている。しかし、プリンタドライバが、印刷設定によらず、アプリケーションからの印刷用データをイメージまたはPDLへの変換するため、プリンタに送信した印刷データの再取得や再編集等の処理は困難であり、PCのCPUを占有してしまう問題も解決できていない。特許文献2に開示されている発明では、プリンタドライバ(PC)とプリンタでより効率的なハードにて処理が実施されることとなり、プリンタドライバでの処理と判定された場合には、印刷設定によらず常にプリンタドライバ(PC)側で動作する。このため、PC側のCPUを占有してしまう問題が解決できていない。また、プリンタ側での処理と判定された場合には、印刷設定によらず直接プリンタへ印刷用データを送信してしまうため、機能の一部が実現されないという問題を解決できていない。
【0007】
本発明は上記従来例に鑑みて成されたもので、上記問題を解決することを目的とする。より詳しくは、実行しようとする印刷ジョブについて、プリンタドライバでの処理が必要であるかどうかを印刷設定データに従って判定し、この判定結果に従い印刷を行う。その結果、プリンタドライバでの処理が不要なときにはそのまま印刷装置へ印刷用データが送信され、そうでなければプリンタドライバを経由して印刷を行う。こうすることで、印刷処理によるPCのCPU占有率を減少させ、不要な処理を削減することができ、あわせて、印刷設定に設定された機能が抜けることなく適切に印刷を行うことも可能となる。
【課題を解決するための手段】
【0008】
上記目的を達成するために本発明は以下の構成を備える。
【0009】
アプリケーションプログラムにより生成された印刷用データ及び該印刷用データのための印刷設定データを用いて印刷装置を制御する印刷制御装置であって、
前記印刷装置はダイレクト印刷の可能な印刷装置であるか否か判定する第1の判定手段と、
前記第1の判定手段により前記印刷装置がダイレクト印刷の可能な印刷装置であると判定された場合、前記印刷設定データに、プリンタドライバの処理を必要とする設定が含まれているか否かを判定する第2の判定手段と、
前記第2の判定手段による判定の結果、前記プリンタドライバの処理を必要とする設定が含まれていないと判定された場合、前記印刷用データを前記印刷装置に直接に送信できる旨を前記アプリケーションプログラムに通知し、そうでない場合には、前記印刷用データを前記印刷装置に直接に送信できない旨を前記アプリケーションプログラムに通知する通知手段とを備えることを特徴とする印刷制御装置。
【0010】
また他の観点によれば、本発明は、アプリケーションプログラムにより生成された印刷用データ及び該印刷用データのための印刷設定データを用いて、前記アプリケーションから出力される印刷用データを解釈できる印刷装置を制御する印刷制御装置であって、
前記印刷設定データに、プリンタドライバの処理を必要とする設定が含まれているか否かを判定する第2の判定手段と、
前記第2の判定手段による判定の結果、前記プリンタドライバの処理を必要とする設定が含まれていないと判定された場合、前記印刷用データを前記印刷装置に直接に送信できる旨を前記アプリケーションプログラムに通知し、そうでない場合には、前記印刷用データを前記印刷装置に直接に送信できない旨を前記アプリケーションプログラムに通知する通知手段とを備える。
【発明の効果】
【0011】
本発明によれば、プリンタドライバの処理が必要な印刷設定が指定された印刷処理についてはプリンタドライバを経由して印刷処理を実行する。一方、プリンタドライバの処理が不要な印刷設定が指定された印刷処理についてはダイレクトプリントを許可できる。そのため、PCのCPU占有率を減少させ、不要な処理を削減することができ、あわせて、印刷設定に設定された機能が抜けることなく適切に印刷を行うことも可能となる。
【発明を実施するための最良の形態】
【0012】
以下に、本発明を実施するための最良の形態について、図面を参照しながら詳しく説明する。なお、同一の構成要素には同一の参照番号を付して、説明を省略する。
【0013】
<システムの構成>
図1は、本発明の実施形態に係る印刷システムの構成を示すブロック図である。本実施形態において、図1に示すシステムは、単体の機器、又は、複数の機器から構成されるシステムであっても良い。又は、LAN、WAN等のネットワークを介して接続されて処理が行われるシステムであっても良い。図1に示すように、ホストコンピュータ(印刷制御装置)3000は、CPU1を含んでいる。CPU1は、ROM3に含まれるプログラム用ROM、又は、外部メモリ11に記憶された文書処理プログラム等に基づいて、文書処理及びそれに基づく印刷処理の実行を制御する。ここで、文書処理とは、各実施形態における処理を含む、図形、イメージ、文字、表(表計算等を含む)等が混在した文書処理を示す。CPU1は、システムバス4に接続されている各デバイスを制御する。また、ROM3に含まれるプログラム用ROM、又は、外部メモリ11には、CPU1の制御プログラムであるオペレーティングシステムプログラム(OS)等が記憶されている。また、ROM3のフォント用ROM、又は、外部メモリ11には、文書処理に用いられるフォントデータ等が記憶されている。更に、ROM3のデータ用ROM、又は、外部メモリ11には、文書処理等を行う際に用いられる各種データが記憶されている。RAM2は、CPU1の主メモリ、ワークエリア等として機能する。キーボードコントローラ5は、キーボード9や図示されていないポインティングデバイスからのキー入力を制御する。ディスプレイコントローラ6は、ディスプレイ10による表示を制御する。ディスクコントローラ7は、外部メモリ11とのアクセスを制御する。ここで、外部メモリ11には、例えば、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、プリンタ制御コマンド生成プログラム等を記憶するハードディスク、フロッピー(登録商標)ディスクが用いられる。プリンタコントローラ8は、双方向性インターフェース21を介して、プリンタ1500に接続されていて、プリンタ1500との通信制御処理を実行する。なお、CPU1は、ディスプレイ10上の図示されていないマウスカーソル等で指示されたコマンドに基づいて、予め登録された種々のウィンドウを開き、種々のデータ処理を実行する。ユーザーは、印刷を実行する際に、印刷の設定に関するウィンドウを開き、プリンタの設定や、印刷モードの選択等、印刷処理方法における設定を行うことができる。
【0014】
プリンタ1500は、CPU12によって制御される。CPU12は、ROM13に記憶された制御プログラム等、又は、外部メモリ14に記憶された制御プログラム等に基づいて、印刷部インターフェース16を介して、システムバス15に接続される印刷部17に印刷出力情報としての画像信号を出力する。以下、印刷部17をプリンタエンジンともいう。また、このROM13のプログラム用ROMには、CPU12の制御プログラム等が記憶されている。また、ROM13のフォント用ROMには、印刷出力情報を生成する際に用いられるフォントデータ等が記憶されている。また、ROM13のデータ用ROMには、ハードディスク等の外部メモリ14がないプリンタの場合には、コンピュータ上で用いられる情報等が記憶されている。CPU12は、入力部18を介して、ホストコンピュータ3000との通信処理を行うことができ、プリンタ1500内の情報等が、ホストコンピュータ3000に通知される。RAM19は、CPU12の主メモリや、ワークエリア等として機能する。また、図示されていない増設ポートに接続されるオプションRAMにより、メモリ容量を拡張することができる。なお、RAM19は、出力情報展開領域、環境データ格納領域、NVRAM等に用いられる。ハードディスクやICカード等である外部メモリ14は、メモリコントローラ20によりアクセスを制御されている。外部メモリ14は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶している。また、操作部22は、例えば、操作パネルであって、ユーザーによる操作のためのスイッチ、LED表示器等を含んでいる。また、本実施形態において、プリンタ1500が図示されていないNVRAMを含み、操作部22から入力されたプリンタモード設定情報を記憶するようにしても良い。本実施形態において、印刷部17は、電子写真方式のプリンタエンジンであるが、電子写真方式でない他の印刷方式が用いられても良い。
【0015】
図2は、図1に示したコンピュータ3000における印刷処理のための一構成を示す図である。アプリケーション201、グラフィックエンジン202、プリンタドライバ203、およびシステムスプーラ204は、外部メモリ11に保存されたプログラムファイルとして存在する。そして、これらは、OSやそのモジュールを利用するモジュールによってRAM2にロードされて実行されるプログラムモジュールである。
【0016】
また、アプリケーション201およびプリンタドライバ203は、外部メモリ11のFDや不図示のCD−ROM、あるいは不図示のネットワークを経由して外部メモリ11のHDに追加することが可能となっている。外部メモリ11に保存されているアプリケーション201はRAM2にロードされて実行される。このアプリケーション201からプリンタ1500に対して印刷を行う際には、同様にRAM2にロードされ実行可能となっているグラフィックエンジン202を利用して出力(描画)を行う。
【0017】
グラフィックエンジン202は、プリンタなどの印刷装置ごとに用意されたプリンタドライバ203を外部メモリ11からRAM2にロードする。また、グラフィックエンジン202はアプリケーション201から印刷設定もしくは印刷用データを受け取り、プリンタドライバ203へ出力する。プリンタドライバ203のUIコンポーネント205は、グラフィックエンジン202から印刷設定を受取り、印刷設定の表示や変更などを行い、グラフィックエンジンを通してアプリケーションに返却する。プリンタドライバ203のグラフィックコンポーネント206はグラフィックエンジン202から印刷用データを受取り、プリンタが認識可能な制御コマンド、例えばPDL(Page Description Language)に変換する。変換されたプリンタ制御コマンドは、OSによってRAM2にロードされたシステムスプーラ204を経てインターフェース21経由でプリンタ1500へ印刷データとして出力される仕組みとなっている。
【0018】
<ダイレクト印刷に関する設定>
図6及び図7を用いてプリンタドライバ203が保持するダイレクト印刷の設定情報について説明する。図6は本発明でプリンタドライバ203が保持する、ダイレクト印刷に関わる設定情報を示す図である。図7は本発明における、プリンタドライバ203が保持するダイレクト印刷に関する設定を行うためのユーザーインターフェースの一例を示す図である。
【0019】
図6において、600はプリンタドライバ203が保持するダイレクト印刷に関わる設定情報である。設定情報600は、保持する場所としてはレジストリの形態やファイルの形態としてハードディスク(HD)等の外部メモリ11でも良いし、プログラムで保持しても構わない。設定情報600には、601〜604の各項目が含まれている。
【0020】
ドライバ機能リスト601には、本実施形態の印刷システムで実現可能な全機能のうち、プリンタ1500にて実現できる機能を除いた機能の一覧情報が格納されている。つまり、実現のためにはプリンタドライバ203が動作する必要のある機能の一覧が格納されている。本情報に記載されている機能は、一般的にはプリンタ1500の種類や状態によって異なる。ダイレクト印刷を優先する設定になっているときには、プリンタドライバは印刷時に受信した印刷用データ303をPDLやイメージなどに変換することなく、印刷用データ303を、スプーラ204を経てプリンタ1500へ送信する。ダイレクト印刷を優先しない設定になっているときには、プリンタドライバは、従来通り、印刷用データをPDLやイメージなどの印刷データ305に変換し、印刷データ305を、スプーラ204を経てプリンタ1500へ転送する。印刷システムで実現可能な機能は、本実施形態では、印刷ジョブを定義したジョブチケットに記述することで、印刷設定に含めることができる。ダイレクト印刷実行設定602は、ダイレクト印刷を行うか否かを示す設定項目である。ダイレクト印刷実行設定602にダイレクト印刷を行う旨が設定されている場合、ダイレクト印刷推奨機能リスト603には、印刷実行時に設定されていた場合にダイレクト印刷を行う機能の一覧が格納されている。ダイレクト印刷優先機能リスト604は、本来プリンタドライバで実現する機能の中で、ダイレクト印刷を優先し、プリンタドライバの処理を不要とする機能の一覧が格納されている。ダイレクト印刷優先機能リスト604にて、ダイレクト印刷が優先に設定された機能は、プリンタドライバ203はプリンタドライバ203での処理は不要と判断する。この処理については印刷処理の中でフローチャート図4,5を用いて後述する。
【0021】
700はダイレクト印刷に関わる設定情報600を設定するためのダイアログの一例である。700は、プリンタドライバ203により提供されるユーザーインターフェースの一部(タブ)として構成されている。アプリケーション201やOSのユーザーインターフェースを通じて、ダイアログ700が表示される。印刷設定のラジオボタン701、702及び703は、このうちのどれかを選択する形となっている。ラジオボタン701が選択されることにより、ダイレクト実行設定602はダイレクト印刷を行うことが設定される。ラジオボタン702が選択されると、ダイレクト実行設定602はダイレクト印刷を行わないことが設定され、PDL・イメージ変換印刷を行う設定となる。ラジオボタン703が選択されると、リストボックス704にてダイレクト印刷を行う機能の選択を行うことが可能となる。リストボックス704にて選択された機能はダイレクト印刷実行機能リスト603に追加される。このリストで選択されている機能が、印刷実行時の印刷設定に含まれる場合にはダイレクト印刷が行われる。図7の例ではモノクロ印刷が選択状態になっており、モノクロ印刷が設定されたデータはダイレクト印刷の対象となる。
【0022】
チェックボックス欄705、706、707にはプリンタドライバ203での処理が必要な機能がそれぞれ、カテゴライズされて記載されている。各機能のチェックボックスを外すことで、ダイレクト印刷優先機能リスト604に該当機能が格納される。例えば、図7では表示された全機能がチェックされているので、これらの機能のいずれもダイレクト印刷優先機能として登録されることはない。ある機能がダイレクト印刷優先機能として登録されている場合、当該機能を用いる指示が印刷設定に含まれていると、当該印刷ジョブはダイレクト印刷の対象となる。例えば、図7に「ドライバ製本」のチェックが外されており、かつ、印刷設定に「ドライバ製本」が含まれていた場合、当該印刷設定を伴う印刷用データはダイレクト印刷の対象となる。OKボタン708が押下されることでダイレクト印刷情報格納部325は、現在の設定をダイレクト印刷に関わる設定情報600へ適用し、プリンタドライバユーザインターフェース700を閉じる。すなわち、設定情報600を更新し、保存する。キャンセルボタン709が押下されることで現在の設定を適用せずプリンタドライバユーザインターフェース700を閉じる。適用ボタン710が押下されることで現在の設定をダイレクト印刷に関わる設定情報600へ適用する。ヘルプボタン711を押下することでプリンタドライバ203のヘルプを表示する。
【0023】
<印刷処理>
本発明の、実施形態における印刷処理のフローについて図を参照しながら説明する。図3は本実施形態の印刷実行時におけるシステムの、データフローを伴う構成図である。図3を参照しながら本発明の印刷実行時における詳細なシステムの構成及びデータフローを説明する。
【0024】
印刷設定301はアプリケーション201の印刷設定作成部311が設定したデータである。印刷設定301は、たとえばジョブチケットであり、特定のプリンタが解釈実行可能な形式(本例ではXPS互換プリンタが解釈実行可能なXPS形式)で記述されている。印刷設定301は印刷設定データとも呼ぶ。印刷設定301は、印刷設定問い合わせ部312によりUIコンポーネント205の印刷設定部321に渡される。その後、印刷設定部321において、受信した印刷設定301に禁則処理部322にて禁則処理を施し、UI表示部324に渡して表示する。ドライバ機能判定部323は、禁則処理された印刷設定を実現する上において、ドライバ機能の要・不要の判定処理を行う。その後、ユーザーは、必要に応じて、UI表示部324は図示されていないプリンタドライバの設定画面(UI)を用いて、印刷設定の変更を行い、加工された処理済印刷設定302をアプリケーション201に返信する。ダイレクト印刷情報格納部325は、ダイレクト印刷に関する設定情報600の格納を行う。アプリケーション201は、印刷の描画に関するデータと、印刷設定302とに基づいて、印刷用データ303、もしくは304を作成する。ドライバ・ダイレクト判定部313は処理済印刷設定302を用いてドライバ経由の印刷を行うか、ダイレクト印刷を行うかの判定を行う。印刷用データ送信部314は印刷用データ303もしくは304の送信を行う。
【0025】
ダイレクト判定部331はプリンタドライバグラフィックコンポーネント206が受信した印刷用データ303を用いてダイレクト印刷するかの判定を行う。機能実現部332はプリンタドライバ203が実現すべき機能に関する処理を行う。レンダリング部(PDL変換部)333は印刷用データ303を、例えばPDL等のプリンタが認識可能な制御コマンドに変換する。スプーラ転送部334は、システムスプーラ204に印刷データ305を送信する。その後、システムスプーラ204を介して、プリンタ1500において出力する。印刷データ305はプリンタ1500へ送信されるデータである。プリンタ設定情報306はプリンタの設定情報であり、プリンタ1500に備えられている機器(例えば、フィニッシャーなど)、設定(例えば、機能の状態など)、能力(例えば、カラー印刷が可能か)などが格納されている。本設定情報はプリンタドライバ203のインストール時に一意に作成、保持してもよいし、プリンタ1500の設定が変更されたときにプリンタ1500と通信を行い、更新することも可能である。本実施形態においては306の内部にはダイレクト印刷が可能かどうかの情報が含まれている。
【0026】
図4は、本実施形態における印刷処理の手順を示すフローチャートである。なお、本願のフローチャートの各ステップは、CPU1が関連するプログラムを読み込んで実行することにより実現される。
図10は一般的なアプリケーションが表示するプリントダイアログのユーザーインターフェースの一例を示す図である。図4を参照しながら印刷処理の基本フローについて説明する。ステップS401,402,406,407はアプリケーションプログラム201により実行される。ステップS403〜S405はプリンタドライバUIコンポーネント205により実行される。ステップS408はプリンタドライバグラフィックコンポーネント206により実行される。ステップS410はプリンタ1500により実行される。
【0027】
ユーザーが、アプリケーションの画面を介して印刷を指示すると、図4の印刷の処理が開始される。まず、ステップS401において、印刷設定作成部311は印刷設定301の作成を行い、図10に示す画面1000のようなユーザーインターフェースを表示することが可能である。ここで、印刷設定301は、印刷処理が指示される前にアプリケーション201があらかじめ保持しておくことも可能である。図10のプリンタ選択欄1001は現在選択されているプリンタを表示している。印刷ボタン1003が押下されると、ステップS402へ進み、印刷設定問い合わせ部312は印刷設定301をプリンタドライバUIコンポーネント205へ渡し、処理を依頼する。
【0028】
ステップS403では、印刷設定部321が受信した印刷設定301に対して禁則処理部322が禁則処理を行う。ステップS404では、ドライバ機能判定部323が禁則処理済印刷設定に対して、ドライバ機能が必要かどうかの判定を行い、処理済印刷設定302を作成する。本ステップの処理の詳細については、図5を用いて後述する。ステップS405では、印刷設定部321が、処理済印刷設定302をアプリケーション201の印刷設定問い合わせ部312に返却する。
【0029】
なお図10のボタン1002を押下することで、プリンタドライバUIコンポーネント205へ印刷設定301が送信され、プリンタドライバは、処理およびUI表示部324にプリンタドライバの設定画面を表示できる。この処理にて、ボタン1003が押下される前に、ステップS402〜S405に該当する処理を行うことも可能である。
【0030】
さて、ステップS406では、ドライバ・ダイレクト判定部313は印刷設定問い合わせ部312が受信した処理済印刷設定302に記載されている、ダイレクト印刷が可能か否かを示す情報を取得する。続けて、プリンタドライバ経由の印刷を行うか、ダイレクトで印刷が可能かの判定が行われる。すなわち、アプリケーションは、プリンタドライバからのダイレクト印刷が可能か否かを示す通知を受け、その通知内容に従ってドライバ処理が必要か否かを判定する。プリンタドライバ経由の印刷設定と判定された場合にはステップS407へ進む。ダイレクト印刷を判定された場合にはステップS411へ進む。ステップS407では、印刷用データ送信部314は、グラフィックエンジン202を介してプリンタドライバグラフィックコンポーネント206に印刷用データ303を送信する。
【0031】
ステップS401〜407のように処理することで、アプリケーション201は印刷設定によって、プリンタドライバグラフィックコンポーネント206の処理の要・不要を判断することが可能となる。そして、判定結果にしたがって、不要なときには無駄なPCでの処理を省くことができ、必要なときには、機能を適切に実現することが可能となっている。
【0032】
ステップS408では、プリンタドライバグラフィックコンポーネント206は印刷用データ303を受信し、必要な機能の処理を行い、印刷データ305の作成を行う。本ステップの詳細については、図8を用いて後述する。なお、印刷データ305はプリンタ1500が処理可能な形式である。ステップS409では、スプーラ転送部334が、印刷データ305をシステムスプーラ204へ転送する。印刷データ305には、印刷設定302が含まれるか或いは印刷設定302と合わせて転送される。
【0033】
ステップS410では、プリンタ1500が受信した印刷データ305の出力を行い、印刷処理を終了する。
【0034】
ステップS411では、印刷用データ送信部314が、印刷用データ304をシステムスプーラ204へ転送する。印刷用データ304には、印刷設定302が含まれるか或いは印刷設定302と合わせて出力される。
【0035】
以上の手順によって、処理対象の印刷ジョブをプリンタドライバを介してプリンタに送信するか、それともアプリケーションから直接プリンタに送信するかが決定される。そして決定に従って、印刷ジョブを記述した印刷設定データ及び印刷用データがプリンタに送信される。
【0036】
<プリンタドライバ・ダイレクト判定処理>
図5は、本実施形態のプリンタドライバ203で処理を行うか否かを判定する処理(ステップS404)の詳細を示すフローチャートである。
【0037】
まず、ステップS501では、ドライバ機能判定部323は、現在処理対象となっているプリンタ1500のプリンタ設定情報306を参照し、プリンタ1500によりダイレクト印刷が可能かどうかの判定を行う。判定の結果ダイレクト印刷が可能であると判定された場合にはステップS502へ進み、不可と判定された場合にはステップS505へ進む。例えば、本実施形態ではプリンタ1500がXPS互換プリンタであるか判定され、そうであればダイレクト印刷可能であると判定される。その他の判定方法として、プリンタ1500がダイレクト印刷機能を備えるか否かの機能情報を使って判定しても良い。この判定が第1の判定であり、第1の判定手段に相当する。つまり、プリンタ1500は、前記アプリケーションから出力される印刷用データを解釈できる。
【0038】
ステップS502では、ドライバ機能判定部323は、ダイレクト印刷に関わる設定情報600を取得する。ステップS503では、ドライバ機能判定部323は、ステップS403で作成された禁則処理済の印刷設定から、1つの機能を取得する。ステップS504では、ドライバ機能判定部323は、ステップS503で取得した機能が、ドライバ機能リスト601に含まれているかの判定を行う。含まれていた場合にはステップS505へ進み、含まれていなかった場合にはステップS506へ進む。ステップS504の判定は、ダイレクト印刷の可能なプリンタの場合、印刷設定に、プリンタでは実現できない設定(プリンタドライバの処理を必要とする設定)が含まれているか否かを判定する第2の判定手段に相当する。
【0039】
ステップS505では、ドライバ機能判定部323は、ステップS503で取得した機能が、ダイレクト印刷優先機能リスト604に含まれているかの判定を行う。含まれていた場合にはステップS506へ進み、含まれていなかった場合にはステップS507へ進む。換言すれば、このステップは、印刷設定に含まれた、プリンタでは実現できない設定(機能)を無視するか否か判定するものであり、これが第3の判定手段に相当する。
【0040】
ステップS506では、ドライバ機能判定部323は、印刷設定に記載されたすべての機能の処理を終えたかどうかを判定する。
【0041】
ステップS507では、ドライバ機能判定部323は、禁則処理済の印刷設定に対して、プリンタドライバ203での処理が不要であることについて記載された処理済印刷設定302を作成する。
【0042】
ステップS508では、ドライバ機能判定部323は、禁則処理済の印刷設定に対して、プリンタドライバ203での処理が必要であることについて記載された処理済印刷設定302を作成する。
【0043】
以上の手順によって、処理済み印刷設定302に、当該印刷設定の実現のためにプリンタドライバによる処理を行うか否かが書き込まれる。この書き込まれた判定結果が、図4のステップS406による判定の対象となる。
【0044】
なお本実施形態では、ステップS505の判定を行っているが、例えばステップS504の判定の結果、ドライバ機能と判定されれば、そのままステップS508へ分岐するよう処理を構成しても良い。その場合には、ダイレクト印刷優先機能の設定は不要となり、ドライバで提供する機能であっても、ダイレクト印刷を優先してその機能(あるいは設定値)無視することはできなくなる。
【0045】
<プリンタドライバ印刷実行時の処理>
図8は印刷実行時にプリンタドライバ203で行うステップS408の処理のフローチャートを示した図である。また図9はプリンタドライバ203でダイレクト印刷を行うか否かの判定を行う図8のステップS806の処理のフローチャートである。図8及び9を参照しながら印刷実行時のプリンタドライバ203の処理について説明する。
【0046】
ステップS801では、プリンタドライバグラフィックコンポーネント206は印刷用データ303を取得する。
【0047】
ステップS802では、プリンタドライバグラフィックコンポーネント206は印刷用データ303に含まれる印刷設定301の取得を行う。
【0048】
ステップS803ではプリンタドライバグラフィックコンポーネント206は、プリンタドライバUIコンポーネント205と通信を行い、ステップ802で取得した印刷設定を印刷設定部321に渡し、処理を依頼する。続いて禁則処理部322が受信した印刷設定に対して禁則処理を行い、禁則処理済の印刷設定を作成する。
【0049】
ステップS804では、ドライバ機能判定部323は、プリンタドライバ203で実現する機能が存在するかの判定を行い、処理済印刷設定を作成する。ドライバ機能判定部323でのドライバ機能の判定処理の詳細はステップS404と同一であり、図5を用いてステップS501〜508にて前述したとおりである。ステップS804のように、プリンタドライバグラフィックコンポーネント206により処理が行われるときには、既にプリンタドライバは起動しているため、ステップS505のダイレクト優先機能の判定は行わなくても構わない。この場合、プリンタドライバ203で実現する機能は全て実行されることになる。また、プリンタドライバ203で実現するべき機能が存在しないと判定された場合には、直ちにダイレクト印刷を実行することも可能である。また、ステップS507,508により判定結果を印刷設定に書き戻す処理はは不要である。
【0050】
続いて、ステップS806において、ダイレクト判定部331が、処理済印刷設定を用いて、プリンタドライバ203で実現するべき機能があるかの判定を行う。プリンタドライバ203で、実現する機能が存在する場合にはステップS805に進み、存在しない場合にはステップS806に進む。
【0051】
ステップS805では、機能実現部332は印刷設定に応じて、レイアウトを施し、付加描画などを行う。
【0052】
ステップS806では、ダイレクト判定部331はプリンタドライバグラフィックコンポーネント206が受信した印刷用データ303の形式のままダイレクトで印刷を行うか、PDLやイメージへの返還を行うかの判定を行う。ダイレクト印刷と判定された場合には(S807−Yes)、そのまま処理を終了し、PDLやイメージへの変換を行うと判定された場合には(S807−No)、ステップS808へ進む。ステップS806における判定処理の詳細は図9を用いて後述する。
【0053】
ステップS808では、レンダリング部(PDL変換部)333は、印刷用データ303をPDLやイメージへと変換処理を行い、処理を終了する。変換済みの印刷用データは、この後、システムスプーラを介してプリンタ1500に送信される(ステップS409)。
【0054】
このようにプリンタドライバ203のダイレクト判定部331がダイレクトの判定処理を行うことで、本実施形態では、アプリケーション201がドライバ・ダイレクト判定部313を具備しない実施形態を取ることも可能となる。プリンタドライバ203にて無駄なPCでの処理を省きつつ、適切に機能を実現し、元データの形式のままダイレクト印刷することが可能となる。
【0055】
図9を参照しながら、ステップS806のダイレクト判定処理の詳細について説明する。ステップS901では、ダイレクト判定部331は現在処理対象となっているプリンタでダイレクト印刷が可能かどうかの判定を行う。判定の結果ダイレクト印刷が可能となった場合にはステップS902へ進み、不可となった場合にはステップS908へ進む。
【0056】
ステップS902では、ダイレクト判定部331は、ダイレクト印刷に関わる設定情報600の取得を行う。
【0057】
ステップS903では、ダイレクト判定部331は、ダイレクト印刷実行設定602を取得し、ダイレクト印刷の印刷が優先されているかどうかを判定する。優先されているときにはステップS908へ進み、優先されていないときにはステップS904へ進む。
【0058】
ステップS904では、ダイレクト判定部331は、ダイレクト印刷実行機能リスト603の取得を行う。
【0059】
ステップS905では、ダイレクト判定部331は、禁則処理済の印刷設定から、1つ機能を取得する。
【0060】
ステップS906では、ダイレクト判定部331は、ステップS905で取得した機能が、ダイレクト印刷実行機能リスト603に含まれているかの判定を行う。含まれていた場合にはステップS908へ進み、含まれていなかった場合にはステップS907へ進む。
【0061】
ステップS907では、ダイレクト判定部331は、印刷設定に記載されたすべての機能の処理を終えたかどうかを判定する。終了していればステップS909へ分岐する。終了していなければステップS905へと戻る。
【0062】
ステップS908では、ダイレクト判定部331は、ダイレクト印刷を行うことを決定し、処理を終了する。決定した内容はステップS807の判定のために保存される。
【0063】
ステップS909では、ダイレクト判定部331は、PDL/イメージ変換印刷を行うことを決定し、処理を終了する。
【0064】
<印刷設定のダイレクト・プリンタドライバ印刷の判定結果の記載>
図11はアプリケーションが作成した印刷設定の一例を示す図である。図12はプリンタドライバが処理を施しダイレクト印刷と判定した印刷設定の一例を示す図である。図13はプリンタドライバが処理を施しプリンタドライバ経由の印刷と判定した印刷設定の一例を示す図である。図11〜13を参照しながら、印刷設定のダイレクト・プリンタドライバ印刷の判定結果の記載について説明する。
【0065】
図11に示される印刷設定は、本実施形態では二つの部分に分けられる。1つ目が、機能としてアプリケーションが指定する印刷設定記述部分であり、2つ目がダイレクト印刷・プリンタドライバ経由印刷のダイレクト印刷判定結果記述部分である。図11で示される印刷設定では、印刷設定記述部分にて用紙方向やコレートなどの設定が記載されている。さらに、図11ではセキュアプリントという機能が設定されている。本図に示すセキュアプリントとは、プリンタドライバ203の設定画面を使って、ユーザー名やドキュメント名、パスワード名をユーザーに入力させることにより、実現される。すなわち、セキュアプリントを実行する場合には、プリンタドライバを介した印刷が必要となる。図11のダイレクト印刷判定結果記述部分にはAutoと記述されており、これは、プリンタドライバによってダイレクト印刷するか否かを決定することを意味している。
【0066】
なお、アプリケーションは、プリンタドライバの機能情報を取得しプリンタドライバの機能を設定することもできる。そのため、例えば、アプリケーションが、プリンタドライバが「セキュアプリント」機能を備えることを示す情報を取得し、アプリケーションの設定画面にセキュアプリント機能を表示する。
そして、ユーザーがこのアプリケーションの設定画面を使ってセキュアプリント機能を選択することで、アプリケーションが指定する印刷設定記述部分に「セキュアプリント」が記載される。
【0067】
図13で示される印刷設定は図11で示される印刷設定にプリンタドライバ203の処理が適用された処理済印刷設定である。前述したとおり、図11で示される印刷設定はセキュアプリントというプリンタドライバ203での処理を必要とする。そのため、プリンタドライバ203は、プリンタドライバ経由での印刷が必要であると判定し、ダイレクト印刷・プリンタドライバ経由印刷の判定結果記述部分に設定値としてOffを記載する。これによってプリンタドライバ経由であることが示されている。これは図5のステップS507または図9のステップS909で記述される。
【0068】
図11で示される印刷設定からセキュアプリントを行わないように変えた印刷設定にプリンタドライバ203の処理が適用された処理済印刷設定である。プリンタドライバ203は、プリンタドライバ経由での印刷が不要であると判定し、ダイレクト印刷・プリンタドライバ経由印刷の判定結果記述部分に設定値としてOnを記載する。これによってプリンタドライバ経由でないことが示されている。これは図5のステップS508または図9のステップS908で記述される。
【0069】
また、図12で示される印刷設定は図11で示される印刷設定にプリンタドライバ203の処理が適用された処理済印刷設定である。例えば、本願の図7を用いて「セキュアプリント」のチェックが外されていた場合、プリンタドライバ203は、セキュアプリントが指定されていてもダイレクト印刷すると判定する。そのため、図12に示すようにダイレクト印刷・プリンタドライバ経由印刷の判定結果記述部分に設定値としてOnが記載される。
【0070】
以上のようにして本実施形態によれば、ダイレクト印刷を行うか否かを、プリンタの機能や印刷設定に従って決定することができる。その決定の基準として、プリンタドライバによって実現される機能の重要性と処理効率とを考量して、ダイレクト印刷を行うか否かを決定できる。たとえば、使用対象のプリンタでは実現できない機能があっても、ダイレクト印刷を優先すること、すなわち設定された機能を無視するなどの設定を行うこともできる。この結果、印刷処理によるPCのCPU占有率を減少させ、不要な処理を削減することができ、あわせて、印刷設定に設定された機能が抜けることなく適切に印刷を行うことも可能となる。
【0071】
[他の実施形態]
なお本発明は、複数の機器(例えばホストコンピュータ、インターフェース機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用してもよい。また本発明の目的は、前述の実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータが記憶媒体に格納されたプログラムを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラム自体が前述した実施形態の機能を実現することになり、そのプログラム自体およびプログラムを記憶した記憶媒体は本発明を構成することになる。
【0072】
また、本発明には、プログラムの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。さらに、記憶媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた場合についても、本発明は適用される。その場合、書き込まれたプログラムの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される。
【図面の簡単な説明】
【0073】
【図1】本発明の実施形態に係る印刷システムの構成を示すブロック図である。
【図2】図1に示すホストコンピュータの構成の一例を示す図である。
【図3】本実施形態における印刷設定及び印刷実行時におけるシステムの構成を示す図である。
【図4】本実施形態におけるダイレクト・プリンタドライバ切り替え印刷処理の手順を示すフローチャートである。
【図5】図4に示すフローチャートのダイレクト印刷の判定処理の詳細を示す図である。
【図6】プリンタドライバが保持するダイレクト印刷の設定情報を示す図である。
【図7】プリンタドライバにダイレクト印刷の設定情報を設定するための画面の一例を示す図である
【図8】印刷実行時のプリンタドライバの処理の手順を示すフローチャートである。
【図9】図8に示すフローチャートの詳細を示すフローチャートである。
【図10】アプリケーションが印刷実行時に表示する画面の一例を示す図である。
【図11】アプリケーションが作成した印刷設定の一例を示す図である。
【図12】プリンタドライバが処理を施しダイレクト印刷と判定した印刷設定の一例を示す図である。
【図13】プリンタドライバが処理を施しプリンタドライバ経由の印刷と判定した印刷設定の一例を示す図である。
【符号の説明】
【0074】
1、12 CPU
2、19 RAM
3、13 ROM
4、15 システムバス

【特許請求の範囲】
【請求項1】
アプリケーションプログラムにより生成された印刷用データ及び該印刷用データのための印刷設定データを用いて印刷装置を制御する印刷制御装置であって、
前記印刷装置はダイレクト印刷の可能な印刷装置であるか否か判定する第1の判定手段と、
前記第1の判定手段により前記印刷装置がダイレクト印刷の可能な印刷装置であると判定された場合、前記印刷設定データに、プリンタドライバの処理を必要とする設定が含まれているか否かを判定する第2の判定手段と、
前記第2の判定手段による判定の結果、前記プリンタドライバの処理を必要とする設定が含まれていないと判定された場合、前記印刷用データを前記印刷装置に直接に送信できる旨を前記アプリケーションプログラムに通知し、そうでない場合には、前記印刷用データを前記印刷装置に直接に送信できない旨を前記アプリケーションプログラムに通知する通知手段と
を備えることを特徴とする印刷制御装置。
【請求項2】
前記印刷設定データに含まれた前記プリンタドライバの処理を必要とする設定を無視するか否か判定する第3の判定手段を更に備え、
前記通知手段は、前記第2の判定手段による判定の結果、前記プリンタドライバの処理を必要とする設定が含まれていないと判定された場合、または、前記第3の判定手段による判定の結果、前記印刷設定データに含まれた前記プリンタドライバの処理を必要とする設定を無視すると判定された場合には、前記印刷用データを前記印刷装置に直接に送信できる旨を前記アプリケーションプログラムに通知し、そうでない場合には、前記印刷用データを前記印刷装置に直接に送信できない旨を前記アプリケーションプログラムに通知することを特徴とする請求項1に記載の印刷制御装置。
【請求項3】
前記アプリケーションプログラムに対して、前記通知手段により前記印刷装置に直接に送信できない旨を通知した場合に、前記印刷用データを前記アプリケーションプログラムから取得して、前記印刷設定データに含まれる印刷設定に従って前記印刷用データを加工する加工手段と、
前記印刷装置がダイレクト印刷の可能な印刷装置であれば、前記印刷用データを前記印刷装置に送信し、ダイレクト印刷の可能な印刷装置でなければ、前記印刷装置が処理可能な形式に前記印刷用データを変換して変換済みの印刷用データを前記印刷装置に送信する送信手段と
を更に備えることを特徴とする請求項1または2に記載の印刷制御装置。
【請求項4】
前記アプリケーションプログラムは、前記通知手段により通知された通知内容に基づいて、前記印刷用データを前記印刷装置に直接に送信できる旨が通知された場合には、前記印刷用データをそのまま前記印刷装置に送信し、前記印刷用データを前記印刷装置に直接に送信できない旨が通知された場合には、前記加工手段に前記印刷用データを引き渡すことを特徴とする請求項3に記載の印刷制御装置。
【請求項5】
アプリケーションプログラムにより生成された印刷用データ及び該印刷用データのための印刷設定データを用いて、前記アプリケーションから出力される印刷用データを解釈できる印刷装置を制御する印刷制御装置であって、
前記印刷設定データに、プリンタドライバの処理を必要とする設定が含まれているか否かを判定する第2の判定手段と、
前記第2の判定手段による判定の結果、前記プリンタドライバの処理を必要とする設定が含まれていないと判定された場合、前記印刷用データを前記印刷装置に直接に送信できる旨を前記アプリケーションプログラムに通知し、そうでない場合には、前記印刷用データを前記印刷装置に直接に送信できない旨を前記アプリケーションプログラムに通知する通知手段とを備えることを特徴とする印刷制御装置。
【請求項6】
アプリケーションプログラムにより生成された印刷用データ及び該印刷用データのための印刷設定データを用いて印刷装置を制御する、第1の判定手段と第2の判定手段と通知手段とを備えた印刷制御装置により実行される印刷制御方法であって、
前記第1の判定手段が、前記印刷装置はダイレクト印刷の可能な印刷装置であるか否か判定する第1の判定工程と、
前記第2の判定手段が、前記第1の判定工程により前記印刷装置がダイレクト印刷の可能な印刷装置であると判定された場合、前記印刷設定データに、プリンタドライバの処理を必要とする設定が含まれているか否かを判定する第2の判定工程と、
前記通知手段が、前記第2の判定工程による判定の結果、前記プリンタドライバの処理を必要とする設定が含まれていないと判定された場合、前記印刷用データを前記印刷装置に直接に送信できる旨を前記アプリケーションプログラムに通知し、そうでない場合には、前記印刷用データを前記印刷装置に直接に送信できない旨を前記アプリケーションプログラムに通知する通知工程と
を有することを特徴とする印刷制御方法。
【請求項7】
前記印刷制御装置は第3の判定手段を更に備え、
前記第3の判定手段が、前記印刷設定データに含まれた前記プリンタドライバの処理を必要とする設定を無視するか否か判定する第3の判定工程を更に有し、
前記通知工程では、前記第2の判定工程による判定の結果、前記プリンタドライバの処理を必要とする設定が含まれていないと判定された場合、または、前記第3の判定工程でによる判定の結果、前記印刷設定データに含まれた前記プリンタドライバの処理を必要とする設定を無視すると判定された場合には、前記印刷用データを前記印刷装置に直接に送信できる旨を前記アプリケーションプログラムに通知し、そうでない場合には、前記印刷用データを前記印刷装置に直接に送信できない旨を前記アプリケーションプログラムに通知することを特徴とする請求項6に記載の印刷制御方法。
【請求項8】
前記印刷制御装置は加工手段と送信手段とを更に備え、
前記加工手段が、前記アプリケーションプログラムに対して、前記通知工程により前記印刷装置に直接に送信できない旨を通知した場合に、前記印刷用データを前記アプリケーションプログラムから取得して、前記印刷設定データに含まれる印刷設定に従って前記印刷用データを加工する加工工程と、
前記送信手段が、前記印刷装置がダイレクト印刷の可能な印刷装置であれば、前記印刷用データを前記印刷装置に送信し、ダイレクト印刷の可能な印刷装置でなければ、前記印刷装置が処理可能な形式に前記印刷用データを変換して変換済みの印刷用データを前記印刷装置に送信する送信工程と
を更に有することを特徴とする請求項6または7に記載の印刷制御方法。
【請求項9】
前記アプリケーションプログラムは、前記通知工程により通知された通知内容に基づいて、前記印刷用データを前記印刷装置に直接に送信できる旨が通知された場合には、前記印刷用データをそのまま前記印刷装置に送信し、前記印刷用データを前記印刷装置に直接に送信できない旨が通知された場合には、前記加工工程に前記印刷用データを引き渡すことを特徴とする請求項8に記載の印刷制御方法。
【請求項10】
アプリケーションプログラムにより生成された印刷用データ及び該印刷用データのための印刷設定データを用いて、前記アプリケーションから出力される印刷用データを解釈できる印刷装置を制御する印刷制御装置による印刷制御方法であって、
前記印刷制御装置の第2の判定手段が、前記印刷設定データに、プリンタドライバの処理を必要とする設定が含まれているか否かを判定する第2の判定工程と、
前記印刷制御装置の通知手段が、前記第2の判定工程による判定の結果、前記プリンタドライバの処理を必要とする設定が含まれていないと判定された場合、前記印刷用データを前記印刷装置に直接に送信できる旨を前記アプリケーションプログラムに通知し、そうでない場合には、前記印刷用データを前記印刷装置に直接に送信できない旨を前記アプリケーションプログラムに通知する通知工程と
を有することを特徴とする印刷制御方法。
【請求項11】
請求項1乃至5のいずれか1項に記載した印刷制御装置の各手段としてコンピュータを機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2010−165261(P2010−165261A)
【公開日】平成22年7月29日(2010.7.29)
【国際特許分類】
【出願番号】特願2009−8243(P2009−8243)
【出願日】平成21年1月16日(2009.1.16)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】