Bearbeiten des Inhalts einer PDF-Seite im WinForms-/WPF-Viewer

Blogkategorie: PDF ; .NET

20.01.2022

Das VintaSoft Imaging .NET SDK bietet umfangreiche Funktionen zum Bearbeiten von PDF-Dokumenten im WinForms-/WPF-Viewer:


Die Möglichkeiten der visuellen Bearbeitung von PDF-Dokumenten werden in den Demoanwendungen VintaSoft PDF Editor Demo (WinForms) und VintaSoft WPF PDF Editor Demo (WPF) demonstriert.

Dieser Artikel bietet einen Überblick über die Funktionen zur visuellen Bearbeitung von PDF-Dokumentinhalten im WinForms-/WPF-Viewer.



PDF-Seiteninhalte im WinForms/WPF-Viewer bearbeiten


Das WinForms-Steuerelement ImageViewer ermöglicht die Anzeige von Seiten eines PDF-Dokuments in einer WinForms-Anwendung. Das ImageViewer-Steuerelement kann das visuelle Werkzeug PdfContentEditorTool zur Bearbeitung des PDF-Seiteninhalts im Viewer verwenden.
Das WPF-Steuerelement WpfImageViewer ermöglicht die Anzeige von Seiten eines PDF-Dokuments in einer WPF-Anwendung. Es kann das visuelle Werkzeug WpfPdfContentEditorTool zur Bearbeitung des PDF-Seiteninhalts im Viewer verwenden.

Hier ist der Code, der einen ImageViewer mit einem PdfContentEditorTool zum Anzeigen und Bearbeiten von PDF-Seiteninhalten in einer WinForms-Anwendung erstellt:
// The project, which uses this code, must have references to the following assemblies:
// - Vintasoft.Imaging
// - Vintasoft.Imaging.UI
// - Vintasoft.Imaging.Office.OpenXml
// - Vintasoft.Imaging.Office.OpenXml.UI
// - Vintasoft.Imaging.Pdf
// - Vintasoft.Imaging.Pdf.UI
// - Vintasoft.Imaging.Pdf.Office.UI

public partial class FormWithPdfEditorTool : System.Windows.Forms.Form
{
    //...
    Vintasoft.Imaging.UI.ImageViewer _imageViewer;
    //...

    /// <summary>
    /// The PDF content editor tool.
    /// </summary>
    Vintasoft.Imaging.Pdf.UI.PdfContentEditorTool _contentEditorTool;

    /// <summary>
    /// The undo manager.
    /// </summary>
    Vintasoft.Imaging.Undo.UndoManager _undoManager = new Vintasoft.Imaging.Undo.UndoManager(20);

    public FormWithPdfEditorTool()
    {
        //...
        // initialize Vintasoft.Imaging.Pdf.Office.UI assembly
        Vintasoft.Imaging.PdfOfficeUIAssembly.Init();

        // create visual tool that allows to edit content on PDF page
        _contentEditorTool = new Vintasoft.Imaging.Pdf.UI.PdfContentEditorTool();

        // specify that PDF content editor tool should add and edit content on PDF page
        _contentEditorTool.AppendMode = false;

        // specify that PDF content editor tool should highlight content figures
        _contentEditorTool.FiguresHighlight = true;

        // specify that PDF content editor tool should not render figures on PDF page when current page is changed in image viewer
        _contentEditorTool.RenderFiguresWhenImageIndexChanging = false;
        
        // specify that PDF content editor tool should render figures on PDF page when PDF content editor tool is deactivating
        _contentEditorTool.RenderFiguresWhenDeactivating = true;

        // specify undo manager for PDF content editor tool
        _contentEditorTool.UndoManager = _undoManager;

        // specify that PDF content editor tool should work only with content of specified types
        _contentEditorTool.InteractiveContentType =
            Vintasoft.Imaging.Pdf.Drawing.GraphicsFigures.GraphicsFigureContentType.Text |
            Vintasoft.Imaging.Pdf.Drawing.GraphicsFigures.GraphicsFigureContentType.Image |
            Vintasoft.Imaging.Pdf.Drawing.GraphicsFigures.GraphicsFigureContentType.Form |
            Vintasoft.Imaging.Pdf.Drawing.GraphicsFigures.GraphicsFigureContentType.StrokePath |
            Vintasoft.Imaging.Pdf.Drawing.GraphicsFigures.GraphicsFigureContentType.FillPath;

        // create visual tool that allows to edit text in text content on PDF page
        Vintasoft.Imaging.Office.OpenXml.UI.VisualTools.UserInteraction.OfficeDocumentVisualEditorTextTool contentEditorTextTool =
            new Vintasoft.Imaging.Office.OpenXml.UI.VisualTools.UserInteraction.OfficeDocumentVisualEditorTextTool();

        // create the composite visual tool and set it as a current tool of image viewer
        _imageViewer.VisualTool = new Vintasoft.Imaging.UI.VisualTools.CompositeVisualTool(contentEditorTextTool, _contentEditorTool);
    }

