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
| Requisito | Detalle |
|---|---|
| Tiempo de ejecución | .NET 8.0 o posterior |
| Paquete | dotnet add package Aspose.Pdf.Foss |
| Licencia | MIT — 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
| Class | Purpose |
|---|---|
AnnotationCollection | Añadir y gestionar anotaciones de página |
LinkAnnotation | Anotación de hipervínculo |
TextAnnotation | Anotación de nota adhesiva |
Form | Acceso a campos AcroForm |
Field | Clase base para campos de formulario |
PdfAction.CreateUri | Crear acción de enlace URI |
AnnotationSelector | Filtrar anotaciones por tipo |
Solución de problemas
| Problema | Solución |
|---|---|
| La anotación no es visible | Verifique que las coordenadas del rectángulo estén dentro de los límites de la página |
| El URI del enlace es nulo | El enlace puede usar una acción GoTo — verifique ActionType |
| El valor del campo de formulario está vacío | El campo puede no tener una entrada /V — verifique el nombre del campo |