PDFsharp vs QuestPDF (Comparaison Approfondie de la Bibliothèque PDF en C#)
Imaginez une annotation comme une feuille transparente au-dessus de la page : le commentaire en post-it se trouve au sommet pendant que le document en dessous reste intact. IronPDF gère cette couche à travers la collection Annotations sur un PdfDocument, ajoutant, modifiant et supprimant des notes qui s'affichent sous forme de petites icônes et révèlent le commentaire complet lorsqu'elles sont cliquées. Parce que la couche est distincte du contenu, modifier ou supprimer une note laisse toutes les autres propriétés du document intactes, les annotations s'adaptent donc partout où l'original doit rester intact.
Révision et annotation du document
Le principal usage des annotations. Un outil de révision attache des commentaires à des endroits spécifiques et enregistre une copie commentée pour la personne suivante, contenu source inchangé :
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")Collaboration contractuelle sans altérer l'original
Comme la couche d'annotation reste distincte du corps du contrat, les équipes juridiques peuvent laisser des notes qui n'altèrent jamais le texte contraignant. Cette séparation est importante partout où le document doit rester intact pour audit ou signature.
Marquage QA sur les documents techniques
Un contrôle automatisé peut déposer une note positionnée partout où il détecte un problème (une figure manquante, une valeur hors normes), offrant à une personne une carte cliquable des problèmes, pas un rapport séparé.
Édition à travers un cycle de révision
Les annotations existantes peuvent être récupérées et mises à jour au fur et à mesure que les commentaires changent ou que les notes ont besoin d'être repositionnées. Cela soutient les chaînes d'approbation, où un superviseur modifie les notes du réviseur avant l'approbation :
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")Nettoyage avant distribution
La suppression est une utilisation propre. Enlevez les commentaires internes ou obsolètes avant qu'un document ne sorte, pour que les commentaires ne fuitent jamais vers un public externe. Utilisez RemoveAt pour un, RemoveAllAnnotationsForPage pour une page, ou Clear pour l'ensemble du document. Cela se combine naturellement avec la désinfection ou l'exportation au format PDF/A en tant qu'étape de finalisation.
Deux choses qui vous mordront
Les coordonnées PDF commencent en bas à gauche, pas en haut à gauche comme la plupart des frameworks UI utilisent, et sont mesurées en points (1/72 pouce) ; US Letter est 612 x 792, A4 est 595 x 842. Jusqu'à ce que vous en teniez compte, les annotations se retrouvent au mauvais endroit.
La collection d'annotations réindexe après chaque suppression. Pour en supprimer plusieurs, travaillez à rebours ou collectionnez-les d'abord et supprimez en sens inverse, sinon vous supprimerez les mauvaises.
Ce qu'elles sont, et ce qu'elles ne sont pas, destinées à faire
Le type documenté est TextAnnotation, la note autocollante, avec des propriétés pour le titre, le contenu, la position, la page, le sujet, l'icône et l'état ouvert. Ce n'est pas un surlignage, un encrage ou un tampon. Associez-le au commentaire et à la révision, le travail qu'il fait bien, pas au balisage visuel qu'il ne prétend pas faire.

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes et créer des manuels bien structurés et visuellement attrayants.