    //...

    private void drawEllipseToolStripButton_Click(object sender, System.EventArgs e)
    {
        // start building an ellipse
        _contentEditorTool.StartBuildEllipse(
            new Vintasoft.Imaging.Pdf.Drawing.PdfPen(System.Drawing.Color.Red, 5),
            new Vintasoft.Imaging.Pdf.Drawing.PdfBrush(System.Drawing.Color.Green));
    }
}



Allgemeine Funktionen zum Bearbeiten von PDF-Seiteninhalten im WinForms/WPF-Viewer

Das SDK kann PDF-Seiteninhalte in die folgenden grafischen Elemente unterteilen:
Das PdfContentEditorTool / WpfPdfContentEditorTool ermöglicht das Anzeigen und Bearbeiten von Grafiken auf PDF-Seiten im Viewer.

Das PdfContentEditorTool / WpfPdfContentEditorTool ermöglicht Folgendes:
Hier ist ein Screenshot der Anwendung PdfEditorDemo, der die Hauptansicht des visuellen PDF-Inhaltseditors in PdfEditorDemo darstellt (jede Ziffer entspricht der obigen Liste):




Bearbeiten von Rich Text auf einer PDF-Seite im WinForms/WPF-Viewer

Das SDK stellt die Klasse OfficeDocumentVisualEditor bereit, die den Rich-Text-Editor im WinForms/WPF-Viewer repräsentiert.
PdfContentEditorTool / WpfPdfContentEditorTool verwendet den Rich-Text-Editor (OfficeDocumentVisualEditor) zum Bearbeiten von Objekten vom Typ "Textinhaltsgruppe". (ContentStreamGraphicsFigureTextGroup) auf der PDF-Seite im Viewer.

Die Bearbeitung des ausgewählten Textobjekts kann auf verschiedene Arten gestartet werden:
Der Rich-Text-Editor (OfficeDocumentVisualEditor) ermöglicht Folgendes:
Hier ist ein Screenshot der Anwendung PdfEditorDemo, der die Text- und Absatzeigenschaften beim Bearbeiten von formatiertem Text zeigt:



Hier ist ein Screenshot der Anwendung PdfEditorDemo, der den bearbeiteten Textblock zeigt:




Vektorgrafiken auf einer PDF-Seite im WinForms/WPF-Viewer bearbeiten

PdfContentEditorTool / WpfPdfContentEditorTool ermöglicht die Verwendung der Maus zum Transformieren, Kopieren und Ändern von Vektorgrafiken auf einer PDF-Seite im WinForms/WPF-Viewer.

Hier ist ein Screenshot der Anwendung PdfEditorDemo, der zeigt, wie man Vektorgrafiken auf einer PDF-Seite auswählt und transformiert:



Die Methode PdfContentEditorTool.SetContentGraphicsProperties ermöglicht das Festlegen des Grafikstatus einer Grafikfigur.

