记录学习过程
创建日期:2019-04-11
【Spire.PDF】Spire.PDF导出报告之一获取与破解
【Spire.PDF】Spire.PDF导出报告之二基本绘制Draw
【Spire.PDF】Spire.PDF导出报告之三表格Grid
【Spire.PDF】Spire.PDF导出报告之四报告模板
【Spire.PDF】Spire.PDF导出报告之实用工具类PdfUtility
Spire.PDF导出报告之二基本绘制Draw
绘制文本,图像,直线,弧线,贝塞尔曲线,矩形,椭圆,扇形,多边形,路径等
一,绘制文本和图像
#region 绘制文本和图像
/// <summary>
/// 绘制文本
/// </summary>
/// <param name="s">字符串文本</param>
/// <param name="font">文本格式</param>
/// <param name="brush">文本颜色</param>
/// <param name="point">绘制的位置</param>
/// <param name="page">页面,默认为创建的最后一个页面,也可以重新设置页面</param>
public void DrawString(string s, PdfTrueTypeFont font, PdfSolidBrush brush, PointF point, PdfPageBase page = null)
{
(page ?? Page).Canvas.DrawString(s, font, brush, point);
}
/// <summary>
/// 绘制图像
/// </summary>
/// <param name="image">图像</param>
/// <param name="rectangle">图像的位置和大小</param>
/// <param name="page">页面,默认为创建的最后一个页面,也可以重新设置页面</param>
public void DrawImage(Image image, RectangleF rectangle, PdfPageBase page = null)
{
(page ?? Page).Canvas.DrawImage(PdfImage.FromImage(image), rectangle);
}
#endregion
应用
PdfUtility pdfUtility = new PdfUtility();
pdfUtility.Init();
pdfUtility.PagesAdd();
//文本
pdfUtility.DrawString("PDF文档测试", pdfUtility.Font(10), pdfUtility.BrushColor(Color.Black), new PointF(10, 10));
//图像
pdfUtility.DrawImage(Properties.Resources.Info, new RectangleF(new PointF(10, 30), new SizeF(50, 50)));
效果
二,绘制线
#region 绘制线
/// <summary>
/// 绘制直线
/// </summary>
/// <param name="pen">画笔的颜色,宽度</param>
/// <param name="point1">第一个点</param>
/// <param name="point2">第二个点</param>
/// <param name="page">页面,默认为创建的最后一个页面,也可以重新设置页面</param>
public void DrawLine(PdfPen pen, PointF point1, PointF point2, PdfPageBase page = null)
{
(page ?? Page).Canvas.DrawLine(pen, point1, point2);
}
/// <summary>
/// 绘制弧线
/// </summary>
/// <param name="pen">弧线的颜色,宽度</param>
/// <param name="rectangle">定义椭圆的边界</param>
/// <param name="startAngle">从 x 轴到弧线的起始点沿顺时针方向度量的角(以度为单位)</param>
/// <param name="sweepAngle">从 startAngle 参数到弧线的结束点沿顺时针方向度量的角(以度为单位)</param>
/// <param name="page">页面,默认为创建的最后一个页面,也可以重新设置页面</param>
public void DrawArc(PdfPen pen, RectangleF rectangle, float startAngle, float sweepAngle, PdfPageBase page = null)
{
(page ?? Page).Canvas.DrawArc(pen, rectangle, startAngle, sweepAngle);
}
/// <summary>
/// 绘制贝塞尔曲线
/// </summary>
/// <param name="pen">贝塞尔曲线的颜色,宽度</param>
/// <param name="startPoint">曲线的起始点</param>
/// <param name="firstControlPoint">曲线的第一个控制点</param>
/// <param name="secondControlPoint">曲线的第二个控制点</param>
/// <param name="endPoint">曲线的结束点</param>
/// <param name="page">页面,默认为创建的最后一个页面,也可以重新设置页面</param>
public void DrawBezier(PdfPen pen, PointF startPoint, PointF firstControlPoint, PointF secondControlPoint, PointF endPoint, PdfPageBase page = null)
{
(page ?? Page).Canvas.DrawBezier(pen, startPoint, firstControlPoint, secondControlPoint, endPoint);
}
#endregion
应用
//直线
pdfUtility.DrawLine(pdfUtility.PenColor(Color.Blue), new PointF(10, 90), new PointF(200, 90));
//弧线
pdfUtility.DrawArc(pdfUtility.PenColor(Color.Red, 2), new RectangleF(10, 100, 100, 100), 30, 200);
//贝塞尔曲线
pdfUtility.DrawBezier(pdfUtility.PenColor(Color.DarkBlue, 3), new PointF(10, 210), new PointF(100, 310), new PointF(200, 210), new PointF(300, 310));
效果
三,绘制图形
绘制图形,有矩形,椭圆,扇形,多边形,路径
都有三种形式(只有填充;有边框,无填充;有边框,有填充)
绘制矩形
#region 矩形(三种形式)
/// <summary>
/// 绘制矩形(只有填充)
/// </summary>
/// <param name="brush">填充的颜色</param>
/// <param name="rectangle">矩形的位置和大小</param>
/// <param name="page">页面,默认为创建的最后一个页面,也可以重新设置页面</param>
public void DrawRectangle(PdfBrush brush, RectangleF rectangle, PdfPageBase page = null)
{
(page ?? Page).Canvas.DrawRectangle(brush, rectangle);
}
/// <summary>
/// 绘制矩形(有边框,无填充)
/// </summary>
/// <param name="pen">矩形的颜色、宽度和样式</param>
/// <param name="rectangle">矩形的位置和大小</param>
/// <param name="page">页面,默认为创建的最后一个页面,也可以重新设置页面</param>
public void DrawRectangle(PdfPen pen, RectangleF rectangle, PdfPageBase page = null)
{
(page ?? Page).Canvas.DrawRectangle(pen, rectangle);
}
/// <summary>
/// 绘制矩形(有边框,有填充)
/// </summary>
/// <param name="pen">矩形的颜色、宽度和样式</param>
/// <param name="brush">填充的颜色</param>
/// <param name="rectangle">矩形的位置和大小</param>
/// <param name="page">页面,默认为创建的最后一个页面,也可以重新设置页面</param>
public void DrawRectangle(PdfPen pen, PdfBrush brush, RectangleF rectangle, PdfPageBase page = null)
{
(page ?? Page).Canvas.DrawRectangle(pen, brush, rectangle);
}
#endregion
应用
//矩形(只有填充)
pdfUtility.DrawRectangle(pdfUtility.BrushColor(Color.Yellow), new RectangleF(10, 400, 20, 20));
//矩形(有边框,无填充)
pdfUtility.DrawRectangle(pdfUtility.PenColor(Color.Green), new RectangleF(80, 400, 20, 20));
//矩形(有边框,有填充)
pdfUtility.DrawRectangle(pdfUtility.PenColor(Color.Green), pdfUtility.BrushColor(Color.Yellow), new RectangleF(150, 400, 20, 20));
效果
绘制椭圆
#region 椭圆(三种形式)
/// <summary>
/// 绘制椭圆(只有填充)
/// </summary>
/// <param name="brush">填充的颜色</param>
/// <param name="rectangle">椭圆的边界</param>
/// <param name="page">页面,默认为创建的最后一个页面,也可以重新设置页面</param>
public void DrawEllipse(PdfBrush brush, RectangleF rectangle, PdfPageBase page = null)
{
(page ?? Page).Canvas.DrawEllipse(brush, rectangle);
}
/// <summary>
/// 绘制椭圆(有边框,无填充)
/// </summary>
/// <param name="pen">曲线的颜色、宽度和样式</param>
/// <param name="rectangle">椭圆的边界</param>
/// <param name="page">页面,默认为创建的最后一个页面,也可以重新设置页面</param>
public void DrawEllipse(PdfPen pen, RectangleF rectangle, PdfPageBase page = null)
{
(page ?? Page).Canvas.DrawEllipse(pen, rectangle);
}
/// <summary>
/// 绘制椭圆(有边框,有填充)
/// </summary>
/// <param name="pen">曲线的颜色、宽度和样式</param>
/// <param name="brush">填充的颜色</param>
/// <param name="rectangle">椭圆的边界</param>
/// <param name="page">页面,默认为创建的最后一个页面,也可以重新设置页面</param>
public void DrawEllipse(PdfPen pen, PdfBrush brush, RectangleF rectangle, PdfPageBase page = null)
{
(page ?? Page).Canvas.DrawEllipse(pen, brush, rectangle);
}
#endregion
应用
//椭圆(只有填充)
pdfUtility.DrawEllipse(pdfUtility.BrushColor(Color.Blue), new RectangleF(10, 450, 30, 20));
//椭圆(有边框,无填充)
pdfUtility.DrawEllipse(pdfUtility.PenColor(Color.Red), new RectangleF(80, 450, 30, 20));
//椭圆(有边框,有填充)
pdfUtility.DrawEllipse(pdfUtility.PenColor(Color.Red), pdfUtility.BrushColor(Color.Blue), new RectangleF(150, 450, 30, 20));
效果
绘制扇形,多边形,路径(与绘制矩形类似都有三种样式)
【Spire.PDF】Spire.PDF导出报告之一获取与破解
【Spire.PDF】Spire.PDF导出报告之二基本绘制Draw
【Spire.PDF】Spire.PDF导出报告之三表格Grid
【Spire.PDF】Spire.PDF导出报告之四报告模板
【Spire.PDF】Spire.PDF导出报告之实用工具类PdfUtility