Project Description
TypeLoader can achieve a vertical Japanese text processing such as WPF more easily.
TypeLoader acquires the substitution table for vertical text processing reading the file of TrueType or OpenType directly.
It's developed in Visual C# 2010 Express.

TypeLoaderはWPFなどにおける日本語テキストの縦書きをより簡単に実現してくれます。
TypeLoaderはTrueTypeまたはOpenTypeのフォントファイルを直接読み込んで必要な情報を取り出してくれます。
開発環境は Visual C# 2010 Express です。

Features
  • Listing of vertical glyph substitution. (OpenType or TrueType) ※縦書きグリフへの変換表の取得
  • Listing of ligature glyph substitution. (OpenType) ※合字グリフへの変換表の取得
  • Listing of proportional metrics. (OpenType) ※プロポーショナルメトリクスの取得
  • Listing of half width metrics. (OpenType) ※約物文字等の半角幅メトリクスの取得
  • Listing of kerning metrics. (OpenType) ※カーニングメトリクスの取得

Requirements
  • .NET Framework 2.0

Usage

'//フォントのパスをUriで指定しています。(#2はコレクションの3番目のフォント)
Dim u As Uri = New UriBuilder("file", "", -1, "C:\Windows\Fonts\MSGOTHIC.ttc", "#2").Uri

'//WPFのGlyphTypefaceによりフォントの多くの情報にアクセスできます。
Dim gtf As New System.Windows.Media.GlyphTypeface(u)

'//TypefaceInfoクラスのコンストラクタにStreamを引き渡して読み込み完了です。
Dim info As New TypefaceInfo(gtf.GetFontStream(), CInt(u.Fragment.Replace("#", "")))

'//縦書きの変換情報を取得します(vert)
Dim vmap1 As SingleGlyphConverter = info.GetVerticalGlyphConverter()

'//縦書きの変換情報を取得します(vrt2)
Dim vmap2 As SingleGlyphConverter = info.GetAdvancedVerticalGlyphConverter()

'//横書きの半角幅の位置調整情報を取得します(halt)
Dim hhalf As SingleAdjustmentMetrics = info.GetHalfAdjustmentMetrics(False)

'//縦書きの半角幅の位置調整情報を取得します(vhal)
Dim vhalf As SingleAdjustmentMetrics = info.GetHalfAdjustmentMetrics(True)

'//横書きのプロポーショナルメトリクスの位置調整情報を取得します(palt)
Dim hpalt As SingleAdjustmentMetrics = info.GetProportionalAdjustmentMetrics(False)

'//縦書きのプロポーショナルメトリクスの位置調整情報を取得します(vpal)
Dim vpalt As SingleAdjustmentMetrics = info.GetProportionalAdjustmentMetrics(True)

'//カーニングメトリクスの位置調整情報を取得します(kern)
Dim kern As PairAdjustmentMetrics = info.GetKerningAdjustmentMetrics()

'//標準で適用することが望ましい合字の変換情報を取得します(liga)
Dim liga As LigatureGlyphConverter = info.GetLigatureGlyphConverter()

Last edited Nov 10, 2010 at 1:21 PM by watertrans, version 11