Sådan tilføjer du annotationer og formularer til PDF i .NET
Sådan tilføjer du annotationer og formularer i .NET
Denne vejledning viser, hvordan man tilføjer annotationer og interaktive formularfelter til PDF-dokumenter ved hjælp af Aspose.PDF FOSS for .NET.
Forudsætninger
| Krav | Detalje |
|---|---|
| Kørselstid | .NET 8.0 eller senere |
| Pakke | dotnet add package Aspose.Pdf.Foss |
| Licens | MIT — ingen licensnøgle påkrævet |
Trin 1: Tilføj en tekstannotation
Tekstkommentarer vises som post‑it‑noter på siden. Angiv en afgrænsende rektangel, notens indhold og en forfattertitel. Indstil open: true til at vise noten udvidet, når dokumentet åbnes.
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");Trin 2: Tilføj en linkannotation
Linkannotationer gør et rektangulært område klikbart. Kombinér en Rectangle med et PdfAction.CreateUri‑kald for at navigere brugeren til en ekstern URL, når der klikkes.
var action = PdfAction.CreateUri("https://aspose.com");
page.Annotations.AddLinkAnnotation(
new Rectangle(50, 700, 200, 720), action);Trin 3: Tilføj fremhævnings- og formannoteringer
Highlight‑annoteringer marker tekstområder med et gennemsigtigt overlay. Form‑annoteringer såsom firkanter og cirkler tegner geometriske konturer på siden. Begge accepterer farvearrays og valgfrie linjebreddesparametre.
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);Trin 4: Læs formularfelternes værdier
AcroForm-felter tilgås via Document.Form. Iterer Form.Fields for at læse hvert felts navn og aktuelle værdi uden at ændre dokumentet.
using var doc = Document.Open(pdfBytes);
foreach (var field in doc.Form.Fields)
{
Console.WriteLine($"{field.FullName}: {field.Value}");
}Trin 5: Fladgør annotationer
foreach (var annot in doc.Pages[1].Annotations)
{
annot.Flatten();
}
doc.Save("flattened.pdf");Nøgleklasser
| Klasse | Formål |
|---|---|
AnnotationCollection | Tilføj og administrer sideannoteringer |
LinkAnnotation | Hyperlink-annotering |
TextAnnotation | Post-it-annotering |
Form | AcroForm-feltadgang |
Field | Basisklasse for formularfelter |
PdfAction.CreateUri | Opret URI-linkhandling |
AnnotationSelector | Filtrer annoteringer efter type |
Fejlfinding
| Problem | Løsning |
|---|---|
| Annotation er ikke synlig | Kontroller, at rektangelkoordinaterne er inden for sidens grænser |
| Link-URI er null | Linket kan bruge en GoTo-handling — tjek ActionType |
| Formularfeltværdi er tom | Feltet har muligvis ikke en /V‑indgang — bekræft feltnavnet |