本発明は印刷ページの並べ替えを行うための印刷ジョブ処理方法に関するものである。
近年、印刷装置にはアプリケーションソフトウェアからの印刷データを並べ替えて印刷する逆順印刷や、中綴じ印刷などの印刷機能を持つものがある。この印刷機能を実現するためには、アプリケーションソフトウェア側で印刷ページを並べ替えたり、印刷ジョブ生成ソフトウェア側で印刷要求された正順の印刷ページを印刷装置へ送信する前に並べ替えて送信したり、或いは印刷装置側で受信した印刷ジョブ、即ち印刷装置にて解読可能なコマンドデータ列を並べ替えたりしていた。しかし、アプリケーションソフトウェア側で逆順印刷や中綴じ印刷のための並べ替えの機能を備えているものはまだ少なくない。また、印刷装置側で並べ替えるには、受信した印刷ジョブをページ単位で格納しておくための記憶装置が必要であるという問題がある。従って、一般的には印刷ジョブ生成ソフトウェア側で印刷装置に送信する前に並べ替えて送信していた。
印刷ジョブ生成ソフトウェア側で並べ替えを行う場合、アプリケーションソフトウェアからの印刷要求により、まず正順で印刷ジョブを生成し、全ての出力コマンドデータ列を印刷ジョブファイルに格納し、印刷ページ毎の開始位置及び終了位置のデータを印刷ページオフセットファイルに格納する。その際オペレーティングシステム上に存在するソフトフォントの印刷要求があった場合は、並べ替えによる印刷不正、つまり文字抜け、文字化け等が発生しないように、印刷装置へダウンロードするソフトフォントデータをソフトフォントファイルに一時ファイルとして格納しておく。
アプリケーションソフトウェア上では、文字データに対し印刷装置に内蔵しているプリンタフォント、またはオペレーティングシステム上に存在するソフトフォントを指定することができる。前者の場合はプリンタフォントの属性情報(フォント名、サイズなど)と文字コードを指定するだけで印刷すべき文字を印刷することができるが、後者の場合は上記指定の前に予め印刷装置にソフトフォントデータをダウンロードしておく必要がある。
次に、印刷ジョブ生成ソフトウェアで具備するユーザーインターフェイスにてオペレータにより指定されたページ並べ替え指定(例えば、逆順印刷など)に従い、印刷ページの並べ替え順を決定し、ソフトフォントファイルがあれば、そのファイル内のソフトフォントデータ定義コマンド列を印刷装置へ送信した後、並べ替えた順序に従って、該印刷ページに対応する印刷ジョブファイル上の出力コマンドデータ列(印刷ページオフセットファイルに格納された印刷ページに対応する開始位置から終了位置までのデータ列)を印刷ジョブスプーラへ送信する。
従来からソフトフォントデータを使用する場合は、印刷装置の具備するワークメモリの容量不足を回避するため、印刷装置へダウンロードするソフトフォントデータのメモリ消費量を予め算出して、この値を使用メモリとしてカウントし、印刷ジョブ生成ソフトウェア内のユーザーインターフェイス上で指定された印刷装置の利用可能メモリと比較して、これを超えた場合にワークメモリ内のソフトフォントデータをクリアするモード(以下利用可能メモリクリアモードと称する)または印刷ページごとにワークメモリ内のソフトフォントデータをクリアするモード(以下ページ単位メモリクリアモードと称する)をオペレータが排他的に設定して利用していた。
上記のワークメモリは、ソフトフォントの格納やプリンタフォントのキャッシュに使用され、容量は印刷装置に実装された物理メモリにより異なる。例えば、物理メモリ128MBの場合、ワークメモリ割合8%を乗じた10MBがワークメモリとなる(ただし、印刷装置起動時)。プリンタフォントは一時的にキャッシュされるが、メモリ使用状況により印刷装置側で自動的に削除される。一方、ソフトフォントはメモリクリアコマンドを出力しなければ削除されない。ただし、揮発性メモリのため、印刷装置の電源を切った場合はフォントの種類に関わらず、メモリ内のデータは消失する。
ワークメモリをクリアする方法として上述の利用可能メモリクリアモードを使用した場合は、印刷ジョブの先頭で、全てのソフトフォントデータをダウンロードしてしまうため、利用可能メモリサイズ及びソフトフォントデータ量により印刷装置のメモリ容量が不足してしまうという問題がある。
そこで、この問題を回避するため、オペレータにより印刷ページの並べ替え指定があった場合は、印刷ジョブ生成ソフトウェア側で上述のページ単位メモリクリアモードを自動的に有効にし、ページ単位でメモリをクリアしているのが一般的である。
ここで、従来の印刷の流れを図7〜図10を用いて説明する。図7は従来の並べ替え印刷を説明するためのブロック図であり、1はホストコンピュータ、2はコンピュータ1を動作させるための基本ソフトウェアであるオペレーティングシステム、3はドキュメントを作成し印刷するためのアプリケーションソフトウェア、4はアプリケーションソフトウェア3の印刷指示により印刷ジョブ生成ソフトウェア5に印刷指示を与える印刷インターフェイスである。印刷ジョブ生成ソフトウェア5は、アプリケーションソフトウェア3上で印刷形式を設定するためにオペレータとのインターフェイスを取り持つユーザーインターフェイス部6、印刷ジョブを生成する印刷ジョブ生成処理部7、及び印刷ページを並べ替えるデスプール部9を有する。
オペレータがアプリケーションソフトウェア3上で作成した文字を含む印刷データを逆順指定して印刷した場合、アプリケーションソフトウェア3上の印刷指示により印刷インターフェイス4は印刷ジョブ生成ソフトウェア5に対し印刷指示を与え、それに基づいて印刷ジョブ生成ソフトウェア5における印刷ジョブ生成処理部7が起動する。
図8−1は印刷ジョブ生成処理部7の処理フローを示すもので、印刷ジョブ生成処理部7は、まず現在の使用メモリ消費量を算出するための使用メモリサイズカウンタをリセットし、印刷ジョブの初期設定コマンドを印刷ジョブスプーラ10へ送信しておく(ステップ101)。そして、ユーザーインターフェイス部6で指定されるページごとにメモリをクリアするかどうかを判断し(ステップ102)、ページ単位メモリクリアモードを設定する(ステップ103)。逆順印刷指定があった場合、例えば4ページの場合は、4→3→2→1順に並べ替えが必要であるため、印刷ジョブの処理方法としてデスプールモードを設定し、生成するコマンドデータの出力先を一時ファイルに設定して、ページ単位メモリクリアモードを設定する。そして、印刷ジョブを格納する印刷ジョブファイル、及びそのページごとの開始位置(オフセット位置)を保存しておく印刷ページオフセットファイルを作成し、現在のオフセット位置を表す印刷ジョブカウンタをリセットする(ステップ107)。
次に、印刷ページの開始処理として現在の印刷ジョブカウンタを、印刷ページオフセットファイルへ格納し(ステップ108)、文字データの印刷要求の場合は(ステップ109)、ページ単位メモリクリアモードでなければ(ステップ110)ソフトフォントデータファイルを作成し(ステップ111)、文字描画処理部8を起動して(ステップ113)、1ページ出力終了まで処理を続ける。
1ページ終了後(ステップ114)は、ページ単位メモリクリアモードの場合は、印刷装置12のワークメモリ(図示せず)をクリアするコマンドデータ列を出力し(ステップ116)、ソフトフォント管理テーブル及び使用メモリサイズカウンタをリセットする。そして、印刷ジョブカウンタに次ページのオフセット位置として、現在の印刷ジョブファイルサイズを設定して(ステップ117)、全ページが出力終了するまで以上の処理を続ける。
全ページ出力終了後は、デスプールモードであるので印刷ページの並べ替えを行うデスプール部9を起動し(ステップ120)、アプリケーションソフトウェア3から印刷要求のあった全ての印刷ページが、指定の並べ替え順に印刷ジョブスプーラ10へ送信される。受信した印刷ジョブスプーラ10は双方向インターフェイス11を介してその印刷ジョブを印刷装置12へ送信し、印刷装置12にて並べ替えられた印刷ジョブが印刷される。なお、文字データ以外の印刷要求の場合は図形やイメージデータ等を描画する図形描画処理部を起動するが(ステップ112)、ここでは説明を省略する。
図9は文字描画処理部8の処理フローを示す。
文字描画処理部8では、まず指定された文字データを判別し(ステップ201)、それがソフトフォントデータでダウンロード済みでなく(ステップ202)、且つページ単位メモリクリアモードでなければ(ステップ203)、ユーザーインターフェイス部6上で設定された利用可能メモリと現在の使用メモリとを比較する(ステップ204)。使用メモリが利用可能メモリの範囲内であれば、該ソフトフォントデータのメモリ消費サイズを使用メモリサイズカウンタに加算し(ステップ206)、該ソフトフォントデータ定義コマンド列を出力して(ステップ207)、ダウンロードされたソフトフォントデータを管理するソフトフォント管理テーブル上でダウンロード済みに設定する(ステップ208)。もし利用可能メモリを超えた場合は、印刷装置12の具備するワークメモリ上の、ダウンロードされたソフトフォントデータをクリアするコマンドを出力し、ソフトフォント管理テーブル及び使用メモリサイズカウンタをリセットする(ステップ205)。そして、ソフトフォントデータを描画するコマンドを生成出力し(ステップ209)、全ての文字が描画終了するまで以上の処理を続ける(ステップ211)。
図10はデスプール部9の処理フローを示す。
デスプール部9では、まずコマンドデータ出力先を印刷ジョブスプーラ10へ切り替え、ユーザーインターフェイス部6で指定されたページの並べ替え方法を取得しておき(ステップ301)、ソフトフォントデータファイルが存在する場合は(ステップ302)、ソフトフォントデータファイル内のソフトフォントデータ定義コマンド列を全て出力する(ステップ303)。次に、ページ並べ替え方法に従い、出力する印刷ページを決定し(ステップ304)、該印刷ページに対応する開始位置及び終了位置を印刷ジョブオフセットファイルから取得し(ステップ305)、印刷ジョブファイルからその開始位置及び終了位置間で印刷文字を描画指定するコマンドデータ列を取得して出力する(ステップ306)。以上、全ページが出力終了するまで処理を続け(ステップ307)、全ページ出力終了後は全ての一時ファイルを削除する(ステップ308)。
しかし、オペレータにより印刷ページの並べ替え指定があった場合は、ページ単位メモリクリアモードを自動的に有効にしても、指定された利用可能メモリを1ページ内で全て消費するソフトフォントデータの場合には、印刷装置上で必ずメモリ不足エラーが発生し、必ずしも正常印刷できるとはいえなかった。
また、印刷インターフェイスからの印刷指示列をページ単位で中間言語ファイルに保存し、印刷ジョブスプーラが印刷ジョブ生成ソフトウェアで指定されたページ並べ替え方法により、中間言語ファイル上のページ単位の印刷指示列を並べ替え順で印刷インターフェイスへ印刷要求可能な場合(以下、中間言語スプールモード)は、印刷ジョブ生成ソフトウェアは並べ替え不要のため、利用可能メモリごとにメモリをクリアする方法でメモリ不足エラーを発生させることなく、正常印刷させることができるが、中間言語スプールモードではなく、中間言語ファイルを生成せず直接印刷ジョブを生成する場合は印刷ジョブ生成ソフトウェアでページの並べ替えを行うしか方法はなく、常に正常印刷させる仕組みがなかった。
本発明は前述した点に鑑みてなされたものであり、アプリケーションソフトウェアからソフトフォントデータを含む印刷データを印刷ページの並べ替えを指定して印刷する場合に、印刷ジョブ生成ソフトウェアで印刷ページの並べ替えを行い、印刷装置でメモリ不足エラーを発生させない印刷ジョブ処理方法を提供することを目的とする。
上記の目的を達成するために本発明は、印刷ページの並べ替えが可能な印刷ジョブ生成ソフトウェアが、印刷装置にダウンロードするソフトフォントデータをフォントファイルに生成するステップと、前記印刷装置へ送信する印刷データを印刷ジョブファイルに生成するステップと、前記印刷装置にダウンロードするソフトフォントデータのソフトフォント定義名、前記ワークメモリの消費量及び前記フォントファイル上の格納位置を示すデータを格納するソフトフォント情報テーブルを生成するステップと、前記印刷データをオペレータの並べ替え指定に応じた順に並べ替えた出力コマンドデータを作成するステップとを有し、並べ替えた出力コマンドデータを作成するときに、前記ソフトフォント情報テーブルを用いて前記ソフトフォントデータを再構築すると共に、該ソフトフォントの格納に使用するメモリサイズがワークメモリの利用可能メモリサイズを超えた時はワークメモリをクリアするクリアコマンドを生成することに一つの特徴を有する。
本発明によれば、印刷データをオペレータの並べ替え指定に応じた出力コマンドデータを作成する際に、ソフトフォントの格納に使用するメモリサイズがワークメモリの利用可能メモリサイズを超えたときにワークメモリをクリアするコマンドを生成するため、印刷装置においてメモリ不足エラーを発生させることなく、常に正常印刷が可能となり、また利用可能メモリごとにソフトフォントデータを印刷装置へダウンロードする方法であるため、印刷ジョブのコードサイズにおける生成効率も良くなる。
図1−1は本発明に係る印刷ジョブ処理方法の第1の実施例を示す全体ブロック図で、印刷ジョブ生成ソフトウェア5は、印刷ジョブ生成処理部7、文字描画処理部8A,デスプール部9を有する。
上記印刷ジョブ生成処理部7の処理フローは従来の図8−1と同じであり、デスプール部9の処理フローも従来の図10と同じであるが、文字描画処理部8Aの処理フローは図2−1で示されており、従来の図9とは異なる。即ち図2−1は従来の処理フローを示す図9において、ページ単位メモリクリアモードか否かを判定するステップ203を削除した流れ図になっている。
このステップ203を削除すると、ステップ202でソフトフォントデータがダウンロードされていないと判定されたときは常にワークメモリの利用可能メモリ量とダウンロードにより使用するメモリ量とが比較され、利用可能メモリ量が小さいときはワークメモリをクリアするコマンドを出力するようになる。
一方、図8−1の印刷ジョブ生成処理部の処理フローの中にはページ単位メモリクリアモードか否かを判定するステップ115があるから、このモードに設定しておくと、常にページ単位でワークメモリをクリアするコマンドが生成される。
即ち本発明は第1の実施例は、ページごとにメモリをクリアするページ単位メモリクリアモードと、利用可能メモリクリアモードとを組み合わせたモードにより印刷装置12のワークメモリをクリアできるようにした点に特徴がある。
これにより印刷ページ毎に印刷装置12のワークメモリ内のソフトフォントデータをクリアすると共に、印刷装置にダウンロードするソフトフォントデータのメモリ消費量が印刷装置の利用可能メモリを超えた場合にも、ワークメモリのソフトフォントデータをクリアすることができ、1ページ毎に2つのタイミングでワークメモリをクリアすることが可能になる。
次に、アプリケーションソフトウェア3から図5に示すような4ページの印刷データを中綴じ指定で印刷する要求があった場合を例にとって処理の手順を説明する。
アプリケーションソフトウェア3からの4ページの文字データ印刷要求により、印刷ジョブ生成ソフトウェア5はページ単位で印刷ジョブファイルに出力する。但し、第4ページの“4”で使用メモリサイズが印刷装置12のワークメモリの利用可能メモリサイズを超えたものとする。
まず、図5に示すように、印刷ジョブファイルの第1ページには“あ”“い”“う”“え”“お”のデータ定義コマンドが生成される(図2−1のステップ207)と共に、出力文字コマンドデータ列が生成される(図2−1のステップ209)。同様に、“P”“.”“1”のデータ定義コマンド、及び出力文字コマンドデータ列が生成される。またその後に図8−1のステップ115及び116によりページ単位のクリアコマンドが格納される。
同様に、第2ページには“か”“き”“く”“け”“こ”のデータ定義コマンド、及び出力文字コマンドデータ列と、“P”“.”“2”のデータ定義、及び出力文字コマンドデータ列が生成され、その後にページ単位のクリアコマンドが生成される。
また、第3ページには“あ”“い”“う”“え”“お”のデータ定義コマンド、及び出力文字コマンドデータ列と、“P”“.”“3”のデータ定義、及び出力文字コマンドデータ列が生成され、最後にページ単位のメモリクリアコマンドが格納される。
第4ページは“か”“き”“く”“け”“こ”のデータ定義コマンド、及び出力文字コマンドデータ列と、“P”“.”のデータ定義コマンド、及び出力文字コマンドデータ列が生成される。更に“4”で使用メモリサイズがワークメモリの利用可能メモリサイズを超えるため、図2−1のステップ204,205の処理により、メモリクリアコマンド列が生成される。そしてその後に“4”のデータ定義コード、及び出力文字コマンドデータ列が生成され、最後にページ単位のメモリクリアコマンドが格納されている。
また、印刷ジョブオフセットファイルには印刷ページに対応する印刷ジョブファイル上の出力文字コマンドデータ列の開始位置及び終了位置が格納される(図8−1のステップ108)。この例ではそれぞれ第1ページ〜第4ページの開始位置が0、401、601、801であり、終了位置は400、600、800、1000とされている。
次に、図5のステップ2ではページ並べ替え方法は中綴じ指定であるため、1→2→3→4のページ順を1→4→3→2のページ順に並べ替えをする。このためにまず、第1ページの開始位置及び終了位置を印刷ジョブオフセットファイルから取得して、その開始位置から終了位置までに対応する第1ページ上の出力文字コマンドデータ列を出力する。以下同様に第4ページ、第3ページ、第2ページの開始位置及び終了位置を順に印刷ジョブオフセットファイルから取得して、対応する印刷ページの出力文字コマンドデータ列を出力する(図10のステップ301及び304〜306)。
上述の手順において、第4ページの“4”の文字を出力した時に、使用メモリサイズが利用可能メモリサイズを超えてしまうが、メモリクリア2によりワークメモリをクリアする処理が行われるため、メモリ不足エラーは発生せず、またその後の処理も印刷ページを並べ替えるだけであるので、メモリ不足エラーは発生しないことになる。
以上説明したように、第1の実施例によれば、ページ単位メモリクリアモードと利用可能メモリクリアモードを組み合わせて使用することにより、アプリケーションソフトウェアからソフトフォントデータを含む印刷データを印刷ページの並べ替えを指定して印刷する場合に、印刷装置においてメモリ不足エラーを発生させることなく、常に正常印刷が可能となる。
図1−2は本発明に係る印刷ジョブ処理方法の第2の実施例を示す全体ブロック図であり、印刷ジョブ生成ソフトウェア5は印刷ジョブ生成処理部7、文字描画処理部8、デスプール部9、ソフトフォント再構築部13を有する。
上記印刷ジョブ生成処理部7の処理フローは図8−2に示され、文字描画処理部8の処理フローは図2−2に示され、デスプール部9の処理フローは図3に示され、ソフトフォント再構築部13の処理フローは図4に示されている。
第2の実施例では従来例に比べデスプール部9にソフトフォント再構築部13が追加され、文字描画処理部8の処理フローにステップ220が追加され、デスプール部の処理フローにはステップ310,311が追加され、また印刷ジョブ生成処理部の処理フローではステップ106が削除されている。
即ち、本実施例の印刷ジョブ生成処理部の処理フローでは第1の実施例とは異なり、ワークメモリクリア方法として利用可能メモリごとにクリアする利用可能メモリクリアモードを使用するため、印刷ページの並べ替え時にページ単位メモリクリアモードは設定しないように変更している。
次に、文字描画処理部8の処理フローを、図2−2を用いて説明する。本処理フローでは、後述するソフトフォント再構成部13で利用するソフトフォント情報テーブル(以下、フォント情報テーブル)を該ソフトフォントデータ出力時に作成している。
まずステップ201において指定された文字データがプリンタフォント指定のものかどうか判定し、肯定(以下YES)の場合はステップ210に進み、プリンタフォント用描画コマンドを生成し、出力する。一方、ステップ201の判定が否定(以下NO)の場合はステップ202に進み、文字データがソフトフォントデータでダウンロード済みか否かが判定される。判定がYESであればステップ209に進み、ソフトフォントデータ用描画コマンドを生成し、出力する。一方、ステップ202の判定がNOであり、ソフトフォントデータでダウンロード済みでなければ、ステップ203でページごとにメモリをクリアするモードかどうか判断し、ステップ203の判定がNOの場合は、ユーザーインターフェイス6部上で設定された利用可能メモリと現在の使用メモリとを比較する(ステップ204)。ステップ204の判定の結果、使用メモリが利用可能メモリの範囲内であれば、ステップ206において該ソフトフォントデータのメモリ消費サイズを使用メモリサイズカウンタに加算し、更にステップ220で、フォント情報テーブル上で、該ソフトフォントデータのヘッダコマンド(1文字ごとのソフトフォントデータ定義コマンド前に、これからダウンロードするソフトフォントデータ種類を指定するもの)、データ定義名、及び該ソフトフォントデータごとのメモリ消費サイズ、ソフトフォントデータファイル(以下、フォントファイル)上の格納位置を示す開始位置及び終了位置を設定する。もしステップ204の判定で利用可能メモリを超えた場合は、印刷装置12が有するワークメモリ上の、ダウンロードされたソフトフォントをクリアするコマンドを出力し、ソフトフォント管理テーブル及び使用メモリサイズカウンタをリセットする(ステップ205)。次に、ステップ208においてソフトフォント管理テーブル上で該ソフトフォントデータをダウンロード済みに設定し、ステップ221で該ソフトフォントデータ定義コマンド列をフォントファイルに出力し、また、ステップ209において該ソフトフォントデータの文字を描画するコマンド列を生成して印刷ジョブファイルに出力する。そしてステップ211では、印刷要求された全ての文字が描画終了したか否かが判定され、NOの場合はステップ201に戻り、上述の処理が繰返される。
次に、デスプール部9の処理フローを図3を用いて説明する。本処理フローでは、ページ単位メモリクリアモード判定を追加し、ページ単位メモリクリアモードでない場合は後述するソフトフォント再構成部13を実行している点に特徴がある。
まず、ステップ301においてコマンドデータ出力先を印刷ジョブスプーラ10へ切り替え、ユーザーインターフェイス部6で指定されたページの並べ替え方法を取得した後、ステップ310においてページ単位メモリクリアモードかどうか判断する。判定の結果、ページ単位メモリクリアモードでなければ、ステップ311のソフトフォント再構成部を実行し、印刷ページの並べ替え時、作成済みのフォントファイルからワークメモリ消費量を考慮してソフトフォントデータを再構成する。一方、ステップ310の判定の結果、ページ単位メモリクリアモードであれば、従来と同様に、ステップ302においてソフトフォントデータファイルがあるか否か判定し、フォントファイルが存在する場合は、ステップ303においてフォントファイル内のソフトフォントデータ定義コマンド列を全て出力し、次に、ステップ304においてページ並べ替え方法に従い、出力する印刷ページを決定し、ステップ305において該印刷ページに対応する開始位置及び終了位置を印刷ジョブオフセットファイルから取得し、またステップ306において印刷文字を描画指定するコマンドデータ列を、その開始位置及び終了位置間で印刷ジョブファイルから取得して出力する。以上の処理を全ページ出力終了するまで続ける(ステップ307)。
次に、ソフトフォント再構成部13の処理を図4を用いて説明する。本処理は前記文字描画処理部8で作成された印刷ジョブファイル、印刷ジョブオフセットファイル、フォントファイル、及びフォント情報テーブルより、描画すべきソフトフォントの文字列をソフトフォント再構成用ソフトフォントデータ出力テーブル(以下、フォント出力テーブル)に登録し、描画すべき文字列に対応するソフトフォントデータ定義コマンド列を出力後、描画すべき文字列を出力している。
まずステップ401において、指定されたページの並べ替え方法に従い、出力する印刷ページを決定し、次いでステップ402において、作成済みの印刷ジョブファイルにおける格納位置が保存されている印刷ジョブオフセットファイルから、該印刷ページに対応する開始位置及び終了位置を取得設定する。そして、ステップ403で前記印刷ジョブファイルにおいて、前記開始位置及び終了位置間でソフトフォントデータ定義名を検索し、対応する出力文字列をグループ化し、フォント出力テーブルに登録する。但し、このとき出力文字列に未ダウンロードのソフトフォントデータを含む場合のみ登録するものとする。
次に、ステップ404において1グループに存在する出力文字のメモリ消費量(以下、グループメモリサイズと称する)を算出し、ステップ405において、現在の使用メモリサイズにグループメモリサイズを加えた値が利用可能メモリサイズの範囲内であるか否か判定され、判定の結果、範囲内であればステップ406に進み、該ソフトフォントデータに対応するヘッダコマンド列をフォント情報ファイルより取得し出力する。そしてステップ408において、フォントファイルより該ソフトフォントデータ定義コマンド列を取得して出力し、ステップ409においてフォント出力テーブル上で該ソフトフォントデータをダウンロード済みに設定する。上記の処理をグループに存在する全てのソフトフォントデータに対して行い(ステップ410)、終了後はステップ411で、グループメモリサイズを現在の使用メモリサイズに加算し、フォント出力ファイル上の現在のグループに対応する出力文字コマンド最後部の格納終了位置を現在の終了位置へ設定する。そしてステップ416において、該印刷ページに対応するコマンドデータ列を印刷ジョブファイルの開始位置及び終了位置(印刷ジョブオフセットファイル上の終了位置)間で取得して出力し、該印刷ページが終了するまで以上の処理を続ける(ステップ417)。但し、このとき印刷ジョブファイル内にメモリクリアコマンドデータ列が存在すれば、それらは出力しないようにする。
ステップ405の判定において、現在の使用メモリサイズにグループメモリサイズを加えた値が利用可能メモリサイズを超えていれば、ステップ412に進み、現時点までの該印刷ページに対応するコマンドデータ列を印刷ジョブファイルの開始位置及び終了位置間で取得して出力し、更にステップ413で現在の終了位置を現在の開始位置へ、印刷ジョブオフセットファイル上の該印刷ページの終了位置を現在の終了位置へ再設定する。そしてステップ414において、現時点までにダウンロードしたソフトフォントデータをクリアするコマンド列を出力して印刷装置12上のワークメモリ内全てのソフトフォントデータをクリアし、フォント出力テーブル及び使用メモリサイズカウンタをリセットする。
上記の処理は、全ての印刷ページが終了するまで同様な処理を行う(ステップ415)。
次に、一例として、アプリケーションソフトウェアから図6に示すような4ページの印刷データを中綴じ指定で印刷した場合を説明する。
アプリケーションソフトウェア3からの4ページの文字データ印刷要求により、印刷ジョブ生成ソフトウェア5は、フォントファイルにソフトフォントデータ#1として“あいうえおかきくけこ”の各定義コマンド列、ソフトフォントデータ#2として“P.1234”の各定義コマンド列を生成する(図2−2のステップ221及び図8−2のステップ111)。そして印刷ジョブファイルにそれらのソフトフォントに対応する出力文字コマンドデータ列を格納する(図2−2のステップ209)。更に印刷ジョブオフセットファイルには該印刷ページの出力文字コマンドデータ列の開始位置及び終了位置を表のように格納する(図8−2のステップ108)。また、そのときソフトフォントデータ#1と#2に対し、ヘッダコマンド、データ名、及びソフトフォントデータごとのメモリ消費サイズ、格納されているフォントファイル上の開始位置及び終了位置をセットにして、表のようなフォント情報テーブルを作成する(図2−2のステップ220)。
フォント情報テーブルの#1、#2はソフトフォントデータの種類、例えばMS明朝などを示しているヘッダコマンド#1は、#1用のソフトフォントデータのヘッダコマンド定義列、データ#1は#1用のソフトフォントデータ名称を示す。また“あ”/200/31/130は、“あ”のフォントデータのメモリ消費量は200バイトであり、31はソフトフォントデータファイル上の先頭からの開始位置オフセット、130は同様に終了位置オフセットを示す。図6は、第2ページの“P.”で利用可能メモリサイズが一杯になり、次の“2”でこのサイズを超える例を示している。
次に、ページ並べ替え方法は中綴じ指定であるため、1→2→3→4のページ順を1→4→3→2のページ順に並べ替えを決定し、第1ページの開始位置及び終了位置を印刷ジョブオフセットファイルから取得する(図4のステップ402)。印刷ジョブファイル上の開始位置及び終了位置間で、ソフトフォントデータ名#1またはソフトフォントデータ名#2で検索し、最初に#1、“あいうえお”が見つかるので、グループG1としてデータ名#1と“あ”“い”“う”“え”“お”をセットにし、且つ出力文字コマンドデータ最後部の格納終了位置を設定する(図4のステップ403)。
そして、グループG1における全てのメモリ消費サイズを算出する。この例では表より“あ”の消費サイズは200、“い”は170、“う”は170、“え”は180、“お”は190であるので合計は910バイトになる。利用可能メモリサイズを2000バイトとすると、利用可能メモリサイズ>使用メモリ+グループメモリサイズ(=0+910)であるため、まずグループG1が存在するフォント情報テーブル上のヘッダコマンド#1を出力後、“あ”(31−130)、“い”(131−220)、“う”(221−300)、“え”(301−390)、“お”(391−490)の順にフォントファイル上のデータ定義コマンド列を出力し(図4のステップ408)、使用メモリサイズカウンタにグループメモリサイズを加算する(図4のステップ411)。なお、括弧内はフォント情報ファイル上の開始位置と終了位置を表す。また、メモリクリア発生時に直前の出力文字コマンドデータ列を出力するため、グループG1の出力文字コマンドデータ最後部の格納終了位置(=350)を現在の終了位置に設定しておく。
グループG2(#2、“P.1”)に対しても同様の処理を行った後、第1ページのソフトフォントデータ定義コマンド列が全て出力できたため、第1ページに対する出力文字コマンドデータ列を印刷ジョブファイル上の開始位置及び終了位置間で取得し出力する(図4のステップ416)。
図6のフォント出力テーブルにおいて、G1,G2は印刷ジョブファイルデータごとの文字列をグループ化したものを示し、データ名#1は#1用のソフトフォントデータ名称を示す。また“あ”“い”“う”“え”“お”はグループG1における各文字コード、350は印刷ジョブファイル上のG1の出力文字コマンド最後部の格納位置オフセットを示す。
これはページ内に存在する出力すべき文字を、ソフトフォントデータ単位で順番にグループ登録してコマンドデータ出力時に使用する。
第4ページの場合、第4ページの開始位置及び終了位置を印刷ジョブオフセットファイルから取得して、第4ページに対するフォント出力テーブルを作成すると、表の上段のようにG3、G4がグループとして作成される(図4のステップ403)。しかし、利用可能メモリサイズ(=2000)<使用メモリ+グループメモリサイズ(=1980+90)であるため、ここでメモリクリア処理を行う(図4のステップ412,413及び414)。この処理によりG3の“かきくけこ”の次にメモリクリアコマンドが生成される。
出力文字コマンドデータ列を出力する前にメモリクリアを実行してしまうと、文字抜けが発生してしまうため、まず第4ページにおける印刷ジョブファイル上の開始位置(=301)から終了位置(=950)間の出力文字コマンドデータ列を出力する。次の格納位置設定のため、現在の開始位置へ終了位置+1(=951)、終了位置へ第4ページ終了位置(=1000)をそれぞれ設定し、ソフトフォントデータ#1と#2に対するメモリクリアコマンドを出力して、フォント出力テーブル及び使用メモリサイズカウンタをリセットする。そして、印刷ジョブファイルの開始位置(=951)から終了位置(=1000)で検索し、再度フォント出力テーブルを登録し(表の下段のように、未ダウンロードの#2、“P”“.”“4”がグループG1として登録される)、グループG1(#2、“P.4”)のソフトフォントに対するヘッダコマンド及びデータ定義コマンド列を出力し、第4ページにおける現在の開始位置及び終了位置間の出力文字コマンドデータ列を出力する。以降、第3、2ページに対しても行い、表のようなコマンドデータ順で出力する(ステップ2)。
図6のステップ1とステップ2では、表のようにメモリクリアタイミングが異なるが、印刷ページの並べ替え時利用可能メモリクリア方法でも、ソフトフォント再構成により、ソフトフォントを含む印刷データに対してメモリ不足エラーを発生させることなく、正常印刷できる。また、第1の実施例と比較すると、必要なソフトフォントデータのみダウンロードするため、コードサイズにおいて生成効率が良い方法となる。
本発明に係る印刷ジョブ処理方法の第1の実施例を示す全体ブロック図である。
本発明に係る印刷ジョブ処理方法の第2の実施例を示す全体ブロック図である。
本発明の第1の実施例における文字描画処理部のフローチャートである。
本発明の第2の実施例における文字描画処理部のフローチャートである。
本発明の第2の実施例におけるデスプール部のフローチャートである。
本発明の第2の実施例におけるソフトフォント再構成部のフローチャートである。
本発明処理方法による中綴じの一例を説明する説明図である。
本発明処理方法による中綴じの一例を説明する説明図である。
従来の並べ替え印刷に関する全体ブロック図である。
従来の印刷ジョブ生成処理部のフローチャートである。
本発明の第2の実施例における印刷ジョブ生成処理部のフローチャートである。
従来の文字描画処理部のフローチャートである。
従来のデスプール部のフローチャートである。
符号の説明
1はホストコンピュータ、2はオペレーティングシステム、3はアプリケーションソフトウェア、4は印刷インターフェイス、5は印刷ジョブ生成ソフトウェア、6はユーザーインターフェイス部、7は印刷ジョブ生成処理部、8は文字描画処理部、9はデスプール部、10は印刷ジョブスプーラ、11は双方向インターフェイス、12は印刷装置、13はソフトフォント再構成部である。