加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C# 绘制PDF图形——基本图形、自定义图形、色彩透明度

发布时间:2020-12-16 01:08:14 所属栏目:百科 来源:网络整理
导读:引言 在PDF中我们可以通过C#程序代码来添加非常丰富的元素来呈现我们想要表达的内容,如绘制表格、文字,添加图形、图像等等。在本篇文章中,我将介绍如何在PDF中绘制图形,并设置图形属性的操作。 ? 文章中将分以下要点进行介绍: 1. 绘制基本图形(线条、

引言

在PDF中我们可以通过C#程序代码来添加非常丰富的元素来呈现我们想要表达的内容,如绘制表格、文字,添加图形、图像等等。在本篇文章中,我将介绍如何在PDF中绘制图形,并设置图形属性的操作。

?

文章中将分以下要点进行介绍:

1. 绘制基本图形(线条、椭圆、圆形、矩形、三角形)

2. 绘制自定义图形

3. 绘制图形并设置图形透明度

?

所需工具:Spire.PDF for .NET 4.0

提示:安装后,直接引用安装路径下Bin文件夹中的dll文件到项目程序中即可。

【示例1】绘制基本图形

C#

步骤1:新建一个PDF文档,添加页,添加画笔、画刷

            //新建一个PDF文档,添加页
            PdfDocument doc = new PdfDocument();
            PdfPageBase page = doc.Pages.Add();

            设置画笔和画刷
            PdfPen pen =  PdfPen(PdfBrushes.Black,1f);
            PdfBrush brush1 = PdfBrushes.RosyBrown;
            PdfBrush brush2 = PdfBrushes.Goldenrod;

步骤2:绘制圆形、矩形、线段、三角形

            绘入矩形(此处通过设置值来绘制成正方形)
            page.Canvas.DrawRectangle(pen,brush1,new Rectangle(new Point(50,50),1)">new Size(60,1)">60)));

            绘入椭圆(此处通过设置值来绘制成圆形)
            page.Canvas.DrawEllipse(pen,brush2,1)">210,1)">);

            绘入线段
            page.Canvas.DrawLine(pen,1)">new PointF(115),1)">270,1)">115));

            绘入多边形(此处绘制成三角形)
            PointF p1 = 130,1)">172);
            PointF p2 = 160,1)">120);
            PointF p3 = 190,1)">);
            PointF[] points =  PointF[] { p1,p2,p3 };
            page.Canvas.DrawPolygon(pen,points);

步骤3:保存文档

            保存并打开文档
            doc.SaveToFile("基本图形.pdf");
            System.Diagnostics.Process.Start(");

?

全部代码

using Spire.Pdf;
 Spire.Pdf.Graphics;
 System.Drawing;

namespace DrawRectangle_PDF
{
    class Program
    {
        static void Main(string[] args)
        {        
             PdfBrushes.RosyBrown;
            PdfBrush brush2 = PdfBrushes.Goldenrod;
            );
        }
    }
}
View Code

?

效果图:

【示例2】绘制自定义图形

步骤1:创建pdf文档,调用方法DrawStar()绘制自定义图形,并保存

            调用DrawStar()方法绘入五角星图形
            DrawStar(page);

            自定义图形.pdf");

?

步骤2:自定义DrawStar()方法绘制几个不同样式的五角星

 private void DrawStar(PdfPageBase page)
        {
            设置五角星的5个顶点坐标
            PointF[] points = new PointF[5];
            for (int i = 0; i < points.Length; i++)
            {
                float x = (float)Math.Cos(i * 2 * Math.PI / );
                float y = (float)Math.Sin(i * );
                points[i] =  PointF(x,y);
            }

            创建PdfPath类,在顶点之间添加线段组成五角星
            PdfPath path =  PdfPath();
            path.AddLine(points[2],points[0]);
            path.AddLine(points[0],1)">33],1)">11],1)">44],1)">2]);

            保存画布状态
            PdfGraphicsState state = page.Canvas.Save();

            实例化画笔和画刷1、画刷2
            PdfPen pen = new PdfPen(Color.DeepSkyBlue,1)">0.02f);
            PdfBrush brush1 =  PdfSolidBrush(Color.PaleGreen);
            PdfBrush brush2 =  PdfSolidBrush(Color.Bisque);
            将坐标放大40倍
            page.Canvas.ScaleTransform(40f,40f);

            平移坐标
            page.Canvas.TranslateTransform(1f,1)">1.5f绘入第一个五角星
            page.Canvas.DrawPath(pen,path);

            平移坐标并在新的位置绘入第二个五角星
            page.Canvas.TranslateTransform(2f,0f);
            path.FillMode = PdfFillMode.Alternate;
            page.Canvas.DrawPath(pen,1)">平移坐标并在新的位置绘入第三个五角星
 PdfFillMode.Winding;
            page.Canvas.DrawPath(pen,1)">实例化画刷3,平移坐标并在新的位置绘入第四个五角星
            PdfLinearGradientBrush brush3
                = new PdfLinearGradientBrush(new PointF(-2,1)">0),1)">),Color.OrangeRed,Color.Yellow);
            page.Canvas.TranslateTransform(-4f,2f);
            path.FillMode =实例化画刷4,平移坐标并在新的位置绘入第五个五角星
            PdfRadialGradientBrush brush4
                = new PdfRadialGradientBrush(new PointF(0f,0f),0f,1)"> PointF(0f,1f,Color.Orchid,Color.LightBlue);
            page.Canvas.TranslateTransform(2f,brush4,1)">实例化画刷5,平移坐标并在新的位置绘入第六个五角星
            PdfTilingBrush brush5 = new PdfTilingBrush(new RectangleF(0,1)">,4f,4f));
            brush5.Graphics.DrawRectangle(brush3,再次保存画布状态
            page.Canvas.Restore(state);
        }

全部代码:

 System;
 System.Drawing;


 DrawCustomGraphics_PDF
{
    [] args)
        {
            );

        }

        自定义DrawStar方法绘制几个不同样式的五角星
                    page.Canvas.Restore(state);
        }
    }
}
View Code

?

效果图:

【示例3】设置色彩透明度

步骤1:新建一个PDF文档,添加页

            PdfDocument doc =  PdfDocument();
            PdfPageBase page = doc.Pages.Add();

步骤2:初始化一个PdfSeparationColorSpace的对象,用于创建基本色,并将基本色透明度设置为1

            PdfSeparationColorSpace cs1 = new PdfSeparationColorSpace(MySpotColor=  PdfSeparationColor(cs1,1f);
            PdfSeparationColor color2 =  PdfSeparationColor(cs2,1f);
            PdfSeparationColor color3 = new PdfSeparationColor(cs3,1f);

步骤3:根据颜色创建画刷

            PdfSolidBrush brush1 =  PdfSolidBrush(color1);
            PdfSolidBrush brush2 =  PdfSolidBrush(color2);
            PdfSolidBrush brush3 = new PdfSolidBrush(color3);

步骤4:绘入图形及文字,应用色彩透明度到图形

           绘入图形及文字并着色
            page.Canvas.DrawPie(brush1,1)">10,1)">30,1)">360,1)">360);
            page.Canvas.DrawPie(brush2,1)">120,1)">);
            page.Canvas.DrawPie(brush3,1)">);
            page.Canvas.DrawString(透明度=1.0",1)">new PdfTrueTypeFont(new Font(Arial Unicode MStrue),1)">16,1)">100将基本色透明度设置为0.5,并绘入图形及文字
            color1 = new PdfSeparationColor(cs1,1)">0.5f);
            brush1 =  PdfSolidBrush(color1);
            page.Canvas.DrawPie(brush1,1)">80,1)">);
            color2 = new PdfSeparationColor(cs2,1)">);
            brush2 =  PdfSolidBrush(color2);
            page.Canvas.DrawPie(brush2,1)">);
            color3 = );
            brush3 =  PdfSolidBrush(color3);
            page.Canvas.DrawPie(brush3,1)">);

            page.Canvas.DrawString(透明度=0.586,1)">将基本色透明度设置为0.25,1)">0.25f150,1)">透明度=0.25156,1)">100));

步骤5:保存文档

            doc.SaveToFile(设置透明度.pdf");

全部代码:

 Spire.Pdf.ColorSpace;
 CrearteSpotColor_PDF
{
    初始化一个PdfSeparationColorSpace的对象,用于创建基本色
            PdfSeparationColorSpace cs1 = 将基本色透明度设置为1
            PdfSeparationColor color1 =  PdfSeparationColor(cs3,1f);
            根据颜色创建画刷
            PdfSolidBrush brush1 =  PdfSolidBrush(color3);

            );
        }
    }
}
View Code

?

效果图:

以上是关于C#绘制PDF图形的全部内容,如需转载,请注明出处!

(本文完)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读