JP2021193502A - 情報処理方法、情報処理装置およびプログラム - Google Patents

情報処理方法、情報処理装置およびプログラム Download PDF

Info

Publication number
JP2021193502A
JP2021193502A JP2020099470A JP2020099470A JP2021193502A JP 2021193502 A JP2021193502 A JP 2021193502A JP 2020099470 A JP2020099470 A JP 2020099470A JP 2020099470 A JP2020099470 A JP 2020099470A JP 2021193502 A JP2021193502 A JP 2021193502A
Authority
JP
Japan
Prior art keywords
printer
information processing
information
state
management tool
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
JP2020099470A
Other languages
English (en)
Inventor
秀幸 金森
Hideyuki Kanamori
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 JP2020099470A priority Critical patent/JP2021193502A/ja
Priority to US17/337,241 priority patent/US11385845B2/en
Priority to EP21177771.9A priority patent/EP3923131A1/en
Priority to CN202110631365.4A priority patent/CN113835646A/zh
Publication of JP2021193502A publication Critical patent/JP2021193502A/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
    • 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/1244Job translation or job parsing, e.g. page banding
    • G06F3/1248Job translation or job parsing, e.g. page banding by printer language recognition, e.g. PDL, PCL, PDF
    • 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/1284Local printer 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/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1211Improving printing performance
    • 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/1229Printer resources management or printer maintenance, e.g. device status, power levels
    • G06F3/1231Device related settings, e.g. IP address, Name, Identification
    • 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/1244Job translation or job parsing, e.g. page banding
    • G06F3/1247Job translation or job parsing, e.g. page banding by conversion to printer ready format
    • 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/1253Configuration of print job parameters, e.g. using UI at the client
    • G06F3/1258Configuration of print job parameters, e.g. using UI at the client by updating job settings at the printer
    • 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/1259Print job monitoring, e.g. job status
    • 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/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1273Print job history, e.g. logging, accounting, tracking
    • 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
    • G06F3/1288Remote printer device, e.g. being remote from client or server in client-server-printer device configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Landscapes

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

Abstract

【課題】プリンタと通信可能な第1の情報処理装置と、該第1の情報処理装置を介して前記プリンタと通信することが可能な第2の情報処理装置と、がネットワークを介して接続されたプリントシステムにおいて適切な通信を行う。【解決手段】プリンタと通信可能な第1の情報処理装置1が実行する情報処理方法は、プリンタの通信に関する設定情報を取得する設定情報取得工程と、プリンタの状態に関する情報をプリンタから取得する状態情報取得工程と、実行工程と、を有する。実行工程は、設定情報取得工程で取得された設定情報が、プリンタが他の情報処理装置と通信可能な状態にあり、且つ、PDLの生成を他の情報処理装置が行うことを示す場合、情報取得工程にプリンタとの通信を待機させて所定の処理を実行する。【選択図】図8

Description

