PDFsharp vs 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")不影響原件的合同協作
由於註釋層與合同正文分開,法務團隊可以留下不會改動具約束力文字的便條。 在需要文件必須保持原始狀態以便審計或簽名的地方,這種分離是必需的。
技術文件QA標記
自動檢查可以在檢測問題的地方放置一個定點註釋(缺少插圖、超出規範的值),使人能看到一個問題的可點擊地圖,而不是單獨報告。
編輯通過修訂周期
現有的註釋可以在反饋更改或便條需要重新定位時檢索和更新。 此支持批准鏈,其中主管在簽署前修正信評審者的註釋:
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擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。