JP2010092467A - 印刷ジョブ送信装置、印刷ジョブの管理方法、印刷システム、プログラムおよびその記録媒体 - Google Patents

印刷ジョブ送信装置、印刷ジョブの管理方法、印刷システム、プログラムおよびその記録媒体 Download PDF

Info

Publication number
JP2010092467A
JP2010092467A JP2009210386A JP2009210386A JP2010092467A JP 2010092467 A JP2010092467 A JP 2010092467A JP 2009210386 A JP2009210386 A JP 2009210386A JP 2009210386 A JP2009210386 A JP 2009210386A JP 2010092467 A JP2010092467 A JP 2010092467A
Authority
JP
Japan
Prior art keywords
print
print job
reserved
immediate
queue
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.)
Pending
Application number
JP2009210386A
Other languages
English (en)
Inventor
Andrew R Ferlitsch
ロドネイ ファーリッシュ アンドリュー
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.)
Sharp Corp
Original Assignee
Sharp Corp
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 Sharp Corp filed Critical Sharp Corp
Publication of JP2010092467A publication Critical patent/JP2010092467A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/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/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/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)

Abstract

【課題】プリンタのメモリ容量を増大させることなく即時印刷と予約印刷とを円滑に行う。
【解決手段】ネットワークを介してプリンタ112に接続されたコンピュータシステム(印刷ジョブ送信装置)101に、即時印刷ジョブを印刷する順に並べてスプールするためのデータ構造である即時印刷キュー150と、予約印刷ジョブを印刷する順に並べてスプールするためのデータ構造である予約印刷キュー152とを別々に設ける。
【選択図】図1

Description