本発明は、情報処理方法、情報処理装置およびプログラムに関する。
ネットワークを介して接続された複数の情報処理装置の間で、プリンタなどのデバイスを共有するネットワークシステムが実用化されている。特許文献1には、特定のパーソナルコンピュータ(サーバPC)と接続されたプリンタを、ネットワークで接続された別のパーソナルコンピュータ(クライアントPC)で利用可能なプリントシステムが開示されている。
このようなネットワークを介したプリントシステムにおいて、クライアントPCで作成された印刷データは、クライアントPC又はサーバPCのいずれかによって、PDL(Printer Description Language)に変換される。そして、サーバPCのランゲージモニタが、生成されたPDLをプリンタに送信することによって画像がプリントされる。
特開2006−99747号公報
しかしながら、例えば近年のWindows(登録商標)など、特定のオペレーションシステム(OS)においては、クライアントPCより受信した印刷ジョブに対し、ベンダーの提供するランゲージモニタが起動されない場合がある。この場合、プリンタの使用状況を把握するためにサーバPCで起動する管理ツール等のプログラムは、クライアントPCとの間で排他制御することができなくなってしまう。また、そもそも、ランゲージモニタを有しないシステムもあり、その形態でも、クライアントPCとの間で排他制御することができない。その結果、プリンタドライバ等のプログラムによるプリンタとの通信と管理ツール等のプログラムによるプリンタとの通信との間で情報が混在し、適切な通信が行えないおそれが生じる。
本発明は上記問題点を解消するためになされたものである。よって、目的とするところは、プリンタと通信可能な第1の情報処理装置と、該第1の情報処理装置を介して前記プリンタと通信することが可能な第2の情報処理装置と、がネットワークを介して接続されたプリントシステムにおいて適切な通信を行うことである。
そのために本発明は、プリンタと通信可能な第1の情報処理装置と、該第1の情報処理装置を介して前記プリンタと通信することが可能な第2の情報処理装置と、がネットワークを介して接続されたプリントシステムにおいて、前記第1の情報処理装置が実行する情報処理方法であって、前記プリンタの通信に関する設定情報を取得する設定情報取得工程とユーザからのコマンドの入力に応じて開始され、前記プリンタと通信して前記プリンタの状態に関する情報を前記プリンタから取得する状態情報取得工程と、前記設定情報が、前記プリンタが前記第1の情報処理装置を介して前記第2の情報処理装置と通信可能な状態にあり、且つ印刷データに基づくPDL(Printer Description Language)の生成を前記第2の情報処理装置が行うことを示す場合、前記状態情報取得工程に前記プリンタとの通信を待機させて所定の処理を実行する実行工程と、を有し、前記状態情報取得工程における前記プリンタの状態に関する情報の取得と、前記実行工程における前記所定の処理の実行は、前記第1の情報処理装置上の、それぞれ異なるプログラムによって実行されることを特徴とする。
本発明によれば、プリンタと通信可能な第1の情報処理装置と、該第1の情報処理装置を介して前記プリンタと通信することが可能な第2の情報処理装置と、がネットワークを介して接続されたプリントシステムにおいて適切な通信を行うことが可能となる。
プリントシステムの概略図である。 サーバPCのハードウェア構成を説明するためのブロック図である。 サーバPCとプリンタAにおける、機能の構成を示すブロック図である。 クライアントPCとサーバPCにおける、機能の構成を示すブロック図である。 プリンタAについてのプリンタ共有設定画面を示す図である。 使用履歴表示画面を示す図である。 サーバPCのフィルタが実行する処理を示すフローチャートである。 サーバPCの管理ツールが実行する処理を示すフローチャートである。 案内ダイアログを示す図である。 サーバPCの管理ツールが実行する処理を示すフローチャートである。 クライアントPCのフィルタが実行する処理を示すフローチャートである。 サーバPCの管理ツールが実行する処理を示すフローチャートである。 通知ダイアログを示す図である。
以下、添付図面を参照して本発明の好適な実施の形態を詳しく説明する。
(第1の実施形態)
図1は、本実施形態で使用するプリントシステムの概略図である。サーバPC1とクライアントPC40とは、ネットワーク20を介して相互に通信可能である。プリンタA30は、通信インタフェース10を介してサーバPC1に直接接続されたローカルプリンタである。ネットワーク20としては、例えば、LAN(Local Area Network)、WAN(Wide Area Network)等を適用可能である。ネットワーク20の接続形態としては、有線無線を問わず、これらが混在していてもよい。通信インタフェース10については、相互に通信可能な形態であれば良く、例えばUSB(Universal Serial Bus)が適用可能である。
なお、本実施形態では、プリンタA30と直接接続されたPCをサーバPC1、サーバPC1を介してプリンタA30を利用可能なPCをクライアントPC40と便宜的に呼称するが、どちらも一般的なPCとしての機能を有していればよい。
図2は、サーバPC1のハードウェア構成を説明するためのブロック図である。CPU101は、ROM102やハードディスク104に記憶されたプログラムに従ってRAM103をワークエリアとしながら、装置全体を制御する。例えば、CPU101は、ハードディスク104にインストールされているOSやアプリケーションをRAM103にロードし、読み出したプログラムに従って、様々なプログラムを実行する。
入力装置105は、例えばキーボードやマウスであり、ユーザからの指示を受付けるためのデバイスである。表示装置は例えばCRTディスプレイであり、ユーザに報知するため情報を表示する。ディスクコントローラ107は、フレキシブルディスクが装着された際に、CPU101の指示の下、フレキシブルディスクに対するデータアクセスを制御する。通信制御部108は、CPU101の指示の下、外部に接続されたプリンタA30との間の通信を制御する。
後述する図7、8、10〜12に示すフローチャートは、CPU101が、RAM103にロードされたOSのプログラムに従って、RAM103をワークエリアとしながら実行するものである。ここでは、サーバPC1のハードウェア構成として説明したが、クライアントPC40についても同等の構成とすることができる。本実施形態では、CPU101、ROM102、RAM103等によって本実施形態の情報処理装置としてのサーバPCのコンピュータが形成される。
図3は、サーバPC1とプリンタA30における、機能の構成を示すブロック図である。サーバPC1において、各ブロックで示す機能は、サーバPC1にインストールされたOSによって管理される。本実施形態においては、OSとしてWindows10(登録商標)を用い、プリントシステムとしてV4アーキテクチャを採用した形態を想定している。V4アーキテクチャにおいては、クライアントPC40は、後述の管理ツール6が実行する通信の状態を把握可能なランゲージモニタを有しないものとする。なお、プリントシステムとしてV3アーキテクチャが採用されても良い。V3アーキテクチャが採用される場合はクライアントPC40はランゲージモニタを有するが、本発明の課題は、ランゲージモニタが無効化された場合等に生じうる。
アプリケーション2は、ユーザの指示に従って、生成した画像についての印刷ジョブをスプーラ3に投入する。
スプーラ3は、フィルタ4とポートモニタ5とを含む。スプーラ3は、サーバPC1が備えるOSにより実現される機能である。一方フィルタ4は、プリンタA30のベンダーより提供されるプリンタドライバにより提供される機能である。フィルタ4は、印刷キューで印刷ジョブを管理しつつ、印刷ジョブに含まれる印刷データをPDL(Printer Description Language)に変換する。ポートモニタ5は、スプーラ3が生成したPDLをUSB I/F(インタフェース)7を介してプリンタA30に送信する。
管理ツール6は、プリンタA30のベンダーより提供されるプログラムにより実現される機能であり、プリンタA30が実行するプリント処理の履歴やプリントの進行状態を管理する。なお、本実施形態では、管理ツール6は、プリンタドライバとは別のプログラムである。例えば、管理ツール6は、ユーザの指示の下、プリント処理の履歴情報を要求するコマンドを生成し、USB I/F 7を介してプリンタA30に送信する。また、管理ツール6は、プリンタA30よりプリント処理の履歴情報を受けとり、受け取った情報を表示装置106(図2参照)に表示する。
ポートモニタ5によるPDLの送信と、管理ツール6による管理情報の送受信は、いずれもUSB I/F 7を経由して行われるが、本実施形態ではこれら情報が同じタイミングで混在しないような制御を行う。この制御については後に詳しく説明する。
NM I/F 8は、サーバPC1が、ネットワーク20に接続された他のデバイスと情報の授受を行うためのインタフェースである。
上述したように、スプーラ3は、サーバPC1が備えるOSにより実現される機能であり、プリンタA30のベンダーより提供されるプログラムにより実現される機能ではない。そのため本実施形態ではスプーラ3は、管理ツール6の通信を制御することはできず、後述する排他制御を実行することはできない。一方、フィルタ4は、管理ツール6と同様、プリンタA30のベンダーより提供されるプログラムにより実現される機能であるため、管理ツール6の通信を制御することができ、後述する排他制御を実行することができる。
プリンタA30は、USB I/F 31と、プリンタ制御部32と、印刷部33を含んでいる。USB I/F 31は、サーバPC1との間で、情報の授受を行うためのインタフェースである。印刷部33は、プリンタA30のエンジン部であり、プリンタ制御部32によって制御される。プリンタ制御部32は、サーバPC1から受信したPDLに基づいて印刷部33に画像を印刷させたり、サーバPC1から受信した履歴情報のコマンドに応じて履歴情報を取得し、USB I/F 31を介してサーバPC1に送信したりする。
図4(a)および(b)は、クライアントPC40のユーザが、クライアントPC40で生成した画像をプリンタA30でプリントさせる場合の、制御構成を示す図である。ここでは省略しているが、サーバPC1にはUSB I/F 7を介して図1で説明したプリンタA30が接続されているものとする。
クライアントPC40は、アプリケーション41、スプーラ42、NM I/F 44 を有する。また、スプーラ42はフィルタ43を含んでいる。アプリケーション41、フィルタ43、及びNM I/F 44の機能は、サーバPC1におけるアプリケーション2、フィルタ4、及びNM I/F 8の機能とそれぞれ同等である。ここでは、サーバPC1と1つのクライアントPC40を含むプリントシステムを示しているが、ネットワーク20には更に多くのPCが接続されていてもよい。
本実施形態の印刷システムにおいて、クライアントPC40で発生(生成)した印刷ジョブに含まれる印刷は、当該印刷データのPDLへの変換をサーバPC1で行わせるかクライアントPCで行わせるかを、サーバPC1のユーザが設定できるものとする。
図4(a)は、クライアントPC40で発生した印刷ジョブの印刷データをサーバPC1が受信し、当該印刷データをサーバPC1でPDL変換する場合を示す。この場合、クライアントPC40のスプーラ42は、フィルタ43を起動させることなく、アプリケーション41で生成された印刷ジョブを、サーバPC1に送信する。サーバPC1のスプーラ3は、フィルタ4を起動し、クライアントPC40から受信した印刷ジョブに含まれる印刷データを順次PDLに変換させ、ポートモニタ5に投入する。ポートモニタ5は、受け取ったPDLをUSB I/F 7を介してプリンタA30に送信する。
なおフィルタ4は、スプーラ3から印刷データを受け取った場合、当該印刷データをPDLに変換する前に、管理ツール6との間で共有するMutexをロックすることで排他制御を実行する。フィルタ4は、排他制御を実行している状態で、PDL変換を実行し、変換後のデータをスプーラ3に渡す。これにより、スプーラ3は、排他制御が実行されている状態において、プリンタA30に印刷ジョブを送信することとなる。なおフィルタ4は、プリンタA30に印刷ジョブが送信されたあとは、排他制御を停止する。
このように、サーバPC1のスプーラ3がPDL変換を実行する場合においては、クライアントPC40から受信された印刷ジョブがプリンタA30に送信される前に、フィルタ4が管理ツール6を制御可能なタイミングが訪れる。そのため、サーバPCのフィルタ4と管理ツール6は、USB I/F 7を介するデータの送受信が同じタイミングで混在しないように、相互の処理を排他制御することができる。排他制御については後述する。
図4(b)は、クライアントPC40で発生した印刷ジョブの印刷データを、当該印刷ジョブがサーバPC1に送信される前に、クライアントPC40でPDL変換する場合を示す。この場合、クライアントPC40のスプーラ42は、フィルタ43を起動し、アプリケーション41で生成された印刷ジョブに含まれる印刷データを順次PDLに変換させる。そして、印刷コマンドと生成されたPDLとを印刷ジョブとして、USB I/F 7を介してサーバPC1に送信する。サーバPC1のスプーラ3は、フィルタ4を起動させることなく、クライアントPC40から受信したPDLをポートモニタ5に投入する。ポートモニタ5は、投入されたPDLをUSB I/F 7を介してプリンタA30に送信する。
このように、クライアントPC40のスプーラ42がPDLを生成する場合、クライアントPC40から受信された印刷ジョブがプリンタA30に送信される前に、フィルタ4が管理ツール6を制御可能なタイミングが訪れない。そのため、サーバPC1の管理ツール6は、フィルタ4との間で既存の方法を用いた排他制御を行うことができない。このため、本実施形態の管理ツール6は、上記排他制御の代わりに、クライアントPC40から発せられた印刷ジョブに基づく印刷動作を行っている期間は、自身の処理のための送受信を中断する中断制御を行う。中断制御の詳細については後述する。
図5は、プリンタA30についてのプリンタ共有設定画面を示す図である。サーバPC1のユーザは、OSが備えるプリンタのプロパティ画面から、図5に示す設定画面50を開き、各種設定を行うことができる。
設定画面50において、チェックボックス51は、プリンタAを、サーバPC1とネットワーク接続されている他のPCと共有するか否かを設定するためのボックスである。本実施形態において、プリンタA30をサーバPC1が他の装置と共有している状態とは、プリンタA30とサーバPC1との間の通信だけでなく、サーバPC1を介在させたプリンタA30と他の装置との間の通信が許可されている状態に相当する。すなわち、プリンタA30をサーバPC1が他の装置と共有している状態においては、サーバPC1は、当該他の装置から受信したデータを、プリンタA30に送信する。なお、このときサーバPC1は、当該他の装置から受信したデータに基づいて新たに生成したデータや、当該他の装置から受信したデータを加工したデータをプリンタA30に送信しても良い。
チェックボックス51がチェックされた状態でOKボタン54が押下されると、プリンタAは、サーバPC1とクライアントPC40との間で共有化される。テキストボックス52は、共有するプリンタA30の共有名を編集するためのボックスである。チェックボックス53は、PDLの生成を、クライアントPCで行わせるかサーバPCで行わせるかを設定するためのボックスである。チェックボックス53がチェックされた状態でOKボタン54が押下されると、以後の印刷処理において、PDLは印刷ジョブを発生させたクライアントPCが生成されることになる。一方、チェックボックス53がチェックされない状態でOKボタン54が押下されると、以後の印刷処理において、PDLはサーバPC1で生成されることになる。なお、キャンセルボタン55が押下された場合は、チェックボックス51、53のチェックの有無に関わらず、設定は無効となる。このようなチェックボックスにおけるチェック状態は、プリンタA30の設定情報として保存され、必要に応じて読み出される。
図6は、サーバPC1の管理ツール6が表示装置106に表示させる使用履歴表示画面60を示す図である。プリンタ選択リスト61には、サーバPC1に接続されているプリンタの名称が表示される。ここでは、プリンタA30のみがUSB接続された場合を示しているが、複数のプリンタが接続されている場合には複数のプリンタ名が表示される。
ユーザが、プリンタ選択リスト61に表示されたプリンタの中から1つを選択し、更に画面右下の履歴表示ボックス63を押下すると、管理ツール6は、選択されたプリンタに対し、プリント処理の履歴情報を要求する。そして、当該プリンタからプリント処理の履歴情報を受信すると、受信した情報に基づいて使用履歴一覧リスト62を表示する。図6では、プリンタA30が行った印刷処理のそれぞれについて、印刷日時、ユーザ名、用紙種類、用紙サイズ、印刷枚数の情報が表示された場合を示している。ユーザが終了ボタン64を押下すると、管理ツール6は使用履歴表示画面60を閉じる。
図7は、PDLの生成をサーバPC1が行う場合に、サーバPC1のフィルタ4が実行する処理を説明するためのフローチャートである。本処理は、クライアントPC40からの印刷ジョブを受信したスプーラ3が、フィルタ4を起動することによって開始される。
本処理が開始されると、フィルタ4はまずS11において、管理ツール6との間で共有するMutexをロックする。これにより、管理ツール6では、プリンタA30との間での送受信が禁止される。
S12において、フィルタ4は、スプーラ3より印刷データを受信する。
S13において、フィルタ4は、受信した印刷データに基づき、PDLを生成する。
S14において、フィルタ4は、S13で生成したPDLを出力する。これに伴い、スプーラ3は、フィルタ4が出力したPDLを、ポートモニタ5及びUSB I/F 7を介してプリンタA30に送信する。
S15において、フィルタ4は、全ての印刷データをスプーラ3から受信したか否かを判定する。受信すべき印刷データまだ残っていると判定した場合はS12に戻り、スプーラ3から次の印刷データを受信する。一方、全ての印刷データを受信したと判定した場合は、S16に進む。
S16において、フィルタ4は、S11で設定したMutexをアンロックする。これにより、管理ツール6では、プリンタA30との間での送受信が行えるようになる。以上で本処理を終了する。
ここで、Mutexとは、フィルタ4と管理ツール6との間で排他制御のために用いるツールである。一方がMutexをロックすることにより他方はプリンタA30との間の送受信が禁止され、アンロックすると送受信が可能となる。フィルタ4と管理ツール6は、各々が処理を開始するときにMutexをロックし、処理を終了するとアンロックする。これにより、フィルタ4用の情報と管理ツール6用の情報とが、USB I/F 7において同じタイミングで送受信されるのを抑えることができる。
本実施形態の場合、フィルタ4がPDLの処理を行っている間、管理ツール6はプリンタA30に関するプリント処理の履歴情報の要求を受信しても、この情報をプリンタA30に送信することはできない。管理ツール6は、フィルタ4によってMutexがアンロックされるまで、待機することになる。そして、S16において、フィルタ4がMutexをアンロックすると、今度は管理ツール6がMutexをロックして、プリンタA30に対する要求コマンドの送信や使用履歴情報の受信を行うことになる。
図8は、サーバPC1の管理ツール6が実行する状態情報取得処理を説明するためのフローチャートである。本処理は、ユーザが、図6で説明した履歴表示ボックス63を押下したタイミングで開始される。
本処理が開始されると、管理ツール6は、S21においてプリンタの共有状態情報をOSから取得する。ここで取得される情報は、図5で説明した設定画面50に従う設定情報である。すなわち、接続されているプリンタのうち、チェックボックス51がチェックされたプリンタの共有情報が、管理ツール6に提供される。
S22において、管理ツール6は、S21で取得した共有情報に基づいて、対象とするプリンタが共有設定されているか否かを判定する。共有設定されていないと判定した場合、管理ツール6はS23に進み、サーバPC1において現在処理中または処理待ちの印刷ジョブの一覧情報をOSから取得する。
S24において、管理ツール6は、S23で取得した一覧情報を参照し、現在処理中または処理待ちの印刷ジョブの中に、クライアントPCでレンダリングする印刷ジョブが含まれているか否かを判定する。具体的には、一覧情報に記載されているPCの名称と、自身のPC(サーバPC1)の名称を比較することによって、サーバPC1以外のPCでレンダリングする印刷ジョブが含まれているか否かを判定する。
クライアントPCでレンダリングする印刷ジョブが含まれている場合、管理ツール6は、クライアントPC40のフィルタ43との間でMutexを機能させることは出来ない。よって、管理ツール6が上述したような使用履歴情報取得処理を開始してしまうと、USB I/F 7を介して送受信される情報がスプーラ3との間で混在してしまうおそれが生じる。このため、本実施形態において、管理ツール6は、クライアントPCでレンダリングされた印刷ジョブが含まれていないとS24で判定されるまで、S23、S24の工程を繰り返す。
S24で、処理中または処理待ちの印刷ジョブの中に、クライアントPCでレンダリングする印刷ジョブは含まれていないと判定すると、管理ツール6はS25に進み、Mutexをロックし、プリンタA30の使用履歴情報を取得する。この際、もしサーバPC1のフィルタ4が図7で説明した処理を実行中であれば、Mutexはフィルタ4によってロックされている。よって、管理ツール6は、フィルタ4によるMutexのロックが解除されるまで待機し、解除された後にMutexをロックすることになる。
S26において、管理ツール6は、プリンタA30に使用履歴を要求するためのコマンドを生成する。S27において、管理ツール6は、S26で生成した使用履歴要求コマンドを、USB I/F 7を介してプリンタA30に送信する。S28において、管理ツール6は、USB I/F 7を介してプリンタA30から使用履歴情報を取得する。S29において、管理ツール6は、全ての使用履歴情報が取得できたか否かを判定する。まだ取得すべき履歴情報が残っていると判定した場合には、再びS26に戻り、新たなコマンドを生成する。一方、全ての使用履歴情報が取得できたと判定した場合、管理ツール6はS30に進み、Mutexをアンロックする。
その後、S31において、管理ツール6は、S25〜S30で取得した使用履歴情報に基づいて、図6で示したような使用履歴表示画面60を表示装置106に表示させる。以上で本処理を終了する。
一方、S22において、プリンタが共有設定されていると判定した場合、管理ツール6はS32に進み、レンダリングを行うPCの情報をOSから取得する。ここで取得される情報は、図5で説明した設定画面50に従う設定情報である。
S33において、管理ツール6は、レンダリングを行うプリンタはクライアントPC40であるか否かを判定する。レンダリングを行うプリンタがクライアントPC40ではない場合、すなわちサーバPC1である場合、管理ツール6はS23に進み、既に説明したS23〜S31の工程に従って、プリンタA30の使用履歴の取得および表示処理を行う。一方、レンダリングを行うプリンタがクライアントPC40である場合、管理ツール6はS34に進む。
レンダリングを行うプリンタがクライアントPC40である場合、管理ツール6はクライアントPC40のフィルタ43との間でMutexを機能させることはできない。よって、管理ツール6が使用履歴情報を取得のための処理を開始してしまうと、USB I/F 7を介して送受信される情報がスプーラ3との間で混在してしまう懸念が生じる。このため、本実施形態の管理ツール6は、レンダリングを行うプリンタがサーバPC1以外のPCに設定されている場合、プリンタA30の使用履歴取得処理を一旦停止する。そして、プリンタA30の共有を解除すること、又はレンダリングするPCをサーバPCへ変更することを、ユーザに促す処理を行う。本実施形態において、プリンタA30の共有が解除された形態とは、プリンタA30とサーバPC1との間の通信は許可されているが、サーバPC1を介したプリンタA30と他の装置との間の通信は許可されていない状態に相当する。すなわち、プリンタA30をサーバPC1が他の装置と共有していない(共有が解除された)状態においては、サーバPC1は、当該他の装置から送信されたデータを、プリンタAに転送しない。
図9(a)および(b)は、図8のS34、S36において管理ツール6が表示するユーザへの案内ダイアログを示す。
S34において、管理ツール6は、図9(a)に示す案内ダイアログ70を表示する。案内ダイアログ70には、プリンタの共有を解除すること、又は、レンダリングするPCをサーバPCに変更することが案内されている。案内ダイアログ70は、ユーザが、続行ボタン71、キャンセルボタン72、ヘルプボタン73のいずれかを押下することにより閉じられる。
S35において、ヘルプボタン73が押下されたと判定すると、管理ツール6はS36に進み、図9(b)に示す案内ダイアログ75を表示する。案内ダイアログ75には、プリンタの共有を解除する方法、またはレンダリングするPCをサーバPCに変更する方法の詳細が表示される。ユーザは、以上のような案内ダイアログ70、75に従って、図5で説明した設定画面50を開き、プリンタA30の共有設定及びPDLを生成するPCの設定を変更することができる。
S37において、続行ボタン71が押下されたと判定すると、管理ツール6はS21に戻る。この際、既にユーザが、案内ダイアログ70,75に従って設定を変更していれば、管理ツール6は、既に説明したS23〜S31に従って、プリンタA30の使用履歴の取得および表示処理を滞りなく行うことができる。なお、管理ツール6がS370で続行ボタン71の押下を確認する前に、クライアントPCから印刷ジョブが受信されている場合も考えられる。しかしながら、この場合であっても、管理ツール6は、クライアントPCでレンダリングされた印刷ジョブが含まれていないとS24で判定できるまで、S23とS24の工程を繰り返すことになる。よって、クライアントPC40でレンダリングされた印刷ジョブと管理ツール6との間でデータの混在が生じることはない。
一方、S38において、キャンセルボタン72が押下されたと判定すると、管理ツール6は本処理を終了する。
以上説明した本実施形態によれば、PDLを生成するフィルタがサーバPC上で動作するフィルタ4である場合は、Mutexを用いた排他制御によって、フィルタ4と管理ツール6との間でデータの混在を抑えることができる。一方、PDLを生成するフィルタがクライアントPC40で動作するフィルタ43である場合は、管理ツール6が自身の処理を中断し、プリンタA30の共有を解除すること、又はレンダリングするPCをサーバPCへ変更することを、ユーザに促す処理を行う。これにより、USB I/F 7を介して送受信される情報の混在を抑え、適切な印刷処理を行うことが可能となる。
(第2の実施形態)
本実施形態においても、図1〜図6で説明したプリントシステムを用いる。本実施形態では、サーバPC1の管理ツール6が、サーバPC1のスプーラ3における処理状態を監視しながら、プリンタA30の使用履歴取得処理を行う。
図10は、本実施形態のサーバPC1の管理ツール6が実行する状態情報取得処理を説明するためのフローチャートである。本処理は、ユーザが、図6で説明した履歴表示ボックス63を押下したタイミングで開始される。
本処理が開始されると、管理ツール6は、まずS51において、中断フラグを初期値としてオンに設定する。中断フラグとは、管理ツール6がプリンタA30の使用履歴情報を取得するための処理を行って良い状態にあるか否かを判断するためのフラグである。
S52において、管理ツール6は、印刷ジョブ用の監視スレッドを起動させる。以下、管理ツール6は、メインスレッドによるS53〜S63の工程と、監視スレッドによるS70〜S82の工程とを、並行して行うことになる。
まず、メインスレッドについて説明する。S53において、管理ツール6は、Mutexをロックする。この際、Mutexがフィルタ4によって既にロックされている場合、管理ツール6は、フィルタ4によるMutexのロックが解除されるまで待機し、解除された後にMutexをロックする。
S54において、管理ツール6は中断フラグを確認する。S55において、管理ツール6は、中断フラグがオフであるか否かを判定する。中断フラグがオンである場合、管理ツール6が使用履歴情報を取得のための処理を開始してしまうと、USB I/F 7を介して送受信される情報がスプーラ3との間で混在してしまう懸念が生じる。このため、管理ツール6は、中断フラグがオフであるとS55で判定されるまで、S54、S55の工程を繰り返しながら待機する。
S55で、中断フラグがオフであると判定すると、管理ツール6は使用履歴情報を取得のための処理を開始する。以下、使用履歴情報を取得のためのS56〜S60の工程は、図8で説明したS26〜S30の工程と同様であるため説明は割愛する。
S61において、管理ツール6は、S52で起動させた監視スレッドの終了を要求する。S62において、管理ツールは、S56〜S59で取得した使用履歴情報に基づいて、図6で示したような使用履歴表示画面60を表示装置106に表示させ、本処理を終了する。
一方、S52で監視スレッドが起動されると、管理ツール6は、まずS71において、プリンタの共有状態情報をOSから取得する。ここで取得される情報は、図5で説明した設定画面50に従う設定情報である。
S72において、管理ツール6は、S71で取得した情報に基づいて、対象とするプリンタが共有設定されているか否かを判定する。共有設定されていないと判定した場合、管理ツール6はS80に進み、中断フラグをオフに設定する。一方、共有設定されていると判定した場合、管理ツール6はS73に進む。
S73において、管理ツール6は、レンダリングを行うPCの情報をOSから取得する。ここで取得される情報は、図5で説明した設定画面50に従う設定情報である。
S74において、管理ツール6は、レンダリングを行うプリンタはクライアントPC40であるか否かを判定する。レンダリングを行うプリンタがクライアントPC40ではない場合、すなわちサーバPC1である場合、管理ツール6はS80に進み、中断フラグをオフに設定する。一方、レンダリングを行うプリンタがクライアントPC40である場合、管理ツール6はS75に進む。
S75において、管理ツール6は、サーバPC1における印刷ジョブの処理状態をOSから取得する。
S76において、管理ツール6は、サーバPC1が印刷ジョブの処理中であるか否かを判定し、印刷ジョブの処理中ではないと判定するとS80に進み、中断フラグをオフに設定する。一方、サーバPC1が印刷ジョブの処理中である場合、管理ツール6はS77に進む。
S77において、管理ツール6は、サーバPC1が処理中である印刷ジョブの情報をOSから取得する。印刷ジョブの情報には、当該ジョブを生成したPCの名称などが含まれている。クライアントPC40のOSは、クライアントPC40でPDLを生成する場合であっても、PDLの生成に先立って印刷ジョブの情報をサーバPC1に発信する。このため、サーバPC1の管理ツール6は、クライアントPC40のフィルタ43がPDLの生成を開始する前に、印刷ジョブの情報を取得することができる。
S78において、管理ツール6は、サーバPC1が処理中である印刷ジョブが、サーバPC1以外のPCで発生した印刷ジョブであるか否かを判定する。具体的には、印刷ジョブを生成したPCの名称と、サーバPC1の名称とを比較することによって判定する。そして、処理中の印刷ジョブがサーバPC1で発生した印刷ジョブであると判定した場合は、S80に進み、中断フラグをオフに設定する。一方、処理中の印刷ジョブが、サーバPC1以外のクライアントPCで発生した印刷ジョブであると判定した場合は、S79に進む。
S79において、管理ツール6は、中断フラグをオンに設定する。
S81において、管理ツール6は、監視スレッドの終了がメインスレッドから要求されているか否かを判定する。要求されていない場合、管理ツール6はS82に進み、500ミリ秒待機した後、S71に戻る。一方、監視スレッドの終了が要求されている場合は、監視スレッドを終了する。
図10で説明したフローチャートによれば、メインスレッドにおいて、プリンタA30の使用履歴情報を取得するためのS56〜S59の工程は、中断フラグがオフになっているのを確認しながら行われる。そして、中断フラグがオンになっている場合、管理ツール6は、中断フラグがオフになるまでS54とS55の工程を繰り返しながら待機する。すなわち、管理ツール6は、中断フラグの確認と、中断フラグがオフになるまでの待機と、使用履歴情報を取得するための工程を繰り返しながら、プリンタA30における使用履歴情報を段階的に取得する。
一方、メインスレッドと並行に行われる監視スレッドにおいて、管理ツール6は、S72、S74、S76及びS78の判定が全てYesである場合にのみ、中断フラグをオンに設定する。すなわちクライアントPCでレンダリングした印刷ジョブをサーバPCで処理中である場合にのみ、中断フラグをオンに設定する。それ以外の場合は、サーバPC1のフィルタ4との間でMutexの排他制御が有効に機能するため、中断フラグはオフに設定する。そしてこのような中断フラグの更新を、管理ツール6は500ミリ秒間隔で行う。
図11は、PDLの生成をクライアントPC40が行う場合に、クライアントPC40のフィルタ43が実行する処理を説明するフローチャートである。本処理は、アプリケーション41で生成された印刷ジョブを受信したスプーラ42が、フィルタ43を起動することによって開始される。
本処理が開始されると、フィルタ43は、まずS101において、印刷ジョブの出力先をクライアントPC40のOSから取得する。
S102において、フィルタ43は、印刷ジョブの出力先が他のPCに接続されている共有プリンタであるか否かを判定する。共有プリンタであると判定した場合、フィルタ43は、S103で1秒待機した後にS104に進み、印刷データのPDL変換および出力を開始する。一方、印刷ジョブの出力先が共有プリンタではないと判定した場合は、待機時間を設けることなくS104に進み、印刷データのPDL変換および出力を開始する。以下、印刷データのPDL変換および出力のためのS104〜S109の工程は、図7で説明したS11〜S16の工程と同様であるため説明は割愛する。
ここで、サーバPC1の管理ツール6が実行する図10のフローと、クライアントPC40のフィルタ43が実行する図11のフローとを比較する。クライアントPCでは、印刷ジョブの出力先が共有プリンタである場合、1秒待機した後にPDLの生成が開始される。一方、サーバPCでは、500ミリ秒の周期で、中断フラグの更新、すなわちプリンタA30の使用履歴情報を取得するための処理を行って良いか否かの判断が行われる。よって、印刷ジョブの出力先が共有プリンタである場合、サーバPC1の管理ツール6は、スプーラ3がクライアントPC40からPDLを受信するよりも前に、クライアントPC40の印刷ジョブをサーバPC40が受けていることを検知することができる。つまり、管理ツール6は、スプーラ3がクライアントPC40からPDLを受信するのに先立って、中断フラグをオンに設定し(S79)、クライアントPC40で発生した印刷ジョブのための処理が終了するまで待機することができる。なお、以上では、クライアントPC40が1秒待機した後にPDLの生成を開始し、中断フラグの更新を500ミリ秒の間隔で行う構成としたが、中断フラグの更新がクライアントPC40の待機時間よりも短い所定の間隔で行われれば、これらは変更可能である。
以上説明したよう本実施形態によれば、第1の実施形態のようにユーザに設定の変更を行ってもらわなくても、USB I/F 7を介して送受信される情報の混在を抑え、適切な印刷処理を行うことが可能となる。
(第3の実施形態)
本実施形態においても、図1〜図6で説明したプリントシステムを用いる。本実施形態では、サーバPC1の管理ツール6が、プリントシステムにおける設定事項の設定内容を適宜変更しながら、プリンタA30の使用履歴取得処理を行う。
図12は、本実施形態のサーバPC1の管理ツール6が実行する状態情報取得処理を説明するためのフローチャートである。本処理は、ユーザが、図6で説明した履歴表示ボックス63を押下したタイミングで開始される。
本処理が開始されると、管理ツール6は、まずS121において、PDL変更フラグを初期値としてオフに設定する。ここで、PDL変更フラグとは、レンダリングを行うPCを、クライアントPCからサーバPCに変更したことを示すためのフラグである。以下、使用履歴情報を取得及び表示のためのS122〜S132の工程は、図8で説明したS21〜S31の工程と同様であるため、ここでの説明は割愛する。
S133において、管理ツール6は、PDL変更フラグの情報を取得する。
S134において、管理ツール6は、PDL変更フラグがオンであるか否かを判定する。PDL変更フラグがオンである場合、管理ツール6はS135に進み、レンダリングするPCをサーバPC1からクライアントPCに戻し、本処理を終了する。一方、S134において、PDL変更フラグがオフであると判定した場合は、そのまま本処理を終了する。
一方、S123において、プリンタが共有設定されていると判定した場合、管理ツール6はS136に進み、レンダリングを行うPCの情報をOSから取得する。ここで取得される情報は、図5で説明した設定画面50に従う設定情報である。
S137において、管理ツール6は、レンダリングを行うプリンタはクライアントPC40であるか否かを判定する。レンダリングを行うプリンタがクライアントPC40ではない場合、すなわちサーバPC1である場合、管理ツール6はS124に進み、既に説明したS124〜S135の工程に従って、プリンタA30の使用履歴の取得と表示処理を行う。一方、S137において、レンダリングを行うプリンタがクライアントPC40であると判定した場合、管理ツール6はS138に進む。
S138において、管理ツール6は、図13に示す通知ダイアログ80を表示する。通知ダイアログ80には、レンダリングするPCをサーバPCに変更することが通知される。通知ダイアログ80は、ユーザが、続行ボタン81又はキャンセルボタン82を押下することにより閉じられる。
S139において、続行ボタン81が押下されたと判定すると、管理ツール6はS140でレンダリングするPCをクライアントPCからサーバPCに変更し、更に、S141でPDL変更フラグをオンに設定した後、S136に戻る。
S139で続行ボタン81が押下された後にS136に進んだ場合、S137では、レンダリングを行うプリンタはクライアントPC40ではないと判定される。よって、管理ツール6はS124に進み、プリンタA30の使用履歴の取得および表示処理を行うことができる。この際、管理ツール6がS140でレンダリングPCをサーバPC1に切り替える前に、クライアントPCから印刷ジョブが受信される場合も考えられる。しかし、この場合であっても、管理ツール6は、クライアントPCでレンダリングされた印刷ジョブが含まれていないとS125で判定されるまで、S124とS125の工程を繰り返しながら待機することになる。よって、クライアントPC40でレンダリングされた印刷ジョブと管理ツール6との間でデータの混在が生じることはない。
一方、S142において、キャンセルボタン82が押下されたと判定すると、管理ツール6はレンダリングするPCを変更することなく、本処理を終了する。
以上説明した本実施形態によれば、管理ツール6が、レンダリング処理を行うPCを適宜変更しながら、プリンタA30の使用履歴取得処理を行うことができる。具体的には、レンダリング処理を行うPCがクライアントPC40に設定されている場合は、管理ツール6が履歴情報の取得処理を行っている期間はレンダリング処理を行うPCをサーバPCに設定し、履歴情報の取得処理が終了した時点で設定を元に戻す。これにより、レンダリングPCを再設定する手間をユーザにかけることなく、スプーラ3と管理ツール6の間で送受信される情報の混在を抑え、適切な印刷処理を行うことが可能となる。
(その他の実施形態)
以上説明した第1〜第3の実施形態では、サーバPCとプリンタA30とがインタフェースを介して接続された形態で説明したが、サーバPCとプリンタA30とは一体化された装置であってもよい。
上述では、管理ツール6とプリンタドライバ間の排他制御について説明したが、他のプログラム間の排他制御において、本発明の処理が実行されても良い。例えば、管理ツール6ではないがプリンタとの通信を実行するプログラムと、プリンタドライバ間の排他制御において、本発明の処理が実行されても良い。
本発明の目的は、上記実施形態で説明した機能を実現するソフトウエアのプログラムコードを記憶した記憶媒体をシステムあるいは装置に供給し、そのシステムあるいは装置のコンピュータがプログラムコードを読み出し実行することによっても、達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することとなり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROM、DVDなどを用いることができる。
また、コンピュータがプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOSなどが実際の処理の一部又は全部を行ってもよい。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれる形態であってもよい。この場合、書き込まれたプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も本発明の範疇である。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
1 サーバPC(第1の情報処理装置)
20 ネットワーク
30 プリンタ
40 クライアントPC(第2の情報処理装置)

