JP2006235936A - プリンティングシステム - Google Patents
プリンティングシステム Download PDFInfo
- Publication number
- JP2006235936A JP2006235936A JP2005048865A JP2005048865A JP2006235936A JP 2006235936 A JP2006235936 A JP 2006235936A JP 2005048865 A JP2005048865 A JP 2005048865A JP 2005048865 A JP2005048865 A JP 2005048865A JP 2006235936 A JP2006235936 A JP 2006235936A
- Authority
- JP
- Japan
- Prior art keywords
- printer driver
- printer
- group
- processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Landscapes
- Accessory Devices And Overall Control Thereof (AREA)
Abstract
【課題】 複数台の出力デバイスを使った大量印刷系のオフィスでは出力デバイスの機種をそろえるのが一般的である。このような環境下でも、グループプリンタドライバは、全てのメンバプリンタに対して機能を問い合わせコンフリクト処理を行った後にUI表示するため、処理の最適化によるUI表示パフォーマンスの向上を目的とする。
【解決手段】 印刷ジョブ制御システムAPIから、メンバプリンタの識別IDを獲得する手段と、メンバプリンタの構成台数を獲得する手段と、構成確認処理の適用について判断する手段と、構成確認処理を行う手段と、前記確認処理結果を保持する手段と、その結果をもとに、コンフリクト処理を適用する手段と、コンフリクト結果を元にグループプリンタドライバUIを表示する手段を有する。
【選択図】 図1
【解決手段】 印刷ジョブ制御システムAPIから、メンバプリンタの識別IDを獲得する手段と、メンバプリンタの構成台数を獲得する手段と、構成確認処理の適用について判断する手段と、構成確認処理を行う手段と、前記確認処理結果を保持する手段と、その結果をもとに、コンフリクト処理を適用する手段と、コンフリクト結果を元にグループプリンタドライバUIを表示する手段を有する。
【選択図】 図1
Description
本発明は、アプリケーションからの描画コマンドに対応して印刷処理を行う印刷データ処理装置および印刷データ処理方法、コンピュータが実行可能な印刷データ処理を行うプログラム、およびコンピュータが読み出し可能なプログラムを格納したプリンティングシステムに関するものである。
近年、ネットワーク機器が一般に利用され、ネットワーク上に多数のパソコン(以下、PC)やプリンタが接続されるようになった。このようなネットワーク環境において、印刷を行う際、ページ数の多いドキュメントあるいは部数の多いドキュメントについては、印刷時間の短縮を図るために、いったん印刷ジョブをスプールし、複数のプリンタに頁ごとあるいは部数ごとに分散して出力するシステム(分散印刷システム)が知られている。
さらに、このようなネットワーク環境において、カラー頁、モノクロ頁が混在する一つのドキュメントに対して、印刷時のコストおよび印刷時間の短縮を図るために、カラー頁はカラープリンタへ、モノクロ頁はモノクロプリンタへ分散して出力するシステム(カラー・モノクロ分散印刷システム)が知られている。
さらに、このようなネットワーク環境において、一つのドキュメントを一度の印刷指示で、複数のプリンタに同時に送信し印刷するシステム(同報印刷システム)が知られている。
また、一般のプリンタドライバは、通常の印刷処理に必要な基本的な設定情報(たとえば、印刷の部数、両面印刷の可否情報)をドライバ設定情報の共通領域(Public DEVMODE)と呼ばれる領域に記憶している。この領域に設定されている情報は異なるプリンタベンダにおいても、設定項目の読み書きが可能であることが知られている。
一方、プリンタ固有の機能として、たとえば、ステイプル機能、パンチ機能、製本印刷機能といったものは、ドライバ設定情報の拡張領域(拡張 DEVMODE)に記憶しており、この領域の設定情報はプリンタベンダによってフォーマットが異なることも知られている。
また、アプリケーションデータから作成されたEMF(Enhanced Meta−File)と、仮想ドライバを介しての設定に基づき作成されたジョブ記述ファイルとを用意し、ジョブ記述ファイルに含まれるジョブの配布先のプリンタに対しEMFを変換したコマンドを送信し、分散・同報印刷を行う仕組みが知られている。
例えば特許文献1には、上に述べたような仮想ドライバを利用する印刷において、仮想ドライバのダイアログ画面を介して設定された、メーカやプリンタ機種に依存しない共通な情報(用紙サイズ、用紙種等)をDEVMODE情報として印刷設定する仕組みが開示されている。この仮想ドライバのダイアログ画面の設定可能項目は固定的なものとなっており、分散・同報印刷に利用される複数のプリンタを代表するものであり、分散・同報印刷は配布印刷などの際に、ユーザは複数のプリンタにまとめて所定の設定を行えるというメリットを受けることができた。
特開平11−143661号公報
しかしながら、従来から知られている特許文献1によれば仮想ドライバのダイアログ画面を介して設定可能な項目が固定的なものとなっており、複数のプリンタの各々の機能を画一的なものとして扱うことになり、実際には異なる各々のプリンタの機能を十分に反映させたものであるとは云えず、各々のプリンタの機能を十分に生かしきれないという問題が挙げられている。
また、以上の問題を解決するために複数のプリンタから基本領域には、OSの機能を用いて機能の吸い上げを行い、拡張領域(拡張 DEVMODE)に関してはプリンタドライバ開発ベンダの提供しているAPI(Software Development Kit:SDK)を利用して機能を吸い上げ、さらに各プリンタドライバから吸い上げた機能に対してコンフリクト処理を施し仮想プリンタUIを表示させる方法あるが、全てのプリンタドライバに対して機能を問い合わせ、コンフリクト処理を行った後にUI表示を行う必要があった。
また、複数台の出力デバイスを使った大量印刷系のオフィスでは、同一出力を得るため出力デバイスの機種を限定した形で運用するのが一般的である事が知られており、このようなケースでも各プリンタドライバに対してコンフリクト処理を行っており、台数が増えると、前記コンフリクト処理に時間を要してしまい、仮想プリンタのUI表示要求からUI表示までに時間がかかることがあり処理の最適化によりUI表示パフォーマンスの向上が望まれていた。
本発明は以上の点に着目して成されたもので数台の出力デバイスを使った大量印刷系のオフィスでは出力デバイスの機種をそろえるのが一般的である。このような環境下でも、グループプリンタドライバは、全てのメンバプリンタに対して機能を問い合わせコンフリクト処理を行った後にUI表示するため、処理の最適化によりUI表示パフォーマンスが向上するプリンティングシステムを提供することを目的とする。
ネットワークに接続される複数のメンバプリンタを仮想的に1つのプリンタとして扱うグループプリンタへの印刷ジョブ処理指定を、グループプリンタドライバを使って行う印刷ジョブ制御システムにおいて、印刷ジョブ制御システムAPIを使って、グループプリンタを構成する全てのメンバプリンタドライバの識別IDを獲得する手段と、メンバプリンタの構成台数を獲得する手段と、構成確認処理の適用について判断する手段と、前記判断において適用と判断した場合には構成確認処理を行う手段と、前記確認処理結果を保持する手段と、その結果をもとにメンバプリンタに対してコンフリクト処理を適用する手段と、構成確認処理を適用しなかった場合のコンフリクト処理適用手段と、前記、コンフリクト結果を元にグループプリンタドライバUIを表示する手段を備える。
なお、さらに詳細に説明すれば、本発明は下記の構成によって前記課題を解決できた。
(1)ネットワークに接続されるメンバプリンタをグループプリンタとして扱い、そのプリンタに対して、印刷ジョブの処理指定をグループプリンタドライバ上で設定する印刷ジョブ制御システムにおいて、印刷ジョブ制御システムAPIを使って、グループプリンタを構成する全てのメンバプリンタドライバの識別IDを獲得する手段と、メンバプリンタの構成台数を獲得する手段と、構成確認処理の適用について判断する手段と、前記判断において適用と判断した場合には構成確認処理を行う手段と、前記確認処理結果を保持する手段と、その結果をもとに、メンバプリンタに対してコンフリクト処理を適用する手段と、構成確認処理を適用しない場合のコンフリクト処理適用手段と、前記、コンフリクト結果を元にグループプリンタドライバUIを表示する手段を有することを特徴とするプリンティングシステム。
複数の同一構成プリンタドライバがある環境下では、グループプリンタドライバUI上で“構成確認フラグ”にリンクしたUI設定をONにする事により、グループプリンタ内の同一構成のメンバプリンタドライバの調査(構成確認処理)を行い、同一構成プリンタドライバが複数ある場合には、その中の一台のみをコンフリクト対象プリンタとする事により、処理の負荷が重いコンフリクト処理の削減を可能とする。また、前記環境下以外(全てのメンバプリンタの構成が異なるよな環境下を指す)では“構成確認フラグ”にリンクしたUI設定をOFFとする事で、構成確認処理によるオーバヘッドなく処理を実行可能とする。以上により、UI表示処理にかかるコンフリクト処理の最適化を図り、グループプリンタドライバのUI表示処理の大幅なパフォーマンス向上が可能となる。
以下、本発明を適用するのに好適である実施形態について説明を行う。
図1は、本発明を適用可能な情報処理システムの構成を説明するブロック図である。なお、本システムにおけるクライアントコンピュータは、1台、または複数台接続されていることを仮定している。図において、102、103、104はクライアントコンピュータ(クライアント)としての情報処理装置であり、イーサネット(登録商標)などのネットワークケーブルによって、ネットワーク106に接続され、アプリケーションプログラム等の各種のプログラムを実行可能であり、印刷データをプリンタに対応するプリンタ言語に変換する機能を有するプリンタドライバを搭載している。なお、プリンタドライバは複数のプリンタドライバをサポートするものとする。101は本実施形態のサーバ(以下、プリントサーバと呼ぶ)としての情報処理装置であり、ネットワークケーブルによって、ネットワーク106に接続され、ネットワークで使用されるファイルを蓄積したり、ネットワーク106の使用状態を監視したりする。プリントサーバ101は、ネットワーク106に接続されている複数のプリンタを管理している。
構成としては、クライアント102〜104とプリントサーバ101は、一般的な情報処理装置であり、クライアントとプリントサーバには、それぞれ異なる制御を行う印刷制御プログラムが実行可能に格納されている。
また、プリントサーバ101は、一般的な情報処理装置であり、クライアント102〜104の機能を同時に持つこともできる。
本実施形態におけるプリントサーバ101は、さらにクライアントコンピュータ102、103、104から印刷要求が出された印字データを含む印刷ジョブを格納して印刷したり、または、クライアントコンピュータ102、103、104から印字データを含まないジョブ情報のみ受け取り、クライアントコンピュータ102、103、104の印刷順序を管理し、印刷順序になったクライアントに対して印字データを含む印刷ジョブの送信許可を通知したり、ネットワークプリンタ105のステータスや印刷ジョブの各種情報を取得し、クライアントコンピュータ102、103、104に通知したりする機能を揃えている。
105は印刷制御装置であるネットワークプリンタであり、図示省略したネットワークインタフェースを介してネットワーク106と接続されており、クライアントコンピュータから送信される印字データを含む印刷ジョブを解析して1ページずつドットイメージに変換して、1ページ毎に印刷する。106はネットワークであり、クライントコンピュータ102、103、104、サーバ101、ネットワークプリンタ105等と接続している。
図2は、本発明の情報処理装置の構成を説明するブロック図であり、情報処理装置であるクライントコンピュータ102、103、104も同じ構成であり、さらにサーバ101も同様あるいは同等のハードウェア構成とする。よって、クライアントとサーバの構成を説明するブロック図として説明する。
図2において、200は情報処理装置の制御手段であるCPUであり、ハードディスク(HD)205に格納されているアプリケーションプログラム、プリンタドライバプログラム、OSや本発明のネットワークプリンタ制御プログラム等を実行し、RAM202にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。
201は記憶手段であるROMであり、内部には、基本I/Oプログラム等のプログラム、文書処理の際に使用するフォントデータ、テンプレート用データ等の各種データを記憶する。202は一時記憶手段であるRAMであり、CPU200の主メモリ、ワークエリア等として機能する。
203は記憶媒体読み込み手段としてのフロッピー(登録商標)ディスク(FD)ドライブであり、後述する図5に示すようにFDドライブ203を通じて記憶媒体としてのFD204に記憶されたプログラム等を本コンピュータシステムにロードすることができる。なお、記憶媒体は、FDに限らず、CD−ROM、CD−R、CD−RW、PCカード、DVD、ICメモリカード、MO、メモリスティック等、任意である。
204は記憶媒体であるフロッピー(登録商標)ディスク(FD)であり、コンピュータが読み取り可能なプログラムが格納された記憶媒体である。
205は外部記憶手段の一つであり、大容量メモリとして機能するハードディスク(HD)であり、アプリケーションプログラム、プリンタドライバプログラム、OS、ネットワークプリンタ制御プログラム、関連プログラム等を格納している。さらにスプール手段であるスプーラはここに確保される。スプール手段は、クライアントではクライアントスプーラのことであり、プリントサーバではサーバスプーラのことである。また、プリントサーバでは、クライアントから受けたジョブ情報を格納し、順序制御を行うためのテーブルもこの外部記憶手段に生成されて格納される。
206は指示入力手段であるキーボードであり、ユーザがクライアントコンピュータに対して、また、オペレータや管理者がプリントサーバに対して、デバイスの制御コマンドの命令等を入力指示するものである。
207は表示手段であるディスプレイであり、キーボード206から入力したコマンドや、プリンタの状態等を表示したりするものである。
208はシステムバスであり、クライアントやプリントサーバであるコンピュータ内のデータの流れを司るものである。
209は入出力手段であるインタフェースであり、該インタフェース209を介して情報処理装置は外部装置とのデータのやり取りを行う。
図3は、図2に示したRAM202のメモリマップの一例を示す図であり、FD204からロードされる上記ネットワークプリンタ制御プログラムが、RAM202にロードされ実行可能となった状態のメモリマップである。
本実施形態では、FD204からネットワークプリンタ制御プログラムおよび関連データを直接RAM202にロードして実行させる例を示すが、これ以外にも、FD204からネットワークプリンタ制御プログラムを動作させる度に、既にネットワークプリンタ制御プログラムがインストールされているHD205からRAM202にロードするようにしてもよい。
また、本ネットワークプリンタ制御プログラムを記憶する媒体は、FD以外にCD−ROM、CD−R、PCカード、DVD、ICメモリカードであってもよい。さらに、本ネットワークプリンタ制御プログラムをROM201に記憶しておき、これをメモリマップの一部となすように構成し、直接CPU200で実行することも可能である。
また、以上の各装置と同等の機能を実現するソフトウェアをもって、ハードウェア装置の代替として構成することもできる。
また、本ネットワークプリンタ制御プログラムのことを、簡単に印刷制御プログラムと呼ぶこともある。印刷制御プログラムは、クライアントにおいて印刷ジョブの印刷先の変更を指示したり、印刷順序を変更する指示をするための制御を行うプログラムを含み、また、プリントサーバにおいて、印刷ジョブの順序制御を行ったり、印刷ジョブの印刷終了や印刷先変更要求などを通知するためのプログラムを含んでいる。また、このような制御を行う本発明の印刷制御プログラムは、クライアントにインストールされるモジュールと、プリントサーバにインストールされるモジュールを別々に分けてもよいし、ひとつの印刷制御プログラムが、実行される環境によりクライアント用として機能したり、またはプリントサーバ用として機能するようにしてもよい。あるいは一台のコンピュータに、クライアント用の機能を持つモジュールと、プリントサーバ用として機能するモジュールをともにインストールし、同時に、あるいは時分割で擬似的に平行動作させる構成も可能である。
301は基本I/Oプログラムであり、本制御装置の電源がONされたときに、HD205からOSがRAM202に読み込まれ、OSの動作を開始させるIPL(イニシャルプログラムローデイング)機能などを有しているプログラムが入っている領域である。
302はオペレーティングシステム(OS)であり、303はネットワークプリンタ制御プログラムで、RAM202上に確保される領域に記憶される。304は関連データで、RAM202上に確保される領域に記憶される。305はワークエリアで、CPU200が本プリンタ制御プログラムを実行する領域が確保されている。
図4は、図2に示したFD204のメモリマップの一例を示す図である。
図4において、400は前記FD204のデータ内容であり、401はデータの情報を示すボリューム情報であり、402はディレクトリ情報、403は本実施形態で説明する印刷制御プログラムであるネットワークプリンタ制御プログラム、404はその関連データである。403のネットワークプリンタ制御プログラムは、実施形態で説明するフローチャートに基づいてプログラム化したものであり、本実施例では、クライアント、サーバ共、同様の構成をとっている。
図5は、図2に示したFDドライブ203に対して挿入されるFD204との関係を示す図であり、図2と同一のものには同一の符号を付してある。
図5において、FD204には、本実施形態で説明するネットワークプリンタ制御プログラムおよび関連データを格納している。
次に本実施の形態における、プリンタを複数台使用して、前述の分散、同報、代行といった印刷処理を行う、印刷ジョブ制御システムについて説明する。
なお、本実施の形態では、複数のプリンタを1台のプリンタとして仮想的に束ねるプリンタをグループプリンタ、束ねられるプリンタをメンバプリンタと呼ぶ。また、それに対応するプリンタドライバをそれぞれグループプリンタドライバ、メンバプリンタドライバと呼ぶ。
図6は本システムのクライアントサーバモデルにおいてMicrosoft Wordなどの一般的なアプリケーションから発行された印刷ジョブが、印刷ジョブ制御システムにおいてどのように処理されるかを示した図である。図6Aにおいて、600はクライアントマシンで、印刷ジョブ制御システムのクライアントモジュールが動作するマシンを指す。
通常、印刷の指示がされるとアプリケーションプログラムは一連の描画命令を生成し、プリンタドライバを経てWindows(登録商標)Spoolerに渡される。Windows(登録商標)Spoolerは、ユーザが選択したポートモニタにプリントジョブデータを渡してプリンタデバイスに送信させる手順をとる。
本実施の形態では、ユーザはあらかじめ印刷ジョブ制御システム用のポートモニタ621(以降、本実施例ではジョブ制御ポートモニタと略記)を指定して印刷を指示する。アプリケーションプログラム601は一連の描画命令を生成する。描画命令を受け取ったグループプリンタDriver603では、汎用印刷ファイルを生成し、プリンタデバイスへプリントジョブデータを送信するポートモニタではなく、ジョブ制御ポートモニタ621にプリントジョブデータとして送信する。ジョブ制御ポートモニタ621はプリントジョブデータをプリンタデバイス650に送信するのではなく、印刷ジョブ制御システム用プリントサービス622(以降、本実施例ではジョブ制御プリントサービスと略記)に送信する。ジョブ制御プリントサービス622は、プリントジョブデータに対して、後述するような印刷ジョブ制御処理を行う。
印刷ジョブ制御システム用プリントマネージャ623(以降、本実施例ではジョブ制御プリントマネージャと略記)は、ユーザがジョブ制御プリントサービス622内部でプリントジョブがどのような状態にあるかを調べたり、プリントジョブを操作したりするためのユーザインタフェース(UI)を提供するプログラムである。
ジョブ制御プリントマネージャ623はジョブ制御プリントサービス622のソフトウェアのインタフェース(API)を介して、ジョブ制御プリントサービス622と情報・指示をやり取りしている。
印刷ジョブ制御システム用サーバ630(以降、本実施例ではジョブ制御サーバと略記)は、個々のクライアント600上のジョブ制御プリントサービス622がプリンタデバイス650にプリントジョブデータを送信するタイミングを集中制御(スケジューリング)している。
印刷ジョブ制御システム用マネージメントコンソール633(以降、本実施例ではジョブ制御マネージメントコンソールと略記)は、ジョブ制御サーバ630が持つソフトウェアがアクセスするためのAPIを介してジョブ制御サーバ630と情報・指示をやり取りすることで、印刷ジョブ制御システム全体を監視することができる。
また、ジョブ制御サーバ630はデバイス情報コントロールモジュール631を用いて各プリンタデバイス650と通信を行い、各プリンタ内の印刷ジョブや動作状態に関する情報を入手したり、操作を行ったりする。入手した情報はクライアント600側のジョブ制御プリントサービス622に渡すことができる。
次に本実施の形態におけるグループプリンタDriver603からの印刷について説明する。
グループプリンタDriver603はアプリケーションプログラムが生成した一連の描画コマンドを、プリンタデバイスの種類に依存しない中間フォーマットのファイルである汎用印刷ファイルに変換する。この汎用印刷ファイルの構成については後述する。
この汎用印刷ファイルは前述したようにWindows(登録商標)Spooler604からジョブ制御ポートモニタ621を経て(a)、ジョブ制御プリントサービス622に導かれる(b)。ジョブ制御プリントサービス622はこのプリントジョブに対して行うジョブ制御の種類に応じて、汎用印刷ファイルをもとに描画コマンドを生成し(c)、続いてPDLDriver602がその描画コマンドをプリンタデバイス650が解釈可能なPDLファイルにする。図6Aでは、ジョブ制御プリントサービス622で、このプリントジョブに対してプリントジョブをふたつに分けるジョブ制御が行われる例で、2つのメンバジョブが生成された例を2つの矢印(c)で示している。PDLDriver602で生成されたPDLファイルはWindows(登録商標)Spooler604、ジョブ制御ポートモニタ621を経て(d)、再びジョブ制御プリントサービス622に渡される(e)。ジョブ制御プリントサービス622は、ジョブ制御サーバ630の指示に従ってPDLのプリントジョブデータをプリンタデバイス650に送信する(f)。
ジョブ制御プリントサービス622は、汎用印刷ファイル中の印刷指示書の指示にしたがって、一つの汎用印刷ファイルを複数のプリントジョブに論理的に分割してそれぞれ別のプリンタデバイスに送信したり、一度送信したプリントジョブデータを別のプリンタデバイスに送信し直したりする。図6A中の(c)(d)(e)(f)はそのような場合のプリントジョブデータの経路を示している。
一方、汎用印刷ファイルをアプリケーションソフトウェアが作成し、そのアプリケーションソフトウェアが直接汎用印刷ファイルを印刷ジョブとして投入する場合、一般のアプリケーションとはグループプリンタDriver603への情報の渡し方や、グループプリンタDriver603での処理内容が異なる。前述のように、一般のアプリケーションの場合、アプリケーションはグループプリンタDriver603に描画情報を渡す際、通常のプリンタドライバと同じようにWindows(登録商標)のGDI関数を呼び出し、グループプリンタDriver603がそれに応じて汎用印刷ファイルを生成する。これに対して汎用印刷ファイルを直接作成するアプリケーションの場合は、アプリケーションが汎用印刷ファイルをすでに持ち、それをグループプリンタDriver603に供給する。グループプリンタDriver603は必要に応じてあらかじめ設定された印刷方法にもとづいて汎用印刷ファイル内部の印刷指示書を書き換えてWindows(登録商標)Spooler604に送る。
図8は、汎用印刷ファイルの構成の一例を示した図である。
本実施の形態で使用される汎用印刷ファイルは、印刷指示部8−aと、ドキュメントデータ部8−bからなる。印刷指示部は、ドキュメントの情報と印刷指示を記述した部分である。また、ドキュメントデータは、アプリケーションのドキュメントのデータを汎用的な形式のデータに変換したものであり、プリンタ言語に依存しないデータフォーマットとなっている。
印刷指示部はヘッダ部、ページ情報部、印刷体裁指示部、出力方法指定部、グループプリンタドライバ設定情報部、メンバプリンタ数、メンバプリンタドライバ名、メンバプリンタドライバ設定情報部などから構成されている。
ヘッダ部は本ファイルのバージョン識別やファイル情報などの情報を格納する部分である。
ページ情報部は、ドキュメントデータ部8−bのドキュメントデータのページ数、各ページのサイズなどの情報を格納する部分である。
印刷体裁指示部は、印刷ページ範囲、印刷部数、ドキュメントデータの面付け情報(N−UPや製本印刷など)、ステイプル指示やパンチ指示など、出力体裁に関する情報を格納する部分である。
出力方法指定部は、出力方法として、分散印刷、カラー・モノクロ分散印刷、同報印刷、代行印刷、などの情報を格納する部分である。
グループプリンタドライバ設定情報部は、後述するグループプリンタドライバのUIの設定情報を格納する部分である。
メンバプリンタ数はグループプリンタドライバが関連付けているメンバプリンタの数を格納する部分である。
メンバプリンタドライバ名は、メンバプリンタのプリンタドライバ名を格納する部分である。
メンバプリンタドライバ設定情報部はメンバプリンタのドライバUIの設定情報として例えばDEVMODE情報を格納する部分である。
このメンバプリンタドライバ名とメンバプリンタドライバ設定情報部は、前述のメンバプリンタ数に格納された数だけの格納エリアを持っている。
前述の図6Aで説明したグループプリンタDriver603では、汎用印刷ファイルを生成する際、グループプリンタドライバGUI上の設定を印刷指示部8−aへ記録する。さらに、グループプリンタDriver603はGDIで受け取ったデータを汎用的なデータに変換しドキュメントデータとして、本汎用印刷ファイルのドキュメントデータ部に記録することとなる。
なお、本ファイルは、印刷指示部8−aとドキュメントデータ部8−bが異なるファイルであってもかまわない。その場合、印刷指示部は印刷指示書ファイルとして、ドキュメントデータ部はドキュメントデータファイルとしてそれぞれ存在し、これらを一つのアーカイブ形式でまとめて同様に一つのファイルのように扱うこともが可能である。
次に図7でWindows(登録商標)が提供するPrintSystemと印刷ジョブ制御システムにおける印刷ジョブの関係と処理概要をさらに詳しく述べる。
図7中で印刷ジョブ制御システム700は、サーバとクライアントの制御プログラムが動作する物理的なマシンをまたいだ、印刷ジョブ制御システムの範囲を示している。また、サーバが管理している出力ポート(Output Port)711は、クライアントのジョブ制御プリントサービス622のプロキシ出力ポート(Proxy Output Port)712と関連付けられ、ひとつのポートに関連づけられた各クライアント上のプロキシ出力ポート全てを統一的に管理している。本実施例では、実際のプリントジョブデータはおのおののクライアントのプロキシ出力ポート712に保持される。ジョブ制御サーバ630は、プリントジョブデータ自体の送信処理は行わず、ジョブ制御プリントサービス622に対して印刷ジョブの送信指示のみを行う。その指示に応じてクライアントのジョブ制御プリントサービス622はプリントジョブデータをデバイス650に送信する。
次に、印刷ジョブ制御システム700が、分散印刷、同報印刷、代行印刷、などの付加価値的な印刷を行う場合の処理を説明する。
印刷ジョブ制御システム700が、分散印刷、同報印刷、代行印刷、などの付加価値的な印刷を行う場合には、前述のようにユーザまたはアプリケーション601はグループプリンタDriver603が割り当てられたプリンタに印刷ジョブを発行しなければならない。ジョブ制御プリントサービス622は、グループプリンタDriver603によって処理されたジョブデータをジョブ制御ポートモニタ621を介して汎用印刷ファイルとして受け取る。ジョブ制御プリントサービス622はこのジョブを受け取り、De−spooler701を介してPDLドライバが割り当てられた別のプリンタにジョブ(メンバジョブ)を発行して印刷を行わせる。この時、De−spooler701は前述の図8で説明した汎用印刷ファイルの印刷指示部8−aを解釈し、ドキュメントデータ部8−bのドキュメントデータを加工して、Windows(登録商標)のGDIに変換し、各プリンタドライバに対して印刷指示を行い印刷ジョブを発行する。例えば印刷体裁指定部に、2−UPの指示が記録されていた場合、用紙1枚に2ページ分のドキュメントデータを縮小レイアウトする。また分散印刷あるいは同報印刷の場合には、それらの設定に応じて印刷指示部8−aに記述されている複数のメンバプリンタにジョブを発行する。代行印刷の場合は、代行する条件が満たされた時に、自動代行では事前の設定、手動代行ではユーザの操作に応じてメンバジョブを発行する。
また、De−spooler701は各メンバプリンタにジョブを発行する際、メンバプリンタドライバに対応する印刷指示として、各メンバプリンタのDEVMODEを作成する必要があるが、このDEVMODEは印刷指示部8−aに記載された内容を適宜各メンバプリンタのDEVMODEに反映させて生成する。
クライアント側のジョブ制御プリントサービス622は、PDLDriver602によってレンダリングされた、それぞれのメンバジョブのPDLデータをジョブ制御ポートモニタ621を介して受け取り、受け取ったジョブに関する情報をサーバ側に知らせ、ジョブデータは自身のプロキシ出力キュー(Proxy Output Port)712で一時保持する。その後、ジョブ制御サーバ630からの送信指示を受けた後にプリントデバイス650に送信する。
次に本実施の形態における、共通設定領域と、拡張設定領域といった記憶領域をもつプリンタドライバを持つプリンタを複数台使用して、前述の分散、同報、代行といった印刷処理を行う、印刷ジョブ制御システムのためのプリンタドライバのUI制御について説明する。
図9は、本発明のグループプリンタドライバのUI制御フローを示すフローチャートである。
アプリケーションからグループプリンタドライバへのUI表示要求が来ると、処理はステップ9−1へ進む。ステップ9−2は、印刷ジョブ制御システムAPIを使って、グループプリンタドライバを構成するメンバプリンタドライバの識別ID及び構成台数を問い合わせるステップであり、グループプリンタドライバを構成する全てのメンバプリンタドライバの識別IDと構成台数を獲得する。
ステップ9−3は、グループプリンタドライバの構成するメンバプリンタドライバの登録台数が複数台(例2台)以上でかつ、メンバプリンタドライバの“構成確認フラグ”がONであるか、判定するステップであり、判定結果がYESであればステップ9−4の構成確認処理へ進み、NOであればステップ9−5へ進む。なお前記、“構成確認フラグ”は、初期状態ではOFFであり、グループプリンタドライバUI(ステップ9−6)上でON/OFFの切り替えを可能としている。ステップ9−4は、構成確認処理を行うステップである。
図10は、その詳細である。なお、図10記載の一連のフローにより読み出された各メンバプリンタドライバの構成情報は、図10−4に示されるメンバプリンタドライバ構成情報テーブル上に格納される。ステップ10−1は、ステップ9−2で得たメンバプリンタドライバ台数をカウンタ変数(以後COUNTER)にセットするステップである。また、本ステップで、メンバプリンタドライバ構成情報テーブルの“構成判定Flag”をOFFに初期化する。ステップ10−2は、前記ステップで設定したCOUNTERが0かどうか判断するステップであり、ゼロと判断された場合にはステップ9−5の処理へ移行し、それ以外であればステップ10−3へ進む。ステップ10−3は、ステップ9−2で得た各メンバプリンタドライバの識別IDを使って当該メンバプリンタドライバが機能制御可能なドライバであるかどうか判断するステップであり、機能制御可能な場合には、ステップ10−4進み、不可な場合には、メンバプリンタドライバ構成情報テーブル上に“NONE”を設定しステップ10−8へ進む(図10−4COUNTER列の“2”を参照)。ステップ10−4は、メンバプリンタドライバのドライバ名(機種情報)の読み出しを行うステップであり、メンバプリンタドライバの識別IDを使って当該メンバプリンタドライバ名を読み出す。また、ステップ10−5は、デバイスオプションの読み出しを行うステップであり、当該メンバプリンタドライバに設定されている、パンチ機能モジュール(例Puncher−A)、製本機能モジュール(例Finisher−1)などといったデバイスに装着されているオプション機能を読み出すステップである。なお、前記ステップ10−4、10−5で読み出した機能は、共にメンバプリンタドライバ構成情報テーブル上に格納される。ステップ10−6は、同一構成プリンタドライバの判定を行うステップであり、前記ステップ10−4、10−5で読み出した情報とメンバプリンタドライバ構成情報テーブルに登録されている情報を元に同一構成プリンタドライバが、あるかどうか判定を行うステップである。ここで“ドライバ名”かつ“デバイスオプション”の構成が一致した場合、同一構成プリンタドライバと判断し、ステップ10−7へ進み、同一構成でないと判断された場合には、メンバプリンタドライバ構成情報テーブルの構成グループに、該当なしとして“NONE”を登録する。なお、同一プリンタドライバ名でもデバイスオプションが異なれば、同一構成プリンタドライバと見なさない。これは、デバイスオプションの装着状態によって、ドライバの機能が異なる事があるためである。ステップ10−7は、同一構成プリンタドライバの登録を行うステップであり、前記ステップで同一構成プリンタドライバと判定されたものは、同一グループとして構成グループのIDを設定する。また、構成グループのIDが未決定な場合には、同一グループプリンタ内で唯一となるIDを決定し、メンバプリンタドライバ構成情報テーブルの構成グループに登録する。(図10−4、COUNTER“1”と“3”および“4”と“n−1”、“5”と“n−2”を参照)また、本ステップに入った場合、メンバプリンタドライバ構成情報テーブルの構成判定FlagがOFFとなっていた場合、FlagをONにする。
ステップ10−8は、ステップ10−1で設定したカウンタ変数を1減算するステップである。そしてステップ10−2へ処理を戻し前述したようなフローにより次のメンバプリンタドライバに対して同一構成プリンタドライバの確認処理を行い、全てのメンバプリンタドライバに対して確認処理が終わるまでステップ10−3〜10−7までの処理を繰り返す。
以上のステップを経て、ステップ10−2へ戻った際にカウンタ変数が0となった場合、同一構成プリンタドライバの確認処理が終わったものと判定し、ステップ9−5へ進む。ステップ9−5では、メンバプリンタドライバから機能を吸い上げコンフリクト処理を行うステップであり、図11はその詳細である。ステップ11−1は、ステップ9−2で得たメンバプリンタドライバ台数をCOUNTERにセットするステップである。また、このステップでは、ステップ11−5で使用する“処理済み構成グループ登録テーブル”の初期化を行う。このテーブルは、各構成グループに対して、そのグループ内のメンバプリンタがステップ11−5の処理へ進んだかどうか判断するためのもので、本ステップではこの情報を全てOFFとして初期化する。ステップ11−2は、前記ステップで設定したCOUNTERが0かどうか判断するステップであり、ゼロと判断された場合にはステップ9−6の処理へ移行し、それ以外であればステップ11−3へ進む。ステップ11−3は、メンバプリンタドライバが同一構成プリンタドライバかどうか判定するステップであり、メンバプリンタドライバ構成情報テーブルの構成判定FlagがONでかつ、COUNTER番号に対応した当該プリンタドライバが、構成情報テーブに構成グループ“あり”(“NONE”以外が設定されている)として登録されているかどうか判断するステップである。ここで、前記条件に該当すると判断された場合にはステップ11−4へ進み、なしと判断された場合には、ステップ11−5へ進む。ステップ11−4は、コンフリクト処理対応済みドライバであるかどうか判断するステップであり、前記ステップで構成グループありと判断されたドライバが、既に処理済みの構成グループであるかどうか判断する。判断方法としては、ステップ11−1で初期化された“処理済み構成グループ登録テーブル”に当該の構成グループが登録されているかどうか判断を行い、登録されていれば、コンフリクト処理は既に対応済みと判断しステップ11―7へ進み、それ以外であれば、前記、登録テーブルに当該の構成グループを登録しステップ11−5へ進む。
ステップ11−5は、メンバプリンタドライバの能力を取得するステップであり、当該のメンバプリンタドライバの識別IDを使ってドライバの能力を読み出すステップである。この際に、機能制御不可なメンバプリンタドライバからは共通設定項目のみの取得及び読み出しが行われ、機能制御可能なメンバプリンタドライバに対しては、共通設定項目及び拡張設定項目の取得及び読み出しが行われる。ステップ11−6はステップ11−5で取得した各メンバプリンタドライバの機能をグループプリンタドライバUIに反映させるためのコンフリクト処理が行われる。
図12は、ステップ11−6の詳細である。図12のステップ12−1では、前記、ステップ11−5で取得したメンバプリンタドライバに対して機能の収得がドライバ設定情報の拡張領域の部分まで可能な、“機能制御可能なドライバ”か、または、それ以外の“機能制御不可能なドライバ”か、を判断するステップであり“機能制御可能なドライバ”の場合ステップ12−3進みへ、それ以外の場合にはステップ12−2へ進む。ここで、機能制御可能なドライバでは共通設定項目と拡張設定項目との機能が調査され、機能制御不可能なドライバでは共通設定項目のみが調査される。
図10−2は、共通設定項目・拡張設定項目と各設定項目との対応を示す。なお、本発明では共通設定項目は、図10−2に示されるような、共通設定領域に存在する項目、拡張設定項目は、拡張設定領域に存在する項目として分類し規定しているが、印刷ジョブ制御システムを運用するOSの違いによっては、設定項目の分類が異なる場合や設定可能項目に変更がある場合があるが、本発明のUI制御フローが有効なのはいうまでもない。図10−2について更に詳しく説明すると、共通設定項目に規定される各機能の項目は複数のメンバプリンタドライバのそれぞれの相違に係らず、印刷制御プログラムがOSを介して問い合わせることが可能な項目に相当する。一方、拡張設定項目に対応する各機能の項目は、共通設定項目のように印刷制御プログラムがOSを介して問い合わせることが必ずしも保証されているとは限らない。該拡張設定項目はそれぞれのプリンタドライバの提供元が独自に問合せの仕組みを規定しているようなものに相当する。グループプリンタドライバにしてみれば、拡張設定項目の問い合わせが利用できないようなプリンタドライバのことを“機能制御不可能なドライバ”と呼ぶこともある。
次に、機能のコンフリクト処理について具体的に説明すると、機能のコンフリクト処理とは、グループプリンタの対象となる各メンバプリンタドライバのそれぞれからドライバ識別情報や共通設定領域及び拡張設定領域に規定されている各機能の情報の取得や、メンバプリンタドライバから取得された各設定項目に対する機能の“あり”・“なし”をチェックし、対象となるメンバプリンタドライバ全てに機能がある場合にグループプリンタドライバUIでその機能を設定可能項目として扱い、また、1台でも、機能がないものがあればその項目については、設定不可能項目として扱うようにする。図10−3の中のプリンタドライバAは、グループプリンタドライバを表しプリンタドライバ、B,C,Dはグループプリンタドライバを構成するメンバプリンタドライバを表し、表中の、 “あり”、“なし”は各メンバプリンタドライバが製本印刷機能、ステイプル印刷機能、パンチ機能をサポートしているかどうかを示したものである。ここで製本印刷機能に着目すると、ドライバA、Bは製本印刷機能があるが、ドライバCにはその機能がないため、グループプリンタドライバAの製本印刷機能は“なし”となる。同様に、ステイプル機能は、B,C,D全てのメンバプリンタドライバに機能があるため、グループプリンタドライバAのステイプルは、“あり”となり、パンチ機能は、B,C,D全てのメンバプリンタドライバに機能がないため、グループプリンタドライバAのパンチ機能は、“なし”となる。図10−3は、特に共通設定項目と拡張設定項目とを区別無く説明してきたが、実際には、メンバプリンタドライバの構成に機能制御不可なものが含まれる場合には、コンフリクト処理(機能の取得及び整合性計算)の対象となる設定項目を共通設定項目のみにし、機能制御可能なドライバのみからメンバプリンタが構成されている場合にはコンフリクト処理の対象となる設定項目を共通設定項目と拡張設定項目にするような処理が行われる。そのメンバプリンタ種別構成とコンフリクト処理の対象とする項目との関係を示す図を図10−5に示す。また、メンバプリンタ種別構成とコンフリクト処理の対象とする項目との関係を図10−6のようにしても良い。図10−3においては、図10−2中の拡張設定項目について論理和の計算を行っている様子を示しており、図10−5のメンバプリンタの構成が「機能制御可能なドライバのみ」や、図10−6の「1台でも機能制御可能なものを含む場合」に行われるコンフリクト処理を示すものとなっている。
図11のフローに戻るとステップ11−7は、ステップ11−1で設定したカウンタ変数を1減算するステップである。そしてステップ11−2へ処理を戻し前述したようなフローにより次のメンバプリンタドライバに対してコンフリクト処理を試みる全てのメンバプリンタドライバに対して処理が終わるまでステップ11−3〜11−6までのステップを繰り返す。以上のステップを経て、ステップ11−2へ戻りカウンタ変数が0となった場合、処理が終わったものと判定し、ステップ9−6へ進む。ステップ9−6は、グループプリンタドライバUIを表示するステップである。このステップでは、前記フローに基づく複数のメンバプリンタドライバとのコンフリクト結果をもとに、機能のないものについてはグループプリンタドライバUI上で設定が行えないように設定入力欄をグレーアウト表示或いは非表示するようにUI制御を行い、機能がある項目については設定入力欄をアクティブにするようUI制御を行う。また、このグループプリンタドライバUIの表示制御には、ユーザの指定により、例えば製本印刷が指定された時にパンチ設定やステイプル設定が指定可能となるような機能上ありえない組み合わせの設定ができないよう、設定項目の入力欄についてUI制御が行われる。UI制御結果の例を、図13−1、13−2に示す。図13−1は上述したコンフリクト処理の結果、設定項目をグレーアウト表示した例を示す。図13−2は上述したコンフリクト処理の結果、設定項目を非表示した例を示す。
なお、ステップ9−4で前述した“構成確認フラグ”は、グループプリンタドライバUI上でON/OFFの切り替えを可能とし、その設定は、グループプリンタUIを介して設定はクライアントPCのハードディスク(HD)などの不揮発性記憶エリアに保存され、次回グループプリンタドライバUIを表示する際に使用される。
以上のステップにより、グループプリンタドライバのUI表示処理にかかるコンフリクト処理の最適化を実現した本実施の形態における印刷を行うことが可能となる。
101 サーバ
102 クライアント
103 クライアント
104 クライアント
105 ネットワークプリンタ
106 ネットワーク
102 クライアント
103 クライアント
104 クライアント
105 ネットワークプリンタ
106 ネットワーク
Claims (9)
- ネットワークに接続される複数のプリンタ、すなわちメンバプリンタを仮想的に1つのプリンタ、すなわちグループプリンタとして扱い、そのプリンタに対して、印刷ジョブの処理指定を仮想プリンタ用プリンタドライバ、すなわちグループプリンタドライバ上で設定する印刷ジョブ制御システムにおいて、印刷ジョブ制御システムAPIを使って、グループプリンタを構成する全てのメンバプリンタドライバの識別IDを獲得する手段と、メンバプリンタの構成台数を獲得する手段と、構成確認処理の適用について判断する手段と、前記判断において適用と判断した場合には構成確認処理を行う手段と、前記確認処理結果を保持する手段と、その結果をもとに、メンバプリンタに対してコンフリクト処理を適用する手段と、構成確認処理を適用しない場合のコンフリクト処理適用手段と、前記、コンフリクト結果を元にグループプリンタドライバUIを表示する手段を有することを特徴とするプリンティングシステム。
- 請求項1に記載のプリンティングシステムおいて、グループプリンタドライバを構成するメンバプリンタドライバの構成台記載のプリンティングシステム数を獲得する手段は、印刷ジョブ制御システムAPIより獲得した識別IDをカウントすることで得ることを特徴とするプリンティングシステム。
- 請求項1に記載のプリンティングシステムにおいて、構成確認処理の適用について判断する手段は、グループプリンタドライバを構成するメンバプリンタドライバ台数が複数台である場合、かつ、グループプリンタドライバUIを介して設定される、“構成確認フラグ”がONの時のみ処理を適用することを特徴とするプリンティングシステム。
- 請求項1に記載のプリンティングシステムにおいて、請求項3にある構成確認処理の適用について判断する手段は、機能制御可能なプリンタドライバに対してのみ適用することを特徴とするプリンティングシステム。
- 請求項1に記載のプリンティングシステムにおいて、構成確認処理の適用を行う手段は、グループプリンタドライバを構成するメンバプリンタドライバに対して、プリンタドライバ名、及び、デバイスオプションが一致する場合を同一構成プリンタドライバとして判断することを特徴とするプリンティングシステム。
- 請求項1に記載のプリンティングシステムにおいて、構成確認処理の適用を行う手段は、グループプリンタドライバを構成するメンバプリンタドライバに対して、プリンタドライバ名が一致しても、デバイスオプションが一致しない場合には、同一構成プリンタドライバとして見なさないことを特徴とするプリンティングシステム。
- 請求項1に記載のプリンティングシステムにおいて、コンフリクト処理適用手段は、構成確認処理において同一構成プリンタドライバと判定されたものに対しては、同一構成プリンタドライバのグループの中の一台のみをコンフリクト対象プリンタドライバとして処理を行うことを特徴とするプリンティングシステム。
- 請求項1に記載のプリンティングシステムにおいて、コンフリクト処理適用手段は、構成確認処理が適用されなかった場合には、全てのプリンタをコンフリクト対象プリンタドライバとして処理を行うことを特徴とするプリンティングシステム。
- 請求項1に記載のプリンティングシステムにおいて、請求項3にあるグループプリンタドライバUIを介して設定される、“構成確認フラグ”は、グループプリンタドライバUI上でON/OFFの切り替えを可能とし、その設定は、UIを介してクライアントPCのハードディスクなどの不揮発性記憶エリアに保存され、次回グループプリンタドライバUIを表示する際に使用されることを特徴とするプリンティングシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005048865A JP2006235936A (ja) | 2005-02-24 | 2005-02-24 | プリンティングシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005048865A JP2006235936A (ja) | 2005-02-24 | 2005-02-24 | プリンティングシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006235936A true JP2006235936A (ja) | 2006-09-07 |
Family
ID=37043522
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005048865A Withdrawn JP2006235936A (ja) | 2005-02-24 | 2005-02-24 | プリンティングシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006235936A (ja) |
-
2005
- 2005-02-24 JP JP2005048865A patent/JP2006235936A/ja not_active Withdrawn
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3634784B2 (ja) | 情報処理方法及び印刷制御装置 | |
US7102783B2 (en) | Printing data processing apparatus and method | |
JP3740438B2 (ja) | 印刷制御方法、印刷制御装置、プログラム及びコンピュータ可読の記憶媒体 | |
US7852497B2 (en) | Method of controlling printing control apparatus | |
JP3793197B2 (ja) | 情報処理装置、情報処理方法、情報処理プログラム並びに記憶媒体 | |
US7707326B2 (en) | System for setting print end notification either when data transmission ends or when printing ends based on print check ability of printing devices | |
JP3639821B2 (ja) | 印刷制御方法及び印刷制御装置及び情報処理装置が実行可能な印刷制御プログラム並びにコンピュータが読み出し可能なプログラムを格納した記憶媒体 | |
JP2005010919A (ja) | 情報処理装置及び情報処理方法及びプログラム並びに記憶媒体 | |
US20120026551A1 (en) | Print control apparatus, print control method, and storage medium | |
US7804607B2 (en) | Group printer for multiple member printers | |
JP3880575B2 (ja) | 印刷設定方法及びコンピュータ | |
JP2004240589A (ja) | 印刷システム及びその制御方法並びに情報処理装置及び方法 | |
JP3740448B2 (ja) | 制御装置、制御方法、プログラム及び記憶媒体 | |
JP2006235936A (ja) | プリンティングシステム | |
JP3833090B2 (ja) | 制御方法、制御装置、プログラム及び記憶媒体 | |
JP4323982B2 (ja) | 情報処理方法、及び、情報処理装置、及び、プログラム、並びに、記憶媒体 | |
JP2006259853A (ja) | 情報処理装置 | |
JP2006277036A (ja) | 印刷装置 | |
JP2003084942A (ja) | 印刷制御方法及び印刷制御装置及びコンピュータが実行可能な印刷データ処理を行う印刷制御プログラム並びにコンピュータが読み出し可能な記憶媒体 | |
JP2006164026A (ja) | 出力管理システム設定装置、出力管理システム設定システム、出力管理システム設定方法、及びプログラム並びに記憶媒体 | |
JP2006163860A (ja) | プリンティングシステム | |
JP4261784B2 (ja) | 印刷制御方法、印刷制御システム、プログラム及び記憶媒体 | |
JP4143598B2 (ja) | 情報処理装置における管理方法、情報処理装置、プログラム及び記憶媒体 | |
JP4411256B2 (ja) | 印刷制御方法、印刷制御システム、プログラム及び記憶媒体 | |
JP2006244278A (ja) | データ処理装置および印刷制御方法およびコンピュータが読み取り可能なプログラムを格納した記憶媒体およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20080513 |