(57)【要約】【課題】  Ｗｅｂフォントを全てダウンロードすると、記憶容量が足りないことがある。サーバから取得した、Ｗｅｂフォントのサブセットに含まれない文字の表示を、クライアント側で行う必要があるときに、文字の表示ができない。【解決手段】  Ｗｅｂフォントをサーバに要求するときに、クライアント側の保持するフォントを示すフォント情報を付加して要求し、フォント情報を用いて絞られた、Ｗｅｂフォントのサブセットをサーバから取得し、Ｗｅｂフォントのサブセットとクライアントが保持するフォントとを用いて描画対象のデータの描画を行う。【選択図】  図２
2019045994.tif 000002
【特許請求の範囲】
【請求項１】
文字描画処理装置であって、
描画対象のデータにおいて指定されたＷｅｂフォントをサーバに要求するときに、前記文字描画処理装置が保持するフォントを示すフォント情報を付加して要求する要求手段と、
前記フォント情報を用いて絞られた、前記Ｗｅｂフォントのサブセットを前記サーバから取得する取得手段と、
前記Ｗｅｂフォントのサブセットと前記文字描画処理装置が保持するフォントとを用いて前記描画対象のデータの描画を行う描画手段と、
を備えることを特徴とする文字描画処理装置。
【請求項２】
前記フォント情報として、前記文字描画処理装置に固有のコードを用いることを特徴とする請求項１に記載の文字描画処理装置。
【請求項３】
前記Ｗｅｂフォントのサブセットは、前記フォント情報で示される言語または文字種の字形が省かれており、前記描画手段は、当該言語または文字種については前記描画対象のデータにおいて指定されたＷｅｂフォントの字形ではなく前記文字描画処理装置が保持するフォントの字形を用いて、前記描画対象データの描画を行うことを特徴とする請求項１または２に記載の文字描画処理装置。
【請求項４】
前記フォント情報を用いて前記Ｗｅｂフォントのサブセットを生成可能なサーバのリストを保持手段に保持し、前記要求手段は、前記リストに示されたサーバにＷｅｂフォントを要求することを特徴とする請求項１乃至３何れか１項に記載の文字描画処理装置。
【請求項５】
前記要求手段では、前記描画対象のデータの描画属性を更に付加してサーバにＷｅｂフォントを要求し、前記取得手段は、前記フォント情報と前期描画属性を用いて絞られた、前記Ｗｅｂフォントのサブセットを前記サーバから取得することを特徴とする請求項１乃至４何れか１項に記載の文字描画処理装置。
【請求項６】
前記描画対象のデータはＨＴＭＬであることを特徴とする請求項１乃至５何れか１項に記載の文字描画処理装置。
【請求項７】
文字描画処理装置からＷｅｂフォントの要求と前記文字描画処理装置が保持するフォントを示すフォント情報とを取得する取得手段と、
前記フォント情報を用いて絞った、前記Ｗｅｂフォントのサブセットを生成する生成手段と、
前記文字描画処理装置に、前記Ｗｅｂフォントのサブセットを送信する送信手段と、
を備えることを特徴とするサーバ。
【請求項８】
文字描画処理装置の制御方法であって、
描画対象のデータにおいて指定されたＷｅｂフォントをサーバに要求するときに、前記文字描画処理装置が保持するフォントを示すフォント情報を付加して要求する要求工程と、
前記フォント情報を用いて絞られた、前記Ｗｅｂフォントのサブセットを前記サーバから取得する取得工程と、
前記Ｗｅｂフォントのサブセットと前記文字描画処理装置が保持するフォントとを用いて前記描画対象のデータの描画を行う描画工程と、
を備えることを特徴とする文字描画処理装置の制御方法。
【請求項９】
文字描画処理装置からＷｅｂフォントの要求と前記文字描画処理装置が保持するフォントを示すフォント情報とを取得する取得工程と、
前記フォント情報を用いて絞った、前記Ｗｅｂフォントのサブセットを生成する生成工程と、
前記文字描画処理装置に、前記Ｗｅｂフォントのサブセットを送信する送信工程と、
を備えることを特徴とするサーバの制御方法。
【請求項１０】
コンピュータを、
描画対象のデータにおいて指定されたＷｅｂフォントをサーバに要求するときに、文字描画処理装置が保持するフォントを示すフォント情報を付加して要求する要求手段と、
前記フォント情報を用いて絞られた、前記Ｗｅｂフォントのサブセットを前記サーバから取得する取得手段と、
前記Ｗｅｂフォントのサブセットと前記文字描画処理装置が保持するフォントとを用いて前記描画対象のデータの描画を行う描画手段と、
として機能させるためのプログラム。
【請求項１１】
コンピュータを、
文字描画処理装置からＷｅｂフォントの要求と前記文字描画処理装置が保持するフォントを示すフォント情報とを取得する取得手段と、
前記フォント情報を用いて絞った、前記Ｗｅｂフォントのサブセットを生成する生成手段と、
前記文字描画処理装置に、前記Ｗｅｂフォントのサブセットを送信する送信手段と、として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文字の描画に関する技術である。
【背景技術】
【０００２】
従来、フォントデータを用いて文字描画処理を実行する技術が知られている。フォントデータはレイアウトの基準となる情報と文字コードに対応するインデックス、インデックスに関連付けられた字形のデータと字形のレイアウトに関する情報を持っている。
【０００３】
字形をどのようにレイアウトするか、上部・下部にどの程度空白を持たせるか、などのデザインは個々のフォントデータで決定される。
【０００４】
描画に使用するフォントデータは機器上に保存され、ブラウザも機器上のフォントデータを用いてＨＴＭＬの描画を行っていた。
【０００５】
これに対し、ＨＴＭＬで指定されたフォントをＷｅｂ上のフォントサーバからダウンロードし、描画に使うＷｅｂフォントという技術が知られている。Ｗｅｂフォントは、サーバから全てダウンロードすることも、範囲を指定してサブセットをダウンロードすることもできる。
【０００６】
機器上のフォントデータとＷｅｂフォントのデータが混在する場合、文字のバランスが崩れるという課題がある。そのためＷｅｂフォントの使用に対して独自の命令をＨＴＭＬに埋め込むことでバランスを調整する技術が従来技術として知られている（特許文献１）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１４−０８５７４６
【発明の概要】
【発明が解決しようとする課題】
【０００８】
通信量を減らすために、Ｗｅｂフォントのサブセットを生成すると、サブセットに含まれない文字の表示を機器側で行う必要があるときに、ＨＴＭＬ作成者の意図通りに文字の表示が行われないことになる。一方で、ＨＴＭＬの更新に応じてサブセットを更新してダウンロードするやり方だと、ＨＴＭＬをチェックするために、機器側のブラウザが常に機器のリソースを消費することになる。しかしながら、リソースに余裕のない機器においてはブラウザの負荷が高いことは望ましくない。また、Ｗｅｂフォントを全てダウンロードすると、記憶するためのハードウェアリソースが、クライアント側で確保できないことがある。また、ダウンロードに時間がかかる。
【０００９】
本発明は上記の課題に鑑みてなされたものであり、クライアント側のリソース消費を抑えつつ適切な文字描画を行うことを目的とする。
【課題を解決するための手段】
【００１０】
本発明に係る文字描画処理装置は以下の構成を備える。すなわち、描画対象のデータにおいて指定されたＷｅｂフォントをサーバに要求するときに、前記文字描画処理装置が保持するフォントを示すフォント情報を付加して要求する要求手段と、前記フォント情報を用いて絞られた、前記Ｗｅｂフォントのサブセットを前記サーバから取得する取得手段と、前記Ｗｅｂフォントのサブセットと前記文字描画処理装置が保持するフォントとを用いて前記描画対象のデータの描画を行う描画手段。
【発明の効果】
【００１１】
本発明により、機器のリソース消費を抑えつつ適切な文字描画を行うことができる。
【図面の簡単な説明】
【００１２】
【図１】実施形態１における文字描画処理装置１０１の構成の一例を示す模式図。
【図２】実施形態１の文字描画処理装置１０１の処理の流れを示すフローチャート。
【図３】実施形態１のフォントサーバの処理の流れを示すフローチャート。
【図４】実施形態１のＨＴＭＬの例。
【図５】実施形態１のＷｅｂフォントなしでの描画結果。
【図６】実施形態１のＷｅｂフォントありでの描画結果。
【図７】クライアント・ハードの機能構成例。
【発明を実施するための形態】
【００１３】
以下、本発明の実施形態について、図面を参照して説明する。なお、以下の実施の形態は特許請求の範囲に関る本発明を限定するものではなく、また、本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。なお、同一な構成については、同じ符号を付して説明する。
【００１４】
［実施形態１］
図１は本実施形態に係る文字描画処理装置の構成を示した構成図である。文字描画処理装置は、クライアントとして動作し、以降の説明では、文字描画処理装置をクライアントとも記載する。
【００１５】
同図にあって、ＣＰＵ１０８は、システム制御部であり、装置全体を制御する。描画処理もここで行われる。ＲＯＭ１０２は、ＣＰＵの制御プログラムや各種固定データを格納するものである。機器があらかじめ保持しているフォントデータはここに格納される。ＲＡＭ１０３は、ＳＲＡＭ、ＤＲＡＭ等で構成され、プログラム制御変数等を格納するためのものである。また、各種設定パラメータ、各種ワーク用バッファもＲＡＭ１０３に格納されるものである。サーバからダウンロードしたＷｅｂフォントのサブセットはここに格納される。外部記憶部１０４はハードディスク等で構成され、文書や画像などのファイルデータを格納するためのものである。入力部１０５は、キーボード、タッチパネル等で構成され、オペレータが各種入力操作を行うためのものである。表示部１０６は、ＬＣＤ、ＬＥＤ等でオペレータに表示通知するためのものである。描画結果はここに表示される。ネットワークに接続するためのネットワーク接続インターフェース１０７は、ネットワークに接続するためのインターフェースである。接続方法としてはＬＡＮ、ＵＳＢ等がある。同図に示した構成は、本発明の実施形態に係る情報処理装置の一部を示したものであり、装置によっては、この他、スキャナ部、プリンタ部、モデム、スピーカ等が装置の構成に加わる場合がある。また、ソフトウェア等で本発明を実現する場合等には、同図の各ブロックを必ずしも装置内に持っていなくても良い。
【００１６】
尚、ＣＰＵはプログラムを実行することで各種の手段として機能することが可能である。なお、ＣＰＵと協調して動作するＡＳＩＣなどの制御回路がこれらの手段として機能してもよい。また、ＣＰＵと装置の動作を制御する制御回路との協調によってこれらの手段が実現されてもよい。また、ＣＰＵは単一のものである必要はなく、複数であってもよい。この場合、複数のＣＰＵは分散して処理を実行することが可能である。また、複数のＣＰＵは単一のコンピュータに配置されていてもよいし、物理的に異なる複数のコンピュータに配置されていてもよい。なお、ＣＰＵがプログラムを実行することで実現する手段が専用の回路によって実現されてもよい。
【００１７】
以下、図２・図３のフローチャートを参照して、実施形態の動作を説明する。図２は、クライアントの機器側の処理の流れを説明するフローチャートである。図３は、サーバ側の処理の流れを説明するフローチャートである。以下、フローチャートは、ＣＰＵが制御プログラムを実行することにより実現されるものとする。
【００１８】
描画データ取得部は、描画対象のデータであるＨＴＭＬを取得する（ステップＳ２０１）。ＨＴＭＬはネットワーク接続インターフェース１０７経由で取得する。また、機器上のＲＯＭ１０２、ＲＡＭ１０３、外部記憶部１０４から取得してもよい。ＨＴＭＬは例えば図４のようになる。機器側では、＜ｈ１  ｃｌａｓｓ＝“ｅｘｔｅｒｎａｌ”＞１月１日＜／ｈ１＞を解釈して、『１月１日』を描画しようとする。
【００１９】
本実施形態において機器上にあるフォントはＥｍｂｅｄｄｅｄＦｏｎｔ．ｏｔｆであり、英語と数字の文字種の半角の字形（グリフと同義）のみを持っている。Ｗｅｂフォントを利用せずに描画した場合の結果は例えば図５のようになる。ここで”？”は日本語に対応する字形がないために割り当てられた字形である。
【００２０】
描画データ判定部は、ＨＴＭＬを解析し、ＨＴＭＬがＷｅｂフォントを含むかどうかを判定する（ステップＳ２０２）。含むのであればステップＳ２０３、含まないならステップＳ２０８に進む。
【００２１】
本実施形態においては図４のＨＴＭＬがＣＳＳでＷｅｂフォントＥｘｔｅｒｎａｌＦｏｎｔ．ｗｏｆｆのＵＲＬを指定しているため、Ｗｅｂフォントを含むと判定する。
【００２２】
フォントサーバ機能情報取得部は、ネットワーク接続インターフェース１０７を経由してフォントサーバ情報を取得する（ステップＳ２０３）。例えばＨＴＴＰヘッダにＸ−ＳＵＢＳＥＴ−ＦＯＮＴ：ｔｒｕｅが付加してあり、これをフォントサーバ情報として取得する。
【００２３】
ＣＰＵ１０８は、フォントサーバがクライアント固有のコードをもとにサブセットを生成可能なフォントサーバかどうかを判定する（ステップＳ２０４）。サブセットを生成できるフォントサーバであればステップＳ２０５、そうでなければステップＳ２０７に進む。
【００２４】
本実施形態においてはサブセットを生成できるフォントサーバのリストがＲＯＭ１０２に保存されており、ＨＴＭＬに記述されたフォントサーバのＵＲＬとの比較により判定するが、ステップＳ２０３で取得したフォントサーバ情報をもとに判断してもよい。また、フォントサーバが特定の相対ＵＲＬを持つかどうかで判定してもよい。また、特定のＷｅｂ  ＡＰＩからの返り値で判断してもよい。例えばｈｔｔｐｓ：／／ｅｘａｍｐｌｅ．ｃｏｍ／ｓｕｂｓｅｔ−ｆｏｎｔへのＧＥＴメソッドのＨＴＴＰステータスコードが２００の場合、サブセットを生成できると判定する。
【００２５】
固有コード生成部は、クライアント固有コードを生成する（ステップＳ２０５）。クライアント固有コードを、クライアント（文字描画処理装置）が保持しているフォントを示すフォント情報として用いる。
【００２６】
本実施形態では機器の機種名はＲＯＭ１０２に文字列で”ＢＲＯＷＳＥＲ＿ＭＡＣＨＩＮＥ”として保存されており、これをクライアント固有コードとする。
この時、クライアント固有コードに更にバージョン情報を付加してもよい。例えばシステムの更新により機器のバージョンが２．３である場合、クライアント固有コードを”ＢＲＯＷＳＥＲ＿ＭＡＣＨＩＮＥ＿２＿３”としてもよい。
【００２７】
また、クライアント固有コードとして、機器上のフォントが対応する文字集合を使ってもよい。（「フォントが対応する文字集合」とは、「フォントに字形が存在する文字集合」と同義である。）例えば、機器上のフォントが対応する文字集合がＪＩＳ第一水準とＪＩＳ第二水準である場合、”ＪＩＳ第一水準，ＪＩＳ第二水準”としてもよい。
【００２８】
また、描画属性取得部が使用しているページの情報や、ＨＴＭＬの入力フォームの情報を描画属性として取得してもよい。そして描画属性送信部としてのＣＰＵ１０８は前記描画属性をクライアント固有コードに含めて送信してもよい。例えばメールアドレスの入力フォームである場合、”ＩＮＰＵＴ＿ＭＡＩＬ”とすることで、ステップＳ３０６において生成するサブセットの字形をメールアドレスに使用可能なもののみに限定することができる。
【００２９】
本実施形態で生成されるクライアント固有コードは文字列であるが、バイナリデータであってもよい。
【００３０】
固有コード送信部としてのＣＰＵ１０８は、フォントサーバにＷｅｂフォントをリクエストする（ステップＳ２０６）。この時、前記クライアント固有コードも付加して送信する。本実施形態ではＨＴＴＰを用いて文字列を送信する。クライアント固有コードをフォントサーバに送ることにより、クライアントが保持していない字形、クライアント側で使用可能性が高い字形、などのサブセット（Ｗｅｂフォントの一部）に絞って、フォントサーバに字形データをリクエストしていることになる。
【００３１】
この時、フォントリスト生成部は、クライアントが保持するフォント情報として、フォントリストを生成してもよい。フォントリスト送信部は、これをフォントサーバに送信する（ステップＳ２０６）。フォントリストにおいては上位のフォントの字形が優先されるため、フォントサーバはステップＳ３０６において上位のフォントについて既に機器側（クライアント側）に字形を有する場合にはサブセットから省くことができる。ある文字について複数のフォントが字形を持つとき、優先度の高いフォントの字形が採用されるので、その他のフォントの字形は使われない可能性が高いからである。
【００３２】
フォントサーバは、ステップＳ２０６で、クライアントである機器から送信された、リクエストを受け取る（ステップＳ３０１）。
【００３３】
フォントサーバでは、クライアントからのリクエストを解析し、リクエストされたＷｅｂフォントがあるかどうか判定する（ステップＳ３０２）。ある場合はステップＳ３０３、ない場合は終了する。
【００３４】
本実施形態では、フォントサーバはリクエストされたＥｘｔｅｒｎａｌＦｏｎｔ．ｗｏｆｆを持っているためステップＳ３０３に進む。
【００３５】
フォントサーバでは、前記リクエストを解析し、クライアント固有コードが含まれるかどうかを判定する（ステップＳ３０３）。ある場合はステップＳ３０４、ない場合はステップＳ３０７に進む。
【００３６】
本実施形態では、リクエストにクライアント固有コードが含まれるためステップＳ３０４に進む。
【００３７】
クライアント文字集合取得部はクライアント固有コードから文字集合を取得する（ステップＳ３０４）。例えばクライアント固有コードが”ＪＩＳ第一水準，ＪＩＳ第二水準”である場合、文字集合はＪＩＳ第一水準とＪＩＳ第二水準である。
【００３８】
本実施形態においてフォントサーバは、クライアントの”ＢＲＯＷＳＥＲ＿ＭＡＣＨＩＮＥ”が持つフォントはＥｍｂｅｄｄｅｄＦｏｎｔ．ｏｔｆで、英語と数字の文字集合を描画可能であるという情報を持っている。
【００３９】
フォントサーバは、クライアントの機器上に保持していない文字種の字形を要求されている。フォントサーバが、要求された字形を持っているかどうか判定する（ステップＳ３０５）。ある場合はステップＳ３０６、ない場合はステップＳ３０７に進む。フォントサーバが、直接字形を保持していなくても、ネットワークを介してクライアントに提供できるなら、ステップＳ３０５での判定はＹｅｓとなる。
【００４０】
本実施形態においてＥｘｔｅｒｎａｌＦｏｎｔ．ｗｏｆｆは日本語フォントであり、英語・数字・日本語（漢字・仮名など）の字形を持つことから、機器上にない日本語の字形を含むためステップＳ３０６に進む。
【００４１】
フォント生成部はサブセットを生成する（ステップＳ３０６）。
【００４２】
本実施形態では、ＥｘｔｅｒｎａｌＦｏｎｔ．ｗｏｆｆのうち、日本語の字形のみを含むサブセットを生成する。半角の英語と数字の字形は削除され、サブセットには含まれない。本実施形態では、ダウンロードするデータ量を極力少なくするためにこのようなサブセットを生成している。しかし、クライアント側でＷｅｂフォントＡを既に保持し、描画対象データでＷｅｂフォントＡ，Ｂ，Ｃが指定されている場合には、ＷｅｂフォントＢ，Ｃのみのサブセットを生成するという絞り方でもよい。クライアントがＷｅｂフォントＡを保持しているという情報を付加して要求し、残りのＷｅｂフォントをサーバから取得する。また、一部の文字種をサブセットに含むだけでなく、一部の言語をサブセットに含むようにしてもよい。例えば、クライアントは、数字とアルファベットとを含むフォントを保持し、Ｗｅｂフォントが数字、アルファベット、アラビア語を含む場合、アラビア語（アラビア文字）に絞ってサブセットを生成してもよい。
【００４３】
この時、フォント変更部はクライアント固有コードに応じて字形の変更を行ってもよい。例えば、クライアントが持っているフォントと大きさが揃って見えるように字形の大きさを変更してもよい。また、クライアントの環境に合わせて例えば「￥」の字形を「＼」の字形に置き換えてもよい。
【００４４】
フォントサーバは機器にサブセットを送信する（ステップＳ３０７）。
【００４５】
フォント取得部はフォントサーバからフォントを取得する（ステップＳ２０７）。
【００４６】
クライアントとしての機器側では、フォントリストを作成し、ＲＡＭ１０３に保存する（ステップＳ２０８）。本実施形態においてフォントリストはＨＴＭＬで指定されたＥｘｔｅｒｎａｌＦｏｎｔ．ｗｏｆｆのサブセットが先頭、次に機器上のＥｍｂｅｄｄｅｄＦｏｎｔ．ｏｔｆの順である。
【００４７】
描画部は前記フォントリストに基づいてＨＴＭＬを描画する（ステップＳ２０９）。
【００４８】
日本語字形はＥｘｔｅｒｎａｌＦｏｎｔ．ｗｏｆｆのサブセット、英語と数字の字形はＥｍｂｅｄｄｅｄＦｏｎｔ．ｏｔｆを利用して描画する。例えば、描画結果は図６のようになる。数字の字形はＥｘｔｅｒｎａｌＦｏｎｔ．ｗｏｆｆのサブセットには含まれないため、フォントリストで下位にあるＥｍｂｅｄｄｅｄＦｏｎｔ．ｏｔｆの字形を図５と同様に利用する。日本語の字形はＥｘｔｅｒｎａｌＦｏｎｔ．ｗｏｆｆのサブセットの字形を利用する。
【００４９】
この時、フォント更新部は、取得したフォントデータを更新してもよい。例えば、描画に使用した字形データのみを残し、それ以外は削除し、記憶領域を解放して有効利用してもよい。
【００５０】
以上、説明した処理制御を行うことで、機器のリソース消費を抑えた文字描画を行うことができる。
【００５１】
以上、実施形態を詳述したが、本発明は上述の実施形態に限定されるのではなく、本発明の趣旨を逸脱しない限りにおいて適宜変更が可能である。
【００５２】
本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【００５３】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００５４】
１０１  文字描画処理装置
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  外部記憶部
１０５  入力部
１０６  表示部
１０７  ネットワーク接続インターフェース
１０８  ＣＰＵ
【図１】
2019045994.tif 000003
【図２】
2019045994.tif 000004
【図３】
2019045994.tif 000005
【図４】
2019045994.tif 000006
【図５】
2019045994.tif 000007
【図６】
2019045994.tif 000008
【図７】
2019045994.tif 000009