Come aggiungere annotazioni e moduli a PDF in .NET
Come aggiungere annotazioni e moduli in .NET
Questa guida mostra come aggiungere annotazioni e campi modulo interattivi ai documenti PDF utilizzando Aspose.PDF FOSS per .NET.
Prerequisiti
| Requisito | Dettaglio |
|---|---|
| Runtime | .NET 8.0 or later |
| Pacchetto | dotnet add package Aspose.Pdf.Foss |
| Licenza | MIT — nessuna chiave di licenza richiesta |
Passo 1: Aggiungi un’annotazione di testo
Le annotazioni di testo appaiono come note adesive sulla pagina. Fornire un rettangolo di delimitazione,
il contenuto della nota e un titolo dell’autore. Impostare open: true per visualizzare la nota
espansa quando il documento si apre.
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");Passo 2: Aggiungi un’annotazione di collegamento
Le annotazioni di collegamento rendono un’area rettangolare cliccabile. Combina un Rectangle con unaPdfAction.CreateUri chiamata per navigare l’utente a un URL esterno quando viene cliccata.
var action = PdfAction.CreateUri("https://aspose.com");
page.Annotations.AddLinkAnnotation(
new Rectangle(50, 700, 200, 720), action);Passo 3: Aggiungi annotazioni di evidenziazione e forma
Le annotazioni di evidenziazione contrassegnano le regioni di testo con una sovrapposizione traslucida. Forma le annotazioni, come quadrati e cerchi, disegnano contorni geometrici sulla pagina. Entrambe accettano array di colori e parametri opzionali di larghezza della linea.
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);Passo 4: Leggi i valori dei campi del modulo
I campi AcroForm sono accessibili tramite Document.Form. Itera Form.Fields per leggere il nome e il valore corrente di ciascun campo senza modificare il documento.
using var doc = Document.Open(pdfBytes);
foreach (var field in doc.Form.Fields)
{
Console.WriteLine($"{field.FullName}: {field.Value}");
}Passo 5: Appiattire le annotazioni
foreach (var annot in doc.Pages[1].Annotations)
{
annot.Flatten();
}
doc.Save("flattened.pdf");Classi chiave
| Class | Scopo |
|---|---|
AnnotationCollection | Aggiungere e gestire le annotazioni della pagina |
LinkAnnotation | Annotazione hyperlink |
TextAnnotation | Annotazione nota adesiva |
Form | Accesso ai campi AcroForm |
Field | Classe base per i campi modulo |
PdfAction.CreateUri | Creare azione di collegamento URI |
AnnotationSelector | Filtrare le annotazioni per tipo |
Risoluzione dei problemi
| Problema | Soluzione |
|---|---|
| Annotazione non visibile | Verifica che le coordinate del rettangolo siano entro i limiti della pagina |
| L’URI del collegamento è nullo | Il collegamento potrebbe utilizzare un’azione GoTo — controlla ActionType |
| Valore del campo modulo vuoto | Il campo potrebbe non avere una voce /V — verifica il nome del campo |