JP2016533568A - 超特大文字ライブラリを確立する方法と装置および文字を表示する方法と装置 - Google Patents

超特大文字ライブラリを確立する方法と装置および文字を表示する方法と装置 Download PDF

Info

Publication number
JP2016533568A
JP2016533568A JP2016522188A JP2016522188A JP2016533568A JP 2016533568 A JP2016533568 A JP 2016533568A JP 2016522188 A JP2016522188 A JP 2016522188A JP 2016522188 A JP2016522188 A JP 2016522188A JP 2016533568 A JP2016533568 A JP 2016533568A
Authority
JP
Japan
Prior art keywords
character
font
library
special case
super
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
Application number
JP2016522188A
Other languages
English (en)
Inventor
リニーン シア
リニーン シア
イーンミン ターン
イーンミン ターン
Original Assignee
ペキン ユニバーシティ ファウンダー グループ カンパニー,リミティド
ペキン ユニバーシティ ファウンダー グループ カンパニー,リミティド
ファウンダー インフォメーション インダストリー ホールディングス カンパニー,リミティド
ファウンダー インフォメーション インダストリー ホールディングス カンパニー,リミティド
ベイジン ファウンダー エレクトロニクス カンパニー,リミティド
ベイジン ファウンダー エレクトロニクス カンパニー,リミティド
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ペキン ユニバーシティ ファウンダー グループ カンパニー,リミティド, ペキン ユニバーシティ ファウンダー グループ カンパニー,リミティド, ファウンダー インフォメーション インダストリー ホールディングス カンパニー,リミティド, ファウンダー インフォメーション インダストリー ホールディングス カンパニー,リミティド, ベイジン ファウンダー エレクトロニクス カンパニー,リミティド, ベイジン ファウンダー エレクトロニクス カンパニー,リミティド filed Critical ペキン ユニバーシティ ファウンダー グループ カンパニー,リミティド
Publication of JP2016533568A publication Critical patent/JP2016533568A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/109Font handling; Temporal or kinetic typography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/126Character encoding
    • G06F40/129Handling non-Latin characters, e.g. kana-to-kanji conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Document Processing Apparatus (AREA)

Abstract

【課題】超特大文字ライブラリを確立する方法と装置、および、文字を表示する方法と装置。【解決手段】この表示方法は、フォント起動メッセージをフォント・エンジン・ミドルウェアによってシステム・フォント・エンジンからインターセプトすることと、ここで、このフォント起動メッセージはアプリケーションによって表示される文字に対応する文字コードとフォント名とを含むものであり、その文字コードとフォント名に基づいて非標準フォーマットでの超特大文字ライブラリからの文字に対応するアウトライン・データを取得することと、文字アウトライン・データにしたがって、システム・フォント・エンジンが文字を表示することを可能にするように、システム・フォント・エンジンにその文字のアウトライン・データを伝送することと、を含む。この発明を用いて、文字ライブラリのキャパシティを増加することができ、非標準形式超特大文字ライブラリにおける文字を、便利に認識することができる。このように、文字検索と表示との効率が改善される。【選択図】図4

Description

本願発明は、コンピュータ・テキスト入力の技術分野に関し、そして、特に、超特大文字ライブラリを確立する方法と装置および文字を表示する方法と装置に関する。
当該技術領域で一般に使用される文字ライブラリは、一般的に、少ない数の文字のみを有し、一般的に、およそ6000文字である。したがって、そのような少数の文字の全てを、1つの文字ライブラリ・ファイルに含むことができる。GBKあるいは18030のコードの文字ライブラリにおいてさえ、およそ20,000−30,000文字のみであり、また、1つの文字ライブラリ・ファイルを用いてこれらの文字を保持し、表示することが可能である。しかしながら、いくつかの場合において、より多くの文字が必要である。例えば、いくつかの特別なドメインで使用される場合などである。結果として、文字ライブラリに格納されるべき文字の数は、60,000を超えることがあり得る。文字ライブラリのデータ構造の制限のために、単一の文字ライブラリにおいて、それほど多くの文字を格納することは、非常に難しいかもしれない。単一の文字ライブラリにおいて、それほど多くの文字を格納する場合でも、それらの文字を表示することは、問題を含む。この場合、それらの文字は、2つのグループに分割し、2またはさらに多くの文字ライブラリ・ファイルに別々に格納しなければならない。「フォント・リンク」方法が、マイクロソフト・コーポレイションによって提供され、これを用いて、2つの文字ライブラリを一緒にリンクすることができる。例えば、文字ライブラリAとBとが文字の異なる部分を別々にその中に格納する場合に、文字ライブラリAが選択されたフォントとして指定されるとき、ユーザが、文字ライブラリBに保存された文字を入力すると、この文字を、フォント・リンク方法を利用して表示することもできる。この方法は単純であるが、しかし、いくつかの欠点を持つ。特に、第0面ではなく他の面上の文字を表示する場合には(第0面上の文字は、0X0000〜0xFFFFの範囲のユニコードのコードを有する。第1面上の文字は、0X10000〜0x1FFFFの範囲のユニコードのコードを有する。第2面上の文字は、 0X20000〜0x2FFFFのユニコードのコードを有する。等々)、いくつかの場合において、それらの文字を呼び出す、あるいは、表示することができない。また、コード化すべき文字の数が増加すると、ますます多くの文字ライブラリをリンクすることが必要であり、したがって、文字検索および表示の効率は、悪化する。
本願発明の1つの態様は、文字ライブラリのデータ構造の規制のために、文字ライブラリに含まれる文字の数が制限されるという先行技術における問題を解決するために超特大文字ライブラリを確立する方法と装置を提供することである。
本願発明の別の態様は、文字検索および表示の効率を改善するように、非標準フォーマットで超特大文字ライブラリにおける文字を容易に、また、便利に識別するために、文字を表示する方法と装置を提供することである。
したがって、本願発明は、以下の技術的なソリューションを提供する。
ブート文字ライブラリを確立するステップと、非標準フォーマットでの超特大文字ライブラリを確立するステップと、前記超特大文字ライブラリを解釈するためのフォント・エンジン・ミドルウェアを作成するステップと、を備える、超特大文字ライブラリを確立するための方法が提供される。
好適には、前記ブート文字ライブラリは、基本的なASCIIシンボルのみを備える。
好適には、前記非標準フォーマットの前記超特大文字ライブラリにおけるコードは、4バイト・コードである。
好適には、前記非標準フォーマットの前記超特大文字ライブラリは、文字コードとインデックスとの間の対応を保存するコード・テーブルと、前記インデックスとキャラクタ・データ・オフセットとの間の対応を格納するための位置情報テーブルと、文字アウトライン・データを格納するためのグリフ・テーブルと、を含む。
システム・フォント・エンジンから送られるフォント起動メッセージを、フォント・エンジン・ミドルウェアによって、インターセプトするステップであって、前記フォント起動メッセージは、アプリケーションによって表示される文字に対応する文字コードとフォント名とを含む、ステップと、前記文字コードと前記フォント名に基づいて、超特大文字ライブラリからの文字に対応するアウトライン・データを取得するステップであって、該超特大文字ライブラリは、非標準フォーマットでの文字ライブラリである、ステップと、前記文字アウトライン・データにしたがって、システム・フォント・エンジンが文字を表示することを可能にするように、前記システム・フォント・エンジンに、その文字のアウトライン・データを伝送するステップと、を含む、文字を表示するための方法が提供される。
好適には、フォント起動メッセージをフォント・エンジン・ミドルウェアによってシステム・フォント・エンジンからインターセプトするステップは、前記フォント・エンジン・ミドルウェアによって前記フォント起動メッセージをフック機能を用いてインターセプトすることと、前記文字コードと前記フォント名とを取得することを含む。
好適には、前記文字コードと前記フォント名に基づいて、超特大文字ライブラリからの文字に対応するアウトライン・データを取得するステップは、前記フォント名に基づいて、フォント・ファイルを捜して前記超特大文字ライブラリをサーチすることと、文字コードに基づいて、発見されたフォント・ファイルから前記文字コードに対応するインデックス値を取得することと、前記インデックス値に基づいて、文字アウトライン・データ・テーブルから前記文字のアウトライン・データを取得することと、を含む。
ブート文字ライブラリを確立するように構成されるブート文字ライブラリ確立ユニットと、非標準フォーマットでの超特大文字ライブラリ確立ユニットを確立するように構成される超特大文字ライブラリ確立ユニットと、前記超特大文字ライブラリを解釈するためのフォント・エンジン・ミドルウェアを作成するように構成されるミドルウェア作成ユニットと、を備える、超特大文字ライブラリを確立する装置が提供される。
システム・フォント・エンジンから送ったフォント起動メッセージをインターセプトするように構成されたインターセプト・ユニットであって、ここで、このフォント起動メッセージは文字コードおよび、アプリケーションによって表示される文字に対応するフォント名を含む、インターセプト・ユニットと、前記文字コードと前記フォント名に基づいて、超特大文字ライブラリからの文字に対応するアウトライン・データを取得するように構成されるアウトライン・データ取得ユニットであって、該超特大文字ライブラリは、非標準フォーマットでの文字ライブラリである、アウトライン・データ取得ユニットと、前記アウトライン・データにしたがい、システム・フォント・エンジンが文字を表示することを可能にするように、前記文字の前記アウトライン・データを前記システム・フォント・エンジンに伝送するように構成される伝送ユニットと、を備える、文字を表示するための装置が提供される。
好適には、前記インターセプト・ユニットは、フック機能を用いて前記フォント起動メッセージをインターセプトし、前記文字コードと前記フォント名を取得するように構成される。
好適には、前記アウトライン・データ取得ユニットは、前記フォント名に基づいて、フォント・ファイルを捜して前記超特大文字ライブラリをサーチするように構成されるフォント・ファイル・サーチ・サブユニットと、文字コードに基づいて、発見されたフォント・ファイルから前記文字コードに対応するインデックス値を取得するように構成されるインデックス値サーチ・サブユニットと、前記インデックス値にしたがって、文字アウトライン・データ・テーブルから前記文字のアウトライン・データを取得するように構成される取得サブユニットと、を備える。
本願発明の実施形態にしたがう超特大文字ライブラリを確立する方法と装置は、非標準フォーマットでの超特大文字ライブラリを採用する。したがって、より多くの文字をその中に収容することを可能にする。一方、システム・フォント・エンジンが超特大文字ライブラリに含まれる文字を認識することを可能にするために、対応するフォント・エンジン・ミドルウェアおよびブート文字ライブラリが、それに応じて確立される。
ブート文字ライブラリおよびフォント・エンジン・ミドルウェアに基づいて、本願発明の実施形態にしたがう文字を示す方法と装置を用いて、超特大文字ライブラリは、フォント・エンジン・ミドルウェアの助けを借りて、システム・フォント・エンジンによって解釈されることができる。表示されるべき文字に関する情報は、超特大文字ライブラリから読み出され、システム・フォント・エンジンに要求される情報形式に再構成され、そして、次にシステム・フォント・エンジンに送られ、最後に、システム・フォント・エンジンが、その文字をユーザ・インタフェースに表示する。そうすることにより、リンク機構による呼出しの効率が低く、異なる文字ライブラリにおける文字を互いから呼び出すことができないという先行技術における問題を、解決することができる。
本願発明を用いて、単一の文字ライブラリに含まれる文字の数を、増やすことができ、そして、この非標準フォーマットの超特大文字ライブラリにおける文字は、容易にかつ便利に識別することができる。したがって、文字検索および表示の効率が改善される。
本願の実施形態、または、先行技術におけるそれらのソリューションを明確に図示するために、実施形態で使用される添付の図面の簡単な説明が、以下になされる。明らかに、以下に記載される図面は、単にこの発明のいくつかの実施形態のみを表示し、これらから、当事者であれば、他の図面を導出することができる。
図1は、この発明の実施形態にしたがう超特大文字ライブラリを確立する方法のフローチャートである。 図2は、この発明の実施形態にしたがう超特大文字ライブラリを確立する装置の構造を表している概略図である。 図3は、先行技術における文字ライブラリに含まれる文字の表示のフローチャートである。 図4は、この発明の実施形態にしたがう文字を表示する方法のフローチャートである。 図5は、この発明の実施形態にしたがう文字を表示する装置の構造を表している概略図である。
当業者に対して、本願発明にしたがう実施形態のソリューションのより良い理解を達成するために、本願発明のこの実施形態は、以下において、添付の図面を参照して、詳細に記述される。
現在のオペレーティング・システムにおいて、一般に使用されるTrueType文字ライブラリで、65535以上の文字を含んでいる単一の超特大文字ライブラリを造ることはできない。文字ライブラリ・フォーマットのデータ構造の制限のために、文字ライブラリは、65535以上のキャラクタを収容することができない。たとえ65535文字以上が文字ライブラリに格納されるとしても、それらの文字は、オペレーティング・システムのフォント・エンジンで呼び出すことができない。あるいは、その文字ライブラリは、無効であるとさえ考えられる。この問題を解決する大部分の既存の方法は、フォント・リンクを採用する。それにより、2つ以上の文字ライブラリが、より多くの文字を表示する目的のために一緒にリンクされる。しかしながら、そのような方法は、まだ、例えば、現在のオペレーティング・システムにおいて、ISO/IEC10646コード化文字セットのCJK−ExtB文字を含む文字ライブラリの場合になど、いくつかの欠点を持つ。CJK−ExtA文字を含んでいる文字ライブラリの文字は、入力し、フォント・リンクを通して表示することができる。しかし、その逆はできない。それぞれISO/IEC10646コード化文字セットの基本面および第2面を含む2つの文字ライブラリのフォント・リンクにおいて、それらの第2面の文字は、互いから呼び出されることができない等である。コード化すべき文字の数が増加すると、ますます、多くの面を、ISO/IEC10646コード化文字セットに使用することが必要となった。そして、ますます多くの文字ライブラリをリンクすることが必要となった。その結果、文字検索の効率が、さらに悪化することとなった。
これを考慮して、超特大文字ライブラリを確立する方法と装置が、この発明の実施形態において提供される。既存の文字ライブラリ・フォーマットおよび表示方法に基づいて、より多くの文字を格納することができるTrueTypeベース超特大文字ライブラリが、確立される。この非標準フォーマットを現在のオペレーティング・システムがサポートしない問題に対処するために、フォント・エンジン・ミドルウェアおよびブート文字ライブラリが、確立される。
対応して、この種の超特大文字ライブラリに基づいて、文字ディスプレイ方法および装置が、また、この発明の実施形態において、提供される。非標準フォーマットにおける超特大文字ライブラリは、システム・フォント・エンジンにより、フォント・エンジン・ミドルウェアの助けを借りて解釈される。表示される文字に関する情報が、超特大文字ライブラリから読み出され、システム・フォント・エンジンに要求される情報形式に再構成され、そして、次に、システム・フォント・エンジンに送られる。最後に、システム・フォント・エンジンは、ユーザ・インタフェースに文字を表示する。
図1に示されるように、本願発明の実施形態にしたがって超特大文字ライブラリを確立するこの方法は、以下のステップを含む。
ステップ101:ブート文字ライブラリを確立するステップ。
標準フォーマットにおける既存の文字ライブラリと比較すると、ブート文字ライブラリは、標準形式であることができるが、しかし、基本的なASCIIシンボルだけを備え、実際の漢字を備えていない。
ステップ102:非標準フォーマットでの超特大文字ライブラリを確立するステップ。
超特大文字ライブラリを確立する際に、標準形式文字ライブラリに全く含まれることができない多数の文字のために、それらの文字は、非標準フォーマットにおいて保存される。すなわち、超特大文字ライブラリは、非標準フォーマットでの文字ライブラリである。特に、いくつかの修正を、既存の標準フォーマットに対して行うことができる。例えば、コードのバイト数を、オリジナルのフォーマットの0xFFFFではなく、0xFFFFFFFFまでの、文字を格納することができるように、2から4に変えることができる。これは、超特大文字ライブラリの要求に合致するものである。
格納される文字を、それぞれのフォント開発者または個人によって所望のように、文字ライブラリに組織することができる。多数の文字のために、それら文字は、完全には、標準フォーマットにおいて組織することができない。したがって、専用フォント・エンジンが、解釈のために必要である。
この非標準フォーマットの超特大文字ライブラリは、主として、文字コードとインデックスとの間の対応を保存するコード・テーブルと、前記インデックスとキャラクタ・データ・オフセットとの間の対応を格納するための位置情報テーブルと、文字アウトライン・データを格納するためのグリフ・テーブルと、その他を備えることができる。既存の標準フォーマット文字ライブラリと比較すると、超特大文字ライブラリにおいて、コード、インデックスおよびオフセットに、それらの範囲を拡大する改善がなされ、超特大文字ライブラリが、より多くの文字を収容することが可能になる。
ステップ103:超特大文字ライブラリを解釈するためのフォント・エンジン・ミドルウェアを作成するステップ。
標準フォーマット文字ライブラリだけが、既存のシステム・フォント・エンジンによって、直接解釈されることができ、非標準フォーマットの文字ライブラリは、システム・フォント・エンジンにより無効であると見なされる。したがって、超特大文字ライブラリに含まれる文字を認識するために、本願発明の実施形態において、システム・フォント・エンジンが、超特大文字ライブラリの解釈を支援し、超特大文字ライブラリから表示される文字に関する情報を読み出し、それを、システム・フォント・エンジンによって要求される情報フォーマットに再構成し、そして、次に、その再構成された情報をシステム・フォント・エンジンに送るためにフォント・エンジン・ミドルウェアを呼び出すことができるようにフォント・エンジン・ミドルウェアが確立される。最後に、システム・フォント・エンジンは、ユーザ・インタフェースに文字を表示する。
本願発明のこの実施形態で記述される超特大文字ライブラリは、特に、単一の文字ライブラリに、60,000文字以上を格納することを望む会社または個人に適切である。
本願発明の実施形態の方法を用いて、文字ライブラリのキャパシティを、増やすことができ、ユーザが、便利にかつ容易に、異なる文字を使用することを可能にすることが分かる。
対応して、超特大文字ライブラリを確立する装置が、また、この発明の実施形態において提供される。図2は、この装置の構造の概要図を示す。
この実施の形態において、装置200は、ブート文字ライブラリ確立ユニット201、超特大文字ライブラリ確立ユニット202、および、ミドルウェア作成ユニット203を備える。ブート文字ライブラリ確立ユニット201は、ブート文字ライブラリを確立するように構成される。超特大文字ライブラリ確立ユニット202は、非標準フォーマットで超特大文字ライブラリを確立するように構成される。ミドルウェア作成ユニット203は、超特大文字ライブラリを解釈するためのフォント・エンジン・ミドルウェアを作成するように構成される。
対応して、上記したように、非標準フォーマットの超特大文字ライブラリに基づいて、文字を表示する方法が、また、この発明の実施形態において提供される。当業者に対して、本願発明の実施形態のソリューション、および、本願発明の実施形態のソリューションと先行技術との違いを、よりよく理解させるために、最初に、先行技術における文字を表示する方法の概要を以下に述べる。
図3に示されるように、先行技術における、文字ライブラリに含まれる文字を表示する方法は、次のステップを含む。
ステップ301:システム・フォント・エンジンへ、アプリケーションによって表示される文字に対応する文字コードとフォント名とを送信するステップ。
ステップ302:システム・フォント・エンジンにより、そのフォント名に基づいて、フォント・ファイルをサーチするステップ。
ステップ303:フォント・コードに基づいて、システム・フォント・エンジンにより、文字の見つかったフォント・ファイルをサーチするステップ。
特に、このサーチは、フォント・ファイルの中のコード・インデックス対応テーブルにしたがって、実行することができる。
ステップ304:この文字のアウトライン・データをその文字がフォント・ファイルで見つかった場合、対応するインデックス値に基づいて,文字アウトライン・データ・テーブルから得るステップ。
ステップ305:システム・フォント・エンジンにより、得られたアウトライン・データにしたがって、文字を表示するステップ。
そのような超特大文字ライブラリの格納範囲は、上述したように、標準的な範囲を超えるので、この非標準フォーマット超特大文字ライブラリは、既存のオペレーティング・システムが、サポートすることができない。したがって、本願発明の実施形態にしたがう文字を表示する方法において、システム・フォント・エンジンは、フォント・エンジン・ミドルウェアを、超特大文字ライブラリに含まれる文字の検索と表示を容易にするために呼び出す。これは、文字を表示することの効率を大いに改善する。
図4に示されるように、本願発明の実施形態にしたがう文字を表示する方法のフローチャートは、次のステップを含む。
ステップ401:フォント・エンジン・ミドルウェアが、システム・フォント・エンジンからブート文字ライブラリに送られたフォント起動メッセージをインターセプトするステップ。このフォント起動メッセージは、アプリケーションによって表示される文字に対応する文字コードとフォント名とを含む。
特に、フォント・エンジン・ミドルウェアは、ウインドウズ・オペレーティング・システムの上で利用できるフック機能を用いて、フォント起動メッセージをインターセプトし、そして、文字コードとフォント名とを取得する。このフック機能は、ウインドウズ・オペレーティング・システムで送られるメッセージだけをインターセプトするだけでなく、機能のアプリケーション・コール、機能のオペレーティング・システム・コールを含む、機能の呼び出しをすることができる。
ステップ402:フォント・エンジン・ミドルウェアが、その文字に対応するアウトライン・データを、その文字コードとそのフォント名に基づいて、非標準フォーマットにおける超特大文字ライブラリから要求するステップ。
既存の標準フォーマット文字ライブラリと比較すると、超特大文字ライブラリは、より多くの文字コードとより多くのアウトライン・データとに関する情報を含むことができる。
特定のインプリメンテーションにおいて、1対1の対応を、ブート文字ライブラリと超特大文字ライブラリとの間で、確立することができる。そして、次に、フォント・エンジン・ミドルウェアに導入することができる。フォント・エンジン・ミドルウェアが、システム・フォント・エンジンがブート文字ライブラリを呼び出したいことを知っているときに、それは、システム・フォント・エンジンのアクセスを、その対応にしたがって、ブート文字ライブラリへの超特大文字ライブラリへのアクセスに変換することができる。
超特大文字ライブラリから、フォント・エンジン・ミドルウェアによって、アウトライン・データを得るプロセスは、既存のシステム・フォント・エンジンによって、ブート文字ライブラリからアウトライン・データを得るプロセスと同様である。第1に、インターセプトされたフォント名に基づいて読まれるべきフォント・ファイルを決定することが要求される。次に、文字コードに対応するインデックス値が、インターセプトされた文字コード、および、フォント・ファイルの中のCMAPテーブル(キャラクタ・コード―インデックス対応テーブル)に基づいて、得られる。次に、そのインデックス値にしたがって、GLYFテーブルにおけるインデックス値に対応する文字のオフセットが、LOCAテーブルにおいて見いだされる。このオフセットを得た後に、グリフ・アウトライン・データが、直接、GLYFテーブルから読み出される。このGLYFテーブルは、すべての文字のグリフ・アウトライン・データを格納する。
上のCMAPテーブル、LOCAテーブル、および、GLYFテーブルは、先行技術の文字ライブラリにおいて対応するものと同様であり、ここでは、詳細には記述しないことに留意する。
ステップ403:この文字のアウトライン・データは、文字アウトライン・データにしたがって、システム・フォント・エンジンが文字を表示することを可能にするように、システム・フォント・エンジンに返される。
本願発明の実施形態の文字表示方法において、フォント・エンジン・ミドルウェアが、ブート文字ライブラリへのシステム・フォント・エンジンのアクセスが、超特大文字ライブラリへのフォント・エンジン・ミドルウェアのアクセスに変換されるように、システム・フォント・エンジンからブート文字ライブラリに送られたフォント起動メッセージをインターセプトするために使用される。超特大文字ライブラリへのアクセスの後に、このように得られがグリフ・アウトライン・データは、システム・フォント・エンジンによって戻され、それによって、超特大文字ライブラリにおける文字の検索と表示を、単純かつ便利な方法で実現することができ、文字表示の効率を大いに増大する。アプリケーション層から見ると、アクセスが、ユーザの感覚に対する影響がなく、システム・フォント・エンジン自体によって実行されるように見える。
また、文字を表示するための装置が、本願発明の実施形態において、提供される。図5は、この装置の構造の概要図を示す。
この実施の形態において、この装置は、以下を備える。
システム・フォント・エンジンから送ったフォント起動メッセージをインターセプトするように構成されたインターセプト・ユニットであって、このフォント起動メッセージは、アプリケーションによって表示される文字に対応する文字コードとフォント名とを備えている、インターセプト・ユニット501。
前記文字コードと前記フォント名に基づいて、超特大文字ライブラリからその文字に対応するアウトライン・データを取得するように構成されるアウトライン・データ取得ユニットであって、該超特大文字ライブラリは、非標準フォーマットでの文字ライブラリである、アウトライン・データ取得ユニット502。
前記文字アウトライン・データにしたがって、システム・フォント・エンジンが文字を表示することを可能にするように、前記文字の前記アウトライン・データを前記システム・フォント・エンジンに伝送するように構成される伝送ユニット503。
既存の標準フォーマット文字ライブラリと比較すると、超特大文字ライブラリは、より多くの文字コードとより多くのアウトライン・データに関する情報を含むことができ、そして、そのコンテンツは、標準フォーマット文字ライブラリのものと同様である。これは、上述されており、ここでは、詳細には記述しない。
実際のアプリケーションにおいて、インターセプト・ユニット501は、フォント起動メッセージをインターセプトするためにフック機能を使用することができる。そして、文字コードおよびをフォント名を入手することができる。
アウトライン・データ取得ユニット502は、フォント・ファイル・サーチ・サブユニットと、インデックス値サーチ・サブユニットと、取得サブユニット(図示せず)と、を備える。
フォント・ファイル・サーチ・サブユニットは、フォント名に基づいて、超特大文字ライブラリの中でフォント・ファイルをサーチするように構成されている。インデックス値サーチ・サブユニットは、文字コードに基づいて、発見されたフォント・ファイルから前記文字コードに対応するインデックス値を取得するように構成される。取得サブユニットは、前記インデックス値にしたがって、文字アウトライン・データ・テーブルから文字のアウトライン・データを取得するように構成される。
本願発明の実施形態にしたがって文字を表示する装置において、システム・フォント・エンジンからブート文字ライブラリに送られたフォント起動メッセージが、ブート文字ライブラリへのシステム・フォント・エンジンのアクセスが、超特大文字ライブラリへのフォント・エンジン・ミドルウェアのアクセスに変換されるように、インターセプトされる。超特大文字ライブラリへのアクセスの後に、このように得られたグリフ・アウトライン・データは、システム・フォント・エンジンによって戻され、それによって、文字の検索と表示を、単純かつ便利なように実現することができ、文字表示の効率を大いに増大する。アプリケーション層から見ると、アクセスが、ユーザの感覚に対する影響がなく、システム・フォント・エンジン自体によって実行されるように見える。
本願発明の実施形態にしたがう、文字を表示する方法および装置は、多様なアプリケーションに、それらのアプリケーションの種々の要求に合致するように、適用することができ、また、速くて、効率的であることに留意する。
この実施形態は、本願明細書において、進歩的な方法で記載される。種々の実施形態の同じか、同様の部分に対して、実施形態の間の参照が行われる。各々の実施形態は、他の実施形態からの違いに集中する。特に、装置の実施形態は、基本的に、方法の実施形態に対応するので、関連した部分に対して、方法の実施形態の説明の記載への参照が行われる。上述の装置の実施形態は、単に図示的なものであり、要素は、別々なものとして記載されているが、互いに物理的に分離していても、いなくても、よく、そして、個々に示されたものは、物理的な要素であっても、そうでなくてもよい。これは、1つの位置に配置することができ、あるいは、複数のネットワーク・ユニットに分散することもできる。それらのいくつか、あるいは、すべてのモジュールを、必要に応じて、この発明の実施形態の目的を実現するために、選択することができる。これは、当事者であれば、いかなる創造的な努力を要することなく、理解でき、実施することができる。
この開示は、また、コンピュータで実行されるとき、超特大文字ライブラリを確立するように方法の種々のステップを実行する、その上にコンピュータ実行可能な命令を格納した1つ以上のコンピュータ読取り可能メディア、および、上記したような文字を表示する方法を提供する。
この開示は、また、コンピュータで実行されるとき、超特大文字ライブラリを確立するように方法の種々のステップを実行する、その上にコンピュータ実行可能な命令を格納した1つ以上のコンピュータ読取り可能メディアを有するコンピュータ、および、上記したような文字を表示する方法を提供する。
[例示的な操作環境]
ここに記述されたコンピュータまたはコンピューティング・デバイスは、1つ以上のプロセッサーまたは処理ユニットと、システム・メモリと、いくつかのタイプのコンピュータ読取り可能メディアと、を含むハードウェアを備える。制限的ではない、例として、コンピュータ読取り可能媒体は、コンピュータ記憶媒体および、通信メディアを備える。このコンピュータ記憶媒体は,コンピュータ読取り可能な命令、データ構造、プログラム・モジュールまたは、他のデータなど、情報ストレージのためのいかなる方法またはテクノロジーでインプリメントされた揮発性または不揮発性、取り外し可能または取り外し不可能メディアを備える。通信メディアは、典型的には、コンピュータ読取り可能命令、データ構造、プログラム・モジュール、または、搬送波、または、他の移送メカニズムなど変調されたデータ信号における他のデータを具体化し、そして、いかなる情報配送メディアをも含む。上記のいかなるものの組合せも、また、コンピュータ読取り可能メディアの範囲の中に含まれる。
このコンピュータは、ネットワーク環境で動作するリモート・コンピュータへの論理的接続などの1つ以上のリモート・コンピュータを使用ことができる。本願開示の種々の実施形態が典型的なコンピューティング・システム環境のコンテキストにおいて、記載されたが、本願開示の種々の例示的実施形態は、多数の他の一般的な目的、または、特殊用途のコンピュータ・システム環境または構成において使用することができる。このコンピューティング・システム環境は、本願発明の使用または機能の範囲のいかなる態様をも制限することを意図するものではない。加えて、このコンピュータ環境は、例示的な操作環境に示されたコンポーネントのいずれか1つ、または、組合せに依存する、または、それを要求するものと解釈されてはならない。そのコンピュータ・システムの有名な例、本願開示のすべての態様に対して適切な環境や構成は、パーソナル・コンピュータ、サーバ・コンピュータ、ハンドヘルドまたはラップトップ・デバイス、マルチプロセッサー・システム、マイクロプロセッサ・ベース・システム、セット・トップ・ボックス、プログラム可能家電、モバイル電話、ネットワークPC、ミニコンピュータ、メインフレーム・コンピュータ、上記のシステムまたはデバイスのいずれかを含む分散コンピューティング環境、その他を含む。しかし、それらに限られるものではない。
本願発明の種々の例示的実施形態は、1つ以上のコンピュータまたは他のデバイスで実行されるプログラム・モジュールなどコンピュータ実行可能命令の一般的なコンテキストにおいて記述することができる。そのコンピュータ実行可能命令は、1つ以上のコンピュータ実行可能コンポーネントまたはモジュールに、ソフトウェアとして組織されることができる。一般的に、プログラム・モジュールは、ルーチン、プログラム、オブジェクト、コンポーネント、および、特定のタスクを実行する、または、特定の抽象データ・タイプをインプリメントするデータ構造を含む。しかし、それらに制限されるものではない。本願発明の態様は、そのようなコンポーネントまたはモジュールの任意数、および、組織でインプリメントすることができる。例えば、本願発明の態様は、図において図示された、また、ここに記載された、特定のコンピュータ実行可能命令または、特性のコンポーネント、または、モジュールに制限されない。本願発明の他の例示的実施形態は、異なるコンピュータ実行可能命令、または、図において図示された、また、ここに記載されたものよりも多い、または、少ない機能を有するコンポーネントを含むことができる。本願発明の態様は、また、通信ネットワークを通してリンクされたリモート処理デバイスによってタスクが実行される、分散コンピューティング環境で実施することができる。分散コンピューティング環境において、プログラム・モジュールは、メモリー格納デバイスを含む、ローカルおよびリモートのコンピュータ記憶媒体の両方に位置することができる。
本願発明の方法と装置を多くの方法で実行することができる。例えば、本願発明の方法と装置をソフトウェア、ハードウェア、ファームウェア、または、それらの任意の組合せを通して、実行することができる。本願方法のためのステップの記述された順序は、単に、説明としての例を意図するものであり、本願発明の方法のステップは、特に述べられない限り、上述の順序に、特に限られていない。また、いくつかの実施形態において、本願発明は、また、本願発明にしたがう方法をインプリメントするための機械読み取り可能命令を含む記録媒体に記録されたプログラムとして具体化される。したがって、本願発明は、また、本願発明にしたがう方法をインプリメントするためのプログラムを格納する記録媒体をカバーするものである。
いくつかの特定の実施形態は、例示するだけのために、上で記述されたが、しかし、本願発明の保護範囲を制限するものではない。当業者は、本願発明の要旨および範囲から逸脱することなく、本願発明のどんな修正や変更でもすぐに行うことができる。また、本願発明のそのような修正および変更は、本願発明の保護範囲の中に含まれるものである。

Claims (11)

  1. ブート文字ライブラリを確立するステップと、
    非標準フォーマットで超特大文字ライブラリを確立するステップと、
    前記超特大文字ライブラリを解釈するためのフォント・エンジン・ミドルウェアを作成するステップと、
    を含む、超特大文字ライブラリを確立するための方法。
  2. 前記ブート文字ライブラリは、基本的なASCIIシンボルのみを備える、請求項1に記載の方法。
  3. 前記非標準フォーマットの前記超特大文字ライブラリにおけるコードは、4バイト・コードである、請求項1に記載の方法。
  4. 前記非標準フォーマットの前記超特大文字ライブラリは、文字コードとインデックスとの間の対応を保存するコード・テーブルと、前記インデックスとキャラクタ・データ・オフセットとの間の対応を格納するための位置情報テーブルと、文字アウトライン・データを格納するためのグリフ・テーブルと、を含む、請求項3に記載の方法。
  5. システム・フォント・エンジンから送られるフォント起動メッセージを、フォント・エンジン・ミドルウェアによって、インターセプトするステップであって、前記フォント起動メッセージは、アプリケーションによって表示される文字に対応する文字コードとフォント名とを含む、ステップと、
    前記文字コードと前記フォント名に基づいて、超特大文字ライブラリからの前記文字に対応するアウトライン・データを取得するステップであって、該超特大文字ライブラリは、非標準フォーマットでの文字ライブラリである、ステップと、
    前記文字アウトライン・データにしたがって、前記システム・フォント・エンジンが前記文字を表示することを可能にするように、前記システム・フォント・エンジンに、前記文字のアウトライン・データを伝送するステップと、
    含む、文字を表示するための方法。
  6. フォント起動メッセージをフォント・エンジン・ミドルウェアによってシステム・フォント・エンジンからインターセプトするステップは、前記フォント・エンジン・ミドルウェアによって前記フォント起動メッセージをフック機能を用いてインターセプトすることと、前記文字コードと前記フォント名とを取得することを含む、請求項5に記載の方法。
  7. 前記文字コードと前記フォント名に基づいて、超特大文字ライブラリからの文字に対応するアウトライン・データを取得するステップは、前記フォント名に基づいて、前記超特大文字ライブラリの中で、フォント・ファイルをサーチすることと、前記文字コードに基づいて、前記発見されたフォント・ファイルから前記文字コードに対応するインデックス値を取得することと、前記インデックス値に基づいて、文字アウトライン・データ・テーブルから前記文字のアウトライン・データを取得することと、を含む、請求項5に記載の方法。
  8. ブート文字ライブラリを確立するように構成されるブート文字ライブラリ確立ユニットと、
    非標準フォーマットで超特大文字ライブラリ確立ユニットを確立するように構成される超特大文字ライブラリ確立ユニットと、
    前記超特大文字ライブラリを解釈するためのフォント・エンジン・ミドルウェアを作成するように構成されるミドルウェア作成ユニットと、
    を備える、超特大文字ライブラリを確立する装置。
  9. システム・フォント・エンジンから送ったフォント起動メッセージをインターセプトするように構成されたインターセプト・ユニットであって、該フォント起動メッセージは文字コードおよびアプリケーションによって表示される文字に対応するフォント名を含む、インターセプト・ユニットと、
    前記文字コードと前記フォント名に基づいて、超特大文字ライブラリからの前記文字に対応するアウトライン・データを取得するように構成されるアウトライン・データ取得ユニットであって、該超特大文字ライブラリは、非標準フォーマットでの文字ライブラリである、アウトライン・データ取得ユニットと、
    前記アウトライン・データにしたがい、前記システム・フォント・エンジンが前記文字を表示することを可能にするように、前記文字の前記アウトライン・データを前記システム・フォント・エンジンに伝送するように構成される伝送ユニットと、
    を備える、文字を表示するための装置。
  10. 前記インターセプト・ユニットは、フック機能を用いて前記フォント起動メッセージをインターセプトし、前記文字コードと前記フォント名を取得するように構成される、請求項9に記載の装置。
  11. 前記アウトライン・データ取得ユニットは、前記フォント名に基づいて、前記超特大文字ライブラリの中でフォント・ファイルをサーチするように構成されるフォント・ファイル・サーチ・サブユニットと、前記文字コードに基づいて、前記発見されたフォント・ファイルから前記文字コードに対応するインデックス値を取得するように構成されるインデックス値サーチ・サブユニットと、前記インデックス値にしたがって、文字アウトライン・データ・テーブルから前記文字のアウトライン・データを取得するように構成される取得サブユニットと、を備える、請求項9に記載の装置。