Claims (13)

  1. プリンタと通信可能な第1の情報処理装置と、該第1の情報処理装置を介して前記プリンタと通信することが可能な第2の情報処理装置と、がネットワークを介して接続されたプリントシステムにおいて、前記第1の情報処理装置が実行する情報処理方法であって、
    前記プリンタの通信に関する設定情報を取得する設定情報取得工程と
    ユーザからのコマンドの入力に応じて開始され、前記プリンタと通信して前記プリンタの状態に関する情報を前記プリンタから取得する状態情報取得工程と、
    前記設定情報が、前記プリンタが前記第1の情報処理装置を介して前記第2の情報処理装置と通信可能な状態にあり、且つ印刷データに基づくPDL(Printer Description Language)の生成を前記第2の情報処理装置が行うことを示す場合、前記状態情報取得工程に前記プリンタとの通信を待機させて所定の処理を実行する実行工程と、
    を有し、
    前記状態情報取得工程における前記プリンタの状態に関する情報の取得と、前記実行工程における前記所定の処理の実行は、前記第1の情報処理装置上の、それぞれ異なるプログラムによって実行されることを特徴とする情報処理方法。
  2. 前記所定の処理は、前記設定情報の設定内容を変更するようにユーザに案内する処理であることを特徴とする請求項1に記載の情報処理方法。
  3. 前記所定の処理は、前記設定情報の設定内容を、前記プリンタと前記第2の情報処理装置との通信を許可しない、又は、前記プリンタが受信するPDLの生成を前記第1の情報処理装置が行うように変更することをユーザに案内する処理であることを特徴とする請求項2に記載の情報処理方法。
  4. 前記所定の処理は、前記プリンタが前記第1の情報処理装置を介して前記第2の情報処理装置と通信可能な状態にあり、PDLの生成を前記第2の情報処理装置が行うことが設定され、且つ前記第1の情報処理装置が前記第2の情報処理装置で生成されたPDLの処理中である場合にオンに設定されるフラグを確認する処理であることを特徴とする請求項1に記載の情報処理方法。
  5. 前記実行工程において、前記所定の処理は、前記フラグがオフであることが確認されるまで繰り返され、前記フラグがオフであることが確認されたとき、前記状態情報取得工程は、前記プリンタとの通信を開始することを特徴とする請求項4に記載の情報処理方法。
  6. 前記フラグのオンとオフは、所定の間隔で繰り返し判定されることを特徴とする請求項4または5に記載の情報処理方法。
  7. 前記所定の処理は、PDLの生成を前記第1の情報処理装置が行うように前記設定情報の設定内容を変更する処理であり、
    前記状態情報取得工程は、前記変更の後に前記プリンタとの通信を開始することを特徴とする請求項1に記載の情報処理方法。
  8. 前記状態情報取得工程において、前記プリンタの状態に関する情報が前記プリンタから取得された後に、前記設定情報の設定内容を、PDLの生成を前記第2の情報処理装置が行うように再び変更する工程を更に有することを特徴とする請求項7に記載の情報処理方法。
  9. 前記状態情報取得工程は、前記第1の情報処理装置が処理中または処理待ちの印刷ジョブに前記第2の情報処理装置が生成したPDLのジョブが含まれていないことが確認された場合に、前記プリンタとの通信を開始することを特徴とする請求項1から8のいずれか1項に記載の情報処理方法。
  10. 前記状態情報取得工程は、前記プリンタに使用履歴を要求するコマンドを送信する工程と、前記プリンタより前記使用履歴を受信する工程と、受信した前記使用履歴を表示する工程とを含むことを特徴とする請求項1から9のいずれか1項に記載の情報処理方法。
  11. 前記実行工程は、プリンタドライバによって実行されることを特徴とする請求項1から10のいずれか1項に記載の情報処理方法。
  12. コンピュータに、請求項1から11のいずれか1項に記載の情報処理方法を実行させるためのプログラム。
  13. プリンタと、ネットワークで接続された他の情報処理装置との間に介在し、前記プリンタと前記他の情報処理装置との通信を制御することが可能な情報処理装置であって、
    前記プリンタの通信に関する設定情報を取得する設定情報取得手段と
    ユーザからのコマンドの入力に応じて、前記プリンタと通信して前記プリンタの状態に関する情報を前記プリンタから取得する状態情報取得手段と、
    前記設定情報が、前記プリンタが前記情報処理装置を介して前記他の情報処理装置と通信可能な状態にあり、且つ印刷データに基づくPDL(Printer Description Language)の生成を前記他の情報処理装置が行うことを示す場合、前記状態情報取得手段に前記プリンタとの通信を待機させて所定の処理を実行する実行手段と、
    を備え、
    前記状態情報取得工程における前記プリンタの状態に関する情報の取得と、前記実行工程における前記所定の処理の実行は、前記情報処理装置上の、それぞれ異なるプログラムによって実行されることを特徴とする情報処理装置。
