VintaSoft Imaging .NET SDK 14.0: Документация для .NET разработчика
Vintasoft.Imaging.Pdf.Drawing Namespace / PdfDrawingEngine Class
Члены типа Объект Синтаксис Example Иерархия Требования Смотрите также
В этом разделе
    Класс PdfDrawingEngine
    В этом разделе
    Предоставляет механизм рисования, основанный на поверхности рисования PDF.
    Объектная модель
    PdfCompressionSettings PdfGraphics Resolution AffineMatrix IRegion DrawingFactory PdfDrawingEngine
    Синтаксис
    'Declaration
    
    Public Class PdfDrawingEngine
       Inherits Vintasoft.Imaging.Drawing.DrawingEngine
    
    
    public class PdfDrawingEngine : Vintasoft.Imaging.Drawing.DrawingEngine
    
    
    public __gc class PdfDrawingEngine : public Vintasoft.Imaging.Drawing.DrawingEngine*
    
    
    public ref class PdfDrawingEngine : public Vintasoft.Imaging.Drawing.DrawingEngine^
    
    
    Пример

    Вот C#/VB.NET код, который демонстрирует, как создать поверхность чертежа PDF и использовать созданный движок чертежа для рисования различных графических объектов (рисунков и текста).

    
    Imports System.Drawing
    
    Imports Vintasoft.Imaging
    Imports Vintasoft.Imaging.Drawing
    Imports Vintasoft.Imaging.Pdf
    Imports Vintasoft.Imaging.Pdf.Drawing
    Imports Vintasoft.Imaging.Pdf.Tree
    
    Class PdfDrawingEngineExample
        ''' <summary>
        ''' Creates PDF drawing engine on specified PDF page and performs drawing.
        ''' </summary>
        ''' <param name="width">PDF page width.</param>
        ''' <param name="height">PDF page height.</param>
        ''' <param name="resultImagePath">A path to save the drawing result.</param>
        Public Shared Sub DrawWithPdfDrawingEngine(width As Integer, height As Integer, resultImagePath As String)
            ' create empty PDF document
            Using document As New PdfDocument()
                ' page size
                Dim pageSize As New RectangleF(0, 0, width, height)
                ' create new page of specified size
                Dim page As New PdfPage(document, pageSize)
                ' add page to a PDF document
                document.Pages.Add(page)
    
                ' create graphics from PDF page
                Using graphics As PdfGraphics = PdfGraphics.FromPage(page)
                    ' create drawing engine
                    Using drawingEngine As New PdfDrawingEngine(graphics, True)
                        ' create drawing area
                        Dim drawingArea As New RectangleF(0, 0, width, height)
                        ' draw objects
                        DrawingExample(drawingEngine, drawingArea)
                    End Using
                End Using
    
                ' save document
                document.Save(resultImagePath)
            End Using
        End Sub
    
        ''' <summary>
        ''' Draws graphic objects using specified drawing engine.
        ''' </summary>
        ''' <param name="drawingEngine">Drawing engine.</param>
        ''' <param name="drawingArea">Image area to draw objects in.</param>
        Public Shared Sub DrawingExample(drawingEngine As DrawingEngine, drawingArea As RectangleF)
            ' create bounding rectangle for ellipse
            Dim ellipseRect As New RectangleF(drawingArea.X + drawingArea.Width * 0.3F, drawingArea.Y + drawingArea.Height * 0.3F, drawingArea.Width * 0.4F, drawingArea.Height * 0.4F)
    
            ' create brush and pen to draw ellipse
            Using brush As IDrawingSolidBrush = drawingEngine.DrawingFactory.CreateSolidBrush(Color.Blue)
                Using pen As IDrawingPen = drawingEngine.DrawingFactory.CreatePen(Color.Red, 4F)
                    ' fill ellipse
                    drawingEngine.FillEllipse(brush, ellipseRect)
                    ' stroke ellipse
                    drawingEngine.DrawEllipse(pen, ellipseRect)
                End Using
            End Using
    
            ' create brush and font to draw text
            Using textBrush As IDrawingSolidBrush = drawingEngine.DrawingFactory.CreateSolidBrush(Color.Yellow)
                Using font As IDrawingFont = drawingEngine.DrawingFactory.CreateFont("Arial", 30, True, False)
                    ' create properties to layout text
                    Dim layoutProperties As New TextLayoutProperties(AnchorType.Center)
                    ' draw text
                    drawingEngine.DrawText("Text", font, textBrush, ellipseRect, layoutProperties)
                End Using
            End Using
        End Sub
    End Class
    
    
    
    using System.Drawing;
    
    using Vintasoft.Imaging;
    using Vintasoft.Imaging.Drawing;
    using Vintasoft.Imaging.Pdf;
    using Vintasoft.Imaging.Pdf.Drawing;
    using Vintasoft.Imaging.Pdf.Tree;
    
    namespace CSHARP
    {
        class PdfDrawingEngineExample
        {
            /// <summary>
            /// Creates PDF drawing engine on specified PDF page and performs drawing.
            /// </summary>
            /// <param name="width">PDF page width.</param>
            /// <param name="height">PDF page height.</param>
            /// <param name="resultImagePath">A path to save the drawing result.</param>
            public static void DrawWithPdfDrawingEngine(int width, int height, string resultImagePath)
            {
                // create empty PDF document
                using (PdfDocument document = new PdfDocument())
                {
                    // page size
                    RectangleF pageSize = new RectangleF(0, 0, width, height);
                    // create new page of specified size
                    PdfPage page = new PdfPage(document, pageSize);
                    // add page to a PDF document
                    document.Pages.Add(page);
    
                    // create graphics from PDF page
                    using (PdfGraphics graphics = PdfGraphics.FromPage(page))
                    // create drawing engine
                    using (PdfDrawingEngine drawingEngine = new PdfDrawingEngine(graphics, true))
                    {
                        // create drawing area
                        RectangleF drawingArea = new RectangleF(0, 0, width, height);
                        // draw objects
                        DrawingExample(drawingEngine, drawingArea);
                    }
    
                    // save document
                    document.Save(resultImagePath);
                }
            }
    
            /// <summary>
            /// Draws graphic objects using specified drawing engine.
            /// </summary>
            /// <param name="drawingEngine">Drawing engine.</param>
            /// <param name="drawingArea">Image area to draw objects in.</param>
            public static void DrawingExample(DrawingEngine drawingEngine, RectangleF drawingArea)
            {
                // create bounding rectangle for ellipse
                RectangleF ellipseRect = new RectangleF(
                    drawingArea.X + drawingArea.Width * 0.3f,
                    drawingArea.Y + drawingArea.Height * 0.3f,
                    drawingArea.Width * 0.4f,
                    drawingArea.Height * 0.4f);
    
                // create brush and pen to draw ellipse
                using (IDrawingSolidBrush brush = drawingEngine.DrawingFactory.CreateSolidBrush(Color.Blue))
                {
                    using (IDrawingPen pen = drawingEngine.DrawingFactory.CreatePen(Color.Red, 4f))
                    {
                        // fill ellipse
                        drawingEngine.FillEllipse(brush, ellipseRect);
                        // stroke ellipse
                        drawingEngine.DrawEllipse(pen, ellipseRect);
                    }
                }
    
                // create brush and font to draw text
                using (IDrawingSolidBrush textBrush = drawingEngine.DrawingFactory.CreateSolidBrush(Color.Yellow))
                {
                    using (IDrawingFont font = drawingEngine.DrawingFactory.CreateFont("Arial", 30, true, false))
                    {
                        // create properties to layout text
                        TextLayoutProperties layoutProperties = new TextLayoutProperties(AnchorType.Center);
                        // draw text
                        drawingEngine.DrawText("Text", font, textBrush, ellipseRect, layoutProperties);
                    }
                }
            }
        }
    }
    
    

    Иерархия наследования

    System.Object
       Vintasoft.Imaging.Drawing.DrawingEngine
          Vintasoft.Imaging.Pdf.Drawing.PdfDrawingEngine

    Требования

    Целевые платформы: .NET 8; .NET 7; .NET 6; .NET Framework 4.8, 4.7, 4.6, 4.5, 4.0, 3.5

    Смотрите также