JP2016522188A 2013-07-05 2013-12-05 超特大文字ライブラリを確立する方法と装置および文字を表示する方法と装置 Pending JP2016533568A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201310282313.6 2013-07-05
CN201310282313.6A CN104281601B (zh) 2013-07-05 2013-07-05 构建超大字库的方法及装置、字符显示方法及装置
PCT/CN2013/088623 WO2015000259A1 (zh) 2013-07-05 2013-12-05 构建超大字库的方法及装置、字符显示方法及装置

Publications (1)

Publication Number Publication Date
JP2016533568A true JP2016533568A (ja) 2016-10-27

Family

ID=52143062

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016522188A Pending JP2016533568A (ja) 2013-07-05 2013-12-05 超特大文字ライブラリを確立する方法と装置および文字を表示する方法と装置

Country Status (5)

Country Link
US (1) US10192336B2 (ja)
JP (1) JP2016533568A (ja)
KR (1) KR101780905B1 (ja)
CN (1) CN104281601B (ja)
WO (1) WO2015000259A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10577542B2 (en) * 2013-02-19 2020-03-03 Baker Hughes, A Ge Company, Llc Low viscosity metal-based hydrogen sulfide scavengers
CN106803904A (zh) * 2016-11-24 2017-06-06 德为显示科技股份有限公司 一种液晶显示器osd显示方法及系统
CN106802800A (zh) * 2016-12-30 2017-06-06 深圳芯智汇科技有限公司 图形界面的生成方法及显示设备
CN109240628A (zh) * 2018-08-05 2019-01-18 深圳市技达信息技术有限公司 计算字符、字符串等的显示宽高的方法、装置及计算机可读存储介质
CN110704396A (zh) * 2019-09-26 2020-01-17 中国人民解放军军事科学院军事医学研究院 毒物信息库的建立方法、信息检索方法、装置及电子设备
CN110826005B (zh) * 2019-11-13 2022-12-16 北大方正集团有限公司 文件生成方法、装置、电子设备及存储介质
CN113850050B (zh) * 2020-06-28 2022-09-23 荣耀终端有限公司 字符显示方法、字符显示装置及终端设备
CN116306498B (zh) * 2023-05-16 2023-09-12 福昕鲲鹏(北京)信息科技有限公司 文字渲染方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005501303A (ja) * 2000-12-27 2005-01-13 インテル コーポレイション 大きな文字セットに対応する方法及びシステム
JP2012216106A (ja) * 2011-04-01 2012-11-08 Seiko Epson Corp 記録制御装置、記録システム、記録制御方法、及び、プログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09134157A (ja) * 1995-11-09 1997-05-20 Fujitsu Ltd ヒント付け方法及びフォントファイル構成方法
JP3917343B2 (ja) 2000-02-25 2007-05-23 株式会社東芝 マルチプラットフォーム環境における文字コード変換方式および文字コード変換プログラムを記録したコンピュータ読み取り可能な記録媒体
CN101241505B (zh) 2008-02-01 2013-08-21 张建中 一种生成、部署和运行多维地址可扩展关联标记语言的方法和装置以及系统
CN101488125B (zh) * 2008-12-04 2015-03-25 洛藏 一种藏文编码的方法及终端
CN101694603B (zh) 2009-10-20 2011-09-07 中央民族大学 基于Unicode的跨平台蒙古文显示及智能输入方法
WO2012037721A1 (en) * 2010-09-21 2012-03-29 Hewlett-Packard Development Company,L.P. Handwritten character font library
CN102571323A (zh) * 2011-12-31 2012-07-11 深圳市永达电子股份有限公司 非标准字符库处理方法和装置以及引用该方法和装置的系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005501303A (ja) * 2000-12-27 2005-01-13 インテル コーポレイション 大きな文字セットに対応する方法及びシステム
JP2012216106A (ja) * 2011-04-01 2012-11-08 Seiko Epson Corp 記録制御装置、記録システム、記録制御方法、及び、プログラム

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
"OpenTypeフォント時代に適応せよ! フォント最新事情 独自のメリットを生み出すフォント構造 O", PROFESSIONAL DTP, vol. 第200505号, JPN6017009574, 10 April 2005 (2005-04-10), JP, pages 44 - 47, ISSN: 0003521758 *
"フリーソフト大賞2010 導入するだけでPCの文字表示を美しく明確に", MR.PC, vol. 第1巻第12号, JPN6017009579, 23 October 2010 (2010-10-23), JP, pages 53, ISSN: 0003521761 *
塩田 紳二: "WiN3SIG第18回 Creative Faces Mr.Postman", ASCII, vol. 第16巻第10号, JPN6017009576, 1 October 1992 (1992-10-01), JP, pages 314 - 315, ISSN: 0003521759 *
宮代 学 外1名: "フォント設定完全マスター", 日経LINUX, vol. 第5巻第2号, JPN6017009581, 8 February 2003 (2003-02-08), JP, pages 62 - 79, ISSN: 0003521762 *
角川 裕次: "複数のフォントフォーマットを透過的に利用できるフォントモジュールVFlib", 情報処理学会研究報告, vol. 第99巻第10号, JPN6017009578, 29 January 1999 (1999-01-29), JP, pages 1 - 8, ISSN: 0003521760 *

