PDFsharp与QuestPDF(C# PDF库深入比较)
将注释想象为页面上的一张透明薄片:便签式注释位于顶部,而下面的文档保持不变。 IronPDF通过PdfDocument上管理该层,添加、编辑和删除显示为小图标的注释,点击时会显示完整的评论。 因为这一层与内容是分开的,编辑或删除注释不会影响其他文档属性,因此注释可以放在原件必须保持未动的地方。
文档审阅和标记
最常见的是用于注释。 审阅工具将反馈附加到特定位置,并保存一份带评论的副本供下一个人使用,源内容未更改:
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")在不触及原件的情况下进行合同协作
由于注释层与合同正本文本分离,法律团队可以留下不会更改绑定文本的笔记。 这一分离在文档必须为审核或签名保持清晰的情况下尤为重要。
在技术文档上的质量保证标记
自动检查可以在检测到问题的任何地方放置定位注释(如缺少的图表、规格外的数值),为人类提供问题的可点击地图,而不是一份单独的报告。
通过修订周期进行编辑
现有的注释可以在反馈更改或笔记需要重新定位时进行检索和更新。 这支持批准链,其中主管在签署前修订审阅者的笔记:
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")在分发前清理
删除是一种独立的用例。 在文件发出之前剥离内部或过时的评论,这样反馈就不会泄漏给外部受众。 对于一个,请使用Clear。 这自然与清理或PDF/A导出作为最终步骤相配合。
会引起麻烦的两件事
PDF坐标从左下角开始,而不是大多数UI框架使用的左上角,并以点(1/72英寸)为单位测量; US Letter是612 x 792,A4是595 x 842。在此之前,注释会放置在错误的位置。
注释集合在每次移除后重新索引。 要删除多个,请倒退操作或先收集它们再以相反顺序移除,否则会删除错误的。
它们的用途和非用途
文档化的类型是TextAnnotation,即便签注,具有标题、内容、位置、页面、主题、图标和打开状态的属性。 它不是高亮、墨水或印章标记。匹配注释和审阅,这是它擅长的工作,而不是声称能够做的视觉标记。

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。