Как добавить аннотации и формы в PDF в .NET

Как добавить аннотации и формы в PDF в .NET

Как добавить аннотации и формы в .NET

Это руководство показывает, как добавлять аннотации и интерактивные поля формы в PDF‑документы с использованием Aspose.PDF FOSS for .NET.


Требования

ТребованиеПодробности
Среда выполнения.NET 8.0 или новее
Пакетdotnet add package Aspose.Pdf.Foss
ЛицензияMIT — ключ лицензии не требуется

Шаг 1: Добавить текстовую аннотацию

Текстовые аннотации отображаются как стикеры на странице. Укажите ограничивающий прямоугольник, содержимое заметки и заголовок автора. Установите open: true, чтобы отображать заметку развернутой при открытии документа.

using var doc = Document.Open(File.ReadAllBytes("input.pdf"));
var page = doc.Pages[1];

page.Annotations.AddTextAnnotation(
    new Rectangle(72, 720, 200, 740),
    contents: "Review this section",
    title: "Editor",
    open: true);

doc.Save("annotated.pdf");

Шаг 2: Добавить аннотацию ссылки

Аннотации ссылок делают прямоугольную область кликабельной. Скомбинируйте Rectangle с вызовом PdfAction.CreateUri, чтобы при щелчке пользователь переходил на внешний URL.

var action = PdfAction.CreateUri("https://aspose.com");
page.Annotations.AddLinkAnnotation(
    new Rectangle(50, 700, 200, 720), action);

Шаг 3: Добавить выделения и аннотации фигур

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

page.Annotations.AddHighlightAnnotation(
    new Rectangle(72, 680, 300, 700),
    quadPoints: null,
    color: new double[] { 1, 1, 0 });

page.Annotations.AddSquareAnnotation(
    new Rectangle(72, 640, 200, 680),
    borderColor: new double[] { 0, 0, 1 },
    fillColor: null,
    lineWidth: 1.5);

Шаг 4: Чтение значений полей формы

Поля AcroForm доступны через Document.Form. Выполните итерацию Form.Fields, чтобы прочитать имя каждого поля и его текущее значение без изменения документа.

using var doc = Document.Open(pdfBytes);
foreach (var field in doc.Form.Fields)
{
    Console.WriteLine($"{field.FullName}: {field.Value}");
}

Шаг 5: Свести аннотации

foreach (var annot in doc.Pages[1].Annotations)
{
    annot.Flatten();
}
doc.Save("flattened.pdf");

Ключевые классы

ClassPurpose
AnnotationCollectionДобавлять и управлять аннотациями страниц
LinkAnnotationАннотация гиперссылки
TextAnnotationАннотация стикер‑заметки
FormДоступ к полям AcroForm
FieldБазовый класс для полей формы
PdfAction.CreateUriСоздать действие ссылки URI
AnnotationSelectorФильтрация аннотаций по типу

Устранение неполадок

ПроблемаРешение
Аннотация не виднаУбедитесь, что координаты прямоугольника находятся в пределах границ страницы
Link URI is nullСсылка может использовать действие GoTo — проверьте ActionType
Form field value emptyВозможно, у поля нет записи /V — проверьте имя поля

См. также

 Русский