PDFsharp vs QuestPDF (Comparación a Fondo de Biblioteca PDF C#)
Imagine una anotación como una hoja transparente sobre la página: el comentario de nota adhesiva se coloca encima mientras el documento debajo permanece intacto. IronPDF gestiona esa capa a través de la colección Annotations en un PdfDocument, añadiendo, editando y eliminando notas que se muestran como pequeños íconos y revelan el comentario completo al hacer clic. Debido a que la capa está separada del contenido, editar o eliminar una nota deja todas las demás propiedades del documento intactas, por lo que las anotaciones encajan donde sea que el original deba permanecer inmaculado.
Revisión y marcado de documentos
El uso más común de las anotaciones. Una herramienta de revisión adjunta comentarios a puntos específicos y guarda una copia comentada para la próxima persona, con el contenido fuente sin cambios:
using IronPdf;
using IronPdf.Annotations;
var pdf = PdfDocument.FromFile("draft.pdf");
pdf.Annotations.Add(new TextAnnotation(0)
{
Title = "Reviewer",
Contents = "Clarify this clause.",
X = 50,
Y = 700
});
pdf.SaveAs("draft-reviewed.pdf");Imports IronPdf
Imports IronPdf.Annotations
Dim pdf = PdfDocument.FromFile("draft.pdf")
pdf.Annotations.Add(New TextAnnotation(0) With {
.Title = "Reviewer",
.Contents = "Clarify this clause.",
.X = 50,
.Y = 700
})
pdf.SaveAs("draft-reviewed.pdf")Colaboración en contratos sin tocar el original
Dado que la capa de anotación se mantiene distinta del cuerpo del contrato, los equipos legales pueden dejar notas que nunca alteran el texto vinculante. Esa separación es importante wherever el documento debe permanecer inmaculado para auditoría o firma.
Marcado de control de calidad en documentos técnicos
Una verificación automatizada puede dejar una nota posicionada donde detecta un problema (una cifra faltante, un valor fuera de especificaciones), dándole a una persona un mapa clicable de problemas, no un informe separado.
Edición a través de un ciclo de revisión
Las anotaciones existentes se pueden recuperar y actualizar a medida que cambia la retroalimentación o se necesita reposicionar las notas. Esto admite cadenas de aprobación, donde un supervisor modifica las notas del revisor antes de la aprobación final:
using System.Linq;
var pdf = PdfDocument.FromFile("draft-reviewed.pdf");
var note = (TextAnnotation)pdf.Annotations.First();
note.Contents = "Resolved in v2.";
note.X = 150;
pdf.SaveAs("draft-updated.pdf");Imports System.Linq
Dim pdf = PdfDocument.FromFile("draft-reviewed.pdf")
Dim note = CType(pdf.Annotations.First(), TextAnnotation)
note.Contents = "Resolved in v2."
note.X = 150
pdf.SaveAs("draft-updated.pdf")Limpieza antes de la distribución
La eliminación es su propio caso de uso. Elimina comentarios internos o desactualizados antes de que un documento salga, para que los comentarios nunca lleguen a un público externo. Utilice RemoveAt para una, RemoveAllAnnotationsForPage para una página o Clear para todo el documento. Esto se combina naturalmente con la sanitización o la exportación a PDF/A como un paso de finalización.
Dos cosas que te afectarán
Las coordenadas PDF comienzan desde la esquina inferior izquierda, no desde la esquina superior izquierda que la mayoría de los frameworks de UI utilizan, y se miden en puntos (1/72 pulgada); La Carta de EE.UU. es de 612 x 792, A4 es de 595 x 842. Hasta que consideres esto, las anotaciones caen en el lugar equivocado.
La colección de anotaciones se reindexa después de cada eliminación. Para eliminar varias, trabaja hacia atrás o recógelas primero y elimina en reverso, o eliminarás las incorrectas.
Para qué son y para qué no son
El tipo documentado es TextAnnotation, la nota adhesiva, con propiedades para título, contenidos, posición, página, asunto, ícono y estado abierto. No es un resaltado, tinta o anotación de sellos. Asóciala con comentarios y revisiones, su trabajo lo hace bien, no con anotaciones visuales que no pretende hacer.

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien estructurados y visualmente atractivos.