TypeLoader 2.0
このソフトウェアは、.NET Framework 2.0以降で動作するクラスライブラリで、TrueType、OpenType、TrueType Collectionのフォントファイルの一部のデータを収集して、簡易な組版機能を実装するための情報を提供します。
たとえば、縦書きを行う場合に句読点や括弧は縦書き用のグリフに変換する必要がありますが、.NET Frameworkには縦書き用のグリフに変換する機能が存在しません。そこで、このTypeLoaderを使うことにより、縦書きグリフへの変換を数行のプログラムで実現できるようになります。
-----------------------------
主な機能
-----------------------------
・縦書きグリフへの変換情報を取得できます
・句読点や約物を半角幅で組めるように位置調整情報を取得できます
・プロポーショナルメトリクスで組めるように位置調整情報を取得できます
・欧文をカーニングメトリクスで組めるように位置調整情報を取得できます
・標準で適用することが望ましい合字変換情報を取得できます
-----------------------------
サンプルコード
-----------------------------
'//フォントのパスを指定しています。(#2はコレクションの2番目のフォント)
Dim u As New Uri("file:///C:/Windows/Fonts/MSGOTHIC.ttc#2")
'//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()
-----------------------------
ダウンロード
-----------------------------
http://typeloader.codeplex.com/
たとえば、縦書きを行う場合に句読点や括弧は縦書き用のグリフに変換する必要がありますが、.NET Frameworkには縦書き用のグリフに変換する機能が存在しません。そこで、このTypeLoaderを使うことにより、縦書きグリフへの変換を数行のプログラムで実現できるようになります。
-----------------------------
主な機能
-----------------------------
・縦書きグリフへの変換情報を取得できます
・句読点や約物を半角幅で組めるように位置調整情報を取得できます
・プロポーショナルメトリクスで組めるように位置調整情報を取得できます
・欧文をカーニングメトリクスで組めるように位置調整情報を取得できます
・標準で適用することが望ましい合字変換情報を取得できます
-----------------------------
サンプルコード
-----------------------------
'//フォントのパスを指定しています。(#2はコレクションの2番目のフォント)
Dim u As New Uri("file:///C:/Windows/Fonts/MSGOTHIC.ttc#2")
'//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()
-----------------------------
ダウンロード
-----------------------------
http://typeloader.codeplex.com/