JP2020099470A 2020-06-08 2020-06-08 情報処理方法、情報処理装置およびプログラム Pending JP2021193502A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2020099470A JP2021193502A (ja) 2020-06-08 2020-06-08 情報処理方法、情報処理装置およびプログラム
US17/337,241 US11385845B2 (en) 2020-06-08 2021-06-02 Information processing method, information processing apparatus, and storage medium
EP21177771.9A EP3923131A1 (en) 2020-06-08 2021-06-04 Information processing method, information processing apparatus, and storage medium
CN202110631365.4A CN113835646A (zh) 2020-06-08 2021-06-07 信息处理方法、信息处理设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020099470A JP2021193502A (ja) 2020-06-08 2020-06-08 情報処理方法、情報処理装置およびプログラム

Publications (1)

Publication Number Publication Date
JP2021193502A true JP2021193502A (ja) 2021-12-23

Family

ID=76283618

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020099470A Pending JP2021193502A (ja) 2020-06-08 2020-06-08 情報処理方法、情報処理装置およびプログラム

Country Status (4)

Country Link
US (1) US11385845B2 (ja)
EP (1) EP3923131A1 (ja)
JP (1) JP2021193502A (ja)
CN (1) CN113835646A (ja)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4182094B2 (ja) 2004-08-30 2008-11-19 キヤノン株式会社 情報処理装置及びその制御方法、プログラム
JP4716165B2 (ja) * 2005-03-15 2011-07-06 セイコーエプソン株式会社 共有プリントサーバ制御プログラム及び共有プリントサーバ制御方法
US8032661B2 (en) * 2008-02-28 2011-10-04 Microsoft Corporation Automatic peripheral device sharing
US20120127512A1 (en) * 2010-11-19 2012-05-24 Microsoft Corporation Branch office direct printing
JP5857611B2 (ja) * 2011-10-13 2016-02-10 株式会社リコー 情報処理装置、システム、プログラム
JP6768544B2 (ja) 2017-01-31 2020-10-14 キヤノン株式会社 情報処理装置、制御方法およびプログラム
JP7225779B2 (ja) 2018-12-21 2023-02-21 株式会社三洋物産 遊技機

