Editar el contenido de una página PDF en el visor de WinForms/WPF

Categoría del blog: PDF.NET

20.01.2022

El VintaSoft Imaging .NET SDK cuenta con amplias funciones para editar documentos PDF en el visor de WinForms/WPF:


Las funciones de edición visual de documentos PDF se muestran en las aplicaciones de demostración VintaSoft PDF Editor Demo (WinForms) y VintaSoft WPF PDF Editor Demo (WPF).

Este artículo ofrece una descripción general de la funcionalidad para la edición visual del contenido de documentos PDF en el visor WinForms/WPF.



Editar el contenido de una página PDF en el visor WinForms/WPF.


El control WinForms ImageViewer permite mostrar páginas de documentos PDF en una aplicación WinForms. El control ImageViewer puede usar la herramienta visual PdfContentEditorTool para editar el contenido de una página PDF en el visor.
El control WPF WpfImageViewer permite mostrar páginas de documentos PDF en aplicaciones WPF. El control WpfImageViewer puede usar la herramienta visual WpfPdfContentEditorTool para editar el contenido de las páginas PDF en el visor.

Aquí está el código que crea ImageViewer con PdfContentEditorTool para visualizar y editar el contenido de páginas PDF en aplicaciones 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));
    }
}



Funciones generales para la edición de contenido de páginas PDF en el visor WinForms/WPF

El SDK puede dividir el contenido de páginas PDF en las siguientes figuras gráficas:
La PdfContentEditorTool / WpfPdfContentEditorTool permite mostrar y editar figuras gráficas en la página PDF en el visor.

La PdfContentEditorTool / WpfPdfContentEditorTool permite:
Aquí hay una captura de pantalla de la aplicación PdfEditorDemo, que representa la vista principal del editor visual de contenido PDF en PdfEditorDemo (cada dígito corresponde a la lista anterior):




Editar texto enriquecido en la página PDF en el visor WinForms/WPF

El SDK proporciona OfficeDocumentVisualEditor que representa el editor de texto enriquecido en el visor de WinForms/WPF.
PdfContentEditorTool / WpfPdfContentEditorTool utiliza el editor de texto enriquecido (OfficeDocumentVisualEditor) para editar el objeto de tipo "Grupo de contenido de texto" (ContentStreamGraphicsFigureTextGroup) en la página PDF en el visor.

El proceso de edición del objeto de texto seleccionado se puede iniciar de varias maneras:
El editor de texto enriquecido (OfficeDocumentVisualEditor) permite:
Aquí hay una captura de pantalla de la aplicación PdfEditorDemo, que muestra las propiedades del texto y del párrafo mientras se edita el texto enriquecido:



Aquí hay una captura de pantalla de la aplicación PdfEditorDemo, que demuestra el bloque de texto editado:




Editar gráficos vectoriales en la página PDF en el visor WinForms/WPF

PdfContentEditorTool / WpfPdfContentEditorTool permite usar el ratón para transformar, copiar y cambiar gráficos vectoriales en la página PDF en el visor WinForms/WPF.

Aquí hay una captura de pantalla de Aplicación PdfEditorDemo, que demuestra cómo seleccionar y transformar figuras de gráficos vectoriales en una página PDF:



El método PdfContentEditorTool.SetContentGraphicsProperties permite establecer el estado de los gráficos de una figura gráfica.

Aquí hay una captura de pantalla de la aplicación PdfEditorDemo, que demuestra cómo desagrupar figuras y cambiar las propiedades del estado gráfico para la figura de gráficos vectoriales en la página PDF:




Reemplazar imagen o formulario en la página PDF en el visor de WinForms/WPF

Una imagen o formulario existente en la página PDF en el visor de WinForms/WPF se puede reemplazar usando PdfContentEditorTool.ReplaceResource.

Aquí se muestra una captura de pantalla de la aplicación PdfEditorDemo, que muestra un cuadro de diálogo con información sobre el recurso de imagen de la imagen seleccionada en la página PDF:


Aquí se muestra una captura de pantalla de la aplicación PdfEditorDemo, que muestra cómo crear un nuevo recurso de imagen a partir de un archivo de imagen y usarlo como recurso de imagen para la imagen seleccionada en la página PDF:


Aquí hay una captura de pantalla de la aplicación PdfEditorDemo, que muestra la imagen modificada en la página PDF:




Crear, cambiar y eliminar el área de recorte para la figura en la página PDF en el visor de WinForms/WPF

Se puede agregar una nueva área de recorte a cualquier figura en la página PDF usando Método PdfContentEditorTool.AddFigureClip.

Aquí hay una captura de pantalla de la aplicación PdfEditorDemo, que demuestra cómo configurar el área de recorte elíptica para la imagen en la página PDF:



Un área de recorte existente para cualquier figura en la página PDF puede ser seleccionado, transformado o eliminado usando el ratón.

Aquí hay una captura de pantalla de la aplicación PdfEditorDemo, que demuestra la transformación del área de recorte de imagen en la página PDF:




Agregar gráficos a la página PDF en el visor WinForms/WPF

La PdfContentEditorTool permite agregar siguientes figuras gráficas en una página PDF:
El método PdfContentEditorTool.AddFigure permite agregar una figura gráfica a una página PDF.

El método PdfContentEditorTool.StartBuildFigure permite comenzar a crear una figura gráfica en una página PDF usando el mouse.

Aquí hay una captura de pantalla de la aplicación PdfEditorDemo.que demuestra cómo agregar gráficos a una página PDF:




Agregar gráficos a una página PDF en el visor de WinForms/WPF

El SDK proporciona la clase OfficeDocumentFigure que permite dibujar una página DOCX en una página PDF.
La demostración del editor PDF muestra cómo agregar una página DOCX con un gráfico a una página PDF (agregar/crear OfficeDocumentFigure en una página PDF usando PdfContentEditorTool.AddFigure / PdfContentEditorTool.StartBuildFigure método).

Aquí hay una captura de pantalla de la aplicación PdfEditorDemo, que demuestra cómo seleccionar un gráfico para agregarlo a una página PDF:



PDF Editor Demo también demuestra cómo cambiar los datos del gráfico y ver los cambios del gráfico en la página PDF en el visor.

Aquí hay una captura de pantalla de la aplicación PdfEditorDemo, que demuestra cómo seleccionar el gráfico en la página PDF y editar las propiedades del gráfico:




Requisitos para la edición del contenido de la página PDF en el visor WinForms/WPF

Si desea editar el contenido de la página PDF en el visor WinForms/WPF, son necesarios los siguientes productos VintaSoft: