چگونه حاشیهنویسیها و فرمها را به PDF در .NET اضافه کنیم
چگونه حاشیهنویسیها و فرمها را در .NET اضافه کنیم
این راهنما نشان میدهد چگونه حاشیهنویسیها و فیلدهای فرم تعاملی را به اسناد PDF با استفاده از Aspose.PDF FOSS برای .NET اضافه کنیم.
پیشنیازها
| نیازمندی | جزئیات |
|---|---|
| زمان اجرا | .NET 8.0 یا بعد |
| بسته | dotnet add package Aspose.Pdf.Foss |
| مجوز | MIT — نیازی به کلید مجوز نیست |
مرحله 1: افزودن حاشیهنویس متنی
یادداشتهای متنی بهصورت برچسبهای چسبان بر روی صفحه ظاهر میشوند. فراهم کنید یک مستطیل محدودکننده,
محتوای یادداشت و عنوان نویسنده. open: true را تنظیم کنید تا هنگام باز شدن سند، یادداشت بهصورت باز شده نمایش داده شود.
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");مرحله ۲: افزودن حاشیهنویسی پیوند
حاشیههای پیوند یک ناحیه مستطیلی را قابل کلیک میکنند. یک Rectangle را با یک فراخوانی PdfAction.CreateUri ترکیب کنید تا هنگام کلیک کاربر به یک URL خارجی هدایت شود.
var action = PdfAction.CreateUri("https://aspose.com");
page.Annotations.AddLinkAnnotation(
new Rectangle(50, 700, 200, 720), action);مرحله ۳: افزودن حاشیهنویسیهای برجسته و شکل
حاشیهنویسیهای Highlight نواحی متن را با یک پوشش نیمهشفاف علامتگذاری میکند. حاشیهنویسیهای Shape مانند مربعها و دایرهها خطوط هندسی را بر روی صفحه میکشد. هر دو آرایههای color و پارامترهای اختیاری line-width را میپذیرند.
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);مرحله ۴: خواندن مقادیر فیلدهای فرم
فیلدهای AcroForm از طریق Document.Form دسترسی پیدا میکنند. برای خواندن نام و مقدار فعلی هر فیلد بدون تغییر سند، Form.Fields را تکرار کنید.
using var doc = Document.Open(pdfBytes);
foreach (var field in doc.Form.Fields)
{
Console.WriteLine($"{field.FullName}: {field.Value}");
}مرحله 5: صافسازی حاشیهنویسیها
foreach (var annot in doc.Pages[1].Annotations)
{
annot.Flatten();
}
doc.Save("flattened.pdf");کلاسهای کلیدی
| Class | Purpose |
|---|---|
AnnotationCollection | افزودن و مدیریت حاشیهنویسیهای صفحه |
LinkAnnotation | حاشیهنویسی پیوند |
TextAnnotation | حاشیهنویسی یادداشت چسبان |
Form | دسترسی به فیلد AcroForm |
Field | کلاس پایه برای فیلدهای فرم |
PdfAction.CreateUri | ایجاد عمل لینک URI |
AnnotationSelector | فیلتر کردن حاشیهنویسیها بر اساس نوع |
عیبیابی
| Problem | Solution |
|---|---|
| حاشیهنویسی نمایش داده نمیشود | بررسی کنید که مختصات مستطیل در محدوده صفحه باشد |
| URI لینک خالی است | ممکن است لینک از عمل GoTo استفاده کند — ActionType را بررسی کنید |
| مقدار فیلد فرم خالی است | ممکن است فیلد ورودی /V نداشته باشد — نام فیلد را تأیید کنید |