Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP6245806B2 - 情報処理装置およびその制御方法、 - Google Patents
[go: Go Back, main page]

JP6245806B2 - 情報処理装置およびその制御方法、 - Google Patents

情報処理装置およびその制御方法、 Download PDF

Info

Publication number
JP6245806B2
JP6245806B2 JP2013001087A JP2013001087A JP6245806B2 JP 6245806 B2 JP6245806 B2 JP 6245806B2 JP 2013001087 A JP2013001087 A JP 2013001087A JP 2013001087 A JP2013001087 A JP 2013001087A JP 6245806 B2 JP6245806 B2 JP 6245806B2
Authority
JP
Japan
Prior art keywords
print
processing
printing apparatus
printing
identification information
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.)
Active
Application number
JP2013001087A
Other languages
English (en)
Other versions
JP2014134861A (ja
Inventor
弘明 守本
弘明 守本
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 JP2013001087A priority Critical patent/JP6245806B2/ja
Priority to US14/148,474 priority patent/US9007641B2/en
Publication of JP2014134861A publication Critical patent/JP2014134861A/ja
Application granted granted Critical
Publication of JP6245806B2 publication Critical patent/JP6245806B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1801Input data handling means
    • G06K15/1803Receiving particular commands
    • G06K15/1806Receiving job control commands
    • G06K15/1809Receiving job control commands relating to the printing process
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/121Facilitating exception or error detection and recovery, e.g. fault, media or consumables depleted
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1801Input data handling means
    • G06K15/1803Receiving particular commands
    • G06K15/1806Receiving job control commands
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/40Details not directly involved in printing, e.g. machine management, management of the arrangement as a whole or of its constitutive parts
    • G06K15/4005Sharing resources or data with other data processing systems; Preparing such data
    • G06K15/402Sharing data concerning the arrangement's configuration or current state

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)
  • Accessory Devices And Overall Control Thereof (AREA)

Description

本発明は印刷ジョブのキャンセル処理機能を提供する情報処理装置に関する。
一般的な印刷システムは、紙媒体への記録を可能とする印刷装置と、印刷装置を制御し印刷ジョブのデータを生成する制御装置と、その双方を接続する通信インターフェースとから構成される。制御装置ではオペレーティングシステム(以後OSとも称す)が稼働しており、アプリケーションやドライバ等の種々のソフトウェアがこのOS上で動作可能である。アプリケーションにより作成した任意のドキュメントを印刷する際は、アプリケーション、プリンタドライバ、OSそれぞれが規定の手順で必要な処理を実施することで印刷コマンドを生成し、生成された印刷コマンドを印刷装置へ送信することで印刷装置による紙媒体への印刷処理が開始される。従来のプリンタドライバは、ユーザやアプリケーションからの入力を管理するユーザインターフェースモジュール、印刷コマンドを生成するコマンド生成モジュール(以後コマンド生成フィルタとも称す)、制御装置と印刷装置間の通信処理を制御する通信制御モジュール(以後ランゲージモニタとも称す)を主たる要素として構成される。これらのモジュール群から構成されるプリンタドライバはVersion3ドライバ(以後V3ドライバとも称す)と称されている。ランゲージモニタは、OSを介しコマンド生成フィルタにより生成された印刷コマンドを受信し、印刷装置へ送信することで印刷ジョブを印刷装置へ転送している。またランゲージモニタは、ユーザやアプリケーションから印刷ジョブのキャンセル要求を受信すると、印刷ジョブのキャンセル処理を実施する。このとき、印刷装置がキャンセル対象の印刷ジョブに対し印刷処理を実行している場合は、ランゲージモニタはOSに対し印刷装置への印刷キャンセルコマンドの送信を指示し、印刷ジョブに対する印刷処理を中止させる必要がある。また別手法として、ランゲージモニタが印刷コマンド送信処理実行中に、印刷ジョブのキャンセル要求を受信した場合、送信コマンドの区切り情報を検出し、検出した情報に従い、印刷コマンドの全てを印刷装置に送信したか否かを判定する。ランゲージモニタは、正常に終了していないと判断した場合、最適な補完データを生成し、該送信データに継続して補完データをプリンタに送信制御することで、印刷の中止を実現する手法が知られている([特許文献1]参照)。
一方、近年Microsoft社により導入されたWindows(登録商標)8および(登録商標)RTでは、上記構成と異なるプリンタドライバ構成が採用された。新しいプリンタドライバを構成するモジュール群は、ランゲージモニタが含まれていない。また使用可能な通信ポートは、Universal Serial Bus(以後USBとも称す)ポート及びWeb Service on Device(以後WSDとも称す)ポートに限られる。この構成によるプリンタドライバは、Version4ドライバ(以後V4ドライバとも称す)と称される。V4ドライバにおいては、コマンド生成フィルタにより生成された印刷コマンドの印刷装置への送信処理は、スプーラにより提供される。またユーザやアプリケーションから印刷ジョブのキャンセル要求が発行されると、スプーラにより印刷ジョブのキャンセル処理が実施される。
特開2000−259368号
しかしながら、印刷装置と制御装置がUSB(商標)により接続され、かつ印刷装置にて印刷処理を継続できないエラーが生じている場合、エラーが生じた印刷ジョブに対しキャンセル要求が発行されても、スプーラはOSに対し印刷装置への印刷キャンセルコマンドの送信を指示しない場合がある。通常、スプーラは印刷ジョブのキャンセル要求を取得すると、印刷ジョブのキャンセル処理として、USBポートモニタのEndDocPort()を実行した後に、OSに対し印刷キャンセルコマンドの送信を指示する。しかしながら、印刷装置にて印刷処理を継続できないエラーが生じている場合は、USBポートモニタがEndDocPort()内の処理を完了することができず、続くOSに対する印刷キャンセルコマンド送信要求を発行できない。これによりユーザやアプリケーションは、エラーが生じた印刷ジョブの印刷中止を望んでも、印刷装置のエラーは解除されず、印刷装置の初期状態への遷移または次の印刷ジョブの開始がされないという問題が生じる。
一方スプーラに代わり、V4ドライバの構成要素であるコマンド生成フィルタがユーザやアプリケーションから印刷ジョブのキャンセル要求を受信し、OSに対し印刷装置への印刷キャンセルコマンドの送信を指示することも可能である。ところが、V4ドライバにおいては、印刷データの印刷装置への送信処理はスプーラにより制御され、コマンド生成フィルタは生成した印刷データの送信に関与することができない。そのためコマンド生成フィルタはどの印刷ジョブが印刷装置にて処理されているのか判断することができない。通常、印刷キャンセルコマンドは、印刷装置がキャンセル対象の印刷ジョブを処理していない場合は、印刷装置に対して発行されるべきではない。すなわち、この制限は、コマンド生成フィルタは印刷キャンセルコマンドの送信をOSに指示すべきか否かを適切に判定することができないことを意味する。
本発明は上記の課題を解決するためになされたもので、ランゲージモニタを構成要素として含まないプリンタドライバであっても、コマンド生成フィルタまたはスプーラが印刷装置の状況を適切に判定することで、適切な印刷ジョブのキャンセル機能を実施することが可能な方法を提供することを目的とする。
本発明の情報処理装置は、印刷装置に送信される印刷コマンドを生成する情報処理装置であって、前記印刷コマンドに識別情報を付加する付加手段と、前記印刷装置から、前記印刷装置にて進行中の印刷処理に対応する印刷コマンドに付加された識別情報を取得する識別情報取得手段と、前記印刷装置から、前記印刷装置にて進行中の印刷処理の進捗を示す進捗情報を取得する進捗情報取得手段と、前記識別情報取得手段により取得された前記識別情報と、前記進捗情報取得手段により取得された前記進捗情報から、前記情報処理装置により生成された印刷コマンドに基づく印刷処理が前記印刷装置にて完了したと前記印刷コマンドの生成が終わった後において判断される場合、オペレーティングシステムへ制御を戻すことで印刷処理を終了する終了手段を有し、前記終了手段によって前記オペレーティングシステムへ制御が戻された場合、プリントキューから前記印刷コマンドに対応する印刷ジョブが削除され、前記情報処理装置により生成された印刷コマンドにより定められる印刷処理が前記印刷装置にて完了したと前記印刷コマンドの生成が終わった後において判断されない場合、前記終了手段は、前記オペレーティングシステムへ制御を戻さないことを特徴とする。
本発明の情報処理装置は、印刷コマンドを解釈して前記印刷コマンドにより定められる印刷処理を実行する印刷装置と双方向通信可能な接続手段を介して接続される情報処理装置であって、前記情報処理装置上で稼働するオペレーティングシステムに対し印刷コマンドの前記印刷装置への送信処理の実行を指示する指示手段と、前記送信処理の処理結果を記録する記録手段と、前記オペレーティングシステムに対し、前記指示手段により実行を指示された印刷コマンドの送信処理の終了を通知する通知手段と、前記印刷装置にて進行中の印刷処理の中止要求を取得する中止要求取得手段と、前記中止要求取得手段により印刷処理の中止要求が取得された場合、前記記録手段により記録された処理結果に基づき、少なくとも1回以上前記送信処理が成功しているか否かを判断する判断手段と、前記判断手段により少なくとも1回以上前記送信処理が成功していると判断された場合、前記印刷装置から、前記印刷装置の状態を示す状態情報を取得する情報取得手段と、前記情報取得手段により取得された状態情報が、前記印刷装置が印刷処理を継続できない状態であることを示す場合に、前記印刷コマンド送信処理の終了通知の前に、前記印刷装置にて進行中の印刷処理の中止を指示する中止指示手段とを有することを特徴とする。
本発明の情報処理装置は、印刷コマンドを解釈して前記印刷コマンドにより定められる印刷処理を実行する印刷装置と双方向通信可能な接続手段を介して接続される情報処理装置であって、複数のスレッドから、前記印刷装置に対し印刷コマンドを出力する出力手段と、前記印刷装置にて進行中の印刷処理の中止要求を取得する中止要求取得手段と、前記中止要求取得手段により印刷処理の中止要求が取得された場合、前記出力手段により実行された出力処理の内、特定のスレッドにより実行される出力処理であり、かつ未完了である出力処理を停止する停止手段と、前記停止手段による停止処理実行後においても、未完了の出力処理が残存する場合、前記印刷装置の状態を示す状態情報を取得する状態情報取得手段と、前記状態情報取得手段により取得された取得情報が、前記印刷装置が印刷処理を継続できない状態であることを示す場合、残存する未完了の出力処理の全てを停止する手段と、を有することを特徴とする。
本発明によれば、双方向通信制御モジュールを構成要素として含まないプリンタドライバにおいて、適切な印刷ジョブのキャンセル機能を実施することが可能となる。
印刷装置と情報処理装置によって構成される印刷システムを示すブロック図 V4プリンタドライバの構成を示す概念図 UBSポートモニタの処理を示すフローチャート 実施形態1のコマンド生成フィルタの処理を示すフローチャート 印刷データに付加する識別情報の例を示す図 コマンド生成フィルタにより生成される印刷コマンドの全体像を示す概略図 コマンド生成フィルタによる印刷ジョブキャンセル処理を示すサブフローチャート 実施形態2のコマンド生成フィルタの処理を示すフローチャート スプーラの処理を示すフローチャート 実施形態2のスプーラの処理を示すフローチャート CancelIo()の内部処理を示すフローチャート
以下、添付図面を参照して本発明の好適な実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
<実施形態1>
図1は情報処理装置110と情報処理装置110に接続された印刷装置120により構成される印刷システムの全体構成を示すブロック図の一例である。情報処理装置110は入力I/F111、CPU112、ROM113、出力I/F114、外部記憶装置115、RAM116、入力装置117、出力装置118、入出力I/F119を有する。ROM113は初期化プログラムを保存し、外部記憶装置115はOS、プリンタドライバやその他各種のデータが保存されている。RAM116は外部記憶装置115に保存される各種プログラムがワークメモリーとして使用する。入力装置117はデータ入力や動作指示に使用され入力I/F111に接続されている。出力装置118はデータ表示や状態の通知に使用され出力I/F114に接続されている。
印刷装置120はRAM121、ROM122、プリントエンジン123、CPU124、入出力I/F125から構成される。情報処理装置110と印刷装置120は双方向通信可能な接続手段であるUSB(商標)ケーブル130により接続されている。RAM121はCPU124のワークメモリーとして使用され、受信したデータの一時保存用バッファとしても利用される。ROM122は制御命令を保存している。プリントエンジン123はRAM121に保存されたデータに基づき印刷を行う。CPU124はROM122に保存されている制御命令に従い印刷装置120を制御する。なお、本実施形態においては情報処理装置110および印刷装置120の処理分担を前記のように示したが、処理の分担形態はこれに依らない。
図2は本実施形態の前提となるV4プリンタドライバの構成を概念的に表したブロック図の一例である。アプリケーション201が作成した印刷データは、情報処理装置110上で稼働するオペレーティングシステム(OS)の印刷サポート機能202を介しスプールデータ205としてスプーラ203のプリントキュー204に一時的に蓄積される。蓄積されたスプールデータ205は、コマンド生成フィルタ206により印刷装置120が解釈可能な印刷コマンドに変換された後に、印刷装置120に送信され印刷するよう構成されている。アプリケーション201は印刷指示を行う際にOSの印刷サポート機能202を介して、OSのユーザインターフェースモジュール207から返却された印刷設定情報を印刷データに付加する。印刷設定情報は、アプリケーション201からの印刷開始指示に先立って設定された情報である。コマンド生成フィルタ206は、入力された印刷データに対し、加工、変換、無変換、生成等の処理を加え、印刷装置120が解釈可能なデータを出力する。コマンド生成フィルタ206への印刷データの入力処理、印刷データに対する所定の処理は、不図示のOSのコマンド生成フィルタ制御機能により制御される。コマンド生成フィルタ206は、受信した印刷データに付加された印刷設定情報に従って、印刷データに変換を施し印刷装置120が解釈可能な印刷コマンドを生成する。その後、コマンド生成フィルタ206は生成した印刷コマンドを、情報処理装置110のRAM116、及び外部記憶装置115に順次出力する。コマンド生成フィルタ206によりRAM116、及び外部記憶装置115へ出力された印刷コマンドは、スプーラ203により順次読み出され、USBポートモニタ208を経由し印刷装置120へ送信される。またUSBポートモニタ208はスプーラ203からの指示に応じて、ポートモニタ拡張ファイル209の記述に従い動作することで印刷装置120から任意の情報を取得することが可能である。図3はUSBポートモニタ208による印刷装置120からの情報取得処理の処理フローを示している。USBポートモニタ208は、スプーラ203からの指示によりS301にて処理を開始する。次に、USBポートモニタ208は、ポートモニタ拡張ファイル209に従い動作することで、スプーラ203から指定された情報を印刷装置120から取得する(S302)。その後、USBポートモニタ208は、取得した情報をスプーラ203へ通知し(S303)、S304にて処理を終了する。USBポートモニタ208が印刷装置120から取得した情報を、スプーラ203へ通知することで、コマンド生成フィルタ206はUSBポートモニタ208が印刷装置120から取得した情報を、スプーラ203を経由し取得することが可能となる。
図4は本実施形態におけるコマンド生成フィルタ206の処理フローを示す。始めにコマンド生成フィルタ206は、OSのコマンド生成フィルタ制御機能により起動され処理を開始する(S401)。次に、コマンド生成フィルタ206は、アプリケーション201が作成した印刷データをOSのコマンド生成フィルタ制御機能から受信する(S402)。続いてコマンド生成フィルタ206は、情報処理装置110と印刷装置120との間の通信ポートの種別を判定する(S403)。S403においてUSBポートにより両者が接続されている場合、次にコマンド生成フィルタ206は、受信した印刷データに対し、印刷コマンドへの変換および出力処理の開始を示す情報を、現在の処理フェーズ情報として記録する(S404)。次に、コマンド生成フィルタ206は、受信した印刷データに対し、該印刷データを一意に識別するための識別情報を付加する(S405)。図5は印刷データに付加される識別情報の例を示す。図5に示す識別情報は数値、ハイフネーションおよびアルファベットにより表現されているが、識別情報の構成はこの例に限定されるものではない。次に、コマンド生成フィルタ206は、受信した印刷データに付加された印刷設定情報に従って、印刷データに対し変換を施し印刷装置120が解釈可能な識別情報を含む印刷コマンドを生成する(S406)。ここでコマンド生成フィルタ206は印刷コマンド生成処理に先立ち、受信した印刷データに付加された印刷設定情報に従って、印刷データのページ順序の変更や、複数ページを1ページとして再構成するページ構成処理を追加してもよい。図6はコマンド生成フィルタ206により生成される印刷コマンドの全体像を示す概略図である。コマンド生成フィルタ206により生成されるコマンドは、識別情報格納部601と制御コマンド格納部602から成る。識別情報格納部には、S405にて付加される印刷データを一意に示す情報が格納される。制御コマンド格納部には、コマンド生成フィルタ206が受信した印刷データに対し所定の変換を施すことで得られる、印刷装置120の動作を制御するコマンドが格納される。続いて、コマンド生成フィルタ206は、識別情報を含む印刷コマンドを情報処理装置110の記憶領域(115または116)内に一旦出力する(S407)。この時、コマンド生成フィルタ206により出力された識別情報を含む印刷コマンドは、印刷装置120が印刷コマンドを受信可能な状態であるならば、スプーラ203により順次印刷装置120へ送信される。印刷装置120が印刷コマンドを受信可能な状態でない場合は、印刷装置120が印刷コマンドを受信可能な状態に遷移するまで、スプーラ203は送信処理を待機する。
S408では、印刷コマンドへの変換処理が未完了である印刷データの存在を確認し、変換されていない印刷データがあればS409へ進む。S409において、コマンド生成フィルタ206により生成された印刷コマンドが示す印刷データに対し、印刷処理のキャンセル要求が発行されているか否かを確認する。コマンド生成フィルタは、外部プログラムから呼び出し可能な関数として公開しているShutdownOperation()がOSにより呼び出された場合に、キャンセル要求が発行されたと判断する。キャンセル要求が発行されている場合はS421へ進む。キャンセル要求が発行されていない場合はS406へ戻り、コマンド生成フィルタ206は変換処理が未完了である印刷データの変換および出力処理を継続する。S421の処理内容は図7を用いて後述する。
S408において印刷データが全て印刷コマンドへ変換されていることを検知すると、コマンド生成フィルタ206は、現在の処理フェーズ情報を印刷コマンドの変換処理が完了したことを示す情報に更新する(S410)。続いて、コマンド生成フィルタ206は、印刷装置120にて処理中の印刷コマンドに付加された識別情報の取得を、スプーラ203に対し要求する(S411)。要求を受けたスプーラ203は、USBポートモニタ208に対し、印刷装置120にて処理中の印刷コマンドに付加された識別情報の取得を指示する。スプーラ203より指示を受けたUSBポートモニタ208は、図3に示す手順に従い、該識別情報を取得しスプーラ203へ通知する。続いて、コマンド生成フィルタ206はS412においてスプーラ203からUSBポートモニタ208が取得した識別情報を取得する。その後、コマンド生成フィルタ206は取得した識別情報に基づき、印刷装置120にて処理中の印刷コマンドが、自身で生成した印刷コマンドであるか否かを判定する(S413)。S413における判定が真である場合はS415へ進み、そうでない場合はS414へ進む。S414において、コマンド生成フィルタ206により生成された印刷コマンドが示す印刷データに対し、印刷処理のキャンセル要求が発行されているか否かを確認する。キャンセル要求が発行されている場合はS421へ進む。キャンセル要求が発行されていない場合はS411へ戻る。S413における判定が真である場合、コマンド生成フィルタ206は、現在の処理フェーズ情報を、印刷装置120にてコマンド生成フィルタ206が出力した印刷コマンドに対する印刷処理が、進行中であることを示す情報へと更新する(S415)。次に、コマンド生成フィルタ206は、印刷装置120にて進行する印刷処理の進捗情報の取得を、スプーラ203に対し要求する(S416)。要求を受けたスプーラ203は、USBポートモニタ208に対し、印刷装置120にて進行する印刷処理の進捗情報の取得を指示する。スプーラ203より指示を受けたUSBポートモニタ208は、図3に示す手順に従い、該進捗情報を取得しスプーラ203へ通知する。続いて、コマンド生成フィルタ206はS417においてスプーラ203からUSBポートモニタ208が取得した該進捗情報を取得する。その後、コマンド生成フィルタ206はS416にて取得した該進捗情報に基づき、印刷装置120における印刷処理が完了したか否かを判定する(S418)。S418における判定が真である場合のみ、コマンド生成フィルタ206は、S420にてOSのコマンド生成フィルタ制御機能へ制御を戻すことによって、S425にてコマンド生成フィルタ206の処理を終了する。通常スプーラ203は、USBポートモニタ208へ送信すべき印刷コマンドに対する送信処理を完了すると、送信した印刷コマンドに対応する印刷ジョブをプリントキュー204から削除する。これにより、印刷装置120がスプーラ203より受信した印刷コマンドに対して実施する印刷処理が未完了であっても、該印刷コマンドに対応する印刷ジョブがプリントキュー204に存在しない場面が生ずる。この場合、プリントキュー204に印刷ジョブが存在しないため、ユーザやアプリケーションは処理中の該印刷ジョブに対するキャンセル要求を発行することができない。一方、スプーラ203は、コマンド生成フィルタ206がOSのコマンド生成フィルタ制御機能へ制御を返却するまで、コマンド生成フィルタ206が出力した印刷コマンドに対する送信処理を完了することができない。すなわち、S416、S417、S418を実施することで、コマンド生成フィルタ206が出力した印刷コマンドに対する印刷処理が完了するまで、該印刷コマンドに対応する印刷ジョブをプリントキュー204に保持しておくことが可能となる。
図7は、図4に図示されるコマンド生成フィルタ206によるキャンセル処理(S421)の処理フローを示す。図4中のS409、S414、S419の判定が真である場合に、コマンド生成フィルタ206は印刷ジョブのキャンセル処理を開始する(S701)。次に、コマンド生成フィルタ206は、情報装置110の所定の領域に記録されている現在の処理フェーズ情報を取得し(S702)、取得したフェーズ情報が示す内容を確認する(S703)。S703において、現在の処理フェーズ情報が、コマンド生成フィルタ206による印刷コマンドの生成および出力処理が開始されていることを示す場合は、S704へ進む。続いて、コマンド生成フィルタ206は、印刷装置120にて処理中の印刷コマンドに付加された識別情報の取得を、スプーラ203に対し要求する(S704)。要求を受けたスプーラ203は、USBポートモニタ208に対し、印刷装置120にて処理中の印刷コマンドに付加された識別情報の取得を指示する。スプーラ203より指示を受けたUSBポートモニタ208は、図3に示す手順に従い、該識別情報を取得しスプーラ203へ通知する。続いて、コマンド生成フィルタ206はS705においてスプーラ203からUSBポートモニタ208が取得した識別情報を取得する。その後、コマンド生成フィルタ206は取得した識別情報に基づき、印刷装置120にて処理中の印刷コマンドが、自身で生成した印刷コマンドであるか否かを判定する(S706)。S706における判定が真である場合はS707へ進む。S707では、コマンド生成フィルタ206は印刷装置120に対する印刷キャンセルコマンドの発行をOSに対し要求する。印刷キャンセルコマンドを受信した印刷装置120は、進行中の印刷処理を即座に中止し初期状態に遷移する。次に、コマンド生成フィルタ206は、自身が出力した印刷コマンドに対応する印刷ジョブを、プリントキュー204から削除し、印刷ジョブのキャンセル処理を終了する(S710)。一方、S706における判定が偽である場合は、コマンド生成フィルタ206は印刷装置120に対する印刷キャンセルコマンドの発行をOSに対し要求せず、S708にて自身が出力した印刷コマンドに対応する印刷ジョブを、プリントキュー204から削除する。その後、コマンド生成フィルタ206は印刷ジョブのキャンセル処理を終了する(S710)。コマンド生成フィルタ206による印刷コマンドの出力処理が開始されると、スプーラ203は印刷装置120が印刷コマンドを受信可能な状態であるならば、出力された印刷コマンドを順次印刷装置120へ送信する。一方、印刷装置120において先に入力された印刷コマンドが処理されている場合は、印刷装置120が印刷コマンドを受信可能な状態に遷移するまで、スプーラ203は送信処理を待機する。そのため、コマンド生成フィルタ206による印刷コマンドの生成および出力処理進行中に印刷ジョブのキャンセル要求を受信した場合は、コマンド生成フィルタ206はS706にて自身が出力した印刷コマンドが印刷装置120にて処理されていることを検知した場合のみ、OSに対し印刷キャンセルコマンドの発行を要求する必要がある。
一方、S703において現在の処理フェーズ情報が、コマンド生成フィルタ206による印刷コマンドの生成および出力処理が完了していることを示す場合は、S708へ進む。コマンド生成フィルタ206は、S708にて自身が出力した印刷コマンドに対応する印刷ジョブをプリントキュー204から削除した後、S710にて印刷ジョブのキャンセル処理を終了する。その後、コマンド生成フィルタ206は印刷ジョブのキャンセル処理を終了する(S710)。該処理フェーズにおいては、印刷装置120はコマンド生成フィルタ206が出力した印刷コマンドに対する印刷処理を開始していないことは明白である。そのためコマンド生成フィルタ206は、S703後にOSに対し印刷キャンセルコマンドの発行を要求する必要はなく、自身が出力した印刷コマンドに該当する印刷ジョブをプリントキュー204から削除するのみでよい。
他方、S703において現在の処理フェーズ情報が、印刷装置120にてコマンド生成フィルタ206が出力した印刷コマンドに対する印刷処理が、進行中であることを示す場合は、S709へ進む。コマンド生成フィルタ206は、S709にてOSに対し印刷キャンセルコマンドの発行を要求し、S708にて自身が出力した印刷コマンドに対応する印刷ジョブをプリントキュー204から削除する。その後、コマンド生成フィルタ206は印刷ジョブのキャンセル処理を終了する(S710)。該処理フェーズにおいて印刷装置120が、コマンド生成フィルタ206により出力された印刷コマンドに対する印刷処理を進行していることは明白である。そのためコマンド生成フィルタ206は、S703後に印刷装置120にて印刷処理中の印刷コマンドに付加された識別情報を確認なしに、OSに対し印刷キャンセルコマンドの発行を要求してよい。
以上により、印刷ジョブのキャンセル要求を受信したコマンド生成フィルタ206は、印刷装置120にて処理中の印刷コマンドに付加された識別情報を取得することで、処理中の印刷コマンドが自身で出力した印刷コマンドであるか否かを判断する。さらに、コマンド生成フィルタ206は、印刷装置120にて処理中の印刷コマンドが自身で出力した印刷コマンドであると判断した場合のみ、印刷キャンセルコマンドの発行をOSに要求する。これらの処理により、キャンセル対象の印刷ジョブが印刷装置120にて処理されている場合のみ、印刷キャンセルコマンドが印刷装置120へ発行され、適切な印刷ジョブのキャンセル機能を実現することが可能となる。さらに、コマンド生成フィルタ206は、処理フェーズ情報を参照することで、印刷装置120対する識別情報の取得要求回数を抑制することが可能となり、より効率的な印刷ジョブのキャンセル機能を実現することが可能となる。
一方、情報処理装置110と印刷装置120は、USBポートの他にWSDポートを介して接続することも可能である。通信ポートにWSDポートが使用されている場合、コマンド生成フィルタ206はS403の判定の後にS422へと進む。S422では、コマンド生成フィルタ206は、受信した印刷データに付加された印刷設定情報に従って、印刷データに対し変換を施し印刷装置120が解釈可能な印刷コマンドを生成する。続いて、コマンド生成フィルタ206は変換した印刷コマンドを情報処理装置110の記憶領域(115または116)内に一旦出力する(S423)。S424では、印刷コマンドへの変換処理が未完了である印刷データの存在を確認し、変換されていない印刷データがあればS422へ戻る。印刷データに対する変換処理が全て完了している場合、コマンド生成フィルタ206は、S420にてOSのコマンド生成フィルタ制御機能へ制御を戻し、S425にてコマンド生成フィルタ206の処理を終了する。
情報処理装置110と印刷装置120を、WSDポートを介して接続する場合、WSDポートモニタ(不図示)により両者間の通信が制御される。WSDポートモニタは、標準機能として、印刷装置120における印刷処理の進捗を判断し、印刷処理が完了するまで印刷ジョブをプリントキューに保持する機能を持つ。そのため、情報処理装置110と印刷装置120がWSDポートを介して接続されている場合、コマンド生成フィルタ206は、印刷処理の進捗状況を管理する必要はない。つまり、コマンド生成フィルタ206は、印刷コマンドの生成および出力処理を完了すると即座にOSのコマンド生成フィルタ制御機能へ制御を戻してよい。さらに、WSDポートモニタは、標準機能として、印刷装置120にて進行中の印刷処理に対するキャンセル要求を取得し、キャンセルコマンドを発行する機能も併せ持つ。そのため、コマンド生成フィルタ206は、キャンセル要求を受信しても、OSに対し印刷装置120へのキャンセルコマンド発行要求を行う必要はない。
<実施形態2>
本実施形態では、実施形態1とは異なる手法で課題を解決する例を述べる。本実施形態では、印刷ジョブのキャンセル要求はスプーラ203が受信する。さらに、スプーラ203は、印刷ジョブのキャンセル要求受信時の印刷装置120のステータスに応じ、通常の印刷ジョブの終了処理に、OSに対する印刷キャンセルコマンドの発行要求を追加することにより、課題を解決する。なお、以後、特に言及が無い点は、実施形態1と同等の構成である。
図8は本実施形態における、コマンド生成フィルタ206の処理フローを示す。コマンド生成フィルタ206は、OSのコマンド生成フィルタ制御機能により起動され(S801)、アプリケーション201が生成した印刷データを受信する(S802)。次に、コマンド生成フィルタ206は、受信した印刷データに対し所定の変換処理を施すことで、印刷装置120が解釈可能な印刷コマンドを生成する(S803)。その後、コマンド生成フィルタ206は生成した印刷コマンドを、情報処理装置110のRAM116へ出力する(S804)。S805では、コマンド生成フィルタ206は、印刷コマンドへの変換処理が施されていない印刷データが残存するか否かを判定する。S805の判定が真であればS803へ戻り、未変換の印刷データに対し変換処理を施す。S804の判定が偽であれば、コマンド生成フィルタ206は処理を終了する(S806)。
図9はスプーラ203の処理フローを示す。コマンド生成フィルタ206により、印刷装置120が解釈可能な印刷コマンドがRAM120へ出力されると、スプーラ203は印刷コマンドの送信処理を開始する(S901)。次に、スプーラ203はUSBポートモニタ208のStartDocPort()を実行し、USBポートモニタ208に対し印刷コマンドの送信処理の開始を通知する(S902)。次に、スプーラ203は、RAM116に印刷装置120へ送信すべき印刷コマンドが残存しているか否かを判定する(S903)。送信すべき印刷コマンドが残存している場合は、続いて、スプーラ203は、印刷コマンド送信処理のキャンセル要求が発行されたか否かを判定する(S904)。S903の判定が偽であれば、スプーラ203はUSBポートモニタ208のWritePort()を実行し、USBポートモニタ208へ印刷コマンドを転送する(S905)。USBポートモニタ208は受信した印刷コマンドを順次印刷装置120へ送信する。次に、スプーラ203は、USBポートモニタ208のWritePort()が正常に完了したか否かを判定する(S906)。S906の判定が真であれば、スプーラ203はUSBポートモニタ208のWritePort()が正常に完了したことを示す情報を処理結果情報として所定の領域に記録する(S907)。その後、スプーラはS903へ戻る。またS906の判定が否であれば、スプーラ203は即座にS903へ戻る。
一方、S903にて送信すべき印刷データが残存していなければ、スプーラ203は、USBポートモニタ208のEndDocPort()を実行し、USBポートモニタ208に印刷コマンドの送信処理の終了を通知する(S908)。その後、スプーラ203は、送信処理が完了した印刷コマンドに対応する印刷ジョブをプリントキュー204から削除し(S909)、印刷コマンドの送信処理を終了する(S916)。
次にS904の判定によりスプーラ203が送信処理のキャンセル要求を検知した場合の処理について述べる。S904にてスプーラ203が送信処理のキャンセル要求を検知すると、スプーラ203は、S907にてスプーラ203が記録した処理結果情報を参照し、USBポートモニタ208のWritePort()が正常に完了したか否かを判定する(S910)。
S910にて該処理結果情報は、WritePort()が正常に完了したことを示す情報でない場合、スプーラ203は、USBポートモニタ208のEndDocPort()を実行し、USBポートモニタ208に印刷コマンドの送信処理の終了を通知する(S908)。その後、スプーラ203は、送信処理が完了した印刷コマンドに対応する印刷ジョブをプリントキュー204から削除し(S909)、印刷コマンドの送信処理を終了する(S916)。印刷装置120は、S905におけるWritePort()が少なくとも1回以上正常に完了しない限り、スプーラ203の送信する印刷コマンドに対し印刷処理を開始しない。つまり、S910における判定が否である場合は、印刷装置120にてキャンセルすべき印刷ジョブに対する処理が進行しておらず、スプーラ203はOSに対し印刷装置120への印刷キャンセルコマンドの発行を要求すべきでない。一方、S910にて該処理結果情報は、WritePort()が正常に完了したことを示す情報である場合、続いて、スプーラ203はUSBポートモニタ208から印刷装置120のステータスを示す状態情報を取得する(S911)。その後、スプーラ203は、該取得した状態情報に基づき、該状態情報が、印刷装置120にてスプーラ203が送信中の印刷コマンドに対する印刷処理を継続できないエラーが生じていることを示すか否かを判断する(S912)。S912にて印刷装置120が印刷処理を継続できないエラー状態でないことを検知した場合、スプーラ203はUSBポートモニタ208のEndDocPort()を実行し、USBポートモニタ208に印刷コマンドの送信処理の終了を通知する(S913)。次に、スプーラ203はOSに対し印刷装置120への印刷キャンセルコマンドの発行を要求する(S914)。印刷装置120は印刷キャンセルコマンドを受信すると、スプーラ203により送信された印刷コマンドに対する印刷処理を中止し、初期状態へと遷移する。その後、スプーラ203は、送信処理が完了した印刷コマンドに対応する印刷ジョブをプリントキュー204から削除し(S909)、印刷コマンドの送信処理を終了する(S916)。一方、S912にて印刷装置120が印刷処理を継続できないエラー状態であることを検知すると、スプーラ203はUSBポートモニタ208のEndDocPort()の実行処理(S913)に先立ち、OSに対し印刷キャンセルコマンドの発行を要求する(S915)。印刷装置120は印刷キャンセルコマンドを受信すると、スプーラ203により送信された印刷コマンドに対する印刷処理を中止し、印刷処理を継続できないエラー状態から初期状態へと遷移する。その後、スプーラ203はUSBポートモニタ208のEndDocPort()を実行(S913)する。次に、スプーラ203はOSに対し印刷装置120への印刷キャンセルコマンドの発行を要求する(S914)。続いて、スプーラ203は、送信処理が完了した印刷コマンドに対応する印刷ジョブをプリントキュー204から削除し(S909)、印刷コマンドの送信処理を終了する(S916)。
S905においてWritePort()が少なくとも1回以上正常に完了すると、印刷装置120はスプーラ203の送信する印刷コマンドに対する印刷処理を開始する。そのため、スプーラ203は、S910にてUSBポートモニタ208のWritePort()が正常に完了したことを検知した場合は、OSに対し印刷キャンセルコマンドの発行を要求すべきである。しかしながら、印刷装置120にて印刷処理を継続できないエラーが生じている場合、USBポートモニタ208はEndDocPort()内の処理を完了することができない。そこで、印刷装置120が印刷処理を継続できないエラー状態である場合は、スプーラ203は、USBポートモニタ208のEndDocPort()を実行する前に、OSに対する印刷キャンセルコマンドの送信要求処理を追加する。これにより、USBポートモニタ208のEndDocPort()が実行される前に、印刷装置120はエラー状態から初期状態に遷移するため、USBポートモニタ208はEndDocPort()内の処理を正常に完了することが可能となる。ところで、USBポートモニタ208のWritePort()の実行による、スプーラ203からUSBポートモニタ208への印刷コマンド送信処理と、USBポートモニタ208から印刷装置120への印刷コマンド送信処理は非同期的に処理される。そのため、印刷キャンセルコマンドを受信した印刷装置120がエラー状態から印刷コマンドを受信可能な状態へ遷移すると、USBポートモニタ208の内部記憶領域(不図示)に印刷装置120へ未達の印刷コマンドが存在すれば、USBポートモニタ208は該印刷コマンドを印刷装置120へ送信する場合がある。これにより、印刷装置120は受信すべきでない印刷コマンドを受信し、アプリケーションやユーザが予期しない処理を開始してしまう恐れがある。USBポートモニタ208の内部記憶領域(不図示)に保持されている印刷装置120へ未達の印刷コマンドは、USBポートモニタ208のEndDocPort()の実行により削除される。このため、スプーラ203は、USBポートモニタ208のEndDocPort()実行後に、再度OSに対する印刷キャンセルコマンド発行要求を実施し、確実に印刷装置120を初期状態へ遷移させる必要がある。
以上により、印刷装置120が印刷処理を継続できないエラー状態である場合、スプーラ203はUSBポートモニタ208のEndDocPort()を実行する前に、OSに対する印刷キャンセルコマンド発行要求を追加することで、印刷装置120を印刷コマンド受信可能な状態へと遷移させる。これにより、USBポートモニタ208はEndDocPort()内の処理を正常に完了させることができ、印刷装置120がエラー状態であっても適切な印刷ジョブのキャンセル処理を実現することが可能となる。
<実施形態3>
本実施形態では、実施形態1、2とは異なる手法により課題を解決する例を述べる。本実施形態においては、印刷装置120にて印刷処理を継続できないエラーが生じている場合は、OSは印刷装置120に対し発行された全ての出力処理を強制的に終了させることにより、課題を解決する。なお、本実施形態におけるコマンド生成フィルタ206の処理は、実施形態2と同様であり、その他特に言及が無い点は、実施形態1と同等の構成である。
図10はスプーラ203の処理フローを示す。コマンド生成フィルタ206により、印刷装置120が解釈可能な印刷コマンドがRAM120へ出力されると、スプーラ203は印刷コマンドの送信処理を開始する(S1001)。次に、スプーラ203はUSBポートモニタ208のStartDocPort()を実行し、USBポートモニタ208に対し印刷コマンドの送信処理の開始を通知する(S1002)。次に、スプーラ203は、RAM116に印刷装置120へ送信すべき印刷コマンドが残存しているか否かを判定する(S1003)。S1003にて送信すべき印刷データが残存していないことを検知すると、スプーラ203は、USBポートモニタ208のEndDocPort()を実行し、USBポートモニタ208に印刷コマンドの送信処理の終了を通知する(S1004)。その後、スプーラ203は、送信処理が完了した印刷コマンドに対応する印刷ジョブをプリントキュー204から削除し(S1009)、印刷コマンドの送信処理を終了する(S1010)。一方、送信すべき印刷コマンドが残存していることを検知すると、スプーラ203はUSBポートモニタ208のWritePort()を実行し、USBポートモニタ208へ印刷コマンドを転送する(S1005)。その後、スプーラ203は、印刷コマンド送信処理のキャンセル要求が発行されたか否かを判定する(S1006)。S1006にて、スプーラ203がキャンセル要求を検知しなかった場合は、S1003へ戻る。S1006にて、スプーラ203がキャンセル要求を検知した場合は、スプーラ203は、USBポートモニタ208のEndDocPort()を実行し、USBポートモニタ208に印刷コマンドの送信処理の終了を通知する(S1007)。続いて、スプーラ203はOSに対し印刷装置120への印刷キャンセルコマンドの発行を要求する(S1008)。その後、スプーラ203は、送信処理が完了した印刷コマンドに対応する印刷ジョブをプリントキュー204から削除し(S1009)、印刷コマンドの送信処理を終了する(S1010)。
ここで、USBポートモニタ208は、EndDocPort()内で実行する処理の1つとして、OSのCancelIo()を実行する。CancelIo()を実行することで、USBポートモニタ208は、印刷装置120に対して未処理の出力処理があれば、これを停止させる。一方、USBポートモニタ208から印刷装置120への印刷コマンドの出力処理は、複数のスレッドにより実行される。ところが、CancelIo()の実行により停止可能な出力処理は、CancelIo()が実行されたスレッドと同一のスレッドから発行された出力処理に限られている。また、他のスレッドから発行された出力処理に対しては、それらの処理が全て完了するまで、OSはCancelIo()は終了しない。従って、印刷装置120にてエラーが発生している間は、印刷装置120に対して各スレッドから発行された全ての出力処理が完了しないため、CancelIo()は終了せず、USBポートモニタ208はEndDocPort()に続く処理を実行することができない。
そこで、本実施形態ではCancelIo()内部にて、図11に示す処理手順を採用することでこの課題を解決する。スプーラ203により、USBポートモニタ208のEndDocPort()が実行されると、USBポートモニタ208はEndDocPort()の内部処理として、OSのCancelIo()を実行する(S1101)。次に、OSは、特定のスレッドすなわち、CancelIo()が実行されたスレッドと同一のスレッドから印刷装置120に対し発行された出力処理の中で未処理の出力処理を停止する。続いて、OSは、CancelIo()が実行されたスレッドと異なるスレッドから、印刷装置120に対し発行された出力処理の中で未処理の処理があるか否かを判定する(S1103)。S1103において、印刷装置120に対する全ての出力処理が完了していることを検知すると、OSはCancelIo()の処理を終了する(S1107)。一方、S1103において、印刷装置120に対する全ての出力処理が完了していないことを検知すると、続いて、OSは印刷装置120から印刷120の状態情報を取得する(S1104)。その後、OSは該取得した状態情報が、印刷装置120がエラー状態であることを示す情報であるか否かを判定する(S1105)。S1105において、印刷装置120がエラー状態でないと判断した場合は、S1103へ戻る。一方、S1105において、印刷装置120がエラー状態であると判断した場合は、OSは、CancelIo()が実行されたスレッドと異なるスレッドから発行された出力処理であっても、未処理であれば出力処理の全てを停止する(S1106)。最後にS1107にて、OSはCancelIo()の処理を終了する(S1107)。
通常、スプーラ203はUSBポートモニタ208のWritePort()の完了を検知した時点で、印刷コマンドの印刷装置120への送信処理は完了した判断する。しかし、USBポートモニタ208から印刷装置120に対する出力処理は、OSの処理負荷や、印刷装置120の動作状況に起因して、印刷装置120がエラー状態になくとも即座に完了しない場合が生じ得る。このとき、印刷装置120の状態に関わらず、OSが常に印刷装置120に対する全ての出力処理を停止すると、スプーラ203の認識する印刷装置120へ到達した印刷コマンドのサイズと、実際に印刷装置120へ到達した印刷コマンドのサイズに大きな乖離が生じ得る。これはソフトウェアの動作上、好ましい状況ではない。例えば、スプーラ203を経由し印刷装置120へ送信した印刷コマンドのサイズを取得することで、印刷ジョブの進捗状況を示すアプリケーションは、適切な情報を示すことができない。そのため、OSは、全ての出力処理を完了できないエラーが、印刷装置120にて生じている場合に限定して、印刷装置120に対し発行された全ての出力処理を停止すべきである。
以上により、OSはCancelIo()内部の処理において、印刷装置120が印刷処理を継続できないエラー状態である場合は、CancelIo()が実行されたスレッドと異なるスレッドから発行された出力処理であっても、未処理であれば出力処理の全てを停止する。これにより、印刷装置120がエラー状態であっても、USBポートモニタ208はEndDocPort()を終了させることができ、スプーラ203は続く印刷キャンセルコマンドの発行要求を実施することが可能となる。
<実施形態4>
本発明の目的は前述した実施例の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータまたはCPUまたはMPU)が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することとなり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、SSD、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROM、DVDなどを用いることができる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施例の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOSなどが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれることは言うまでもない。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。

Claims (12)

  1. 印刷装置に送信される印刷コマンドを生成する情報処理装置であって、
    前記印刷コマンドに識別情報を付加する付加手段と、
    前記印刷装置から、前記印刷装置にて進行中の印刷処理に対応する印刷コマンドに付加された識別情報を取得する識別情報取得手段と、
    前記印刷装置から、前記印刷装置にて進行中の印刷処理の進捗を示す進捗情報を取得する進捗情報取得手段と、
    前記識別情報取得手段により取得された前記識別情報と、前記進捗情報取得手段により取得された前記進捗情報から、前記情報処理装置により生成された印刷コマンドに基づく印刷処理が前記印刷装置にて完了したと前記印刷コマンドの生成が終わった後において判断される場合、オペレーティングシステムへ制御を戻すことで印刷処理を終了する終了手段を有し、
    前記終了手段によって前記オペレーティングシステムへ制御が戻された場合、プリントキューから前記印刷コマンドに対応する印刷ジョブが削除され、
    前記情報処理装置により生成された印刷コマンドにより定められる印刷処理が前記印刷装置にて完了したと前記印刷コマンドの生成が終わった後において判断されない場合、前記終了手段は、前記オペレーティングシステムへ制御を戻さないことを特徴とする情報処理装置。
  2. 前記印刷装置にて進行中の印刷処理に対する中止要求を取得する中止要求取得手段と、
    前記中止要求取得手段が印刷処理に対する中止要求を取得した場合、前記識別情報取得手段が前記識別情報を取得し、
    前記識別情報取得手段により取得され識別情報に基づき、前記印刷装置にて進行中の印刷処理に対応する印刷コマンドに付された識別情報は、前記情報処理装置により付加された識別情報であると判断される場合、前記印刷装置にて進行中の印刷処理の中止を指示する中止指示手段と、
    を有することを特徴とする請求項1記載の情報処理装置。
  3. 前記情報処理装置にて実行される所定の処理終了後、前記所定の処理が終了したことを示す処理フェーズ情報を記録する記録手段と、
    前記印刷処理の中止要求を取得する中止要求取得手段により印刷処理の中止要求が取得された場合、前記記録手段により記録された処理フェーズ情報に基づき、前記識別情報取得手段による前記識別情報の取得処理を実行するか否かを制御する手段と、
    を有することを特徴とする請求項1または請求項2記載の情報処理装置。
  4. 前記付加手段により印刷コマンドへ付加された識別情報と、前記識別情報取得手段により取得された識別情報が一致する場合、前記印刷処理の中止指示手段が前記印刷装置にて進行中の印刷処理の中止を指示する手段、
    を有することを特徴とする請求項1乃至3何れか1項記載の情報処理装置。
  5. 前記情報処理装置と前記印刷装置を接続する双方向通信手段の種別を判定する判定手段と、
    を有することを特徴とする請求項1乃至4何れか1項記載の情報処理装置。
  6. 印刷装置に送信される印刷コマンドを生成するコンピュータを、
    前記印刷コマンドに識別情報を付加する付加手段と、
    前記印刷装置から、前記印刷装置にて進行中の印刷処理に対応する印刷コマンドに付加された識別情報を取得する識別情報取得手段と、
    前記印刷装置から、前記印刷装置にて進行中の印刷処理の進捗を示す進捗情報を取得する進捗情報取得手段と、
    前記識別情報取得手段により取得された前記識別情報と、前記進捗情報取得手段により取得された前記進捗情報から、前記コンピュータにより生成された印刷コマンドに基づく印刷処理が前記印刷装置にて完了したと前記印刷コマンドの生成が終わった後において判断される場合、オペレーティングシステムへ制御を戻すことで印刷処理を終了する終了手段として機能させ、
    前記終了手段によって前記オペレーティングシステムへ制御が戻された場合、プリントキューから前記印刷コマンドに対応する印刷ジョブが削除され、
    前記コンピュータにより生成された印刷コマンドにより定められる印刷処理が前記印刷装置にて完了したと前記印刷コマンドの生成が終わった後において判断されない場合、前記終了手段は、前記オペレーティングシステムへ制御を戻さないことを特徴とする前記コンピュータが読取可能なプログラム。
  7. 前記印刷装置にて進行中の印刷処理に対する中止要求を取得する中止要求取得手段と、
    前記中止要求取得手段が印刷処理に対する中止要求を取得した場合、前記識別情報取得手段が前記識別情報を取得し、
    前記識別情報取得手段により取得され識別情報に基づき、前記印刷装置にて進行中の印刷処理に対応する印刷コマンドに付された識別情報は、前記コンピュータにより付加された識別情報であると判断される場合、前記印刷装置にて進行中の印刷処理の中止を指示する中止指示手段として前記コンピュータを更に機能させることを特徴とする請求項6記載のプログラム。
  8. 前記コンピュータにて実行される所定の処理終了後、前記所定の処理が終了したことを示す処理フェーズ情報を記録する記録手段と、
    前記印刷処理の中止要求を取得する中止要求取得手段により印刷処理の中止要求が取得された場合、前記記録手段により記録された処理フェーズ情報に基づき、前記識別情報取得手段による前記識別情報の取得処理を実行するか否かを制御する手段として前記コンピュータを更に機能させることを特徴とする請求項6または請求項7記載のプログラム。
  9. 前記付加手段により印刷コマンドへ付加された識別情報と、前記識別情報取得手段により取得された識別情報が一致する場合、前記印刷処理の中止指示手段が前記印刷装置にて進行中の印刷処理の中止を指示する手段として前記コンピュータを更に機能させることを特徴とする請求項6乃至8何れか1項記載のプログラム。
  10. 前記コンピュータと前記印刷装置を接続する双方向通信手段の種別を判定する判定手段として前記コンピュータを更に機能させることを特徴とする請求項6乃至9何れか1項記載のプログラム。
  11. 印刷コマンドを解釈して前記印刷コマンドにより定められる印刷処理を実行する印刷装置と双方向通信可能な接続手段を介して接続される情報処理装置であって、
    前記情報処理装置上で稼働するオペレーティングシステムに対し印刷コマンドの前記印刷装置への送信処理の実行を指示する指示手段と、
    前記送信処理の処理結果を記録する記録手段と、
    前記オペレーティングシステムに対し、前記指示手段により実行を指示された印刷コマンドの送信処理の終了を通知する通知手段と、
    前記印刷装置にて進行中の印刷処理の中止要求を取得する中止要求取得手段と、
    前記中止要求取得手段により印刷処理の中止要求が取得された場合、前記記録手段により記録された処理結果に基づき、少なくとも1回以上前記送信処理が成功しているか否かを判断する判断手段と、
    前記判断手段により少なくとも1回以上前記送信処理が成功していると判断された場合、前記印刷装置から、前記印刷装置の状態を示す状態情報を取得する情報取得手段と、
    前記情報取得手段により取得された状態情報が、前記印刷装置が印刷処理を継続できない状態であることを示す場合に、前記印刷コマンド送信処理の終了通知の前に、前記印刷装置にて進行中の印刷処理の中止を指示する中止指示手段と
    を有することを特徴とする情報処理装置。
  12. 印刷コマンドを解釈して前記印刷コマンドにより定められる印刷処理を実行する印刷装置と双方向通信可能な接続手段を介して接続される情報処理装置の制御方法であって、
    前記情報処理装置上で稼働するオペレーティングシステムに対し印刷コマンドの前記印刷装置への送信処理の実行を指示する指示ステップと、
    前記送信処理の処理結果を記録する記録ステップと、
    前記オペレーティングシステムに対し、前記指示ステップにより実行を指示された印刷コマンドの送信処理の終了を通知する通知ステップと、
    前記印刷装置にて進行中の印刷処理の中止要求を取得する中止要求取得ステップと、
    前記中止要求取得ステップにより印刷処理の中止要求が取得された場合、前記記録ステップにより記録された処理結果に基づき、少なくとも1回以上前記送信処理が成功しているか否かを判断する判断ステップと、
    前記判断ステップにより少なくとも1回以上前記送信処理が成功していると判断された場合、前記印刷装置から、前記印刷装置の状態を示す状態情報を取得する情報取得ステップと、
    前記情報取得ステップにより取得された状態情報が、前記印刷装置が印刷処理を継続できない状態であることを示す場合に、前記印刷コマンド送信処理の終了通知の前に、前記印刷装置にて進行中の印刷処理の中止を指示する中止指示ステップと
    を有することを特徴とする情報処理装置の制御方法。
