TabsAlignment.vb
'' 完毕:
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
        '' 创建并设置一个 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.Font = StandardFonts.Times
        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($"TabStopAlignment:{vbCrLf}{vbTab}Separator '.'{vbTab}Leading{vbTab}Center{vbTab}Trailing{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)
        ''
        '' 完毕:
        doc.Save(stream)
        Return doc.Pages.Count
    End Function
End Class