JP2006215805A - 印刷情報処理装置、印刷情報処理プログラム及び記録媒体 - Google Patents

印刷情報処理装置、印刷情報処理プログラム及び記録媒体 Download PDF

Info

Publication number
JP2006215805A
JP2006215805A JP2005027723A JP2005027723A JP2006215805A JP 2006215805 A JP2006215805 A JP 2006215805A JP 2005027723 A JP2005027723 A JP 2005027723A JP 2005027723 A JP2005027723 A JP 2005027723A JP 2006215805 A JP2006215805 A JP 2006215805A
Authority
JP
Japan
Prior art keywords
print information
value
variable
display
print
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2005027723A
Other languages
English (en)
Other versions
JP4425808B2 (ja
Inventor
Hiroya Kumashio
弘也 熊塩
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2005027723A priority Critical patent/JP4425808B2/ja
Publication of JP2006215805A publication Critical patent/JP2006215805A/ja
Application granted granted Critical
Publication of JP4425808B2 publication Critical patent/JP4425808B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】 複数のアプリケーションのそれぞれにおいて操作対象とされているデータの印刷情報を統合的に提供することのできる印刷情報処理装置の提供を目的とする。
【解決手段】 アプリケーションにおいて操作対象とされているデータの印刷情報を生成する印刷情報生成手段と、前記印刷情報生成手段が第一のアプリケーションからの指示に応じて生成した前記印刷情報を取得し、該印刷情報の表示画面を表示させる印刷情報表示手段と、前記印刷情報生成手段が前記第一のアプリケーションとは別の第二のアプリケーションからの指示に応じて生成した前記印刷情報を取得し、前記印刷情報表示手段に引き渡す印刷情報送信手段とを有し、前記印刷情報表示手段は、前記印刷情報送信手段より受け取った前記第二のアプリケーションに係る前記印刷情報を、前記第一のアプリケーションに係る前記印刷情報と同一の表示画面において表示させることにより上記課題を解決する。
【選択図】 図8

Description

本発明は、印刷情報処理装置、印刷情報処理プログラム及び記録媒体に関し、特にアプリケーションにおいて操作対象とされているデータの印刷情報を表示させる印刷情報処理装置、印刷情報処理プログラム及び記録媒体に関する。
一般的なワープロソフトや表計算ソフト等では、編集対象となっている文書を印刷する前に、その印刷イメージを画面上で確認することができる。このような機能は、印刷プレビューとも呼ばれている。印刷プレビューによれば、ユーザは、各種の印刷設定の結果をも含めて、印刷イメージを確認することができる。印刷プレビューによって、印刷イメージを確認することで、ユーザは、印刷前に印刷設定のミス等に気付くことができ、用紙の無駄等を回避することができる。
しかしながら、印刷プレビューの画面は、各アプリケーションごとに表示されるため、複数のアプリケーションから同時に起動された場合は、複数のプレビュー画面が表示されてしまうという問題がある。
本発明は、上記の点に鑑みてなされたものであって、複数のアプリケーションのそれぞれにおいて操作対象とされているデータの印刷情報を統合的に提供することのできる印刷情報処理装置、印刷情報処理プログラム及び記録媒体の提供を目的とする。
そこで上記課題を解決するため、本発明は、請求項1に記載されるように、アプリケーションからの指示に基づき、前記アプリケーションにおいて操作対象とされているデータの印刷情報を生成する印刷情報生成手段と、前記印刷情報生成手段が第一のアプリケーションからの指示に応じて生成した前記印刷情報を取得し、該印刷情報の表示画面を表示させる印刷情報表示手段と、前記印刷情報生成手段が前記第一のアプリケーションとは別の第二のアプリケーションからの指示に応じて生成した前記印刷情報を取得し、前記印刷情報表示手段に引き渡す印刷情報送信手段とを有し、前記印刷情報表示手段は、前記印刷情報送信手段より受け取った前記第二のアプリケーションに係る前記印刷情報を、前記第一のアプリケーションに係る前記印刷情報と同一の表示画面において表示させることを特徴とする。
このような印刷情報処理装置では、それぞれ別のアプリケーションからの印刷情報であっても同一の表示画面に表示させることができるため、複数のアプリケーションのそれぞれにおいて操作対象とされているデータの印刷情報を統合的に提供することができる。
また、上記課題を解決するため、本発明は、上記印刷情報処理装置における機能をコンピュータに実行させるための印刷情報処理プログラム、又は前記印刷情報処理プログラムを記録した記録媒体としてもよい。
本発明によれば、複数のアプリケーションのそれぞれにおいて操作対象とされているデータの印刷情報を統合的に提供することのできる印刷情報処理装置、印刷情報処理プログラム及び記録媒体を提供することができる。
以下、図面に基づいて本発明の実施の形態を説明する。図1は、本発明の実施の形態における印刷システムの構成例を示す図である。図1に示されるように、本実施の形態における印刷システム1は、端末10と、プリンタ20a、20b及び20c(以下、総称する場合「プリンタ20」という。)と等より構成されている。
プリンタ20は、一般的なプリンタであり、端末10からの指示に応じ印刷処理を実行する。なお、プリンタ20a及び20bは、例えば、LAN(Local Area Network)等のネットワーク30(有線又は無線の別は問わない。)によって端末10と接続されている。プリンタ20cは、例えば、RS−232Cケーブル又はUSBケーブル等のケーブル40によって端末10と接続されている。
端末10は、ユーザが文書データの生成や文書データの印刷指示等を行うために利用する、PC(Personal Computer)、PDA(Personal Digital(Data) Assistants)、又は携帯電話等の端末である。端末10は、例えば、Windows(登録商標)等のOS(Operating System)上で、各種のソフトウェアを実行する。
図2は、本発明の実施の形態における端末のハードウェア構成例を示す図である。図2の端末10は、それぞれバスBで相互に接続されているドライブ装置100と、補助記憶装置102と、メモリ装置103と、演算処理装置104と、インタフェース装置105と、表示装置106と、入力装置107とを有するように構成される。
端末10での処理を実現するプログラムは、CD―ROM等の記録媒体101によって提供される。プログラムを記録した記録媒体101がドライブ装置100にセットされると、プログラムが記録媒体101からドライブ装置100を介して補助記憶装置102にインストールされる。補助記憶装置102は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
メモリ装置103は、プログラムの起動指示があった場合に、補助記憶装置102からプログラムを読み出して格納する。演算処理装置104は、メモリ装置103に格納されたプログラムに従って端末10に係る機能を実現する。インタフェース装置105は、図2のネットワーク30に接続するためのインタフェースとして用いられる。表示装置106はプログラムによるGUI(Graphical User Interface)等を表示する。入力装置107はキーボード及びマウス等で構成され、様々な操作指示を入力するために用いられる。
なお、プログラムのインストールは必ずしも記録媒体101より行う必要はなく、ネットワーク30を介して他のコンピュータよりダウンロードするようにしてもよい。
図3は、本発明の実施の形態における端末の印刷機能に関する機能構成例を示す図である。図3において、端末10は、文書データ等の作成及び印刷に関する機能として、アプリケーション11、グラフィックエンジン12、プリンタドライバ13、スプーラ14及び印刷ジョブ管理モジュール15等を有している。
アプリケーション11は、文書データ等、プリンタ20に印刷させる情報の生成等に利用されるワープロソフト又は表計算ソフト等のアプリケーションである。グラフィックエンジン12は、プリンタやディスプレイ等のデバイスの種別による差違を吸収した描画用の関数インタフェースをアプリケーション11に提供するモジュールである。アプリケーション11は、操作対象となっている文書データの印刷が指示されると、グラフィックエンジン12の関数を呼び出すことにより、アプリケーション固有の形式による文書データを、アプリケーション非依存のデータ形式によるデータへと変換する。
グラフィックエンジン12は、アプリケーション11からの関数呼び出しに応じ、文書データをアプリケーション非依存の形式のデータ(例えば、EMF形式等のデータ、以下「描画データ」という。)に変換し、生成された描画データをプリンタドライバ13に出力する。なお、グラフィックエンジン12は、例えば、Windows(登録商標)環境においてはGDI(Graphics Device Interface)が相当する。
プリンタドライバ13は、グラフィックエンジン12より出力された描画データを、当該プリンタドライバ13が対応するプリンタ(プリンタ20)に解釈可能な形式(例えば、PDL(Page Description Language))の印刷データへ変換する。但し、本実施の形態におけるプリンタドライバ13は、描画データを印刷データに変換する過程において、描画データを印刷データにする前段階の印刷中間データと呼ばれるデータを生成し、当該印刷中間データをファイル(印刷中間ファイル131)として保存する。印刷中間データの保存が完了すると、プリンタドライバ13は、その印刷中間ファイル131のファイル名(以下「印刷中間ファイル名」という。)を引数として、印刷ジョブ管理モジュール15を起動する。なお、印刷中間データは、印刷対象とされたデータの印刷イメージや印刷設定等の印刷情報を識別できるものであれば、どのような形式でもよい。
印刷ジョブ管理モジュール15は、引数として渡された印刷中間ファイル名に係る印刷中間ファイル131を読み込み、当該印刷中間データに基づくプレビュー画像の表示や、当該印刷中間データに対する各種の印刷設定を行わせるためのGUI(Graphical User Interface)(以下「印刷ジョブ管理画面」という。)を提供するモジュールである。
図4は、印刷ジョブ管理モジュールによって提供される印刷ジョブ管理画面の表示例を示す図である。図4に示されるように、印刷ジョブ管理画面150は、プレビュー表示領域1501、印刷設定領域1502、及びジョブ一覧表示領域1503等を有し、これらの各領域において印刷中間ファイル131に含まれている印刷情報を表示する画面である。
ジョブ一覧領域1503は、一つの印刷中間ファイル131から読み込まれた印刷中間データを一つのジョブとして、各ジョブを一行に割り当てて表示するリスト形式の領域である。プレビュー表示領域1501は、ジョブ一覧領域1503において選択されているジョブ(以下「カレントジョブ」という。)に係る印刷中間データのプレビュー画像を表示する領域である。印刷設定領域1502は、カレントジョブに対する各種印刷設定を行わせるための領域である。例えば、原稿サイズ、原稿の向き、印刷用紙サイズ、印刷部数、及びカラー若しくは白黒の別等を設定させることができる。
なお、印刷中間データに対する印刷設定をユーザに行わせたり、印刷中間データに基づいてプレビューを表示したりする技術については、例えば、特開2004−94955号
公報に詳しい。
印刷ジョブ管理モジュール15は、印刷ボタン1504がクリックされると、印刷ジョブ管理画面150において設定された各種印刷設定に対応する印刷設定コマンドを印刷中間データに付加し、印刷設定コマンドが付加された印刷中間データをプリンタドライバ13に出力する。プリンタドライバ13は、印刷ジョブ管理モジュール15より出力された印刷中間データをスプーラ14に対して出力する。スプーラ14に出力された印刷データは、プリンタ20へ送信され、印刷される。
なお、プリンタドライバ13が、印刷ジョブ管理モジュール15を起動するか否かは、印刷設定時(アプリケーション11の印刷メニューが選択された際)に、プリンタドライバ13が表示させる印刷ダイアログにおける設定による。すなわち、プリンタドライバ13は、印刷ダイアログにおいて印刷ジョブ管理モジュール15によるプレビュー表示を行うか否かを選択させるためのボタン(以下「プレビューボタン」という。)を表示させ、当プレビュータンがクリックされた場合に、印刷ジョブ管理モジュール15を起動する。この場合は、直ちに印刷は実行されず、印刷ジョブ管理画面150における操作を経て、印刷が実行される。
一方、プレビューボタンがクリックされず、一般的に行われているように、印刷ダイアログにおいて印刷設定が行われ、印刷指示がされた場合は、プリンタドライバ13は、印刷ジョブ管理モジュール15を起動することなく、印刷データをスプーラ14に出力する。したがって、この場合は、一般的に行われている印刷処理と同様の処理が行われる。
ところで、印刷ジョブ管理モジュール15は、例えば、Windows(登録商標)環境では、一つのEXEファイルに該当し、起動されると一つのプロセスを構成する。したがって、複数のアプリケーション11のそれぞれからプレビューが実行されると、通常であれば、複数の印刷ジョブ管理モジュール15が起動されてしまい、各アプリケーションからの印刷情報を統合的に提供することはできない。すなわち、別々に起動されたそれぞれの印刷ジョブ管理画面150のジョブ一覧領域1503には、各アプリケーション11からの印刷中間データが一つ表示されることとなる。
以下、一つの印刷ジョブ管理モジュール15のプロセスで、複数のアプリケーションからの印刷中間データを統合的に管理する方法について記述する。ここで、統合的に管理するとは、例えば、それぞれ異なるアプリケーションからの印刷中間データに係るジョブを、一つの印刷ジョブ管理画面150のジョブ一覧領域1503において同時に表示させることにより、例えば、ジョブの結合や、ジョブの順番の入れ替え等を可能とすることをいう。
図5は、印刷ジョブ管理モジュールの起動処理を説明するためのフローチャートである。図5の処理は、グラフィックエンジン12より描画データを受け取ったプリンタドライバ13が、描画データに基づいて印刷中間ファイル131を生成した後の時点から開始される。
ステップS101において、印刷ジョブ管理モジュール15は、印刷先のプリンタのプリンタ名と、プリンタドライバ101によって生成された印刷中間ファイル131のファイル名(印刷中間ファイル名)とを引数としてプリンタドライバ13によって起動される。ステップS101に続いてステップS102に進み、印刷ジョブ管理モジュール15は、印刷先のプリンタ名に基づいて文字列Sを生成する。文字列Sは、後述されるように、複数のプロセスによって共有できる記憶領域を識別するための名前として用いられる。複数のプロセスによって共有できる記憶領域としては、例えば、ファイルシステム上のファイルや、共有メモリ、又はレジストリ等が挙げられるが、本実施の形態においては、共有メモリを例として説明する。したがって、文字列Sは、共有メモリの名前として用いられる。
なお、プリンタ名をそのまま文字列Sとしてもよいが、印刷ジョブ管理モジュール15と関係の無い他のプログラムが利用する共有メモリの名前と重複する可能性を低減させるためにできるだけ特有の文字列とすることが望ましい。例えば、印刷ジョブ管理モジュール15のモジュール名(ファイル名)とプリンタ名とを結合した名前としてもよい。具体的には、印刷ジョブ管理モジュール15の名前が、「PreviewPrint」で、プリンタ名が「PrinterA」である場合は、文字列Sは、「PreviewPrint_PrinterA」といった具合となる。
ステップS102に続いてステップS103に進み、印刷ジョブ管理モジュール15は、文字列Sを名前として共有メモリの生成を試みる。共有メモリの生成に成功した場合は、ステップS104に進む。この場合、印刷ジョブ管理モジュール15の他のプロセス起動されていないと判断することができる。すなわち、後述からも明らかなように、共有メモリの生成に成功したプロセスは、当該プロセスが終了するまで共有メモリを保持し続けるところ、同時に同じ名前の共有メモリの生成はOSによって許可されないからである。なお、共有メモリの生成に成功したプロセスを、以下「メインプロセス」という。
ステップS104において、メインプロセスは、印刷ジョブ管理モジュール15の各プロセスを制御するための情報(以下「プロセス制御情報」という。)の初期値を書き込む。
図6は、プロセス制御情報の例を示す図である。図6においては、プロセス制御情報をC言語又はC++に従った表記の構造体MemDataとして表現している。構造体MemDataは、A、B、及びprocessIDの3つのメンバ変数を持つ。各メンバ変数の意味については、処理の説明と共に説明する。なお、プロセス制御情報は、必ずしも構造体である必要はなく、例えば、変数A、B、processIDがそれぞれ独立した変数として、共有メモリに割り当てられてもよい。
プロセス制御情報の初期値として、メインプロセスは、変数A及びBには0を、変数processIDには、自分(メインプロセス)のプロセスIDを書き込む。すなわち、変数processIDは、他のプロセスに、メインプロセスのプロセスIDを識別させるための変数である。なお、以下において、単に、変数A、変数B、又は変数processIDという場合、共有メモリ内における領域を意味する。したがって、変数A、B、又はprocessIDに値を書き込むといった場合、共有メモリ内の値が変化することを意味する。
ステップS104に続いてステップS105に進み、メインプロセスは、起動時の初期化処理を行う。初期化処理とは、例えば、印刷中間ファイル131の読み込みや、印刷ジョブ管理画面150の表示等、プロセスが定常状態に入るまでに必要とされる処理をいう。初期化処理が終わり、ユーザからの入力や、他のプロセスからの入力等(例えば、後述するように、印刷中間ファイル名の送信等)を受け付けられるようになると、ステップS106に進み、メインプロセスは、現在の変数Bの値に1を追加した値を変数Bに代入する(変数Bのインクリメント)。したがって、このタイミングにおいて、プロセス制御情報の値は、A=0、B=1、processID=<メインプロセスのプロセスID>となる。なお、メインプロセスは、印刷ジョブ管理画面150において、ユーザから終了指示があるまで存続し続ける。
一方、ステップS103において共有メモリの生成に失敗した場合は、ステップS107に進む。この場合は、既にメインプロセスが起動中であると判断することができる。共有メモリの生成に失敗したプロセスを、以下「サブプロセス」という。なお、サブプロセスは、共有メモリの生成に失敗した際に、共有メモリへアクセスするための情報(ハンドル等)を入手することができ、出力先のプリンタが同一のメインプロセスと同じ共有メモリへアクセスすることができる。
ステップS107において、サブプロセスは、現在の変数Aの値に1を追加した値を変数Aに代入すると共に(変数Aのインクリメント)、変数Aの値を自らが管理するメモリ空間内における変数A’に記憶する。説明を容易にするため、図5においては、当該サブプロセスは、メインプロセスの次に起動された2番目のプロセスであるとする。そうすると、ステップS107が実行される前の時点では、メインプロセスのステップS104の処理により、少なくとも変数Aの値は「0」である。したがって、サブプロセスが、ステップS107を実行することにより、変数A=1、変数A’=1となる。なお、”少なくとも変数Aの値は「0」”と記述したのは、変数Bの値は、サブプロセスが起動されたタイミングによって異なるからである。すなわち、サブプロセスが、メインプロセスの起動直後に起動された場合等、サブプロセスが、ステップS107の処理を実行する時点において、メインプロセスの処理がステップS106まで進んでいない場合は、変数Bの値は「0」であり、既にメインプロセスの処理がステップS106まで進んでいる場合は、変数Bの値は「1」であるからである。
ステップS107に続いてステップS108に進み、サブプロセスは、変数A’の値と変数Bの値とが同一であるか否かを判定する。この判定処理は、メインプロセスが定常状態にあるか否かを判定していることとなる。すなわち、ステップS107により、変数A’の値は「1」であるところ、変数Bの値は、メインプロセスが定常状態(S106)になるまで「0」のままであるからである。
変数A’の値と変数Bとの値が一致した場合(S108でYES)は、メインプロセスは定常状態であると判断できるため、サブプロセスは、変数processIDに基づいてメインプロセスのプロセスIDを識別し、自らが起動される際に引数に渡された印刷中間ファイル名をプロセス間通信によってメインプロセスに送信する(S109)。その後、サブプロセスは、自らのプロセスを終了させる。
一方、変数A’の値と変数Bとの値が一致しない場合(S108でNO)は、サブプロセスは、定期的に共有メモリにアクセスして、変数A’の値と変数Bの値との比較を繰り返す。すなわち、メインプロセスが定常状態になるまで待機する。
続いて、図7は、サブプロセスより印刷中間ファイルのファイル名の送信を受けたメインプロセスの処理を説明するためのフローチャートである。すなわち、図5のステップS109に応じてメインプロセスで実行される処理である。
サブプロセスから印刷中間ファイル名を受信すると(S111)、メインプロセスは、受信した印刷中間ファイル名に係る印刷中間ファイル131の読み込み等、新たに追加された印刷中間ファイル131についての初期化処理を行う。当該初期化処理が終了し、定常状態となると、メインプロセスは、変数Bの値をインクリメントする(S113)。
図5及び図7より、メインプロセスは、起動時において定常状態となったとき、及びサブプロセスより印刷中間ファイル名を受信するたびに変数Bの値をインクリメントする。また、各サブプロセスは、変数Aの値をインクリメントすると共に、インクリメントされた変数Aの値を変数A’に保持する。また、メインプロセスが存続している間、変数A及び変数Bの値が減少することはない。更に、各サブプロセスは、変数Bの値が、自らの変数A’の値と同値になるまで、メインプロセスへの印刷中間ファイ名の送信を待機する。すなわち、変数Aは、各サブプロセスに対して、サブプロセス間の順番を示す識別子(ここでは、番号)割り当てるための変数(第二の変数)であり、変数Bは、変数Aによって制御される順番において、何番目のサブプロセスが印刷中間ファイル名の送信を許可されるかを示す変数(第一の変数)である。
図を用いて説明する。図8は、変数A及び変数Bの意義を説明するための図である。図8において、各矢印に付されているステップ番号は、図5又は図7におけるステップ番号に対応している。但し、異なるプロセス又はタイミングにおいて実行される同一ステップを区別するため、必要に応じて枝番号が付されている。また、サブプロセス152、153、及び154は、この順番で起動された印刷ジョブ管理モジュール15のプロセスであるとする。
サブプロセス152、153、154は、それぞれが起動後に、変数Aの値をインクリメントし(S107−1、S107−2、S107−3)、インクリメントされた変数Aの値をそれぞれの変数A’に保持する。その結果、メインプロセス151、152、154のそれぞれの変数A’の値は、「1」、「2」、「3」となる。そして、変数Bの値が自らの変数A’の値と同じになるまで待機する。
一方、サブプロセス152、153、及び154より先に起動されているメインプロセス151は、初期化処理が終了すると変数Bの値を「1」とする(S106)。サブプロセス152は、Bの値が「1」、すなわち、自らの変数A’の値と同じになったことを検知すると(S108−1)、メインプロセス151に対して印刷中間ファイル名を送信する(S119−1)(印刷情報の引渡し)。
サブプロセス152から受信した印刷中間ファイル名に係る印刷中間ファイル131に対する処理を終えると、メインプロセス151は、変数Bの値を「2」とする(S113−1)。サブプロセス153は、Bの値が「2」、すなわち、自らの変数A’の値と同じになったことを検知すると(S108−2)、メインプロセス151に対して印刷中間ファイル名を送信する(S119−2)。
サブプロセス153から受信した印刷中間ファイル名に係る印刷中間ファイル131に対する処理を終えると、メインプロセス151は、変数Bの値を「3」とする(S113−2)。サブプロセス154は、Bの値が「3」、すなわち、自らの変数A’の値と同じになったことを検知すると(S108−3)、メインプロセス151に対して印刷中間ファイル名を送信する(S119−3)。
このように、変数Aと変数Bとによって、各サブプロセスがメインプロセスに対して印刷中間ファイル名を送信するタイミングを制御することで、メインプロセスが受信する印刷中間ファイル名の順番をサブプロセスが起動された順番(ユーザによってプレビューが指示された順番)に整合させることができる。また、メインプロセスが印刷中間ファイル名を受信できないときに、サブプロセスから印刷中間ファイル名が送信されるのを防止することができる。
なお、各サブプロセスから印刷中間ファイル名を受信したメインプロセスは、それぞれの印刷中間ファイル名に基づいて、各印刷中間ファイル131にアクセスすることができる。すなわち、各印刷中間ファイル131に含まれている印刷情報を一つの印刷ジョブ管理画面150に表示させることが可能となる。その際に、サブプロセスの起動順で印刷ファイル名が受信されるため、ジョブ一覧表示領域1503等においても、サブプロセスの起動順で、ジョブ一覧を表示させることができる。
一方で、各サブプロセスは、メインプロセスに対して印刷中間ファイル名を送信した後に終了してしまう。したがって、ユーザから見ると、あるアプリケーションからプレビューを実行し、印刷ジョブ管理画面150を表示させた後、更に、別のプロセスに係るアプリケーションからプレビューを実行した場合であっても、新たな印刷ジョブ管理画面150は表示されずに、既に表示されている印刷ジョブ管理画面150において、他のプロセスに係るアプリケーションからの印刷中間データと共に、印刷設定等を行うことができる。なお、共有メモリの名前は、出力先のプリンタ名に基づいて生成されるため、印刷ジョブ管理画面150は、出力先のプリンタごとに表示されることとなる。
次に、メインプロセスが終了する際の処理について説明する。図9は、メインプロセスが終了する際の処理を説明するためのフローチャートである。
例えば、印刷ジョブ管理画面150より印刷が指示されると、メインプロセスは、変数Bに「−1」を代入しておき(S121)、印刷処理の実行後、終了化処理を実行する(S122)。ここで、終了化処理とは、メモリ等の資源を開放したり、印刷ジョブ管理画面150を非表示としたりといったような、一般的なプログラムが終了時に行う処理である。続いて、メインプロセスは、自らが生成した共有メモリを削除し(S123)、メインプロセスを終了させる。
図9において、終了化処理を実行する前に、メインプロセスが変数Bに「−1」を代入するのは、例えば、メインプロセスの終了が指示された直後に起動されたサブプロセス等、これからメインプロセスに対して印刷中間ファイル名を送信しようとしているサブプロセスに対して、メインプロセスが終了しようとしていることを通知するためのである。メインプロセスが終了しようとしていることを検知したサブプロセスの振舞いは、図10に示される。
図10は、メインプロセスの終了化処理を考慮した場合の印刷ジョブ管理モジュールの起動処理を説明するためのフローチャートである。すなわち、図10は、図5と同様、印刷ジョブ管理モジュール15の起動時の処理を示すフローチャートであるが、更に、メインプロセスが終了する際に変数Bに「−1」が代入される場合があることも考慮して、図5を書き直したものである。したがって、図10中、図5と同一ステップには同一符号を付し、その説明は適宜省略する。
図10においては、ステップS103−1とステップS103−2とが更に追加されている。すなわち、共有メモリの生成(S103)に失敗した場合は、サブプロセスは、変数Bの値が「−1」であるか否かを判定する。変数Bの値が「−1」でない場合(S103−1でNO)は、サブプロセスは、図5において説明したように、ステップS107以降の処理を実行する。
変数Bの値が「−1」であった場合(S103−1でYES)は、図9において説明したようにメインプロセスは終了化処理に入っており、いずれ共有メモリが削除されることとなる。したがって、サブプロセスは、共有メモリが削除されるのを待機した後(S103−2)、再び共有メモリの生成を試みる(S103)。ここで、共有メモリの削除の待機(S103−2)は、例えば、共有メモリに定期的にアクセスし、アクセスに失敗することで共有メモリが削除されたことを検知してもよいし、共有メモリの生成を定期的に試み、生成が成功したことで、共有メモリが削除されたことを検知してもよい。後者の場合は、ステップS103−2とステップS103とが、一つのステップとなる。
共有メモリの生成に成功すると、これまでサブプロセスであったプロセスは、メインプロセスとして、ステップS104〜S106の処理を実行する。
なお、複数のサブプロセスがステップS103−2において共有メモリの削除を待機していた場合は、いずれか一つのサブプロセスが共有メモリの生成に成功することとなる。したがって、共有メモリの生成に成功したサブプロセスが、新たなメインプロセスとしてステップS104〜S106の処理を実行し、他のサブプロセスは、新たなメインプロセスに対するサブプロセスとしてステップS107〜S109の処理を実行する。
ところで、終了時以外においても、メインプロセスは、所定の処理の都合により一時的に他のプロセスから印刷中間ファイル名を送信されると都合が悪い状況になる場合が考えられる。かかる状況になった場合は、メインプロセスは、サブプロセスに対して印刷中間ファイル名を受信できない旨を通知する必要がある。そのための処理を図11に示す。
図11は、メインプロセスが印刷中間ファイル名を一時的に受信できなくなる際の処理を説明するためのフローチャートである。
例えば、印刷ジョブ管理画面150より印刷等が指示されると、メインプロセスは、変数Bの値を退避しておき、変数Bに「0」を代入する(S131)。続いて、印刷等の処理を実行する(S132)。処理が終了すると、メインプロセスは、退避しておいた変数Bの元の値を変数Bに代入する。
変数Bが「0」とされることで、メインプロセスに印刷中間ファイル名を送信しようとするサブプロセスは、ステップS108(図5又は図10)で待機することとなる。各サブプロセスの変数A’の値と「0」とが一致することはないからである。メインプロセスによる所定の処理の終了後、変数Bの値が元に戻されることで、サブプロセスは、順番にメインプロセスに対して印刷中間ファイル名を送信することが可能となる。
ところで、複数のプロセスによる共有メモリへのアクセスが同時に発生することも有りうるところ、複数のサブプロセスが同時に変数Aの値を変更した場合は、各サブプロセス間の順番が維持されないという問題がある。かかる事態の発生を防止するためには、共有メモリに対する排他制御を実装すればよい。
排他制御の仕組みとしてセマフォ(semaphore)を用いてもよい。セマフォとは一種の共有フラグで、名前を指定して生成することができる。名前を指定することで既にこの共有フラグがあるかどうかを知ることができる。共有メモリと同じ名前のセマフォを生成できたプロセスのみが共有メモリをアクセスすることができ、アクセスが終了したらセマフォもリリースするようにしておく。そうすれば、複数のプロセスから同時に同じ共有メモリにアクセスされることはない。
Windows(登録商標)においてはセマフォもオブジェクトとして存在しており、シグナル状態と非シグナル状態の二つの状態を持つ。セマフォを生成して所持しているプロセスがある場合はそのセマフォは非シグナル状態であり、セマフォを所持していたプロセスがセマフォをリリースするとシグナル状態となる。あるプロセスがセマフォを既に生成している場合、別のプロセスが同じ名前のセマフォを生成しようとすると、生成には失敗するが、生成されているセマフォの状態を取得するためのハンドルが返される。このハンドルを指定して待機関数(wait functions)を呼び出すことで、非シグナル状態からシグナル状態になるまで待つことができる。非シグナル状態からシグナル状態になって待機関数から制御が返されると、そのプロセスはセマフォを所持したことになり、セマフォの状態は非シグナル状態となる。
また、ミューテックス(mutex:mutual exclusion service)を排他制御の仕組みとして用いてもよい。ミューテックスもセマフォと同様な動きをする。すなわち、名前を指定してミューテックスオブジェクトを生成する。また名前を指定することでミューテックスオブジェクトが既に存在するかを判定することができる。オブジェクトの状態としてシグナル状態と非シグナル状態があり、各プロセスは、待機関数を使ってシグナル状態になるまで待つことができる。
図12は、ミューテックスを用いた排他制御処理を説明するためのフローチャートである。図12の処理は、共有メモリにアクセスするメインプロセス又はサブプロセスが、変数A又は変数Bの値を変更する際等、共有メモリにアクセスする際に実行される。
まず、共有メモリと同じ名前の文字列Sでミューテックスオブジェクトを生成する(S141)。生成に成功したら(S141で「成功」)共有メモリにアクセスし(S143)、アクセス終了後にミューテックスオブジェクトを削除する(S144)。共有メモリの生成に失敗したら、ミューテックスオブジェクトがシグナル状態になるまで待機した後(S142)、共有メモリにアクセスする。
本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
本発明の実施の形態における印刷システムの構成例を示す図である。 本発明の実施の形態における端末のハードウェア構成例を示す図である。 本発明の実施の形態における端末の印刷機能に関する機能構成例を示す図である。 印刷ジョブ管理モジュールによって提供される印刷ジョブ管理画面の表示例を示す図である。 印刷ジョブ管理モジュールの起動処理を説明するためのフローチャートである。 プロセス制御情報の例を示す図である。 サブプロセスより印刷中間ファイルのファイル名の送信を受けたメインプロセスの処理を説明するためのフローチャートである。 変数A及び変数Bの意義を説明するための図である。 メインプロセスが終了する際の処理を説明するためのフローチャートである。 メインプロセスの終了化処理を考慮した場合の印刷ジョブ管理モジュールの起動処理を説明するためのフローチャートである。 メインプロセスが印刷中間ファイル名を一時的に受信できなくなる際の処理を説明するためのフローチャートである。 ミューテックスを用いた排他制御処理を説明するためのフローチャートである。
符号の説明
1 印刷システム
10 端末
11 アプリケーション
12 グラフィックエンジン
13 プリンタドライバ
14 スプーラ
15 印刷ジョブ管理モジュール
20、20a、20b、20c プリンタ
30 ネットワーク
40 ケーブル
100 ドライブ装置
101 記録媒体
102 補助記憶装置
103 メモリ装置
104 演算処理装置
105 インタフェース装置
106 表示装置
107 入力装置
131 印刷中間ファイル
B バス

Claims (16)

  1. アプリケーションからの指示に基づき、前記アプリケーションにおいて操作対象とされているデータの印刷情報を生成する印刷情報生成手段と、
    前記印刷情報生成手段が第一のアプリケーションからの指示に応じて生成した前記印刷情報を取得し、該印刷情報の表示画面を表示させる印刷情報表示手段と、
    前記印刷情報生成手段が前記第一のアプリケーションとは別の第二のアプリケーションからの指示に応じて生成した前記印刷情報を取得し、前記印刷情報表示手段に引き渡す印刷情報送信手段とを有し、
    前記印刷情報表示手段は、前記印刷情報送信手段より受け取った前記第二のアプリケーションに係る前記印刷情報を、前記第一のアプリケーションに係る前記印刷情報と同一の表示画面において表示させることを特徴とする印刷情報処理装置。
  2. 前記印刷情報表示手段は、前記印刷情報の受け取りが可能となったときに所定の記憶領域における第一の変数の値を更新し、
    前記印刷情報送信手段は、前記印刷情報を引き渡す前に前記所定の記憶領域における前記第一の変数の値を参照し、該第一の変数の値に応じて前記印刷情報を前記印刷情報表示手段に引き渡すことを特徴とする請求項1記載の印刷情報処理装置。
  3. 複数の前記印刷情報送信手段を有し、
    それぞれの前記印刷情報送信手段は、前記印刷情報生成手段が、それぞれ別のアプリケーションからの指示に応じて生成した前記印刷情報を前記印刷情報表示手段に引き渡すことを特徴とする請求項2記載の印刷情報処理装置。
  4. それぞれの前記印刷情報送信手段には、それぞれが起動された順番に応じた識別子が割り当てられ、
    前記印刷情報表示手段は、前記印刷情報の受け取りが可能となったとき、及び前記印刷情報を受け取るたびに前記識別子の順番に対応させて前記第一の変数の値を更新し、
    前記印刷情報送信手段は、前記第一の変数の値が当該印刷情報送信手段に割り当てられている前記識別子の値に更新されたときに、前記印刷情報を前記印刷情報表示手段に引き渡すことを特徴とする請求項3記載の印刷情報処理装置。
  5. 前記印刷情報送信手段は、前記印刷情報送信手段が起動されるたびに値が更新される、前記所定の記憶領域における第二の変数の値を参照して、当該印刷情報送信手段に前記識別子を割り当てることを特徴とする請求項4記載の印刷情報処理装置。
  6. 前記第二の変数の値は、前記印刷情報送信手段が更新することを特徴とする請求項5記載の印刷情報処理装置。
  7. 前記印刷情報表示手段は、前記印刷情報の表示の終了が指示されると、前記第一の変数の値を前記印刷情報の表示の終了を示す値に更新した後、前記印刷情報の表示を終了させ、
    前記印刷情報送信手段は、前記第一の変数の値が前記印刷情報の表示の終了を示す値であったときは、前記印刷情報の表示の終了後に、前記印刷情報生成手段より取得した前記印刷情報の表示画面を表示させることを特徴とする請求項2乃至6いずれか一項記載の印刷情報処理装置。
  8. 前記印刷情報送信手段は、前記第一の変数の値が前記印刷情報の表示の終了を示す値であった後に、他の前記印刷情報送信手段が前記表示画面を表示させたときは、当該他の印刷情報送信手段に前記印刷情報を送信することを特徴とする請求項7記載の印刷情報処理装置。
  9. コンピュータに、
    アプリケーションにおいて操作対象とされているデータの印刷情報を取得する印刷情報取得手順と、
    前記印刷情報を表示させる印刷情報表示画面が表示されているかを判定する判定手順と、
    前記判定手順において前記印刷情報表示画面が表示されていないと判定された場合に、前記印刷情報取得手順において取得された前記印刷情報を表示対象として前記印刷情報表示画面を表示させる第一の画面表示手順と、
    前記判定手順において前記印刷表示画面が表示されていると判定された場合に、前記印刷情報取得手順において取得された前記印刷情報を、前記第一の画面表示手順を実行した第一のプロセスに引き渡す印刷情報送信手順と、
    前記第一プロセスが、前記印刷情報送信手順において受け取った前記印刷情報を、前記表示画面に追加表示させる追加表示手順とを実行させるための印刷情報処理プログラム。
  10. 前記第一のプロセスが、前記印刷情報の受け取りが可能となったときに所定の記憶領域における第一の変数の値を更新する第一変数更新手順を有し、
    前記印刷情報送信手順は、前記印刷情報を引き渡す前に前記所定の記憶領域における前記第一の変数の値を参照し、該第一の変数の値に応じて前記印刷情報を前記第一のプロセスに引き渡すことを特徴とする請求項9記載の印刷情報処理プログラム。
  11. 前記印刷情報送信手順を実行する第二のプロセスには、それぞれが起動された順番に応じて識別子が割り当てられ、
    前記第一のプロセスは、前記印刷情報の受け取りが可能となったとき、及び前記印刷情報を受け取るたびに前記識別子の順番に対応させて前記第一の変数の値を更新し、
    前記第二のプロセスは、前記第一の変数の値が当該第二のプロセスに割り当てられている前記識別子の値に更新されたときに、前記印刷情報を前記第一のプロセスに引き渡すことを特徴とする請求項10記載の印刷情報処理プログラム。
  12. 前記第二のプロセスは、前記第二のプロセスが起動されるたびに値が更新される、前記所定の記憶領域における第二の変数の値を参照して、当該第二のプロセスに前記識別子を割り当てることを特徴とする請求項11記載の印刷情報処理プログラム。
  13. 前記第二の変数の値は、前記第二のプロセスが更新することを特徴とする請求項12記載の印刷情報処理プログラム。
  14. 前記印刷情報の表示の終了の指示に応じて、前記第一のプロセスが前記第一の変数の値を前記印刷情報の表示の終了を示す値に更新した後、前記印刷情報の表示を終了させる表示終了手順と、
    前記印刷情報送信手順を実行する第二プロセスが、前記第一の変数の値が前記印刷情報の表示の終了を示す値であったときに、前記表示終了手順の終了後に前記第一の画面表示手順を実行する第二の画面表示手順とを有することを特徴とする請求項9乃至13いずれか一項記載の印刷情報処理プログラム。
  15. 前記第二のプロセスは、前記第一の変数の値が前記印刷情報の表示の終了を示す値であった後に、他の前記第二のプロセスが前記表示画面を表示させたときは、当該他の前記第二のプロセスに前記印刷情報を送信することを特徴とする請求項14記載の印刷情報処理プログラム。
  16. 請求項9乃至15いずれか一項記載の印刷情報処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
JP2005027723A 2005-02-03 2005-02-03 印刷情報処理装置、印刷情報処理プログラム及び記録媒体 Active JP4425808B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005027723A JP4425808B2 (ja) 2005-02-03 2005-02-03 印刷情報処理装置、印刷情報処理プログラム及び記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005027723A JP4425808B2 (ja) 2005-02-03 2005-02-03 印刷情報処理装置、印刷情報処理プログラム及び記録媒体

Publications (2)

Publication Number Publication Date
JP2006215805A true JP2006215805A (ja) 2006-08-17
JP4425808B2 JP4425808B2 (ja) 2010-03-03

Family

ID=36978999

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005027723A Active JP4425808B2 (ja) 2005-02-03 2005-02-03 印刷情報処理装置、印刷情報処理プログラム及び記録媒体

Country Status (1)

Country Link
JP (1) JP4425808B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009223529A (ja) * 2008-03-14 2009-10-01 Ricoh Co Ltd 印刷制御装置,印刷システム,印刷制御方法,プログラム,および記録媒体
JP2016026341A (ja) * 2015-08-25 2016-02-12 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
US10191703B2 (en) 2009-12-24 2019-01-29 Canon Kabushiki Kaisha Information processing apparatus, information processing method, and storage medium
US10277765B2 (en) 2017-01-31 2019-04-30 Canon Kabushiki Kaisha Information processing device, control method, and program

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009223529A (ja) * 2008-03-14 2009-10-01 Ricoh Co Ltd 印刷制御装置,印刷システム,印刷制御方法,プログラム,および記録媒体
US10191703B2 (en) 2009-12-24 2019-01-29 Canon Kabushiki Kaisha Information processing apparatus, information processing method, and storage medium
US10691387B2 (en) 2009-12-24 2020-06-23 Canon Kabushiki Kaisha Information processing apparatus, information processing method, and storage medium
JP2016026341A (ja) * 2015-08-25 2016-02-12 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
US10277765B2 (en) 2017-01-31 2019-04-30 Canon Kabushiki Kaisha Information processing device, control method, and program

Also Published As

Publication number Publication date
JP4425808B2 (ja) 2010-03-03

Similar Documents

Publication Publication Date Title
JP4182094B2 (ja) 情報処理装置及びその制御方法、プログラム
JP3720740B2 (ja) 分散印刷システム、分散印刷制御方法、記憶媒体、及びプログラム
JP4874859B2 (ja) 情報処理装置、情報処理システム、プログラム及びその記録媒体
JP4863450B2 (ja) デバイスドライバプログラムをカスタマイズするための情報処理装置及びデバイスドライバプログラムのカスタマイズ方法
JP5857611B2 (ja) 情報処理装置、システム、プログラム
US11789676B2 (en) Information apparatus, controlling method for information apparatus, and storage medium
US8395787B2 (en) Information processing apparatus having customized driver, method of controlling the same, and medium storing control program
JP2007317088A (ja) 情報処理装置、印刷制御方法、プログラム及びコンピュータ可読の記憶媒体
JP2004326603A (ja) 印刷制御システム、印刷制御装置、機能提供装置、印刷機能表示方法、コンピュータプログラム、及びコンピュータ読み取り可能な記録媒体
JP2003084984A (ja) 情報処理装置、及び、情報処理方法、及び、制御プログラム、及び、制御プログラムを記憶した記憶媒体
JP2006164240A (ja) データ処理装置および印刷設定処理方法およびコンピュータが読み取り可能な制御プログラムを格納した記憶媒体および制御プログラム
JP2006139675A (ja) データ処理装置および印刷設定処理方法およびコンピュータが読み取り可能なプログラムを格納した記憶媒体およびプログラム
JP3774684B2 (ja) 情報処理装置および情報処理装置のプリンタ設定方法およびプログラムおよび記録媒体
JP4867184B2 (ja) 処理態様指定情報変換プログラム及び処理態様指定情報変換方法
JP4425808B2 (ja) 印刷情報処理装置、印刷情報処理プログラム及び記録媒体
JP2010176639A (ja) 印刷制御装置、印刷制御方法、およびプログラム
JP4886501B2 (ja) 印刷装置、印刷制御方法、及びプログラム
JP2007280193A (ja) 印刷制御装置、印刷制御方法、およびプリンタドライバ
JP6606443B2 (ja) 情報処理装置、情報処理方法およびプログラム
JP2006227990A (ja) 印刷ソフトウェア更新方法、最新モジュール所得方法
JP4903064B2 (ja) 印刷制御装置、印刷制御方法、及び印刷制御プログラム
JP5353997B2 (ja) 情報処理装置、情報処理システム、プログラム及びその記録媒体
JP2018112817A (ja) プリンタードライバーアンインストーラー
JP7171227B2 (ja) 情報処理装置、その制御方法およびアプリケーション
JP4560330B2 (ja) 印刷制御装置及びその方法とインストーラ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070806

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091127

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091209

R150 Certificate of patent or registration of utility model

Ref document number: 4425808

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121218

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131218

Year of fee payment: 4