微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

引言

在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(MySpotColorarationColorSpace cs2 = arationColorSpace cs3 = arationColor color1 =  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);

            图片及文字
            color1 = );
        }
    }
}
View Code

 

效果图:

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

(本文完)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