Класс PdfContentGraphicsFigureEditor
В этом разделе
Позволяет редактировать содержимое PDF, которое представлено коллекцией объектов
ContentStreamGraphicsFigure.
Объектная модель
Синтаксис
'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
Смотрите также