Modifier le contenu d'une page PDF dans une visionneuse WinForms/WPF

Catégorie du blog: PDF.NET

20.01.2022

VintaSoft Imaging .NET SDK offre de nombreuses fonctionnalités pour la modification de documents PDF dans une visionneuse WinForms/WPF:


Les capacités d'édition visuelle de documents PDF sont démontrées dans les applications de démonstration VintaSoft PDF Editor Demo (WinForms) et VintaSoft WPF PDF Editor Demo (WPF).

Cet article présente les fonctionnalités de modification visuelle du contenu des documents PDF dans une visionneuse WinForms/WPF.



Modifier le contenu d'une page PDF dans la visionneuse WinForms/WPF


Contrôle WinForms ImageViewer permet d'afficher les pages d'un document PDF dans une application WinForms. Le contrôle ImageViewer peut utiliser l'outil visuel PdfContentEditorTool permet de modifier le contenu des pages PDF dans la visionneuse.
Contrôle WPF WpfImageViewer permet d'afficher les pages d'un document PDF dans une application WPF. Le contrôle WpfImageViewer peut utiliser l'outil visuel WpfPdfContentEditorTool pour la modification du contenu des pages PDF dans la visionneuse.

Voici le code qui crée ImageViewer avec PdfContentEditorTool pour afficher et modifier le contenu des pages PDF dans une application WinForms:
// 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));
    }
}



Fonctionnalités générales pour la modification du contenu d'une page PDF dans la visionneuse WinForms/WPF

Le SDK peut diviser le contenu d'une page PDF en figures graphiques:
PdfContentEditorTool / WpfPdfContentEditorTool permet d'afficher et de modifier des figures graphiques sur une page PDF dans la visionneuse.

PdfContentEditorTool / WpfPdfContentEditorTool permet de:
Voici une capture d'écran de l'application PdfEditorDemo, qui représente la vue principale de l'éditeur visuel de contenu PDF dans PdfEditorDemo (chaque chiffre correspond à la liste ci-dessus):




Modifier le texte enrichi sur une page PDF dans la visionneuse WinForms/WPF

Le SDK fournit la classe OfficeDocumentVisualEditor qui représente l'éditeur de texte enrichi dans la visionneuse WinForms/WPF.
PdfContentEditorTool / WpfPdfContentEditorTool utilise l'éditeur de texte enrichi (OfficeDocumentVisualEditor) pour l'édition d'un objet de type " Groupe de contenu texte " (ContentStreamGraphicsFigureTextGroup) sur une page PDF dans la visionneuse.

Le processus d'édition de l'objet texte sélectionné peut être lancé de plusieurs manières:
L'éditeur de texte enrichi (OfficeDocumentVisualEditor) permet de:
Voici une capture d'écran de l'application PdfEditorDemo, qui illustre les propriétés du texte et des paragraphes lors de la modification du texte enrichi:



Voici une capture d'écran de l'application PdfEditorDemo, qui illustre le bloc de texte modifié:




Modifier les graphiques vectoriels sur une page PDF dans la visionneuse WinForms/WPF

PdfContentEditorTool / WpfPdfContentEditorTool permet d'utiliser la souris pour transformer, copier et modifier des graphiques vectoriels sur une page PDF dans la visionneuse WinForms/WPF.

Voici une capture d'écran de l'application PdfEditorDemo, qui illustre comment sélectionner et transformer une figure graphique vectorielle sur une page PDF:



La méthode PdfContentEditorTool.SetContentGraphicsProperties permet de définir l'état graphique de la figure graphique.

Voici une capture d'écran de l'application PdfEditorDemo, qui montre comment dissocier des figures et modifier les propriétés graphiques d'une figure vectorielle sur une page PDF:




Remplacer une image ou un formulaire sur une page PDF dans la visionneuse WinForms/WPF

Une image ou un formulaire existant sur une page PDF dans la visionneuse WinForms/WPF peut être remplacé à l'aide de la méthode PdfContentEditorTool.ReplaceResource.

Voici une capture d'écran de l'application PdfEditorDemo, qui montre une boîte de dialogue contenant des informations sur la ressource image de l'image sélectionnée sur la page PDF:


Voici une capture d'écran de l'application PdfEditorDemo, qui montre comment créer une nouvelle ressource image à partir d'un fichier image et l'utiliser comme ressource image pour l'image sélectionnée sur la page PDF:


Voici une capture d'écran de l'application PdfEditorDemo, qui affiche l'image modifiée sur la page PDF:




Créer, modifier et supprimer la zone de détourage d'une figure sur une page PDF dans la visionneuse WinForms/WPF

Une nouvelle zone de détourage peut être ajoutée à n'importe quelle figure sur une page PDF à l'aide de la méthode PdfContentEditorTool.AddFigureClip.

Voici une capture d'écran de l'application PdfEditorDemo, qui montre comment définir la zone de détourage elliptique d'une image sur une page PDF:



Une zone de détourage existante pour n'importe quelle figure sur une page PDF peut être sélectionnée, modifiée ou supprimée à l'aide de la souris.

Voici une capture d'écran de l'application PdfEditorDemo, qui montre la transformation de la zone de détourage d'une image sur une page PDF:




Ajouter des graphiques à une page PDF dans la visionneuse WinForms/WPF

L'outil PdfContentEditorTool permet d'ajouter les figures graphiques suivantes sur une page PDF:
La méthode PdfContentEditorTool.AddFigure permet d'ajouter une figure graphique sur une page PDF.

La méthode PdfContentEditorTool.StartBuildFigure permet de commencer la construction d'une figure graphique sur une page PDF à l'aide de la souris.

Voici une capture d'écran de L'application PdfEditorDemo montre comment ajouter des graphiques à une page PDF:




Ajouter des graphiques à une page PDF dans la visionneuse WinForms/WPF

Le SDK fournit OfficeDocumentFigure classe qui permet de dessiner une page DOCX sur une page PDF.
L'application de démonstration "PDF Editor Demo" montre comment ajouter une page DOCX contenant un graphique à une page PDF (ajouter/créer une OfficeDocumentFigure sur une page PDF à l'aide de PdfContentEditorTool.AddFigure / PdfContentEditorTool.StartBuildFigure méthode).

Voici une capture d'écran de l'application PdfEditorDemo, qui montre comment sélectionner un graphique à ajouter à une page PDF:



L'application PDF Editor Demo montre également comment modifier les données du graphique et visualiser les modifications du graphique sur la page PDF dans la visionneuse.

Voici une capture d'écran de l'application PdfEditorDemo, qui montre comment sélectionner un graphique sur une page PDF et modifier ses propriétés:




Configuration requise pour la modification du contenu d'une page PDF dans une visionneuse WinForms/WPF

Pour modifier le contenu d'une page PDF dans une visionneuse WinForms/WPF, les produits VintaSoft suivants sont nécessaires: