TabsAlignment.vb
''
'' このコードは、DioDocs for PDF のサンプルの一部として提供されています。
'' © MESCIUS inc. All rights reserved.
''
Imports System.IO
Imports System.Drawing
Imports GrapeCity.Documents.Pdf
Imports GrapeCity.Documents.Text
Imports GrapeCity.Documents.Drawing
'' このサンプルは、TextLayout.TabStops を使用して、浮動小数点数の列を
'' さまざまな方法で整列する方法を示します。
'' - TabStopAlignment.Separator を使用して小数点位置を揃えます。
'' - TabStopAlignment.Leading を使用してタブ位置を左揃えにします。
'' - TabStopAlignment.Center を使用してタブの位置を中央揃えにします。
'' - TabStopAlignment.Trailing を使用して、タブの位置を右揃えにします。
Public Class TabsAlignment
Function CreatePDF(ByVal stream As Stream) As Integer
'' ドキュメントを作成して設定します。
Dim doc = New GcPdfDocument()
Dim page = doc.NewPage()
Dim g = page.Graphics
Const fontname = "Yu Gothic"
'' テキストを出力するための TextLayout オブジェクトを作成して設定します。
Dim tl = g.CreateTextLayout()
tl.MaxWidth = page.Size.Width
tl.MaxHeight = page.Size.Height
tl.MarginLeft = 36
tl.MarginRight = 36
tl.MarginTop = 36
tl.MarginBottom = 36
tl.DefaultFormat.FontName = fontname
tl.DefaultFormat.FontSize = 10
tl.DefaultFormat.BackColor = Color.FromArgb(217, 217, 217)
'' 異なる配置タイプのタブストップを追加します
'' (最初のタブのコンストラクタは TabStopAlignment.Separator TabStop を作成します)。
tl.TabStops = New List(Of TabStop)() From {
New TabStop(72, "."c),
New TabStop(72 * 2.5F, TabStopAlignment.Leading),
New TabStop(72 * 5, TabStopAlignment.Center),
New TabStop(72 * 7.5F, TabStopAlignment.Trailing)
}
'' サンプルテキストを描画します。
tl.Append($"タブストップの位置:{vbCrLf}{vbTab}セパレータ= '.'{vbTab}左揃え{vbTab}中央寄せ{vbTab}右揃え{vbCrLf}")
Dim v0 As Double = 1
Dim q As Double = (1 + Math.Sqrt(5)) / 2
For i = 1 To 50
tl.Append($"{vbTab}{v0:R}{vbTab}{v0:R}{vbTab}{v0:R}{vbTab}{v0:R}{vbCrLf}")
v0 *= q
Next
tl.PerformLayout(True)
'' テキストとイメージを描画します。
g.DrawTextLayout(tl, PointF.Empty)
''
'' PDF ドキュメントを保存します。
doc.Save(stream)
Return doc.Pages.Count
End Function
End Class