JP2019045994A - 文字描画処理装置、文字描画処理方法およびプログラム - Google Patents
文字描画処理装置、文字描画処理方法およびプログラム Download PDFInfo
- Publication number
- JP2019045994A JP2019045994A JP2017166103A JP2017166103A JP2019045994A JP 2019045994 A JP2019045994 A JP 2019045994A JP 2017166103 A JP2017166103 A JP 2017166103A JP 2017166103 A JP2017166103 A JP 2017166103A JP 2019045994 A JP2019045994 A JP 2019045994A
- Authority
- JP
- Japan
- Prior art keywords
- font
- web
- drawing processing
- subset
- character
- 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.)
- Pending
Links
Images
Landscapes
- Document Processing Apparatus (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
【課題】 Webフォントを全てダウンロードすると、記憶容量が足りないことがある。サーバから取得した、Webフォントのサブセットに含まれない文字の表示を、クライアント側で行う必要があるときに、文字の表示ができない。【解決手段】 Webフォントをサーバに要求するときに、クライアント側の保持するフォントを示すフォント情報を付加して要求し、フォント情報を用いて絞られた、Webフォントのサブセットをサーバから取得し、Webフォントのサブセットとクライアントが保持するフォントとを用いて描画対象のデータの描画を行う。【選択図】 図2
Description
本発明は、文字の描画に関する技術である。
従来、フォントデータを用いて文字描画処理を実行する技術が知られている。フォントデータはレイアウトの基準となる情報と文字コードに対応するインデックス、インデックスに関連付けられた字形のデータと字形のレイアウトに関する情報を持っている。
字形をどのようにレイアウトするか、上部・下部にどの程度空白を持たせるか、などのデザインは個々のフォントデータで決定される。
描画に使用するフォントデータは機器上に保存され、ブラウザも機器上のフォントデータを用いてHTMLの描画を行っていた。
これに対し、HTMLで指定されたフォントをWeb上のフォントサーバからダウンロードし、描画に使うWebフォントという技術が知られている。Webフォントは、サーバから全てダウンロードすることも、範囲を指定してサブセットをダウンロードすることもできる。
機器上のフォントデータとWebフォントのデータが混在する場合、文字のバランスが崩れるという課題がある。そのためWebフォントの使用に対して独自の命令をHTMLに埋め込むことでバランスを調整する技術が従来技術として知られている(特許文献1)。
通信量を減らすために、Webフォントのサブセットを生成すると、サブセットに含まれない文字の表示を機器側で行う必要があるときに、HTML作成者の意図通りに文字の表示が行われないことになる。一方で、HTMLの更新に応じてサブセットを更新してダウンロードするやり方だと、HTMLをチェックするために、機器側のブラウザが常に機器のリソースを消費することになる。しかしながら、リソースに余裕のない機器においてはブラウザの負荷が高いことは望ましくない。また、Webフォントを全てダウンロードすると、記憶するためのハードウェアリソースが、クライアント側で確保できないことがある。また、ダウンロードに時間がかかる。
本発明は上記の課題に鑑みてなされたものであり、クライアント側のリソース消費を抑えつつ適切な文字描画を行うことを目的とする。
本発明に係る文字描画処理装置は以下の構成を備える。すなわち、描画対象のデータにおいて指定されたWebフォントをサーバに要求するときに、前記文字描画処理装置が保持するフォントを示すフォント情報を付加して要求する要求手段と、前記フォント情報を用いて絞られた、前記Webフォントのサブセットを前記サーバから取得する取得手段と、前記Webフォントのサブセットと前記文字描画処理装置が保持するフォントとを用いて前記描画対象のデータの描画を行う描画手段。
本発明により、機器のリソース消費を抑えつつ適切な文字描画を行うことができる。
以下、本発明の実施形態について、図面を参照して説明する。なお、以下の実施の形態は特許請求の範囲に関る本発明を限定するものではなく、また、本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。なお、同一な構成については、同じ符号を付して説明する。
[実施形態1]
図1は本実施形態に係る文字描画処理装置の構成を示した構成図である。文字描画処理装置は、クライアントとして動作し、以降の説明では、文字描画処理装置をクライアントとも記載する。
図1は本実施形態に係る文字描画処理装置の構成を示した構成図である。文字描画処理装置は、クライアントとして動作し、以降の説明では、文字描画処理装置をクライアントとも記載する。
同図にあって、CPU108は、システム制御部であり、装置全体を制御する。描画処理もここで行われる。ROM102は、CPUの制御プログラムや各種固定データを格納するものである。機器があらかじめ保持しているフォントデータはここに格納される。RAM103は、SRAM、DRAM等で構成され、プログラム制御変数等を格納するためのものである。また、各種設定パラメータ、各種ワーク用バッファもRAM103に格納されるものである。サーバからダウンロードしたWebフォントのサブセットはここに格納される。外部記憶部104はハードディスク等で構成され、文書や画像などのファイルデータを格納するためのものである。入力部105は、キーボード、タッチパネル等で構成され、オペレータが各種入力操作を行うためのものである。表示部106は、LCD、LED等でオペレータに表示通知するためのものである。描画結果はここに表示される。ネットワークに接続するためのネットワーク接続インターフェース107は、ネットワークに接続するためのインターフェースである。接続方法としてはLAN、USB等がある。同図に示した構成は、本発明の実施形態に係る情報処理装置の一部を示したものであり、装置によっては、この他、スキャナ部、プリンタ部、モデム、スピーカ等が装置の構成に加わる場合がある。また、ソフトウェア等で本発明を実現する場合等には、同図の各ブロックを必ずしも装置内に持っていなくても良い。
尚、CPUはプログラムを実行することで各種の手段として機能することが可能である。なお、CPUと協調して動作するASICなどの制御回路がこれらの手段として機能してもよい。また、CPUと装置の動作を制御する制御回路との協調によってこれらの手段が実現されてもよい。また、CPUは単一のものである必要はなく、複数であってもよい。この場合、複数のCPUは分散して処理を実行することが可能である。また、複数のCPUは単一のコンピュータに配置されていてもよいし、物理的に異なる複数のコンピュータに配置されていてもよい。なお、CPUがプログラムを実行することで実現する手段が専用の回路によって実現されてもよい。
以下、図2・図3のフローチャートを参照して、実施形態の動作を説明する。図2は、クライアントの機器側の処理の流れを説明するフローチャートである。図3は、サーバ側の処理の流れを説明するフローチャートである。以下、フローチャートは、CPUが制御プログラムを実行することにより実現されるものとする。
描画データ取得部は、描画対象のデータであるHTMLを取得する(ステップS201)。HTMLはネットワーク接続インターフェース107経由で取得する。また、機器上のROM102、RAM103、外部記憶部104から取得してもよい。HTMLは例えば図4のようになる。機器側では、<h1 class=“external”>1月1日</h1>を解釈して、『1月1日』を描画しようとする。
本実施形態において機器上にあるフォントはEmbeddedFont.otfであり、英語と数字の文字種の半角の字形(グリフと同義)のみを持っている。Webフォントを利用せずに描画した場合の結果は例えば図5のようになる。ここで”?”は日本語に対応する字形がないために割り当てられた字形である。
描画データ判定部は、HTMLを解析し、HTMLがWebフォントを含むかどうかを判定する(ステップS202)。含むのであればステップS203、含まないならステップS208に進む。
本実施形態においては図4のHTMLがCSSでWebフォントExternalFont.woffのURLを指定しているため、Webフォントを含むと判定する。
フォントサーバ機能情報取得部は、ネットワーク接続インターフェース107を経由してフォントサーバ情報を取得する(ステップS203)。例えばHTTPヘッダにX−SUBSET−FONT:trueが付加してあり、これをフォントサーバ情報として取得する。
CPU108は、フォントサーバがクライアント固有のコードをもとにサブセットを生成可能なフォントサーバかどうかを判定する(ステップS204)。サブセットを生成できるフォントサーバであればステップS205、そうでなければステップS207に進む。
本実施形態においてはサブセットを生成できるフォントサーバのリストがROM102に保存されており、HTMLに記述されたフォントサーバのURLとの比較により判定するが、ステップS203で取得したフォントサーバ情報をもとに判断してもよい。また、フォントサーバが特定の相対URLを持つかどうかで判定してもよい。また、特定のWeb APIからの返り値で判断してもよい。例えばhttps://example.com/subset−fontへのGETメソッドのHTTPステータスコードが200の場合、サブセットを生成できると判定する。
固有コード生成部は、クライアント固有コードを生成する(ステップS205)。クライアント固有コードを、クライアント(文字描画処理装置)が保持しているフォントを示すフォント情報として用いる。
本実施形態では機器の機種名はROM102に文字列で”BROWSER_MACHINE”として保存されており、これをクライアント固有コードとする。
この時、クライアント固有コードに更にバージョン情報を付加してもよい。例えばシステムの更新により機器のバージョンが2.3である場合、クライアント固有コードを”BROWSER_MACHINE_2_3”としてもよい。
この時、クライアント固有コードに更にバージョン情報を付加してもよい。例えばシステムの更新により機器のバージョンが2.3である場合、クライアント固有コードを”BROWSER_MACHINE_2_3”としてもよい。
また、クライアント固有コードとして、機器上のフォントが対応する文字集合を使ってもよい。(「フォントが対応する文字集合」とは、「フォントに字形が存在する文字集合」と同義である。)例えば、機器上のフォントが対応する文字集合がJIS第一水準とJIS第二水準である場合、”JIS第一水準,JIS第二水準”としてもよい。
また、描画属性取得部が使用しているページの情報や、HTMLの入力フォームの情報を描画属性として取得してもよい。そして描画属性送信部としてのCPU108は前記描画属性をクライアント固有コードに含めて送信してもよい。例えばメールアドレスの入力フォームである場合、”INPUT_MAIL”とすることで、ステップS306において生成するサブセットの字形をメールアドレスに使用可能なもののみに限定することができる。
本実施形態で生成されるクライアント固有コードは文字列であるが、バイナリデータであってもよい。
固有コード送信部としてのCPU108は、フォントサーバにWebフォントをリクエストする(ステップS206)。この時、前記クライアント固有コードも付加して送信する。本実施形態ではHTTPを用いて文字列を送信する。クライアント固有コードをフォントサーバに送ることにより、クライアントが保持していない字形、クライアント側で使用可能性が高い字形、などのサブセット(Webフォントの一部)に絞って、フォントサーバに字形データをリクエストしていることになる。
この時、フォントリスト生成部は、クライアントが保持するフォント情報として、フォントリストを生成してもよい。フォントリスト送信部は、これをフォントサーバに送信する(ステップS206)。フォントリストにおいては上位のフォントの字形が優先されるため、フォントサーバはステップS306において上位のフォントについて既に機器側(クライアント側)に字形を有する場合にはサブセットから省くことができる。ある文字について複数のフォントが字形を持つとき、優先度の高いフォントの字形が採用されるので、その他のフォントの字形は使われない可能性が高いからである。
フォントサーバは、ステップS206で、クライアントである機器から送信された、リクエストを受け取る(ステップS301)。
フォントサーバでは、クライアントからのリクエストを解析し、リクエストされたWebフォントがあるかどうか判定する(ステップS302)。ある場合はステップS303、ない場合は終了する。
本実施形態では、フォントサーバはリクエストされたExternalFont.woffを持っているためステップS303に進む。
フォントサーバでは、前記リクエストを解析し、クライアント固有コードが含まれるかどうかを判定する(ステップS303)。ある場合はステップS304、ない場合はステップS307に進む。
本実施形態では、リクエストにクライアント固有コードが含まれるためステップS304に進む。
クライアント文字集合取得部はクライアント固有コードから文字集合を取得する(ステップS304)。例えばクライアント固有コードが”JIS第一水準,JIS第二水準”である場合、文字集合はJIS第一水準とJIS第二水準である。
本実施形態においてフォントサーバは、クライアントの”BROWSER_MACHINE”が持つフォントはEmbeddedFont.otfで、英語と数字の文字集合を描画可能であるという情報を持っている。
フォントサーバは、クライアントの機器上に保持していない文字種の字形を要求されている。フォントサーバが、要求された字形を持っているかどうか判定する(ステップS305)。ある場合はステップS306、ない場合はステップS307に進む。フォントサーバが、直接字形を保持していなくても、ネットワークを介してクライアントに提供できるなら、ステップS305での判定はYesとなる。
本実施形態においてExternalFont.woffは日本語フォントであり、英語・数字・日本語(漢字・仮名など)の字形を持つことから、機器上にない日本語の字形を含むためステップS306に進む。
フォント生成部はサブセットを生成する(ステップS306)。
本実施形態では、ExternalFont.woffのうち、日本語の字形のみを含むサブセットを生成する。半角の英語と数字の字形は削除され、サブセットには含まれない。本実施形態では、ダウンロードするデータ量を極力少なくするためにこのようなサブセットを生成している。しかし、クライアント側でWebフォントAを既に保持し、描画対象データでWebフォントA,B,Cが指定されている場合には、WebフォントB,Cのみのサブセットを生成するという絞り方でもよい。クライアントがWebフォントAを保持しているという情報を付加して要求し、残りのWebフォントをサーバから取得する。また、一部の文字種をサブセットに含むだけでなく、一部の言語をサブセットに含むようにしてもよい。例えば、クライアントは、数字とアルファベットとを含むフォントを保持し、Webフォントが数字、アルファベット、アラビア語を含む場合、アラビア語(アラビア文字)に絞ってサブセットを生成してもよい。
この時、フォント変更部はクライアント固有コードに応じて字形の変更を行ってもよい。例えば、クライアントが持っているフォントと大きさが揃って見えるように字形の大きさを変更してもよい。また、クライアントの環境に合わせて例えば「¥」の字形を「\」の字形に置き換えてもよい。
フォントサーバは機器にサブセットを送信する(ステップS307)。
フォント取得部はフォントサーバからフォントを取得する(ステップS207)。
クライアントとしての機器側では、フォントリストを作成し、RAM103に保存する(ステップS208)。本実施形態においてフォントリストはHTMLで指定されたExternalFont.woffのサブセットが先頭、次に機器上のEmbeddedFont.otfの順である。
描画部は前記フォントリストに基づいてHTMLを描画する(ステップS209)。
日本語字形はExternalFont.woffのサブセット、英語と数字の字形はEmbeddedFont.otfを利用して描画する。例えば、描画結果は図6のようになる。数字の字形はExternalFont.woffのサブセットには含まれないため、フォントリストで下位にあるEmbeddedFont.otfの字形を図5と同様に利用する。日本語の字形はExternalFont.woffのサブセットの字形を利用する。
この時、フォント更新部は、取得したフォントデータを更新してもよい。例えば、描画に使用した字形データのみを残し、それ以外は削除し、記憶領域を解放して有効利用してもよい。
以上、説明した処理制御を行うことで、機器のリソース消費を抑えた文字描画を行うことができる。
以上、実施形態を詳述したが、本発明は上述の実施形態に限定されるのではなく、本発明の趣旨を逸脱しない限りにおいて適宜変更が可能である。
本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
101 文字描画処理装置
102 ROM
103 RAM
104 外部記憶部
105 入力部
106 表示部
107 ネットワーク接続インターフェース
108 CPU
102 ROM
103 RAM
104 外部記憶部
105 入力部
106 表示部
107 ネットワーク接続インターフェース
108 CPU
Claims (11)
- 文字描画処理装置であって、
描画対象のデータにおいて指定されたWebフォントをサーバに要求するときに、前記文字描画処理装置が保持するフォントを示すフォント情報を付加して要求する要求手段と、
前記フォント情報を用いて絞られた、前記Webフォントのサブセットを前記サーバから取得する取得手段と、
前記Webフォントのサブセットと前記文字描画処理装置が保持するフォントとを用いて前記描画対象のデータの描画を行う描画手段と、
を備えることを特徴とする文字描画処理装置。 - 前記フォント情報として、前記文字描画処理装置に固有のコードを用いることを特徴とする請求項1に記載の文字描画処理装置。
- 前記Webフォントのサブセットは、前記フォント情報で示される言語または文字種の字形が省かれており、前記描画手段は、当該言語または文字種については前記描画対象のデータにおいて指定されたWebフォントの字形ではなく前記文字描画処理装置が保持するフォントの字形を用いて、前記描画対象データの描画を行うことを特徴とする請求項1または2に記載の文字描画処理装置。
- 前記フォント情報を用いて前記Webフォントのサブセットを生成可能なサーバのリストを保持手段に保持し、前記要求手段は、前記リストに示されたサーバにWebフォントを要求することを特徴とする請求項1乃至3何れか1項に記載の文字描画処理装置。
- 前記要求手段では、前記描画対象のデータの描画属性を更に付加してサーバにWebフォントを要求し、前記取得手段は、前記フォント情報と前期描画属性を用いて絞られた、前記Webフォントのサブセットを前記サーバから取得することを特徴とする請求項1乃至4何れか1項に記載の文字描画処理装置。
- 前記描画対象のデータはHTMLであることを特徴とする請求項1乃至5何れか1項に記載の文字描画処理装置。
- 文字描画処理装置からWebフォントの要求と前記文字描画処理装置が保持するフォントを示すフォント情報とを取得する取得手段と、
前記フォント情報を用いて絞った、前記Webフォントのサブセットを生成する生成手段と、
前記文字描画処理装置に、前記Webフォントのサブセットを送信する送信手段と、
を備えることを特徴とするサーバ。 - 文字描画処理装置の制御方法であって、
描画対象のデータにおいて指定されたWebフォントをサーバに要求するときに、前記文字描画処理装置が保持するフォントを示すフォント情報を付加して要求する要求工程と、
前記フォント情報を用いて絞られた、前記Webフォントのサブセットを前記サーバから取得する取得工程と、
前記Webフォントのサブセットと前記文字描画処理装置が保持するフォントとを用いて前記描画対象のデータの描画を行う描画工程と、
を備えることを特徴とする文字描画処理装置の制御方法。 - 文字描画処理装置からWebフォントの要求と前記文字描画処理装置が保持するフォントを示すフォント情報とを取得する取得工程と、
前記フォント情報を用いて絞った、前記Webフォントのサブセットを生成する生成工程と、
前記文字描画処理装置に、前記Webフォントのサブセットを送信する送信工程と、
を備えることを特徴とするサーバの制御方法。 - コンピュータを、
描画対象のデータにおいて指定されたWebフォントをサーバに要求するときに、文字描画処理装置が保持するフォントを示すフォント情報を付加して要求する要求手段と、
前記フォント情報を用いて絞られた、前記Webフォントのサブセットを前記サーバから取得する取得手段と、
前記Webフォントのサブセットと前記文字描画処理装置が保持するフォントとを用いて前記描画対象のデータの描画を行う描画手段と、
として機能させるためのプログラム。 - コンピュータを、
文字描画処理装置からWebフォントの要求と前記文字描画処理装置が保持するフォントを示すフォント情報とを取得する取得手段と、
前記フォント情報を用いて絞った、前記Webフォントのサブセットを生成する生成手段と、
前記文字描画処理装置に、前記Webフォントのサブセットを送信する送信手段と、として機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017166103A JP2019045994A (ja) | 2017-08-30 | 2017-08-30 | 文字描画処理装置、文字描画処理方法およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017166103A JP2019045994A (ja) | 2017-08-30 | 2017-08-30 | 文字描画処理装置、文字描画処理方法およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2019045994A true JP2019045994A (ja) | 2019-03-22 |
Family
ID=65814411
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017166103A Pending JP2019045994A (ja) | 2017-08-30 | 2017-08-30 | 文字描画処理装置、文字描画処理方法およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2019045994A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112137495A (zh) * | 2019-06-26 | 2020-12-29 | 日立环球生活方案株式会社 | 电动吸尘器 |
WO2022234640A1 (ja) * | 2021-05-07 | 2022-11-10 | 東京エレクトロン株式会社 | 基板処理方法及び基板処理装置 |
-
2017
- 2017-08-30 JP JP2017166103A patent/JP2019045994A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112137495A (zh) * | 2019-06-26 | 2020-12-29 | 日立环球生活方案株式会社 | 电动吸尘器 |
WO2022234640A1 (ja) * | 2021-05-07 | 2022-11-10 | 東京エレクトロン株式会社 | 基板処理方法及び基板処理装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4896362B2 (ja) | フォントの選択方法 | |
US10353999B2 (en) | Information processing system, server apparatus, control method, and storage medium | |
US8935607B2 (en) | Method, apparatus and system of displaying webpages | |
JP5576262B2 (ja) | データを分類してアクセス制御を行う方法、並びに、システム | |
US9619440B2 (en) | Document conversion apparatus | |
JP6206866B2 (ja) | 難読化データをサーバに保持させる装置及び方法 | |
US20050275656A1 (en) | Method and arrangement for font building | |
CN111324317A (zh) | 本地打印面单方法、装置、设备及存储介质 | |
US9117314B2 (en) | Information output apparatus, method, and recording medium for displaying information on a video display | |
JP2010129057A (ja) | 情報処理装置、表示データ翻訳方法、及びプログラム | |
KR101101828B1 (ko) | 화상형성제어장치 및 화상형성장치와, 그 제어방법 | |
JP2018508059A (ja) | ネットワークベース静的フォントサブセット管理 | |
US9886426B1 (en) | Methods and apparatus for generating an efficient SVG file | |
JP2019045994A (ja) | 文字描画処理装置、文字描画処理方法およびプログラム | |
EP3061031A1 (en) | Method of handling a document stored in a cloud storage system for processing by an authenticated printing system and system for performing the method | |
JP2017151820A (ja) | 情報処理装置、プログラム及び制御方法 | |
JP6303390B2 (ja) | 印刷装置、印刷システム及びプログラム | |
JP5885702B2 (ja) | 画像形成装置およびウェブページ言語追加方法 | |
US20180239570A1 (en) | Printer and content display method | |
JP4203287B2 (ja) | 情報処理装置、情報処理方法及び情報処理システム | |
JP2015158803A (ja) | 画像処理装置、画像処理装置の制御方法、及びプログラム | |
JP2008269157A (ja) | 印刷処理装置、印刷処理方法、およびプログラム | |
JP2021103366A (ja) | 文書表示システム、サーバ装置、情報端末装置、文書表示方法、および文書表示プログラム | |
JP6158902B2 (ja) | フォント配信システム、及びフォント配信方法 | |
JP2006338281A (ja) | プリンタサーバ,印刷システム,プログラム及び印刷制御方法 |