VintaSoft Imaging .NET SDK 15.2: Документация для .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

Пример

Вот 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 11; .NET 10; .NET 9; .NET 8; .NET 6; .NET Framework 4.8, 4.7, 4.6, 4.5, 4.0, 3.5

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