JP2013001087A 2013-01-08 2013-01-08 情報処理装置およびその制御方法、 Active JP6245806B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013001087A JP6245806B2 (ja) 2013-01-08 2013-01-08 情報処理装置およびその制御方法、
US14/148,474 US9007641B2 (en) 2013-01-08 2014-01-06 Information processing apparatus, control method, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013001087A JP6245806B2 (ja) 2013-01-08 2013-01-08 情報処理装置およびその制御方法、

Publications (2)

Publication Number Publication Date
JP2014134861A JP2014134861A (ja) 2014-07-24
JP6245806B2 true JP6245806B2 (ja) 2017-12-13

Family

ID=51060747

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013001087A Active JP6245806B2 (ja) 2013-01-08 2013-01-08 情報処理装置およびその制御方法、

Country Status (2)

Country Link
US (1) US9007641B2 (ja)
JP (1) JP6245806B2 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015215653A (ja) * 2014-05-08 2015-12-03 コニカミノルタ株式会社 プリンタドライバ及びプリンタドライバの禁則処理制御方法
JP6520278B2 (ja) * 2015-03-24 2019-05-29 セイコーエプソン株式会社 印刷制御装置、印刷システム、及び、印刷制御方法
TWI573073B (zh) 2014-06-05 2017-03-01 Seiko Epson Corp A printing control device, a printing system, and a printing control method
US10210339B2 (en) * 2014-09-30 2019-02-19 Hewlett-Packard Development Company, L.P. Cancellation requests
JP6609140B2 (ja) 2015-08-25 2019-11-20 キヤノン株式会社 情報処理装置とその制御方法、及びデバイスアプリケーションとプログラム
JP6723025B2 (ja) * 2016-02-22 2020-07-15 キヤノン株式会社 情報処理装置およびその制御方法、並びにプログラム
JP6639269B2 (ja) * 2016-02-29 2020-02-05 キヤノン株式会社 情報処理装置、制御方法及びプログラム
JP2018073196A (ja) * 2016-10-31 2018-05-10 キヤノン株式会社 情報処理装置、制御方法およびプログラム
JP6881194B2 (ja) * 2017-09-28 2021-06-02 ブラザー工業株式会社 プリンタドライバおよび、情報処理装置
JP6939342B2 (ja) 2017-09-28 2021-09-22 ブラザー工業株式会社 プリンタドライバおよび、情報処理装置
CN108737566B (zh) * 2018-06-15 2021-03-05 上海新炬网络技术有限公司 一种分布式的实时消息过滤系统
JP7392509B2 (ja) * 2020-02-18 2023-12-06 ブラザー工業株式会社 システム、プログラム、および情報処理装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3733259B2 (ja) 1999-03-05 2006-01-11 キヤノン株式会社 情報処理装置および情報処理方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体
JP2003303081A (ja) * 2002-04-11 2003-10-24 Canon Inc 情報処理装置およびデータ処理方法および記憶媒体およびプログラム
JP2004078823A (ja) * 2002-08-22 2004-03-11 Oki Data Corp 画像形成システム及び画像形成装置
JP4449367B2 (ja) * 2003-08-22 2010-04-14 セイコーエプソン株式会社 プリンタ
US20060044595A1 (en) * 2004-08-24 2006-03-02 Sharp Laboratories Of America Inc. Imaging job monitoring and pipelining

