Редактирование PDF контента в WinForms / WPF просмотрщике

Категория: PDF.NET

21 января 2022

VintaSoft Imaging .NET SDK обладает обширными возможностями для визуального редактирования PDF документа в WinForms/WPF просмотрщике:


Возможности визуального редактирования PDF документа демонстрируются в демо приложениях VintaSoft PDF Editor Demo (WinForms) и VintaSoft WPF PDF Editor Demo (WPF).

В данной статье выполнен обзор функционала для визуального редактирования контента PDF документа в WinForms/WPF просмотрщике.



Редактирование контента PDF страницы в WinForms/WPF просмотрщике

WinForms компонент ImageViewer позволяет отображать страницы PDF документа в WinForms приложении. ImageViewer может использовать визуальный инструмент PdfContentEditorTool для редактирования контента PDF страницы в просмотрщике.
WPF компонент WpfImageViewer позволяет отображать страницы PDF документа в WPF приложении. WpfImageViewer может использовать визуальный инструмент WpfPdfContentEditorTool для редактирования контента PDF страницы в просмотрщике.

Вот код который добавляет в приложение функционал для визуального редактирования PDF документа (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));
    }
}



Общие возможности редактирования контента PDF страницы в WinForms/WPF просмотрщике

SDK умеет разделять контент PDF страницы на следующие графические фигуры:
Визуальный инструмент PdfContentEditorTool/WpfPdfContentEditorTool позволяет отобразить и редактировать графические фигуры на PDF странице в просмотрщике.

Визуальный инструмент PdfContentEditorTool/WpfPdfContentEditorTool позволяет:
Вот скриншот из демо приложения PdfEditorDemo, который отображает общий вид визуального редактора контента PDF в PdfEditorDemo (цифры соответствуют цифрам из списка выше):




Редактирование форматированного текста на PDF странице в WinForms/WPF просмотрщике

SDK содержит класс OfficeDocumentVisualEditor, который представляет редактор форматированного текста в WinForms/WPF просмотрщике.
PdfContentEditorTool/WpfPdfContentEditorTool использует редактор форматированного текста (OfficeDocumentVisualEditor) для редактирования объекта типа "Text content group" (ContentStreamGraphicsFigureTextGroup) на PDF странице в просмотрщике.

Начать процесс редактирования выбранного текстового объекта можно несколькими способами:
Редактор форматированного текста имеет следующие возможности:
Вот скриншот из демо приложения PdfEditorDemo, который отображает свойства текста и свойства параграфа при редактировании форматированного текста:



Вот скриншот из демо приложения PdfEditorDemo, который отображает отредактированный текстовый блок:




Редактирование векторной графики на PDF странице в WinForms/WPF просмотрщике

PdfContentEditorTool/WpfPdfContentEditorTool позволяет использовать мышь для трансформации, копирования, изменения векторной графики на PDF странице в WinForms/WPF просмотрщике.

Вот скриншот из демо приложения PdfEditorDemo, который отображает редактирование векторной графики:



Метод PdfContentEditorTool.SetContentGraphicsProperties позволяет установить свойства графического состояния для графической фигуры.

Вот скриншот из демо приложения PdfEditorDemo, который отображает редактирование свойств графического состояния объекта:




Замена изображения или формы на PDF странице в WinForms/WPF просмотрщике

Существующее изображение или форма на PDF странице может быть заменена с помощью метода PdfContentEditorTool.ReplaceResource.

Вот скриншот из демо приложения PdfEditorDemo, который отображает диалог с информацией о изображении-ресурсе для выбранного изображения на PDF странице:


Вот скриншот из демо приложения PdfEditorDemo, который отображает добавление нового изображения-ресурса:


Вот скриншот из демо приложения PdfEditorDemo, который отображает измененное изображение на PDF странице:




Создание, изменение и удаление области обрезки для фигуры на PDF странице в WinForms/WPF просмотрщике

Новая область обрезки может быть добавлена для любой фигуры на PDF странице используя метод PdfContentEditorTool.AddFigureClip.

Вот скриншот из демо приложения PdfEditorDemo, который отображает установку эллиптической области обрезки для изображения на PDF странице:



Существующая область обрезки любой фигуры на PDF странице может быть выбрана, трансформирована или удалена с помощью манипулятора мыши.

Вот скриншот из демо приложения PdfEditorDemo, который отображает трансформацию области обрезки для изображения на PDF странице:




Добавление графики на PDF страницу в WinForms/WPF просмотрщике

PdfContentEditorTool позволяет добавлять следующие графические фигуры на PDF страницу:
Метод PdfContentEditorTool.AddFigure позволяет добавить графическую фигуру на PDF страницу.

Метод PdfContentEditorTool.StartBuildFigure позволяет начать построение графической фигуры на PDF странице используя манипулятор мыши.

Вот скриншот из демо приложения PdfEditorDemo, который отображает добавление графики на PDF страницу:




Добавление диаграммы на PDF страницу в WinForms/WPF просмотрщике

SDK предоставляет класс OfficeDocumentFigure, который позволяет рисовать DOCX страницу на PDF странице.
PDF Editor Demo демонстрирует как можно добавить DOCX страницу с диаграммой на PDF страницу (добавить/построить OfficeDocumentFigure на PDF странице используя PdfContentEditorTool.AddFigure/ PdfContentEditorTool.StartBuildFigure метод).

Вот скриншот из демо приложения PdfEditorDemo, который отображает как выбрать диаграмму для добавления на PDF страницу:



Также PDF Editor Demo демонстрирует как можно изменить свойства и данные диаграммы и увидеть изменения в диаграмме на PDF страницы в просмотрщике.

Вот скриншот из демо приложения PdfEditorDemo, который отображает возможность редактирования свойств и данных диаграммы:




Необходимые компоненты для редактирования контента PDF страницы в WinForms/WPF просмотрщике

Для использования всех возможностей визуального редактора PDF документа требуются следующие продукты VintaSoft:

Поделиться данной статьей