JPH0564931A - プリントスプール手段 - Google Patents
プリントスプール手段Info
- Publication number
- JPH0564931A JPH0564931A JP3230211A JP23021191A JPH0564931A JP H0564931 A JPH0564931 A JP H0564931A JP 3230211 A JP3230211 A JP 3230211A JP 23021191 A JP23021191 A JP 23021191A JP H0564931 A JPH0564931 A JP H0564931A
- Authority
- JP
- Japan
- Prior art keywords
- processing
- character
- application
- printing
- printer
- 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
Links
Landscapes
- Record Information Processing For Printing (AREA)
Abstract
(57)【要約】
【目的】 パーソナルコンピュータ等の印刷処理時に、
アプリケーションプログラムから見た印刷装置の使用は
抽象化し、印刷装置を意識しない処理手順を実行させ、
デバイスドライバ側での処理によって、印刷装置の実行
速度の向上を図る。 【構成】 印刷装置に対し、印刷制御コードを送信する
プリントスプール処理において、フォントキャッシュ利
用率を高める様に制御コードを再配置し、印刷装置8に
転送する。制御コードを、複数のスプールファイル9、
11、12の生成により再配置する。
アプリケーションプログラムから見た印刷装置の使用は
抽象化し、印刷装置を意識しない処理手順を実行させ、
デバイスドライバ側での処理によって、印刷装置の実行
速度の向上を図る。 【構成】 印刷装置に対し、印刷制御コードを送信する
プリントスプール処理において、フォントキャッシュ利
用率を高める様に制御コードを再配置し、印刷装置8に
転送する。制御コードを、複数のスプールファイル9、
11、12の生成により再配置する。
Description
【0001】
【産業上の利用分野】本発明は、パーソナルコンピュー
タ、ワークステーションなどで使用されるアプリケーシ
ョンプログラムでの印刷処理時のプリンタ制御の高速化
及び最適化手法に関する。
タ、ワークステーションなどで使用されるアプリケーシ
ョンプログラムでの印刷処理時のプリンタ制御の高速化
及び最適化手法に関する。
【0002】
【従来の技術】グラフィカルユーザインターフェースの
普及に伴い、表示装置への画像出力と、印刷装置への画
像出力が、同一の手順により行なえることがコンピュー
タに要求されるようになった。特に、パーソナルコンピ
ュータなどでは、この動きが顕著である。各種の出力デ
バイスの制御の差異を、アプリケーションが意識せず行
なえる環境とするためには、以下の2つのことが必要と
なる。
普及に伴い、表示装置への画像出力と、印刷装置への画
像出力が、同一の手順により行なえることがコンピュー
タに要求されるようになった。特に、パーソナルコンピ
ュータなどでは、この動きが顕著である。各種の出力デ
バイスの制御の差異を、アプリケーションが意識せず行
なえる環境とするためには、以下の2つのことが必要と
なる。
【0003】○ システム内にグラフィック処理段とし
て標準化された手続きを組み込む。
て標準化された手続きを組み込む。
【0004】○ 各種デバイスの差をデバイスドライバ
により吸収する。
により吸収する。
【0005】この様な条件を満たすコンピュータの構成
の従来例の一つを図2に示す。この例においては、アプ
リケーション1が、アプリケーション・インターフェー
ス2を介して、グラフィック処理段3に働き掛けること
で、画像の出力処理が行なわれる。このため、アプリケ
ーションは、出力先のデバイスの指定を行なう必要はあ
るものの、画像作成のために呼び出す手続きは、デバイ
スによらず共通である。特定の出力デバイスに対し、グ
ラフィック処理段3の処理に従い、画像の転送、あるい
は印刷制御などの処理を行なうのは、デバイスドライバ
と呼ばれる機構である。図2の例でデバイスドライバ7
は印刷装置8を制御する。表示装置6に対し、画面表示
のための画素を転送するディスプレイコントローラ5
は、一種のデバイスドライバのように見なすこともでき
る。しかし、一般的にパーソナルコンピュータでは、表
示装置6は標準出力デバイスとされるため、これに対す
るコントローラは、周辺装置に対するデバイスドライバ
とは別の呼称をとる場合がある。本明細書もこれに従
う。また標準出力デバイスに対するグラフィックス処理
手続き群を、標準手続き群と呼ぶ。図2の標準手続き群
4は、グラフィック処理段3により呼びだされ、標準出
力装置である表示装置6への出力に使用される。
の従来例の一つを図2に示す。この例においては、アプ
リケーション1が、アプリケーション・インターフェー
ス2を介して、グラフィック処理段3に働き掛けること
で、画像の出力処理が行なわれる。このため、アプリケ
ーションは、出力先のデバイスの指定を行なう必要はあ
るものの、画像作成のために呼び出す手続きは、デバイ
スによらず共通である。特定の出力デバイスに対し、グ
ラフィック処理段3の処理に従い、画像の転送、あるい
は印刷制御などの処理を行なうのは、デバイスドライバ
と呼ばれる機構である。図2の例でデバイスドライバ7
は印刷装置8を制御する。表示装置6に対し、画面表示
のための画素を転送するディスプレイコントローラ5
は、一種のデバイスドライバのように見なすこともでき
る。しかし、一般的にパーソナルコンピュータでは、表
示装置6は標準出力デバイスとされるため、これに対す
るコントローラは、周辺装置に対するデバイスドライバ
とは別の呼称をとる場合がある。本明細書もこれに従
う。また標準出力デバイスに対するグラフィックス処理
手続き群を、標準手続き群と呼ぶ。図2の標準手続き群
4は、グラフィック処理段3により呼びだされ、標準出
力装置である表示装置6への出力に使用される。
【0006】以上のような従来の構成において、アプリ
ケーション1が印刷処理を行なう場合の流れを説明す
る。印刷処理8に対する手続き呼び出しは、表示装置6
に対する手続き呼びだしと同様である。但し、出力装置
として、印刷装置8を指定するため、アプリケーション
インターフェース2により、デバイスドライバ7の呼び
出しが行なわれる。呼び出されたデバイスドライバ7
は、標準処理手続き群4を、印刷装置のための専用処理
手続き群10によって差し替える。従って、この処理以
降、グラフィック処理段3が行なう手続き呼び出しによ
り使用されるのは、印刷装置8のための専用の処理ルー
チン群である。しかしこの機構はアプリケーション側か
らは隠蔽されているため、アプリケーション1は、印刷
装置8のハードウェアの存在を意識する必要がない。
ケーション1が印刷処理を行なう場合の流れを説明す
る。印刷処理8に対する手続き呼び出しは、表示装置6
に対する手続き呼びだしと同様である。但し、出力装置
として、印刷装置8を指定するため、アプリケーション
インターフェース2により、デバイスドライバ7の呼び
出しが行なわれる。呼び出されたデバイスドライバ7
は、標準処理手続き群4を、印刷装置のための専用処理
手続き群10によって差し替える。従って、この処理以
降、グラフィック処理段3が行なう手続き呼び出しによ
り使用されるのは、印刷装置8のための専用の処理ルー
チン群である。しかしこの機構はアプリケーション側か
らは隠蔽されているため、アプリケーション1は、印刷
装置8のハードウェアの存在を意識する必要がない。
【0007】この様な従来の処理手順は、アプリケーシ
ョン1が何らかの出力デバイスに対し画像出力を行なう
場合、印刷装置8のハードウェアの特殊性、応答性など
を顧みる必要がない。実際、印刷装置などはCRTなど
の表示装置に比較し処理時間を長く必要とするため、ア
プリケーション1を印刷処理から短時間で開放するため
の機構が必要である。この機構として、一般的であるの
がスプールファイル9を使用する方法である。スプール
ファイル9には、印刷装置8に送られるべき制御コード
などが記録され、印刷装置8及び、印刷装置8に対する
インターフェースの時間応答の速度に応じ、実際の転送
が行なわれる。この処理は、アプリケーション1とは別
個に、デバイスドライバ7により行なわれるため、アプ
リケーション1は、スプールファイル9への書き込み終
了時点で、印刷処理から開放される。
ョン1が何らかの出力デバイスに対し画像出力を行なう
場合、印刷装置8のハードウェアの特殊性、応答性など
を顧みる必要がない。実際、印刷装置などはCRTなど
の表示装置に比較し処理時間を長く必要とするため、ア
プリケーション1を印刷処理から短時間で開放するため
の機構が必要である。この機構として、一般的であるの
がスプールファイル9を使用する方法である。スプール
ファイル9には、印刷装置8に送られるべき制御コード
などが記録され、印刷装置8及び、印刷装置8に対する
インターフェースの時間応答の速度に応じ、実際の転送
が行なわれる。この処理は、アプリケーション1とは別
個に、デバイスドライバ7により行なわれるため、アプ
リケーション1は、スプールファイル9への書き込み終
了時点で、印刷処理から開放される。
【0008】
【発明が解決しようとする課題】上記のように、従来の
印刷処理においては、アプリケーション1が、印刷装置
8の仕様に依存せず印刷を行なえる構成とする点に関心
が払われていた。このため、アプリケーション1は様々
なグラフィック処理手続きの呼び出しを、印刷装置にと
って好都合な手順とは無関係に行なうのが普通である。
印刷処理においては、アプリケーション1が、印刷装置
8の仕様に依存せず印刷を行なえる構成とする点に関心
が払われていた。このため、アプリケーション1は様々
なグラフィック処理手続きの呼び出しを、印刷装置にと
って好都合な手順とは無関係に行なうのが普通である。
【0009】例えば、印刷装置では多くの場合、フォン
トキャッシュ機構を使用し文字の高速発生を行なうよう
設計されている。こうした設計の下では、同じ書体、同
じサイズの文字ができる限り連続して入力される場合
が、キャッシュヒット率を高く維持し、高速な文字発生
に有利である。しかしゴシック体、明朝体など複数の文
字種が混在し、かつ文字サイズも様々な文書を処理する
場合、アプリケーション1は、文書の処理上の手順に従
い、適当な順番で文字種指定、文字サイズ指定などを行
なう。このため、もしデバイスドライバ7がこの指定順
番を、一切の変更を加えず印刷装置8に転送するとした
ら、印刷装置8のフォントキャッシュは、頻繁な書き換
えが行なわれ、ヒット率の低下を招くことになる。この
ため、必ずしも印刷装置8の印刷処理速度を充分引きだ
すことができるとは限らない。
トキャッシュ機構を使用し文字の高速発生を行なうよう
設計されている。こうした設計の下では、同じ書体、同
じサイズの文字ができる限り連続して入力される場合
が、キャッシュヒット率を高く維持し、高速な文字発生
に有利である。しかしゴシック体、明朝体など複数の文
字種が混在し、かつ文字サイズも様々な文書を処理する
場合、アプリケーション1は、文書の処理上の手順に従
い、適当な順番で文字種指定、文字サイズ指定などを行
なう。このため、もしデバイスドライバ7がこの指定順
番を、一切の変更を加えず印刷装置8に転送するとした
ら、印刷装置8のフォントキャッシュは、頻繁な書き換
えが行なわれ、ヒット率の低下を招くことになる。この
ため、必ずしも印刷装置8の印刷処理速度を充分引きだ
すことができるとは限らない。
【0010】本発明は、この様な従来方式の問題点を解
消するため発明されたものであり、その目的とするとこ
ろは、アプリケーションからみた、印刷装置への非依存
性を維持しつつ、印刷装置の処理速度を有効に活用する
プリントスプール手段を提供することである。
消するため発明されたものであり、その目的とするとこ
ろは、アプリケーションからみた、印刷装置への非依存
性を維持しつつ、印刷装置の処理速度を有効に活用する
プリントスプール手段を提供することである。
【0011】
【課題を解決するための手段】本発明は、コンピュータ
上で動作するアプリケーションプログラムの、印刷処理
実行時に呼び出されるプリンタドライバプログラムの印
刷装置制御手段の内、アプリケーションの呼び出し順次
に従い、図形記述手段の呼び出しを符号化する手段、こ
の手段に従い生成される符号を、図形記述要素としてあ
らかじめ定めた類型に従い分類し、各類型別に一時ファ
イルあるいは作業メモリ領域に書き出す手段、指定され
たページ数に関しアプリケーションの印刷処理が完了し
た後、上記手段により生成された一時ファイルあるいは
作業メモリ領域より図形記述要素の符号を取り出し、元
の記述に復元する手段、この手段により復元された図形
記述要素を、再配置し、印刷装置側処理プログラムに転
送する手段、により構成されたことを特徴とする。
上で動作するアプリケーションプログラムの、印刷処理
実行時に呼び出されるプリンタドライバプログラムの印
刷装置制御手段の内、アプリケーションの呼び出し順次
に従い、図形記述手段の呼び出しを符号化する手段、こ
の手段に従い生成される符号を、図形記述要素としてあ
らかじめ定めた類型に従い分類し、各類型別に一時ファ
イルあるいは作業メモリ領域に書き出す手段、指定され
たページ数に関しアプリケーションの印刷処理が完了し
た後、上記手段により生成された一時ファイルあるいは
作業メモリ領域より図形記述要素の符号を取り出し、元
の記述に復元する手段、この手段により復元された図形
記述要素を、再配置し、印刷装置側処理プログラムに転
送する手段、により構成されたことを特徴とする。
【0012】
【実施例】本発明の実施例の一つについて、その構成図
を図1に示した。以下に図3に示す文書を処理する場合
を例に採り、図1の構成例の動作の流れを説明する。
を図1に示した。以下に図3に示す文書を処理する場合
を例に採り、図1の構成例の動作の流れを説明する。
【0013】アプリケーション1として、文書処理ソフ
トウェアがパーソナルコンピュータで実行されている場
合についての動作は、次のようになる。
トウェアがパーソナルコンピュータで実行されている場
合についての動作は、次のようになる。
【0014】まずキーボード、マウス等の動きを検出す
るのユーザ・インターフェースの働きにより、使用者は
アプリケーション1に対し文字、図形等の入力あるいは
編集の操作を行なうものとする。この様なユーザ操作
は、視覚的に確認できることが望まれるため、アプリケ
ーション1はアプリケーションインターフェース2を介
しコンピュータの用意するグラフィック環境に働き掛け
る。この処理は実際にはグラフィック処理手続きの呼び
出しにより行なわれる。すなわちアプリケーション1
は、グラフィック処理段3があらかじめ用意する様々な
処理手続きの中から、必要な手続きを指定し、パラメー
タ等の設定を行ない、手続き呼び出しを行なう。
るのユーザ・インターフェースの働きにより、使用者は
アプリケーション1に対し文字、図形等の入力あるいは
編集の操作を行なうものとする。この様なユーザ操作
は、視覚的に確認できることが望まれるため、アプリケ
ーション1はアプリケーションインターフェース2を介
しコンピュータの用意するグラフィック環境に働き掛け
る。この処理は実際にはグラフィック処理手続きの呼び
出しにより行なわれる。すなわちアプリケーション1
は、グラフィック処理段3があらかじめ用意する様々な
処理手続きの中から、必要な手続きを指定し、パラメー
タ等の設定を行ない、手続き呼び出しを行なう。
【0015】例えば、表示装置6に対し文字列の出力を
行なうためには、出力する文字の大きさ、出力する文字
の文字種、出力する文字の形状の修飾(有無あるいは指
定) 出力する文字の文字数及び個々の文字コード、出力する
文字の、表示デバイス上での位置、等が何らかの内部表
現を用いパラメータとして指定され、文字列発生処理1
01が呼び出される必要がある。一般的に、パーソナル
コンピュータでは、CRT、液晶表示装置等、適当なデ
ィスプレイ装置を標準出力装置として持っている場合が
多い。図1の構成図もこれを前提にしている。また本実
施例では、標準出力装置に対し出力を行なうために使用
される処理手続き群は、標準処理手続き群4で示され、
システムソフトウェアにあらかじめ組み込まれ、グラフ
ィック処理段3の下層処理ルーチンとして呼び出される
構成である。ディスプレイコントローラ5は、表示装置
6への画像出力に際し、標準処理手続き群4を呼び出し
使用する。この時の動作はデバイスドライバの動作と類
似しているが、本実施例では周辺装置の動作を制御する
デバイスドライバ7などと区別するため、”ディスプレ
イコントローラ”と書く。
行なうためには、出力する文字の大きさ、出力する文字
の文字種、出力する文字の形状の修飾(有無あるいは指
定) 出力する文字の文字数及び個々の文字コード、出力する
文字の、表示デバイス上での位置、等が何らかの内部表
現を用いパラメータとして指定され、文字列発生処理1
01が呼び出される必要がある。一般的に、パーソナル
コンピュータでは、CRT、液晶表示装置等、適当なデ
ィスプレイ装置を標準出力装置として持っている場合が
多い。図1の構成図もこれを前提にしている。また本実
施例では、標準出力装置に対し出力を行なうために使用
される処理手続き群は、標準処理手続き群4で示され、
システムソフトウェアにあらかじめ組み込まれ、グラフ
ィック処理段3の下層処理ルーチンとして呼び出される
構成である。ディスプレイコントローラ5は、表示装置
6への画像出力に際し、標準処理手続き群4を呼び出し
使用する。この時の動作はデバイスドライバの動作と類
似しているが、本実施例では周辺装置の動作を制御する
デバイスドライバ7などと区別するため、”ディスプレ
イコントローラ”と書く。
【0016】既に述べた文字出力動作とは別に、アプリ
ケーション1は、表示装置6に対し、曲線、直線等から
なる図形の出力を行なう場合もある。この場合も前出の
例同様に、図形記述のためのパラメータを指定し、グラ
フィック出力のための手続きの呼び出しが行なわれる。
例えば、図形の記述に際し、直線の発生が必要であれ
ば、直線発生処理102が呼び出される。
ケーション1は、表示装置6に対し、曲線、直線等から
なる図形の出力を行なう場合もある。この場合も前出の
例同様に、図形記述のためのパラメータを指定し、グラ
フィック出力のための手続きの呼び出しが行なわれる。
例えば、図形の記述に際し、直線の発生が必要であれ
ば、直線発生処理102が呼び出される。
【0017】以上の手順によって、図3に示すような文
書をユーザが作成できる。ここで、31は1ページあた
りの処理対象となる範囲、あるいは印刷処理時の有効印
刷領域を示す。この処理範囲において、32、35、3
7、38は書体Aによる文字列の表示(あるいは印刷)
を行なう範囲、33、34、39などは書体Bにより文
字列の表示(あるいは印刷)を行なう範囲である。また
36は図形領域、40は書体Bでの表示(あるいは印
刷)を行なう領域であるものの、文字形状の修飾の指定
が異なる領域である。
書をユーザが作成できる。ここで、31は1ページあた
りの処理対象となる範囲、あるいは印刷処理時の有効印
刷領域を示す。この処理範囲において、32、35、3
7、38は書体Aによる文字列の表示(あるいは印刷)
を行なう範囲、33、34、39などは書体Bにより文
字列の表示(あるいは印刷)を行なう範囲である。また
36は図形領域、40は書体Bでの表示(あるいは印
刷)を行なう領域であるものの、文字形状の修飾の指定
が異なる領域である。
【0018】アプリケーション1が印刷処理を行なう場
合、出力デバイスとして、印刷装置8を行なう指定をア
プリケーションインターフェース2に行なう。この指定
は、グラフィック処理段3により解釈実行され、デバイ
スドライバ7の呼び出しが行なわれる。図4はデバイス
ドライバ7について、その構成を示した図である。グラ
フィック処理段3による呼び出しは、エントリーポイン
ト41への分岐を発生する。エントリーポイント41で
は、分岐時の指定によりデバイスドライバ7の内部で、
さらに幾つかの処理への分岐を発生する。呼び出された
デバイスドライバ7では、呼び出し時に1回だけ行なわ
れる初期化処理ルーチン42が実行される。この初期化
処理の動作において、標準処理手続き群4が、デバイス
依存性の有る専用処理手続き群10によって差し替えら
れる。したがって、これ以降、グラフィック処理段3が
文字列発生の処理手続きの呼び出しを行なった場合は、
文字列発生処理101に代えて、文字列発生処理201
が実行される。この場合は、まずエントリーポイント4
1から、実行時処理44への分岐が行なわれ、呼び出し
時のパラメータ指定により例えば201、202などの
処理手続きの実行が行なわれる。この状態は、デバイス
ドライバ7の使用が停止され、終了処理43が実行さ
れ、再びディスプレイコントローラ5の使用が開始され
るまで、継続される。
合、出力デバイスとして、印刷装置8を行なう指定をア
プリケーションインターフェース2に行なう。この指定
は、グラフィック処理段3により解釈実行され、デバイ
スドライバ7の呼び出しが行なわれる。図4はデバイス
ドライバ7について、その構成を示した図である。グラ
フィック処理段3による呼び出しは、エントリーポイン
ト41への分岐を発生する。エントリーポイント41で
は、分岐時の指定によりデバイスドライバ7の内部で、
さらに幾つかの処理への分岐を発生する。呼び出された
デバイスドライバ7では、呼び出し時に1回だけ行なわ
れる初期化処理ルーチン42が実行される。この初期化
処理の動作において、標準処理手続き群4が、デバイス
依存性の有る専用処理手続き群10によって差し替えら
れる。したがって、これ以降、グラフィック処理段3が
文字列発生の処理手続きの呼び出しを行なった場合は、
文字列発生処理101に代えて、文字列発生処理201
が実行される。この場合は、まずエントリーポイント4
1から、実行時処理44への分岐が行なわれ、呼び出し
時のパラメータ指定により例えば201、202などの
処理手続きの実行が行なわれる。この状態は、デバイス
ドライバ7の使用が停止され、終了処理43が実行さ
れ、再びディスプレイコントローラ5の使用が開始され
るまで、継続される。
【0019】デバイスドライバ7は、上記処理ルーチン
群の外に、デバイス入出力処理46、及びファイル入出
力処理45の2つの処理ルーチンを持つ。デバイス入出
力処理46は、シリアルインターフェースあるいはSC
SIインターフェース等の物理的なデバイスに対するド
ライバを呼び出し、印刷装置8への制御コードを転送す
る処理ルーチンである。本実施例において、印刷装置8
との物理的な通信手段は構成上の制約とはならない。フ
ァイル入出力処理45は、スプールファイル9、11、
12などへの書き込み、読み出しを行なう処理ルーチン
である。
群の外に、デバイス入出力処理46、及びファイル入出
力処理45の2つの処理ルーチンを持つ。デバイス入出
力処理46は、シリアルインターフェースあるいはSC
SIインターフェース等の物理的なデバイスに対するド
ライバを呼び出し、印刷装置8への制御コードを転送す
る処理ルーチンである。本実施例において、印刷装置8
との物理的な通信手段は構成上の制約とはならない。フ
ァイル入出力処理45は、スプールファイル9、11、
12などへの書き込み、読み出しを行なう処理ルーチン
である。
【0020】アプリケーション1が、出力デバイスとし
て印刷装置8を指定することで、デバイスドライバ7に
よるグラフィックス処理ルーチン群の置き換えがなされ
るため、印刷装置8の物理的な仕様は、アプリケーショ
ン1から隠蔽される。すなわちアプリケーション1は、
印刷装置8を、抽象化されたデバイスとして取り扱うこ
とが可能となる。言い換えれば、アプリケーション1
は、印刷装置8の解像度、制御手順、制御コード等を知
らずに、グラフィック描画、文字発生手順を実施する。
て印刷装置8を指定することで、デバイスドライバ7に
よるグラフィックス処理ルーチン群の置き換えがなされ
るため、印刷装置8の物理的な仕様は、アプリケーショ
ン1から隠蔽される。すなわちアプリケーション1は、
印刷装置8を、抽象化されたデバイスとして取り扱うこ
とが可能となる。言い換えれば、アプリケーション1
は、印刷装置8の解像度、制御手順、制御コード等を知
らずに、グラフィック描画、文字発生手順を実施する。
【0021】したがって、グラフィック処理手続きの呼
び出し順は、全くアプリケーション1の任意である。図
3の例では、文字列印刷の処理は、32、33、34、
…、40まで順次発生する。一方、印刷装置8は、印刷
に使用する文字を、アウトラインフォントとして発生す
る。周知の様に、アウトラインフォントは、文字の外形
形状を曲線データ、ヒント処理データ等によって記述し
後符号化したデータ構造からなる。印刷に使用される文
字形状をなす画素は、この元データから計算により発生
されるため、特に漢字等の複雑な形状の文字では、処理
時間を多く要する場合が多い。印刷装置8は、高速な印
刷を行なうため、一度発生した文字形状画素は、画素デ
ータのままメモリ上に保持し、再び同じ文字の印刷要求
が有った場合、できるだけアウトラインデータからの計
算による文字発生を行なわない構成となっている。画素
データのままメモリ上に保持する機構は、今日一般的で
あり、画素データを保持するメモリはフォントキャッシ
ュと呼ばれる。
び出し順は、全くアプリケーション1の任意である。図
3の例では、文字列印刷の処理は、32、33、34、
…、40まで順次発生する。一方、印刷装置8は、印刷
に使用する文字を、アウトラインフォントとして発生す
る。周知の様に、アウトラインフォントは、文字の外形
形状を曲線データ、ヒント処理データ等によって記述し
後符号化したデータ構造からなる。印刷に使用される文
字形状をなす画素は、この元データから計算により発生
されるため、特に漢字等の複雑な形状の文字では、処理
時間を多く要する場合が多い。印刷装置8は、高速な印
刷を行なうため、一度発生した文字形状画素は、画素デ
ータのままメモリ上に保持し、再び同じ文字の印刷要求
が有った場合、できるだけアウトラインデータからの計
算による文字発生を行なわない構成となっている。画素
データのままメモリ上に保持する機構は、今日一般的で
あり、画素データを保持するメモリはフォントキャッシ
ュと呼ばれる。
【0022】高速な印刷を実現するためには、印刷要求
のある文字が、できるだけフォントキャッシュにあるこ
とが望まれる。一方で、フォントキャッシュに割り当て
られるメモリは、印刷装置の実装メモリの制限から充分
な大きさが確保できない。したがって、印刷装置8のキ
ャッシュ管理機構は、使用された文字の履歴管理によ
り、使用頻度の高い文字のみを保持する様に動作する。
キャッシュに記録されているデータは、文字形状の画素
データであることから、同一文字コードの文字であって
も、文字種、文字サイズ、文字形状の修飾がそれぞれ異
なれば、異なるデータとして管理される。
のある文字が、できるだけフォントキャッシュにあるこ
とが望まれる。一方で、フォントキャッシュに割り当て
られるメモリは、印刷装置の実装メモリの制限から充分
な大きさが確保できない。したがって、印刷装置8のキ
ャッシュ管理機構は、使用された文字の履歴管理によ
り、使用頻度の高い文字のみを保持する様に動作する。
キャッシュに記録されているデータは、文字形状の画素
データであることから、同一文字コードの文字であって
も、文字種、文字サイズ、文字形状の修飾がそれぞれ異
なれば、異なるデータとして管理される。
【0023】図3の文書では、文字列32を画素発生し
た後、文字列33、34を画素発生するものとすると、
フォントキャッシュには、まず、文字列32で指定され
た文字種、文字サイズでの文字形状画素データが記録さ
れていく。次に、文字列33で使用する文字に対し画素
を生成するが、この時、フォントキャッシュの内容は全
く参照されない。同様に、文字列35を、文字列33、
34の画素発生の処理に引き続き処理するとすれば、既
にフォントキャッシュは、文字列33、34の文字サイ
ズ、文字種による画素データを多く保存しており、この
時点で使用頻度の低かった文字列32での画素データは
廃棄されている可能性が高い。
た後、文字列33、34を画素発生するものとすると、
フォントキャッシュには、まず、文字列32で指定され
た文字種、文字サイズでの文字形状画素データが記録さ
れていく。次に、文字列33で使用する文字に対し画素
を生成するが、この時、フォントキャッシュの内容は全
く参照されない。同様に、文字列35を、文字列33、
34の画素発生の処理に引き続き処理するとすれば、既
にフォントキャッシュは、文字列33、34の文字サイ
ズ、文字種による画素データを多く保存しており、この
時点で使用頻度の低かった文字列32での画素データは
廃棄されている可能性が高い。
【0024】このようにアプリケーション1の発生する
処理順に従い、印刷装置8へ印刷制御を指定すること
は、印刷装置8での高速処理に対し適合しない場合があ
る。
処理順に従い、印刷装置8へ印刷制御を指定すること
は、印刷装置8での高速処理に対し適合しない場合があ
る。
【0025】本実施例は、この不都合を除くため文字種
Aに対する文字列発生処理手続き呼び出しをスプールフ
ァイル11に記録する。この処理は次の様に行なわれ
る。アプリケーション1が、グラフィック処理段3を介
し、文字列発生処理を呼び出すと、使用される手続き
は、文字列発生処理201である。そこで、文字列発生
処理201は、与えられたパラメータから文字種を取り
出し、文字種がAであれば、処理手続き呼び出しの符号
化された内部表現をスプールファイル11に記録する。
また、文字種Bを指定するパラメータが渡された場合
は、処理手続き呼び出しの符号化された内部表現をスプ
ールファイル12に記録する。
Aに対する文字列発生処理手続き呼び出しをスプールフ
ァイル11に記録する。この処理は次の様に行なわれ
る。アプリケーション1が、グラフィック処理段3を介
し、文字列発生処理を呼び出すと、使用される手続き
は、文字列発生処理201である。そこで、文字列発生
処理201は、与えられたパラメータから文字種を取り
出し、文字種がAであれば、処理手続き呼び出しの符号
化された内部表現をスプールファイル11に記録する。
また、文字種Bを指定するパラメータが渡された場合
は、処理手続き呼び出しの符号化された内部表現をスプ
ールファイル12に記録する。
【0026】一方その他の処理手続き、直線発生処理2
02などが呼び出された場合は、印刷装置8の制御コー
ドによる直線発生のためのコードが生成され、スプール
ファイル9へ記録される。アプリケーション1は、印刷
処理に入り必要な全てのグラフィック記述について、処
理手続きの呼び出しを終了すると印刷処理から開放され
る。
02などが呼び出された場合は、印刷装置8の制御コー
ドによる直線発生のためのコードが生成され、スプール
ファイル9へ記録される。アプリケーション1は、印刷
処理に入り必要な全てのグラフィック記述について、処
理手続きの呼び出しを終了すると印刷処理から開放され
る。
【0027】これに対し、デバイスドライバ7は、印刷
装置8との物理的な通信時間による遅延をともない処理
を継続する。
装置8との物理的な通信時間による遅延をともない処理
を継続する。
【0028】デバイスドライバ7は、まず、スプールフ
ァイル9の内容を、ファイル入出力処理45により読み
だし、デバイス入出力処理46によって印刷装置8に転
送する。前述のように、スプールファイル9の内容は印
刷装置8に対する制御コードのデータ列からなる。次
に、デバイスドライバ7は、スプールファイル11の内
容を取り出し、文字列印刷のための印刷制御コードを生
成し、デバイス入出力処理46によって印刷装置8に転
送する。続いて、スプールファイル12の内容に関して
も、同様に、処理手続き呼び出しの符号化された内部表
現を読み出し、文字列印刷のための印刷制御コードを生
成し、デバイス入出力処理46によって印刷装置8に転
送する。以上処理では、文字サイズの指定が頻繁に変更
された場合キャッシュ使用上やや効率が悪いが、処理手
順は簡単である。
ァイル9の内容を、ファイル入出力処理45により読み
だし、デバイス入出力処理46によって印刷装置8に転
送する。前述のように、スプールファイル9の内容は印
刷装置8に対する制御コードのデータ列からなる。次
に、デバイスドライバ7は、スプールファイル11の内
容を取り出し、文字列印刷のための印刷制御コードを生
成し、デバイス入出力処理46によって印刷装置8に転
送する。続いて、スプールファイル12の内容に関して
も、同様に、処理手続き呼び出しの符号化された内部表
現を読み出し、文字列印刷のための印刷制御コードを生
成し、デバイス入出力処理46によって印刷装置8に転
送する。以上処理では、文字サイズの指定が頻繁に変更
された場合キャッシュ使用上やや効率が悪いが、処理手
順は簡単である。
【0029】言うまでもなく、デバイスドライバ7に、
充分な作業用メモリの割り当てがなされていれば、複数
のスプールファイルを使用する必要はない。次に、作業
用メモリ上で、文字列生成手順の再配置を行なう実施例
について説明する。この実施例についても、処理段の構
成は図1及び図4の構成図と等価である。但し、スプー
ルファイルは9だけが使用される。
充分な作業用メモリの割り当てがなされていれば、複数
のスプールファイルを使用する必要はない。次に、作業
用メモリ上で、文字列生成手順の再配置を行なう実施例
について説明する。この実施例についても、処理段の構
成は図1及び図4の構成図と等価である。但し、スプー
ルファイルは9だけが使用される。
【0030】文字列の表示装置への表示、あるいは印刷
装置への出力を指定する手続き呼び出しに対し、パラメ
ータとして渡されるデータの内部表現は、本実施例の場
合、図5の501に示される構成である。開始座標位置
指定502は、文字列の左下端の点に対し、水平、垂直
座標値を与える。文字種指定503は、文字種の選択に
対し、その指定値を与える。修飾指定504は、通常
(指定なし)の場合、値0をとり、太文字で値1、斜体
文字で値2をとる。文字サイズ指定505は、文字形状
の大きさをポイント数で指定する。本実施例では、実際
の文字コード列を作業メモリ上の他の領域に格納してお
り、文字列へのポインタ506は、その番地へのポイン
タを与える。データ構造501の最後の要素は、次のデ
ータ構造501からなる要素へのポインタ507であ
る。
装置への出力を指定する手続き呼び出しに対し、パラメ
ータとして渡されるデータの内部表現は、本実施例の場
合、図5の501に示される構成である。開始座標位置
指定502は、文字列の左下端の点に対し、水平、垂直
座標値を与える。文字種指定503は、文字種の選択に
対し、その指定値を与える。修飾指定504は、通常
(指定なし)の場合、値0をとり、太文字で値1、斜体
文字で値2をとる。文字サイズ指定505は、文字形状
の大きさをポイント数で指定する。本実施例では、実際
の文字コード列を作業メモリ上の他の領域に格納してお
り、文字列へのポインタ506は、その番地へのポイン
タを与える。データ構造501の最後の要素は、次のデ
ータ構造501からなる要素へのポインタ507であ
る。
【0031】図3の文書が印刷処理される場合、アプリ
ケーション1は、文字列32、33、34、35、、の
順に処理手続きの呼び出しを行なう。前述の実施例と等
価な構成を持つ本実施例においても、この手続き呼び出
しは、文字列発生処理201により処理される。文字列
発生処理201は、手続き呼び出し時のパラメータを取
り出し、データ構造501を持つ内部表現に変換する。
このデータ構造501のデータ列は、デバイスドライバ
7の管理する作業メモリ上に、連結リストの形をとり保
持される。印刷処理手順が全て完了した時点では、図3
の例では、文字列32の発生を行なうデータ構造509
のポインタ510は、文字列33の発生を行なうデータ
構造511の先頭番地を指し示している。以下順次、5
11のポインタは512の先頭番地を指し示し、連結リ
ストが構成されている。
ケーション1は、文字列32、33、34、35、、の
順に処理手続きの呼び出しを行なう。前述の実施例と等
価な構成を持つ本実施例においても、この手続き呼び出
しは、文字列発生処理201により処理される。文字列
発生処理201は、手続き呼び出し時のパラメータを取
り出し、データ構造501を持つ内部表現に変換する。
このデータ構造501のデータ列は、デバイスドライバ
7の管理する作業メモリ上に、連結リストの形をとり保
持される。印刷処理手順が全て完了した時点では、図3
の例では、文字列32の発生を行なうデータ構造509
のポインタ510は、文字列33の発生を行なうデータ
構造511の先頭番地を指し示している。以下順次、5
11のポインタは512の先頭番地を指し示し、連結リ
ストが構成されている。
【0032】1ページあたりの印刷処理手順が全て終了
すると、デバイスドライバ7は、同一文字種、同一文字
サイズの順にリストを再結合する。図3の文書では、文
字列32、35などが文字種Aを使用する指定である。
したがって再結合は、まずデータ構造509のポインタ
510を、文字列35の発生を行なうデータ構造513
の先頭番地を指し示すように書き換える。ここで、実際
の印刷処理時の位置関係は、座標データ508により指
定される。図5では、データ構造509において、文字
サイズを18ポイント、文字種をAと指定している。次
に、データ構造513のポインタ部分が、文字列37の
発生を行なうデータ構造514の先頭番地を指し示すよ
うに書き換えられる。
すると、デバイスドライバ7は、同一文字種、同一文字
サイズの順にリストを再結合する。図3の文書では、文
字列32、35などが文字種Aを使用する指定である。
したがって再結合は、まずデータ構造509のポインタ
510を、文字列35の発生を行なうデータ構造513
の先頭番地を指し示すように書き換える。ここで、実際
の印刷処理時の位置関係は、座標データ508により指
定される。図5では、データ構造509において、文字
サイズを18ポイント、文字種をAと指定している。次
に、データ構造513のポインタ部分が、文字列37の
発生を行なうデータ構造514の先頭番地を指し示すよ
うに書き換えられる。
【0033】以上の一連の処理を行ない、連結リストの
終端部分に、何も指し示さないポインタ515を書き込
むことで、終端を示すことができる。この結果作業用の
メモリ上に作成されたデータ構造では、文字種、文字サ
イズ順に文字列生成の指定が行なわれており、印刷装置
8に転送された際、フォントキャッシュを効率良く使用
することができる。
終端部分に、何も指し示さないポインタ515を書き込
むことで、終端を示すことができる。この結果作業用の
メモリ上に作成されたデータ構造では、文字種、文字サ
イズ順に文字列生成の指定が行なわれており、印刷装置
8に転送された際、フォントキャッシュを効率良く使用
することができる。
【0034】
【発明の効果】本発明のプリントスプール手段を用いる
と、アプリケーションから見たときに、印刷装置の物理
的な仕様を抽象化したまま、印刷処理の最適化を図るこ
とが可能となる。今後、アウトラインフォントを使用す
る印刷装置は増加の一途を辿るものと見られ、日本語の
文字種の増加も予想される。こうした場合、フォントキ
ャッシュを効率良く使用する方法が必須であり、アプリ
ケーションへの変更などを必要としない本発明の手段が
有効である。
と、アプリケーションから見たときに、印刷装置の物理
的な仕様を抽象化したまま、印刷処理の最適化を図るこ
とが可能となる。今後、アウトラインフォントを使用す
る印刷装置は増加の一途を辿るものと見られ、日本語の
文字種の増加も予想される。こうした場合、フォントキ
ャッシュを効率良く使用する方法が必須であり、アプリ
ケーションへの変更などを必要としない本発明の手段が
有効である。
【図1】一つの実施例の説明図。
【図2】従来例の説明図。
【図3】文書例の説明図。
【図4】デバイスドライバの構成図。
【図5】スプール処理時のデータ構造の説明図。
1…アプリケーション 3…グラフィック処理段 4…標準処理手続き群 5…ディスプレイコントローラ 7…デバイスドライバ 9…スプールファイル 10…専用処理手続き群 45…ファイル入出力処理 101…文字列発生処理 102…直線発生処理 201…文字列発生処理 202…直線発生処理
Claims (1)
- 【請求項1】 コンピュータ上で動作するアプリケーシ
ョンプログラムの、印刷処理実行時に呼び出されるプリ
ンタドライバプログラムの印刷装置制御手段の内、アプ
リケーションの呼び出し順次に従い、図形記述手段の呼
び出しを符号化する手段、この手段に従い生成される符
号を、図形記述要素としてあらかじめ定めた類型に従い
分類し、各類型別に一時ファイルあるいは作業メモリ領
域に書き出す手段、指定されたページ数に関しアプリケ
ーションの印刷処理が完了した後、上記手段により生成
された一時ファイルあるいは作業メモリ領域より図形記
述要素の符号を取り出し、元の記述に復元する手段、こ
の手段により復元された図形記述要素を、再配置し、印
刷装置側処理プログラムに転送する手段、により構成さ
れたことを特徴とするプリントスプール手段。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3230211A JP2995942B2 (ja) | 1991-09-10 | 1991-09-10 | 文書印刷システム及びその方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3230211A JP2995942B2 (ja) | 1991-09-10 | 1991-09-10 | 文書印刷システム及びその方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0564931A true JPH0564931A (ja) | 1993-03-19 |
JP2995942B2 JP2995942B2 (ja) | 1999-12-27 |
Family
ID=16904313
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3230211A Expired - Fee Related JP2995942B2 (ja) | 1991-09-10 | 1991-09-10 | 文書印刷システム及びその方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2995942B2 (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012181863A (ja) * | 2004-10-21 | 2012-09-20 | Microsoft Corp | システムパフォーマンスを改善するための外部メモリデバイスの使用 |
US10216637B2 (en) | 2004-05-03 | 2019-02-26 | Microsoft Technology Licensing, Llc | Non-volatile memory cache performance improvement |
US10387313B2 (en) | 2008-09-15 | 2019-08-20 | Microsoft Technology Licensing, Llc | Method and system for ensuring reliability of cache data and metadata subsequent to a reboot |
US10509730B2 (en) | 2008-09-19 | 2019-12-17 | Microsoft Technology Licensing, Llc | Aggregation of write traffic to a data store |
US11334484B2 (en) | 2005-12-16 | 2022-05-17 | Microsoft Technology Licensing, Llc | Optimizing write and wear performance for a memory |
-
1991
- 1991-09-10 JP JP3230211A patent/JP2995942B2/ja not_active Expired - Fee Related
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10216637B2 (en) | 2004-05-03 | 2019-02-26 | Microsoft Technology Licensing, Llc | Non-volatile memory cache performance improvement |
JP2012181863A (ja) * | 2004-10-21 | 2012-09-20 | Microsoft Corp | システムパフォーマンスを改善するための外部メモリデバイスの使用 |
US9690496B2 (en) | 2004-10-21 | 2017-06-27 | Microsoft Technology Licensing, Llc | Using external memory devices to improve system performance |
US11334484B2 (en) | 2005-12-16 | 2022-05-17 | Microsoft Technology Licensing, Llc | Optimizing write and wear performance for a memory |
US10387313B2 (en) | 2008-09-15 | 2019-08-20 | Microsoft Technology Licensing, Llc | Method and system for ensuring reliability of cache data and metadata subsequent to a reboot |
US10509730B2 (en) | 2008-09-19 | 2019-12-17 | Microsoft Technology Licensing, Llc | Aggregation of write traffic to a data store |
Also Published As
Publication number | Publication date |
---|---|
JP2995942B2 (ja) | 1999-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3252329B2 (ja) | ページ映像描写装置 | |
US5509115A (en) | Method and apparatus for displaying a page with graphics information on a continuous synchronous raster output device | |
US5930813A (en) | Method and system for designating objects | |
JP3209102B2 (ja) | プリントシステム、プリンタドライバ及びプリンタ | |
US7623130B1 (en) | Text rendering with improved command stream operations | |
JPH0564931A (ja) | プリントスプール手段 | |
JP3020498B2 (ja) | 印刷処理システム | |
EP0663659A2 (en) | Character display in data processing system | |
JP3699923B2 (ja) | レイアウト編集時の頁イメージ表示管理方法 | |
JP3269623B2 (ja) | 文書作成装置 | |
JP2684175B2 (ja) | ページ印刷方法 | |
US8842127B1 (en) | Text rendering with improved glyph cache management | |
JP2851840B2 (ja) | 文書処理装置 | |
JP2003173446A (ja) | 画像処理装置、画像処理システム、画像処理方法、記憶媒体、及びプログラム | |
JP2906643B2 (ja) | 文書処理装置 | |
JP4325339B2 (ja) | 印刷システム、ホストコンピュータ及びプリンタドライバ | |
EP0360501B1 (en) | A text-editing apparatus with real time display function | |
JP2000225745A (ja) | 印刷制御装置およびそのプログラム記録媒体 | |
JP2974638B2 (ja) | 文書処理装置及び方法 | |
JPH0247695A (ja) | 文字パターン発生装置 | |
JP2921975B2 (ja) | 手書き文書作成装置 | |
JPS62191919A (ja) | デ−タ処理装置 | |
JPH0744336A (ja) | 画像処理装置及び画像処理システム | |
JPH07200611A (ja) | データ処理装置及びデータ処理方法 | |
JPH06214749A (ja) | 描画制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081029 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091029 Year of fee payment: 10 |
|
LAPS | Cancellation because of no payment of annual fees |