本発明は、スプールした印刷ジョブをプリンタに送信する印刷ジョブ送信装置に関するものである。より具体的には、即時印刷ジョブのスプールと予約印刷ジョブのスプールとを行う印刷ジョブ送信装置に関するものである。
コンピュータ印刷環境では、ユーザ(あるいはアプリケーション)は、印刷出力のために特定のプリンタを選択し、さらに好みのオプションを指定することによって原稿の印刷を要求する。最近のコンピュータ環境では、要求された印刷ジョブ(所望のパラメータを有する)は印刷スプーラに転送される。印刷スプーラは、その印刷ジョブ要求を、同じコンピュータシステムによって作成された他の印刷ジョブや、そのプリンタに接続された他のコンピュータシステムによって作成された印刷ジョブと一緒に、順にスプール/キュー(印刷キュー)に格納する。一般に、スプーラは、印刷ジョブデータをファイルに保存し、印刷される印刷ジョブのキュー(待ち行列)を保持する。その後、スプール/キューに格納された印刷ジョブは、スプーラによって印刷キューから取り出されて印刷出力される。
一般に、ジョブのスプール処理には即時印刷と予約印刷の2つの方法がある。即時印刷はユーザが即時に(すなわち印刷ジョブがスプーラのキューのトップになり次第)印刷することを意図するものである。予約印刷は、印刷ジョブが所望の時間(指定時刻)に印刷されるようにスプーラに提供される。スプーラは予約印刷ジョブを印刷キュー内に保持しており(一般に、最先のものから最遅のものまで印刷時間の順に保持する)、その印刷予約時間になると印刷ジョブをキューから取り出して送信する。
ほとんどのコンピュータシステム(すなわち印刷スプーラ機能を有するオペレーティングシステム)において現在実用されているように、許容されるスプール処理の種類は、システム管理者がプリンタをインストールするときに定義される。すなわち、プリンタは、あるときには即時印刷のスプール処理のみを実行するようにユーザによって設定され、またあるときには予約印刷のスプール処理のみを行うように再設定される。
また、現在実用されている構成は、特定のプリンタに対して1種類のスプールオプションのみが定義されたものである。このため、特定のコンピュータ環境において、即時印刷と予約印刷との両方のスプールオプションを同時に使用することが望まれる場合には、1つのプリンタ(物理プリンタ)をコンピュータ上では仮想的に2つの別々のプリンタ(論理プリンタ)として定義して取り扱う必要がある。第1論理プリンタは即時印刷スプール処理を行うように設定され、第2論理プリンタは予約印刷スプール処理を行うように設定される。このような設定では、ユーザ(あるいはアプリケーションプログラム)は、原稿を印刷する前に、即時印刷スプール処理用に設定された第1論理プリンタに基づいて印刷するのか、予約印刷スプール処理用に設定された第2論理プリンタに基づいて印刷するのかを決定しなければならない。第1論理プリンタおよび第2論理プリンタのいずれに基づいて印刷する場合であっても、実際に印刷処理を行うのは共通のプリンタ(物理プリンタ)である。
なお、特許文献1には、ホストコンピュータから送られる印刷データを受信して受信バッファに格納し、時刻指定出力(予約印刷)が指定されている場合は指定時刻に出力し、時刻指定がされていない場合は即時出力する印刷制御装置が開示されている。
特開2000−137591号公報(平成12年5月16日公開)
しかしながら、上記のような、1つの物理プリンタに複数の論理プリンタを対応付ける「ワークアラウンド」方式には、システム管理者が1つの物理プリンタに対応して2つの論理プリンタを設定するという追加的な工程を実行しなければならないという問題がある。オペレーティングシステムおよびスプール処理システムが、複数の論理プリンタ用にスプールされた印刷ジョブの印刷を1つの物理プリンタで行うための調整を行うように構成されていない場合にはこの設定はさらに複雑になる。
また、1つのコンピュータシステム上に2つの論理プリンタを構築するには、そのシステムにおいて追加的なリソースを利用する必要がある。
さらに、おそらく最も重要な問題として、そのユーザ(あるいはアプリケーション)が、2つの論理プリンタのそれぞれの目的を理解し、印刷ジョブ毎に適切なスプール処理設定を選択する必要があるという問題がある。
また、上記特許文献1の技術では、予約印刷を行う場合には指定時刻になるまで印刷ジョブがプリンタのメモリに格納される。このため、予約印刷ジョブのデータ容量が大きい場合にはプリンタのメモリがこの予約印刷ジョブによって占有され、この予約印刷ジョブの印刷が完了するまで他の印刷ジョブを受け付けることができなくなってしまうという問題がある。また、この問題を解消するために、プリンタに備えられるメモリの容量を大きくすることが考えられるが、その場合にはプリンタの装置コストが増大してしまう。
本発明は、上記の問題点に鑑みてなされたものであり、その目的は、プリンタのメモリ容量を増大させることなく即時印刷と予約印刷とを円滑に行うことにある。
本発明の印刷ジョブ送信装置は、上記の課題を解決するために、印刷データとこの印刷データの印刷処理をプリンタに実行させるための命令とを含む印刷ジョブをスプールする印刷ジョブスプーラを備え、上記印刷ジョブスプーラがスプールした印刷ジョブを、ネットワークを介して接続された上記プリンタに送信する印刷ジョブ送信装置であって、上記印刷ジョブには、上記プリンタが利用可能になり次第印刷する即時印刷ジョブと、指定時刻に印刷する予約印刷ジョブとがあり、即時印刷ジョブであるか予約印刷ジョブであるかの選択指示を受け付けるスプールオプション取得部を備え、上記印刷ジョブスプーラは、即時印刷ジョブを印刷する順に並べて格納するためのデータ構造である即時印刷キューと、予約印刷ジョブを印刷する順に並べて格納するためのデータ構造である予約印刷キューとが別々に構築されており、上記スプールオプション取得部が受け付けた上記選択指示に応じて、即時印刷ジョブを上記即時印刷キューに格納し、予約印刷ジョブを上記予約印刷キューに格納し、上記プリンタが印刷ジョブを受信可能になる毎に、上記予約印刷キューに格納されている予約印刷ジョブのうち上記指定時刻に達した予約印刷ジョブおよび上記即時印刷キューに格納されている即時印刷キューを上記プリンタに順次送信することを特徴としている。
上記の構成によれば、印刷ジョブスプーラが、即時印刷ジョブを印刷する順に並べて格納するためのデータ構造である即時印刷キューと、予約印刷ジョブを印刷する順に並べて格納するためのデータ構造である予約印刷キューとが別々に構築されており、上記スプールオプション取得部が受け付けた上記選択指示に応じて、即時印刷ジョブを上記即時印刷キューに格納し、予約印刷ジョブを上記予約印刷キューに格納し、上記プリンタが印刷ジョブを受信可能になる毎に、上記予約印刷キューに格納されている予約印刷ジョブのうち上記指定時刻に達した予約印刷ジョブおよび上記即時印刷キューに格納されている即時印刷キューを上記プリンタに順次送信する。これにより、各印刷ジョブについて即時印刷ジョブとするか予約印刷ジョブとするかの選択指示を行うだけで、印刷ジョブ送信装置が即時印刷ジョブと予約印刷ジョブとを管理し、印刷可能な状態になった印刷ジョブをプリンタに順次送信する。したがって、即時印刷および予約印刷を行う場合のスプール処理を簡略化することができる。また、プリンタに送信される印刷ジョブは常に印刷可能な状態の印刷ジョブなので、プリンタに予約印刷ジョブが蓄積されることを防止できる。これにより、プリンタのメモリ容量を増大させることなく即時印刷と予約印刷とを円滑に行うことができる。
また、オペレーティングシステムと上記プリンタの動作を制御するプリンタドライバとを含むコンピュータシステムに備えられる印刷ジョブ送信装置であって、上記印刷ジョブスプーラは、即時印刷キューへの即時印刷ジョブの付加および即時印刷キューからの即時印刷ジョブの取り出しを管理する即時印刷キュー管理部と、予約印刷キューへの予約印刷ジョブの付加および予約印刷ジョブからの予約印刷ジョブの取り出しを管理する予約印刷キュー管理部とを備えており、上記即時印刷キュー管理部および上記予約印刷キュー管理部の両方が上記オペレーティングシステム内に組み込まれている構成としてもよい。
上記の構成によれば、オペレーティングシステムに備えられる印刷ジョブスプーラによって即時印刷キューと予約印刷キューとを管理する機能を持たせることにより、即時印刷および予約印刷を行う場合のスプール処理を簡略化するとともに、プリンタのメモリ容量を増大させることなく即時印刷と予約印刷とを円滑に行うことができる。
また、オペレーティングシステムと上記プリンタの動作を制御するプリンタドライバとを含むコンピュータシステムに備えられる印刷ジョブ送信装置であって、上記印刷ジョブスプーラは、即時印刷キューへの即時印刷ジョブの付加および即時印刷キューからの即時印刷ジョブの取り出しを管理する即時印刷キュー管理部と、予約印刷キューへの予約印刷ジョブの付加および予約印刷ジョブからの予約印刷ジョブの取り出しを管理する予約印刷キュー管理部とを備えており、上記予約印刷キュー管理部は上記プリンタドライバ内に組み込まれており、上記即時印刷キュー管理部は上記オペレーティングシステム内に組み込まれている構成としてもよい。
また、上記予約印刷キュー管理部は、上記予約印刷キューにスプールされた予約印刷ジョブの中に上記指定時刻に達した予約印刷ジョブがあるか否かを監視しており、上記指定時刻に達した予約印刷ジョブがある場合に、当該予約印刷ジョブを上記予約印刷キューから取り出して上記即時印刷キュー管理部に引渡し、上記即時印刷キュー管理部は、上記予約印刷キュー管理部から受け取った上記予約印刷ジョブを即時印刷ジョブとして上記即時印刷キューに加える構成としてもよい。
上記の構成によれば、プリンタドライバに予約印刷キュー管理部を設けることにより、即時印刷および予約印刷を行う場合のスプール処理を簡略化するとともに、プリンタのメモリ容量を増大させることなく即時印刷と予約印刷とを円滑に行うことができる。また、即時印刷キュー管理部として、従来のオペレーティングシステムに備えられる標準システムスプーラをそのまま適用することができる。
また、上記即時印刷キュー管理部は、上記予約印刷キュー管理部から受け取った上記予約印刷ジョブを上記即時印刷キューにおける最先に印刷される位置に加え、上記プリンタが利用可能になり次第、当該予約印刷ジョブを上記プリンタに送信し、上記予約印刷キュー管理部は、上記指定時刻に達した予約印刷ジョブが上記予約印刷キュー内に存在しない場合にはその旨を上記即時印刷キュー管理部に通知し、上記即時印刷キュー管理部は、上記通知を受けた場合に、上記プリンタが利用可能になり次第、上記即時印刷キューにおける最先に印刷される位置に格納されている即時印刷ジョブを上記プリンタに送信する構成としてもよい。
上記の構成によれば、指定時刻に達した予約印刷ジョブを優先的に印刷させることができる。
また、初期状態では上記予約印刷キューは生成されておらず、上記印刷ジョブスプーラに予約印刷ジョブが入力されたときに上記予約印刷キュー管理部が上記予約印刷キューを生成する構成としてもよい。
また、上記印刷ジョブスプーラは、上記予約印刷キューから上記予約印刷ジョブを取り出した後、この予約印刷キューに他の予約印刷ジョブがスプールされていない場合に、この予約印刷キューを削除する構成としてもよい。
上記の構成によれば、予約印刷ジョブが存在しない場合には予約印刷キューが生成されないので、予約印刷キューが生成される場合に用いられる印刷ジョブ送信装置のリソースを開放して有効利用することができる。
また、ネットワークを介して複数のプリンタに接続され、上記印刷ジョブスプーラは、プリンタ毎に上記即時印刷キューと上記予約印刷キューとを生成する構成としてもよい。
上記の構成によれば、印刷ジョブ送信装置がネットワークを介して複数のプリンタに接続されている場合であっても、即時印刷ジョブおよび予約印刷ジョブをプリンタ毎に適切に管理することができる。
本発明の印刷ジョブの管理方法は、上記の課題を解決するために、印刷データとこの印刷データの印刷処理をプリンタに実行させるための命令とを含む印刷ジョブをスプールする印刷ジョブスプーラを備え、上記印刷ジョブスプーラがスプールした印刷ジョブを、ネットワークを介して接続された上記プリンタに送信する印刷ジョブ送信装置における上記印刷ジョブの管理方法であって、上記印刷ジョブには、上記プリンタが利用可能になり次第印刷する即時印刷ジョブと、指定時刻に印刷する予約印刷ジョブとがあり、即時印刷ジョブを印刷する順に並べて格納するためのデータ構造である即時印刷キューと、予約印刷ジョブを印刷する順に並べて格納するためのデータ構造である予約印刷キューとを別々に構築する工程と、即時印刷ジョブであるか予約印刷ジョブであるかの選択指示を受け付ける工程と、上記選択指示に応じて、印刷ジョブが即時印刷ジョブである場合には当該印刷ジョブを即時印刷キューに格納し、印刷ジョブが予約印刷ジョブである場合には当該印刷ジョブを上記予約印刷キューに格納する工程と、上記プリンタが印刷ジョブを受信可能になる毎に、上記予約印刷キューに格納されている予約印刷ジョブのうち上記指定時刻に達した予約印刷ジョブおよび上記即時印刷キューに格納されている即時印刷キューを上記プリンタに順次送信する工程とを含むことを特徴としている。
上記の方法によれば、即時印刷ジョブを印刷する順に並べて格納するためのデータ構造である即時印刷キューと、予約印刷ジョブを印刷する順に並べて格納するためのデータ構造である予約印刷キューとを別々に構築しておき、即時印刷ジョブであるか予約印刷ジョブであるかの選択指示に応じて、印刷ジョブが即時印刷ジョブである場合には当該印刷ジョブを即時印刷キューに格納し、印刷ジョブが予約印刷ジョブである場合には当該印刷ジョブを上記予約印刷キューに格納する。そして、上記プリンタが印刷ジョブを受信可能になる毎に、上記予約印刷キューに格納されている予約印刷ジョブのうち上記指定時刻に達した予約印刷ジョブおよび上記即時印刷キューに格納されている即時印刷キューを上記プリンタに順次送信する。これにより、各印刷ジョブについて即時印刷ジョブとするか予約印刷ジョブとするかの選択指示を行うだけで、即時印刷ジョブと予約印刷ジョブとを管理し、印刷可能な状態になった印刷ジョブをプリンタに順次送信することができる。したがって、即時印刷および予約印刷を行う場合のスプール処理を簡略化することができる。また、プリンタには送信される印刷ジョブは常に印刷可能な状態の印刷ジョブなので、プリンタに予約印刷ジョブが蓄積されることを防止できる。これにより、プリンタのメモリ容量を増大させることなく即時印刷と予約印刷とを円滑に行うことができる。
本発明の印刷システムは、上記したいずれかの印刷ジョブ送信装置と、上記印刷ジョブ送信装置から受信した印刷ジョブに応じて印刷処理を行うプリンタとを備えている。
上記の構成によれば、即時印刷および予約印刷を行う場合のスプール処理を簡略化するとともに、プリンタのメモリ容量を増大させることなく即時印刷と予約印刷とを円滑に行うことができる。
なお、上記印刷ジョブ送信装置は、コンピュータによって実現してもよく、この場合には、コンピュータを上記印刷ジョブスプーラとして動作させることにより、上記印刷ジョブ送信装置をコンピュータにて実現させるプログラム、およびそれを記録したコンピュータ読み取り可能な記録媒体も本発明の範疇に含まれる。
以上のように、本発明の印刷ジョブ送信装置は、上記印刷ジョブスプーラは、即時印刷ジョブを印刷する順に並べて格納するためのデータ構造である即時印刷キューと、予約印刷ジョブを印刷する順に並べて格納するためのデータ構造である予約印刷キューとが別々に構築されており、上記スプールオプション取得部が受け付けた上記選択指示に応じて、即時印刷ジョブを上記即時印刷キューに格納し、予約印刷ジョブを上記予約印刷キューに格納し、上記プリンタが印刷ジョブを受信可能になる毎に、上記予約印刷キューに格納されている予約印刷ジョブのうち上記指定時刻に達した予約印刷ジョブおよび上記即時印刷キューに格納されている即時印刷キューを上記プリンタに順次送信する。
また、本発明の印刷ジョブの管理方法は、即時印刷ジョブを印刷する順に並べて格納するためのデータ構造である即時印刷キューと、予約印刷ジョブを印刷する順に並べて格納するためのデータ構造である予約印刷キューとを別々に構築する工程と、即時印刷ジョブであるか予約印刷ジョブであるかの選択指示を受け付ける工程と、上記選択指示に応じて、印刷ジョブが即時印刷ジョブである場合には当該印刷ジョブを即時印刷キューに格納し、印刷ジョブが予約印刷ジョブである場合には当該印刷ジョブを上記予約印刷キューに格納する工程と、上記プリンタが印刷ジョブを受信可能になる毎に、上記予約印刷キューに格納されている予約印刷ジョブのうち上記指定時刻に達した予約印刷ジョブおよび上記即時印刷キューに格納されている即時印刷キューを上記プリンタに順次送信する工程とを含む。
それゆえ、即時印刷および予約印刷を行う場合のスプール処理を簡略化することができる。また、プリンタのメモリ容量を増大させることなく即時印刷と予約印刷とを円滑に行うことができる。
本発明の一実施形態にかかる印刷システムの概略構成を示すブロック図である。 本発明の一実施形態にかかる印刷システムの変形例を示すブロック図である。 図1に示した印刷システムにおける処理の流れを示すフローチャートである。 図3におけるステップ308の処理の具体例を示すフローチャートである。 図3におけるステップ324の処理の具体例を示すフローチャートである。 図2に示した印刷システムにおける処理の流れを示すフローチャートである。 図1および図2に示した印刷システムを、ソフトウェアを用いて実現する場合の構成例を示すブロック図である。
図1は、本実施形態にかかる印刷システム100の概略構成を示すブロック図である。
なお、従来の技術では、上述したように、(1)システム管理者が、1つの物理プリンタに異なるスプール/キュー処理オプションのための2つの(あるいはそれ以上の)論理プリンタを定義する必要があり、(2)印刷ジョブを作製するユーザが、管理者によって定義された論理プリンタの中から所望するスプールオプションを利用するための論理プリンタを選択する必要があった。これに対して、本実施形態にかかる印刷システム100では、1つのプリンタに複数のキューを関連付けて管理することにより、上記(1)および(2)の処理を省略できるようになっている。
図1に示すように、印刷システム100は、印刷ジョブ生成部102、印刷ジョブオプション取得部103、スプールオプション取得部104、プリンタドライバ107、印刷ジョブスプーラ110、即時印刷キュー(即時印刷キュー記憶部)150、および予約印刷キュー(予約印刷キュー記憶部)152を備えたコンピュータシステム101(印刷ジョブ送信装置。例えばパーソナルコンピュータ、ワークステーションなど。)と、このコンピュータシステム101に対してネットワークを介して通信可能に接続されたプリンタ112とを備えている。なお、印刷ジョブスプーラ110はコンピュータシステム101のオペレーションシステム内に備えられる。また、印刷ジョブ生成部102は、例えばコンピュータシステム101において利用されるアプリケーションシステムの1つである。また、プリンタドライバ107は、プリンタ112に印刷ジョブに応じた印刷処理を実行させるためのものであり、印刷ジョブインターフェース106とスプールインターフェース108とを備えている。
印刷ジョブ生成部102は、印刷ジョブを生成してプリンタドライバ107に出力する。なお、印刷ジョブとは、印刷するデータと当該データの印刷処理をプリンタに実行させるための命令とを含むデータである。また、本実施形態では、印刷ジョブ生成部102が印刷ジョブを生成するものとしているが、これに限らず、例えば、コンピュータシステム101が各種記録媒体に記録されている印刷ジョブを読み出すようにしてもよく、コンピュータシステム101がネットワークを介して印刷ジョブを取得する構成としてもよい。
印刷ジョブオプション取得部103は、ユーザ(あるいはアプリケーション)から印刷ジョブに関する印刷オプション(例えば、両面印刷か否か、N−up(割付印刷)か否か、印刷枚数などの出力パラメータ)を受け付けて印刷ジョブインターフェース106に伝達する。
スプールオプション取得部104は、即時印刷を行うかあるいは予約印刷を行うか、および予約印刷を行う場合には印刷処理を行う時刻(指定時刻)についてのユーザ(あるいはアプリケーション)からの選択指示(スプールオプション)を受け付けてスプールインターフェース108に伝達する。
なお、印刷オプションおよびスプールオプションを、例えば、グラフィカル・ユーザ・インターフェース(GUI)を使用してユーザが入力するようにしてもよい。この場合、GUIは、ユーザが印刷ジョブに対して印刷ジョブオプションおよびスプールオプションを指定することを可能にするとともに、印刷処理を実行するプリンタを選択できるように構成される。また、周知のダイアログ・ボックスまたは他のグラフィカル/テクスチャ・ユーザ・インターフェイス技術を用いて印刷オプションおよびスプールオプションを入力するようにしてもよい。さらに、印刷オプションおよびスプールオプションの入力を可能にするために、印刷ジョブインターフェース106およびスプールインターフェース108にアクセスすることのできるアプリケーション・プログラム・インターフェイス(API)を利用してもよい。また、印刷オプションおよびスプールオプションを印刷ジョブと関連付けるために、上記した以外の設計選択をなし得ることは当業者にとって容易に明らかである。また、印刷ジョブ生成部102が印刷オプションおよび/またはスプールオプションを反映させた印刷ジョブを生成してプリンタドライバ107に出力するようにしてもよい。
印刷ジョブインターフェース106は、印刷ジョブ生成部102から入力された印刷ジョブに、印刷ジョブオプション取得部103から入力された印刷オプションを実行させるための情報を付加してスプールインターフェース108に伝達する。
スプールインターフェース108は、印刷ジョブインターフェース106から伝達された印刷ジョブにスプールオプション取得部104から入力されたスプールオプションを付加して印刷ジョブスプーラ110に出力する。
印刷ジョブスプーラ110は、即時印刷キュー管理部121と予約印刷キュー管理部122とを備えており、印刷ジョブに関連付けられているスプールオプションに基づいて、印刷ジョブを格納(スプール)するキューを選択し、選択したキューに印刷ジョブを格納する。具体的には、スプールオプションによって即時印刷が指定されている場合には即時印刷キュー管理部121がその印刷ジョブを即時印刷キュー150に格納させ、予約印刷が指定されている場合には予約印刷キュー管理部122がその印刷ジョブを予約印刷キュー152に格納させる。なお、即時印刷キューとは即時印刷を行う印刷ジョブ(即時印刷ジョブ)を印刷する順に並べて格納するためのデータ構造であり、予約印刷キューとは予約印刷を行う印刷ジョブ(予約印刷ジョブ)を印刷する順に並べて格納するためのデータ構造である。
また、印刷ジョブスプーラ110(即時印刷キュー管理部121および/または予約印刷キュー管理部122)は、プリンタ112が次の印刷ジョブを受信可能になることを監視する処理をバックグラウンド処理で実行する。そして、プリンタ112が次の印刷ジョブを受信できる状態になると、印刷ジョブスプーラ110は、即時印刷キュー150および予約印刷キュー152に格納された各印刷ジョブのスプールオプションに基づいて、次の印刷ジョブを取り出す。例えば、まず、予約印刷キュー管理部122が予約印刷キュー152に格納された印刷ジョブの中に印刷予約時間に達した印刷ジョブ(印刷可能な状態である印刷ジョブ)が存在するか否かを判断し、存在する場合、その印刷ジョブを予約印刷キュー152から取り出してプリンタ112に送信する。また、予約印刷キュー152に現時点で印刷可能な状態の印刷ジョブが存在しない場合、予約印刷キュー管理部122がその旨を即時印刷キュー管理部121に通知し、即時印刷キュー管理部121が即時印刷キュー150に印刷ジョブが格納されているか否かを確認し、格納されている場合には即時印刷キュー150から次の印刷ジョブを取り出してプリンタ112に送信する。これにより、プリンタ112は印刷ジョブスプーラ110から送信された印刷ジョブに含まれる印刷データを印刷媒体上へ印刷する。
なお、初期設定では予約印刷キュー152を作成しておかず、印刷ジョブスプーラ110が予約印刷ジョブを受け付けたときに予約印刷キュー152を作成するようにしてもよい。これにより、予約印刷ジョブが印刷ジョブスプーラ110に入力されるまで、システムのリソース(メモリ)を開放してそのリソースを有効利用することができる。
なお、本実施形態では、印刷システム100におけるプリンタ112以外の各要素がコンピュータシステム101に備えられているものとしたが、これに限るものではない。例えば、複数のコンピュータシステム(パーソナルコンピュータ、ワークステーションなど)を、ネットワークを介して共通の印刷ジョブスプーラ110に接続し、これら各コンピュータシステムにおいて印刷ジョブスプーラ110を操作できるようにしてもよい。この場合、印刷ジョブ生成部102、印刷ジョブオプション取得部103、およびスプールオプション取得部104は、プリンタドライバ107を操作可能である単一のコンピュータシステム内で操作可能であってもよい。あるいは、例えば、図1に示す全ての要素(プリンタ112以外の要素)を、スタンドアロンアプリケーション環境またはネットワークコンピュータ環境において操作可能な1つのコンピュータシステムに組み込んでもよい。あるいは、例えば、図1に示す全ての要素(プリンタ112以外の要素)を、クラウドコンピューティングサービスによって実現してもよく、サース(Software as a Service; SaaS)のようにインターネットを介してアクセスされるソフトウェアで実現してもよい。
なお、本発明は図1に示した印刷システム100の構成に限定されるものではなく、必要に応じて各種要素を追加したり、同等の要素に置換したりしてもよいことは、当業者にとって自明であろう。本明細書では、説明を簡単かつ簡潔にするために、そのような追加要素および同等の要素についての説明は省略する。
図2は、本実施形態にかかる印刷システムの変形例である印刷システム200の概略構成を示すブロック図である。なお、説明の便宜上、図1に示した印刷システム100と同様の機能を有する部材(要素)には同じ符号を付し、その説明を省略する。
図1の印刷システム100と異なる点は、プリンタドライバ107に代えてプリンタドライバ207が備えられている点である。プリンタドライバ207は、図1のプリンタドライバ107における印刷ジョブインターフェース106に代えて印刷ジョブインターフェース206および内部スプーラ209を備えており、印刷ジョブスプーラ110に代えてシステム印刷ジョブスプーラ210を備えている。
なお、システム印刷ジョブスプーラ210はコンピュータシステム201(印刷ジョブ送信装置。例えばパーソナルコンピュータ、ワークステーションなど。)のオペレーションシステム内に備えられる。また、印刷ジョブ生成部102は、例えばコンピュータシステム201において利用されるアプリケーションシステムの1つである。
システム印刷ジョブスプーラ(即時印刷キュー管理部)210は、即時印刷ジョブを即時印刷キュー150に格納する処理を行う。このシステム印刷ジョブスプーラ210は、例えば、マイクロソフト・ウィンドウズ(登録商標)、ユニックス(登録商標)、およびリナックス(登録商標)などの市販のオペレーティングシステムに採用されているような標準的な印刷ジョブスプーラであってもよい。このような標準的なシステム印刷ジョブスプーラ210は、上述したように、特定のプリンタ112に対して1種類のスプールオプションを管理する能力を持つ。
内部スプーラ(予約印刷キュー管理部)209は、印刷ジョブインターフェース206と関連付けられており、予約印刷ジョブを予約印刷キュー152に格納する。
印刷ジョブ生成部102から印刷ジョブインターフェース206に印刷ジョブが入力され、印刷ジョブオプション取得部103から印刷ジョブインターフェース206に印刷ジョブオプションが入力されると、印刷ジョブインターフェース206は、スプールインターフェース108と情報をやり取りして、スプールオプション取得部104が受け付けたスプールオプションが即時印刷であるか予約印刷であるかを判断する。そして、即時印刷である場合、印刷ジョブオプションおよびスプールオプションを付加した印刷ジョブをスプールインターフェースからシステム印刷ジョブスプーラ210に出力する。これにより、システム印刷ジョブスプーラ210は、即時印刷ジョブを即時印刷キュー150に格納する。一方、予約印刷である場合、印刷ジョブインターフェース206は印刷ジョブオプションおよびスプールオプションを付加した印刷ジョブを内部スプーラ209に転送し、内部スプーラ209はこの印刷ジョブを予約印刷キュー152に格納する。
内部スプーラ209とシステム印刷ジョブスプーラ210とは、その後協調して機能し、予約印刷キュー152および即時印刷キュー150に格納された各印刷ジョブを適切なタイミングで印刷させる。具体的には、内部スプーラ209は、予約印刷キュー152に格納した印刷ジョブについて、当該印刷ジョブの予約時刻になって当該印刷ジョブが印刷可能な状態になることを監視する。そして、予約印刷キュー152に格納された印刷ジョブが印刷可能な状態になったことを検出すると、内部スプーラ209は、その印刷ジョブを予約印刷キュー152から取り出し、印刷可能な状態の印刷ジョブ(即時印刷ジョブ)としてシステム印刷ジョブスプーラ210に転送する。すなわち、内部スプーラ209は、予約印刷キュー152に格納した予約印刷ジョブのうち、予約時刻になった予約印刷ジョブをシステム印刷ジョブスプーラ210に転送する。その後、システム印刷ジョブスプーラ210は、内部スプーラ209から受信した印刷ジョブ(予約時刻に達した予約印刷ジョブ)を即時印刷ジョブとして即時印刷キュー150における最上位(最先に印刷される位置)に加える。なお、ここではシステム印刷ジョブスプーラ210が内部スプーラ209から受信した印刷ジョブを即時印刷キュー150の最上位に加えるものとしたが、これに限らず、即時印刷キュー150に格納されている他の印刷ジョブとの優先順位は任意の方法で決定するようにすればよい。その後、システム印刷ジョブスプーラ210は、プリンタ112をモニターし、プリンタ112が次の印刷ジョブを受信できる状態になると即時印刷キュー150から次の印刷ジョブを取り出してプリンタ112へ転送する。
なお、図1に示した印刷システム100の場合と同様、初期設定では予約印刷キュー152を作成しておかず、内部スプーラ209が予約印刷ジョブを受け付けたときに予約印刷キュー152を作成するようにしてもよい。これにより、予約印刷ジョブが印刷ジョブスプーラ110に入力されるまで、システムのリソース(メモリ使用量、およびアプリケーションの動作負荷)を節約できる。このようなシステムのリソースの節約は、予約印刷の頻度が低い場合に特に効果が大きい。例えば、予約印刷を行うシステムでは、印刷ジョブを適切なタイミングで取り出すことができるように、予約印刷キュー152をモニタリングする処理をバックグラウンド処理として行うスレッドが生じる。このため、当該スレッドの作成および実行により、コンピュータシステム上のリソースが消費される。したがって、予約印刷ジョブが不定期にしかない等、予約印刷キュー152がほとんど使用されない場合、内部スプーラ209が予約印刷ジョブを受信した場合にのみ予約印刷キュー152および対応するスレッド(モニタリングスレッド)を生成するようにすることで、コンピュータリソースを節約できる。また、予約印刷キュー152内の予約印刷ジョブを全てシステム印刷ジョブスプーラ210に転送した後、内部スプーラ209が予約印刷キュー152を削除するようにしてもよい。これにより、システムのリソースを開放して有効利用できる。なお、本発明は図2に示した印刷システム200の構成に限定されるものではなく、必要に応じて各種要素を追加したり、同等の要素に置換したりしてもよいことは、当業者にとって自明であろう。本明細書では、説明を簡単かつ簡潔にするために、そのような追加要素および同等の要素についての説明は省略する。
図3は、図1に示した印刷システム100における印刷ジョブの生成工程および印刷ジョブのデスプール工程についての処理の流れを示すフローチャートである。
はじめに、印刷ジョブの生成工程について説明する。まず、印刷ジョブスプーラ110がスプール処理の初期化(キューの作成)を行う(ステップ300)。例えば、即時印刷キュー150および予約印刷キュー152を作成(構築)する。なお、特定のスプールオプションについての最初の印刷ジョブが印刷ジョブスプーラ110に入力されるまで当該スプールオプションに対応するキューの作成を延期してもよい。例えば、上述したように、予約印刷キュー152については、予約印刷ジョブが印刷ジョブスプーラ110に入力されるまで生成しないようにしてもよい。
その後、印刷ジョブ生成部102が印刷ジョブを生成する(ステップ302)。例えば、印刷ジョブは、ユーザが各種アプリケーションプログラムを用いて作成してもよい。アプリケーションプログラムは、例えば、特定の書類の印刷を要求し、特定の印刷特性を任意に関連付けた印刷ジョブを生成する。
その後、印刷ジョブインターフェース106が、印刷ジョブ生成部102において生成された印刷ジョブを、特定のプリンタ112に関連付ける(ステップ304)。なお、印刷ジョブインターフェース106は、必要に応じて印刷ジョブオプション取得部103が取得した印刷ジョブオプションを印刷ジョブに付加する。
その後、スプールインターフェース108が、印刷ジョブインターフェース106によってプリンタ112に関連付けられた印刷ジョブにスプールオプション取得部104が取得したスプールオプションを付加する(ステップ306)。上記スプールオプションとは、即時印刷を行うか予約印刷を行うかを指定するものであり、予約印刷を行う場合には予約時間に関する情報を含む。
その後、印刷ジョブスプーラ110が、印刷ジョブオプションおよびスプールオプションを付加された印刷ジョブに基づいて印刷処理を行うプリンタおよび印刷ジョブを格納するキューを選択する(ステップ308)。例えば、印刷ジョブのスプールオプションが即時印刷を示している場合には即時印刷キュー150が選択され、印刷ジョブのスプールオプションが予約印刷を示している場合には予約印刷キュー152が選択される。
その後、必要に応じて印刷ジョブを格納するためのキューが生成される(ステップ310)。例えば、印刷ジョブに対応付けられたスプールオプションが予約印刷を示している場合であって、予約印刷キュー152が未生成の場合、印刷ジョブスプーラ110は予約印刷キュー152を生成する。
なお、それぞれ特定の予約時刻に対応付けられた複数の予約印刷キューを生成するようにしてもよい。この場合、同じ予約時刻に設定された複数の予約印刷ジョブが生成された場合、これら各予約印刷ジョブは同じ予約時刻に対応する予約印刷キューに加えられる。他の予約時刻に関連付けられた他の予約印刷ジョブは、その特定の予約時刻に関連付けられた予約印刷キューに加えられる。これは、例えば、最初の標準時間(例えば夜の12時)に予約時刻を設定した複数の印刷ジョブ、および他の標準時間(例えば昼の12時)に予約時刻を設定した他の一群の印刷ジョブを生成するような環境において有用である。
その後、印刷ジョブスプーラ110が、選択したキューに印刷ジョブを格納する(ステップ312)。
次に、印刷ジョブのデスプール工程について説明する。印刷ジョブスプーラ110は、プリンタ112が次の印刷ジョブを受信可能になるのを監視する処理をバックグラウンド処理として実行している。そして、プリンタ112が次の印刷ジョブを受信可能になったことを検出すると、印刷ジョブスプーラ110は、プリンタ112に対応する各キューの中に印刷ジョブが格納されているものがあるか否かを判断する(ステップ320)。そして、いずれのキューにも印刷ジョブが格納されていない場合、印刷ジョブスプーラ110は、上記のバックグラウンド処理を継続する。
一方、印刷ジョブが格納されている場合、印刷ジョブスプーラ110は、キューに格納されている各印刷ジョブのスプールオプションに基づいてプリンタ112に送信すべき次の印刷ジョブを選択して取り出し(デスプールし)、プリンタ112に送信する(ステップ322)。例えば、予約印刷キュー152に格納されている印刷ジョブが予約時刻になったとき、この印刷ジョブは次の印刷ジョブとして予約印刷キュー152から取り出されてプリンタ112に送信される。また、予約印刷キュー152に格納されている印刷ジョブの中に予約時刻になって印刷可能な状態になった印刷ジョブが存在しない場合、印刷ジョブスプーラ110は、即時印刷キュー150に格納されている印刷ジョブの中から最先に印刷される位置に格納された印刷ジョブを取り出し、プリンタ112に送信する。
その後、印刷ジョブスプーラ110は、印刷待ちの印刷ジョブ(印刷可能な状態のジョブ)がいずれかのキューに残っているか否かを判断する(ステップ324)。そして、残っていない場合、上記のバックグラウンド処理に戻ってステップ320以降の処理を繰り返し行う。
一方、ステップ324において印刷待ちの印刷ジョブが残っていると判断した場合、印刷ジョブスプーラ110は、印刷待ちの印刷ジョブを取り出してプリンタ112に送信し(ステップ326)、上記のバックグラウンド処理に戻ってステップ320以降の処理を繰り返し行う。なお、予約印刷キュー152および即時印刷キュー150における印刷可能な状態の印刷ジョブを全てプリンタ112に出力し終えるまで、ステップ324およびステップ326の処理を繰り返すようにしてもよい。
なお、図3に関する上記の説明では、即時印刷キュー150および予約印刷キュー152を印刷ジョブスプーラ110によって管理するものとして説明したが、これに限らず、例えば図2に示した印刷システム200のようにシステム印刷ジョブスプーラ210とプリンタドライバ207内に備えられる内部スプーラ209とに上記各キューの管理を割り当ててもよい。
図4は、図3におけるステップ308の処理、すなわち印刷ジョブに関連付けられたスプールオプションに基づいて複数のキューの中から適切なキューを選択する処理の具体例を示すフローチャートである。
まず、印刷ジョブスプーラ110は、受信した印刷ジョブに関連付けられたスプールオプションを検出し、当該スプールオプションが即時印刷を指定するものであるか、予約印刷を指定するものであるかを判断する(ステップ400)。そして、印刷ジョブスプーラ110は、即時印刷であると判断した場合には即時印刷キュー150を選択し(ステップ402)、予約印刷であると判断した場合には予約印刷キュー152を選択する(ステップ404)。その後、選択したキュー(即時印刷キュー150または予約印刷キュー152)に基づいて図3のステップ310以降の処理が行われる。
図5は、図3におけるステップ324の処理、すなわちプリンタ112に対応する各キューの中から次にプリンタ112に送信する印刷ジョブを取り出す処理の具体例を示すフローチャートである。
印刷ジョブスプーラ110は、まず、予約印刷キュー152に予約時間に達して現時点で印刷可能な印刷ジョブが格納されているか否かを判断する(ステップ500)。格納されている場合、印刷ジョブスプーラ110は、予約印刷キュー152から当該印刷ジョブを取り出し(ステップ502)、図3のステップ324において印刷可能なジョブが存在する場合の処理、すなわちステップ326の処理を行う(ステップ510)。一方、ステップ500において、予約印刷キュー152に現時点で印刷可能な状態の印刷ジョブ(予約時間に達した印刷ジョブ)が格納されていないと判断した場合、印刷ジョブスプーラ110は、即時印刷キュー150に印刷ジョブが格納されているか否かを判断する(ステップ504)。そして、格納されていると判断した場合、印刷ジョブスプーラ110は、即時印刷キュー150から印刷ジョブを取り出し(ステップ506)、図3のステップ326の処理を行う(ステップ510)。また、ステップ504において即時印刷キュー150に印刷ジョブが格納されていないと判断した場合、印刷ジョブスプーラ110は、図3のステップ324において印刷可能なジョブが存在しなかった場合の処理、すなわちステップ320の処理に戻る。
図6は、図2に示した印刷システム200における印刷ジョブの生成工程および印刷ジョブのデスプール工程についての処理の流れを示すフローチャートである。図6に示す方法は、図3に示す方法に類似しているが、図3では即時印刷キュー150および予約印刷キュー152を単一の印刷ジョブスプーラ110で管理していたのに対して、図6では予約印刷キュー152についてはプリンタドライバ207備えられた内部スプーラ209で管理し、即時印刷キュー150についてはコンピュータシステム201のシステム印刷ジョブスプーラ210で管理する点が異なっている。
図6に示す方法は、システム印刷ジョブスプーラ210として従来のコンピュータシステムに備えられている標準システムスプーラを用い、プリンタドライバ207内に設けた内部スプーラ209によって予約印刷キュー152を管理するようにするだけで実現できる。すなわち、システム印刷ジョブスプーラ210として、従来のコンピュータシステムに備えられている標準システムスプーラを改良することなくそのまま用いることができる。
はじめに、印刷ジョブの生成工程について説明する。まず、内部スプーラ209がプリンタドライバ207内に予約印刷キュー152を生成し、システム印刷ジョブスプーラ210がシステムスプーラ内(オペレーティングシステム内)に即時印刷キュー150を生成(構築)する(ステップ600)。なお、ステップ600の処理は、システム印刷ジョブスプーラ(スプール処理システム)210およびプリンタドライバ207の初期化処理の一部として実行してもよい。また、初期状態では予約印刷キュー152を作成せず、予約印刷ジョブがプリンタドライバ207に入力されたときに必要に応じて予約印刷キュー152を生成するようにしてもよい。
その後、印刷ジョブ生成部102が印刷ジョブを生成する(ステップ602)。例えば、印刷ジョブは、ユーザが各種アプリケーションプログラムを用いて作成してもよい。アプリケーションプログラムは、例えば、特定の書類の印刷を要求し、特定の印刷特性を任意に関連付けた印刷ジョブを生成する。
その後、印刷ジョブインターフェース206が、印刷ジョブ生成部102において生成された印刷ジョブを、特定のプリンタ112に関連付ける(ステップ604)。また、印刷ジョブインターフェース206が、必要に応じて印刷ジョブオプション取得部103が取得した印刷ジョブオプションを印刷ジョブに付加する。なお、ステップ604の処理は、例えば、従来から公知のユーザーインターフェース技術やアプリケーションプログラムインターフェイス技術を用いて行うことができる。
その後、スプールインターフェース108が、印刷ジョブインターフェース206によってプリンタ112に関連付けられ、印刷ジョブオプションを付加された印刷ジョブにスプールオプション取得部104が取得したスプールオプションを付加する(ステップ606)。上記スプールオプションとは、例えば、即時印刷を行うか予約印刷を行うかを指定し、予約印刷を行う場合には予約時間を示すものである。なお、ステップ606の処理は、例えば、従来から公知のユーザーインターフェース技術やアプリケーションプログラムインターフェイス技術を用いて行うことができる。
その後、内部スプーラ209およびシステム印刷ジョブスプーラ210が、印刷ジョブおよび印刷ジョブに関連付けられたスプールオプションに基づいて印刷ジョブを格納するキューを選択し(ステップ608)、選択したキューに印刷ジョブを格納する(ステップ610)。具体的には、まず内部スプーラ209が、スプールオプションが予約印刷を示しているか否かを判断し、予約印刷を示している場合には予約印刷キュー152を選択して予約印刷キュー152に印刷ジョブを格納する。また、予約印刷ではない場合(即時印刷である場合)には内部スプーラ209が印刷ジョブをシステム印刷ジョブスプーラ210に出力し、システム印刷ジョブスプーラ210が即時印刷キュー150を選択して即時印刷キュー150に印刷ジョブを格納する。
次に、印刷ジョブのデスプール工程について説明する。
内部スプーラ209は、予約印刷キュー152内に現時点で印刷可能な印刷ジョブ(予約時間に達した印刷ジョブ)が存在するか否かを判断する処理をバックグラウンド処理で行っている(ステップ620)。
そして、内部スプーラ209は、予約印刷キュー152内に現時点で印刷可能な印刷ジョブが存在する場合、予約印刷キュー152内から次に印刷すべき印刷ジョブを取り出し(ステップ622)、システム印刷ジョブスプーラ210に送信する(ステップ624)。システム印刷ジョブスプーラ210は、内部スプーラ209から受信した上記印刷ジョブを即時印刷キュー150に格納する。
その後、システム印刷ジョブスプーラ210は、プリンタ112が次の印刷ジョブを受信可能になる毎に即時印刷キュー150から次に送信すべき印刷ジョブを取り出してプリンタ112に送信する(ステップ626)。
なお、ステップ620において内部スプーラ209が予約印刷キュー152内に現時点で印刷可能な印刷ジョブが存在しないと判断した場合、内部スプーラ209からシステム印刷ジョブスプーラ210にその旨が通知され、システム印刷ジョブスプーラ210はステップ626の処理を行う。
ステップ626の処理の後、システム印刷ジョブスプーラ210は、印刷待ちの印刷ジョブ(印刷可能な状態のジョブ)が即時印刷キュー150に残っているか否かを判断する(ステップ628)。そして、残っていない場合、ステップ620の処理に戻る。
一方、ステップ628において即時印刷キュー150に印刷待ちの印刷ジョブが残っていると判断した場合、システム印刷ジョブスプーラ210は、印刷待ちの印刷ジョブを即時印刷キュー150から取り出してプリンタ112に送信し(ステップ630)、ステップ620の処理に戻る。
なお、内部スプーラ209が、予約印刷キュー152内の印刷ジョブを全て取り出したときに、プリンタドライバ207から予約印刷キュー(予約印刷キュー記憶部)152を削除するようにしてもよい。例えば、初期状態では予約印刷キュー152を生成しない構成とし、プリンタドライバ207が予約印刷ジョブを受信したときに予約印刷キュー152および予約印刷キュー152をモニタリングするスレッドが既に生成されているか否かを判断し、存在しない場合に予約印刷キュー152およびそのモニタリングスレッドを生成するようにしてもよい。予約印刷キュー152およびそのモニタリングスレッドの生成後に新たな予約印刷ジョブを受信した場合には、その予約印刷ジョブは生成済みの予約印刷キュー152に格納される。そして、内部スプーラ209は、予約印刷キュー152から予約印刷ジョブを取り出してシステム印刷ジョブスプーラ210に送信すると、予約印刷キュー152が空になったか否か(予約印刷キュー152に残っている印刷ジョブがあるか否か)を判断し、空である場合には予約印刷キュー152およびそのモニタリングスレッドを削除する。これにより、予約印刷ジョブが存在しない場合にプリンタドライバ207内のリソースを開放できる。
なお、上記の各実施形態において、即時印刷キュー150および予約印刷キュー152の管理に上記した以外の機能を追加してもよい。例えば、従来から公知のジョブ優先順位付け技術を用いて各キュー内の印刷ジョブに優先順位を付け、各キューから取り出す印刷ジョブを当該キュー内における各印刷ジョブの優先順位に応じて決定するようにしてもよい。例えば、各印刷ジョブのサイズに応じて(サイズの小さい順あるいはサイズの大きい順)に上記優先順位を付けてもよい。
また、図3から図6に示した処理方法に対して、更なるステップ(処理)を追加したり、同等のステップに置換したりしてもよいことは、当業者にとって明らかであろう。このような追加的なステップおよび同等のステップは、説明を簡単かつ簡潔にするために、本明細書では省略している。
また、上記各実施形態において、印刷システム100、200に備えられる各部(プリンタ112を除く)を、CPU等のプロセッサを用いてソフトウェアによって実現してもよい。この場合、印刷システム100、200は、各機能を実現する制御プログラムの命令を実行するCPU(central processing unit)、上記プログラムを格納したROM(read only memory)、上記プログラムを展開するRAM(random access memory)、上記プログラムおよび各種データを格納するメモリ等の記憶装置(記録媒体)などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアである印刷システム100、200の制御プログラムのプログラムコード(実行形式プログラム、中間コードプログラム、ソースプログラム)をコンピュータで読み取り可能に記録した記録媒体を、印刷システム100,200に供給し、そのコンピュータ(またはCPUやMPU)が記録媒体に記録されているプログラムコードを読み出し実行することによって達成される。
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ系、フロッピー(登録商標)ディスク/ハードディスク等の磁気ディスクやCD−ROM/MO/MD/DVD/CD−R等の光ディスクを含むディスク系、ICカード(メモリカードを含む)/光カード等のカード系、あるいはマスクROM/EPROM/EEPROM/フラッシュROM等の半導体メモリ系などを用いることができる。
また、印刷システム100、200を通信ネットワークと接続可能に構成し、通信ネットワークを介して上記プログラムコードを供給してもよい。この通信ネットワークとしては、特に限定されず、例えば、インターネット、イントラネット、エキストラネット、LAN、ISDN、VAN、CATV通信網、仮想専用網(virtual private network)、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、通信ネットワークを構成する伝送媒体としては、特に限定されず、例えば、IEEE1394、USB、電力線搬送、ケーブルTV回線、電話線、ADSL回線等の有線でも、IrDAやリモコンのような赤外線、Bluetooth(登録商標)、802.11無線、HDR、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
また、印刷システム100、200の各ブロックは、ソフトウェアを用いて実現されるものに限らず、ハードウェアロジックによって構成されるものであってもよく、処理の一部を行うハードウェアと当該ハードウェアの制御や残余の処理を行うソフトウェアを実行する演算手段とを組み合わせたものであってもよい。
図7は、ソフトウェアを用いて印刷システム100、200(プリンタ112を除く)を実現する場合の構成例を示すブロック図である。この図に示す印刷スプールコンピュータシステム701は、制御部(プロセッサ)700、プログラムおよびデータを記憶するメモリ702、入出力装置(I/Oデバイス)704、ネットワークインターフェース706、およびコンピュータ読取可能なプログラムを記録した記録媒体712を備えている。また、制御部700、プログラムおよびデータを記憶するメモリ702、入出力装置704、およびネットワークインターフェース706はシステムバス750を介して互いに接続されている。
制御部700は、印刷スプールコンピュータシステム701の各部の動作を制御するものである。なお、制御部700は複数の制御要素の集合によって構成されるものであってもよい。
入出力装置704は、ユーザからの指示を受け付けるためのものであり、例えば、キーボード、ディスプレイ、ポインティング・デバイス、あるいはこれらの組み合わせによって構成される。
記録媒体712はコンピュータ読取可能なプログラムを記録した記録媒体である。
ネットワークインターフェース706はネットワークを介して印刷スプールコンピュータシステム701と他のデータ処理システムや記憶装置とを接続するためのものである。
制御部700は、記録媒体712から読み出したプログラム、あるいはネットワークインターフェース706を介して受信したプログラムをメモリ702に一時的に格納し、これを適宜読み出して実行することで上述した印刷処理(例えば図3〜図6の処理)を行う。
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
本発明は、即時印刷ジョブのスプールと予約印刷ジョブのスプールとを行う印刷ジョブ送信装置、この印刷ジョブ送信装置を備えたコンピュータシステム、および印刷システムに適用できる。
100,200 印刷システム
101,201 コンピュータシステム(印刷ジョブ送信装置)
102 印刷ジョブ生成部
103 印刷ジョブオプション取得部
104 スプールオプション取得部
106,206 印刷ジョブインターフェース
107,207 プリンタドライバ
108 スプールインターフェース
110 印刷ジョブスプーラ
112 プリンタ
121 即時印刷キュー管理部
122 予約印刷キュー管理部
150 即時印刷キュー(即時印刷キュー記憶部)
152 予約印刷キュー(予約印刷キュー記憶部)
209 内部スプーラ(予約印刷キュー管理部)
210 システム印刷ジョブスプーラ(即時印刷キュー管理部)

