Editar o conteúdo de uma página PDF no visualizador WinForms/WPF

Categoria do blog: PDF.NET

20.01.2022

O VintaSoft Imaging .NET SDK possui amplas funcionalidades para edição de documentos PDF em visualizadores WinForms/WPF:


As capacidades de edição visual de documentos PDF são demonstradas nos aplicativos de demonstração VintaSoft PDF Editor Demo (WinForms) e VintaSoft WPF PDF Editor Demo (WPF).

Este artigo fornece uma visão geral da funcionalidade para edição visual do conteúdo de documentos PDF em visualizadores WinForms/WPF.



Editar conteúdo da página PDF no visualizador WinForms/WPF


O controle WinForms ImageViewer permite exibir páginas de um documento PDF em um aplicativo WinForms. O controle ImageViewer pode usar a ferramenta visual PdfContentEditorTool para editar o conteúdo da página PDF no visualizador.
O controle WPF WpfImageViewer permite exibir páginas de um documento PDF em uma aplicação WPF. O controle WpfImageViewer pode utilizar a ferramenta visual WpfPdfContentEditorTool para editar o conteúdo da página PDF no visualizador.

Aqui está o código que cria um ImageViewer com um PdfContentEditorTool para exibir e editar o conteúdo de páginas PDF em um aplicativo 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));
    }
}



Recursos gerais para edição do conteúdo da página PDF no visualizador WinForms/WPF

O SDK pode dividir o conteúdo da página PDF nas seguintes figuras gráficas:
O PdfContentEditorTool / WpfPdfContentEditorTool permite exibir e editar figuras gráficas na página PDF no visualizador.

O PdfContentEditorTool / WpfPdfContentEditorTool permite:
Aqui está uma captura de tela do aplicativo PdfEditorDemo, que representa a visualização principal do editor visual de conteúdo PDF no PdfEditorDemo (cada dígito corresponde à lista acima):




Edite texto formatado em uma página PDF no visualizador WinForms/WPF

O SDK fornece classe OfficeDocumentVisualEditor que representa o editor de texto rico no visualizador WinForms/WPF.
PdfContentEditorTool / WpfPdfContentEditorTool usa o editor de texto rico (OfficeDocumentVisualEditor) para edição de objeto do tipo "Grupo de conteúdo de texto" (ContentStreamGraphicsFigureTextGroup) na página PDF no visualizador.

O processo de edição do objeto de texto selecionado pode ser iniciado de algumas maneiras:
O editor de texto rico (OfficeDocumentVisualEditor) permite:
Aqui está uma captura de tela do aplicativo PdfEditorDemo, que demonstra as propriedades de texto e parágrafo durante a edição de texto formatado:



Aqui está uma captura de tela do aplicativo PdfEditorDemo, que demonstra o bloco de texto editado:




Editar gráficos vetoriais em uma página PDF no visualizador WinForms/WPF

PdfContentEditorTool / WpfPdfContentEditorTool permite usar o mouse para transformar, copiar e alterar gráficos vetoriais em uma página PDF no visualizador WinForms/WPF.

Aqui está uma captura de tela do aplicativo PdfEditorDemo, que demonstra como selecionar e transformar uma figura de gráfico vetorial em uma página PDF:



O PdfContentEditorTool.SetContentGraphicsProperties método permite definir o estado gráfico de uma figura gráfica.

Aqui está uma captura de tela do aplicativo PdfEditorDemo, que demonstra como desagrupar figuras e alterar as propriedades de estado gráfico de uma figura de gráfico vetorial em uma página PDF:




Substituir imagem ou formulário em uma página PDF no visualizador WinForms/WPF

Uma imagem ou formulário existente em uma página PDF no visualizador WinForms/WPF pode ser substituído usando PdfContentEditorTool.ReplaceResource método.

Aqui está uma captura de tela do aplicativo PdfEditorDemo, que demonstra uma caixa de diálogo com informações sobre o recurso de imagem da imagem selecionada na página PDF:


Aqui está uma captura de tela do aplicativo PdfEditorDemo, que demonstra como criar um novo recurso de imagem a partir de um arquivo de imagem e usá-lo como recurso de imagem para a imagem selecionada na página PDF:


Aqui está uma captura de tela do aplicativo PdfEditorDemo, que exibe a imagem alterada na página PDF:




Crie, altere e exclua a área de recorte para uma figura na página PDF no visualizador WinForms/WPF

Uma nova área de recorte pode ser adicionada a qualquer figura em uma página PDF usando o método PdfContentEditorTool.AddFigureClip.

Aqui está uma captura de tela do aplicativo PdfEditorDemo, que demonstra como definir a área de recorte elíptica para uma imagem na página PDF:



Uma área de recorte existente para qualquer figura na página PDF pode ser selecionada, transformada ou excluída usando o mouse.

Aqui está uma captura de tela do aplicativo PdfEditorDemo, que demonstra a transformação da área de recorte de imagem em uma página PDF:




Adicionar gráficos à página PDF no visualizador WinForms/WPF

A PdfContentEditorTool permite adicionar as seguintes figuras gráficas à página PDF:
O método PdfContentEditorTool.AddFigure permite adicionar uma figura gráfica à página PDF.

O método PdfContentEditorTool.StartBuildFigure permite iniciar a construção de uma figura gráfica em uma página PDF usando o mouse.

Aqui está uma captura de tela do aplicativo PdfEditorDemo, que demonstra como adicionar gráficos a uma página PDF:




Adicionar gráficos a uma página PDF no visualizador WinForms/WPF

O SDK fornece a classe OfficeDocumentFigure que permite desenhar uma página DOCX em uma página PDF.
O aplicativo de demonstração "PDF Editor Demo" demonstra como adicionar uma página DOCX com um gráfico a uma página PDF (adicionar/construir OfficeDocumentFigure na página PDF usando PdfContentEditorTool.AddFigure / PdfContentEditorTool.StartBuildFigure método).

Aqui está uma captura de tela do aplicativo PdfEditorDemo, que demonstra como selecionar um gráfico para adicionar a uma página PDF:



O PDF Editor Demo também demonstra como alterar os dados do gráfico e visualizar as alterações na página PDF no visualizador.

Aqui está uma captura de tela do aplicativo PdfEditorDemo, que demonstra como selecionar o gráfico em uma página PDF e editar suas propriedades:




Requisitos para edição do conteúdo da página PDF no visualizador WinForms/WPF

Se você deseja editar o conteúdo da página PDF no visualizador WinForms/WPF, os seguintes produtos da VintaSoft são necessários: