Hur man lägger till annotationer och formulär i PDF i .NET
Hur man lägger till annotationer och formulär i .NET
Denna guide visar hur man lägger till annotationer och interaktiva formulärfält i PDF‑dokument med Aspose.PDF FOSS för .NET.
Förutsättningar
| Krav | Detalj |
|---|---|
| Runtime | .NET 8.0 eller senare |
| Paket | dotnet add package Aspose.Pdf.Foss |
| Licens | MIT — ingen licensnyckel krävs |
Steg 1: Lägg till en textanteckning
Textanteckningar visas som klisterlappar på sidan. Ange en avgränsande rektangel,
anteckningens innehåll och en författartitel. Ställ in open: true för att visa anteckningen
expanderad när dokumentet öppnas.
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");Steg 2: Lägg till en länkanotering
Länkanoteringar gör ett rektangulärt område klickbart. Kombinera en Rectangle med ett PdfAction.CreateUri‑anrop för att navigera användaren till en extern URL när den klickas.
var action = PdfAction.CreateUri("https://aspose.com");
page.Annotations.AddLinkAnnotation(
new Rectangle(50, 700, 200, 720), action);Steg 3: Lägg till markering och formanteckningar
Highlight‑anteckningar markerar textområden med ett genomskinligt överlägg. Form‑anteckningar, såsom fyrkanter och cirklar, ritar geometriska konturer på sidan. Båda accepterar färgarrayer och valfria linjebreddsparametrar.
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);Steg 4: Läs formulärfältvärden
AcroForm-fält nås via Document.Form. Iterera Form.Fields för att läsa varje fälts namn och aktuella värde utan att ändra dokumentet.
using var doc = Document.Open(pdfBytes);
foreach (var field in doc.Form.Fields)
{
Console.WriteLine($"{field.FullName}: {field.Value}");
}Steg 5: Platta till kommentarer
foreach (var annot in doc.Pages[1].Annotations)
{
annot.Flatten();
}
doc.Save("flattened.pdf");Nyckelklasser
| Klass | Syfte |
|---|---|
AnnotationCollection | Lägg till och hantera sidannotationer |
LinkAnnotation | Hyperlänk-annotation |
TextAnnotation | Klisterlapp-annotation |
Form | AcroForm-fältåtkomst |
Field | Bas-klass för formulärfält |
PdfAction.CreateUri | Skapa URI-länkhändelse |
AnnotationSelector | Filtrera annotationer efter typ |
Felsökning
| Problem | Lösning |
|---|---|
| Annotation not visible | Kontrollera att rektangelkoordinaterna ligger inom sidans gränser |
| Link URI is null | Länken kan använda en GoTo‑åtgärd — kontrollera ActionType |
| Form field value empty | Fältet kanske saknar en /V‑post — verifiera fältnamnet |