VintaSoft Imaging .NET SDK 14.0: Документация для .NET разработчика
Vintasoft.Imaging.Pdf.Content Namespace / PdfContentGraphicsFigureEditor Class
    Класс PdfContentGraphicsFigureEditor
    В этом разделе
    Позволяет редактировать содержимое PDF, которое представлено коллекцией объектов ContentStreamGraphicsFigure.
    Объектная модель
    PdfContentGraphicsFigureEditor
    Синтаксис
    'Declaration
    
    Public Class PdfContentGraphicsFigureEditor
    
    
    public class PdfContentGraphicsFigureEditor
    
    
    public __gc class PdfContentGraphicsFigureEditor
    
    
    public ref class PdfContentGraphicsFigureEditor
    
    
    Ремарки

    Редактор позволяет выполнять следующие операции:

    Пример

    Вот пример, показывающий, как изменить расположение указанного ресурса на PDF странице:

    
    ''' <summary>
    ''' Sets the resource location on PDF page.
    ''' </summary>
    ''' <param name="inPdfFilename">The filename of input PDF document.</param>
    ''' <param name="outPdfFilename">The filename of output PDF document.</param>
    ''' <param name="pageIndex">Index of the PDF page.</param>
    ''' <param name="resourceIndex">Index of the resource on PDF page.</param>
    ''' <param name="newLocation">The new location in PDF page space.</param>
    Public Shared Sub SetResourceLocation(inPdfFilename As String, outPdfFilename As String, pageIndex As Integer, resourceIndex As Integer, newLocation As System.Drawing.PointF)
        ' open PDF document
        Using document As New Vintasoft.Imaging.Pdf.PdfDocument(inPdfFilename)
            ' create PdfContentGraphicsFigureEditor on specified PDF page
            Using contentEditor As New Vintasoft.Imaging.Pdf.Content.PdfContentGraphicsFigureEditor(document.Pages(pageIndex), False)
                Dim currentResourceIndex As Integer = 0
                ' for each graphics figure on PDF page
                For Each figure As Vintasoft.Imaging.Pdf.Drawing.GraphicsFigures.ContentStreamGraphicsFigure In contentEditor.GraphicsFigures
                    ' if graphics figure has resource
                    If figure.Resource IsNot Nothing Then
                        ' if this is graphics figure that should be changed
                        If currentResourceIndex = resourceIndex Then
                            ' get the bounding box of graphics figure
                            Dim resourceBBox As System.Drawing.RectangleF = figure.GetRegion().Bounds
                            ' create transformation that changes coordinates of object
                            Dim transform As Vintasoft.Imaging.AffineMatrix = Vintasoft.Imaging.AffineMatrix.CreateTranslation(newLocation.X - resourceBBox.X, newLocation.Y - resourceBBox.Y)
                            ' apply transformation to the graphics figure
                            contentEditor.Transform(figure, transform)
                            Exit For
                        End If
    
                        currentResourceIndex += 1
                    End If
                Next
                If currentResourceIndex <> resourceIndex Then
                    Throw New System.IndexOutOfRangeException(String.Format("Resource with index {0} was not found", resourceIndex))
                End If
            End Using
    
            ' save PDF document to a new file
            document.Save(outPdfFilename)
        End Using
    End Sub
    
    
    
    /// <summary>
    /// Sets the resource location on PDF page.
    /// </summary>
    /// <param name="inPdfFilename">The filename of input PDF document.</param>
    /// <param name="outPdfFilename">The filename of output PDF document.</param>
    /// <param name="pageIndex">Index of the PDF page.</param>
    /// <param name="resourceIndex">Index of the resource on PDF page.</param>
    /// <param name="newLocation">The new location in PDF page space.</param>
    public static void SetResourceLocation(string inPdfFilename, string outPdfFilename, int pageIndex, int resourceIndex, System.Drawing.PointF newLocation)
    {
        // open PDF document
        using (Vintasoft.Imaging.Pdf.PdfDocument document = new Vintasoft.Imaging.Pdf.PdfDocument(inPdfFilename))
        {
            // create PdfContentGraphicsFigureEditor on specified PDF page
            using (Vintasoft.Imaging.Pdf.Content.PdfContentGraphicsFigureEditor contentEditor =
                new Vintasoft.Imaging.Pdf.Content.PdfContentGraphicsFigureEditor(document.Pages[pageIndex], false))
            {
                int currentResourceIndex = 0;
                // for each graphics figure on PDF page
                foreach (Vintasoft.Imaging.Pdf.Drawing.GraphicsFigures.ContentStreamGraphicsFigure figure in contentEditor.GraphicsFigures)
                {
                    // if graphics figure has resource
                    if (figure.Resource != null)
                    {
                        // if this is graphics figure that should be changed
                        if (currentResourceIndex == resourceIndex)
                        {
                            // get the bounding box of graphics figure
                            System.Drawing.RectangleF resourceBBox = figure.GetRegion().Bounds;
                            // create transformation that changes coordinates of object
                            Vintasoft.Imaging.AffineMatrix transform = Vintasoft.Imaging.AffineMatrix.CreateTranslation(newLocation.X - resourceBBox.X, newLocation.Y - resourceBBox.Y);
                            // apply transformation to the graphics figure
                            contentEditor.Transform(figure, transform);
                            break;
                        }
    
                        currentResourceIndex++;
                    }
                }
                if (currentResourceIndex != resourceIndex)
                    throw new System.IndexOutOfRangeException(string.Format("Resource with index {0} was not found", resourceIndex));
            }
            
            // save PDF document to a new file
            document.Save(outPdfFilename);
        }
    }
    
    

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

    System.Object
       Vintasoft.Imaging.Pdf.Content.PdfContentGraphicsFigureEditor

    Требования

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

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