Also Published As

Publication number Publication date
US20140192376A1 (en) 2014-07-10
JP2014134861A (ja) 2014-07-24
US9007641B2 (en) 2015-04-14

Similar Documents

Publication Publication Date Title
JP6245806B2 (ja) 情報処理装置およびその制御方法、
JP4980776B2 (ja) 画像形成装置、プログラム及び記録媒体
JP7059752B2 (ja) アプリケーションプログラム
JP2002163086A (ja) 情報処理装置及び分散印刷制御方法及び記憶媒体並びにプログラム
US8649049B2 (en) Image forming apparatus, job management method, and storage medium in which a job designated in a job list for reprinting can be securely reprinted
JP3903024B2 (ja) 出力管理方法及び情報処理装置
JP5729903B2 (ja) 情報処理装置、その方法およびプログラム
JP6362453B2 (ja) 印刷システム、画像処理装置、情報処理方法及びプログラム
US8416439B2 (en) Printing method of attached file, and image forming apparatus and image forming system employing the same
JP2007011469A (ja) ジョブ状態監視システム、ジョブ状態監視方法、プログラム及び記憶媒体
JP2013154606A (ja) 印刷装置及びその制御方法
JP6188735B2 (ja) 印刷装置、印刷装置の制御方法、およびプログラム
JP6639269B2 (ja) 情報処理装置、制御方法及びプログラム
JP2012146240A (ja) アプリケーションプログラムとプリンタードライバー間のデータ通信方法およびプログラム
US20180121147A1 (en) Information processing apparatus, control method, and storage medium
EP3193249B1 (en) Print data processing apparatus, print data processing method, and program
CN108027752B (zh) 信息处理装置、用于信息处理装置的控制方法、和程序
US9354834B2 (en) Printing with virtual printer
US9207889B2 (en) Information processing apparatus, information processing method, and storage medium
US10262247B2 (en) Image forming apparatus for converting print data into intermediate data, method for controlling image forming apparatus, and storage medium
JP2008310419A (ja) 情報処理装置、情報処理方法、プログラム及び、記憶媒体
CN107544761B (zh) 图像形成装置及信息处理方法
JP5062750B2 (ja) 画像形成装置
JP6818563B2 (ja) 情報処理システム、情報処理方法、およびプログラム
JP2005174225A (ja) 情報処理装置、印刷システム、情報処理方法、及びコンピュータプログラム、並びにコンピュータ読み取り可能な記憶媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160108

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161111

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170418

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170616

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: 20171017

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171114

R151 Written notification of patent or utility model registration

Ref document number: 6245806

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151