Jak dodać adnotacje i formularze do PDF w .NET
Jak dodać adnotacje i formularze w .NET
Ten przewodnik pokazuje, jak dodać adnotacje i interaktywne pola formularza do dokumentów PDF przy użyciu Aspose.PDF FOSS dla .NET.
Wymagania wstępne
| Wymaganie | Szczegóły |
|---|---|
| Środowisko uruchomieniowe | .NET 8.0 lub nowszy |
| Pakiet | dotnet add package Aspose.Pdf.Foss |
| Licencja | MIT — nie wymaga klucza licencyjnego |
Krok 1: Dodaj adnotację tekstową
Adnotacje tekstowe pojawiają się jako przyklejki na stronie. Dostarcz prostokąt ograniczający,
zawartość notatki i tytuł autora. Ustaw open: true, aby wyświetlić notatkę
rozszerzoną, gdy dokument zostanie otwarty.
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");Krok 2: Dodaj adnotację linku
Adnotacje linku tworzą prostokątny obszar klikalny. Połącz Rectangle z
PdfAction.CreateUri wywołaniem, aby po kliknięciu przenieść użytkownika do zewnętrznego adresu URL.
var action = PdfAction.CreateUri("https://aspose.com");
page.Annotations.AddLinkAnnotation(
new Rectangle(50, 700, 200, 720), action);Krok 3: Dodaj adnotacje podświetlenia i kształtu
Adnotacje podświetlenia oznaczają regiony tekstu półprzezroczystą nakładką. Kształtowe adnotacje takie jak kwadraty i koła rysują geometryczne kontury na stronie. Oba akceptują tablice kolorów i opcjonalne parametry szerokości linii.
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);Krok 4: Odczyt wartości pól formularza
Pola AcroForm są dostępne przez Document.Form. Iteruj Form.Fields, aby odczytać nazwę każdego pola i jego bieżącą wartość bez modyfikowania dokumentu.
using var doc = Document.Open(pdfBytes);
foreach (var field in doc.Form.Fields)
{
Console.WriteLine($"{field.FullName}: {field.Value}");
}Krok 5: Spłaszcz adnotacje
foreach (var annot in doc.Pages[1].Annotations)
{
annot.Flatten();
}
doc.Save("flattened.pdf");Kluczowe klasy
| Klasa | Cel |
|---|---|
AnnotationCollection | Dodawanie i zarządzanie adnotacjami na stronie |
LinkAnnotation | Adnotacja hiperłącza |
TextAnnotation | Adnotacja notatki samoprzylepnej |
Form | Dostęp do pola AcroForm |
Field | Klasa bazowa dla pól formularza |
PdfAction.CreateUri | Utwórz akcję linku URI |
AnnotationSelector | Filtrowanie adnotacji według typu |
Rozwiązywanie problemów
| Problem | Rozwiązanie |
|---|---|
| Adnotacja nie jest widoczna | Sprawdź, czy współrzędne prostokąta mieszczą się w granicach strony |
| URI linku jest null | Link może używać akcji GoTo — sprawdź ActionType |
| Wartość pola formularza jest pusta | Pole może nie mieć wpisu /V — zweryfikuj nazwę pola |