Hier ist ein Screenshot der Anwendung PdfEditorDemo, der zeigt, wie man Figuren gruppiert und die Grafikeigenschaften von Vektorgrafiken auf einer PDF-Seite ändert:




Bild oder Formular auf einer PDF-Seite im WinForms/WPF-Viewer ersetzen

Ein vorhandenes Bild oder Formular auf einer PDF-Seite im WinForms/WPF-Viewer kann mithilfe der Methode PdfContentEditorTool.ReplaceResource ersetzt werden.

Hier ist ein Screenshot von Die Anwendung PdfEditorDemo zeigt einen Dialog mit Informationen zur Bildressource des ausgewählten Bildes auf einer PDF-Seite:


Hier ist ein Screenshot der Anwendung PdfEditorDemo, der zeigt, wie eine neue Bildressource aus einer Bilddatei erstellt und als Bildressource für das ausgewählte Bild auf der PDF-Seite verwendet wird:


Hier ist ein Screenshot der Anwendung PdfEditorDemo, der das geänderte Bild auf der PDF-Seite anzeigt:




Erstellen, Ändern und Löschen des Beschneidungsbereichs für Abbildungen auf PDF-Seiten im WinForms/WPF-Viewer

Ein neuer Clipping-Bereich kann jeder Abbildung auf einer PDF-Seite mit Hilfe der Methode PdfContentEditorTool.AddFigureClip hinzugefügt werden.

Hier ist ein Screenshot der Anwendung PdfEditorDemo, der zeigt, wie der elliptische Beschneidungsbereich für ein Bild auf einer PDF-Seite festgelegt wird:



Ein vorhandener Beschneidungsbereich für eine beliebige Abbildung auf einer PDF-Seite kann mit der Maus ausgewählt, transformiert oder gelöscht werden.

Hier ist ein Screenshot der Anwendung PdfEditorDemo, der die Transformation des Bildausschnittbereichs auf einer PDF-Seite demonstriert:




Grafiken in WinForms/WPF-Viewer auf PDF-Seite hinzufügen

Das PdfContentEditorTool ermöglicht das Hinzufügen der folgenden grafischen Elemente zu einer PDF-Seite:
Die Methode PdfContentEditorTool.AddFigure ermöglicht das Hinzufügen von Grafiken zu einer PDF-Seite.

Die Methode PdfContentEditorTool.StartBuildFigure ermöglicht es, mit der Maus den Aufbau einer grafischen Figur auf einer PDF-Seite zu starten.

Hier ist ein Screenshot der Anwendung PdfEditorDemo, der zeigt, wie man Grafiken auf eine PDF-Seite hinzufügt:




Diagramme in WinForms/WPF-Viewer auf PDF-Seite hinzufügen

Das SDK stellt die Klasse OfficeDocumentFigure OfficeDocumentFigure bereit, mit der sich eine DOCX-Seite auf einer PDF-Seite zeichnen lässt.
Die PDF-Editor-Demo zeigt, wie man eine DOCX-Seite mit Diagramm in eine PDF-Seite einfügt (hinzufügen/erstellen OfficeDocumentFigure auf der PDF-Seite mithilfe der Methode PdfContentEditorTool.AddFigure / PdfContentEditorTool.StartBuildFigure).

Hier ist ein Screenshot der Anwendung PdfEditorDemo, der zeigt, wie man ein Diagramm zum Hinzufügen auf eine PDF-Seite auswählt:



Die PDF Editor Demo zeigt auch, wie man die Diagrammdaten ändert und die Diagrammänderungen im Viewer auf der PDF-Seite anzeigt.

Hier ist ein Screenshot der Anwendung PdfEditorDemo, der zeigt, wie Sie das Diagramm auf einer PDF-Seite auswählen und dessen Eigenschaften bearbeiten:




Anforderungen für die Bearbeitung von PDF-Seiteninhalten im WinForms/WPF-Viewer

Wenn Sie PDF-Seiteninhalte im WinForms/WPF-Viewer bearbeiten möchten, benötigen Sie die folgenden VintaSoft-Produkte: