Ligatures.vb
''
'' このコードは、DioDocs for PDF のサンプルの一部として提供されています。
'' © MESCIUS inc. All rights reserved.
''
Imports System.IO
Imports System.Drawing
Imports GrapeCity.Documents.Pdf
Imports GrapeCity.Documents.Text
Imports GCTEXT = GrapeCity.Documents.Text
Imports GCDRAW = GrapeCity.Documents.Drawing
'' 合字(単一のグリフ内に2つ以上の文字が結合されたもの)は、選択されたフォントがサポートし、
'' 対応するフォント機能がオンである場合に、DsPdf によってサポートされます。
'' フォント機能の完全なリストについては、 featurelist.htm を参照してください。
'' また、FontFeatures も参照してください。
Public Class Ligatures
Function CreatePDF(ByVal stream As Stream) As Integer
'' 一般的なラテン文字のリスト。
Const latinLigatures = "fi, fj, fl, ff, ffi, ffl."
'' 合字関連のフォント機能を設定します。
'' すべて ON:
Dim allOn As FontFeature() = {
New FontFeature(FeatureTag.clig, True), '' 文脈上の合体
New FontFeature(FeatureTag.dlig, True), '' 自由詞
New FontFeature(FeatureTag.hlig, True), '' 歴史的合字
New FontFeature(FeatureTag.liga, True), '' 標準的な連結子
New FontFeature(FeatureTag.rlig, True) '' 必要な連結子
}
'' すべて OFF:
Dim allOff As FontFeature() = {
New FontFeature(FeatureTag.clig, False),
New FontFeature(FeatureTag.dlig, False),
New FontFeature(FeatureTag.hlig, False),
New FontFeature(FeatureTag.liga, False),
New FontFeature(FeatureTag.rlig, False)
}
Dim doc = New GcPdfDocument()
Dim g = doc.NewPage().Graphics
'' テキストの挿入位置。
Dim ip = New PointF(72, 72)
Dim tf = New TextFormat()
tf.Font = GCTEXT.Font.FromFile(Path.Combine("Resources", "Fonts", "times.ttf"))
tf.FontSize = 20
g.DrawString($"Common Latin ligatures, font {tf.Font.FontFamilyName}", tf, ip)
ip.Y += 36
'' すべての合字機能を OFF にします。
tf.FontFeatures = allOff
g.DrawString($"All ligature features OFF: {latinLigatures}", tf, ip)
ip.Y += 36
'' すべての合字機能を ON にします。
tf.FontFeatures = allOn
g.DrawString($"All ligature features ON: {latinLigatures}", tf, ip)
ip.Y += 72
'' 異なるフォントで繰り返します。
tf.Font = GCTEXT.Font.FromFile(Path.Combine("Resources", "Fonts", "Gabriola.ttf"))
g.DrawString($"Common Latin ligatures, font {tf.Font.FontFamilyName}", tf, ip)
ip.Y += 36
'' すべての合字機能を OFF にします。
tf.FontFeatures = allOff
g.DrawString($"All ligature features OFF: {latinLigatures}", tf, ip)
ip.Y += 36
'' すべての合字機能を ON にします。
tf.FontFeatures = allOn
g.DrawString($"All ligature features ON: {latinLigatures}", tf, ip)
''
'' Done:
doc.Save(stream)
Return doc.Pages.Count
End Function
End Class