Hur man lägger till annotationer och formulär i PDF i .NET

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

KravDetalj
Runtime.NET 8.0 eller senare
Paketdotnet add package Aspose.Pdf.Foss
LicensMIT — 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

KlassSyfte
AnnotationCollectionLägg till och hantera sidannotationer
LinkAnnotationHyperlänk-annotation
TextAnnotationKlisterlapp-annotation
FormAcroForm-fältåtkomst
FieldBas-klass för formulärfält
PdfAction.CreateUriSkapa URI-länkhändelse
AnnotationSelectorFiltrera annotationer efter typ

Felsökning

ProblemLösning
Annotation not visibleKontrollera att rektangelkoordinaterna ligger inom sidans gränser
Link URI is nullLänken kan använda en GoTo‑åtgärd — kontrollera ActionType
Form field value emptyFältet kanske saknar en /V‑post — verifiera fältnamnet

Se även

 Svenska