【Spire.PDF】Spire.PDF导出报告之二基本绘制Draw

记录学习过程

创建日期: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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
Free Spire.PDFViewer for .NET 是 Spire.PDFViewer for .NET 的免费版本,使用 Free Spire.PDFViewer,程序员可以在 WinForm 程序中加载并查看 PDF 文档。浏览 PDF 时,用户可以自由设置浏览选项,比如:自动适应纸张/自动适应窗口,上一页/下一页,放大/缩小,等等。Free Spire.PDFViewer 支持浏览含多种元素的 PDF,这些元素包括超链接,字体(TrueType, Type 0, Type 1, Type 3, OpenType and CJK font),图形,表格, Device-Dependent Color Spaces, DCT,JPEG2000 等图片格式。 此外,该控件还支持纵向、横向和自动打印文档,支持将 PDF 保存为多种流行的图片格式(.bmp, .png, .jpeg)。作为一款独立的 PDF 查看组件,Free Spire.PDFViewer 的运行不依赖 Adobe Reader 及其他任何第三方软件。 主要功能点: 1.从文件,流,字节数组读取文档 2.加载浏览加密的 PDF 文档 3.设置浏览选项(页面跳转,缩放,自适应页面大小,旋转,单页或多页显示) 4.显示缩略图 5.识别书签目录及跳转到目标位置 6.存取附件到本地硬盘 7.支持多种打印方式:横向,纵向,自动 8.保存为图片(.bmp, .png, .jpeg) 9.支持多种PDF页面元素(超链接,字体,图形,图片,表格) 技术特点: 1.支持 .NET Framework 2.0, 3.0, 3.5, 4.0 2.仅支持 Windows Form 3.支持ASCIIHex, ASCII85, Flate, LZW, Run Length, CCITT Fax, DCT, JPX 解码 4.控件完全由 C# 代码开发 5.独立组件,无需 Adobe Reader 及其他任何第三方软件
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GreAmbWang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值