Also Published As

Publication number Publication date
EP3923131A1 (en) 2021-12-15
US20210382670A1 (en) 2021-12-09
US11385845B2 (en) 2022-07-12
CN113835646A (zh) 2021-12-24

Similar Documents

Publication Publication Date Title
US8773691B2 (en) Printing control apparatus, printing control method, and storage medium
US7771133B2 (en) Print control apparatus connectable to a printing apparatus and information processing apparatus, and control method thereof, and computer program
US20060158674A1 (en) Printer driver, information processing device including the same, print control device, and print data generating method
JP7355147B2 (ja) アプリケーションプログラム
JP2005527025A (ja) プルベースのコンピュータ出力装置
US20090059284A1 (en) Job-submission-request apparatus and method
JP2011118843A (ja) 印刷システム、制御方法、プログラム
US7768665B2 (en) Printing control device for processing a spool file and printing system, program product, and printing control method associated therewith
JP2008036999A (ja) 画像形成装置及び画像形成システム
JP4742784B2 (ja) 情報分配処理プログラム、情報処理装置、および情報分配処理システム
JP2021193502A (ja) 情報処理方法、情報処理装置およびプログラム
JP6520867B2 (ja) 画像処理システム、画像処理装置、制御方法、及びプログラム
JP2003131834A (ja) 画像形成装置、情報処理方法、制御プログラム、制御プログラムを記憶したコンピュータ読取り可能な記憶媒体、及び印刷システム
JP2011039948A (ja) 印刷システム,プリンタドライバ,および印刷装置
JP5825818B2 (ja) 情報処理装置、情報処理方法及びプログラム
US9525801B2 (en) Image reading control apparatus and method for executing image reading processing based on a reading instruction and inhibiting a reading apparatus from accepting new tasks
JP4107228B2 (ja) コンピュータ、およびコンピュータプログラム
JP2017170759A (ja) 画像形成システム、画像形成装置及びプログラム
JP2003241923A (ja) 周辺機器および情報処理装置およびジョブ処理方法および記憶媒体およびプログラム
JP4759175B2 (ja) 周辺機器でジョブを処理するシステム及び方法
JP2020091370A (ja) 情報処理システム、コントローラの制御方法およびプログラム
JP2012190057A (ja) 情報処理装置
JP4586400B2 (ja) 画像形成ジョブ管理システム、ジョブ情報リスト表示方法、コンピュータが読み取り可能な記録媒体およびプログラム
WO2022154061A1 (ja) サポートプログラムおよび印刷システム
KR20130014141A (ko) 화상형성장치 및 그 제어방법, 조작패널 인쇄회로보드어셈블리