Also Published As

Publication number Publication date
KR101780905B1 (ko) 2017-09-21
CN104281601B (zh) 2018-09-25
CN104281601A (zh) 2015-01-14
US20160180563A1 (en) 2016-06-23
KR20160023832A (ko) 2016-03-03
WO2015000259A1 (zh) 2015-01-08
US10192336B2 (en) 2019-01-29

Similar Documents

Publication Publication Date Title
JP2016533568A (ja) 超特大文字ライブラリを確立する方法と装置および文字を表示する方法と装置
US11100244B2 (en) File packaging and unpackaging methods, apparatuses, and network devices
CN105117378B (zh) 一种json文件转换为excel文件的方法及装置
US8910036B1 (en) Web based copy protection
US20120062576A1 (en) Method and apparatus for rendering content
US10461934B2 (en) Authentication-based message display method and communication terminal thereof
CN111580879A (zh) 小程序的运行方法、装置、电子设备及计算机存储介质
US10600221B2 (en) System, method, and electronic device for information duplication and machine-readable storage medium
WO2017054597A1 (zh) 表情字符串的处理方法及装置
EP2778968B1 (en) Mobile telecommunication device remote access to cloud-based or virtualized database systems
US8903771B2 (en) Method and device for importing backup data for a mobile terminal
WO2014206108A1 (zh) 用于移动终端上的文本内容显示的方法、装置及系统
WO2013085779A1 (en) Access to supplemental data based on identifier derived from corresponding primary application data
CN109857571B (zh) 剪贴板控制方法及装置
US11659076B2 (en) Initiating application execution with trigger characters
US20130060797A1 (en) Data transformation method and system
US11704629B2 (en) Methods and devices for processing information card
CN108363703A (zh) 前端应用的多语言解决方法、存储介质
US10115374B2 (en) Variable glyph encoding
KR20220002854A (ko) 단말기의 정보 처리 방법 및 장치
EP2838027B1 (en) Method and apparatus for expanding storage space
CN104123127A (zh) 手机软件开发通用平台
CN110362790A (zh) 字体文件的处理方法、装置、电子设备及可读存储介质
EP2858335A1 (en) Mobile terminal and method for implementing customization of contact attribute
CN109460304B (zh) 一种跨应用的通知展示、通知内容封装方法和装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170308

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170321

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20170620

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170802

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20180306