`

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

阅读更多

 

引言

 

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

 

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

 

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

 

2. 绘制自定义图形

 

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

 

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

 

【示例1】绘制基本图形

【C#】

 

 

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

namespace DrawRectangle_PDF
{
    class Program
    {
        static void Main(string[] args)
        {        
            //新建一个PDF文档
            PdfDocument doc = new PdfDocument();
            PdfPageBase page = doc.Pages.Add();

            //设置画笔和画刷
            PdfPen pen = new PdfPen(PdfBrushes.Black, 1f);
            PdfBrush brush1 = PdfBrushes.RosyBrown;
            PdfBrush brush2 = PdfBrushes.Goldenrod;
            //绘入矩形(此处通过设置值来绘制成正方形)
            page.Canvas.DrawRectangle(pen, brush1, new Rectangle(new Point(50, 50), new Size(60, 60)));

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

            //绘入线段
            page.Canvas.DrawLine(pen, new PointF(50, 115), new PointF(270, 115));

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

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

 效果图:

 

 


 

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

【C#】

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


namespace DrawCustomGraphics_PDF
{
    class Program
    {
        static void Main(string[] args)
        {
            //新建一个PDF文档,添加页
            PdfDocument doc = new PdfDocument();
            PdfPageBase page = doc.Pages.Add();

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

            //保存并打开文档
            doc.SaveToFile("自定义图形.pdf");
            System.Diagnostics.Process.Start("自定义图形.pdf");

        }

        //自定义DrawStar方法绘制几个不同样式的五角星
        private static 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 / 5);
                float y = (float)Math.Sin(i * 2 * Math.PI / 5);
                points[i] = new PointF(x, y);
            }

            //创建PdfPath类,在顶点之间添加线段组成五角星
            PdfPath path = new PdfPath();
            path.AddLine(points[2], points[0]);
            path.AddLine(points[0], points[3]);
            path.AddLine(points[3], points[1]);
            path.AddLine(points[1], points[4]);
            path.AddLine(points[4], points[2]);

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

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

            //平移坐标
            page.Canvas.TranslateTransform(1f, 1.5f);

            //绘入第一个五角星
            page.Canvas.DrawPath(pen, path);

            //平移坐标并在新的位置绘入第二个五角星
            page.Canvas.TranslateTransform(2f, 0f);
            path.FillMode = PdfFillMode.Alternate;
            page.Canvas.DrawPath(pen, brush1, path);

            //平移坐标并在新的位置绘入第三个五角星
            page.Canvas.TranslateTransform(2f, 0f);
            path.FillMode = PdfFillMode.Winding;
            page.Canvas.DrawPath(pen, brush2, path);

            //实例化画刷3,平移坐标并在新的位置绘入第四个五角星
            PdfLinearGradientBrush brush3
                = new PdfLinearGradientBrush(new PointF(-2, 0), new PointF(2, 0), Color.OrangeRed, Color.Yellow);
            page.Canvas.TranslateTransform(-4f, 2f);
            path.FillMode = PdfFillMode.Alternate;
            page.Canvas.DrawPath(pen, brush3, path);

            //实例化画刷4,平移坐标并在新的位置绘入第五个五角星
            PdfRadialGradientBrush brush4
                = new PdfRadialGradientBrush(new PointF(0f, 0f), 0f, new PointF(0f, 0f), 1f, Color.Orchid, Color.LightBlue);
            page.Canvas.TranslateTransform(2f, 0f);
            path.FillMode = PdfFillMode.Winding;
            page.Canvas.DrawPath(pen, brush4, path);

            //实例化画刷5,平移坐标并在新的位置绘入第六个五角星
            PdfTilingBrush brush5 = new PdfTilingBrush(new RectangleF(0, 0, 4f, 4f));
            brush5.Graphics.DrawRectangle(brush3, 0, 0, 4f, 4f);
            page.Canvas.TranslateTransform(2f, 0f);
            path.FillMode = PdfFillMode.Winding;
            page.Canvas.DrawPath(pen, brush5, path);

            //再次保存画布状态
            page.Canvas.Restore(state);
        }
    }
}

 效果图:

 



 

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

 

【C#】

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

namespace CrearteSpotColor_PDF
{
    class Program
    {
        static void Main(string[] args)
        {
            //新建一个PDF文档
            PdfDocument doc = new PdfDocument();
            PdfPageBase page = doc.Pages.Add();

            //初始化一个PdfSeparationColorSpace的对象,用于创建基本色
            PdfSeparationColorSpace cs1 = new PdfSeparationColorSpace("MySpotColor", Color.DarkGreen);
            PdfSeparationColorSpace cs2 = new PdfSeparationColorSpace("MySpotColor", Color.Yellow);
            PdfSeparationColorSpace cs3 = new PdfSeparationColorSpace("MySpotColor", Color.DeepPink);

            //将基本色透明度设置为1
            PdfSeparationColor color1 = new PdfSeparationColor(cs1, 1f);
            PdfSeparationColor color2 = new PdfSeparationColor(cs2, 1f);
            PdfSeparationColor color3 = new PdfSeparationColor(cs3, 1f);
            //根据颜色创建画刷
            PdfSolidBrush brush1 = new PdfSolidBrush(color1);
            PdfSolidBrush brush2 = new PdfSolidBrush(color2);
            PdfSolidBrush brush3 = new PdfSolidBrush(color3);

            //绘入图形及文字并着色
            page.Canvas.DrawPie(brush1, 10, 30, 60, 60, 360, 360);
            page.Canvas.DrawPie(brush2, 10, 120, 60, 60, 360, 360);
            page.Canvas.DrawPie(brush3, 10, 210, 60, 60, 360, 360);
            page.Canvas.DrawString("透明度=1.0", new PdfTrueTypeFont(new Font("Arial Unicode MS", 10f), true), brush1, new PointF(16, 100));

            //将基本色透明度设置为0.5,并绘入图片及文字
            color1 = new PdfSeparationColor(cs1, 0.5f);
            brush1 = new PdfSolidBrush(color1);
            page.Canvas.DrawPie(brush1, 80, 30, 60, 60, 360, 360);
            color2 = new PdfSeparationColor(cs2, 0.5f);
            brush2 = new PdfSolidBrush(color2);
            page.Canvas.DrawPie(brush2, 80, 120, 60, 60, 360, 360);
            color3 = new PdfSeparationColor(cs3, 0.5f);
            brush3 = new PdfSolidBrush(color3);
            page.Canvas.DrawPie(brush3, 80, 210, 60, 60, 360, 360);

            page.Canvas.DrawString("透明度=0.5", new PdfTrueTypeFont(new Font("Arial Unicode MS", 10f), true), brush1, new PointF(86, 100));

            //将基本色透明度设置为0.25,并绘入图片及文字
            color1 = new PdfSeparationColor(cs1, 0.25f);
            brush1 = new PdfSolidBrush(color1);
            page.Canvas.DrawPie(brush1, 150, 30, 60, 60, 360, 360);
            color2 = new PdfSeparationColor(cs2, 0.25f);
            brush2 = new PdfSolidBrush(color2);
            page.Canvas.DrawPie(brush2, 150, 120, 60, 60, 360, 360);
            color3 = new PdfSeparationColor(cs3, 0.25f);
            brush3 = new PdfSolidBrush(color3);
            page.Canvas.DrawPie(brush3, 150, 210, 60, 60, 360, 360);
            page.Canvas.DrawString("透明度=0.25", new PdfTrueTypeFont(new Font("Arial Unicode MS", 10f), true), brush1, new PointF(156, 100));

            //保存并打开文档
            doc.SaveToFile("设置透明度.pdf");
            System.Diagnostics.Process.Start("设置透明度.pdf");
        }
    }
}

 效果图:



 

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

 

(本文完)

 

  • 大小: 66.4 KB
  • 大小: 60.2 KB
  • 大小: 69.3 KB
0
0
分享到:
评论

相关推荐

    C#绘制各种图形代码

    C# 绘制各种图形代码

    C#矢量图形绘制软件——源码程序

    图形操作:选择、修改图形要素、修改图形要素大小、修改、undo、redo、旋转、移动旋转图形、复制、粘贴、剪切、编辑文字、修改线型(端点/中间加图形)、修改图形要素属性、上移、下移等操作。 事件:图形要素...

    C# 绘制统计图形

    在C#编程环境中,绘制统计图形是一项常见的任务,特别是在数据可视化和分析中。C#提供了多种方式来创建柱状图、曲线图和饼状图,这些图表有助于将复杂的数据以直观的方式呈现出来。下面我们将详细探讨如何使用C#实现...

    C#绘制图形,绘制一个扇形

    在C#编程环境中,我们可以利用GDI+(Graphics Device Interface Plus)库来绘制各种图形,包括扇形。GDI+是.NET Framework的一部分,提供了一系列的类和方法,用于创建和控制图形。本篇将深入探讨如何使用C#绘制扇形...

    C#二维三维图形绘制工程实例宝典

    本书名为《C#二维三维图形绘制工程实例宝典》,是关于C#语言在图形绘制领域应用的综合性参考书籍。它详细地介绍了C#编程语言在处理二维和三维图形时的相关技术和工程实现方法。书籍内容由浅入深,共分为五个部分,...

    c# 绘制可拖动可平移图形

    在C#编程中,"绘制可拖动可平移图形"是一个常见的需求,尤其是在开发桌面应用或者游戏时。本教程将深入讲解如何实现这个功能,包括如何使用鼠标事件来绘制图形,以及如何实现图形的拖动和平移操作。 首先,我们需要...

    c#支持透明背景的trackbar控件

    3. `TrackDrawModeEditor.cs`:这个文件可能包含了一个自定义编辑器,用于在Visual Studio的设计环境中方便地配置TrackBar的绘制模式,可能包括其透明度和背景样式。 4. `TrackBarDrawItemEventArgs.cs`:这个文件...

    c#绘制图形及其简单操作

    本教程将深入探讨如何使用C#进行基本图形绘制,如矩形、圆形、直线,以及对这些图形进行选择、拉伸、缩放和平移的操作,并涉及直线的裁剪处理。 首先,让我们了解如何绘制基本图形。在C#中,我们通常在控件如...

    C#绘制图形和统计图

    在C#编程中,绘制图形和统计图是数据可视化的重要组成部分。这通常涉及到Windows Forms、WPF或ASP.NET等框架的应用,以及使用如GDI+(Graphics Device Interface Plus)这样的图形库。本教程将深入探讨如何在C#环境...

    纯C#矢量图形绘制系统

    这些API提供了丰富的函数来绘制直线、曲线、填充区域等,并支持颜色、透明度和样式设置。 4. **鼠标交互**:用户界面是这类系统的重要组成部分,鼠标交互功能允许用户选择、修改和查看图形。在C#中,事件处理机制如...

    C#实现各种二维图形绘制

    在本教程中,我们将深入探讨如何使用C#来绘制这些基本图形,并实现不闪烁的效果,以提供更流畅的用户体验。 首先,要绘制图形,我们需要创建一个`Graphics`对象,它可以获取到一个窗口或图像的绘图表面。这通常可以...

    c#自定义漂亮按钮

    3. **绘制自定义按钮**: C#中的控件可以通过重写`OnPaint`事件来改变其默认的绘制方式。为了显示自定义的背景图片,我们需要在`OnPaint`事件处理程序中使用`Graphics`对象来绘制图片。此外,可能还需要处理鼠标...

    初学C#编写的绘制基本图形的小程序

    本项目“初学C#编写的绘制基本图形的小程序”是一个很好的起点,它教你如何利用C#来实现图形界面(GUI)并进行基本的图形绘制与操作。 首先,我们来探讨C#中的图形绘制。在C#中,我们可以使用Windows Presentation ...

    C# 绘制八边形图形窗体

    总结来说,C#绘制八边形图形窗体涉及Windows Forms的图形绘制、窗体事件以及可能的自定义区域操作。通过以上步骤,你可以创建一个不仅能够显示八边形,还能实现变形效果的窗体。这为开发具有视觉吸引力和独特交互性...

    c#自定义透明按钮控件

    总结起来,"c#自定义透明按钮控件"是C#编程中的一个实践案例,它展示了如何通过继承和自定义绘制来扩展系统控件,以满足特定设计或交互需求。通过这种方式,开发者可以创建出既美观又符合应用风格的用户界面。

    C#的GDI+绘制图形分层拖放操作源码

    在C#中,可以使用`Graphics`对象和自定义的图形类来实现这一功能,通过维护一个图形对象的列表,按照层的顺序进行绘制。 拖放操作是用户界面中的常见功能,它允许用户通过鼠标将一个图形元素从一处拖到另一处。在...

    C#绘制各种图形代码.pdf

    这个C#代码示例是关于在.NET环境中利用GDI+(Graphics Device Interface Plus)进行图形绘制的。GDI+是Windows应用程序用来创建和操作图形的一种API。在这个例子中,主要展示了如何创建和操作颜色、绘制矩形、以及...

    C#绘制坐标轴 C#绘制坐标轴 C#绘制坐标轴

    在C#编程中,绘制坐标轴是创建图形用户界面(GUI)或数据分析应用时常见的需求。这涉及到在窗口上画出X轴和Y轴,通常用于表示数据的二维分布。以下将详细介绍C#中如何实现这个功能,并提供相关知识点。 首先,C#中...

    C#绘制图形

    在C#中,绘制图形是一项基础且强大的功能,它允许开发者创建自定义的用户界面、设计复杂的图表或者进行游戏开发等。本主题将深入探讨C#绘图的基础知识,包括如何使用GDI+(Graphics Device Interface Plus)库,以及...

Global site tag (gtag.js) - Google Analytics