VintaSoft Imaging .NET SDK обладает обширными возможностями для визуального редактирования PDF документа в WinForms/WPF просмотрщике:
- Редактирование контента PDF страницы в просмотрщике (смотрите ниже в данной статье).
- Редактирование аннотаций и полей форм PDF документа в просмотрщике (смотрите статью Взаимодействие с PDF аннотациями и полями форм в PDF Editor Demo)
- Маркировка текста (подсветка, подчеркивание, волнистое подчеркивание, зачеркивание или текстовая каретка) на PDF странице в просмотрщике (смотрите статью Маркировка текста на PDF странице с помощью Text Markup Annotation)
- Применение редакторских меток к PDF странице в просмотрщике (смотрите статью "Удаление контента с PDF страницы. Редакторские метки." в документации)
- Обрезка PDF страницы в просмотрщике (смотрите информацию о визуальном инструменте Vintasoft.Imaging.Pdf.UI.PdfCropSelectionTool)
Возможности визуального редактирования PDF документа демонстрируются в демо-приложениях
VintaSoft PDF Editor Demo (WinForms) и
VintaSoft WPF PDF Editor Demo (WPF).
В данной статье выполнен обзор функционала для визуального редактирования контента PDF документа в WinForms/WPF просмотрщике.
Редактирование контента PDF страницы в WinForms/WPF просмотрщике
WinForms компонент Vintasoft.Imaging.UI.ImageViewer
позволяет отображать страницы PDF документа в WinForms приложении.
ImageViewer может использовать визуальный инструмент Vintasoft.Imaging.Pdf.UI.PdfContentEditorTool
для редактирования контента PDF страницы в просмотрщике.
WPF компонент Vintasoft.Imaging.Wpf.UI.WpfImageViewer
позволяет отображать страницы PDF документа в WPF приложении.
WpfImageViewer может использовать визуальный инструмент Vintasoft.Imaging.Pdf.Wpf.UI.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 страницы на следующие графические фигуры:
- Текст
- Изображение
- Форма
- Контур пути
- Закраска пути
- Область обрезки
- Область паттерна (градиента)
- Группа объектов
Визуальный инструмент Vintasoft.Imaging.Pdf.UI.PdfContentEditorTool / Vintasoft.Imaging.Pdf.Wpf.UI.WpfPdfContentEditorTool
позволяет отобразить и редактировать графические фигуры на PDF странице в просмотрщике.
Визуальный инструмент Vintasoft.Imaging.Pdf.UI.PdfContentEditorTool / Vintasoft.Imaging.Pdf.Wpf.UI.WpfPdfContentEditorTool
позволяет:
- Включить/выключить возможность редактирования контента на PDF странице (4)
- Группировать редактируемые фигуры (3)
- Подсвечивать границы редактируемых фигур в просмотрщике (2, 12)
- Выбрать типы редактируемых фигур: текст, изображения, формы, путь с закраской, путь с заливкой, область паттерна, область обрезки (1)
- Получить список редактируемых фигур (14)
- Вести историю изменений фигур: операции Undo и Redo (5)
- Редактировать текст выбранной текстовой фигуры (6)
- Заменить или редактировать выбранную форму или изображение (7)
- Установить свойства фигуры: цвет и толщина пера, цвет заливки, прозрачность, режим рендеринга текста, ... (8)
- Трансформировать (перемещение, изменение размера, поворот) выбранную фигуру в просмотрщике (15)
- Программно трансформировать (поворот, отражение или произвольное преобразование) выбранную фигуру (9)
- Установить область обрезки для выбранной фигуры (10)
- Добавить новые фигуры (текст, изображения, графика, диаграммы, ...) на PDF страницу (11)
- Удалить, копировать, вставит фигуру любого типа (16)
- Выбрать фигуру находящуюся по указанной точке (17)
Вот скриншот из демо-приложения PdfEditorDemo, который отображает общий вид визуального редактора контента PDF в PdfEditorDemo (цифры соответствуют цифрам из списка выше):
Редактирование форматированного текста на PDF странице в WinForms/WPF просмотрщике
SDK содержит класс Vintasoft.Imaging.Office.OpenXml.UI.VisualTools.UserInteraction.OfficeDocumentVisualEditor,
который представляет редактор форматированного текста в WinForms/WPF просмотрщике.
Vintasoft.Imaging.Pdf.UI.PdfContentEditorTool / Vintasoft.Imaging.Pdf.Wpf.UI.WpfPdfContentEditorTool
использует редактор форматированного текста (Vintasoft.Imaging.Office.OpenXml.UI.VisualTools.UserInteraction.OfficeDocumentVisualEditor)
для редактирования объекта типа "Text content group"
(
Вот скриншот из демо-приложения PdfEditorDemo, который отображает отредактированный текстовый блок:
Редактирование векторной графики на PDF странице в WinForms/WPF просмотрщике
Vintasoft.Imaging.Pdf.UI.PdfContentEditorTool / Vintasoft.Imaging.Pdf.Wpf.UI.WpfPdfContentEditorTool
позволяет использовать мышь для трансформации, копирования, изменения векторной графики на PDF странице в WinForms/WPF просмотрщике.
Вот скриншот из демо-приложения PdfEditorDemo, который отображает редактирование векторной графики:
Метод Vintasoft.Imaging.Pdf.UI.PdfContentEditorTool.SetContentGraphicsProperties
позволяет установить свойства графического состояния для графической фигуры.
Вот скриншот из демо-приложения PdfEditorDemo, который отображает редактирование свойств графического состояния объекта:
Замена изображения или формы на PDF странице в WinForms/WPF просмотрщике
Существующее изображение или форма на PDF странице может быть заменена с помощью метода
Vintasoft.Imaging.Pdf.UI.PdfContentEditorTool.ReplaceResource.
Вот скриншот из демо-приложения PdfEditorDemo, который отображает диалог с информацией о изображении-ресурсе для выбранного изображения на PDF странице:
Вот скриншот из демо-приложения PdfEditorDemo, который отображает добавление нового изображения-ресурса:
Вот скриншот из демо-приложения PdfEditorDemo, который отображает измененное изображение на PDF странице:
Создание, изменение и удаление области обрезки для фигуры на PDF странице в WinForms/WPF просмотрщике
Новая область обрезки может быть добавлена для любой фигуры на PDF странице используя
метод Vintasoft.Imaging.Pdf.UI.PdfContentEditorTool.AddFigureClip.
Вот скриншот из демо-приложения PdfEditorDemo, который отображает установку эллиптической области обрезки для изображения на PDF странице:
Существующая область обрезки любой фигуры на PDF странице может быть выбрана, трансформирована или удалена с помощью манипулятора мыши.
Вот скриншот из демо-приложения PdfEditorDemo, который отображает трансформацию области обрезки для изображения на PDF странице:
Добавление графики на PDF страницу в WinForms/WPF просмотрщике
Vintasoft.Imaging.Pdf.UI.PdfContentEditorTool позволяет добавлять следующие графические фигуры на PDF страницу:
- Линия текста
- Прямоугольник с текстом
- Форматированный текст
- Диаграмма
- Разметка на основе DOCX документа
- Страница PDF или DOCX документа
- Изображение любого поддерживаемого формата
- Форма или изображение-ресурс из текущего либо другого PDF документа
- Прямоугольник
- Эллипс
- Полигон
- Полилинии
- Кривые
Метод Vintasoft.Imaging.Pdf.UI.PdfContentEditorTool.AddFigure позволяет добавить графическую фигуру на PDF страницу.
Метод Vintasoft.Imaging.Pdf.UI.PdfContentEditorTool.StartBuildFigure позволяет начать построение графической фигуры на PDF странице используя манипулятор мыши.
Вот скриншот из демо-приложения PdfEditorDemo, который отображает добавление графики на PDF страницу:
Добавление диаграммы на PDF страницу в WinForms/WPF просмотрщике
SDK предоставляет класс Vintasoft.Imaging.Pdf.Drawing.GraphicsFigures.OfficeDocumentFigure, который позволяет рисовать DOCX страницу на PDF странице.
PDF Editor Demo демонстрирует как можно добавить DOCX страницу с диаграммой на PDF страницу
(добавить/построить Vintasoft.Imaging.Pdf.Drawing.GraphicsFigures.OfficeDocumentFigure на PDF странице используя
Vintasoft.Imaging.Pdf.UI.PdfContentEditorTool.AddFigure /
Vintasoft.Imaging.Pdf.UI.PdfContentEditorTool.StartBuildFigure метод).
Вот скриншот из демо-приложения PdfEditorDemo, который отображает как выбрать диаграмму для добавления на PDF страницу:
Также PDF Editor Demo демонстрирует как можно изменить свойства и данные диаграммы и увидеть изменения в диаграмме на PDF страницы в просмотрщике.
Вот скриншот из демо-приложения PdfEditorDemo, который отображает возможность редактирования свойств и данных диаграммы:
Необходимые компоненты для редактирования контента PDF страницы в WinForms/WPF просмотрщике
Для использования всех возможностей визуального редактора PDF документа требуются следующие продукты VintaSoft: