RotatedText.vb
'' 完毕:
Imports System.IO
Imports System.Drawing
Imports GrapeCity.Documents.Pdf
Imports GrapeCity.Documents.Text
Imports GrapeCity.Documents.Drawing
Imports System.Numerics
'' 演示如何使用 GcPdfGraphics.Transform 旋转文本字符串。
'' 另请参阅RotatedText2。
Public Class RotatedText
Function CreatePDF(ByVal stream As Stream) As Integer
'' 旋转角度,顺时针度数:
Dim angle = -45.0F
''
Dim doc = New GcPdfDocument()
Dim g = doc.NewPage().Graphics
'' 创建文本布局,选择字体和字体大小:
Dim tl = g.CreateTextLayout()
tl.DefaultFormat.Font = StandardFonts.Times
tl.DefaultFormat.FontSize = 24
'' 添加文本,并进行布局:
tl.Append("旋转的文本。")
tl.PerformLayout(True)
'' 文本插入点位于 (1",1"):
Dim ip = New PointF(72, 72)
'' 现在我们有了文本大小,创建文本矩形,左上角位于插入点:
Dim rect = New RectangleF(ip.X, ip.Y, tl.ContentWidth, tl.ContentHeight)
'' 围绕其边界矩形的中心旋转文本:
'' 我们现在有了文本大小,并且可以绕其中心旋转它:
g.Transform = Matrix3x2.CreateRotation((angle * Math.PI) / 180.0F, New Vector2(ip.X + tl.ContentWidth / 2, ip.Y + tl.ContentHeight / 2))
'' 绘制旋转文本和边框:
g.DrawTextLayout(tl, ip)
g.DrawRectangle(rect, Color.Black, 1)
'' 删除旋转并在非旋转文本所在的位置绘制边界矩形:
g.Transform = Matrix3x2.Identity
g.DrawRectangle(rect, Color.ForestGreen, 1)
''
'' 完毕:
doc.Save(stream)
Return doc.Pages.Count
End Function
End Class