JP2011076227A - 情報処理装置及びその方法 - Google Patents

情報処理装置及びその方法 Download PDF

Info

Publication number
JP2011076227A
JP2011076227A JP2009224833A JP2009224833A JP2011076227A JP 2011076227 A JP2011076227 A JP 2011076227A JP 2009224833 A JP2009224833 A JP 2009224833A JP 2009224833 A JP2009224833 A JP 2009224833A JP 2011076227 A JP2011076227 A JP 2011076227A
Authority
JP
Japan
Prior art keywords
print
printer driver
printer
print queue
deletion
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.)
Granted
Application number
JP2009224833A
Other languages
English (en)
Other versions
JP5460215B2 (ja
Inventor
Hiroshi Omura
宏 大村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2009224833A priority Critical patent/JP5460215B2/ja
Priority to US12/881,085 priority patent/US8587811B2/en
Publication of JP2011076227A publication Critical patent/JP2011076227A/ja
Application granted granted Critical
Publication of JP5460215B2 publication Critical patent/JP5460215B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/126Job scheduling, e.g. queuing, determine appropriate device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1204Improving or facilitating administration, e.g. print management resulting in reduced user or operator actions, e.g. presetting, automatic actions, using hardware token storing data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1224Client or server resources management
    • G06F3/1225Software update, e.g. print driver, modules, plug-ins, fonts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1274Deleting of print job

Abstract

【課題】 多種のドライバがインストールされてしまう環境においては、アプリケーションから印刷指示を行った後、画面上に表示されるプリンタ一覧より所望なプリンタを選択するのが、ユーザにとって煩雑となる。
【解決手段】 本発明における情報処理装置は、ユーザからの指示に応じてアプリケーションから受け取ったデータを中間データとしてスプールして、前記ユーザからの指示後に、自装置に接続されているプリンタを検索し、見つかったプリンタから選択されたプリンタに対応するプリンタドライバのインストール処理、プリントキューの作成を行い、当該プリンタドライバに対して、前記中間データを渡して印刷処理を行う。そして、前記作成されたプリントキューの中で削除候補を決定し、該削除候補のプリントキューを削除することを特徴としている。
【選択図】 図14

Description

本発明は情報処理装置に関し、詳しくはユーザが印刷時に設置されたプリンタの中から利用するものを特定するだけで、効率よく印刷できるシステムに関するものである。
従来、ホストコンピュータからプリンタなどの周辺装置を利用するには、一般的にその周辺装置に対応した特定のデバイスドライバをホストコンピュータへ組み込む必要があった。ユーザまたは管理者は、印刷前にあらかじめデバイスドライバの組み込みに必要なIPアドレスなどの情報を調べ、対応するデバイスドライバをインターネットから探し出し、その設置をするといったインストール作業を強いられてきた。
そこで、近年、周辺装置の種類によらず利用可能な共通のデバイスドライバである「ユニバーサルドライバ」(汎用プリンタドライバ)が研究・開発されている。例えば、非特許文献1には、アプリケーションから汎用プリンタドライバに対して印刷指示を出した後に、出力可能なネットワークプリンタを選んで印刷する方法が開示されている。この方法ならば、汎用プリンタドライバを情報処理装置に組み込んでおくだけで、汎用プリンタドライバが対応するすべてのプリンタを利用することが可能である。
しかしながら、非特許文献1に示された汎用プリンタドライバは、対応する全プリンタが共通にもつ機能を利用して処理可能なコマンドを生成し送信するため、各プリンタに特化した専用プリンタドライバを用いて印刷する場合に比べて機能が制限される。また、汎用プリンタドライバが送信するコマンドの形式を処理できない種類のプリンタにはそもそも印刷できない。
HP Universal Print Driver Series for Windows−overview and features(http://h20338.www2.hp.com/hpsub/cache/342988−0−0−225−121.html)
ユーザは、プリンタに対して印刷する際には、アプリケーションから印刷指示を行い、画面上に表示されるプリンタ一覧より所望なプリンタを選択し、印刷設定などを指定する。ここで、画面上に表示されるプリンタ一覧は、インストールされ、プリントキューが作成されているプリンタドライバに対応して表示が行われることになる。
ユーザにとっては、印刷するドキュメントなどに応じて、前述したような汎用プリンタドライバを用いて簡単にプリントを行う場合、専用プリンタを用いて印刷を行う場合など、その時々に応じた印刷を行うことが望まれる。従って、ユーザの利用するホストコンピュータにおいては、多種のドライバがインストールされ、混在するような状況が起こり得る。さらには、プラグアンドプレイなどによりユーザが意図せずに、多種のプリンタドライバがホストコンピュータにインストールされ得る環境もある。
このように、多種のドライバがインストールされてしまう環境においては、アプリケーションから印刷指示を行った後、画面上に表示されるプリンタ一覧より所望なプリンタを選択するのが、ユーザにとって煩雑となる。とくに前述のように、汎用プリンタドライバや専用プリンタドライバなど、同じプリンタに対して印刷ジョブを送信するものであっても機能差があるようなものもあるので、ユーザによっては、プリンタの備える機能を十分に活かした印刷を行うためのプリンタ選択がとても困難になってしまう。
従って、本発明は、ユーザの意図に反して、多種のデバイスドライバがホストコンピュータにインストールされてしまうような環境において、印刷時のプリンタ選択が煩雑とならないようなデバイスドライバの管理手法を提供することを目的とする。
上記課題を解決するために、本発明の情報処理装置は、ユーザからの指示に応じてアプリケーションから受け取ったデータを中間データとしてスプールするスプール手段と、前記ユーザからの指示後に、自装置に接続されているプリンタを検索する検索手段と、印刷処理を行うプリンタを選択させるために、前記検索手段により見つかったプリンタの一覧を表示するための表示制御手段と、前記表示制御手段により表示されたプリンタの一覧から選択されたプリンタに対応するプリンタドライバのインストール処理を制御するインストール制御手段と、前記インストール制御手段によりインストールされたプリンタドライバに対応するプリントキューを作成する作成手段と、ユーザからの前記インストール制御手段によりインストールされたプリンタドライバに対する印刷の指示を受けて、当該プリンタドライバに対して、前記スプール手段によりスプールした中間データを渡すデスプール手段と、前記デスプール手段により渡された中間データから、前記インストール制御手段によりインストールされたプリンタドライバを用いて生成された印刷ジョブを、前記表示制御手段により表示されたプリンタの一覧から選択されたプリンタに対して送信する送信手段と、前記作成手段により作成されたプリントキューの中で削除候補を決定する決定手段と、前記決定手段により決定された削除候補のプリントキューを削除する削除手段とを備えることを特徴とする。
本発明によれば、ユーザの意図に反して、多種のデバイスドライバがホストコンピュータにインストールされてしまうような環境において、印刷時のプリンタ選択が煩雑とならないようなデバイスドライバの管理が可能となる。
システムの構成図およびホストコンピュータならびに出力デバイス内部の装置構成を示すブロック図 ドライバインストーラのユーザインターフェース例を表す図 プリンタドライバ、プリントキュー、ポートの各情報とそれらの関連を表す図 一般的なプリンタドライバのインストール処理を示すフローチャート 本実施例における仮想・汎用・専用プリンタドライバのインストール処理を示すフローチャート 印刷処理のデータフロー図 印刷処理のシーケンス図 アプリケーションおよびプリントジョブマネージャーのユーザインターフェース例を表す図 ユーザインターフェースの遷移図 出力準備処理のフローチャート 汎用・専用プリンタドライバインストール処理のフローチャート プリントキュー整理処理のフローチャート プリントキュー削除処理のフローチャート 出力デバイス特定ダイアログへ戻る場合のシーケンス図
以下、本発明を実施するための最良の形態について図面を用いて説明する。
図1(a)は、本発明の実施形態に係るネットワークシステムの概略構成を示すブロック図である。このネットワークシステムは、ホストコンピュータ(101)と、このホストコンピュータ(101)よりジョブを受信して処理する周辺装置、及び周辺装置に対応するデバイスドライバの配信などを行う配信サーバ(103)を備える。これらはネットワーク(104)を介して接続されている。なお、本実施形態では、周辺装置として印刷データを受信して印刷を行う出力デバイス(プリンタ)を挙げて説明する。
図1(b)は、図1(a)のホストコンピュータ(101)と出力デバイス(102)の装置構成を示すブロック図である。
ホストコンピュータ(101)において、CPU(111)は、RAM(112)に記憶されているプログラムに従って、システムバス(114)に接続される各デバイスを総括的に制御している。このRAM(112)は、CPU(111)の主メモリ、ワークエリア等としても機能している。ROM(113)は、各種プログラム及びデータを格納しており、各種フォントを記憶するフォントROM(113a)、ブートプログラムやBIOS等を記憶するプログラムROM(113b)、及び各種データを記憶するデータROM(113c)に区分けして構成されている。キーボードコントローラI/F(115)は、キーボード(119)や不図示のポインティングデバイス(マウス)からのキー入力を制御する。ディスプレイI/F(116)は、ディスプレイ(120)への表示を制御している。外部メモリI/F(117)は、例えばハードディスク(HD)、Solid State Disk(SSD)等の外部メモリ(121)とのアクセスを制御する。外部メモリ(121)は、オペレーティングシステムプログラム(以下、OS)(122)をはじめ各種アプリケーション(123)、印刷処理関連プログラム(124)、さらに、不図示のユーザファイル、編集ファイル等を記憶するコンピュータが読み取り可能な記憶媒体として機能する。なお、ここではOS(122)としてMicrosoft Windows(登録商標)を使用するものとする。ネットワークI/F(118)は、ネットワーク(104)を介して出力デバイス(102)に接続され、出力デバイス(102)との間で通信制御処理を行う。なお、配信サーバ(103)もホストコンピュータ(101)と同様の装置構成を備える。
ここで、印刷処理関連プログラム(124)は、本実施形態に係るプリントジョブマネージャー(125)、仮想プリンタドライバ(126)及びドライバインストーラ(129)などを含むプログラム領域となる。これらプログラムを任意の手段でダウンロードし、後述するようなインストール処理を行うことで、このプログラムに基づく印刷処理が可能となる。また、印刷処理関連プログラム(124)においては、情報処理装置にインストールされる汎用プリンタドライバ(127)や専用プリンタドライバ(128)も含まれることになる。仮想プリンタドライバとは、本実施形態特有のドキュメントを物理的な出力デバイスに対して直接ではなく、間接的に印刷するために利用されるプログラムである。間接的なプログラムであるため「仮想」と呼称しているが、仮想プリンタドライバ(126)はOS(122)上では一般的なプリンタドライバとして登録されるため、ユーザは通常の印刷作業手順に近い感覚で作業を行うことができる。一方、汎用プリンタドライバと専用プリンタドライバは、一般的なプリンタドライバとして分類される。具体的には、汎用プリンタドライバとは、複数のモデルに印刷可能なプリンタドライバである。汎用プリンタドライバは、対応するモデルが共通で持つ機能を利用することができる。一方、専用プリンタドライバとは、単一のモデルにのみ対応したプリンタドライバである。専用プリンタドライバは、対応するモデルの機能を最大限に引き出すことが可能である。
次に出力デバイス(102)の構成について説明する。CPU(132)は、出力デバイス(102)の全体の動作を制御している。RAM(139)は、CPU(132)の主メモリ、ワークエリア等として機能するとともに、出力情報展開領域、環境データ格納領域としても用いられる。またこのRAM(139)は、NVRAM(Non−volatile RAM:不揮発性RAM)領域も備えており、図示しない増設ポートに接続されるオプションRAMによりメモリ容量を拡張することができるように構成されている。ROM(133)は、各種フォントを記憶するフォントROM(133a)、CPU(132)により実行される制御プログラム等を記憶するプログラムROM(133b)、及び各種データを記憶するデータROM(133c)を備えている。ネットワークI/F(138)は、ホストコンピュータ(101)との間で印刷ジョブやステータスなどのデータの送受信を行う。印刷部I/F(136)は、プリンタエンジンである印刷部(137)とのインターフェースを制御している。外部メモリ(134)は、外部メモリI/F(140)によりアクセスが制御されており、オプションとして接続されるハードディスク(HD)、Solid State Disk(SSD)等を含んでおり、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。さらに、本実施形態に係る専用プリンタドライバ(128)を記憶することも可能である。なお、ハードディスク等の外部メモリ(134)が接続されていない場合には、ROM(133)のデータROM(133c)に、ホストコンピュータ(101)で利用される情報等を記憶することになる。なお、この外部メモリ(134)は1個に限らず複数備えるものであってもよく、例えば、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラム等を格納した外部メモリを複数接続できるように構成されていてもよい。操作部(142)には、ユーザによる操作を受け付ける操作パネルが設けられ、その操作パネルには操作のためのスイッチ及びLED表示器等が配されている(不図示)。また、不図示のNVRAMを有し、操作パネルからのプリンタモード設定情報を記憶するようにしてもよい。CPU(132)は、ROM(133)のプログラムROM(133b)に記憶された制御プログラム等に基づき、印刷部I/F(136)を介して印刷部(137)に出力情報としての画像信号を出力する。また、CPU(132)はネットワークI/F(138)を介してホストコンピュータ(101)との通信処理が可能となっており、ホストコンピュータ(101)から送信される印刷データを受信すると共に、出力デバイス(102)内の情報等をホストコンピュータ(101)に通知可能に構成されている。
図2は、図1(b)のドライバインストーラ(129)が備えるユーザインターフェース(200)である。ドライバインストーラ(129)を実行すると、ディスプレイ(120)上に表示される。プリンタ一覧(201)にインストール可能なプリンタドライバの一覧が表示される。
Device Model Aは、モデルAの出力デバイスに対応した専用プリンタドライバである。
Device Model Bは、モデルBの出力デバイスに対応した専用プリンタドライバである。
Device Model Cは、モデルCの出力デバイスに対応した専用プリンタドライバである。
Device Model Dは、モデルDの出力デバイスに対応した専用プリンタドライバである。
Generic Device Model 1は、モデルA、Bに対応した汎用プリンタドライバである。
Generic Device Model 2は、モデルC、Dに対応した汎用プリンタドライバである。
Virtual Device Modelは、モデルA、B、C、Dだけではなく、あらゆる出力デバイスに対応可能な仮想プリンタドライバである。
ユーザが任意のモデルを選択し、追加ボタン(202)を押下し、インストールするプリンタ一覧(203)に選択したモデルを加える。その後、ユーザがインストールボタン(204)を押下することで、ドライバインストーラ(129)は指定されたモデルのプリンタドライバをインストールする。
図3は、プリンタドライバとプリントキューとポートの各情報とそれらの関係を説明した図である。UML(Unified Modeling Language)のオブジェクト図を使って表現している。
プリントキュー(302)は、アプリケーションから印刷する際の印刷対象オブジェクトである。同一モデルのプリンタドライバ(301)から複数作成することができる。例えば、オフィスにDevice Model Aの出力デバイスが3台導入された場合、Device Model Aに対応したプリンタドライバを1つインストールして、そのプリンタドライバを使ったプリントキューを3つ作成することになる。ポート(303)は、ネットワークの出力先を特定するオブジェクトである。プリントキューとポートの関係は通常は一対一であるが、図のように同じポートを複数のプリントキューが使用してもかまわない。
プリンタドライバ(301)はプリンタドライバ構成情報(304)を保持している。プリンタドライバ構成情報(304)は、ドライババージョン、モデル名、ハードウェア情報、ドライバモジュール名、等から構成される。このプリンタドライバ構成情報(304)は、OS(122)によって管理される。
プリントキュー(302)は、プリントキュー構成情報(305)を保持している。プリントキュー構成情報(305)は、プリントキュー名、ポート名、印刷設定情報、ジョブ投入時刻、ジョブステータス、等から構成される。このプリントキュー構成情報(305)は、OS(122)によって管理される。さらに、プリントキュー(302)は、本実施形態特有の自動生成識別子(306)と更新日時(307)をも保持する。これらの情報は、プリントジョブマネージャー(125)によって管理される。詳細は後述する。
ポート(303)は、ポート構成情報(308)を保持している。ポート構成情報(308)は、ポート名、モジュール名、IPアドレス、等から構成される。このポート構成情報(308)は、OS(122)によって管理される。
図4は、図1(b)のドライバインストーラ(129)による一般的なプリンタドライバのインストール処理を示すフローチャートである。一般的なプリンタドライバとは、専用プリンタドライバおよび汎用プリンタドライバを指す。
プリンタドライバのインストールを開始(S400)すると、まずユーザによるモデルの選択を受け付ける(S401)。ここでは、図2のプリンタ一覧(201)において、Virtual Device Model以外のモデルを選択された場合を想定している。本実施形態に特有のVirtual Device Modelの選択も含んだインストール処理については図5にて後述する。専用プリンタドライバもしくは汎用プリンタドライバの選択を受け付けると、選択されたモデルのプリンタドライバをインストールする(S402)。
S402でのプリンタドライバのインストールは、プリンタドライバインストーラが、OSのインストールAPIであるスプーラAPIに対して設定ファイル(INFファイル)のパスを渡すことにより行われる。OSの一部であるスプーラAPIは、設定ファイルに従って、プリンタドライバを構成するDLL(Dynamic Link Library)をCD−ROMやインストールセットの中から探索する。そして、スプーラAPIは、所定のOSのシステムディレクトリに対して、探索されたDLLをコピーする。スプーラAPIは、設定ファイルに従って、レジストリ内にドライバ名などを記録する。なお、スプーラAPIは、プリンタフォルダの表示や、アプリケーションからのプリンタ選択UI(例えば、図8(a)等)の表示指示があった際、OSのレジストリに登録されるプリントキューのデータ構造を走査し、プリンタドライバに対応するプリントキューが設定されていれば、それをディスプレイ表示する。なお、ここではプリントキューがまだ作成及び設定されていないため、OSのユーザインターフェース(例えばプリンタ選択UI)には、現在インストールしようとするプリンタドライバのプリンタアイコンはまだ表示されない。
次に、ユーザによるIPアドレス等のポート情報の入力を受け付ける(S403)。そして、ポートを作成する(S404)。次に、ユーザによるプリントキュー名の入力を受け付ける(S405)。そして、S402でインストールしたプリンタドライバとS404で作成したポートを関連付けて、プリントキューを作成する(S406)。以上で、専用プリンタドライバ及び汎用プリンタドライバのインストール処理が終了する(S407)。
図5は、図1(b)のドライバインストーラ(129)による本実施形態特有のプリンタドライバのインストール処理を示すフローチャートである。
プリンタドライバのインストールを開始(S500)すると、まずユーザによるモデルの選択を受け付ける(S501)。そして、選択されたモデルが仮想プリンタドライバかどうか判断する(S502)。選択されたモデルが仮想プリンタドライバではない場合、専用・汎用プリンタドライバのインストール処理を行う(S503)。S503では、図4のS402以降の処理と同様の処理を行うことになる。そして、当インストール処理を終了する(S516)。
S502にて選択されたモデルが仮想プリンタドライバの場合、仮想プリンタドライバをインストールする(S504)。仮想プリンタドライバ自体は、ポートに対する印刷データの出力を行わないので、ユーザによる入力を伴わずにダミーのポートを作成する(S505)。ここで、ダミーのポートの作成とは、例えば、次のような処理になる。存在しないファイル名など適当な名前を指定してポートをOSに対して作成指示する。そうすると、当該作成指示は、エラーとしてOSに認識され、作成指示されたポート名を捨てる。よって、実際にはポートは作成されない。仮想プリンタドライバに対し複数のプリントキューを作る必要性が無いので、ユーザによる入力を伴わずにモデル名と同じ名前でプリントキューを作成する(S506)。図4で一般的なプリンタドライバのインストール処理について説明した際、ユーザによる入力は、S401、S403、及びS405の3回あった。一方、本実施形態特有のプリンタドライバのインストール処理においては、ユーザによる入力はS501だけである。もし、ドライバインストーラ(129)が仮想プリンタドライバだけを対象としたプログラムであれば、S501も不要となる。つまり、仮想プリンタドライバのインストール処理方法は、ユーザの負担と運用コストを低減させる効果がある。
仮想プリンタドライバは、ポートに対する印刷データの出力を行わない。そこで、印刷を最低限の保証するために汎用プリンタドライバを設置する。引き続き、汎用プリンタドライバのインストール処理について説明する。
インストールセットに含まれる全ての汎用プリンタドライバを列挙する(S507〜S510)。図2のプリンタ一覧(201)において、汎用プリンタは、Generic Device Model 1とGeneric Device Model 2が存在する。よって、1回目のループ処理では、Generic Device Model 1を取り出し、2回目のループ処理では、Generic Device Model 2を取り出す。取り出した汎用プリンタドライバがホストコンピュータ(101)にインストール済みかどうか判断する(S508)。まだ、インストールしていない場合は、取り出した汎用プリンタドライバをインストールする(S509)。このとき、汎用プリンタドライバを使ったプリントキューを作成しないので、ユーザが汎用プリンタドライバのインストールを意識することはない。そして、S510へ進む。ループ処理が終了したら、当インストール処理を終了する(S516)。
S508にて、取り出した汎用プリンタドライバがホストコンピュータ(101)にインストール済みの場合は、インストール済みの汎用プリンタドライバのバージョンを取得する(S511)。バージョン数から継続使用可能どうか判断する(S512)。継続使用が可能と判断した場合、S510へ進む。ループ処理が終了したら、当インストール処理を終了する(S516)。
S512にて、インストール済みの汎用プリンタドライバの継続使用が不可能と判断した場合、インストール済みの汎用プリンタドライバをアンインストールする(S513)。アンインストールとは、OSが管理する所定のシステムディレクトリからの汎用プリンタドライバのDLLの削除、及び、汎用プリンタドライバに対応するOSのレジストリのクリアなどの処理が挙げられる。この際、プリントキューやポートの情報は事前にバックアップしておく。そして、取り出した汎用プリンタドライバをインストールする(S514)。さらに、S513の処理を行う前にインストール済み汎用プリンタドライバを使って構成されていたプリントキューを、S514でインストールした汎用プリンタドライバを使って復元する(S515)。ここでの復元処理とは、新しくインストールする汎用プリンタドライバの設定として、それまでのプリントキューの名称やポートの指定などを反映させる処理をさす。復元すべき情報を表示し、ユーザにドライバインストーラやOSなどのユーザインターフェースにおいて選ばせることも可能である。その後、S510へ進む。ループ処理が終了したら、当インストール処理を終了する(S516)。
以上、ドライバインストーラ(129)が、仮想プリンタドライバをインストールしてそのプリントキューを作成すると、自動的に汎用プリンタドライバをインストールすることを説明した。なお、S507以降の汎用プリンタドライバのインストール処理については、図1(b)のドライバインストーラ(129)が実施することで説明をしたが、仮想プリンタドライバ(126)の初期化処理において実施してもかまわない。また、一般にVendorSetupと呼ばれるOS(122)から呼び出される不図示のプリンタドライバのセットアップモジュールで実施してもかまわない。
図6は本発明における印刷制御の処理に関するデータフロー図である。本図を用いて、印刷処理関連プログラムの各コンポーネント間でどのような入出力が行われているか明らかにする。
アプリケーション(123)は仮想プリンタドライバ(126)に対して、OS(122)の提供する描画インターフェースであるGDI(Graphic Device Interface)(600)を通じて印刷指示命令を出力する。次に仮想プリンタドライバ(126)は、入力された印刷指示命令をEMF(Enhanced Meta File)(601)の形式に変換してプリントジョブマネージャー(125)に出力する。ここでEMF(601)とは、GDI(600)の印刷指示命令と互換性のある中間データ形式であり、アプリケーション(123)から出力された一連の印刷指示命令を再現可能なデータとして記録したものである。本実施例では中間データ形式としてEMF(601)を用いて説明しているが、印刷指示命令を再現可能なデータであれば、例えばXPS(XML Paper Specification)、PDF(Portable Document Format)、あるいは独自に定義した任意の形式であっても良い。
次にプリントジョブマネージャー(125)は、後述する出力デバイスの特定、汎用・専用プリンタドライバの管理など固有の処理を行い、GDI(600)を通じて印刷指示命令を出力する。出力された印刷指示命令は、汎用プリンタドライバ(127)あるいは専用プリンタドライバ(128)に対して入力される。次に、汎用プリンタドライバ(127)あるいは専用プリンタドライバ(128)は、出力デバイス(102)が処理可能なPDL(Printer Description Language)(602)の形式に変換し、出力デバイス(102)にジョブとして出力する。最後に出力デバイス(102)は、入力されたPDL(602)を処理して印刷出力を行う。
図7は印刷処理のシーケンス図である。本図を用いて、一連の印刷処理中に関連プログラムの各コンポーネントの内部、およびそれらの間でどのような処理が行われているか明らかにする。
まず、ユーザはアプリケーション(123)に対して印刷したいドキュメントの印刷指示を図8(a)で示すユーザインターフェース(8000)を通じて入力する(S700)。8001〜8003はプリントキューを表すアイコンである。このうち、8001は仮想プリンタドライバのプリントキューである。8002、及び8003は専用プリンタドライバのプリントキューである。ここでは仮想プリンタドライバを通じて出力を行うため、ユーザは8001のアイコンを選択し、印刷ボタン(8004)を押して、印刷を指示する(S700)。
次に、アプリケーション(123)は、仮想プリンタドライバ(126)に対して、印刷初期化処理を行う(S701)。仮想プリンタドライバ(126)は印刷初期化が行われるとプリントジョブマネージャー(125)の起動処理を行う(S702)。プリントジョブマネージャー(125)は、このように仮想プリンタドライバ(126)に対するドキュメントの印刷開始後に起動されるプログラムである。後述する出力デバイスの特定のための表示制御、汎用・専用プリンタドライバのインストール制御、または管理などといった固有の処理を担う。また、プリントジョブマネージャー(125)は内部的なコンポーネントとして、出力デバイス特定部(1251)、ドライバ管理部(1252)、及びデスプール処理部(1253)を含む。
次に、アプリケーション(123)はプリントジョブマネージャー(125)が起動されると、仮想プリンタドライバ(126)に対して印刷を開始し、一連の印刷描画命令をGDI(219)を通じて出力する(S703)。仮想プリンタドライバ(126)は、入力された一連の印刷描画命令をEMF(601)形式に変換し、あとで印刷描画命令を再現できるよう外部メモリ(121)に保存する。これをスプール処理と呼ぶ(S704)。アプリケーション(123)は一連の印刷描画命令の最後に印刷終了の処理を行い(S705)、仮想プリンタドライバ(126)はそれを受けて保存されたEMF(601)の外部メモリ(121)における保存位置情報をプリントジョブマネージャー(125)に通知する(S706)。なお、S704は、外部メモリ(121)に対してスプール処理を実施するが、外部メモリ(121)を介さずプリントジョブマネージャー(125)へ直接スプール処理してもかまわない。
次に、出力デバイス特定部(1251)は、出力デバイスの検索を行う(S707)。ここで検索とは、ネットワーク(104)に接続された出力デバイス102a、102bと通信し、それらの名称、設置場所、IPアドレス、ハードウェアIDといった情報を取得することである。通信手段としては公知の技術であるSNMP(Simple Network Management Protocol)などのプロトコルが使用される。通常、出力デバイス102a、102bの状態、すなわち電源が入っているかや、ネットワーク(104)に接続されているかを事前に把握することは不可能であるため、出力デバイス特定部(1251)は印刷指示の都度、すべての出力デバイスとの通信を試みる。ネットワーク内のすべての装置との通信には、これも公知の技術であるブロードキャストという手段を用いる。出力デバイス特定部(1251)がこのブロードキャストの方法で、ネットワークI/F(118)を通じてSNMPの情報取得用データを送信すると、ネットワーク(104)で到達可能なすべての出力デバイス(102)が情報取得用データを受信する。そして、各出力デバイス(102)が、取得対象として指定された出力デバイスの名称や設置場所などの情報を応答のデータとしてネットワークI/F(138)を通じて送信すると、出力デバイス特定部(1251)は順次それらの応答を受信する。そして、受信した情報をRAM(112)に保存する。出力デバイス特定部(1251)は、順次受信した応答からデバイス名や設置場所などの情報を取り出し、リストとして出力デバイスを特定する図8(b)のユーザインターフェース(8100)に表示する(S707)。8100には情報を表示するためのリストコントロール(8101)が配置され、その中からひとつをカーソル(8102)によって選択することができる。ボタン(8103)を押すと、ネットワーク内で再検索が行われ、利用可能な出力デバイスのリストを最新の状態に更新できる。ボタン(8104)を押すと、カーソル(8102)で現在選択されているデバイスが出力先として決定される。出力デバイス特定部(1251)は、その決定を受け(S709)、次の処理に移る。チェックボックス(8105)とボタン(8106)はプリントキューを管理する際にユーザが操作する。これらの操作方法については後述する。
S709で出力先のデバイスが決定されると、出力デバイス特定部(1251)はドライバ管理部(1252)に対して出力準備処理を実行するよう依頼する(S710)。S711における出力準備処理の結果、OS(122)には選択された出力デバイス(102)に印刷可能な汎用プリンタドライバ(127)または不図示の専用プリンタドライバ(128)のプリントキューが登録される。出力準備処理(S711)については後で図10、図11を用いて詳述する。
次に出力デバイス特定部(1251)は、図8(b)の出力デバイス特定用の画面から、デスプール処理部(1253)が有する図8(c)の画面(8200)に遷移する(S712)。デスプール処理部(1253)は、プレビューエリア(8201)に印刷ドキュメントを実際に印刷したときのイメージを表示する(S713)。このとき表示されるイメージは、S704においてスプールされたEMF(601)をデスプール処理部(1253)が読み込み、解析して、プレビューエリア(8201)の大きさに合わせて描画したものである。スピンコントロール(8202)やチェックボックス(8203)はそれぞれ印刷部数、白黒印刷といった一般的な印刷設定を変更するための入力手段である。さらに特殊な印刷設定を変更するためには、ボタン(8204)を押下することにより、不図示のプリンタドライバ固有のユーザインターフェースを表示させ、印刷設定の変更指示を入力することができる。このとき、出力先に対応するプリントキューが専用プリンタドライバ(128)のものである場合、汎用プリンタドライバ(127)のものに比べて、より高度な印刷設定が可能である。ボタン(8206)は、現在の画面(8200)から、ひとつ前の画面である出力デバイス特定画面(8100)に遷移して戻るための入力手段である。ボタン(8205)をユーザが押下すると(S714)、デスプール処理部(1253)は汎用プリンタドライバ(127)に対してデスプール処理を行い、一連の印刷描画命令を発行する(S715)。ここで、デスプール処理というのはスプール処理の逆で、S706によって通知された保存位置情報からEMF(601)データを読み出し、解析して、印刷描画命令を再現することである。これにより、プリントジョブマネージャー(125)固有の処理のために中断していた印刷処理が再開され、印刷ドキュメントの出力が行われる。汎用プリンタドライバ(127)は、入力された印刷描画命令をPDL(602)に変換し、ネットワークI/F(138)を通じて出力デバイス(102)に送信する(S716)。印刷処理が終わると出力デバイス特定部(1251)は、ドライバ管理部(1252)へプリントキュー整理処理(S718)を実行するよう依頼する(S717)。プリントキュー整理処理(S718)については後で図12〜図14を用いて詳述する。最後に、プリントジョブマネージャー(125)はプログラムを終了する。
図9にプリントジョブマネージャー(125)のユーザインターフェースの遷移の概要を示す。
まず、プリントジョブマネージャー(125)は、「出力デバイス特定」ダイアログ(8100)を表示する。出力デバイスの特定と「次へ」のボタン(8104)の押下をうけて、プリントジョブマネージャー(125)は、「編集プレビュー」ダイアログ(8200)を表示する。「編集プレビュー」ダイアログ(8200)では、プリントジョブのプレビュー確認と基本的な印刷設定が可能である。「印刷」ボタン(8205)の押下をうけてプリントジョブマネージャー(125)は出力デバイスへ印刷を実行し同ダイアログを閉じる。加えて、「編集プレビュー」ダイアログ(8200)には、プリンタドライバが持っている特有の機能を設定するために「詳細設定」ボタン(8204)が存在する。「詳細設定」ボタン(8204)の押下をうけて、プリントジョブマネージャー(125)は、プリンタドライバの「印刷設定」ダイアログ(9000)を表示する。更に、「編集プレビュー」ダイアログ(8200)には「戻る」ボタン(8206)が存在する。この「戻る」ボタン(8206)は現在の出力先デバイスでは所望の機能が実現できないことが分かった際の出力デバイスの再設定のために存在する。「戻る」ボタン(8206)の押下をうけて、プリントジョブマネージャー(125)は、「出力デバイス特定」ダイアログ(8100)を表示し、再度出力デバイスの指定が可能になる。
図10は、ドライバ管理部(1252)における出力準備処理(S711)の詳細な流れを表すフローチャートである。本処理によって、出力デバイス(102)へ印刷するためのプリントキューがあればそれを選定し、なければ新しいプリントキューを作成、あるいは最適なプリンタドライバをインストールする。
まず、ドライバ管理部(1252)は、出力準備処理を開始すると(S1000)、出力デバイス(102)のIPアドレス情報を取得する(S1001)。IPアドレス情報は出力デバイスの検索処理(S707)において取得されRAM(112)に記憶されているものを取り出す。次にOS(122)に登録されているすべてのプリントキューからプリントキューに関連付けられているポートのIPアドレスを取得する(S1002〜S1004)。
次に、出力デバイス(102)のIPアドレスと、ポートのIPアドレスが合致するプリントキューが存在するかどうか判断する(S1005)。後述するが、本システムにおいて、プリントキューは出力デバイスごとに作成される。しかし、同じ出力デバイスに印刷を行うたびに別のプリントキューを毎回作成すると大量のプリントキューが重複して登録されてしまう。このような事態を避けるため、出力デバイスとすべてのプリントキューのIPアドレス同士を比較することによって、既存のプリントキューの中に出力可能なものがないかを判断する。もし出力可能なプリントキューが存在すればS1006に、存在しなければS1011に進む。
次にS1006ではさらに汎用プリンタドライバを優先させるモードであるかどうか判断する。所望の出力デバイス(102)に出力可能なプリントキューの中には専用プリンタドライバ(128)のものが含まれている可能性もある。しかしながら、高度な機能は必要とせず、シンプルで安定した汎用プリンタドライバ(127)を使用したいユーザもいるため、例えば不図示のユーザインターフェースによって汎用プリンタドライバを優先させるかどうか切り替え可能なモードを設けることが考えられる。このモードが真すなわち汎用プリンタドライバを優先させる場合は、S1007に進み、そうでなければS1009に進む。
次にS1007ではプリントキューのモデル名を取得する。そして、デバイスもモデル名が汎用プリンタドライバのものであるかどうか判断する(S1008)。プリントキューの名前がユーザによって変更可能であるのに対し、汎用プリンタドライバのモデル名は「Generic Device Model 1」のように固有の名称なので、プリントキューのモデル名を知ればどの種類のドライバなのか判断できる。汎用プリンタドライバである場合はS1009へ進み、そうでなければS1010へ進む。
S1009へ進んだ場合、S1005で見つかった既存のプリントキューを出力先として決定し、出力準備処理を終了する(S1014)。
S1010へ進んだ場合、すなわち既存のプリントキューが専用プリンタドライバのものであると判断された場合は、図11で後述する処理において、汎用プリンタドライバを優先インストールすることに決定し、S1013に進む。
S1011ではS1006と同様に汎用プリンタドライバを優先させるモードかどうかを判断し、真ならS1010に、偽ならS1012へ進む。S1012では、図11で後述する処理において、適合する最適なドライバを検索してインストールすることに決定し、S1013に進む。ここでS1012では、既存のプリントキューに出力可能なものが存在せず、汎用プリンタドライバを優先させるモードでもないので、適合する最適なドライバ(専用プリンタドライバ)を優先インストールすることが決定される。
汎用・専用プリンタドライバインストール処理(S1013)については図11を用いて詳述する。
図11は、ドライバ管理部(1252)における汎用・専用プリンタドライバインストール処理(S1013)の詳細な流れを表すフローチャートである。
まず、ドライバ管理部(1252)は処理を開始すると(S1100)、出力用のポートを作成する(S1101)。次に、図10の専用プリンタドライバを優先インストールすることに決定されているか否かで判断し(S1102)、真であればS1103に、偽であればS1108に進む。ここで真となり、S1103に進む場合とは、図10でS1012のステップから遷移してS1013の処理に入った場合である。一方、偽となり、S1108に進む場合とは、図10でS1010のステップから遷移してS1013の処理に入った場合である。
S1103〜S1107はホストコンピュータ(101)や配信サーバ(103)、あるいは出力デバイス102a、102bの備える記憶領域の中から出力に最適な専用プリンタドライバ(128)を検索するステップである。まず、S1103では出力デバイスのハードウェア情報を取得する。本実施例ではハードウェア情報として、プラグアンドプレイによるインストールに用いられるハードウェアIDを取得する。ハードウェアIDは出力デバイスの検索処理(S707)において取得されRAM(112)に記憶されているものを取り出す。
次に、S1104ではインストール済みプリンタドライバ内に適合するプリンタドライバがあるかどうか判断する。具体的には、ドライバ管理部(1252)は、OS(122)に登録されている各プリンタドライバのハードウェア情報と、S1103で取得した出力デバイス(102)のハードウェア情報とを比較し、一致するものがあればすべてピックアップする。1つ以上適合するものがあればS1116へ、なければS1105へ進む。
次に、S1105ではドライバストア内に適合するプリンタドライバがあるかどうか判断する。ドライバストアとはWindows Vista(登録商標)で導入されたデバイスドライバのデータベースシステムであり、インストール前のデバイスドライバのパッケージをOS(122)に格納する仕組みである。ドライバ管理部(1252)は、このドライバストアに格納されているプリンタドライバの中に、S1103で取得した出力デバイス(102)のハードウェア情報に一致するものがないかOS(122)に問い合わせることができる。問い合わせの結果、1つ以上適合するものがあればS1112へ、なければS1106へ進む。
次に、S1106では配信サーバ(103)内に適合するプリンタドライバがあるかどうか判断する。ドライバ管理部(1252)は、ドライバ配信サーバ(103)にRPC(Remote Procedure Call)やHTTP(Hyper Text Transfer Protocol)などの手段で、ネットワーク(104)を経由して、あるハードウェア情報に適合するプリンタドライバがあるか問い合わせることができる。問い合わせの結果、1つ以上適合するものがあれば配信サーバ(103)からプリンタドライバのパッケージをホストコンピュータ(101)に転送して、外部メモリ(121)に記憶し、S1112へ進む。そうでなければS1107へ進む。
次に、S1107では出力デバイス(102)内を検索し、適合するドライバがあるかどうか判断する。前述したとおり、出力デバイス(102)はその外部メモリ(134)に、出力デバイス自身を利用するために必要な専用プリンタドライバ(128)を記憶することができる。ドライバ管理部(1252)は、この出力デバイス(102)に記憶されたプリンタドライバも、S1106と同様の手段でネットワーク(104)を経由して、問い合わせることが可能である。問い合わせの結果、1つ以上適合するものがあれば出力デバイス(102)から専用プリンタドライバ(128)のデータをホストコンピュータ(101)に転送して、外部メモリ(121)に記憶し、S1112へ進む。外部メモリ(134)の設定変更等により専用プリンタドライバ(128)が消去されているため、問い合わせの結果が1つも適合するものがないと判断された場合はS1108へ進む。
S1108〜S1111では、前記S1103〜S1106の一連の処理の結果、適合するプリンタドライバがどこにも見つからない場合の代替手段として、あらかじめS500〜S516でインストールされた汎用プリンタドライバのプリントキューを作成する。まず、ドライバ管理部(1252)はネットワーク(104)を経由して、出力デバイス(102)のコマンドタイプ情報を取得し(S1108)、その判断を行う(S1109)。ここで、コマンドタイプ情報とは、出力デバイス(102)が処理可能なPDL(602)の種類を表す情報である。汎用プリンタドライバ(127)は複数のモデルに出力可能なPDLを発行するドライバであるが、あくまで1種類のPDLしか発行できない。したがって、異なるPDLをサポートするモデルに対しては出力できないため、コマンドタイプ情報を取得して、互換性の確認を行う。本実施例においては2種類のPDL(「1」または「2」)のどちらかに対応した出力デバイスを利用することを前提としている。しかしながら、対応できないコマンドタイプ情報も存在する。S1109では、コマンドタイプ情報「1」、「2」、それ以外であるかどうか判断している。「1」の場合はS1110へ、「2」の場合はS1111に進む。S1110ではコマンドタイプ「1」に対応した「Generic Device Model 1」のプリントキューを作成し、処理を終了する(S1118)。S1111ではコマンドタイプ「2」に対応した「Generic Device Model 2」のプリントキューを作成し、処理を終了する(S1118)。なお、プリントキューを作成する際はS1101で作成したポートを関連付ける。一方、S1109で、「1」、「2」以外のコマンドタイプ情報が取得されたと判断された場合は、画面を介して、ユーザに「他の出力デバイスを選択してください」などの警告を通知するとともに、本処理を終了(S1118)する。
S1112〜S1114では検索の結果として適合した専用プリンタドライバ(128)をインストールする。まず、S1112では適合するプリンタドライバが2つ以上見つかったかどうか判断し、真であればS1113、偽であればS1114へ進む。S1113ではその中から最もプリンタドライバのバージョンの新しいものをインストールすべき対象として選択する。各プリンタドライバにはバージョンが付与されており、たとえ同じモデルのプリンタドライバであっても作成された時期が違えば、通常は異なるバージョンを有する。バージョンの表現方法としては例えば「10/10/2008.2.5.0.0」のように日付と数値の組み合わせで表現し、どちらの方が新しく作成されたものか容易に判断することができる。しかしながら、まれに古いバージョンのドライバをあえて使用する必然性が生じる場合がある。そのような場合は図8(d)の8300に示すようなユーザインターフェースを表示して、ユーザに選択させることが好ましい。8301には適合すると判断された複数のプリンタドライバの情報(名称、バージョン)がリストで表示される。ユーザは8301のリストの中から所望のプリンタドライバを選び、ボタン(8302)を押すことで決定できる。次にS1114では適合したプリンタドライバ、もしくは複数あった場合はS1113で選択されたプリンタドライバをインストールする。
ここで、S1116〜S1117はS1112〜S1114の特殊なケースに関しての処理である。具体的には、プリントキューが未作成のインストール済みプリンタドライバの中に、適合するプリンタドライバがあった場合の処理であり、S1116はS1112と、またS1117はS1117と同様の処理である。S1114が不要なのは、もはやプリンタドライバをインストールする必要がないからである。最後にS1115では、S1101において作成したポートに関連付けてプリントキューを作成し、処理を終了する(S1118)。
ここまで述べてきたように、プリントジョブマネージャー(125)は印刷時にプリントキューをOS(122)に登録する。次回以降の印刷で出力デバイスがわかっている場合は、仮想プリンタドライバ(126)を介さずに直接プリントキューを指定し、出力先デバイスの指定ステップがない通常手順で印刷できる。しかしながら、オフィス内に多数の出力デバイスが設置されている場合や、複数のオフィスを移動して印刷を行う場合、その都度プリントキューは作成されるので、プリントキューは増加傾向にある。
また、図9のユーザインターフェースの遷移で示したように、プリントジョブマネージャー(125)は、「出力デバイス特定」ダイアログ(8100)と「編集プレビュー」ダイアログ(8200)の遷移を何度でも繰り返すことが可能である。「出力デバイス」のリストボックス(8101)で選択された出力デバイス用のプリントキューがホストコンピュータ(101)に存在しない場合プリントジョブマネージャー(125)は推移のたびに新たにプリントキューを作成する。そのため、「戻る」ボタン(8206)の押下を繰り返すと、ホストコンピュータ(101)上のプリントキューはさらに増加傾向になる。
ホストコンピュータ(101)上のプリントキューの総数が多くなると、印刷時に最初に表示される「印刷」ダイアログ(8000)で表示されるプリントキューが多くなり、ユーザによる適切なプリンタの選択が難しくなる。そのため自動生成されたプリントキューの削除などを行える管理手段があれば、ユーザビリティの向上に繋がる。
図8(e)に「削除方法指定」のダイアログ(8400)を示す。
「出力デバイス特定」のダイアログ(8100)上の「詳細設定」ボタン(8106)の押下をうけて、プリントジョブマネージャー(125)はディスプレイ(120)へ表示する。同ダイアログ上の「OK」ボタン(8407)の押下をうけて、プリントジョブマネージャー(125)は「削除方法指定」のダイアログ(8400)を閉じる。その後、図8(b)に示す「出力デバイス特定」のダイアログ(8100)が表示され、プリントジョブマネージャー(125)はそのダイアログ(8100)へ処理を移行する。
「削除方法指定」のダイアログ(8400)には、「削除方法を指定する」チェックボックス(8401)が存在する。このチェックボックス(8401)の初期状態はチェックなしである。このチェックボックス(8401)がチェックされると8402〜8405のアイテムが有効となり、プリントキューの削除方法の詳細指定が可能となる。
プリントキューの削除方法の詳細指定のために、「削除方法指定」のダイアログ(8400)には、「選択したプリントキューを残す」ラジオボタン(8402)と、「最新のプリントキューを残す」ラジオボタン(8404)が存在する。この2つのラジオボタンへの指定は排他となっており、「選択したプリントキューを残す」ラジオボタン(8402)が選択された場合は、「最新のプリントキューを残す」ラジオボタン(8404)は非選択状態となる。またその逆に「最新のプリントキューを残す」ラジオボタン(8404)が選択された場合は、「選択したプリントキューを残す」ラジオボタン(8402)が非選択状態になる。デフォルト状態では「選択したプリントキューを残す」ラジオボタン(8402)が選択状態となる。
「選択したプリントキューを残す」ラジオボタン(8402)が選択状態の場合、リストボックス(8403)の選択が有効になる。プリントジョブマネージャー(125)は、ホストコンピュータ(101)上に存在するプリントキューの内、ドライバ管理部(1252)が作成したものをリストアップし、リストボックス(8403)へ表示する。但しドライバ管理部(1252)が作成したものではなく特殊なものであるので、このリストには仮想プリンタドライバ(126)のプリントキューであるVirtual Device Model(8001)は含まれない。「選択したプリントキューを残す」ラジオボタン(8402)が選択状態で「OK」ボタン(8406)が押下された場合、プリントジョブマネージャー(125)は、リストボックス(8403)で選択されていないものを削除対象と認識する。
「最新のプリントキューを残す」ラジオボタン(8404)が選択状態の場合、個数のスピンボックス(8405)での指定が有効になる。「最新のプリントキューを残す」ラジオボタン(8404)が選択状態で「OK」ボタン(8406)が押下された場合、プリントジョブマネージャー(125)は、個数(上限数)のスピンボックス(8405)での設定が有効であることを認識する。この設定で削除対象とするプリントキューは、「選択したプリントキューを残す」ラジオボタン(8402)で選択と同様に、ホストコンピュータ(101)上にドライバ管理部(1252)が作成したものに限定される。この設定では、指定された個数まで、利用された日時が新しいプリントキューを残し、それ以外のプリントキューを削除することになる。また仮想プリンタドライバ(126)のプリントキューであるVirtual Device Model(8001)も同様に含まれない。
加えて、「削除方法指定」のダイアログ(8400)には、「不要となったプリンタドライバを削除する」チェックボックス(8406)が存在する。デフォルト状態では、このチェックボックス(8406)は、チェックなしである。このチェックボックス(8401)がチェックされた状態で、「OK」ボタン(8406)が押下された場合、プリントジョブマネージャー(125)は、プリントキューと関連付けがなくなったプリンタドライバ自体の削除要求を受けたと判断する。「削除方法指定」のダイアログ(8400)で設定された情報を元にプリントジョブマネージャー(125)は、ドライバ管理部(1252)へプリンタドライバ整理処理を依頼する。プリンタドライバ整理処理の詳細は図12のフローチャートを用いて後述する。
図12にドライバ管理部(1252)によるプリントキューの整理処理のフローチャートを示す。本実施例では、この処理は図7で示した印刷処理のシーケンスにおいて、印刷完了後のプリントキュー整理処理(S718)のタイミングでドライバ管理部(1252)によって実行される。
プリントキューの整理処理はS1200より開始され、ドライバ管理部(1252)は、プリントキューのデータ構造(302)に対して、ドライバ管理部(1252)が自動生成したプリントキューであることを示す自動生成識別子(306)を追加する。更に加えてドライバ管理部(1252)は、プリントキューのデータ構造(302)の更新日時(307)に現在の日時を記す(S1201)。
次に、図7のデスプール(S715)のタイミングで、実際の印刷描画に用いたプリントキューが自動生成されたものであれば、プリントキューのデータ構造(302)の更新日時(307)を現在の日時に更新する(S1202)。ドライバ管理部(1252)は、一旦、図7の出力準備処理(S711)のタイミングで新規作成されたプリントキューのすべてのリストを取得する(S1203)。このリストをここでは削除候補プリントキューリストと呼称する。
ドライバ管理部(1252)は、「出力デバイス特定」ダイアログ(8100)の「印刷したプリントキューを残す」のチェックボックス(8105)が選択状態かを確認する(S1204)。もし非選択状態だった場合、S1206へ進む。もし選択状態だった場合、ドライバ管理部(1252)は、実際の印刷描画に用いたプリントキューが削除候補プリントキューリストにあれば除外(S1205)し、その後、S1206へ進む。この処理により、図7のデスプール(S715)のタイミングで実際の印刷描画に用いたプリントキューを、削除候補より外すことができる。
ドライバ管理部(1252)は、「削除方法を指定する」チェックボックス(8401)が選択状態であるか確認する。もし非選択状態だった場合、図8(e)の「削除方法指定」のダイアログ(8400)で追加の詳細な削除方法が指定されていないので、S1213へ進む。その後、ドライバ管理部(1252)は、削除候補プリントキューリスト中のプリントキューを削除し(S1213)、プリントキューの整理処理を終了する(S1214)。S1213の削除候補プリントキューリスト中のプリントキューの削除処理は、図13を用いて後で説明する。一方、「削除方法を指定する」チェックボックス(8401)が選択状態の場合、「選択したプリントキューを残す」ラジオボタン(8402)もしくは「最新のプリントキューを残す」ラジオボタン(8404)の選択状態で処理フローを切り替える(S1207)。
「選択したプリントキューを残す」ラジオボタン(8402)が選択状態である場合、S1208へ進む。S1208においてドライバ管理部(1252)はリストボックス(8403)上で選択されたプリントキューを削除候補プリントキューリストより除外する。その後、ドライバ管理部(1252)は削除候補プリントキューリスト中のプリントキューを削除し(S1213)、プリントキューの整理処理を終了する(S1214)。
「最新のプリントキューを残す」ラジオボタン(8404)が選択状態である場合、S1209へ進む。S1209においてドライバ管理部(1252)は削除候補プリントキューリストを一旦クリアーする。続けて、ドライバ管理部(1252)はホストコンピュータ(101)上に存在するプリントキューのうち自動生成識別子(306)を有するプリントキューのリストを取得する(S1210)。ドライバ管理部(1252)は取得したプリントキューのリスト中のプリントキューの個数を、「個数」スピンボックス(8405)で指定された数値と比較する(S1211)。もしプリントキューの個数が指定数を超えていない場合、S1214へ進み、プリントキューの整理処理を終了する。もしプリントキューの個数が指定数を超えている場合、取得したプリントキューのリストを更新日時(307)でソートし、古い日時のものから超過数分のプリントキューを削除候補プリントキューリストとする(S1212)。その後、ドライバ管理部(1252)は削除候補プリントキューリスト中のプリントキューを削除し(S1213)、プリントキューの整理処理を終了する(S1214)。
図13にドライバ管理部(1252)によるプリントキューの削除処理のフローチャートを示す。このフローチャートは図12のプリントキューの整理処理のフローチャートのS1213の詳細処理を示すものである。
本処理はS1300より開始され、ドライバ管理部(1252)は、OS(122)提供の関数をコールすることにより、図3に示したプリンタドライバ、プリントキュー、ポートの各種情報を取得する。それらの情報を用いて、図12のプリントキューの整理処理のフローチャートで生成した削除候補プリントキューリストに含まれるすべてのプリントキュー(302)に関連付けられているプリンタドライバ(301)のリストを作成し保存する(S1301)。このリストは、削除候補プリンタドライバリストであり、S1309以降で、もし不要となったプリンタドライバがあれば削除されることになる。
次にドライバ管理部(1252)は、削除候補プリントキューリストのすべてのプリントキューを処理したか判断する(S1302)。ドライバ管理部(1252)は、削除候補プリントキューリストに未処理のプリントキューがある場合はS1303へ進み、未処理のプリントキューの何れかを取得し、現在の削除候補プリントキューとする。ドライバ管理部(1252)は、現在の削除候補プリントキューに印刷中もしくは待機中のジョブがあり、プリントキューを使用中か判断する(S1304)。もしプリントキューが使用中の場合は、ドライバ管理部(1252)は、ユーザへ削除してよいかの確認メッセージ(不図示)を表示する(S1305)。ここで、ドライバ管理部(1252)は、ユーザからの削除要求をうけた否かを判断する(S1306)。ユーザからの削除要求が「はい」の場合、現在の削除候補プリントキューの削除処理を行うためにS1307へ進む。ユーザからの削除要求が「いいえ」の場合はS1308へ進み、現在の削除候補プリントキューの削除処理を行わず、S1302に戻る。S1304で、現在の削除候補プリントキューが使用中でないと判断された場合は、現在の削除候補プリントキューの削除処理を行うために、S1307へ進む。S1307において、ドライバ管理部(1252)は、OS(122)提供の関数をコールすることにより、現在の削除候補プリントキューの削除処理を実施し、その後、S1302へ戻る。ここで、もし何らかの理由でOS(122)が現在の削除候補プリントキューを削除できない場合は、削除できなかった旨のエラーメッセージ(不図示)を表示してからS1302へ戻る。S1302で、ドライバ管理部(1252)が削除候補プリントキューリストのすべてのプリントキューを処理したと判断した場合、S1309へ進む。
S1309においてドライバ管理部(1252)は、「不要となったプリンタドライバを削除する」チェックボックス(8406)が選択されているか確認する。もし選択されていない場合は、S1316へ進み、プリントキューの削除処理を終了する。もし選択されている場合は、S1310へ進む。
S1310において、ドライバ管理部(1252)は、S1301で生成した削除候補プリンタドライバリストのすべてのプリンタドライバについてS1311以降の処理を行ったかを判断する。もし削除候補プリンタドライバリストのすべてのプリンタドライバについて処理した場合、ループ処理から抜けてS1316へ進み、プリントキューの削除処理を終了する。もし削除候補プリンタドライバリストに未処理のものがある場合はS1311へ進み、未処理のプリンタドライバの何れかを取得して現在の削除候補プリンタドライバとする。S1312では、ドライバ管理部(1252)は、現在の削除候補プリンタドライバが、汎用プリンタドライバ(127)か、もしくは仮想プリンタドライバ(126)でないことを、そのモデル名を用いて判断する。もし現在の削除候補プリンタドライバが、それらのプリンタドライバである場合、次回以降の仮想プリンタドライバ(126)を用いた印刷を可能とするために、S1315へ進み、ドライバ管理部(1252)は現在の削除候補プリンタドライバを削除せずに、S1310に戻る。もし現在の削除候補プリンタドライバが、汎用もしくは、仮想プリンタドライバでない場合、S1313へ進む。なお本実施例では、モデル名を用いて、汎用プリンタドライバ(127)か、もしくは仮想プリンタドライバ(126)であるかを判断したが、特に識別情報や方法を限定する必要はない。例えばプリントードライバ構成情報(304)の一部の情報として、別に識別子を持っていてもよい。
S1313において、ドライバ管理部(1252)は、OS(122)提供の関数をコールすることにより、図3に示したプリンタドライバ、プリントキュー、ポートの各種情報を取得する。現在の削除候補プリンタドライバが他のプリントキューに関連付けられているかを判断する。もし現在の削除候補プリンタドライバに関連付けられたプリントキューが存在しなければ、S1314に進み、現在の削除候補プリンタドライバを削除する。もし現在の削除候補プリンタドライバに関連付けられたプリントキューが存在する場合、S1315に進み、現在の削除候補プリンタドライバを削除せずに、S1310に戻る。S1314において、ドライバ管理部(1252)は、OS(122)提供の関数をコールすることにより、現在の削除候補プリントードライバの削除処理を実施し、その後S1310へ戻る。もし何らかの理由でOS(122)が現在の削除候補プリンタドライバを削除できない場合は、削除できなかった旨のエラーメッセージ(不図示)を表示し、S1310に戻る。
以上より、ホストコンピュータ上のプリントキューを適切に管理することにより、ユーザが必要とするプリントキューのみ残すことが可能となり、次回以降のプリントキューの選択が容易になる。具体的には、従来の汎用/専用のプリンタドライバを用いた印刷に慣れたユーザは、次回以降の印刷では、特に印刷環境が変わらないのであるならば、仮想プリンタドライバを介さずに直接、汎用/専用のプリンタドライバのプリントキューを指定したい。本処理により、不要なプリントキューは削除されつつ、ユーザ所望のプリントキューは残るので、ユーザの利便性が著しく向上する。
図14のシーケンス図を用いて「編集プレビュー」ダイアログ(8200)の「戻る」ボタン(8206)を押下した場合のプリントキュー整理処理を示す。S700〜S713までシーケンスは図7と同じ処理である。ここでは説明を省略する。
S1400で「戻る」ボタン(8206)のユーザによる押下をうけて、プリントジョブマネージャー(125)は、「編集プレビュー」ダイアログ(8200)から「出力デバイス特定」ダイアログ(8100)へ画面遷移を行う(S1401)。その画面遷移をうけて出力デバイス特定処理(1251)は、ドライバ管理部(1252)へプリントキュー整理依頼を出す(S717)。そして、ドライバ管理部(1252)は、「削除方法指定」のダイアログで指定された情報でプリントキュー整理処理を実行する(S718)。この処理により、印刷処理の過程であっても、プリントキューの総数を抑えることができる。
なお、「編集プレビュー」ダイアログ(8200)から「出力デバイス特定」ダイアログ(8100)へ画面遷移を行う度に、ドライバ管理部(1252)はプリントキュー整理処理(S718)を実行する必要はない。例えば現在の印刷シーケンスの「戻る」ボタン(8206)の回数をカウントし、一定回数毎にドライバ管理部(1252)がプリントキュー整理処理を実行する方法でもよい。その後の印刷シーケンスは図7のS709以降の手順と同様であり、ここでは説明を省略する。
以上、図7と図14のシーケンスを用いて、仮想プリンタドライバを用いた印刷処理シーケンス内でのプリントキュー整理処理の実行を説明した。
実際に印刷につかったプリントキューなどの外部メモリに保存管理することにより、プリントキュー整理処理(S718)の実行は、上記タイミングに限定する必要はなく、他のタイミングでも実施することが可能になる。例えば、次回の印刷のタイミングで、出力準備処理(S711)を行う前にプリントキュー整理処理(S718)を実行しても良い。また仮想プリンタドライバ(126)などのユーザインターフェースにボタンを設け、印刷とは関係のないタイミングでユーザによるその押下を受け実行してもよい。さらに、例えば印刷処理と直接関係ないタイミングであるホストコンピュータ(101)へのユーザのログオンまたはログオフ時や、定期的なタイマー間隔を設けて実行してもよい。
OS(122)が提供する機能として、設置後のプリントキュー名称を別名に変更できる機能が存在する。このプリントキュー名称の変更に追従するために、上記では、プリントキューのデータ構造(302)に、自動生成識別子(306)と更新日時(307)を保存し、プリントキュー名称変更に影響を受けない構成とした。もし特に設置後のプリントキュー名称がなされない運用を前提とすれば、それらの情報保存先をプリントキューのデータ構造(302)に限定する必要はない。例えばプリントキュー名称をキーとしたプリントキューのデータ構造(302)と同様なデータ構造を用意し、外部メモリ(121)へ自動生成識別子(306)や更新日時(307)を保存することも可能である。またアクセス制限などにより、プリントキューのデータ構造(302)に書き込めない場合も同様に他のデータ構造を用意して管理することもできる。
図12のS1202では、ドライバ管理部(1252)が、プリントキューのデータ構造(302)の更新日時(307)に現在の日時を記した。仮に汎用プリンタドライバ(127)や専用プリンタドライバ(128)が印刷完了時の更新日時(307)の更新をする仕組み(S1202)を持てば、仮想プリンタドライバ経由でないそれらの直接指定の印刷時も更新日時(307)の更新が可能になる。更にOS(122)が印刷の監査機能を持っている場合、その監査ログよりプリントキューの利用状況を判断することができる。その場合、更新日時(307)として独自データ構造を持たなくても実現可能である。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPU等)がプログラムを読み出して実行する処理である。

Claims (19)

  1. 印刷ジョブを接続されたプリンタに送信する情報処理装置であって、
    ユーザからの指示に応じてアプリケーションから受け取ったデータを中間データとしてスプールするスプール手段と、
    前記ユーザからの指示後に、自装置に接続されているプリンタを検索する検索手段と、
    印刷処理を行うプリンタを選択させるために、前記検索手段により見つかったプリンタの一覧を表示するための表示制御手段と、
    前記表示制御手段により表示されたプリンタの一覧から選択されたプリンタに対応するプリンタドライバのインストール処理を制御するインストール制御手段と、
    前記インストール制御手段によりインストールされたプリンタドライバに対応するプリントキューを作成する作成手段と、
    ユーザからの前記インストール制御手段によりインストールされたプリンタドライバに対する印刷の指示を受けて、当該プリンタドライバに対して、前記スプール手段によりスプールした中間データを渡すデスプール手段と、
    前記デスプール手段により渡された中間データから、前記インストール制御手段によりインストールされたプリンタドライバを用いて生成された印刷ジョブを、前記表示制御手段により表示されたプリンタの一覧から選択されたプリンタに対して送信する送信手段と、
    前記作成手段により作成されたプリントキューの中で削除候補を決定する決定手段と、
    前記決定手段により決定された削除候補のプリントキューを削除する削除手段とを備えることを特徴とする情報処理装置。
  2. 前記表示制御手段により表示されたプリンタの一覧から選択されたプリンタに対応するプリンタドライバのインストール処理及びプリントキューの作成の後、再び、前記表示制御手段により前記検索手段により見つかったプリンタの一覧からプリンタを選択しなおすことが可能であって、
    前記決定手段は、前記作成手段により作成された複数のプリントキューの中で削除候補を決定することを特徴とする請求項1に記載の情報処理装置。
  3. 前記決定手段は、前記デスプール手段により中間データを渡したプリンタドライバに対応するプリントキューを削除候補から除外することを特徴とする請求項1または2に記載の情報処理装置。
  4. 前記決定手段は、ユーザにより選択されたプリントキューを削除候補から除外することを特徴とする請求項1乃至3の何れか1項に記載の情報処理装置。
  5. 前記決定手段は、残すプリントキューの上限数を超えないように、前記作成手段により作成されたプリントキューの中で削除候補を決定することを特徴とする請求項1乃至3の何れか1項に記載の情報処理装置。
  6. 前記決定手段は、前記上限数を超えないように、利用された日時の情報が古いプリントキューを削除候補として決定することを特徴とする請求項5に記載の情報処理装置。
  7. 前記作成手段により作成されたプリントキューであることを識別するための識別子が設定され、
    前記決定手段は、前記識別子が設定されているプリントキューを削除候補として決定することを特徴とする請求項1乃至6の何れか1項に記載の情報処理装置。
  8. 前記削除手段が削除候補のプリントキューを削除するのは、前記送信手段により印刷ジョブの送信した場合、ユーザによる次回の印刷指示があった場合、ユーザから任意のタイミングで指定された場合、情報処理装置へユーザがログオンまたはログオフした場合、の何れかの場合であることを特徴とする請求項1乃至7の何れか1項に記載の情報処理装置。
  9. 前記削除手段は、削除候補のプリントキューを削除する際に、対応するプリンタドライバも削除することを特徴とする請求項1乃至8の何れか1項に記載の情報処理装置。
  10. 印刷ジョブを接続されたプリンタに送信する情報処理装置における印刷制御方法であって、
    ユーザからの指示に応じてアプリケーションから受け取ったデータを中間データとしてスプールするスプール工程と、
    前記ユーザからの指示後に、自装置に接続されているプリンタを検索する検索工程と、
    印刷処理を行うプリンタを選択させるために、前記検索工程で見つかったプリンタの一覧を表示するための表示制御工程と、
    前記表示制御工程で表示されたプリンタの一覧から選択されたプリンタに対応するプリンタドライバのインストール処理を制御するインストール制御工程と、
    前記インストール制御工程でインストールされたプリンタドライバに対応するプリントキューを作成する作成工程と、
    ユーザからの前記インストール制御工程でインストールされたプリンタドライバに対する印刷の指示を受けて、当該プリンタドライバに対して、前記スプール工程でスプールした中間データを渡すデスプール工程と、
    前記作成工程で作成されたプリントキューの中で削除候補を決定する決定工程と、
    前記決定工程で決定された削除候補のプリントキューを削除する削除工程とを備え、
    前記デスプール渡された中間データから、前記インストール制御工程でインストールされたプリンタドライバを用いて生成された印刷ジョブは、前記表示制御工程で表示されたプリンタの一覧から選択されたプリンタに対して送信されることを特徴とする印刷制御方法。
  11. 前記表示制御工程で表示されたプリンタの一覧から選択されたプリンタに対応するプリンタドライバのインストール処理及びプリントキューの作成の後、再び、前記表示制御工程において前記検索工程で見つかったプリンタの一覧からプリンタを選択しなおすことが可能であって、
    前記決定工程は、前記作成工程で作成された複数のプリントキューの中で削除候補を決定することを特徴とする請求項10に記載の印刷制御方法。
  12. 前記決定工程は、前記デスプール工程で中間データを渡したプリンタドライバに対応するプリントキューを削除候補から除外することを特徴とする請求項10または11に記載の印刷制御方法。
  13. 前記決定工程は、ユーザにより選択されたプリントキューを削除候補から除外することを特徴とする請求項10乃至12の何れか1項に記載の印刷制御方法。
  14. 前記決定工程は、残すプリントキューの上限数を超えないように、前記作成工程で作成されたプリントキューの中で削除候補を決定することを特徴とする請求項10乃至12の何れか1項に記載の印刷制御方法。
  15. 前記決定工程は、前記上限数を超えないように、利用された日時の情報が古いプリントキューを削除候補として決定することを特徴とする請求項14に記載の印刷制御方法。
  16. 前記作成工程で作成されたプリントキューであることを識別するための識別子が設定され、
    前記決定工程は、前記識別子が設定されているプリントキューを削除候補として決定することを特徴とする請求項10乃至15の何れか1項に記載の印刷制御方法。
  17. 前記削除工程で削除候補のプリントキューを削除されるのは、印刷ジョブが送信された場合、ユーザによる次回の印刷指示があった場合、ユーザから任意のタイミングで指定された場合、情報処理装置へユーザがログオンまたはログオフした場合、の何れかの場合であることを特徴とする請求項10乃至16の何れか1項に記載の印刷制御方法。
  18. 前記削除工程は、削除候補のプリントキューを削除する際に、対応するプリンタドライバも削除することを特徴とする請求項10乃至17の何れか1項に記載の印刷制御方法。
  19. 請求項10乃至18の何れか1項に記載の工程をコンピュータに実行させるためのプログラム。
JP2009224833A 2009-09-29 2009-09-29 情報処理装置及びその方法 Expired - Fee Related JP5460215B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009224833A JP5460215B2 (ja) 2009-09-29 2009-09-29 情報処理装置及びその方法
US12/881,085 US8587811B2 (en) 2009-09-29 2010-09-13 Information processing apparatus and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009224833A JP5460215B2 (ja) 2009-09-29 2009-09-29 情報処理装置及びその方法

Publications (2)

Publication Number Publication Date
JP2011076227A true JP2011076227A (ja) 2011-04-14
JP5460215B2 JP5460215B2 (ja) 2014-04-02

Family

ID=43780065

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009224833A Expired - Fee Related JP5460215B2 (ja) 2009-09-29 2009-09-29 情報処理装置及びその方法

Country Status (2)

Country Link
US (1) US8587811B2 (ja)
JP (1) JP5460215B2 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013041329A (ja) * 2011-08-11 2013-02-28 Ricoh Co Ltd 印刷制御装置、制御プログラム及び記録媒体
JP2013058007A (ja) * 2011-09-07 2013-03-28 Canon Inc データ処理装置、データ処理方法およびプログラム
JP2014106764A (ja) * 2012-11-28 2014-06-09 Star Micronics Co Ltd 印刷制御装置および印刷制御用プログラム
JP2015509252A (ja) * 2012-02-03 2015-03-26 アップル インコーポレイテッド 集中型の操作管理
JP2020087295A (ja) * 2018-11-30 2020-06-04 キヤノン株式会社 情報処理装置および制御方法およびプログラム
JP2020087296A (ja) * 2018-11-30 2020-06-04 キヤノン株式会社 情報処理装置および制御方法およびプログラム
JP7484356B2 (ja) 2020-04-07 2024-05-16 ブラザー工業株式会社 プログラム

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4981936B2 (ja) * 2010-02-26 2012-07-25 シャープ株式会社 インストーラ及びプリンタドライバのインストール方法
US20120092719A1 (en) * 2010-10-18 2012-04-19 Aventura Hq, Inc. Centralized print job routing in a distributed printing environment
JP5704947B2 (ja) * 2011-02-07 2015-04-22 キヤノン株式会社 情報処理装置、制御方法、及び、プログラム
JP6102323B2 (ja) * 2012-07-10 2017-03-29 株式会社リコー 印刷処理システム
US10949134B2 (en) * 2018-01-19 2021-03-16 Canon Kabushiki Kaisha Client apparatus, control method, and storage medium
GB2580506B (en) * 2018-11-30 2021-10-13 Canon Kk Information processing apparatus, control method, and program
JP7367431B2 (ja) * 2019-09-30 2023-10-24 ブラザー工業株式会社 プログラム及び情報処理装置
JP7367432B2 (ja) * 2019-09-30 2023-10-24 ブラザー工業株式会社 プログラム

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02120958A (ja) * 1988-10-31 1990-05-08 Fujitsu Ltd 出力待ち制御方法
JP2003150352A (ja) * 2001-06-28 2003-05-23 Canon Development Americas Inc プリントキューマネージャ
JP2004094794A (ja) * 2002-09-03 2004-03-25 Canon Inc 情報処理装置および方法、ならびにプログラム
JP2005011243A (ja) * 2003-06-20 2005-01-13 Canon Inc 出力制御装置、情報処理装置、情報処理システム、制御方法、記録媒体及びプログラム
JP2006134245A (ja) * 2004-11-09 2006-05-25 Kyocera Mita Corp プリンタドライバの自動インストールシステム及びプログラム
JP2007065894A (ja) * 2005-08-30 2007-03-15 Fuji Xerox Co Ltd プリンタドライバのインストール方法
JP2007128260A (ja) * 2005-11-02 2007-05-24 Canon Inc 情報処理装置及び情報処理方法及びそのプログラム
JP2011076226A (ja) * 2009-09-29 2011-04-14 Canon Inc 情報処理装置及びその方法
JP2011076225A (ja) * 2009-09-29 2011-04-14 Canon Inc 画像形成装置、該装置の制御方法、制御プログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5881213A (en) * 1994-10-05 1999-03-09 Microsoft Corporation Deferred printing
US7319532B2 (en) * 2001-06-28 2008-01-15 Canon Kabushiki Kaisha Printing control apparatus and printing control method capable of accurately printing embedded font
US7804607B2 (en) * 2001-09-14 2010-09-28 Canon Kabushiki Kaisha Group printer for multiple member printers
US20040008366A1 (en) * 2002-07-15 2004-01-15 Ferlitsch Andrew R. Print job requirement-based selection of best-fit printing device
JP2004213111A (ja) * 2002-12-26 2004-07-29 Canon Inc コンピュータプログラム
JP4266766B2 (ja) * 2003-10-10 2009-05-20 キヤノン株式会社 情報処理装置および情報処理方法
JP2005193648A (ja) * 2003-12-09 2005-07-21 Canon Inc 印刷制御装置、印刷制御方法およびコンピュータプログラム

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02120958A (ja) * 1988-10-31 1990-05-08 Fujitsu Ltd 出力待ち制御方法
JP2003150352A (ja) * 2001-06-28 2003-05-23 Canon Development Americas Inc プリントキューマネージャ
JP2004094794A (ja) * 2002-09-03 2004-03-25 Canon Inc 情報処理装置および方法、ならびにプログラム
JP2005011243A (ja) * 2003-06-20 2005-01-13 Canon Inc 出力制御装置、情報処理装置、情報処理システム、制御方法、記録媒体及びプログラム
JP2006134245A (ja) * 2004-11-09 2006-05-25 Kyocera Mita Corp プリンタドライバの自動インストールシステム及びプログラム
JP2007065894A (ja) * 2005-08-30 2007-03-15 Fuji Xerox Co Ltd プリンタドライバのインストール方法
JP2007128260A (ja) * 2005-11-02 2007-05-24 Canon Inc 情報処理装置及び情報処理方法及びそのプログラム
JP2011076226A (ja) * 2009-09-29 2011-04-14 Canon Inc 情報処理装置及びその方法
JP2011076225A (ja) * 2009-09-29 2011-04-14 Canon Inc 画像形成装置、該装置の制御方法、制御プログラム

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013041329A (ja) * 2011-08-11 2013-02-28 Ricoh Co Ltd 印刷制御装置、制御プログラム及び記録媒体
JP2013058007A (ja) * 2011-09-07 2013-03-28 Canon Inc データ処理装置、データ処理方法およびプログラム
US9158488B2 (en) 2011-09-07 2015-10-13 Canon Kabushiki Kaisha Data processing apparatus and data processing method for generating data to be edited using a print driver
JP2015509252A (ja) * 2012-02-03 2015-03-26 アップル インコーポレイテッド 集中型の操作管理
US10122759B2 (en) 2012-02-03 2018-11-06 Apple Inc. Centralized operation management
JP2014106764A (ja) * 2012-11-28 2014-06-09 Star Micronics Co Ltd 印刷制御装置および印刷制御用プログラム
JP2020087295A (ja) * 2018-11-30 2020-06-04 キヤノン株式会社 情報処理装置および制御方法およびプログラム
JP2020087296A (ja) * 2018-11-30 2020-06-04 キヤノン株式会社 情報処理装置および制御方法およびプログラム
JP7224878B2 (ja) 2018-11-30 2023-02-20 キヤノン株式会社 情報処理装置および制御方法およびプログラム
JP7271148B2 (ja) 2018-11-30 2023-05-11 キヤノン株式会社 情報処理装置および制御方法およびプログラム
JP7484356B2 (ja) 2020-04-07 2024-05-16 ブラザー工業株式会社 プログラム

Also Published As

Publication number Publication date
JP5460215B2 (ja) 2014-04-02
US20110075205A1 (en) 2011-03-31
US8587811B2 (en) 2013-11-19

Similar Documents

Publication Publication Date Title
JP5489619B2 (ja) 情報処理装置及びその方法
JP5460215B2 (ja) 情報処理装置及びその方法
JP5455527B2 (ja) 画像形成装置、該装置の制御方法、制御プログラム
JP5528196B2 (ja) 印刷制御装置、印刷制御方法およびプログラム
JP3720740B2 (ja) 分散印刷システム、分散印刷制御方法、記憶媒体、及びプログラム
JP2012216166A (ja) 情報処理装置、その方法、及びプログラム
JP4240690B2 (ja) 情報処理装置と情報処理方法、及び情報処理システム、並びに記録媒体
JP5677556B2 (ja) 情報処理装置及びその方法
JP5584555B2 (ja) 画像読取装置、その制御方法、及びプログラム
JP2017027277A (ja) 情報処理装置、方法およびプログラム
JP2011257881A (ja) 印刷制御装置及びその表示方法
JP2014174679A (ja) 情報処理装置及びその方法
JP2011164713A (ja) 情報処理装置、制御方法、及びプログラム
JP4886501B2 (ja) 印刷装置、印刷制御方法、及びプログラム
JP4011045B2 (ja) 印刷制御装置および印刷制御方法およびプログラムおよび記録媒体
JP5847855B2 (ja) 画像形成装置、該装置の制御方法、及び制御プログラム
JP7387342B2 (ja) アプリケーション、情報処理装置及び制御方法
JP2005044000A (ja) リモートアンインストールシステム、サーバ装置、クライアント装置、リモートアンインストール方法、プログラム、リモートインストールシステムおよびリモートインストール方法
JP5917240B2 (ja) 情報処理装置、情報処理方法及びプログラム
JP4395663B2 (ja) 印刷制御装置および印刷制御方法およびプログラムおよび記録媒体
JP2012059280A (ja) 印刷装置、データ処理装置、印刷制御方法、及びプログラム
JP2004021455A (ja) 情報処理装置およびジョブ処理方法
JP2004171601A (ja) 情報処理方法、及び、情報処理装置、及び、プログラム、並びに、記憶媒体
JP2006148310A (ja) 同報送信方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121001

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130926

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131001

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131202

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131217

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140114

LAPS Cancellation because of no payment of annual fees