Claims (12)

  1. 印刷データとこの印刷データの印刷処理をプリンタに実行させるための命令とを含む印刷ジョブをスプールする印刷ジョブスプーラを備え、上記印刷ジョブスプーラがスプールした印刷ジョブを、ネットワークを介して接続された上記プリンタに送信する印刷ジョブ送信装置であって、
    上記印刷ジョブには、上記プリンタが利用可能になり次第印刷する即時印刷ジョブと、指定時刻に印刷する予約印刷ジョブとがあり、
    即時印刷ジョブであるか予約印刷ジョブであるかの選択指示を受け付けるスプールオプション取得部を備え、
    上記印刷ジョブスプーラは、
    即時印刷ジョブを印刷する順に並べて格納するためのデータ構造である即時印刷キューと、予約印刷ジョブを印刷する順に並べて格納するためのデータ構造である予約印刷キューとが別々に構築されており、
    上記スプールオプション取得部が受け付けた上記選択指示に応じて、即時印刷ジョブを上記即時印刷キューに格納し、予約印刷ジョブを上記予約印刷キューに格納し、
    上記プリンタが印刷ジョブを受信可能になる毎に、上記予約印刷キューに格納されている予約印刷ジョブのうち上記指定時刻に達した予約印刷ジョブおよび上記即時印刷キューに格納されている即時印刷キューを上記プリンタに順次送信することを特徴とする印刷ジョブ送信装置。
  2. オペレーティングシステムと上記プリンタの動作を制御するプリンタドライバとを含むコンピュータシステムに備えられる印刷ジョブ送信装置であって、
    上記印刷ジョブスプーラは、即時印刷キューへの即時印刷ジョブの付加および即時印刷キューからの即時印刷ジョブの取り出しを管理する即時印刷キュー管理部と、予約印刷キューへの予約印刷ジョブの付加および予約印刷ジョブからの予約印刷ジョブの取り出しを管理する予約印刷キュー管理部とを備えており、
    上記即時印刷キュー管理部および上記予約印刷キュー管理部の両方が上記オペレーティングシステム内に組み込まれていることを特徴とする請求項1に記載の印刷ジョブ送信装置。
  3. オペレーティングシステムと上記プリンタの動作を制御するプリンタドライバとを含むコンピュータシステムに備えられる印刷ジョブ送信装置であって、
    上記印刷ジョブスプーラは、即時印刷キューへの即時印刷ジョブの付加および即時印刷キューからの即時印刷ジョブの取り出しを管理する即時印刷キュー管理部と、予約印刷キューへの予約印刷ジョブの付加および予約印刷ジョブからの予約印刷ジョブの取り出しを管理する予約印刷キュー管理部とを備えており、
    上記予約印刷キュー管理部は上記プリンタドライバ内に組み込まれており、
    上記即時印刷キュー管理部は上記オペレーティングシステム内に組み込まれていることを特徴とする請求項1に記載の印刷ジョブ送信装置。
  4. 上記予約印刷キュー管理部は、上記予約印刷キューにスプールされた予約印刷ジョブの中に上記指定時刻に達した予約印刷ジョブがあるか否かを監視しており、上記指定時刻に達した予約印刷ジョブがある場合に、当該予約印刷ジョブを上記予約印刷キューから取り出して上記即時印刷キュー管理部に引渡し、
    上記即時印刷キュー管理部は、上記予約印刷キュー管理部から受け取った上記予約印刷ジョブを即時印刷ジョブとして上記即時印刷キューに加えることを特徴とする請求項2または3に記載の印刷ジョブ送信装置。
  5. 上記即時印刷キュー管理部は、上記予約印刷キュー管理部から受け取った上記予約印刷ジョブを上記即時印刷キューにおける最先に印刷される位置に加え、上記プリンタが利用可能になり次第、当該予約印刷ジョブを上記プリンタに送信し、
    上記予約印刷キュー管理部は、上記指定時刻に達した予約印刷ジョブが上記予約印刷キュー内に存在しない場合にはその旨を上記即時印刷キュー管理部に通知し、
    上記即時印刷キュー管理部は、上記通知を受けた場合に、上記プリンタが利用可能になり次第、上記即時印刷キューにおける最先に印刷される位置に格納されている即時印刷ジョブを上記プリンタに送信することを特徴とする請求項4に記載の印刷ジョブ送信装置。
  6. 初期状態では上記予約印刷キューは生成されておらず、
    上記印刷ジョブスプーラに予約印刷ジョブが入力されたときに上記予約印刷キュー管理部が上記予約印刷キューを生成することを特徴とする請求項2から5のいずれか1項に記載の印刷ジョブ送信装置。
  7. 上記印刷ジョブスプーラは、上記予約印刷キューから上記予約印刷ジョブを取り出した後、この予約印刷キューに他の予約印刷ジョブがスプールされていない場合に、この予約印刷キューを削除することを特徴とする請求項6に記載の印刷ジョブ送信装置。
  8. ネットワークを介して複数のプリンタに接続され、
    上記印刷ジョブスプーラは、プリンタ毎に上記即時印刷キューと上記予約印刷キューとを生成することを特徴とする請求項1から7のいずれか1項に記載の印刷ジョブ送信装置。
  9. 印刷データとこの印刷データの印刷処理をプリンタに実行させるための命令とを含む印刷ジョブをスプールする印刷ジョブスプーラを備え、上記印刷ジョブスプーラがスプールした印刷ジョブを、ネットワークを介して接続された上記プリンタに送信する印刷ジョブ送信装置における上記印刷ジョブの管理方法であって、
    上記印刷ジョブには、上記プリンタが利用可能になり次第印刷する即時印刷ジョブと、指定時刻に印刷する予約印刷ジョブとがあり、
    即時印刷ジョブを印刷する順に並べて格納するためのデータ構造である即時印刷キューと、予約印刷ジョブを印刷する順に並べて格納するためのデータ構造である予約印刷キューとを別々に構築する工程と、
    即時印刷ジョブであるか予約印刷ジョブであるかの選択指示を受け付ける工程と、
    上記選択指示に応じて、印刷ジョブが即時印刷ジョブである場合には当該印刷ジョブを即時印刷キューに格納し、印刷ジョブが予約印刷ジョブである場合には当該印刷ジョブを上記予約印刷キューに格納する工程と、
    上記プリンタが印刷ジョブを受信可能になる毎に、上記予約印刷キューに格納されている予約印刷ジョブのうち上記指定時刻に達した予約印刷ジョブおよび上記即時印刷キューに格納されている即時印刷キューを上記プリンタに順次送信する工程とを含むことを特徴とする印刷ジョブの管理方法。
  10. 請求項1から8のいずれか1項に記載の印刷ジョブ送信装置と、
    上記印刷ジョブ送信装置から受信した印刷ジョブに応じて印刷処理を行うプリンタとを備えていることを特徴とする印刷システム。
  11. 請求項1にから8のいずれか1項に記載の印刷ジョブ送信装置を動作させるプログラムであって、コンピュータを上記印刷ジョブスプーラとして機能させるためのプログラム。
  12. 請求項11に記載のプログラムをコンピュータ読み取り可能に格納した記録媒体。
