Cómo agregar anotaciones y formularios a PDF en .NET

Cómo agregar anotaciones y formularios a PDF en .NET

Cómo agregar anotaciones y formularios en .NET

Esta guía muestra cómo agregar anotaciones y campos de formulario interactivos a documentos PDF usando Aspose.PDF FOSS para .NET.


Requisitos previos

RequisitoDetalle
Tiempo de ejecución.NET 8.0 o posterior
Paquetedotnet add package Aspose.Pdf.Foss
LicenciaMIT — no se requiere clave de licencia

Paso 1: Añadir una anotación de texto

Las anotaciones de texto aparecen como notas adhesivas en la página. Proporcione un rectángulo delimitador, el contenido de la nota y un título de autor. Establezca open: true para mostrar la nota expandida cuando se abra el documento.

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");

Paso 2: Agregar una anotación de enlace

Las anotaciones de enlace hacen que un área rectangular sea clicable. Combine un Rectangle con una llamada PdfAction.CreateUri para dirigir al usuario a una URL externa al hacer clic.

var action = PdfAction.CreateUri("https://aspose.com");
page.Annotations.AddLinkAnnotation(
    new Rectangle(50, 700, 200, 720), action);

Paso 3: Añadir anotaciones de resaltado y forma

Las anotaciones de resaltado marcan regiones de texto con una superposición translúcida. Las anotaciones de forma
como cuadrados y círculos dibujan contornos geométricos en la página.
Ambas aceptan matrices de colores y parámetros opcionales de ancho de línea.

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);

Paso 4: Leer valores de campos de formulario

Los campos AcroForm se acceden a través de Document.Form. Itera Form.Fields para leer el nombre y el valor actual de cada campo sin modificar el documento.

using var doc = Document.Open(pdfBytes);
foreach (var field in doc.Form.Fields)
{
    Console.WriteLine($"{field.FullName}: {field.Value}");
}

Paso 5: Aplanar anotaciones

foreach (var annot in doc.Pages[1].Annotations)
{
    annot.Flatten();
}
doc.Save("flattened.pdf");

Clases clave

ClassPurpose
AnnotationCollectionAñadir y gestionar anotaciones de página
LinkAnnotationAnotación de hipervínculo
TextAnnotationAnotación de nota adhesiva
FormAcceso a campos AcroForm
FieldClase base para campos de formulario
PdfAction.CreateUriCrear acción de enlace URI
AnnotationSelectorFiltrar anotaciones por tipo

Solución de problemas

ProblemaSolución
La anotación no es visibleVerifique que las coordenadas del rectángulo estén dentro de los límites de la página
El URI del enlace es nuloEl enlace puede usar una acción GoTo — verifique ActionType
El valor del campo de formulario está vacíoEl campo puede no tener una entrada /V — verifique el nombre del campo

Ver también

 Español