Modifica il contenuto della pagina PDF nel visualizzatore WinForms/WPF

Categoria del blog: PDF.NET

20.01.2022

VintaSoft Imaging .NET SDK ha funzionalità estese per la modifica di documenti PDF in Visualizzatore WinForms/WPF:


Le capacità di modifica visiva dei documenti PDF sono dimostrate nelle applicazioni demo VintaSoft PDF Editor Demo (WinForms) e VintaSoft WPF PDF Editor Demo (WPF).

Questo articolo fornisce una panoramica delle funzionalità per la modifica visiva del contenuto del documento PDF nel visualizzatore WinForms/WPF.



Modifica del contenuto della pagina PDF nel visualizzatore WinForms/WPF


Il controllo WinForms ImageViewer consente di visualizzare le pagine del documento PDF nell'applicazione WinForms. Il controllo ImageViewer può utilizzare lo strumento visivo PdfContentEditorTool per modificare il contenuto della pagina PDF nel visualizzatore.
Il controllo WPF WpfImageViewer consente di visualizzare le pagine del documento PDF nell'applicazione WPF. Il controllo WpfImageViewer può utilizzare lo strumento visivo WpfPdfContentEditorTool per modificare il contenuto della pagina PDF nel visualizzatore.

Ecco il codice che crea ImageViewer con PdfContentEditorTool per visualizzare e modificare il contenuto della pagina PDF nell'applicazione 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));
    }
}



Funzionalità generali per la modifica del contenuto della pagina PDF nel visualizzatore WinForms/WPF

L'SDK può dividere il contenuto della pagina PDF nelle seguenti figure grafiche:
PdfContentEditorTool / WpfPdfContentEditorTool consente di visualizzare e modificare le figure grafiche sulla pagina PDF nel visualizzatore.

La PdfContentEditorTool / WpfPdfContentEditorTool consente di:
Ecco uno screenshot dell'applicazione PdfEditorDemo, che rappresenta la vista principale dell'editor visivo di contenuti PDF in PdfEditorDemo (ogni cifra corrisponde all'elenco sopra):




Modifica il testo avanzato nella pagina PDF nel visualizzatore WinForms/WPF

L'SDK fornisce Classe OfficeDocumentVisualEditor che rappresenta l'editor di testo avanzato nel visualizzatore WinForms/WPF.
PdfContentEditorTool / WpfPdfContentEditorTool utilizza l'editor di testo avanzato (OfficeDocumentVisualEditor) per la modifica dell'oggetto di digita "Gruppo di contenuti di testo" (ContentStreamGraphicsFigureTextGroup) nella pagina PDF nel visualizzatore.

Il processo di modifica dell'oggetto di testo selezionato può essere avviato in diversi modi:
L'editor di testo avanzato (OfficeDocumentVisualEditor) consente di:
Ecco uno screenshot dell'applicazione PdfEditorDemo, che dimostra le proprietà del testo e del paragrafo durante la modifica del testo avanzato:



Ecco uno screenshot dell'applicazione PdfEditorDemo, che mostra il blocco di testo modificato:




Modifica la grafica vettoriale sulla pagina PDF nel visualizzatore WinForms/WPF

PdfContentEditorTool / WpfPdfContentEditorTool consente di utilizzare il mouse per trasformare, copiare e modificare la grafica vettoriale sulla pagina PDF nel visualizzatore WinForms/WPF.

Ecco uno screenshot dell'applicazione PdfEditorDemo, che mostra come selezionare e trasformare figure di grafica vettoriale in una pagina PDF:



PdfContentEditorTool.Il metodo SetContentGraphicsProperties consente di impostare lo stato grafico della figura grafica.

Ecco uno screenshot dell'applicazione PdfEditorDemo, che mostra come separare le figure e modificare le proprietà dello stato grafico per le figure di grafica vettoriale nella pagina PDF:




Sostituisci un'immagine o un modulo nella pagina PDF nel visualizzatore WinForms/WPF

Un'immagine o un modulo esistente nella pagina PDF nel visualizzatore WinForms/WPF può essere sostituito utilizzando PdfContentEditorTool.ReplaceResource.

Ecco uno screenshot dell'applicazione PdfEditorDemo, che mostra la finestra di dialogo con le informazioni sulla risorsa immagine dell'immagine selezionata nella pagina PDF:


Ecco uno screenshot dell'applicazione PdfEditorDemo, che mostra come creare una nuova risorsa immagine da un file immagine e usarla come risorsa immagine per l'immagine selezionata nella pagina PDF:


Ecco uno screenshot dell'applicazione PdfEditorDemo, che mostra l'immagine modificata nella pagina PDF:




Crea, modifica ed elimina l'area di ritaglio per la figura nella pagina PDF nel visualizzatore WinForms/WPF

È possibile aggiungere una nuova area di ritaglio a qualsiasi figura nella pagina PDF utilizzando metodo PdfContentEditorTool.AddFigureClip.

Ecco uno screenshot dell'applicazione PdfEditorDemo, che mostra come impostare l'area di ritaglio ellittica per l'immagine sulla pagina PDF:



Un'area di ritaglio esistente per qualsiasi figura sulla pagina PDF può essere selezionata, trasformata o eliminata utilizzando il mouse.

Ecco uno screenshot dell'applicazione PdfEditorDemo, che dimostra la trasformazione dell'area di ritaglio dell'immagine sulla pagina PDF:




Aggiungi grafica alla pagina PDF nel visualizzatore WinForms/WPF

Il PdfContentEditorTool consente di aggiungere le seguenti figure grafiche alla pagina PDF:
Il metodo PdfContentEditorTool.AddFigure consente di aggiungere una figura grafica alla pagina PDF.

Il metodo PdfContentEditorTool.StartBuildFigure consente di avviare la creazione di una figura grafica sulla pagina PDF utilizzando il mouse.

Ecco uno screenshot dell'applicazione PdfEditorDemo, che mostra come aggiungere elementi grafici alla pagina PDF:




Aggiungi grafici alla pagina PDF nel visualizzatore WinForms/WPF

L'SDK fornisce la classe OfficeDocumentFigure che consente di disegnare pagine DOCX sulla pagina PDF.
"PDF Editor Demo" mostra come aggiungere una pagina DOCX con grafico alla pagina PDF (aggiungi/crea OfficeDocumentFigure sulla pagina PDF utilizzando PdfContentEditorTool.AddFigure / metodo PdfContentEditorTool.StartBuildFigure).

Ecco uno screenshot dell'applicazione PdfEditorDemo, che mostra come selezionare un grafico da aggiungere alla pagina PDF:



Inoltre, "PDF Editor Demo" mostra come modificare i dati del grafico e visualizzare le modifiche del grafico sulla pagina PDF nel visualizzatore.

Ecco uno screenshot dell'applicazione PdfEditorDemo, che mostra come selezionare il grafico nella pagina PDF e modificarne le proprietà:




Requisiti per la modifica del contenuto della pagina PDF nel visualizzatore WinForms/WPF

Se si desidera modificare il contenuto della pagina PDF nel visualizzatore WinForms/WPF, sono necessari i seguenti prodotti VintaSoft: