情報処理装置
【発明の詳細な説明】
[産業上の利用分野]
本発明は、ネットワークを介して文字フォントデータを共有する情報処理装置に関するものである。
[従来の技術]
オフィスでは、パーソナルコンピュータ、オフィスコンピュータ、ファクシミリ、ワードプロセッサなど多様なオフィスツールが導入されている。これらの機器と個人のワークステーションを結びつけて、情報を垂直、水平な構造で複合化させ、統合的なオフィスシステムを実現し、オープンで透過性のある通信機器としての役割がLANに求められ、このようなニーズに対応したものとしてネットワークOSが挙げられる。これは、ホストシステムやUNIXワークステーションとの情報交換を目的として、PCネットワークをベースにした分散処理を実現するためのもので、各ワークステーション、サーバに各機種に共通するプロトコルを搭載し、データファイルの共有、異機種間の接続、周辺機器の共有を容易に実現するものである。
[発明が解決しようとしている課題]
しかしながら、上記従来例では、データ内容の管理ができないため、特に文字データをダウンロードする際、次のような欠点があった。
すなわち、自己のワークステーション上に所望の文字データが存在しない場合、ユーザは他のワークステーションまたはサーバ(プリンタ)に対して毎回コマンドを発行し、一番適切な文字データをユーザが選択し、自己のワークステーションに文字データをダウンロードする必要があった。
[課題を解決するための手段および作用]
本発明によれば、少なくとも1台の印刷装置を含む複数の情報処理装置と接続可能な情報処理装置において、情報を印刷出力するための書体を指定する指定手段と、書体情報を展開して当該書体の文字を生成する展開手段と、指定された書体の書体情報が当該情報処理装置及び出力しようとする印刷装置に記憶されていないとき、接続されている他の情報処理装置に記憶されているか否かを判別する第1の判別手段と、該第1の判別手段によって指定された書体情報が記憶されていると判別された情報処理装置の各々の展開手段が、前記印刷装置の展開手段と形式が一致するか否かを判別する第2の判別手段と、該第1の判別手段によって指定された書体情報が記憶されていると判別された情報処理装置の各々の展開手段により展開される書体情報が、前記印刷装置の展開手段によって展開可能な形に変換可能か否かを判別する第3の判別手段と、前記第2、第3の判別手段により、指定された書体情報が記憶されている他の情報処理装置の内に、前記印刷装置の展開手段の形式と一致するものはないが、変換可能と判別される書体情報を有するものが存在すると判別された時に、当該変換可能な書体情報を有する情報処置処理のうちから1つの情報処理装置を選択する選択手段と、該選択手段により選択された情報処理装置において、指定された書体情報を、前記印刷装置の展開手段によって展開可能な形に変換するように制御する制御手段と、前記変換された書体情報をロードするロード手段とを設けることにより、適切な文字データの自動ダウンロードを可能にするものである。
[実施例]
第1図は、本発明のシステム構成例を示す図である。
同図において、1は、ワークステーション、プリンタを結ぶLANケーブル、2〜11はそれぞれワークステーションA〜J、12〜17はそれぞれプリンタA〜Dである。
ここで、ワークステーションA〜Dは、それぞれ、内部にアウトラインフォントをビットマップフォントに展開するためのフォントマネージャA〜Dを持つ。
また、ワークステーションE〜Gは、いずれも、内部にアウトラインフォントをビットマップフォントに展開するためのフォントマネージャAを有し、ワークステーションEは、フォントマネージャAによってビットマップフォントに展開される細明朝体とゴシック体のアウトラインフォントデータを持ち、ワークステーションFは、フォントマネージャAによってビットマップフォントに展開される細明朝体とゴシック体のアウトラインフォントデータを持ち、ワークステーションGは、フォントマネージャAによってビットマップフォントに展開される太明朝体のアウトラインフォントデータを持つ。
一方、ワークステーションHおよびIは、内部にアウトラインフォントをビットマップフォントに展開するためのフォントマネージャBを有し、ワークステーションHは、フォントマネージャBによってビットマップフォントに展開される細明朝体とゴシック体のアウトラインフォントデータを持ち、ワークステーションIはフォントマネージャBによってビットマップフォントに展開される太明朝体のアウトラインフォントデータを持つ。
ワークステーションJは、内部にアウトラインフォントをビットマップフォントに展開するためのフォントマネージャCと、フォントマネージャCによってビットマップフォントに展開される太明朝体のアウトラインフォントデータを持つ。
更に、プリンタA〜Bは、内部にアウトラインフォントをビットマップフォントに展開するためのフォントマネージャAを有し、プリンタAは、フォントマネージャAによってビットマップフォントに展開される細明朝体とゴシック体のアウトラインフォントデータを持ち、プリンタBは、フォントマネージャAによってビットマップフォントに展開される細明朝体と教科書体のアウトラインフォントデータを持ち、14は、フォントマネージャAによってビットマップフォントに展開される太明朝体のアウトラインフォントデータを持つ。
また、プリンタDおよびEは、内部にアウトラインフォントをビットマップフォントに展開するためのフォントマネージャBを有し、Dは、フォントマネージャBによってビットマップフォントに展開される細明朝体とゴシック体のアウトラインフォントデータを持ち、Eは、フォントマネージャBによってビットマップフォントに展開される太明朝体のアウトラインフォントデータを持っている。
また、プリンタFは、内部にアウトラインフォントをビットマップフォントに展開するためのフォントマネージャEと、フォントマネージャBによってビットマップフォントに展開される太明朝体のアウトラインフォントデータを持つ。
第2図は本発明に関わるワークステーションの基本的な構成を示すブロック図である。
第2図において、201はCPU、即ち中央処理装置であり、装置全体の制御及び演算処理等を行なうものである。202はROM、即ち読み出し専用メモリであり、システム起動プログラム及び文字パターン・データ及びフォントマネージャプログラム等の記憶領域である。ここでは、文字パターンデータはフォントマネージャプログラムにあったデータ形式で格納されている。また、このようなROMの一部または全部は、カートリッジ形式とし、拡張や変更が容易に行なえるようにしてもよい。203はRAM即ちランダムアクセスメモリであり、使用制限のないデータ記憶領域であって、様々な処理毎に各々のプログラム及びデータがロードされ、実行される領域である。204はKBC即ちキーボード制御部であり、205のKB即ちキーボードよりキー入力データを受け取り、CPU201へ伝達する。206はCRTC即ちデイスプレイ制御部、207はCRT即ちデイスプレイ装置であり、CRT207は、CRTC206よりデータを受け取り表示する。209はFD即ちフロッピーディスク装置あるいはHD即ちハードディスク装置等の外部記憶装置であり、プログラム及びデータを記憶させておき、実行時、必要に応じて参照またはRAMへロードする。208は、DKC即ちディスク制御部であり、外部記憶装置209に対するデータ伝送等の制御を行なうものである。210はシステムバスであり、上述の構成要素間のデータの伝送路となるべきものである。
第3図は本発明に関わるプリンタの基本的な構成を示すブロック図である。
第3図において、301はCPU、即ち中央処理装置であり、この装置全体の制御及び演算処理等を行なうものである。302はROM即ち読み出し専用メモリであり、システム起動プログラム及び文字パターン・データ及びフォントマネージャプログラム等の記憶領域である。このとき、文字パターンデータはフォントマネージャプログラムにあったデータ形式で格納されている。このROMは、本体に内蔵されるようにしてもよいし、カートリッジ形式などにより着脱可能なものであってもよい。303はRAM即ちランダムアクセスメモリであり、使用制限のないデータ記憶領域であって、様々な処理毎に各々のプログラム及びデータがロードされ、実行される領域である。305はPRT即ちプリンタ装置であり、304はPRTC即ちプリンタ制御部であって、PRT305を制御する。306はシステムバスであり、上述の構成要素間のデータの伝送路となるべきものである。
本実施例では、あるワークステーションが、あるフォントデータを用いようとするときに、そのフォントデータが、そのワークステーション上に存在しない場合、一定の法則に従って、他のワークステーションからフォントデータをダウンロードする。
第1図の構成のシステムにおいては、例えば、ワークステーションAが細明朝体を使って表示を行なおうとするとき、ワークステーションAには細明朝体のフォントデータがないため、デフォルトとして、ワークステーションEから細明朝体のフォントデータをロードして、ワークステーションAにおいてビットマップに展開して用いる。
このとき、ワークステーションEが電源スイッチがオフであるなどの理由でLANから外されている場合は、ワークステーションFから細明朝体フォントデータをロードして、ワークステーションAにおいてビットマップに展開して用いる。
また、ワークステーションAで楷書体を使って表示を行うときは、ワークステーションEに楷書体が存在せず、ワークステーションFだけに存在するので、ワークステーションFから楷書体のフォントデータをロードして、ワークステーションAにおいてビットマップに展開して用いる。
ワークステーションAで細明朝体とゴシック体の両方を用いて表示を行うときは、ワークステーションEがLANに接続されている限り、ワークステーションEからフォントデータをロードしワークステーションAにおいてビットマップに展開して用いる。
以上のような動作を行うなうために、本実施例では、LAN上の各ワークステーションは、LANに接続された、または接続される可能性のある全てのワークステーション、並びに全てのプリンタのフォントデータに関する情報をテーブルとして持っている。例として、第1図の構成におけるワークステーションAの持つテーブルを、第4図4図に示す。また、自分自身に関するデータも、同様の形式で別個に、または一緒に持ち、参照するものとする。
第4図において、FM種別は、フォントマネージャの種類を表し、デバイス種別は、ワークステーション(WS)であるか、プリンタ(PR)であるかなどを表す。
第5図は、第4図に示されるテーブルを作成する際のフローチャートである。各ワークステーション、プリンタは電源投入後、まずステップS501で第4図の検索テーブルの初期化を行う。次にステップS502でLANに接続されている各ワークステーション、プリンタの全てのアドレス情報が格納されたファイルをFDなどからメモリにロードする。ステップS503では、このファイル中の全てのアドレス情報に対して、以下のステップS504〜S507の処理が終了していればステップS508へ、未処理のアドレス情報があればステップS503に進む。ステップS504では、アドレス情報を1つ獲得し、そのアドレス先のワークステーションまたは、プリンタが接続可能(システムが立ち上がっている)ならばステップS505へ、そうでなければ、このアドレスに対する処理は終了とし、再度ステップS503へ進む。ステップS505では自分のデバイス種別の情報、備えている書体の情報等をそのアドレスの機器に送信する。続いてステップS506へ進み接続先のデバイス種別の情報、持っている書体の情報等を獲得し、ステップS507において、検索テーブルに登録する。そして再度ステップS503に進む。ステップS508では、他のワークステーション、プリンタからのコマンド受信待ちに入る。ステップS509においては、システム終了コマンドを受信した場合ステップS512へ、そうでない場合ステップS510へ進む。ステップS512では、検索テーブルからコマンド発信元のデータを削除し、再びステップS508へ進む。一方、ステップS509においてシステム終了以外のコマンドを受信した場合、まず、ステップS510では相手の書体、デバイス情報等を検索テーブルに登録する。次にステップS511に進み、相手に自分のデバイス情報、書体情報を送信し、再びステップS508に進み、コマンド待ちに入る。
なお、カートリッジがカードなどの装着交換等により、装置の備える書体等に異動が生じる可能性のある場合は、電源投入後、他装置との通信に先立ち、自分自身に関する情報を更新するものとする。
第6図は、本実施例の動作の一例を示すフローチャートである。
フォントデータを持っていないあるワークステーションで、フォントデータが必要になった場合、まず、ステップS601で、必要とする種類のフォントを持ったワークステーションが存在するかどうかを、第4図の検索テーブルを用いて判断する。必要とするフォントデータをもったワークステーションが1つ以上存在する場合、ステップS602に進み、必要とするフォントデータを持ったワークステーションが存在しない場合には、ステップS609へ進む。
ステップS602では、必要とするフォントデータを持つワークステーションの中に、自分と一致するフォントマネージャをもつワークステーションが存在するかどうかを、第4図の検索テーブルを用いて判断する。ステップS602で、一致するフォントマネージャを持つワークステーションが1つ以上存在する場合、ステップS603へ進み、一致するフォントマネージャを持つワークステーションが存在しない場合、ステップS604へ進む。
ステップS603では、必要とするフォントデータを持ち、フォントマネージャの種類が一致する1つ以上のワークステーションから、1つのワークステーションを選択し、ステップS619に進む。その選択方法は、第4図の検索テーブルにおいて最初に現れるものを選んでもよいし、該当するワークステーションの内、その時の状態においてもっとも低い負荷の作業を行っているものとしてもよい。
また、ステップS602で、フォントの種類が一致するワークステーションの中に、一致するフォントマネージャを持つものが存在しない場合、ステップS604に進むが、ここでは、自己のフォントマネージャのデータ形式に変換できるフォントデータを持つワークステーションが存在するかどうかを、第4図の検索テーブルのフォントマネージャ種別と、第11図のデータ形式間の変換の難易度を示すテーブルを用いて判断する。ステップS604で、データ形式変換可能なフォントデータを持つワークステーションが1つ以上存在する場合、ステップS605へ進み、存在しない場合、ステップS607へ進む。
ステップS605では、ステップS604で得られた1つ以上のワークステーションから1つのワークステーションを選択する。続いてステップS606では、ステップS605で選択されたワークステーションにおいて、フォントデータをデータを必要とするワークステーションの持つフォントマネージャのデータ形式に変換し、ステップS619に進む。
一方、ステップS604で、所望のフォントマネージャのデータ形式に変換できるフォントデータを持つワークステーションが存在しない場合、ステップS607で、フォントデータが一致する1つ以上のワークステーションから1つのワークステーションを選択し、ステップS608では、ステップS607で選択されたワークステーション上で、フォントデータをビットマップに展開してステップS618に進む。
また、ステップS601で、必要とするフォントデータを持ったワークステーションが存在しない場合は、ステップS609で、一致するフォントマネージャを持つワークステーションが存在するかどうかを第5図の検索テーブルを用いて、判断する。ステップS609で、一致するフォントマネージャを持つワークステーションが1つ以上存在する場合、ステップS610へ進み、一致するフォントマネージャを持つワークステーションが存在しない場合、ステップS612へ進む。
ステップS610では、一致するフォントマネージャを持つワークステーションの中から、所望のデータに近いフォントデータを持ったワークステーションを1つ以上選択する。その選択方法は、第13図から第15図を例にとって後述する。そして、ステップS611で、ステップS610で選択したワークステーションの中から、1つのワークステーションを選択する。
ステップS609で、一致するフォントマネージャを持つワークステーションが存在しない場合、ステップS612で、所望とするフォントデータに近い種類のフォントデータを持った1つ以上のワークステーションを選択する。その選択方法は、第13図から第15図を例にとって後述する。そして、ステップS613で、ステップS612で選択したものの中に自分のフォントマネージャのデータ形式に変換できるフォントデータを持つワークステーションが存在するかどうかを、第4図の検索テーブルのフォントマネージャ種別と、後述する第11図のフォントデータ間の変換難易度を表すテーブルを用いて判断する。ステップS613で、データ形式変換可能なフォントデータを持つワークステーションが1つ以上存在する場合、ステップS614へ進み、存在しない場合、ステップS616へ進む。
ステップS614では、ステップS613で得られた1つ以上のワークステーションから1つのワークステーションを選択する。ステップS615では、ステップS614において選択されたワークステーションのフォントデータを、所望とするフォントマネージャのデータ形式に変換し、ステップS619に進む。
ステップS613で、所望のフォントマネージャのデータ形式に変換できるフォントデータを持つワークステーションが存在しない場合、ステップS616で、ステップS612で選択された1つ以上のワークステーションから1つのワークステーションを選択する。そして、ステップS61では、ステップS616で選択されたワークステーション上で、フォントデータをビットマップに展開する。
次に、ステップS618においては、ステップS608、ステップS617でビットマップ展開したデータを、フォントを要求したワークステーションへダウンロードする。
また、ステップS619では、ステップS603あるいはステップS611において選択されたフォントデータ、またはステップS606、ステップS615においてデータ形式変換されたフォントデータを、フォント展開要求したワークステーションへダウンロードする。そして、ステップS620において、ステップS619でダウンロードしたフォントデータを、データを要求したワークステーション上でビット展開する。ステップS621では、ステップS618でダウンロードしたビットマップデータあるいはステップS620でビットマップ展開したデータの表示を行って処理を終了する。
ここで、以上の第6図のフローチャートの動作を、第1図1図の構成においてフォントを要求したワークステーションをワークステーションAとして、第4図の検索テーブルを用いて、更に具体的に説明する。
例として、ワークステーションA(フォントマネージャA、フォントデータ無し)から細明朝体の展開要求があった場合を考える。
まず、第6図のステップS601において、細明朝体のフォントデータを有するワークステーションを選択する。ここで、ワークステーションE、ワークステーションF、ワークステーションHが選択される。そして、1つ以上のワークステーションが存在するので、ステップS602へ進む。
ステップS602では、上記ワークステーションの中から、ワークステーションAとフォントマネージャが一致するワークステーションの選択を行う。ここで、ワークステーションE、ワークステーションFが選択される。続いて、ステップS603で、ステップS602で選択されたワークステーションから、1つのワークステーションを選択する。ここで、その選択方法を、仮に、第4図の検索テーブルにおいて最初に現れるものとすると、ワークステーションEに決定される。
そして、ステップS619で、ワークステーションEの細明朝体のフォントデータをワークステーションAへダウンロードする。次に、ステップS620において、ワークステーションA上で、ダウンロードしたフォントデータをフォントマネージャAでビットマップ展開し、ステップS621でビットマップ展開したデータを表示して処理を終了する。
第7図は、本実施例の動作の他の一例を示すフローチャートである。第6図に示した例では、フォントの種類が一致するものがない場合は、またフォントマネージャが一致するものを優先した(ステップS609〜610)が、この例では、まずフォントの種類の近いものを優先する点が第6図のものとは異なっている。
第7図の例で、フォントデータを持っていないあるワークステーションで、フォントデータが必要になった場合、まず、ステップS701で、必要とするフォント種類を持ったワークステーションが存在するかどうかを、第4図R>図の検索テーブルを用いて判断する。必要とするフォントデータをもったワークステーションが1つ以上存在する場合、ステップS702に進み、必要とするフォントデータを持ったワークステーションが存在しない場合には、ステップS709へ進む。
ステップS702〜S708(必要とするフォントデータをもったワークステーションが1つ以上存在する場合の処理)は、ステップS602〜S608とまったく同様であるので省略する。
ステップS701で、必要とするフォントデータを持ったワークステーションが存在しない場合は、まず、ステップS709で、所望とするフォントデータに近いデータを持ったワークステーションを選択する。その選択方法は、第13図及び第15図を例にとって後述する。そして、ステップS710で、ステップS709で得られたワークステーションから、一致するフォントマネージャを持つワークステーションが存在するかどうかを第4図の検索テーブルを用いて、判断する。ステップS710で、一致するフォントマネージャを持つワークステーションが1つ以上存在する場合、ステップS711へ進み、一致するフォントマネージャを持つワークステーションが存在しない場合、ステップS712へ進む。
そして、ステップS711では、ステップS710で選択したワークステーションの中から、1つのワークステーションを選択し、ステップS718に進む。
一方、ステップS712では、一致するフォントマネージャを持つワークステーションが存在しないので、フォントを必要としているワークステーションを持つフォントマネージャのデータ形式に変換できるフォントデータを持つワークステーションが存在するかどうかを第4図の検索テーブルのフォントマネージャ種別と、第11図のテーブルを用いて判断する。ステップS712で、データ形式変換可能なフォントデータを持つワークステーションが1つ以上存在する場合は、ステップS713へ進み、存在しない場合は、ステップS715へ進む。
ステップS713では、ステップS712で得られた1つ以上のワークステーションから1つのワークステーションを選択し、ステップS714では、ステップS713において選択されたワークステーションのフォントデータを所望とするフォントマネージャのデータ形式に変換し、ステップS718に進む。
また、ステップS715では、ステップS709で選択された1つ以上のワークステーションから1つのワークステーションを選択する。そして、ステップS716では、ステップS715で選択されたワークステーション上で、フォントデータをビットマップに展開し、ステップS717に進む。
ステップS717〜S720(ビットマップ展開したデータをダウンロードして、あるいは、ダウンロードしたデータをビットマップ展開して表示する場合の処理)は、ステップS618〜S621とまったく同様であるので省略する。
次に第8図のフローチャートを用いて、他の実施例の説明を行う。
この例では、あるワークステーションでフォントが必要となった場合、ステップS801において、まずフォントを要求しているワークステーションとフォントマネージャの一致するワークステーションが存在するかどうかのチェックを第4図の検索テーブルを用いて行う。そして、少なくとも1つ以上の一致するワークステーションが存在すればステップS802へ進み、一致するワークステーションが1つも存在しない場合にはステップS805へ進む。
ステップS802では、ステップS801で所望のフォントマネージャを持つワークステーションの中に、所望のフォントデータと一致するフォントデータを持つワークステーションが存在するかどうかのチェックを第4図の検索テーブルを用いて行う。そして、少なくとも1つ以上の一致するワークステーションが存在すればステップS803へ進み、一致するワークステーションが存在しない場合はステップS804へ進む。
ステップS803は、所望のフォントマネージャとフォントデータを持つ1つ以上のワークステーションが存在する場合であり、これらのワークステーションから1つのワークステーションを選択するステップである。その複数のワークステーションからの選択方法は、第4図の検索テーブルにおいて最初に現れるものであっても良いし、その時のワークステーションの状態において最も負荷の低い作業を行っているものであっても良い。ステップS803を終えると、ステップS815に進む。
ステップS804は、フォントマネージャの一致するワークステーションが存在するが、その中で所望のフォントデータを持つものが存在しない場合であるので、このフォントマネージャの一致するワークステーションの中から所望のフォントデータに最も近いフォントデータを持つワークステーションを選択し、ステップS815に進む。この選択方法については第13図から第15図を例にとって後述する。
ステップS805は、ステップS801においてフォントマネージャの一致するワークステーションが存在しなかった場合の処理であり、所望のフォントマネージャのデータ形式に変換できるデータ形式のフォントデータを持つワークステーションが存在するかどうかを、第11図の検索テーブルを用いて行う。所望のフォントマネージャのデータ形式に変換できるデータ形式のフォントデータを持つワークステーションが少なくとも1つ以上存在する場合にはステップS806へ進み、このようなワークステーションが1つも存在しない場合にはステップS810へ進む。
ステップS806は、フォントマネージャの一致するワークステーションは存在しないが、少なくとも1つ以上の、所望のフォントマネージャへのデータ形式変換可能なフォントデータを有するワークステーションが存在する場合であり、このステップでは、これらのワークステーションのうち所望のフォントデータを持つものが存在するかどうかのチェックを行い、所望のフォントデータを有するワークステーションが少なくとも1つ以上存在する場合にはステップS807へ進み、所望のフォントデータが存在しない場合にはステップS808へ進む。
ステップS807においては、ステップS806で得られた少なくとも1つ以上のワークステーションのうちから1つのワークステーションの選択を行う。その複数のワークステーションからの選択方法は、第4図の検索テーブルにおいて最初に現れるものであっても良いし、その時のワークステーションの状態において最も負荷の低い作業を行っているものであっても良い。
また、ステップS808においては、フォントマネージャの一致するワークステーションが存在せず、更に所望のフォントデータを有するワークステーションも存在しないが、1つ以上のワークステーションで、フォントを要求しているワークステーションの有するフォントマネージャのデータ形式に変換可能な場合であり、そのフォントデータのうち種類の近いものを有するワークステーションの選択を行う。その選択方法は、第13図から第15図を例にとって後述する。ステップS809においては、ステップS807あるいはステップS808において選択されたワークステーションのフォントデータを、所望のフォントマネージャのデータ形式へ変換する。ステップS810は、フォントデータの一致するワークステーションが存在せず、更にこのフォントマネージャのデータ形式に変換可能なフォントデータが1つも存在しない場合である。このステップでは、所望のフォントデータを有するワークステーションが存在するかどうかのチェックを、第5図の検索テーブルを用いて行い、所望のフォントデータを有するワークステーションが少なくとも1つ以上存在する場合にはステップS811へ進み、存在しない場合にはステップS812へ進む。
ステップS811では、所望のフォントデータを有する複数のワークステーションのうちから1つのワークステーションの選択を行う。その複数のワークステーションからの選択方法は、第4図の検索テーブルにおいて最初に現れるものであっても良いし、その時のワークステーションの状態において最も負荷の低い作業を行っているものであっても良い。
また、ステップS812は、フォントマネージャの一致するワークステーションが存在せず、更に所望のフォントデータを有するワークステーションが存在せず、フォントを要求しているワークステーションのフォントマネージャへのデータ形式の変換もできない場合である。そしてこのステップでは、複数のワークステーションの中から、所望のフォントデータの代わりとなる種類の近いフォントデータを持つワークステーションを1つ選択する。その選択方法は、第13図から第15図を例にとって後述する。
ステップS813においては、ステップS811あるいはステップS812で選択されたワークステーション上でビットマップ展開を行う。ステップS814においては、ステップS813でビットマップ展開を行ったデータをフォントを要求したワークステーションへダウンロードする。
一方、ステップS815においては、ステップS803あるいはステップS804において選択されたフォントデータあるいはステップS809においてデータ形式変換されたデータをフォント要求したワークステーションへダウンロードする。そしてステップS816において、ステップS815でダウンロードしたフォントデータを所望のフォントマネージャでビットマップ展開する。
ステップS817においては、ステップS814でダウンロードしたビットマップデータあるいはステップS816においてビットマップ展開したデータの表示を行って処理を終了する。
ここで、以上の第8図のフローチャートの動作を、第1図1図の構成においてフォントを要求したワークステーションをワークステーションAとして、第4図の検索テーブルを用いて、更に具体的に説明する。
例として、ワークステーションA(フォントマネージャA、フォントデータ無し)から太明朝体の展開要求があった場合を考える。
まず第8図のステップS801において、ワークステーションAのフォントマネージャと一致するワークステーションの選択を行う。このとき、ワークステーションE、ワークステーションF、ワークステーションGが選択される。そして、少なくとも1つ以上のワークステーションが選択されたのでステップS802へ進む。ステップS802では上記ワークステーションの中からワークステーションAが要求したフォントデータが存在するかどうかをチェックする。ここではワークステーションGが選択される。そして、ステップS803では、ステップS802で選択されたワークステーションから1つを選択するが、この時はワークステーションGのみであるのでワークステーションGに決定される。
そしてステップS815において、ワークステーションGのフォントデータをワークステーションAへダウンロードする。そしてステップS816において、ワークステーションA上でダウンロードしたフォントデータをフォントマネージャAでビット展開を行い、ステップS817においてビット展開したデータを表示して処理を終了する。
次に第9図のフローチャートを用いて、更に他の実施例の説明を行う。
第8図に示した例では、フォントマネージャの一致するワークステーションがない場合は、フォントを要求しているワークステーションのフォントマネージャで扱えるデータ形式に変換可能なものを優先した(ステップS801、S805)が、この例では、フォントの種類が一致するものを優先する点が異なっている。
第9図のステップS901において、まずフォントを要求しているワークステーションのフォントマネージャと一致するフォントマネージャを持つワークステーションが存在するかどうかのチェックを第4図の検索テーブルを用いて行う。そして、少なくとも1つ以上のワークステーションとフォントマネージャが一致すれば、ステップS902に進み、一致するフォントマネージャが1つも存在しない場合にはステップS905へ進む。
ステップS902〜S904(フォントマネージャが一致するワークステーションが1つ以上存在する場合の処理)は、ステップS802〜S804とまったく同様なので省略する。
ステップS905は、ステップS901においてフォントマネージャの一致するワークステーションが存在しなかった場合の処理であり、要求したフォントデータを有するワークステーションが存在するかどうかのチェックを、第4図4図の検索テーブルを用いて行う。そして、少なくとも1つの、所望のフォントデータを有するワークステーションが存在すればステップS906へ進み、所望のフォントデータを有するワークステーションが存在しない場合にはステップS911へ進む。
ステップS906では、ステップS905において選択されたワークステーションの有する所望のフォントデータのうち、フォントデータを要求しているワークステーションのフォントマネージャのデータ形式に変換できるフォントデータが存在するかどうかを、第11図の検索テーブルを用いて行う。データ形式変換可能なフォントデータが少なくとも1つ以上存在する場合にはステップS907へ進み、変換可能なフォントデータが1つも存在しない場合にはステップS909へ進む。
ステップS907においては、ステップS906においてデータ形式変換可能なフォントデータを有するとして選択された複数のワークステーションの中から1つのワークステーションを選択する。その複数のワークステーションからの選択方法は、第4図の検索テーブルにおいて最初に現れるものであっても良いし、その時のワークステーションの状態において最も負荷の低い作業を行っているものであっても良い。そして、ステップS908において、ステップS907で選択されたフォントデータを所望のフォントマネージャのデータ形式へ変換する。
一方、ステップS909においては、種類の一致するフォントは、ステップS906において所望のフォントマネージャのデータ形式には1つも変換できないことがわかったので、ステップS905において選択されたフォントデータを持つ複数のワークステーションの中から1つのワークステーションの選択を行う。その複数のワークステーションからの選択方法は、第4図の検索テーブルにおいて最初に現れるものであっても良いし、その時のワークステーションの状態において最も負荷の低い作業を行っているものであっても良い。そして、ステップS910において、ステップS909で選択されたワークステーション上で要求されたフォントデータのビットマップ展開を行う。
ステップS911においては、フォントマネージャの一致するものが存在せず、かつ、所望のフォントデータを有するワークステーションが存在しない場合であり、変わりとなるフォントデータを少なくとも1つ以上選択するステップSである。その選択方法においては、第13図から第15図を例にとって後述する。
ステップS912においては、ステップS911で選択された少なくとも1つ以上のフォントデータのうちから所望のフォントマネージャのデータ形式に変換可能なフォントデータが存在するかどうかを判定する。変換可能なフォントデータが少なくとも1つ以上存在する場合はステップS913へ進み、1つも存在しない場合はステップS915へ進む。
ステップS913においては、ステップS912で選択されたデータ形式が変換可能なフォントデータを持つ複数のワークステーションの中から1つのワークステーションの選択を行う。その複数のワークステーションからの選択方法は、第4図の検索テーブルにおいて最初に現れるものであっても良いし、その時のワークステーションの状態において最も負荷の低い作業を行っているものであっても良い。そして、ステップS914において、選択されたフォントデータを所望のフォントマネージャのデータ形式へ変換する。
一方、ステップS915は、ステップS912で変換可能なデータが存在しない場合の例であり、この時はステップS911で選択されたフォントデータを持つ複数のワークステーションの中から1つのワークステーションの選択を行う。その複数のワークステーションからの選択方法は、第4図の検索テーブルにおいて最初に現れるものであっても良いし、その時のワークステーションの状態においてもっとも負荷の低い作業を行っているものであっても良い。そしてステップS916においてステップS915で選択されたワークステーション上でビットマップ展開を行う。
ステップS917においては、ステップS910あるいはステップS916でビットマップ展開を行ったデータを、フォントを要求したワークステーションへダウンロードする。
また、ステップS918においては、ステップS903あるいはステップS904において選択されたフォントデータ、ステップS908あるいはステップS914においてデータ形式変換されたデータを、フォント要求したワークステーションへダウンロードする。そしてステップS919において、ステップS918でダウンロードしたフォントデータを所望のフォントマネージャでビットマップ展開を行う。
ステップS920においては、ステップS917でダウンロードしたビットマップデータあるいはステップS918においてビットマップ展開したデータの表示を行って処理を終了する。
ここで、以上の第9図のフローチャートの動作を、第1図1図の構成においてフォントを要求したワークステーションをワークステーションDとして、更に具体的に説明する。
ワークステーションDから細明朝体の展開要求があった場合、まず第9図のステップS901において、ワークステーションDとフォントマネージャが一致するワークステーションの選択を行う。ここでは、ワークステーションDのフォントマネージャと一致するフォントマネージャを持つワークステーションが存在しないので、ステップS905へ進む。
ステップS905ではワークステーションDの要求した細明朝体のフォントデータを有するワークステーションが存在するかどうかをチェックし、該当するワークステーションを選択する。このとき、ワークステーションE、ワークステーションF、ワークステーションHが選択される。そして1つ以上の一致するフォントデータが存在するのでステップS906へ進む。
ステップS906においては、ワークステーションDの持つフォントマネージャのデータ形式に変換可能なフォントデータが存在するかどうかのチェックを第11図を用いて行う。このときフォントマネージャDへ変換可能なフォントマネージャはフォントマネージャBのみであるのでワークステーションHが選択される。そして、変換可能なフォントデータを持つワークステーションが存在したのでステップS907へ進む。
ステップS907ではステップS906で選択されたワークステーションの中から1つのワークステーションの選択を行なうが、ステップS906で選択されたのはワークステーションHのみなので、ワークステーションHに決定される。そしてステップS908において、ワークステーションHの持つフォントマネージャBのデータ形式の細明朝体フォントデータを、フォントマネージャDのデータ形式に変換する。
そしてステップS918において、ワークステーションDへ変換されたデータをダウンロードし、ステップS919においてダウンロードしたデータをワークステーションD上のフォントマネージャDにおいてビットマップ展開を行う。最後にステップS920においてビットマップ展開したデータの表示を行って処理を終了する。
次に第10図のフローチャートを用いて、印刷を行なう場合の実施例の説明をする。
第10図のステップS1001において、まず所望のフォントデータと一致するフォントデータを持つプリンタが存在するかどうかのチェックを第4図のごとき検索テーブルを用いて行う。フォントデータの一致するプリンタが少なくとも1つ以上存在すればその全てのプリンタを選択の対象とし、ステップS1002に進む。フォントデータの一致するプリンタが1つも存在しない場合には、ステップS1005へ進む。
ステップS1002では、ステップS1001でフォントデータの一致するプリンタのうちから、所望のフォントマネージャと一致するフォントマネージャを持つものが存在するかどうかのチェックを、第4図の検索テーブルを用いて行う。一致するフォントマネージャを持つものが少なくとも一つ以上存在すれば、そのフォントマネージャを持つプリンタを選択の対象とし、ステップS1004に進む。フォントマネージャが一致するプリンタが一つも存在しない場合には、ステップS1003に進む。
ステップS1003では、ステップS1002までで選択の対象になっているフォントを有するプリンタが1つ以上存在するが、その中に所望のフォントマネージャを持つものが1つもないときである。ここでは、例えばそのうち第4図4図の検索テーブルの中で最初に現れるプリンタを選び、ステップS1018に進む。
ステップS1004では、ステップS1002までで選択の対象になっているフォント、ならびにフォントマネージャを持つプリンタが1つ以上存在するときで、複数のプリンタが候補となっている場合は、第4図の検索テーブルの中で最初に現れるプリンタを選び、ステップS1018に進む。
ステップS1005では、所望のフォントデータが他のワークステーション中に存在するか否かを第4図の検索テーブルを用いて調べ、存在すればステップS1007に進み、存在しなければステップS1006に進む。
ステップS1006では、第4図の検索テーブルを用いて、所望のフォントデータに最も近いフォントデータを持つワークステーションを選ぶ。最も近いフォントデータの選び方は後述する。
ステップS1007では、ステップS1005またはステップS1006で選択されたワークステーションのフォントマネージャに一致するフォントマネージャを持つプリンタが存在するかどうかを調べ、少なくとも一つ以上存在すればステップS1008に進み、一つも存在しない場合はステップS1012に進む。
ステップS1008では、ステップS1005、ステップS1007で選ばれた所望のフォントを有するワークステーションとこのワークステーションとフォントマネージャが一致するプリンタとの組の中から、印字データと同一のフォントマネージャのものが存在するか否かを調べ、少なくとも一つ以上存在する場合にはそのフォントマネージャを持つワークステーションとプリンタを選択の対象にし、ステップS1010に進む。一つも存在しない場合にはステップS1009に進む。
ステップS1009では、選択の対象となっているワークステーション並びにプリンタのうちから1つを選択する。その選択方法は、第4図の検索テーブル中で一番最初に出てくるものであっても良いし、その時のワークステーションの状態において、最も負荷の低い作業を行っているものであっても良い。そしてステップS1011に進む。
また、ステップS1010では、選択の対象となっているワークステーション、ならびにプリンタのうちから1つを選択する。その選択方法は、第4図の検索テーブル中一番最初に出てくるものであっても良いし、その時のワークステーションの状態において、最も負荷の低い作業を行っているものであっても良い。そしてステップS1011に進む。
ステップS1011では、選択されたワークステーション中に存在するフォントデータをLANの回線に通じてプリンタにダウンロードする。
ステップS1012では所望のフォントマネージャがプリンタ中に存在するかどうかを第4図に示した検索テーブルを用いて調べ、少なくとも一つ以上存在すればそのフォントマネージャを持つプリンタを検索の対象としてステップS1014に進み、存在しなければステップS1013に進む。
ステップS1013では、デフォルトとしてテーブル上に登録されているプリンタを選び、このプリンタが選択できない場合は、このプリンタと同じフォントマネージャを持つプリンタを選んでステップS1014に進む。
ステップS1014では、検索テーブル上のワークステーションのフォントデータが、所望のプリンタのフォントマネージャのフォントデータ形式に変換可能であればステップS1015に進み、変換不可能であればステップS1016に進む。
ステップS1015では、選択されたワークステーション上のフォントデータを、印字を行なうプリンタのフォントマネージャのデータ形式に変換する。
ステップS1016では、選択されたワークステーション上でフォントデータをビットマップデータに変換する。
ステップS1017では、ステップS1015で変換したフォントデータあるいはステップS1016でビットマップ展開されたデータをプリンタにダウンロードする。
ステップS1018では、プリンタに内蔵されたフォントデータやダウンロードされたフォントデータ、ダウンロードされたビットマップを用いて印字データを印字して処理を終了する。
なお、上記実施例では、ネットワーク上のプリンタから1つのプリンタを選択したが、ネットワーク上に複数のプリンタが存在しても、設置位置等の関係で、各ワークステーションが実質的に使用可能なプリンタが固定されている場合に、このプリンタにないフォントを使用したい場合には、前述した自分のワークステーションにないフォントによる表示の場合と同様に、このプリンタのフォントマネージャのデータ形式に基づいて他の装置を選択して、選択した装置からフォントデータをこのプリンタへダウンロードするものとする。
第11図はフォントデータの形式の変換の容易さを表した図である。
同図において、3次ベジェは3次ベジェ曲線+直線で表されたフォントデータ、直線は直線のみで表されたフォントデータ、3次Bスプラインは3次Bスプライン曲線+直線で表されたフォントデータ、2次ベジェは2次ベジェ+直線で表されたフォントデータ、円弧は円弧+直線で表されたフォントデータをそれぞれ表し、A〜Eは、それぞれのデータ形式に対応するフォントマネージャの種類である。
この図は、行方向の項目から、列方向の項目への変換の容易さを表したものであり、ここで、◎は元のデータの精度を損なわずに変換が可能のもの、○は元のデータを近似して変換することが可能なもの、×は変換が不可能、または負荷が大きく容易には変換できないものを表す。
次に、1つのフォントから、他のフォントへの変換方法を例を挙げて説明する。第12図は、ベジェ曲線を直線に変換する例を示している。
第12図において1200は表示しようとするベジェ曲線であり、また、1201は曲線の開始点である端点、1202、1203は中間点、1204は曲線の終了点である端点である。
ベジェ曲線1200は端点1201、中間点1202、中間点1203、端点1204を用いて、以下の式により表される。すなわち、 端点1201(X0,Y0)
中間点1202(X1,Y1)
中間点1203(X2,Y2)
端点1204(X3,Y3)
とすると、ベジェ曲線1900は、 X(t)=X0t3+X1t2(1−t)+X2t(1−t)2+X3(1−t)3 Y(t)=Y0t3+Y1t2(1−t)+Y2t(1−t)2+Y3(1−t)3 t=0→1となる。
次にこの式で表されるベジェ曲線を直線に変換する。
第12図で、1205は、端点1201と中間点1202の中点、1206は、中間点1202と中間点1203の中点、1207は、中間点1203と端点1204の中点である。更に、1208は、1205と1206の中点、1209は、1206と1207の中点である。そして、1210は1208と1209の中点である。ベジェ曲線1200を直線に近似するとき、点1201、点1205、点1208、点1209、点1207、点1204を結ぶ直線を書くことにより、近似直線を描くことが可能である。点1210は点1208と点1209と結ぶ線分上にある。近似を更に細かく行いたいときは点1201、点1205、点1208、点1210を4点としたベジェ曲線と点1210、点1209、点1207、点1204を4点としたベジェ曲線をそれぞれ直線に近似することにより、更に細かい近似を行うことができる。このように、ベジュ曲線は再帰的に表現することが可能であり、直線に近似することも容易である。
この変換式を用いて、直線とベジェ曲線で表されたフォントデータを直線のみで表されたフォントデータに変換することができる。
次に第13図のフローチャートを用いて、書体の選択方法について説明を行う。
第13図のステップS1301において、まず、書体の選択方法を自動とするかユーザ自らが判断して行なう(手動)かの選択を行う。手動を選択した場合は、ステップS1302に進み、そうでない場合はステップS1304へ進む。
ステップS1302では、第4図の検索テーブルに存在する書体名をすべて表示し、ステップS1303において表示された書体の中からユーザが選択を行い、処理を終了する。
一方、ステップS1304においては、ファミリー情報が登録されているファイルをメモリにロードする。ステップS1305においてロードしたファミリー情報を参照し、所望の書体にファミリーが存在すればステップS1306へ、存在しなければステップS1309へ進む。
ステップS1306においては、第4図の検索テーブルとファミリー情報から、第14図に示すようなファミリー検索テーブルを作成する。
ステップS1307では、ファミリー検索テーブルにおいて、少なくとも1つ以上の書体に対して、その書体を有するデバイスが存在すれば、ステップS1308に進み、そうでない場合ステップS1309へ進む。
ステップS1308では第14図のファミリー検索テーブルを用い、最もウエイトの近い書体を選択する。その際、ウエイトの小さいものであっても良いし、大きいものであっても良い。
ステップS1309においては、フレンド情報が登録されているファイルをロードする。続いてステップS1310において、ロードしたフレンド情報を参照し、所望の書体にフレンドが存在すればステップS1311へ、存在しなければステップS1314へ進む。
ステップS1311においては、第4図の検索テーブルとロードしたフレンド情報から、第15図に示すようなフレンド検索テーブルを作成する。ステップS1311において、少なくとも一つ以上の書体がフレンド検索テーブル中に存在すれば、ステップS1312に進み、そうでない場合はステップS1314へ進む。
ステップS1312では、第15図のフレンド検索テーブルを用いて書体を選択する。その際の選択方法は、第15図のフレンド検索テーブルにおいて最初に現れる書体であっても良いし、その時のワークステーションの状態においてもっとも負荷の低い作業を行っているワークステーションの書体であっても良い。
ステップS1314においては、自分のワークステーション内にフォントデータが存在するかどうかのチェックを、第4図の検索テーブルを用いて行なう。少なくとも一つ以上の書体が自分の中に存在すれば、ステップS1315に進み、そうでない場合ステップS1316へ進む。
ステップS1315では、第4図の検索テーブルを用いて書体を選択する。その際の選択方法は、第4図の検索テーブルにおいて最初に現れる自分の中の書体であっても良いし、最後に現れる自分の中の書体であっても良い。
また、ステップS1316では、第4図の検索テーブルを用いてシステム全体から書体を選択する。その際の選択方法は、第4図の検索テーブルにおいて最初に現れる書体であっても良いし、その時のワークステーションの状態においてもっとも負荷の低い作業を行っているワークステーションの書体であっても良い。
以上で書体の選択処理を終了する。
[発明の効果]
以上説明したごとく、本発明によれば、情報の出力に際して、所望の書体の自装置が持っていない場合、ネットワーク中の他の装置の持つ書体から最適なものを自動的に選択してロードし、選んで出力することが可能となる。
【図面の簡単な説明】
第1図は、本発明のシステム構成例を示す図、
第2図は、実施例のワークステーションのブロック構成図、
第3図は、実施例のプリンタのブロック構成図、
第4図は、検索テーブルの例を示す図、
第5図は、検索テーブルの作成処理のフローチャート、
第6図〜第10図は、所望のフォントがないときの出力処理のフローチャート、
第11図は、フォント間の変換の容易さを表す図、
第12図は、ベジェ曲線を直線に変換する方法を説明する図、
第13図は、書体の選択手順を示すフローチャート、
第14図は、ファミリーテーブルの例を示す図、
第15図は、フレンド−テーブルの例を示す図である。
1……LANケーブル
2〜11……ワークステーション
12〜17……プリンタ
201、301……CPU
202、302……ROM
203、303……RAM
204……KBC
205……KB
206……CRTC
207……CRT
208……DKC
209……外部記憶装置
210、306……バス
304……PRTC
305……PRT
[産業上の利用分野]
本発明は、ネットワークを介して文字フォントデータを共有する情報処理装置に関するものである。
[従来の技術]
オフィスでは、パーソナルコンピュータ、オフィスコンピュータ、ファクシミリ、ワードプロセッサなど多様なオフィスツールが導入されている。これらの機器と個人のワークステーションを結びつけて、情報を垂直、水平な構造で複合化させ、統合的なオフィスシステムを実現し、オープンで透過性のある通信機器としての役割がLANに求められ、このようなニーズに対応したものとしてネットワークOSが挙げられる。これは、ホストシステムやUNIXワークステーションとの情報交換を目的として、PCネットワークをベースにした分散処理を実現するためのもので、各ワークステーション、サーバに各機種に共通するプロトコルを搭載し、データファイルの共有、異機種間の接続、周辺機器の共有を容易に実現するものである。
[発明が解決しようとしている課題]
しかしながら、上記従来例では、データ内容の管理ができないため、特に文字データをダウンロードする際、次のような欠点があった。
すなわち、自己のワークステーション上に所望の文字データが存在しない場合、ユーザは他のワークステーションまたはサーバ(プリンタ)に対して毎回コマンドを発行し、一番適切な文字データをユーザが選択し、自己のワークステーションに文字データをダウンロードする必要があった。
[課題を解決するための手段および作用]
本発明によれば、少なくとも1台の印刷装置を含む複数の情報処理装置と接続可能な情報処理装置において、情報を印刷出力するための書体を指定する指定手段と、書体情報を展開して当該書体の文字を生成する展開手段と、指定された書体の書体情報が当該情報処理装置及び出力しようとする印刷装置に記憶されていないとき、接続されている他の情報処理装置に記憶されているか否かを判別する第1の判別手段と、該第1の判別手段によって指定された書体情報が記憶されていると判別された情報処理装置の各々の展開手段が、前記印刷装置の展開手段と形式が一致するか否かを判別する第2の判別手段と、該第1の判別手段によって指定された書体情報が記憶されていると判別された情報処理装置の各々の展開手段により展開される書体情報が、前記印刷装置の展開手段によって展開可能な形に変換可能か否かを判別する第3の判別手段と、前記第2、第3の判別手段により、指定された書体情報が記憶されている他の情報処理装置の内に、前記印刷装置の展開手段の形式と一致するものはないが、変換可能と判別される書体情報を有するものが存在すると判別された時に、当該変換可能な書体情報を有する情報処置処理のうちから1つの情報処理装置を選択する選択手段と、該選択手段により選択された情報処理装置において、指定された書体情報を、前記印刷装置の展開手段によって展開可能な形に変換するように制御する制御手段と、前記変換された書体情報をロードするロード手段とを設けることにより、適切な文字データの自動ダウンロードを可能にするものである。
[実施例]
第1図は、本発明のシステム構成例を示す図である。
同図において、1は、ワークステーション、プリンタを結ぶLANケーブル、2〜11はそれぞれワークステーションA〜J、12〜17はそれぞれプリンタA〜Dである。
ここで、ワークステーションA〜Dは、それぞれ、内部にアウトラインフォントをビットマップフォントに展開するためのフォントマネージャA〜Dを持つ。
また、ワークステーションE〜Gは、いずれも、内部にアウトラインフォントをビットマップフォントに展開するためのフォントマネージャAを有し、ワークステーションEは、フォントマネージャAによってビットマップフォントに展開される細明朝体とゴシック体のアウトラインフォントデータを持ち、ワークステーションFは、フォントマネージャAによってビットマップフォントに展開される細明朝体とゴシック体のアウトラインフォントデータを持ち、ワークステーションGは、フォントマネージャAによってビットマップフォントに展開される太明朝体のアウトラインフォントデータを持つ。
一方、ワークステーションHおよびIは、内部にアウトラインフォントをビットマップフォントに展開するためのフォントマネージャBを有し、ワークステーションHは、フォントマネージャBによってビットマップフォントに展開される細明朝体とゴシック体のアウトラインフォントデータを持ち、ワークステーションIはフォントマネージャBによってビットマップフォントに展開される太明朝体のアウトラインフォントデータを持つ。
ワークステーションJは、内部にアウトラインフォントをビットマップフォントに展開するためのフォントマネージャCと、フォントマネージャCによってビットマップフォントに展開される太明朝体のアウトラインフォントデータを持つ。
更に、プリンタA〜Bは、内部にアウトラインフォントをビットマップフォントに展開するためのフォントマネージャAを有し、プリンタAは、フォントマネージャAによってビットマップフォントに展開される細明朝体とゴシック体のアウトラインフォントデータを持ち、プリンタBは、フォントマネージャAによってビットマップフォントに展開される細明朝体と教科書体のアウトラインフォントデータを持ち、14は、フォントマネージャAによってビットマップフォントに展開される太明朝体のアウトラインフォントデータを持つ。
また、プリンタDおよびEは、内部にアウトラインフォントをビットマップフォントに展開するためのフォントマネージャBを有し、Dは、フォントマネージャBによってビットマップフォントに展開される細明朝体とゴシック体のアウトラインフォントデータを持ち、Eは、フォントマネージャBによってビットマップフォントに展開される太明朝体のアウトラインフォントデータを持っている。
また、プリンタFは、内部にアウトラインフォントをビットマップフォントに展開するためのフォントマネージャEと、フォントマネージャBによってビットマップフォントに展開される太明朝体のアウトラインフォントデータを持つ。
第2図は本発明に関わるワークステーションの基本的な構成を示すブロック図である。
第2図において、201はCPU、即ち中央処理装置であり、装置全体の制御及び演算処理等を行なうものである。202はROM、即ち読み出し専用メモリであり、システム起動プログラム及び文字パターン・データ及びフォントマネージャプログラム等の記憶領域である。ここでは、文字パターンデータはフォントマネージャプログラムにあったデータ形式で格納されている。また、このようなROMの一部または全部は、カートリッジ形式とし、拡張や変更が容易に行なえるようにしてもよい。203はRAM即ちランダムアクセスメモリであり、使用制限のないデータ記憶領域であって、様々な処理毎に各々のプログラム及びデータがロードされ、実行される領域である。204はKBC即ちキーボード制御部であり、205のKB即ちキーボードよりキー入力データを受け取り、CPU201へ伝達する。206はCRTC即ちデイスプレイ制御部、207はCRT即ちデイスプレイ装置であり、CRT207は、CRTC206よりデータを受け取り表示する。209はFD即ちフロッピーディスク装置あるいはHD即ちハードディスク装置等の外部記憶装置であり、プログラム及びデータを記憶させておき、実行時、必要に応じて参照またはRAMへロードする。208は、DKC即ちディスク制御部であり、外部記憶装置209に対するデータ伝送等の制御を行なうものである。210はシステムバスであり、上述の構成要素間のデータの伝送路となるべきものである。
第3図は本発明に関わるプリンタの基本的な構成を示すブロック図である。
第3図において、301はCPU、即ち中央処理装置であり、この装置全体の制御及び演算処理等を行なうものである。302はROM即ち読み出し専用メモリであり、システム起動プログラム及び文字パターン・データ及びフォントマネージャプログラム等の記憶領域である。このとき、文字パターンデータはフォントマネージャプログラムにあったデータ形式で格納されている。このROMは、本体に内蔵されるようにしてもよいし、カートリッジ形式などにより着脱可能なものであってもよい。303はRAM即ちランダムアクセスメモリであり、使用制限のないデータ記憶領域であって、様々な処理毎に各々のプログラム及びデータがロードされ、実行される領域である。305はPRT即ちプリンタ装置であり、304はPRTC即ちプリンタ制御部であって、PRT305を制御する。306はシステムバスであり、上述の構成要素間のデータの伝送路となるべきものである。
本実施例では、あるワークステーションが、あるフォントデータを用いようとするときに、そのフォントデータが、そのワークステーション上に存在しない場合、一定の法則に従って、他のワークステーションからフォントデータをダウンロードする。
第1図の構成のシステムにおいては、例えば、ワークステーションAが細明朝体を使って表示を行なおうとするとき、ワークステーションAには細明朝体のフォントデータがないため、デフォルトとして、ワークステーションEから細明朝体のフォントデータをロードして、ワークステーションAにおいてビットマップに展開して用いる。
このとき、ワークステーションEが電源スイッチがオフであるなどの理由でLANから外されている場合は、ワークステーションFから細明朝体フォントデータをロードして、ワークステーションAにおいてビットマップに展開して用いる。
また、ワークステーションAで楷書体を使って表示を行うときは、ワークステーションEに楷書体が存在せず、ワークステーションFだけに存在するので、ワークステーションFから楷書体のフォントデータをロードして、ワークステーションAにおいてビットマップに展開して用いる。
ワークステーションAで細明朝体とゴシック体の両方を用いて表示を行うときは、ワークステーションEがLANに接続されている限り、ワークステーションEからフォントデータをロードしワークステーションAにおいてビットマップに展開して用いる。
以上のような動作を行うなうために、本実施例では、LAN上の各ワークステーションは、LANに接続された、または接続される可能性のある全てのワークステーション、並びに全てのプリンタのフォントデータに関する情報をテーブルとして持っている。例として、第1図の構成におけるワークステーションAの持つテーブルを、第4図4図に示す。また、自分自身に関するデータも、同様の形式で別個に、または一緒に持ち、参照するものとする。
第4図において、FM種別は、フォントマネージャの種類を表し、デバイス種別は、ワークステーション(WS)であるか、プリンタ(PR)であるかなどを表す。
第5図は、第4図に示されるテーブルを作成する際のフローチャートである。各ワークステーション、プリンタは電源投入後、まずステップS501で第4図の検索テーブルの初期化を行う。次にステップS502でLANに接続されている各ワークステーション、プリンタの全てのアドレス情報が格納されたファイルをFDなどからメモリにロードする。ステップS503では、このファイル中の全てのアドレス情報に対して、以下のステップS504〜S507の処理が終了していればステップS508へ、未処理のアドレス情報があればステップS503に進む。ステップS504では、アドレス情報を1つ獲得し、そのアドレス先のワークステーションまたは、プリンタが接続可能(システムが立ち上がっている)ならばステップS505へ、そうでなければ、このアドレスに対する処理は終了とし、再度ステップS503へ進む。ステップS505では自分のデバイス種別の情報、備えている書体の情報等をそのアドレスの機器に送信する。続いてステップS506へ進み接続先のデバイス種別の情報、持っている書体の情報等を獲得し、ステップS507において、検索テーブルに登録する。そして再度ステップS503に進む。ステップS508では、他のワークステーション、プリンタからのコマンド受信待ちに入る。ステップS509においては、システム終了コマンドを受信した場合ステップS512へ、そうでない場合ステップS510へ進む。ステップS512では、検索テーブルからコマンド発信元のデータを削除し、再びステップS508へ進む。一方、ステップS509においてシステム終了以外のコマンドを受信した場合、まず、ステップS510では相手の書体、デバイス情報等を検索テーブルに登録する。次にステップS511に進み、相手に自分のデバイス情報、書体情報を送信し、再びステップS508に進み、コマンド待ちに入る。
なお、カートリッジがカードなどの装着交換等により、装置の備える書体等に異動が生じる可能性のある場合は、電源投入後、他装置との通信に先立ち、自分自身に関する情報を更新するものとする。
第6図は、本実施例の動作の一例を示すフローチャートである。
フォントデータを持っていないあるワークステーションで、フォントデータが必要になった場合、まず、ステップS601で、必要とする種類のフォントを持ったワークステーションが存在するかどうかを、第4図の検索テーブルを用いて判断する。必要とするフォントデータをもったワークステーションが1つ以上存在する場合、ステップS602に進み、必要とするフォントデータを持ったワークステーションが存在しない場合には、ステップS609へ進む。
ステップS602では、必要とするフォントデータを持つワークステーションの中に、自分と一致するフォントマネージャをもつワークステーションが存在するかどうかを、第4図の検索テーブルを用いて判断する。ステップS602で、一致するフォントマネージャを持つワークステーションが1つ以上存在する場合、ステップS603へ進み、一致するフォントマネージャを持つワークステーションが存在しない場合、ステップS604へ進む。
ステップS603では、必要とするフォントデータを持ち、フォントマネージャの種類が一致する1つ以上のワークステーションから、1つのワークステーションを選択し、ステップS619に進む。その選択方法は、第4図の検索テーブルにおいて最初に現れるものを選んでもよいし、該当するワークステーションの内、その時の状態においてもっとも低い負荷の作業を行っているものとしてもよい。
また、ステップS602で、フォントの種類が一致するワークステーションの中に、一致するフォントマネージャを持つものが存在しない場合、ステップS604に進むが、ここでは、自己のフォントマネージャのデータ形式に変換できるフォントデータを持つワークステーションが存在するかどうかを、第4図の検索テーブルのフォントマネージャ種別と、第11図のデータ形式間の変換の難易度を示すテーブルを用いて判断する。ステップS604で、データ形式変換可能なフォントデータを持つワークステーションが1つ以上存在する場合、ステップS605へ進み、存在しない場合、ステップS607へ進む。
ステップS605では、ステップS604で得られた1つ以上のワークステーションから1つのワークステーションを選択する。続いてステップS606では、ステップS605で選択されたワークステーションにおいて、フォントデータをデータを必要とするワークステーションの持つフォントマネージャのデータ形式に変換し、ステップS619に進む。
一方、ステップS604で、所望のフォントマネージャのデータ形式に変換できるフォントデータを持つワークステーションが存在しない場合、ステップS607で、フォントデータが一致する1つ以上のワークステーションから1つのワークステーションを選択し、ステップS608では、ステップS607で選択されたワークステーション上で、フォントデータをビットマップに展開してステップS618に進む。
また、ステップS601で、必要とするフォントデータを持ったワークステーションが存在しない場合は、ステップS609で、一致するフォントマネージャを持つワークステーションが存在するかどうかを第5図の検索テーブルを用いて、判断する。ステップS609で、一致するフォントマネージャを持つワークステーションが1つ以上存在する場合、ステップS610へ進み、一致するフォントマネージャを持つワークステーションが存在しない場合、ステップS612へ進む。
ステップS610では、一致するフォントマネージャを持つワークステーションの中から、所望のデータに近いフォントデータを持ったワークステーションを1つ以上選択する。その選択方法は、第13図から第15図を例にとって後述する。そして、ステップS611で、ステップS610で選択したワークステーションの中から、1つのワークステーションを選択する。
ステップS609で、一致するフォントマネージャを持つワークステーションが存在しない場合、ステップS612で、所望とするフォントデータに近い種類のフォントデータを持った1つ以上のワークステーションを選択する。その選択方法は、第13図から第15図を例にとって後述する。そして、ステップS613で、ステップS612で選択したものの中に自分のフォントマネージャのデータ形式に変換できるフォントデータを持つワークステーションが存在するかどうかを、第4図の検索テーブルのフォントマネージャ種別と、後述する第11図のフォントデータ間の変換難易度を表すテーブルを用いて判断する。ステップS613で、データ形式変換可能なフォントデータを持つワークステーションが1つ以上存在する場合、ステップS614へ進み、存在しない場合、ステップS616へ進む。
ステップS614では、ステップS613で得られた1つ以上のワークステーションから1つのワークステーションを選択する。ステップS615では、ステップS614において選択されたワークステーションのフォントデータを、所望とするフォントマネージャのデータ形式に変換し、ステップS619に進む。
ステップS613で、所望のフォントマネージャのデータ形式に変換できるフォントデータを持つワークステーションが存在しない場合、ステップS616で、ステップS612で選択された1つ以上のワークステーションから1つのワークステーションを選択する。そして、ステップS61では、ステップS616で選択されたワークステーション上で、フォントデータをビットマップに展開する。
次に、ステップS618においては、ステップS608、ステップS617でビットマップ展開したデータを、フォントを要求したワークステーションへダウンロードする。
また、ステップS619では、ステップS603あるいはステップS611において選択されたフォントデータ、またはステップS606、ステップS615においてデータ形式変換されたフォントデータを、フォント展開要求したワークステーションへダウンロードする。そして、ステップS620において、ステップS619でダウンロードしたフォントデータを、データを要求したワークステーション上でビット展開する。ステップS621では、ステップS618でダウンロードしたビットマップデータあるいはステップS620でビットマップ展開したデータの表示を行って処理を終了する。
ここで、以上の第6図のフローチャートの動作を、第1図1図の構成においてフォントを要求したワークステーションをワークステーションAとして、第4図の検索テーブルを用いて、更に具体的に説明する。
例として、ワークステーションA(フォントマネージャA、フォントデータ無し)から細明朝体の展開要求があった場合を考える。
まず、第6図のステップS601において、細明朝体のフォントデータを有するワークステーションを選択する。ここで、ワークステーションE、ワークステーションF、ワークステーションHが選択される。そして、1つ以上のワークステーションが存在するので、ステップS602へ進む。
ステップS602では、上記ワークステーションの中から、ワークステーションAとフォントマネージャが一致するワークステーションの選択を行う。ここで、ワークステーションE、ワークステーションFが選択される。続いて、ステップS603で、ステップS602で選択されたワークステーションから、1つのワークステーションを選択する。ここで、その選択方法を、仮に、第4図の検索テーブルにおいて最初に現れるものとすると、ワークステーションEに決定される。
そして、ステップS619で、ワークステーションEの細明朝体のフォントデータをワークステーションAへダウンロードする。次に、ステップS620において、ワークステーションA上で、ダウンロードしたフォントデータをフォントマネージャAでビットマップ展開し、ステップS621でビットマップ展開したデータを表示して処理を終了する。
第7図は、本実施例の動作の他の一例を示すフローチャートである。第6図に示した例では、フォントの種類が一致するものがない場合は、またフォントマネージャが一致するものを優先した(ステップS609〜610)が、この例では、まずフォントの種類の近いものを優先する点が第6図のものとは異なっている。
第7図の例で、フォントデータを持っていないあるワークステーションで、フォントデータが必要になった場合、まず、ステップS701で、必要とするフォント種類を持ったワークステーションが存在するかどうかを、第4図R>図の検索テーブルを用いて判断する。必要とするフォントデータをもったワークステーションが1つ以上存在する場合、ステップS702に進み、必要とするフォントデータを持ったワークステーションが存在しない場合には、ステップS709へ進む。
ステップS702〜S708(必要とするフォントデータをもったワークステーションが1つ以上存在する場合の処理)は、ステップS602〜S608とまったく同様であるので省略する。
ステップS701で、必要とするフォントデータを持ったワークステーションが存在しない場合は、まず、ステップS709で、所望とするフォントデータに近いデータを持ったワークステーションを選択する。その選択方法は、第13図及び第15図を例にとって後述する。そして、ステップS710で、ステップS709で得られたワークステーションから、一致するフォントマネージャを持つワークステーションが存在するかどうかを第4図の検索テーブルを用いて、判断する。ステップS710で、一致するフォントマネージャを持つワークステーションが1つ以上存在する場合、ステップS711へ進み、一致するフォントマネージャを持つワークステーションが存在しない場合、ステップS712へ進む。
そして、ステップS711では、ステップS710で選択したワークステーションの中から、1つのワークステーションを選択し、ステップS718に進む。
一方、ステップS712では、一致するフォントマネージャを持つワークステーションが存在しないので、フォントを必要としているワークステーションを持つフォントマネージャのデータ形式に変換できるフォントデータを持つワークステーションが存在するかどうかを第4図の検索テーブルのフォントマネージャ種別と、第11図のテーブルを用いて判断する。ステップS712で、データ形式変換可能なフォントデータを持つワークステーションが1つ以上存在する場合は、ステップS713へ進み、存在しない場合は、ステップS715へ進む。
ステップS713では、ステップS712で得られた1つ以上のワークステーションから1つのワークステーションを選択し、ステップS714では、ステップS713において選択されたワークステーションのフォントデータを所望とするフォントマネージャのデータ形式に変換し、ステップS718に進む。
また、ステップS715では、ステップS709で選択された1つ以上のワークステーションから1つのワークステーションを選択する。そして、ステップS716では、ステップS715で選択されたワークステーション上で、フォントデータをビットマップに展開し、ステップS717に進む。
ステップS717〜S720(ビットマップ展開したデータをダウンロードして、あるいは、ダウンロードしたデータをビットマップ展開して表示する場合の処理)は、ステップS618〜S621とまったく同様であるので省略する。
次に第8図のフローチャートを用いて、他の実施例の説明を行う。
この例では、あるワークステーションでフォントが必要となった場合、ステップS801において、まずフォントを要求しているワークステーションとフォントマネージャの一致するワークステーションが存在するかどうかのチェックを第4図の検索テーブルを用いて行う。そして、少なくとも1つ以上の一致するワークステーションが存在すればステップS802へ進み、一致するワークステーションが1つも存在しない場合にはステップS805へ進む。
ステップS802では、ステップS801で所望のフォントマネージャを持つワークステーションの中に、所望のフォントデータと一致するフォントデータを持つワークステーションが存在するかどうかのチェックを第4図の検索テーブルを用いて行う。そして、少なくとも1つ以上の一致するワークステーションが存在すればステップS803へ進み、一致するワークステーションが存在しない場合はステップS804へ進む。
ステップS803は、所望のフォントマネージャとフォントデータを持つ1つ以上のワークステーションが存在する場合であり、これらのワークステーションから1つのワークステーションを選択するステップである。その複数のワークステーションからの選択方法は、第4図の検索テーブルにおいて最初に現れるものであっても良いし、その時のワークステーションの状態において最も負荷の低い作業を行っているものであっても良い。ステップS803を終えると、ステップS815に進む。
ステップS804は、フォントマネージャの一致するワークステーションが存在するが、その中で所望のフォントデータを持つものが存在しない場合であるので、このフォントマネージャの一致するワークステーションの中から所望のフォントデータに最も近いフォントデータを持つワークステーションを選択し、ステップS815に進む。この選択方法については第13図から第15図を例にとって後述する。
ステップS805は、ステップS801においてフォントマネージャの一致するワークステーションが存在しなかった場合の処理であり、所望のフォントマネージャのデータ形式に変換できるデータ形式のフォントデータを持つワークステーションが存在するかどうかを、第11図の検索テーブルを用いて行う。所望のフォントマネージャのデータ形式に変換できるデータ形式のフォントデータを持つワークステーションが少なくとも1つ以上存在する場合にはステップS806へ進み、このようなワークステーションが1つも存在しない場合にはステップS810へ進む。
ステップS806は、フォントマネージャの一致するワークステーションは存在しないが、少なくとも1つ以上の、所望のフォントマネージャへのデータ形式変換可能なフォントデータを有するワークステーションが存在する場合であり、このステップでは、これらのワークステーションのうち所望のフォントデータを持つものが存在するかどうかのチェックを行い、所望のフォントデータを有するワークステーションが少なくとも1つ以上存在する場合にはステップS807へ進み、所望のフォントデータが存在しない場合にはステップS808へ進む。
ステップS807においては、ステップS806で得られた少なくとも1つ以上のワークステーションのうちから1つのワークステーションの選択を行う。その複数のワークステーションからの選択方法は、第4図の検索テーブルにおいて最初に現れるものであっても良いし、その時のワークステーションの状態において最も負荷の低い作業を行っているものであっても良い。
また、ステップS808においては、フォントマネージャの一致するワークステーションが存在せず、更に所望のフォントデータを有するワークステーションも存在しないが、1つ以上のワークステーションで、フォントを要求しているワークステーションの有するフォントマネージャのデータ形式に変換可能な場合であり、そのフォントデータのうち種類の近いものを有するワークステーションの選択を行う。その選択方法は、第13図から第15図を例にとって後述する。ステップS809においては、ステップS807あるいはステップS808において選択されたワークステーションのフォントデータを、所望のフォントマネージャのデータ形式へ変換する。ステップS810は、フォントデータの一致するワークステーションが存在せず、更にこのフォントマネージャのデータ形式に変換可能なフォントデータが1つも存在しない場合である。このステップでは、所望のフォントデータを有するワークステーションが存在するかどうかのチェックを、第5図の検索テーブルを用いて行い、所望のフォントデータを有するワークステーションが少なくとも1つ以上存在する場合にはステップS811へ進み、存在しない場合にはステップS812へ進む。
ステップS811では、所望のフォントデータを有する複数のワークステーションのうちから1つのワークステーションの選択を行う。その複数のワークステーションからの選択方法は、第4図の検索テーブルにおいて最初に現れるものであっても良いし、その時のワークステーションの状態において最も負荷の低い作業を行っているものであっても良い。
また、ステップS812は、フォントマネージャの一致するワークステーションが存在せず、更に所望のフォントデータを有するワークステーションが存在せず、フォントを要求しているワークステーションのフォントマネージャへのデータ形式の変換もできない場合である。そしてこのステップでは、複数のワークステーションの中から、所望のフォントデータの代わりとなる種類の近いフォントデータを持つワークステーションを1つ選択する。その選択方法は、第13図から第15図を例にとって後述する。
ステップS813においては、ステップS811あるいはステップS812で選択されたワークステーション上でビットマップ展開を行う。ステップS814においては、ステップS813でビットマップ展開を行ったデータをフォントを要求したワークステーションへダウンロードする。
一方、ステップS815においては、ステップS803あるいはステップS804において選択されたフォントデータあるいはステップS809においてデータ形式変換されたデータをフォント要求したワークステーションへダウンロードする。そしてステップS816において、ステップS815でダウンロードしたフォントデータを所望のフォントマネージャでビットマップ展開する。
ステップS817においては、ステップS814でダウンロードしたビットマップデータあるいはステップS816においてビットマップ展開したデータの表示を行って処理を終了する。
ここで、以上の第8図のフローチャートの動作を、第1図1図の構成においてフォントを要求したワークステーションをワークステーションAとして、第4図の検索テーブルを用いて、更に具体的に説明する。
例として、ワークステーションA(フォントマネージャA、フォントデータ無し)から太明朝体の展開要求があった場合を考える。
まず第8図のステップS801において、ワークステーションAのフォントマネージャと一致するワークステーションの選択を行う。このとき、ワークステーションE、ワークステーションF、ワークステーションGが選択される。そして、少なくとも1つ以上のワークステーションが選択されたのでステップS802へ進む。ステップS802では上記ワークステーションの中からワークステーションAが要求したフォントデータが存在するかどうかをチェックする。ここではワークステーションGが選択される。そして、ステップS803では、ステップS802で選択されたワークステーションから1つを選択するが、この時はワークステーションGのみであるのでワークステーションGに決定される。
そしてステップS815において、ワークステーションGのフォントデータをワークステーションAへダウンロードする。そしてステップS816において、ワークステーションA上でダウンロードしたフォントデータをフォントマネージャAでビット展開を行い、ステップS817においてビット展開したデータを表示して処理を終了する。
次に第9図のフローチャートを用いて、更に他の実施例の説明を行う。
第8図に示した例では、フォントマネージャの一致するワークステーションがない場合は、フォントを要求しているワークステーションのフォントマネージャで扱えるデータ形式に変換可能なものを優先した(ステップS801、S805)が、この例では、フォントの種類が一致するものを優先する点が異なっている。
第9図のステップS901において、まずフォントを要求しているワークステーションのフォントマネージャと一致するフォントマネージャを持つワークステーションが存在するかどうかのチェックを第4図の検索テーブルを用いて行う。そして、少なくとも1つ以上のワークステーションとフォントマネージャが一致すれば、ステップS902に進み、一致するフォントマネージャが1つも存在しない場合にはステップS905へ進む。
ステップS902〜S904(フォントマネージャが一致するワークステーションが1つ以上存在する場合の処理)は、ステップS802〜S804とまったく同様なので省略する。
ステップS905は、ステップS901においてフォントマネージャの一致するワークステーションが存在しなかった場合の処理であり、要求したフォントデータを有するワークステーションが存在するかどうかのチェックを、第4図4図の検索テーブルを用いて行う。そして、少なくとも1つの、所望のフォントデータを有するワークステーションが存在すればステップS906へ進み、所望のフォントデータを有するワークステーションが存在しない場合にはステップS911へ進む。
ステップS906では、ステップS905において選択されたワークステーションの有する所望のフォントデータのうち、フォントデータを要求しているワークステーションのフォントマネージャのデータ形式に変換できるフォントデータが存在するかどうかを、第11図の検索テーブルを用いて行う。データ形式変換可能なフォントデータが少なくとも1つ以上存在する場合にはステップS907へ進み、変換可能なフォントデータが1つも存在しない場合にはステップS909へ進む。
ステップS907においては、ステップS906においてデータ形式変換可能なフォントデータを有するとして選択された複数のワークステーションの中から1つのワークステーションを選択する。その複数のワークステーションからの選択方法は、第4図の検索テーブルにおいて最初に現れるものであっても良いし、その時のワークステーションの状態において最も負荷の低い作業を行っているものであっても良い。そして、ステップS908において、ステップS907で選択されたフォントデータを所望のフォントマネージャのデータ形式へ変換する。
一方、ステップS909においては、種類の一致するフォントは、ステップS906において所望のフォントマネージャのデータ形式には1つも変換できないことがわかったので、ステップS905において選択されたフォントデータを持つ複数のワークステーションの中から1つのワークステーションの選択を行う。その複数のワークステーションからの選択方法は、第4図の検索テーブルにおいて最初に現れるものであっても良いし、その時のワークステーションの状態において最も負荷の低い作業を行っているものであっても良い。そして、ステップS910において、ステップS909で選択されたワークステーション上で要求されたフォントデータのビットマップ展開を行う。
ステップS911においては、フォントマネージャの一致するものが存在せず、かつ、所望のフォントデータを有するワークステーションが存在しない場合であり、変わりとなるフォントデータを少なくとも1つ以上選択するステップSである。その選択方法においては、第13図から第15図を例にとって後述する。
ステップS912においては、ステップS911で選択された少なくとも1つ以上のフォントデータのうちから所望のフォントマネージャのデータ形式に変換可能なフォントデータが存在するかどうかを判定する。変換可能なフォントデータが少なくとも1つ以上存在する場合はステップS913へ進み、1つも存在しない場合はステップS915へ進む。
ステップS913においては、ステップS912で選択されたデータ形式が変換可能なフォントデータを持つ複数のワークステーションの中から1つのワークステーションの選択を行う。その複数のワークステーションからの選択方法は、第4図の検索テーブルにおいて最初に現れるものであっても良いし、その時のワークステーションの状態において最も負荷の低い作業を行っているものであっても良い。そして、ステップS914において、選択されたフォントデータを所望のフォントマネージャのデータ形式へ変換する。
一方、ステップS915は、ステップS912で変換可能なデータが存在しない場合の例であり、この時はステップS911で選択されたフォントデータを持つ複数のワークステーションの中から1つのワークステーションの選択を行う。その複数のワークステーションからの選択方法は、第4図の検索テーブルにおいて最初に現れるものであっても良いし、その時のワークステーションの状態においてもっとも負荷の低い作業を行っているものであっても良い。そしてステップS916においてステップS915で選択されたワークステーション上でビットマップ展開を行う。
ステップS917においては、ステップS910あるいはステップS916でビットマップ展開を行ったデータを、フォントを要求したワークステーションへダウンロードする。
また、ステップS918においては、ステップS903あるいはステップS904において選択されたフォントデータ、ステップS908あるいはステップS914においてデータ形式変換されたデータを、フォント要求したワークステーションへダウンロードする。そしてステップS919において、ステップS918でダウンロードしたフォントデータを所望のフォントマネージャでビットマップ展開を行う。
ステップS920においては、ステップS917でダウンロードしたビットマップデータあるいはステップS918においてビットマップ展開したデータの表示を行って処理を終了する。
ここで、以上の第9図のフローチャートの動作を、第1図1図の構成においてフォントを要求したワークステーションをワークステーションDとして、更に具体的に説明する。
ワークステーションDから細明朝体の展開要求があった場合、まず第9図のステップS901において、ワークステーションDとフォントマネージャが一致するワークステーションの選択を行う。ここでは、ワークステーションDのフォントマネージャと一致するフォントマネージャを持つワークステーションが存在しないので、ステップS905へ進む。
ステップS905ではワークステーションDの要求した細明朝体のフォントデータを有するワークステーションが存在するかどうかをチェックし、該当するワークステーションを選択する。このとき、ワークステーションE、ワークステーションF、ワークステーションHが選択される。そして1つ以上の一致するフォントデータが存在するのでステップS906へ進む。
ステップS906においては、ワークステーションDの持つフォントマネージャのデータ形式に変換可能なフォントデータが存在するかどうかのチェックを第11図を用いて行う。このときフォントマネージャDへ変換可能なフォントマネージャはフォントマネージャBのみであるのでワークステーションHが選択される。そして、変換可能なフォントデータを持つワークステーションが存在したのでステップS907へ進む。
ステップS907ではステップS906で選択されたワークステーションの中から1つのワークステーションの選択を行なうが、ステップS906で選択されたのはワークステーションHのみなので、ワークステーションHに決定される。そしてステップS908において、ワークステーションHの持つフォントマネージャBのデータ形式の細明朝体フォントデータを、フォントマネージャDのデータ形式に変換する。
そしてステップS918において、ワークステーションDへ変換されたデータをダウンロードし、ステップS919においてダウンロードしたデータをワークステーションD上のフォントマネージャDにおいてビットマップ展開を行う。最後にステップS920においてビットマップ展開したデータの表示を行って処理を終了する。
次に第10図のフローチャートを用いて、印刷を行なう場合の実施例の説明をする。
第10図のステップS1001において、まず所望のフォントデータと一致するフォントデータを持つプリンタが存在するかどうかのチェックを第4図のごとき検索テーブルを用いて行う。フォントデータの一致するプリンタが少なくとも1つ以上存在すればその全てのプリンタを選択の対象とし、ステップS1002に進む。フォントデータの一致するプリンタが1つも存在しない場合には、ステップS1005へ進む。
ステップS1002では、ステップS1001でフォントデータの一致するプリンタのうちから、所望のフォントマネージャと一致するフォントマネージャを持つものが存在するかどうかのチェックを、第4図の検索テーブルを用いて行う。一致するフォントマネージャを持つものが少なくとも一つ以上存在すれば、そのフォントマネージャを持つプリンタを選択の対象とし、ステップS1004に進む。フォントマネージャが一致するプリンタが一つも存在しない場合には、ステップS1003に進む。
ステップS1003では、ステップS1002までで選択の対象になっているフォントを有するプリンタが1つ以上存在するが、その中に所望のフォントマネージャを持つものが1つもないときである。ここでは、例えばそのうち第4図4図の検索テーブルの中で最初に現れるプリンタを選び、ステップS1018に進む。
ステップS1004では、ステップS1002までで選択の対象になっているフォント、ならびにフォントマネージャを持つプリンタが1つ以上存在するときで、複数のプリンタが候補となっている場合は、第4図の検索テーブルの中で最初に現れるプリンタを選び、ステップS1018に進む。
ステップS1005では、所望のフォントデータが他のワークステーション中に存在するか否かを第4図の検索テーブルを用いて調べ、存在すればステップS1007に進み、存在しなければステップS1006に進む。
ステップS1006では、第4図の検索テーブルを用いて、所望のフォントデータに最も近いフォントデータを持つワークステーションを選ぶ。最も近いフォントデータの選び方は後述する。
ステップS1007では、ステップS1005またはステップS1006で選択されたワークステーションのフォントマネージャに一致するフォントマネージャを持つプリンタが存在するかどうかを調べ、少なくとも一つ以上存在すればステップS1008に進み、一つも存在しない場合はステップS1012に進む。
ステップS1008では、ステップS1005、ステップS1007で選ばれた所望のフォントを有するワークステーションとこのワークステーションとフォントマネージャが一致するプリンタとの組の中から、印字データと同一のフォントマネージャのものが存在するか否かを調べ、少なくとも一つ以上存在する場合にはそのフォントマネージャを持つワークステーションとプリンタを選択の対象にし、ステップS1010に進む。一つも存在しない場合にはステップS1009に進む。
ステップS1009では、選択の対象となっているワークステーション並びにプリンタのうちから1つを選択する。その選択方法は、第4図の検索テーブル中で一番最初に出てくるものであっても良いし、その時のワークステーションの状態において、最も負荷の低い作業を行っているものであっても良い。そしてステップS1011に進む。
また、ステップS1010では、選択の対象となっているワークステーション、ならびにプリンタのうちから1つを選択する。その選択方法は、第4図の検索テーブル中一番最初に出てくるものであっても良いし、その時のワークステーションの状態において、最も負荷の低い作業を行っているものであっても良い。そしてステップS1011に進む。
ステップS1011では、選択されたワークステーション中に存在するフォントデータをLANの回線に通じてプリンタにダウンロードする。
ステップS1012では所望のフォントマネージャがプリンタ中に存在するかどうかを第4図に示した検索テーブルを用いて調べ、少なくとも一つ以上存在すればそのフォントマネージャを持つプリンタを検索の対象としてステップS1014に進み、存在しなければステップS1013に進む。
ステップS1013では、デフォルトとしてテーブル上に登録されているプリンタを選び、このプリンタが選択できない場合は、このプリンタと同じフォントマネージャを持つプリンタを選んでステップS1014に進む。
ステップS1014では、検索テーブル上のワークステーションのフォントデータが、所望のプリンタのフォントマネージャのフォントデータ形式に変換可能であればステップS1015に進み、変換不可能であればステップS1016に進む。
ステップS1015では、選択されたワークステーション上のフォントデータを、印字を行なうプリンタのフォントマネージャのデータ形式に変換する。
ステップS1016では、選択されたワークステーション上でフォントデータをビットマップデータに変換する。
ステップS1017では、ステップS1015で変換したフォントデータあるいはステップS1016でビットマップ展開されたデータをプリンタにダウンロードする。
ステップS1018では、プリンタに内蔵されたフォントデータやダウンロードされたフォントデータ、ダウンロードされたビットマップを用いて印字データを印字して処理を終了する。
なお、上記実施例では、ネットワーク上のプリンタから1つのプリンタを選択したが、ネットワーク上に複数のプリンタが存在しても、設置位置等の関係で、各ワークステーションが実質的に使用可能なプリンタが固定されている場合に、このプリンタにないフォントを使用したい場合には、前述した自分のワークステーションにないフォントによる表示の場合と同様に、このプリンタのフォントマネージャのデータ形式に基づいて他の装置を選択して、選択した装置からフォントデータをこのプリンタへダウンロードするものとする。
第11図はフォントデータの形式の変換の容易さを表した図である。
同図において、3次ベジェは3次ベジェ曲線+直線で表されたフォントデータ、直線は直線のみで表されたフォントデータ、3次Bスプラインは3次Bスプライン曲線+直線で表されたフォントデータ、2次ベジェは2次ベジェ+直線で表されたフォントデータ、円弧は円弧+直線で表されたフォントデータをそれぞれ表し、A〜Eは、それぞれのデータ形式に対応するフォントマネージャの種類である。
この図は、行方向の項目から、列方向の項目への変換の容易さを表したものであり、ここで、◎は元のデータの精度を損なわずに変換が可能のもの、○は元のデータを近似して変換することが可能なもの、×は変換が不可能、または負荷が大きく容易には変換できないものを表す。
次に、1つのフォントから、他のフォントへの変換方法を例を挙げて説明する。第12図は、ベジェ曲線を直線に変換する例を示している。
第12図において1200は表示しようとするベジェ曲線であり、また、1201は曲線の開始点である端点、1202、1203は中間点、1204は曲線の終了点である端点である。
ベジェ曲線1200は端点1201、中間点1202、中間点1203、端点1204を用いて、以下の式により表される。すなわち、 端点1201(X0,Y0)
中間点1202(X1,Y1)
中間点1203(X2,Y2)
端点1204(X3,Y3)
とすると、ベジェ曲線1900は、 X(t)=X0t3+X1t2(1−t)+X2t(1−t)2+X3(1−t)3 Y(t)=Y0t3+Y1t2(1−t)+Y2t(1−t)2+Y3(1−t)3 t=0→1となる。
次にこの式で表されるベジェ曲線を直線に変換する。
第12図で、1205は、端点1201と中間点1202の中点、1206は、中間点1202と中間点1203の中点、1207は、中間点1203と端点1204の中点である。更に、1208は、1205と1206の中点、1209は、1206と1207の中点である。そして、1210は1208と1209の中点である。ベジェ曲線1200を直線に近似するとき、点1201、点1205、点1208、点1209、点1207、点1204を結ぶ直線を書くことにより、近似直線を描くことが可能である。点1210は点1208と点1209と結ぶ線分上にある。近似を更に細かく行いたいときは点1201、点1205、点1208、点1210を4点としたベジェ曲線と点1210、点1209、点1207、点1204を4点としたベジェ曲線をそれぞれ直線に近似することにより、更に細かい近似を行うことができる。このように、ベジュ曲線は再帰的に表現することが可能であり、直線に近似することも容易である。
この変換式を用いて、直線とベジェ曲線で表されたフォントデータを直線のみで表されたフォントデータに変換することができる。
次に第13図のフローチャートを用いて、書体の選択方法について説明を行う。
第13図のステップS1301において、まず、書体の選択方法を自動とするかユーザ自らが判断して行なう(手動)かの選択を行う。手動を選択した場合は、ステップS1302に進み、そうでない場合はステップS1304へ進む。
ステップS1302では、第4図の検索テーブルに存在する書体名をすべて表示し、ステップS1303において表示された書体の中からユーザが選択を行い、処理を終了する。
一方、ステップS1304においては、ファミリー情報が登録されているファイルをメモリにロードする。ステップS1305においてロードしたファミリー情報を参照し、所望の書体にファミリーが存在すればステップS1306へ、存在しなければステップS1309へ進む。
ステップS1306においては、第4図の検索テーブルとファミリー情報から、第14図に示すようなファミリー検索テーブルを作成する。
ステップS1307では、ファミリー検索テーブルにおいて、少なくとも1つ以上の書体に対して、その書体を有するデバイスが存在すれば、ステップS1308に進み、そうでない場合ステップS1309へ進む。
ステップS1308では第14図のファミリー検索テーブルを用い、最もウエイトの近い書体を選択する。その際、ウエイトの小さいものであっても良いし、大きいものであっても良い。
ステップS1309においては、フレンド情報が登録されているファイルをロードする。続いてステップS1310において、ロードしたフレンド情報を参照し、所望の書体にフレンドが存在すればステップS1311へ、存在しなければステップS1314へ進む。
ステップS1311においては、第4図の検索テーブルとロードしたフレンド情報から、第15図に示すようなフレンド検索テーブルを作成する。ステップS1311において、少なくとも一つ以上の書体がフレンド検索テーブル中に存在すれば、ステップS1312に進み、そうでない場合はステップS1314へ進む。
ステップS1312では、第15図のフレンド検索テーブルを用いて書体を選択する。その際の選択方法は、第15図のフレンド検索テーブルにおいて最初に現れる書体であっても良いし、その時のワークステーションの状態においてもっとも負荷の低い作業を行っているワークステーションの書体であっても良い。
ステップS1314においては、自分のワークステーション内にフォントデータが存在するかどうかのチェックを、第4図の検索テーブルを用いて行なう。少なくとも一つ以上の書体が自分の中に存在すれば、ステップS1315に進み、そうでない場合ステップS1316へ進む。
ステップS1315では、第4図の検索テーブルを用いて書体を選択する。その際の選択方法は、第4図の検索テーブルにおいて最初に現れる自分の中の書体であっても良いし、最後に現れる自分の中の書体であっても良い。
また、ステップS1316では、第4図の検索テーブルを用いてシステム全体から書体を選択する。その際の選択方法は、第4図の検索テーブルにおいて最初に現れる書体であっても良いし、その時のワークステーションの状態においてもっとも負荷の低い作業を行っているワークステーションの書体であっても良い。
以上で書体の選択処理を終了する。
[発明の効果]
以上説明したごとく、本発明によれば、情報の出力に際して、所望の書体の自装置が持っていない場合、ネットワーク中の他の装置の持つ書体から最適なものを自動的に選択してロードし、選んで出力することが可能となる。
【図面の簡単な説明】
第1図は、本発明のシステム構成例を示す図、
第2図は、実施例のワークステーションのブロック構成図、
第3図は、実施例のプリンタのブロック構成図、
第4図は、検索テーブルの例を示す図、
第5図は、検索テーブルの作成処理のフローチャート、
第6図〜第10図は、所望のフォントがないときの出力処理のフローチャート、
第11図は、フォント間の変換の容易さを表す図、
第12図は、ベジェ曲線を直線に変換する方法を説明する図、
第13図は、書体の選択手順を示すフローチャート、
第14図は、ファミリーテーブルの例を示す図、
第15図は、フレンド−テーブルの例を示す図である。
1……LANケーブル
2〜11……ワークステーション
12〜17……プリンタ
201、301……CPU
202、302……ROM
203、303……RAM
204……KBC
205……KB
206……CRTC
207……CRT
208……DKC
209……外部記憶装置
210、306……バス
304……PRTC
305……PRT
【特許請求の範囲】
【請求項1】少なくとも1台の印刷装置を含む複数の情報処理装置と接続可能な情報処理装置であって、情報を印刷出力するための書体を指定する指定手段と、書体情報を展開して当該書体の文字を生成する展開手段と、指定された書体の書体情報が当該情報処理装置及び出力しようとする印刷装置に記憶されていないとき、接続されている他の情報処理装置に記憶されているか否かを判別する第1の判別手段と、該第1の判別手段によって指定された書体情報が記憶されていると判別された情報処理装置の各々の展開手段が、前記印刷装置の展開手段と形式が一致するか否かを判別する第2の判別手段と、該第1の判別手段によって指定された書体情報が記憶されていると判別された情報処理装置の各々の展開手段により展開される書体情報が、前記印刷装置の展開手段によって展開可能な形に変換可能か否かを判別する第3の判別手段と、前記第2、第3の判別手段により、制定された書体情報が記憶されている他の情報処理装置の内に、前記印刷装置の展開手段の形式と一致するものはないが、変換可能と判別される書体情報を有するものが存在すると判別された時に、当該変換可能な書体情報を有する情報処置装置のうちから1つの情報処理装置を選択する選択手段と、該選択手段により選択された情報処理装置において、指定された書体情報を、前記印刷装置の展開手段によって展開可能な形に変換するように制御する制御手段と、前記変換された書体情報をロードするロード手段とを備えたことを特徴とする情報処理装置。
【請求項2】前記第1の判別手段が、接続されている各情報処理装置に記憶されている書体情報の種類を記憶する手段を有することを特徴とする請求項第1項記載の情報処理装置。
【請求項3】前記第2の判別手段が、接続されている各情報処理装置に備えられた展開手段の形式を記憶する手段を有することを特徴とする請求項第1項記載の情報処理装置。
【請求項4】前記第3の判別手段が、各展開手段の形式に対応する書体情報の、他の展開手段に対応する書体情報への変換可能性を記憶する手段を有することを特徴とする請求項第1項記載の情報処理装置。
【請求項5】前記第2、第3の判別手段により、指定された書体情報が記憶されている他の情報処理装置の内に、前記印刷装置の展開手段の形式と一致するものも、変換可能と判別される書体情報を有するものも存在しないと判別された時に、前記他の情報処理装置のうちから1つの情報処理装置を選択する選択手段と、該選択手段により選択された情報処理装置において、指定された書体情報を展開手段によって展開するように制御する制御手段と、前記展開された書体情報をロードするロード手段とを備えたことを特徴とする請求項第1項記載の情報処理装置。
【請求項1】少なくとも1台の印刷装置を含む複数の情報処理装置と接続可能な情報処理装置であって、情報を印刷出力するための書体を指定する指定手段と、書体情報を展開して当該書体の文字を生成する展開手段と、指定された書体の書体情報が当該情報処理装置及び出力しようとする印刷装置に記憶されていないとき、接続されている他の情報処理装置に記憶されているか否かを判別する第1の判別手段と、該第1の判別手段によって指定された書体情報が記憶されていると判別された情報処理装置の各々の展開手段が、前記印刷装置の展開手段と形式が一致するか否かを判別する第2の判別手段と、該第1の判別手段によって指定された書体情報が記憶されていると判別された情報処理装置の各々の展開手段により展開される書体情報が、前記印刷装置の展開手段によって展開可能な形に変換可能か否かを判別する第3の判別手段と、前記第2、第3の判別手段により、制定された書体情報が記憶されている他の情報処理装置の内に、前記印刷装置の展開手段の形式と一致するものはないが、変換可能と判別される書体情報を有するものが存在すると判別された時に、当該変換可能な書体情報を有する情報処置装置のうちから1つの情報処理装置を選択する選択手段と、該選択手段により選択された情報処理装置において、指定された書体情報を、前記印刷装置の展開手段によって展開可能な形に変換するように制御する制御手段と、前記変換された書体情報をロードするロード手段とを備えたことを特徴とする情報処理装置。
【請求項2】前記第1の判別手段が、接続されている各情報処理装置に記憶されている書体情報の種類を記憶する手段を有することを特徴とする請求項第1項記載の情報処理装置。
【請求項3】前記第2の判別手段が、接続されている各情報処理装置に備えられた展開手段の形式を記憶する手段を有することを特徴とする請求項第1項記載の情報処理装置。
【請求項4】前記第3の判別手段が、各展開手段の形式に対応する書体情報の、他の展開手段に対応する書体情報への変換可能性を記憶する手段を有することを特徴とする請求項第1項記載の情報処理装置。
【請求項5】前記第2、第3の判別手段により、指定された書体情報が記憶されている他の情報処理装置の内に、前記印刷装置の展開手段の形式と一致するものも、変換可能と判別される書体情報を有するものも存在しないと判別された時に、前記他の情報処理装置のうちから1つの情報処理装置を選択する選択手段と、該選択手段により選択された情報処理装置において、指定された書体情報を展開手段によって展開するように制御する制御手段と、前記展開された書体情報をロードするロード手段とを備えたことを特徴とする請求項第1項記載の情報処理装置。
【第2図】
【第3図】
【第1図】
【第4図】
【第5図】
【第6図】
【第7図】
【第8図】
【第9図】
【第10図】
【第11図】
【第12図】
【第13図】
【第14図】
【第15図】
【第3図】
【第1図】
【第4図】
【第5図】
【第6図】
【第7図】
【第8図】
【第9図】
【第10図】
【第11図】
【第12図】
【第13図】
【第14図】
【第15図】
【特許番号】特許第3236016号(P3236016)
【登録日】平成13年9月28日(2001.9.28)
【発行日】平成13年12月4日(2001.12.4)
【国際特許分類】
【出願番号】特願平2−272610
【出願日】平成2年10月9日(1990.10.9)
【公開番号】特開平4−147324
【公開日】平成4年5月20日(1992.5.20)
【審査請求日】平成9年10月8日(1997.10.8)
【出願人】(999999999)キヤノン株式会社
【登録日】平成13年9月28日(2001.9.28)
【発行日】平成13年12月4日(2001.12.4)
【国際特許分類】
【出願日】平成2年10月9日(1990.10.9)
【公開番号】特開平4−147324
【公開日】平成4年5月20日(1992.5.20)
【審査請求日】平成9年10月8日(1997.10.8)
【出願人】(999999999)キヤノン株式会社
[ Back to top ]