完整代码
var Doc = new PdfDocument();
Doc.PageSettings.Margins.All = 0;//设置边距为0
Doc.Pages.Add();Doc.Pages.RemoveAt(0);//删除第一页,因为有水印
var Page = Doc.Pages.Add();
var FontColorBlack = new PdfSolidBrush(Color.Black);
var Font8 = new PdfTrueTypeFont(new Font("宋体", 8, FontStyle.Regular), true);
Page.Canvas.DrawString("不旋转的字体1", Font8, FontColorBlack, new PointF(100, 100));
//保存当前状态
Page.Canvas.Save();
//设置旋转原点
Page.Canvas.TranslateTransform(200, 100);
//旋转30度
Page.Canvas.RotateTransform(30);
//绘制旋转的字体
Page.Canvas.DrawString("旋转的字体", Font8, FontColorBlack, new PointF(0, 0));
//恢复上次状态
Page.Canvas.Restore();
Page.Canvas.DrawString("不旋转的字体2", Font8, FontColorBlack, new PointF(300, 100));
//保存
string path = Path.Combine(Environment.CurrentDirectory, "Reports");
string name = DateTime.Now.ToString("yyyyMMddHHmmss");
if (Directory.Exists(path) == false)
{
Directory.CreateDirectory(path);
}
string fname = Path.Combine(path, name + ".pdf");
Doc.SaveToFile(fname);
Doc.Close();
//打开
Process.Start(fname);
备注:通过TranslateTransform设置旋转原点,然后通过DrawString绘制时,只需设置坐标为0,0即可
效果
可以实现下面的效果