JP2009210386A 2008-10-09 2009-09-11 印刷ジョブ送信装置、印刷ジョブの管理方法、印刷システム、プログラムおよびその記録媒体 Pending JP2010092467A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/248,695 US20100091318A1 (en) 2008-10-09 2008-10-09 Systems and methods for multiple queue options for a single logical printer

Publications (1)

Publication Number Publication Date
JP2010092467A true JP2010092467A (ja) 2010-04-22

Family

ID=42098585

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009210386A Pending JP2010092467A (ja) 2008-10-09 2009-09-11 印刷ジョブ送信装置、印刷ジョブの管理方法、印刷システム、プログラムおよびその記録媒体

Country Status (2)

Country Link
US (1) US20100091318A1 (ja)
JP (1) JP2010092467A (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8456668B1 (en) * 2008-08-28 2013-06-04 Google Inc. Methods and systems for cross-process printing
US8599405B2 (en) * 2008-10-10 2013-12-03 Xerox Corporation System and method for printing queued print jobs
US8836987B2 (en) * 2011-01-21 2014-09-16 Ricoh Company, Ltd. Print queue management in a print shop environment
US9105009B2 (en) 2011-03-21 2015-08-11 Microsoft Technology Licensing, Llc Email-based automated recovery action in a hosted environment
US9069499B2 (en) * 2011-03-22 2015-06-30 Infoprint Solutions Company Llc Print processing network
US8839257B2 (en) * 2011-11-22 2014-09-16 Microsoft Corporation Superseding of recovery actions based on aggregation of requests for automated sequencing and cancellation
US9460303B2 (en) 2012-03-06 2016-10-04 Microsoft Technology Licensing, Llc Operating large scale systems and cloud services with zero-standing elevated permissions
US9367268B2 (en) * 2012-04-30 2016-06-14 Hewlett-Packard Development Company, L.P. Print production scheduling
US8881249B2 (en) 2012-12-12 2014-11-04 Microsoft Corporation Scalable and automated secret management
JP5994692B2 (ja) * 2013-03-15 2016-09-21 ブラザー工業株式会社 中継サーバ及び通信装置
JP2015002396A (ja) * 2013-06-14 2015-01-05 キヤノン株式会社 画像処理装置、画像処理装置の制御方法、及びプログラム
US9171236B1 (en) * 2014-05-09 2015-10-27 Xerox Corporation Dynamic spooler load balancing
US9762585B2 (en) 2015-03-19 2017-09-12 Microsoft Technology Licensing, Llc Tenant lockbox
US10931682B2 (en) 2015-06-30 2021-02-23 Microsoft Technology Licensing, Llc Privileged identity management
US9870183B2 (en) * 2016-04-20 2018-01-16 Kabushiki Kaisha Toshiba System and method for energy efficient print job queuing
JP2019072968A (ja) * 2017-10-18 2019-05-16 キヤノン株式会社 画像形成装置、画像形成方法、及び、プログラム
CN110308881A (zh) * 2019-06-20 2019-10-08 森大(深圳)技术有限公司 插队打印方法、装置、设备、存储介质和打印机

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06242893A (ja) * 1993-02-15 1994-09-02 Hitachi Ltd 出力制御システム
JPH09190316A (ja) * 1996-01-09 1997-07-22 Canon Inc 予約・実行システム及び予約・実行方法
JP2001100954A (ja) * 1999-09-29 2001-04-13 Canon Inc 印刷制御装置および方法
JP2003337689A (ja) * 2003-05-28 2003-11-28 Fujitsu Ltd スプール管理装置
JP2005004484A (ja) * 2003-06-12 2005-01-06 Canon I-Tech Inc コンピュータプログラム及び印刷制御システム
JP2006108935A (ja) * 2004-10-01 2006-04-20 Canon Inc 情報処理装置及び情報処理方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4854608B2 (ja) * 2007-06-29 2012-01-18 キヤノン株式会社 印刷制御装置、印刷制御方法、及びプログラム
US20090122766A1 (en) * 2007-10-01 2009-05-14 Hughes Timothy J Nested weighted round robin queuing

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06242893A (ja) * 1993-02-15 1994-09-02 Hitachi Ltd 出力制御システム
JPH09190316A (ja) * 1996-01-09 1997-07-22 Canon Inc 予約・実行システム及び予約・実行方法
JP2001100954A (ja) * 1999-09-29 2001-04-13 Canon Inc 印刷制御装置および方法
JP2003337689A (ja) * 2003-05-28 2003-11-28 Fujitsu Ltd スプール管理装置
JP2005004484A (ja) * 2003-06-12 2005-01-06 Canon I-Tech Inc コンピュータプログラム及び印刷制御システム
JP2006108935A (ja) * 2004-10-01 2006-04-20 Canon Inc 情報処理装置及び情報処理方法

Also Published As

Publication number Publication date
US20100091318A1 (en) 2010-04-15

Similar Documents

Publication Publication Date Title
JP2010092467A (ja) 印刷ジョブ送信装置、印刷ジョブの管理方法、印刷システム、プログラムおよびその記録媒体
US7190477B2 (en) System and method for managing and processing a print job using print job tickets
JP3405159B2 (ja) 印刷装置
US8045202B2 (en) Information processing apparatus and print device control method
US9274736B2 (en) Information processing apparatus, output system, information processing method, and recording medium storing information processing program
US6985243B1 (en) Print server apparatus, information processing apparatus as client, print managing method for these apparatuses, and storage medium
JP5415750B2 (ja) 情報処理装置、情報処理方法、プログラム、並びに、情報処理システム
US8149449B2 (en) Systems and methods for print scheduling
JP2008186445A (ja) クラスタ印刷方法、およびクラスタ印刷システム
US9160888B2 (en) Information processing apparatus, user information management control method, and storage medium
US20110181910A1 (en) Information processing apparatus, print controlling program, computer-readable storage medium, printing apparatus, and printing system
US9277084B2 (en) Data processing device, data processing system, and data processing method
JP3826080B2 (ja) 情報処理装置及びその制御方法、制御プログラム、並びに媒体
JP3624175B2 (ja) 情報処理装置及び方法
JP2002182878A (ja) 印刷制御装置および方法および印刷システムおよびコンピュータプログラムとその記録媒体
US20130077130A1 (en) Printing control system, printing control method, and image processor
JPH10333844A (ja) ネットワークにおける印刷制御システム及び当該印刷制御プログラムを記録した機械読み取り可能な記録媒体
JP2012221334A (ja) 画像形成システムとその処理方法、画像形成装置、印刷管理サーバー、プリントサーバ、御方法及びプログラム
JP5887900B2 (ja) ジョブ制御システム、ジョブ制御方法、情報処理装置、ジョブ制御プログラム
JP5458997B2 (ja) データ処理装置、データ処理方法およびプログラム
JP3509815B2 (ja) 印刷システム及び画像形成装置及びジョブ管理方法
JP6115253B2 (ja) プリントシステム、スプールサーバ、スプール方法、及びプログラム
JP2007058417A (ja) プリントシステム
JP2006164153A (ja) 接続管理、ユーザ処理
JP2015045976A (ja) 印刷制御プログラム、情報処理装置及び印刷システム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110706

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110719

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110905

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20111206