RotatedText.cs
// 完毕:
using System;
using System.IO;
using System.Drawing;
using System.Numerics;
using GrapeCity.Documents.Drawing;
using GrapeCity.Documents.Pdf;
using GrapeCity.Documents.Text;
namespace DsPdfWeb.Demos.Basics
{
// 演示如何使用 GcPdfGraphics.Transform 旋转文本字符串。
// 另请参阅RotatedText2。
public class RotatedText
{
public int CreatePDF(Stream stream)
{
// 旋转角度,顺时针度数:
float angle = -45;
//
var doc = new GcPdfDocument();
var g = doc.NewPage().Graphics;
// 创建文本布局,选择字体和字体大小:
TextLayout tl = g.CreateTextLayout();
tl.DefaultFormat.Font = StandardFonts.Times;
tl.DefaultFormat.FontSize = 24;
// 添加文本,并进行布局:
tl.Append("旋转的文本。");
tl.PerformLayout(true);
// 文本插入点位于 (1",1"):
var ip = new PointF(72, 72);
// 现在我们有了文本大小,创建文本矩形,左上角位于插入点:
var rect = new RectangleF(ip.X, ip.Y, tl.ContentWidth, tl.ContentHeight);
// 围绕其边界矩形的中心旋转文本:
// 我们现在有了文本大小,并且可以绕其中心旋转它:
g.Transform = Matrix3x2.CreateRotation((float)(angle * Math.PI) / 180f, 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;
}
}
}