Как добавить аннотации и формы в 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");Ключевые классы
| Class | Purpose |
|---|---|
AnnotationCollection | Добавлять и управлять аннотациями страниц |
LinkAnnotation | Аннотация гиперссылки |
TextAnnotation | Аннотация стикер‑заметки |
Form | Доступ к полям AcroForm |
Field | Базовый класс для полей формы |
PdfAction.CreateUri | Создать действие ссылки URI |
AnnotationSelector | Фильтрация аннотаций по типу |
Устранение неполадок
| Проблема | Решение |
|---|---|
| Аннотация не видна | Убедитесь, что координаты прямоугольника находятся в пределах границ страницы |
| Link URI is null | Ссылка может использовать действие GoTo — проверьте ActionType |
| Form field value empty | Возможно, у поля нет записи /V — проверьте имя поля |